SlideShare ist ein Scribd-Unternehmen logo
1 von 76
CSC 402 Requirements Engineering
1
Overview - Object-Oriented
Analysis and Design
• Design thinking
• Object Modeling Technique
– Object-Oriented Analysis
– Object-Oriented Design
• Three models
– Object model
– Dynamic model
– Functional model
• Four phases
CSC 402 Requirements Engineering
2
Design Goals
• Design transforms requirements into
– an architecture diagram
¤ subsystems, modules and their relationships
– a detailed design
¤ a specification of the abstract interface, data structures, and algorithms of
each module
• Also develops
– a review plan for ensuring the design meets the requirements
– a test plan for ensuring the implementation meets the design
CSC 402 Requirements Engineering
3
Object-Oriented Software Development
• Object-Oriented Methodology
– development approach used to build complex systems using the concepts of
object, class, polymorphism, and inheritance with a view towards reusability
– encourages software engineers to think of the problem in terms of the
application domain early and apply a consistent approach throughout the
entire life-cycle
• Object-Oriented Analysis and Design
– analysis models the “real-world” requirements, independent of the
implementation environment
– design applies object-oriented concepts to develop and communicate the
architecture and details of how to meet requirements
CSC 402 Requirements Engineering
4
Object Modeling Technique
Process via UML
• OMT [Rumbaugh et al.,1991] consists of
– building three complementary models of the system
– adding implementation details to the models
– implementing the models
• OMT includes a set of
– phases [processes]
– diagramming techniques
• OMT has four phases
– object-oriented analysis builds a real-world model
– system design determines overall architecture of system
– object design decides upon data structures and algorithms
– implementation translates design into programming language
CSC 402 Requirements Engineering
5
OMT Stages and Models
Analysis
- Model of real-world situation
- What ?
System Design
- Overall architecture (sub-systems)
Object Design
- Refinement of Design
- Algorithms/data structures to
implement each class
Implementation
- Translation of object classes and
relationships to a particular
object-oriented language
time
Object
Model
-
Static
structure
of
objects
and
their
relationships
(object
diagram)
Dynamic
Model
-
Control
aspects
of
the
system
(state
diagrams)
Functional
Model
-
Data
value
transformations
(dataflow
diagrams)
System
CSC 402 Requirements Engineering
6
Introduction to Object-Oriented Analysis
• Semi-formal technique
– class modeling
– dynamic modeling
– functional modeling
• These steps focus on
– data
– actions
– their relationships
• Reuses familiar tools
– E-R diagrams
– Finite State Machines
– Data flow diagrams
• Steps and diagrams
– typically performed in parallel
after initial class definition
– must be kept in synch
• Object-Oriented Analysis is the “requirements phase” of Object-
Oriented Software Development
– think of it as an alternative semi-formal technique
CSC 402 Requirements Engineering
7
Object-Oriented Analysis
• Builds a “real-world” model from requirements
– client interviews, domain knowledge, real-world experience
collected in use cases and other simple notations
• OOA models address three aspects of the system (its
objects)
– class structure and relationships
– sequencing of interactions and events
– data transformations and computations
CSC 402 Requirements Engineering
8
Models of Object-Oriented Analysis (cf UML)
• Class Model
– static structure
– what objects are in the system?
– how are they related?
• Dynamic Model
– behavioral aspects
– what events occur in the system
– when do they occur and in what
order?
• Functional Model
– data transformations
– “what” does the system do
• Data-Oriented
• Action-Oriented
• Both Data and Actions
CSC 402 Requirements Engineering
9
OO Analysis and Design: Steps
• Class Modeling
• Dynamic Modeling
• Functional Modeling
• Add Operations to the Class Model
• Iterate and refine the models
– After the first iteration, steps may occur in parallel
or out of order
– All models must be kept in synch as changes are made
CSC 402 Requirements Engineering
10
Class Modeling
• Identify objects and classes
• Prepare a data dictionary
• Identify associations between objects
• Identify class attributes and initial set of operations
• Organize object classes using inheritance
CSC 402 Requirements Engineering
11
Classes, Attributes and Operations
• Attributes define the properties of the objects
– every instance of the class has the same attributes
– an attribute has a data type
– the values of the attributes may differ among instances
• Operations define the behavior of the objects
– action performed on or by an object
– available for all instances of the class
– need not be unique among classes
Class Attributes Operations
ball radius, weight catch, throw
football air pressure pass, kick, hand-off
baseball liveness hit, pitch, tag
CSC 402 Requirements Engineering
12
Object Model Notation (refresher)
Class Name
(Class Name)
InstanceVariable1
InstanceVariable2: type
InstanceVariable1 = value
InstanceVariable2: type
Method1()
Method2(arguments) return type
Method1()
Method2(arguments) return type
Classes are represented as rectangles;
The class name is at the top, followed by attributes
(instance variables) and methods (operations)
Depending on context some information can be
hidden such as types or method arguments
Objects are represented as rounded rectangles;
The object’s name is its classname surrounded by
parentheses
Instance variables can display the values that they
have been assigned; pointer types will often point
(not shown) to the object being referenced
CSC 402 Requirements Engineering
13
OMT Instantiation Notation
Class Name
attribute_1: data_type_1 = default_1
attribute_2: data_type_2 = default_2
. . .
attribute_m: data_type_m =
default_m
(Class Name)
attribute_1 = value_1
attribute_2 = value _2
. . .
attribute_m = value _m
Class
Instance
CSC 402 Requirements Engineering
14
Instantiation - Example
Person
name
age
weight
(Person)
(Person)
Joe Smith
age=39
weight=158
Mary Wilson
age=27
weight=121
CSC 402 Requirements Engineering
15
Inheritance
• Classes with similar attributes and operations may be
organized hierarchically
• Common attributes and operations are factored out and
assigned to a broad superclass (generalization)
– generalization is the “is-a” relationship
– superclasses are ancestors, subclasses are descendants
• Classes iteratively refined into subclasses that inherit the
attributes and operations of the superclass
(specialization)
• Do you see any disadvantages to inheritance?
CSC 402 Requirements Engineering
16
OMT Inheritance Notation
Generalization
Specialization
Superclass
Subclasses
Class
Attributes
Operations
Ball
Radius, Weight
Throw, Catch
Football
air pressure
pass, kick, hand-off
Baseball
liveness
hit, pitch, tag
Basketball
air pressure , dimples
shoot, dribble, pass
CSC 402 Requirements Engineering
17
Association and Links
• An association is a relation among two or more classes describing
a group of links, with common structure and semantics
• A link is a relationship or connection between objects and is an
instance of an association
• A link or association is inherently bi-directional
– the name may imply a direction, but it can usually be inverted
– the diagram is usually drawn to read the link or association from left to right
or top to bottom
• A role is one end of an association
– roles may have names
CSC 402 Requirements Engineering
18
OMT Association Notation
Person Company
Company Person
Works For
Class, Association, and Roles
Object and Link
Johnson IBM
Employer Employee
Works For
equivalent
(Company)
(Person)
Employs
CSC 402 Requirements Engineering
19
Association and Links
Country
name
(Country)
Canada
City
name
has-capital
(City)
Ottawa
has-capital
(Country)
France
(City)
Paris
has-capital
(Country)
Austria
(City)
Vienna
has-capital
Class diagram
Instance diagram
CSC 402 Requirements Engineering
20
• Multiplicity is the number of instances of one class that
may relate to a single instance of an associated class
– 1-to-1
– 1-to-many (0 or more)
– 1-to-(zero-or-one) ‘optional’
– 1-to-(one-or-more) ‘required’
– 1-to-n
Multiplicity of Associations
n
1+
CSC 402 Requirements Engineering
21
OMT Multiplicity Notation
Instructor Courses
Student
Teaches
1+
Takes
6-65
Each course has at least one instructor
and between 6 and 65 students
A student may take many courses
An instructor may teach many courses
CSC 402 Requirements Engineering
22
Link attributes for associations
Person
name
address
Company
name
works-for
salary
job title
CSC 402 Requirements Engineering
23
Aggregation
• Aggregation is a special form of association that indicates
a “part-of” relationship between a whole and its parts
• Useful when the parts do not have independent existence
– A part is subordinate to the whole
• In an aggregation, properties and operations may be
propagated from the whole to its parts
CSC 402 Requirements Engineering
24
OMT Aggregation Notation
Window
TitleBar ScrollBar Border
CSC 402 Requirements Engineering
25
Microcomputer
Monitor
Chassis CPU
System box Mouse Keyboard
RAM Fan
1+
1+
1+
Multilevel aggregation
CSC 402 Requirements Engineering
26
An Example
FastData Inc. wants a subsystem to process office supply
orders via the Web. The user will supply via a form their
name, password, account number, and a list of supplies
along with an indication of the quantities desired. The
subsystem will validate the input, enter the order into a
database, and generate a receipt with the order number,
expected ship date, and the total cost of the order. If the
validation step fails, the subsystem will generate an error
message describing the cause of the failure.
CSC 402 Requirements Engineering
27
Purpose of Example
• We will demonstrate the UML /OMT using this example
– Class modeling will be done first
– Dynamic and Functional modeling will occur next lecture
– Detailed design will also occur next lecture
• Things to remember
– This example does not demonstrate how the technique is
applied to ALL problems. Be sure to distinguish between the
details of the example and the details of the technique!
CSC 402 Requirements Engineering
28
Concise Problem Definition
•Define the problem concisely
– Use only a single sentence
“FastData, Inc. employees may order office supplies via the
Web and receive a receipt confirming the order”
•This is the first step towards identifying the classes of the
subsystem
CSC 402 Requirements Engineering
29
Informal Strategy
•Identify the constraints governing the system
– Use only a single paragraph
“FastData, Inc. employees may order office supplies via the Internal Web and
receive a receipt confirming the order. The order must include the user name, user
password, account number, and the list of supplies. A receipt must be generated
containing an order number, ship date, and total cost. If the order is valid, it must be
entered into an order database. If the order is invalid, an error message must be
generated.”
•We now have more information to be used in identifying
classes for the subsystem
CSC 402 Requirements Engineering
30
Formalize the Strategy
•Identify the nouns of the description, which serve as the basis for
identifying the subsystem’s classes.
– Look for out-of-domain nouns (and throw them out!)
– Look for abstract nouns (use these for attributes)
– The remaining nouns are good candidates!
“FastData, Inc. employees may order office supplies via the Internal
Web and receive a receipt confirming the order. The order must
include the user name, user password, account number, and the list
of supplies. A receipt must be generated containing an order number,
ship date, and total cost. If the order is valid, it must be entered into
an order database. If the order is invalid, an error message must be
generated.”
CSC 402 Requirements Engineering
31
Nouns
• Out-of-Domain
– Internal Web
• Abstract
– user name
– user password
– account number
– order number
– ship date
– total cost
– list of supplies
– office supplies -> item
• Good Candidates
– employee
– item (was office supplies)
– receipt
– order
– order database
– error message
• Notes
We have decided not to worry
about the Web in this design.
Instead we focus on the inputs
and outputs and defer the Web
details until later.
CSC 402 Requirements Engineering
32
Class Model
order DB
employee
name
password
order
number
account
total cost
receipt
order number
ship date
total cost
item
name
quantity
price
error message
explanation
CSC 402 Requirements Engineering
33
Class Model, continued
response
receipt
order number
ship date
total cost
error message
explanation
Since both receipts and error messages will be generated as output
it might make sense to have them as subclasses of a more general
class. We do not know enough yet to assign it attributes however.
CSC 402 Requirements Engineering
34
Class Model, relationships
order DB
employee
name
password
order
number
account
total cost
receipt
order number
ship date
total cost
item
name
quantity
price
1+
error message
explanation
CSC 402 Requirements Engineering
35
Overview - Object-Oriented
Analysis and Design
• Three models
– Object model
– Dynamic model
– Functional model
• Four phases
– object-oriented analysis
– system design
– object design
– Implementation
• Detailed Design
• Integration Testing
CSC 402 Requirements Engineering
36
OMT Analysis and Design: Steps
• Class Modeling
• Dynamic Modeling
• Functional Modeling
• Add Operations to the Class Model
• Iterate and refine the models
– After the first iteration, steps may occur in parallel
or out of order
– All models must be kept in synch as changes are made
CSC 402 Requirements Engineering
37
Dynamic Modeling
• Prepare scenarios
• Identify events between objects
• Prepare an event trace for each scenario
• Build a state diagram
• Match events between objects to verify consistency
CSC 402 Requirements Engineering
38
Dynamic Model Diagrams
• The dynamic model tracks behavior over time
– described in terms of change in objects or event sequences
between objects
• Event Trace Diagrams
– show typical dialog or usage scenarios as well as exceptional
and/or special cases
• State Diagrams
– relates events, states, and state transitions
– a scenario is a path through the state diagram
CSC 402 Requirements Engineering
39
Events and Scenarios
• An event is [an ‘instantaneous’ change of state in the application
domain] that triggers a change to an object’s object state (?)
– events have attributes, which are the information transferred from one object
to another
• A scenario is a specific sequence of events representing a path
through a system’s state space
• Legitimate scenarios
– common paths (e.g. frequently used functionality)
– Error conditions and known exceptions
• An event trace extends the scenario to clarify events between
objects
CSC 402 Requirements Engineering
40
Event classes and attributes
• Event Classes
– airplane departs (airline, flight
number, city)
– mouse button pushed (button,
location)
– phone receiver lifted
– digit dialed (digit)
• Events
– United Flight 23 departs from
Rome
– right mouse button pushed at
(29, 30)
– phone receiver lifted
– digit dialed (2)
CSC 402 Requirements Engineering
41
An example scenario
• Scenario for a phone call
– caller lifts receiver
– dial tone begins
– caller dials digit (2)
– caller dials digit (7)
– caller dials digit (7)
– caller dials digit (6)
– specified phone rings
– etc.
CSC 402 Requirements Engineering
42
OMT Event Trace Notation
• objects are vertical lines
• events are horizontal lines
Customer Pump Credit Corp
“select method of payment”
select “credit”
insert card
slide card through reader
“select grade”
select “premium”
verify account
return “approved”
display unit cost, total cost, gallons dispensed
“pump on”
pump gas
update display with total cost, gallons dispensed
charge total cost to account
• arrows indicate sender and receiver
• time passes from top to bottom
CSC 402 Requirements Engineering
43
Event Trace: example
Caller Phone line Callee
caller lifts receiver
dial tone begins
dials (2)
dial tone ends
dials (7)
dials (7)
ringing tone phone rings
answers phone
phones connected
phones connected
callee hangs up
connection broken connection broken
caller hangs up
dials (6)
CSC 402 Requirements Engineering
44
States and Transitions
• A state is an interval between events (values of relevant
variables to the problem…)
– it may have an activity that can trigger starting, intermediate
and ending events
– defined in terms of a subset of object attributes and links
• A state transition is a change in an object’s attributes and
links
– it is the response of an object to an event
– all transitions leaving a state must correspond to distinct events
CSC 402 Requirements Engineering
45
OMT State Notation
• states represented as nodes: rounded rectangles with state name
– initial state represented as solid circle
– final state represented as bull’s eye
• transitions represented as edges between nodes and labeled with an event name
STATE-1
STATE-3 Event-d
Event-a
Event-
c
result
STATE-2
Event-b
Event-e
CSC 402 Requirements Engineering
46
OMT State Diagram - Example
Start White´s
turn
Black´s
turn
black
moves
white
moves
checkmate
checkmate
stalemate
stalemate
Black wins
Draw
White wins
Chess game
CSC 402 Requirements Engineering
47
Guards, Activities and Actions
• Guards are boolean conditions on attribute values
– transition can only happen when guard evaluates to “true”
– automatic transitions occur as soon as an activity is complete (check guard!)
• Activities take time to complete
– activities take place within a ‘state’
• Actions are relatively instantaneous
– actions take place on a transition or within a state (entry, exit, event actions)
– output can occur with an event
STATE-2
action-Event / action
guarded-Event [guard-2]
STATE-1
A-STATE
entry / entry-action
do: activity-A
event-1 / action-1
...
exit / exit-action
output-Event / output
[guard-1]
CSC 402 Requirements Engineering
48
Guards, Activities and Actions - Example
Vending machine model
Idle
Collecting money
coins in (amount) / add to balance
do: test item and compute change
do: dispense item do: make change
coins in (amount) / set balance
cancel / refund coins
select (item)
[item empty] [change < 0]
[change = 0] [change > 0]
CSC 402 Requirements Engineering
49
OMT State Relationships
• States can be nested or concurrent
• Events can be split and merged
Superstate (nesting) Superstate (concurrency)
substate-1 substate-2 substate-1
substate-1
substate-2
substate-2
substate-3
substate-4
substate-4
substate-3
split-event-0
event-1
event-1
event-1
event-2
event-2
event-2
merged-event-3
event-3
merged-event-4
(Synchronization)
CSC 402 Requirements Engineering
50
State Generalization: example
Transmission
Neutral Reverse
First Second Third
Forward
stop
push N push F
push R
push N
upshift
downshift
upshift
downshift
CSC 402 Requirements Engineering
51
Returning to the FastData example
• Lets define a scenario for an office supply order
processor: a successful order
– Alternatively we could describe a scenario for an unsuccessful
order
• Assumptions
– We are not going to consider how the order form is transmitted
to our system nor how our receipt is transmitted back
– The employee object is responsible for validating the input to
the system
CSC 402 Requirements Engineering
52
A successful order
• input received (we don’t care how)
• create employee object
• pass input to employee
• validate name and password
• create order object
• validate account number
• for each item
– create item
– add item to order and validate item
• compute total cost
• add order to order DB and retrieve order number and ship date
• generate receipt
• return receipt (we don’t care how)
CSC 402 Requirements Engineering
53
Event Trace
Employee Order Item Order
DB
Employee
DB
Product
DB
Account
DB
Receipt
validate name/password
validated
create
validate account number
validated
create
add
validate item
validated
repeat
CSC 402 Requirements Engineering
54
Event Trace, continued
Employee Order Item Order
DB
Employee
DB
Product
DB
Account
DB
Receipt
compute cost
add order
retrieve order number
retrieve cost
retrieve ship date
create
CSC 402 Requirements Engineering
55
(One Possible) State Transition Diagram
Idle
input
received
Employee
Validated
Employee
Created
validated
Order
Created
create
Initialization
validated
Process Order
Process
Order
Create
Item
validated
Order
Finished?
add
[remaining
items > 0]
Finalize
do: add order
create receipt
[remaining items = 0]
return
receipt
CSC 402 Requirements Engineering
56
OMT Analysis and Design: Steps
• Class Modeling
• Dynamic Modeling
• Functional Modeling
• Add Operations to the Class Model
• Iterate and refine the models
– After the first iteration, steps may occur in parallel
or out of order
– All models must be kept in synch as changes are made
CSC 402 Requirements Engineering
57
Functional Modeling
• Identify input and output values
• Build data flow diagrams showing transformation and
functional dependencies (expanding non-trivial
processes)
• Describe functions (in some language)
• Identify constraints between objects
(add to DM and FM)
CSC 402 Requirements Engineering
58
OMT DFD Notation
Process-1 Process-2
data-1
Actor-1 DataStore-1
• Processes transform data
• Actors are sources or sinks of data (= Active Objects)
• Data stores are persistent repositories of data, which may be accessed or updated
(= Passive Objects)
• Data flows between processes, actors, and data stores
data-2
source-data
Actor-2
sink-data
CSC 402 Requirements Engineering
59
Data Value Notation
• Data may be a composed, decomposed, or duplicated
data-1
data-2
data-1
data-1
data-1
composite
composite
data-
1
data-
2
CSC 402 Requirements Engineering
60
Control Flow in the DFD
Customer
Account
balance
verify
update
amount
cash
password
coded
password
password
OK
CSC 402 Requirements Engineering
61
Hierarchical DFD
• High-level functionality iteratively refined into smaller functional
units
– each high-level process may be expanded into a separate DFD
– top-level processes correspond to operations on complex objects, while
lower-level processes are operations on basic objects
• Nesting depth is dependent on application
– terminates with simple functions
– each level must be coherent
• Hierarchical DFD corresponds to the following
– context diagram shows boundaries of system
– mid-level DFDs show context decomposition
– primitive DFDs are simple functions that need not be expanded
CSC 402 Requirements Engineering
62
Data Flow Diagram: Office Supply example
Web
Server
input
stream
employee
Employee
DB
validate
employee
name/
password
verification
response (receipt)
validate
order
order
Account
DB
verification account
number
CSC 402 Requirements Engineering
63
Data Flow Diagram: Office Supply example
response (receipt)
order process
order
Product
DB
verification item
finalize
order
validated
order
Order
DB
order
order
info
CSC 402 Requirements Engineering
64
OMT Analysis and Design: Steps
• Class Modeling
• Dynamic Modeling
• Functional Modeling
• Add Operations to the Class Model
• Iterate and refine the models
– After the first iteration, steps may occur in parallel
or out of order
– All models must be kept in synch as changes are made
CSC 402 Requirements Engineering
65
Add Operations to the Object Model
• From the Object Model:
– Reading/writing object attributes (e.g., get_width, get_height of
Rectangle)
• From Events, State Actions, and Activities
in the Dynamic Model:
– Each event sent to an object => operation
(e.g., Vending machine: set_balance)
– Actions/activities may be operations
(e.g., Vending machine: do: test item and compute change)
• From Functions in the Functional Model:
– Each function in the DFD corresponds to an operation (e.g., bank
example: subtract withdrawal from Account)
CSC 402 Requirements Engineering
66
Relation of the three models
Things
object model
Interactions
dynamic model
Transformations
functional model
CSC 402 Requirements Engineering
67
Relation of Dynamic Model
to Class Model
• Dynamic model provides a second dimension - time - to objects
and classes
• Dynamic model builds upon and is derived from object model
– states in dynamic model represent sets of attribute and link
values in object model
– events in dynamic model yield operations in object model
• Relation between organization
– inherent differences in objects are distinguished in object model
as distinct classes
– temporal differences in object attributes are distinguished in
dynamic model as distinct states
CSC 402 Requirements Engineering
68
Relation of Functional Model
to Class and Dynamic Model
• Functional model describes the actions (what), the dynamic model
describes the timing (when), and the class model describes what
takes action (who)
• Functional model builds on / derived from class model
– processes in the functional model correspond to operations on
objects
– The input streams of processes in the functional model identify
objects that are related by function
– data flows in the functional model correspond to objects or
attribute values in the class model
• Functional model may capture actions not part of any scenario
CSC 402 Requirements Engineering
69
OMT: Four phases
• Object-oriented analysis
– builds a real-world model
• System design
– determines overall architecture of system
• Object design
– decides upon data structures and algorithms
• Implementation
– translates design into programming language
CSC 402 Requirements Engineering
70
System Design
• Devises high-level strategy for solving problem
– Set trade-off priorities
• Construct system architecture by organizing into subsystems (system
structuring)
– Choose an approach for persistent data management (repository model)
– Allocate components to processors and tasks (distribution model)
• Choose the implementation of control in software system (control modeling)
– Identify concurrency inherent in the problem
– Define access to global resources
• Divide problem into implementable components (modular decomposition)
CSC 402 Requirements Engineering
71
Object Design
• Full definition of all the classes in the system
• Implementation alternatives evaluated and chosen
• Combine three models to obtain class operations
• Design algorithms to implement operations
• Optimize access paths to data
• Implement control for external interactions
• Adjust class structure to increase inheritance
• Design associations
• Determine object representation
• Package classes and associations into implementable modules
CSC 402 Requirements Engineering
72
Detailed Design
• Detailed design is the process of completely specifying
an architectural design such that module implementation
can proceed (independently)
• Interface specifications
– brief description of each module
– attributes
¤ brief description and specify types
– operations
¤ brief description
¤ list of parameters and parameter types
¤ return type (if applicable)
CSC 402 Requirements Engineering
73
Detailed Design, continued
• Algorithm and data structure specification
– the designer can give hints as to what algorithms or data
structures might be most useful for a particular module
– also, the client may have specified a particular algorithm or data
structure that must be used
– in addition, constraints in the requirements may require one
approach over another
¤ for instance, implementing a data structure so that it uses the minimum
amount of memory possible vs. keeping everything in memory for speed
CSC 402 Requirements Engineering
74
Mapping design into code
• Most programming languages provide very similar sets of
features
– user-defined types
– control structures
¤ if...then...else...
¤ while x do y
¤ for i = 1 to x
¤ etc
– etc.
• This means that, in general, operations can be expressed
in many different languages
CSC 402 Requirements Engineering
75
Mapping design into code, continued
• Major differences between languages usually fall into
these categories
– compiled vs. interpreted
– procedural vs. object-oriented
– general purpose vs. application/domain specific
¤ e.g. C++ vs. FileMaker Pro’s scripting language
• If a design takes advantage of, or depends on, one or
more of these features then certain programming
languages have to be excluded from implementation
CSC 402 Requirements Engineering
76
Modularity Mechanisms
• One important feature of any programming language is
how it can represent modules directly
– C and C++ have separate header and body files
– Java has package names and class files
– Ada has a construct called a package with a specification and
body (implementation)
– etc.
• These features are important since it makes it easier to
map the design into code and to trace a code module back
to its design counterpart

Weitere ähnliche Inhalte

Ähnlich wie OMTanalysis.ppt

Object oriented analysis_and_design_v2.0
Object oriented analysis_and_design_v2.0Object oriented analysis_and_design_v2.0
Object oriented analysis_and_design_v2.0Ganapathi M
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerGobinath Subramaniam
 
Good Slides on Architecture.ppt
Good Slides on Architecture.pptGood Slides on Architecture.ppt
Good Slides on Architecture.pptpoleshan
 
10-System-ModelingFL22-sketch-19122022-091234am.pptx
10-System-ModelingFL22-sketch-19122022-091234am.pptx10-System-ModelingFL22-sketch-19122022-091234am.pptx
10-System-ModelingFL22-sketch-19122022-091234am.pptxhuzaifaahmed79
 
Third AssignmentDescribe in 100 – 200 words an application with .docx
Third AssignmentDescribe in 100 – 200 words an application with .docxThird AssignmentDescribe in 100 – 200 words an application with .docx
Third AssignmentDescribe in 100 – 200 words an application with .docxrandymartin91030
 
Transition from Systems Analysis to Systems Designs
Transition from Systems Analysis to Systems DesignsTransition from Systems Analysis to Systems Designs
Transition from Systems Analysis to Systems DesignsAnalene de Guzman
 
Software Engineering Lec5 oop-uml-i
Software Engineering Lec5 oop-uml-iSoftware Engineering Lec5 oop-uml-i
Software Engineering Lec5 oop-uml-iTaymoor Nazmy
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptitadmin33
 
Introduction to SAD.pptx
Introduction to SAD.pptxIntroduction to SAD.pptx
Introduction to SAD.pptxazida3
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssadPreeti Mishra
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)Manoj Reddy
 
Chapter 6 Object Modeling .pptxInformation Technology Project Management
Chapter 6 Object Modeling .pptxInformation Technology Project ManagementChapter 6 Object Modeling .pptxInformation Technology Project Management
Chapter 6 Object Modeling .pptxInformation Technology Project ManagementAxmedMaxamuudYoonis
 

Ähnlich wie OMTanalysis.ppt (20)

Design Patterns - GOF
Design Patterns - GOFDesign Patterns - GOF
Design Patterns - GOF
 
Analysis
AnalysisAnalysis
Analysis
 
Ooad ch 2
Ooad ch 2Ooad ch 2
Ooad ch 2
 
ppt_ooad.pdf
ppt_ooad.pdfppt_ooad.pdf
ppt_ooad.pdf
 
Object oriented analysis_and_design_v2.0
Object oriented analysis_and_design_v2.0Object oriented analysis_and_design_v2.0
Object oriented analysis_and_design_v2.0
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and Answer
 
Good Slides on Architecture.ppt
Good Slides on Architecture.pptGood Slides on Architecture.ppt
Good Slides on Architecture.ppt
 
10-System-ModelingFL22-sketch-19122022-091234am.pptx
10-System-ModelingFL22-sketch-19122022-091234am.pptx10-System-ModelingFL22-sketch-19122022-091234am.pptx
10-System-ModelingFL22-sketch-19122022-091234am.pptx
 
Third AssignmentDescribe in 100 – 200 words an application with .docx
Third AssignmentDescribe in 100 – 200 words an application with .docxThird AssignmentDescribe in 100 – 200 words an application with .docx
Third AssignmentDescribe in 100 – 200 words an application with .docx
 
34. uml
34. uml34. uml
34. uml
 
Transition from Systems Analysis to Systems Designs
Transition from Systems Analysis to Systems DesignsTransition from Systems Analysis to Systems Designs
Transition from Systems Analysis to Systems Designs
 
Software Engineering Lec5 oop-uml-i
Software Engineering Lec5 oop-uml-iSoftware Engineering Lec5 oop-uml-i
Software Engineering Lec5 oop-uml-i
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
 
Introduction to SAD.pptx
Introduction to SAD.pptxIntroduction to SAD.pptx
Introduction to SAD.pptx
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
Ooad ch 1_2
Ooad ch 1_2Ooad ch 1_2
Ooad ch 1_2
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 
Chapter 6 Object Modeling .pptxInformation Technology Project Management
Chapter 6 Object Modeling .pptxInformation Technology Project ManagementChapter 6 Object Modeling .pptxInformation Technology Project Management
Chapter 6 Object Modeling .pptxInformation Technology Project Management
 

Mehr von BalasundaramSr

Mehr von BalasundaramSr (20)

WEB 3 IS THE FILE UPLOADED IN THIS APPROACH
WEB 3 IS THE FILE UPLOADED IN THIS APPROACHWEB 3 IS THE FILE UPLOADED IN THIS APPROACH
WEB 3 IS THE FILE UPLOADED IN THIS APPROACH
 
Semantic Search to Web 3.0 Complete Tutorial
Semantic Search to Web 3.0 Complete TutorialSemantic Search to Web 3.0 Complete Tutorial
Semantic Search to Web 3.0 Complete Tutorial
 
Objects and Classes BRIEF.pptx
Objects and Classes BRIEF.pptxObjects and Classes BRIEF.pptx
Objects and Classes BRIEF.pptx
 
SocialCom09-tutorial.pdf
SocialCom09-tutorial.pdfSocialCom09-tutorial.pdf
SocialCom09-tutorial.pdf
 
13047926.ppt
13047926.ppt13047926.ppt
13047926.ppt
 
Xpath.pdf
Xpath.pdfXpath.pdf
Xpath.pdf
 
OSNs.pptx
OSNs.pptxOSNs.pptx
OSNs.pptx
 
HadoopIntroduction.pptx
HadoopIntroduction.pptxHadoopIntroduction.pptx
HadoopIntroduction.pptx
 
HadoopIntroduction.pptx
HadoopIntroduction.pptxHadoopIntroduction.pptx
HadoopIntroduction.pptx
 
Data Mart Lake Ware.pptx
Data Mart Lake Ware.pptxData Mart Lake Ware.pptx
Data Mart Lake Ware.pptx
 
Simple SNA.pdf
Simple SNA.pdfSimple SNA.pdf
Simple SNA.pdf
 
XPATH_XSLT-1.pptx
XPATH_XSLT-1.pptxXPATH_XSLT-1.pptx
XPATH_XSLT-1.pptx
 
Cognitive Science.ppt
Cognitive Science.pptCognitive Science.ppt
Cognitive Science.ppt
 
Web Page Design.ppt
Web Page Design.pptWeb Page Design.ppt
Web Page Design.ppt
 
wipo_res_dev_ge_09_www_130165.ppt
wipo_res_dev_ge_09_www_130165.pptwipo_res_dev_ge_09_www_130165.ppt
wipo_res_dev_ge_09_www_130165.ppt
 
OOA Analysis(1).pdf
OOA Analysis(1).pdfOOA Analysis(1).pdf
OOA Analysis(1).pdf
 
OODIAGRAMS.ppt
OODIAGRAMS.pptOODIAGRAMS.ppt
OODIAGRAMS.ppt
 
Threading.pptx
Threading.pptxThreading.pptx
Threading.pptx
 
OMTanalysis.ppt
OMTanalysis.pptOMTanalysis.ppt
OMTanalysis.ppt
 
network.ppt
network.pptnetwork.ppt
network.ppt
 

Kürzlich hochgeladen

PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiessarkmank1
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.Kamal Acharya
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Call Girls Mumbai
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"mphochane1998
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxchumtiyababu
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesMayuraD1
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEselvakumar948
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdfKamal Acharya
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadhamedmustafa094
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdfKamal Acharya
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network DevicesChandrakantDivate1
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxSCMS School of Architecture
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxNadaHaitham1
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 

Kürzlich hochgeladen (20)

PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 

OMTanalysis.ppt

  • 1. CSC 402 Requirements Engineering 1 Overview - Object-Oriented Analysis and Design • Design thinking • Object Modeling Technique – Object-Oriented Analysis – Object-Oriented Design • Three models – Object model – Dynamic model – Functional model • Four phases
  • 2. CSC 402 Requirements Engineering 2 Design Goals • Design transforms requirements into – an architecture diagram ¤ subsystems, modules and their relationships – a detailed design ¤ a specification of the abstract interface, data structures, and algorithms of each module • Also develops – a review plan for ensuring the design meets the requirements – a test plan for ensuring the implementation meets the design
  • 3. CSC 402 Requirements Engineering 3 Object-Oriented Software Development • Object-Oriented Methodology – development approach used to build complex systems using the concepts of object, class, polymorphism, and inheritance with a view towards reusability – encourages software engineers to think of the problem in terms of the application domain early and apply a consistent approach throughout the entire life-cycle • Object-Oriented Analysis and Design – analysis models the “real-world” requirements, independent of the implementation environment – design applies object-oriented concepts to develop and communicate the architecture and details of how to meet requirements
  • 4. CSC 402 Requirements Engineering 4 Object Modeling Technique Process via UML • OMT [Rumbaugh et al.,1991] consists of – building three complementary models of the system – adding implementation details to the models – implementing the models • OMT includes a set of – phases [processes] – diagramming techniques • OMT has four phases – object-oriented analysis builds a real-world model – system design determines overall architecture of system – object design decides upon data structures and algorithms – implementation translates design into programming language
  • 5. CSC 402 Requirements Engineering 5 OMT Stages and Models Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design - Algorithms/data structures to implement each class Implementation - Translation of object classes and relationships to a particular object-oriented language time Object Model - Static structure of objects and their relationships (object diagram) Dynamic Model - Control aspects of the system (state diagrams) Functional Model - Data value transformations (dataflow diagrams) System
  • 6. CSC 402 Requirements Engineering 6 Introduction to Object-Oriented Analysis • Semi-formal technique – class modeling – dynamic modeling – functional modeling • These steps focus on – data – actions – their relationships • Reuses familiar tools – E-R diagrams – Finite State Machines – Data flow diagrams • Steps and diagrams – typically performed in parallel after initial class definition – must be kept in synch • Object-Oriented Analysis is the “requirements phase” of Object- Oriented Software Development – think of it as an alternative semi-formal technique
  • 7. CSC 402 Requirements Engineering 7 Object-Oriented Analysis • Builds a “real-world” model from requirements – client interviews, domain knowledge, real-world experience collected in use cases and other simple notations • OOA models address three aspects of the system (its objects) – class structure and relationships – sequencing of interactions and events – data transformations and computations
  • 8. CSC 402 Requirements Engineering 8 Models of Object-Oriented Analysis (cf UML) • Class Model – static structure – what objects are in the system? – how are they related? • Dynamic Model – behavioral aspects – what events occur in the system – when do they occur and in what order? • Functional Model – data transformations – “what” does the system do • Data-Oriented • Action-Oriented • Both Data and Actions
  • 9. CSC 402 Requirements Engineering 9 OO Analysis and Design: Steps • Class Modeling • Dynamic Modeling • Functional Modeling • Add Operations to the Class Model • Iterate and refine the models – After the first iteration, steps may occur in parallel or out of order – All models must be kept in synch as changes are made
  • 10. CSC 402 Requirements Engineering 10 Class Modeling • Identify objects and classes • Prepare a data dictionary • Identify associations between objects • Identify class attributes and initial set of operations • Organize object classes using inheritance
  • 11. CSC 402 Requirements Engineering 11 Classes, Attributes and Operations • Attributes define the properties of the objects – every instance of the class has the same attributes – an attribute has a data type – the values of the attributes may differ among instances • Operations define the behavior of the objects – action performed on or by an object – available for all instances of the class – need not be unique among classes Class Attributes Operations ball radius, weight catch, throw football air pressure pass, kick, hand-off baseball liveness hit, pitch, tag
  • 12. CSC 402 Requirements Engineering 12 Object Model Notation (refresher) Class Name (Class Name) InstanceVariable1 InstanceVariable2: type InstanceVariable1 = value InstanceVariable2: type Method1() Method2(arguments) return type Method1() Method2(arguments) return type Classes are represented as rectangles; The class name is at the top, followed by attributes (instance variables) and methods (operations) Depending on context some information can be hidden such as types or method arguments Objects are represented as rounded rectangles; The object’s name is its classname surrounded by parentheses Instance variables can display the values that they have been assigned; pointer types will often point (not shown) to the object being referenced
  • 13. CSC 402 Requirements Engineering 13 OMT Instantiation Notation Class Name attribute_1: data_type_1 = default_1 attribute_2: data_type_2 = default_2 . . . attribute_m: data_type_m = default_m (Class Name) attribute_1 = value_1 attribute_2 = value _2 . . . attribute_m = value _m Class Instance
  • 14. CSC 402 Requirements Engineering 14 Instantiation - Example Person name age weight (Person) (Person) Joe Smith age=39 weight=158 Mary Wilson age=27 weight=121
  • 15. CSC 402 Requirements Engineering 15 Inheritance • Classes with similar attributes and operations may be organized hierarchically • Common attributes and operations are factored out and assigned to a broad superclass (generalization) – generalization is the “is-a” relationship – superclasses are ancestors, subclasses are descendants • Classes iteratively refined into subclasses that inherit the attributes and operations of the superclass (specialization) • Do you see any disadvantages to inheritance?
  • 16. CSC 402 Requirements Engineering 16 OMT Inheritance Notation Generalization Specialization Superclass Subclasses Class Attributes Operations Ball Radius, Weight Throw, Catch Football air pressure pass, kick, hand-off Baseball liveness hit, pitch, tag Basketball air pressure , dimples shoot, dribble, pass
  • 17. CSC 402 Requirements Engineering 17 Association and Links • An association is a relation among two or more classes describing a group of links, with common structure and semantics • A link is a relationship or connection between objects and is an instance of an association • A link or association is inherently bi-directional – the name may imply a direction, but it can usually be inverted – the diagram is usually drawn to read the link or association from left to right or top to bottom • A role is one end of an association – roles may have names
  • 18. CSC 402 Requirements Engineering 18 OMT Association Notation Person Company Company Person Works For Class, Association, and Roles Object and Link Johnson IBM Employer Employee Works For equivalent (Company) (Person) Employs
  • 19. CSC 402 Requirements Engineering 19 Association and Links Country name (Country) Canada City name has-capital (City) Ottawa has-capital (Country) France (City) Paris has-capital (Country) Austria (City) Vienna has-capital Class diagram Instance diagram
  • 20. CSC 402 Requirements Engineering 20 • Multiplicity is the number of instances of one class that may relate to a single instance of an associated class – 1-to-1 – 1-to-many (0 or more) – 1-to-(zero-or-one) ‘optional’ – 1-to-(one-or-more) ‘required’ – 1-to-n Multiplicity of Associations n 1+
  • 21. CSC 402 Requirements Engineering 21 OMT Multiplicity Notation Instructor Courses Student Teaches 1+ Takes 6-65 Each course has at least one instructor and between 6 and 65 students A student may take many courses An instructor may teach many courses
  • 22. CSC 402 Requirements Engineering 22 Link attributes for associations Person name address Company name works-for salary job title
  • 23. CSC 402 Requirements Engineering 23 Aggregation • Aggregation is a special form of association that indicates a “part-of” relationship between a whole and its parts • Useful when the parts do not have independent existence – A part is subordinate to the whole • In an aggregation, properties and operations may be propagated from the whole to its parts
  • 24. CSC 402 Requirements Engineering 24 OMT Aggregation Notation Window TitleBar ScrollBar Border
  • 25. CSC 402 Requirements Engineering 25 Microcomputer Monitor Chassis CPU System box Mouse Keyboard RAM Fan 1+ 1+ 1+ Multilevel aggregation
  • 26. CSC 402 Requirements Engineering 26 An Example FastData Inc. wants a subsystem to process office supply orders via the Web. The user will supply via a form their name, password, account number, and a list of supplies along with an indication of the quantities desired. The subsystem will validate the input, enter the order into a database, and generate a receipt with the order number, expected ship date, and the total cost of the order. If the validation step fails, the subsystem will generate an error message describing the cause of the failure.
  • 27. CSC 402 Requirements Engineering 27 Purpose of Example • We will demonstrate the UML /OMT using this example – Class modeling will be done first – Dynamic and Functional modeling will occur next lecture – Detailed design will also occur next lecture • Things to remember – This example does not demonstrate how the technique is applied to ALL problems. Be sure to distinguish between the details of the example and the details of the technique!
  • 28. CSC 402 Requirements Engineering 28 Concise Problem Definition •Define the problem concisely – Use only a single sentence “FastData, Inc. employees may order office supplies via the Web and receive a receipt confirming the order” •This is the first step towards identifying the classes of the subsystem
  • 29. CSC 402 Requirements Engineering 29 Informal Strategy •Identify the constraints governing the system – Use only a single paragraph “FastData, Inc. employees may order office supplies via the Internal Web and receive a receipt confirming the order. The order must include the user name, user password, account number, and the list of supplies. A receipt must be generated containing an order number, ship date, and total cost. If the order is valid, it must be entered into an order database. If the order is invalid, an error message must be generated.” •We now have more information to be used in identifying classes for the subsystem
  • 30. CSC 402 Requirements Engineering 30 Formalize the Strategy •Identify the nouns of the description, which serve as the basis for identifying the subsystem’s classes. – Look for out-of-domain nouns (and throw them out!) – Look for abstract nouns (use these for attributes) – The remaining nouns are good candidates! “FastData, Inc. employees may order office supplies via the Internal Web and receive a receipt confirming the order. The order must include the user name, user password, account number, and the list of supplies. A receipt must be generated containing an order number, ship date, and total cost. If the order is valid, it must be entered into an order database. If the order is invalid, an error message must be generated.”
  • 31. CSC 402 Requirements Engineering 31 Nouns • Out-of-Domain – Internal Web • Abstract – user name – user password – account number – order number – ship date – total cost – list of supplies – office supplies -> item • Good Candidates – employee – item (was office supplies) – receipt – order – order database – error message • Notes We have decided not to worry about the Web in this design. Instead we focus on the inputs and outputs and defer the Web details until later.
  • 32. CSC 402 Requirements Engineering 32 Class Model order DB employee name password order number account total cost receipt order number ship date total cost item name quantity price error message explanation
  • 33. CSC 402 Requirements Engineering 33 Class Model, continued response receipt order number ship date total cost error message explanation Since both receipts and error messages will be generated as output it might make sense to have them as subclasses of a more general class. We do not know enough yet to assign it attributes however.
  • 34. CSC 402 Requirements Engineering 34 Class Model, relationships order DB employee name password order number account total cost receipt order number ship date total cost item name quantity price 1+ error message explanation
  • 35. CSC 402 Requirements Engineering 35 Overview - Object-Oriented Analysis and Design • Three models – Object model – Dynamic model – Functional model • Four phases – object-oriented analysis – system design – object design – Implementation • Detailed Design • Integration Testing
  • 36. CSC 402 Requirements Engineering 36 OMT Analysis and Design: Steps • Class Modeling • Dynamic Modeling • Functional Modeling • Add Operations to the Class Model • Iterate and refine the models – After the first iteration, steps may occur in parallel or out of order – All models must be kept in synch as changes are made
  • 37. CSC 402 Requirements Engineering 37 Dynamic Modeling • Prepare scenarios • Identify events between objects • Prepare an event trace for each scenario • Build a state diagram • Match events between objects to verify consistency
  • 38. CSC 402 Requirements Engineering 38 Dynamic Model Diagrams • The dynamic model tracks behavior over time – described in terms of change in objects or event sequences between objects • Event Trace Diagrams – show typical dialog or usage scenarios as well as exceptional and/or special cases • State Diagrams – relates events, states, and state transitions – a scenario is a path through the state diagram
  • 39. CSC 402 Requirements Engineering 39 Events and Scenarios • An event is [an ‘instantaneous’ change of state in the application domain] that triggers a change to an object’s object state (?) – events have attributes, which are the information transferred from one object to another • A scenario is a specific sequence of events representing a path through a system’s state space • Legitimate scenarios – common paths (e.g. frequently used functionality) – Error conditions and known exceptions • An event trace extends the scenario to clarify events between objects
  • 40. CSC 402 Requirements Engineering 40 Event classes and attributes • Event Classes – airplane departs (airline, flight number, city) – mouse button pushed (button, location) – phone receiver lifted – digit dialed (digit) • Events – United Flight 23 departs from Rome – right mouse button pushed at (29, 30) – phone receiver lifted – digit dialed (2)
  • 41. CSC 402 Requirements Engineering 41 An example scenario • Scenario for a phone call – caller lifts receiver – dial tone begins – caller dials digit (2) – caller dials digit (7) – caller dials digit (7) – caller dials digit (6) – specified phone rings – etc.
  • 42. CSC 402 Requirements Engineering 42 OMT Event Trace Notation • objects are vertical lines • events are horizontal lines Customer Pump Credit Corp “select method of payment” select “credit” insert card slide card through reader “select grade” select “premium” verify account return “approved” display unit cost, total cost, gallons dispensed “pump on” pump gas update display with total cost, gallons dispensed charge total cost to account • arrows indicate sender and receiver • time passes from top to bottom
  • 43. CSC 402 Requirements Engineering 43 Event Trace: example Caller Phone line Callee caller lifts receiver dial tone begins dials (2) dial tone ends dials (7) dials (7) ringing tone phone rings answers phone phones connected phones connected callee hangs up connection broken connection broken caller hangs up dials (6)
  • 44. CSC 402 Requirements Engineering 44 States and Transitions • A state is an interval between events (values of relevant variables to the problem…) – it may have an activity that can trigger starting, intermediate and ending events – defined in terms of a subset of object attributes and links • A state transition is a change in an object’s attributes and links – it is the response of an object to an event – all transitions leaving a state must correspond to distinct events
  • 45. CSC 402 Requirements Engineering 45 OMT State Notation • states represented as nodes: rounded rectangles with state name – initial state represented as solid circle – final state represented as bull’s eye • transitions represented as edges between nodes and labeled with an event name STATE-1 STATE-3 Event-d Event-a Event- c result STATE-2 Event-b Event-e
  • 46. CSC 402 Requirements Engineering 46 OMT State Diagram - Example Start White´s turn Black´s turn black moves white moves checkmate checkmate stalemate stalemate Black wins Draw White wins Chess game
  • 47. CSC 402 Requirements Engineering 47 Guards, Activities and Actions • Guards are boolean conditions on attribute values – transition can only happen when guard evaluates to “true” – automatic transitions occur as soon as an activity is complete (check guard!) • Activities take time to complete – activities take place within a ‘state’ • Actions are relatively instantaneous – actions take place on a transition or within a state (entry, exit, event actions) – output can occur with an event STATE-2 action-Event / action guarded-Event [guard-2] STATE-1 A-STATE entry / entry-action do: activity-A event-1 / action-1 ... exit / exit-action output-Event / output [guard-1]
  • 48. CSC 402 Requirements Engineering 48 Guards, Activities and Actions - Example Vending machine model Idle Collecting money coins in (amount) / add to balance do: test item and compute change do: dispense item do: make change coins in (amount) / set balance cancel / refund coins select (item) [item empty] [change < 0] [change = 0] [change > 0]
  • 49. CSC 402 Requirements Engineering 49 OMT State Relationships • States can be nested or concurrent • Events can be split and merged Superstate (nesting) Superstate (concurrency) substate-1 substate-2 substate-1 substate-1 substate-2 substate-2 substate-3 substate-4 substate-4 substate-3 split-event-0 event-1 event-1 event-1 event-2 event-2 event-2 merged-event-3 event-3 merged-event-4 (Synchronization)
  • 50. CSC 402 Requirements Engineering 50 State Generalization: example Transmission Neutral Reverse First Second Third Forward stop push N push F push R push N upshift downshift upshift downshift
  • 51. CSC 402 Requirements Engineering 51 Returning to the FastData example • Lets define a scenario for an office supply order processor: a successful order – Alternatively we could describe a scenario for an unsuccessful order • Assumptions – We are not going to consider how the order form is transmitted to our system nor how our receipt is transmitted back – The employee object is responsible for validating the input to the system
  • 52. CSC 402 Requirements Engineering 52 A successful order • input received (we don’t care how) • create employee object • pass input to employee • validate name and password • create order object • validate account number • for each item – create item – add item to order and validate item • compute total cost • add order to order DB and retrieve order number and ship date • generate receipt • return receipt (we don’t care how)
  • 53. CSC 402 Requirements Engineering 53 Event Trace Employee Order Item Order DB Employee DB Product DB Account DB Receipt validate name/password validated create validate account number validated create add validate item validated repeat
  • 54. CSC 402 Requirements Engineering 54 Event Trace, continued Employee Order Item Order DB Employee DB Product DB Account DB Receipt compute cost add order retrieve order number retrieve cost retrieve ship date create
  • 55. CSC 402 Requirements Engineering 55 (One Possible) State Transition Diagram Idle input received Employee Validated Employee Created validated Order Created create Initialization validated Process Order Process Order Create Item validated Order Finished? add [remaining items > 0] Finalize do: add order create receipt [remaining items = 0] return receipt
  • 56. CSC 402 Requirements Engineering 56 OMT Analysis and Design: Steps • Class Modeling • Dynamic Modeling • Functional Modeling • Add Operations to the Class Model • Iterate and refine the models – After the first iteration, steps may occur in parallel or out of order – All models must be kept in synch as changes are made
  • 57. CSC 402 Requirements Engineering 57 Functional Modeling • Identify input and output values • Build data flow diagrams showing transformation and functional dependencies (expanding non-trivial processes) • Describe functions (in some language) • Identify constraints between objects (add to DM and FM)
  • 58. CSC 402 Requirements Engineering 58 OMT DFD Notation Process-1 Process-2 data-1 Actor-1 DataStore-1 • Processes transform data • Actors are sources or sinks of data (= Active Objects) • Data stores are persistent repositories of data, which may be accessed or updated (= Passive Objects) • Data flows between processes, actors, and data stores data-2 source-data Actor-2 sink-data
  • 59. CSC 402 Requirements Engineering 59 Data Value Notation • Data may be a composed, decomposed, or duplicated data-1 data-2 data-1 data-1 data-1 composite composite data- 1 data- 2
  • 60. CSC 402 Requirements Engineering 60 Control Flow in the DFD Customer Account balance verify update amount cash password coded password password OK
  • 61. CSC 402 Requirements Engineering 61 Hierarchical DFD • High-level functionality iteratively refined into smaller functional units – each high-level process may be expanded into a separate DFD – top-level processes correspond to operations on complex objects, while lower-level processes are operations on basic objects • Nesting depth is dependent on application – terminates with simple functions – each level must be coherent • Hierarchical DFD corresponds to the following – context diagram shows boundaries of system – mid-level DFDs show context decomposition – primitive DFDs are simple functions that need not be expanded
  • 62. CSC 402 Requirements Engineering 62 Data Flow Diagram: Office Supply example Web Server input stream employee Employee DB validate employee name/ password verification response (receipt) validate order order Account DB verification account number
  • 63. CSC 402 Requirements Engineering 63 Data Flow Diagram: Office Supply example response (receipt) order process order Product DB verification item finalize order validated order Order DB order order info
  • 64. CSC 402 Requirements Engineering 64 OMT Analysis and Design: Steps • Class Modeling • Dynamic Modeling • Functional Modeling • Add Operations to the Class Model • Iterate and refine the models – After the first iteration, steps may occur in parallel or out of order – All models must be kept in synch as changes are made
  • 65. CSC 402 Requirements Engineering 65 Add Operations to the Object Model • From the Object Model: – Reading/writing object attributes (e.g., get_width, get_height of Rectangle) • From Events, State Actions, and Activities in the Dynamic Model: – Each event sent to an object => operation (e.g., Vending machine: set_balance) – Actions/activities may be operations (e.g., Vending machine: do: test item and compute change) • From Functions in the Functional Model: – Each function in the DFD corresponds to an operation (e.g., bank example: subtract withdrawal from Account)
  • 66. CSC 402 Requirements Engineering 66 Relation of the three models Things object model Interactions dynamic model Transformations functional model
  • 67. CSC 402 Requirements Engineering 67 Relation of Dynamic Model to Class Model • Dynamic model provides a second dimension - time - to objects and classes • Dynamic model builds upon and is derived from object model – states in dynamic model represent sets of attribute and link values in object model – events in dynamic model yield operations in object model • Relation between organization – inherent differences in objects are distinguished in object model as distinct classes – temporal differences in object attributes are distinguished in dynamic model as distinct states
  • 68. CSC 402 Requirements Engineering 68 Relation of Functional Model to Class and Dynamic Model • Functional model describes the actions (what), the dynamic model describes the timing (when), and the class model describes what takes action (who) • Functional model builds on / derived from class model – processes in the functional model correspond to operations on objects – The input streams of processes in the functional model identify objects that are related by function – data flows in the functional model correspond to objects or attribute values in the class model • Functional model may capture actions not part of any scenario
  • 69. CSC 402 Requirements Engineering 69 OMT: Four phases • Object-oriented analysis – builds a real-world model • System design – determines overall architecture of system • Object design – decides upon data structures and algorithms • Implementation – translates design into programming language
  • 70. CSC 402 Requirements Engineering 70 System Design • Devises high-level strategy for solving problem – Set trade-off priorities • Construct system architecture by organizing into subsystems (system structuring) – Choose an approach for persistent data management (repository model) – Allocate components to processors and tasks (distribution model) • Choose the implementation of control in software system (control modeling) – Identify concurrency inherent in the problem – Define access to global resources • Divide problem into implementable components (modular decomposition)
  • 71. CSC 402 Requirements Engineering 71 Object Design • Full definition of all the classes in the system • Implementation alternatives evaluated and chosen • Combine three models to obtain class operations • Design algorithms to implement operations • Optimize access paths to data • Implement control for external interactions • Adjust class structure to increase inheritance • Design associations • Determine object representation • Package classes and associations into implementable modules
  • 72. CSC 402 Requirements Engineering 72 Detailed Design • Detailed design is the process of completely specifying an architectural design such that module implementation can proceed (independently) • Interface specifications – brief description of each module – attributes ¤ brief description and specify types – operations ¤ brief description ¤ list of parameters and parameter types ¤ return type (if applicable)
  • 73. CSC 402 Requirements Engineering 73 Detailed Design, continued • Algorithm and data structure specification – the designer can give hints as to what algorithms or data structures might be most useful for a particular module – also, the client may have specified a particular algorithm or data structure that must be used – in addition, constraints in the requirements may require one approach over another ¤ for instance, implementing a data structure so that it uses the minimum amount of memory possible vs. keeping everything in memory for speed
  • 74. CSC 402 Requirements Engineering 74 Mapping design into code • Most programming languages provide very similar sets of features – user-defined types – control structures ¤ if...then...else... ¤ while x do y ¤ for i = 1 to x ¤ etc – etc. • This means that, in general, operations can be expressed in many different languages
  • 75. CSC 402 Requirements Engineering 75 Mapping design into code, continued • Major differences between languages usually fall into these categories – compiled vs. interpreted – procedural vs. object-oriented – general purpose vs. application/domain specific ¤ e.g. C++ vs. FileMaker Pro’s scripting language • If a design takes advantage of, or depends on, one or more of these features then certain programming languages have to be excluded from implementation
  • 76. CSC 402 Requirements Engineering 76 Modularity Mechanisms • One important feature of any programming language is how it can represent modules directly – C and C++ have separate header and body files – Java has package names and class files – Ada has a construct called a package with a specification and body (implementation) – etc. • These features are important since it makes it easier to map the design into code and to trace a code module back to its design counterpart