Software Process Models

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Which activity is NOT typically involved in all software processes?

  • Evolution of the system in response to changing needs.
  • Detailed hardware design and integration. (correct)
  • Specification of what the system should do.
  • Validation to verify the system meets customer needs.

What is the primary characteristic of a plan-driven software process?

  • Incremental planning that adapts to customer feedback.
  • All activities are planned in advance, and progress is measured against this plan. (correct)
  • Emphasis on automated testing and continuous integration.
  • Focus on rapid prototyping with minimal documentation.

In which scenario is the Waterfall model most suitable?

  • When the system is developed across several geographically dispersed sites. (correct)
  • When developing small, interactive applications with unclear goals.
  • When requirements are evolving and subject to frequent changes.
  • When the project requires rapid prototyping and user feedback.

What is a key limitation of the Waterfall model regarding changes?

<p>It is difficult to respond to changing customer requirements after the process is underway. (A)</p> Signup and view all the answers

Which phase must be completed before moving on to the next in the Waterfall model?

<p>Each phase ideally needs to be completed before moving onto the next phase. (D)</p> Signup and view all the answers

What is the core principle of Evolutionary development?

<p>Developing an initial implementation, collecting feedback, and evolving the software through versions. (A)</p> Signup and view all the answers

In Evolutionary development, how are specification, development, and validation handled?

<p>They are interleaved, with rapid feedback across activities. (A)</p> Signup and view all the answers

What is a key benefit of Evolutionary development over Waterfall development regarding changes?

<p>The cost of accommodating changing customer requirements is reduced. (B)</p> Signup and view all the answers

Which could be considered a problem from a management perspective when using Evolutionary development?

<p>The process tends to have managers need regular deliverables to measure progress. (C)</p> Signup and view all the answers

For what type of system is Evolutionary development most applicable?

<p>Small or medium-size interactive systems. (A)</p> Signup and view all the answers

What is the primary focus of the Reuse-oriented software process model?

<p>Integrating systems from existing components or application systems. (C)</p> Signup and view all the answers

What are systems integrated from existing components or application systems commonly called?

<p>COTS (commercial-off-the-shelf) systems. (C)</p> Signup and view all the answers

In the Reuse-oriented model, what is the purpose of 'Requirements refinement'?

<p>To adjust the requirements to align with the capabilities of available components. (B)</p> Signup and view all the answers

A key advantage of Reuse-oriented software engineering is:

<p>Reduced costs and risks as less software is developed from scratch. (C)</p> Signup and view all the answers

Suggest an appropriate model to use for Car anti-lock braking system (ABS).

<p>Waterfall model (C)</p> Signup and view all the answers

What is the name of an initial version of a system used to demonstrate concepts and try out design options?

<p>A prototype. (C)</p> Signup and view all the answers

In which process is a prototype NOT helpful?

<p>The marketing and sales process to finalize the sales target (A)</p> Signup and view all the answers

During prototype development, what is often intentionally left out?

<p>Error checking and recovery mechanisms. (B)</p> Signup and view all the answers

Why should throw-away prototypes be discarded after development?

<p>They may lack functionality, are usually undocumented, are degraded through rapid change, and probably will not meet normal organizational quality standards (B)</p> Signup and view all the answers

What type of version of the system or part of the system is developed quickly to check customer's requirements and feasibility of design decisions?

<p>throw-away prototypes (B)</p> Signup and view all the answers

What is the main benefit of Plan-driven software processes?

<p>Regular deliverables to measure progress (A)</p> Signup and view all the answers

Where does the evolutionary model work best?

<p>Parts of large systems (e.g. the user interface) (B)</p> Signup and view all the answers

The anti-lock braking system (ABS) would most likely benefit from using what kind of model?

<p>Waterfall model (B)</p> Signup and view all the answers

Which of the following is not a basic process activity?

<p>Marketing (D)</p> Signup and view all the answers

Where would you use prototyping?

<p>Prototyping can be used in different stages of software development. (A)</p> Signup and view all the answers

When using Reuse-oriented Software engineering you are unable to perform what action?

<p>Loss of control over the project (A)</p> Signup and view all the answers

The Waterfall model and which other model need to be carefully thought about?

<p>Reuse-oriented models (A)</p> Signup and view all the answers

Which of the following isn't a advantage of evolutionary Software development?

<p>Managers need regular deliverables to measure progress (D)</p> Signup and view all the answers

When does system structure tend to degrade?

<p>Evolutionary development (B)</p> Signup and view all the answers

Flashcards

Software Process

A structured set of activities required to develop a software system.

Specification

Defining what the system should do.

Development

Defining the system's organization and implementation.

Validation

Checking that the system does what the customer wants.

Signup and view all the flashcards

Evolution

Changing the system in response to evolving customer needs.

Signup and view all the flashcards

Software Process Model

An abstract representation of a software process.

Signup and view all the flashcards

Plan-driven Processes

Processes where activities are planned in advance, and progress is measured against the plan.

Signup and view all the flashcards

Agile Processes

Planning is incremental and adapts to changing customer needs.

Signup and view all the flashcards

Waterfall Model

A plan-driven model with distinct phases of specification and development.

Signup and view all the flashcards

Waterfall Model Phases

Requirements analysis, system design, implementation, testing, operation

Signup and view all the flashcards

Evolutionary Development

Specification, development, and validation are interleaved with rapid feedback.

Signup and view all the flashcards

Incremental Development

Developing an initial implementation, getting feedback, and evolving through versions.

Signup and view all the flashcards

Evolutionary Development

Start with well-understood requirements and adds new features as proposed by the customer.

Signup and view all the flashcards

Reuse-Oriented Development

Systems integrated from existing components or application systems. (COTS)

Signup and view all the flashcards

Reuse-oriented Stages

Requirements specification, software discovery, refinement, adaptation.

Signup and view all the flashcards

Prototype

An initial system version to demonstrate concepts and design options.

Signup and view all the flashcards

Prototype Development Aspects

Involve leaving out functionality and focusing on areas not well understood.

Signup and view all the flashcards

Throw-away Prototypes

Prototypes discarded after development; they are not a good basis for a production system.

Signup and view all the flashcards

Software Prototyping

Fast system versions for checking requirements and assessing design feasibility.

Signup and view all the flashcards

Study Notes

Software Process

  • Set of activities required to develop a software system.
  • Specification, development, validation, and evolution are always involved.
  • A software process model is an abstract representation of said process.

Plan-Driven vs Agile Processes

  • Plan-driven processes plan all activities in advance and measure progress against this plan.
  • Agile processes use incremental planning to reflect changing customer needs.
  • Most processes utilise elements of both plan-driven and agile approaches.
  • There are no correct or incorrect software processes.

Software Process Models

  • Waterfall model, evolutionary development and reuse-oriented models exist.
  • Most large systems incorporate elements from all of these models.

Waterfall Model

  • Plan-driven model with distinct phases of specification and development.
  • In principle, each phase is completed before moving on to the next.
  • Phases include: Requirements analysis and definition, system and software design, implementation and unit testing, integration and system testing, operation and maintenance.
  • Inflexible partitioning makes the waterfall model difficult in responding to changing customer needs.
  • Suited when the requirements are well-understood, changes will be limited during the design process, ideal in large systems with plans to coordinate work across sites.
  • The waterfall model is appropriate for safety-critical systems.

Evolutionary/Incremental Development

  • Involves developing an initial implementation, obtaining user feedback, and software evolution through versions until the needed system is developed
  • Specification, development, and validation activities are interleaved, with rapid feedback across activities.
  • Process model starts with well-understood requirements while adding new features as the customer proposes.
  • Objectives include working with the customer to evolve a final system from an initial outline specification.

Evolutionary Development Benefits Over Waterfall

  • Reduces the cost of accommodating changing customer requests
  • Less analysis and documentation is needed compared to the waterfall model.
  • Facilitates easier customer feedback on development work that has been done.
  • Customers can comment on demonstrations of the software and see how much has been implemented.
  • Allows for more rapid software delivery that is useful for the customers.
  • Customers can use and gain value from the software earlier than with a waterfall process.

Evolutionary development problems from a management perspective

  • Process is not visible due to a lack of regular deliverables to measure progress.
  • Quick system development is not cost-effective when producing documents to reflect every system version.
  • System structure degrades with new increments
  • Regular changes without refactoring corrupt the structure making further changes are difficult and costly.
  • Suited for small/medium interactive systems, parts of large systems user interfaces, and short-lifetime systems.

Reuse-Oriented Model

  • Based on software reuse.
  • Systems are integrated from existing components or application systems, sometimes called COTS (commercial-off-the-shelf) systems.
  • Reused elements configured to adapt to a user's requirements.
  • It is a standard approach.

Reuse-Oriented Key Process Stages

  • Requirements specification, software discovery and evaluation, requirements refinement, component adaptation, and integration.

Reuse-Oriented: Advantages and Disadvantages

  • Reduced costs and risks due to less developed software.
  • Faster system delivery and deployment.
  • Requirements compromises are unavoidable so the system may not meet real user needs.
  • There is a loss of control over the evolution of reused system elements.

Software Prototyping

  • Prototype is an initial system version to demonstrate concepts and try out design options.
  • It can be used in the requirements engineering process for requirements elicitation and validation.
  • Used in design processes to explore options/ develop UI and testing processes to run back-to-back tests.
  • Back-to-back tests involve testing components of different versions, using the same inputs, and expecting the same output.

Prototype Development

  • May involve leaving out functionality.
  • Prototypes should focus on areas not well-understood.
  • Focus on functional rather than non-functional requirements such as reliability and security.

Throw-Away Prototypes

  • They are discarded after development.
  • It may involve leaving out functionality.
  • Impossible to tune the system to meet non-functional requirements
  • Prototypes are normally undocumented.
  • Prototype structure is degraded through rapid change.
  • Prototypes do not meet normal organizational quality standards.

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Software Development Methodologies
30 questions
Software Process Models Overview
23 questions
Software Processes and Models
39 questions
Use Quizgecko on...
Browser
Browser