Systems Development Life Cycle

• Project planning: Establishes a high-level view of the intended project and determines its goals. The importance of the planning stage is to determine what technologies exist or can be developed to solve the problem that has been identified. An economic feasibility analysis is used to determine if an organization can afford the system and if the system will provide a return on the investment. An operational feasibility analysis examines the human element of the proposed system to determine how willing and able its employees are to change. A schedule feasibility analysis tries to determine if the proposed development time line is practical. This is the foundation for the traditional systems development life cycle.
• Systems analysis: Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs. This stage uses many tools and techniques including requirements gathering, structured analysis, and computer-aided systems engineering tools. Requirements gathering are used to gain a detailed understanding of a company’s problem and how the proposed system will solve it. Systems analysts review documents, interview employees and observe the business in action to gain a better understanding of the business. To aide in understanding the business, data flow diagrams are developed. These diagrams are used to show how data flows through the organization. This acquired information can be used to achieve business process reengineering as well as a road map for the programming team. Once the development team knows what the new system requires to solve the problem the systems design stage can begin.
• Systems design: The goal of this phase is to describe desired features and operations in detail including what specific functions it should have and what parts it should contain. There are two main areas of system design. A logical systems design is a document that tells the system what to do. A physical systems design is a document that describes the actual components the team will use to achieve functionality. The physical design specifies all of the actual components that will be used to implement the logical design. Once the systems development team and the client have agreed on a system’s design is frozen which means no one can make changes to it at this point. This is done to prevent scope creep and feature creep which can lead to a project going over budget and schedule. Now that the organization knows the design it can begin building it.
• Development: The programming process is usually the most difficult and time consuming. Programmers use three types of logical structures when they write programs: sequence, selection and loop. The sequence structure indicates that the computer processes programming statements in the order in which they occur. The selection structure allows execution to pass one of two alternative paths based on whether certain conditions are met. A loop structure indicates that the program should continue to execute until certain conditions exist. Now the system is built but must be tested before it is implemented.
• Testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability. Before a company can run a system, it must test the system to ensure that is works properly. Stub testing begins with the programmers. The programmer checks to confirm that the module handles incorrect data the way that it should. The development team does unit testing to ensure that the modules work correctly. The last part of testing is for the development team to test the new software a long with other components, such as the database and networks, of the new system. This part of this phase is called systems test which has two parts: verification and validation. Verification testing runs the system in a simulated environment with simulated data. Validation testing ensures that the system is working properly in the real work environment using real data. Once a team has developed and tested a system it is now ready to be implemented into the working environment.
• Implementation: The final stage of initial development, where the software is put into production and runs actual business. This can be seen as the most difficult phase because it requires employees to use an unfamiliar system. There are a number of implantation approaches. A company performs a direct cutover implantation when it quickly changes an old system to new one. This would usually take place over a weekend. The advantage to this approach is that the system becomes available immediately. In the parallel conversion approach, the new system is installed along side the old system and employees can move to the new system gradually. With pilot testing a company installs new system at only one location in the department. Once the company has passed testing in this area the system will be installed throughout then organization. With staged conversion a company implements parts of the new system at a time. Once one part is working correctly another part is added until the entire system is in place.
• Maintenance: The maintenance phase accounts for as much as 80% of the total cost of an information system. Some errors go undetected in the testing phase. It is not until employees using the system encounter problems that these problems are detected. Correcting these problems is one of the most important parts of the systems maintenance. End-user support entails responding to user questions and providing ongoing training for employees. System enhancements requests are reviewed to ensure feasibility and determine how the enhancement will impact the system.