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

20
Q

Prototyping development flowchart

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
Component Based Software Engineering Flowchart
26
Process Iteration
Where earlier stages are reworked ( part of the process because the system requirements always change and evolve)
27
Process Iteration Approaches
Incremental Development Spiral Development
28
Incremental Development
Development and delivery are broken down to increments, each delivers a requirement starting from highest priority
29
Advantages of Incremental Development
-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
Disadvantages of Incremental Development
-Hard to map requirements to increments -High level requirements may not be enough to define system architecture
31
Spiral Model
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
Phases of Spiral Development
Planning Risk analysis Engineering Costumer evaluation
33
Requirements engineering process
Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation
34
Design Process Activities
Architectural design Abstract specification Interface design Component design Data structure design Algorithm Design
35
Debugging Process
Locate error Design error repair Error repair Retest program
36
Testing Stages
Unit testing (individual components are tested) Module testing Sub-system testing System testing Acceptance testing