Part A: Process & Requirements Flashcards

1
Q

In addition to the core perspective of “Programming”, name 6 other perspectives that shape the way software development teams work. For one of these perspectives describe briefly some aspects to be considered.

A

he 9 “P”s. Project, Process, Perfection, Product, Profit, Productivity, People, Principles of OO
People perspective: People are a key factor for all teams. People with different personalities and skills can strengthen each other, as well as the opposite. One example, if running a project in XP and using paired programming, some people might be very uncomfortable in working that way, whereas others perform better when working closely together

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

Name 8 practices from XP. For full marks specify whether a practice is XP1 (1st Edition of Beck’s book), XP2 (2nd Edition) or common to both

A

XP1:

  1. The Planning Game
  2. Small Releases
  3. 40-Hour Week
  4. On-Site Customer
  5. Pair Programming
  6. Collective Ownership
  7. Metaphor
  8. Small Design
  9. Refactoring
  10. Testing
  11. Continuous Integration
  12. Coding Standards

XP2:

  1. The Planning Game
  2. Small Releases
  3. 40-Hour Week
  4. On-Site Customer
  5. Pair Programming
  6. Collective Ownership
  7. Metaphor
  8. Small Design
  9. Refactoring
  10. Testing
  11. Continuous Integration
  12. Coding Standards

Both:
Pair Programming
Continuous Integration

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

Name the 5 values that underlie XP

A
Simplicity
Communication
Feedback
Respect
Courage
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

The modern view of software development is that it should be both “iterative and incremental”.
What is the difference between an “iteration” and an “increment”?

A

An increment is a fully functional small piece of the software that is developed. In developing incremental software, the software is given to the customer in small increments, instead of a “big-bang” where the complete software is delivered at one time.
An iteration is one step in the process of refining a product. The goal is not to create a functional element at each iteration, but to improve the product.

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

The modern view of software development is that it should be both “iterative and incremental”.
Why are these concepts so important for the development of quality software?

A

The incremental and iterative development process is integral to the field of Agile software development as it enables project managers to reap the benefits of both incremental and iterative approaches.
Incremental development ensures that developers can make changes early on in the process rather than waiting until the end when the allotted time has run out and the money has been spent.
Iterative development means improvements are made on an ongoing basis, so the end result is likely to be of higher quality

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

The Waterfall Model

Why is the waterfall model discredited as a software development approach?

A

The waterfall model is a rigid model of development. To make a good product in the end, a very thorough analysis needs to be made in the startup of the project, since it is hard to make changes to the requirements under the process. It follows a strict process, that is not always how the real world looks like. Things change, things happen. The waterfall model has the problem of possibly developing functionality that is never used or even really asked for.

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

The Waterfall Model

What advantages does it have?

A

If the project is very large and the requirements can be decided at an early stage, the waterfall model can fit. If the project plan is followed, you should know what to expect in the end. Hopefully not more, not less.

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

Explain the difference between the “waterfall” model, the “spiral model” and the “V-model”.

A

The waterfall model and the V-model are very similar to each other. It is document-driven and heavyweight. The V-model is putting more emphasis on describing how testing is related throughout the project. Acceptance testing, integration testing, unit testing is connected to different parts of the process.
The spiral model incorporates the idea of delivering in increments and tries to handle the most important tasks first. For each “run” in the spiral, two activities follow, identify a subproblem which has high risk and find the solution to this problem.

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

What does DSDM stand for?

A

Dynamic Systems Development Method

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

What are the principal phases of the DSDM framework?

A
Pre-project 
Feasibility Study
Business Study
Functional Model Iteration
Design and build the Iteration
Implementation
Post-project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Describe how the V-model improves upon the Waterfall Model with particular reference to how it improves on the Waterfall model.

A

The V-model improves upon the Waterfall model by adding a lot of stuff, mostly tests I think :).
Avoid the Big Bang

BDD: Behaviour Driven Dev
TDD: Test Driven Dev
SUT: System Under Test
Inspections during the life-time of the project. Going back and reiterating 
SUD: System Under Dev

Unit testing, test scripts
Integration testing, Integration Test Plan
System testing, System Test Plan
Acceptance Testing, Acceptance Test Plan

Implicit re-work

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

What does RUP stand for?

A

Rational Unified Process

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

Name and briefly describe the four phases of RUP.

A

Inception - The idea for the project is stated. The development team determines if the project is worth pursuing and what resources will be needed.

Elaboration - The project’s architecture and required resources are further evaluated. Developers consider possible applications of the software and costs associated with the development.

Construction - The project is developed and completed. The software is designed, written, and tested.

Transition - The software is released to the public. Final adjustments or updates are made based on feedback from end users.

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

List the 8 components of the Agile Manifesto, in their correct pairs and making clear which of each pair is “favoured”.

A

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

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

What properties would you expect a good set of requirements to have?

A
Unambiguous
Testable
Clear
Correct
Understandable
Feasible
Independent
Atomic
Necessary
Implementation-free
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What factors can make it difficult to obtain a useful set of requirements?

A

?

17
Q

Requirement priorities

What labelling technique can be used to show how requirements are prioritized?

A

Moscow rules (must have, should have, could have, won’t have).

18
Q

Requirement priorities

Who should be setting these priorities?

A

It has to be set by the product owner

19
Q

Use cases and scenarios

Explain the difference between a “use case” and a “scenario”, making clear how scenarios can be identified.

A

A use case defines the system behaviour in a generic way. He has multiple paths.
A scenario is a particular run through a use case.

20
Q

How can scenarios help testing?

A

It is the foundation for functional testing.

21
Q

What is the difference between a “functional” requirement and a “non-functional” or “quality” requirement?

A

Functional requirements are those requirements that are needed for the product to work. Non-functional or “quality” requirements are those requirements that make the product good and valuable.
A customer expects the functional requirements to be there in any case, and willing to pay for the product based on the quality requirements.

22
Q

User stories in XP

What format would you advise a customer to use to write a user story?

A

Index cards

23
Q

User stories in XP
As a developer how would you regard a user story and what would you do before starting to implement a user story in code?

A

Before implementing the code, the story is time-estimated, prioritized and unit tests shall be written.

24
Q

Requirements and Scrum
The use of the “Waterfall” approach in combination with “Big Bang” delivery has been discredited, particularly in having “Requirements” as the initial phase of software development. How are requirements handled in a Scrum project?

A

In the initial phase of scrum the details are fleshed out just enough and just in time for the teams to start building functionality to support that feature. The product features are negotiated through conversation throughout the project. Therefore, change is expected and requirements (SCOPE) have more of a degree of freedom and can be manipulated