Software Processes Flashcards

(34 cards)

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
Acceptance Testing
Testing with customer's data to check that system meets customer needs.
26
Evolution
Software is flexible, changes with requirements evolution.
27
RUP
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
RUP Phases:
- Inception: Establish business case - Elaboration: Develop understanding of problem domain - Construction: System design, process and testing - Transition: Deploy the system in operating environment.
29
RUP Good Practice:
- Develop software iteratively - Manage requirements - Use component-based architecture - Visually model software - Verify software quality - Control changes to software
30
CASE
Computer Aided Software Engineering supports SD and evolution process.
31
CASE activity automations
- Graphical editors for models - Data dictionary for design elements - Graphical UI builders - Debuggers - Automated Translators
32
Case disadvantage
Doesn't make up for creativity
33
CASE classification
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
CASE Integrations
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