Title: Requirements Model
1Requirements Model
- Focus on WHAT, not HOW
- Analyst needs to understand the problem
- How does software fit into overall systems?
- What are the customers concerns?
- How will the software solve the customers
problems - Serves as the contract between the customer and
the developer - Starting point for design
2Getting Started-Understanding the Customer
- Interview customer
- Understand the current process
- Flow of information
- Form of information
- Decompose the problem
- Describe the problem in the customers
terminology - Have the customer review, correct, and refine the
description of the problem
3Propose 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
4Purpose of Modeling
- Testing a physical entity before building
- Communication with customer
- Visualization
- Reduction of complexity
- Better understanding of the problem
5Early Modeling Notations
- Template-based natural languages
- SREM
- Boxes and arrows depicting data and control flow
- SADT, IDEF
- Statecharts
- Data Structures
- Jackson Design Notation
6OO 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, Jacobsens techniques
- PL/1 of modeling languages
7Object 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
8Object 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
9Object 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
10Object 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
11Object Model (cont.)
Class Name
attribute attribute type initial value
. . .
operation(arg-list) result-type
. . .
Attributes and operations shown depends on
desired level of detail
12Example WEB Class
- Synchronous instructional web tool
- Use the Web Browser as sophisticated data display
- Group-based communication model
- Reliable multi-cast communication protocol
13WEB 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
14WEB 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
15Example Class Definitions
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)
16Object 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
17Example Association
Communicates with
Mreceiver
Msender
18Object Model Aggregation
- Part-of relationship
- associates an object representing an assembly
with the objects representing its components - Special form of association
- Transitive
- Antisymmetric
19Example Aggregation
Web_Student
Browser_Wrapper
Browser_Slave
Mreceiver
20Object 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
21Example Generalization
Web_User
name string
Web_Student
Web_Instructor
22Object 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
23Example Web Class Object Model
Web_User
Web_Student
Web_Instructor
Browser_Slave
Msender
ViewerConfig
Mreceiver
Browser_Wrapper
Browser_Listener
Helper_App
24Object 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