The Software Process Flashcards

1
Q

The Software Process

A
  1. Specification
  2. Architecture
  3. Design
  4. Implementation
  5. Testing
  6. Evolution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Types of Approaches

A
  1. Plan-driven
  2. Agile
  3. Hybrid (most realistic)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Plan-Driven Approach

A

Phased, software works only in final phase, overhead communication, testing only at final stage, predictive planning

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

Agile Approach

A

Iterative and incremental, always have MVP, less overhead communication, validation driven, adaptive planning

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

Software Process Model Examples

A
  1. Waterfall model
  2. Incremental development
  3. Reuse-oriented SWE
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

The Waterfall Model

A

Linear and plan driven.
PROS: Used mostly for large projects.
CONS: Inflexible for responding to changing customer requirements. Working program only available at end of process.

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

Incremental Development

A

Multiple concurrent activities.
PROS: Can easily accommodate changing customer requirements. Consistent feedback loop. Usable software is available early in the process.
CONS: Process not visible. System structure can degrade over time if initial is low quality. Hard to define common features.

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

Prototyping Model

A

Involves creating and possible dumping many designs to find optimal one.
PROS: Improved usability, matches user needs, high design quality, high maintainability, reduced development effort
CONS: not working product may confuse customer, implementation compromises to get quick model

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

Spiral Model

A

Each loop is a phase in process, no fixed phases (like specs or design) can be chosen by team, risk assessment is integral part of process
CONS: hard to convince customers that process is controllable, requires risk management expertise

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

Specification Phase

A
  • Feasibility study
  • Requirements elicitation/analysis
  • Requirements specification
  • Requirements validation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Architecture Phase

A

Create level of abstraction between:
- User needs/requirements
- Design Elements (data structures & algorithms)

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

Layered Architecture

A

All components in separate layers. Most important in core. Outer layers must communicate w all layers before getting to core.

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

Design and Implementation Phase

A

Converting system specs to executable system

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

Testing Phase

A

Uses VERIFICATION and VALIDATION. Testing the entire system.

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

Verification

A

Is the system built the right way? Meets requirements, right process, meets standards.

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

Validation

A

Are we meeting the customers needs and intent?

17
Q

Testing Stages

A
  1. Development testing
  2. Release testing
  3. User testing
18
Q

Development Testing

A

Test driven development, component testing (how pieces work together), system testing

19
Q

Release Testing

A

Testing entire system together. All testers are from outside the team. I.E. black box testing

20
Q

Black Box Testing

A

Testing the program without access to the code

21
Q

Evolution Phase

A

Software must be able to be easily changed and updated. Many projects start from existing program