Exam 1 - Chapter 4
Identify and briefly describe four types of requirements that may be defined for a computer-based system.
User - Statements in natural language, plus diagrams, of what services the system is expected to provide to system users and the constraints under which it must operate. System - More detailed descriptions of the software system's functions, services, and operational constraints. Functional - Statements of the services the system should provide, how the system should react to particular inputs, and how the system should behave in particular situations. Non-functional - Constraints on the services or functions offered by the system such as timing, development process, and constraints imposed by standards.
What information should be included in a scenario.
A description of what the system and users expect when the scenario starts, the normal flow of events in the scenario, what can go wrong and how resulting problems can be handelled, information about other activities that might be going on at the same time, and the system state when the scenario ends.
What is a use-case?
A way of describing interactions between users and a system using a graphical model and structured text. A use-case identifies the actors involved in an interaction and names the type of interaction.
What is ethnography and how is it used in requirements elicitation?
An observational technique that can be used to understand the operational processes and help derive requirements for software to support these processes. It is used to derive requirements by watching the way people actually work rather than by using business process definitions alone. Can also be used to derive requirements by watching cooperation and awareness of other people's activities while people are working.
Requirements management
Business, organizational, and technical changes inevitably lead to changes to the requirements for a software system. This is the process of managing and controlling these changes
What is the distinction between functional and non-functional requirements?
Functional requirements are statements of the services the system must provide. Non-functional requirements are usually constraints on the system and development process. Non-functional requirements usually apply to the system as a whole rather than individual services (functional requirements).
How do managers and test engineers use a system requirements document?
Managers - Use the requirements document to plan a bid for the system and to plan the system development process. Test Engineers - Use the requirements to develop validation tests for the system
What are the stages in the requirements change management process?
Problem analysis and change specification - Problem or change proposal is analyzed to check that it is valid. Change analysis and costing - The effect of the proposed change is assessed using traceability information and general knowledge of the system requirements. Change implementation - The requirements document, and system design and implementation where necessary, are modified.
List 3 types of non-functional requirement?
Product Requirements - Specify or constrain the runtime behavior of the software. Organizational Requirements - Broad system requirements derived from policies and procedures in the customer and developer's organizations. External Requirements - All requirements derived from factors external to the system and its development process.
Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time.
Product Requirements: Usability - Should have language options Efficiency - Should run on embedded, light hardware, system Dependability - Should run under same schedule as train Security - Should use secure protocol to transfer information for transactions and proper security on card reader Organizational Requirements: Should use lightweight program architecture External Requirements: May include authority over transaction history
What are the main advantages of using a standard format to specify requirements?
Removes some of the problems of natural language specification. Variability in the specification is reduced, and requirements are organized more effectively.
What are the principal stages of the requirements engineering process?
Requirements Elicitation Requirements Specification Requirements Validation System Requirements Document
List three requirements validation techniques?
Requirements Reviews - Requirements are analyzed systematically be a team of reviewers who check for errors and inconsistency. Prototyping - Developing an executable model of the system and showing to end-users and customers too see if it meets their needs and specifications, feed back may change existing requirements. Test-case generation - Tests developed to ensure requirements are met.
What is the distinction between the terms' shall' and 'should' in a user requirements document, which is written in natural language?
Shall - Indicates mandatory requirements that the system must support. Should - Indicates desirable requirements that are not essential.
Give 5 reasons why eliciting requirements is difficult?
Stakeholders may not know, or find it difficult to articulate, exactly what they want the system to do. Stakeholders may express requirements in their own terms and with implicit knowledge of their own work which may not translate easily to engineers. Different stakeholders may express requirements in different ways. Political factors may influence the requirements of a system, such as, a requirement to increase the influence of a stakeholder's organization. The economic and business environment in which the analysis takes place is dynamic, meaning changes will happen during the analysis process.
What is requirements management?
The process of managing changing requirements during the requirements engineering process and system development.
What are user requirements and system requirements?
User Requirements - These are statements, in natural language plus diagrams, of what services the system is expected to provide to system users and the constraints under which it must operate. System Requirements - These are more detailed descriptions of the software system's functions, services, and operational constraints. They should define exactly what is to be implemented.
What checks should be applied during requirements validation?
Validity Checks - Check that requirements reflect the real needs of system users Consistency Checks - Requirements in the document should not conflict Completeness Checks - Requirements document should define all functions and constrains intended by the system user Realism Checks - Requirements should be reviewed to ensure that they can be implemented within the proposed budget for the system Verifiability - Should be able to write a set of tests to verify all requirements are met.
Using your knowledge of how an ATM is used, develop a set of use cases that could serve as a basis for understanding the requirements for an ATM system.
[train rider] → (transaction) → (stored data) → [external authority] [party interacting with system] → (activity) → [another party?]
Requirements elicitation
an iterative process that can be represented as a spiral of activities - requirements discovery, requirements classification and organization, requirements negotiation, and requirements documentation
Functional requirements
are statements of the services that the system must provide or are descriptions of how some computations must be carried out
requirements engineering process
includes requirements elicitation, requirements specification, requirements validation, and requirements management.
software requirements document
is an agreed statement of the system requirements. It should be organized so that both system customers and software developers can use it.
Requirements validation
is the process of checking the requirements for validity, consistency, completeness, realism, and verifiability.
Requirements specification
is the process of formally documenting the user and system requirements and creating a software requirements document
Non-functional requirements
often constrain the system being developed and the development process being used. These might be product requirements, organizational requirements, or external requirements. They often relate to the emergent properties of the system and therefore apply to the system as a whole.
Requirements for a software system
set out what the system should do and define constraints on its operation and implementation