0% found this document useful (0 votes)
248 views27 pages

Unit 3 Software Project Planning & Management

The document outlines the process of software requirements gathering, including necessary inputs, start criteria, and types of requirements. It details the steps to collect and validate requirements, the outputs produced, and the skills needed during this phase. Additionally, it discusses estimation in software projects, covering its importance, phases, methodologies, challenges, and metrics for evaluating the estimation process.

Uploaded by

Kartikeya Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
248 views27 pages

Unit 3 Software Project Planning & Management

The document outlines the process of software requirements gathering, including necessary inputs, start criteria, and types of requirements. It details the steps to collect and validate requirements, the outputs produced, and the skills needed during this phase. Additionally, it discusses estimation in software projects, covering its importance, phases, methodologies, challenges, and metrics for evaluating the estimation process.

Uploaded by

Kartikeya Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Unit -3 SOFTWARE PROJECT PLANNING & MANAGEMENT

(MTCS042)

SOFTWARE REQUIREMENTS GATHERING

1. Inputs and Start Criteria for Requirements Gathering

What is it?
Before you begin collecting requirements for a software project, you need certain
things ready. These things are called inputs and start criteria. Without these, the
requirements process may become confusing, incomplete, or go in the wrong
direction.

Inputs (What you must have before starting)


1. Project Charter or Project Proposal
o It contains the project goals, scope, and client expectations.

o Example: If a university wants to develop an online examination


system, the proposal might include the purpose (e.g., conducting
remote exams), user types (students, teachers), and basic scope.
2. Stakeholder List
o A list of all the people who are involved or affected.

o Example: For the exam system, stakeholders are students, faculty,


exam controllers, and IT staff.
3. Business Case
o Justification for starting the project.

o Example: Online exams reduce paper costs, save time, and


improve accessibility.
4. Existing System Documentation (if any)
o If an older system exists, its manuals and diagrams are useful.

o Example: The university might already use a paper-based exam


system. Its timetable and grading rules can guide the new system.
5. Constraints and Assumptions
o These are limitations and things considered true.

o Example: The exam system must work on mobile phones


(constraint), and users will have internet access (assumption).

Start Criteria (When to start gathering?)


 Client has approved the initial scope and objectives.
 You have access to all stakeholders.
 A team of analysts and developers is ready.
 Time, cost, and deadlines are roughly estimated.
 Everyone agrees on the goals and is ready to proceed.

2. Dimensions of Requirements Gathering

What is it?
Dimensions mean different angles or types of requirements that we must collect.
Not all requirements are the same.

Types of Requirements
1. Functional Requirements
o What the software should do.
o Example: In an ATM system, users should be able to check
balance, withdraw money, and change PIN.
2. Non-Functional Requirements
o How the software should behave.

o Example: The ATM should respond within 5 seconds and support


Hindi, English, and regional languages.
3. Business Requirements
o Why the software is being built—business goals.

o Example: A company wants to increase online sales by 40% using


a new e-commerce website.
4. User Requirements
o What the user expects to do with the software.

o Example: A student using a university portal wants to download


the admit card and check results.
5. System Requirements
o Technical and environmental needs.

o Example: The exam portal must run on Android, iOS, and


desktops, and support cloud-based databases.

3. Steps to Be Followed During Requirements Gathering

What is it?
It is a structured way of collecting, analyzing, and validating requirements.

Step-by-Step Process (with real examples)


1. Identify Stakeholders
o Find out who uses or impacts the system.

o Example: For a hospital management system – doctors, nurses,


receptionists, and patients.
2. Understand Business Goals
o What problem are we solving?

o Example: A hospital wants to reduce patient waiting time by


automating appointment bookings.
3. Conduct Interviews
o Ask questions to users, clients, and managers.

o Example: Ask doctors what reports they need and how they prefer
patient history to be displayed.
4. Organize Workshops and Group Meetings
o Group brainstorming with all stakeholders.

o Example: A meeting between doctors and software developers to


agree on the treatment record format.
5. Use Surveys and Questionnaires
o Useful for large groups.

o Example: Asking 200 students through Google Forms about


features they want in the university portal.
6. Observe Existing System
o Watch users do their tasks to find pain points.

o Example: Observe how reception staff book appointments


manually and note their challenges.
7. Create Use Cases or User Stories
o Describe actions from a user's perspective.
o Example: “As a student, I want to log in and check my grades.”
8. Develop Prototypes (optional)
o Show users what the final product might look like.

o Example: A rough design of the student dashboard shown to


students for feedback.
9. Validate Requirements
o Double-check if requirements are clear, complete, and agreed upon.

o Example: Share the requirement document with the client and take
approval.
10.Document Requirements
 Create a final SRS (Software Requirements Specification) document.

4. Outputs and Quality Records from Requirements Phase

Outputs (Final Deliverables)


1. Software Requirements Specification (SRS)
o The main document listing all approved functional and non-functional
requirements.
2. Use Case Diagrams / User Stories
o Diagrams or short descriptions of how users interact with the system.
3. Requirement Traceability Matrix (RTM)
o A table mapping each requirement to design, implementation, and
testing.
4. Meeting Notes and Approvals
o Evidence that stakeholders agree on what is being built.
Quality Records (Proof of Good Practice)
 Peer review comments and changes.
 Feedback forms from clients.
 Signatures from stakeholders.
 Updated version logs of requirement documents.

Example: A school principal signs the final SRS document for a result-
reporting app.

5. Skill Sets Required During Requirements Phase


To gather requirements properly, certain skills are important:
1. Communication Skills
o To talk clearly with clients and users.
2. Listening Skills
o To understand user problems deeply.
3. Analytical Thinking
o To identify gaps, patterns, and organize information logically.
4. Documentation Skills
o To write correct and complete requirement documents.
5. Domain Knowledge
o Knowing the industry.

o Example: If you’re building a hospital system, understand terms


like OPD, prescription, insurance claims.
6. Technical Knowledge
o Helps understand what’s possible in terms of technology.
7. Negotiation Skills
o To settle disputes when different users want conflicting features.

6. Differences for a Shrink-Wrapped Software


Shrink-wrapped software is pre-built for many users (e.g., MS Office, Tally),
unlike custom software built for one client.

Feature Custom Software Shrink-Wrapped Software

Target User Specific client General public

Flexibility Very high Low

Requirements Source From client From market trends

Feedback Direct from user Collected via surveys, reviews

Example University Portal Microsoft Word

7. Challenges During the Requirements Management Phase


1. Changing Requirements
o Stakeholders may change their minds as they see progress.

o Example: A college initially wants attendance tracking but later


adds online test modules.
2. Misunderstood Requirements
o Developers may interpret client needs incorrectly.

o Example: "Easy to use" is subjective — means different things to


different people.
3. Unclear Requirements
o Users may not know exactly what they want.
o Example: A small business owner might say “make it like
Amazon,” which is too vague.
4. Conflicting Requirements
o Marketing team wants speed; finance team wants security.
5. Budget and Time Limitations
o Some features may be too costly or time-consuming.
6. Stakeholder Unavailability
o Delays occur when users don’t give timely feedback.

8. Metrics for Requirements Phase

Why use Metrics?


Metrics help measure the effectiveness and quality of requirement gathering.

Metric Meaning Real Example

Total Requirements Total count 150 features listed

Requirement Stability % of unchanged


90% stable = good
Index requirements

10 major updates in 2 weeks


Volatility Number of changes
= risky

80% bugs caught in SRS =


Review Efficiency % issues caught early
great

Requirements Coverage % of requirements tested 95% tested = success

Stakeholder 100% clients joined all


Attendance in meetings
Participation workshops
Estimation in Software Engineering –

1. What is Estimation?

Definition:
Estimation is the process of predicting or calculating how much effort, time, cost,
and resources will be required to complete a software project.
Estimation is not exact, but it gives us an approximate idea that helps in planning
the project properly.

Real-World Analogy:
Imagine you're planning a wedding. You don't know the exact cost or time for
every task, but you need an idea:
 How much food will be required?
 How many guests will attend?
 How many days will it take to prepare?
Similarly, in software development, we need to estimate how much work is needed
before starting.

2. When and Why is Estimation Done?

When is Estimation Done?


Estimation is done at different stages of the project:
 Before the project starts – during project planning
 After gathering requirements
 Before major phases like design, coding, testing
 Whenever scope changes
Why is Estimation Important?
1. To plan properly – We can decide deadlines, resources, and costs.
2. To manage risk – Early estimation helps in identifying unrealistic
expectations.
3. To build trust – Clients and stakeholders know what to expect.
4. To allocate resources – We know how many developers or testers are
needed.

Real-World Example:
You are hired to build an e-commerce website. The client asks:
 How much will it cost?
 When will it be delivered?
You must estimate:
 Pages needed (Home, Cart, Payment)
 Backend work (Database, Server)
 Features (Login, Search)
Without estimation, you might overpromise and underdeliver.

3. The Three Phases of Estimation


Estimation in software has three main phases:

a) Size Estimation
 Here, we estimate the size of the software in terms of work.
 Common units: Lines of Code (LOC) or Function Points (FP).
 Size tells us how big the software is.
Real-Life Example:
You want to build a car. You estimate:
 1,000 parts needed
 4 doors, 5 seats, etc.
In software, you estimate:
 20,000 LOC for an online exam system

b) Effort Estimation
 This is the amount of work required to complete the project.
 Measured in person-hours or person-days.

Formula:
Effort = Size / Productivity
If a developer writes 500 LOC per day, and the project needs 10,000 LOC:
Effort = 10,000 / 500 = 20 person-days

Real-Life Example:
You’re painting a building. If one painter paints 10 walls a day, and you have 50
walls:
You’ll need 5 days with 1 painter, or 2.5 days with 2 painters.

c) Schedule Estimation
 This is the calendar time or total days required to finish the project.
 Depends on team size, working hours, holidays, etc.
Formula:
Schedule = Effort / Number of People
If you need 30 person-days of effort and you have 3 people:
Schedule = 30 / 3 = 10 working days

Real-Life Example:
To prepare 100 lunch boxes:
 If one cook takes 5 mins/box → Total effort = 500 minutes
 With 2 cooks → Time = 250 minutes

4. Estimation Methodology
This defines how estimation is performed. Two main ways:

a) Top-Down Estimation
 Start with the overall project estimate and then break it down into smaller
parts.
 Used when details are not yet clear.

Example:
A manager says, “This project looks like a 6-month job,” and splits:
 Design – 1 month
 Coding – 3 months
 Testing – 2 months

Like budgeting ₹1 lakh for a wedding first, then dividing for dress, food, etc.

b) Bottom-Up Estimation
 Estimate each module, feature, or task individually.
 Add all to get the total.
 More accurate, but time-consuming.

Example:
Each developer estimates:
 Login Module = 3 days
 Dashboard = 5 days
 Payment = 4 days
Total = 12 person-days

Like listing all items for a wedding (DJ, lights, catering) and then calculating
total cost.

5. Formal Models for Size Estimation


To estimate size formally, we use mathematical models:

a) Lines of Code (LOC)


 Estimate how many lines of code will be written.
 Simple but depends on coding style.

Example:
Login system = 1,000 LOC
Report generation = 5,000 LOC

Each function/module is measured based on past data.

b) Function Point Analysis (FPA)


 Estimates based on functionality provided to the user.
 Independent of programming language.
 Counts: Inputs, Outputs, Inquiries, Files, Interfaces

Example:
 Inputs: 10 forms
 Outputs: 5 reports
 Files: 3 databases
Use weighted values to get total Function Points (FP).

Like measuring a car by features (AC, GPS, Power Windows) instead of size.

6. Translating Size Estimate into Effort Estimate

Once size is estimated, effort is calculated:


Effort = Size / Productivity
Example:
If size = 1,200 Function Points
And team’s productivity = 6 FP/day
Effort = 1,200 / 6 = 200 person-days
This tells us how many working days are required to develop the system.

Like knowing how many days it takes to sew 200 dresses if one tailor sews 2
per day.
7. Translating Effort into Schedule Estimate

Once effort is known, we estimate the total calendar time:


Schedule = Effort / Team Size
Example:
Effort = 200 person-days
Team = 4 developers
Schedule = 200 / 4 = 50 working days
But remember:
 Adding more people doesn’t always reduce time.
 New people take time to understand the project (Brooks' Law).

Like 9 women can’t make a baby in 1 month.

8. Common Challenges During Estimation

Problems faced:
1. Unclear Requirements
o Hard to estimate when goals are not clear.
o Like planning a party without knowing how many guests.
2. Changing Requirements
o Scope keeps changing, estimates become invalid.
3. Lack of Historical Data
o No past project to compare with.
4. Incorrect Assumptions
o Assuming tasks will go smoothly when they won’t.
5. Overconfidence
o Underestimating testing/debugging time.
6. Communication Gaps
o Misunderstanding between client and developer.

9. Metrics for Estimation Process


These help evaluate the quality of your estimates.

a) Estimation Accuracy
 Measures how close your estimate was to actual.
Accuracy = |Estimated – Actual| / Actual × 100%

Example:
Estimated = 100 days, Actual = 120 days
Error = 20/120 × 100 = 16.6% error

b) Variance
 Difference between actual and estimated values.
 Helps identify overestimation or underestimation.

c) Productivity
Productivity = LOC / person-day OR FP / person-day

Example:
10,000 LOC in 25 person-days → Productivity = 400 LOC/day

d) Defect Density
 Used to check if low estimation impacted quality.
Defect Density = Number of bugs / LOC

Final Summary Example:


You’re making a hotel management system.

Step Details

Size Estimation 15,000 LOC

Effort Estimation 15,000 / 500 = 30 person-days

Schedule Estimation 30 / 2 developers = 15 working days

Challenges Unclear login roles added later

Result Actual = 20 days, Estimation Error = 5 days


Summary Table for Quick Revision

Concept Meaning Real-Life Example

Estimation Predict effort, time, cost Planning a wedding

Size Estimation How big the project is No. of pages in website

Effort Estimation Total work needed Hours to paint a building

Schedule
Total calendar time Days to finish wedding planning
Estimation

Budgeting wedding first, then


Top-Down Big picture → parts
details

Bottom-Up Parts → total List each cost item

LOC & FP Measuring size LOC = Length; FP = Features

Accuracy & Like checking your monthly


Metrics
Productivity expenses
Design and Development Phases –

1. Some Differences in Our Chosen Approach


Explanation:
In software engineering, different projects or teams may adopt different
development models or strategies depending on the needs, time constraints, and
goals. The chosen approach significantly affects how design and development are
carried out.
Common Approaches:
 Waterfall Model: Step-by-step process, once a phase is completed, you
don’t go back.
 Agile Model: Flexible, iterative development with regular user feedback.
 DevOps: Focuses on integration between development and operations,
emphasizes automation and continuous delivery.
Real-World Example:
A government taxation system might use the Waterfall model because
requirements are clear and fixed.
Whereas a food delivery app like Zomato would use Agile, as customer feedback
is needed regularly, and features evolve with trends.

2. Salient Features of Design


Explanation:
A good software design should ensure:
 Modularity: Breaking the system into independent parts (modules).
 Abstraction: Hiding complex details behind simple interfaces.
 Reusability: Ability to use parts of the design in other systems.
 Flexibility: Easy to update when changes occur.
 Simplicity and Understandability: Developers should understand the flow
quickly.
 Scalability: Able to grow (handle more users/data).
Real-World Example:
In Amazon, different teams manage different modules: product listings, payments,
orders, delivery. Each is designed as a separate module that can be modified or
upgraded without affecting the others.

3. Evolving an Architecture / Blueprint


Explanation:
Software architecture is the high-level structure of the system. It shows:
 How different components interact
 Technologies and platforms to be used
 Layered design: UI, Business logic, Database
It acts like a building blueprint for developers.
Real-World Example:
For a university portal, the architecture might be:
 Frontend (UI): React.js for the student dashboard
 Backend: Java or Python Flask for logic
 Database: MySQL for storing results, profiles
This clear structure helps development, maintenance, and scaling.

4. Design for Reusability


Explanation:
When you create a part of software in a general, adaptable way so it can be used
again in different projects or parts of the same project.
Benefits:
 Saves time and cost
 Reduces errors
 Promotes standardization
Real-World Example:
A user authentication module developed for a hospital management system can
be reused in an e-learning portal by just modifying the database fields.

5. Technology Choices / Constraints


Explanation:
Selecting the right set of tools, frameworks, languages, and platforms to build the
software. But, there may be constraints like:
 Budget
 Skillset of developers
 Licensing cost
 Compatibility with existing systems
Real-World Example:
A startup may use Python + Django + PostgreSQL (open-source tools) due to low
budget, while a multinational company might prefer Microsoft .NET + SQL
Server for scalability and support.

6. Design to Standards
Explanation:
Following industry standards, best practices, and protocols to make sure the
software is:
 Compatible with other systems
 Secure
 Maintainable
Examples of Standards:
 ISO/IEC 25010: Quality of software
 IEEE 830: SRS standard
 HTML5, CSS3: For web development
Real-World Example:
A banking app must comply with PCI DSS standards for handling customer card
data securely.

7. Design for Portability


Explanation:
Portability means the ability of software to run on multiple platforms or
environments with minimal changes.
Benefits:
 Broader audience
 Reduced development time for new platforms
Real-World Example:
A mobile game developed using Unity engine can be deployed on Android, iOS,
and Windows without rewriting the entire code.

8. User Interface (UI) Issues


Explanation:
Designing a UI that is:
 Simple and intuitive
 Visually appealing
 Easy to navigate
 Responsive (works on all screen sizes)
Common UI Issues:
 Cluttered layout
 Inconsistent buttons and menus
 Poor color choices
 Slow loading
Real-World Example:
Old railway ticket booking websites had poor UI. New apps like IRCTC Rail
Connect are modern, user-friendly, and mobile-responsive.

9. Design for Testability


Explanation:
Making the software easy to test by:
 Writing independent, small functions (low coupling)
 Clear input and output
 Adding logs and debug messages
Real-World Example:
In a library management system, having a clear method like
calculateLateFine(days) helps test it easily with different inputs (e.g., 5 days late
→ ₹50).

10. Design for Diagnosability


Explanation:
Diagnosability means the software should help in quickly identifying and solving
problems or bugs.
How?
 Use of error messages
 System logs
 Monitoring tools
Real-World Example:
In Google Chrome, when it crashes, it shows a clear error message and stores
crash logs, which help developers fix the issue quickly.

11. Design for Maintainability


Explanation:
Maintaining software means:
 Fixing bugs
 Updating features
 Adapting to new requirements
Design should be:
 Well-documented
 Modular
 Easily readable
Real-World Example:
Open-source projects like WordPress are easily maintainable because of modular
plugin-based design and clear documentation.
12. Design for Installability
Explanation:
This means making sure the software can be installed easily by users or system
admins.
Features:
 One-click installer
 Minimal configuration required
 Clear instructions
Real-World Example:
Applications like Zoom or VLC Player offer very simple installation processes –
just double-click the setup file and follow steps.

13. Interoperability Design


Explanation:
Software should be able to exchange data and work with other systems or
services smoothly.
Common Methods:
 REST APIs
 XML/JSON data formats
 Webhooks
Real-World Example:
Google Calendar can sync with Outlook Calendar, showing interoperability
between systems from different companies.

14. Challenges During Design and Development Phases


Common Challenges:
 Incomplete or changing requirements
 Tight deadlines
 Technical complexity
 Communication gap between team and client
 Budget limitations
Real-World Example:
In a project for a government e-governance portal, frequent changes in
regulations caused redesigning of modules, increasing time and cost.

15. Skill Sets for Design and Development


Design Phase Skills:
 System architecture
 UML diagramming
 Requirement analysis
 User experience understanding
Development Phase Skills:
 Programming (Java, Python, etc.)
 Version control (Git)
 Debugging and testing
 Integration with databases and APIs
Real-World Example:
A UI designer working on a health-tracking app needs skills in Figma, color
psychology, and layout, while a developer needs to know Flutter and Firebase
integration.
16. Metrics for Design and Development Phases
Why Metrics?
To track progress, identify bottlenecks, and measure quality.
Design Metrics:
 Number of modules designed
 Design complexity
 Cohesion and coupling levels
Development Metrics:
 Lines of Code (LOC)
 Defect density = Bugs per 1000 LOC
 Code coverage = % of code tested
 Time to deliver each feature/module
Real-World Example:
In a software project, if code coverage is only 40%, it means a large part of code is
not tested—risk of bugs is high.

You might also like