SOFTWARE ENGINEERING - UNIT 2
1(a) Write short notes on user requirements. What are requirements?
Definition of Requirements:
Requirements are the statements or descriptions of what a system should do or the services it should provide.
They represent the needs and expectations of users, customers, and stakeholders from the software system.
Types of Requirements:
1. Functional Requirements: Describe what the system should do. Example: 'The system should allow users to
log in using a username and password.'
2. Non-Functional Requirements: Describe how the system should perform (quality attributes). Example: 'The
system should respond to user requests within 2 seconds.'
User Requirements:
User Requirements are high-level, natural language statements written for end users and customers. They
describe the system’s functions and services in a way that non-technical users can understand. Usually
documented in a Software Requirement Specification (SRS).
Characteristics of Good User Requirements:
Clear and understandable, Complete and consistent, Testable, Feasible, and Relevant to user needs.
Example:
'The system shall allow students to register for courses online.'
'The software shall display real-time account balance to the user.'
Summary:
User requirements form the foundation of the software development process. They ensure that the final system
meets user expectations and that developers have a clear understanding of what needs to be built.
1(b) Compare functional requirements with non-functional requirements
Functional Requirements: Define what the system should do — behavior, functions, or services.
Non-Functional Requirements: Define how the system performs — quality attributes and performance
standards.
Comparison Table:
Functional: Specify what the system should do.
Non-Functional: Specify how well the system performs.
Examples: Functional - User login, data storage; Non-Functional - Performance, reliability.
Measurement: Functional testing vs performance testing.
Example:
Functional: 'The system shall allow users to register using email and password.'
Non-Functional: 'The registration process shall complete within 3 seconds for 1000 users simultaneously.'
Conclusion:
Functional requirements describe what a system does, while non-functional requirements describe how well it
does it.
2(a) Discuss system requirements in a detailed manner
System requirements define what a software system must do and the constraints under which it must operate.
They bridge user needs and system design, ensuring the final product functions correctly within its environment.
Categories:
1. Functional Requirements
2. Non-Functional Requirements
Purpose:
Provide clear understanding, aid design and testing, help in planning, and act as a contract between client and
developer.
Types of System Requirements:
Hardware, Software, Interface, and User Requirements.
Conclusion:
Well-defined system requirements ensure the system is built correctly and satisfies user needs.
2(b) Explain requirement engineering process
Definition:
Requirement Engineering (RE) is the process of defining, documenting, and maintaining software requirements.
Steps in Requirement Engineering Process:
1. Feasibility Study
2. Requirement Elicitation
3. Requirement Analysis
4. Requirement Specification
5. Requirement Validation
6. Requirement Management
Conclusion:
Requirement Engineering ensures that the software meets user expectations, minimizing errors and rework.
3(a) Discuss briefly how requirement validation is done
Definition:
Requirement validation checks whether documented requirements are complete, consistent, and represent user
needs.
Key Activities:
Reviews, Prototyping, Model Validation, Test Case Generation, Consistency and Completeness Checks.
Techniques:
Reviews/Inspections, Prototyping, Model Analysis, Automated Consistency Checking.
Outcome:
Validated requirements are approved by stakeholders as the SRS baseline.
3(b) Discuss how an ATM is used; develop a set of requirements
Definition:
An ATM is an electronic device that allows customers to perform financial transactions like withdrawals and
balance inquiries without human assistance.
ATM Usage Process:
Card Insertion → Authentication → Transaction Selection → Processing → Completion → Session End.
Functional Requirements:
Card reading, PIN authentication, transaction selection, server communication, receipt printing.
Non-Functional Requirements:
Security, Availability, Performance, Reliability, Usability.
Conclusion:
ATM systems are secure, real-time, and interactive software requiring strong functional and non-functional design.