Professional Documents
Culture Documents
Oose
Oose
Models are useful when dealing with Systems that are too large, too small, too complicated
or too expensive to experience.
Models also allow us to visualize and understand systems that either No longer exists or that
are only claimed to exists .
Software engineer need to Understand the environment in which the system has to operate.
eg: For train traffic Control System - train the Signaling
Stock trading systems – trading rules
It doesn't mean they should become a fully certified train dispatcher (or) stock broker, they
need to learn the application domain concepts that are relevant to the System.
Second, Software engineers the need to Understand the systems they could build to
evaluate different solutions and trade-offs.
Object-oriented Methods combine the application domain and solution domain Modeling
activities into one application domain is first modeled as Cat of objects and relationships.
This model is then used by the system to represent the real world concepts it Manipulates.
Requirements elicitation
Analysis
System Design
Objects
Implementation
Testing
Knowledge Acquisition
A Common Mistake that Solution Engineers and Managers Make is to assume that the acquisition of
knowledge needed to develop a System is linear
The addition of a new piece of information May invalidate all the knowledge we have acquired for the
understanding of a system.
There are several software processes that deal with this problem by avoiding the sequential dependencies
inherent in the waterfall model.
Risk based development attempts to anticipate surprises late in a project by identifying the high risk
components.
Issue Based development attempts to remove the linearity altogether - it executed in parallel.
To change the system, it is not enough to understand its current component and behaviour.
It is also necessary to capture and Understand the context in which each design decision was
Made.
Software Engineering Concepts
Rectangle – Concept
Line – relationship
Diamond - aggregation
Participants and Roles
Blue print is Schematics of its electrical wiring , and object models of its
software are models
• Requirements Elicitation
• Analysis
• System Design
• Object Design
• Implementation
• Testing
Requirements Elicitation
The result of this activity is a description of the system in terms of actors and use cases.
Actors represent the external entities that interact with the system.
Actors include roles such as end users, other computers the system needs to deal with
(e.g., a central bank computer, a network), and the environment (e.g., a chemical
process).
Use cases are general sequences of events that describe all the possible actions between
an actor and the system for a given piece of functionality.
Analysis
During analysis, developers aim to produce a model of the system that is correct, complete,
consistent, and unambiguous.
Developers transform the use cases produced during requirements elicitation into an object model
that completely describes the system.
During this activity, developers discover ambiguities and inconsistencies in the use case model
that they resolve with the client.
The result of analysis is a system model annotated with attributes, operations, and associations.
The system model can be described in terms of its structure and its dynamic interoperation.
System Design
During system design, developers define the design goals of the project and decompose the system into
smaller subsystems that can be realized by individual teams.
Developers also select strategies for building the system, such as the hardware/software platform on
which the system will run.
The result of system design is a clear description of each of these strategies, a subsystem
decomposition, and a deployment diagram representing the hardware/software mapping of the system.
Object Design
During object design, developers define solution domain objects to bridge the gap between the analysis model and
the hardware/software platform defined during system design.
Implementation
During implementation, developers translate the solution domain model into source code
Testing
During testing, developers find differences between the system and its models by executing the system (or parts of
it) with sample input data sets.
Managing Software Development
Management activities not only involve managers, but also most of the other project
participants as well
Communication includes the exchange of models and documents about the system
and its application domain, reporting the status of work products, providing
feedback on the quality of work products, raising and negotiating issues, and
communicating decisions.
Rationale Management
The goal of UML is to provide a standard notation that can be used by all OO
methods and to select and integrate the best elements of precursor notations.
Eg: UML includes the use case diagram introduced by OOSE and uses the many
features of the OMT class diagrams.
System Development focuses on three Models
Functional Model – represented in UML with use case diagram – it describes the
functionality of the system from the users point of view.
Object Model – represented in UML with class diagram – describes the structure
of the system in terms of object , attributes and associations and operations.
• Class Diagram
• Interaction Diagram
• Activity Diagram
USE CASE DIAGRAM
Use cases are used during requirement elicitation and analysis to represent the
functionality of the system.
Uses cases focuses on the behaviour of the system from an external point of view.
System
Draw your system's boundaries using a rectangle that contains use cases.
Place Actors outside the system's boundaries.
Use Case
Draw use cases using ovals. Label with ovals with verbs that represent the system's
functions.
Actors
Actors are the users of a system. When one system is the actor of another system, label the
actor system with the actor stereotype.
Relationships
Illustrate relationships between an actor and a use case with a simple line. For relationships
among use cases, use arrows labeled either "uses" or "extends." A "uses" relationship indicates
that one use case is needed by another in order to perform a task.
An "extends" relationship indicates alternative options under a certain use case.
CLASS DIAGRAM
Visibility
Use visibility markers to signify who can access the information contained within a class.
Associations
Use a filled arrow to indicate the direction of the relationship. Place roles near the end of an
association.
Multiplicity (Cardinality)
These symbols indicate the number of instances of one class linked to one
instance of the other class.
constraints
Place constraints inside curly braces {}.
Composition and Aggregation
Composition is a special type of aggregation that denotes a strong ownership between Class A, the whole, and
Class B, its part. Illustrate composition with a filled diamond.
Use a hollow diamond to represent a simple aggregation relationship, in which the "whole" class plays a more
important role than the "part" class, but the two classes are not dependent on each other.
Generalization
Generalization is another name for inheritance or an "is a" relationship. It refers to a relationship between
two classes where one class is a specialized version of another.
INTERACTION DIAGRAM
It is used to formalize the dynamic behaviour of the system and to visualize the communication of
objects
Sequence Diagram
The sequence diagram represents the flow of messages in the system
Class roles
Class roles describe the way an object will behave in context. Use the UML object symbol to
illustrate class roles, but don't list object attributes.
Activation
Activation boxes represent the time an object needs to complete a task.
Messages
Messages are arrows that represent communication between objects. Use half-arrowed
lines to represent asynchronous messages. Asynchronous messages are sent from an object
that will not wait for a response from the receiver before continuing its tasks.
Lifielines
Lifelines are vertical dashed lines that indicate the object's presence over
time.The notation for a Lifeline is a vertical dotted line extending from an object.
STATE MACHINE:
A state chart diagram shows the behavior of classes in response to external stimuli.
This diagram models the dynamic flow of control from state to state within a system.
Transition
A solid arrow represents the path between different states of an object. Label the transition with
the event that triggered it and the action that results from it.
Activity Diagram
Activity diagrams illustrate the dynamic nature of a system by modeling the flow of
control from activity to activity.
Typically, activity diagrams are used to model workflow or business processes and
internal operation.
Action states
Action states represent the no interruptible actions of
objects.
Action Flow
Final State
An arrow pointing to a filled circle nested inside another circle represents the final action state.
Branching
In this participants are grouped into teams, where a team is a small set of participants
working on the same activity or task.
Simple Project Organization
Project participants interact with each other. The three major types of interaction in a
project are:
Reporting – status
Decision – propagating decision
Communication
Hierarchical Organization
both status and decision information are unidirectional; that is, decisions are always made at the root
of the organization and passed via the interaction association to the leaves of the organization.
Overview of Project
Definition Phase
Project manager
Possible client
Key project member
Software architect
Definition Phase
Initial understanding of the software architecture – sub system , decomposition and the
project in particular schedule , the work to be performed and the resource required
• Project infrastructure,
• Hires participants and organizes them in teams,
• Define milestones
• Starts the project
Project definition and project start phases are made by the project manager
Steady state phase
Termination phase
Project outcome is delivered to the client and the project history is collected.
Communication
Problem inspection
Status meeting
Peer reviews
Client and project reviews
Releases
The client, the developers, and the users identify a problem area and define a system that
addresses the problem. Such a definition is called a requirements specification and serves as a
contract between the client and the developers.
The requirements specification supports the communication with the client and users. The
analysis model supports the communication among developers.
The models represent the same aspects of the system, requirements elicitation and analysis
occur concurrently and iteratively.
Requirements elicitation includes the following activities
Identifying actors.
Identifying scenarios.
Identifying use cases.
Refining use cases.
Identifying relationships among use cases.
Identifying nonfunctional requirements.
Requirements Elicitation Concepts
Functional Requirements
Nonfunctional Requirements
Completeness, Consistency, Clarity, and Correctness
Realism, Verifiability, and Traceability
Greenfield Engineering, Reengineering, and Interface Engineering
Functional requirements
Functional requirements describe the interactions between the system and its
environment independent of its implementation.
The environment includes the user and any other external system with which the
system interacts.
Eg: SatWatch is a wrist watch that displays the time based on its current location. SatWatch uses
GPS satellites to determine its location and internal data structures to convert this location into a
time zone.
The above functional requirements focus only on the possible interactions between SatWatch
and its external world (i.e., the watch owner, GPS, and WebifyWatch). The above description
does not focus on any of the implementation details (e.g., processor, language, display
technology)
NonFunctional requirements
Nonfunctional requirements describe aspects of the system that are not directly
related to the functional behavior of the system.
Usability
Reliability
Performance
Supportability
Completeness, Consistency, Clarity, and Correctness
Requirements are continuously validated with the client and the user.
Requirement validation involves checking that the specification is complete, consistent, unambiguous,
and correct.
It is complete if all possible scenarios through the system are described, including exceptional behavior
(i.e., all aspects of the system are represented in the requirements model).
The requirements specification is unambiguous if exactly one system is defined (i.e., it is not possible
to interpret the specification two or more different ways).
Realism, Verifiability, and Traceability
The requirements specification is verifiable if, once the system is built, repeatable
tests can be designed to demonstrate that the system fulfills the requirements
specification.
Greenfield Engineering, Reengineering, and Interface Engineering
Analysis focuses on producing a model of the system, called the analysis model,
which is correct, complete, consistent, and verifiable.
The analysis model is composed of three individual models:
The analysis model represents the system under development from the
user’s point of view.
The analysis object model is a part of the analysis model and focuses on the
individual concepts that are manipulated by the system, their properties and
their relationships.
The analysis object model consists of entity, boundary, and control objects .
Boundary objects represent the interactions between the actors and the system.
System design is decomposed into several activities, each addressing part of the overall
problem of decomposing the system:
• Identify design goals. Developers identify and prioritize the qualities of the system that
they should optimize.
•Design the initial subsystem decomposition. Developers decompose the system into
smaller parts based on the use case and analysis models. Developers use standard
architectural styles as a starting point during this activity.
•Refine the subsystem decomposition to address the design goals. The initial
decomposition usually does not satisfy all design goals. Developers refine it until all
goals are satisfied.
System design, object design, and implementation constitute the construction of
the system.
During these three activities, developers bridge the gap between the requirements
specification, and the system that is delivered to the users.
System design is the first step in this process and focuses on decomposing the
system into manageable parts.
During system design, we focus on the processes, data structures, and software
and hardware components necessary to implement it.
A Floor Plan Example
The architect can also rely on a number of standards when establishing the
dimensions of each room and the location of the door:
kitchen cabinets come in fixed increments and beds come in standard sizes.
the architect does not need to know the exact contents of each room and the layout
of the furniture; on the contrary, these decisions should be delayed and left to the
client.
This house should have two bedrooms, a study, a kitchen, and a living room
area.
The overall distance the occupants walk every day should be minimized.
In the second revision, we find that the kitchen and the stairs are too far from the entrance door.
SYSTEM DESIGN CONCEPTS
realizing the
user interface
Realizing user
for the
interface for the
FieldOfficer
dispatcher