Chapter 4 - User Requirements Flashcards
(32 cards)
What are User Requirements?
User requirements are statements of what the system should do
to meet the needs of its users
They describe the functionality, performance, and constraints of
the system from a user’s perspective
Sources of User Requirements
Users themselves (interviews, surveys, focus groups, etc.)
Stakeholders (managers, customers, regulators, etc.)
Existing systems (analyzing current systems to determine what
users like and don’t like)
Market research (analyzing the needs and wants of potential
users)
What are System Requirements?
System requirements describe what the software system should do to meet the needs of its users and stakeholders
They define the behavior, performance, and constraints of the system from a technical perspective
Sources of System Requirements
Functional specifications and other technical documents
Input from software architects and designers
Standards and regulations that the system must adhere to
Existing systems that the new system must integrate with
What are Functional Requirements?
Functional requirements refers to the specific features and functionalities that a software must have to meet the user’s needs.
Functional requirements describe what the software system should do in terms of inputs, processes, and outputs
They specify the behavior and functionality of the system from a
user’s perspective
Examples of Functional Requirements
User interfaces:
how users interact with the system
Data management:
how the system stores and retrieves data
Business rules:
how the system enforces business policies and
procedures
Processing logic:
how the system performs calculations and
other operations
Reports and outputs:
how the system presents information to
users
Characteristics of Good Functional
Requirements
Clear and concise:
The requirements should be easy to
understand and not open to interpretation
Complete:
The requirements should include all necessary
information
Correct:
The requirements should accurately reflect the needs
of the system’s stakeholders
Consistent:
The requirements should not conflict with each
other
Verifiable:
The requirements should be testable to determine if
they have been met
Advantages of Functional Requirements
Provides a clear understanding of the system’s intended behavior and functionality
Guides the development process and helps ensure that the system meets stakeholders’ needs
Provides a basis for testing the system to ensure that it works correctly and meets requirements
Helps manage project scope and provides a basis for estimating project effort and cost
Provides a basis for communicating with stakeholders and managing their expectations
Functional Benefits for Different Stakeholders
Users:
Functional requirements ensure that the system meets
their needs and provides the functionality they require
Developers:
Functional requirements guide development efforts
and provide clear goals for development activities
Testers:
Functional requirements provide a basis for testing the
system and ensuring that it works correctly
Project Managers:
Functional requirements help manage
project scope and provide a basis for estimating project effort and cost
Business Stakeholders:
Functional requirements ensure that the
system supports business processes and meets business needs
What are Non-Functional Requirements?
Non-functional requirements describe how the system should behave in terms of performance, reliability, security, usability, and other qualities
They specify the quality attributes or characteristics of the system from a user’s perspective
Characteristics of Non-Functional Requirements
Performance:
how quickly the system responds to user requests or processes data
Reliability:
how dependable and stable the system is under
normal and adverse conditions
Security:
how well the system protects data and user
information
Usability:
how easy and intuitive the system is to use
Maintainability:
how easily the system can be maintained and
modified
Importance of Non-Functional Requirements
Non-functional requirements are critical to the success of the software project as they define how well the system performs
and how easily it can be maintained
Non-functional requirements help ensure that the system is reliable, secure, performant, and easy to use
Capturing Non-Functional Requirements
Involve stakeholders in the requirements development process
Use multiple methods to capture requirements (e.g., interviews, surveys, prototypes)
Use clear and concise language to describe requirements
Ensure that non-functional requirements are testable and verifiable
Advantages of Non-Functional Requirement
Improved system quality:
Non-functional requirements ensure that the system is reliable, secure, performant, and easy to use. By defining these requirements upfront, software
developers can design and build a high-quality system that meets the needs of the
stakeholders.
Better user experience:
Non-functional requirements, such as usability and accessibility, help ensure that the system is easy to use and meets the needs of the users. This can
improve user satisfaction and adoption of the system.
Reduced risk:
Non-functional requirements, such as reliability and security, help mitigate risk by ensuring that the system is stable and secure. By defining these requirements
upfront, software developers can identify potential issues and address them before they
become bigger problems.
Clear project goals:
Non-functional requirements help establish clear project goals and expectations. This can help ensure that the stakeholders are aligned on the project’s
objectives and reduce the risk of miscommunication and misunderstandings.
Easier maintenance:
Non-functional requirements, such as maintainability and scalability, help ensure that the system is easy to maintain and can grow as the needs of the
stakeholders change over time. This can reduce the total cost of ownership of the system
and improve its long-term viability.
Type of Non-Functional Requirements:
Product Requirement
Organization Requirement
External Requirement
Product Requirement
Non-functional product requirements specify the characteristics or properties of the system that are not related to its specific functions or features.
These requirements are also known as quality attributes or quality characteristics.
Non-functional product requirements define the quality aspects of the system, which are critical to its success in the marketplace.
They help to ensure that the system meets the needs and expectations of the customers, and delivers value to the organization.
Examples of non-functional product requirements include performance, security, reliability, usability, scalability, maintainability, and compatibility.
Performance requirements specify the response time, throughput, or capacity of the system under different
conditions, such as peak usage or heavy load.
Security requirements specify the level of protection required for the system, such as authentication, access
control, or encryption.
Reliability requirements specify the expected availability, fault tolerance, or error handling capabilities of the system.
Usability requirements specify the ease of use, accessibility, or user interface design of the system.
Scalability requirements specify the ability of the system to handle increasing levels of usage, data volumes, or users.
Maintainability requirements specify the ease of maintenance, modification, or integration with other systems.
Compatibility requirements specify the ability of the system to work with other systems, platforms, or technologies.
Organization Requirement
Organization requirements for non-functional requirements specify the constraints, standards, or
policies that the system must conform to in order to meet the needs of the organization.
These requirements are often specific to the organization, and may include legal or regulatory
requirements, industry standards, or internal policies and procedures.
Organization requirements for non-functional requirements help to ensure that the system aligns with
the overall goals and objectives of the organization and operates in a manner that is consistent with its
values and principles.
Examples of organization requirements for non-functional requirements include compliance with data
privacy regulations, adherence to industry best practices, or compatibility with existing IT
infrastructure.
Compliance requirements may include adherence to standards such as HIPAA, PCI, or GDPR, or
compliance with regulations such as SOX, FDA, or FISMA.
Industry-specific requirements may include compliance with standards such as ISO 9001, ISO 27001,
or ITIL, or adherence to industry-specific guidelines or best practices.
Internal policy requirements may include adherence to organizational policies related to security, data
management, or software development processes.
Organization requirements for non-functional requirements may also include constraints related to
budget, resources, or timelines, which may impact the design, development, or implementation of the
system.
Overall, organization requirements for non-functional requirements help to ensure that the system
meets the needs of the organization and operates in a manner that is consistent with its values,
principles, and obligations.
External Requirement
External requirements for non-functional requirements specify the constraints, expectations, or standards that are imposed by external stakeholders,
such as customers, partners, or regulatory bodies.
These requirements are often specific to the external environment in which the system will operate, and may include legal or regulatory requirements,
industry standards, or customer expectations.
External requirements for non-functional requirements help to ensure that the system meets the needs and expectations of the external stakeholders
and operates in a manner that is consistent with the external environment in which it will operate.
Examples of external requirements for non-functional requirements include compliance with data privacy regulations, adherence to industry standards,
or compatibility with external systems or technologies.
Compliance requirements may include adherence to standards such as HIPAA, PCI, or GDPR, or compliance with regulations such as SOX, FDA, or
FISMA.
Industry-specific requirements may include compliance with standards such as ISO 9001, ISO 27001, or ITIL, or adherence to industry-specific
guidelines or best practices.
Customer expectations may include requirements related to performance, reliability, security, or usability, as well as expectations related to user
experience, customer service, or support.
External requirements for non-functional requirements may also include constraints related to the external environment, such as the availability of
network infrastructure, or the compatibility of external systems or technologies.
Overall, external requirements for non-functional requirements help to ensure that the system meets the needs and expectations of the external
stakeholders, and operates in a manner that is consistent with the external environment in which it will operate
Differences between Functional and
Non-Functional Requirements
Functional Requirements
Non-Functional Requirements
Describe what the system should do
Describe how the system should behave
Are concerned with system features and
functionality
Are concerned with system characteristics and
properties
Can be tested by verifying whether the system
meets specific functionality criteria
Can be tested by verifying whether the system
meets specific performance, security, or usability
criteria
Are typically specified by stakeholders who interact
directly with the system
Are typically specified by stakeholders who have
an interest in the system’s overall performance,
security, or usability
Are often specific to a particular system or
application
Are often general requirements that apply to many
systems or applications
Are usually easier to define and document
Are usually more complex and difficult to define
and document
Examples: login functionality, search functionality,
checkout process
Examples: response time, scalability, reliability,
security, usability
Requirement Engineering Process
Requirement Engineering is a systematic process of gathering, analyzing, documenting, validating, and managing software requirements.
Steps involved in Requirement Engineering Process
Requirements elicitation:
This step involves gathering requirements from stakeholders using various techniques such as interviews, questionnaires, and workshops. The goal is to identify the needs, goals, and constraints of the stakeholders.
Requirements analysis:
This step involves analyzing the requirements to identify inconsistencies, ambiguities, and conflicts. The goal is to ensure that the requirements are
complete, consistent, and unambiguous.
Requirements specification:
This step involves documenting the requirements in a clear and concise manner using standard templates and notation. The goal is to provide a complete
and accurate description of the requirements that can be used as a basis for design and
implementation.
Requirements validation:
This step involves ensuring that the documented requirements accurately represent the needs and expectations of the stakeholders. The goal is to identify
and correct any errors or omissions in the requirements before the software is developed.
Requirements management:
This step involves tracking changes to the requirements and ensuring traceability throughout the software development life cycle. The goal is to ensure
that the requirements are properly managed and that any changes are properly documented and communicated to stakeholders.
Requirement Elicitation and Analysis
Requirement elicitation and analysis are the first two steps in
the Requirement Engineering process.
They involve gathering and analyzing the needs and
requirements of stakeholders to define the scope and features
of a software system.
Requirement Elicitation:
Requirement Elicitation: Requirement elicitation involves identifying, gathering, and documenting the needs, expectations, and constraints of stakeholders.
The goal is to understand the stakeholders’ needs and goals, and to collect as much relevant information as possible.
Techniques for requirement elicitation include interviews, focus groups, surveys, observations, and brainstorming sessions.
Requirement Analysis:
Requirement analysis involves reviewing and analyzing the gathered requirements to ensure they are clear, consistent, and complete.
This involves identifying any gaps, conflicts, and ambiguities in the requirements, and ensuring that they are relevant and feasible.
Techniques for requirement analysis include reviewing existing documentation, use cases, and prototypes.