Research about SDLC, discussing it's methodology, benefits and key stages. Comment on activities you have conducted during your website development that correlates with the stages

 SDLC:

The Software Development Life Cycle (SDLC) is a structured process that enables the production of high-quality, low-cost software, in the shortest possible production time. The goal of the SDLC is to produce superior software that meets and exceeds all customer expectations and demands. The SDLC defines and outlines a detailed plan with stages, or phases, that each encompass their own process and deliverables. Adherence to the SDLC enhances development speed and minimizes project risks and costs associated with alternative methods of production.

IMPORTANCE;

It provides a standardized framework that defines activities and deliverables
It aids in project planning, estimating, and scheduling
It makes project tracking and control easier
It increases visibility on all aspects of the life cycle to all stakeholders involved in the development process
It increases the speed of development
It improves client relations
It decreases project risks
It decreases project management expenses and the overall cost of production

working;

Planning phase

The planning phase encompasses all aspects of project and product management. This typically includes resource allocation, capacity planning, project scheduling, cost estimation, and provisioning.

During the planning phase, the development team collects input from stakeholders involved in the project; customers, sales, internal and external experts, and developers. This input is synthesized into a detailed definition of the requirements for creating the desired software. The team also determines what resources are required to satisfy the project requirements, and then infers the associated cost.

Expectations are clearly defined during this stage as well; the team determines not only what is desired in the software, but also what is NOT. The tangible deliverables produced from this phase include project plans, estimated costs, projected schedules, and procurement needs. 

Coding phase

The coding phase includes system design in an integrated development environment. It also includes static code analysis and code review for multiple types of devices.

Building Phase

The building phase takes the code requirements determined earlier and uses those to begin actually building the software.

Testing Phase

The phase entails the evaluation of the created software. The testing team evaluates the developed product(s) in order to assess whether they meet the requirements specified in the ‘planning’ phase. 

Assessments entail the performance of functional testing: unit testing, code quality testing, integration testing, system testing, security testing, performance testing and acceptance testing, as well as nonfunctional testing. If a defect is identified, developers are notified. Validated (actual) defects are resolved, and a new version of the software is produced.

The best method for ensuring that all tests are run regularly and reliably, is to implement automated testing. Continuous integration tools assist with this need.

Release Phase

The release phase involves the team packaging, managing and deploying releases across different environments.

Deploy Phase

In the deployment phase, the software is officially released into the production environment. 

Operate Phase

The operate phase entails the use of the software in the production environment.

Monitor Phase

In the monitor phase, various elements of the software are monitored. These could include the overall system performance, user experience, new security vulnerabilities, an analysis of bugs or errors in the system

methodology;

Waterfall

Waterfall represents the oldest, simplest, and most structured methodology. Each phase depends on the outcome of the previous phase, and all phases run sequentially. This model provides discipline and gives a tangible output at the end of each phase. However, this model doesn’t work well when flexibility is a requirement. There is little room for change once a phase is deemed complete, as changes can affect the cost, delivery time, and quality of the software.

Agile

The agile methodology produces ongoing release cycles, each featuring small, incremental changes from the previous release. At each iteration, the product is tested. The agile model helps teams identify and address small issues in projects before they evolve into more significant problems. Teams can also engage business stakeholders and get their feedback throughout the development process.

Lean

The lean methodology for software development is inspired by lean manufacturing practices and principles. The lean principles encourage creating better flow in work processes and developing a continuous improvement culture. The seven lean principles are:

Eliminate waste
Amplify learning
Make decisions as late as possible
Deliver as fast as possible
Empower your team
Build integrity in
Build holistically
Iterative

In the iterative process, each development cycle produces an incomplete but deployable version of the software. The first iteration implements a small set of the software requirements, and each subsequent version adds more requirements. The last iteration contains the complete requirement set.

Spiral

In the spiral development model, the development process is driven by the unique risk patterns of a project. The development team evaluates the project and determines which elements of the other process models to incorporate. 

V-Shaped

In the V-shaped model, verification phases and validation phases are run in parallel. Each verification phase is associated with a validation phase, and the model is run in a V-shape, where each phase of development has an associated phase of testing

references;https://www.synopsys.com/glossary/what-is-sdlc.html#:~:text=The%20Software%20Development%20Life%20Cycle%20(SDLC)%20is%20a%20structured%20process,all%20customer%20expectations%20and%20demands

Comments