Software System Development Process (SDLC) Model
A Software System Development Process (SDLC) Model is a development process model for software development processes (to create software-based systems).
- Context:
- It can range from being a Single-Phase Software Development Methodology to being an Iterative Software Development Methodology.
- It can range from being a Single-Delivery Software Development Methodology to being an Incremental Software Development Methodology.
- It can range from being a Custom Software System Development Process to being a Off-the-Shelf Software System Development Proces.
- It can (typically) include SDLC Stages, such as: Systems Analysis, Software Design, Software Development, Software Testing, Software Deployment, Software Evaluation, Software Maintenance.
- It can enable different Software Development Practices.
- …
- Example(s):
- Iterative and Flexible Development Models:
- Agile Software Development Model: A model that emphasizes iterative development, flexibility, and customer satisfaction, often implemented through methodologies like Scrum and Kanban.
- Spiral Software Development Model: A model that combines iterative development with systematic aspects of the waterfall model, focusing on risk analysis at each stage of the project.
- Lean Software Development Model: A model inspired by lean manufacturing, focusing on minimizing waste, optimizing efficiency, and delivering only what is necessary.
- ...
- Sequential and Structured Development Models:
- Waterfall Software Development Model: A model that follows a sequential and linear process, with distinct phases such as requirements, design, implementation, testing, and maintenance.
- V-Model Software Development Model: A model that extends the waterfall model by adding a corresponding testing phase for each development stage, emphasizing validation and verification processes.
- ...
- Specialized Development Models:
- Model-Driven Engineering (MDE) Software Development Model: A model that focuses on creating and exploiting high-level abstract domain models, central to the development process.
- Business Rules-Driven Software Development Model: A model centered around the identification, documentation, and implementation of specific business rules in the software development process.
- Game Development Software Model: A model tailored to the unique requirements and complexities of video game development.
- Machine Learning System Development Methodology: A model that integrates machine learning techniques into various stages of the software development life cycle.
- ...
- Other Development Models:
- OpenSDLC Framework: A model that provides an open framework for implementing a structured and consistent software development life cycle.
- Incremental Software Development Model: A model where the project is divided into small parts or increments, each delivering a portion of the functionality; subsequent increments build upon the previous ones.
- Big Bang Software Development Model: A model characterized by minimal planning and a focus on coding, suitable for small projects but with higher risks and unpredictability.
- AI-Centric Development Models, such as:
- Software 2.0 Development Model: A paradigm where traditional algorithm design replaces neural network architecture design and data curation. It relies heavily on machine learning techniques, particularly deep learning, to develop software systems. In this model, developers focus on defining the problem space, collecting and preparing high-quality datasets, and designing network architectures. The actual "programming" is done through the training process, where the neural network learns to perform the desired task based on the provided data.
- Software 3.0 Development Model: An approach that leverages foundational models (particularly large language models) and other advanced AI systems as the core of software development and operation. It emphasizes natural language interfaces, enabling non-technical users to participate more actively in development. This model shifts focus from traditional coding to problem decomposition, solution conceptualization, and prompt engineering. It often involves domain-specific AI agents and can lead to more intuitive, rapid, and flexible software development processes.
- Software 4.0 Development Model: An emerging concept that envisions a fully autonomous software development ecosystem. In this model, AI systems not only assist in development but also autonomously identify needs, conceptualize solutions, develop and deploy software, and continuously evolve systems based on real-time feedback and changing requirements. Human involvement is primarily at a strategic level, setting high-level goals and ethical guidelines. This model incorporates advanced concepts like artificial general intelligence (AGI), self-improving AI systems, and seamless integration with IoT and edge computing environments to create a dynamic, self-evolving software ecosystem.
- ...
- (Elby, 2017) ⇒ .
- …
- Iterative and Flexible Development Models:
- Counter-Example(s):
- See: Software Build-Test-Deploy Cycle, Software Engineering, ML-based System Development Lifecycle, Software Product Management, Software Project Management, Agile Software Development, Waterfall Model, Software Prototyping, Iterative and Incremental Development, Spiral Development.
References
2020
- (Wikipedia, 2020) ⇒ https://en.wikipedia.org/wiki/Systems_development_life_cycle Retrieved:2020-10-2.
- In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life-cycle, is a process for planning, creating, testing, and deploying an information system. [1] The systems development life cycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.
- ↑ SELECTING A DEVELOPMENT APPROACH. Retrieved 17 July 2014.
2020
- (Wikipedia, 2020) ⇒ https://en.wikipedia.org/wiki/Software_development_process Retrieved:2020-10-2.
- In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
Most modern development processes can be vaguely described as agile. Other methodologies include waterfall, prototyping, iterative and incremental development, spiral development, rapid application development, and extreme programming.
A life-cycle "model" is sometimes considered a more general term for a category of methodologies and a software development "process" a more specific term to refer to a specific process chosen by a specific organization. For example, there are many specific software development processes that fit the spiral life-cycle model. The field is often considered a subset of the systems development life cycle.
- In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
2017
- http://www.indusa.com/articles/guide-to-software-product-development-process/
- QUOTE: ... A robust software product development process not only improves the quality of the end product but also the overall development process. ... The software product development process is a fundamental tool for facilitating a large number of people to work together on a collaborative project. Since the outcome of a methodical approach is fewer defects, it ultimately drives shorter delivery times and better value. By structuring, planning, monitoring, and controlling the process of development, the software product development process enables the following benefits:
- QUOTE: ... A robust software product development process not only improves the quality of the end product but also the overall development process. ... The software product development process is a fundamental tool for facilitating a large number of people to work together on a collaborative project. Since the outcome of a methodical approach is fewer defects, it ultimately drives shorter delivery times and better value. By structuring, planning, monitoring, and controlling the process of development, the software product development process enables the following benefits:
2016
- (Wikipedia, 2016) ⇒ https://en.wikipedia.org/wiki/software_development_process Retrieved:2016-8-2.
- In software engineering, a software development methodology (also known as a system development methodology, software development life cycle, software development process, software process) is a splitting of software development work into distinct phases (or stages) containing activities with the intent of better planning and management. It is often considered a subset of the systems development life cycle. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
Common methodologies include waterfall, prototyping, iterative and incremental development, spiral development, rapid application development, extreme programming and various types of agile methodology. Some people consider a life-cycle "model" a more general term for a category of methodologies and a software development "process" a more specific term to refer to a specific process chosen by a specific organization. For example, there are many specific software development processes that fit the spiral life-cycle model.
- In software engineering, a software development methodology (also known as a system development methodology, software development life cycle, software development process, software process) is a splitting of software development work into distinct phases (or stages) containing activities with the intent of better planning and management. It is often considered a subset of the systems development life cycle. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
2012
- (Balaji & Murugaiyan, 2012) ⇒ S. Balaji, and M. Sundararajan Murugaiyan. (2012). “Waterfall Vs. V-Model Vs. Agile: A Comparative Study on SDLC.” International Journal of Information Technology and Business Management 2, no. 1
- ABSTRACT: Organizations that are developing software solution are faced with the difficult choice of picking the right software development life cycle (SDLC). The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases. The V-model represents a software development process which may be considered an extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. Agile Modeling is a practice-based methodology for modelling and documentation of software-based systems. It is intended to be a collection of values, principles, and practices for modelling software that can be applied on a software development project in a more flexible manner than traditional Modelling methods. This comparative summarizes the steps an organization would have to go through in order to make the best possible choice.