Software Process Models: SDLC Overview

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

The waterfall model is a __________ design process in which progress is seen as flowing steadily downwards through the phases of SDLC.

  • cyclical
  • iterative
  • sequential (correct)
  • concurrent

Design phase is not one of the steps in a process model.

False (B)

What is Prototyping defined as?

Prototyping is defined as the process of developing a working replication of a product or system that has to be engineered.

List the phases that each iteration passes through in the incremental model.

<p>Each iteration passes through the requirements, design, coding and testing phases.</p> Signup and view all the answers

The spiral model is risk-driven software development process model.

<p>True (A)</p> Signup and view all the answers

Which one of the following is not a values in the Agile Software Development Model?

<p>None of the above (D)</p> Signup and view all the answers

Which of the following is a feature of Extreme Programming (XP)?

<p>All of the above (D)</p> Signup and view all the answers

What are the four phases of Unified Process?

<p>Inception phase, Elaboration phase, Construction phase, Transition phase.</p> Signup and view all the answers

Which point is important to understand when choosing the best model out of all the different types of SDLC models?

<p>Each of these approaches are suitable for different projects, environments, and requirements (A)</p> Signup and view all the answers

Which of the following is NOT a criteria for deciding on a model?

<p>All are criteria (C)</p> Signup and view all the answers

Flashcards

What is a Software Process Model?

A process model that steps through the phases of a software product’s lifecycle.

Build-and-Fix Model

An early, unsatisfactory software development model with no specifications or design phase, leading to difficult maintenance and high costs.

Waterfall Model

A sequential design process where progress flows steadily downwards through the phases of the SDLC.

Waterfall Model: Documentation

Each change is reflected in the documentation.

Signup and view all the flashcards

Rapid Prototyping Model

A process of developing a working replication of a product or system.

Signup and view all the flashcards

Rapid Prototyping: Usage

Rapid prototyping is used in this phase.

Signup and view all the flashcards

Prototype and Waterfall

Used to define requirements, often followed by the waterfall model.

Signup and view all the flashcards

Incremental Model

A software development process where requirements are broken into multiple, standalone modules.

Signup and view all the flashcards

Incremental Model Iteration Phases

Requirements, design, coding and then testing phases.

Signup and view all the flashcards

Incremental Model: Benefit

Early product release.

Signup and view all the flashcards

Models: End Result

Waterfall and rapid prototyping deliver this at the end.

Signup and view all the flashcards

Incremental Model: Output

A deliver portion of the product.

Signup and view all the flashcards

Incremental Model iteration

Each iteration phase is rigid and does not overlap each other

Signup and view all the flashcards

Using Incremental Models

Clear understanding is requirede.

Signup and view all the flashcards

When to use Incremental models

When demand for an early release of a product arises.

Signup and view all the flashcards

Spiral Model

A risk driven software development model.

Signup and view all the flashcards

Spiral Model guides

Model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolutionary prototyping.

Signup and view all the flashcards

Spiral Model: Risk Analysis

Identification of potential risk is done while risk mitigation strategy is planned and finalized

Signup and view all the flashcards

Spiral Model phase

Alternatives and risk analysis.

Signup and view all the flashcards

Spiral Model phase

Evaluation, planning of next phase.

Signup and view all the flashcards

When to Use Spiral Model

Unclear requirements and complex needs.

Signup and view all the flashcards

Spiral Model: Cost

Breaks project into smaller spirals.

Signup and view all the flashcards

When to use

It works best for large projects only also demands risk assessment expertise

Signup and view all the flashcards

Agile Software Engineering

Agile is a philosophy and set of guidelines.

Signup and view all the flashcards

Agile Approach

Encourages customer satisfaction and early incremental delivery of the software

Signup and view all the flashcards

Agile Guidelines

Stress delivery over analysis and design

Signup and view all the flashcards

Agile Methods: Important Values

Individuals and interactions.

Signup and view all the flashcards

What delivers...

Development of working software.

Signup and view all the flashcards

What is Agile Process Models?

Scrum, Crystal, DSDM, FDD, Lean and XP.

Signup and view all the flashcards

Waterfall

A waterfall that development of the software flows sequentially from start point to end point.

Signup and view all the flashcards

An Agile method

An Agile method proposes incremental and iterative approach to software design

Signup and view all the flashcards

Features of XP (Extreme Programming)

Client drives requirements and delivery.

Signup and view all the flashcards

What is Advantage of Agile?

Rapid delivery and welcomes change.

Signup and view all the flashcards

Disadvantages of Agile Model

Only senior programmers are capable of taking the kind of decisions required during the development process.

Signup and view all the flashcards

When to use Agile?

Need flexibility and new improvements.

Signup and view all the flashcards

Unified Process

Best features of traditional models plus agile principles.

Signup and view all the flashcards

Characteristics of Unified Process

Architecture centric and very risk focused

Signup and view all the flashcards

Unified Process: Phases

Inception, Elaboration, Construction, Transition.

Signup and view all the flashcards

Criteria to Deciding a Model?

Complexity, size, magnitude/frequency of changes, skills, constraints, users.

Signup and view all the flashcards

Study Notes

Software Process Models Overview

  • Process model or life-cycle model defines the steps a product progresses through
  • Different process models include:
    • Build-and-fix model
    • Waterfall model
    • Incremental model
    • Evolutionary process models
      • Rapid prototyping model
      • Spiral model
    • Agile process models
      • Extreme programming
    • Object-oriented life-cycle models
      • Unified Process
  • Criteria exist for determining which model to use

Software Process Model Stages

  • Model includes stages such as:
    • Requirements phase
    • Specification phase
    • Design phase
    • Implementation phase
    • Integration phase
    • Maintenance phase
    • Retirement

"Build-and-Fix" Model

  • Prone to problems such as no specifications or design
  • Ultimately deemed unsatisfactory
  • Leads to high costs and difficult maintenance

Waterfall Model

  • Sequential design process where progress flows steadily downwards through SDLC phases
  • An example of a sequential model where software development is split into phases each with different tasks and objectives
  • The pioneer of SDLC processes
  • Characterized by feedback loops and documentation being key

Waterfall Model: Advantages

  • Enforces a disciplined approach
  • Documentation exists for each phase
  • Products checked by SQA group at each phase
  • Results in easier maintenance with every change reflected in documentation

Waterfall Model: Disadvantages

  • Fully working software version unavailable until late in the project timeframe
  • Specifications are lengthy, highly detailed, and in client-unfamiliar style
  • "Blocking states" that cause delays when one team needs another to complete dependent tasks

Rapid Prototyping Model

  • Develops functional product or system replication for engineering
  • Provides a small-scale replica of the end product as a means to obtain customer feedback
  • Prototypes are used in the requirements phase
  • Prototypes are evaluated by the customer/user
  • Prototypes are discarded rather than turned into the final product

Rapid Prototyping Model: Caveats

  • Not a proven model with its own shortcomings
  • Potential solution is to use rapid prototyping for requirement definition
  • A waterfall model implementation can be used for the remainder of the life cycle

Incremental Model

  • Software development process where requirements are broken down into standalone modules
  • Each iteration goes through: requirements, design, coding, and testing
  • Typical product takes between 5 and 25 iterations
  • Models are delivered in portions

Incremental Model: Advantages

  • Software is generated quickly during the life cycle
  • Changes to requirements and scope are less costly
  • Changes can be done throughout development
  • Less costly compared to other models
  • Customers can respond to each building increment
  • Errors are easy to identify

Incremental Model: Disadvantages

  • Requires good planning and designing
  • System architecture problems may occur since not all requirements are collected up front
  • Iteration phases are rigid and do not overlap
  • Correcting a problem in one unit requires correction in all units

Incremental Model: Use Cases

  • Requirements of the system are distinctly understood
  • Demand exists for an early software release
  • Software engineering teams are made up of less-skilled individuals
  • High-risk features and goals are involved
  • Commonly used for web applications and product-based companies

Spiral Model

  • Risk-driven software development process model
  • Teams adopt elements of incremental, waterfall of evolutionary prototyping depending on risk patterns
  • Risk analysis done as risk mitigation strategy is planned and finalized
  • Phases are preceded by alternative and risk analyses
  • Phases are followed by evaluation and planning of next phase

Spiral Model: Use Cases

  • Projects are large
  • Frequent releases are required
  • Prototype creation is applicable
  • Risk/cost evaluation is important
  • Medium to high-risk projects
  • Requirements are unclear and complex
  • Changes may be required at any time
  • Long-term commitments are not feasible

Spiral Model: Advantages

  • Functionality/changes can be done at a later stage
  • Cost estimation is done in small fragments making it easier
  • Repeated development helps in risk management
  • Streamlined development and systematic feature additions
  • Open to customer feedback

Spiral Model: Disadvantages

  • Risk of not meeting the schedule or budget exists
  • Only works for larger projects and requires risk assessment expertise
  • Protocols must be followed strictly for smooth operation
  • Robust documentation is required due to intermediate phases
  • Not advisable for smaller projects

Agile Process Models

  • Philosophy combines with development guidelines
  • Philosophy:
    • Promotes customer satisfaction through early, incremental software delivery
    • Small, highly motivated development teams
    • Informal methods
    • Minimal software engineering work products
    • Overall development simplicity
  • Development guidelines:
    • Prioritization of delivery over analysis and design
    • Active and continuous communication between developers and customers
  • Top Agile Process Models:
    • Scrum
    • Crystal Methodologies
    • DSDM (Dynamic Software Development Method)
    • Feature driven development (FDD)
    • Lean software development
    • Extreme Programming (XP)

Agile vs. Waterfall

  • Agile proposes incremental iterative approaches to software design vs. waterfall sequentially flows from start to end
  • Agile processes break down into individual models while waterfall does not design individual models
  • Agile offers early and frequent opportunities to look at the product, waterfall is at end of project
  • Agile considers less structured than waterfall, which is plan oriented
  • Agile can be implemented quickly for small projects, while all sorts of projects can be completed in Waterfall
  • Agile errors can be fixed in middle of project vs waterfall at the end of project
  • Agile development iterative in short iterations (2-4 weeks) vs phased and larger iterations in waterfall
  • Agile less priority on documentation vs waterfall which prioritizes documentation

Agile Model: Advantages

  • Customer satisfaction through rapid, continuous software delivery
  • Emphasis on individuals and interactions
  • Frequent software delivery (weeks rather than months)
  • Face-to-face communication
  • Close, daily cooperation between business people and developers
  • Regular adaptation to changing circumstances
  • Welcomes late requirement changes

Agile Model: Disadvantages

  • Difficult to assess needed effort at the beginning of life cycle
  • Emphasizes the necessary designing and documentation
  • The project can be taken off track if the customer is unclear
  • Only experienced software engineers can make the decisions

Agile Model: Use Cases

  • New changes need to be implemented
  • Freedom to change is very important
  • Developers can roll back and implement new feature in hours
  • Stakeholders get greater freedom than rigid approaches
  • Avoids project standstill

Extreme Programming (XP)

  • New approach involving incremental model variance
  • Determines client's desired features
  • Estimate duration and cost per each feature
  • Client then selects stories (features) for each successive build
  • Tasks are divided into builds
  • Test cases drawn up for each task
  • Pair programming done with partner on one screen
  • Continuous integration

Extreme Programing (XP): Features

  • The computers will all be put in a room lined with cubicles
  • The client is working with the team
  • Individuals don't work more than two successive week over time
  • No division of labor. Specification, design, code and testing can all be done be the team members.
  • There is no design before builds – Refactoring

Unified Process

  • Framework for OO (object-oriented) software engineering using UML (Unified Modeling Language)
  • An attempt to use conventional software process models with agile principles
  • Characteristics include:
  • Iterative and incremental development framework
  • Architecture-centric
  • Risk-focused
  • Use-case and UML model driven

Unified Process: Phases

  • Inception: customer communication and planning activities, rough architecture, plan, and preliminary use-cases
  • Elaboration: customer communication and modeling, refines/expands use-cases, expands architectural representation, and carefully reviewed/modified plan
  • Contstruction: reflect the software increment, integrate activities
  • Transition: end-users get software for beta testing

SDLC Method Selection

  • Understand that models are suited for different projects/environments, and requirements
  • Waterfall best for simple, straightforward projects with fixed requirements
  • Iterative/spiral better for large-scale, multicomponent projects with several segments
  • No one SDLC model is best on its own
  • SDLC methodology should be selected by assessing stakeholder needs and fitting them to the tool
  • Factors for deciding include:
    • Product Complexity
    • Product Size
    • Magnitude of Changes
    • Frequency of Changes
    • Dev Team skills
    • Time Constraints
    • User Access

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Mastering Software Process Models
10 questions
Software Process Models Quiz
5 questions
Software Process Models Lecture 2
10 questions
Use Quizgecko on...
Browser
Browser