You are on page 1of 28

Software Processes

Part 2

Paul Dunne GMIT

Software Processes

uA

set of activities [specifying, designing, implementing and testing software systems] and associated results [requirements spec., design document etc ] which lead to the production of a software product.

Paul Dunne GMIT

Objectives
u To

introduce software process models u To describe a number of different process models and when they may be used u To describe outline process models for requirements engineering, software development, testing and evolution u To introduce CASE technology to support software process activities

Paul Dunne GMIT

Topics covered
u Software

process models u Process iteration u Software specification u Software design and implementation u Software validation u Software evolution u Automated process support

Paul Dunne GMIT

The software process


u

A structured set of activities and associated results required to develop a software system
v Specification v Design v Validation v Evolution

Often companies will have an informal process or a mixed bag of different processes. There is a strong case to argue for process standardization (better communications, less training, process support improvement) A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. Each model only provides part of the information about that process.

Paul Dunne GMIT

Software Process models


Part 2 - Section 1

Paul Dunne GMIT

Ref : 3.1

Generic software process models

1.The waterfall model


Separate and distinct phases of specification and development

2.Evolutionary development
Specification and development are interleaved

3.Formal systems development


A mathematical system model is formally transformed to an implementation

4.Reuse-based development
The system is assembled from existing components

Paul Dunne GMIT

Generic Software Process Models(1)

Waterfall model
Requirements defi niti on Syst em and software design

Signed-off documentation

Freeze Requirments

Implement ation and uni t test ing Integr at ion and system testing Operation and maintenance

At this stage errors and omissions may require going back through some/all of the previous steps
Paul Dunne GMIT

Waterfall model phases


u u u u u

Requirements analysis and definition


Used to develop the specification

System and software design


Here you attempt to fulfill the requirements with H/W or S/W

Implementation and unit testing


Realize software design as a set of programs

Integration and system testing


Glue components together and very system meets requirements

Operation and maintenance


Can be the longest phase where problems are fixed or new functionality is added

This model is a simple management model which seperates design and implementation which can lead to more robust systems which are then more ameanable to change
Paul Dunne GMIT

Waterfall model problems


u The

drawback of the waterfall model is the difficulty of accommodating change after the process is underway u Inflexible partitioning of the project into distinct stages u This makes it difficult to respond to changing customer requirements which are a fact of life u Therefore, this model is only appropriate when the requirements are well-understood However this model is still extremely popular because of its links to the traditional engineering model, ease of management and tie in with traditional purchasing models!
Paul Dunne GMIT

Generic Software Process Models( 2)

Evolutionary development
u Develop

an initial implementation, expose this to the user and then refine the implementation and repeat the process until the system is acceptable. u Two types of evolutionaly developemnt
v Exploratory development (..and could it do.?) Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements. The system evolves by adding new features as the user proposes them. v Throw-away prototyping (is this what you want?) Objective is to understand the system requirements. Should start with poorly understood requirements. Consider this as a means to get to grips with what the user requires (may be very apt for User Interfaces)

Paul Dunne GMIT

Evolutionary development
Concurr ent activities Initial version

Specificat ion

Out li ne description

Development

Intermediate versions

Validat io n

Fi nal version

Paul Dunne GMIT

Evolutionary development
u u

Good for producing systems that meet the immediate needs of the user Problems
v Lack of process visibility Producing documentation is vital with any process but it is very difficult to do in the evolutionary development model (constant change). Management may be uncomfortable running blind v Systems are often poorly structured Continual change can easily corrupt a system. v Special skills (e.g. in languages for rapid prototyping) may be required

Applicability
v For small (<100K LOC) or medium-size (500K LOC) interactive systems Sommerville thinks this is the best approach. Possibly it could be used to pin down requirements and thereafter adopting a more structured approach (e.g. waterfall method) v For parts of large systems (e.g. the user interface) v For short-lifetime systems

Paul Dunne GMIT

Generic Software Process Models(3)

Formal systems development


u u

u u

Start with a software requirements specification. The software requirements specification is refined into a detailed (formal) mathematical specification (i.e. expressed in a mathematical notation). The mathematical specification is passed through a series of transformation (resulting in a number of different representations) to finally appear as an executable program Transformations are correctness-preserving so it is straightforward to show that the program conforms to its specification Embodied in IBMs Cleanroom approach to software development An approach like this, with a number of small steps, is very traceable.

Paul Dunne GMIT

Formal systems development

Mathematical
Requirements definition Formal specification Formal tran sformation Integratio n and system testing

Paul Dunne GMIT

Formal transformations
Selecting the correct Transformation is difficult!

Formal transformations T2 T3 T4

T1

Formal specification

R1

R2

R3

Executable program

math
P1 P2 P3 P4

Proofs of transformation correctness


R: Formal mathematical representation T: Transformation P: Proof of correctness

Paul Dunne GMIT

Formal systems development


u Problems v Need for specialised skills and training to apply the technique v Difficult to formally specify some aspects of the system such as the user interface (which is a large part of the development process for most software systems!) u Applicability v Critical systems especially those where a safety or security case must be made before the system is put into operation u Use v Outside specialised areas this process is not wide used.

Paul Dunne GMIT

Generic Software Process Models(4)

Reuse-oriented development
u Based

on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems u Process stages
v Component analysis v Requirements modification v System design with reuse v Development and integration u This

approach is becoming more important but still limited experience with it

Paul Dunne GMIT

Reuse-oriented development

Requirements specification

Component analysis

Requirements modification

System design with reuse

Development and integration

System validation

Paul Dunne GMIT

Generic to Hybrib
Section 2

Paul Dunne GMIT

From generic to hybrid


u Now

we will move on from the generic models to hybrid models which have been developed to address the problems in the real world.

Paul Dunne GMIT

Process Iteration (ref Chap 3.2)


u

u u

System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems Iteration can be applied to any of the generic process models Two (related) approaches
1. Incremental development 2. Spiral development

u u

The essence of iterative processes is that the specification is developed in conjunction with the software. Process iteration can cause problems within organizations that are fixed into a traditional procurement model where the specification forms the contract and is required before work begins.

Paul Dunne GMIT

Approach (1)

Incremental development
u Incremental

hopes to combine the best of waterfall process and evolutionary process. u 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 u User requirements are prioritised and the highest priority requirements are included in early increments u Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve

Paul Dunne GMIT

Incremental development
Identify Services to be provided Prioritize Services Define Delivery Increments

Highest priority services assigned to initial increments

Define Requirements in detail


FREEZE

Define Requirements in detail

Use most appropriate development porcess for this increment (eg waterfall etc)

Develop Increment Develop Increment Deliver Increments Deliver Increments Inc#1 Inc#2

Define Requirements in detail

Define Requirements in detail Develop Increment

Develop Increment

Deliver Increments Inc#3

Deliver Increments Inc#1 ver 2

User runs system

Integration

Paul Dunne GMIT

Incremental development
u Advantages v Customer value can be delivered with each increment so system functionality is available earlier v Early increments act as a prototype to help elicit requirements for later increments v Lower risk of overall project failure with problems being identified early v The highest priority system services tend to receive the most testing u Problems v Increments should be small (<20K LOC) v Mapping requirements to increments of the right size v Common system facilities might not be identified early enough if they are only uncovered incrementally

Paul Dunne GMIT

Incremental development evolution Extreme programming


u New

approach to development based on the development and delivery of very small increments of functionality u Relies on constant code improvement, user involvement in the development team and pairwise programming

Paul Dunne GMIT

Approach (2)

Spiral development
u u u

Originally proposed by Boehm (1988) Process is represented as a spiral rather than as a sequence of activities with backtracking Each loop in the spiral represents a phase in the process (e.g. The inner could be concerned with system feasibility, next loop from center could be concerned with system requirements definition, the next design etc). Where the loops have no name.
v No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required

Risks are explicitly assessed and resolved throughout the process- this is an important distinction with other process models. The spiral model encompasses other process models (I.e. Phase 1 could be prototyping etc).

Paul Dunne GMIT

Spiral model sectors


1.

Objective setting
v Specific objectives for that phase are defined. Constraints are identified and a management plan is drawn up. Risks are identified and alternative strategies defined As required.

2.

Risk assessment and reduction


v Risks are assessed and activities put in place to reduce the key risks (e.g. if there is a risk that the requirements are incorrect a prototype could be built).

3.

Development and validation


v A development model for the system is chosen which can be any of the generic models (if safety is critical then development based on formal transformations may be appropriate)

4.

Planning
v The project is reviewed and a decision made whether to continue with another loop in the spiral. The next phase of the spiral is planned.

Paul Dunne GMIT

Spiral model of the software process


Phase 1 - prototyping used Phase 2 - waterfall used
Determ ine ob je ctiv es a lter nativ es a nd co ns tr aint s E v aluate alte rn a tive s id en tify, reso lve risk s

Start in this sector

Phase3 Phase2 Phase1


RE VI EW Req uire me nts p lan L ife-c ycle pl an

Risk an aly s is Ris k a naly s is Ris k a nalys is

P roto typ e 3 P roto typ e 2

Op eratio nal pro toyp e

Risk analysis Prototy pe 1 Sim ulation s, m ode ls, b en ch ma rks Con cep t o f Ope rati on S/W requ ire men ts P rod u ct d esig n

De velo p me nt plan In tegr atio n and tes t p lan

P lan nex t p h as e

Co de Un it t es t Inte gr ation test A ccep tan ce te st D eve lop , v e rify Serv ice n ext-lev el p rod u ct Des ign V& V

Req uir eme nt va lid ation

D eta iled desi gn

Paul Dunne GMIT

Sprial Model walk through


u

Elaborate objects (performance, functionality etc)


1. 2. System response time <1mSec System to fit in 20cm 2 space

Enumerate
v Alternative ways of achieving these objectives and Constraints imposed on each of these alternatives 1 (a) 2GHz processor --- Min processor size 42cm 2 1( b) Mutiprocessor computer --- Cost very high v How does each alternative impact on the other objects 1(a) impact on objective #2 ---- RISK #1

Evaluate risks
v Risk #1 Do internet search to see if smaller processor exists -- success!

u u

Development carried out Start planning next phase of the process.

Paul Dunne GMIT

Examining The Basic Process Activities Specification, Design, Validation and Evolution
Part 2 - Section 3
Paul Dunne GMIT

1 - Software specification
u The

process of establishing what services are required and the constraints on the systems operation and development
v Functional v Non-functional requirements

uA

critical stage as errors in this stage snowball into the system design and implementation phase. u Requirements engineering process
v Feasibility study v Requirements elicitation and analysis through observation, discussion, task analysis etc. v Requirements specification This activity transforms information from the the analysis activity into a requirements document. v Requirements validation Are the requirments valid, realistic, consistent etc.
Paul Dunne GMIT

The requirements engineering process


Requ irements elicitation an d analy sis

Feasibility study

Requir ements specification Requirements v alidation

Feasibility report System models


Help analyst understand system To be specified

User and s ystem requirements Different levels of detail

Requirements documen t
Section for the user and another for the developer

Paul Dunne GMIT

2 - Software design and implementation


u The

process of converting the system specification into an executable system u Always has
v Software design Design a software structure that realises the specification v Implementation Translate this structure into an executable program u The

activities of design and implementation are closely related and may be inter-leaved

Paul Dunne GMIT

Design
u The

design process involves adding formality and detail as the design is developed. There is constant backtracking to correct earlier designs.
Requir ements specifica tion Design acti vities

Ar chitectur al design

Abstr act specifica tion

Interface design

Component design

Da ta structur e design

Algorithm design

System architectur e

Softw are specifica tion

Interface specifica t ion

Component specifica tion Design pr oducts

Da ta structur e specifica tion

Algorithm specifica t ion

Paul Dunne GMIT

Design process activities


u u u

Architectural design
v Sub-systems and their relationships identified

Abstract specification
v Sub-system services and constraints identified

Interface design
v Sub-system interfaces to other sub-systems. These interfaces must be unambiguous because it allows the sub-systems to developed and deployed independently.

u u u

Component design
v Services are allocated to different components

* Data structure design


v The data structures that will be used are defined and specified.

*Algorithm design

*May be part of the implementation process instead


Paul Dunne GMIT

The software design process


The vague specification delivered for the software by the specification phase needs improvement - particularly from system architecture perspective.

Requir ements specifica tion

Design acti vities Architectur al design Abstr act specifica tion Interface design Component design Data structur e design Algorithm design

System architectur e

Softw are specifica tion

Interface specifica t ion

Component specifica tion Design pr oducts

Data structur e specifica tion

Algorithm specifica t ion

A specification for the next stage is the output of each design activity
Paul Dunne GMIT

Design methods
u

Software design is still ad-hoc in many projects


v Natural langauge spec. leads to informal design and then coding commences with the design being modifed as coding proceeds. The original design document has no relationship to the actual system !

Systematic approaches to developing a software design with Structured methods which are sets of notation and guidelines for design.
v Structured Design, Structured System Analysis, OO Design

The design is usually documented as a set of graphical models with a large amount of associated documentation. CASE tool support is typical. Structured methods may support some or all of these possible models of a system

Model
Data-flow model Entity -relation-attribute model Structural model Object models
Paul Dunne GMIT

Stuctured method

Notation

Object -Oriented Design

UML

Implementation Programming and debugging


u Translating

a design into a program and removing errors from that program u Programming is a personal activity - there is no generic programming process. Some programmers will start with those components they better understand, develop these before moving onto less well understood components - others will do the opposite. u Programmers carry out some program testing to discover defects in the program and remove these defects in the debugging process

Paul Dunne GMIT

The Testing and Debugging P rocess

Testing Design Test Carry out test Identify Defects

Debugging
Locate error Desig n error repair Repair erro r Re-test program

Paul Dunne GMIT

3- Software validation and verification


u

Verification and validation (V&V) is intended to show that a system


v conforms to its specification and v meets the requirements of the system customer

u u u

Involves checking processes (such as inspection and reviews) at each stage of the software process a s well as system testing on the implemented system. Programs should not be tested as a single monolithic unit. Testing should occur incrementally in conjunction with system implementation. System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system

Paul Dunne GMIT

The testing process

Uni t testing Module testing Sub-system t esting


(Usually) A programmers responsibility.

A number of programmers

System testing Acceptance testing

Component testing
Paul Dunne GMIT

Integration test ing

User testing

Testing stages
u u u

Unit testing
v Individual components are tested

Module testing
v Related collections of dependent components are tested

Sub-system testing
v Modules are integrated into sub-systems and tested. The focus here should be on interface testing - the most common problem in the developemnt of large systems is interface mismatch.

System testing
v Testing of the system as a whole. Testing of emergent system properties (ie when the system is built the properties of the system may only then become apparent - a client and a server can be developed independently only when they come together do we have a client-server system)

Acceptance testing ( alpha - bespoke s/w

and beta- generic s/w testing )

v Testing with customer data to check that it is acceptable


Paul Dunne GMIT

Testing phases

Requirement s specification

System specification

Sy stem design

Detailed des ign

generate
Acceptance test pl an

generate
System int egrat ion test pl an

generate
Sub-s ystem integ ratio n test plan Module an d u nit code and t ess

basic for
Servi ce Acceptance test

basic for
Sy stem integration test

basic for
Sub-s ystem int egration test

Paul Dunne GMIT

4 - Software evolution
u

u u

Software is inherently flexible and can change therefore it is incorporated into more and more systems (the flexible employee will get more and more work to do!) Change can (relatively easily) be accomadated in software Historically there has been a demarcation between software development (creative and challenging) and software maintenance (less challenging). As requirements change through changing business circumstances, the software that supports the business must also evolve and change Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new

Paul Dunne GMIT

System evolution

Define system requirements

Assess existing s ystems

Pro pose system chan ges

Modify systems

Ex isting sys tems

New system

Paul Dunne GMIT

Summary
Part 2 - Section 5

Paul Dunne GMIT

Key points
u Software

processes are the activities involved in producing and evolving a software system. They are represented in a software process model u General activities are specification, design and implementation, validation and evolution u Generic process models describe the organisation of software processes [Waterfall/Evolution/Formal/Reuse] u Hybrid -or Iterative process models describe the software process as a cycle of activities [Incremental/Spiral]

Paul Dunne GMIT

Key points
u Requirements

engineering is the process of developing a software specification u Design and implementation processes transform the specification to an executable program u Validation involves checking that the system meets to its specification and user needs u Evolution is concerned with modifying the system after it is in use u CASE technology supports software process activities

Paul Dunne GMIT

Questions
3.1 Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model which might be used as a basic for managing the development of the following systems: a) a system to control anti-lock braking in a car; b) A virtual reality system to support software maintenance; c) A college accounting system (replacing existing system) d) An interactive system for railway passengers that finds train times from terminals installed in the stations.
Paul Dunne GMIT

Questions
3.2 Explain why programs developed using evolutionary development are likely to be difficult to maintain. 3.5 Describe the main activities in the software design process and the outputs of these activities. 3.6 What are the five components of a design method? 3.8 Explain why a software system that is used in a real world environment must change or become progressively less useful. 3.9 Suggest how a CASE technology classification scheme may be helpful to managers responsible for case system procurement.

Paul Dunne GMIT

Model Ans 3.1


(a) Anti-lock braking system Safety-critical system so method based on formal transformations with proofs of equivalence between each stage. (b) Virtual reality system System whose requirements cannot be predicted in advance so exploratory programming model is appropriate. (c) College accounting system System whose requirements should be stable because of existing system therefore waterfall model is appropriate. (d) Interactive timetable System with a complex user interface but which must be stable and reliable. Should be based on throw-away prototyping to find requirements then either incremental development or waterfall model.
Paul Dunne GMIT

Model Ans 3.6


u Components of a design method v A defined set of system models v Rules that apply to these models v Guidelines for design 'good practice' v A model of the design process v Formats for reports on the design

are:

Paul Dunne GMIT

Model Ans 3.8


u Systems

must change because as they are installed in an environment the environment adapts to them and this adaptation naturally generates new/different system requirements. Furthermore, the system's environment is dynamic and constantly generates new requirements as a consequence of changes to the business, business goals and business policies. Unless the system is adapted to reflect these requirements, its facilities will become out-of-step with the facilities needed to support the business and, hence, it will become less useful.

Paul Dunne GMIT

Model Ans 3.9


uA

classification scheme can be helpful for system procurement because it helps identify gaps in the CASE tool coverage in an organisation. Procurement may be aimed at filling these gaps. Alternatively, a classification scheme may be used to find tools which support a range of activities - these may represent the most cost effective purchases if funds are limited.

Paul Dunne GMIT

You might also like