Software Engineering: Agile, Scrum, and Processes

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

Which of the following activities is NOT typically part of a software process?

  • Validation
  • Specification
  • Deprecation (correct)
  • Evolution

A software process model is a concrete implementation of a specific software project's workflow.

False (B)

Besides activities and actions, what three elements can software process descriptions also include?

Products, Roles, Pre- and post-conditions

In the context of software processes, what do 'roles' primarily define?

<p>The responsibilities of people involved in the process (C)</p>
Signup and view all the answers

Agile processes require all process activities to be planned in advance, with progress strictly measured against this plan.

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

In ______ processes, planning is incremental and it's easier to change the process to reflect changing customer requirements.

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

Match each process type with it's description.

<p>Plan-driven(prescriptive) = Activities planned in advance, progress measured against plan. Agile Processes = Incremental planning, adapts easily to changing requirements Practical processes = Include elements of plan-driven and agile approach</p>
Signup and view all the answers

Which of the following is a characteristic of the Waterfall model?

<p>Distinct phases of specification and development (B)</p>
Signup and view all the answers

In the Waterfall model, it is easy to go back to previous phases once a later phase has started.

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

What are the names of the phases of the waterfall model?

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

The Waterfall model is most appropriate when:

<p>Problems are well understood with minimal changes in the requirements (D)</p>
Signup and view all the answers

An advantage of the Waterfall model is that it easily accommodates changes to the requirements after the process is underway.

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

A major drawback of the waterfall model is the difficulty of accommodating ______ after the process is underway.

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

Match each feature to the software model that it belongs to.

<p>Waterfall model = Well understood problems Incremental model = Breaks system down into increments = Used with core requirements understood, additional requirements need to be defined.</p>
Signup and view all the answers

Which model breaks the system down into increments, with each increment adding a part of the required functionality?

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

In the Incremental model, requirements for later increments are frozen once the development of an early increment begins.

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

Name the activities of the incremental model.

<p>Choose features, Refine feature descriptions, Implement and test, Integrate feature and text, Deliver system increment</p>
Signup and view all the answers

Which of the following is a primary benefit of using the Incremental Model?

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

The incremental model avoids regular change.

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

The list of features is defined from the beginning in the classical ______ model.

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

Match each scenario with the most appropriate model between Incremental or Evolutionary Model.

<p>Incremental Model = List of features is defined in the beginning = Core requirements understood, additional system requirements needed.</p>
Signup and view all the answers

The Evolutionary model is best used when:

<p>Core requirements are well understood, but additional system requirements have yet to be defined (D)</p>
Signup and view all the answers

In Evolutionary Prototyping, all prototypes are built as 'throw away' prototypes.

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

List the phases of the Evolutionary Models - Prototyping approach.

<p>Communication, quick plan, quick design, prototype construction, delivery &amp; feedback</p>
Signup and view all the answers

Which evolutionary model advantage allows stakeholders to see a working version of the software quickly?

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

Stakeholders are always aware of the software limitations when looking at an early prototype.

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

The ______ model couples the iterative nature of prototyping with controlled aspects of the waterfall model.

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

Match each category with its description.

<p>Spiral Model = Iterative prototyping with controlled elements of waterfall Rapid Prototyping = Stakeholders see working version of software quickly.</p>
Signup and view all the answers

In the Spiral Model, what is the purpose of each pass through the planning region?

<p>To make adjustments to the project plan (A)</p>
Signup and view all the answers

Cost and schedule are not adjusted with customer feedback in the spiral model.

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

The spiral model uses what to help mitigate risks?

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

What is the basis of component-based development?

<p>Integrating systems from existing components (B)</p>
Signup and view all the answers

Reusing software is not a standard approach.

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

If component ______ becomes part of your organization's culture, reusability provides software engineers with a number of benefits.

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

Match each system with it's use.

<p>Standalone Application System = Configured for use in a particular environment. Web Services = Developed according to service standards and are available for remote invocation.</p>
Signup and view all the answers

In reuse-oriented software engineering, what comes after software discovery?

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

A disadvantage of reusability is that the system always meets the needs of the users.

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

The Unified Process is a [blank] and [blank] development process:

<p>Iterative; incremental (D)</p>
Signup and view all the answers

Each iteration results in an ______, which is a release of the system that contains added or improved functionality compared with the previous release.

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

Match the Unified Process (UP) phases with their primary goals:

<p>Inception = Identify business requirements, use-cases. Elaboration = Refine and expand Transition = Beta-testing</p>
Signup and view all the answers

Agile software engineering focuses on:

<p>Delivering functionality quickly, responding to changing specifications, minimizing overheads (A)</p>
Signup and view all the answers

Agile software engineering favors processes and tools.

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

Flashcards

Software Process

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

Specification

Defining what the system should do in a software process.

Design and implementation

Defining the organization of the system and implementing it.

Validation

Checking that a system does what the customer wants.

Signup and view all the flashcards

Evolution

Changing the system in response to changing customer needs.

Signup and view all the flashcards

Products (Software Process)

Outcomes of a process activity within software development.

Signup and view all the flashcards

Roles (Software Process)

Reflect responsibilities of people involved in a software process.

Signup and view all the flashcards

Pre- and post-conditions

Statements true before and after a process activity.

Signup and view all the flashcards

Plan-driven (Prescriptive) processes

Processes where all activities are planned in advance.

Signup and view all the flashcards

Agile processes

Processes where planning is incremental and adaptable.

Signup and view all the flashcards

Waterfall Process Model

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

Signup and view all the flashcards

Incremental Process Model

A plan-driven model with phases in increments.

Signup and view all the flashcards

Evolutionary/Iterative Process Model

Develop increasingly more complete versions of the software, emphasizing risk management.

Signup and view all the flashcards

Waterfall model phases

Separate identified phases: requirements analysis, system design, implementation, etc.

Signup and view all the flashcards

When to Use Waterfall Model

Used for well-understood problems with minimal changes in requirements.

Signup and view all the flashcards

Waterfall Model Drawback

Difficulty of accommodating change after the process is underway.

Signup and view all the flashcards

Incremental Model

Breaks the system into increments that add required functionality.

Signup and view all the flashcards

Difference of Incremental to Evolutionary models

The list of features is defined from the beginning.

Signup and view all the flashcards

Incremental Model Activities

The system is broken down into increments with each increment adding a part of the required functionality. Activities: Choose features, refine, implment, integrate and test, plus deliver.

Signup and view all the flashcards

Evolutionary Models

The core or system requirements are understood but additional requirements have yet to be defined.

Signup and view all the flashcards

Prototyping Model

A common Evolutionary Process Model; the customer defines a set of general objectives for software, but doesn't identify details for the functions and features.

Signup and view all the flashcards

Spiral Model

A cyclic nature for incrementally growing a system's degree of definition and implementation while decreasing its degree of risk.

Signup and view all the flashcards

Component-Based Development

Based on software reuse where systems are integrated from existing components or application systems. (COTS).

Signup and view all the flashcards

Component based development(CBD)

The process to apply when reuse is a development objective.

Signup and view all the flashcards

The Unified Process (UP)

An iterative and incremental development process.

Signup and view all the flashcards

Agile

Focuses on delivering functionality quickly, responding to changing product specifications and minimizing development overheads.

Signup and view all the flashcards

The Four Values of the Agile Manifesto

Individuals and interactions over processes and tools , working software over comprehensive documentation, customer collaboration over contract negotiation and responding to change over following a plan.

Signup and view all the flashcards

Agile Principles

Satisfy the customer, welcome changing requirements and deliver working software frequently.

Signup and view all the flashcards

Study Notes

Software Engineering

  • Agile Software Engineering includes agile methods, Scrum, and Extreme Programming.

Course Learning Outcome

  • Course Learning Outcome 1 (CLO1) focuses on recognizing software engineering principles, life cycle phases, processes, and activities.

The Software Process

  • A software process is a structured set of activities needed to develop a software system.
  • Different software processes exist, but generally include:
    • Specification: Defining what the system should do.
    • Design and implementation: Defining the organization and implementing the system.
    • Validation: Checking that the system meets customer needs.
    • Evolution: Changing the system based on evolving customer needs.
  • A software process model is an abstract representation of a process that describes it from a particular perspective.

Software Process Descriptions

  • Process descriptions include activities or actions like specifying a data model or designing a user interface, including the order of these activities.
  • The descriptions also include:
    • Products: The outcomes of a process activity.
    • Roles: The responsibilities of people involved in the process.
    • Pre- and post-conditions: Statements true before and after a process activity.

Plan-Driven and Agile Processes

  • Plan-driven (Prescriptive) processes plan all activities in advance, measuring progress against this plan.
  • Agile processes plan incrementally, making process changes easier to meet changing customer requirements.
  • Most practical processes utilize elements from both plan-driven and agile approaches.
  • There is no single right or wrong software process.

Software Process Models

  • The Waterfall Process Model is a plan-driven model with separate phases for specification and development.
  • The Incremental Process Model is a plan-driven model with separate phases of specification and development in increments.
  • The Evolutionary/Iterative Process Model is an iterative model that builds increasingly complete software versions, emphasizing risk management.

Waterfall Model Phases

  • Requirements analysis and definition.
  • System and software design.
  • Implementation and unit testing.
  • Integration and system testing.
  • Operation and maintenance.
  • Each phase is marked by milestones and deliverables, also known as artifacts.

When to Use Waterfall Model

  • Works well for well-understood problems with minimal or no changes needed in the requirements.
  • Easy to explain to customers.

Waterfall Model Drawback

  • A key drawback is the difficulty to accommodate changes after starting the process.
  • Each phase must be complete before moving to the next.
  • It may be challenging for customers to explicitly state all requirements, and responding to changes is difficult due to the inflexible partitioning into distinct stages.
  • It is suitable when requirements are well-understood and changes will be fairly limited.

Modified Waterfall

  • This allows going back to previous phases and this opened the door for other iterative models

Incremental Model

  • Instead of delivering a system as a single delivery, it is broken down into increments, each adding part of the functionality.
  • Combines elements of linear and parallel process flow.
  • Focuses on delivering an operational product with each increment.
  • User requirements are prioritized and included in early increments. Once development starts on an increment, its requirements are frozen, but requirements for later increments can evolve.

Incremental Model Activities

  • Choose features to include in an increment from the planned product features.
  • Add details to feature descriptions for team understanding to enable implementation.
  • Implement and test the chosen feature with automated tests to validate system behavior.
  • Integrate the developed feature with the existing system, testing it to ensure proper functioning with other features.
  • Deliver the system increment to the product manager for review; a version may be released for customer use if there are enough implemented features.

Incremental Model Benefits

  • Reduced costs for accommodating changes to customer requirements.
  • Easier to get customer feedback on development work.
  • Rapid delivery and deployment of useful software.
  • Higher priority system services receive more system testing.
  • Reduced risk of overall project failure, compared to the waterfall model.

Incremental Model Problems

  • System structure can degrade as new increments are added.
  • Regular change corrupts its structure unless time and money are spent on refactoring.
  • In the classical incremental model, the list of features is defined from the beginning.

Evolutionary Model

  • Evolutionary models are iterative and develop increasingly complete software versions in increments.
  • It is used when core or system requirements are well understood, but additional system requirements are not yet defined.
  • Two common types of evolutionary process models are the Prototyping Model and Spiral Model.

Evolutionary Models - Prototyping

  • Customers define general objectives without specific details for functions and features Or developers are unsure of the efficiency of an algorithm.
  • The prototype can be "the first system,” but is evolutionary by it slowly evolves into the actual system.
  • Users can feel the system and developers build something immediately.

Evolutionary Models - Prototyping Paradigm

  • Begins with communication, where you will meet with stakeholders to outline overall software objectives, known requirements, and further definitions.
  • Quick iteration and planning occurs.
  • Quick design occurs through modeling.
  • A prototype construction takes place once the quick design is done.
  • The prototype is used by stakeholders who provide feedback for improvements.
  • Iteration occurs to satisfy the differing stakeholders needs while understanding what needs to be done.

Evolutionary Models - Prototyping - Benefits

  • Both Stakeholders and developers immediately improve the design before systems deployment.

Evolutionary Models - Prototyping - Drawbacks

  • Stakeholders see working versions while the software quality is poor.
  • The stakeholders did not consider overall software quality or long-term maintainability.
  • Use of inappropriate OS, programming language or poor algorithm.

Evolutionary Models - Spiral

  • Mixes prototyping iterative nature with the systematic parts of the waterfall model.
  • It supports increasing software versions development.
  • It is a risk-driven model, with 2 features:
    • Cyclic nature for growing system's implementation while decreasing risks.
    • It is a set of milestones for supporting commitment to solution.

Evolutionary Models - Spiral

  • The first circuit iteration can create a product specification.
  • Subsequent versions may create a prototype with more sophisticated software.
  • All circuits can adjust to the project plan.
  • All costs can be adjusted through customer feedback.
  • Spiral models use prototyping for minimizing risk.

Specialized Process Model

  • Component-Based Development
  • Unified Process

Component-Based Development

  • Involves software re-use by integrating existing components or application systems (Commercial-off-the-shelf or COTs).
  • Reused elements can be customized for needs functionality.
  • Re-use creates a standard for all types of business

Component Based Development

  • The proper process to apply is when the use is a development process.
  • Use already made components or use reused components
  • Reusability helps developers reduce the development time to create software.

Types of reusable software

  • Stand-alone application systems configured for a particular environment.
  • Object Collections developed as a package integrated with component frameworks such as .NET or J2EE.
  • Web services developed using standards available with remote invocation.

Reusability Advantages and Disadvantages

  • Advantages:
    • Reduced costs are created as less software is created from scratch.
    • System deliveries are completed faster.
  • Disadvantages:
    • Requirements compromises are inevitable so the software may fail to meet some of the proper needs
    • Losses of control of elements of reused systems.

The Unified Process (UP)

  • The unified process is an iterative and incremental development process.
  • Its Elaboration, construction and transition phases are timeboxes.
  • Each iteration creates a new increment which is a new release of the current system

The Unified Process (UP) Phases

  • Inception: Identify all business use-cases as requirements. Propose rough system architecture.
  • Elaboration: Refine and expand use-cases. Expand the architecture into 5 views: -Use-case model, analysis model, design model, implementation model & deployment model
    • Construction: Develop and obtain initial software components for release.
    • Transition: Give users beta to conduct necessary changes. Make support manual guides for troubleshooting.
    • Production: Monitor all on-going uses and evaluate report defects.

Agile software engineering

  • Software products must be brought to market quickly via rapid software development and delivery.
  • The majority of software products are developed using agile approaches.
  • Agile approaches deliver quickly, adapt based on specifications and minimize overheads.

Values of the Agile Manifesto

1 - individuals and interactions over processes and tools 2 - working software over documentation 3 - customer collaboration over contract negotiation 4 - responding for change

Agile Manifesto and Mindset

  • Agile relies on a mindset of four values with 12 guidelines that have different approaches.
  • All agile managers select based on the need.

Agile principles

  • Satisfying customer through early and continuous delivery of valuable software
  • Welcome changing requirements late in development.
  • Deliver working software frequently (weeks to months with higher timeframe rate)
  • Daily worker cohesion to developer and stakeholders.
  • High environment with motivated teams
  • Transparent in-person discussions.
  • Working code is valuable
  • Agile supports development and constant pace
  • Continual attention and design
  • Simplicity to maximize amount of work
  • Team-led teams
  • Regular team tuning

Agile Definition

  • Agile is term for "Lean" with multiple varieties of Kanban.

Key points

  • Software processes are producing systems.
  • Software models are producing the systems.
  • Traditional models describe the organizations.
    • EX: waterfall
  • Requirement engineering creates a software specification

Key points

  • Transform an specifications to executable system by design and implementation.
  • Software Validation inspects conformity by user needs.
    • Software evolution can always change and remain useful.
  • Implementation processes support prototyping and delivery for easier coping of changes.

Key points

  • Processes build for iterative system delivery with changes disrupting the system from whole.

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