Skip to content
AL-403 · Software Engineering/Quick Revision Short Notes

Software Engineering (AL-403) - Unit 1 Short Notes

How unit 1 is examined

This unit covers what software is, the life-cycle process models and process maturity; the marks sit in product-versus-process characteristics, Waterfall, RAD, Spiral, then Prototyping, Incremental, Component Assembly, CMM, customization and metrics.

Software Product and Process Characteristics

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">High weight</span>

Definition. <mark>Software is a collection of programs, data and documentation that together perform a specified function; a software process is the set of activities used to build it, and the software product is the deliverable outcome of that process.</mark>

Key points.

  1. A software product is engineered, not manufactured, so it does not wear out but it deteriorates through changes, and it is mostly custom-built.
  2. Good product characteristics are correctness, reliability, usability, efficiency, maintainability and portability, and they are judged from the user's side.
  3. Good process characteristics are understandability, visibility, supportability, acceptability, reliability, robustness, rapidity and maintainability, and they are judged from the developer's side.
  4. Process quality drives product quality, because a defined and visible process makes the product predictable.
  5. Software crisis means software that is late, over budget, unreliable and hard to maintain; its causes are growing complexity, poor requirements, no methodology, changing needs and manpower problems.
  6. Maintenance costs are high because of poor design and documentation, continual change requests, bug fixing and evolution to new platforms.
  7. Software development problems arise from complexity, invisibility, changeability and conformity, giving schedule slippage, cost overrun and poor quality.
  8. Process framework activities are communication, planning, modeling, construction and deployment, supported by umbrella activities such as project tracking, risk management, quality assurance, reviews, configuration management and measurement.

Diagram. SDLC (software development life cycle): the ordered phases from requirement to maintenance.

<figure class="ds-fig" style="margin:1.4rem 0;overflow-x:auto"><svg xmlns="http://www.w3.org/2000/svg" id="dsfig-u1-01" viewBox="0 0 596 80" width="596" height="80" role="img" aria-label="SDLC. Req requirement analysis, Des design, Cod implementation (coding), Tst testing, Mnt maintenance"><style>#dsfig-u1-01 .e{stroke:#454C5A;stroke-width:1.4;fill:none}#dsfig-u1-01 .e.hi{stroke:#2340B8;stroke-width:2.6}#dsfig-u1-01 .n{fill:#FFFFFF;stroke:#16181D;stroke-width:1.4}#dsfig-u1-01 .n.hi{fill:#E3E9FC;stroke:#2340B8;stroke-width:2.2}#dsfig-u1-01 .n.rb-b{fill:#16181D;stroke:#16181D}#dsfig-u1-01 .n.rb-r{fill:#BD3227;stroke:#BD3227}#dsfig-u1-01 text{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px}#dsfig-u1-01 .t{fill:#16181D;font-weight:500}#dsfig-u1-01 .t.inv{fill:#FFFFFF;font-weight:700}#dsfig-u1-01 .kd{stroke:#16181D;stroke-width:1.2}#dsfig-u1-01 .dot{fill:#16181D}#dsfig-u1-01 .ann{fill:#2340B8;font-size:11px;font-weight:700}#dsfig-u1-01 .lbl{fill:#6F7787;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}#dsfig-u1-01 .ptr{fill:#2340B8;font-size:12px;font-weight:700}#dsfig-u1-01 .ah{fill:#454C5A}#dsfig-u1-01 .ah.hi{fill:#2340B8}#dsfig-u1-01 .wl rect{fill:#FFFFFF;stroke:#DCE0E7}#dsfig-u1-01 .wl .t{font-size:12px;font-weight:700}#dsfig-u1-01 .wl.hi rect{fill:#2340B8;stroke:#2340B8}#dsfig-u1-01 .wl.hi .t{fill:#FFFFFF}html.dark #dsfig-u1-01 .e{stroke:#B1B7C3}html.dark #dsfig-u1-01 .e.hi{stroke:#8FA3FF}html.dark #dsfig-u1-01 .n{fill:#161920;stroke:#E6E8ED}html.dark #dsfig-u1-01 .n.hi{fill:#1E2748;stroke:#8FA3FF}html.dark #dsfig-u1-01 .n.rb-b{fill:#E6E8ED;stroke:#E6E8ED}html.dark #dsfig-u1-01 .n.rb-r{fill:#FF7E71;stroke:#FF7E71}html.dark #dsfig-u1-01 .t{fill:#E6E8ED}html.dark #dsfig-u1-01 .t.inv{fill:#0F1115}html.dark #dsfig-u1-01 .kd{stroke:#E6E8ED}html.dark #dsfig-u1-01 .dot{fill:#E6E8ED}html.dark #dsfig-u1-01 .ann{fill:#8FA3FF}html.dark #dsfig-u1-01 .lbl{fill:#858D9C}html.dark #dsfig-u1-01 .ptr{fill:#8FA3FF}html.dark #dsfig-u1-01 .ah{fill:#B1B7C3}html.dark #dsfig-u1-01 .ah.hi{fill:#8FA3FF}html.dark #dsfig-u1-01 .wl rect{fill:#161920;stroke:#2A2E37}html.dark #dsfig-u1-01 .wl.hi rect{fill:#8FA3FF;stroke:#8FA3FF}html.dark #dsfig-u1-01 .wl.hi .t{fill:#0F1115}</style><defs><marker id="ah1" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah" d="M0,1 L9,5 L0,9 z"/></marker><marker id="ahh1" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah hi" d="M0,1 L9,5 L0,9 z"/></marker></defs><path class="e" d="M59,40 L148,40" marker-end="url(#ah1)"/><path class="e" d="M188,40 L277,40" marker-end="url(#ah1)"/><path class="e" d="M317,40 L406,40" marker-end="url(#ah1)"/><path class="e" d="M446,40 L535,40" marker-end="url(#ah1)"/><circle class="n" cx="40" cy="40" r="18"/><text class="t" x="40" y="40" dy=".35em" text-anchor="middle">Req</text><circle class="n" cx="169" cy="40" r="18"/><text class="t" x="169" y="40" dy=".35em" text-anchor="middle">Des</text><circle class="n" cx="298" cy="40" r="18"/><text class="t" x="298" y="40" dy=".35em" text-anchor="middle">Cod</text><circle class="n" cx="427" cy="40" r="18"/><text class="t" x="427" y="40" dy=".35em" text-anchor="middle">Tst</text><circle class="n" cx="556" cy="40" r="18"/><text class="t" x="556" y="40" dy=".35em" text-anchor="middle">Mnt</text></svg><figcaption style="font-size:.82em;opacity:.72;margin-top:.45rem">SDLC. Req requirement analysis, Des design, Cod implementation (coding), Tst testing, Mnt maintenance</figcaption></figure>

SDLC phases. Requirement gathers and documents what the user needs; design fixes architecture and modules; implementation writes the code; testing finds defects against the requirements; maintenance corrects and enhances the delivered system.

Basis Software product Software process
Nature Deliverable: programs, data, documents Set of activities used to build it
Focus Outcome qualities Development-activity qualities
Qualities Correctness, reliability, usability, efficiency, maintainability, portability Understandability, visibility, supportability, acceptability, robustness, rapidity
Judged by User Developer and manager
Example Banking app Waterfall, Spiral

Answer frame. Open with the definition of software; draw the SDLC block diagram or the product-versus-process table; develop points 1-4 for characteristics, points 5-7 for crisis; close with "a sound process yields a quality product".

Asked: [7 marks] (Jun 2022, Jun 2025, Jun 2026) What is software? Difference between software process and software product; explain their characteristics. Asked: [7 marks] (Jun 2025) Differentiate between software product characteristics and software process characteristics. Asked: [7 marks] (Jun 2026) Define software product and explain the characteristics of a good software product. Asked: [7 marks] (May 2019) Explain about software engineering paradigm in detail. Asked: [7 marks] (May 2019) Explain in detail about the software process. Asked: [7 marks] (Dec 2020) What is software crisis? Reasons of crisis and of higher maintenance costs. Asked: [7 marks] (Jun 2020) What are software development problems? Describe. Asked: [7 marks] (Nov 2023) What is SDLC? Illustrate the phases of SDLC.

Software Process Models: Linear Sequential Model

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">High weight</span>

Definition. <mark>The Linear Sequential (Waterfall) model is a life-cycle model in which development flows steadily downward through requirements, design, implementation, testing, deployment and maintenance, each phase finishing before the next begins.</mark>

<figure class="ds-fig" style="margin:1.4rem 0;overflow-x:auto"><svg xmlns="http://www.w3.org/2000/svg" id="dsfig-u1-02" viewBox="0 0 510 424" width="510" height="424" role="img" aria-label="Waterfall. Req requirements, Des design, Imp implementation, Tst testing, Dep deployment, Mnt maintenance"><style>#dsfig-u1-02 .e{stroke:#454C5A;stroke-width:1.4;fill:none}#dsfig-u1-02 .e.hi{stroke:#2340B8;stroke-width:2.6}#dsfig-u1-02 .n{fill:#FFFFFF;stroke:#16181D;stroke-width:1.4}#dsfig-u1-02 .n.hi{fill:#E3E9FC;stroke:#2340B8;stroke-width:2.2}#dsfig-u1-02 .n.rb-b{fill:#16181D;stroke:#16181D}#dsfig-u1-02 .n.rb-r{fill:#BD3227;stroke:#BD3227}#dsfig-u1-02 text{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px}#dsfig-u1-02 .t{fill:#16181D;font-weight:500}#dsfig-u1-02 .t.inv{fill:#FFFFFF;font-weight:700}#dsfig-u1-02 .kd{stroke:#16181D;stroke-width:1.2}#dsfig-u1-02 .dot{fill:#16181D}#dsfig-u1-02 .ann{fill:#2340B8;font-size:11px;font-weight:700}#dsfig-u1-02 .lbl{fill:#6F7787;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}#dsfig-u1-02 .ptr{fill:#2340B8;font-size:12px;font-weight:700}#dsfig-u1-02 .ah{fill:#454C5A}#dsfig-u1-02 .ah.hi{fill:#2340B8}#dsfig-u1-02 .wl rect{fill:#FFFFFF;stroke:#DCE0E7}#dsfig-u1-02 .wl .t{font-size:12px;font-weight:700}#dsfig-u1-02 .wl.hi rect{fill:#2340B8;stroke:#2340B8}#dsfig-u1-02 .wl.hi .t{fill:#FFFFFF}html.dark #dsfig-u1-02 .e{stroke:#B1B7C3}html.dark #dsfig-u1-02 .e.hi{stroke:#8FA3FF}html.dark #dsfig-u1-02 .n{fill:#161920;stroke:#E6E8ED}html.dark #dsfig-u1-02 .n.hi{fill:#1E2748;stroke:#8FA3FF}html.dark #dsfig-u1-02 .n.rb-b{fill:#E6E8ED;stroke:#E6E8ED}html.dark #dsfig-u1-02 .n.rb-r{fill:#FF7E71;stroke:#FF7E71}html.dark #dsfig-u1-02 .t{fill:#E6E8ED}html.dark #dsfig-u1-02 .t.inv{fill:#0F1115}html.dark #dsfig-u1-02 .kd{stroke:#E6E8ED}html.dark #dsfig-u1-02 .dot{fill:#E6E8ED}html.dark #dsfig-u1-02 .ann{fill:#8FA3FF}html.dark #dsfig-u1-02 .lbl{fill:#858D9C}html.dark #dsfig-u1-02 .ptr{fill:#8FA3FF}html.dark #dsfig-u1-02 .ah{fill:#B1B7C3}html.dark #dsfig-u1-02 .ah.hi{fill:#8FA3FF}html.dark #dsfig-u1-02 .wl rect{fill:#161920;stroke:#2A2E37}html.dark #dsfig-u1-02 .wl.hi rect{fill:#8FA3FF;stroke:#8FA3FF}html.dark #dsfig-u1-02 .wl.hi .t{fill:#0F1115}</style><defs><marker id="ah2" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah" d="M0,1 L9,5 L0,9 z"/></marker><marker id="ahh2" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah hi" d="M0,1 L9,5 L0,9 z"/></marker></defs><path class="e" d="M54.8,51.9 L109.6,95.7" marker-end="url(#ah2)"/><path class="e" d="M140.8,120.7 L195.6,164.5" marker-end="url(#ah2)"/><path class="e" d="M226.8,189.5 L281.6,233.3" marker-end="url(#ah2)"/><path class="e" d="M312.8,258.3 L367.6,302.1" marker-end="url(#ah2)"/><path class="e" d="M398.8,327.1 L453.6,370.9" marker-end="url(#ah2)"/><circle class="n" cx="40" cy="40" r="18"/><text class="t" x="40" y="40" dy=".35em" text-anchor="middle">Req</text><circle class="n" cx="126" cy="108.8" r="18"/><text class="t" x="126" y="108.8" dy=".35em" text-anchor="middle">Des</text><circle class="n" cx="212" cy="177.6" r="18"/><text class="t" x="212" y="177.6" dy=".35em" text-anchor="middle">Imp</text><circle class="n" cx="298" cy="246.4" r="18"/><text class="t" x="298" y="246.4" dy=".35em" text-anchor="middle">Tst</text><circle class="n" cx="384" cy="315.2" r="18"/><text class="t" x="384" y="315.2" dy=".35em" text-anchor="middle">Dep</text><circle class="n" cx="470" cy="384" r="18"/><text class="t" x="470" y="384" dy=".35em" text-anchor="middle">Mnt</text></svg><figcaption style="font-size:.82em;opacity:.72;margin-top:.45rem">Waterfall. Req requirements, Des design, Imp implementation, Tst testing, Dep deployment, Mnt maintenance</figcaption></figure>

Key points.

  1. Requirements analysis records all user needs in an SRS (software requirements specification) that is frozen before design.
  2. Design converts the SRS into architecture, data structures and module specifications.
  3. Implementation codes each module and unit-tests it.
  4. Testing integrates the modules and verifies the system against the requirements.
  5. Deployment and maintenance deliver the system and then fix errors and adapt it.
  6. Advantages: it is simple, disciplined, easy to manage with clear milestones, and documentation-driven.
  7. Disadvantages: it is inflexible, a working product appears late, testing comes late, and it copes poorly with changing requirements.
  8. It suits small projects with stable, well-understood requirements, such as a payroll system.

Answer frame. Open with the definition; draw the waterfall diagram; describe phases 1-5 in order; give advantages, then disadvantages; close with suitability. For the Jun 2026 question add the Spiral section with its own diagram and a one-line contrast (Waterfall for fixed requirements, Spiral for risky projects).

Asked: [7 marks] (Jun 2020, Jun 2025) Explain Waterfall model with diagram along with advantages and disadvantages. Asked: [7 marks] (Jun 2025) Explain the Linear Sequential Model and discuss its advantages and disadvantages. Asked: [7 marks] (Jun 2026) Explain the Linear Sequential (Waterfall) Model and Spiral Model with neat diagrams and suitable examples. Asked: [7 marks] (Jun 2024) Elucidate the key features of the software process models with suitable examples.

Prototyping Model

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>

Definition. <mark>Prototyping builds a quick, working mock-up of the system so that users can evaluate it and the real requirements can be clarified before the final product is built.</mark>

<figure class="ds-fig" style="margin:1.4rem 0;overflow-x:auto"><svg xmlns="http://www.w3.org/2000/svg" id="dsfig-u1-03" viewBox="0 0 467 209" width="467" height="209" role="img" aria-label="Prototyping loop. Req requirement gathering, Qd quick design, Bp build prototype, Ev customer evaluation, Rf refinement"><style>#dsfig-u1-03 .e{stroke:#454C5A;stroke-width:1.4;fill:none}#dsfig-u1-03 .e.hi{stroke:#2340B8;stroke-width:2.6}#dsfig-u1-03 .n{fill:#FFFFFF;stroke:#16181D;stroke-width:1.4}#dsfig-u1-03 .n.hi{fill:#E3E9FC;stroke:#2340B8;stroke-width:2.2}#dsfig-u1-03 .n.rb-b{fill:#16181D;stroke:#16181D}#dsfig-u1-03 .n.rb-r{fill:#BD3227;stroke:#BD3227}#dsfig-u1-03 text{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px}#dsfig-u1-03 .t{fill:#16181D;font-weight:500}#dsfig-u1-03 .t.inv{fill:#FFFFFF;font-weight:700}#dsfig-u1-03 .kd{stroke:#16181D;stroke-width:1.2}#dsfig-u1-03 .dot{fill:#16181D}#dsfig-u1-03 .ann{fill:#2340B8;font-size:11px;font-weight:700}#dsfig-u1-03 .lbl{fill:#6F7787;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}#dsfig-u1-03 .ptr{fill:#2340B8;font-size:12px;font-weight:700}#dsfig-u1-03 .ah{fill:#454C5A}#dsfig-u1-03 .ah.hi{fill:#2340B8}#dsfig-u1-03 .wl rect{fill:#FFFFFF;stroke:#DCE0E7}#dsfig-u1-03 .wl .t{font-size:12px;font-weight:700}#dsfig-u1-03 .wl.hi rect{fill:#2340B8;stroke:#2340B8}#dsfig-u1-03 .wl.hi .t{fill:#FFFFFF}html.dark #dsfig-u1-03 .e{stroke:#B1B7C3}html.dark #dsfig-u1-03 .e.hi{stroke:#8FA3FF}html.dark #dsfig-u1-03 .n{fill:#161920;stroke:#E6E8ED}html.dark #dsfig-u1-03 .n.hi{fill:#1E2748;stroke:#8FA3FF}html.dark #dsfig-u1-03 .n.rb-b{fill:#E6E8ED;stroke:#E6E8ED}html.dark #dsfig-u1-03 .n.rb-r{fill:#FF7E71;stroke:#FF7E71}html.dark #dsfig-u1-03 .t{fill:#E6E8ED}html.dark #dsfig-u1-03 .t.inv{fill:#0F1115}html.dark #dsfig-u1-03 .kd{stroke:#E6E8ED}html.dark #dsfig-u1-03 .dot{fill:#E6E8ED}html.dark #dsfig-u1-03 .ann{fill:#8FA3FF}html.dark #dsfig-u1-03 .lbl{fill:#858D9C}html.dark #dsfig-u1-03 .ptr{fill:#8FA3FF}html.dark #dsfig-u1-03 .ah{fill:#B1B7C3}html.dark #dsfig-u1-03 .ah.hi{fill:#8FA3FF}html.dark #dsfig-u1-03 .wl rect{fill:#161920;stroke:#2A2E37}html.dark #dsfig-u1-03 .wl.hi rect{fill:#8FA3FF;stroke:#8FA3FF}html.dark #dsfig-u1-03 .wl.hi .t{fill:#0F1115}</style><defs><marker id="ah3" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah" d="M0,1 L9,5 L0,9 z"/></marker><marker id="ahh3" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah hi" d="M0,1 L9,5 L0,9 z"/></marker></defs><path class="e" d="M59,40 L148,40" marker-end="url(#ah3)"/><path class="e" d="M188,40 L277,40" marker-end="url(#ah3)"/><path class="e" d="M317,40 L406,40" marker-end="url(#ah3)"/><path class="e" d="M413.6,53.4 L312.8,154.2" marker-end="url(#ah3)"/><path class="e" d="M298,150 L298,61" marker-end="url(#ah3)"/><circle class="n" cx="40" cy="40" r="18"/><text class="t" x="40" y="40" dy=".35em" text-anchor="middle">Req</text><circle class="n" cx="169" cy="40" r="18"/><text class="t" x="169" y="40" dy=".35em" text-anchor="middle">Qd</text><circle class="n" cx="298" cy="40" r="18"/><text class="t" x="298" y="40" dy=".35em" text-anchor="middle">Bp</text><circle class="n" cx="427" cy="40" r="18"/><text class="t" x="427" y="40" dy=".35em" text-anchor="middle">Ev</text><circle class="n" cx="298" cy="169" r="18"/><text class="t" x="298" y="169" dy=".35em" text-anchor="middle">Rf</text></svg><figcaption style="font-size:.82em;opacity:.72;margin-top:.45rem">Prototyping loop. Req requirement gathering, Qd quick design, Bp build prototype, Ev customer evaluation, Rf refinement</figcaption></figure>

Key points.

  1. The steps are requirement gathering, quick design, prototype build, customer evaluation and refinement, repeated until the user accepts.
  2. Throwaway (rapid) prototyping discards the prototype after requirements are understood.
  3. Evolutionary prototyping keeps refining the prototype until it becomes the final system.
  4. Incremental prototyping builds separate prototypes for parts and merges them later.
  5. Extreme prototyping, used for web applications, builds a static page, then a simulated service layer, then the real services.
  6. Advantages are early user feedback, fewer requirement errors and better user involvement; limitations are poor design from quick fixes, extra cost and users mistaking the prototype for the product.

Answer frame. Open with the definition and purpose; draw the loop; list steps, then the four types; close with advantages and limitations.

Asked: [7 marks] (May 2019, Dec 2024) Describe various software prototyping techniques. Asked: [7 marks] (Dec 2024) Describe briefly about Prototyping model for software development.

RAD Model

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">High weight</span>

Definition. <mark>Rapid Application Development (RAD) is a high-speed, incremental adaptation of Waterfall in which components are built in parallel by separate teams using reusable components, giving a working system in about 60 to 90 days.</mark>

<figure class="ds-fig" style="margin:1.4rem 0;overflow-x:auto"><svg xmlns="http://www.w3.org/2000/svg" id="dsfig-u1-04" viewBox="0 0 596 80" width="596" height="80" role="img" aria-label="RAD. BM business modeling, DM data modeling, PM process modeling, AG application generation, TT testing and turnover"><style>#dsfig-u1-04 .e{stroke:#454C5A;stroke-width:1.4;fill:none}#dsfig-u1-04 .e.hi{stroke:#2340B8;stroke-width:2.6}#dsfig-u1-04 .n{fill:#FFFFFF;stroke:#16181D;stroke-width:1.4}#dsfig-u1-04 .n.hi{fill:#E3E9FC;stroke:#2340B8;stroke-width:2.2}#dsfig-u1-04 .n.rb-b{fill:#16181D;stroke:#16181D}#dsfig-u1-04 .n.rb-r{fill:#BD3227;stroke:#BD3227}#dsfig-u1-04 text{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px}#dsfig-u1-04 .t{fill:#16181D;font-weight:500}#dsfig-u1-04 .t.inv{fill:#FFFFFF;font-weight:700}#dsfig-u1-04 .kd{stroke:#16181D;stroke-width:1.2}#dsfig-u1-04 .dot{fill:#16181D}#dsfig-u1-04 .ann{fill:#2340B8;font-size:11px;font-weight:700}#dsfig-u1-04 .lbl{fill:#6F7787;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}#dsfig-u1-04 .ptr{fill:#2340B8;font-size:12px;font-weight:700}#dsfig-u1-04 .ah{fill:#454C5A}#dsfig-u1-04 .ah.hi{fill:#2340B8}#dsfig-u1-04 .wl rect{fill:#FFFFFF;stroke:#DCE0E7}#dsfig-u1-04 .wl .t{font-size:12px;font-weight:700}#dsfig-u1-04 .wl.hi rect{fill:#2340B8;stroke:#2340B8}#dsfig-u1-04 .wl.hi .t{fill:#FFFFFF}html.dark #dsfig-u1-04 .e{stroke:#B1B7C3}html.dark #dsfig-u1-04 .e.hi{stroke:#8FA3FF}html.dark #dsfig-u1-04 .n{fill:#161920;stroke:#E6E8ED}html.dark #dsfig-u1-04 .n.hi{fill:#1E2748;stroke:#8FA3FF}html.dark #dsfig-u1-04 .n.rb-b{fill:#E6E8ED;stroke:#E6E8ED}html.dark #dsfig-u1-04 .n.rb-r{fill:#FF7E71;stroke:#FF7E71}html.dark #dsfig-u1-04 .t{fill:#E6E8ED}html.dark #dsfig-u1-04 .t.inv{fill:#0F1115}html.dark #dsfig-u1-04 .kd{stroke:#E6E8ED}html.dark #dsfig-u1-04 .dot{fill:#E6E8ED}html.dark #dsfig-u1-04 .ann{fill:#8FA3FF}html.dark #dsfig-u1-04 .lbl{fill:#858D9C}html.dark #dsfig-u1-04 .ptr{fill:#8FA3FF}html.dark #dsfig-u1-04 .ah{fill:#B1B7C3}html.dark #dsfig-u1-04 .ah.hi{fill:#8FA3FF}html.dark #dsfig-u1-04 .wl rect{fill:#161920;stroke:#2A2E37}html.dark #dsfig-u1-04 .wl.hi rect{fill:#8FA3FF;stroke:#8FA3FF}html.dark #dsfig-u1-04 .wl.hi .t{fill:#0F1115}</style><defs><marker id="ah4" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah" d="M0,1 L9,5 L0,9 z"/></marker><marker id="ahh4" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah hi" d="M0,1 L9,5 L0,9 z"/></marker></defs><path class="e" d="M59,40 L148,40" marker-end="url(#ah4)"/><path class="e" d="M188,40 L277,40" marker-end="url(#ah4)"/><path class="e" d="M317,40 L406,40" marker-end="url(#ah4)"/><path class="e" d="M446,40 L535,40" marker-end="url(#ah4)"/><circle class="n" cx="40" cy="40" r="18"/><text class="t" x="40" y="40" dy=".35em" text-anchor="middle">BM</text><circle class="n" cx="169" cy="40" r="18"/><text class="t" x="169" y="40" dy=".35em" text-anchor="middle">DM</text><circle class="n" cx="298" cy="40" r="18"/><text class="t" x="298" y="40" dy=".35em" text-anchor="middle">PM</text><circle class="n" cx="427" cy="40" r="18"/><text class="t" x="427" y="40" dy=".35em" text-anchor="middle">AG</text><circle class="n" cx="556" cy="40" r="18"/><text class="t" x="556" y="40" dy=".35em" text-anchor="middle">TT</text></svg><figcaption style="font-size:.82em;opacity:.72;margin-top:.45rem">RAD. BM business modeling, DM data modeling, PM process modeling, AG application generation, TT testing and turnover</figcaption></figure>

Key points.

  1. Business modeling finds the information flow between business functions.
  2. Data modeling refines that information into data objects and their relationships.
  3. Process modeling turns the data objects into the processing needed to add, modify, delete and retrieve them.
  4. Application generation builds the system using fourth-generation tools and reusable components.
  5. Testing and turnover need only the new components tested, because reused ones are already tested; this shortens time.
  6. Time-boxing fixes a short deadline for each team and prototypes are refined iteratively with users.
  7. It is useful when the system is modular, requirements are well understood, time is very short, reusable components exist and users are available.
  8. Limitations: it needs enough skilled people for the teams, committed users, and it is unsuitable for highly technical or high-risk systems that cannot be modularised.

Answer frame. Open with the definition of RAD; draw the phase diagram with teams in parallel; develop phases 1-5, then time-boxing; give when it is useful and when it is not; close with a business information system as the example.

Asked: [7 marks] (Dec 2020, Jun 2022, Jun 2023, Dec 2024) Explain phases of RAD model; discuss where it is useful; why it is important and its applications. Asked: [7 marks] (Dec 2024) Explain with neat diagram about RAD model.

Evolutionary Process Models like Incremental Model

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>

Definition. <mark>Evolutionary models develop the software in repeated cycles so that each version is refined by feedback; the Incremental model delivers the product as a series of working increments, the first being the core product.</mark>

<figure class="ds-fig" style="margin:1.4rem 0;overflow-x:auto"><svg xmlns="http://www.w3.org/2000/svg" id="dsfig-u1-05" viewBox="0 0 467 338" width="467" height="338" role="img" aria-label="Incremental model. Each increment In runs its own analysis, design, code and test and is delivered to the user"><style>#dsfig-u1-05 .e{stroke:#454C5A;stroke-width:1.4;fill:none}#dsfig-u1-05 .e.hi{stroke:#2340B8;stroke-width:2.6}#dsfig-u1-05 .n{fill:#FFFFFF;stroke:#16181D;stroke-width:1.4}#dsfig-u1-05 .n.hi{fill:#E3E9FC;stroke:#2340B8;stroke-width:2.2}#dsfig-u1-05 .n.rb-b{fill:#16181D;stroke:#16181D}#dsfig-u1-05 .n.rb-r{fill:#BD3227;stroke:#BD3227}#dsfig-u1-05 text{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px}#dsfig-u1-05 .t{fill:#16181D;font-weight:500}#dsfig-u1-05 .t.inv{fill:#FFFFFF;font-weight:700}#dsfig-u1-05 .kd{stroke:#16181D;stroke-width:1.2}#dsfig-u1-05 .dot{fill:#16181D}#dsfig-u1-05 .ann{fill:#2340B8;font-size:11px;font-weight:700}#dsfig-u1-05 .lbl{fill:#6F7787;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}#dsfig-u1-05 .ptr{fill:#2340B8;font-size:12px;font-weight:700}#dsfig-u1-05 .ah{fill:#454C5A}#dsfig-u1-05 .ah.hi{fill:#2340B8}#dsfig-u1-05 .wl rect{fill:#FFFFFF;stroke:#DCE0E7}#dsfig-u1-05 .wl .t{font-size:12px;font-weight:700}#dsfig-u1-05 .wl.hi rect{fill:#2340B8;stroke:#2340B8}#dsfig-u1-05 .wl.hi .t{fill:#FFFFFF}html.dark #dsfig-u1-05 .e{stroke:#B1B7C3}html.dark #dsfig-u1-05 .e.hi{stroke:#8FA3FF}html.dark #dsfig-u1-05 .n{fill:#161920;stroke:#E6E8ED}html.dark #dsfig-u1-05 .n.hi{fill:#1E2748;stroke:#8FA3FF}html.dark #dsfig-u1-05 .n.rb-b{fill:#E6E8ED;stroke:#E6E8ED}html.dark #dsfig-u1-05 .n.rb-r{fill:#FF7E71;stroke:#FF7E71}html.dark #dsfig-u1-05 .t{fill:#E6E8ED}html.dark #dsfig-u1-05 .t.inv{fill:#0F1115}html.dark #dsfig-u1-05 .kd{stroke:#E6E8ED}html.dark #dsfig-u1-05 .dot{fill:#E6E8ED}html.dark #dsfig-u1-05 .ann{fill:#8FA3FF}html.dark #dsfig-u1-05 .lbl{fill:#858D9C}html.dark #dsfig-u1-05 .ptr{fill:#8FA3FF}html.dark #dsfig-u1-05 .ah{fill:#B1B7C3}html.dark #dsfig-u1-05 .ah.hi{fill:#8FA3FF}html.dark #dsfig-u1-05 .wl rect{fill:#161920;stroke:#2A2E37}html.dark #dsfig-u1-05 .wl.hi rect{fill:#8FA3FF;stroke:#8FA3FF}html.dark #dsfig-u1-05 .wl.hi .t{fill:#0F1115}</style><defs><marker id="ah5" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah" d="M0,1 L9,5 L0,9 z"/></marker><marker id="ahh5" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah hi" d="M0,1 L9,5 L0,9 z"/></marker></defs><path class="e" d="M55.8,50.5 L151.5,114.4" marker-end="url(#ah5)"/><path class="e" d="M184.8,136.5 L280.5,200.4" marker-end="url(#ah5)"/><path class="e" d="M313.8,222.5 L409.5,286.4" marker-end="url(#ah5)"/><circle class="n" cx="40" cy="40" r="18"/><text class="t" x="40" y="40" dy=".35em" text-anchor="middle">I1</text><circle class="n" cx="169" cy="126" r="18"/><text class="t" x="169" y="126" dy=".35em" text-anchor="middle">I2</text><circle class="n" cx="298" cy="212" r="18"/><text class="t" x="298" y="212" dy=".35em" text-anchor="middle">I3</text><circle class="n" cx="427" cy="298" r="18"/><text class="t" x="427" y="298" dy=".35em" text-anchor="middle">I4</text></svg><figcaption style="font-size:.82em;opacity:.72;margin-top:.45rem">Incremental model. Each increment In runs its own analysis, design, code and test and is delivered to the user</figcaption></figure>

Key points.

  1. Evolutionary models (Prototyping and Spiral) accept that requirements change and refine the product by iteration.
  2. In the Incremental model, each increment applies waterfall steps of analysis, design, coding and testing to a part of the requirements.
  3. The first increment is the core product; later increments add features, and each is delivered to the user.
  4. Merits: early delivery of a working product, flexibility to change, lower initial cost, easier testing and risk spread over increments.
  5. Demerits: it needs careful planning and design of the whole system, integration problems between increments, and total cost can exceed Waterfall.
  6. It suits products where staff are short or early releases are valuable, such as a word processor.

Answer frame. Open with the definition; draw the increments diagram; explain points 1-3; give merits then demerits; close with suitability.

Asked: [7 marks] (Jun 2023) Discuss in detail about Evolutionary process model in software engineering. Asked: [7 marks] (Dec 2024) Draw and explain the Incremental Model with its merits and demerits.

Spiral Model

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">High weight</span>

Definition. <mark>The Spiral model, proposed by Boehm, is a risk-driven, iterative life-cycle model that combines prototyping with the Waterfall model, in which each loop of the spiral passes through four quadrants and the radius shows cumulative cost and progress.</mark>

<figure class="ds-fig" style="margin:1.4rem 0;overflow-x:auto"><svg xmlns="http://www.w3.org/2000/svg" id="dsfig-u1-06" viewBox="0 0 424 338" width="424" height="338" role="img" aria-label="One loop of the spiral. Obj objective setting (planning), Rsk risk analysis, Dev development and testing (engineering), Pln customer evaluation and planning of the next loop; the radius grows with each loop"><style>#dsfig-u1-06 .e{stroke:#454C5A;stroke-width:1.4;fill:none}#dsfig-u1-06 .e.hi{stroke:#2340B8;stroke-width:2.6}#dsfig-u1-06 .n{fill:#FFFFFF;stroke:#16181D;stroke-width:1.4}#dsfig-u1-06 .n.hi{fill:#E3E9FC;stroke:#2340B8;stroke-width:2.2}#dsfig-u1-06 .n.rb-b{fill:#16181D;stroke:#16181D}#dsfig-u1-06 .n.rb-r{fill:#BD3227;stroke:#BD3227}#dsfig-u1-06 text{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px}#dsfig-u1-06 .t{fill:#16181D;font-weight:500}#dsfig-u1-06 .t.inv{fill:#FFFFFF;font-weight:700}#dsfig-u1-06 .kd{stroke:#16181D;stroke-width:1.2}#dsfig-u1-06 .dot{fill:#16181D}#dsfig-u1-06 .ann{fill:#2340B8;font-size:11px;font-weight:700}#dsfig-u1-06 .lbl{fill:#6F7787;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}#dsfig-u1-06 .ptr{fill:#2340B8;font-size:12px;font-weight:700}#dsfig-u1-06 .ah{fill:#454C5A}#dsfig-u1-06 .ah.hi{fill:#2340B8}#dsfig-u1-06 .wl rect{fill:#FFFFFF;stroke:#DCE0E7}#dsfig-u1-06 .wl .t{font-size:12px;font-weight:700}#dsfig-u1-06 .wl.hi rect{fill:#2340B8;stroke:#2340B8}#dsfig-u1-06 .wl.hi .t{fill:#FFFFFF}html.dark #dsfig-u1-06 .e{stroke:#B1B7C3}html.dark #dsfig-u1-06 .e.hi{stroke:#8FA3FF}html.dark #dsfig-u1-06 .n{fill:#161920;stroke:#E6E8ED}html.dark #dsfig-u1-06 .n.hi{fill:#1E2748;stroke:#8FA3FF}html.dark #dsfig-u1-06 .n.rb-b{fill:#E6E8ED;stroke:#E6E8ED}html.dark #dsfig-u1-06 .n.rb-r{fill:#FF7E71;stroke:#FF7E71}html.dark #dsfig-u1-06 .t{fill:#E6E8ED}html.dark #dsfig-u1-06 .t.inv{fill:#0F1115}html.dark #dsfig-u1-06 .kd{stroke:#E6E8ED}html.dark #dsfig-u1-06 .dot{fill:#E6E8ED}html.dark #dsfig-u1-06 .ann{fill:#8FA3FF}html.dark #dsfig-u1-06 .lbl{fill:#858D9C}html.dark #dsfig-u1-06 .ptr{fill:#8FA3FF}html.dark #dsfig-u1-06 .ah{fill:#B1B7C3}html.dark #dsfig-u1-06 .ah.hi{fill:#8FA3FF}html.dark #dsfig-u1-06 .wl rect{fill:#161920;stroke:#2A2E37}html.dark #dsfig-u1-06 .wl.hi rect{fill:#8FA3FF;stroke:#8FA3FF}html.dark #dsfig-u1-06 .wl.hi .t{fill:#0F1115}</style><defs><marker id="ah6" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah" d="M0,1 L9,5 L0,9 z"/></marker><marker id="ahh6" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah hi" d="M0,1 L9,5 L0,9 z"/></marker></defs><path class="e" d="M59,40 L363,40" marker-end="url(#ah6)"/><path class="e" d="M384,59 L384,277" marker-end="url(#ah6)"/><path class="e" d="M365,298 L61,298" marker-end="url(#ah6)"/><path class="e" d="M40,279 L40,61" marker-end="url(#ah6)"/><circle class="n" cx="40" cy="40" r="18"/><text class="t" x="40" y="40" dy=".35em" text-anchor="middle">Obj</text><circle class="n" cx="384" cy="40" r="18"/><text class="t" x="384" y="40" dy=".35em" text-anchor="middle">Rsk</text><circle class="n" cx="384" cy="298" r="18"/><text class="t" x="384" y="298" dy=".35em" text-anchor="middle">Dev</text><circle class="n" cx="40" cy="298" r="18"/><text class="t" x="40" y="298" dy=".35em" text-anchor="middle">Pln</text></svg><figcaption style="font-size:.82em;opacity:.72;margin-top:.45rem">One loop of the spiral. Obj objective setting (planning), Rsk risk analysis, Dev development and testing (engineering), Pln customer evaluation and planning of the next loop; the radius grows with each loop</figcaption></figure>

Key points.

  1. Quadrant 1, objective setting, fixes the objectives, alternatives and constraints for the loop.
  2. Quadrant 2, risk analysis, identifies and resolves risks, using prototypes when needed.
  3. Quadrant 3, development and testing (engineering), builds and verifies the next-level product.
  4. Quadrant 4, evaluation and planning, has the customer review the result and plans the next loop.
  5. The first loops may be a concept document, then a requirements document, then design, and the last loop gives the delivered system.
  6. Advantages: strong risk handling, flexibility to change, early user feedback and suitability for large projects.
  7. Disadvantages: risk analysis needs expertise, it is costly, complex to manage, and it is unsuitable for small or low-risk projects.
  8. Iterative model in contrast repeats a whole development cycle to add increments without an explicit risk step.

Answer frame. Open with the definition; draw the four-quadrant loop with growing radius; explain quadrants 1-4 with their activities; give advantages and disadvantages; close with large, high-risk projects such as a defence system.

Asked: [7 marks] (May 2019, Nov 2023, Jun 2024) Explain software life cycle of spiral model and discuss activities in each phase; what is spiral model, explain with neat diagram. Asked: [7 marks] (Dec 2020) Explain iterative and spiral model of software development. Asked: [7 marks] (Jun 2024) Draw and explain the spiral model with its advantages and disadvantages.

Component Assembly Model

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>

Definition. <mark>The Component Assembly model is a spiral-like, evolutionary model that builds applications by assembling pre-built, reusable software components that interact through well-defined interfaces.</mark>

<figure class="ds-fig" style="margin:1.4rem 0;overflow-x:auto"><svg xmlns="http://www.w3.org/2000/svg" id="dsfig-u1-07" viewBox="0 0 596 80" width="596" height="80" role="img" aria-label="Component assembly. Idn identify, Qua qualify, Ada adapt, Asm assemble, Tst test components"><style>#dsfig-u1-07 .e{stroke:#454C5A;stroke-width:1.4;fill:none}#dsfig-u1-07 .e.hi{stroke:#2340B8;stroke-width:2.6}#dsfig-u1-07 .n{fill:#FFFFFF;stroke:#16181D;stroke-width:1.4}#dsfig-u1-07 .n.hi{fill:#E3E9FC;stroke:#2340B8;stroke-width:2.2}#dsfig-u1-07 .n.rb-b{fill:#16181D;stroke:#16181D}#dsfig-u1-07 .n.rb-r{fill:#BD3227;stroke:#BD3227}#dsfig-u1-07 text{font-family:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;font-size:13px}#dsfig-u1-07 .t{fill:#16181D;font-weight:500}#dsfig-u1-07 .t.inv{fill:#FFFFFF;font-weight:700}#dsfig-u1-07 .kd{stroke:#16181D;stroke-width:1.2}#dsfig-u1-07 .dot{fill:#16181D}#dsfig-u1-07 .ann{fill:#2340B8;font-size:11px;font-weight:700}#dsfig-u1-07 .lbl{fill:#6F7787;font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:700}#dsfig-u1-07 .ptr{fill:#2340B8;font-size:12px;font-weight:700}#dsfig-u1-07 .ah{fill:#454C5A}#dsfig-u1-07 .ah.hi{fill:#2340B8}#dsfig-u1-07 .wl rect{fill:#FFFFFF;stroke:#DCE0E7}#dsfig-u1-07 .wl .t{font-size:12px;font-weight:700}#dsfig-u1-07 .wl.hi rect{fill:#2340B8;stroke:#2340B8}#dsfig-u1-07 .wl.hi .t{fill:#FFFFFF}html.dark #dsfig-u1-07 .e{stroke:#B1B7C3}html.dark #dsfig-u1-07 .e.hi{stroke:#8FA3FF}html.dark #dsfig-u1-07 .n{fill:#161920;stroke:#E6E8ED}html.dark #dsfig-u1-07 .n.hi{fill:#1E2748;stroke:#8FA3FF}html.dark #dsfig-u1-07 .n.rb-b{fill:#E6E8ED;stroke:#E6E8ED}html.dark #dsfig-u1-07 .n.rb-r{fill:#FF7E71;stroke:#FF7E71}html.dark #dsfig-u1-07 .t{fill:#E6E8ED}html.dark #dsfig-u1-07 .t.inv{fill:#0F1115}html.dark #dsfig-u1-07 .kd{stroke:#E6E8ED}html.dark #dsfig-u1-07 .dot{fill:#E6E8ED}html.dark #dsfig-u1-07 .ann{fill:#8FA3FF}html.dark #dsfig-u1-07 .lbl{fill:#858D9C}html.dark #dsfig-u1-07 .ptr{fill:#8FA3FF}html.dark #dsfig-u1-07 .ah{fill:#B1B7C3}html.dark #dsfig-u1-07 .ah.hi{fill:#8FA3FF}html.dark #dsfig-u1-07 .wl rect{fill:#161920;stroke:#2A2E37}html.dark #dsfig-u1-07 .wl.hi rect{fill:#8FA3FF;stroke:#8FA3FF}html.dark #dsfig-u1-07 .wl.hi .t{fill:#0F1115}</style><defs><marker id="ah7" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah" d="M0,1 L9,5 L0,9 z"/></marker><marker id="ahh7" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path class="ah hi" d="M0,1 L9,5 L0,9 z"/></marker></defs><path class="e" d="M59,40 L148,40" marker-end="url(#ah7)"/><path class="e" d="M188,40 L277,40" marker-end="url(#ah7)"/><path class="e" d="M317,40 L406,40" marker-end="url(#ah7)"/><path class="e" d="M446,40 L535,40" marker-end="url(#ah7)"/><circle class="n" cx="40" cy="40" r="18"/><text class="t" x="40" y="40" dy=".35em" text-anchor="middle">Idn</text><circle class="n" cx="169" cy="40" r="18"/><text class="t" x="169" y="40" dy=".35em" text-anchor="middle">Qua</text><circle class="n" cx="298" cy="40" r="18"/><text class="t" x="298" y="40" dy=".35em" text-anchor="middle">Ada</text><circle class="n" cx="427" cy="40" r="18"/><text class="t" x="427" y="40" dy=".35em" text-anchor="middle">Asm</text><circle class="n" cx="556" cy="40" r="18"/><text class="t" x="556" y="40" dy=".35em" text-anchor="middle">Tst</text></svg><figcaption style="font-size:.82em;opacity:.72;margin-top:.45rem">Component assembly. Idn identify, Qua qualify, Ada adapt, Asm assemble, Tst test components</figcaption></figure>

Key points.

  1. A component is a self-contained unit with a defined interface, and composition joins components through those interfaces.
  2. Component identification selects candidate components from the library for the requirements.
  3. Qualification checks the interface, performance and fit of each candidate, and adaptation modifies those that do not fit.
  4. Assembly integrates the components into the architecture, and testing verifies the composed system.
  5. It gives strong reusability, shorter time and lower cost, but the product may not meet all needs and control over component evolution is lost.
Basis Component Assembly Spiral Incremental
Approach Assemble reusable parts Risk-driven loops Deliver features in increments
Reusability High Low Low
Risk handling Little Explicit risk analysis Little
Cost and time Low, short High Moderate
Suited to Component-rich domains Large risky projects Staged delivery

Answer frame. Open with the definition; draw the five-step diagram; explain the steps and one example such as a billing system from library components; add the comparison table for the model asked; close with the reuse benefit.

Asked: [7 marks] (Jun 2020) Discuss component assembly model and compare it to spiral model. Asked: [7 marks] (Jun 2023) What is component model in software engineering? Explain with neat diagram. Asked: [7 marks] (Jun 2025) What is the Component Assembly Model? How does it differ from the Incremental Model?

RUP

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Low weight</span>

Definition. The Rational Unified Process (RUP) is an iterative, use-case driven, architecture-centric process framework with four phases.

Key points.

  1. The four phases are inception (scope and business case), elaboration (architecture and risks), construction (building the product) and transition (delivery to users).
  2. Disciplines such as business modeling, requirements, analysis and design, implementation, test and deployment run through all phases in varying effort.
  3. Each phase has iterations, so RUP is iterative like the Spiral model, and it uses UML.
  4. Its advantages are early risk handling and adaptability; it suits large object-oriented projects.

Asked: [7 marks] (Nov 2023) Describe RUP and agile processes in detail.

Agileprocesses (Agile, Scrum, XP)

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Not asked since 2022</span>

Definition. Agile processes develop software in short iterations with close customer collaboration and quick response to change, as set out in the Agile Manifesto.

Key points.

  1. The Manifesto values individuals and interactions over processes, working software over documentation, customer collaboration over contracts, and responding to change over following a plan.
  2. Scrum uses sprints of two to four weeks, a product backlog, daily stand-ups and roles of product owner and scrum master.
  3. Extreme Programming (XP) uses pair programming, test-driven development, small releases and continuous integration.
  4. Agile suits projects with changing requirements and delivers working software frequently.

Software Process Customization and Improvement

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>

Definition. <mark>Process customization (tailoring) adapts a standard process to the size, type and risk of a particular project, while process improvement is the continuous enhancement of process capability through assessment and change.</mark>

Key points.

  1. Customization is needed because no single process fits every project; size, team, domain, risk and deadline differ.
  2. Steps are to select the base model, adapt activities and documents, define roles and responsibilities, and set review points and metrics.
  3. A small project may use a light Agile process with minimal documents, while a large safety-critical project uses a heavy, documented, review-driven process.
  4. Improvement follows a cycle of assess the current process, measure it, plan changes, apply them and re-assess.
  5. CMM supports this by giving five maturity levels and key process areas (KPAs) as the yardstick for improvement.

Answer frame. Open with the definition of customization; explain need, then steps 2-3 with the small-versus-large example; add the improvement cycle and link to CMM for the CMM question; close with "tailoring fits the process to the project".

Asked: [7 marks] (Jun 2022, Jun 2025) How do you customize the development of software process? Asked: [7 marks] (Jun 2025) Explain the purpose of process customization and improvement with reference to CMM.

CMM

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>

Definition. <mark>The Capability Maturity Model (CMM), from the SEI (Software Engineering Institute), is a five-level framework that measures the maturity of an organisation's software process and guides its improvement.</mark>

Level Name Characteristic
1 Initial Ad hoc, chaotic, depends on individuals
2 Repeatable Basic project management: planning, tracking, configuration management
3 Defined Documented, standard process across the organisation
4 Managed Process and product measured quantitatively
5 Optimizing Continuous improvement from feedback and new ideas

Key points.

  1. Each level except Level 1 has key process areas (KPAs), such as requirements management at Level 2 and defect prevention at Level 5.
  2. Organisations are assessed and placed at a level, then work up one level at a time.
  3. Higher levels give predictable schedules, fewer defects and better quality, so CMM is used to assess and raise software quality.
  4. An example: a company at Level 3 uses a common documented process on all projects, and moves to Level 4 by collecting metrics.

Answer frame. Open with the definition; draw the five-level staircase as the table; explain each level in a line; close with the link to quality and improvement.

Asked: [7 marks] (Dec 2020, Jun 2024) What is CMM? Discuss its various levels. Asked: [7 marks] (Jun 2024) Write about CMM and how it is used for software quality.

Product and Process Metrics

<span style="display:inline-block;padding:.16em .6em;border:1.5px solid currentColor;border-radius:999px;font-size:.68em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.75">Medium weight</span>

Definition. <mark>A software metric is a quantitative measure of a software product or process, used to estimate, control and improve quality and productivity.</mark>

Key points.

  1. Product metrics measure the software itself: size (LOC, function points), complexity (cyclomatic) and defect density.
  2. Process metrics measure the development process: effort, defects found per review, review effectiveness and delivery time.
  3. Lines of Code (LOC) counts source lines; defect density is defects per KLOC, so 15 defects in 30 KLOC is 0.5 per KLOC. It is easy to count but depends on language and style.
  4. Function Point (FP) measures functionality from the user's view and is language independent, but is subjective.

Formula. $UFP=\sum(\text{count}\times\text{weight})$ and $FP=UFP\times(0.65+0.01\sum F_i)$.

Example. EI 5x4, EO 4x5, EQ 3x4, ILF 2x10, EIF 1x7 gives $UFP=20+20+12+20+7=79$. With 14 factors averaging 3, $\sum F_i=42$, so $FP=79\times1.07=$ 84.53.

Answer frame. Open with the definition; describe LOC and FP with the example; add a product-versus-process table (object measured, purpose, example) if asked; close with limitations.

Asked: [7 marks] (May 2019, Jun 2023) Describe two metrics used to measure software; difference between product and process metric.

Last-minute revision

  • Software = programs + data + documentation; process = activities; product = deliverable.
  • SDLC: requirement, design, implementation, testing, maintenance.
  • Waterfall: sequential, no going back, late working product.
  • Prototyping types: throwaway, evolutionary, incremental, extreme.
  • RAD phases: business, data, process modeling, application generation, testing; 60 to 90 days.
  • Incremental: core first, then increments delivered.
  • Spiral (Boehm): objectives, risk analysis, development, planning; radius is cost.
  • Component assembly: identify, qualify, adapt, assemble, test.
  • RUP phases: inception, elaboration, construction, transition.
  • CMM levels: Initial, Repeatable, Defined, Managed, Optimizing.
  • $FP=UFP\times(0.65+0.01\sum F_i)$.

Memory hooks

  • Waterfall water only flows down; Spiral spins around risk.
  • RAD = 60 to 90 days, teams in parallel.
  • CMM: "I Really Do Make Improvements" (Initial, Repeatable, Defined, Managed, Optimizing).
  • RUP: "I Eat Cake Tonight" (Inception, Elaboration, Construction, Transition).
  • Component steps: I-Q-A-A-T.

Coverage checklist

  • Software Product and Process Characteristics: software, product vs process, characteristics, paradigm, process, crisis, development problems, SDLC.
  • Software Process Models: LinearSequential Model: Waterfall questions and process-model features.
  • Prototyping Model: techniques and model.
  • RAD Model: phases, uses, diagram.
  • Evolutionary Process Models likeIncremental Model: evolutionary model, incremental with merits.
  • Spiral Model: life cycle, iterative vs spiral, draw and explain.
  • Component Assembly Model: vs spiral, diagram, vs incremental.
  • RUP: RUP and agile.
  • Agileprocesses: RUP and agile question (Nov 2023).
  • Software Process customization and improvement: customize, with CMM.
  • CMM: levels, quality.
  • Product andProcess Metrics: two metrics, product vs process.
Go to where you left off?

Quick Add to Notes

Save questions, your own notes and screenshots into notes filed by unit. It takes a free account.

Create free account

Have an account? Log in