View
212
Download
0
Category
Tags:
Preview:
Citation preview
Dillon: CSE470: Object Modeling 1
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 2
Getting Started-Understanding the Customer
Interview customer Understand the
current process» Flow of information» Form of information
Decompose the problem
Describe the problem in the customer’s terminology
Have the customer review, correct, and refine the description of the problem
Dillon: CSE470: Object Modeling 3
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 4
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 5
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 6
OO was the catalyst for newOO 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 7
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 8
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 9
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 10
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 11
Object Model (cont.)
Class Notation
Class Name
attributeattribute: type = initial value
operation(arg-list): result-type
. . .
. . .
Attributes and operations shown depends on desired level of detail
Dillon: CSE470: Object Modeling 12
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 13
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 14
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 15
Example Class Definitions
Web_Student
name: string
Web_Instructor
name: string
Helper_App
server_name: stringserver_mime: stringserver_path: string
start_servicesend_file(filename,URL)spawn_viewer(appname,filename)
Etc. ...
Dillon: CSE470: Object Modeling 16
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 17
Example: Association
Mreceiver MsenderCommunicates with
Dillon: CSE470: Object Modeling 18
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 19
Example: Aggregation
Web_Student
Browser_SlaveBrowser_Wrapper
Mreceiver
Dillon: CSE470: Object Modeling 20
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 21
Example: Generalization
Web_User
name: string
Web_Student Web_Instructor
Dillon: CSE470: Object Modeling 22
Object Model: Multiplicities
Indication how many instances of one class may relate to an instance of another class
3
1+
2-6
Zero or more
One or more
Exactly three
One or more
From 2 to 6
Dillon: CSE470: Object Modeling 23
Example: Web Class Object Model
Browser_Wrapper Browser_ListenerHelper_App
Msender ViewerConfig
Web_Instructor
Mreceiver
Browser_Slave
Web_Student
Web_User
Dillon: CSE470: Object Modeling 24
Object Model: Creation Tips
Understand the problem
Keep it simple (initially)
Choose good class
names
Look for binary
associations
Ignore multiplicities
(initially)
Do not feel you have to
use all the constructs
Concentrate on WHAT
Document, document,
document!
Refine until complete
and correct
Recommended