Oose My Notes
Oose My Notes
1. Requirement Analysis:
Definition:
Requirement analysis is the process of discovering, analyzing, validating, and documenting the needs
and requirements of the stakeholders for a software system.
Objectives:
• Requirements Validation: Ensuring the requirements are correct, complete, and meet the
users’ needs.
2. Requirement Specification:
Definition:
Requirement specification is the process of documenting the analyzed requirements in a clear,
precise, and organized manner. This document is known as the Software Requirements Specification
(SRS).
Types:
Purpose of SRS:
Key Characteristics:
2. Non-Functional Requirements
• Non-functional requirements define how the system should perform rather than what
it should do. They include aspects like performance, specifying that the system must
respond within 2 seconds under normal load, or reliability, stating that uptime should
be at least 99.9%.
• They also address usability, ensuring that the interface is easy to navigate and user-
friendly, especially for new users. Security is another major component, requiring
data encryption, access control, and secure login methods like two-factor
authentication.
• Maintainability and scalability are crucial too—developers should be able to easily
update the code, and the system should handle growth in users and data without
slowing down. Portability and availability are also considered, ensuring the system
works on different devices and remains accessible during the required hours.
Category Explanation Example
Speed, response time, "The system should respond within 2
Performance
throughput seconds for 95% of queries."
Ability to grow in user "Must handle 1,000 concurrent users
Scalability
base/data volume without degradation."
Protection of data and system "Password must be hashed using SHA-256;
Security
access use 2FA for login."
System uptime and failure "System should have 99.9% uptime
Reliability
resistance annually."
Ease of fixing issues or "Code should follow naming conventions
Maintainability
upgrading and be documented."
User interface clarity and "New users should learn the system within
Usability
ease of use 30 minutes."
Ability to run on different "The application must run on both iOS and
Portability
devices/OS Android."
Time system is operational "System must be available from 6 AM to 12
Availability
and accessible AM daily."
Importance:
• A system might work functionally but fail in performance or usability if NFRs are
not defined.
• Affects user satisfaction, reputation, and long-term success.
3. User Requirements
• User requirements describe what the end users expect the system to do in simple, non-
technical language. These requirements often come from interviews, surveys, or
observations of how users interact with existing systems or prototypes.
• They focus on user goals and how the system can help achieve them. For instance, a
user may want to track their orders, reset their password, or apply a promo code at
checkout. These needs are usually expressed as user stories in Agile projects—for
example: “As a user, I want to view my transaction history so I can track my
expenses.”
• User requirements are crucial because they directly reflect what stakeholders and
customers expect. They guide the overall direction of the software, helping developers
prioritize features that deliver real value to users.
Key Characteristics:
1. Written in non-technical, user-friendly language.
2. Describe the system from the user's point of view.
3. Help bridge the gap between stakeholders and developers.
4. Typically used in early phases to understand goals.
Formats:
• Natural language statements: "The user should be able to search for products."
• User Stories (Agile):
As a [type of user], I want [a feature] so that [a benefit].
Examples:
• "As a student, I want to track my attendance so that I can know when I need to
improve."
• "As a customer, I want to apply coupons during checkout to get discounts."
• "As an admin, I want to delete users who violate the terms."
Importance:
• Help elicit and prioritize features.
• Used to initiate discussions between clients and developers
4. System Requirements
• System requirements provide detailed technical specifications for the development
team. They are more precise than user requirements and include both functional and
non-functional aspects in a structured format, usually documented in the Software
Requirements Specification (SRS).
• They define how features will be implemented—such as using OAuth 2.0 for login or
storing files on cloud services like AWS. These requirements cover hardware
configurations, operating systems, memory limits, and integration with other systems
or APIs.
• System requirements also help ensure compatibility, scalability, and maintainability.
They are essential for architects to design the system infrastructure, for developers to
build the solution, and for testers to validate whether all expectations are met.
Two Categories:
Key Characteristics:
Functional:
• "The system shall store user login sessions using JWT for 30 minutes of inactivity."
• "When the user uploads a file, it shall be stored in Amazon S3."
Non-Functional:
Importance:
Requirement Gathering
1. Feasibility Study
The Feasibility Study is the initial stage where the project team
determines whether the proposed system is technically,
economically, legally, operationally, and schedule-wise feasible.
Techniques used:
Analysis includes:
4. Requirements Specification
SRS includes:
Validation techniques:
6. Requirements Management
Key activities:
1. What is UML?
• A lot of time is saved down the line when teams can visualize
processes, user interactions, and the static structure of the
system.
The most widely use UML diagram is the class diagram. It is the
building block of all object oriented software systems. We use
class diagrams to depict the static structure of a system by showing
system's classes, their methods and attributes. Class diagrams also
help us identify relationship between different classes or object
Class Diagram
Component Diagram
• They are primarily used to organise class and use case diagrams.
Package Diagram
Sequence Diagram
Note: Remember that the specific steps may vary based on the