Design Processes Flashcards

1
Q

Pros (3) and Cons (4) of the Waterfall Method

A

+ Reflects standard engineering practice
+ Encourages breakdown of complex systems
+ Good for management of documentation

  • Inflexible
  • Needs an early commitment to requirements
  • Late changes increase the costs
  • Too slow
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Describe: Rapid Prototyping

A

Used when requirements are vague to help customer decide what they want.
- Easy to demonstrate and collect feedback

Prototype is then discarded to build the real system

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

Describe: Evolutionary Prototyping

A

Use if requirements are vague and where time constraints on project may force early termination.

Prototype becomes the final product

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

Pros (3) and Cons (3) of Prototyping

A

+ Helpful when requirements are vague
+ Flexible
+ Accomodates late changes

  • Development process isn’t visible
  • Poor structure can emerge
  • Can’t manage large scale systems that would require any coordination between parties
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe: Spiral Lifecycle Model (4 stages)

A

Aim is to control risks through the project: the key idea is to evaluate the risks and reduce them.
Can terminate features at each evaluation.

4 Stages: - set objectives for current stage

                - evaluate risks
                - develop &validate current stage
                - plan next stage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pros (2) and Cons (1) of Spiral Lifecycle Model

A

+ adapts to fit projects
+clear process and evaluation

  • late changes can have serious consequences
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

When is Formal Systems Development useful?

A

For safety critical systems

Requires formal specification & proof

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

Pros (2) and Cons (3) of Formal Systems Development

A

+ precise and error free
+ proof of specification

  • Precieved as difficult
  • Requires mathematical expertise
  • Still requires validation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Describe Incremental Development.

When is it useful?

A
Useful if time-to-market is critical
Prioritise requirements (list requirements in order of priority), each requirement is delivered as an increment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Describe ‘Shift to Components’ Development? 3 phases

A

Requirements phase: analyse requirements so they can be mapped onto software components

Construction Phase: Build system from existing components and develop new components to integrate to an existing framework

Reuse & Maintain

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

Pros (3) and Cons (3) of using Components to develop software?

A

+ Rapid development strategy
+ Encourages code reuse
+ Reducs costs and risks

  • High initial set-up cost
  • Can lose control of component set
  • Sometimes components can be forced to fit a framework
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Describe the Fountain Lifecycle. How is it: incremental, iterative, parallel?

A

Incremental:

  • develop and deliver on task at a time
  • use a prototype system

Iterative:

  • revisit any faulty tasks
  • revisit any tasks where a change is requested

Parallel:

  • Tasks are developed independently
    • this gives scope for multi-team development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Describe Agile Methods of software development

A
  • No big up front design
  • Short increments with daily builds, passing all tests
  • Pair Programming
  • Anyone can modify the code base
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Pros (3) and Cons (3) of Agile Development Methods

A

+Avoids unproductive and wasteful documentation
+ Code is constantly up-to-date
+ Emphasis on testing

  • Inflexible process
  • Assumes good design will emerge by evolution
  • Doesn’t work for large scale projects that require coordination
How well did you know this?
1
Not at all
2
3
4
5
Perfectly