Unit 3
Unit 3
SOFTWARE PLANNING
Responsibilities of Software Project Manager
A Software Project Manager (SPM) is responsible for planning, executing, monitoring, and
delivering a software project successfully. Their primary role is to ensure that the project is
completed on time, within budget, and meets quality standards while managing risks and
resources efficiently.
Estimate cost, time, and effort using models like COCOMO, Function Points, or
Expert Judgment.
Allocate financial resources effectively to avoid cost overruns.
Monitor expenses to ensure the project stays within budget.
3. Risk Management
Assign the right team members to the right tasks based on their expertise.
Ensure adequate hardware, software, and tools are available for development.
Resolve team conflicts and ensure smooth collaboration.
9. Change Management
LOC(LINE OF CODE)
LOC (Lines of Code) is a software metric that measures the size of a software project by counting
the number of lines in the source code. It includes all the executable lines, but it excludes comments
and blank lines.
Effort=a×(KLOC)^b
Types of LOC Counting Methods
There are two types of LOC counting methods:
Function Points measure software based on what it does, not how it is implemented. It is
language-independent and considers the user's perspective of system functionality.
Components of Function Point Metric
Function Point Analysis (FPA) evaluates a software system based on five key components:
E=a×(KLOC)^b
Where:
T=c×(E)d^T
Where:
E=a×(KLOC)^b×EAFE
Where:
Structure of SRS
It consists of three main sections:
1. Introduction
3. Specific Requirements
A good SRS should include all necessary requirements of the system without leaving any
critical information missing. Every feature and function that the software must perform
should be clearly documented.
Example: If an online banking system needs user authentication, the SRS should specify
login requirements, password policies, and security protocols.
Why is it important?
2. Unambiguity
Each requirement should be clear, precise, and unambiguous, meaning that different
people should interpret it the same way.
Example: Instead of saying "The system should be fast", an unambiguous requirement would
be:
"The system should process user login requests within 2 seconds under normal load
conditions."
Why is it important?
Reduces misinterpretation by developers, testers, and clients.
Prevents costly rework due to unclear requirements.
3. Consistency
Example:
Incorrect: One requirement states that "The system shall allow only one active user session
per account," while another states that "The user can log in from multiple devices
simultaneously."
Correct: The requirements should be aligned to avoid contradictions.
Why is it important?
4. Verifiability
A good SRS should be verifiable, meaning that every requirement can be tested to check
whether it is met.
Example:
Verifiable: "The system shall generate a confirmation email within 10 seconds of order
placement."
Not verifiable: "The system should generate emails quickly."
Why is it important?
5. Modifiability
A good SRS should be easy to modify when requirements change. The document should be
well-structured so that updates can be made without affecting unrelated sections.
Example: If the client decides to change the login system from a password-based login to an
OTP-based login, the SRS should be structured in a way that this change can be made
easily without rewriting the entire document.
Why is it important?
6. Traceability
Each requirement in the SRS should be traceable back to its origin (business needs, user
feedback, or regulatory standards). This helps in ensuring that all requirements are justified
and accounted for.
Example: If a requirement states "The system shall support PCI-DSS security compliance," it
should be linked to the legal requirement or business goal that necessitates it.
Why is it important?
7. Feasibility
The requirements should be realistic and achievable given the available technology, time,
and budget.
Example:
Why is it important?
8. Prioritization
A good SRS should classify requirements based on importance (e.g., must-have, should-
have, optional).
9. Correctness
The requirements should accurately describe the actual needs of users and stakeholders.
Why is it important?
A good SRS should define security requirements to protect user data and prevent
vulnerabilities.
Example: "The system shall encrypt all user passwords using SHA-256 encryption and
enforce two-factor authentication for admin access."
Why is it important?
The SRS should specify performance requirements, such as response time, load capacity,
and system availability.
Example: "The system should respond to user queries within 2 seconds for 95% of the
requests under normal load."
Why is it important?