Software Process
Software Process
• User requirements are prioritised and the highest priority requirements are included in
early increments.
increment # n
Co m m u n i c a t i o n
Pl a n n i ng
M o d e l i n g
analy s is Co n s t ru c t i o n
des ign
c ode De p l o y m e n t
t es t d e l i v e ry
fe e d b a c k
deliv ery of
increment # 2 nt h increment
Co m m u n i c a t i o n
Pl a n n i ng
M o de l i n g
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry
fe e d b a c k
deliv ery of
increment # 1 2nd increment
Co m m u n i c a t i o n
Pl a n n i n g
M o d e l i ng
analy s is Co n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry deliv ery of
fe e db a c k
1st increment
• Early increments act as a prototype to help elicit requirements for later increments
• The highest priority system services tend to receive the most testing
Disadvantage – Incremental Model
• First step gets a quick version that does part of project.
C o n s t r u c t io n
c om ponent reus e
Team # 2 aut om at ic code
Com m unicat ion generat ion
t est ing
Mo d eling
b u si n e ss m o d e l i n g
dat a m odeling
p ro ce ss m o d e l i n g
Planning
Co nst r uct io n De ploym e nt
Team # 1 co m p o n e n t re u se int egrat ion
a u t o m a t i c co d e
g e n e ra t i o n deliv ery
Mode ling t e st i n g feedback
business modeling
dat a modeling
process modeling
6 0 - 9 0 days
U_I_C_3_Page 4 of 19
Disadvantage - RAD
• Does not work for all projects -particularly large projects or when project is high risk.
Evolutionary Process Models
• Software evolves over time (web pages are a prime example)
• Limited version is needed to meet business pressures.
• Time does not allow a full and complete system to be developed.
• Evolutionary models are iterative as software engineers develop increasingly more
complete and complex systems
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
• Throw-away prototyping
Objective is to understand the system requirements. Should start with poorly
understood requirements
Evolutionary development
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
U_I_C_3_Page 5 of 19
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
Prototyping
• Prototypes are built when goals are general and not specific.
• Prototyping can be used as a standalone process or by one of the processes presented.
• The prototype serves as the first system. Users get a feel for the actual system and
developers get something built quickly.
• A prototype is intended for short term use but too often they are used much longer.
Prototyping
Qu i ck p l an
Co m m u n icat io n
Mo d e l i n g
Qu i ck d e si g n
Deployment
De live r y
& Fe e d b ack Co n st r u ct io n
of
p r o t o t yp e
U_I_C_3_Page 6 of 19
The Spiral Model
• An evolutionary model that couples the iterative nature of prototyping
with the controlled, systematic aspects of waterfall model.
• Spiral model is often developed in a series of releases or versions.
• Better for large projects.
Spiral
Model
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery cod e
feedback test
rep resent s t he st at e
Under o f a so f t ware eng ineering
act ivit y o r t ask
development
A wait ing
changes
Under review
Under
revision
Baselined
Done
Development System
and integration validation
Formal R1 Executable
R2 R3
specification program
P1 P2 P3 P4
• Applicability
Critical systems especially those where a safety or security case must be made
before the system is put into operation
Aspect-Oriented S/W Development
• Nearly all SW has localized features, functions and information content.
• User or customer concerns or needs must be included. These can be high-level
concerns like security or lower-level such as marketing business rules or systemic such
as memory management.
• Aspect-Oriented process is new and still developing.
U_I_C_3_Page 12 of 19
The Unified Process (UP)
Ela b o r a t io n
Inc e p t io n
c o nst r uc t io n
Release
t r a nsit io n
soft ware increment
p r o d uc t io n
UP Phases
Incept ion Elaborat ion Const ruct ion Transit ion Product ion
Workflows
Requirements
Analys is
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n
U_I_C_3_Page 13 of 19
UP Work Products
Incept ion phase
Software specification
• The process of establishing what services are required and the constraints on the
system’s operation and development
Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirements
document
Co m p o n e n t -
sc e na r i o- ba se d f l ow- or i e nt e d L e v e l D e sig n
e l e me nt s e l e me nt s
use-cases - text data flow diagrams
use-case diagrams control-flow diagrams
activity diagrams processing narratives
swim lane diagrams
In t e r f a c e D e sig n
Analysis Model
A r c h it e c t u r a l D e sig n
c l a ss- ba se d be ha v i or a l
e l e me nt s e l e me nt s
class diagrams state diagrams
analysis packages sequence diagrams
CRC models D a t a / Cla ss D e sig n
collaboration diagrams
Design Model
U_I_C_3_Page 15 of 19
Design process activities
• Architectural design
• Abstract specification
• Interface design
• Component design
• Data structure design
• Algorithm design
The Software Design Process
Requirements
specificatio n
Design activities
Software Data
System Interface Component Algorithm
specificatio n structure
architecture specificatio n specificatio n specificatio n
specificatio n
Design products
Design methods
• Systematic approaches to developing a software design
• Possible models
Data-flow model
Entity-relation-attribute model
Structural model
Object models
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
U_I_C_3_Page 16 of 19
The debugging process
Software validation
• Verification and validation 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
Unit
testing
Module
testing
Sub-system
testing
System
testing
Acceptance
testing
• System testing
Testing of the system as a whole.
Testing of emergent properties
• Acceptance testing
Testing with customer data to check that it is acceptable
Testing phases
Software evolution
• Software is inherently flexible and can change.
Existing New
systems system
U_I_C_3_Page 18 of 19
Automated process support (CASE)
• 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
Case technology
though not the order of magnitude improvements that were once predicted
Software engineering is a team activity and, for large projects, much time is
spent in team interactions. CASE technology does not really support these
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
U_I_C_3_Page 19 of 19
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
Tools, workbenches, environments
CASE
technology
Analysis and
Programming Testing
design