Software Processes Overview

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

What is the first fundamental activity in the software process?

  • Software Evolution
  • Software Development
  • Software Validation
  • Software Specification (correct)

Software Evolution refers to the creation of new software from scratch.

False (B)

Name one of the supporting activities in a software process.

Documentation

The process activity where software is checked against customer requirements is called __________.

<p>Software Validation</p> Signup and view all the answers

Match the software process activity with its description:

<p>Software Specification = Defining software requirements and constraints Software Development = Designing and programming the software Software Validation = Checking software against requirements Software Evolution = Modifying software for changing requirements</p> Signup and view all the answers

Which activity involves creating models like class diagrams and flow charts?

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

Process descriptions do not include roles and responsibilities of people involved in the process.

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

What is the outcome of architectural design in a software process?

<p>A model of software architecture</p> Signup and view all the answers

In which situations is the Waterfall model preferred?

<p>For systems where human life is at stake (C)</p> Signup and view all the answers

Incremental development involves developing an initial implementation that is then exposed to user feedback.

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

What is a significant advantage of incremental development over the Waterfall model?

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

The activities in the incremental development process are not separated but __________ with feedback involved.

<p>interleaved</p> Signup and view all the answers

What typically happens in the early increments of a system during incremental development?

<p>The most important functionality is developed (A)</p> Signup and view all the answers

In the Waterfall model, it is acceptable to change the requirements after the project has started.

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

Which industries tend to follow the Waterfall model due to strict standards and requirements?

<p>Department of Defense (DOD), military and aircraft programs</p> Signup and view all the answers

Match the following development models with their characteristics:

<p>Waterfall Model = Plan-driven process requiring full planning before execution Incremental Development = Evolving through user feedback and multiple versions Department of Defense = Industry often utilizing the Waterfall model Customer Feedback = Critical for assessing development in incremental model</p> Signup and view all the answers

What type of software development process requires all activities to be planned in advance?

<p>Plan-driven processes (C)</p> Signup and view all the answers

In agile processes, all requirements must be specified before development begins.

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

What marks the post-condition after architectural design activities have been finished?

<p>The UML models describing the architecture have been reviewed.</p> Signup and view all the answers

In the ________ model, specification, development, and validation are interleaved.

<p>incremental development</p> Signup and view all the answers

Match the software process models with their descriptions:

<p>Waterfall model = Plan-driven model with distinct phases Incremental development = Interleaved specification and development Reuse-oriented software engineering = Assembling systems from existing components Agile processes = Flexible planning and adapting to changes</p> Signup and view all the answers

Which of the following is NOT a characteristic of plan-driven processes?

<p>Adaptable to changing requirements (C)</p> Signup and view all the answers

Real-time software in an aircraft can have its requirements developed concurrently with the program.

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

What is an abstract representation of a process that provides a partial view of that process?

<p>Software process model</p> Signup and view all the answers

What is a major benefit of incremental development compared to the waterfall process?

<p>Faster delivery and deployment of useful software (A)</p> Signup and view all the answers

The process visibility in incremental development is typically high.

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

What happens to system structure as new increments are added in incremental development?

<p>It tends to degrade.</p> Signup and view all the answers

Large systems need a stable ______ or architecture for effective incremental development.

<p>framework</p> Signup and view all the answers

Which of the following is NOT a type of software component used in a reuse-oriented process?

<p>Custom-built software from scratch (A)</p> Signup and view all the answers

Match the following software component types with their descriptions:

<p>Web services = Available for remote invocation Collections of objects = Integrated with a component framework Standalone software systems = Configured for specific environments Reuse-oriented process = Utilizes pre-existing components</p> Signup and view all the answers

Change is viewed as capable of increasing the costs of software development in large projects.

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

What must be clearly defined among different teams developing parts of a large software system?

<p>Responsibilities</p> Signup and view all the answers

Flashcards

Software Process

A systematic sequence of activities leading to a software product.

Software Specification

Defining the software's features and constraints.

Software Development

Designing and programming the software.

Software Validation

Checking if the software meets requirements.

Signup and view all the flashcards

Software Evolution

Modifying the software to adapt to changes.

Signup and view all the flashcards

Process Activities

Specific tasks within a software process (e.g., designing, testing).

Signup and view all the flashcards

Process Products

Outputs of process activities (e.g., a design document).

Signup and view all the flashcards

Process Roles

Responsibilities of people involved in the process (e.g., programmer, project manager).

Signup and view all the flashcards

Plan-driven process

A software development process where all activities are planned in advance, and progress is measured against the plan.

Signup and view all the flashcards

Agile process

A software development process where planning is incremental, allowing for easier adaptation to changing customer requirements.

Signup and view all the flashcards

Software process models

Abstract representations of software development processes, showing different perspectives.

Signup and view all the flashcards

Waterfall model

A sequential software development model with distinct phases of specification and development.

Signup and view all the flashcards

Incremental development

A software development approach where the system is developed in versions, each adding functionality.

Signup and view all the flashcards

Reuse-oriented software engineering

Assembling a system from existing components.

Signup and view all the flashcards

Real-time software

Software with strict timing requirements, e.g., in aircraft.

Signup and view all the flashcards

E-commerce systems

Software systems, where the specification and the program are often developed concurrently.

Signup and view all the flashcards

User Feedback

Comments and suggestions about a system from the people who will use it.

Signup and view all the flashcards

Incremental Versions

New versions of the system, with enhanced features or functions added in each version.

Signup and view all the flashcards

Requirements Known in Advance

Clear and established needs and requirements for the software before development begins.

Signup and view all the flashcards

Early Increment Functionality

The most important or urgent functionalities of the system in the beginning versions or increments of the software.

Signup and view all the flashcards

Customer Evaluation

The process of the customer reviewing and evaluating the software at early or intermediate stages of development.

Signup and view all the flashcards

Visibility Problem

In incremental development, managers may struggle to measure progress because there are no regular deliverables to assess system development.

Signup and view all the flashcards

System Degradation

Incremental development can lead to a decline in system structure if changes aren't carefully managed, making future modifications more difficult and costly.

Signup and view all the flashcards

Large System Challenges

Incremental development is more challenging for large, complex systems as it requires a stable architecture and well-defined team responsibilities, which need to be planned in advance.

Signup and view all the flashcards

Types of Reusable Components

Reusable software components can be web services, collections of objects for component frameworks, or standalone systems configured for specific environments.

Signup and view all the flashcards

Change in Software Development

Change is inevitable in large software projects due to evolving business requirements and new technologies, impacting development costs as rework is often necessary.

Signup and view all the flashcards

Accommodating Change

Any software development process must be flexible enough to accommodate changes effectively, considering the inevitable evolution of requirements and technologies.

Signup and view all the flashcards

Study Notes

Software Processes

  • Software engineering uses a systematic approach, sometimes called a software process, to create software products
  • A software process is a sequence of activities that leads to software product creation
  • Four fundamental activities are common to all software processes: specification, development, validation, and evolution
  • Throughout, ongoing management and documentation activities accompany the process

Software Process Fundamental Activities

  • Software Specification (Requirements): Users and developers define the desired software, its features, and constraints
  • Software Development: The software is designed and programmed (involves creating models, algorithms, and programming)
  • Software Validation (Testing): The software is assessed to ensure it meets the user's needs and requirements
  • Software Evolution: The software is revised and adapted to accommodate changing needs and preferences (ongoing management and documentation are crucial here)

The Software Process in Practice

  • Complex, including sub-activities (example: requirement validation and unit testing)
  • Includes supporting activities, such as documentation and software configuration management

Software Process Descriptions

  • Descriptions focus on activities, such as data model specification or UI design, and their ordering

  • Also include:

    • Products: Outcomes of a process activity, like an architectural design model
    • Roles: Responsibilities of individuals involved (for example, project manager, configuration manager, programmer)
  • Pre- and post-conditions: Statements specifying the state of the system before and after a process activity. For example:"Before architectural design begins, all requirements must be approved" or "After design, the UML models describing the architecture must be reviewed"

Plan-Driven and Agile Processes

  • Plan-driven: All process activities planned in advance, measuring progress against the original plan
  • Agile: Planning is incremental, making adjustments easier to accommodate changing user needs

Different Types of Systems and Processes

  • Different types of systems (e.g., real-time systems, e-commerce systems) require diverse development processes
  • Specific activities may be organized differently, and described at different levels of detail, depending on the software being developed

Software Process Models

  • A software process model is a way to visualize and represent a software process from a specific perspective
  • Only shows limited information
  • A process activity model illustrates activities and their order, but often omits details like roles

Software Process Models: Examples

  • Waterfall Model: Plan-driven, with separate and distinct phases for specification and development
  • Incremental Development: Specification, development, and validation are interleaved, with the system refined through successive versions (incremental releases)
  • Reuse-Oriented Software Engineering: The system is assembled from existing components

The Waterfall Model

  • A sequential approach where each phase must be completed before the next begins
  • Activities are planned and scheduled before implementation starts

Waterfall Model Phases

  • Requirements Definition
  • System and Software Design
  • Implementation and Unit Testing
  • Integration and System Testing
  • Operation and Maintenance

Waterfall Model Problems

  • Difficulty accommodating change
  • Potentially lengthy development timelines

Incremental Development Benefits

  • Reduced cost of accommodating changes
  • Easier to get customer feedback
  • Easier to deliver value to customers faster

Incremental Development Problems

  • Process not always immediately visible to project managers
  • System structure can degrade if changes are not carefully managed

Reuse-Oriented Software Engineering Considerations

  • Involves reusing existing software components from various sources

Three Types of Reuse Components

  • Web services
  • Collections of objects
  • Standalone software systems

Coping With Change

  • Change is inherent in large software projects
  • Includes changes in user requirements, business priorities, and technology
  • Rework is a significant cost associated with accommodating change

Software Prototyping

  • A prototype is an initial version of a system, a way to try out design options
  • Can be used during requirements engineering, design, and testing

Prototyping Benefits

  • Improved system usability
  • Improved alignment with user needs and preferences
  • Reduced development effort

Prototyping Process

  • Establish Prototype Objectives
  • Define Prototype Functionality
  • Develop Prototype
  • Evaluate Prototype

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