Chapter#2 Design Models
Chapter#2 Design Models
Modeling
Lecture#2
Overview
•Collaborative Object Modeling and architectural design mEThod (COMET)
– Object Oriented Analysis and Design Method
– Uses UML (Unified Modeling Language) notation
• Standard approach for describing a software design
– COMET = UML + Method
•Provides steps and guidelines for
– Software Modeling and Design
– From Use Case Models to Software Architecture
•H. Gomaa, Software Modeling and Design:
UML, Use Cases, Patterns, and Software Architectures, Cambridge University Press, February 2011
Model Driven Architecture
• UML
– A standardized notation for object-oriented development
– Combines notations of OMT, Booch, and use cases
– A graphical language for describing the products of OO requirements, analysis,
and design
– Approved as a standard by Object Management Group (OMG)
– Methodology independent
• Needs to be used with an analysis and design method
Object-Oriented Software Life Cycle with UML
• Requirements Modeling
• Use Case Modeling
– Define software functional requirements in
terms of use cases and actors
Object-Oriented Software Life Cycle
Analysis Modeling
• Static Modeling
– Define structural relationships between classes
– Depict classes and their relationships on class diagrams
Object-Oriented Software Life Cycle
Analysis Modeling
• DynamicModeling
– Define statecharts for state dependent control objects
– Defines how objects participate in use cases using communication diagrams or
sequence diagrams
Object-Oriented Software Life Cycle Design Modeling
• Functional Requirements
• Behavioral Requirements
• Information Requirements
• External Interface Requirements
• Non-Functional Requirements
• Design Constraints
Components of Software Requirements Specification
• Functional Requirements
– Inputs to software system
– Outputs from software system
– Processing to be performed
• Behavioral Requirements
– Externally observable states
– Transitions between states
• Information Requirements
– Entities (classes), Attributes, Relationships
– Data Dictionary
Components of Software Requirements Specification
• Hardware to be supported
• System configuration
• – Centralized v. Distributed
• – Windows v. Unix
• Existing software to be utilized
• Portability requirements
• Anticipated changes to be accommodated
Attributes of Well-Written Software Requirements
Specification
1.Correct
– Each requirement is accurate interpretation of user needs
2.Complete
– Includes every significant requirement
– Defines system responses to every realizable input – No "TBD"s
3.Unambiguous
– Every stated requirement has only one interpretation
4.Consistent
– Individual requirements do not conflict
5.Conflicting Terms
• Conflicting characteristics • Temporal inconsistency
Attributes of Well-Written Software Requirements
Specification
• V erifiable
– Every requirement can be tested to determine that system meets requirement
• Understandable by non-computer specialists
– Formal vs informal notations ( Consistent/unambiguous vs Understandability
dilemma)
• Modifiable
– Need Table of Contents, Index, Cross-references
– Redundancy
• Modifiability vs Understandability dilemma
Attributes of Well-Written Software Requirements
Specification
1. Traceable
– Backwards:
2. To System Level Requirements
3.To User Needs – Forwards:
1.To design component(s) that satisfy requirement
2.To code components that satisfy requirement
Approaches to Developing Software Requirements
Specification
• Use Case
• Requirements 2 Modeling
• Analysis Modeling
– Describes sequence of interactions between user (actor) and system
– Narrative description
• Use Case model
– Define system functional requirements in terms of Actors and Use cases
• Use case relationships
– include
– extend
Actors
• Primary Actor
– Starts the use case by providing input to the system
• Secondary Actor
– Participates in use case
– Can be Primary Actor of a different use case
• Actor
– Represents all users who use system in the same way
• A user is an instance of an actor
• Include relationship
– Identify common sequences of interactions in several use cases
• Extract common sequence into inclusion use case
• Base use cases includes abstract use case
• Example
– Withdraw Funds use case includes Validate PIN use case
Example of inclusion use case and include relationships
Use Case Relationships
• Extend relationship
– Use case A is an extension of use case B
– Under certain conditions use case B will be extended by description given in
use case A
– Same use case can be extended in different ways
• When to use extend
– Show conditional parts of use case
– Model complex or alternative paths
• Example
– Pay by Cash extends Checkout Customer
Example of extend relationship
Case Study: Banking System