120 likes | 288 Views
CS405 Systems Development Life Cycle. Traditional Project Phases. Wild Enthusiasm Growing Concern Mounting Terror Resigned Fatalism Persecution of the Innocent Promotion of the Uninvolved. SDLC Phases. SDLC phases Project Initiation Requirements definition Detail design Construction
E N D
Traditional Project Phases • Wild Enthusiasm • Growing Concern • Mounting Terror • Resigned Fatalism • Persecution of the Innocent • Promotion of the Uninvolved
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
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
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%
SDLC Phases • How • User interviews • Technology evaluation • Walkthroughs of the proposed system • “Playscripts” • Management review and approval to procede to the next phase
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%
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
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
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
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
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”)