How Systems are Developed The Commercial Life Cycle Model Common form of the Software Life Cycle Used through the commercial, industrial, institutional government communities University of Houston Clear Lake Science and Computer Engineering James C. Helm, Ph.D.,P.E. Engineering Division Chair Example Software Development Process • This process illustrates the major steps and flow that might be typical of a DoD or major Government Contractor. • The documents would be obtained from the DoD standard, MIL-STDs, or IEEE • NASA Software Document Standard, Software Engineering Program, NASASTD-2100-91 Example Software Development Process System Requirements Completed Software Verification and Validation Test Design Test Cases D ENGINEERING BUILD Data Dictionary Software Architecture Design Software Requirements Analysis Formal Test Data A Interface Design Software Unit Testing Coding C Software Configuration Item Testing Software Component Testing SCM Release Software Configuration Management Validation Test Load Build C A HDR C RR A IDR Data Structure Design A DataBase Software Requirements D B Package or Declaration D B TPR D B C Metric Point Informal Test Data Formal SCCB A C C Algorithm Design Software Allocated Baseline A Engineering Change Control B Software Product Baseline PDL Flowchart A SOFTWARE REQUIREMENTS ANALYSIS Requirements Analysis Object Oriented Analysis Content Diagram Bound Limits Information Modeling Object Flow Diagram Object Specification State Transition Diagrams Structured Walkthroughs Requirements Comments Report PRELIMINARY DESIGN Object Oriented Design Object Reuse Information Modeling Object Flow Diagram Design Specification State Transition Diagrams Decision Tables Object Activation Tables Prototypes Structured Walkthroughs DETAILED DESIGN Object Oriented Design Object Reuse Design Specification Superior Refinement Structured Walkthrough Update Prototype Update Preliminary Desing into Test Case Design CODE Structured Programming Package Reuse Structured Codes Walkthrough Structured Test Walkthrough Update Software Development Folders Update Requirements Matrix Dr Jim Helm CSU / CSC INTEGRATION TEST Execute White Box Testing Execute Black Box Testing Review Test Results CSU Integration Top-Down Bottom-Up Sandwich Code / Test data Walkthrough Execute Interface Tests Execute Black Box Tests Update Software Development Folder Update Requirements Matrix Execute Regression Tests Review Test Results CSCI INTEGRATION TEST CSCI Integration Top-Down Bottom-Up Sandwich Test / Requirements Metrix Test Walkthrough Formal Test Execution Test Results Review Final Test Results CSCI Verification BLOCK TEST VALIDATION TEST Formal Test Case Test Procedures Software Validation Test Reports Requirement Phase • Deals with all kinds of requirements – – – – – system software hardware human system Interface human in the loop Design Phase • Normally consists of two parts – Preliminary Design – Detailed Design Code Phase • Implements the detailed design – Some form of programming language – Three possible coding options • top-down • bottom-up • middle-out Develop Large Driver to Stimulate System Establish/ Retain Required Databases Select Appropriate Compiler/ Assembler TOP-DOWN FROM DESIGN PHASE Determine Optimum Coding Strategy & Sequence Develop Several Drivers to Stimulate Subsystems OPTION 2 MIDDLE-OUT Initiate Appropriate Controls Follow Standards & Conventions Establish Software Library Final Integration is minimal Test Whole System Each Time OPTION 1 Select Appropriate Programming Support Environment Code Top Level CSC Then Next Level, etc. Code CSCs as functional threads Integration is moderate throughout Test Each Functional Thread OPTION 3 Develop many drivers to Stimulate CSUs BOTTOM-UP Code CSUs separately Test Each CSU Extensively Integration is Time Consuming Ready for I&t Correlation Between Specifications and Test • Match the kind of software being developed and the manner in which it is being implemented and integrated – Specification hierarchy – Test hierarchy Integration and Testing Phase • Major Activities shown on next slide • Determine early the selection and specification of the optimum test strategy • Select: tools, instrumentation, recording methods and SW drivers • Select environment: hardware configuration and location of tests