NivaarExam PrepOfficial exam papers ↗

25-Comp-A6 Software Engineering · Undated paper

Question 3 of 8: Function-Oriented Design

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

Notes on this paper

National Exams — 17-Comp-A6 Software Engineering. Three-hour, closed-book exam, no calculator permitted. Format: eight questions, candidates answer any five (all questions equal weight — each of the five counted questions is worth 20%; any five questions constitute a complete paper, and only the first five as they appear in the answer book are marked). All eight questions are solved below for completeness. The page-1 heading reads "National Exams.

Reference texts: Sommerville, Software Engineering (10th ed., Pearson) — software process models, object-oriented and function-oriented design, software reuse and portability, dependable/critical systems, distributed software engineering, configuration management, reliability metrics; Pressman, Software Engineering: A Practitioner's Approach (9th ed.) — supplementary process and testing coverage; Leveson, Safeware — hazard and fault-tree analysis for safety-critical software.

Question 3: Function-Oriented Design (20 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.

Function-Oriented Design of the Newspaper/Magazine Delivery System

Following structured/function-oriented convention, the system is decomposed into five numbered processes operating on a shared household/subscription record, connected by labelled data flows to two external entities (the Household and the Delivery Person); every summary or billing figure is derived from that one authoritative record rather than from a separate live delivery-confirmation feed, since the question describes what is scheduled to be delivered (adjusted for vacations), not a per-item delivery-confirmation system.

Household Delivery Person 1Maintain Household &Subscription Records(publications, vacations) 2Generate DailyDelivery List(per delivery person) 3Compute DailySales Tally(per publication) 4Compile WeeklySales Summary(printed report) 5Compute & PrintMonthly Bills(vacation-adjusted) subscribe / cancel /vacation dates household/subscription+ vacation data daily delivery list household/subscription+ vacation data daily counts(accumulated over week) billing rate + vacation days monthly bill (deliveredwith first delivery)
Fig. Q3 — five numbered processes sharing the household/subscription record, with data flows to the Household and Delivery Person external entities.

Process 1 owns the single authoritative record of which households take which publications, their billing rate, and their vacation date ranges — every other process reads from this record rather than maintaining its own copy, which is the central function-oriented design decision here (a single shared data resource that every downstream function transforms). Process 2 reads that record each morning and, for every delivery person's assigned route, produces the list of publications to deliver to each household on the route, excluding any household currently within a recorded vacation range. Process 3 performs the same vacation-aware pass over the record but tallies, per publication, how many copies were actually scheduled for delivery that day (a household on vacation is excluded from both the delivery list and the day's sales tally, since the question states "newspapers are not delivered" during a vacation). Process 4 accumulates process 3's seven daily tallies into the weekly summary report. Process 5 runs once at month-end, computing each household's bill from its subscription rate pro-rated for any vacation days recorded that month, and prints the bills for physical delivery alongside the first delivery of the following month.

Check — assumptions
Assumes billing is per-household at a fixed rate per publication subscribed (pro-rated by simply excluding vacation days from the billable count), since the question states only that "billing details" are recorded, not a specific pricing model; assumes the "daily list" (process 2) and the "sales tally" (process 3) are computed from the same vacation-aware pass over process 1's record rather than from two independently-maintained data sets, since both describe what the system already knows is scheduled to be delivered that day, and maintaining them separately would risk the two figures silently diverging.