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