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

What is a software process model?

An abstract representation of a software process, presenting a description from a particular perspective.

A process activity model primarily shows the roles of the people involved rather than the sequence of activities.

False (B)

Distinguish between plan-driven and agile software processes.

Plan-driven processes involve planning all activities in advance and measuring progress against that plan. Agile processes involve incremental planning and are designed to easily accommodate changing requirements.

List the main phases of the traditional waterfall model in order.

<ol> <li>Requirements definition</li> <li>System and software design</li> <li>Implementation and unit testing</li> <li>Integration and system testing</li> <li>Operation and maintenance</li> </ol> Signup and view all the answers

What is incremental development?

<p>An approach that interleaves the activities of specification, development, and validation, developing the system as a series of versions (increments), each adding functionality to the previous one.</p> Signup and view all the answers

What are two main problems associated with incremental development?

<ol> <li>The process is not easily visible, making progress measurement difficult without regular deliverables. 2. System structure tends to degrade as new increments are added without refactoring.</li> </ol> Signup and view all the answers

Which of the following are types of software components commonly used in a reuse-oriented process?

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

What is a significant drawback of reuse-oriented software engineering related to requirements?

<p>Requirements compromises are often inevitable, which can lead to a system that doesn't fully meet the real needs of users.</p> Signup and view all the answers

What are the four basic process activities common to most software processes?

<p>Specification, Development, Validation, and Evolution.</p> Signup and view all the answers

What are the four main stages of the requirements engineering process?

<p>Feasibility study, Requirements elicitation and analysis, Requirements specification, and Requirements validation.</p> Signup and view all the answers

What is the final output of the software specification activity?

<p>The Requirements Document.</p> Signup and view all the answers

What is the difference between software design and software implementation?

<p>Software design involves creating the software structure that realizes the specification, while implementation involves translating this structure into an executable program.</p> Signup and view all the answers

Match the design activity with its description:

<p>Architectural design = Identify the overall system structure, principal components, and their relationships. Interface design = Define the interactions between system components. Component design = Design the internal operation of individual system components. Database design = Design the data structures and their representation in a database.</p> Signup and view all the answers

What are the three main stages of testing shown in the sequential model?

<p>Component testing, System testing, Acceptance testing.</p> Signup and view all the answers

What is another name for acceptance testing, especially when developing custom systems for a single client?

<p>Alpha testing.</p> Signup and view all the answers

What is Beta testing?

<p>A testing process used when a system is marketed as a software product, involving delivering the system to potential customers who agree to use and provide feedback.</p> Signup and view all the answers

What is software evolution?

<p>The process of modifying existing software systems to meet new requirements or adapt to changing environments.</p> Signup and view all the answers

Change is generally avoidable in large software projects if planned carefully.

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

What is software prototyping?

<p>Creating an early version or model of a software system or part of it to explore requirements, design options, or user interface concepts.</p> Signup and view all the answers

What is the difference between incremental development and incremental delivery?

<p>Incremental development focuses on developing the system in increments and evaluating internally before proceeding. Incremental delivery involves deploying usable increments to end-users for feedback and practical use.</p> Signup and view all the answers

What is a key characteristic of Boehm's spiral model?

<p>Its risk-driven approach to development, involving iterative cycles of planning, risk analysis, engineering, and evaluation.</p> Signup and view all the answers

What are the three perspectives from which the Rational Unified Process (RUP) is typically described?

<p>Dynamic (phases over time), Static (process activities/workflows), and Proactive (good practice suggestions).</p> Signup and view all the answers

Match the RUP phase with its primary goal:

<p>Inception = Establish the business case for the system. Elaboration = Develop an understanding of the problem domain and system architecture. Construction = System design, programming, and testing to build the working software. Transition = Deploy the system to the user community.</p> Signup and view all the answers

What is the purpose of the 'Business modelling' workflow in RUP?

<p>To model the business processes using business use cases.</p> Signup and view all the answers

Name two 'good practices' suggested by the Rational Unified Process (RUP).

<p>Any two of: Visually model software (using UML), Verify software quality, Control changes to software (using change/configuration management).</p> Signup and view all the answers

Signup and view all the answers

Flashcards

Software process model

An abstract way software processes are represented.

Plan-driven processes

Processes where all activities are planned in advance.

Agile processes

Processes with incremental planning that adapts to satisfy changing customer needs.

Waterfall model

A sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards.

Signup and view all the flashcards

Incremental development

Software development where specification, development, and validation are interleaved.

Signup and view all the flashcards

Reuse-oriented software engineering

Using existing software components for new software

Signup and view all the flashcards

Web services

Web standards available for remote invocation.

Signup and view all the flashcards

Collections of objects

Packages for integration with a component framework

Signup and view all the flashcards

Stand-alone software systems

Software configured for use in a particular environment.

Signup and view all the flashcards

Software specification

Establishing required services and constraints on operation/development.

Signup and view all the flashcards

Feasibility study

Determining if it's technically and financially feasible to build the system.

Signup and view all the flashcards

Requirements elicitation and analysis

Eliciting and analyzing system stakeholder needs.

Signup and view all the flashcards

Requirements specification

Defining requirements in detail.

Signup and view all the flashcards

Requirements validation

Checking the validity of the requirements.

Signup and view all the flashcards

Software Design

A software structure that realizes a specification.

Signup and view all the flashcards

Implementation

Translating software design into an executable program.

Signup and view all the flashcards

Architectural design

Identifying a system's overall structure and components.

Signup and view all the flashcards

Interface design

Defining connections between system components.

Signup and view all the flashcards

Component design

Designing how each system component will operate.

Signup and view all the flashcards

Database design

Designing system data structure.

Signup and view all the flashcards

Software validation

The process of checking system meets specification

Signup and view all the flashcards

Acceptance testing

Called sometimes alpha testing, custom systems are developed for a single client.

Signup and view all the flashcards

Beta testing

a testing process is often used for software products, testing involves delivering a system to a number of potential customers

Signup and view all the flashcards

Software Evolution

Allow programs to evolve to meet new requirements.

Signup and view all the flashcards

Rework

A form that shows what needs may need to be reworked

Signup and view all the flashcards

Software Prototyping

A method to improve Business analysis

Signup and view all the flashcards

Incremental Delivery

A series of items to display a set of deliverables to customers

Signup and view all the flashcards

Spiral Model

A software development process combining prototyping elements and risk management.

Signup and view all the flashcards

Rational Unified Process

A modern generic processing derived process, that brings together aspects of different generic models.

Signup and view all the flashcards

Inception (RUP)

The establishment of a business case for the system.

Signup and view all the flashcards

Elaboration (RUP)

Developing an understanding of the problem domain and system architecture

Signup and view all the flashcards

Construction (RUP)

System design, programming and testing.

Signup and view all the flashcards

Transition (RUP)

Deploy the system in the operating environment.

Signup and view all the flashcards

Testing (RUP)

A process carried out in conjunction with implementation. System testing follows the completion of the implementation.

Signup and view all the flashcards

Deployment (RUP)

A product release is created, distributed to users and installed in their workplace.

Signup and view all the flashcards

Study Notes

  • Software processes are the activities involved in producing a software system.

Software Process Models

  • Software process models are abstract representations of software processes.
  • Process activity models show activities and their sequence, but may not show the people involved.
  • Common process activities include specifying a data model and user interface design.

Plan-driven and Agile Processes

  • Plan-driven processes plan all activities in advance, tracking progress against the plan.
  • Agile processes incrementally plan and easily change the process.
  • In practice, most processes include elements of both approaches.
  • There are no right or wrong software processes.

Waterfall Model

  • The waterfall model includes requirements definition, system and software design, implementation and unit testing, integration and system testing, and operation and maintenance.

Incremental Development

  • This approach interleaves specification, development, and validation activities
  • The system is developed as a series of versions (increments), with each version adding functionality to the previous version.
  • Incremental software development is better than a waterfall approach for most business, e-commerce, and personal systems.
  • Concurrent activities include specification, development, and validation creating initial, intermediate, and final versions.
  • Managers need deliverables to measure progress, quick system development may not be cost-effective if documentation is required.
  • The system structure degrades as new increments are added.

Reuse-Oriented Software Engineering

  • Stages include: requirements specification, component analysis, requirements modification, system design with reuse, development, and integration, and system validation
  • There are three types of software components:
  • Web services developed according to service standards and available for remote invocation,
  • Collections of objects developed as a package to be integrated with a component framework such as .NET or J2EE
  • Stand-alone software systems configured for use in a particular environment, like word processing or a spreadsheet
  • Advantages include reducing the amount of software to develop, and reducing costs and risks.
  • It usually leads to faster software delivery.
  • Requirements compromises are inevitable and may lead to systems not meeting users' needs.
  • There is some control lost in the system evolution as new versions of reusable components are not under the control of the organization using them.

Process Activities

  • Real software processes are inter-leaved sequences of technical, collaborative, and managerial activities.
  • The overall goal is to specify, design, implement, and test a software system.
  • Four basic process activities of specification, development, validation, and evolution are organized differently in different development processes.
  • In the waterfall model, activities are organized in sequence, whereas in incremental development they are interleaved.

Software Specification - 1

  • This includes establishing services required and the constraints on the system's operation and development.
  • The requirements engineering process includes feasibility study, requirements elicitation and analysis, requirements specification, and requirements validation.
  • Feasibility Study: Is it technically and financially feasible to build the system?
  • Requirements Elicitation and Analysis: What do the system stakeholders require or expect?
  • Requirements Specification: Define the requirements in detail.
  • Requirements Validation: Check the validity of the requirements.
  • Final output of the specification activity of the software process is Requirements Document.

Software Design and Implementation

  • Software design includes designing a software structure that realises the specification
  • Implementation includes translating this structure into an executable program;
  • Design and implementation activities are closely related and may be inter-leaved.
  • Activities include architectural design, interface design, component design and database design.

Design Activities

  • Architectural design identifies the overall structure of the system
  • Principal components are sometimes called sub-systems or modules, their relationships, and how they are distributed.
  • Interface design: defining the interfaces between system components
  • Component design: how each system component will operate
  • Database design: design system data structures and how these are to be represented in a database

Testing and Validation

  • Alpha testing (acceptance testing) is for custom systems, being developed for a single client.
  • The alpha testing process continues until the system developer and the client agree that the delivered system is an acceptable implementation of the requirements.
  • Beta testing is used when a system is to be marketed as a software product.
  • Beta testing delivers a system to a number of potential customers who agree to use that system.

Software Evolution - 4

  • Software evolution takes place when existing software systems are changed to meet new requirements. The software must evolve to remain useful.

Coping with Change

  • Change is inevitable in all large software projects.
  • Business changes lead to new and changed system requirements.
  • New technologies open up new possibilities for improving implementations.
  • Changing platforms require application changes
  • Costs of change include both rework and implementing new functionality.

Software Prototyping

  • Benefits include:
  • Improved system usability;
  • Closer match to user needs;
  • Improved design quality;
  • Improved maintainability;
  • Reduced development effort.
  • Process of prototype development:
  • Establish Prototype Objectives, Prototyping Plan
  • Define prototype functionality, Outline definition
  • Develop prototype, Executable prototype
  • Evaluate prototype, Evaluation report

Incremental Development and Delivery

  • Develop the system in increments and evaluate each increment before proceeding to the development of the next increment.
  • This is normal approach used in agile methods.
  • Evaluation is done by user/customer proxy.
  • Incremental Delivery Process:
  • Deploy an increment for use by end-users;
  • A realistic evaluation is provided about practical software use.
  • A difficult process to implement of replacement systems as increments have less functionality than the system being replaced.

Boehm's Spiral Model of the Software Process

  • The model helps determine objectives, alternatives, identify and resolve risks, and evaluate results.

Spiral Model Usage

  • The Spiral model is influential in helping people think about iteration in software processes.
  • The model is influential in introducing the risk-driven approach to development.
  • The model is not often used as published for practical software development

Rational Unified Process

  • A modern generic process is derived from the work on the UML and associated process, bringing together aspects of the 3 generic process models.
  • The process is described from 3 perspectives:
  • a dynamic perspective that shows phases over time
  • a static perspective that shows process activities
  • a proactive perspective that suggests good practice
  • RUP Phases:
  • Inception, Elaboration, Construction and Transition
  • Inception Phase establishes the business case and defines external entities.
  • Elaboration phase: develops an understanding of the problem domain and system architecture using UML use-cases

Use Case Diagram

  • Used to graphically represent different scenarios and interactions within the system.
  • Stages are:
  • Construction: System design, programming, and testing so that you have a working software system and associated documentation that is ready for delivery to users.
  • Transition: Deploy the system in its operating environment, moving from the development community to the user community.

RUP Iteration

  • Both an in-phase and cross-phase iteration
  • In-phase: Each phase is iterative with results developed incrementally.
  • Cross Phase: As shown by the loop in the RUP model, the whole set of phases may be enacted incrementally.
  • Static workflows in the Rational Unified Process;
  • Business modelling, Requirements, Analysis and design, Implementation, testing, Deployment, Configuration and change management, project management, Environment

RUP Good Practice

  • Visually model software through use of UML models to present static and dynamic views of the software.
  • Verify software quality ensures the software meet's organizational quality standards.
  • Control changes to software by managing software changes using a change management system and configuration management tools.
  • Activities should be included to cope with change, which may involve a prototyping phase.
  • Processes may be structured for iterative development and delivery.
  • Rational Unified Process is organized into phases, but separates activities.

Studying That Suits You

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

Quiz Team

Related Documents

Ch2 PDF

More Like This

Software Engineering SWE-390 Quiz
4 questions
Software Engineering Processes Overview
29 questions
Software Processes and Models
39 questions
Use Quizgecko on...
Browser
Browser