0% found this document useful (0 votes)
24 views10 pages

CH 2

Uploaded by

thien bao
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)
24 views10 pages

CH 2

Uploaded by

thien bao
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/ 10

9/17/23

Topics covered

² Software process models


² Process activities
Chapter 2 – Software Processes ² Coping with change
² The Rational Unified Process
§ An example of a modern software process.
Lecture 1

Chapter 2 Software Processes 1 Chapter 2 Software Processes 2

1 2

The software process Software process descriptions

² 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 and agile processes Software process models

² 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

The waterfall model


Waterfall model phases

² There are separate identified phases in the waterfall


model:
§ Requirements analysis and definition
§ System and software design
§ Implementation and unit testing
§ Integration and system testing
§ Operation and maintenance
² The main drawback of the waterfall model is the difficulty
of accommodating change after the process is
underway. In principle, a phase has to be complete
before moving onto the next phase.

Chapter 2 Software Processes 7 Chapter 2 Software Processes 8

7 8

Incremental development
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 9 Chapter 2 Software Processes 10

9 10

Incremental development benefits Incremental development problems

² The cost of accommodating changing customer ² The process is not visible.


requirements is reduced. § Managers need regular deliverables to measure progress. If
§ The amount of analysis and documentation that has to be systems are developed quickly, it is not cost-effective to produce
redone is much less than is required with the waterfall model. documents that reflect every version of the system.
² It is easier to get customer feedback on the development ² System structure tends to degrade as new increments
work that has been done. are added.
§ Customers can comment on demonstrations of the software and § Unless time and money is spent on refactoring to improve the
see how much has been implemented. software, regular change tends to corrupt its structure.
Incorporating further software changes becomes increasingly
² More rapid delivery and deployment of useful software to difficult and costly.
the customer is possible.
§ Customers are able to use and gain value from the software
earlier than is possible with a waterfall process.
Chapter 2 Software Processes 11 Chapter 2 Software Processes 12

11 12

2
9/17/23

Reuse-oriented software engineering 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
§ Reuse covered in more depth in Chapter 16.
Chapter 2 Software Processes 13 Chapter 2 Software Processes 14

13 14

Types of software component Process activities

² 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.

Chapter 2 Software Processes 15 Chapter 2 Software Processes 16

15 16

The requirements engineering process


Software specification

² The process of establishing what services are required


and the constraints on the system’s operation and
development.
² Requirements engineering process
§ Feasibility study
• Is it technically and financially feasible to build the system?
§ Requirements elicitation and analysis
• What do the system stakeholders require or expect from the system?
§ Requirements specification
• Defining the requirements in detail
§ Requirements validation
• Checking the validity of the requirements

Chapter 2 Software Processes 17 Chapter 2 Software Processes 18

17 18

3
9/17/23

A general model of the design process


Software design and implementation

² The process of converting the system specification into


an executable system.
² Software design
§ Design a software structure that realises the specification;
² Implementation
§ Translate this structure into an executable program;
² The activities of design and implementation are closely
related and may be inter-leaved.

Chapter 2 Software Processes 19 Chapter 2 Software Processes 20

19 20

Design activities Software validation

² 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

² Development or component testing


§ Individual components are tested independently;
§ Components may be functions or objects or coherent groupings
of these entities.
² System testing
§ 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 23 Chapter 2 Software Processes 24

23 24

4
9/17/23

Testing phases in a plan-driven software


process 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.
² Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer systems are
completely new.

Chapter 2 Software Processes 25 Chapter 2 Software Processes 26

25 26

System evolution Key points

² Software processes are the activities involved in


producing a software system. Software process models
are abstract representations of these processes.
² General process models describe the organization of
software processes. Examples of these general models
include the ‘waterfall’ model, incremental development,
and reuse-oriented development.

Chapter 2 Software Processes 27 Chapter 2 Software Processes 28

27 28

Key points

² Requirements engineering is the process of developing a


software specification.
² Design and implementation processes are concerned
Chapter 2 – Software Processes
with transforming a requirements specification into an
executable software system.
² Software validation is the process of checking that the
system conforms to its specification and that it meets the Lecture 2
real needs of the users of the system.
² Software evolution takes place when you change
existing software systems to meet new requirements.
The software must evolve to remain useful.
Chapter 2 Software Processes 29 Chapter 2 Software Processes 30

29 30

5
9/17/23

Coping with change Reducing the costs of rework

² 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.

Chapter 2 Software Processes 31 Chapter 2 Software Processes 32

31 32

Software prototyping Benefits of prototyping

² A prototype is an initial version of a system used to ² Improved system usability.


demonstrate concepts and try out design options. ² A closer match to users’ real needs.
² A prototype can be used in:
² Improved design quality.
§ The requirements engineering process to help with requirements
elicitation and validation; ² Improved maintainability.
§ In design processes to explore options and develop a UI design; ² Reduced development effort.
§ In the testing process to run back-to-back tests.

Chapter 2 Software Processes 33 Chapter 2 Software Processes 34

33 34

The process of prototype development


Prototype development

² May be based on rapid prototyping languages or tools


² May involve leaving out functionality
§ Prototype should focus on areas of the product that are not well-
understood;
§ 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 Chapter 2 Software Processes 36

35 36

6
9/17/23

Throw-away prototypes Incremental delivery

² 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.

Chapter 2 Software Processes 37 Chapter 2 Software Processes 38

37 38

Incremental development and delivery Incremental delivery

² 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.

Chapter 2 Software Processes 39 Chapter 2 Software Processes 40

39 40

Incremental delivery advantages Incremental delivery problems

² 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.

Chapter 2 Software Processes 41 Chapter 2 Software Processes 42

41 42

7
9/17/23

Boehm’s spiral model Boehm’s spiral model of the software process

² 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.
² 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.

Chapter 2 Software Processes 43 Chapter 2 Software Processes 44

43 44

Spiral model sectors Spiral model usage

² 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.

Chapter 2 Software Processes 45 Chapter 2 Software Processes 46

45 46

The Rational Unified Process Phases in 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.
² Normally described from 3 perspectives
§ A dynamic perspective that shows phases over time;
§ A static perspective that shows process activities;
§ A practive perspective that suggests good practice.

Chapter 2 Software Processes 47 Chapter 2 Software Processes 48

47 48

8
9/17/23

RUP phases RUP iteration

² Inception ² In-phase iteration


§ Establish the business case for the system. § Each phase is iterative with results developed incrementally.
² Elaboration ² Cross-phase iteration
§ Develop an understanding of the problem domain and the § As shown by the loop in the RUP model, the whole set of phases
system architecture. may be enacted incrementally.
² Construction
§ System design, programming and testing.
² Transition
§ Deploy the system in its operating environment.

Chapter 2 Software Processes 49 Chapter 2 Software Processes 50

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.

Chapter 2 Software Processes 51 Chapter 2 Software Processes 52

51 52

RUP good practice RUP good practice

² Develop software iteratively ² Visually model software


§ Plan increments based on customer priorities and deliver highest § Use graphical UML models to present static and dynamic views
priority increments first. of the software.
² Manage requirements ² Verify software quality
§ Explicitly document customer requirements and keep track of § Ensure that the software meet’s organizational quality standards.
changes to these requirements.
² Control changes to software
² Use component-based architectures
§ Manage software changes using a change management system
§ Organize the system architecture as a set of reusable and configuration management tools.
components.

Chapter 2 Software Processes 53 Chapter 2 Software Processes 54

53 54

9
9/17/23

Key points

² Processes should include activities to cope with change.


This may involve a prototyping phase that helps avoid
poor decisions on requirements and design.
² Processes may be structured for iterative development
and delivery so that changes may be made without
disrupting the system as a whole.
² The Rational Unified Process is a modern generic
process model that is organized into phases (inception,
elaboration, construction and transition) but separates
activities (requirements, analysis and design, etc.) from
these phases.

Chapter 2 Software Processes 55

55

10

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy