Introduction

  • SDLC stands for System/Software Development Life Cycle
  • SDLC is sometimes also called ‘System Development Methodology‘.
  • The system development life cycle (SDLC) is a common methodology for system development in many organizations, featuring various phases that mark the progress of the system analysis and design effort.
  • This representation of the system development life cycle (SDLC) is sometimes called the “waterfall model”.

Definition

  • SDLC is a structured process used by software development teams to design, develop, test, deploy, and maintain software products and ensure that the software being developed meets the requirements of the customer.
  • SDLC is a framework that provides a systematic approach to software development and ensures that the software being developed meets the requirements of the customer.
  • System development life cycle (SDLC) is a standard methodology for the development of an Information System.

Characteristics

  • By using the SDLC process, software development teams can reduce the risks of failure, ensure that all requirements are met, and create software that is scalable, maintainable, and easily upgradable.
  • The SDLC can vary depending on the organization’s size, the complexity of the project, and the methodology used.
  • Some common methodologies used in the SDLC include the Waterfall model, Agile methodology, and DevOps.
  • In the system development life cycle, it is also possible to complete some activities in one phase in parallel with some other activities in another phase. 
  • This model resembles a staircase with arrows connecting each step to the step before and to the step after it.
  • Each phase has specific outputs and deliverables that feed important information to other phases. At the end of each phase, the system development project reaches a milestone and, as deliverables are produced, parties outside the project team often review them.

Life Cycle/Phases of SDLC

  • The SDLC process consists of several phases, including planning, requirements gathering, design, implementation, testing, deployment, and maintenance.
  • The phases of SDLC are typically followed sequentially, although some development methodologies may utilize an iterative or agile approach.
  • The SDLC is a highly linked set of phases where output of one phase serves as input to the subsequent phase. Throughout the systems development life cycle, the systems development project needs to be carefully planned and managed. Therefore, the larger the project, the greater is the need for project management.
  • Process of System Development
    • Phased conversion: In this type of conversion, the system is installed module by module.
    • Implementation activities also include initial user support such as the finalization of documentation, training programs, and ongoing user assistance. Note that documentation and training programs are finalized during implementation. Documentation is produced throughout the lifecycle. Implementation can continue for as long as the system exists since ongoing user support is also part of implementation.
    • Despite the best efforts of analysts, managers, and programmers, however, installation is not always a simple process. Many well-designed systems can fail if implementation is not well managed. The management of implementation is usually done by the project team.
  • It mainly consists of four phases: System Analysis, System Design, System Construction & Implementation, and System Support. Every phase consists of inputs, tasks, and outputs. Traditional SDLC was strictly sequential. The developers first complete the previous phase and then start the next phase.
  • The phases of the SDLC typically include:
    • System or Project Identification and Selection:
      • The first phase in the SDLC is called project identification and selection.
      • In this phase, the user identifies the need for a new or improved system.
      • This identification may be part of a systems planning process in large organizations. 
      • Information requirements of the organization as a whole are examined, and projects to
        meet these requirements are proactively identified.
      • The organization’s information system requirements may result from requests to deal with problems in the current system’s procedures, from the desire to perform additional tasks, or from the realization that information technology could be used to capitalize on an existing opportunity. These needs can then be prioritized and translated into a plan for the Information System department including a schedule for developing new major
        systems.
      • In smaller organizations, the determination of which systems to develop may be affected by user requests submitted as the need for new or enhanced systems arises as well as from a formal information planning process.
      • In either case(smaller and larger organizations), during the project identification and selection, an organization determines whether or not resources should be devoted to the development or enhancement of each information system under consideration.
      • The outcome of the project identification and selection process is a determination of which systems development projects should be undertaken by the organization at least in terms of an initial study.
    • System or Project Initiation and Planning:
      • This is the initial phase where the team determines the project’s scope, goals, and requirements.
      • In this phase, we define the scope of the project, identify the goals and objectives, and determine the feasibility of the project.
      • It is the second phase is project initiation and planning.
      • The problems that are identified should be investigated and a decision to implement the information system or not for the organization should be taken.
      • It is a critical step at this point is to determine the scope of the proposed system. The project leader and initial team of system analysts also produce a specific plan for the proposed project, which the team will follow using the remaining SDLC steps. 
    • System Requirements Gathering and System Analysis:
      • In this phase, we collect and analyze user requirements, business rules, and data requirements are done.
      • During this phase, the team conducts an in-depth analysis of the project requirements, user needs, and the project’s feasibility.
      • During this phase, the analysis has several sub-phases.
        • The first is requirements determination. In this sub-phase, analysts work with users to determine the expectations of users from the proposed system. This sub-phase usually involves a careful study of current systems, manual or computerized that might be replaced or enhanced as part of this project.
        • Next, the requirements are studied and structured in accordance with their inter-relationships and eliminate any redundancies.
        • Third, an alternative initial design is generated to match the requirements. Then, these alternatives are compared to determine which alternative best meets the requirement in terms of cost and labor to commit to the development process.
      • In this phase, a feasibility study of the proposed system is also performed. Various types of feasibilities are:
        • Technical feasibility
        • Economic feasibility
        • Behavioral feasibility
        • Operational feasibility
        • Legal feasibility
        • Time feasibility.
      • If the proposed system is not feasible to develop, it is rejected at this very step.
      • The output of the analysis phase is a description of (but not are detailed design for) the alternative solution recommended by the analysis team. Once, the recommendation is accepted by those with funding authority, we can begin to make plans to acquire any hardware and system software necessary to build or operate the system proposed.
    • System Design:
      • In this phase, we create the architectural design and detailed design of the software based on the requirements.
      • In this phase, the team designs the software architecture, database schema, and user interface.
      • After the analysis phase is complete, the design of the system begins. The design consists of logical and physical design of the system. The fourth and fifth phases are devoted to the design of the new and enhanced system.
      • During design, we and the other analysts convert the description of the recommended alternative solution into logical and then physical system specifications.
      • We must design all aspects of the system from input and output screens to reports, databases, and computer processes.
      • Design occurs in two phases, viz., logical design and physical design.
        1. Logical Design
          • Logical design is not tied to any specific hardware and systems software platform.
          • Theoretically, the system could be implemented on any hardware and systems software. The idea is to make sure that the system functions as intended.
          • Logical design concentrates on the business aspects of the system.
        2. Physical Design
          • In physical design, the logical design is turned into physical or technical specifications. For example, we must convert diagrams that map the origin, flow, and processing of data in a system into a structured systems design that can then be broken down into smaller and smaller units known as modules for conversion to instruction written in a programming language.
          • In this, we design various parts of the system to perform the physical operations necessary to facilitate data capture, processing, and information output.
          • During the physical design, the analyst team decides the programming language in which the computer instructions will be written, which database system and file structure will be used for the data, the platform that will be used, and the network environment under which the system will be run. These decisions finalize the hardware and software plans initiated at the end of the analysis phase. Now, proceedings can be made concerning the acquisition of any new technology not already present in the organization.
          • The final product of the design phase is the physical system specification in a form ready to be turned over to programmers and other system builders for construction.
          • The physical system specifications are turned over to programmers as the first part of the implementation phase.
    • System Coding/Development:
      • In this phase, we build the software using a programming language and development tools.
      • This is the actual coding phase where the software development team writes the code for the application.
    • System Testing:
      • In this phase, we verify that the software meets the requirements and is free of defects.
      • After the code is implemented, the team carries out testing to identify any bugs, defects, or issues that need to be addressed.
    • System Deployment:
      • In this phase, we Install the software in the production environment and make it available to end-users.
      • Once the testing is completed, the software is deployed and made available to the end-users.
    • System Implementation:
      • Implementation includes coding, testing, and installation.
      • During implementation, we turn system specification into a working system that is tested and put into use.
      • During coding, programmers write programs that make up the system.
      • During testing, programmers and analysts test the individual programs and the entire system to find and correct errors.
      • During installation, the new system becomes a part of the daily activities of the organization. Application is installed or loaded, on existing or new hardware, and users are introduced to the new system and trained.
      • The analysts begin planning for testing and installation as early as the project initiation and planning phase since testing and installation require extensive analysis to develop the right approach.
      • Installation of the system can be done in the following three ways:
        • Direct conversion: In this type of conversion, the software is directly installed at the user’s site.
        • Parallel conversion: In this type of conversion, both the old and new systems are run in parallel for some time. After monitoring the new system for a reasonable period and if it is performing well, then, the new system is implemented replacing the old one.
    • System Maintenance:
      • In this phase, we update and maintain the software to ensure that it continues to meet the changing needs of the organization and users.
      • This is the final phase where the team provides ongoing support and maintenance to ensure that the software runs smoothly and remains up-to-date with the latest technology and user needs.
      • It is the final phase of SDLC.
      • When a system is operating in an organization, users sometimes find problems with how it works and often think of better ways to perform its functions.
      • Also, the organization’s requirements with respect to the system change with time.
      • During maintenance, programmers make the changes that users ask for and modify the system to reflect and support changing business conditions. These changes are necessary to keep the system running and useful.
      • Maintenance is not separate phase but a repetition of the other lifecycle phases required to study and implement the needed changes. Thus, maintenance is an overlay to the life cycle rather than a separate phase.
      • The amount of time and effort devoted to maintenance depends a great deal on the performance of the previous phase of life cycle. There comes a time, however, when an information system is no longer performing as desired, when maintenance cost becomes prohibitive, or when the organization’s needs has changed substantially. Such problems are an indication that it is the time to begin designing the system’s replacement, therefore, completing the loop and starting the life cycle over again.
      • Often, the distinction between the major maintenance and new development is not clear, which is another reason why maintenance often resembles the lifecycle itself.

Types of Maintenance:

      • There are three types of Maintenance.
        1. Corrective maintenance:
          • In this type, the errors that creep into the system are removed. Hence the name corrective maintenance.
        2. Adaptive maintenance:
          • It is done to adapt with the changing external factors. For example, if the government rules change regarding the Dearness Allowance from 52% to 58%, then the changes have to be made in the Information System to adapt with the changing scenario.
        3. Perfective maintenance:
          • This is done to satisfy the users’ requirements to make the system more and more perfect.

Objectives

  • The main goal of SDLC is to create high-quality software that meets the needs of the end-users and stakeholders, while also ensuring that it is delivered on time and within budget.

Steps to develop a successful System

  • For the development of a successful system, the system should be designed for growth and change. When the System is implemented, it enters the operations support stage of the Life Cycle.
  • To make a successful system, the following principles should be followed:-
    • Both customers and developers should be involved for the accuracy of the information.
    • A problem-solving approach should be adopted.
      • The classic problem-solving approach is as follows:-
        a) Study, and understand the problem and its context
        b) Define the requirements of a solution
        c) Identify candidate solutions and select the best solution
        d) Design and implement the solution
        e) Observe and evaluate the solution’s impact and refine the solution accordingly.
    • Phases and activities should be established.
    • For consistent development of a system, some standards should be established. Some common standards are –
      • Documentation standards: It should be an ongoing activity during the system development life cycle.
        Quality Standards: Checks should be established at every phase to ensure that the output of every phase meets the business and technology expectations.
        Automated Tool standards: Hardware and software platforms should be finalized for the development of the Information system. Automated tool standards prescribe technology that will be used to develop and maintain information systems and to ensure consistency, completeness, and quality.
    • Development of information systems should be considered as a capital investment: The developer of an information system should think about several solutions to a particular problem and every solution should be evaluated for cost-effectiveness and risk management. Cost-effectiveness is defined as the result obtained by striking a balance between the cost of developing and operating an information system and the benefits derived from that system. Risk management is defined as the process of identifying, evaluating, and controlling what might go wrong in a project before it becomes a threat to the successful completion of the project or implementation of the information system.
    • Multiple feasibility checkpoints should be built into the system development methodology. At each feasibility checkpoint, all costs are considered sunk (i.e. not recoverable). Thus, the project should be re-evaluated at each checkpoint to determine if it remains feasible to continue investing time, effort, and resources. At each checkpoint, the developers should consider the following options:-
      • Cancel the project if it is no longer feasible.
      • Re-evaluate and adjust the cost and schedule if the project scope is to be increased.
      • Reduce the scope of the project budget and schedule are frozen and not sufficient to cover all the project objectives.
    • The divide and Conquer approach is a way of making a complex problem easier. In this approach, the larger problem (System) is divided into smaller problems (Subsystem).

Loading


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.