Software Development Life Cycle Models

MesmerizingFourier avatar
MesmerizingFourier
·
·
Download

Start Quiz

Study Flashcards

10 Questions

What is a unique advantage of the Spiral Model compared to other development methodologies?

It can accommodate changing requirements

In which development methodology is the execution of processes sequential in a V shape?

V Model

What is a disadvantage of using the Spiral Model for projects?

The process can be complex and may go on indefinitely

In which phase of the Spiral Model are risks analyzed and evaluated?

Evaluation and risk analysis

What is a characteristic of projects that are suitable for the V Model?

They have well-defined and fixed requirements

What is a characteristic of the Waterfall Model that makes it unsuitable for complex and object-oriented projects?

Each phase must be completed before the next phase can begin

What is an advantage of the Waterfall Model?

Easy to manage and understand

When would the Iterative Model be suitable?

When major requirements are defined, but some functionalities may evolve with time

What is a disadvantage of the Waterfall Model?

No working software is produced until late in the life cycle

What is an advantage of the Iterative Model?

Results are obtained early and periodically

Study Notes

SDLC Models

  • SDLC (Software Development Life Cycle) models are defined and designed to be followed during the software development process.
  • Each process model follows a series of steps unique to its type to ensure success in the software development process.

Waterfall Model

  • The earliest SDLC approach used for software development.
  • A linear sequential life cycle model where each phase must be completed before the next phase can begin, with no overlapping phases.
  • Phases:
    • Requirement gathering and analysis
    • System design
    • Implementation
    • Testing
    • Deployment
    • Maintenance
  • Application:
    • Suitable for projects with well-defined, clear, and fixed requirements.
    • Technologies are well understood and not dynamic.
    • Ample resources with required expertise are available.
    • Short projects.
  • Advantages:
    • Simple and easy to understand and use.
    • Easy to manage.
    • Well-defined stages.
    • Well-understood milestones.
    • Easy to arrange tasks.
    • Process and results are well-documented.
  • Disadvantages:
    • No working software is produced until late in the life cycle.
    • High amounts of risk and uncertainty.
    • Not suitable for complex and object-oriented projects.
    • Poor model for long and ongoing projects.

Iterative Model

  • Combines iterative development with the systematic controlled aspects of the waterfall model.
  • Phases:
    • Requirements
    • Design
    • Implementation
    • Testing
  • Iterative development process model that does not attempt to start with a full specification of requirements.
  • Application:
    • Suitable for projects with clearly defined and understood requirements.
    • Major requirements must be defined, but some functionalities may evolve with time.
    • Time-to-market constraint.
    • New technology is being used and learned by the development team.
    • Resources with needed skill sets are not available.
  • Advantages:
    • Working functionality can be developed quickly and early in the life cycle.
    • Results are obtained early and periodically.
    • Parallel development can be planned.
    • Progress can be measured.
    • Less costly to change scope and requirements.
    • Testing and debugging are easier.
  • Disadvantages:
    • More resources may be required.
    • Not suitable for changing requirements.
    • More management attention is required.
    • System architecture or design issues may arise.
    • Defining increments may require definition of the complete system.

Spiral Model

  • Combines the idea of iterative development with the systematic controlled aspects of the waterfall model.
  • Phases:
    • Identification
    • Design
    • Construct or build
    • Evaluation and risk analysis
  • Application:
    • Suitable for projects with medium to high risk.
    • Long-term project commitment.
    • Requirements are complex and need evaluation.
    • New product line released in phases.
    • Significant changes are expected during the development cycle.
  • Advantages:
    • Changing requirements can be accommodated.
    • Allows extensive use of prototypes.
    • Requirements can be captured more accurately.
    • Users see the system early.
    • Development can be divided into smaller parts.
    • Risky parts can be developed earlier.
  • Disadvantages:
    • Management is more complex.
    • End of the project may not be known early.
    • Not suitable for small or glorious projects.
    • Could be expensive for small projects.
    • Process is complex.
    • Spiral may go on indefinitely.

V Model

  • An extension of the waterfall model.
  • Execution of processes happens in a sequential manner in a V shape.
  • Phases:
    • Verification
    • Validation
  • Verification phases:
    • Business requirement analysis
    • System design
    • Architectural design
    • Module design
  • Validation phases:
    • Unit testing
    • Integration testing
    • System testing
    • Acceptance testing
  • Application:
    • Suitable for projects with well-defined and fixed requirements.
    • Medical development field.
    • Requirements are well understood and documented.
    • Technology is not dynamic.
    • Project is short.
  • Advantages:
    • Highly disciplined model.
    • Simple and easy to understand and use.
    • Easy to manage.
    • Works well for smaller projects.
  • Disadvantages:
    • High risk and uncertainty.
    • Not suitable for complex and object-oriented projects.
    • Poor model for long and ongoing projects.
    • Not suitable for projects where requirements are at a moderate to high risk of changing.

Big Bang Model

  • An SDLC model where no specific process is followed.
  • Phases:
    • Development and coding
  • Application:
    • Suitable for small projects with one or two developers.
    • Ideal for academic or practice projects.
    • Requirements are not well understood.
    • No final release date is given.
  • Advantages:
    • Simple model.
    • Little or no planning required.
    • Easy to manage.
    • Gives flexibility to developers.
  • Disadvantages:
    • High risk and uncertainty.
    • Not suitable for complex and object-oriented projects.
    • Poor model for long and ongoing projects.
    • Can turn out to be very expensive if requirements are misconceived.### Agile Model
  • Agile model is a combination of iterative and incremental process models, focusing on process adaptability and customer satisfaction through rapid delivery of working software products.
  • Agile methods break the product into small incremental builds, with each iteration lasting from one to three weeks.
  • Cross-functional teams work simultaneously on various areas like planning, requirement analysis, design, coding, unit testing, and acceptance testing.
  • At the end of each iteration, a working product is displayed to the customer and important stakeholders.
  • Agile believes that every project needs to be handled differently, and existing methods need to be tailored to suit the project requirements.
  • Tasks are divided into time boxes or small time frames to deliver specific features for a release.
  • Agile manifesto principles include individuals and interactions, self-organization and motivation, working software demo, customer collaboration, and responding to change.
  • Agile is based on adaptive software development methods, unlike traditional SDLC models which are based on predictive approaches.

Advantages of Agile Model

  • Realistic approach to software development
  • Promotes teamwork and cross-training
  • Functionality can be developed rapidly and demonstrated
  • Resource requirements are minimum
  • Suitable for fixed or changing requirements
  • Delivers early partial working solutions
  • Good model for environments that change steadily
  • Minimal rules, documentation, and planning required
  • Enables concurrent development and delivery within an overall planned context

Disadvantages of Agile Model

  • Not suitable for handling complex dependencies
  • More risks of sustainability, maintainability, and extensibility
  • An overall plan, agile leader, and practice are required
  • Strict delivery management dictates the scope and functionality to be delivered
  • Depends heavily on customer interaction
  • High individual dependency
  • Transfer of technology to new team members may be challenging due to lack of documentation

RAD Model

  • RAD (Rapid Application Development) model is based on prototyping and iterative development with no specific planning involved.
  • It focuses on gathering customer requirements through workshops or focus groups.
  • Early testing of prototypes by the customer using iterative concept.
  • Reuse of existing prototypes or components and continuous integration and rapid delivery.
  • RAD projects follow iterative and incremental models, with small teams comprising developers, domain experts, customer representatives, and other IT resources working progressively on their component or prototype.

RAD Model Design

  • Business modeling: designing the business model for the product under development in terms of flow of information and distribution of information between various business channels.
  • Data modeling: reviewing and analyzing the information gathered in the business modeling phase to form sets of data objects vital for the business.
  • Process modeling: converting the data object sets defined in the data modeling phase to establish the business information flow needed to achieve specific business objectives.
  • Application generation: building the actual system using automation tools to convert process and data models into actual prototypes.

Advantages of RAD Model

  • Changing requirements can be accommodated
  • Progress can be measured
  • Iteration time can be short with the use of powerful RAD tools
  • Productivity with fewer people in a short time
  • Reduced development time
  • Increases reusability of components
  • Quick initial reviews occur
  • Encourages customer feedback
  • Integration from the very beginning solves a lot of integration issues

Disadvantages of RAD Model

  • Dependency on technically strong team members for identifying business requirements
  • Only systems that can be modularized can be built using RAD
  • Requires highly skilled developers or designers
  • High dependency on modeling skills
  • Inapplicable to cheaper projects as costs of modeling and automated code generation is very high
  • Management complexity is more
  • Suitable for systems that are component-based and scalable
  • Requires user involvement throughout the life cycle
  • Suitable for a project requiring shorter development times

SDLC Models

  • SDLC models are designed to ensure success in the software development process, with each process model following a series of unique steps.

Waterfall Model

  • A linear sequential life cycle model with no overlapping phases.
  • Phases include requirement gathering, system design, implementation, testing, deployment, and maintenance.
  • Suitable for projects with well-defined, clear, and fixed requirements, well-understood technology, and ample resources.
  • Advantages include simplicity, ease of management, and well-defined stages.
  • Disadvantages include no working software produced until late in the life cycle, high risk, and unsuitability for complex and long projects.

Iterative Model

  • Combines iterative development with the systematic controlled aspects of the waterfall model.
  • Phases include requirements, design, implementation, and testing.
  • Suitable for projects with clearly defined requirements, time-to-market constraints, and new technology.
  • Advantages include quick development of working functionality, early and periodic results, and easier testing and debugging.
  • Disadvantages include resource requirements, unsuitability for changing requirements, and potential system architecture issues.

Spiral Model

  • Combines iterative development with the systematic controlled aspects of the waterfall model.
  • Phases include identification, design, construct or build, and evaluation and risk analysis.
  • Suitable for projects with medium to high risk, long-term commitments, and complex requirements.
  • Advantages include accommodation of changing requirements, extensive use of prototypes, and accurate requirement capture.
  • Disadvantages include complex management, unknown project end, and unsuitability for small projects.

V Model

  • An extension of the waterfall model with a V-shaped execution of processes.
  • Phases include verification and validation.
  • Verification phases include business requirement analysis, system design, architectural design, and module design.
  • Validation phases include unit testing, integration testing, system testing, and acceptance testing.
  • Suitable for projects with well-defined and fixed requirements, well-understood technology, and short projects.
  • Advantages include simplicity, ease of management, and well-defined stages.

Learn about the different SDLC models and their phases, including the Waterfall Model, used during the software development process to ensure success.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free

More Quizzes Like This

Use Quizgecko on...
Browser
Browser