Title: CS 425/625 Software Engineering Software Processes
1CS 425/625 Software Engineering Software
Processes
- Based on Chapter 4 of the textbook SE-8
- Ian Sommerville, Software Engineering, 8th Ed.,
Addison-Wesley, 2006 and on Ch4 PPT presentation
from http//www.software-engin.com/ - September 10, 2007
2Outline
- Software Process Models
- Waterfall model
- Evolutionary development
- Component-based software engineering
- Incremental model
- Spiral model
- Software Process Activities
- Specification
- Design and implementation
- Validation
- Evolution
- The Rational Unified Process
- Computer-Aided Software Engineering
3Software Process Models
- Software process organized set of activities
aimed at building a software system - Software process model an abstract
representation of a software process - Fundamental software process activities
- Software specification
- Software design
- Software implementation
- Software validation
- Software evolution
4Software Process Models Waterfall..
- The Waterfall model SE-8, Fig 4.1
5Software Process Models .Waterfall.
- Main characteristics
- Also called classic software life cycle or
sequential model - Process activities (phases/stages) are clearly
separated - After a number of iterations, phases of the life
cycle (such as specification and design) are
frozen
6Software Process Models ..Waterfall
- Advantages
- Organized approach, provides robust separation of
phases - Reflects common engineering practice
- Disadvantages
- Doesnt cope well with changes required by the
client - Development teams might wait for each other
- A working version of the product is available
only late - Applicability
- When requirements are well known and few changes
are likely to be needed - Can be used also for parts of larger software
systems
7Software Process Models Evolutionary
Development
- Evolutionary Development model SE-8, Fig 4.2
8Software Process Models .Evolutionary
Development..
- Main characteristics
- The phases of the software construction are
interleaved - Feedback from the user is used throughout the
entire process - The software product is refined through many
versions - Types of evolutionary development
- Exploratory development
- Throw-away prototyping
9Software Process Models ..Evolutionary
Development.
- Advantages
- Deals constantly with changes
- Provides quickly an initial version of the system
- Involves all development teams
- Disadvantages
- Quick fixes may be involved
- Invisible process, not well-supported by
documentation - The systems structure can be corrupted by
continuous change
10Software Process Models Evolutionary
Development
- Disadvantages contd
- Special tools and techniques may be necessary
- The client may have the impression the first
version is very close to the final product and
thus be less patient - Applicability
- When requirements are not well understood
- When the client and the developer agree on a
rapid prototype that will be thrown away - Good for small and medium-sized software systems
11Software Process Models Component-based
Software Engineering
- CBSE process model SE-8, Fig 4.3
12Software Process Models .Component-based
Software Engineering..
- Main characteristics
- Makes intensive use of existing reusable
components - The focus is on integrating the components rather
than on creating them from the scratch
13Software Process Models ..Component-based
Software Engineering.
- Advantages
- Reduces considerably the software to be developed
in-house - Allows faster delivery
- In principle, more reliable systems, due to using
previously tested components
14Software Process Models Component-based
Software Engineering
- Disadvantages
- Compromises in requirements are needed
- Less control over the systems evolution
- Applicability
- When there is a pool of existing components that
could satisfy the requirements of the new product
- Emerging trend integration of web services from
a range of suppliers
15Software Process Models Incremental Development
- The Incremental model SE-8, Fig 4.4
16Software Process Models .Incremental..
- Main characteristics
- Hybrid model that combines elements of the
waterfall and evolutionary paradigms - The specification, design, and implementation
phases are broken in smaller increments
17Software Process Models ..Incremental.
- Advantages
- Provides better support for process iteration
- Reduces rework in the software construction
process - Some decisions on requirements may be delayed
- Allows early delivery of parts of the system
- Supports easier integration of sub-systems
- Lower risk of project failure
- Delivery priorities can be more easily set
18Software Process Models ...Incremental
- Disadvantages
- Increments need be relatively small
- Mapping requirements to increments may not be
easy - Common software facilities may be difficult to
identify - Applicability
- When it is possible to deliver the system
part-by-part
19Software Process Models Spiral Model..
- Boehms Spiral Model SE-8, Fig 4.5
20.Software Process Models Spiral Model.
- Main characteristics
- Also a hybrid model that support process
iteration - The process is represented as a spiral, each loop
in the spiral representing a process phase - Four sectors per loop objective setting, risk
assessment and reduction, development and
validation, planning - Risk is explicitly taken into consideration
21Software Process Models ..Spiral Model
- Advantages
- Risk reduction mechanisms are in place
- Supports iteration and reflects real-world
practices - Systematic approach
- Disadvantages
- Requires expertise in risk evaluation and
reduction - Complex, relatively difficult to follow strictly
- Applicable only to large systems
- Applicability
- Internal development of large systems
22Process Activities Specification
- Requirements engineering SE-8, Fig. 4.6
23Process Activities Design Implementation
- A general model for design SE-8, Fig 4.7
24Process Activities Testing..
- The debugging process SE-8, Fig 4.8
25Process Activities .Testing.
- The testing process SE-8, Fig 4.9
26Process Activities ..Testing
- Testing phases in the SE process SE-8, Fig.
4.10
27Process Activities Evolution
- System evolution SE-8, Fig 4.11
28The Rational Unified Process.
- RUP phases SE-8, Fig 4.12
29.The Rational Unified Process
- RUP workflows SE-8, Fig 4.13
30CASE
- Classification of CASE technology SE-7, Fig
4.14