topic: programming methodologies Flashcards

(21 cards)

1
Q

what is a systems development lifecycle (SDLC)

A

a framework defining tasks performed at each step in the software development process

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

define the waterfall lifecycle method

A

a linear, sequence of stages where each stage is completed before the next stage begins

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

define agile methods

A

its an umbrella term for a set of methods and practices based on the values and principles expressed in the Agile Manifesto

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

define extreme programming (XP)

A

a type of agile methodology for software development that is iterative, focussing on high quality code and customer involvement / feedback

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

define iterative development

A

process where a software product is developed after breaking it down into smaller, easily developable “chunks”. Each chunk is analysed, designed, developed and tested in repeated cycles (iterations).

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

what is a risk analysis,
give examples (4)

A

process of identifying and analysing potential issues that could negatively impact a software project
e.g. inadequate estimation of time, cost, scope and resources

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

when might the waterfall lifecyle be used

A

good for small, simple projects where requirements are clear and do not change and when there is not benefit in having a customer having early access to the system/ having input in the software

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

pros of waterfall lifecyle (4)

A
  1. lots of documentation
  2. easy to schedule and arrange tasks and judge progress
  3. simple and easy to understand the model
  4. does not require a lot of customer involvement
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

cons of waterfall lifecycle model (5)

A
  1. lots of documentation
  2. mistunderstandings of requirements can be discovered too late
  3. no new ideas can be included during the development process
  4. cannot accommodate to changing requirements
  5. efficient code not prioritised
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

when might the extreme programming (a type of agile methodology ) be used

A

when early implementation is important, when requirements are changing, and when the project doesn’t involve a big staff

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

pros of XP (type of agile methodology) (3)

A
  1. quality of code is very high
  2. testing is continuous so it will result in fewer bugs/ issues
  3. sustainable pace so programmers don’t get very tired
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

cons of XP (a type of agile methodology) (2)

A
  1. customers need to provide a representative to work with the development team
  2. little to no documentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

define RAD
what makes the iteration different

A

Rapid application development refers to methodologies for developing software which uses prototypes (a model with reduced functionality) and iteration (repeating cycles)
the prototype is then reviewed by the customer and if needed further changes are made, creating a new prototype
the process repeats until the last prototype becomes the final product
the iteration is timeboxed, a limited time period given in which a well - defined deliverable must be produced

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

pros of RAD (5)

A
  1. helpful when requirements are not specified from the start
  2. should result in excellent usability because of customer feedback
  3. changing requirements are accommodated
  4. reduced development time due to minimised planning
  5. time boxing means the project is kept on track
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

cons of RAD (2)

A
  1. good code not prioritised, focus instead on accelerated development
  2. demanding on customers time for feedback
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

when might RAD be used

A

when a system can be modularised to be delivered in an incremental manner
and when customer is unsure of their requirements, which is usually the case

12
Q

define the spiral model

A

when the iterative cycle is split into 4 phases, (determine objectives and alternatives, identify and resolve risks, development and test, plan the next iteration)
with a high emphasis on risk identification and resolution, prototypes are created in each cycle

13
Q

pros of the spiral model (5)

A
  1. ideal for risky and complex projects
  2. changing requirements can be accommodated for
  3. users see the system early, so it can be changed to suit user needs
  4. focus on alternatives encourages for software reuse
  5. focus on eliminating risks early on, like unrealist schedules or personnel shortfalls
14
Q

cons of the spiral model (5)

A
  1. management is more complex so can be more expensive
  2. process is more comples than other models
  3. good risk analysts are expensive
  4. efficient code not prioritised
  5. no continuous customer interaction
15
Q

when might the spiral model be used

A

when significant changes are expected to be made during the development process
when the customer is unsure about their requirements
when risk is high

16
Q

differences between waterfall vs extreme lifecycle (4)

A
  1. WF involves linear stages, XP has an agile iterative approach
  2. WF establishes requirements in early stages and subsequent stages focus on these, XP allows for the adoption of new requirements throughout the process
  3. WF focuses on the end user at the start and then they may be consulted at different points throughout the project, XP makes sure an end user is integral throughout the process
  4. WF can be adopted for larger projects but it can be inflexible and limits changing requirements