Software Engineering Chapter 2: Software Processes

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 best describes a 'software process'?

  • The hardware configuration on which the software will run.
  • The set of activities required to develop a software system. (correct)
  • A specific programming language used in software development.
  • A tool used for debugging software code.

What is a key distinction between plan-driven and agile software processes?

  • Agile processes do not require documentation, while plan-driven processes do.
  • Plan-driven processes plan all activities in advance, while agile processes adapt to changing customer requirements. (correct)
  • Agile processes are always faster than plan-driven processes.
  • Plan-driven processes are cheaper than agile processes.

What does a software process model primarily define?

  • The budget allocated for the software project.
  • The specific lines of code to be written.
  • The team structure for software development.
  • The activities in each process and their ordering. (correct)

In the Waterfall model, how are the different processes organized?

<p>Each process must be completed before the next one can begin. (C)</p> Signup and view all the answers

Which of the following is a significant drawback of the Waterfall model?

<p>Changes are difficult and costly to implement after a process is finished. (D)</p> Signup and view all the answers

For what type of project is the Waterfall model most suitable?

<p>Large and critical systems with well-understood requirements. (D)</p> Signup and view all the answers

What is a key characteristic of the Incremental Development model?

<p>Processes are interleaved, allowing for partial completion and development. (D)</p> Signup and view all the answers

What is considered a primary advantage of the Incremental Development model?

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

When is the Incremental Development model most appropriate to use?

<p>When the requirements are not clear, and customer involvement is possible. (B)</p> Signup and view all the answers

In Reuse-Oriented Software Engineering, what is the fundamental approach?

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

What is one of the main advantages of Reuse-Oriented Software Engineering?

<p>Reducing the amount of software to be developed. (B)</p> Signup and view all the answers

What is a notable drawback of Reuse-Oriented Software Engineering?

<p>Requirements may be modified, leading to unmet user needs. (B)</p> Signup and view all the answers

Which of the following is NOT one of the four basic process activities in software engineering?

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

What is the primary goal of software specification?

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

What two key activities are encompassed within 'software development'?

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

What describes the activity of 'debugging'?

<p>The process of removing defects from a program. (A)</p> Signup and view all the answers

What are the three main activities involved in software validation?

<p>Component testing, system testing, and acceptance testing. (A)</p> Signup and view all the answers

What is another term sometimes used for 'acceptance testing'?

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

What is the primary purpose of 'beta testing'?

<p>To expose the product to real use and detect unexpected errors. (A)</p> Signup and view all the answers

When does 'software evolution' typically take place?

<p>After the software has been deployed and is in use. (B)</p> Signup and view all the answers

Flashcards

Software Process

A set of activities required to develop a software system.

Plan-driven Processes

Processes where activities are planned in advance.

Agile Processes

Processes where activities may change based on customer requirements.

Software Process Model

A description that defines the activities and their ordering in a software process.

Signup and view all the flashcards

Waterfall Model

Processes are separated and must be completed in sequence.

Signup and view all the flashcards

Incremental Development Model

Processes are interleaved, allowing for partial completion and iteration.

Signup and view all the flashcards

Reuse-Oriented Model

The system is assembled from existing components.

Signup and view all the flashcards

Basic Process Activities

Software Specification, Software Development, Software Validation and Software Evolution

Signup and view all the flashcards

Software Specification

Establishing what services are required and the constraints on the system.

Signup and view all the flashcards

Software Development

Converting the system specification into an executable system i.e. Software Design & Implementation

Signup and view all the flashcards

Software Validation

Showing that a system conforms to its specification and meets customer requirements.

Signup and view all the flashcards

Software Evolution

Change existing software systems to meet new requirements. The software must evolve to remain useful.

Signup and view all the flashcards

Unit Testing

Testing done by developers, testing individual units of source code.

Signup and view all the flashcards

System Testing

Integrates all units in a system and tests the system

Signup and view all the flashcards

Acceptance Testing

When a system is tested in production with real data

Signup and view all the flashcards

Debugging

Removing defects from the program.

Signup and view all the flashcards

Study Notes

Course Content

  • Chapter 1 focuses on the introduction to Software Engineering
  • Chapter 2 discusses Software Processes
  • Chapter 3 covers Agile Software Development
  • Chapter 4 addresses Requirements Engineering
  • Chapter 5 Includes System Modeling
  • Chapter 6 is about Architectural Design
  • Chapter 7 covers Design and Implementation
  • Chapter 8 is about Software Testing
  • Chapter 9 Includes Software Evolution

Agenda for Chapter 2

  • Software Processes will cover these topics
  • Software Process Models will cover the Waterfall Model, Incremental Development, and Reuse-Oriented Software Engineering
  • Process Activities will cover Software Specification, Software Design and Implementation, Software Validation, and Software Evolution

Software Process

  • It is the set of activities required to develop a software system
  • The main processes in most software process models include Specification, Design and Implementation (Development), Validation, and Evolution

Software Process Types

  • Plan-driven processes plan all process activities in advance
  • Agile processes might change with evolving customer requirements
  • Most software uses both plan-driven and agile approaches

Software Process Models

  • A process model is the definition of activities and their ordering
  • Process descriptions include activities, inputs/outputs, responsible people, and pre/post conditions

Common Software Process Models

  • The waterfall model is a plan-driven model where all processes are separated
  • Processes must be completed before the next can start
  • The Incremental development model is where processes are interleaved
  • Parts of specification and design can be finished and developed in parts
  • The Reuse-oriented software engineering model assembles the system from existing components -This approach can be plan-driven or agile

Combining Software Process Models

  • Combining software process models are common in large systems as they are not mutually exclusive
  • Well-understood parts of a system can utilize a waterfall approach
  • User interfaces or parts difficult to specify in advance are better suited for incremental development

Waterfall Model

  • The Waterfall Model includes:
  • Requirements definition
  • System and Software Design
  • Implementation and Unit testing
  • Integration and System Testing
  • Operation and Maintenance

Waterfall Model Drawbacks and Use Cases

  • Requires a substantial time block to finish
  • Customers have no change to alter the initial requirements
  • Changes are difficult because they can only be made after the software is complete
  • Best use is when requirements are well-understood
  • Useful if creating software similar to existing software
  • Works well for large, critical systems engineering projects developed across multiple sites

Incremental Development Model

  • Involves Concurrent Activities like Specification, Outline Description, Development and Validation
  • Results in initial, intermediate and final versions

Incremental Development Model Advantages

  • Reduces the cost of changing customer requirements
  • Makes it easier to get customer feedback
  • Enables more rapid delivery and deployment of useful software

Incremental Development Model Drawbacks and Use Cases

  • The process lacks visibility making it hard to produce documentation for every version
  • System structure can degrade when new increments are added
  • Best use is when requirements aren't clear
  • Helpful when customer involvement is needed
  • Useful when developing versioned software with new features

Reuse-Oriented Software Engineering

  • Includes Requirements Specification, Component Analysis, Requirements Modification, and System Design with Reuse
  • Development and Integration leads to System Validation
  • Reuse has become the standard for many business systems

Reuse-Oriented Model Advantages

  • Reduces the amount of software needed
  • Reduces cost and risks
  • Quickens software delivery

Reuse-Oriented Model Disadvantages

  • Modified requirements can lead to systems that do not meet real user needs
  • Control over system evolution is lost because reusable component updates are outside organizational control

Process Activities

  • The core four activities are software specification, development, validation, and evolution
  • Organization of main activities depend on the software process model
  • Waterfall models organize them sequentially
  • Incremental development interleaves them

Software Specification

  • It is the process of defining required services and their operational constraints
  • Activities involves are Feasibility Study, Requirements Elicitation and analysis and Requirements Specification

Software Development

  • Software development converts system specifications into an executable system
  • Software design includes designing the software structure to implement the specification
  • Implementation involves translating the structure into an executable program
  • Inputs include Platform Information, Requirement Specifications and Data Description
  • Activities involve Architectural, Interface, Database and Component Design
  • Outputs include System Architecture, Database Specification, Interface Specification and Component Specification

Software Implementation

  • Happens naturally after the software design
  • Programming is personal and lacks a general process
  • Programmers start with components they understand or those less familiar
  • Programmers commonly test code that can reveal program defects
  • Debugging refers to removing these defects

Software Validation

  • Verification and validation (V & V) aims to show that a system conforms to its specification and meets the customer's requirements
  • Software Validation involves component , system, and acceptance testing

Validation Details

  • Acceptance testing is sometimes called 'alpha testing'
  • 'Beta testing' is used for software products, involving system delivery to potential customers
  • Customers report problems to system developers
  • Beta testing exposes the product to real-world use and finds unanticipated errors

Software Evolution

  • Software evolution occurs when altering existing software to meet new requirements
  • Software must evolve to stay useful
  • Its activities include defining system requirements, assessing existing systems, proposing changes, and modifying systems

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser