Object model
Download
Report
Transcript Object model
Requirements Model
Focus on WHAT, not HOW
Analyst needs to understand the problem
» How does software fit into overall systems?
» What are the customer’s concerns?
» How will the software solve the customer’s
problems
Serves as the contract between the customer
and the developer
Starting point for design
Dillon: CSE470: Object Modeling
1
Getting StartedUnderstanding the Customer
Interview customer
Understand the
current process
» Flow of information
» Form of information
Decompose the
problem
Dillon: CSE470: Object Modeling
Describe the
problem in the
customer’s
terminology
Have the customer
review, correct, and
refine the
description of the
problem
2
Propose a Conceptual “Solution”
May model the current approach or
propose a completely new approach
Present alternative approaches
» not alternative implementations, but
alternative conceptual approaches
Use UI prototype to help clarify issues
Remember importance of maintainability
» Plan for extensibility
Dillon: CSE470: Object Modeling
3
Purpose of Modeling
Testing a physical entity before building
Communication with customer
Visualization
Reduction of complexity
Better understanding of the problem
Dillon: CSE470: Object Modeling
4
Early Modeling Notations
Template-based natural languages
» SREM
Boxes and arrows depicting data and
control flow
» SADT, IDEF
» Statecharts
Data Structures
» Jackson Design Notation
Dillon: CSE470: Object Modeling
5
OO was the catalyst for new
OO modeling techniques
Many different contenders
» Grady Booch, Rational Software
» Jim Rumbaugh, GE, OMT
» Ivar Jacobsen, Ericsson, use cases
Unified Modeling Language (UML)
» Combines Booch, Rumbaugh, Jacobsen’s
techniques
» PL/1 of modeling languages
Dillon: CSE470: Object Modeling
6
Object Modeling Technique (OMT)
Three complimentary views of the
system
Object model (WHAT)
» Static, structural view of the system
» Describes objects in the system and their
relationships
Dillon: CSE470: Object Modeling
7
Object Modeling Technique (OMT)
Dynamic model (WHEN)
» Temporal, behavioral, control view of
system
» Interaction among objects
Functional model (HOW)
» Transformational, function view of the system
» Describes the transformation of data
Dillon: CSE470: Object Modeling
8
Object Model
Object - a concept, abstraction, or thing
» Promote understanding of problem domain
» Object is distinguishable and has identity
Class - group of objects with
» similar properties,
» common behavior
» common relationships to other objects
» common semantics
Dillon: CSE470: Object Modeling
9
Object Model (cont.)
An object is an instance of a class
Attribute - a data value associated with
an object
» pure value, not an object
Operation - a function or transformation
that may be applied to or by an object
Dillon: CSE470: Object Modeling
10
Object Model (cont.)
Class Notation
Class Name
attribute
attribute: type = initial value
...
operation(arg-list): result-type
...
Attributes and operations shown depends on desired
level of detail
Dillon: CSE470: Object Modeling
11
Example: WEB Class
Synchronous instructional web tool
Use the Web Browser as sophisticated
data display
Group-based communication model
Reliable multi-cast communication
protocol
Dillon: CSE470: Object Modeling
12
WEB Class Components
Browser synchronization
» Web_Instructor
– Detect changes in the instructor browser
– Format information into resources
– Send resources (reliably)
» Web_Student
– Receive and unpack resources
– Display resources through the web browser
Dillon: CSE470: Object Modeling
13
WEB Class Components
(cont.)
Real audio stream
» Audio connection from the instructor to the
students
Live connection
» Chat tool
» Feedback mechanism from the students to
the instructor
Dillon: CSE470: Object Modeling
14
Example Class Definitions
Web_Student
name: string
Web_Instructor
name: string
Helper_App
server_name: string
server_mime: string
server_path: string
Etc. ...
start_service
send_file(filename,URL)
spawn_viewer(appname,filename)
Dillon: CSE470: Object Modeling
15
Object Model: Associations
Means for establishing relationships among
classes
» group of “links” with common structure and
semantics
– physical or conceptual connection between object
instances
» inherently bi-directional
» may be binary, ternary, or higher order
Dillon: CSE470: Object Modeling
16
Example: Association
Mreceiver
Dillon: CSE470: Object Modeling
Communicates with
Msender
17
Object Model: Aggregation
“Part-of” relationship
» associates an object representing an
assembly with the objects representing its
components
Special form of association
» Transitive
» Antisymmetric
Dillon: CSE470: Object Modeling
18
Example: Aggregation
Web_Student
Browser_Wrapper
Browser_Slave
Mreceiver
Dillon: CSE470: Object Modeling
19
Object Model: Generalization
“Is-a” relationship between classes
» Subclass(es) refine a superclass
» Superclass generalizes its subclass(es)
» Subclass(es) inherit attributes and
operations of the superclass
» Transitive association
Dillon: CSE470: Object Modeling
20
Example: Generalization
Web_User
name: string
Web_Student
Dillon: CSE470: Object Modeling
Web_Instructor
21
Object Model: Multiplicities
Indication how many instances of one
class may relate to an instance of
another class
Zero or more
One or more
Dillon: CSE470: Object Modeling
3
Exactly three
1+
One or more
2-6
From 2 to 6
22
Example: Web Class Object
Model
Web_User
Web_Student
Web_Instructor
Browser_Slave
Mreceiver
Msender
Browser_Wrapper
Dillon: CSE470: Object Modeling
ViewerConfig
Helper_App
Browser_Listener
23
Object Model: Creation Tips
Understand the problem
Keep it simple (initially)
Choose good class
names
Ignore multiplicities
Do not feel you have to
use all the constructs
Concentrate on WHAT
Document, document,
Look for binary
associations
document!
Refine until complete
and correct
(initially)
Dillon: CSE470: Object Modeling
24