Podcast
Questions and Answers
Which of the following best describes the purpose of requirements engineering in software development?
Which of the following best describes the purpose of requirements engineering in software development?
- To define the hardware needed for the software application.
- To write the code for a software application.
- To design the user interface of a software application.
- To establish the services a customer requires from a system and the constraints under which it operates and is developed. (correct)
What is the significance of requirements serving a 'dual function' during the contracting of a software project?
What is the significance of requirements serving a 'dual function' during the contracting of a software project?
- They must be open to interpretation for bidding yet defined in detail for the contract itself. (correct)
- They must only describe the system's functionality from a technical stance to avoid misinterpretation.
- They should be fully detailed from the outset to allow for accurate bidding and contract definition.
- They should serve as guidelines for the team's structure and processes during the project lifecycle.
According to Davis’ Requirements Abstraction, why should a company define its needs in a sufficiently abstract way when letting a software contract?
According to Davis’ Requirements Abstraction, why should a company define its needs in a sufficiently abstract way when letting a software contract?
- To limit the contractors' options, assuring a high degree of control.
- To allow multiple contractors to offer different ways of meeting the needs, fostering innovation and competition. (correct)
- To minimize the effort needed to write the requirements document.
- To reduce the risk of scope creep during the development process.
Which statement differentiates a 'user requirement' from a 'system requirement'?
Which statement differentiates a 'user requirement' from a 'system requirement'?
What is the primary role of 'system stakeholders' in the requirements engineering process?
What is the primary role of 'system stakeholders' in the requirements engineering process?
Considering the 'Mentcare system', how do medical ethics managers contribute as stakeholders?
Considering the 'Mentcare system', how do medical ethics managers contribute as stakeholders?
What is a key argument against producing detailed system requirements in agile methods?
What is a key argument against producing detailed system requirements in agile methods?
When are Agile methods considered 'problematic' concerning requirements?
When are Agile methods considered 'problematic' concerning requirements?
What is a functional requirement in software engineering?
What is a functional requirement in software engineering?
What is the main difference between functional and non-functional requirements?
What is the main difference between functional and non-functional requirements?
What is the most likely consequence of imprecise functional requirements?
What is the most likely consequence of imprecise functional requirements?
What does it mean for requirements to be 'complete' and 'consistent'?
What does it mean for requirements to be 'complete' and 'consistent'?
What is the potential impact of failing to meet non-functional requirements?
What is the potential impact of failing to meet non-functional requirements?
What should be used to objectively test non-functional requirements?
What should be used to objectively test non-functional requirements?
Which of the following is most likely to be a 'product requirement'?
Which of the following is most likely to be a 'product requirement'?
Which aspect of non-functional requirements is addressed by the metric 'Mean Time To Failure'?
Which aspect of non-functional requirements is addressed by the metric 'Mean Time To Failure'?
What is the primary goal of 'Requirements Engineering' processes?
What is the primary goal of 'Requirements Engineering' processes?
What are the core, generic activities common to all 'Requirements Engineering' processes?
What are the core, generic activities common to all 'Requirements Engineering' processes?
During requirements elicitation and analysis, who are considered 'stakeholders'?
During requirements elicitation and analysis, who are considered 'stakeholders'?
Which of the following is a key challenge encountered during requirements elicitation?
Which of the following is a key challenge encountered during requirements elicitation?
In the requirements elicitation and analysis process, what is the purpose of 'requirements classification and organization'?
In the requirements elicitation and analysis process, what is the purpose of 'requirements classification and organization'?
Why is 'prioritization and negotiation' a key activity in the requirements elicitation process?
Why is 'prioritization and negotiation' a key activity in the requirements elicitation process?
What characterizes effective interviewing as a requirements elicitation technique?
What characterizes effective interviewing as a requirements elicitation technique?
What is a primary limitation of using interviews to understand domain requirements?
What is a primary limitation of using interviews to understand domain requirements?
A social scientist uses considerable time to observe how people work. This describes which technique?
A social scientist uses considerable time to observe how people work. This describes which technique?
What is a key benefit of ethnography in requirements elicitation?
What is a key benefit of ethnography in requirements elicitation?
How does 'Focused Ethnography' aim to improve traditional ethnography in requirements analysis?
How does 'Focused Ethnography' aim to improve traditional ethnography in requirements analysis?
What statement best describes 'scenarios' in the context of requirements elicitation?
What statement best describes 'scenarios' in the context of requirements elicitation?
What is the primary goal of 'requirements specification'?
What is the primary goal of 'requirements specification'?
Why is 'natural language' commonly used in writing user requirements?
Why is 'natural language' commonly used in writing user requirements?
When writing requirements, the term shall
is best to use when...
When writing requirements, the term shall
is best to use when...
What is a key problem associated with using natural language to specify requirements?
What is a key problem associated with using natural language to specify requirements?
What distinguishes 'structured specifications' from natural language specifications?
What distinguishes 'structured specifications' from natural language specifications?
In a form-based specification, what information is captured under 'Pre and post conditions'?
In a form-based specification, what information is captured under 'Pre and post conditions'?
When would tabular specification be used?
When would tabular specification be used?
Which of the following best describes what must be captured in the Software Requirements Document (SRD)?
Which of the following best describes what must be captured in the Software Requirements Document (SRD)?
What role does 'system evolution' play within the structure of a requirements document?
What role does 'system evolution' play within the structure of a requirements document?
What is the primary focus of 'requirements validation'?
What is the primary focus of 'requirements validation'?
Which of the following is a critical aspect of 'requirements validation'?
Which of the following is a critical aspect of 'requirements validation'?
What is the goal of holding regular reviews during the requirements definition?
What is the goal of holding regular reviews during the requirements definition?
During a requirement review, what does 'Verifiability' mean?
During a requirement review, what does 'Verifiability' mean?
Why is 'Requirements Management' a critical process in software engineering?
Why is 'Requirements Management' a critical process in software engineering?
What is the purpose of traceability policies
What is the purpose of traceability policies
What is a key activity in software requirements change management when a change request is made?
What is a key activity in software requirements change management when a change request is made?
Flashcards
Requirements Engineering
Requirements Engineering
Establishing the services a customer requires from a system, including constraints.
System Requirements
System Requirements
Descriptions of system services and constraints generated during requirements engineering.
What is a Requirement?
What is a Requirement?
Abstract statement of service or system constraint to a detailed functional specification
User Requirements
User Requirements
Signup and view all the flashcards
System Requirements (detailed)
System Requirements (detailed)
Signup and view all the flashcards
System Stakeholder
System Stakeholder
Signup and view all the flashcards
Agile Methods
Agile Methods
Signup and view all the flashcards
Functional Requirements
Functional Requirements
Signup and view all the flashcards
Non-Functional Requirements
Non-Functional Requirements
Signup and view all the flashcards
Domain Requirements
Domain Requirements
Signup and view all the flashcards
Functional Requirements Details
Functional Requirements Details
Signup and view all the flashcards
Non-Functional Requirements Details
Non-Functional Requirements Details
Signup and view all the flashcards
Product Requirements
Product Requirements
Signup and view all the flashcards
Organizational Requirements
Organizational Requirements
Signup and view all the flashcards
External Requirements
External Requirements
Signup and view all the flashcards
Goal (Requirements)
Goal (Requirements)
Signup and view all the flashcards
Verifiable non-functional requirement
Verifiable non-functional requirement
Signup and view all the flashcards
Requirements Engineering (RE)
Requirements Engineering (RE)
Signup and view all the flashcards
Requirements Elicitation
Requirements Elicitation
Signup and view all the flashcards
Stakeholders
Stakeholders
Signup and view all the flashcards
Stages of Requirements Elicitation
Stages of Requirements Elicitation
Signup and view all the flashcards
Problems of Requirements Elicitation
Problems of Requirements Elicitation
Signup and view all the flashcards
Requirements Discovery
Requirements Discovery
Signup and view all the flashcards
Interviewing
Interviewing
Signup and view all the flashcards
Ethnography
Ethnography
Signup and view all the flashcards
Scope of Ethnography
Scope of Ethnography
Signup and view all the flashcards
Focused Ethnography
Focused Ethnography
Signup and view all the flashcards
User Stories and Scenarios
User Stories and Scenarios
Signup and view all the flashcards
Requirements Specification
Requirements Specification
Signup and view all the flashcards
Natural Language Specification
Natural Language Specification
Signup and view all the flashcards
Guidelines For Writing Requirements
Guidelines For Writing Requirements
Signup and view all the flashcards
Problems With Natural Language
Problems With Natural Language
Signup and view all the flashcards
Structured Specifications
Structured Specifications
Signup and view all the flashcards
Structure of a Requirements document.
Structure of a Requirements document.
Signup and view all the flashcards
Requirements Validation
Requirements Validation
Signup and view all the flashcards
Validity
Validity
Signup and view all the flashcards
Requirements Reviews
Requirements Reviews
Signup and view all the flashcards
Changing Requirements
Changing Requirements
Signup and view all the flashcards
Requirements Management
Requirements Management
Signup and view all the flashcards
Requirements Identification
Requirements Identification
Signup and view all the flashcards
Study Notes
- Chapter 4 focuses on requirement engineering
Overview
- Primary topics include functional and non-functional requirements, engineering processes, requirements elicitation, specification, validation, and change management
- Requirement engineering establishes customer-required services and operational constraints
- System requirements describe system services and constraints produced during the engineering process
Requirements Types
- It ranges from abstract service statements to detailed functional specs
- Inevitable because requirements serve two purposes: contract bids (open interpretation) and contract basis (detailed definition)
- Requirements abstraction entails companies defining needs abstractly for contractor bids; contractors then write detailed system definitions for clients
- User specifications employ natural language and diagrams for customer understanding
- System specifications are structured documents detailing functions of the system, which may be part of a client-contractor agreement
Requirements Readers and Stakeholders
- User requirements are intended for client managers, end-users, client engineers, system architects, and contractor managers
- System requirements primarily target system end-users, client engineers, system architects, and software developers
- System stakeholders are individuals or groups affected by the system and have a legitimate interest
- Stakeholder categories include end-users, system managers, system owners, and external entities.
Agile Methods
- Agile methods view comprehensive system specifications as inefficient due to rapid changes
- Agile focuses on incremental engineering using user stories, suitable for business systems yet challenging for pre-delivery or multi-team projects
Functional vs Non-Functional Requirements
- Functional requirements describe what the system should do, its response to inputs, and its behavior in particular situations, and what not to do
- Non-functional requirements impose constraints on services, such as timing, development process, standards and apply to the entire system
- Domain requirements are operational constraints
- Functional requirements describe system services, depending on software type, expected users, and usage context. They range from high-level user needs(functional USER requirements and detailed system features(functional SYSTEM requirements)
- Ambiguity in functional requirements can lead to interpretation issues between developers and users
- System requirements should be complete including all required facilities and consistent with no conflicts
- Business complexity can make it impossible to produce a complete and consistent requirements document
- Non-functional requirements define system properties (e.g., reliability) and may mandate specific development tools or methods
- Failure to meet non-functional criteria can render the system unusable
- Types of non-functional requirements include product, organizational, and external requirements
Non-Functional Requirements Implementations and Classificatons
- They can shape overall system architecture and generate related functional requirements.
- Classifications:
- Product requirements
- Specify how the delivered product ought to behave, such as its execution speed and reliability
- Organizational requirements
- Stem from organizational protocols, for example, process standards and implementation mandates
- External requirements
- Emerge from outside influences like cross-system operability mandates
- Product requirements
Goals
- Goals may provide insights to developers regarding user requirements that could be difficult to state precisely
- Verifiable requirements should have statements using measures for testability
- Usability goals example
- The system should be easy to use by medical staff and organized to minimize user errors
- Non-functional metrics include:
- Speed
- Measured by transactions / second
- Ease of use
- Measured by training time
- Speed
Requirement Engineering Processes and Elicitation
- They vary based on project specifics, generic activities include elicitation, analysis, validation, and management
- Requirements Elicitation involves finding out about the application domain and operational constraints, which can involve a range of stake holders
- In practice, RE is an iterative activity in which processes are interleaved
- The stages of elicitation include discovery, classification, prioritization, and specification
Requirement Elicitation Problems
- Stakeholder communication issues during the analysis process and new stakeholder's opinions
- The requirements change during the analysis process
- New stakeholders may emerge and the business environment may change
Process Activites
- Requirements Classification and Organization
- Requirements are related to and organized into coherent clusters
- Prioritisation and negotiation
- Prioritising requirements and resolving requirements conflicts
- Requirements specification -Requirements are documented and input into the next round of the spiral*
- Requirements Discovery
- Gather information about existing systems and stakeholders
Interviews
- Interviews are frequently used in RE processes, can be;
- Closed
- Based on pre-determined questions
- Open
- Explored with stakeholders
- Closed
- Can involve application specialists creating difficulties for requirement engineers
Ethnography and Focused Ethnography
- A social scientist spends a considerable time observing and analyzing how people actually work
- Ethnographic studies have shown that work is usually richer and more complex than suggested by simple system models
- It is effective for understanding existing processes but cannot identify new features to add to a system
- Focused ethnography combines ethnography with prototyping where prototype development results in unanswered questions which focus the ethnographic analysis
- Focused Ethnography was was developed in a project studying the air traffic control process
- The problem with ethnography is that it studies existing practices which may have some historical basis which is longer relevant
Stories and Scenarios
- Scenarios and user stories describe system use in real-life examples and in a particular task
- Stakeholders can relate to scenarios leading to useful feedback discussions.
- Scenarios should have: - A description of the starting situation - A description of the normal flow of events - A description of what can go wrong - Information about other concurrent activities - A description of the state when the scenario finishes
Requirements Specification
- Process involves documenting user and system requirements in a software requirements documents
- The user needs to be able to understand the software by end-users
- Important for the requirements to be complete as possible
- Should define WHAT the system should do rather than HOW it should do it (i.e. it is NOT a design document)
Ways of Writing Specifications
- Include natural language and Structured language.
- Natural language specification
- Used for writing requirements because it is expressive, intuitive and universal for all individuals, diagrams and tables
- Requires a standardized format that specifies 'shall' for mandatory ones or 'should' for desirable ones
- Can have problems like clarity, confusion or amalgmation
- Structured language:
- Form-based specifications including a definition of inputs and outputs, functions of the business processes.
- Tabular specifications
- Useful for defining multiple potential courses of action or processes.
- For example, the insulin pump systems bases its computations on the rate of change of blood sugar level
Use Cases
- Use-cases are a kind of scenario that are included in the UML
- Use cases identify the actors in an interaction and which describe the interaction itself
- Important a set of use cases describe all possible interactions with the system
The Software Requirements Document
- The Official statement of what is required from developers
- Includes
-User requirements
- System requirements
- Not a design document rather focus on WHAT not HOW
- User of requirements system includes specifying requirements, planning bids, planning, understanding the system, developing validation tests and maintain the system
Requirements Validation
- Validation addresses if the requirements properly define what the customer needs
- Undetected errors can cost up to 100x more post-delivery than fixing implementation bugs
- Checking includes validity(functions supporting customer needs), consistency(conflict free), realism(can implement within tech constraints), completeness (are customer functions included?) and verifiability (can it be tested?)
- Validation Techniques includes the systematic manual analysis of specifications
- Using Prototyping and the development of test for requirements to check testability
- During review, the requirements need to be be verifiable, comprehensible, traceable for its origins and adaptable for any requirement changes that could impact system functionality
Requirements Change
- Business and tech environments evolve post-installation, change often derives the requirement
- System patrons and actual system users are distinctly different
- Large, diverse user bases can have conflicting needs
- Change analysis and costing should be undertaken with a focus on traceability and impact of system requirements before decisions can be made about whether to implement requirements change
Requirements Management Planning
- It establishes the detail that is required, like requirements and change management, traceability and tool support as well as the design that should be recored.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.