1.2.3 Flashcards

1
Q

SDLC - Software development lifecycle

A

Feasibility (solvable?)
Requirements
Analysis and design
Implementation (Coding)
Testing
Deployment
Evaluation
Maintenance

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

5 Software development methodologies

A

Waterfall
Rapid application development
Extreme programming
Agile
Spiral

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

waterfall lifecycle

A

cascading effect from one phase to another

Each phase has a well-defined start and end point with identifiable deliverables

A slight evolution of the waterfall model allows you to move back to a previous stage as well as forwards

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

waterfall - pros

A

Simplicity makes it easy to manage.

Everyone on the project is very clear on their responsibilities at each stage.

Clear deliverables.

Easy to see if a project is running to schedule.

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

waterfall - cons

A

Carries a lot of risk.

The user doesn’t get to see the product for the first time until the project is near its end.

Misunderstanding requirements can lead to a project that is not easy to fix.

Requirements must be very well understood, so this model is not suitable for complex projects.

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

waterfall - consider

A

Ease of management can make it suitable for large-scale development projects, assuming they are well-understood and carry little risk.

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

spiral model

A

risk-driven development methodology
each project has its own set of unique risks associated with it and wholly dependant on the project and its unique risks

adopts elements of one or more other methodologies like waterfall or RAD

better thought of as a process model generator, where decisions on the software development methodology are made based on the risks identified

It is a common misconception that the spiral model is a fixed process that must be followed in the correct order.

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

spiral - pros

A

Risk management is at the heart of this model.

Excellent for projects that contain a high level of risk.

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

spiral - cons

A

Complex nature of risk analysis increases costs – risk management is a highly specialised skill.

If risk analysis is done badly, the project suffers.

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

spiral - consider

A

Suitable for large-scale problems and those that involve a high degree of risk, especially where the user doesn’t fully understand their requirements upfront.

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

AGILE methodologies

A

focus on the idea that requirements will shift and change during development – this can only be dealt with by producing software in an iterative way

the product is built in a series of iterations known as sprints

every sprint should ideally be a bite- sized piece of focused work, taking no longer than a few weeks

sprint - short, time-boxed periods when a team has focused goals to complete a set amount of work.

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

agile - pros

A

Emphasises programming, so the quality of end code is likely to be very high.

Core principles and processes promote respect and collaboration, leading to a very productive development team.

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

agile - cons

A

Requires a team of programmers working in close collaboration – unlikely to work well if the team is widely distributed geographically.

Client must be able to commit to having a full-time representative working with the development team.

Some of the processes involved in extreme programming such as paired programming can be quite costly.

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

agile - consider

A

When the emphasis of a project is on the quality of finished code, agile and extreme programming processes are ideal.

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

exteme programming

A

considered an agile framework in that it encourages regular, small, iterative software releases

It aims to produce very high-quality code and promote developers’ quality of life by encouraging them to adopt a set of common practices that focus on the values of:
Simplicity
Communication
Feedback
Courage
Respect

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

exteme programming - pros

A

Emphasises programming, so the quality of end code is likely to be very high.

Core principles and processes promote respect and collaboration, leading to a very productive development team.

17
Q

exteme programming - cons

A

Requires a team of programmers working in close collaboration – unlikely to work well if the team is widely distributed geographically.

Client must be able to commit to having a full-time representative working with the development team.

Some of the processes involved in extreme programming such as paired programming can be quite costly.

18
Q

exteme programming - consider

A

When the emphasis of a project is on the quality of finished code, agile and extreme programming processes are ideal.

19
Q

RAD - rapid application development

A

produce successive prototypes of the software until a final version is produced and approved

increasingly refined prototypes are made with reduced functionality

designed, coded, test and evaluated with the end user

20
Q

RAD - pros

A

Requirements don’t need to be
entirely clear from the start.

Focus groups involving the user can be used to gather requirements without the need for full formal requirements document upfront.

Continuous feedback from the client means the solution is likely to have excellent usability.

21
Q

RAD - cons

A

Focus on usability rather than how the product works – not suited for projects where code efficiency is very important.

Regular contact with client must be maintained at all times.

Scales poorly for large projects with big teams.

22
Q

RAD - consider

A

Good for projects where the initial requirements are not fully understood, as the iterative nature prevents development from becoming side-tracked.

23
Q

Algorithm

A

A sequence of steps designed to perform a task

24
Q

writing algorithms

A

Pseudocode
Flowcharts
High-level language code

25
Q

flowchart - weird oval

A

start/stop

26
Q

flowchart - rectangle

A

process

27
Q

flowchart - diamond

A

decision

28
Q

flowcahrt - slanted rectangle

A

input/output

29
Q

rectangle with a thinner rectangle in it

A

subroutine

30
Q

flowcahrt - arrow

A

line to show where to go next