1.2.3 Software Development Flashcards

1
Q

What are SDLC’s

A

Software development methodologies:
- Provide systematic approach to software development
- Suitability dependent on projects unique requirements

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

Waterfall Features

A

Waterfall : Focus on delivery of project as a whole
- Rigid and structured (defined start and end dates) and agreed upon requirements.
- Linear sequential phases (Requirements, Design, Coding, Testing, Deployment, Maintenance)
- Inflexible - must reverse through previous stages to change something and revisit previous levels
- involves documentation

Well suited for large complex projects with clear requirements unlikely to change and low risk e.g. Gov project

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

Waterfall Advantages (3) and Disadvantages (3)

A

Advantages:
- Easy to understand and manage- organization of tasks easy - programmers have clear responsibilities as simple and linear
- Clear documentation
- Clearly defined start and end dates - easy to measure progress

Disadvantages:
- Inflexible- hard to implement change as have to reverse through linear stages
- Little user input until the end
- If requirements misunderstood can go off track – expensive and difficult to fix

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

Agile methodologies features

A

Agile methodologies: Aim to improve the flexibility and adapt to changes in user requirements faster
- Sections developed in parallel
- Working prototype delivered early
- Prototypes improved and developed iteratively and regularly
- less focus on documentation and more on user satisfaction

Suited to Small to medium projects with unclear initial requirements.

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

Extreme programming features

A

Extreme programming : Focus on delivery of high-quality code quickly and allow development to changing user requirements.
- Agile Paradigm
- Involves paired programming
- A lot of input from end user
- Fast Iterations and feedback from customer

Suited for small to medium projects with unclear initial requirements requiring excellent usability.

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

Spiral model features

A

Spiral model : Risk identification and mitigation is priority
- Iterative - changes made when repeated at start of cycle
- Iterations of linear sequence of phases (Planning, Risk Analysis, Engineering, Evaluation)
- Involves hiring risk assessors

Suited to very large-scale projects with high risk and uncertainty

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

Spiral Advantages (2) and Disadvantages (3)

A

Advantages:
- More flexibility - handle changes more easily through iterations at various stages of development
- Ability to handle complex programs with high risk as can identify and address issues early.
- Encourages feedback and input from client

Disadvantages:
- Complex so need experienced software developers (higher cost) and harder to manage.
- Expensive - Need to employ risk analyst.
- If risk analysis is done bad the project suffers.
- Extra Time consuming and costly so not suited to small projects.

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

Extreme / Agile Programming Advantages (3) and Disadvantages (3)

A

Advantages:
- Emphasizes programming- quality of produced end code is high
- Flexible - as requirements don’t need to be specified at the start so ability to handle changing requirements due to iterations
- Regular user input and customer / client collaboration to ensure developed product meets needs with focus on user satisfaction

Disadvantages:
- Requires skilled and experienced programmers - costly
- Customer / Client needs to be able to commit time as requires consistent interaction between user and programmer
- requires closely knit team - may not work well if geographically distributed
- Poor documentation due to focus on immediate coding

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

Rapid application development features

A

Rapid application development : Focus on quickly developing a partially functioning prototype that is continually built upon very quickly.
- Iterative where client gives feedback on prototypes and changes made, repeated until final prototype.
- Able to deal with changing user requirements due to iterations.

Suited for small to medium, low-budget projects with short time-frames

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

Rapid application development Advantages (3) and Disadvantages (3)

A

Advantages:
- Focus on rapid prototyping - get working prototype quickly
- Flexibility - as requirements don’t need to be stated at start and ability to handle changing requirements through iterations
- End project has excellent usability as lots of contact with user so will likely meet needs and expectations.

Disadvantages:
- Time consuming for client
- Poor quality documentation due to focus on speed
- Focus on usability and speed but not quality of code

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

Stages of SDLC

A

Analysis - Clearly define problem and system requirements and consider current solutions and inputs / outputs

Planning

Design - design aspects of program

Development - Split into self contained modules and allocate to teams

Testing - see if the program works

Implementation - Install onto users systems

Evaluation - effectiveness of the software is evaluated against the system requirements and success criteria

Maintenance: Software updates and fix bugs

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