Iterative Software Development - from Theory to Practice Implementing the Unified Software Development Process in RAFAEL Amir Tomer, Boaz Shani, Ely Bonne
RAFAEL at a Glance USDP in Rafael - 2
The Waterfall Model Requirements Verification Req. Change Verification Royce, 1970 Specification Verification Design Verification Implementation Testing Integration Testing Development Maintenance Maintenance Retirement USDP in Rafael - 3
What s wrong with the Waterfall model? Document-based verification until late stages Attempt to stipulate unstable requirements too early Risk mitigation postponed Operational problems discovered too late Lengthy modification cycles and much rework The inevitable result... USDP in Rafael - 4
The Unified Software Development Process Core Workflows Process Supporting Business Modeling Requirements Analysis and Design Implementation Test Deployment Config. & Change Management Project Management Environment Inception Elaboration Phases Construction Transition Organization along Content aka RUP preliminary iteration iter. #1 iter. #2 iter. #n iter. #n+1 iter. #n+2 Organization along Time iter. #m iter. #m+1 USDP in Rafael - 5
Iterative Development Overview Transition Construction Elaboration Inception Operational system builds Operational skeletal system System scope & concept Solution alternatives SW/HW breakdown System architecture USDP in Rafael - 6
System Level Stages & Products Inception Elaboration Construction 9 System Integration CSCI A CSCI B... 4 Software Planning 3 System Design 2 System Requirements 1 System Boundary CSCI N Operational system builds SSDD System / Subsystem Design Description System Charter / Vision Document SDP + STP S/W Development Plan S/W Test Plan SSS System / Subsystem Specification USDP in Rafael - 7
CSCI Level Stages Operational CSCIs Elaboration Construction 8 CSCI Validation 7 Coding & Unit Testing 6 Software Design Source code modules SAD/SDD Software Architecture/ Design Description 5 Software Requirements SRS S/W Req'rmnts Spec. USDP in Rafael - 8
Stage 1: System Boundary Purpose Provide a common understanding about the system Activities Scope client developers other stakeholders Relationship with external systems Main requirements Products System charter / Vision document Level: System Phase: Inception USDP in Rafael - 9
Stage 2: System Requirements Purpose Define system requirements at the best level of knowledge Activities Requirements elicitation from contract, proposal and other documents Requirements classification and prioritization QFD may be utilized Products SSS = System/Subsystem Specification Use Case modeling recommended Requirements base Level: System Phase: Inception USDP in Rafael - 10
Stage 3: System Design Purpose Provide a stable proposed solution and architecture Activities System architectural design Hardware/software breakdown including requirements allocation Feasibility tests to select alternatives Products SSDD = System/Subsystem Design Description ICD = Interface Control Description External / internal interfaces Either separate or included in SSDD Level: System Phase: Inception USDP in Rafael - 11
Stage 4: Software Planning Purpose Generating a general plan for the software development Activities 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 Products SDP = Software Development Plan Risk table and mitigation plan Appendix: 1st iteration detailed plan STP = Software Test Plan Level: System Phase: Inception USDP in Rafael - 12
Stage 5: Software Requirements Purpose Provide a clear and detailed definition of the software requirements allocated to the appropriate CSCI At the current iteration level Activities Deriving software requirements from system requirements Building/updating the Use Case model Products 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: CSCI Phase: Elab./Cons. USDP in Rafael - 13
Stage 6: Software Analysis & Design Purpose Provide an architecture and design, in various aspects, of the current iteration based on previous iterations + current requirements Activities Analysis and design modeling Using UML models Products UML models Class model State charts Sequence diagrams Detailed design SAD = Software Architecture Description STD = Software Test Description Top level design Level: CSCI Phase: Elab./Cons. USDP in Rafael - 14
Stage 7: Coding and Unit Testing Purpose Implementation of software modules Activities Coding Programming, compilation, link Individual module testing Informal documentation Test coverage and completion approved by STL Products Approved code modules Level: CSCI Phase: Elab./Cons. USDP in Rafael - 15
Stage 8: CSCI Validation and Approval Purpose Approve the CSCI s readiness for system integration Activities Integrating the modules comprising the CSCI Performing the tests specified in the STD Products Approved CSCI version, ready for system integration STR = Software Test Report Detailed results of STD tests Level: CSCI Phase: Elab./Cons. USDP in Rafael - 16
Stage 9: System Integration and Testing Purpose Accomplish the iteration with an operational approved version of the system Activities Integration System testing, according to system test specifications Level: System Phase: Elab./Cons. Products Approved version of the system, ready for delivery USDP in Rafael - 17
System Level Reviews Iteration Completion Review Inception Elaboration Construction CSCI A CSCI A 9 System Integration CSCI B CSCI B... 9 System Integration... 4 Software Planning 3 System Design 2 System Requirements 1 System Boundary CSCI N CSCI N Test Readiness Review Critical Design Review (S/W) Test Readiness Review System Design Review System Requirements Review external review peer review USDP in Rafael - 18
CSCI Level Review Elaboration Construction 8 CSCI Validation 7 Coding & Unit Testing 6 Software Design Software Design Review Software Specification Review selected iterations 5 Software Requirements Iteration Plan Review external review peer review USDP in Rafael - 19
Conclusions USDP-based iterative software development has many advantages over the waterfall model The process may be adapted and tailored to host most of MIL-STD STD-498 terminology Tailoring requires modified templates The iterative process complies with RAFAEL software development procedures The tailored process is well accepted by engineers, managers and clients USDP in Rafael - 20
Contacts Dr. Amir Tomer Director of Systems & Software Engineering Processes RAFAEL P.O.Box 2250/1P Haifa, 31021 ISRAEL (+972)-4-879-5989 tomera@rafael.co.il USDP in Rafael - 21