Lecture 2: Software Process Models Flashcards

1
Q

Building Vs. Growing

A

Building is when you plan everything before starting, but this does not always work well for software.

Growing software is better, because you start with a very simple system that runs, but with minimal functionality, and then continuously add on to that software and let it grow

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

Steps of code and fix model

A
  1. write some code
  2. Fix them problems in the code.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the drawbacks of code-and-fix model?

A
  1. After fixes, code becomes poorly structured, which made fixing expensive
  2. Even well designed software does not meet user’s need (you need a requirements phase)
  3. Code was expensive to fix - poor prep for testing and modification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the 5 phases of the waterfall process?

A
  1. Requirements definition
  2. system and software design
  3. implementation and unit testing
  4. integration and system testing
  5. Operations and maintenance
    (These are all connected to each other)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the original theory of the waterfall model?

A

One should move to the the next phase of development only when its preceding phase is completed and perfected

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

What documents are generated from Waterfall process?

A

Each step will yield documents.
example: after finishing requirements analysis, a requirement document is generated, which is essential for later steps.

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

What are common roles of Waterfall?

A

Analyst
Designer
Programmer
Tester
Trainer
Maintainer

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

Why is cost-estimation tricky in Waterfall?

A

A problem is that we may not have enough information during the early phases to make accurate predictions about the effort needed, and hence the cost, of later phases.

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

Why is waterfall a poor model?

A

The waterfall model is based on classical engineering practice: it is not clear that experience gained from construction of physical objects is going to work for software development
-the software development process is not well-understood;
scientific foundations are lacking;
software requirements change;
developers are HUMANS!

Driven by documents: Document reflects what reader wants to read rather than what is actually happening

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

Pros and Cons of Waterfall process

A

Rigid and formal process, fits well for:
-Embedded systems
-Safety-critical systems

Activities are isolated:
-Late-changing requirements require a lot of rework!

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

What’s the main medium of communication in waterfall model?

A

Verification
Documentation
Meetings
Feedback and Reviews

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

Summarize prototype model

A

Design and build a prototype over and over until the customer approves the prototype and then the final design is done.

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

Benefits of prototyping

A

Improved system usability.
A closer match to users’ real needs.
Improved design quality.
Improved maintainability.
Reduced development effort.

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

Incremental development

A

Fancy name for “growing software.”

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

Advantages of incremental development

A

There is a working system at all times;
clients can see the system and provide feedback
Progress is visible, rather than being buried in documents;
Some kinds of errors can be avoided.

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

Errors and the moment they’re made

A

Errors made early in development tend to be more serious (more expensive to fix) than errors made later.

17
Q

The iterative process characteristic

A

Going small step by small step allows to uncover faulty assumptions early

Better at meeting customer’s needs: Some customers may not know what they actually want

18
Q

Characteristics of Incremental delivery

A

Rather than delivering the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality.

User requirements are prioritised and the highest priority requirements are included in early increments.

19
Q

What is incremental development and delivery?

A

Dev: Develop the system in increments and evaluate each increment before proceeding to the development of the next increment (before validating)
Increment: Deploy an increment for use by end-users (push to production)

20
Q

Advantages of incremental delivery

A

Customer value can be delivered with each increment so system functionality is available earlier.

Early increments act as a prototype to help elicit requirements for later increments.

Lower risk of overall project failure.

The highest priority system services tend to receive the most testing.

21
Q

Problems with Incremental delivery

A

Most systems require a set of basic facilities that are used by different parts of the system.
-As requirements are not defined in detail until an increment is to be implemented, it can be hard to identify common facilities that are needed by all increments.
The essence of iterative processes is that the specification is developed in conjunction with the software.
-However, this conflicts with the procurement model of many organizations, where the complete system specification is part of the system development contract.