Software Processes

a structured set of activites required to develop a SW system

specification

design

development

validation

evolution

generic SWP models

waterfall

phases

requirements

design

implementation

verfiction

maintenance

problems

once phase complete accommodating changes if defficult

appropriate when requirments are well-understood

used for large systems eng. projects (system developed at several sites)

evolutionary development

requirements have to be refined during the development

new and updated require. lead to new versions of the SW

outline description

specification

sevelopment

validation

iterative development

phases

start with a simple imple. of a subset of the requirements

requirement may be prioritised & the highest priority requ. are included in early deliveries

may be functional requi. classification

iteratively take a new set of requirements

refine design & develop new functionality elements

repeat until the final version is reached

advantages

Customer may be able to deploy early
versions of the software

Early increments act as a prototype to help
elicit requirements for later increments

The highest priority system services tend to receive the most testing

risk

customer tells you a part of the
story then the next part'll demolish
everything

component-based SWE

based on systematic reuse (systems are integrated from existing components ot COTS

process stages

components analysis

requirement modifiction

system design with reuse

development and integration

the rational unified process

6 basic practices

develop iteratively

manage requirements

use components

model visually

continuously verfy quality

control changes

concepts

artifacts (the what)

roles (the who)

activities (the how)

disciplines (the when)

phases

inception

elaboration

construction

transition

disciplines

business modeling

requirments

analysis and design

implementation

test

deployment

supporting disciplines

environment

config and change management

project management

agile programming

iterative light processes

examples

XP (extreme programming)

principles

freq. release cycles

lifecycle and behavior is defined in test cases

improve code with refactoring

pair programming

everybody tests all the time

use simplest pissible design that works

refine the architecture all the time

integrate and test several times a day

overcomes some SW problems

schedule problems

project cancellation

major bugs

high defect rate

bisiness misunderstood

false feature rich

Scrum

each phase contains one or more iterations during each iteration activited from several displines are performed