Professional Documents
Culture Documents
Software Engineering
CIS 240
:
Mobile: 0796484613
E-mail: osa_alkhoun82@yahoo.com
Chapter Two
Software Processes
z
To introduce software process models
z
z
To describe Some generic process models and when they may be
used
z
z
To describe outline process models for requirements engineering,
software development, testing and evolution
z
z
To explain the Rational Unified Process model
z
z
To introduce CASE technology to support software process activities
z
Topics covered
z
Software process models
z
z
Process iteration
z
z
Process activities
z
z
The Rational Unified Process
z
z
Computer-aided software engineering
z
z
Agile development methods and processes.
z
z
In some projects, a stage maybe shortened, but it can never be ignored.
z
Framework Activities; different terminologies
z
In different books or references, some of those processes may be
mixed, combined, or have different names.
z
z
Communication
z
z
Planning
z
z
Modeling (Design and specs)
( ) z
Analysis of requirements
Design
z
Construction (Implementation and testing)
( ) z
Code generation
Testing
z
Deployment
z
Umbrella Activities
z
Those are considered as secondary processes. Some projects may or
may not include them.
. - z
Software project management
z
Formal technical reviews
z
Software quality assurance
z
Software configuration management
z
Work product preparation and production
z
Reusability management
z
Measurement
z
Risk management
z
The waterfall model: Separate and distinct phases of specification and
development. Does not go to the next phase until completing the
current phase.
. : z
.
Evolutionary development (Prototyping).
.( ) z
Specification, development and validation are interleaved. Develop
prototypes for customers to see and verify.
" " .
Component-based software engineering
z
The system is assembled from existing components off-shelf
components.
There are many variants of these models e.g. formal development
where a waterfall-like process is used but the specification is a formal
specification that is refined through several stages to an implementable design.
- : z
.
.
Planning
estimating
scheduling
tracking
Modeling
analysis
design
Construction
code
test
Deployment
delivery
support
f eedback
z
z
Implementation and unit testing developers tasks.
z
z
Integration and system testing- testers tasks.
z
z
Operation and maintenance. Customer support and Customer service
tasks.
. z
z
We use the waterfall model when we have fixed, stable and known
requirements.
( ) z
z
The main drawback of the waterfall model is the difficulty of
accommodating changes after the process is underway. One phase has
to be completed before moving to the next phase.
z
( ).()
Inflexible partitioning of the project into distinct stages makes it
difficult to respond to changing customer requirements (not suitable
for unstable requirements).
z
.( )
Therefore, this model is only appropriate when the requirements are
well-understood and changes will be fairly limited during the design
process.
z
Few business systems have stable requirements.
( ) z
The waterfall model is mostly used for large systems engineering
projects where a system is developed at several sites. (Such as space
or govt projects).
z
.( ) .
Evolutionary development
( )
z
We want the software to evolve to its final form requirements are
not completely known, or we need to verify them with the customers.
"" " z
z
Exploratory development: The Objective is to work with customers
and to evolve a final system from an initial outline specification.
: z
( )
We should start with those requirements that are well-understood
and agreed upon and then add new features as proposed by the
customer.
z
Throw-away prototyping: The objective is to understand the system
requirements.
. : z
z
We may start with poorly understood requirements, and then build
prototypes to clarify what is really needed.
( ) z
.
Quick plan
Communicat ion
Mode ling
Quick de sign
Deployment
Delivery
& Feedback
Evolutionary development
( )
Problems
Evolutionary development
Applicability
Process iteration
z
System requirements ALWAYS evolve in the course of a project. As a
result, process iteration where earlier stages are reworked is always
part of large systems processes. (MS Windows & Office continuously
have updates, newer versions, batches and bug fixes).
. z
) .
.(
z
Iteration can be applied to any of the generic process models.
) ( z
z
Two (related) approaches
( ) z
Incremental delivery;
Spiral development.
( )
Incremental delivery
( )
z
increment # n
Co m m u n i c a t i o n
Pl a n n i n g
Model ing
analysis
design
Co n s t ru c t i o n
code
t est
De p l o y m e n t
d e l i v e ry
fee dbac k
delivery of
nt h increment
increment # 2
Co m m u n i c a t i o n
Pl a n n i n g
Mode li ng
analysis
design
Co n s t r u c t i o n
code
De p l o y m e n t
t est
de l i v e ry
feedback
increment # 1
delivery of
2nd increment
Co m m u n i c a t i o n
Pl a n n i n g
Modeli ng
analysis
design
Co n s t r u c t i o n
code
De p l o y m e n t
t est
d e l i v e ry
fee dbac k
delivery of
1st increment
Customer value can be delivered with each increment so system
functionality is available earlier.
z
Early increments act as a prototype to help elicit requirements for later
increments.
z
Lower risk of overall project failure.
z
The highest priority system services tend to receive the most testing.
z
Spiral development
z
( )
Process is represented as a spiral rather than as a sequence of activities
with backtracking.
( )z
Each loop in the spiral represents a phase in the process.
z
No fixed phases such as specification or design - loops in the spiral are
chosen depending on what is required.
- z
Risks are explicitly assessed and resolved throughout the process.
(This is the main difference from the Incremental model).
) . z
.(( )
communication
modeling
analysis
design
start
deployment
delivery
feedback
construction
code
test
Objective setting
Software specification
Software specification
z
The process of establishing what services are required and the
constraints on the systems operation and development.
z
Requirements engineering process
z
Feasibility study;
Requirements elicitation and analysis;
Requirements specification;
Requirements validation.
Architectural design
Abstract specification
Interface design
Component or detail design
Data structure design
Algorithm design
Software validation
z
Verification and validation (V & V) are intended to show that a
system conforms to its specification and meets the requirements of the
system customer.
( V & V) z
.
z
Involves checking and review processes and system testing.
z
z
System testing involves executing the system with test cases that are
derived from the specification in order to be processed by the system.
z
z
Validation and verification occurs in the requirement stage while
testing occurs within or after the implementation stage.
z
.
Testing stages
z
Component or unit testing : Individual components are tested
independently;
) ( : z
Components may be functions or objects or coherent groupings of
these entities. Usually done by developers.
.
z
System testing: Testing of the system as a whole. Testing of emergent
properties is particularly important. Usually done by local company
testers.
. . : z
.
z
Acceptance testing: Testing with customer data to check that the
system meets the customers needs. Usually done by customers or
independent testers.
. :
z
.
The testing process
Testing phases
Unit or white box testing (i.e. component testing).
.( . : ) z
Black box testing (can be part of system testing).
.( ) z
Integration testing (related to system testing).
( )( ) z
User Interface testing (can be part of system testing).
( ) ( ) z
Alpha and Beta testing (can be part of acceptance testing).
( ) z
System evolution
)(
A modern process model derived from the work on the UML and
associated process.
UML z
Normally described from 3 perspectives
z
A dynamic perspective that shows phases over time;
A static perspective that shows process activities;
A proactive perspective that suggests good practices.
RUP phases
Inception
Static workflows
Workflow
Description
Business modeling
Requirements
Actors who interact with the system are identified and use
cases are developed to model the system requirements.
Implementation
Test
( )
Deployment
Configuration and
change management
Project management
Environment
CASE classification
z
Classification helps us understand the different types of CASE tools
and their support for process activities.
z
z
Functional perspective
z
Tools are classified according to their specific function.
( )
z
Process perspective
( )z
Tools are classified according to process activities that are
supported.
z
Integration perspective
z
Tools are classified according to their organisation into integrated
units.
Examples
Configuration management
tools
Prototyping tools
Method-support tools
-
Language-processing tools
-
Program analysis tools
Testing tools
( )
Debugging tools
Documentation tools
Re-engineering tools
CASE integration
z
Tools
z
Support individual process tasks such as design consistency
checking, text editing, etc.
.
Workbenches
z
Support a process phase such as specification or design, Normally
include a number of integrated tools.
Environments
z
Support all or a substantial part of an entire software process.
Normally include several integrated workbenches.
. ) (
What is Agility?
z
" "
Effective (rapid and adaptive) response to change
) ( z
Effective communication among all stakeholders
( )z
Drawing the customer onto the team
)( z
Organizing a team so that it is in control of the work performed
Yielding
z
Rapid, incremental delivery of software
z
An Agile Process
z
Is driven by customer descriptions of what is required (scenarios)
( )z
Recognizes that plans are short-lived
z
Develops software iteratively with a heavy emphasis on construction
activities
)( z
Delivers multiple software increments
" " z
Adapts as changes occur
. z
XP Testing
user st ories
values
accept ance t est crit eria
it erat ion plan
Release
sof t w are increm ent
project v elocit y com put ed
unit t est
cont inuous int egrat ion
accept ance t est ing
Scrum
( )
z
Scrum
Crystal
Key points
z
Software processes are the activities involved in producing and
evolving a software system.
. )( z
z
Software process models are abstract representations of these
processes.
( ) z
z
General activities are specification, design and implementation,
validation and evolution.
)( z
z
Generic process models describe the organisation of software
processes. Examples include the waterfall model, evolutionary
development and agile development.
. z
. ) (
z
Iterative process models describe the software process as a cycle of
activities.
z
z
Requirements engineering is the process of developing a software
specification.
)( z
z
Design and implementation processes transform the specification to an
executable program.
( )( )z
z
Validation involves checking that the system meets to its specification
and user needs.
z
z
Evolution is concerned with modifying the system after it is in use.
)( z
z
The Rational Unified Process is a generic process model that separates
activities from phases.
z
z
CASE technology supports software process activities.
z
z
Agile development methodologies are suggested to deal with the
continuously evolving requirements and the need of company to
deliver software in a reasonable time.
z
.