NivaarExam PrepOfficial exam papers ↗

19-Soft-A7 Software Development Process · December 2013

Question 5 of 8: Function-Point Cost Estimate for the Search & Delivery Tool

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

Notes on this paper

National Exams, December 2013 — 04-Soft-A7, Software Process (open book, 3 hours). Notes on the paper: FIVE of the eight questions constitute a complete paper (the first five as answered in the answer book are marked, each of equal value); this solution answers all eight as a full study resource. Most questions call for essay-format answers; Question 4 introduces a hypothetical information search-and-delivery tool (delivering electronic documents from a repository to a user by keyword/preference — e.g. a product catalog or classified-ads listing) that Question 5 and parts of Questions 7 build on.

Reference texts. Sommerville, Software Engineering, 10th ed., Ch. 2 (Software Processes), Ch. 3 (Agile Software Development), Ch. 5 (System Modeling), Ch. 8–9 (Testing), Ch. 22–23 (Project Management, Configuration Management), Ch. 9 (Software Evolution/Maintenance); Pressman, Software Engineering: A Practitioner's Approach, 9th ed., Ch. 2–3 (Process Models, Agile), Ch. 23–24 (Project Management, Risk Management), Ch. 29 (Function-Point sizing), Ch. 22 (SQA), Ch. 24 (Software Configuration Management); SWEBOK v4 (Software Engineering Process, Software Configuration Management, Software Maintenance KAs).

Question 5: Function-Point Cost Estimate for the Search & Delivery Tool (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.

Given. The Question-4 information search & delivery tool: three use cases (Set User Preferences, Search Documents, Select & Deliver Document), a user-preferences store, an internally-maintained document/repository index, and an externally-maintained document-repository feed. The IFPUG/Albrecht complexity-weight table (industry-standard, reproduced below) is adopted as the "reasonable" weight assignment the question invites.

IFPUG standard complexity weights (function points per component)
ComponentSimpleAverageComplex
External Input (EI)346
External Output (EO)457
External Inquiry (EQ)346
Internal Logical File (ILF)71015
External Interface File (EIF)5710

Find. The Unadjusted Function Point (UFP) count for the system, and an explanation of what the Value Adjustment Factor (VAF) is for.

Approach. Classify every distinct external input, output, inquiry, and logical/interface file the three use cases require, rate each Simple/Average/Complex by the number of data elements and referenced files it touches, weight and sum them (UFP), then explain how the 14 General System Characteristics (GSCs) adjust UFP to the final Adjusted Function Point (AFP) count actually used for cost/effort estimation.

  1. Classify the External Inputs (EI) — distinct data entering the system that update behaviour or data. Set-preferences form submission (keywords + categories, touching the preferences ILF): rated Average (1). Search-query submission and the select/deliver request: each simple, single-purpose inputs: rated Simple (2). $$EI = 1(4) + 2(3) = 10$$
  2. Classify the External Outputs (EO) — data leaving the system that involves derived/calculated content. The ranked search-results list (involves relevance scoring against the preferences and index): Average (1). The delivery confirmation: Simple (1). $$EO = 1(5) + 1(4) = 9$$
  3. Classify the External Inquiries (EQ) — input/output pairs that retrieve data with no derivation. Viewing current preferences and checking delivery status are both plain retrievals: Simple (2). $$EQ = 2(3) = 6$$
  4. Classify the Internal Logical Files (ILF) — data groups maintained inside the system. The user-preferences file: Simple (1, few data elements). The document-repository index (many record types — title, keywords, category, storage location, access rights): Complex (1). $$ILF = 1(7) + 1(15) = 22$$
  5. Classify the External Interface Files (EIF) — data groups maintained by another system but referenced here. The external document-repository feed supplying the raw catalog/classified-ad content: Average (1). $$EIF = 1(7) = 7$$
  6. Sum the Unadjusted Function Points. Adding the five component totals from Steps 1–5: $$UFP = EI + EO + EQ + ILF + EIF = 10 + 9 + 6 + 22 + 7$$ $$\boxed{UFP = 54 \text{ function points}}$$
  7. Illustrate the adjustment (VAF/CAF) mechanics. The Value/Complexity Adjustment Factor scales UFP by the project's 14 General System Characteristics (each rated 0–5: e.g. performance, distributed data processing, transaction rate, online update, complex processing, reusability), summed to a Total Degree of Influence (TDI, range 0–70): $$CAF = 0.65 + 0.01 \times TDI$$ For an illustrative mid-complexity rating (TDI = 38, e.g. moderate performance/online-update/reusability needs and low distributed-processing/multi-site needs for this single-repository tool): $$CAF = 0.65 + 0.01(38) = 1.03$$ $$AFP = UFP \times CAF = 54 \times 1.03$$ $$\boxed{AFP \approx 55.6 \text{ adjusted function points}}$$ The specific GSC ratings are project-specific judgement calls (not given in the question), so this step demonstrates the mechanism rather than asserting one authoritative TDI value; only the UFP in Step 6 is graded as a hard number here.
Final results
QuantityValue
External Inputs (EI)10 FP (1 Average + 2 Simple)
External Outputs (EO)9 FP (1 Average + 1 Simple)
External Inquiries (EQ)6 FP (2 Simple)
Internal Logical Files (ILF)22 FP (1 Simple + 1 Complex)
External Interface Files (EIF)7 FP (1 Average)
Unadjusted Function Points (UFP)54 function points
Illustrative CAF (TDI = 38)1.03
Illustrative Adjusted FP (AFP)≈ 55.6

Purpose of the adjustment values. The 14 General System Characteristics and the resulting CAF/VAF exist because two systems with an identical raw UFP count — the same number and type of inputs, outputs, inquiries and files — can require very different implementation effort depending on non-functional factors the raw counts do not capture: how demanding the performance target is, whether the system runs in a distributed/multi-site environment, how heavily it is designed for reuse, how complex the internal processing logic is, and so on. The adjustment scales the raw functional size up (CAF up to 1.35) or down (CAF down to 0.65) by up to ±35% to reflect this, producing an Adjusted Function Point count that is a materially better basis for effort/cost estimation than the unadjusted count alone — the same logic Question 1(c)'s "measurement" umbrella activity relies on: an estimate is only as useful as the size metric it is built from.