0% found this document useful (0 votes)
19 views9 pages

SEB Topic 1 Summary

The document outlines software project planning, emphasizing the importance of defining scope, timeline, budget, and development approach to ensure successful project outcomes. It discusses various software lifecycle models, including Waterfall, Incremental, Agile, Spiral, and V-Model, each with its advantages and disadvantages. Additionally, it covers software estimation techniques, challenges, and best practices to improve accuracy in predicting project effort, time, and cost.
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)
19 views9 pages

SEB Topic 1 Summary

The document outlines software project planning, emphasizing the importance of defining scope, timeline, budget, and development approach to ensure successful project outcomes. It discusses various software lifecycle models, including Waterfall, Incremental, Agile, Spiral, and V-Model, each with its advantages and disadvantages. Additionally, it covers software estimation techniques, challenges, and best practices to improve accuracy in predicting project effort, time, and cost.
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
You are on page 1/ 9

TOPIC 1: Software Project Planning

Software Lifecycle Models

Definition and Importance

Software project planning is the process of defining:


Scope – What the software will and will not do.
Timeline – How long development will take.
Budget – The resources needed to complete the project.
Development Approach – The methodology to be used.

A well-planned project ensures:


✔ The software meets user needs.
✔ It is delivered on time and within budget.
✔ Risks are identified before development starts.

Key Components of Project Planning

Scope Definition – What features and functions the software will include.
Time Management – Setting realistic deadlines for each phase.
Cost Estimation – Determining the financial and human resources required.
Risk Management – Identifying and addressing potential challenges.
Quality Assurance – Ensuring the software meets required standards.

Example: Planning a Mobile App for Small-Scale Farmers


Imagine we are developing a mobile app to help farmers get:

• Weather updates

• Market prices

• Farming tips

The planning phase would include:


Identifying farmer needs (e.g., language preferences, literacy levels).
Deciding on features (e.g., SMS alerts, voice-based navigation).
Choosing a suitable software lifecycle model to guide development.

~1~
Overview of Software Lifecycle Models

A Software Lifecycle Model is a structured approach that defines how software is developed,
tested, deployed, and maintained.

Why Use a Lifecycle Model?

✔ Organizes the development process.


✔ Improves communication among developers, testers, and users.
✔ Reduces project risks and increases efficiency.

General Phases in Software Lifecycle Models

Planning – Define project objectives.


Analysis – Understand user needs and system requirements.
Design – Plan how the system will function.
Implementation – Develop and test the code.
🛠 Testing – Identify and fix errors before deployment.
Maintenance – Update and improve the software over time.

Software Lifecycle Models

1. Waterfall Model

A linear, sequential model where each phase must be completed before moving to the next.

Phases of the Waterfall Model:


1️ Requirement Analysis → Gather user needs.
2️ System Design → Plan the architecture.
3️ Implementation → Code the system.
4️ Testing → Verify functionality.
5️ Deployment → Deliver to users.
6️ Maintenance → Fix issues and improve performance.

Example:
A payroll system for a company, where all requirements are known in advance.

Advantages:
✔ Simple to use and manage.
✔ Works well for projects with stable requirements.

~2~
Disadvantages:
✖ Not flexible—hard to implement changes.
✖ Late testing phase increases risk of major failures.

2. Incremental Model

The system is developed in small parts (increments) instead of all at once.

How It Works:

• Core features are developed first.

• New features are added in iterations.

• Each increment is tested before moving forward.

Example:
A school management system, where features like student registration, fee payment, and exam
grading are built separately over time.

Advantages:
✔ Faster delivery of a working product.
✔ Easier to accommodate changes.

Disadvantages:
✖ Integration can be complex.
✖ Requires careful planning of increments.

3. Agile Model

An iterative approach that emphasizes customer feedback and adaptability.

Key Principles:
✔ Short development cycles (Sprints).
✔ Continuous testing and feedback.
✔ Collaboration between developers and customers.

Popular Agile Frameworks:

• Scrum – Uses short cycles (Sprints) to deliver features quickly.

• Kanban – Uses a visual board to track tasks in real-time.

~3~
Example:
A mobile banking app, where user feedback is constantly used to improve features.

Advantages:
✔ Highly adaptable to changes.
✔ Continuous user feedback ensures relevance.

Disadvantages:
✖ Requires active client involvement.
✖ Hard to predict project completion time.

4. Spiral Model

Combines iterative development with risk management.

Phases:
1️ Planning → Define project objectives.
2️ Risk Analysis → Identify potential problems.
3️ Engineering → Develop and test.
4️ Evaluation → Get feedback and refine the system.

Example:
Developing a custom enterprise software for a large company.

Advantages:
✔ Ideal for high-risk projects.
✔ Allows changes at any stage.

Disadvantages:
✖ Expensive and complex.
✖ Requires skilled risk management.

5. V-Model (Verification & Validation Model)

A structured model where each development phase has a corresponding testing phase.

Example:
Developing software for medical equipment, where quality assurance is critical.

~4~
Advantages:
✔ Strong focus on quality assurance.
✔ Early error detection reduces rework.

Disadvantages:
✖ Inflexible—requirements must be clear from the start.
✖ High documentation effort.

Conclusion

✔ Software Lifecycle Models structure and guide software development.


✔ Different models suit different projects.
✔ Choosing the right model impacts project success.

~5~
Software Project Estimation
What is Software Estimation?

Software estimation is the process of predicting the effort, time, and cost required to complete a
software project.

A good estimation ensures that:


✔ The project stays within budget.
✔ The software is delivered on time.
✔ The workload is balanced properly among team members.

Why is Estimation Important?


Without proper estimation, software projects may:

• Take longer than expected

• Exceed the budget

• Fail to meet client requirements

2. Key Aspects of Estimation

2.1 Effort Estimation

Effort estimation determines the amount of work (person-hours) required for the project.

• Usually measured in hours, days, or weeks of work per developer.

• Helps in resource allocation and workload balancing.

2.2 Time Estimation

Time estimation predicts how long the project will take from start to finish.

• Affected by team size, complexity, and dependencies.

• Used to create project timelines and milestones.

2.3 Cost Estimation

Cost estimation calculates the total budget required, including:

• Developer salaries

• Software tools and licenses

~6~
• Hardware infrastructure

• Training and support

3. Estimation Techniques

There are different methods for estimating software projects. Some are based on expert judgment,
while others use mathematical models.

3.1 Expert Judgment

How It Works:

• Experienced developers/managers predict the effort, time, and cost.

• Often used when there is no historical data available.

3.2 Delphi Technique

How It Works:

• A panel of experts independently provide estimates.

• The estimates are compared and refined until a consensus is reached.

3.3 COCOMO (Constructive Cost Model)

How It Works:

• A mathematical model that estimates cost, effort, and time based on project size.

• Uses three different models:


1️ Basic COCOMO – Uses simple size-based formulas.
2️ Intermediate COCOMO – Includes project factors like team skills and tools.
3️ Detailed COCOMO – Includes fine-grained breakdowns of costs.

Example:

• If a project has 10,000 lines of code (LOC), COCOMO formulas can estimate time, effort,
and cost required.

~7~
3.4 Function Point Analysis (FPA)

How It Works:

• Measures software size based on functionality rather than code lines.

• Uses inputs, outputs, database interactions, and user queries to estimate effort.

Example:

• A banking system may have 50 user inputs, 30 reports, and 20 queries—each contributing
to the total function points.

3.5 Use-Case Points (UCP)

How It Works:

• Uses use cases (system interactions) to estimate effort.

• The complexity of each use case determines how much effort is needed.

Example:

• A user login system might be simple, while a real-time stock trading feature would be
complex.

4. Challenges in Estimation

Even with the best techniques, software estimation is not always accurate. Some common
challenges include:

Unclear Requirements – If requirements change frequently, estimates become unreliable.


Overconfidence – Teams may underestimate effort and time, leading to delays.
Technical Complexity – New technologies may require more time than expected.
Resource Availability – Unexpected staff turnover or skill gaps can slow progress.

5. Best Practices for Improving Estimation Accuracy

To improve estimation, teams should:

✔ Use multiple estimation techniques instead of relying on just one.


✔ Break the project into smaller tasks for more accurate estimates.

~8~
✔ Review historical data from past projects to guide estimates.
✔ Continuously update estimates as more information becomes available.

~9~

You might also like