0% found this document useful (0 votes)
16 views57 pages

Chapter 2

Chapter 2 discusses software processes, which are structured activities necessary for software development, including specification, design, validation, and evolution. It contrasts plan-driven and agile processes, highlighting various models like the waterfall and incremental development, and emphasizes the importance of adapting to changing customer requirements. Additionally, it covers reuse-oriented software engineering, prototyping, and the Rational Unified Process (RUP), illustrating the complexities of software development in both small and large programming contexts.

Uploaded by

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

Chapter 2

Chapter 2 discusses software processes, which are structured activities necessary for software development, including specification, design, validation, and evolution. It contrasts plan-driven and agile processes, highlighting various models like the waterfall and incremental development, and emphasizes the importance of adapting to changing customer requirements. Additionally, it covers reuse-oriented software engineering, prototyping, and the Rational Unified Process (RUP), illustrating the complexities of software development in both small and large programming contexts.

Uploaded by

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

CHAPTER 2 –

SOFTWARE
PROCESS
Software
Processes
The software process

• A structured set of activities required to develop a software system.


• Many different software processes but all involve:
• Specification – defining what the system should do;
• Design and implementation – defining the organization of the system and
implementing the system;
• Validation – checking that it does what the customer wants;
• Evolution – changing the system in response to changing customer needs.
• A software process model is an abstract representation of a process. It
presents a description of a process from some particular perspective.

Chapter 2 Software Processes 3


Software process descriptions

• Process descriptions may also include:


• Products - outcomes of a process activity.
• Roles - reflect the responsibilities of the people involved in the process.
• Pre-and post-conditions - statements that are true before and after a
process activity has been enacted or a product produced.

Chapter 2 Software Processes 4


Plan
Driven
vs
Agile
Plan-driven processes are processes
where all of the process activities are
planned in advanced and progress is
Plan-driven measured against this plan.

and agile
processes In agile processes, planning is
incremental and it is easier to change
the process to reflect changing
customer requirements.

Chapter 2 Software Processes 6


Software process models

• The waterfall model


• Plan-driven model. Separate and distinct phases of specification and development.
• Incremental development
• Specification, development and validation are interleaved. May be plan-driven or
agile.
• Reuse-oriented software engineering
• The system is assembled from existing components. May be plan-driven or agile.
• In practice, most large systems are developed using a process that incorporates elements
from all of these models.

Chapter 2 Software Processes 7


Waterfall
model
The waterfall
model

Chapter 2 Software Processes 9


Waterfall model problems

• Inflexible partitioning of the project into distinct stages makes it difficult to


respond to changing customer requirements.
• Therefore, this model is only appropriate when the requirements are
well-understood and changes will be fairly limited during the design process.
• Few business systems have stable requirements.
• The waterfall model is mostly used for large systems engineering projects where
a system is developed at several sites.
• In those circumstances, the plan-driven nature of the waterfall model helps
coordinate the work.

Chapter 2 Software Processes 10


Incrementa
l
Developme
nt
Incremental
developmen
t

Chapter 2 Software Processes 12


Incremental development benefits
The cost of accommodating changing customer requirements is reduced.

It is easier to get customer feedback on the development work that has


been done.

More rapid delivery and deployment of useful software to the customer is


possible.

Chapter 2 Software Processes 13


The process is not visible.
Incremental
development
problems System structure tends to
degrade as new increments are
added.

Chapter 2 Software Processes 14


Reuse
Software
Engineerin
g
Reuse-oriented software engineering

• Based on systematic reuse where systems are integrated from existing


components or COTS (Commercial-off-the-shelf) systems.
• Process stages
• Component analysis;
• Requirements modification;
• System design with reuse;
• Development and integration.
• Reuse is now the standard approach for building many types of business
system

Chapter 2 Software Processes 16


17

Reuse-oriented Software Engineering

Chapter 2 Software Processes


Types of software component

01 02 03
Web services that are Collections of objects Stand-alone software
developed according to that are developed as a systems (COTS) that
service standards and package to be are configured for use
which are available for integrated with a in a particular
remote invocation. component framework environment.
such as .NET or J2EE.

Chapter 2 Software Processes 18


Process
Activities
Process activities

• Real software processes are inter-leaved sequences of technical,


collaborative and managerial activities with the overall goal of specifying,
designing, implementing and testing a software system.
• The four basic process activities of specification, development, validation
and evolution are organized differently in different development
processes. In the waterfall model, they are organized in sequence,
whereas in incremental development they are inter-leaved.

Chapter 2 Software Processes 20


Feasibility study
The process of establishing
what services are required
and the constraints on the
system’s operation and
development.
Requirements elicitation
and analysis

Software Requirements engineering


process
specification Requirements specification

Requirements validation

Chapter 2 Software Processes 21


The
requirements
engineering
process

Chapter 2 Software Processes 22


23

Software design and implementation

The process of
converting the system
Software design Implementation
specification into an
executable system.

Design a software Translate this structure


structure that realises into an executable
the specification; program;

Chapter 2 Software Processes


A general
model of the
design
process

Chapter 2 Software Processes 24


Design activities

Architectural design, where you identify the overall structure of the system, the principal components
(sometimes called sub-systems or modules), their relationships and how they are distributed.

Interface design, where you define the interfaces between system components.

Component design, where you take each system component and design how it will operate.

Database design, where you design the system data structures and how these are to be represented in a
database.

Chapter 2 Software Processes 25


Software
Validation
and
Testing
Software validation
Verification and validation (V & V)
is intended to show that a system
Involves checking and review
conforms to its specification and
processes and system testing.
meets the requirements of the
system customer.

System testing involves executing


the system with test cases that
Testing is the most commonly
are derived from the specification
used V & V activity.
of the real data to be processed
by the system.

Chapter 2 Software Processes 27


Development or component testing

• Individual components are tested independently;


• Components may be functions or objects or
coherent groupings of these entities.

Testing System testing

stages • Testing of the system as a whole. Testing of


emergent properties is particularly important.

Acceptance testing

• Testing with customer data to check that the


system meets the customer’s needs.

Chapter 2 Software Processes 28


Testing phases in a plan-driven software process

Chapter 2 Software Processes 29


Software evolution

• Software is inherently flexible and can change.


• As requirements change through changing business circumstances, the
software that supports the business must also evolve and change.

Chapter 2 Software Processes 30


Software
Prototypin
g
A prototype is an initial The requirements
version of a system used to engineering process to help
demonstrate concepts and with requirements
try out design options. elicitation and validation;

Software A prototype can be used in:


In design processes to
explore options and

prototyping develop a UI design;

In the testing process to run


back-to-back tests.

Chapter 2 Software Processes 32


Improved system usability.

A closer match to users’ real needs.

Benefits of Improved design quality.


prototyping
Improved maintainability.

Reduced development effort.

Chapter 2 Software Processes 33


34

The Process of Prototype Development

Chapter 2 Software Processes


May be based on rapid prototyping languages or tools

Prototype May involve leaving out functionality

developmen • Prototype should focus on areas of the product that are not
well-understood;

t • Error checking and recovery may not be included in the prototype;


• Focus on functional rather than non-functional requirements such as
reliability and security

Chapter 2 Software Processes 35


Throw-away prototypes

• Prototypes should be discarded after development as they are not a good


basis for a production system:
• It may be impossible to tune the system to meet non-functional
requirements;
• Prototypes are normally undocumented;
• The prototype structure is usually degraded through rapid change;
• The prototype probably will not meet normal organisational quality
standards.

Chapter 2 Software Processes 36


Incremental
Development And
Incremental
Delivery
Incremental delivery

• Rather than deliver the system as a single delivery, the development and
delivery is broken down into increments with each increment delivering
part of the required functionality.
• User requirements are prioritised and the highest priority requirements
are included in early increments.
• Once the development of an increment is started, the requirements are
frozen though requirements for later increments can continue to evolve.

Chapter 2 Software Processes 38


Incremental development

• Develop the system in increments and


evaluate each increment before proceeding to
the development of the next increment;
• Normal approach used in agile methods;
Incremental • Evaluation done by user/customer proxy.

development Incremental delivery


and delivery • Deploy an increment for use by end-users;
• More realistic evaluation about practical use of
software;
• Difficult to implement for replacement
systems as increments have less functionality
than the system being replaced.

Chapter 2 Software Processes 39


Incremental delivery

Chapter 2 Software Processes 40


Customer value can be delivered with
each increment so system functionality
is available earlier.

Incremental Early increments act as a prototype to


help elicit requirements for later
delivery increments.

advantages
Lower risk of overall project failure.

The highest priority system services


tend to receive the most testing.

Chapter 2 Software Processes 41


42

Incremental delivery problems

Hard to identify Conflicts with the


Difficult to get useful customer
common facilities that are procurement model of
feedback
needed by all increments many organizations

Chapter 2 Software Processes


BOEHM’s
Spiral
Model
Boehm’s Spiral Model of the software
process

Chapter 2 Software Processes 44


Objective setting

Spiral Risk assessment and reduction

model
sectors Development and validation

Planning

Chapter 2 Software Processes 45


Spiral model usage

Spiral model has been very


influential in helping people think
In practice, however, the model
about iteration in software
is rarely used as published for
processes and introducing the
practical software development.
risk-driven approach to
development.

Chapter 2 Software Processes 46


RUP
The Rational Unified Process
A modern generic process derived from the work on the UML and
associated process.

Brings together aspects of the 3 generic process models discussed


previously.

A dynamic perspective that shows phases over time;


Normally described from 3 A static perspective that shows process activities;
perspectives A practice perspective that suggests good practice.

Chapter 2 Software Processes 48


Inception

Elaboration

RUP phases
Construction

Transition

Chapter 2 Software Processes 49


RUP iteration

In-phase Cross-phase
iteration iteration
Chapter 2 Software Processes 50
Workflow Description
Business modelling The business processes are modelled using
business use cases.

Static Requirements Actors who interact with the system are


identified and use cases are developed to
workflows in model the system requirements.
the Rational Analysis and design A design model is created and documented
using architectural models, component
Unified models, object models and sequence models.
Process
Implementation The components in the system are
implemented and structured into
implementation sub-systems. Automatic code
generation from design models helps
accelerate this process.

Chapter 2 Software Processes 51


Workflow Description
Testing Testing is an iterative process that is carried
out in conjunction with implementation.
System testing follows the completion of the
implementation.
Static Deployment A product release is created, distributed to
workflows in users and installed in their workplace.
the Rational Configuration This supporting workflow managed changes
and change to the system.
Unified management
Process Project This supporting workflow manages the system
management development.
Environment This workflow is concerned with making
appropriate software tools available to the
software development team.

Chapter 2 Software Processes 52


RUP work
products

Chapter 2 Software Processes 53


RUP good practice

1 2 3 4 5 6
Develop Manage Use Visually model Verify software Control changes
software requirements component-base software quality to software
iteratively d architectures

Chapter 2 Software Processes 54


Small
Programming
vs
Large
Programming
Programming in the small vs.
Programming in the large

• Programming in the small is a single-person


activity concerned with the development of
single-version software which is both specified
and meant to be used by the person who
develops it.

• Programming in the large is a multi-person


activity concerned with the development of
multi-version software which is both specified
and meant to be used by people other than the
team who develops it.

Chapter 2 Software Processes 56


Differences between programming in the large and
programming in the small

programming in the small is a personal endeavour, while


programming in the large is a collective one;

programming in the small requires no communication between


developers, while programming in the large does;

software resulting from programming in the small is a one-off stable


product, while software resulting from programming in the large is
expected to undergo many changes.
Chapter 2 Software Processes 57

You might also like