Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)
Notes on this paper
04-Soft-B6, Advanced Software Project Management, Life Cycle Methodologies — National Exams, May 2018 (3 hours, open book, non-communicating calculator permitted, 8 questions of equal value; FIVE (5) constitute a complete exam paper and the first five as they appear in the answer book are marked — all eight are solved here as a study resource).
Reference texts: Sommerville, Software Engineering, 10th ed. (process models, requirements engineering, configuration management); Pressman, Software Engineering: A Practitioner's Approach, 9th ed. (process models, agile, metrics, project planning); Gamma, Helm, Johnson & Vlissides (GoF), Design Patterns: Elements of Reusable Object-Oriented Software; ISO/IEC/IEEE 12207:2017, Software life cycle processes; PMI, A Guide to the Project Management Body of Knowledge (PMBOK), 7th ed.; SWEBOK v4.
Part (a) — parts of a typical project plan. A software project plan (produced during the Planning framework activity, Question 1a) typically contains: scope and objectives (what the project will and will not deliver); estimates of effort, cost, and resources (derived from size/complexity metrics, part b); a schedule (tasks, milestones, dependencies, often shown as a Gantt/network chart); a staffing/organization plan (roles, responsibilities, team structure); a risk management plan (identified risks, their probability/impact, and mitigation strategy); a tracking and control mechanism (how actual progress will be measured against the plan); and a project management approach stating the chosen process model (Questions 1–3) and how it will be tailored to this project. Together these parts turn the process-model choice into a concrete, executable commitment: the schedule and estimates say when and at what cost, staffing says who, and risk management says what could derail either.
Part (b) — size, complexity, and quality metrics.
Metric family
Purpose
Examples
Size metrics
Quantify how much software is (or will be) produced, the base input to effort/cost estimation
Lines of code (LOC), function points (FP)
Complexity metrics
Quantify how difficult the internal structure is to understand, test, and maintain, independent of raw size
Cyclomatic complexity (independent paths through a module's control flow), coupling and cohesion measures, Halstead complexity measures
Quality metrics
Quantify how well the delivered product meets its requirements and how defect-prone it is
Defect density (defects per KLOC or per FP), defect removal efficiency, mean time between failures (MTBF)
The three families are complementary rather than substitutes for one another: a system can be large (high size metric) yet simple (low complexity), or small yet dangerously tangled (high complexity per LOC); and complexity metrics are predictive — a module with high cyclomatic complexity is statistically more likely to contain defects — while quality metrics are the after-the-fact confirmation of whether that prediction held.
Part (c) — why separate development and maintenance departments. A large software company benefits from separating these functions for several reasons:
Different skill and incentive profiles. Development rewards building new capability quickly under a schedule; maintenance rewards careful, low-risk change to a live system that must not regress existing behaviour — conflating the two incentivizes developers to rush fixes into a codebase they are simultaneously trying to extend under a delivery deadline.
Avoiding resource contention. If the same team owns both, an urgent production defect on an old release competes directly for the same engineers' time as the next release's new features, and one or the other is chronically starved; separate departments give each its own dedicated capacity.
Specialized process needs. Maintenance work follows the ISO/IEC 12207 maintenance process (Question 5) — problem/modification analysis, controlled implementation, regression-tested acceptance — a disciplined change-control process that differs from a development team's forward-looking design/build cadence; a dedicated maintenance department can be organized and measured against maintenance-specific metrics (mean time to repair, defect backlog) that would not fit a development team's velocity-based metrics.
Institutional knowledge retention. A dedicated maintenance department accumulates deep, product-specific knowledge of a legacy system's quirks and history across many change requests, which a rotating development team (moving on to the next new project after release) does not retain as reliably.