(SDLC) Software Development Life Cycle Models Lesson

Software Development Life Cycle Models

Prototyping:
Determine Objectives, Develop, Refine, DemonstrateTest, Implement
Waterfall:
Requirements, Design, Implementation, Verification, Maintenance
Spiral: 
Analysis, Evaluation, Planning, Development

There are multiple software development processes that address the requirements, design, development, testing and maintaining phases in different ways.  Each model has its own distinct phases that show what should happen from the beginning of the process to the end. Regardless of the model used, its purpose is to break down the complexity of the process in a formal way. The phases are a guide or procedure that defines what to do next and how long to continue doing it. 

Software Development Models

How do you choose a process?

Choosing an appropriate model will determine the success of the project. Each model has its pros and cons. To help in choosing a model, a developer will consider many factors about the particular project.

  1. Requirements - When will you collect the requirements? Will all the requirements be known at the beginning of the project or will some be unknown?
  2. Expected lifetime of the project - Will it last for a number of years and need maintenance, or is it a quick project for a short period of time?
  3. Level of risk - Do you know all the technologies and other risk involved?
  4. Timeframe - How much time do you have to complete the project?
  5. Resources - How many resources are available within the timeframe?
  6. Planning - How much interaction with clients will occur?
  7. Expertise - What is the level of expertise involved? Do you have skills needed for the processes and technologies?
  8. Cost - What is the budget?

Iterative and Incremental Processes

Iterative process: Planning Phase
Design Phase
Development Phase
Testing Phase
Maintenance Phase
Testing back to design
Design back to planningThe software development process is both iterative and incremental. The process moves from stage to stage incrementally, but iteration takes place within each stage and between stages. In the planning phase, the developer may meet with the client many times to get clarification on the requirements of the project. Problems may be found in the testing stage that require going back to the design stage or development stage to fix the problem. Different stages may need to be revisited in light of new information and to fix any problems that arise.

There are two approaches for designing software.

Top-Down Design
The top-down approach begins with a general model and decomposes or breaks it down by defining more specific system. parts.
These parts are divided into subtasks and decomposed further into manageable pieces for development. This iterative process where each system is decomposed and refined step by step is system. called stepwise refinement.
When all the components are composed, the system is put together.
This design is used when you are creating something from scratch and the details are unknown.
Bottom-Up Design
A bottom-up approach pieces the system together to create a more complex
The individual base elements of the system are first specified in great detail. These elements are then linked together to form larger subsystems, which then in turn are linked to form a complete
This design is used when you are starting with an existing system and adding other functionality components and pieces to it.

[CC BY 4.0] UNLESS OTHERWISE NOTED | IMAGES: LICENSED AND USED ACCORDING TO TERMS OF SUBSCRIPTION