(8) Software Development Flashcards

1
Q

What are the phases of the waterfall model?

A
  1. Analysis of requirements
  2. Design
  3. Implementation and unit testing
  4. Integration and system testing
  5. Operation and maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Requirement Analysis - Definition

A

Study, understand and specify the system requirements

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

Design Phase - Definition

A
  • Study, understand and design the system architecture

- Identify and describe the fundamental software system abstractions and their relationships

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

Implementation and unit testing - Definition

A

Create individual code units and verify that each fulfils its responsibilities

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

Integration and system testing - Definition

A
  • Integrate and test increasingly large modules, up to the level of the system as a whole
  • Deliver validated system to customer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Operating and Maintenance - Definition

A
  • Install the system and put it into practical use

- Update the software to correct errors, improve the software, and satisfy new requirements

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

What are advantages and disadvantages of the waterfall model?

A

Advantages:

  • Defines a sequence of concrete activities
  • Simple process model for managers

Disadvantages:

  • Inflexible portioning of the project into distinct stages
  • Insensitive to changing customer requirements
  • High-risk due to “big bang” integration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

When can the waterfall model be applied?

A
  • Requirements must be well understood
  • Requires a lot of experience
  • Not well suited for complex projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the V Model?

A
  • Complements the waterfall model

- Elaborated view on verification and validation

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

What is the Iterative Process Model?

A
  • Project is split into a series of short, fixed length mini projects called iterations
  • Each iteration includes own analysis, design, implement and test phase
  • User requirements are prioritized
  • Highest priority requirements are included in early increments
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are advantages and disadvantages of the Iterative Process Model?

A

Advantages:

  • Early attention to high risk
  • Early process visible
  • Early feedback
  • Managed complexity
  • Learning with each iteration can improve development

Disadvantages:

  • Additional overhead
  • Refactoring cycles may be needed
  • Cost estimation is harder
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the Agile Development model?

A

A lightweight approach to software development that aims for customer satisfaction.

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

How does an increment in the Agile Development Model looks like?

A
  1. Analyze a little
  2. Design a little
  3. Test a little
  4. Code a little
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the four value statements of the Agile Development model?

A
  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following the plan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the principles in the agile development model?

A
  1. Satisfy the customer
  2. Welcome changing requirements
  3. Business people and developers must work together (face -to-face)
  4. Build project around motivated individuals
  5. Working software = measure of progress
  6. Agile processes promote sustainable development (maintain constant pace)
  7. Attention to technical excellence and good design enhances agility
  8. Simplicity
  9. Self-organising teams
  10. Team reflections - how become more efficient
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the aim of agile development?

A
  • Normally change becomes more expensive the later in the project it appears
  • Agile Development: The curve (increasing costs) can be kept flat through constant refactoring
17
Q

What are advantages and disadvantages of the Agile Development Model?

A

Advantages:

  • System is developed incrementally
  • Early feedback guaranteed
  • Simple management model
  • Rapid response to change is feasible

Disadvantages:

  • Requires frequent refactoring cycles
  • Sometimes used as an excuse when no process exists at all
  • Not feasible for distributed projects
18
Q

When can the Agile Development model be applied?

A

For small or medium sized projects as long as development team can work closely with customer.

19
Q

Prototype Definition

A

A prototype is a initial version of a system used to demonstrate concepts and try out design options.

20
Q

What is Boehm’s second law?

A

Prototyping significantly reduces requirement and design errors, especially for user interfaces.

21
Q

How can prototypes be realized?

A
  • UI sketches on paper/powerpoint
  • Executable prototypes
  • Selection requires trade-off between effort and expected benefit
22
Q

What are potential benefits of applying prototypes?

A
  • Improved system usability
  • Closer match to user needs
  • Improved design quality
  • Improved maintainability
  • Eventually reduced development effort
23
Q

What is a problem of prototypes?

A
  • Can sometimes conflict with incremental development
  • Prototype may be abused as system increments
  • Objective of incremental development: deliver a working system (start with requirements that are well understood)
  • Objective of prototyping: validate or derive system requirements (start with requirements that are poorly understood)
24
Q

What are risks regarding prototypes?

A

Prototypes should be discarded after developments as they are not a good basis for production system (throw-away- prototype)
- e.g. does not meet normal quality standards