Software Processes and Models
39 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

Which activity is NOT considered a core element in all software processes?

  • Marketing (correct)
  • Specification
  • Design and Implementation
  • Validation

What is the primary distinction between plan-driven and agile processes?

  • The level of documentation required
  • The approach to planning and change management (correct)
  • The use of automated testing tools
  • The involvement of stakeholders

In the context of software process models, what does 'abstract representation of a process' refer to?

  • A simplified description of a process from a specific perspective. (correct)
  • A fully automated system for managing software development.
  • A legal document outlining the terms of software ownership.
  • A detailed, step-by-step guide for developers.

Which of the following is the main drawback of the waterfall model?

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

When is the waterfall model most appropriate for use?

<p>When the requirements are stable and well-understood. (B)</p> Signup and view all the answers

Managers require regular deliverables to measure progress, if systems are developed quickly, why is it not cost-effective to produce documents that reflect every version of the system?

<p>The overhead of documentation can outweigh the benefits. (B)</p> Signup and view all the answers

In what scenario is the plan focused nature of the waterfall model most beneficial?

<p>In large, multi-site systems engineering projects ensuring coordination. (A)</p> Signup and view all the answers

What is the primary goal of 'Requirements elicitation and analysis' in the software specification process?

<p>Establishing the services and constraints of the system. (D)</p> Signup and view all the answers

What is the focus of 'Requirements validation' during the requirements engineering process?

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

Which activity is a part of the software design?

<p>Design a software structure that realises the specification (B)</p> Signup and view all the answers

Why are software design and implementation considered closely related?

<p>Because they are often interleaved. (D)</p> Signup and view all the answers

What does 'Architectural Design' primarily focus on?

<p>The overall structure of the system and its components. (C)</p> Signup and view all the answers

What is the primary goal of Verification and Validation (V & V) in software development?

<p>To show that a system conforms to its specification and meets customer requirements. (C)</p> Signup and view all the answers

What does system testing primarily focus on?

<p>Testing emergent properties of tests in the system as a whole. (A)</p> Signup and view all the answers

What is the focus of customer testing?

<p>Checking the system meets the customer's needs with customer related data. (B)</p> Signup and view all the answers

Why is software evolution important?

<p>To keep the software aligned with changing requirements. (A)</p> Signup and view all the answers

What does change anticipation involve in software development?

<p>Including activities so the development team expect changes. (A)</p> Signup and view all the answers

How does change tolerance help in reducing the costs of rework?

<p>By designing the process to accommodate changes at a relatively low cost. (B)</p> Signup and view all the answers

What is the primary purpose of system prototyping in managing changing requirements?

<p>Checking the customer's requirements and feasibility of design decisions. (D)</p> Signup and view all the answers

How does incremental delivery support change tolerance?

<p>By delivering system increments for user feedback and experimentation. (A)</p> Signup and view all the answers

What main types of elements do most practical processes include?

<p>Elements of plan-driven and agile approaches (A)</p> Signup and view all the answers

Which software process model includes separate and distinct phases of specification and development?

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

Which software process model encourages specification, development, and validation to be interleaved?

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

If there is regular change to a software's structure, what process should be followed to remedy this?

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

What is a key advantage of the incremental development model?

<p>Reduced cost of accomodating change (A)</p> Signup and view all the answers

What is a potential drawback of incremental development?

<p>System structure degradation (B)</p> Signup and view all the answers

What is the primary focus of integration and configuration in software development?

<p>Assembling systems from existing components. (A)</p> Signup and view all the answers

What is a key step in 'Reuse-oriented software engineering' before adapting components or developing new ones?

<p>Conducting software discovery and evaluation. (D)</p> Signup and view all the answers

What is a major disadvantage of 'Reuse-oriented software engineering'?

<p>Loss of control over evolution of reused system elements (B)</p> Signup and view all the answers

Which of the following accurately describes the relationship between software processes and software process models?

<p>Software process Models are abstract representations of software processes (A)</p> Signup and view all the answers

If a software follows the waterfall model, how are real sequences of technical, collaborative and managerial activities organised?

<p>They are organised in sequence (A)</p> Signup and view all the answers

How does the waterfall model organize the four basic process activities?

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

Which design activity involves defining how data is structured and represented within a system?

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

What is the focus of interface Design?

<p>Defining interactions between system components (C)</p> Signup and view all the answers

In the testing stages, why is testing emergent properties particularly important in system testing?

<p>To verify that the system functions correctly as a whole. (D)</p> Signup and view all the answers

What is the first stage in system evolution?

<p>Define system requirements (A)</p> Signup and view all the answers

In the context of managing changing software requirements, why does change often lead to rework?

<p>Because the costs of change include both rework, as well as the costs of implementing new functionality (A)</p> Signup and view all the answers

What is the definition of debugging

<p>Debugging is the activity of finding program faults and correcting these faults. (D)</p> Signup and view all the answers

What is the main benefit of obtaining customer feedback in development work?

<p>Customers can comment on demonstrations of the software and see how much has been implemented (B)</p> Signup and view all the answers

Flashcards

Software Process

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

Specification

Defining what the system should do.

Design and Implementation

Defining the system's organization and its implementation.

Validation

Checking the system does what the customer wants.

Signup and view all the flashcards

Evolution

Changing system to meet evolving needs.

Signup and view all the flashcards

Software Process Model

Abstract process representation.

Signup and view all the flashcards

Plan-Driven Processes

All process activities planned in advance.

Signup and view all the flashcards

Agile Processes

Planning is incremental, flexible to changing needs.

Signup and view all the flashcards

Waterfall Model

Separate phases of specification and development.

Signup and view all the flashcards

Incremental Development

Specification, development, and validation are interleaved.

Signup and view all the flashcards

Integration and Configuration

Assembling system from existing components. Configurable and adaptable.

Signup and view all the flashcards

Drawback of Waterfall Model

Difficulty of accommodating changes after process begins.

Signup and view all the flashcards

Debugging

Finding and fixing program faults.

Signup and view all the flashcards

Software Reuse

Using existing components/systems.

Signup and view all the flashcards

Software Specification

Establishing required services and system constraints.

Signup and view all the flashcards

Software Validation

Checking system matches specification and customer needs.

Signup and view all the flashcards

Software Evolution

Evolving software to meet new requirements.

Signup and view all the flashcards

Software Processes

Activities involved in software system production.

Signup and view all the flashcards

Requirements Engineering

Developing a software specification

Signup and view all the flashcards

Design and Implementation

Transforming requirements into an executable system

Signup and view all the flashcards

Study Notes

  • Software processes are structured activities for developing a software system.

Software Processes

  • Specification involves defining what the system should do.
  • Design and implementation involves defining the organization of the system and implementing it.
  • Validation means checking that the system does what the customer wants.
  • Evolution means changing the system in response to changing customer needs.
  • Software process model is an abstract representation of a process.
  • The abstract representation presents a description of a process from some particular perspective.
  • Plan-driven processes plan all process activities in advance and measure progress against that plan.
  • Agile processes incrementally plan, thus making it easier to change the process to reflect changing customer requirements.
  • Most practical processes include elements of both plan-driven and agile approaches.
  • There are no right or wrong software processes.

Software Process Models

  • The waterfall model has separate and distinct phases of specification and development along with being a plan-driven model.
  • Incremental development interleaves specification, development, and validation and can be plan-driven or agile.
  • Integration and configuration assembles the system from existing configurable components and can be plan-driven or agile.
  • Most large systems are developed using a process that incorporates elements from all the software process models.

Waterfall model phases

  • Requirements analysis and definition
  • System and software design
  • Implementation and unit testing
  • Integration and system testing
  • Operation and maintenance
  • A main drawback is difficulty accommodating change after the process is underway.
  • In principle, a phase needs to be complete before advancing to the next phase.
  • Inflexible partitioning of a project into distinct stages makes it difficult to respond to changing customer requirements.
  • The model is appropriate when the requirements are well-understood and changes will be fairly limited during the design process.
  • Few business systems have stable requirements.
  • The model is mostly used for large systems engineering projects where a system is developed at several sites.

Incremental Development Benefits

  • The costs of accommodating changing customer requirements is reduced.
  • The amount of analysis and documentation that has to be redone is much less than is required in the waterfall model.
  • Gaining Customer feedback is easier on the development work that has been done.
  • Customers can comment on demonstrations of the software and see how much has been implemented.
  • Rapid delivery and deployment of useful software to the customer is possible.
  • Customers can use and gain value from the software earlier than is possible with a waterfall process.

Incremental Development Problems

  • The process is not visible.
  • Managers need deliveries to measure progress.
  • If systems are developed quickly, creating documents that reflect every version of the system is not cost-effective.
  • System structure tends to degrade as increments are added.
  • Without time and money spent on refactoring the software, regular change tends to corrupt a system's structure.
  • Incorporating further software changes becomes increasingly difficult and costly.

Integration and Configuration systems

  • Based on software reuse, systems are integrated from existing components or application systems sometimes called Commercial-off-the-shelf (COTS) systems.
  • The reused components can be configured to adapt their behaviour and functionality to a user's requirements.
  • Reuse is a standard approach for building many types of business system.
  • Reduced costs and risks with less software being developed from scratch.
  • Faster delivery and deployment of system
  • Requirements compromises are inevitable, so the system may not meet real needs of users.
  • The process can cause loss of control over evolution of reused system elements.

Process Activities

  • Real software processes involve inter-leaved sequences of technical, collaborative, and managerial activities with the overall goal of implementing/testing a software system.
  • The four basic process activities of specification, development, validation, and evolution are organized based on the development processes being used.
  • These are organized in sequence in the waterfall model, whereas they are interleaved in incremental development

Software Specification

  • This establishes required services and the constraints on the system's operation and development.

Requirements engineering process

  • Requirements elicitation and analysis answers what the system stakeholders require or expect from the system.
  • Requirements specification defines the requirements in detail.
  • Requirements validation checks the validity of those requirements.

Software Design

  • Involves designing a software structure that realises the specification.

Implementation

  • Implementation translates this structure into an executable program.
  • Design and implementation are closely related and may be inter-leaved.

General Model of The Design Process

  • Architectural design identifies the overall structure of the system, the principal components and how they are distributed.
  • Database design involves designing the system data structures and their representation in a database.
  • Interface design defines interfaces between system components.
  • Component selection and design means searching for reusable components otherwise design how the components will operate.

System Implementation

  • Software is implemented by either developing a program or programs or by configuring an application system.
  • Design and implementation are interleaved activities for most types of software systems.
  • Programming is an individual activity with no standard process.
  • Debugging is the activity of finding and correcting program faults.

Software Validation

  • Validation is intended to show a system conforms to its specifications and meets the customer's requirements.
  • The process involves review processes and system testing.
  • System testing entails executing the system with test cases derived from the specification of the real data to be processed by the system.
  • Testing is the most commonly used validation activity.

Stages of Testing

  • Component testing individually tests the components. -May involve using functions or objects of coherent groupings of these entities.
  • System testing tests the system as a whole.
  • Emergent properties are important.
  • Customer testing uses customer data to check if the system meets the customer's needs.

Software Evolution

  • Software is flexible and can change.
  • Software evolution takes place when you change existing software systems to meet new requirements.
  • Software must evolve to stay useful. As requirements change through changing business circumstances, software must also evolve and change.
  • There has been less differentiation between development and evolution, as fewer systems are completely new.

Coping with change in projects

  • Change anticipation includes anticipating possible changes before major rework is needed. -A prototype system may be developed to show some key features of the system to customers.
  • Change tolerance designs the process, so that it can accommodate changes at a relatively low cost.
  • Change requires rework, so the costs of change include rework as well as implementing new functionality.
  • Incremental development is required.
  • Proposed changes may be implemented in increments that have not yet been developed.
  • Otherwise, a single increment may have to be altered.
  • Processes should include activities such as prototyping and incremental delivery to cope with change.

Coping with change in system and software

  • System Prototyping approach supports change anticipation.
  • System prototyping quickly develops a version of the system or part of the system to check the customer's requirements and the feasibility of design decisions.
  • Incremental delivery supports both change avoidance and change tolerance.
  • Incremental delivery is an evolutionary strategy, where system increments are delivered to the customer for comment and experimentation.

Studying That Suits You

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

Quiz Team

Related Documents

Description

Explore structured activities for software development, including specification, design, validation, and evolution. Learn about plan-driven and agile processes, and software process models. There are no right or wrong software processes.

More Like This

Software Process Models Overview
12 questions
Software Development Methodologies
30 questions
Software Process Models Overview
23 questions
Agile Software Process Overview
5 questions
Use Quizgecko on...
Browser
Browser