5. Requirements Engineering Flashcards
Requirements (Requirements Definition, Design Definition)
Requirements = should state what the system should do and what characteristics it should exhibit to perform the predefined tasks required by end-users
Design = should describe how the system does this
=> the system’s architecture is designed to structure the requirements.
User Requirements (Characteristics (3))
- statements in natural language
- supported by diagrams of the services the system provides and its operational constraints
- written for customers
System Requirements (Characteristics (3))
- structured document setting out detailed descriptions of the system’s functions
- defines what should be implemented
- can be part of contract between client and contractor
Functional Requirements (Characteristics (4))
- define the provided service
- describe the systems functionalities
- describe the system behavior
- describe the system reactions
Non-Functional Requirements (Characteristics (2))
- specification of quality of service
- constraints on the services (e.g. timing constraints, fault tolerance exception handling,..)
Categories of Non-Functional Requirements (5)
- Usability = defines how the behavior of the system must be shaped to dit the users and their work environment
- Reliability = defines the dependability of the system both in time and in the fulfillment of its functions (e.g. mean time between failures)
- Performance = specifies the response time and the input-output volume that the system can handle within a particular time frame
- Maintainability = specifies the ability of the system to be modified and enhanced.
- Security = specifies the access rights and tracing of interactions (e.g. event logging)
Measuring Non-Functional Requirements (5 Measures)
- Speed (Processed transactions, event response time)
- Size (Mbytes, number of ROM chips)
- Ease of Use (Training time, number of support features)
- Reliability (Rate of failure occurrence)
- Robustness (Time to restart after failure)
Requirements Engineering (State, Characteristics (4))
Requirements Engineering is a continuous process.
- Requirements are often not fully comprehensive from beginning on
- Not all requirements are equally important
- Requirements can change
- Different stakeholders have different requirements
Key Requirements Engineering Tasks (4)
- Requirements Elicitation
- discovers all facets of requirements
- involves all the relevant stakeholders of the project
- Requirements specification
- classifies and organizes requirements
- prioritizes and negotiates
- covers functional and technical analysis
- Requirements Validation
- checks if the requirement actually define what
customers really want
- checks if the requirement actually define what
- Requirements Management
- documents history of accepting new requirements
- changes or drops existing requirements
- traces requirements implementation
Requirements Elicitation (4 Characteristics)
- elicitation allows the development team to dig for the customers’ requirements underlying the solution the be developed
- successful projects reflect requirements that are derived from a variety of sources
- elicitation provides grounds to systematically organize, synthesize, and rationalize the data
- rationalizing helps tp reduce the number of requirements that may be in conflict or redundant
Problems of Elicitation (7)
- Stakeholders often don’t know what they really want
- Stakeholder express requirements in their own terms
- Different stakeholders may have conflicting requirements
- The requirements change during the analysis process
- New stakeholders emerge
- The business environment may change
Sources of Requirements (2)
- People
- Sponsors
- Domain Experts- Users
- Other Stakeholders:
- Reverse Engineering
- Legacy System: already existing systems the new
system has to be adopted to or integrated with - Existing document: like guidelines, process
descriptions, manuals, etc.
- Legacy System: already existing systems the new
Requirements Specification (3)
- Requirements classification and organization = groups related requirements and organize them into coherent clusters
- Prioritization and negotiation = prioritizing requirements and resolving requirements conflicts
- Requirements specification = requirements are documented and input into the next round of the spiral
The Requirement Document (Purpose/Characteristics)
The requirement document is
- the official statement of what the development
team needs to implement
- explains why a product is needed
- puts the product in context
- describes what the finished product will be like
- important input to validate requirements
- guides to development and testing
Users of Requirements Document (5)
- System Customers = specify the requirements and read them to check that they meet their needs (can be used interchangeably: business, project or system sponsors, also managers)
- Managers = Use requirements documents to plan a bid for the system and to plan the development process.
- System Engineers = use the requirements to understand what system is to be developed
- System Test Engineers = use the requirements to develop validation tests for the system
- System Maintenance Engineers = Use the requirements to understand the system and the relationship between its parts