Part A: Process & Requirements Flashcards

1
Q
  1. Perspectives of software engineering (max 4 points)
    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
The 9 “P”s: 
1.	Programming
2.	Principles of OO
3.	Project
4.	Process
5.	Perfection
6.	Product
7.	Profit
8.	Productivity
9.	People 
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
  1. XP Practices (max 4 points)
    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 Practices

  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 Practices

  1. Stories
  2. Weekly Cycle
  3. Quarterly Cycle
  4. Energized Work
  5. Slack
  6. Whole Team
  7. Sit Together
  8. Informative Workspace
  9. Pair Programming
  10. Incremental Design
  11. Test-First Programming
  12. Continuous Integration
  13. Ten-Minute Build
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. XP Values (max 3 points)

Name the 5 values that underlie XP.

A
  1. Communication
  2. Respect
  3. Simplicity
  4. Courage
  5. Feedback
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Iterative and incremental development (max 3 points)
    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”? Why are these concepts so important for the development of quality software?
A

Iteration – Perform repeatedly, i.e. adding new functionality in a repetitive or cyclic manner (repeated cycle).
Increment - Adding new functionality in small chunks. (smaller portions at a time)

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 delivered on time and be of higher quality

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. The Waterfall Model (max 4 points)

Why is the waterfall model discredited as a software development approach? What advantages does it have?

A
  1. All requirements must be known prior to development, which greatly delays the project kickoff.
  2. Low flexibility level makes it difficult to make changes while developing, or even makes it completely impossible.
  3. There is a need for strict management and regular monitoring, so that the project will meet the deadline.
  4. The client does not have the opportunity to get acquainted with the system in advance, so he/she does not see the product until the moment of its completion.
  5. In chase it becomes clear in the process of development that the product does not meet the market requirement, where there will be no room for changes.
    Advantages
  6. Simple and easy to understand and use.
  7. Clearly defined stages.
  8. Well understood milestones
  9. Easy to arrange tasks.
  10. Process and results are well documented.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Software process models (max 6 points)

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

A

Waterfall model – Requirements Analysis -> Design -> Development ->Testing ->Maintenance

Spiral model – Iterate in a spiral and do every step multiple times in smaller increments, gradually building up to a finished product.

V-model - Similar to waterfall, but evaluate each step with testing. Unit test, integration test, system test, acceptance test.

Both Spiral and V-model are improvements over Waterfall, as they avoid the “big bang release” at the end of Waterfall.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. DSDM Framework (max 5 points)

What does DSDM stand for? What are the principal phases of the DSDM framework?

A
DSDM = Dynamic Systems Development Method
Four-Phase framework:
1.	Feasibility and business study.
2.	Functional model/prototype iteration.
3.	Design and build iteration.
4.	Implementation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. The V-model (max 5 points)
    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 takes the waterfall model and introduces testing on every step of the way. For example, before moving on from the requirements specification, they are evaluated using acceptance testing, to make sure the requirements comply with what the client really wants.
The same idea is applied to every step of the way, with unit testing, integration testing, system testing, and acceptance testing.
This avoids the problems that come with the “big bang release” at the end of the waterfall model.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. RUP Framework (max 5 points)

What does RUP stand for? Name and briefly describe the four phases of RUP.

A

RUP = Rational Unified Process
Four phases of RUP:
1. Inception - The idea for the project is stated. The development team determines if the project is worth pursuing and what resources will be needed.
2. Elaboration - The project’s architecture and required resources are further evaluated. Developers consider possible applications of the software and costs associated with the development.
3. Construction - The project is developed and completed. The software is designed, written, and tested.
4. 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
10
Q
  1. The Agile Manifesto (max 4 points)

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
11
Q
  1. Good requirements (max 3 points)

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

A
  1. Correct
  2. Anambiguous
  3. Complete
  4. Consistent
  5. Ranked for importance and/or stability
  6. Verifiable
  7. Modifiable
  8. Traceable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Requirements challenges (max 4 points)

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

A
  • Conflicting Requirements
  • Customers don’t know what they want
  • Unavailability of Stakeholders
  • Changing Priorities
  • Unsupportive Stakeholders
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Requirement priorities (max 3 points)

What labelling technique can be used to show how requirements are prioritized? Who should be setting these priorities?

A

MoSCoW -
1. Must: The requirement must be satisfied for the solution to be considered a success.

  1. Should: The requirement is important and should be included in the solution if possible, but it’s not mandatory to success.
  2. Could: It’s a desirable capability, but one that could be deferred or eliminated. Implement it only if time and resources permit.
  3. Won’t: This indicates a requirement that will not be implemented at this time but could be included in a future release.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Use cases and scenarios (max 4 points)
    Explain the difference between a “use case” and a “scenario”, making clear how scenarios can be identified. How can scenarios help testing?
A

A use case is a more general description of a system behaviour, and can have multiple paths and decision points.

A scenario is a particular run through a use case, taking only one of the paths.

So while a use case could be “purchase an item”, a scenario also specifies what item to buy, what payment methods to use, and all other specifics.

In testing, it is important to test all parts of the system, so just running through a use case once is not enough. Scenarios can be used to construct a set of paths through the use case such that every part is covered.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Types of requirement (max 3 points)
    What is the difference between a “functional” requirement and a “non-functional” or “quality” requirement? List at least 4 quality requirements.
A

A functional requirement describes what the system should do, it describes the functionality.
A nonfunctional requirement describes how the system should do it.
Examples of non functional requirements are:
● Performance / response time
● Security
● Usability
● Maintainability
● Availability / up-time
● Cost
● Documentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. User stories in XP (max 4 points)
    What format would you advise a customer to use to write a user story? 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

User requirements are expressed as User Stories

  • User Stories are written on Story cards
  • Developers break Story Cards down into Implementation tasks
  • Implementation tasks are written on task cards
  • Task cards are the basis of schedule and cost estimates
As a (software) developer I would regard a user story as a description of one or more features of a software system or a software feature from an end-user perspective (agile perspective).
Estimate the user story before implementation to ensure the workload of the team is under control.
17
Q
  1. Requirements and Scrum (max 4 points)
    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

“Scrum projects treat requirements differently, preferring less detail upfront and more conversation throughout the project. The placeholders for requirements on a Scrum project are called product backlog items, which are often expressed as user stories. These user stories can be thought of as card, conversation, and confirmation, and can be evaluated using the six criteria represented by the INVEST acronym. Through conversations, user stories are progressively refined during product backlog grooming until they are small enough and detailed enough to be implemented during a sprint (i.e., they are ready). Nonfunctional requirements should most often be part of a team’s definition of done, while knowledge acquisition activities should be balanced against their value. Two excellent ways to gather user stories are workshops and mapping.”-