0% found this document useful (0 votes)
17 views15 pages

Chapter Two Notes Software Engineering

Uploaded by

dixepa8470
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views15 pages

Chapter Two Notes Software Engineering

Uploaded by

dixepa8470
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Chapter two notes Software Engineering

BY Vik

Chapter 2 — Software Processes (Ian Sommerville, Software Engineering,


10th ed.) — Detailed Notes & Comparative Analysis
Source: chapter 2 of Sommerville’s Software Engineering, 10th ed. (Chapter
objective, models, process activities, coping with change, process
improvement).
Sommerville-Software-Engineerin…
Sommerville-Software-Engineerin…

Chapter Overview
 Core theme: Chapter 2 introduces the idea of a software process (a
coherent set of activities that leads to the production of a software
system), presents several general process models/paradigms (waterfall,
incremental, integration/configuration, and universal variants such as
RUP), discusses process activities (specification, development,
validation, evolution), examines how processes can cope with change
(prototyping, incremental delivery), and outlines process improvement
and maturity ideas.
Sommerville-Software-Engineerin…
Sommerville-Software-Engineerin…

Key Learning Objectives (as stated by Sommerville)


After studying this chapter you should be able to:
 Understand what a software process and process model are.
Sommerville-Software-Engineerin…
 Describe three general software process models and when they are
appropriate.
Sommerville-Software-Engineerin…
 Name and explain the fundamental process activities: requirements
engineering, development, validation, and evolution.
Sommerville-Software-Engineerin…
 Appreciate how processes can be structured to cope with change (e.g.,
prototyping, incremental delivery).
Sommerville-Software-Engineerin…
 Understand basic ideas of process improvement and process maturity.
Sommerville-Software-Engineerin…

Comparative Analysis of Major Process Models (per Chapter 2)


Note: Sommerville treats models as frameworks that capture different ways to
organize activities; real projects often mix features of several models.
Sommerville-Software-Engineerin…

1. Waterfall Model
Phases / workflow
 Typical cascade: requirements specification → system/software design →
implementation → integration & testing → deployment (operation) →
maintenance. Each phase is intended to finish before the next starts (the
classic “cascade”).
Sommerville-Software-Engineerin…
Key characteristics
 Plan-driven: heavy up-front planning, documentation, defined
deliverables and reviews.
 Linear flow of activities, strong emphasis on specification before
implementation.
Sommerville-Software-Engineerin…
When to use (applications & context)
 Best for: safety-critical systems, embedded systems with tight HW
interfaces, very large multi-organization projects where contractual specs
are needed.
Sommerville-Software-Engineerin…
 Poor fit for: systems with rapidly changing or unclear requirements
(business/web apps).
Sommerville-Software-Engineerin…
Advantages
 Clear milestones and documentation (good for contracts and
certification).
Sommerville-Software-Engineerin…
Disadvantages
 Inflexible to late changes; late discovery of integration / requirement
errors can be costly.
Sommerville-Software-Engineerin…

2. Incremental Development (including Incremental Delivery)


Phases / workflow
 Develop the system as a sequence of increments (versions). Each
increment delivers a subset of functionality; specification, development
and validation are interleaved for each increment. Customers get early
working software and give feedback that shapes later increments.
Sommerville-Software-Engineerin…
Key characteristics
 Mixes specification/development/validation; supports change tolerance
and change anticipation.
 Can be plan-driven (predefined increments) or agile (early increments
defined, later ones emergent).
Sommerville-Software-Engineerin…
When to use
 Best for business applications and product development where
requirements evolve; where delivering early value is important. Not ideal
when you must replace an existing system all-at-once.
Sommerville-Software-Engineerin…
Advantages
 Reduced cost for requirement changes, early customer feedback,
delivers value early.
Sommerville-Software-Engineerin…
Disadvantages
 Hard to identify common facilities shared across increments; contracts
and procurement may not fit incremental delivery easily.
Sommerville-Software-Engineerin…

3. Integration & Configuration (Reuse-Oriented Development)


Phases / workflow
 Focus on discovery, evaluation, configuration, adaptation, and
integration of reusable components, COTS, web services or frameworks.
The process includes requirements refinement based on component
availability. See Figure 2.3 in the book (reuse-oriented model).
Sommerville-Software-Engineerin…
Key characteristics
 Emphasizes buy/assemble rather than build; requirement negotiation
around available components.
Sommerville-Software-Engineerin…
When to use
 Best for systems where mature components exist (e.g., enterprise apps,
many business systems). Useful when time-to-market and cost reduction
are priorities.
Sommerville-Software-Engineerin…
Advantages
 Faster delivery, lower development cost, less custom code.
Sommerville-Software-Engineerin…
Disadvantages
 Compromises on requirements may be required; dependency on third-
party upgrades and lifecycle.
Sommerville-Software-Engineerin…

4. Spiral Model (Risk-Driven Iteration)


Phases / workflow
 Iterative cycles (spiral loops). Each loop addresses a set of objectives
(e.g., feasibility, requirements, design) and explicitly includes risk
analysis & mitigation. Developed by Boehm.
Sommerville-Software-Engineerin…
Key characteristics
 Risk-first, iterative, flexible; each iteration produces a plan for the next
based on resolved risks.
Sommerville-Software-Engineerin…
When to use
 Complex, high-risk projects where risk analysis is essential (e.g., large
systems with uncertain performance or integration issues).
Sommerville-Software-Engineerin…
Advantages
 Explicit risk management, flexible response to uncertainties.
Sommerville-Software-Engineerin…
Disadvantages
 Can be costly and heavyweight if risks are not managed well; requires
experienced managers.
Sommerville-Software-Engineerin…

5. Rational Unified Process (RUP) — a “Universal” Model


Phases / workflow
 Four time-boxed phases: Inception → Elaboration → Construction →
Transition. RUP is iterative and supports prototyping and incremental
delivery. It can be instantiated to look like various other models.
Sommerville-Software-Engineerin…
Key characteristics
 Configurable, practice-oriented, encourages iterations, architectural
focus early (elaboration).
Sommerville-Software-Engineerin…
When to use
 Large organizations that want a structured but iterative model; where
architectural risk must be reduced early.
Sommerville-Software-Engineerin…
Advantages
 Flexible, supports iterative development while keeping architectural
focus.
Sommerville-Software-Engineerin…
Disadvantages
 Can be bureaucratic if over-instantiated; adoption overhead.
Sommerville-Software-Engineerin…

6. Prototyping (Rapid Prototyping)


Phases / workflow
 Build a rapid executable prototype, evaluate with users, refine
requirements/design, possibly iterate. Prototype objectives must be
explicit (UI exploration, requirements validation, architecture
experiments).
Sommerville-Software-Engineerin…
Key characteristics
 Fast iterations, excellent for eliciting/validating requirements (especially
UIs).
Sommerville-Software-Engineerin…
When to use
 Early requirements elicitation, user-interface design, feasibility studies.
Sommerville-Software-Engineerin…
Advantages
 Reveals hidden requirements, reduces risk of misunderstanding users;
supports change anticipation.
Sommerville-Software-Engineerin…
Disadvantages
 Prototype may be mistaken for production system; non-functional
requirements are often ignored in prototypes.
Sommerville-Software-Engineerin…

7. Agile Methods (brief chapter-2 perspective; detailed in Chapter 3)


 Sommerville notes the difference between plan-driven and agile
approaches; agile planning is incremental and continuous, making it
easier to cope with evolving requirements. Chapter 3 covers agile
methods in detail (Scrum, XP, practices).
Sommerville-Software-Engineerin…
Sommerville-Software-Engineerin…
High-level characteristics
 Short iterations, frequent delivery, strong customer involvement, light
documentation, emphasis on working software and refactoring. (See
Chapter 3.)
Sommerville-Software-Engineerin…
When to use
 Business systems and product development with changing requirements
and where rapid feedback is valuable.
Sommerville-Software-Engineerin…

8. DevOps — Note: not a core model in Chapter 2, but a modern


delivery/culture complement
Sommerville’s Chapter 2 does not present DevOps as one of the canonical SDLC
models; DevOps is a contemporary cultural/practical movement that bridges
development and operations, supporting continuous delivery and automated
deployment. (See Chapter map — Agile is Chapter 3; DevOps is a modern
complement outside the classical chapter-2 models.)
Sommerville-Software-Engineerin…
Short modern definition & principles (external sources):
 DevOps = cultural philosophies + practices + tools to improve
collaboration between development and operations and to deliver
software at higher velocity via automation (CI/CD, infra-as-code,
monitoring). atlassian.com+2Amazon Web Services, Inc.+2
When to use
 Systems where rapid, frequent deployment and operational automation
are required (web services, SaaS, cloud-native apps). Amazon Web
Services, Inc.+1

Advantages & Disadvantages — Quick Comparison Tables


Each mini-table below is summarized from Chapter 2 discussions (book
citations) — Agile/DevOps notes include external citations where indicated.
Waterfall

Pros Cons

Inflexible to change; late


Clear milestones, documentation, fits
discovery of issues costly.
regulatory/contractual needs.
Sommerville-Software-
Sommerville-Software-Engineerin…
Engineerin…
Incremental

Pros Cons

Early value, easier to incorporate


Hard to identify common facilities;
changes, user feedback informs
procurement/contracts can conflict with
subsequent increments.
incremental specs.
Sommerville-Software-
Sommerville-Software-Engineerin…
Engineerin…
Integration / Reuse
Pros Cons

Faster delivery, lower cost


May require requirements compromise;
due to reuse.
version/upgrade dependencies.
Sommerville-Software-
Sommerville-Software-Engineerin…
Engineerin…
Spiral

Pros Cons

Strong risk management;


Can be complex & costly; needs experienced
flexible.
managers.
Sommerville-Software-
Sommerville-Software-Engineerin…
Engineerin…
RUP

Pros Cons

Potential bureaucracy if over-


Iterative with architectural emphasis;
used.
configurable.
Sommerville-Software-
Sommerville-Software-Engineerin…
Engineerin…
Prototyping

Pros Cons

Great for UI and early


Risk that prototype is treated as production; non-
requirements validation.
functional requirements often ignored.
Sommerville-Software-
Sommerville-Software-Engineerin…
Engineerin…
Agile (high-level)

Pros Cons

High responsiveness, Less suitable where exhaustive


customer feedback, rapid documentation/specification is required (e.g.,
delivery. some safety-critical systems).
Pros Cons

Sommerville-Software-
Sommerville-Software-Engineerin…
Engineerin…
DevOps (modern)

Pros Cons

Speeds delivery through automation Cultural & tooling change required;


& collaboration; improves operations security/ governance must be
feedback loop. Amazon Web Services, integrated (DevSecOps). AWS
Inc.+1 Documentation+1

Fundamental Differences: Plan-driven vs Agile (Sommerville’s framing)


 Plan-driven (e.g., waterfall): emphasis on up-front planning,
documentation and measuring progress against plan. Favoured where
regulatory, contractual, or safety needs demand traceability and
predictability.
Sommerville-Software-Engineerin…
 Agile: emphasis on incremental planning, continuous customer
feedback, rapid delivery and adaptability. Planning occurs continuously;
less overhead and documentation by design.
Sommerville-Software-Engineerin…
 Trade-off: plan-driven gives predictability and process maturity; agile
gives responsiveness and reduced rework for evolving requirements.
Sommerville highlights that projects often combine elements of both,
and the choice depends on system criticality, team skills, and the
environment.
Sommerville-Software-Engineerin…

Underlying Principles Governing These Processes (why they differ)


 Iteration: building the system in cycles (spiral, RUP, incremental, agile)
reduces risk and allows progressive refinement.
Sommerville-Software-Engineerin…
 Customer involvement / feedback loops: early and frequent customer/
stakeholder feedback reduces the risk of delivering the wrong product
(prototyping & incremental delivery).
Sommerville-Software-Engineerin…
 Risk management: explicit in spiral and RUP (elaboration focuses on
architecture & risk reduction).
 Reuse and configuration: an engineering approach that leverages
available components to reduce cost/time (integration/configuration
model).
Sommerville-Software-Engineerin…
 Measurement & improvement: process improvement cycles (measure
→ analyze → change) and maturity models (CMM/CMMI) guide long-
term process quality improvement.
Sommerville-Software-Engineerin…

Process Activities (the “what” that all models organize)


Sommerville lists four fundamental activities (common across models):
1. Specification — define system services, constraints, goals.
Sommerville-Software-Engineerin…
2. Development — design & implement the software.
Sommerville-Software-Engineerin…
3. Validation — test that the system meets its specification and user needs.
Sommerville-Software-Engineerin…
4. Evolution — maintain and adapt the system as requirements change.
Sommerville-Software-Engineerin…
Process Improvement & Maturity (Sommerville’s view)
 Two main approaches to improvement: process maturity (SEI/CMM-
style — emphasize management, measurement and formal practices)
and agile-style improvement (reduce overheads, increase iteration and
responsiveness). Sommerville notes tension between these approaches
and that maturity programs are typically more applicable to large
organizations. The process improvement cycle is measure → analyze →
change.

Practical guidance / “How to choose a model” (Sommerville’s advice)


 Choose based on:
o System criticality (safety/security → lean to plan-driven/formal).
Sommerville-Software-Engineerin…
o Requirement volatility (high volatility → incremental/agile).
Sommerville-Software-Engineerin…
o Team & organizational capability (maturity, tooling, customer
availability).
Sommerville-Software-Engineerin…
o Procurement & contractual constraints (fixed-spec contracts push
toward plan-driven approaches).
Sommerville-Software-Engineerin…

Short Glossary (key terms from the chapter)


 Software process / SDLC: abstract representation of activities to produce
software.
Sommerville-Software-Engineerin…
 Plan-driven: process where activities are planned in advance; progress
measured against a plan.
Sommerville-Software-Engineerin…
 Incremental development: build system as a sequence of
versions/increments.
Sommerville-Software-Engineerin…
 Integration & configuration: build system by assembling and configuring
existing components.
Sommerville-Software-Engineerin…
 RUP: Rational Unified Process — iterative model with inception,
elaboration, construction, transition.
Sommerville-Software-Engineerin…
 Process improvement: measurement-driven effort to improve processes
(CMM/CMMI).
Sommerville-Software-Engineerin…

Chapter Summary — Core takeaways


1. There is no single universal process model; each model is a framework
suited to particular circumstances.
Sommerville-Software-Engineerin…
2. Waterfall gives predictability for critical or contract-bound projects;
incremental/iterative approaches give flexibility for changing
requirements and earlier delivery of value.
3. Prototyping and incremental delivery are two principal ways to cope
with change (anticipate vs tolerate).
4. Process improvement is essential and can follow a maturity-based or
agile-lightweight philosophy; the choice depends on organization size
and needs.
Sommerville-Software-Engineerin…
5. Modern practices (CI/CD, DevOps) complement these process models by
addressing deployment/operations concerns with automation and
cultural alignment (see short DevOps note below).

You might also like