Unit 1.2.3 Software Development Flashcards
1
Q
What is the Software Development Lifecycle (SDLC)?
A
- A systematic process made up of distinct phases that programmers follow to build, test, deploy and maintain high-quality software that meets it exceeds customer expectations, is completed on time and is efficient and robust.
2
Q
What are the five methodologies?
A
- Spiral
- Rapid Application Development
- Waterfall
- Agile
- Extreme Programming
3
Q
What are the phases in the SDLC?
A
- Feasibility – is the problem solvable?
- Requirements – working out what the solution needs to do.
- Analysis and design – working out how the solution needs to do it.
- Implementation – coding the solution.
- Testing – checking if it actually works.
- Deployment – installing it in the target environment.
- Evaluation - checking in with the user if it is complete
- Maintenance – ensuring it continues to function properly by improvements, patches and updates.
4
Q
What is the waterfall methodology?
A
- Each phase has a well defined start and end point with identifiable deliverables for the next phase
- A slight evolution allows programmers to move back previous stages if they gain new knowledge and want to rework early stages
5
Q
What is the Spiral methodology?
A
- A concept that contains several elements of other models (waterfall, RAD and incremental)
- A methodology with risk being the heart of many large-scale projects
- Designed to account for these risks as they arise and deal with them before they become a major problem
- Has four stages (evaluate, identify, construct and design)
6
Q
What is the Rapid Application Development (RAD) methodology?
A
- Producing successive prototypes until a final software version is produced and approved
- Following feasibility, increasingly refined prototypes are made with reduced functionality
- They’re designed, coded, tested and evaluated with the end user
- User may be happy with it or they want further improvements which will start a new cycle (iteration)
7
Q
What is the Agile methodology?
A
- Refers to a group of methodologies that focus on requirements changing during development
- Product is built in a series of iterations (sprints)
- These short time-boxed periods are when team shave focused goals to complete a set amount of work
- Each sprint has increasing requirements and is shown to the user
8
Q
What is the Extreme Programming methodology?
A
- Involves an iterative approach much like RAD, but iterations are very short (a week long)
- Company requesting the software will often “embed” a user in the development team
- New requirements will be built into successive iterations quickly and the user will be able to give instant feedback for the next iteration
- A key feature of extreme programming is “paired programming”
- It is claimed this approach produces much higher-quality code sooner, saving a lot of time and effort
9
Q
What are the benefits of the waterfall methodology?
A
- Simplicity (easy to manage)
- Everyone is very clear on their responsibilities at each stage
- Clear deliverables
- Easy to see if a project is running to schedule
10
Q
What are the drawbacks of the waterfall methodology?
A
- Carries a lot of risk
- User doesn’t see the product until the project is near its end
- Misunderstanding requirements can lead to a project which isn’t easy to fix
- Requirements must be very well understood - not suitable for complex projects
11
Q
What are the benefits of the Spiral methodology?
A
- Risk management is at the heart of the model
- Excellent for projects with a high level of risk
12
Q
What are the benefits of the RAD methodology?
A
- Requirements aren’t entirely clear from the start
- Focus group with the user can be used to get requirements without needing the full formal requirement document upfront
- Solution is likely to have excellent usability with the continuous feedback from the user
13
Q
What are the benefits of the agile/extreme programming methodologies?
A
- Emphasises programming, so the quality of the end code is likely to be high
- Core principles and processes promote respect and collaboration, leading to a productive development team
14
Q
What are the drawbacks of the Spiral methodology?
A
- Complex nature of risk analysis increases cost (as it’s a specialised skill)
- If risk analysis is done badly, the project suffers
15
Q
What are the drawbacks of the RAD methodology?
A
- Focus on usability rather than how the product works, which is not suited where code efficiency is important
- Needs regular contact with client
- Scales poorly for large projects with big teams