Вы находитесь на странице: 1из 24

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


Getting Started-
Understanding the Customer

 Describe the
 Interview customer
problem in the
 Understand the customer’s
current process terminology
» Flow of information  Have the customer
» Form of information
review, correct, and
 Decompose the refine the
problem description of the
problem

Dillon: CSE470: Object Modeling


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


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
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


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


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


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


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


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 1


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 1
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 1


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 1


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 1


Example Class Definitions

Web_Student Web_Instructor
name: string 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 1


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 1


Example: Association

Communicates with
Mreceiver Msender

Dillon: CSE470: Object Modeling 1


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 1


Example: Aggregation
Web_Student

Browser_Wrapper Browser_Slave

Mreceiver

Dillon: CSE470: Object Modeling 1


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 2


Example: Generalization

Web_User

name: string

Web_Student Web_Instructor

Dillon: CSE470: Object Modeling 2


Object Model: Multiplicities

 Indication how many instances of one


class may relate to an instance of
another class
Zero or more
One or more
3 Exactly three
1+ One or more

2-6 From 2 to 6

Dillon: CSE470: Object Modeling 2


Example: Web Class Object
Model
Web_User

Web_Student

Web_Instructor

Browser_Slave

Mreceiver Msender ViewerConfig

Browser_Wrapper Helper_App Browser_Listener

Dillon: CSE470: Object Modeling 2


Object Model: Creation Tips

 Understand the problem  Do not feel you have to


 Keep it simple (initially) use all the constructs
 Choose good class  Concentrate on WHAT
names  Document, document,
 Look for binary
document!
associations
 Refine until complete
 Ignore multiplicities
and correct
(initially)

Dillon: CSE470: Object Modeling 2

Вам также может понравиться