Software Processes Flashcards

1
Q

Structured activities to develop software

A
  • Specification
  • Design
  • Validation
  • Evolution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Waterfall Phases

A
  • Requirements analysis and design
  • System and software design
  • Implementation and Unit testing
  • System testing and Integration
  • Operation and Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Waterfall disadvantage

A

Little flexibility for change after process is underway.

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

When is Waterfall used

A

When requirements are understood and changes are limited.

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

Evolutionary Model Parts:

A
  • Exploratory Development: work with customers to evolve a final system from requirements.
  • Throw away prototyping: understand system requirements, start with poorly understood requirements to clarify needs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Problems of Evolutionary

A
  • Lack of progress visibility
  • Systems often poorly structured
  • Special skills may be required
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Evolutionary Model Applicability

A
  • For small or medium size interactive systems
  • For parts of large systems
  • For short lifetime systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Component Based

A

Based on systematic reuse (reuse components from existing solutions).

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

Component Based Process Stages:

A
  • Component analysis
  • Requirements Modification
  • System design with reuse
  • Development and Integration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Process Iteration/Incremental

A

System requirements will always evolve through course of a project. Incremental delivery focuses on delivering increments (partial functionality) prioritizing user requirements.

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

Advantages of Incremental Delivery

A
  • Customer value can be derived with each increment.
  • Early increments act as prototype to help elicit requirements.
  • Lower risk of project failure
  • Highest priority system services tend to receive most testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Extreme Programming

A

Based on development and delivery of very small increments under functionality. Relies on constant code improvement.

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

Spiral Development

A

Process is spiral rather than linear with backtracking. Each loop is a phase in the process. Risks explicitly assessed and resolved.

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

Spiral Development Sectors

A
  • Objective setting
  • Risk assessments and reductions
  • Development and validation
  • Planning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Software Specification

A

Process of establishing required services and constraints on system.

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

Requirements Engineering Process:

A
  • Feasibility Study
  • Requirements elicitation and analysis
  • Requirements Specification
  • Requirements Validation
17
Q

Software Design and Implementation

A

Process of converting system specs into executable system.

System design realizes specification and implementation translates it to executable.

18
Q

Design Process

A
  • Architectural Design
  • Abstract Specification
  • Interface Design
  • Component Design
  • Data Structure Design
  • Algorithm Design
19
Q

Structured Method

A

Systematic approach to developing a software design. Uses graphic models such as:
- Object Graph
- Sequence Model
- State Transition Model
- Structural Model
- Data Flow Model

20
Q

Debugging

A

Translating design into program and removing errors. No generic process. Use testing.

21
Q

Validation

A

Show that system conforms to specs and meets user requirements. Includes testing through test cases derived from real data.

22
Q

Testing Stages:

A
  • Component or Unit Testing
  • System Testing
  • Acceptance Testing
23
Q

Component/Unit Testing

A

Individual Components tested, may be functions or objects.

24
Q

System Testing

A

Testing of the system as a whole. Test emergent properties

25
Q

Acceptance Testing

A

Testing with customer’s data to check that system meets customer needs.

26
Q

Evolution

A

Software is flexible, changes with requirements evolution.

27
Q

RUP

A

Rational Unified Process is derived from UML and normally describes 3 perspectives:
- Dynamic Perspective that shows phases over time
- Static Perspective that shows process activities
- Practice Perspective that suggests good practice.

28
Q

RUP Phases:

A
  • Inception: Establish business case
  • Elaboration: Develop understanding of problem domain
  • Construction: System design, process and testing
  • Transition: Deploy the system in operating environment.
29
Q

RUP Good Practice:

A
  • Develop software iteratively
  • Manage requirements
  • Use component-based architecture
  • Visually model software
  • Verify software quality
  • Control changes to software
30
Q

CASE

A

Computer Aided Software Engineering supports SD and evolution process.

31
Q

CASE activity automations

A
  • Graphical editors for models
  • Data dictionary for design elements
  • Graphical UI builders
  • Debuggers
  • Automated Translators
32
Q

Case disadvantage

A

Doesn’t make up for creativity

33
Q

CASE classification

A

Functional Perspective: Tools classified according to function.
Process Perspective: Tools classified according to supported process activities
Integration Perspective: Tools classified according to their organization into integrated units.

34
Q

CASE Integrations

A

Tools: Support individual processes ex. Text Editing
Workbenches: Support a process phase such as specification or design
Environments: Support all or most of an entire software process