Unit 17: SDLC Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation… Systems Development Life Cycle Preparation Phase Design Phase Development Phase Implementation Phase Maintenance Phase …. plus Evaluation …. Documentation throughout! Identify the need for a new computer system Preparation Phase Feasibility Study Determination of Initial Scope Determination of Initial Budget Estimate Determination of Initial Timetable Submit Formal Proposal to Management Management Approval and Funding Assemble the Project Team Preparation Phase Assemble the Project Team Organize the team, and Establish Project Standards Preparation Phase Design Phase Assemble the Project Team Organize the team, and Establish Project Standards Preparation Phase Design Phase Identification of User Needs Determination of Data Elements Input/Output Specifications -- Prototyping Determination of Data Flows Development of the Database Structure Creation of the Processing Specifications Preparation Phase Design Phase Development Phase Design and Development of Test Bed Coding (writing the programs) Testing Regimens Version Control Processes User Signoff DEVELOPMENT PHASE Develop Processing Specifications Business Event Data Capture Data Transmission Data Organization Storage Query Selection/Retrieval User Information Format/Presentation Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Business Event Business Event Business Event Business Event Business Event Storage Query Selection/Retrieval User Information Format/Presentation Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Business Event Business Event Business Event Business Event Business Event Storage Query Selection/Retrieval Query Selection/Retrieval Format/Presentation Query Selection/Retrieval Format/Presentation Query Selection/Retrieval Format/Presentation User User User User Information Format/Presentation Data Capture Input new records Update/Modify/Change fields Other locations: Update Modify/Change fields Delete records Edit Checks and Validation Checks? Data Transmission Network Interface Network addressing Network routing/handling Network delivery/verification Encryption? Feedback on transmission? Data Organization Storing in Master file? Transaction file Storing in multiple files? Update of multiple files with status? Generate notifications of update? Generate notification of Deletions? Edit Checks and Validation Checks? Log files of all changes made? Data Queries Automatic, done by machines Logical, done by programs Human driven Formatting and Presenting Response to a machine Response to display only Response to printers Response to other devices Response to error conditions? Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Data Capture Data Transmission Business Event Business Event Business Event Business Event Business Event Storage Query Selection/Retrieval Query Selection/Retrieval Format/Presentation Query Selection/Retrieval Format/Presentation Query Selection/Retrieval Format/Presentation User User User User Information Format/Presentation DEVELOPMENT PHASE Develop Processing Specifications Design/Develop Test Bed Test Script Test Data Critical Importance of the Test Script and Test Bed Testing must be carefully designed to… Make sure each program “works” correctly Make sure each program is accomplishing its purpose Make sure each program works with its surrounding programs Make sure the entire system works together correctly Make sure the system can function properly under full load/capacity Make sure the users can run the business with the system An integral part of good testing is “negative” testing. Negative testing answers the questions: • • • • • Does the system catch errors? Can the system be “broken”? Can the system controls by bypassed? Does the system fail gracefully? Can the system recover from failures? Error Traps Error traps: Notification only (warning) Processing Stop, with override capability Brick-wall traps Edit Checks vs. Validation Checks Edit checks Date, month, day of week, data-type, etc. Range testing Reasonableness testing Usually the criteria values are hard-coded into the program Validation checks Compares the entered value against another data table Valid customer number? valid employee number? valid produce code? etc. Typically used to ensure integrity with other data and files DEVELOPMENT PHASE Develop Processing Specifications Design/Develop Test Bed Test Script Test Data Coding Language type (procedural, object-oriented, scripting) Executable type (interpreted vs. compiled) Terms to know Procedural Language Object-Oriented Language Scripting language Source Code Text editor CASE Computer Aided Software Engineering Interpreted Languages Source Code RUN TIME Source Code Interpreter Execution Development Platform Production Platform Compiled Languages Source Code Compiler OBJECT Code Development Platform Production Platform Compiled Languages Source Code OBJECT Code Compiler OBJECT Code Development Platform Production Platform Compiled Languages RUN TIME Source Code OBJECT Code Compiler OBJECT Code Development Platform Execution Production Platform Interpreted Languages Source Code Source Code Interpreter Execution Development Platform Production Platform Compiled Languages Source Code OBJECT Code Compiler OBJECT Code Development Platform Execution Production Platform DEVELOPMENT PHASE Develop Processing Specifications Design/Develop Test Bed Test Script Test Data Coding Language type (procedural, object-oriented, scripting) Executable type (interpreted vs. compiled) Testing Regimens Testing must be carefully designed to… Make sure each program “works” correctly Make sure each program is accomplishing its purpose Make sure each program works with its surrounding programs Make sure the entire system works together correctly Make sure the system can function properly under full load/capacity Make sure the users can run the business with the system ALPHA TESTING REGIMENS Debugging (program testing) Module Testing Integrative Testing Volume Testing Compliance Testing ALPHA TESTING REGIMENS PROGRAMMERS Debugging Module Testing PROGRAMMERS ANALYSTS Integrative Testing ANALYSTS Volume Testing Compliance Testing OUTSIDE CONSULTANTS BETA TESTING USER SPECIALISTS USER SPECIALISTS USER SPECIALISTS USER SPECIALISTS END USERS SCOPE CREEP Run Away! VERSION CONTROL DEVELOPMENT PHASE (continued) Version Control (of Revisions) User Signoff on Development Useless Gesture ? Installation of Software on Production Platform (including re-testing) User Sign-Off Hardware Acquisition, Installation, Configuration and Testing Preparation Phase Design Phase Development Phase Implementation Phase Installation of Software on Production Platform (and retesting!) User Training Initial Data Load (live data, converted data, etc.) Cut-Over (going live) Shakedown Cruise Hardware Planning, Acquisition, Installation, Testing, Configuration, etc. Homework Videos Hardware Implementation Phase, Maintenance Phase, Documentation and Evaluation Preparation Phase Design Phase Development Phase Implementation Phase Maintenance Phase Evaluation Documentation Questions?