Title: The big idea
1The big idea
- Idea to code
- Be responsive to new requirements
'If an error occurred, log it. If
Err.Number ltgt 0 Then Dim Message As
String Message "Unexpected error"
vbComma " " CStr(Err.Number) " was
raised." Log.Message Message,
TSS_LOG_RESULT_FAIL, Err.Description End If
'Close the datapool If Not dp Is Nothing
And UseDP Then dp.Close Set dp
Nothing End If 'Shutdown test data
store and log services tms.EndTestServices
2So what is the problem?
- Who identifies problems in your organisation?
- Look for the problem behind the problem
- Problem analysis techniques
3Five steps in problem analysis
- Gain agreement
- Understand the root causes
- Identify stakeholders and users
- Define the solution system boundary
- Identify constraints
4Business modeling A problem analysis technique
- Understand the business processes automated by
the system - System context
- Who will use the system?
- Activities to be automated
- What should the system do?
- Set of services the system should provide to the
users - What should the system output to users?
- Performance goals
- How fast should the system be?
- Understand where the system will fit in the
deployment environment
5An approach to root cause analysis
Fishbone Diagram
What the customer believes to be the problem
6Define solution system boundary Actors
- Actor
- Someone/something outside the system that
interacts with the system - Example
- Customer
- Administrator
- Billing system
- Radar
Actor
7Moving to the solution space
Problem Space
Problem
Needs
Solution Space
Features
The Product To Be Built
Software Requirements
8Requirements and requirements management
- Requirement A condition or capability to which
the system must conform - Requirements management A systematic approach
to - Eliciting, organizing, and documenting the
requirements - Establishing and maintaining agreement between
customer/user and project team on the changing
requirements
9Kinds of requirements
Components of FURPS
F
unctionality
Feature Set
Generality
Capabilities
Security
U
sability
Human Factors
Consistency
Aesthetics
Documentation
R
eliability
Frequency/Severity
Predictability
of Failure
Accuracy
Recoverability
MTBF
P
erformance
Speed
Throughput
Efficiency
Response Time
Resource Usage
S
upportability
Testability
Configurability
Extensibility
Serviceability
Adaptability
Installability
Maintainability
Localizability
Compatibility
Robustness
Grady, 1992
10How do requirements drive development?
Verified by
Realized by
Implemented by
11Requirements management plan
Stakeholder Requests
Features
Supplementary Specifications
Use Cases
Actors
Test
12UML model of functional requirements
The System
Use Case 1
Use Case 2
Use Case 3
13Analysis
- Formulate a model of the problem domain
- Analysis focuses on what to do
- design focuses on how to do it
- Creating use case realizations and upper layers
of the architecture
14Data modeling in UML
- Traditionally, developers and database analysts
work in isolation - Database structure dictates applications, or
- Application dictates database structure
- UML extended to include database concepts
- Some concepts already existed in UML (eg Table)
Object Model
Logical Data Model
Physical Data model
15Use case realizations
- A use-case realization describes how a particular
use case is realized within the design model, in
terms of collaborating objects. - Class diagrams
- Interaction diagrams
- Modeled as a UML collaboration
- One per use case (minimum)
- New design can result in new realization
16Class diagrams
- Used to model classes participating in a use case
realization. - Used to document a domain model
- Used to model logical architecture
- Analysis stereotypes
- Boundary
- Control
- Entity
17Sequence diagrams
- Model a scenario of a use case realisation
18Managing change
All requests go through a single channel
Change requests come from many sources throughout
each iteration of the product lifecycle
Customer andEnd-User inputs
New Feature
Req
Marketing
Single Channel for Approval
New Requirement
Design
ApprovedDecisionProcess
Coders inputs Testers inputs
Code
Bug
Test
Help Desk End-User inputs
ChangeRequest (CR)
Maint