The System Development Life Cycle, or Software development process in systems engineering, information systems and software engineering, is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. In software engineering, the System Development Life Cycle concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system . For example the systems development life cycle models can be described along spectrum of agile to iterative to sequential. Agile methodologies, such as XP and Scrum, focus on lightweight processes which allow for rapid changes along the development cycle. Iterative methodologies, such as Rational Unified Process and dynamic systems development method, focus on limited project scope and expanding or improving products by multiple iterations. Sequential or big-design-up-front (BDUF) models, such as Waterfall, focus on complete and correct planning to guide large projects and risks to successful and predictable results. Other models, such as Anamorphic Development, tend to focus on a form of development that is guided by project scope and adaptive iterations of feature development.
The project life cycle encompasses all the activities of the project, while the systems development life cycle focuses on realizing the product requirements, i.e. a Systems Development Life Cycle adheres to important phases that are essential for developers, such as :
* Preliminary analysis
: The objective of phase1 is to conduct a preliminary analysis, propose alternative solutions, describe costs and benefits and submit a preliminary plan with recommendations.
* Conduct the preliminary analysis
: in this step, you need to find out the organization's objectives and the nature and scope of the problem under study. Even if a problem refers only to a small segment of the organization itself then you need to find out what the objectives of the organization itself are. Then you need to see how the problem being studied fits in with them.
* Propose alternative solutions
: In digging into the organization's objectives and specific problems, you may have already covered some solutions. Alternate proposals may come from interviewing employees, clients , suppliers, and/or consultants. You can also study what competitors are doing. With this data, you will have three choices: leave the system as is, improve it, or develop a new system.
Describe the costs and benefits.
* Systems analysis, requirements definition
: Defines project goals into defined functions and operation of the intended application. Analyzes end-user information needs.
* Systems design
: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation.
* Development /implementation
* Integration and testing
: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability.
* Acceptance, installation, deployment
: The final stage of initial development, where the software is put into production and runs actual business.
* Maintenance: What happens during the rest of the software's life
: changes, correction, additions, moves to a different computing platform and more. This is often the longest of the stages.
P/S Also you can read about TDD (Test-driven development) is a software development process that relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new code to acceptable standards.