Lecture 2 for Chapter 5, Analysis

Download Report

Transcript Lecture 2 for Chapter 5, Analysis

Requirements Analysis Document Template
1. Introduction
2. Current system
3. Proposed system
3.1 Overview
3.2 Functional requirements
3.3 Nonfunctional requirements
3.4 Constraints (“Pseudo requirements”)
3.5 System models
3.5.1 Scenarios
3.5.2 Use case model
3.5.3 Object model
3.5.3.1 Data dictionary
3.5.3.2 Class diagrams
3.5.4 Dynamic models
3.5.5 User interface
4. Glossary
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
1
Section 3.5 System Model
3.5.1 Scenarios
- As-is scenarios, visionary scenarios
3.5.2 Use case model
- Actors and use cases
3.5.3 Object model
- Data dictionary
- Class diagrams (classes, associations, attributes and operations)
3.5.4 Dynamic model
- State diagrams for classes with significant dynamic behavior
- Sequence diagrams for collaborating objects (protocol)
3.5.5 User Interface
- Navigational Paths, Screen mockups
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
2
Section 3.3 Nonfunctional Requirements
3.3.1 User interface and human factors
3.3.2 Documentation
3.3.3 Hardware considerations
3.3.4 Performance characteristics
3.3.5 Error handling and extreme conditions
3.3.6 System interfacing
3.3.7 Quality issues
3.3.8 System modifications
3.3.9 Physical environment
3.3.10 Security issues
3.3.11 Resources and management issues
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
3
Nonfunctional Requirements: Trigger Questions
3.3.1 User interface and human factors






What type of user will be using the system?
Will more than one type of user be using the system?
What sort of training will be required for each type of user?
Is it particularly important that the system be easy to learn?
Is it particularly important that users be protected from making errors?
What sort of input/output devices for the human interface are available,
and what are their characteristics?
3.3.2 Documentation
 What kind of documentation is required?
 What audience is to be addressed by each document?
3.3.3 Hardware considerations
 What hardware is the proposed system to be used on?
 What are the characteristics of the target hardware, including memory size
and auxiliary storage space?
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
4
Nonfunctional Requirements, ctd
3.3.4 Performance characteristics
 Are there any speed, throughput, or response time constraints on
the system?
 Are there size or capacity constraints on the data to be processed by
the system?
3.3.5 Error handling and extreme conditions
 How should the system respond to input errors?
 How should the system respond to extreme conditions?
3.3.6 System interfacing
 Is input coming from systems outside the proposed system?
 Is output going to systems outside the proposed system?
 Are there restrictions on the format or medium that must be used
for input or output?
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
5
Nonfunctional Requirements, ctd

3.3.7 Quality issues






What are the requirements for reliability?
Must the system trap faults?
What is the maximum time for restarting the system after a failure?
What is the acceptable system downtime per 24-hour period?
Is it important that the system be portable (able to move to different hardware
or operating system environments)?
3.3.8 System Modifications
 What parts of the system are likely candidates for later modification?
 What sorts of modifications are expected?

3.3.9 Physical Environment
 Where will the target equipment operate?
 Will the target equipment be in one or several locations?
 Will the environmental conditions in any way be out of the ordinary (for
example, unusual temperatures, vibrations, magnetic fields, ...)?
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
6
Nonfunctional Requirements, ctd

3.3.10 Security Issues
 Must access to any data or the system itself be controlled?
 Is physical security an issue?

3.3.11 Resources and Management Issues




How often will the system be backed up?
Who will be responsible for the back up?
Who is responsible for system installation?
Who will be responsible for system maintenance?
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
7
Constraints (Pseudo Requirements)

Constraint:
 Any client restriction on the solution domain

Examples:






The target platform must be an IBM/360
The implementation language must be COBOL
The documentation standard X must be used
A dataglove must be used
ActiveX must be used
The system must interface to a papertape reader
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
8