Requirements Engineering (Chapter 4) Flashcards
What is Requirements Engineering?
The process of finding out, analyzing, documenting, & checking the services and constraints for Requirements
True or False: The term Requirement is unanimous and consistent across the Software Industry
False, the term is not used consistently
Describe why a Requirement might have different definitions across the software industry
A requirement can be a high-level, abstract statement of a service/constraint
A requirement can be a detailed, formal definition of a system function
Where do some of the problems in Requirements Engineering originate from?
Failing to make a clear separation between the different levels of description
Why do we often get Requirements wrong?
Because Requirements Engineering is hard
What percentage of defects are introduced during Requirements Activities?
40-50%
What are two ways to differentiate Requirements?
User Requirements
System Requirements
What is a User Requirement?
A high-level abstract requirement of what services the system is expected to provide the user
What is a System Requirement?
A detailed description of the system’s functions, services, & operational constraints
Why do Requirements need to be written in different ways?
Because different readers use them in different ways
List some reasons for why it’s hard to define Requirements
Informal requirements gathering Not able to articulate what's needed Implied requirements (detailed implied from domain specific knowledge) Miscommunicated Assumptions Poorly Specified Requirements Casual Change Process Diversity of Interest in Stakeholders Inevitable Economic & Business Change
Who said, “To proclaim that you “have the requirements”
is delusional if all you really have is a pile of
email and voice mail messages, sticky notes,
meeting minutes, and vaguely recollected
hallway conversations”?
Wiegers
What are the 2 Types of Requirements?
Functional
Non-Functional (Technical)
What are Functional Requirements?
Services the system should provide
How the system should react to particular inputs
How the system should behave in particular situations
What are Non-Functional Requirements?
Constraints on the services or functions offered by the system
What constraints can Non-Functional Requirements include?
Timing Constraints
Development Process constraints
Standards Constraints
True or False: Requirements are independent
False, requirements are not independent and one requirement often generates/constrains other requirements
What are the two types of Functional Requirements?
Business Requirements
User Requirements
What are Business Requirements?
Describe WHY the organization is implementing the system
Identify high-level business objectives of the customer
What are User Requirements?
Describe WHAT the system does at a high-level
User goals & the high-level tasks performed by users
What can User Requirements sometimes be grouped into?
Features
What should the Functional Requirements of a System ideally be?
Complete & Consistent
True or False: Individual Functional Requirements are often more important than Non-Functional Requirements
False, Non-Functional Requirements are often more critical
How can Non-Functional Requirements arise?
Through user needs due to budget constraints organizational policies software/hardware interoperability External Factors (e.g. safety regulations)
What are the three types of Non-Functional Requirements?
Product Requirements
Organizational Requirements
External Requirements
What do Non-Functional Product Requirements specify?
Specify or constrain the runtime behavior of the software
What do Non-Functional Organizational Requirements specify?
Specify the broad system requirements derived from policies & procedures in the customer & developer’s organizations
What do Non-Functional External Requirements specify?
Specifies all requirements that are derived from external factors
What is a common problem with Non-Functional Requirements?
Stakeholders often set them as general goals (e.g. ease of use, rapid user response, etc)
True or False: Whenever possible, you should write non-functional requirements quantitatively so that they can be objectively tested
True
True or False: Non-Functional Requirements can conflict & interact with other Functional or Non-Functional Requirements
True
What is difficult to separate in the Requirements Document?
Functional & Non-Functional Requirements
What are the 3 Requirements Engineering Activities?
Elicitation
Analysis
Specification
Validation
What is Requirement Elicitation?
The discovery of requirements through:
Interviews
User Workshops
Ethnography
Why is Requirements Elicitation Important?
Identifies product’s category of users & stakeholders
Determine Business Objectives for product
Understand User Goals
Understand the Environment in which the system will operate
Why is Requirements Elicitation difficult?
Stakeholders:
- often don’t know what they want
- Express needs in an implicit manner
- Political motivations
- Dynamics of environment & economy
What are the 4 steps in Requirements Elicitation?
- Discovery & Understanding
- Classification & Organization
- Prioritization & Negotiation
- Documentation
Requirements Elicitation is what kind of process?
Iterative with continual feedback
What might stakeholders do if they feel their views aren’t being considered?
Undermine the Requirements Engineering Process
What can Stakeholders with the same perspective be grouped together in?
A Product Viewpoint
What are the 3 Product Viewpoints?
Interactor Viewpoint (Primary Actors) Indirect Viewpoint (Supporting Actors) Domain Viewpoint (Environment)
What role does a Project Glossary serve?
Establish a Ubiquitous Language that both Domain Experts & Technical Experts understand & agree on
List 3 characteristics of Elicitation Interviews
- Effective without taking too much stakeholder time
- closed Interviews have a set of predefined questions
Open Interviews are exploratory & have general goals
List 3 characteristics of Elicitation Workshops
- Facilitated sessions with multiple, diverse stakeholders
- Resource intensive with numerous participants
- Must be well-planned
List 2 Characteristics of Elicitation Ethnography
- Time consuming (used for important high-risk tasks involving multiple users)
- Silent or interactive
What is Requirements Analysis?
The process of deriving more precise requirements received from users & domain experts
What is involved in Requirements Analysis?
- Decomposing high-level requirements into lower-level requirements/attributes
- Derive precise Functional Requirements
- Model the application environment
- Create Prototypes to validate requirements
- Prioritize requirements & analyze feasibility
What is Requirements Specification?
The process of writing down the user & system Requirements in a Requirements Document
What should the Requirements Document not include?
Details of the system architecture or design
In Requirements Specification, what are User Requirements recorded as?
User Stories/Use-Cases
In Requirements Specification, what are Functional Requirements recorded as?
Use-Case Scenarios/Story Conversions
Acceptance Criteria
What are some good Requirements Specification Best Practices?
- Develop & use a standardized template for recording requirements
- Uniquely identify each requirement to allow effective management
- Identify & maintain the origin of all requirements for traceability
- Record Business Rules & other Domain Requirements
- Record Non-Functional Requirements to ensure the product satisfies expectations and constraints
What is Requirements Validation?
The process of affirming the correctness of the requirements in order to build a suitable solution
What is involved in Requirements Validation?
- Review the recorded requirements as a group through Requirement Inspection
- Develop System Tests from recorded requirements
- Define the Acceptance Criteria used by users to determine the suitability of the resulting system (meets requirements)
What is a Use-Case Model?
A collection of written Use-Cases, Actors, & Use-Case Diagrams
What does a Use-Case identify?
the Actors involved in an interaction & the type of interaction
What are Actors?
Actors are Behavioural Entities that interact with the System under Discussion (SuD)
True of False: Use-Cases are diagrams
False, Use-Cases are Text Documents that describe related success & failure scenarios of system interaction
What is a Use-Case
A way of describing interactions between Users & a system using a graphical model & structured text
What are the 3 types of Actors?
Primary Actor
Supporting Actor
Offstage Actor
What is a Primary Actor?
A type of user of the system that uses the system in order to achieve a specific goal
What is a Supporting Actor?
A user that provides a service to the system, but by definition, are external to the system
What is an Offstage Actor?
A stakeholder that DOES NOT interact directly with the system, but has an interest in it (e.g. government entity)
What are the 4 fundamental parts of a Use-Case Diagram?
Actor
Association Relationship
Use-Case
Supporting Actor (if applicable)
What are the 3 Relationship Types in Use-Case Diagrams
Association
Dependency
Generalization
What is an Association Relationship?
Shows the communication between actor & use-case
What is an Include Dependency?
Stereotype that shows one use-case using another
What is an Extend Dependency?
Stereotype showing alternative or exceptional scenarios
What is a IS-A Generalization Relationship?
A relationship with the same reusability semantics as in class diagrams
What are the 3 Use-Case Levels?
Summary
User Goals
Subfunctions
What is shown in the Summary Use-Case Level?
Context
Life-Cycle Sequence
Table of Contents for User-Goal Use-Cases
What is shown in the User Goals Use-Case Level?
Represents goals of primary actors & how they achieve their goals using the system (most Use-Cases are at this level)
What is shown in the Subfunctions Use-Case Level?
Portions of Use-Cases that are common to multiple User-Goal Use-Cases (Used when Use-Case are too long)
What are the 3 Use-Case Formats?
Brief
Casual
Fully Dressed
What is a Brief Format Use-Case?
Use-Case is informally written as a story
What is a Casual Format Use-Case?
Use-Case describes multiple related scenarios
What is a Fully Dressed Format Use-Case?
Use-Case is structured & shows more detail for more requirement completeness and reduced risk