18 Questions
What is the main purpose of a system requirements document?
To provide a detailed description of the system's functions, services, and operational constraints
What is the difference between functional and non-functional requirements?
Functional requirements describe the services the system should provide, while non-functional requirements are constraints on those services
Why is it important to write requirements at different levels of detail?
Because different readers (e.g. users, developers) use the requirements in different ways
Which of the following is NOT a characteristic of a functional requirement?
Defines the system's timing constraints
Which of the following is a key purpose of a system requirements document?
To define exactly what is to be implemented in the software system
What is the main difference between user requirements and system requirements?
User requirements define the services the system should provide, while system requirements are more detailed descriptions
What does completeness mean in the context of functional system requirements?
Having all services required by the user defined
Which of the following factors can influence the requirements of a software system?
The type of software being developed and expected users
Why is it challenging to achieve both consistency and completeness in large, complex systems?
Complexity and scale of large systems
Which of the following is an example of a functional requirement for a mental health care patient management system?
The system shall generate a list of patients attending appointments daily
What does consistency mean in the context of functional system requirements?
Making sure requirements do not contradict each other
What is an example of a specific functional requirement mentioned in the text?
Each staff member shall be uniquely identified by an eight-digit number
What is the primary purpose of requirements engineering?
To define the services and constraints of a system
How is the term 'requirement' used in the software industry?
It is used inconsistently, ranging from abstract statements to formal definitions
Why should requirements be written in an abstract way for a large software development project?
To allow multiple contractors to bid for the contract
What should the contractor do after being awarded the contract?
Write a detailed system definition for the client
Which of the following statements is true about requirements documents?
Both the client's and contractor's documents may be called requirements documents
What is the purpose of writing a system definition in more detail by the contractor?
To validate the client's understanding of the software
Study Notes
Types of Requirements
- User requirements: natural language plus diagrams, describing services the system provides and operational constraints
- System requirements: detailed descriptions of software system’s functions, services, and operational constraints
Functional and Non-Functional Requirements
- Functional requirements: statements of services the system should provide, how it should react to inputs, and behave in situations
- May include explicit statements of what the system should not do
- Non-functional requirements: constraints on services or functions offered by the system, including timing constraints, development process constraints, and standards-imposed constraints
Functional Requirements
- Describe what the system should do
- Depend on software type, users, and organization approach
- Vary from general to specific requirements reflecting local ways of working or existing systems
- Examples for a mental health care patient management system:
- A user shall be able to search the appointments lists for all clinics
- The system shall generate each day, for each clinic, a list of patients expected to attend appointments that day
- Each staff member using the system shall be uniquely identified by their eight-digit employee number
Requirements Completeness and Consistency
- Functional requirements specification should be both complete (define all services required by the user) and consistent (no contradictory definitions)
- In practice, achieving completeness and consistency is impossible for large, complex systems
Requirements Engineering
- The process of finding out, analyzing, documenting, and checking services and constraints of a system is called requirements engineering (RE)
- The term "requirement" is not used consistently in the software industry, ranging from high-level abstract statements to detailed, formal definitions of system functions
Requirement Abstraction
- Requirements must be written in a sufficiently abstract way to allow for different solutions and bidding from contractors
- Once a contract is awarded, the contractor must write a more detailed system definition for the client to validate the software's functionality
Learn about Requirement Engineering in software engineering, covering the process of finding out, analyzing, documenting, and checking the services and constraints of a system. Explore the importance and definitions surrounding system requirements.
Make Your Own Quizzes and Flashcards
Convert your notes into interactive study material.
Get started for free