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

Questions and Answers

Which of the following is the primary characteristic of plan-driven software development processes?

  • Emphasis on rapid delivery and customer feedback with minimal planning.
  • Incremental planning that adapts to changing customer needs.
  • Detailed advance planning of all process activities and progress measurement against this plan. (correct)
  • Flexibility to incorporate new technologies during the development cycle.

In the context of software process descriptions, what do 'pre- and post-conditions' define?

  • The roles and responsibilities of the development team members.
  • The statements that must be true before and after a process activity is enacted or a product is produced. (correct)
  • The activities that must be completed before and after each phase of the project.
  • The budget and timeline constraints for each stage of software development.

What is the primary goal of the 'validation' activity in a software process?

  • Implementing the system's components.
  • Checking that the system does what the customer wants. (correct)
  • Defining what the system should do.
  • Designing the organization of the system.

What is the most significant challenge associated with the waterfall model?

<p>Difficulty in accommodating change after the process is underway. (A)</p> Signup and view all the answers

Which activity is unique to the 'operation and maintenance' phase of the waterfall model?

<p>Correcting errors not discovered in earlier phases and enhancing system services. (B)</p> Signup and view all the answers

How does 'incremental development' address the limitations of the Waterfall model regarding changing customer requirements?

<p>By reducing the cost of accommodating changing customer requirements through iterative development. (D)</p> Signup and view all the answers

Which of the following is a potential problem associated with incremental development?

<p>The system structure tends to degrade as new increments are added. (D)</p> Signup and view all the answers

What is the primary focus of 'reuse-oriented software engineering'?

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

Which of the following is a key advantage of adopting a reuse-oriented approach to software development?

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

In 'reuse-oriented software engineering', what is the purpose of 'component analysis'?

<p>To analyse existing components for potential reuse. (D)</p> Signup and view all the answers

In software processes, what is the significance of 'software specification'?

<p>Establishing what services are required and the constraints on the system. (A)</p> Signup and view all the answers

Which of the following activities is included in 'Requirements and Analysis' within software specification?

<p>Deriving the system requirements by examining existing systems and stakeholder needs. (A)</p> Signup and view all the answers

What is the primary focus of 'requirements validation' within the software specification process?

<p>Checking the requirements for realism, consistency, and completeness. (D)</p> Signup and view all the answers

What is the main goal of 'software design' during software design and implementation?

<p>Designing a software structure that realises the specification. (A)</p> Signup and view all the answers

What are the key activities involved in 'design activities'?

<p>Architectural design, database design, interface design. (B)</p> Signup and view all the answers

What is the purpose of 'Verification and Validation' (V & V) in software development?

<p>Showing that a system conforms to its specification and meets the requirements of the customer. (D)</p> Signup and view all the answers

What does 'system testing' primarily involve?

<p>Executing the system with test cases derived from the specification of real data to be processed by the system. (D)</p> Signup and view all the answers

Which of the following best describes 'component testing'?

<p>Individual components are tested independently. (C)</p> Signup and view all the answers

What triggers 'software evolution'?

<p>Changes in requirements due to changing business circumstances. (D)</p> Signup and view all the answers

Which statement accurately reflects the nature of software?

<p>Software is inherently flexible and can change more readily than hardware. (D)</p> Signup and view all the answers

Flashcards

Software Process

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

Software Process Model

Abstract representation of a software process from a specific viewpoint.

Plan-driven processes

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

Agile Processes

Processes with incremental planning, which allows for easy changes to reflect customer requirements

Signup and view all the flashcards

Waterfall Model

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

Signup and view all the flashcards

Incremental Development

A model where specification, development, and validation are interleaved.

Signup and view all the flashcards

Reuse-Oriented Software Engineering

A model where systems are assembled from existing configurable components.

Signup and view all the flashcards

Requirements Analysis

The system's services, constraints and goals are established.

Signup and view all the flashcards

System and Software Design

Process that allocates requirements to hardware or software systems + establishes overall system architecture.

Signup and view all the flashcards

Software Validation

Ensuring the system meets the requirements of the customer.

Signup and view all the flashcards

Software evolution

Changing the system as a response to changing customer needs.

Signup and view all the flashcards

Software Specification

The process of establishing what services are required and constraints on the system.

Signup and view all the flashcards

Architectural Design

Describes identification of overall structure for the system.

Signup and view all the flashcards

Database Design

Involves identifying system data strutures

Signup and view all the flashcards

Interface Design

Involves defining the system component interfaces.

Signup and view all the flashcards

Debugging

Finding and fixing program faults.

Signup and view all the flashcards

Software validation

Checking that the system conforms to its specification.

Signup and view all the flashcards

Component Testing

Testing each component of the system separately.

Signup and view all the flashcards

Customer Testing

Testing with customer data to check system meets needs

Signup and view all the flashcards

Software Evolution

Changing existing system to meet new requirements.

Signup and view all the flashcards

Study Notes

Software Processes Overview

  • Software processes include activities for creating a software system.
  • Software process models are abstract representations of these processes.

Software Process Descriptions

  • Software process descriptions usually detail the activities and their ordering.
  • Process descriptions may include products (outcomes), roles (responsibilities), and pre- and post-conditions (statements before/after activity).

Plan-Driven vs. Agile Processes

  • Plan-driven processes plan all activities in advance, measuring progress against this plan.
  • Agile processes use incremental planning, allowing easier adaptation to changing customer needs.
  • Most practical processes combine elements of both approaches.

Software Process Models

  • Waterfall Model: A plan-driven model with separate specification and development phases.
  • Incremental Development: Specification, development, and validation are interleaved and can be plan-driven or agile.
  • Reuse-Oriented Software Engineering: Systems are assembled from existing components and can be plan-driven or agile.
  • Large systems often incorporate elements from multiple models.

The Waterfall Model

  • A plan-driven model that has separate and distinct phases of specification and development
  • It is appropriate to use when the requirements are well understood

Waterfall Model Phases

  • Requirements analysis and definition: System services, constraints, and goals are established through user consultation.
  • System and software design: Requirements are allocated to hardware or software systems, establishing an architecture.
  • Implementation and unit testing: Software design is realized as programs or units; unit testing verifies specifications.
  • Integration and system testing: Program units are integrated and tested to ensure requirements are met before delivery.
  • Operation and maintenance: The system is installed and used; maintenance corrects errors, improves units, and enhances services.

Waterfall Model Problems

  • A key drawback is the difficulty in accommodating changes once the process has started.
  • Distinct project stages make it hard to adjust to changing customer needs.
  • It is most suitable when requirements are well-understood and changes are limited.
  • It's commonly used where a system is developed across multiple sites due to its plan-driven nature to coordinate work.

Incremental Development

  • Specification, development and validation done concurrently in an iterative fashion

Incremental Development Benefits

  • The cost of accommodating changing customer requirements is reduced since analysis and documentation is less.
  • Customer feedback is more easily obtained.
  • There is more rapid delivery and deployment of usable software.

Incremental Development Problems

  • The process is not clearly visible.
  • System structure can degrade as new increments are added, especially without refactoring

Reuse-Oriented Software Engineering

  • It's based on integrating existing components or application systems (COTS).
  • Process stages include: component analysis, requirements modification, system design and reuse, and development and integration.
  • Reused elements are configured to meet user requirements.
  • It's now standard for many business systems.

Types of Reusable Software

  • Stand-alone application systems (COTS) configured for specific environments.
  • Collections of objects developed as packages for integration with frameworks like .NET or J2EE.
  • Web services developed according to service standards for remote invocation.

Reusable Software advantages

  • Reduced costs and risks from less development from scratch
  • Faster delivery and deployment

Reusable Software disadvantages

  • Requirements may need to be compromised, so the system may not meet real user needs
  • There is a loss of control over evolution of reused system elements

Process Activities

  • Real software processes are sequences of technical, collaborative, and managerial activities.
  • The goal is specifying, designing, implementing and testing a software system.
  • The four basic activities are: specification, development, validation, and evolution differently organized based on chosen development processes
  • For example in the waterfall model, they are in sequences, versus in incremental development they are interleaved.

Software Specification

  • Software specification or requirements engineering establishes required services and constraints.
  • Four main activities: feasibility study, requirements analysis, requirements specification, and requirements validation.

The requirements engineering process

  • Has 6 steps
  • Feasibility study towards requirements validation
  • Requirements, models, and document are intermediate points.

Software Design and Implementation

  • It's the process for converting system specifications into an executable system
  • Involves software design to create a structure that realizes the specification
  • Also involves implementation which translates this structure into an executable program
  • These activities are closely related and interleaved.

Design Activities

  • Architectural design: Identify system structure, components, relationships, and distribution.
  • Database design: Design system data structures and database representation.
  • Interface design: Define interfaces between system components.
  • Component selection and design: Search for reusable components; if not found, design them.

System Implementation

  • Software is implemented by programming or configuring an application.
  • Design and implementation are interleaved for most software systems.
  • Programming is an activity with no standard processes.
  • Debugging is finding and fixing program faults.

Software Validation (V & V)

  • Verification and validation ensures the system meets specifications and customer requirements.
  • It includes checking, review, and system testing.
  • System testing involves test cases from specifications that process real data.
  • Testing is the most common V & V.

Stages of Testing

  • Component testing: Testing individual components independently.
  • System testing: Testing the system as a whole, focusing on emergent properties.
  • Customer testing: Testing with customer data to meet customer needs.

Software Evolution

  • Software is flexible and must change in response to evolving business requirements.

Key Points

  • Design and Implementation includes transforming requirements specification into an executable software system
  • Software Validation is the process of checking the system conforms to its specifications
  • Software Evolution addresses the need to change existing software to meet new requirements

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 Process Models Lecture 2
10 questions
Software Development Process Models Quiz
40 questions
Software Processes Overview
48 questions

Software Processes Overview

CorrectGyrolite4591 avatar
CorrectGyrolite4591
Use Quizgecko on...
Browser
Browser