NivaarExam PrepOfficial exam papers ↗

19-Soft-B6 Software Project Management · May 2018

Question 4 of 8

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.

Question 4 (10 marks)

Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.

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 familyPurposeExamples
Size metricsQuantify how much software is (or will be) produced, the base input to effort/cost estimationLines of code (LOC), function points (FP)
Complexity metricsQuantify how difficult the internal structure is to understand, test, and maintain, independent of raw sizeCyclomatic complexity (independent paths through a module's control flow), coupling and cohesion measures, Halstead complexity measures
Quality metricsQuantify how well the delivered product meets its requirements and how defect-prone it isDefect 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: