Chapter 2 Software Process Flashcards

1
Q

Steps of Software Process

A

Specification
Design
Implementation
Validation
Evolution

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

Implementation

A

Translate design into an executable program

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

Different Software process models

A

The waterfall model
Evolutionary development
Formal systems development
Reuse oriented development

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

The waterfall model

A

Separate and distinct phases of specification and development

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

The waterfall model phases

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

The drawback of the waterfall model

A

Hard to respond to changes
Inflexible

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

Applicability of waterfall model

A

When requirements are understood and not changing
Small project

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

Advantages of waterfall method

A
  • well documented/ well structures product
  • simple and easy
    -distinct and clear phases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Outline of Evolutionary Development

A

Interleaved specifications, development and validation

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

Types of Evolutionary Development

A
  1. Exploratory development: Work with costumer to evolve final system
  2. Thro-away prototyping : Understand the system requirements then start. (Should start with poorly understood requirements)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Advantages of evolutionary development

A

The specifications can be developed incrementally
The user understands the problem
The user sees the progress

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

Disadvantages of evolutionary development

A

Lack of process visibility
Systems are often poorly structured( easily corrupted structure), meaning incorporating changes becomes increasingly difficult
Special skills may be required

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

Applicability of evolutionary development

A

For small/medium size interactive systems
For pats of large systems (such as the UI)
For short lifetime systems

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

Formal Systems Development

A

Based on the transformation of a mathematical specification to an executable program

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

Formal Systems development flowchart

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

Disadvantages of Formal Systems Development

A

Needs specialized skills and training
Difficult to formally specify some aspects of the system as the UI
Hard to develop specifications for large software systems

17
Q

Advantages of Formal Systems Development

A

Transformations are “correctness preserving” so it is straightforward to show that the program conforms to its specifications

18
Q

Applicability of Formal Systems Development

A

Critical systems with high concern about safety before the system is put into operation

19
Q

Exploratory development flowchart

A
20
Q

Prototyping development flowchart

A
21
Q

Component Based Software Engineering

A

Based on systematic reuse where the systems are integrated from existing components or COTS systems

22
Q

Advantages of Component Based Software Engineering

A

Reduce the amount of software to be developed (and hence reducing cost and risks)
Faster delivery of software

23
Q

Disadvantages of Component Based Software Engineering

A

Compromised requirements ( the system may not meet the needs of user)
Some control over the system evolution is lost (as new versions of the reusable components are not under the control of the organizations using them)

24
Q

Applicability of Component Based Software Engineering

A

When system requirements can be compromised and delivery must be quick

25
Q

Component Based Software Engineering Flowchart

A
26
Q

Process Iteration

A

Where earlier stages are reworked ( part of the process because the system requirements always change and evolve)

27
Q

Process Iteration Approaches

A

Incremental Development
Spiral Development

28
Q

Incremental Development

A

Development and delivery are broken down to increments, each delivers a requirement starting from highest priority

29
Q

Advantages of Incremental Development

A

-Costumer value can be delivered with each increment so functionality is available early
-Early increments act as prototypes to help elicit requirements for later increments
- Low risk of project failure
- The highest priority requirements are most tested

30
Q

Disadvantages of Incremental Development

A

-Hard to map requirements to increments
-High level requirements may not be enough to define system architecture

31
Q

Spiral Model

A

Process is represented as a spiral, a loop is a phase, each phase delivers a requirement
No fixed phases phases in the spiral are chosen depending on what is required
Risks are assessed and resolved throughout the process

32
Q

Phases of Spiral Development

A

Planning
Risk analysis
Engineering
Costumer evaluation

33
Q

Requirements engineering process

A

Feasibility study
Requirements elicitation and analysis
Requirements specification
Requirements validation

34
Q

Design Process Activities

A

Architectural design
Abstract specification
Interface design
Component design
Data structure design
Algorithm Design

35
Q

Debugging Process

A

Locate error
Design error repair
Error repair
Retest program

36
Q

Testing Stages

A

Unit testing (individual components are tested)
Module testing
Sub-system testing
System testing
Acceptance testing