CS405 Systems Development Life Cycle 1 Traditional Project Phases • • • • • • Wild Enthusiasm Growing Concern Mounting Terror Resigned Fatalism Persecution of the Innocent Promotion of the Uninvolved 2 SDLC Phases • SDLC phases • • • • • • Project Initiation Requirements definition Detail design Construction Integration testing Implementation • “Methodology” • A formal statement of the purpose, products and tasks for each phase • Many software development companies have either created or adopted a methodology to ensure process consistency and system quality 3 SDLC Phases • Project initiation (5% of total effort) • Why » Determine overall desirability » Allow project to be prioritized vis-à-vis other projects • What » Project Initiation Report outlining • Value of the project • Proposed technologies • Projected cost of the project • Expected timeline » accurate +/- 100% • How » Interviews with the business » Technology evaluation 4 SDLC Phases • Requirements Definition (15% of total effort) • Why » Create a “contract” for what is to be developed • What » System Functional Requirements • A business flow showing how the users will interact with the system in performing various supported business functions • All input/output displays/reports should be defined precisely in terms of the data content at the data field level (see Data Dictionary) and the desired functionality. Exact screen/report layout is not important • A Data Dictionary defining each data field to be used on displays and reports • Detailed project plan for next phase; high-level project plan for remaining phases • Revised project cost and timeline • Should identify potential risk factors; e.g. new technology, multi-national project organization, etc. • Accurate to +/- 50% 5 SDLC Phases • How » User interviews » Technology evaluation » Walkthroughs of the proposed system • “Playscripts” » Management review and approval to procede to the next phase 6 SDLC Phases • Detail design (20% of total effort) • Why » Finalize the design of the entire system for sponsor approval and actual development » Create a basis for vendor bidding and selection • What » Final in/output displays/reports » Detail description of inputs/outputs to/from other systems » Final logical database design » High-level software specifications » Revised project cost/timeline accurate to +/- 10% 7 SDLC Phases • How » » » » » » Detail display/report design Detail interface design Detail logical database design High-level software design Validation sessions with sponsors Project planning and cost estimates • Remainder of the project phases should be planned in detail 8 SDLC Phases • Construction and Unit Testing (20% of total effort) • Why » Develop a working system » Demonstrate that individual components perform as specified. » Prepare for integration testing and implementation • What » » » » » A working database Working software Unit test results Integration test plan Implementation plan • How » Detail logic design » Coding » Unit testing 9 SDLC Phases • Integration Testing (30% of total effort) • Why » Ensure that all elements of the systems interact correctly under all circumstances » Ensure that the system will give acceptable performance under the volume of processing expected • What » A fully tested system » Completed system documentation » Authorization to proceed to implementation 10 SDLC Phases • How (a “black art”) » String testing » Scenario testing • “day-in-the-life” testing • playscripts » Parallel testing • Run an actual day and compare to what the old system produced • Very time consuming/expensive » Implementation testing • Test conversion programs, history loading programs, etc. » Performance testing 11 SDLC Phases • Implementation (10% of total effort) • Why » Implement a working system • What » “live” application • How » » » » » » Hardware installation Software installation/roll out User training Data conversion Cut over Post-implementation support (“hypercare”) 12