CH 2
CH 2
Topics covered
1 2
² A structured set of activities required to develop a ² When we describe and discuss processes, we usually
software system. talk about the activities in these processes such as
² Many different software processes but all involve: specifying a data model, designing a user interface, etc.
and the ordering of these activities.
§ Specification – defining what the system should do;
§ Design and implementation – defining the organization of the ² Process descriptions may also include:
system and implementing the system; § Products, which are the outcomes of a process activity;
§ Validation – checking that it does what the customer wants; § Roles, which reflect the responsibilities of the people involved in
§ Evolution – changing the system in response to changing the process;
customer needs. § Pre- and post-conditions, which are statements that are true
² A software process model is an abstract representation before and after a process activity has been enacted or a
product produced.
of a process. It presents a description of a process from
some particular perspective.
Chapter 2 Software Processes 3 Chapter 2 Software Processes 4
3 4
² Plan-driven processes are processes where all of the ² The waterfall model
process activities are planned in advance and progress § Plan-driven model. Separate and distinct phases of specification
is measured against this plan. and development.
² In agile processes, planning is incremental and it is ² Incremental development
easier to change the process to reflect changing § Specification, development and validation are interleaved. May
customer requirements. be plan-driven or agile.
² In practice, most practical processes include elements of ² Reuse-oriented software engineering
both plan-driven and agile approaches. § The system is assembled from existing components. May be
plan-driven or agile.
² There are no right or wrong software processes.
² In practice, most large systems are developed using a
process that incorporates elements from all of these
models.
Chapter 2 Software Processes 5 Chapter 2 Software Processes 6
5 6
1
9/17/23
7 8
Incremental development
Waterfall model problems
9 10
11 12
2
9/17/23
13 14
² Web services that are developed according to service ² Real software processes are inter-leaved sequences of
standards and which are available for remote invocation. technical, collaborative and managerial activities with the
² Collections of objects that are developed as a package overall goal of specifying, designing, implementing and
testing a software system.
to be integrated with a component framework such as
.NET or J2EE. ² The four basic process activities of specification,
² Stand-alone software systems (COTS) that are development, validation and evolution are organized
configured for use in a particular environment. differently in different development processes. In the
waterfall model, they are organized in sequence,
whereas in incremental development they are inter-
leaved.
15 16
17 18
3
9/17/23
19 20
² Architectural design, where you identify the overall ² Verification and validation (V & V) is intended to show
structure of the system, the principal components that a system conforms to its specification and meets the
(sometimes called sub-systems or modules), their requirements of the system customer.
relationships and how they are distributed. ² Involves checking and review processes and system
² Interface design, where you define the interfaces testing.
between system components. ² System testing involves executing the system with test
² Component design, where you take each system cases that are derived from the specification of the real
component and design how it will operate. data to be processed by the system.
² Database design, where you design the system data ² Testing is the most commonly used V & V activity.
structures and how these are to be represented in a
database.
Chapter 2 Software Processes 21 Chapter 2 Software Processes 22
21 22
Stages of testing
Testing stages
23 24
4
9/17/23
25 26
27 28
Key points
29 30
5
9/17/23
² Change is inevitable in all large software projects. ² Change avoidance, where the software process includes
§ Business changes lead to new and changed system activities that can anticipate possible changes before
requirements significant rework is required.
§ New technologies open up new possibilities for improving § For example, a prototype system may be developed to show
implementations some key features of the system to customers.
§ Changing platforms require application changes ² Change tolerance, where the process is designed so that
² Change leads to rework so the costs of change include changes can be accommodated at relatively low cost.
both rework (e.g. re-analysing requirements) as well as § This normally involves some form of incremental development.
the costs of implementing new functionality Proposed changes may be implemented in increments that have
not yet been developed. If this is impossible, then only a single
increment (a small part of the system) may have be altered to
incorporate the change.
31 32
33 34
35 36
6
9/17/23
² Prototypes should be discarded after development as ² Rather than deliver the system as a single delivery, the
they are not a good basis for a production system: development and delivery is broken down into
§ It may be impossible to tune the system to meet non-functional increments with each increment delivering part of the
requirements; required functionality.
§ Prototypes are normally undocumented;
² User requirements are prioritised and the highest priority
§ The prototype structure is usually degraded through rapid requirements are included in early increments.
change;
§ The prototype probably will not meet normal organisational ² Once the development of an increment is started, the
quality standards. requirements are frozen though requirements for later
increments can continue to evolve.
37 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;
§ Evaluation done by user/customer proxy.
² Incremental 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.
39 40
² Customer value can be delivered with each increment so ² Most systems require a set of basic facilities that are
system functionality is available earlier. used by different parts of the system.
² Early increments act as a prototype to help elicit § As requirements are not defined in detail until an increment is to
be implemented, it can be hard to identify common facilities that
requirements for later increments. are needed by all increments.
² Lower risk of overall project failure. ² The essence of iterative processes is that the
² The highest priority system services tend to receive the specification is developed in conjunction with the
most testing. software.
§ However, this conflicts with the procurement model of many
organizations, where the complete system specification is part of
the system development contract.
41 42
7
9/17/23
43 44
² Objective setting ² Spiral model has been very influential in helping people
§ Specific objectives for the phase are identified. think about iteration in software processes and
² Risk assessment and reduction introducing the risk-driven approach to development.
§ Risks are assessed and activities put in place to reduce the key ² In practice, however, the model is rarely used as
risks. published for practical software development.
² Development and validation
§ A development model for the system is chosen which can be
any of the generic models.
² Planning
§ The project is reviewed and the next phase of the spiral is
planned.
45 46
47 48
8
9/17/23
49 50
Static workflows in the Rational Unified Process Static workflows in the Rational Unified Process
Workflow Description
Workflow Description
Business modelling The business processes are modelled using business Testing Testing is an iterative process that is carried out in conjunction
use cases. with implementation. System testing follows the completion of
Requirements Actors who interact with the system are identified and the implementation.
use cases are developed to model the system Deployment A product release is created, distributed to users and installed in
requirements. their workplace.
Analysis and design A design model is created and documented using Configuration and This supporting workflow managed changes to the system (see
architectural models, component models, object change management Chapter 25).
models and sequence models. Project management This supporting workflow manages the system development (see
Implementation The components in the system are implemented and Chapters 22 and 23).
structured into implementation sub-systems. Environment This workflow is concerned with making appropriate software
Automatic code generation from design models helps tools available to the software development team.
accelerate this process.
51 52
53 54
9
9/17/23
Key points
55
10