Unit IX

Software Project Management

Software Project Management (SPM) involves planning, monitoring, and controlling software projects to ensure they are delivered on time, within budget, and to the required quality.

๐ŸŽฏ Introduction to SPM

Software projects are unique โ€” they are intangible, complex, and subject to rapid changes in requirements. Project management provides the discipline to handle this complexity.

Scope
What to build
Schedule
When to deliver
Cost
Resources needed
Iron Triangle: Scope, Time, and Cost are interdependent. Fix two and the third must vary โ€” you can't have all three without trade-offs.

๐Ÿ“… Project Planning

Project planning is the core activity of SPM. It defines what needs to be done, who does it, when, and with what resources.

๐Ÿ“„ Software Project Management Plan (SPMP)

The SPMP is the formal document that describes how the project will be managed. It is the master plan that guides the entire project team.

Key Sections of SPMP

SectionContent
Project OverviewObjectives, major functions, project scope
Project OrganizationTeam structure, roles & responsibilities
Managerial ProcessObjectives, priorities, assumptions, risk management
Technical ProcessMethods, tools, techniques to be used
Work PackagesTasks, deliverables, schedule, budget

๐Ÿ“ Metrics for Project Size Estimation

Lines of Code (LOC)

The simplest size metric โ€” count the number of source code lines in the program. Usually excludes comments and blank lines.

Advantages of LOC

  • Easy to count automatically
  • Well-understood historically
  • Useful for calibrating other metrics

Disadvantages of LOC

  • Language-dependent โ€” 1 Java LOC โ‰  1 Assembly LOC
  • Penalizes programmers who write concise code
  • Cannot be measured before coding
  • No quality indicator

KLOC

Kilo Lines of Code โ€” simply LOC รท 1000. Used for expressing larger systems more conveniently. E.g., a 50,000-line system = 50 KLOC.

Function Points (FP)

Measures software size in terms of functionality delivered to the user, independent of programming language. Developed by Allan Albrecht at IBM (1979).

Function Point Components

ComponentDescriptionWeight (Simple/Avg/Complex)
External Inputs (EI)Data entering the system from outside3 / 4 / 6
External Outputs (EO)Data leaving the system4 / 5 / 7
External Inquiries (EQ)Input/output combinations (queries)3 / 4 / 6
Internal Logical Files (ILF)Data files maintained by system7 / 10 / 15
External Interface Files (EIF)Files used but not maintained5 / 7 / 10
Function Point Calculation Steps
Count EI,EO,EQ,ILF,EIF Apply Weights Simple/Avg/Complex Unadjusted FP Sum of all weighted counts Complexity Factor Apply VAF (0.65โ€“1.35) FP Final

๐Ÿงฎ Project Estimation Techniques

Expert Judgment Technique

Uses the knowledge and experience of domain experts to estimate project size and effort. Often combined with Delphi technique โ€” multiple experts independently estimate, then discuss and converge.

Software Metrics: LOC, KLOC, PM

Key Estimation Metrics at a Glance
LOC Lines of Code count(src_lines) Physical size metric language-dependent KLOC Kilo-Lines of Code LOC / 1000 For large systems e.g. 50K lines = 50 KLOC PM Person-Month Effort = a ร— KLOC^b COCOMO formula effort in person-months

COCOMO Model (Bonus)

COnstructive COst MOdel โ€” Barry Boehm (1981). Estimates effort and duration from KLOC.
ModeDescriptionEffort Formula
OrganicSmall, simple projects (<50 KLOC)E = 2.4 ร— (KLOC)^1.05
Semi-detachedMedium complexity (50โ€“300 KLOC)E = 3.0 ร— (KLOC)^1.12
EmbeddedComplex, real-time (>300 KLOC)E = 3.6 ร— (KLOC)^1.20

Where E = Effort in Person-Months