ICS 121
and Lifecycle Models
– Personnel
– Basic Phases
– Potential Difficulties
– Validation, Verification, and
Testing Problem Definition Validation Requirements Change Validation Operation Revalidation Requirements Specification Validation Architectural Design Specification Verification Implementation and Integration Testing
ICS 121
Problems: Essence and Accidents
●
Software is conceptual (intangible)
●
Essence: difficulties inherent in the intrinsic nature of
software
●
Accidents: difficulties encountered today, but not
inherent in software production
●
Accidents are amenable to research breakthroughs
●
Essence constitutes those problems that are unsolvable
–
complexity–
conformity–
changeability–
invisibilityICS 121
Software Production Personnel
●
Client – individual or organization that want product to
be developed
●
Developer(s) – (members of) organization producing
product
●
User – person on whose behalf client has commissioned
developer, person(s) who will utilize software in
operation
●
internal software development: client = developer
ICS 121
THROUGH PROCESS
●
Quality Software Products developed through
–
systematic software processes–
with explicit product quality requirements●
Effective testing and analysis must be included
–
incremental analysis activities–
to complement synthesis activities●
Powerful tools and processes are essential to
assure effectiveness
• Process Models
• Processes
ICS 121
What is a Process?
●
Device for producing a product (getting job done)
●
Indirect nature
–
Process description (program) created to describe wide class ofinstances
●
Humans create process descriptions (models or
programs) to solve classes of problems
●
Software Processes:
devices for creating and evolving software
products
ICS 121
The Lifecycle Approach
Major Components of a Lifecycle Model:
• Phases
• Reviews
• Intermediate Products
●
Phasing promotes manageability and provides
organization
●
Reviews assure ultimate satisfaction of requirements
●
Intermediate products promote visibility and assure
ICS 121
Intermediate Software Products
●
Objectives:
–
Demarcate end of phases–
Enable effective reviews–
Specify requirements for next phase●
Form:
–
Rigorous–
Machine processible ●Content:
–
Specifications–
Tests–
DocumentationICS 121
Phases of a SW Lifecycle Model
Requirements Change Validation Operation and Revalidation Validation Verification Implementation and Integration Testing Requirements Analysis + Specification Design Maintenance
ICS 121
Requirements Analysis and Specification
●
Problem Definition —> Requirements Specification
–
determine exactly what client (and user) wants and processconstraints
–
develop a contract with client–
what task the product is to do●
Difficulties
–
client asks for wrong product–
client is computer/software illiterate–
specifications may be ambiguous, inconsistent, incomplete●
Validation
–
extensive specification reviews to check that requirementsspecification satisfies client needs
–
look for ambiguity, consistency, incompleteness–
check for feasibility, testabilityICS 121
Design
●
Requirements Specification —> Design
–
develop architectural design (system structure): decomposesoftware into modules with module interfaces
–
develop detailed design (module specifications): select algorithmsand data structures
–
maintain record of design decisions and traceability–
how the product is to do its task●
Difficulties
–
miscommunication between module designers–
design may be inconsistent, incomplete, ambiguous●
Verification
–
extensive design reviews (inspections with checklists) todetermine that design conforms to requirements
–
check module interactionsICS 121
Implementation and Integration
●
Design —> Implementation
–
implement modules and verify they meet their specifications–
combine modules according to architectural design–
how the product does its task●
Difficulties
–
module interaction errors–
order of integration has a critical influence on product quality andproductivity
●
Verification and Testing
–
extensive code reviews (inspections with checklists) to determinethat implementation conforms to requirements and design
–
develop and test on unit/module test plan: focus on individualmodule functionality
–
test on integration test plan: focus on module interfaces–
test on system test plan: focus on requirements and determineICS 121
Operation and Maintenance
●
Operation —> Change
–
maintain software after (and during) user operation–
integral part of process–
determine whether product as a whole still functions correctly●
Difficulties
–
design not extensible–
lack of up-to-date documentation–
personnel turnover●
Verification and Testing
–
extensive review to determine that change is made correctly andall documentation updated
–
test to determine that change is correctly implemented–
test to determine that no inadvertent changes were made tocompromise system functionality (check that no affected software has regressed)
ICS 121
Lifecycle Models
●
Over time different lifecycle models were developed, e.g.,
–
build-and-fix model–
waterfall model–
prototyping model–
incremental model–
spiral model–
....●
Different lifecycle models decompose software
engineering activities in different ways
ICS 121
Build and Fix Approach
–
Build entire product; deliver to client who requires changes; change untilclient feels software can be used productively
O pe ra tion B u ild Firs t Ve rsion D e velo pm e nt M a int en an c e I nt erm e dia te P ro du ct M od ified P ro du ct (un til c lie nt is sat isf ie d )
ICS 121
Stagewise Development
–
Software developed in successive stages (lifecycle phases)P ro ble m De fin it io n Va lida tio n I nt eg ra tion I nt eg ra tio n a nd S y s t em Te s tin g R e qu ire m e nt s C h an ge Valida tio n P h a ses O p e rat io n Re va lid at io n D e tailed D e s ig n S p e cific a tion Ve rificat io n Re qu irem e n ts Sp e cif ic a tio n Va lid a tion A rc h it ectu ra l De s ign S p ec ific at io n
Ve rif ica tio n
Im p lem e n ta tion U nit/ M od u le Te s ting M a int en a nc e Re vie w s In term e d ia te P rod uct V & V S o ft wa re De ve lo p m en t
ICS 121
Waterfall Model [Royce,1970]
–
Includes feedback confined between successive phase to minimize impactPro ble m Defin it io n
Va lidatio n I nt eg ration I nt eg ra tion a nd S yst em Testin g R e qu ire m e nt s C h an ge Validatio n Ph a ses Op e rat io n Re va lid at io n D e taile d D e sig n S p ecif ication Ve rificat io n Re qu irem en ts
Spe cif ica tio n
Va lida tion
Arch it ect ura l De sign Sp ecifica tio n
Ve rif ica tio n
I m ple me n ta tion
U nit/ Mod ule Te sting Maint en a nce Review s In term ed iat e P rod u ct V& V Sof tw are D eve lop m e nt
ICS 121
Test Development
–
Develop Test Plans in conjunction with each lifecycle phaseP ro ble m De fin it io n Va lid at io n In te gra tion I nt eg ra tion a nd S y s t em Tes tin g O p e rat io n R ev a lid at io n D e ta ile d D e s ig n S p e c if ic a tio n V erific at io n Re q uire m en ts S pe c ific at io n Valida tio n A rc h it ec t ura l De s ign S p ec ific a tion Ve rifica tio n U n it Te s t P lan In te g ratio n Te s t P la n S y s tem / A c c e pta n c e Te s t P la n M o du le I nt erf ac e Te st P lan Re v iew s In te rm ed ia te P rod u ct V erific at io n S o ft wa re D eve lo p m en t Tes t D ev e lo p m en t Te s t P lan Tes t Us e I m ple m en ta tion U nit/ M od u le Te s ting
ICS 121
Exploratory Programming
–
Develop outline specification because full requirements are not known,build system and expose to user review, modify system until performance is adequate Build Software System O peration Development Maintenance Intermediate Product Develop Outline Specificaiton U se
ICS 121
Prototyping Model
–
Develop prototype implementation to establish requirements, thenfollow traditional lifecycle (could also have feedback)
R ap id Pro totype Va lid at ion In te gra tion I nt eg ra tion a nd Syst em Testing R e qu irem e n ts C h an g e Va lida tion D e tailed D e sig n S p ecif ica tion
Verificat ion Re q uire m en ts
Spe cificat io n
Valida tio n
Archit ect ura l De sign Sp ecification
Ve rifica tio n
I m ple men ta tion
U nit/ M odu le Te sting Ma int en a nce Review s In te rm ediat e P rod u ct V &V S of twa re D eve lop m e nt
Op e rat io n
ICS 121
Evolutionary/Incremental Model
–
Develop first implementation, develop successive increments of anoperational product until complete, direction of evolution determined by operational experience (development process should use waterfall
model) O p era tion D e v e lo p F i r s t B u i ld Te s t I n t e g r a te a n d Te s t D e v e l o p m e n t M a i n t e n a n c e I n t e r m e d ia te P r o d u c t Develop Increment
ICS 121
Transformation Model
–
Develop formal specification,transform into implementation usingcorrectness-preserving transformations
Pro ble m De fin it io n
Validatio n In te gratio n Te sting R equ ireme n ts C han ge Va lidatio n Transfo rm ation a nd Op timizat io n Ve rif icatio n F orm al Spe cification Ve rificat ion R e qu irem ents
Specif ica tion
Va lid at io n
Op erat io n
R eva lid at ion M a int en a nce
In term ed iat e Prod uct
Sof tware D eve lop me nt
ICS 121
Simplistic View of Spiral Model
–
Include risk analysis with each development phaseOpera tion Re validat io n R isk Analysis R e qu iremen ts Specificat io n Validation Verification D esign Specificat io n R isk Ana lysis Ra pid
Prot otype Validation R isk Ana lysis
Imp leme ntation and I ntegrat ion
Testin g R isk Analysis
Maint enance Soft ware Develop men t
Interme diate Product V&V R isk Analysis R eviews R isk Analysis R e qu iremen ts Ch ange Valida tion
ICS 121
The Spiral Model [Boehm,1988]
Concept of Operation Requirements Plan Requirements OAC Risk Assessment
Risk Item Set
Risk Management Plan
Requirements Risk Control Requirements Validation Abstract Specification Plan Abstract Specifcation OAC Risk Assessment Risk Control Abstract Specification Abstract Specification Validation Concrete Specification Plan Concrete Specification OAC Concrete Specification Concrete Specification Validation and Verification Software Development Plan Risk Assessment Risk Control Progress through steps Cumulative cost Evaluate alternatives, identify, resolve risks
Develop, verify next-level product Plan next phases
Commit Review partition Determine objectives, alternatives, constraints (OAC)
ICS 121
Capability Maturity Model (CMM)
[Watts Humphrey,1989]
●
CMM is not a software lifecycle model
●
Strategy for improving the software process regardless
of the process model followed
–
Basic premise: the use of new software methods alone will not improveproductivity and quality, but rather software management is in part the cause of problems
–
CMM assists organizations in providing the infrastructure required forachieving a disciplined and mature process
●
Includes both,
–
technical andICS 121
Capability Maturity Model - 2
●
Five maturity levels
1. initial – ad hoc process
2. repeatable process – basic project management 3. defined process – process modeling and definition 4. managed process – process measurement
5. optimizing process – process control and dynamic improvement
●
to aid in maturation, the SEI has a series of
questionnaires and conducts process assessments that
highlight current shortcomings
ICS 121
ISO 9000
●
Further attempt to improve software quality based on
International Standards Organization (ISO)
●
ISO 9000 = series of five related standards
–
within ISO 9000 standard series ISO 9000-3 focuses on software andsoftware development
●
Basic features:
–
stress on documenting the process in both words and pictures–
requires management commitment to quality–
requires intensive training of workers–
emphasizes measurement●
Adopted by over 60 countries (e.g., USA, Japan,
European Union, ...)
●
Company needs to be certified that its process complies
ICS 121