Unit 1: Process models
Software Engineering notes · PTU syllabus (PGCA1912)
On this page
- Unit summary
- Software and software engineering
- The software process
- Software engineering practice
- Software myths
- Prescriptive process models: an overview
- Waterfall model
- Incremental process models
- Evolutionary process models
- The spiral model
- The concurrent development model
- Specialised process models
- The Unified Process
- Personal and team process models
- Agile process models
- Key terms
- Quick revision
- Important questions
Unit summary
A software process gives structure to the creative work of building software. This unit covers the software process and engineering practice, software myths, prescriptive process models — waterfall, incremental, evolutionary and concurrent — specialised models — component-based, formal methods and aspect-oriented — the Unified Process and its phases, and personal and team process models.
After this unit you can
- Explain the software process, engineering practice and common myths
- Compare prescriptive process models
- Explain specialised process models
- Describe the Unified Process, PSP and TSP
PTU syllabus topics
- Introduction to the software process and engineering practice
- software development myths
- prescriptive process models (waterfall, incremental, evolutionary, concurrent)
- specialized models (component-based, formal methods, aspect-oriented)
- the unified process and its phases
- personal and team process models
Waterfall
Stable, clear requirements
Changes are costly
Incremental
Early partial delivery needed
Needs good planning
Evolutionary (spiral, prototyping)
Uncertain requirements, high risk
Complex to manage
Unified process
Large OO projects
Heavyweight
Topic 1
Software and software engineering
Software is a set of programs plus documentation and data that make it work. Unlike hardware, it does not wear out, but it deteriorates as changes introduce errors, and it is largely custom-built. Categories: system software, application software, engineering/scientific software, embedded software, product-line software, web and mobile apps, and AI software. Software engineering (IEEE) is the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software.
Topic 2
The software process
- Tools
Automated support for methods (CASE tools)
- Methods
How to do each task: analysis, design, coding, testing
- Process
The framework that holds the layers together
- Quality focus
The foundation of everything
The generic process framework has five activities: communication, planning, modelling, construction (coding and testing) and deployment, supported by umbrella activities such as project tracking, risk management, quality assurance and configuration management.
Topic 3
Software engineering practice
- 1Understand the problem
Communication and analysis
- 2Plan a solution
Modelling and design
- 3Carry out the plan
Code generation
- 4Examine the result
Testing and quality assurance
- The reason it all exists
- Provide value to users
- Keep it simple
- Designs as simple as possible
- Maintain the vision
- Consistent architecture
- What you produce, others will consume
- Write for maintainers
- Be open to the future
- Design for change
- Plan ahead for reuse
- Reduce cost
- Think
- Clear thought before action
Topic 4
Software myths
Management
"We have a book of standards, so we are fine." "If behind schedule, add more programmers."
Standards are often unused; adding people to a late project makes it later (Brooks's law)
Customer
"A general statement of objectives is enough to start coding." "Changes are easy because software is flexible."
Vague requirements cause failure; late changes cost far more
Practitioner
"Once the program works, our job is done." "The only deliverable is working code."
Most effort comes after delivery; documentation and models are also deliverables
Topic 5
Prescriptive process models: an overview
Waterfall
Sequential phases: requirements → design → code → test → deploy
Clear, stable requirements
Incremental
Delivers the product in working increments
Early partial delivery
Evolutionary: prototyping
Build a quick prototype to clarify requirements
Unclear requirements
Evolutionary: spiral
Iterative loops with risk analysis in each
Large, high-risk projects
Unified process
Iterative, use-case driven, architecture-centric
Object-oriented projects
Phases of the Unified Process: inception, elaboration, construction, transition (and production).
Exam tip
For the waterfall model, list its drawback clearly: working software appears late, and changing requirements are costly.
Topic 6
Waterfall model
- 1Requirements analysis and specification
- 2Design
- 3Coding and unit testing
- 4Integration and system testing
- 5Deployment and maintenance
- Advantages: simple, well-documented, easy to manage, suitable for stable requirements. Disadvantages: working software arrives late, changes are costly, risk is high, users see the product only at the end.
Topic 7
Incremental process models
- 1Increment 1
Core product with essential features delivered first
- 2Increment 2
More features added after customer feedback
- 3Increment 3
Further features
- 4Final increment
Complete product
- Each increment follows a mini-waterfall; useful when staff are limited or an early market release is needed. RAD (rapid application development) is a high-speed incremental model using component reuse and short cycles (60–90 days).
Topic 8
Evolutionary process models
- Advantages: clarifies unclear requirements, early user feedback, reduces risk of building the wrong product. Disadvantages: customers may mistake the prototype for the final system; quick-fix code may creep into the product.
Topic 9
The spiral model
- Proposed by Barry Boehm (1986); combines prototyping with the systematic waterfall approach and stresses risk analysis; each loop of the spiral is a phase.
Determine objectives
Objectives, alternatives and constraints
Identify and resolve risks
Risk analysis and prototyping
Develop and test
Build and verify the next-level product
Plan the next iteration
Review with the customer and plan
- Advantages: risk-driven, suits large and high-risk projects, changes accommodated. Disadvantages: complex, costly, needs risk-assessment expertise, not for small projects.
Topic 10
The concurrent development model
- Activities (communication, modelling, construction) exist simultaneously, each in a state — inactive, under development, awaiting changes, under review, baselined or done. Events (such as a requirements change) trigger transitions. It reflects real projects in which several activities proceed in parallel, and suits client–server and web systems.
Topic 11
Specialised process models
Component-based development
Build systems by assembling reusable commercial-off-the-shelf (COTS) components: research, evaluate, integrate, test
Reduces cost and time; depends on availability and quality of components
Formal methods model
Mathematical specification and verification of software (cleanroom software engineering)
Defect-free safety-critical systems — avionics, medical devices; costly and needs expertise
Aspect-oriented development
Separates cross-cutting concerns (security, logging, transactions) into aspects woven into the code
Cleaner modules; tools and methods still maturing
Topic 12
The Unified Process
- A use-case driven, architecture-centric, iterative and incremental process created by Jacobson, Booch and Rumbaugh, using UML.
- 1Inception
Business case, scope, initial use cases, risks
- 2Elaboration
Refine use cases, baseline the architecture, plan construction
- 3Construction
Build and test components iteratively
- 4Transition
Beta testing, user training, deployment
- 5Production
Monitor use, provide support, handle defects
- Work products: vision document, use-case model, analysis and design models, software architecture description, test cases, deployment plan.
Topic 13
Personal and team process models
Focus
Individual engineer's discipline
Self-directed teams of 3–20 engineers
Activities
Planning, high-level design, design review, development, postmortem
Launch, high-level design, implementation, integration and test, postmortem
Measures
Time, size, defects per phase
Team goals, roles, quality plans, earned value
Aim
Better estimates and fewer defects
Predictable, high-quality team output
- Both were developed by Watts Humphrey at the SEI.
Topic 14
Agile process models
Agility is the ability to respond to change quickly. The Agile Manifesto values individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan.
- Extreme Programming (XP): user stories, small releases, pair programming, test-first development, continuous integration, refactoring and simple design.
- Scrum: work is done in sprints (usually 2–4 weeks). Roles: Product Owner, Scrum Master, Development Team. Artefacts: product backlog, sprint backlog, increment. Events: sprint planning, daily stand-up, sprint review and retrospective.
Planning
Detailed up front
Incremental, each iteration
Documentation
Heavy
Light
Change
Costly
Welcomed
Customer involvement
At the start and end
Continuous
Suits
Safety-critical, large regulated systems
Fast-changing products
Key terms
- Software process
- Framework of activities for building software
- Software myth
- Misleading belief about software development
- Incremental model
- Delivering software in functional increments
- Component-based development
- Building systems from reusable components
- Unified Process
- Use-case driven, iterative process using UML
Quick revision
- Layered technology; five framework activities; umbrella activities.
- Polya's practice; Hooker's principles; management, customer and practitioner myths.
- Waterfall, incremental (RAD), prototyping, spiral, concurrent.
- Component-based, formal methods (cleanroom), aspect-oriented.
- UP phases: inception, elaboration, construction, transition, production; PSP and TSP; agile methods.
Important exam questions
Practice questions written to the PTU exam pattern for this unit's syllabus: short answers (Section A style) and long answers (Sections B and C style).
Short-answer questions
- Q1.Name the five generic framework activities.
- Q2.State one management myth and its reality.
- Q3.When is the incremental model suitable?
- Q4.What is the concurrent development model?
- Q5.What is an aspect in aspect-oriented development?
- Q6.Name the phases of the Unified Process.
Long-answer questions
- Q1.Explain the software process and software engineering practice.
- Q2.Explain software myths with their realities.
- Q3.Compare the waterfall, incremental, evolutionary and concurrent models.
- Q4.Explain specialised process models and the Unified Process.
Stuck on this unit?
Message SBS on WhatsApp for help with Software Engineering, or to ask about studying M.Sc IT at Synetic.
