iterative software development - techniontomera/publications... · • usdp-based iterative...
TRANSCRIPT
Iterative Software Development Iterative Software Development --from Theory to Practicefrom Theory to Practice
AmirAmir Tomer, Tomer, Boaz Boaz ShaniShani, ,
Ely BonneEly Bonne
Implementing the Unified Software Implementing the Unified Software Development Process in RAFAELDevelopment Process in RAFAEL
unclassified USDP in Rafael - 2
RAFAEL at a Glance
unclassified USDP in Rafael - 3
The Waterfall Model
Maintenance
Retirement
VerificationRequirements
VerificationSpecification
VerificationDesign
TestingImplementation
TestingIntegration
VerificationReq. Change
Royce, 1970
DevelopmentMaintenance
unclassified USDP in Rafael - 4
What’s wrong with the Waterfall model?
•• DocumentDocument--based verification until late stagesbased verification until late stages•• Attempt to stipulate unstable requirements too earlyAttempt to stipulate unstable requirements too early•• Risk mitigation postponedRisk mitigation postponed•• Operational problems discovered too lateOperational problems discovered too late•• Lengthy modification cycles and much reworkLengthy modification cycles and much rework
TheTheinevitableinevitable
result...result...
unclassified USDP in Rafael - 5
The Unified Software Development Processaka RUP
BusinessModeling
Requirements
Analysisand Design
Test
Implementation
Deployment
Config. & ChangeManagement
ProjectManagement
Environment
InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransitionPhasesPhases
preliminaryiteration
iter.#1
iter.#2
iter.#n
iter.#n+1
iter.#n+2
iter.#m
iter.#m+1
Organization along Time
Org
aniz
atio
n al
ong
Con
tent
Core WorkflowsCore Workflows
Proc
ess
Proc
ess
Supp
ortin
gSu
ppor
ting
unclassified USDP in Rafael - 6
Iterative Development Overview
InceptionInceptionInceptionElaborationElaborationElaborationConstructionConstructionConstructionTransitionTransitionTransition
• System scope & concept• Solution alternatives• SW/HW breakdown• System architecture
• Operational skeletalsystem
• Operational systembuilds
unclassified USDP in Rafael - 7
SDP + STPSDP + STPS/W Development PlanS/W Development Plan
S/W Test PlanS/W Test Plan
SSSSSSSystem / SubsystemSystem / Subsystem
SpecificationSpecification
System Level Stages & Products
11System BoundarySystem Boundary
22System RequirementsSystem Requirements
33System DesignSystem Design
44Software PlanningSoftware Planning
CSCICSCIAA
CSCICSCIBB ... CSCICSCI
NN
99System IntegrationSystem Integration
System Charter / System Charter / Vision DocumentVision Document
SSDDSSDDSystem / SubsystemSystem / SubsystemDesign DescriptionDesign Description
Operational system buildsOperational system builds
Ince
ptio
nEl
abor
atio
nC
onst
ruct
ion
unclassified USDP in Rafael - 8
CSCI Level Stages
5Software Requirements
6Software Design
7Coding & Unit Testing
8CSCI Validation
Elab
orat
ion
Con
stru
ctio
n
SAD/SDDSAD/SDDSoftware Architecture/Software Architecture/
Design DescriptionDesign Description
SRSSRSS/W S/W Req'rmntsReq'rmnts Spec.Spec.
Source codeSource codemodulesmodules
Operational Operational CSCIsCSCIs
unclassified USDP in Rafael - 9
Stage 1: System Boundary•• PurposePurpose
– Provide a common understanding about the system
• client• developers• other stakeholders
•• ActivitiesActivities– Scope– Relationship with external systems– Main requirements
•• ProductsProducts– System charter / Vision document
Level: SystemPhase: Inception
unclassified USDP in Rafael - 10
Stage 2: System Requirements•• PurposePurpose
– Define system requirements• at the best level of knowledge
•• ActivitiesActivities– Requirements elicitation from contract, proposal
and other documents– Requirements classification and prioritization– QFD may be utilized
•• ProductsProducts– SSS = System/Subsystem Specification
• Use Case modeling recommended– Requirements base
Level: SystemPhase: Inception
unclassified USDP in Rafael - 11
Stage 3: System Design•• PurposePurpose
– Provide a stable proposed solution and architecture
•• ActivitiesActivities– System architectural design– Hardware/software breakdown
• including requirements allocation– Feasibility tests to select alternatives
•• ProductsProducts– SSDD = System/Subsystem Design Description– ICD = Interface Control Description
• External / internal interfaces• Either separate or included in SSDD
Level: SystemPhase: Inception
unclassified USDP in Rafael - 12
Stage 4: Software Planning•• PurposePurpose
– Generating a general plan for the software development
•• ActivitiesActivities– Risk Analysis– Iteration planning
• Detailed plan for 1st iteration• General plan for following iterations• Risk allocation to iterations
– Resource allocation– Testing concept and general planning
•• ProductsProducts– SDP = Software Development Plan
• Risk table and mitigation plan• Appendix: 1st iteration detailed plan
– STP = Software Test Plan
Level: SystemPhase: Inception
unclassified USDP in Rafael - 13
Stage 5: Software Requirements•• PurposePurpose
– Provide a clear and detailed definition of the software requirements allocated to the appropriate CSCI
• At the current iteration level
•• ActivitiesActivities– Deriving software requirements from system requirements– Building/updating the Use Case model
•• ProductsProducts– Use Case model
• Using CASE tools– SRS = Software Requirements Specification
• Functional requirements (Use Cases)• Non-functional requirements
– Software requirements base• Preferably as part of the system requirements base
Level: CSCIPhase: Elab./Cons.
unclassified USDP in Rafael - 14
Stage 6: Software Analysis & Design
•• PurposePurpose– Provide an architecture and design, in various aspects, of the
current iteration• based on previous iterations + current requirements
•• ActivitiesActivities– Analysis and design modeling
• Using UML models
•• ProductsProducts– UML models
• Class model• State charts• Sequence diagrams
– SAD = Software Architecture Description– STD = Software Test Description
Level: CSCIPhase: Elab./Cons.
Top level design
Detailed design
unclassified USDP in Rafael - 15
Stage 7: Coding and Unit Testing
•• PurposePurpose– Implementation of software modules
•• ActivitiesActivities– Coding
• Programming, compilation, link– Individual module testing
• Informal documentation• Test coverage and completion approved by STL
•• ProductsProducts– Approved code modules
Level: CSCIPhase: Elab./Cons.
unclassified USDP in Rafael - 16
Stage 8: CSCI Validation and Approval
•• PurposePurpose– Approve the CSCI’s readiness for system
integration•• ActivitiesActivities
– Integrating the modules comprising the CSCI– Performing the tests specified in the STD
•• ProductsProducts– Approved CSCI version, ready for system
integration– STR = Software Test Report
• Detailed results of STD tests
Level: CSCIPhase: Elab./Cons.
unclassified USDP in Rafael - 17
Stage 9: System Integration and Testing
•• PurposePurpose– Accomplish the iteration with an operational
approved version of the system•• ActivitiesActivities
– Integration– System testing, according to system test
specifications•• ProductsProducts
– Approved version of the system, ready for delivery
Level: SystemPhase: Elab./Cons.
unclassified USDP in Rafael - 18
11System BoundarySystem Boundary
22System RequirementsSystem RequirementsIn
cept
ion
Elab
orat
ion
Con
stru
ctio
n
33System DesignSystem Design
44Software PlanningSoftware Planning
System Requirements ReviewSystem Requirements Review
System Design ReviewSystem Design ReviewCSCICSCIAA
CSCICSCIBB ... CSCICSCI
NN
Test Readiness ReviewTest Readiness Review99
System IntegrationSystem Integration
CSCICSCIAA
CSCICSCIBB ... CSCICSCI
NN
99System IntegrationSystem Integration
external reviewexternal review
peer reviewpeer review
Critical Design Review (S/W)Critical Design Review (S/W)
Test Readiness ReviewTest Readiness Review
Iteration Completion ReviewIteration Completion ReviewSystem Level Reviews
unclassified USDP in Rafael - 19
CSCI Level Review
external reviewexternal review
peer reviewpeer review
Iteration Plan ReviewIteration Plan Review5
Software Requirements
Elab
orat
ion
Con
stru
ctio
n
Software Specification ReviewSoftware Specification Review
Software Design ReviewSoftware Design Review
6Software Design
7Coding & Unit Testing
8CSCI Validation
selectedselectediterationsiterations
unclassified USDP in Rafael - 20
Conclusions•• USDPUSDP--based iterative software development has based iterative software development has
many advantages over the waterfall modelmany advantages over the waterfall model•• The process may be adapted and tailored to host The process may be adapted and tailored to host
most of MILmost of MIL--STDSTD--498 terminology498 terminology– Tailoring requires modified templates
•• The iterative process complies with RAFAEL The iterative process complies with RAFAEL software development proceduressoftware development procedures
•• The tailored process is well accepted by engineers, The tailored process is well accepted by engineers, managers and clientsmanagers and clients
unclassified USDP in Rafael - 21
Contacts
Dr. Amir TomerDirector of Systems & Software
Engineering ProcessesRAFAEL
P.O.Box 2250/1PHaifa, 31021
ISRAEL(+972)-4-879-5989