Chapter 3 Flashcards

1
Q

It is now often the most important requirement for software systems

A

Rapid development and delivery

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

It is essential for some types of system but does not meet these business needs.

A

Plan-driven development

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

It emerged in the late 1990s whose aim was to radically reduce the delivery time for working software systems

A

Agile development methods

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

Program specification, design and implementation are inter-leaved

A

Agille development

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

The system is developed as a series of versions or increments with stakeholders involved in version specification and evaluation

A

Agile development

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

Frequent delivery of new versions for evaluation
Extensive tool support (e.g. automated testing tools) used to support development.
Minimal documentation – focus on working code

A

Agile development

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

It is based around separate development stages with the outputs to be produced at each of these stages planned in advance.

A

Plan-driven development

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

In plan-driven development, is it necessarily a waterfall model

A

No. Incremental development is possible

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

Iteration does not occur in plan-driven

A

No. Iteration occurs within activities

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

Specification, design, implementation and testing are inter-leaved and the outputs from the development process are decided through a process of negotiation during the software development process.

A

Agile development

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

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of?

A

Agile methods

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

It focuses on code rather than design, based on an iterative approach, and deliver working software quickly and evolve to meet changing requirements

A

Agile methods

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

The aim of agile methods is?

A

To reduce overheads in process and respond quickly to changing requirements without excessive rework

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

We are uncovering better ways of developing 
software by doing it and helping others do it. 
Through this work we have come to value:
●Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
●That is, while there is value in the items on 
the right, we value the items on the left more.

A

Agile manifesto

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

What are the principles of agile methods?

A

Customer involvement
Incremental delivery
People not process
Embrace change
Maintain simplicity

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

Product development where a software company is developing a small or medium-sized product for sale

A

Agile method applicability

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

Virtually all software products and apps are now developed using?

A

Agile approach

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

Custom system development within an organization, with involvement from customer and few external rules and regulation

A

Agile methods applicability

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

A very influential agile method, developed in the late 1990s, that introduced a range of agile development techniques.

A

Extreme Programming

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

takes an ‘extreme’ approach to iterative development.

A

Extreme programming

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

In Extreme Programming, new versions may be built how many times per day

A

Several

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

In extreme programming, increments are delivered to customers every

A

2 weeks

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

In extreme programming, all tests must be run for every ____

A

Build

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

In XP, the build is only accepted if tests run ____

A

Successfully

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What are the extreme programming practices (a)?
Incremental planning Small releases Simple design Test-first development Refactoring
26
What are the XP practices (b)?
Collective ownership Continuous integration Sustainable pace On-site customer
27
What are the XP and agile principles
Incremental development Customer involement People not process through pair programming Change supported Maintaining simplicity
28
Extreme programming has a ____ focus
Technical
29
Is extreme programming easy to integrate with management practice in most organizations?
No.
30
Is XP widely used?
No.
31
What are key practices of XP?
User stories for specification Refactoring Test-first development Pair programming
32
In XP, a customer is not part of the team and not responsible for making decisions on requirements. True or False?
False. They make decisions and are part of the team
33
In XP, user requirements are expressed as ____ or ______
User stories or scenarios
34
User stories are written on _____ and the development team break them down into ______
Cards, implementation tasks
35
Implementation tasks are the basis of _____ and ______
Schedule and cost estimates
36
In XP, the ____ chooses the stories for inclusion in the next release based on ____ and _____
Customer, priorities, schedule estimates
37
XP maintains that designing for change is not worthwhile. True or false?
True
38
It is a term for constant code improvement to make changes easier when they have to be implemented
Refactoring
39
Give examples of refactoring
Re-organization of class hierarchy to remove duplicate code Tidying up and renaming attributes Replacement of inline code with calls to methods in a program library
40
Re-organization of class hierarchy to remove duplicate code Tidying up and renaming attributes Replacement of inline code with calls to methods in a program library
41
_____ is central to XP and XP has developed an approach where the program is tested after every change has been made.
Testing
42
What are the XP testing fatures
Test-first development Incremental test development from scenarios User involvement in test development and validation Automates test harnesses used to run each time new release is built
43
It is a development that writes tests before code
Test-driven development
44
Tests are written as ____ rather than data so that they can be executed ______
Program, automatically
45
The test from test-drive development includes a ____ that it has executed correctly
Check
46
In test-driven development, all previous and new tests are run automatically when new______ is added, thus checking that the new functionality has not introduced errors.
Functionality
47
The role of the customer in the testing process is to help develop ________ for the stories that are to be implemented in the next release of the system.
Acceptance tests
48
_________ means that tests are written as executable components before the task is implemented
Test automation
49
In test automation, the testing components should be ______
Stand-alone
50
It involves programmers working in pairs, developing code together.
Pair programming
51
In pair programming, programmers sit together at the same computer to develop the software. True or false?
True
52
In pair programming, pairs are created _____
Dynamically, so all team members work with each other
53
The standard approach to project management is _____
Plan-driven
54
What do managers do in agile project management?
Draws a plan for project showing what and when it should be delivered, and who will work on it
55
Agile project management requires a different approach, which is adapted to __________ development and the practices used in agile methods.
Incremental
56
It is an agile method that focuses on managing iterative development rather than specific agile practices.
Scrum
57
What are the three phrases in scrum?
Initial phase (Outline planning phase - general objectives and design software architecture) Series of sprint cycle (each cycle develops increment) Project closure (completes documentation)
58
What are the scrum terminologies (a)?
Development team Potentially shippable product increment Product backlog (to-do items) Product owner (individual or small group)
59
What are the scrum terminology (b)?
Scrum - daily meeting of team ScrumMaster - responsible to ensure scrum process is being followed and guides team Sprint - development iteration (2-4 weeks) Velocity - estimate of product backlog that can be covered in a sprint
60
In Scrum sprint cycle, the starting point for planning is the?
Product backlog
61
After product backlog in Scrum sprint cycle, this is a phase that involves all of the project team who work with the customer to select the features and functionality from the product backlog to be developed during the sprint.
The selection phase
62
In the sprint cycle, after the selection phase, the team is isolated with customer and organization, all communications through Scrum-master. True or false
True
63
The role of the Scrum master is to protect the development team from _______
External distractions
64
At the end of the sprint cycle, the work done is reviewed and presented to _______. The next sprint cycle then begins.
Stakeholders
65
________ applies Scrum principles to teams working across multiple locations.
Distributed scrum
66
________ refers to the process of translating established Agile methods, like Scrum and Kanban, to larger groups of people.
Scaling agile methods
67
_____ is concerned with using agile methods for developing large software systems that cannot be developed by a small team.
Scaling up
68
______ is concerned with how agile methods can be introduced across a large organization with many years of software development experience.
Scaling out
69
Agile methods are most appropriate for _______ development rather than software maintenance.
New software development
70
Is agile methods more effective in a large or small co-located team who can communicate informally?
Small co-located
71
Traditional engineering organizations have a culture of ________, as this is the norm in engineering.
Plan-based development
72
In agile methods for large systems, they are also called ____
Brownfield systems, that include and interact with existing systems
73
In agile methods for large systems, wher several systems are integrated to create a system, a significant fraction of the development is concerned with _________ rather than original code development.
System configuration
74
Do large systems have a short procurement and development time?
No. It is long
75
Large systems usually have a diverse set of _______
Stakeholders
76
Is A completely incremental approach to requirements engineering possible?
No.
77
In multi-team scrum, it has role replication, where Each team has a _________ for their work component and ScrumMaster.
Product owner
78
In multi-team scrum, it has product ______, where each team has to design overall system architecture
Product architects
79
What has this? Role replication Product architects Release alignment Scrum of scrums
Multi-team scrums