Requirements Engineering Flashcards
Requirements Engineering Process
- analyzing the problem
- documenting the resulting observations in a variety of representation formats
- checking the accuracy of the understanding gained
Requirements Engineering
- common agreement among all parties
- describes “what the product will do, but not how to do it”
What is a requirement?
- condition/capability needed by the user to solve a problem or achieve an objective
- condition/capability that must be met by system or system component to satisfy customer needs
- documented representation of condition/capability
Types of Requirements
- User requirements
- System requirements
User Requirement
Written for customers. Statements in natural language of system services and constraints. Overall system goal
System Requirements
Written for contract. Structured document with detailed descriptions of the system functions, services, and constraints. Specific system features
Functional Requirement
- describe functionality or overall system services
- high-level statements of what system should do
Domain Requirements
Depends on where product is used. Constraints on system from domain of operation. (must be ferpa compliant)
Non-Functional Requirement
Gives rise to functional requirements.
- constraints on services or functions offered by the system.
- often apply to whole system instead on individual feature
- more critical then functional requirements, wo them system may be useless
Goal
- general intention of the user (such as ease of use)
- help to define non-functional requirements
Requirements Engineering Activities
- elicitation
- analysis
- specification
- verification
- management
Requirements Elicitation
Process through which customers and developers discover, review, articulate, and understand the user needs and system constraints
Requirements Analysis
Process of analyzing user needs to arrive at definition of software requirements
Requirements Specification
Development of a document the clearly and precisely records each requirement
Requirements Verification
Process of ensuring the software requirements specification is in compliance with the system requirements
Requirements Management
Planning and controlling of the requirements elicitation specification, analysis, and verification activities
Requirements Evaluation
- validity
- consistency
- completeness
- realism/feasibility
- verifiability
- unambiguous
- traceable
Requirements Evaluation - Unambiguity
Whether it has only one possible interpretation
Requirements Evaluation - Completeness
Whether all required functions and design constraints are present and fully developed
Requirements Evaluation - Consistency
Whether no other requirements are conflicting with it
Requirements Evaluation - Testable
Whether requirement can be tested
Requirements Evaluation - Traceable
Whether origin of requirement is clear
Requirements Engineering Participants
- customer
- user
- requirements engineer/analyst
- developer
- v&v agent
Artifacts
Includes:
* Requirements Specification: what does the system do?, who identified the requirement, contextual information
* Validation/verification audit reports
* Output of requirements management tool
Requirements Change Management
Deciding if a requirement change should be accepted:
* Problem analysis and change specification
* Change analysis and costing
* Change implementation
Natural Language Specification
- Requirements are written as natural language sentences
- Supplemented by diagrams and tables
- Can be understood by users/customers
Guidelines for Writing Requirements
- Invent standard format and use for all reqs
- Use language in a consistent way across reqs
- Use text highlighting to identify keys parts of reqs
- Avoid use of computer jargon
- Include explanation of req
Problems with Natural Language
- Lack of clarity
- Improper classification
- Requirements amalgamation (several reqs improperly combined together)