System Development is the creation of new system or modification of old system. Systems development involves number of stages starting from Systems Study to Systems implementation and maintenance. SDLC is an organized way to build an Information System. SDLC, in fact, is a sequence of events carried out by Systems Analysts, Systems Designers, and users to develop and implement an Information System.
The system development life cycle (SDLC) can also be defined as, a framework for developing computer-based information system. In order words, SDLC is the overall process of developing information system through a multi-step process from investigation of initial requirements through analysis, design, implementation and maintenance. These activities are carried out in different phases, which are mentioned below:
1. Problem Definition
2. System Analysis
3. System Design
4. System Development
5. System Testing
6. System Implementation
7. System Evaluation
8. System Support & Maintenance
All these phases, together, are called a life cycle because they cover the entire life of an Information System.
Fig: Steps involved in SDLC
1. Problem Definition:
System definition is the process of defining the current problem, determining why a new system is needed and identifying the objectives of the proposed system. During Problem Definition Project team (members responsible for Systems Study) focus on completing the task, investigating the problem and deciding whether to proceed. In this phase the main aim is to answer “Why do we need a new system?” and “What are the objectives of the new system? ” .
2. System Analysis:
During System Analysis Project team (members responsible for Systems Analysis) focus on completing two tasks:
• analysing the current system and developing possible solutions to the problem.
• selecting the best solution and defining its functionality
This phase starts when the current computerised system is to be modified or current manual system is to be computerised. Systems Analysts then begin investigation, talking with the users. The first challenge is to define the problem accurately. When the problem of the current system is accurately defined, the users can decide whether to proceed or not.
Systems study is carried out by a small group of people who are familiar with Information System techniques, understand the part of the business and skilled Systems Analysts. Main activities included in the phase are; understanding the problem, feasibility analysis or study and system requirements.
3. System Design:
Systems Design is the process of planning a new business system to replace the old. But before this planning can be done, we must thoroughly understand the old system. Once the analysis is completed, the Systems Analyst has a firm understanding of what is to be done. The next step is how the problem can be solved.
The major objectives of Systems Design are:
• identification of reports and outputs the new system should produce.
• sketch the input screen and layout of menus options.
• description of data to be input, calculated and stored.
• individual data items, database and calculation procedures.
Major activities of Systems design are carried out by the Systems Designer. The Project team (members responsible for Systems Design), at this phase, finds the answers of problems like – how application accepts input data and stores in database, how many input screens are required, how the screen looks like? What kind of menus and options must there be? What kind of database will the system use? etc.
The Designers and programmers may use a top-down design or bottom-up design or the combination of both. In top-down design, the team starts with the large picture and moves to the detail. They look at major functions that the system must provide and break down these into smaller activities. Each of these activities will then be programmed in the next phase of SDLC.
In bottom-up design, the team starts with the details (for example, the reports to be produced by the system), then moves out to the big picture (major functions or process). This approach is particularly appropriate when users have very specific requirements for output – for example, payroll checks, which must contain certain pieces of information.
4. System Development:
During the development phase, Programmers play a key role. They create and customize the software for all the parts of the system. The actual coding and writing of the program is done at this stage.
The overall system is broken up into number of components. Then the programmers on the project team are assigned to specific components. The programmers write the necessary code. Technical writers and work with the programmers to produce the technical documentation for the system. The technical documentation includes information about software features and programming, about the data flow and processing, about the design and layout of the necessary hardware.
5. System Testing:
Testing is the process of executing a program with the intent of finding an error. Testing is an integral part. The testing process move from the individual component out to the system as a whole. The project team tests each component separately (unit testing), and then tests the components of the system with each other (system testing).
The major objectives of Systems Testing are:
• Ensure that software does not fail.
• Verify whether the software is running according to its specification.
• Verify whether the software is built and run according to user’s expectation.
System Testing is primarily divided into two types. They are;
a). White Box Testing
In this testing, a programmer can test cases that guarantee that every individual part in a program has been exercised at least once, all logical decisions on their true and false sides are executed, all loops are executed properly or not and internal data structures to ensure their validity are exercised. In other words, white box testing is a method of testing software that is based on knowledge of how the software is intended to function. White box testing is also called as structural testing or glass-box testing.
b). Black Box Testing:
Black box testing focuses on how the software functions without reference to how it is designed. The primary concern is whether the program works or not, how it is constructed. Black box testing is also known as functional testing. A programmer attempts to find errors in the following categories:
• Incorrect or missing functions.
• Interface errors.
• Errors in data structures or external database access
• Performance errors
• Initialization and termination errors.
6. System Implementation:
In this phase, the project team (especially systems analysts) install the new software and hardware, which has been tested. The users, then, start using the system to perform their jobs in user environment. In this phase, the user moves from old system to new system. This is called conversion
The process of moving from old system to new system is called conversion. Conversion, in an organization, takes places in the Phase System implementation. If the system is replacing an existing one, implementation becomes critical. In such case, there are four different types of conversion strategies:
a). Direct conversion:
All users stop using old system at the same time and then begin using the new. This option is very fast, less costly but more risky.
b). Parallel Conversion:
Users continue to use old system while an increasing amount of data is processed through the new system. Both the systems operate at the same time until the new system works smoothly. This option is costly but safe approach.
c). Phased conversion:
Users start using the new system component by component. This option works only for systems that can be compartmentalized. This option is safe and conservative approach.
d). Pilot conversion:
Personnel in a single pilot-site use the new system, and then the entire organization makes the switch. Although this option may take more time, it is very useful in big organizations where a large number of people make the conversion.
7. System Evaluation:
The system evaluation is performed to identify its strengths and weaknesses. The actual evaluation can occur along any of the following dimensions;
• Operational Evaluation
• Organizational Impact Evaluation
• User Manager Assessment Evaluation
• Development Performance Evaluation.
8. System Maintenance:
Once installed, the software is often used for many years. However, both the organization and the users change. The environment may also change over a period of time. Therefore, software has to be maintained time to time. That is, modifications and changes will be made to the software files or procedures to meet user’s requirement. All these activities fall within Systems Maintenance.
Some errors in the system are also corrected during this phase. Changes, or upgrades, to the systems are made regularly during the remaining life span of the system. At some point, however, repairs to the system no longer meet the user requirements. Users start calling for a major modification or new system. At this point, the SDLC has come full circle, and the Systems study (Phase 1) begins again.
Computer Aided Software Engineering (CASE)
CASE stands for Computer-Aided Software Engineering. CASE is the technology for automating software development and maintenance. Project teams (members who develop information system) use special software applications for creating prototypes quickly, building diagrams, writing codes and managing development. These applications are called CASE Tools. Thus CASE Tools are the type of software that automates the development of information system.
Some popular CASE Tools are- Excelerator, IE Work Bench, etc.
Prototypes are the experimental version of new software (or information system). Prototypes are designed to show the structure and design projected for the final product. Prototyping is used in the development of both new hardware and software systems and new systems of information management.
A typical Prototype consists of screens with few items like: buttons, fields and options. Each item in the Prototype has minimal functions. By experimenting with a prototype, users become familiar with the end product long before it is actually developed. Prototyping is an important component of Rapid Application Development (RAD). CASE Tools are used to design Prototypes.
System manual contain the detailed technical information for each application system. It describes each of the major functions performed by the application, the data affected by the application and logical flow of data within the system. These manuals usually include:
• Narrative describing the purpose of the application
• Description of the files, database and records within application
• Display format and uses
• Possible sample report of the program.
The various ways of documenting are:
• Presenting in the flowchart.
• Using pseudocode
• Using the structured English and algorithms.