Major Software Development Methods Flashcards

1
Q

Major Software Development Methods and Strategies

(Covered in this course)

A
  • Test Driven Development
  • Model Driven Development
  • Prototyping
  • Incremental Delivery
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Model Driven Development:

Basic Description

A

Models of the software are created at different levels of abstraction

Greater emphasis on architectural models,

with a separation between abstract implementation, independent models, and implementation-specific models

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Common Development Issues:

Types of Change

and the problems that they can introduce

A
  • Business Changes
    • Can alter System Requirements
  • New Technologies
    • New possibilities to improve implementation
  • Changing Platforms
    • May require major application changes

All types of change lead to rework, including reanalyzing requirements.

Rework adds extra time and cost to implement new functionality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Common Development Issues:

Reducing the Cost of Rework:

Two Approaches

A

Change Avoidance(or Anticipation)

Software process includes activities that can anticipate possible changes BEFORE significant rework is required.

Example: Identifying problems early with prototyping

Change Tolerance

Process is designed to be able to change at low cost. Normally involves incremental development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Prototyping:

What is a Prototype?

A

Prototype

An initial version of a system, used to demonstrate concepts and try out design options.

Can be used in:

  • Requirements Engineering process
    • Helps with requirements elicitation and validation
  • Design Processes
    • Explore options and develop a UI design
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Prototyping:

Two Types of Prototyping

A

Evolutionary Prototyping

Throw-Away Prototyping

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Prototyping:

Evolutionary Prototyping

(summary)

A

Evolutionary Prototyping

An initial prototype is produced and refined through a number of stages to the final system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Prototyping:

Throw-Away Prototyping

(summary)

A

Throw-Away Prototyping

A prototype is produced to help discover requirements problems, then discarded.

The actual system is developed using another process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Prototyping:

Benefits

A
  • Improved system usability
  • Closer match to user’s real needs
  • Improved design quality
  • Improved maintainability
  • Reduced Development Effort
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Prototyping:

Prototype Development Process

Steps and Deliverables

A
  • Establish Prototype Objectives
    • Prototyping Plan
  • Define Prototype Functionality
    • Outline Definition
  • Develop Prototype
    • Executable Prototype
  • Evaluate Prototype
    • Evaluation Report
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Incremental Delivery:

Pipeline Steps (9)

A

Initial Steps

  • Define Outline Requirements
  • Assign Requirements to Increments
  • Design System Architecture

Increment Steps (Repeat for each increment)

  • Develop System Increment
  • Validate Increment
  • Integrate Increment
  • Validate System
  • Deploy Increment

Deploy Final System

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Incremental Delivery:

Advantages

A
  • Customers can use early versions to gain experience that informs requirements for later system increments
  • Customers do not have to wait for the “full” system to gain value
  • Incorporates incremental development, so retains the benefit of easily incorporating changes
  • Highest priority services are delivered first, and increments then integrated.
    • Most important services recieve the most testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Incremental Delivery:

Problems/Disadvantages

A
  • Can be hard to know what shared basic facilities will be needed by future increments
  • User expectations “locked in”
    • Users want all functionality of previous releases
    • Can be difficult to develop a replacement system
    • Users do not want to experiment with a new system
    • Hard to get customer feedback
  • Requires different system development contracts, since there isn’t a “Final” version to deliver
How well did you know this?
1
Not at all
2
3
4
5
Perfectly