NivaarExam PrepOfficial exam papers ↗

19-Soft-B6 Software Project Management · May 2018

Question 1 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 1 (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) — a common software process framework. A software process framework identifies the small set of framework activities that apply to every software project, regardless of size or the specific process model (Waterfall, spiral, agile, ...) later chosen to arrange them:

Framework activityWhat happens
CommunicationEstablishing what the customer/stakeholders actually need — eliciting, negotiating, and documenting requirements before committing resources to build anything.
PlanningCreating a project plan (Question 4a) — the work to be done, the risks involved, the resources required, the work products produced, and a schedule.
ModelingCreating models (analysis + design) so the team and the customer better understand the requirements and the software design that will satisfy them.
ConstructionCode generation (manual or tool-assisted) and the testing needed to uncover errors in the code.
DeploymentDelivering the software (or an increment) to the customer, who evaluates it and provides feedback based on that evaluation.

These five activities are called a framework because they are performed on every project, but their emphasis and ordering differ by model: Waterfall performs each once, in strict sequence; the V-model (Question 3a) folds construction between paired specification/test activities; agile compresses and repeats all five within very short iterations. Underneath the framework activities sit umbrella activities that apply throughout the project rather than to one phase — software project tracking and control, risk management, software quality assurance, formal technical reviews, measurement, and configuration management — and it is exactly these two layers (a fixed set of framework activities, arranged and repeated differently by the chosen process model, plus continuous umbrella activities) that make one process framework describable at all despite the wide variety of named models built on top of it.

Part (b) — types of software architectures, and why the choice matters. Common architectural styles include:

Choosing the right style is important because architecture is the earliest design decision that fixes the system's quality attributes: it constrains how easily the system can later be modified (e.g., layering isolates a database swap to one layer), how it scales (client–server and microservices can scale tiers/services independently; a monolithic layered system typically cannot), how testable it is (pipe-and-filter's stateless filters are individually testable in isolation), and how much coordination overhead a development team will carry (microservices let separate teams own separate services, at the cost of distributed-systems complexity that a single layered application never faces). An architectural style chosen to fit the dominant quality attribute the project actually needs (extensibility, throughput, team autonomy, testability) is far cheaper to build around from day one than to retrofit after construction has begun — architecture decisions are the most expensive of all design decisions to reverse, since every module written afterward implicitly depends on them.

← Paper overview