Chapter 6 - Requirements engineering
Terms in this set (47)
What does "Requirements engineering" helps to achieve
helps software engineers better understand the problems they are trying to solve. It is very important to understand the customer's wants and needs before you begin designing or building a computer-based solution.
Requirements engineering process
begins with inception, moves on to elicitation, elaboration, negotiation, problem specification, and ends with review or validation of the specification.
The intent of the Requirements engineering process
To produce a written understanding of the customer's problem.
Which work products might be used to communicate this understanding
function and feature lists,
analysis models, or
Expound on the Requirements Engineering Task : Inception
software engineers use context-free questions to establish a basic understanding of the problem, the people who want a solution, the nature of the solution, and the effectiveness of the collaboration between customers and developers
Expound on the Requirements Engineering Task : Elicitation
find out from customers what the product objectives are, what is to be done, how the product fits into business needs, and how the product is used on a day to day basis
Expound on the Requirements Engineering Task : Elaboration
focuses on developing a refined technical model of software functions, features, and constraints using the information obtained during inception and elicitation
Expound on the Requirements Engineering Task : Negotiation
requirements are categorized and organized into subsets, relations among requirements identified, requirements reviewed for correctness, requirements prioritized based on customer needs
Expound on the Requirements Engineering Task : specification
written work products produced describing the function, performance, and development constraints for a computer-based system
Expound on the Requirements Engineering Task : Validation
formal technical reviews used to examine the specification work products to ensure requirement quality and that all work products conform to agreed upon standards for the process, project, and products
Describe Requirements Management
Set of activities that help project team to identify, control, and track requirements and changes as project proceeds. Requirements are first identified, tagged with a unique identifier and classified by type (functional, data, behavioral, interface, or output)
How do software engineers track requirement changes
Using Traceability tables (e.g., features, source, dependency, subsystem, interface) are developed and updated any time a requirement is modified). Database systems are invaluable in helping software teams track requirement changes
Features traceability table
>shows how requirements relate to customer observable features
Source traceability table
>identifies source of each requirement
Dependency traceability table
>indicate relations among requirements
Subsystem traceability table
>requirements categorized by subsystem
Interface traceability table
>shows requirement relations to internal and external interfaces
Initiating Requirements Engineering Process
Collaboration among stakeholders
What do context-free questions focus on
customer, stakeholders, overall goals, benefits of the system, customer's perceptions of the solution,communication effectiveness
List all the context-free questions
Who is behind the request for work?
Who will use the solution?
What will be the economic benefit of a successful solution?
Is there another source for the solution needed?
How would you characterize good output form a successful solution?
What problem(s) will this solution address?
Can you describe the business environment in which the solution will be used?
Will special performance constraints affect the way the solution is approached?
Are you the best person to give "official" answers to these questions?
Are my questions relevant to your problem?
Am I asking too many questions?
Can anyone else provide additional information?
Should I be asking you anything else?
Eliciting Requirements Engineering Process
Collaborative requirements gathering
Quality function deployment (QFD)
Elicitation Work Products
Statement of need and feasibility
Bounded statement of scope for system or product
List of stakeholders involved in requirements elicitation
Description of system's technical environment
List of requirements organized by function and applicable domain constraints
Set of usage scenarios (use-cases) that provide use insight into operation of deployed system
Prototypes developed to better understand requirements
Goal in context
Frequency of use
Channels to secondary actors
Lack of formality in use-case descriptions
Not all systems have explicitly defined actors
Use-cases are not inherently object-oriented
Developers have a tendency to functionally decompose use-cases
Intent is to provide descriptions of required information, functional, and behavioral domains for computer-based systems
Analysis Model Elements
Scenario-based elements (describe system from user perspective)
Class-based elements (relationships among objects manipulated by actors and their attributes)
Behavioral elements (depict system and class behavior as states and transitions between states)
Flow-oriented elements (shows how information flows through the system and is transformed by the system functions)
Many different representations can be used to depict the analysis model. Name them.
Data flow diagram (DFD)
Analysis Pattern Template
Forces and context
Known use examples
Identification of system key stakeholders
Determination of stakeholders' "win conditions"
Negotiate to reconcile stakeholders' win conditions into "win-win" result for all stakeholders (including developers)
Requirement Review (Validation)
Is each requirement consistent with overall project or system objective?
Are all requirements specified at the appropriate level off abstraction?
Is each requirement essential to system objective or is it an add-on feature?
Is each requirement bounded and unambiguous?
Do you know the source for each requirement?
Do requirements conflict with one another?
Is the requirement achievable in the proposed technical environment for the system or product?
Is each requirement testable?
Does the requirements model reflect the information, function, and behavior of the system to be built?
Has the requirements model been partitioned in a way that exposes more detailed system information progressively?
Have all the requirements patterns been properly validated and are they consistent with customer requirements?
Requirements engineering is a generic process that does not vary from one software project to another. True or False?
During project inception the intent of the of the tasks are to determine
basic problem understanding
nature of the solution needed
people who want a solution
Three things that make requirements elicitation difficult are problems of
The result of the requirements engineering elaboration task is an analysis model that defines which of the following problem domain(s)?
It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.
What does the system specification describes
Function, performance and constraints of a computer-based system
The best way to conduct a requirements validation review is to
use a checklist of questions to examine each requirement
The use of traceability tables helps to
identify, control, and track requirements changes
A stakeholder is anyone who will purchase the completed software system under development.
The job of the requirements engineer is to categorize all stakeholder information in a way that allows decision makers to choose an internally consistent set of requirements.
The nature of collaboration is such that all system requirements are defined by consensus of a committee of customers and developers.
What are the context-free questions that would be used during project inception?
What will be the economic benefit from a good solution?
Who will pay for the work?
Who will use the solution?
In collaborative requirements gathering, the facilitator
controls and facilitates the process
Which are the requirement classifications used in Quality Function Deployment (QFD)?
Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.
The work products produced during requirement elicitation will vary depending on the
size of the product being built
Use-case actors are always people, never system devices.
List the UML diagram used creating a system analysis model?
Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.
In win-win negotiation, the customer's needs are met even though the developer's need may not be.
In requirements validation the requirements model is reviewed to ensure its technical feasibility.