Computer Science

Software Development Life Cycle

The Software Development Life Cycle (SDLC) is a structured process used to design, develop, and maintain high-quality software. It typically includes stages such as planning, analysis, design, implementation, testing, deployment, and maintenance. SDLC frameworks help ensure that software is developed efficiently, meets user requirements, and is delivered on time and within budget.

Written by Perlego with AI-assistance

11 Key excerpts on "Software Development Life Cycle"

  • Book cover image for: Information Technology Project Management
    Part four IT activities 16 Software development Introduction The system development life cycle We define the System Development Life Cycle as a structured approach for work that begins with project definition and ends with system implementation and operation. Everyone agrees that you need some organized approach for defining, designing, build-ing, and implementing software systems. In construction you define the project. With the idea in hand, you can then determine if it is feasible. Now you can gather require-ments. After these have been reviewed, you begin the design of the building. This is followed by construction. In constructing a building you have to integrate the various pieces—electrical, air conditioning, and so on. Building is accompanied by integration and testing. Finally, you can move into the building after inspections. So it is natural that early software development and the SDLC was done with a similar sequential and structure approach consisting of the following stages: • Define the project; • Determine the feasibility of doing the project; • Gather requirements for the system; • Design the new system; • Program and unit test the software; • Integrate and test the software; • Implement the software. Included in the later stages were data conversion, user training, and operations proce-dures. Documentation was produced in each stage to be reviewed. Managers reviewed the documentation for the end products rather than the end products themselves. A baseline is established that freezes the products of the development after each stage. In the early days of programming and development, there were few software tools and programming was extremely tedious and labor intensive. You really wanted to get each stage right before moving on to the next, because of the effort in making changes and rework. Thus, from the start, the SDLC was viewed as sequential stages. 296 IT ACTIVITIES Probably, the oldest sequential version of the SDLC was the Waterfall Model.
  • Book cover image for: The Official (ISC)2 CISSP CBK Reference
    • Arthur J. Deane, Aaron Kraus(Authors)
    • 2021(Publication Date)
    • Sybex
      (Publisher)
    This chapter provides a broad overview of how software is developed, beginning with methodologies used to manage the process of software development, as well security controls that can be implemented across various technologies used in the development process phases. Methods for assessing the security of different software types are also discussed, as security practitioners play a key role in risk-based decisions to either allow or deny the use of software in a given environment. UNDERSTAND AND INTEGRATE SECURITY IN THE Software Development Life Cycle (SDLC) Software is created in response to the needs of a user group that seeks to achieve a particular information handling goal, such as a desire to efficiently search for data contained in various records rather than reading each record one by one. This creation process, known as development , often follows an iterative lifecycle; as user needs change, so too must the software be updated to meet these new requirements. The repeated or iterative quality means the process is often referred to as the software development life-cycle (SDLC). Like all lifecycles, the SDLC is broken down into phases that are logically ordered based on the inputs they require and the outputs they produce. Some of these are obvious; for example, developers must understand what users need in the requirements phase before they progress to the development phase where software is created to meet those needs. Others are less obvious, such as the need to perform design phase activ-ities like interface mockups before beginning development. This gives rise to different methodologies such as Waterfall, which is rigid and mandates completion of all activ-ities in a phase before progressing to the next. Other methodologies are more flexible, such as prototyping; reviews and input on a finished prototype are used to create a new, improved design.
  • Book cover image for: Foundations of Computing
    eBook - ePub

    Foundations of Computing

    Essential for Computing Studies, Profession And Entrance Examinations - 5th Edition

    • Pradeep K. Sinha, Priti Sinha(Authors)
    • 2022(Publication Date)
    • BPB Publications
      (Publisher)
  • A user can download and use them immediately. The user need not wait to start the planned activity until a team develops the required software.
  • Normally, the creators of OSS do not test the software properly before release, and their support is poor as compared to commercial software. Hence, OSS may fail during operation, and even if a user reports a bug, the creators may not fix it soon.
  • Software Development Life Cycle (SDLC)

    Someone must develop all software, no matter by which source we acquire software. Developing software, putting it to use, and maintaining it is a complex process involving the following phases:
    1. Requirement Specification
    2. System Analysis and Design
    3. Implementation (also known as Construction or Code Generation)
    4. Testing and Debugging
    5. Deployment (also known as Installation)
    6. Maintenance
    Evolving software products through these phases is known as Software Development Life Cycle (SDLC) model. In this model, we go through the above listed phases sequentially, with each phase feeding in inputs to the next phase [Figure 7.3 ]. Development process proceeds from one phase to the next in a purely sequential manner. Hence, the next phase in the life cycle starts only after the defined set of goals are achieved for its previous phase and it is completed fully, perfected, and frozen. This model is also known as waterfall model because it is a sequential development process, which flows steadily downwards (like a waterfall) through the various phases of the process.
    Figure 7.3. Phases of Software Development Life Cycle (SDLC) model. It is also known as Waterfall model.
    A software development team performs the various activities involved in SDLC model. For small software this may be a one-person team (who alone carries out all the activities of all phases), whereas for large software the team may consist of several tens or even hundreds of people with different types of skills. The main activities performed in the various phases of SDLC model are:
  • Book cover image for: Systems Analysis & Design NQF3 SB
    • S Bevenuti(Author)
    • 2019(Publication Date)
    • Macmillan
      (Publisher)
    71 Module 8 The systems development life cycle (SDLC) Module 8 Overview In earlier modules we introduced concepts relating to data processing, information systems and their role in organisations, and the origins of IS development. In addition, we looked at the role of the systems analyst and IS departments in organisations. In this module we will examine the systems development life cycle (SDLC) which provides a framework to guide IS development. By the end of this module, you should be able to: Unit 8.1: • Discuss the origin of the SDLC. Unit 8.2: • Discuss the purpose and the various phases of the SDLC. • Discuss the importance of project management as part of the initial activities. • Discuss the typical activities performed as part of the planning phase. • Discuss the typical activities performed as part of the analysis phase. • Discuss the typical activities performed as part of the design phase. • Discuss the typical activities performed as part of the implementation phase. Unit 8.3: • Identify different types of SDLCs. • Describe some of the variations of the standard SDLC. Unit 8.4: • Contrast the standard SDLC to other development approaches such as the object oriented and agile approach. • Identify different approaches to systems development. Introduction In this module we will examine the systems development life cycle (SDLC). This is a generic framework which guides the development of most IS development projects. Unit 8.1: Characteristics and structure of the SDLC 8.1.1 Systems development life cycle Definition: Systems development life cycle (SDLC) The systems development life cycle, generally called the SDLC, is a generic framework which guides the design of most IS development projects. The SDLC consists of a set of guidelines, objectives and standards which help development teams and IS project managers move towards the completion of a successful project.
  • Book cover image for: Advanced Testing of Systems-of-Systems, Volume 1
    • Bernard Homes(Author)
    • 2022(Publication Date)
    • Wiley-ISTE
      (Publisher)
    2 Software Development Life Cycle
    The systems and software that make up a system-of-systems are developed by different organizations, using different development cycles. Hardware components are often developed in sequential or incremental design cycles. Software can be developed with other development cycles.
    There are various software development cycles, called SDLC (for Software Development Life Cycle). Their purpose is to deliver good quality software in compliance with requirements, deadlines and costs.
    Please do not confuse “development cycle” and software “life cycle”. The development cycle ends when the software is delivered, whereas the life cycle includes, in addition to the development cycle, the maintenance and disposal of this software, or even its replacement by another software.
    Whatever development cycle is selected, it must meet partially contradictory objectives: – it must allow delivery on time and within budget of a product that is efficient and of sufficient (known) quality; – the product must be documented, maintained and supported for several years; – since the system-of-systems is associated with the company that markets it, it is up to the latter to ensure its level of quality, including the quality of each of the components.
    A fast delivery implies a reduction of the time of design and realization which can lead to a reduction of the verification and validation activities (i.e. testing) of the components, and therefore to a drop in quality. Increasing profitability is often understood as not performing one or more activities. In fact, profitability is a balance between reducing the number of things to do and reducing the quality of the product. A reduction in product quality will increase the number of things to do, such as finding faults, correcting them, and retesting them and then re-delivering.
  • Book cover image for: Software Development in Practice
    A software development project usually follows a set process with a series of defined (and predictable) steps. This is known as the SDLC. It usually begins with the identification of an internal problem or aspiration, often in the form of a brief. Reviewing the product at the end of the lifecycle can trigger a new development.
    The lifecycle contains a series of phases, each one of which contributes a process to the development (see Figure 4.1 ).
    The length of a SDLC varies greatly depending on the size and complexity of the problem it is attempting to solve. Despite this, the lengths of each stage generally remain proportionate – for example, the coding phase is longer (potentially many months) compared to a shorter design and architecting period (perhaps several weeks).
    The basic components of the lifecycle (up to the point of roll-out) are as follows. Brief
    This triggers the development process. It could be based on a problem with an existing system or process, something new that is necessary to meet a business requirement, or simply a response to an emerging opportunity based on a new idea. It may occur as the result of an organisation’s aspiration to provide a better customer experience, improve its processes or reduce costs (or all three!).
    Figure 4.1 The traditional phases of the software development lifecycle
    Feasibility This is a top-level investigation into the brief which essentially considers the problem to be solved and investigates potential solutions. These solutions can include:
    • An off-the-shelf solution: an existing product or application that can be purchased and used without modification.
    • A tailored solution: a generic application is used to build an appropriate solution (such as a spreadsheet or a database package), or an off-the-shelf solution is adapted with additional functionality to meet the organisation’s needs.
    • A bespoke solution: a solution that is written from scratch with a full process of investigation, design, development and testing before implementation.
    • No change:
  • Book cover image for: Software Engineering
    Software Development Life Cycle model defines the framework under which a software product is going to be developed. A life cycle model defines, at a high-level, the phases that the product under development will go through. At a lower level, the activities involved in each of the model phases and their respective deliverables are identified.
    The development of a life cycle model and its constituent phases, activities, and deliverables is the result of the efforts of various stakeholders from industry and academia. A successful model is one that has been adopted by the software industry and has undergone many modifications and enhancements to improve its efficiency and applicability. An ideal life cycle model is generic, flexible, adaptable, and scalable. Depending on the size of the adopting software development company, its maturity level, and the complexity of the software to be developed, a life cycle model can be tailored to suit the particular needs of the company and its development team. The model should be flexible to allow a different emphasis to be placed on activities and deliverables of the model, depending on its application context. Finally, the model must have the capacity to scale up to large and complex software development projects.
    There are many industrial-strength and popular software development models that have been used to develop software products of varying complexities and in a wide variety of application domains. The models include the waterfall or SDLC, the prototyping model, the spiral model, the object-oriented model, the incremental and iterative model, the extreme model, and the component-based model.
    Prior to embarking on the activities and phases of the software life cycle development model, there are some pre-development activities and deliverables that must be performed to enable the proper startup of the software development project. Again, the need and the extent of the pre-development activities depend on the complexity and type of software being developed. For a software system to be implemented as a part of a complete system, including software, hardware, and people, the allocation of functions to the software component of the system and the interactions and boundaries between the software and other system elements must be clearly identified.
  • Book cover image for: Fundamentals of Software Testing
    • Bernard Homès(Author)
    • 2024(Publication Date)
    • Wiley-ISTE
      (Publisher)
    2 Testing Throughout the Software Life Cycle Software and systems tests are mostly executed during the creation phase of such software or system. Tests are also performed during operation of the software or system, during corrective or adaptive maintenance phases, or to take into account the evolution of their environment. 2.1. Testing through the Software Development Life Cycle FL-2.1.1 (K2) Explain the impact of the chosen Software Development Life Cycle on testing There are many development cycles, and testing can be applied to all of these development models. Testing is based on the same input information as software development and delivers data used to improve the quality of the product (software or system) or the efficiency of the development project. In general, any design activity can introduce defects, and should be associated with one or more activity tasked to identify and extract these defects. These will be described in more detail in Chapter 5. Software development models can be grouped in three main categories: – sequential models, where the activities are executed in sequence, one after the other, with milestones that allow for the accomplishment of the objectives to be identified; – iterative development models, where the activities are executed iteratively until the required level of quality is reached. These models use regression testing extensively; 48 Fundamentals of Software Testing – a third model, titled the incremental model, can combine the two previous models. In this model, regression test is also necessary. Testing is always present in the software development cycle, sometimes it is implemented differently depending on the model, but the main principles are always applicable. 2.1.1. Sequential models The sequential development model has been used since the dawn of time in many areas, first planning and creating the foundations, then building the different layers.
  • Book cover image for: Software Project Management
    eBook - PDF

    Software Project Management

    A Process-Driven Approach

    132 ◾ Software Project Management: A Process-Driven Approach All these areas discussed about software engineering have a very important role in software project management [1]. Without these inputs, it is difficult to manage modern large-scale software projects. In this book, we will be discussing software engineering management aspects in Part III and technical aspects in this part. The software engineering management topics include process improvements, development process selection, developing and implementing mature life cycles. The technical software engineering concerns different phases of development life cycles, work products developed in these phases, and activities carried out within different phases. In this part, we will concentrate on all these aspects related to technical software engineering (Software Development Life Cycle). Process improvements and process selection are discussed in Part III. 9.3 Software Life-Cycle Management Processes Most projects involve requirements, design, testing, and construction activities. Software develop-ment projects are no exception. Customer requirements are gathered and developed, and then an appropriate software design is made that fulfills the needs of these requirements by converting these requirements into a suitable software design. Software design is further converted into a software product through software construction activities. During the entire development life cycle, quality control and quality assurance activities are carried out to ensure that quality of the end products is within agreed upon norms. Let us discuss various Software Development Life Cycles in this section. 9.3.1 Software Life Cycle in Waterfall Model The waterfall model is still a widely used methodology for software development, though some other development models are also gaining wide acceptance. Some variations of the waterfall model include concurrent development, incremental development, and prototyping.
  • Book cover image for: Software Project Management
    eBook - ePub

    Software Project Management

    A Process-Driven Approach

    Construction is one of the most labor intensive phases in the Software Development Life Cycle. It comprises 30% or more of the total effort in software development. What a user sees as the product at the end of the Software Development Life Cycle is merely the result of the software code that was written during software construction.
    Due to the labor intensive nature of the software construction phase, the work is divided not only among developers, but also small teams are formed to work on parts of the software build. In fact, to shrink the construction time, many distributed teams, either internal or through contractors, are deployed. The advantage to this is that these project teams do the software coding and other construction work in parallel with each other and thus the construction phase can be collapsed. This parallel development is known as concurrent engineering, which is discussed in Chapter 9 .
    Constructing an industry strength software product of a large size requires stringent coding standards [1 ]. The whole process of construction should follow a proven process so that the produced code is maintainable, testable, and reliable. The process itself should be efficient so that resource utilization can be optimized and thus cost of construction can be kept at a minimum.

    12.2 Coding Standards

    Developers are given software design specifications in the form of use cases, flow diagrams, UI mock ups, etc., and they are supposed to write a code so that the built software matches these specifications. Converting the specifications into software code is totally dependent on the construction team. How well they do it depends on their experience, skills, and the process they follow to do their job. Apart from these facilities, they also need some standards in their coding so that the work is fast as well as has other benefits like maintainability, readability, and reusability (Figure 12.1 ).
    Figure 12.1 Source code production (conversion) from software design.
    At any time, a code written by a developer will always be different from that written by any other developer. This poses a challenge in terms of comprehending the code while reusing the code, maintaining it, or simply reviewing it. A uniform coding standard across all construction teams working on the same project will make sure that these issues can be minimized if not eliminated (Figure 12.2
  • Book cover image for: Verification and Validation of Rule-Based Expert Systems
    • Suzanne Smith, Abraham Kandel(Authors)
    • 2018(Publication Date)
    • CRC Press
      (Publisher)
    These three forms of analysis provide in the verification and validation activities a comprehensive evaluation of the software’s quality. The activities of verification and validation are comprehensively discussed in the following sections along with the inputs, outputs, and functionality of the phases of the classic life cycle process model. m. OVERVIEW OF CLASSIC LIFE CYCLE PROCESS MODEL Several versions of the classic life cycle process model are used in industry today. All these versions encompass the definition, development, and maintenance of the software product. The traditional phases of the classic life cycle are the requirements analysis and definition phase, design phase, implementation phase, testing phase, and maintenance phase. Prior to these phases of the software life cycle, the analysis of the system in which the software is to exist is performed. During this phase, which is often referred to as system requirements analysis, the whole environment of the system including the hardware, people, and other software is examined. The requirements of each of these elements within the whole system are gathered and analyzed in order to better under­ stand the environment in which the software is to function. Once the overall system is understood, then the software life cycle begins. The software life cycle including the system requirements analysis phase are depicted in Figure 3.1. A. Requirements Analysis and Definition Phase The essential activity within the requirements analysis and definition phase is the collection and understanding of the customer’s requirements, i.e., the customer being the person(s) contracting the software development and/or the person(s) working regularly with the software in its operational environment.
  • Index pages curate the most relevant extracts from our library of academic textbooks. They’ve been created using an in-house natural language model (NLM), each adding context and meaning to key research topics.