Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Object--Oriented
Object
Analysis
Learning Outcome:
Outline
Problem analysis
System Analysis
Requirements Elicitation
Requirements Analysis and Modeling
Refining Requirements Models
PROBLEM ANALYSIS
Description
The problem of
Affects
The result of
which
Benefits of
Factor
contribute to the
problem
System Boundary
The task of defining system boundary
is to determine which aspects should
be covered and which aspects will not
be covered by the planned system
Need to identify the part of
environment that will interact with the
system system context
System Boundary
System
user
user
Other
systems
System boundary
System Context
System
user
user
Other
systems
System context
Context boundary
Context Diagram
Context Diagram an
example
0
Order
information
CUSTOMER
Inventory
report,
Sales report
MANAGEMENT
Food
Order
System
Order information
Receipt
KITCHEN
DEPARTMENT
Economic budget
Political internal/external issues
Technical technology selection
System platform and operating system
Environmental standards, legal, security requirements
Schedule and resources
SYSTEM ANALYSIS
20
Introduction
Analysis is a process by which users and
analysts help each other reach an
understanding of the system requirements
that is sufficient for their accurate
specification
To state accurately the users requirements
for a new system accurately
Communicating the current understanding of
the proposed system
21
Introduction
Preventing expensive mistakes reduce the
number of omissions, inconsistencies,
undetected errors, and minimize their impact
on system development
Provide system designers all information as
a basis for designing a system which will
satisfy those requirements
Stating the conditions for system acceptance
to assure users that the system, as
delivered by its developers, will in fact meet
the stated requirements
22
Introduction
Focuses on finding out what is to be built for
the users of a system
Known as systems analysis
Understanding the system context as well as
describing the features needed in the system
The requirements to be identified are both
functional (what the system must do) and
nonfunctional (constraints or performance
expectations)
23
Introduction
User Requirements
meeting the needs
Need to understand how the organization
operates at present
What are the problems with the current
system?
What are the requirements users have of a
new system that are not in the current
system?
25
26
27
Types of Requirements
Functional
Non-functional
29
Functional Requirements
Non-functional Requirements
Concerned with how well the system
performs
Include:
response times
volumes of data
security considerations
All must be verifiable
31
Non-functional requirements
Three main types
1. Reflecting: usability, efficiency, reliability,
maintainability and reusability
Response time
Throughput
Resource usage
Reliability
Availability
Recovery from failure
Allowances for maintainability and enhancement
Allowances for reusability
32
Non-functional requirements
2. Constraining the environment and
technology of the system.
Platform
Technology to be used
REQUIREMENTS ELICITATION
34
Requirements Elicitation
Techniques
Background Reading
Interviewing
Observation
Document Sampling
Questionnaires
Brainstorming (e.g.JAD)
Prototyping
35
Requirements Elicitation
Techniques
5-36
Requirements Elicitation
Techniques
5-37
Requirements Elicitation
TechniquesPrototyping
Prototyping
38
5-39
Prototyping
Use case modelling can be supported
with prototyping
Prototypes can be used to help elicit
requirements
Prototypes can be used to test out
system architectures based on the
use cases in order to meet the nonfunctional requirements
40
Prototyping
41
Prototyping
Campaign Selection
Client:
Holborn Motors
Lynch Properties
Yellow Partridge
Zeta Systems
Campaign:
Client:
Campaign:
OK
Quit
Dialogue initialized.
Campaign Selection
Holborn Motors
Lynch Properties
Yellow Partridge
Zeta Systems
Spring Jewellery Campaign 2003
Spring Jewellery Campaign 2004
Spring Jewellery Campaign 2005
Summer Collection 2004
OK
Quit
Client:
Campaign:
Holborn Motors
Lynch Properties
Yellow Partridge
Zeta Systems
Spring Jewellery Campaign 2003
Spring Jewellery Campaign 2004
Spring Jewellery
Jewellery Campaign
Campaign 2005
2002
Spring
Summer Collection 2004
OK
Quit
42
A variety of stakeholders:
senior managementwith overall
responsibility for the organization
financial managerswho control budgets
managers of user departments
representatives of users of the system
43
Different roles:
as subjects of interviews
as representatives on project
committees
as evaluators of prototypes
as testers
as trainees on courses
as end-users of new system
44
Two approaches:
Agile user-centered design (similar to
JAD)
eXtreme programming
45
Documenting Requirements
interview notes
copies of existing documents
minutes of meetings
details of requirements
46
Documenting Requirements
Documents should be kept in a document
management system with version control
Use use cases to document functional
requirements
Maintain a separate requirements list
Review requirements to exclude those that
are not part of the current project
47
Select
requirements
Develop
use cases
Requirements
List
48
49
50
51
System Response
2. Lists all campaigns for that
client.
4. Displays a list of all staff
members not already allocated
to this campaign.
6.Presents a message confirming
that staff have been allocated.
Alternative Courses
Steps 13. The actor knows the campaign name and enters it directly.
52
REQUIREMENTS ANALYSIS
AND MODELLING
53
Requirements and
Classes
From Requirements to
Classes
Requirements (use cases) are usually
expressed in user language
Use cases are units of development,
but they are not structured like
software
The software we will implement
consists of classes
We need a way to translate
requirements into classes
55
Why Analyse
Requirements?
56
57
59
61
62
Realizing Use
CasesUse Case
Driven
Goal of Realization
Realization is name given UML to the
activity of developing an abstract model or
element into another model or element
that is closer to its implementation
Use case realization involves the
identification of a possible set of classes,
understanding how those classes interact
to deliver functionality of the use case.
65
Goal of Realization
An analysis class diagram is only an
interim product
This in turn will be realized as a
design class diagram
The ultimate product of realization is
the software implementation of that
use case
66
Communication Diagram
Approach
Campaign
Manager
Add a new
advert to a
campaign
<<realize>>
Add a new
advert to a
campaign
A Possible Collaboration
A link between two
objects allows them to
communicate
Collaboration name
:AddAdvertUI
:AddAdvert
:Advert
:Client
:Campaign
The collaboration
icon is a dashed
ellipse
70
71
72
73
More Developed
Communication Diagram
74
75
control
Control::AddAdvert
startInterface()
createNewAdvert()
selectClient()
selectCampaign()
showClientCampaigns()
showCampaignAdverts()
createNewAdvert()
entity
Client
companyAddress
companyName
companyTelephone
companyFax
companyEmail
getClientCampaigns()
getClients()
entity
Campaign
1
0..*
places
title
campaignStartDate
campaignFinishDate
getCampaignAdverts()
addNewAdvert()
0..*
conducted by
entity
Advert
setCompleted()
createNewAdvert()
76
77
78
CRC Cards
79
CRC Cards
Class Name:
Responsibilities
Collaborations
Responsibilities of a class
are listed in this section.
80
Class Name
Client
Responsibilities
Collaborations
Provide client
information.
Provide list of
campaigns.
Class Name
Campaign provides
campaign details.
Campaign
Responsibilities
Collaborations
Provide campaign
information.
Provide list of adverts.
Add a new advert.
Class Name
Advert
Responsibilities
Collaborations
81
CRC Cards
Effective role play depends on an
explicit strategy for distributing
responsibility among classes
For example:
82
83
Campaign
campaignFinishDate
campaignStartDate
title
addNewAdvert()
getCampaignAdverts ()
<<entity>>
Campaign
campaignFinishDate
campaignStartDate
title
addNewAdvert()
assignStaff()
getCampaignAdverts ()
getCampaignStaff ()
<<entity>>
Campaign
campaignFinishDate
campaignStartDate
title
assignStaff()
getCampaignStaff ()
<<entity>>
Campaign
actualCost
campaignFinishDate
campaignStartDate
completionDate
datePaid
estimatedCost
title
addNewAdvert()
assignStaff ()
completeCampaign ()
createNewCampaign ()
getCampaignAdverts ()
getCampaignCost ()
getCampaignStaff ()
recordPayment ()
84
85
Refining the
Requirements
Model
Objective:
87
Reuse in Software
Development
Software development has
concentrated on inventing new
solutions
Recently, the emphasis has shifted
Much software is now assembled from
components that already exist
Component reuse can save money,
time and effort
88
Reuse in Software
Development
89
90
Adding Generalization
Structure
Add
generalization structures
when:
Two
Creative
Admin
Adding Structure:
A superclass
StaffMember
{abstract}
Grade
gradeName
1..*
allocated
0..*
staffName
staffNo
staffStartDate
calculate Bonus ()
assignNewStaffGrade ()
getStaffDetails ()
Two subclasses with
redefined operation
calculateBonus ()
Superclass
associations are
inherited by
subclasses
AdminStaff
calculateBonus ()
CreativeStaff
qualification
calculateBonus ()
assignStaffContact ()
Aggregation and
Composition: An Example
Campaign
0..*
Advert
Unfilled diamond
signifies aggregation
2010 Bennett, McRobb and Farmer
Aggregation and
Composition
1..*
Ingredient
Recap
Problem analysis
System Analysis
Requirements Elicitation
Requirements Analysis and Modeling
Refining Requirements Models
96