Professional Documents
Culture Documents
3
Analysis
Developers formalize the requirements produced during
requirements elicitation.
Examine in more detail boundary conditions and
exceptional cases.
Analysis examines requirements from the perspective of
the classes and objects found in the vocabulary of the
problem domain.
we will discuss the analysis activities like identification of
objects, their behavior, their relationships, their
classification and their organization.
Analysis results in a model of the system that aims to be
correct, complete, consistent and unambiguous.
Out put of the analysis is Software Requirements
Specifications document (SRS document)
Analysis Model
It consists of 3 individual models
Functional model
Analysis model
Dynamic model
Functional Model: Represents use cases and scenarios
Analysis Model: Represents class and object diagrams
Dynamic Model: Represents state starts and sequence
diagrams
In the previous lectures, we described how to elicit
requirements from the users and describe them as use cases and
scenarios.
Present lecture, describes how to refine the functional model
and derive the object and dynamic model
This leads a more precise and complete specifications that are
added to the analysis model.
How do you find classes?
we have already established the following sources:
Application domain analysis: Talk to client to identify abstractions
Application of general world knowledge and intuition
Scenarios
Natural language formulation of a concrete usage of the system
Use Cases
Natural language formulation of the functions of the system
push switch
On Off
Transition
Idle Running
State
State
Condition or situation in the life of a system (or object)
during which it:
Satisfies some condition,
Performs some activity, or
Waits for some events.
Set of values of properties that affect the behavior of the
system (or object).
Determines response to an event,
Thus, different states may produce different responses to the same
event
Transition
state Opened
Door
transition
close door
open door
transition
condition
Closed
Door Just for the sake of fun!
entry action
What is an Event?
Something that happens at a point in time
Relation of events to each other:
Causally related: Before, after,
Causally unrelated: concurrent
An event sends information from one object to another
Events can be grouped in event classes with a hierarchical
structure.
Substate1 substate2
Before After
substate3 substate4
Start with Flow of Events from Use Case
Dial a Number
dial digit(n)
[incomplete]
connected Ringing ……
Dialing Connecting
dial digit(n)
dial digit(n) [valid] / connect
[invalid]
busy
Busy ……
Invalid
Sequence Diagram
Consist of
•Class roles – roles of objects play in the interaction (caller, Phone Net, Receiver, etc)
•Lifelines- represent existence of an object over a period of time
•Activations- time during which an object performs operation
• Messages- represent communication between objects
Sequence Diagram (Dial a Number)
ReportEmergency
Generalization hierarchy
(UML class diagram)
The root of the hierarchy represents the most general concept, whereas the
leaves nodes represent the most specialized concepts.
Incident
Report Manage
EmergencyButton EmergencyControl
FieldOfficer
press() «create»
ReportEmergency
Control
«create» ReportEmergency
Form
fillContents()
submit()
submitReport()
«create»
Emergency
Report
submitReportToDispatcher()
«destroy»
Sequence diagram for the ReportEmergency use case
DispatcherStation 2/3
Manage
EmergencyControl Dispatcher
submitReportToDispatcher() «create»
IncidentForm
createIncident()
«create»
Incident
submit()
«create»
Acknowledgment
«destroy»
Sequence diagram for the ReportEmergency use case
acknowledgment on the FieldOfficerStation 3/3
Manage ReportEmergency
FieldOfficer EmergencyControl Control
acknowledgeReport()
«create» Acknowledgment
Notice
dismiss()
endReportTransaction()
«destroy»
«destroy»
Association between the EmergencyReport and
the FieldOfficer classes
* writes 1
Field Officer Emergency Report
author document
Eliminating redundant association
The receipt of an EmergencyReport triggers the creation of an
Incident by a Dispatcher.
author document
* writes 1
FieldOfficer EmergencyReport
1 1
reports triggers
Incident
1 1
Attributes of the EmergencyReport class
EmergencyReport
emergencyType:{fire,traffic,other}
location:String
description:String