SlideShare a Scribd company logo
1
Chapter 2
Software Processes
An overview of conventional software
process models, Rational Unified
Process, and CASE tools
2
Objectives
 To introduce software process models
 To describe three generic process models
and when they may be used
 To describe outline process models for
requirements engineering, software
development, testing and evolution
 To explain the Rational Unified Process
model
 To introduce CASE technology to support
software process activities
3
Topics covered
 Software process models
 Process iteration
 Process activities
 The Rational Unified Process
 Computer-aided software engineering
4
The software process
 A structured set of activities required to develop a
software system
 Specification;
 Design;
 Validation;
 Evolution.
 A software process model is an abstract
representation of a process. It presents a
description of a process from some particular
perspective.
5
Generic software process models
 The waterfall model
 Separate and distinct phases of specification and
development.
 Evolutionary development
 Specification, development and validation are
interleaved.
 Component-based software engineering
 The system is assembled from existing 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.
6
Waterfall model
7
Waterfall model phases
 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. One phase has to be
complete before moving onto the next phase.
8
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.
9
Evolutionary development
 Exploratory development
 Objective is to work with customers and to evolve
a final system from an initial outline specification.
Should start with well-understood requirements
and add new features as proposed by the
customer.
 Throw-away prototyping
 Objective is to understand the system
requirements. Should start with poorly understood
requirements to clarify what is really needed.
10
Evolutionary development
11
Evolutionary development
 Problems
 Lack of process visibility;
 Systems are often poorly structured;
 Special skills (e.g. in languages for rapid
prototyping) may be required.
 Applicability
 For small or medium-size interactive systems;
 For parts of large systems (e.g. the user interface);
 For short-lifetime systems.
12
Component-based 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.
 This approach is becoming increasingly used
as component standards have emerged.
13
Reuse-oriented development
14
Process iteration
 System requirements ALWAYS evolve in the
course of a project so process iteration
where earlier stages are reworked is always
part of the process for large systems.
 Iteration can be applied to any of the generic
process models.
 Two (related) approaches
 Incremental delivery;
 Spiral development.
15
Incremental delivery
 Rather than deliver the system as a single
delivery, the development and delivery is broken
down into increments with each increment
delivering part of the required functionality.
 User requirements are prioritised and the highest
priority requirements are included in early
increments.
 Once the development of an increment is started,
the requirements are frozen though requirements
for later increments can continue to evolve.
16
Incremental development
17
Incremental development advantages
 Customer value can be delivered with each
increment so system functionality is available
earlier.
 Early increments act as a prototype to help
elicit requirements for later increments.
 Lower risk of overall project failure.
 The highest priority system services tend to
receive the most testing.
18
Extreme programming
 An approach to development based on the
development and delivery of very small
increments of functionality.
 Relies on constant code improvement, user
involvement in the development team and
pairwise programming.
 Covered in Chapter 17
19
Spiral development
 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.
20
Spiral model of the software process
21
Spiral model sectors
 Objective setting
 Specific objectives for the phase are identified.
 Risk assessment and reduction
 Risks are assessed and activities put in place to
reduce the key risks.
 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.
22
Process activities
 Software specification
 Software design and implementation
 Software validation
 Software evolution
23
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;
 Requirements elicitation and analysis;
 Requirements specification;
 Requirements validation.
24
The requirements engineering process
25
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.
26
Design process activities
 Architectural design
 Abstract specification
 Interface design
 Component design
 Data structure design
 Algorithm design
27
The software design process
28
Structured methods
 Systematic approaches to developing a
software design.
 The design is usually documented as a set of
graphical models.
 Possible models
 Object model;
 Sequence model;
 State transition model;
 Structural model;
 Data-flow model.
29
Programming and debugging
 Translating a design into a program and
removing errors from that program.
 Programming is a personal activity - there is
no generic programming process.
 Programmers carry out some program
testing to discover faults in the program and
remove these faults in the debugging
process.
30
The debugging process
31
Software validation
 Verification and validation (V & V) is intended
to show that a system conforms to its
specification and meets the requirements of
the system customer.
 Involves checking and review processes and
system testing.
 System testing involves executing the system
with test cases that are derived from the
specification of the real data to be processed
by the system.
32
The testing process
33
Testing stages
 Component or unit 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.
34
Testing phases
35
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.
36
System evolution
37
The Rational Unified Process
 A modern process model derived from the
work on the UML and associated process.
 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.
38
RUP phase model
Phase iteration
Inception Elaboration Construction Transition
39
RUP phases
 Inception
 Establish the business case for the system.
 Elaboration
 Develop an understanding of the problem domain
and the system architecture.
 Construction
 System design, programming and testing.
 Transition
 Deploy the system in its operating environment.
40
inception
Rational Unified Process
software increment
Release
Inception
Elaboration
construction
transition
production
inception
elaboration
41
RUP Phases
Inception Elaboration Construction Transition Production
UP Phases
Workflows
Requirements
Analysis
Design
Implementation
Test
Iterations #1 #2 #n-1 #n
Support
42
RUP Work Products
Inception phase
Elaboration phase
Construction phase
Transition phase
Vision document
Init ial use-case model
Init ial project glossary
Init ial business case
Init ial risk assessment .
Project plan,
phases and it erat ions.
Business model,
if necessary.
One or more prot ot ypes
I nc e pt i o
n
Use-case model
Supplement ary requirement s
including non-funct ional
Analysis model
Soft ware archit ect ure
Descript ion.
Execut able archit ect ural
prot ot ype.
Preliminary design model
Revised risk list
Project plan including
it erat ion plan
adapt ed workflows
milest ones
t echnical work product s
Preliminary user manual
Design model
Soft ware component s
Int egrat ed soft ware
increment
Test plan and procedure
Test cases
Support document at ion
user manuals
inst allat ion manuals
descript ion of current
increment
Delivered soft ware increment
Bet a t est report s
General user feedback
43
RUP good practice
 Develop software iteratively
 Manage requirements
 Use component-based architectures
 Visually model software
 Verify software quality
 Control changes to software
44
Static workflows
Workflow Description
Business modelli ng The business processes are modelled usingbu siness use cases.
Requirements Actors who interact with the system are identified and use cases are
developed to model the system requirements.
Ana lysis and de sign A design model is created and do cumented usinga rchitectural
models, component models, object models and sequence mod els.
Implementation The components in the system are implemented and structured into
implementation sub-systems. Automatic code generation from design
models helps accelerate this process.
Test Testing is an iterative process that is carried out inconjunc tion with
implementation. System testing follows the completion of the
implementation.
Deployment A produc t release is created, distributed to users and installed in their
workplace.
Configurationand
chang e management
This supporting workflow managed change s to the system (see
Chapter 29).
Project management This supporting workflow manage s the system development (see
Chapter 5).
Envi ronment This workflow is concerned with making appropriate software tools
available to the software development team.
45
Specification
Acquisition
Specification
Validation
Maintenance
high-level
specification
(prototyping)
Interactive
Translation
Automatic
Compilation
source
program
informal
specification
decision &
rational
low-level
specification
formal
development
Tuning
Automated Synthesis Model
46
longevity
t0 t1 t2 t3 t4 t5
Functionality
Time
inappropriateness
lateness
shortfal
l slop : adaptability
original reqt.
A
B
D
C
E
waterfall
model
O : (t0) original reqt.
A : ( at t1) an operational product, not satisfying the old to needs
because poor understanding of needs.
A - B : undergo a series of enhancements.
B - D : the cost of enhancements increase, to build a new system.
stop at t4.
* cycle repeat itself
Comparing Various Process Models
47
before understanding
of the user`s need =>
increase in functionality
t0 t1 t2 t4
Functionality
Time
Throwaway Prototyping and Spiral Model
48
Time
t0 t1 t2 t4
Functionality
Evolutionary Prototyping
49
t0 t1 t2 t4
Functionality
t3
Time
Automated Software Synthesis
50
t0 t1 t2 t4
Functionality
Time
user
Reusable Software
approach
conventional
approach
Reusable Software versus Conventional
51
Computer-Aided Software Engineering
 Computer-Aided Software Engineering (CASE) is
software to support software development and
evolution processes.
 Activity automation
 Graphical editors for system model development;
 Data dictionary to manage design entities;
 Graphical UI builder for user interface construction;
 Debuggers to support program fault finding;
 Automated translators to generate new versions of a
program.
52
CASE technology
 CASE technology has led to significant
improvements in the software process.
However, these are not the order of
magnitude improvements that were once
predicted
 Software engineering requires creative thought -
this is not readily automated;
 Software engineering is a team activity and, for
large projects, much time is spent in team
interactions. CASE technology does not really
support these.
53
CASE classification
 Classification helps us understand the different
types of CASE tools and their support for process
activities.
 Functional perspective
 Tools are classified according to their specific function.
 Process perspective
 Tools are classified according to process activities that
are supported.
 Integration perspective
 Tools are classified according to their organisation into
integrated units.
54
Functional tool classification
Tool type Examples
Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, systembuilding tools
Prototyping tools Very high-level languages, user interface generators
Method-support tools Design editors, data dictionaries, code generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs,image editors
Re-engineering tools Cross-reference systems, program re-structuring systems
55
Activity-based tool classification
Specification Design Implementation V
erification
and
V
alidation
Re-eng ineering tools
Testing tools
Debugg ing tools
Program analysis tools
Language-processing
tools
Method suppor t tools
Prototyping tools
Configuration
management tools
Change management tools
Documentation tools
Editing tools
Planning tools
56
CASE integration
 Tools
 Support individual process tasks such as design
consistency checking, text editing, etc.
 Workbenches
 Support a process phase such as specification or design,
Normally include a number of integrated tools.
 Environments
 Support all or a substantial part of an entire software
process. Normally include several integrated workbenches.
57
Tools, workbenches, environments
Single-method
workbenches
Gener al-purpose
workbenches
Multi-method
workbenches
Langua ge-specific
workbenches
Programming T
esting
Analysis and
design
Integrated
envir
onments
Process-centr ed
envir
onments
File
compar ators
Compilers
Editors
Envir
onments
Workbenches
T
ools
CASE
technology
58
Key points
 Software processes are the activities involved in
producing and evolving a software system.
 Software process models are abstract
representations of these processes.
 General activities are specification, design and
implementation, validation and evolution.
 Generic process models describe the organisation
of software processes. Examples include the
waterfall model, evolutionary development and
component-based software engineering.
 Iterative process models describe the software
process as a cycle of activities.
59
Key points
 Requirements engineering is the process of
developing a software specification.
 Design and implementation processes transform the
specification to an executable program.
 Validation involves checking that the system meets
to its specification and user needs.
 Evolution is concerned with modifying the system
after it is in use.
 The Rational Unified Process is a generic process
model that separates activities from phases.
 CASE technology supports software process
activities.

More Related Content

Similar to se02_SW_Process.ppt

Process in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinProcess in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software Engineerin
MuhammadSufianJani
 
Software process
Software processSoftware process
Software process
Jennifer Polack
 
I
II
Process model rup
Process model rupProcess model rup
Process model rup
Aryan Ajmer
 
SE Sumerville 9th Chp 2
SE Sumerville 9th Chp 2SE Sumerville 9th Chp 2
SE Sumerville 9th Chp 2
Kashif Sohail
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
MarwondoMarwondo
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
Satya P. Joshi
 
Ian Sommerville, Software Engineering, 9th Edition Ch2
Ian Sommerville,  Software Engineering, 9th Edition Ch2Ian Sommerville,  Software Engineering, 9th Edition Ch2
Ian Sommerville, Software Engineering, 9th Edition Ch2
Mohammed Romi
 
مدخل الى هندسة البرمجيات _ Introduction to Software Engineering
مدخل الى هندسة البرمجيات _ Introduction to Software Engineeringمدخل الى هندسة البرمجيات _ Introduction to Software Engineering
مدخل الى هندسة البرمجيات _ Introduction to Software Engineering
Ahmed Alageed
 
SE-03.pptx
SE-03.pptxSE-03.pptx
SE-03.pptx
HaiderAli252366
 
Ch2
Ch2Ch2
Ch 2 Software Engineering
Ch 2 Software EngineeringCh 2 Software Engineering
Ch 2 Software Engineering
Imran Mirza
 
SOFTWARE ENGINEERING PART 1
SOFTWARE ENGINEERING PART 1SOFTWARE ENGINEERING PART 1
SOFTWARE ENGINEERING PART 1
ravi gupta
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
Ian Sommerville
 
SE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelSE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle Model
Amr E. Mohamed
 
Ch2-2.pptx
Ch2-2.pptxCh2-2.pptx
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
Mohamed Essam
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptx
AmnaAhsaan1
 
Ch2
Ch2Ch2
Ch2
Limkri
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
HumzaWaris1
 

Similar to se02_SW_Process.ppt (20)

Process in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinProcess in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software Engineerin
 
Software process
Software processSoftware process
Software process
 
I
II
I
 
Process model rup
Process model rupProcess model rup
Process model rup
 
SE Sumerville 9th Chp 2
SE Sumerville 9th Chp 2SE Sumerville 9th Chp 2
SE Sumerville 9th Chp 2
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Ian Sommerville, Software Engineering, 9th Edition Ch2
Ian Sommerville,  Software Engineering, 9th Edition Ch2Ian Sommerville,  Software Engineering, 9th Edition Ch2
Ian Sommerville, Software Engineering, 9th Edition Ch2
 
مدخل الى هندسة البرمجيات _ Introduction to Software Engineering
مدخل الى هندسة البرمجيات _ Introduction to Software Engineeringمدخل الى هندسة البرمجيات _ Introduction to Software Engineering
مدخل الى هندسة البرمجيات _ Introduction to Software Engineering
 
SE-03.pptx
SE-03.pptxSE-03.pptx
SE-03.pptx
 
Ch2
Ch2Ch2
Ch2
 
Ch 2 Software Engineering
Ch 2 Software EngineeringCh 2 Software Engineering
Ch 2 Software Engineering
 
SOFTWARE ENGINEERING PART 1
SOFTWARE ENGINEERING PART 1SOFTWARE ENGINEERING PART 1
SOFTWARE ENGINEERING PART 1
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
 
SE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle ModelSE18_Lec 02_Software Life Cycle Model
SE18_Lec 02_Software Life Cycle Model
 
Ch2-2.pptx
Ch2-2.pptxCh2-2.pptx
Ch2-2.pptx
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Chapter 2.pptx
Chapter 2.pptxChapter 2.pptx
Chapter 2.pptx
 
Ch2
Ch2Ch2
Ch2
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 

Recently uploaded

Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
Assignment_4_ArianaBusciglio Marvel(1).docx
Assignment_4_ArianaBusciglio Marvel(1).docxAssignment_4_ArianaBusciglio Marvel(1).docx
Assignment_4_ArianaBusciglio Marvel(1).docx
ArianaBusciglio
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
ak6969907
 
MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...
MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...
MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...
NelTorrente
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 

Recently uploaded (20)

Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
Assignment_4_ArianaBusciglio Marvel(1).docx
Assignment_4_ArianaBusciglio Marvel(1).docxAssignment_4_ArianaBusciglio Marvel(1).docx
Assignment_4_ArianaBusciglio Marvel(1).docx
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
 
MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...
MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...
MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 

se02_SW_Process.ppt

  • 1. 1 Chapter 2 Software Processes An overview of conventional software process models, Rational Unified Process, and CASE tools
  • 2. 2 Objectives  To introduce software process models  To describe three generic process models and when they may be used  To describe outline process models for requirements engineering, software development, testing and evolution  To explain the Rational Unified Process model  To introduce CASE technology to support software process activities
  • 3. 3 Topics covered  Software process models  Process iteration  Process activities  The Rational Unified Process  Computer-aided software engineering
  • 4. 4 The software process  A structured set of activities required to develop a software system  Specification;  Design;  Validation;  Evolution.  A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
  • 5. 5 Generic software process models  The waterfall model  Separate and distinct phases of specification and development.  Evolutionary development  Specification, development and validation are interleaved.  Component-based software engineering  The system is assembled from existing 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.
  • 7. 7 Waterfall model phases  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. One phase has to be complete before moving onto the next phase.
  • 8. 8 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.
  • 9. 9 Evolutionary development  Exploratory development  Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer.  Throw-away prototyping  Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.
  • 11. 11 Evolutionary development  Problems  Lack of process visibility;  Systems are often poorly structured;  Special skills (e.g. in languages for rapid prototyping) may be required.  Applicability  For small or medium-size interactive systems;  For parts of large systems (e.g. the user interface);  For short-lifetime systems.
  • 12. 12 Component-based 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.  This approach is becoming increasingly used as component standards have emerged.
  • 14. 14 Process iteration  System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems.  Iteration can be applied to any of the generic process models.  Two (related) approaches  Incremental delivery;  Spiral development.
  • 15. 15 Incremental delivery  Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality.  User requirements are prioritised and the highest priority requirements are included in early increments.  Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.
  • 17. 17 Incremental development advantages  Customer value can be delivered with each increment so system functionality is available earlier.  Early increments act as a prototype to help elicit requirements for later increments.  Lower risk of overall project failure.  The highest priority system services tend to receive the most testing.
  • 18. 18 Extreme programming  An approach to development based on the development and delivery of very small increments of functionality.  Relies on constant code improvement, user involvement in the development team and pairwise programming.  Covered in Chapter 17
  • 19. 19 Spiral development  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.
  • 20. 20 Spiral model of the software process
  • 21. 21 Spiral model sectors  Objective setting  Specific objectives for the phase are identified.  Risk assessment and reduction  Risks are assessed and activities put in place to reduce the key risks.  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.
  • 22. 22 Process activities  Software specification  Software design and implementation  Software validation  Software evolution
  • 23. 23 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;  Requirements elicitation and analysis;  Requirements specification;  Requirements validation.
  • 25. 25 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.
  • 26. 26 Design process activities  Architectural design  Abstract specification  Interface design  Component design  Data structure design  Algorithm design
  • 28. 28 Structured methods  Systematic approaches to developing a software design.  The design is usually documented as a set of graphical models.  Possible models  Object model;  Sequence model;  State transition model;  Structural model;  Data-flow model.
  • 29. 29 Programming and debugging  Translating a design into a program and removing errors from that program.  Programming is a personal activity - there is no generic programming process.  Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process.
  • 31. 31 Software validation  Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer.  Involves checking and review processes and system testing.  System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.
  • 33. 33 Testing stages  Component or unit 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.
  • 35. 35 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.
  • 37. 37 The Rational Unified Process  A modern process model derived from the work on the UML and associated process.  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.
  • 38. 38 RUP phase model Phase iteration Inception Elaboration Construction Transition
  • 39. 39 RUP phases  Inception  Establish the business case for the system.  Elaboration  Develop an understanding of the problem domain and the system architecture.  Construction  System design, programming and testing.  Transition  Deploy the system in its operating environment.
  • 40. 40 inception Rational Unified Process software increment Release Inception Elaboration construction transition production inception elaboration
  • 41. 41 RUP Phases Inception Elaboration Construction Transition Production UP Phases Workflows Requirements Analysis Design Implementation Test Iterations #1 #2 #n-1 #n Support
  • 42. 42 RUP Work Products Inception phase Elaboration phase Construction phase Transition phase Vision document Init ial use-case model Init ial project glossary Init ial business case Init ial risk assessment . Project plan, phases and it erat ions. Business model, if necessary. One or more prot ot ypes I nc e pt i o n Use-case model Supplement ary requirement s including non-funct ional Analysis model Soft ware archit ect ure Descript ion. Execut able archit ect ural prot ot ype. Preliminary design model Revised risk list Project plan including it erat ion plan adapt ed workflows milest ones t echnical work product s Preliminary user manual Design model Soft ware component s Int egrat ed soft ware increment Test plan and procedure Test cases Support document at ion user manuals inst allat ion manuals descript ion of current increment Delivered soft ware increment Bet a t est report s General user feedback
  • 43. 43 RUP good practice  Develop software iteratively  Manage requirements  Use component-based architectures  Visually model software  Verify software quality  Control changes to software
  • 44. 44 Static workflows Workflow Description Business modelli ng The business processes are modelled usingbu siness use cases. Requirements Actors who interact with the system are identified and use cases are developed to model the system requirements. Ana lysis and de sign A design model is created and do cumented usinga rchitectural models, component models, object models and sequence mod els. Implementation The components in the system are implemented and structured into implementation sub-systems. Automatic code generation from design models helps accelerate this process. Test Testing is an iterative process that is carried out inconjunc tion with implementation. System testing follows the completion of the implementation. Deployment A produc t release is created, distributed to users and installed in their workplace. Configurationand chang e management This supporting workflow managed change s to the system (see Chapter 29). Project management This supporting workflow manage s the system development (see Chapter 5). Envi ronment This workflow is concerned with making appropriate software tools available to the software development team.
  • 46. 46 longevity t0 t1 t2 t3 t4 t5 Functionality Time inappropriateness lateness shortfal l slop : adaptability original reqt. A B D C E waterfall model O : (t0) original reqt. A : ( at t1) an operational product, not satisfying the old to needs because poor understanding of needs. A - B : undergo a series of enhancements. B - D : the cost of enhancements increase, to build a new system. stop at t4. * cycle repeat itself Comparing Various Process Models
  • 47. 47 before understanding of the user`s need => increase in functionality t0 t1 t2 t4 Functionality Time Throwaway Prototyping and Spiral Model
  • 48. 48 Time t0 t1 t2 t4 Functionality Evolutionary Prototyping
  • 49. 49 t0 t1 t2 t4 Functionality t3 Time Automated Software Synthesis
  • 50. 50 t0 t1 t2 t4 Functionality Time user Reusable Software approach conventional approach Reusable Software versus Conventional
  • 51. 51 Computer-Aided Software Engineering  Computer-Aided Software Engineering (CASE) is software to support software development and evolution processes.  Activity automation  Graphical editors for system model development;  Data dictionary to manage design entities;  Graphical UI builder for user interface construction;  Debuggers to support program fault finding;  Automated translators to generate new versions of a program.
  • 52. 52 CASE technology  CASE technology has led to significant improvements in the software process. However, these are not the order of magnitude improvements that were once predicted  Software engineering requires creative thought - this is not readily automated;  Software engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these.
  • 53. 53 CASE classification  Classification helps us understand the different types of CASE tools and their support for process activities.  Functional perspective  Tools are classified according to their specific function.  Process perspective  Tools are classified according to process activities that are supported.  Integration perspective  Tools are classified according to their organisation into integrated units.
  • 54. 54 Functional tool classification Tool type Examples Planning tools PERT tools, estimation tools, spreadsheets Editing tools Text editors, diagram editors, word processors Change management tools Requirements traceability tools, change control systems Configuration management tools Version management systems, systembuilding tools Prototyping tools Very high-level languages, user interface generators Method-support tools Design editors, data dictionaries, code generators Language-processing tools Compilers, interpreters Program analysis tools Cross reference generators, static analysers, dynamic analysers Testing tools Test data generators, file comparators Debugging tools Interactive debugging systems Documentation tools Page layout programs,image editors Re-engineering tools Cross-reference systems, program re-structuring systems
  • 55. 55 Activity-based tool classification Specification Design Implementation V erification and V alidation Re-eng ineering tools Testing tools Debugg ing tools Program analysis tools Language-processing tools Method suppor t tools Prototyping tools Configuration management tools Change management tools Documentation tools Editing tools Planning tools
  • 56. 56 CASE integration  Tools  Support individual process tasks such as design consistency checking, text editing, etc.  Workbenches  Support a process phase such as specification or design, Normally include a number of integrated tools.  Environments  Support all or a substantial part of an entire software process. Normally include several integrated workbenches.
  • 57. 57 Tools, workbenches, environments Single-method workbenches Gener al-purpose workbenches Multi-method workbenches Langua ge-specific workbenches Programming T esting Analysis and design Integrated envir onments Process-centr ed envir onments File compar ators Compilers Editors Envir onments Workbenches T ools CASE technology
  • 58. 58 Key points  Software processes are the activities involved in producing and evolving a software system.  Software process models are abstract representations of these processes.  General activities are specification, design and implementation, validation and evolution.  Generic process models describe the organisation of software processes. Examples include the waterfall model, evolutionary development and component-based software engineering.  Iterative process models describe the software process as a cycle of activities.
  • 59. 59 Key points  Requirements engineering is the process of developing a software specification.  Design and implementation processes transform the specification to an executable program.  Validation involves checking that the system meets to its specification and user needs.  Evolution is concerned with modifying the system after it is in use.  The Rational Unified Process is a generic process model that separates activities from phases.  CASE technology supports software process activities.