Software Processes and 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 typically the FIRST to occur in the waterfall model?

  • Operation and maintenance
  • Requirements analysis and definition (correct)
  • Implementation and unit testing
  • System and software design

Which of the following is a KEY characteristic of agile processes?

  • Changes are resisted to maintain stability
  • Extensive documentation is prioritized
  • Detailed planning is completed upfront
  • Planning is incremental and adapts to changing needs (correct)

Which statement BEST describes a software process model?

  • An abstract representation of a software development process (correct)
  • A detailed list of project tasks and timelines
  • A specific programming language used in a project
  • A contract between the client and the development team

What is the PRIMARY goal of software validation?

<p>Confirming that the software meets customer requirements (B)</p> Signup and view all the answers

Which of the following is NOT one of the basic process activities?

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

Which of the following is a potential BENEFIT of incremental development?

<p>Reduced cost of accommodating changing customer requirements (C)</p> Signup and view all the answers

What is a KEY challenge associated with the waterfall model?

<p>Difficulty in accommodating changes after a phase is complete (A)</p> Signup and view all the answers

In reuse-oriented software engineering, what does COTS stand for?

<p>Commercial Off-The-Shelf (B)</p> Signup and view all the answers

Which testing type focuses on verifying the system meets customer's needs, using real data?

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

Why is software evolution a critical part of the software lifecycle?

<p>To adapt the software to changing requirements (D)</p> Signup and view all the answers

What is the PRIMARY purpose of a system prototype?

<p>To demonstrate concepts and explore design options (D)</p> Signup and view all the answers

How does 'change tolerance' differ from 'change avoidance' in software development?

<p>Change tolerance accepts changes as low cost, while change avoidance anticipates them. (B)</p> Signup and view all the answers

In the context of software process descriptions, what do 'roles' define?

<p>The responsibilities of people involved in the process (D)</p> Signup and view all the answers

Which of the following is a DISADVANTAGE of incremental delivery?

<p>Difficulties when replacing an existing system (C)</p> Signup and view all the answers

Which factor makes the waterfall model MOST suitable for large systems engineering projects?

<p>Its plan-driven nature for coordinating work across sites (C)</p> Signup and view all the answers

Which of the following activities is typically part of the 'requirements engineering process'?

<p>Checking the validity of the requirements (A)</p> Signup and view all the answers

What is the PRIMARY goal of 'architectural design' in software development?

<p>Identifying the overall structure and components of the system (B)</p> Signup and view all the answers

Which choice BEST describes the spiral model’s approach to managing changes in software projects?

<p>Changes are seen as project risks and are explicitly managed. (A)</p> Signup and view all the answers

Which perspective is NOT typically used to describe the Rational Unified Process?

<p>Theoretical perspective (C)</p> Signup and view all the answers

What is the MAIN objective of the 'inception' phase in the Rational Unified Process (RUP)?

<p>Establishing a business case for the system (C)</p> Signup and view all the answers

In the context of software process models, what does 'interleaved' mean?

<p>Activities performed simultaneously and iteratively (C)</p> Signup and view all the answers

How does Boehm's spiral model address the limitations of the waterfall model?

<p>By incorporating risk assessment and iterative refinement (D)</p> Signup and view all the answers

Which statement accurately contrasts incremental development and reuse-oriented software engineering?

<p>Incremental focuses on delivering partial functionality, reuse focuses on component integration. (D)</p> Signup and view all the answers

In the transition from software design to implementation, what is the MOST critical factor?

<p>Accurate translation of design into executable code (A)</p> Signup and view all the answers

What is the MOST significant implication of 'throw-away prototypes'?

<p>They should not be reused (D)</p> Signup and view all the answers

Which of the following testing methodologies MOST effectively tests emergent properties?

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

Given a project with well-defined, unchanging requirements, which process model is MOST suitable?

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

What makes system prototyping effective at reducing the cost of rework?

<p>It simulates the system features to customers; this allows them to refine the prototype. (B)</p> Signup and view all the answers

If you have a project with poorly defined and changing requirements, what process model is the MOST suitable?

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

What activity would occur in the Elaboration phase of RUP?

<p>Developing an understanding of the problem domain (A)</p> Signup and view all the answers

What does the spiral model combine to implement change?

<p>Change avoidance and change tolerance (D)</p> Signup and view all the answers

What process is used to establish the services required and constraints on a system?

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

What are the software process descriptions?

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

What are the 4 design activities that define the design process?

<p>Architectural, Interface Design, Component Design, Database Design (C)</p> Signup and view all the answers

Which is NOT one of the benefits of software prototyping?

<p>Decreased project scope (B)</p> Signup and view all the answers

Which of the following is NOT one of the ways that a prototype can be used in the software development cycle?

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

During which stage of a software project is the identification of the system's components and their relationships MOST critical?

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

A development team is using incremental delivery, but have a hard time getting honest feedback because the users keep stating they want all of the functionality. What activity can take place to resolve this issue?

<p>Prioritise requirements and move the most important to earlier iterations (A)</p> Signup and view all the answers

A software company decides the software team will experiment with a prototype and refine the requirements. What is this considered?

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

Flashcards

Software Process

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

Software Specification

Defining what the software should do.

Design and Implementation

Defining the organization of the system and implementing that system.

Validation

Checking that the software does what the customer expects.

Signup and view all the flashcards

Evolution

Changing the system in response to changing 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

Processes where planning is incremental and change is easily accommodated.

Signup and view all the flashcards

Waterfall Model

Process activities are specification, development, validation and evolution represented as separate phases. Suitable when changes are limited during the process

Signup and view all the flashcards

Incremental Development

Process where Specification, development and validation are interleaved. May be plan-driven or agile.

Signup and view all the flashcards

Reuse-Oriented Software Engineering

Process where the system is assembled from existing components. May be plan-driven or agile.

Signup and view all the flashcards

Software Specification

The process of establishing what services are required and the constraints on the system's operation and development.

Signup and view all the flashcards

Feasibility Study

A study to determine if building the system is technically and financially feasible.

Signup and view all the flashcards

Requirements Elicitation and Analysis

Discovering what the system stakeholders require or expect from the system.

Signup and view all the flashcards

Requirements Specification

Detailed definition of what is needed from the system.

Signup and view all the flashcards

Requirements Validation

Checking the validity of the specified requirements.

Signup and view all the flashcards

Software Design and Implementation

Converting the system specification into an executable system.

Signup and view all the flashcards

Architectural Design

High-level overview of the system's structure

Signup and view all the flashcards

Interface Design

Define connections between components.

Signup and view all the flashcards

Component Design

Design system parts.

Signup and view all the flashcards

Database Design

Design data structures.

Signup and view all the flashcards

Software Validation (V & V)

Verification and validation intended to show a system conforms to its spec and meets customer requirements.

Signup and view all the flashcards

Component Testing

Development or component testing with modules being tested independently.

Signup and view all the flashcards

Software Prototyping

A prototype to act as a phase that helps avoid poor decisions on requirements and design.

Signup and view all the flashcards

Acceptance Testing

Testing of features and functions using customer data by the customer.

Signup and view all the flashcards

System Testing

Testing the system as a whole, which is important for emergent properties.

Signup and view all the flashcards

Software Evolution

Systems must evolve through changing business circumstances, otherwise become obsolete

Signup and view all the flashcards

Inevitable Software Changes

Business changes, new tech, changing platforms.

Signup and view all the flashcards

Change Avoidance

Anticipating possible changes before significant rework

Signup and view all the flashcards

Change Tolerance

The process is designed so that changes can be accommodated at relatively low cost.

Signup and view all the flashcards

Prototype

An version of a system used to demonstrate concepts and try out design options.

Signup and view all the flashcards

Prototypes Benefits

Usability improvements, closer match to user needs, higher design quality.

Signup and view all the flashcards

Throw-away Prototype

This type of prototype should be discarded after development as they are not a good basis for a production system.

Signup and view all the flashcards

Incremental Delivery

Delivery is broken down into increments: part of the required functionality.

Signup and view all the flashcards

In-Phase Iteration

Each phase is iterative with results developed incrementally

Signup and view all the flashcards

Boehm's Spiral Model

A risk-driven software process framework

Signup and view all the flashcards

Objective Setting

Specific objectives for the phase are identified.

Signup and view all the flashcards

Rational Unified Process

A modern generic process derived from the work on the UML and associated process.

Signup and view all the flashcards

Inception (RUP)

Establish the business case for the system.

Signup and view all the flashcards

Elaboration (RUP)

Develop an understanding of the problem domain and the system architecture.

Signup and view all the flashcards

Study Notes

Software Processes Overview

  • Software processes consist of structured activities to develop a software system.
  • Multiple software processes exist, commonly involving specification, design, implementation, validation, and evolution.
  • A software process model offers an abstract representation of a process from a specific viewpoint.
  • Software process descriptions detail activities like specifying data models or designing user interfaces.
  • Process descriptions can include products, roles, and pre- and post-conditions.

Plan-Driven vs. Agile Processes

  • Plan-driven processes involve advance planning of all activities with progress measured against the plan.
  • Agile processes use incremental planning, adapting to evolving customer needs.
  • Practical processes often blend plan-driven and agile elements, and no software process is inherently superior to another.

Software Process Models

  • The waterfall model is plan-driven, segmenting activities into distinct phases like requirement specification, design, implementation, and testing.
  • Incremental development interleaves specification, development, and validation, possibly being plan-driven or agile.
  • Reuse-oriented software engineering uses existing components to assemble the system and can be plan-driven or agile.
  • Most large systems utilize a development approach that combines aspects of all the models.

Waterfall Model

  • Involves distinct phases: requirements analysis/definition, system/software design, implementation/unit testing, integration/system testing, operation/maintenance.
  • It can be difficult to accommodate changes mid-process, requiring phase completion before moving forward.
  • Partitioning projects into inflexible stages hinders adapting to changing customer needs.
  • It is appropriate when a project's requirements are well-understood with limited changes during design.
  • It is often used for large systems developed across multiple locations as its plan-driven nature aids work coordination.

Incremental Development

  • Reduces costs for accommodating changing customer needs.
  • Generates less analysis and documentation than the waterfall model.
  • Facilitates customer feedback on development with software demonstrations.
  • Makes rapid software deployment possible for customers.
  • Allows earlier customer use and value gain compared to the waterfall process.
  • Can suffer from a lack of visibility and can be costly to produce documents that reflect every version of the system.
  • The system's structure can be compromised as increments are added.

Reuse-Oriented Software Engineering

  • A systematic approach that integrates pre-existing components or COTS (Commercial-off-the-shelf) systems.
  • Process steps include component analysis, requirements modification, system design with reuse, development, and integration.
  • Component types include web services with standard-based remote invocation, object collections for integration (.NET, J2EE), and configurable standalone systems (COTS).

Process Activities

  • Real software processes interleave technical, collaborative, and managerial activities.
  • They are aimed at specifying, designing, implementing, and testing software systems.
  • Specification, development, validation, and evolution activities are organized differently based on the development process.

Software Specification

  • Establishes needed services and system constraints.
  • The requirements engineering process involves feasibility studies, requirements elicitation/analysis, specification, and validation.

Software Design and Implementation

  • Converts system specifications into executable systems.
  • Software design involves designing a structure that realizes the specification.
  • Implementation involves translating this structure into a program.
  • Design and implementation are closely related and may be interleaved.

Design Activities

  • Architectural design identifies the system's overall structure and components, defining their overall relationships .
  • Interface design defines interfaces between system components.
  • Component design details the operation of each system component.
  • Database design focuses on the system data structures and representation in a database.

Software Validation

  • Verification and validation (V & V) shows that a system adheres to its specification and customer needs.
  • V & V includes checking, reviewing, and system testing.
  • Testing executes the system using test cases derived from real data specifications.
  • Testing is the most common V & V activity.

Testing Stages

  • Development/component testing focuses on individual components. These components are tested independently.
  • System testing tests the whole system and emergent properties.
  • Acceptance testing checks if the system meets customer needs with real data.

Software Evolution

  • Software is flexible and adaptable.
  • Software must evolve and be useful as business circumstances and requirements change.

Coping with Software Changes

  • Change is unavoidable in big software projects.
  • Business changes result in new system demands.
  • New technology provides opportunities for implementation improvements.
  • Changing platforms will require application modifications.
  • Addressing change involves reworking, raising costs and requiring new functionality considerations.
  • System prototyping and incremental delivery are two ways to deal with changes and evolving requirements.

Reducing Rework Costs

  • Change avoidance incorporates activities to anticipate changes, reducing rework. Developing prototype systems and refining requirements with customer feedback aids in that anticipation.
  • Change tolerance designs the process to accommodate changes at a lower cost, often through incremental development.
  • Proposed changes can be made to undeveloped increments, or a smaller system may be changed to incorporate modifications.

Software Prototyping

  • An initial system version used to show ideas and test design choices.
  • Prototyping can assist with requirements engineering, validation, exploring design options, and testing.
  • Prototyping provides key benefits like improved system usability, closer user need alignment, improved design quality, enhanced maintainability, and reduced development efforts.

Prototype Development

  • It may rely on rapid prototyping languages or tools.
  • May leave out functionality.
  • Prototype highlights areas not fully understood, it may overlook error checking or prioritize functional over non-functional reliability/security issues.

Throwaway Prototypes

  • Prototypes may be discarded post-development because they might lack suitability for production.
  • Tuning systems to fulfill functional needs could be difficult.
  • Prototypes may lack documentation, exhibit degraded structure, and fail to satisfy quality standards.

Incremental Delivery

  • Development breaks down into increments, each providing functionality, instead of delivering as one package.
  • Prioritizes user needs, addressing peak requirements into earlier deployments.
  • Continues assessment with the aim being requirements for subsequent phases.

Incremental Development and Delivery

  • Incremental development develops and evaluates each increment before moving on to the next. It is commonly used in agile methods and uses user/customer evaluations.
  • Incremental delivery deploys increments for end-user application, giving practical use evaluation, but may be arduous to incorporate as replacements due to minimal capacity.

Incremental Delivery Advantages

  • Customer value emerges throughout with functionality available immediately.
  • Early increments are prototypes to formulate additional phase requests.
  • Lower chance of total cancellation as well as most tested system programs.

Incremental Delivery Problems

  • Rework can be difficult with replacement systems due to user resistance.
  • Complete user needs with the original framework makes reception difficult.
  • System model conflicts with acquisition model.
  • Contract requires complete system setup.

Boehm's Spiral Model

  • A risk-driven framework created by Boehm replaces the common activity-based sequence with a spiral shape.
  • Each spiral cycle embodies phase-specific models, which combines change avoidance with tolerance centered on project risks and management.
  • Risks must be defined, measured and adapted, which is part of reduction activities.

Spiral Model Sectors

  • Establish concrete targets for progress toward development while decreasing main concerns throughout activity establishment.
  • Choose system development that conforms to model through generic forms to meet validation.
  • Analyze planned processes by assessing project stage relative to the cycle.

Spiral Model Usage

  • The spiral is influential among people.
  • Thinks of stages during iterative model creation through implementing hazard driving, yet it has never been directly applied for use in common cases.

The Rational Unified Process

  • Is a modern process taken from UML practices and is supported by aspects of past procedures.
  • Is analyzed from three angles, or time driven displays, process activity and exercise supported practice.

RUP Phases

  • System cases are developed to highlight the process, understanding sphere and development creation through programs/testing.
  • A transition deploys into an operating context.

RUP Iteration

  • Every point is developed during gradual iteration. The model enacts full sets of increments in succession.

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

CP317 Software Engineering Chapter 2
41 questions
Software Processes Overview
9 questions
Agile Software Development Overview
5 questions
Use Quizgecko on...
Browser
Browser