Lesson 2 - Reruirements Analysis and Planning
Lesson 2 - Reruirements Analysis and Planning
Requirements gathering is one of the most crucial stages in the Systems Analysis and Design
(SAD) process.
The goal: is to gather detailed and accurate information about what the system should do, as
well as the constraints it must operate within. This information forms the foundation for the
design and development phases.
Key Points:
They serve as the basis for designing, building, and testing the system.
2. Types of Requirements
1. Functional Requirements:
o Login System:
2. Non-Functional Requirements:
Page 1 of 10
o Describe how the system should perform the tasks rather than what tasks it
performs.
o Examples:
1. Performance
Definition: Performance refers to how well a system responds to requests or how
efficiently it performs its tasks, often measured in terms of speed, responsiveness, and
resource usage.
Aspects:
o Response time: How quickly the system reacts to a user’s input or request.
o Throughput: The amount of work the system can handle in a given period.
o Efficiency: How optimally the system uses computational resources (CPU,
memory, bandwidth).
Example: A website that loads within 2 seconds under normal traffic is performing well.
2. Scalability
Definition: Scalability is the ability of a system to handle increasing amounts of work or
its potential to accommodate growth, whether it's more users, data, or transactions.
Aspects:
o Vertical Scalability (Scaling Up): Adding more resources (CPU, memory, storage)
to a single server to increase capacity.
o Horizontal Scalability (Scaling Out): Adding more servers or instances to
distribute the load.
Example: A cloud-based application that can handle more users by adding additional
servers to meet demand during peak hours.
3. Security
Definition: Security refers to the measures taken to protect the system and its data from
unauthorized access, breaches, and attacks.
Aspects:
o Authentication: Verifying the identity of users (e.g., username and password,
biometrics).
o Authorization: Defining what authenticated users are allowed to do (e.g., user
roles, permissions).
o Encryption: Protecting sensitive data by converting it into unreadable format
unless decrypted with a proper key.
o Vulnerability management: Identifying and fixing security flaws or weaknesses
in the system.
Page 2 of 10
Example: Implementing HTTPS, encrypting user data, and protecting against SQL
injection are all part of securing an application.
4. Usability
Definition: Usability refers to how easy, intuitive, and user-friendly the system is for its
intended users.
Aspects:
o Ease of use: How easy it is for users to understand and interact with the system.
o Learnability: How quickly users can learn how to use the system.
o Accessibility: Making sure the system is usable by people with disabilities (e.g.,
voice commands, screen readers).
o User experience (UX): Overall satisfaction with the system's interface and
design.
Example: A mobile app with clear navigation, simple interfaces, and user-friendly design
is considered highly usable.
5. Availability
Definition: Availability refers to the proportion of time a system is operational and
accessible to users, often expressed as a percentage (e.g., 99.99% uptime).
Aspects:
o Uptime: The time when the system is running and accessible.
o Downtime: The time when the system is unavailable due to maintenance,
failure, or other issues.
o Fault tolerance: The ability of a system to continue functioning even when
certain components fail.
o Redundancy: Having backup systems and components to maintain availability
during failures (e.g., backup servers, load balancers).
Example: A web service that has an uptime of 99.9% (which means it's down for about
8 hours a year) is highly available.
3.User Requirements:
4.System Requirements:
o More detailed and technical requirements that define how the system will meet
user needs.
Page 3 of 10
o Examples: "The system must handle 1000 concurrent users."
5. Business Requirements:
a. Higher-level needs that align the system with the business goals and strategy.
1. Interviews:
2. Surveys/Questionnaires:
3. Workshops:
4. Observation:
o Observing users while they interact with existing systems or perform tasks.
o Pros: Provides a realistic view of how tasks are performed in the actual
environment.
Page 4 of 10
5. Document Analysis:
6. Prototyping:
o Pros: Users get to see and feel the system early; feedback can refine the design.
o Cons: Users might focus on the prototype itself rather than the system’s actual
purpose.
7. Use Cases:
o Describing interactions between users (actors) and the system. Use cases
capture functional requirements.
Once the requirements are gathered, they need to be carefully documented to avoid
misunderstandings. Common documentation techniques include:
i. Introduction:
a. Overview of the Hospital Management System (HMS), its goals, and the
stakeholders involved.
Page 5 of 10
a. Detailed descriptions of the system's key features, such as patient registration,
appointment scheduling, medical records management, billing, and reporting.
a. Diagrams that show the flow of patient data and how it will be processed across
the system.
v. Use Cases:
a. Descriptions of typical user interactions with the system, such as the process
for registering a new patient or scheduling an appointment.
o Shows how data moves through the system and how different entities interact
with the system.
Page 6 of 10
o Short, informal descriptions of features or system functions from the
perspective of the end-user.
Validation:
Page 7 of 10
Once requirements are gathered, they must be analyzed and validated to ensure they are:
3. Feasible: Requirements are achievable within the project’s time, budget, and
technology constraints.
4. Verifiable: There must be a way to verify the requirement has been met during testing.
Functional Requirements:
Patient Registration: The system should allow receptionists to register new patients,
capturing details like name, age, medical history, and contact information.
Appointment Scheduling: Patients and staff should be able to schedule, modify, and
cancel appointments. It should avoid double-booking and send reminders to patients.
Medical Records Management: The system must store and organize patient medical
records, including diagnosis, treatment history, prescriptions, and lab results.
Billing and Insurance: The system should generate invoices based on services provided,
handle insurance claims, and allow payment processing.
Staff Scheduling: The system should manage schedules for doctors, nurses, and other
medical staff, allowing them to request leave and shift changes.
Non-Functional Requirements:
Security: Patient data must be securely stored and transmitted, following healthcare
privacy regulations (e.g., HIPAA).
Scalability: The system should support scaling as the hospital grows, allowing for more
patients and staff to be added over time.
Usability: The user interface must be simple and intuitive for non-technical users (e.g.,
receptionists, nurses).
Performance: The system must provide real-time access to patient data and minimize
delays in processing information.
Compliance: The system must comply with healthcare standards and regulations,
including data retention and auditing requirements.
Page 8 of 10
Validation Techniques:
Test Cases: Test cases are created to check if the requirements can be verified during
the testing phase.
6. Managing Requirements
1. Traceability:
2. Version Control:
3. Change Management:
4. Prioritization:
o Not all requirements are of equal importance. Prioritizing them helps focus on
the critical functionalities first, often using techniques like MoSCoW (Must have,
should have, Could have, Won't have).
Several software tools can help with requirements gathering, documentation, and analysis:
Page 9 of 10
1. Microsoft Visio: Often used for creating diagrams, such as DFDs, ERDs, and use case
diagrams.
2. IBM Rational RequisitePro: A requirements management tool used to capture and track
requirements.
3. JIRA: A popular tool in Agile environments for managing user stories and requirements.
5. Enterprise Architect: A tool used for modeling and designing system architectures and
requirements.
1. Elicitation Difficulties:
o Users may not know what they want or may struggle to articulate their needs.
3. Scope Creep:
4. Stakeholder Conflicts:
Page 10 of 10