Project Life Cycle and Effort Estimation
Project Life Cycle (PLC)
The Project Life Cycle defines the sequence of phases through which a software project passes from start to completion.
Phases of Software Project Life Cycle
| Phase | Description |
|---|
| Initiation | Project feasibility & approval |
| Planning | Scope, schedule, cost, risk planning |
| Execution | Design, coding, testing |
| Monitoring & Control | Progress tracking & quality control |
| Closure | Delivery, documentation, maintenance |
Software Project Life Cycle Diagram
Effort Estimation
Effort Estimation is the process of predicting the amount of effort (man-months), time, and cost required to develop a software project.
Importance of Effort Estimation
- Accurate scheduling
- Cost control
- Resource allocation
- Risk reduction
Common Effort Estimation Techniques
| Technique | Description |
|---|
| Expert Judgment | Based on experience |
| Analogy Method | Compare with similar projects |
| Function Point Analysis | Based on system functionality |
| Lines of Code (LOC) | Based on code size |
| COCOMO Model | Mathematical cost estimation |
Software Process
A software process is a structured set of activities required to develop a software system.
Core Software Process Activities
| Activity | Explanation |
|---|
| Specification | Requirement gathering |
| Design & Implementation | System architecture & coding |
| Validation | Testing |
| Evolution | Maintenance & upgrades |
Generic Software Process Model
Software Process Models
A process model provides a framework for organizing software development activities.
Major Software Process Models
| Model | Key Features | Suitable For |
|---|
| Waterfall | Sequential phases | Stable requirements |
| Incremental | Delivered in parts | Medium projects |
| Spiral | Risk-driven | Large, high-risk |
| RAD | Rapid development | Time-critical |
| Agile | Iterative & flexible | Changing requirements |
Process Models Comparison Diagram
Choice of Process Models
Selecting the right process model is crucial for project success.
Factors Affecting Choice of Process Model
| Factor | Impact |
|---|
| Project Size | Large → Spiral |
| Requirement Stability | Stable → Waterfall |
| Risk Level | High → Spiral |
| Time Constraints | Short → RAD |
| Customer Involvement | High → Agile |
Model Selection Table
| Situation | Recommended Model |
|---|
| Well-defined requirements | Waterfall |
| Rapid delivery needed | RAD |
| High risk | Spiral |
| Frequent changes | Agile |
Rapid Application Development (RAD)
RAD is a high-speed development model emphasizing quick prototyping and user feedback.
Characteristics of RAD
- Short development cycles
- Component reuse
- User involvement
- Prototype-based
RAD Phases
| Phase | Description |
|---|
| Requirements Planning | Business needs |
| User Design | Prototyping |
| Construction | Rapid coding |
| Cutover | Deployment |
RAD Model Diagram
Advantages & Limitations of RAD
| Advantages | Limitations |
|---|
| Faster development | Not suitable for large projects |
| Early user feedback | Needs skilled developers |
| Reduced cost | High dependency on users |
Agile Methods
Agile is an iterative and incremental development approach focused on customer collaboration and adaptability.
Agile Principles
- Working software over documentation
- Customer collaboration
- Responding to change
- Continuous delivery
Popular Agile Methods
| Method | Description |
|---|
| Scrum | Sprint-based |
| XP | Extreme programming |
| Kanban | Visual workflow |
| Lean | Waste reduction |
Agile Development Cycle
Advantages & Disadvantages of Agile
| Advantages | Disadvantages |
|---|
| Flexible requirements | Less documentation |
| Faster delivery | Needs customer involvement |
| High quality | Difficult cost estimation |
Dynamic System Development Method (DSDM)
DSDM is an Agile framework that focuses on time-boxing and frequent delivery.
Key Features of DSDM
- Time-boxed development
- Active user involvement
- Incremental delivery
- Fitness for business purpose
DSDM Principles
| Principle | Explanation |
|---|
| User Involvement | Continuous feedback |
| Frequent Delivery | Early benefits |
| Iterative Development | Continuous improvement |
| Integrated Testing | Quality assurance |
DSDM Life Cycle
| Phase | Description |
|---|
| Feasibility Study | Project viability |
| Business Study | Business requirements |
| Functional Model Iteration | Prototype development |
| Design & Build Iteration | Final system |
| Implementation | Deployment |
DSDM Life Cycle Diagram
Exam-Focused Key Points (Quick Revision)
- Project Life Cycle defines project phases
- Effort Estimation predicts time, cost, resources
- Software process structures development
- Process models guide execution
- RAD focuses on speed
- Agile supports changing requirements
- DSDM is a disciplined Agile framework
Extreme Programming & Software Estimation
Extreme Programming (XP)
Extreme Programming (XP) is an Agile software development methodology that focuses on high-quality code, frequent releases, and continuous customer involvement.
Key Idea of XP
XP takes best software engineering practices and applies them extremely to improve productivity and quality.
Core Values of XP
| Value | Explanation |
|---|
| Communication | Continuous interaction among team members |
| Simplicity | Design only what is needed |
| Feedback | Frequent feedback from customers |
| Courage | Ability to change code when needed |
| Respect | Mutual respect among team members |
Practices of Extreme Programming
| Practice | Description |
|---|
| Pair Programming | Two programmers work together |
| Test-Driven Development (TDD) | Tests written before code |
| Continuous Integration | Frequent code integration |
| Refactoring | Improve code structure |
| Small Releases | Frequent delivery |
XP Development Cycle
Advantages & Limitations of XP
| Advantages | Limitations |
|---|
| High software quality | Requires constant customer involvement |
| Early error detection | Not suitable for large teams |
| Flexible to changes | Needs skilled developers |
Managing Interactive Processes
Managing interactive processes refers to handling continuous interaction between developers, users, and stakeholders during software development.
Key Characteristics
- Iterative development
- Frequent feedback
- Continuous improvement
Interactive Process Management Activities
| Activity | Description |
|---|
| User Collaboration | Regular meetings and reviews |
| Incremental Delivery | Deliver software in iterations |
| Feedback Integration | Modify system based on feedback |
| Process Adaptation | Adjust plans dynamically |
Interactive Process Flow
Basics of Software Estimation
Software estimation predicts the effort, cost, time, and resources required to develop a software system.
Why Software Estimation is Important
- Prevents cost overruns
- Helps project scheduling
- Supports resource planning
- Reduces project risk
Estimation Parameters
| Parameter | Unit |
|---|
| Effort | Person-months |
| Time | Months |
| Cost | Monetary value |
| Size | LOC / Function Points |
Effort and Cost Estimation Techniques
Effort and cost estimation techniques can be qualitative or quantitative.
Common Estimation Techniques
| Technique | Description |
|---|
| Expert Judgment | Based on experience |
| Analogy Method | Compare with similar projects |
| Top-Down Estimation | Estimate whole project first |
| Bottom-Up Estimation | Estimate each module |
| Algorithmic Models | Mathematical formulas |
Estimation Techniques Comparison
| Technique | Accuracy | Complexity |
|---|
| Expert Judgment | Medium | Low |
| Analogy | Medium | Medium |
| Bottom-Up | High | High |
| Algorithmic | High | Medium |
COSMIC Full Function Points (FFP)
COSMIC (Common Software Measurement International Consortium) is a functional size measurement technique used to estimate software size.
Key Concept
COSMIC measures functional user requirements independent of technology.
COSMIC Measurement Components
| Component | Description |
|---|
| Entry (E) | Data entering system |
| Exit (X) | Data leaving system |
| Read (R) | Data retrieved |
| Write (W) | Data stored |
COSMIC Size Formula
(Unit: COSMIC Function Points – CFP)
COSMIC Measurement Diagram
Advantages of COSMIC
| Advantage | Reason |
|---|
| Technology independent | Works for modern systems |
| Accurate sizing | Suitable for Agile |
| Standardized | International standard |
COCOMO II (Constructive Cost Model II)
COCOMO II is an algorithmic cost estimation model used to estimate effort and schedule of software projects.
Basic Effort Estimation Formula
Where:
- Size = Function Points or LOC
- A, B = Constants
- Cost Drivers = Effort multipliers
COCOMO II Sub-Models
| Model | Usage |
|---|
| Application Composition | Early prototyping |
| Early Design | Rough architecture |
| Post-Architecture | Detailed estimation |
Cost Drivers Categories
| Category | Examples |
|---|
| Product | Complexity |
| Platform | Hardware constraints |
| Personnel | Skill level |
| Project | Tools & schedule |
COCOMO II Model Diagram
Parametric Productivity Model
A Parametric Productivity Model uses mathematical equations to relate software size, effort, and productivity.
General Formula
In software projects:
Characteristics of Parametric Models
| Feature | Description |
|---|
| Data-Driven | Based on historical data |
| Quantitative | Uses equations |
| Repeatable | Produces consistent results |
Examples of Parametric Models
Exam-Focused Short Notes (Quick Revision)
- XP emphasizes testing, simplicity, and feedback
- Interactive processes rely on continuous collaboration
- Software estimation predicts effort and cost
- COSMIC FFP measures functional size
- COCOMO II estimates effort using cost drivers
- Parametric models use mathematical equations