2.1 Software Project Management (SPM) Fundamentals
SPM encompasses planning, monitoring, and controlling software projects to ensure software is delivered on time, within budget, and meeting quality standards.
The Management Spectrum (4 Ps)
- People: Project managers, software engineers, clients, end-users. Human resource selection and team structure.
- Product: Defining software scope, functional objectives, and technical constraints.
- Process: Selecting the appropriate SDLC framework model.
- Project: Planning, tracking, risk management, and quality control.
2.2 Software Size & Resource Estimation
1. Lines of Code (LOC)
Direct, direct-count size metric measuring source code volume (e.g., SLOC, KLOC).
- Formula: Productivity = KLOC/Person-Months
- Limitations: Highly dependent on programming language syntax (1 LOC in Python != 1 LOC in Assembly); rewards verbose code; difficult to estimate early during requirement phase.
2. Albrecht Function Point (FP) Analysis
Function Point analysis measures software size based on functional units delivered to the user, completely independent of programming language syntax.
The 5 Information Domain Characteristics
- External Inputs (EI): Elementary user inputs that update internal system logical files (e.g., registration form submission).
- External Outputs (EO): Data processing outputs generated for users (e.g., report generation, confirmation receipt).
- External Inquiries (EQ): Interactive input queries resulting in immediate data retrieval without updating data files.
- Internal Logical Files (ILF): User-identifiable logical data groups maintained inside system boundary (e.g., database tables).
- External Interface Files (EIF): Data files maintained by external systems referenced for reading/lookup only.
Step-by-Step Function Point Calculation
- Calculate Unadjusted Function Points (UFP):
UFP=∑(Counti×Weighti)
where weight depends on complexity (Low, Average, High) of each of the 5 domain characteristics.
- Determine Value Adjustment Factor (VAF) based on 14 General System Characteristics (GSCs) scored from 0 (no influence) to 5 (strong influence):
- Data communications, Distributed processing, Performance, Heavily used configuration, Transaction rate, On-line data entry, End-user efficiency, On-line update, Complex processing, Reusability, Installation ease, Operational ease, Multiple sites, Facilitate change.
- Calculate Total Degree of Influence (EDI=∑Fi, range 0 to 70).
- Calculate final adjusted Function Points (FP):
FP=UFP×[0.65+0.01×∑Fi]
(Note: The Adjustment Factor ranges from 0.65 when EDI=0 to 1.35 when EDI=70).
2.3 COCOMO Estimation Model (Boehm)
Constructive Cost Model (COCOMO) is an empirical cost estimation model based on historical project data.
Software Project Modes
- Organic Mode: Small teams, familiar software environment, flexible requirements, minimal innovation needed.
- Semi-Detached Mode: Medium teams, mixed experience levels, combination of rigid and flexible requirements.
- Embedded Mode: Tight hardware/software/operational constraints, complex interfaces, high technical regulation.
1. Basic COCOMO
Calculates effort and duration strictly as a function of estimated size in Thousands of Delivered Source Instructions (KLOC).
Effort & Duration Formulas
- Effort: E=a⋅(KLOC)b [Person-Months]
- Development Duration: D=c⋅(E)d [Months]
- Recommended Staff Size: SS=E/D [Persons]
Coefficient Constants Matrix
| Mode | a | b | c | d |
|---|
| Organic | 2.4 | 1.05 | 2.5 | 0.38 |
| Semi-Detached | 3.0 | 1.12 | 2.5 | 0.35 |
| Embedded | 3.6 | 1.20 | 2.5 | 0.32 |
2. Intermediate COCOMO
Extends Basic COCOMO by multiplying basic effort with an Effort Adjustment Factor (EAF) derived from 15 Cost Drivers across 4 categories:
- Product Attributes: Required software reliability, Database size, Product complexity.
- Hardware Attributes: Execution time constraint, Main memory constraint, Virtual machine volatility, Environment turn-around time.
- Personnel Attributes: Analyst capability, Applications experience, Programmer capability, Virtual machine experience, Programming language experience.
- Project Attributes: Use of modern software tools, Application of software engineering methods, Required development schedule.
Formula
E=a⋅(KLOC)b×EAF
where EAF=∏i=115Cost Driver Ratingi.
3. Detailed (Complete) COCOMO
Applies phase-sensitive cost driver ratings to individual subsystem modules, recognizing that cost factors vary across Requirements, High-Level Design, Detailed Design, Coding, Unit Testing, and Integration phases.
2.4 Risk Analysis & Management
Risk Categories
- Project Risks: Threaten project budget, schedule, staffing, and resources.
- Technical Risks: Threaten quality and timeliness due to technical complexity or hardware limits.
- Business Risks: Threaten economic viability (e.g., market risk, sales risk, management change risk).
Risk Management Steps
- Risk Identification: Brainstorming risk checklists (Product size, Business impact, Staff experience, Process maturity).
- Risk Projection (Estimation): Rate Risk Likelihood (Li) and Risk Impact (Ii). Calculate Risk Exposure:
RE=P(Risk)×Cost of Risk
- Risk Refinement: Breaking down macro risks into detailed micro risk components.
- Risk Mitigation, Monitoring, and Management (RMMM Plan):
- Mitigation: Proactive steps to reduce risk likelihood or impact before it occurs.
- Monitoring: Tracking risk indicators during development.
- Management: Contingency plan execution if risk materializes.
2.5 Software Project Scheduling & Network Analysis
Work Breakdown Structure (WBS)
Decomposes total project scope into hierarchical, smaller work packages and tasks.
1. Gantt Chart
Horizontal bar chart displaying task start dates, finish dates, durations, and task overlap dependencies.
2. PERT / CPM Network Analysis
Program Evaluation and Review Technique (PERT) and Critical Path Method (CPM) represent project schedules as activity-on-edge or activity-on-node directed graphs.
Key Terminology
- Earliest Start (ES) / Earliest Finish (EF): Earliest time a task can begin/end.
- Latest Start (LS) / Latest Finish (LF): Latest time a task can begin/end without delaying total project completion.
- Float / Slack Time: Total time an activity can be delayed without delaying project completion date.
Slack=LS−ES=LF−EF
- Critical Path: Longest continuous path through activity network diagram. All activities on critical path have Zero Float (Slack = 0).
PERT Weighted Average Duration Calculation
Since activity durations are uncertain, PERT uses 3-point estimates following a Beta distribution:
- Optimistic Time (a): Shortest completion time under ideal conditions.
- Most Likely Time (m): Normal completion time.
- Pessimistic Time (b): Maximum completion time under worst conditions.
Formulas
- Expected Task Duration: Te=6a+4m+b
- Standard Deviation: σ=6b−a
- Variance: σ2=(6b−a)2