slr6 - software development Flashcards

1
Q

Describe the general software development lifecycle

A

1 Feasibility
2 Requirements
3 Analysis and design
4 implementation
5 testing
6 Deployment
7 evaluation

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

What are the 5 development methodologies

A

Waterfall
RAD - Rapid application development
Spiral
Agile
Extreme programming

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

Describe the waterfall model

A

Each phase has a well-defined start and end point with clear goals for each stage
The waterfall model allows you to move back on a previous stage as well as forwards

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

Describe Rapid application development

A

Following the initial approval of a feasible program, increasingly refined prototypes are made

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

What is agile

A

A group of methodologies that focus on the idea that requirements will shift throughout development

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

What is an algorithm

A

a sequence of steps designed to perform a task

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

Describe black box testing

A

Simply checks if an input produces the expected output

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

Describe white box testing

A

Testing that all the algorithms are functioning as intended

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

Why is being able to move backwards on previous stages an important feature of the development cycle

A

Developers often have to rework earlier stages when new features are needed

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

Which stages of the development cycle are repeated with RAD

A

Analysis
Design/ implementation
Testing/ evaluation

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

What are the 4 stages of the spiral model

A

Determine objectives
Identify and resolve risks
Development and test
Plan the next iteration

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

What are the advantages of the waterfall methodology

A

Simplicity makes it easy to manage
Everyone on the project is clear about their responsibilities at each stage
Clear objectives
Easy to see if the project is on schedule

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

What are the disadvantages of the waterfall methodology

A

carries a lot of risk
The user doesn’t get to see the product until the project is nearly finished
If requirements are misunderstood, then the project wont be easy to fix - it is not suitable for high risk projects

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

What are the advantages of RAD

A

Requirements don’t need to be completely clear from the start
Focus groups can be used to gather requirements
Continuous feedback means that the software is likely to have excellent usability

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

What are the disadvantages of RAD

A

The focus is on usability not efficiency
Regular contact with the client must be maintained
Scales poorly for larger teams

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

What are the advantages of the spiral methodology

A

Subtitle for projects that have a high risk since risk management is as the heart of this model

17
Q

What are the disadvantages of the spiral methodology

A

Complex nature of risk analysis means that costs are high
The project suffers if risk analysis is done poorly

18
Q

What are the advantages of agile and extreme programming

A

The quality of end code is likely to be high
Very productive development team due to the core principles of respect and collaboration

19
Q

What are the disadvantages of agile and extreme programming

A

Requires close collaboration - unlikely to work remotely
Client must have a full time representative working with the dev team
Some of the processes involved can be expensive

20
Q

When would agile and extreme programming be appropriate for a project

A

When the emphasis of the project is on the quality of final code

21
Q

When would the spiral model be appropriate for a project

A

Large scale projects with a lot of risk – especially when the user doesnt fully understand initial requirements

22
Q

When would RAD be appropriate for a programming project

A

When the initial requirements are not fully understood

23
Q

When would the waterfall methodology be appropriate for a project

A

Ease of management makes it appropriate for large scale development projects

24
Q

Describe the analysis stage of software development

A

The process of defining a problem and its solution

25
Q

Describe the design stage of software development

A

The stage in which the technical details of the project are decided

26
Q

What is done in the programming stage that simplifies the larger problem

A

the program is broken down into different modules and algorithms

27
Q

Why is white box testing limited

A

You are unable to check for missing features in the project

28
Q

How is black box testing limited

A

It doesn’t focus on the internals of the program and only checks to see if the expected output is generated

29
Q

Describe alpha testing

A

Testing carried out internally by the development team

30
Q

Describe beta testing

A

Testing carried out by a small number of users

31
Q

In what ways is alpha testing limited

A

It is only carried out by a small number of people so some bugs may be missed

32
Q

Why is alpha testing important

A

It often reveals errors and omissions that the developers havent noticed

33
Q

Why is beta testing used by developers

A

It is an accurate simulation of how end users will use the product

34
Q

Describe the evaluation stage of software development

A

A post implementation review where the system is critically analysed 3–6 months after the feature is implemented

35
Q

What are the main basis for evaluating a project

A

Effectiveness, Usability and maintainability