Software Development Approaches Quiz
7 Questions
0 Views

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

What is the main advantage of incremental development?

  • Delayed delivery of customer value
  • Reduced customer involvement
  • Lower risk of overall project failure (correct)
  • Static requirements
  • What is a key characteristic of Extreme Programming (XP)?

  • Minimal user involvement
  • Pairwise programming (correct)
  • No code improvement
  • Large increments of functionality
  • In Spiral development, what do the loops in the spiral represent?

  • Fixed phases of development
  • A sequence of activities without backtracking
  • Customer value delivery
  • Risks assessment and resolution (correct)
  • What is a key characteristic of the Spiral model of the software process?

    <p>Fixed phases like specification or design</p> Signup and view all the answers

    What is a major benefit of component-based software engineering?

    <p>Reduced integration complexity</p> Signup and view all the answers

    Why are early increments in incremental development beneficial?

    <p>They reduce the risk of project failure</p> Signup and view all the answers

    What is a characteristic of throw-away prototyping?

    <p>Involves developing a system for temporary use</p> Signup and view all the answers

    Study Notes

    Evolutionary Development

    • Lack of process visibility, poorly structured systems, and special skills (e.g., languages for rapid prototyping) may be required
    • Suitable for small or medium-size interactive systems, parts of large systems (e.g., user interface), and short-lifetime systems

    Component-Based Software Engineering

    • Based on systematic reuse of existing components or Commercial-off-the-shelf (COTS) systems
    • Process stages include component analysis, requirements modification, system design with reuse, and development and integration

    Process Iteration

    • System requirements always evolve in the course of a project, so process iteration is always part of the process for large systems
    • Iteration can be applied to any of the generic process models
    • Two related approaches: incremental delivery and spiral development

    Incremental Delivery

    • Development and delivery are broken down into increments with each increment delivering part of the required functionality
    • As requirements change, the software that supports the business must also evolve and change

    System Evolution

    • Fewer and fewer systems are completely new, and there is no demarcation between development and evolution (maintenance)

    The Rational Unified Process (RUP)

    • A modern process model derived from the work on the UML and associated process
    • Described from three perspectives: dynamic, static, and practice

    RUP Phase Model

    • Phases: Inception, Elaboration, Construction, and Transition
    • Phase iteration: Inception sets the stage, Elaboration defines the architecture, Construction develops the system, and Transition deploys the system

    RUP Phases

    • Inception: Establish the business case for the system
    • Elaboration: Develop an understanding of the problem domain and the system architecture
    • Construction: System design, programming, and testing
    • User requirements are prioritized and the highest priority requirements are included in early increments

    Incremental Development

    • Customer value can be delivered with each increment, so system functionality is available earlier
    • Early increments act as a prototype to help elicit requirements for later increments
    • Lower risk of overall project failure
    • Highest priority system services tend to receive the most testing

    Extreme Programming

    • An approach to development based on the development and delivery of very small increments of functionality
    • Relies on constant code improvement, user involvement in the development team, and pairwise programming

    Spiral Development

    • Process is represented as a spiral rather than as a sequence of activities with backtracking
    • Each loop in the spiral represents a phase in the process
    • No fixed phases, such as specification or design - loops in the spiral are chosen depending on what is required
    • Risks are explicitly assessed and resolved throughout the process

    Studying That Suits You

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

    Quiz Team

    Description

    Test your knowledge of software development approaches by answering questions related to evolutionary development and component-based software engineering. Topics covered include poorly understood requirements, lack of process visibility, system structure, and applicability of different approaches.

    More Like This

    Use Quizgecko on...
    Browser
    Browser