Project Life Cycle and Effort Estimation



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

PhaseDescription
InitiationProject feasibility & approval
PlanningScope, schedule, cost, risk planning
ExecutionDesign, coding, testing
Monitoring & ControlProgress tracking & quality control
ClosureDelivery, 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

TechniqueDescription
Expert JudgmentBased on experience
Analogy MethodCompare with similar projects
Function Point AnalysisBased on system functionality
Lines of Code (LOC)Based on code size
COCOMO ModelMathematical cost estimation

Software Process

A software process is a structured set of activities required to develop a software system.

Core Software Process Activities

ActivityExplanation
SpecificationRequirement gathering
Design & ImplementationSystem architecture & coding
ValidationTesting
EvolutionMaintenance & upgrades

Generic Software Process Model

Software Process Models

A process model provides a framework for organizing software development activities.

Major Software Process Models

ModelKey FeaturesSuitable For
WaterfallSequential phasesStable requirements
IncrementalDelivered in partsMedium projects
SpiralRisk-drivenLarge, high-risk
RADRapid developmentTime-critical
AgileIterative & flexibleChanging 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

FactorImpact
Project SizeLarge → Spiral
Requirement StabilityStable → Waterfall
Risk LevelHigh → Spiral
Time ConstraintsShort → RAD
Customer InvolvementHigh → Agile

Model Selection Table 

SituationRecommended Model
Well-defined requirementsWaterfall
Rapid delivery neededRAD
High riskSpiral
Frequent changesAgile

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

PhaseDescription
Requirements PlanningBusiness needs
User DesignPrototyping
ConstructionRapid coding
CutoverDeployment

RAD Model Diagram

Advantages & Limitations of RAD

AdvantagesLimitations
Faster developmentNot suitable for large projects
Early user feedbackNeeds skilled developers
Reduced costHigh 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

MethodDescription
ScrumSprint-based
XPExtreme programming
KanbanVisual workflow
LeanWaste reduction

Agile Development Cycle

Advantages & Disadvantages of Agile

AdvantagesDisadvantages
Flexible requirementsLess documentation
Faster deliveryNeeds customer involvement
High qualityDifficult 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

PrincipleExplanation
User InvolvementContinuous feedback
Frequent DeliveryEarly benefits
Iterative DevelopmentContinuous improvement
Integrated TestingQuality assurance

DSDM Life Cycle

PhaseDescription
Feasibility StudyProject viability
Business StudyBusiness requirements
Functional Model IterationPrototype development
Design & Build IterationFinal system
ImplementationDeployment

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

ValueExplanation
CommunicationContinuous interaction among team members
SimplicityDesign only what is needed
FeedbackFrequent feedback from customers
CourageAbility to change code when needed
RespectMutual respect among team members

Practices of Extreme Programming

PracticeDescription
Pair ProgrammingTwo programmers work together
Test-Driven Development (TDD)Tests written before code
Continuous IntegrationFrequent code integration
RefactoringImprove code structure
Small ReleasesFrequent delivery

XP Development Cycle

Advantages & Limitations of XP

AdvantagesLimitations
High software qualityRequires constant customer involvement
Early error detectionNot suitable for large teams
Flexible to changesNeeds 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

ActivityDescription
User CollaborationRegular meetings and reviews
Incremental DeliveryDeliver software in iterations
Feedback IntegrationModify system based on feedback
Process AdaptationAdjust 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

ParameterUnit
EffortPerson-months
TimeMonths
CostMonetary value
SizeLOC / Function Points

Effort and Cost Estimation Techniques

Effort and cost estimation techniques can be qualitative or quantitative.

Common Estimation Techniques

TechniqueDescription
Expert JudgmentBased on experience
Analogy MethodCompare with similar projects
Top-Down EstimationEstimate whole project first
Bottom-Up EstimationEstimate each module
Algorithmic ModelsMathematical formulas

Estimation Techniques Comparison

TechniqueAccuracyComplexity
Expert JudgmentMediumLow
AnalogyMediumMedium
Bottom-UpHighHigh
AlgorithmicHighMedium

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

ComponentDescription
Entry (E)Data entering system
Exit (X)Data leaving system
Read (R)Data retrieved
Write (W)Data stored

COSMIC Size Formula

COSMIC Size = E + X + R + W

(Unit: COSMIC Function Points – CFP)

COSMIC Measurement Diagram

Advantages of COSMIC

AdvantageReason
Technology independentWorks for modern systems
Accurate sizingSuitable for Agile
StandardizedInternational 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

Effort = A × (Size)^B × ∏ Cost Drivers

Where:

  • Size = Function Points or LOC
  • A, B = Constants
  • Cost Drivers = Effort multipliers

COCOMO II Sub-Models

ModelUsage
Application CompositionEarly prototyping
Early DesignRough architecture
Post-ArchitectureDetailed estimation

Cost Drivers Categories

CategoryExamples
ProductComplexity
PlatformHardware constraints
PersonnelSkill level
ProjectTools & schedule

COCOMO II Model Diagram

Parametric Productivity Model

A Parametric Productivity Model uses mathematical equations to relate software size, effort, and productivity.

General Formula

Productivity = Output / Input

In software projects:

Productivity = Function Points / Person-Months

Characteristics of Parametric Models

FeatureDescription
Data-DrivenBased on historical data
QuantitativeUses equations
RepeatableProduces consistent results

Examples of Parametric Models

  • COCOMO II
  • SLIM
  • SEER-SEM

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