Software Process Models: Understanding Sequential, Iterative, and Incremental Approaches, Study notes of Software Engineering

An overview of software process models, focusing on three categories: sequential (Waterfall), iterative, and incremental. It explains the phases and deliverables of each model, their strengths and weaknesses, and when to use them. The document also introduces the concept of process models and their role in software development.

Typology: Study notes

2021/2022

Uploaded on 07/12/2022

syed-muneeb-shah
syed-muneeb-shah 🇵🇰

1 document

1 / 39

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Lecture 02
Process Models
Software Engineering
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27

Partial preview of the text

Download Software Process Models: Understanding Sequential, Iterative, and Incremental Approaches and more Study notes Software Engineering in PDF only on Docsity!

Lecture 02

Process Models

Software Engineering

 To introduce software process models  To describe three generic process models and when they may be used  To describe outline process models for requirements engineering, software development, testing and evolution

Objectives

The Software Process (Simplified)

Requirements Operation and Maintenance Implementation Design Feasibility and Planning

 Project Management  Requirement Engineering  Design  Coding  Testing  Software Quality Assurance  Software Configuration Management  Software Integration  Rest of the activities

Software Development Activities

Fundamental Assumption:  Good processes lead to good software  Good processes reduce risk  Good processes enhance visibility  Good processes enable teamwork  Variety of Software Processes  (^) Software products are very varied. Therefore, there is no standard process for all software engineering projects  (^) BUT successful software development projects always need to address similar issues. This creates a number of process steps that should be part of all software projects.

Software Process

 A feasibility study precedes the decision to begin a project.  What is the scope of the proposed project?  Is the project technically feasible?  What are the projected benefits?  What are the costs, Numerable?  Are the resources available?  What are the risks and how can they be managed?  A feasibility study leads to a decision: go or no-‐go.

Process Step: Feasibility

This step is occasionally divided into:

  • **Requirements Gathering
  • Requirements Analysis
  • Requirements Definition
  • Requirements Specification**  The requirements may be developed in a limited manner , or may emerge incrementally.  Failure to agree on the requirements and define them adequately is one of the biggest cause of software projects failing.

Process Step: Requirements

 (^) Design describes the system from the software developers' viewpoint  System design:  (^) Establish a system architecture, both hardware and software, that matches the requirements  Program design:  (^) Represent the software functions in a form that can be transformed into one or more executable programs  Preliminary user testing is often carried out as part of the design step.  Models are used to represent the requirements, system architecture, and program design.

Process Step: System Design

Acceptance testing

 The system is tested against the requirements by the client, often with selected customers and users. 

Delivery and release

 After successful acceptance testing, the system is delivered to the client and released into production or marketed to customers. Process Step: Acceptance and Release

 Operation: The system is put into practical use.  Maintenance: Errors and problems are identified and fixed.  (^) Evolution: The system evolves over time as requirements change, to add new functions, or adapt to a changing technical environment.  (^) Phase out: The system is withdrawn from service.  This is called the Software Life Cycle Process Step: Operation and Maintenance

 In a heavyweight process, the development team works through the process steps slowly and systematically, with the aim of fully completing each process step and deliverables for that step that will need minimal changes and revision.  Example: Modified Waterfall Model  (^) In a lightweight process, the development team releases working software in small increments, and develops the plans incrementally, based on experience. Each increment includes all the process steps. There is an expectation that changes will be made based on experience.  Example: Agile Software Development Heavyweight and Lightweight Software Development

Deliverables  A deliverable is some work product that is delivered to the client.  In a heavyweight process, each process step creates a deliverable, usually documentation, e.g., a requirements specification.  In a lightweight process, the deliverables are incremental working code, with minimal supporting documentation.

Deliverables

A simplified representation of a software process, presented from a specific perspective ”.Generic process models: ◦ (^) Waterfall ◦ (^) Evolutionary development ◦ (^) Component-based software engineering ◦ (^) Iterative development

What is a Software Process Model?

Perspective Process Models ◦ (^) The Waterfall Model ◦ (^) Incremental Process Models ◦ (^) V-Shaped Model ◦ (^) Evolutionary Process Models  (^) Prototyping  (^) The Spiral Model ◦ (^) Concurrent Models  Specialized Process Models ◦ (^) Component-Based Development ◦ (^) The Formal Methods Model ◦ (^) Aspect-Oriented Software Development

Process Models