1.2.3 software development Flashcards
what does SDLC stand for
Software/Systems Development Life Cycle
what is SDLC
- number of distinct phases programmers work through when developing a solution to a problem for a computer system
outline the stages of the software development lifecycle (F, R, A+D, I, T, D, E, M). Then explain briefly what is involved in each stage.
-Feasibility (is problem solvable)
- Requirements (work out what solution needs to do)
- Analysis + Design (work out how solution needs to do it
- Implementation (code solution)
- Testing (check it works)
- Deployment (install in target environment)
- Evaluation (check with user that solution is complete)
-Maintenance (ensuring it continues to function. improve by patches/updates)
define software development methodology
- arrangement of distinct phases and how programmers move from one phase to another (forwards or backwards)
what are the five methodologies i need to know
- Waterfall
- Rapid Application Development
- Spiral
- Agile
- Extreme Programming
describe the waterfall lifecycle
- each phase has a well-defined start and end with identifiable deliverables
positives of waterfall lifecycle
- clear responsibilities at each stage
- simplicity = easy to manage
- clear deliverables
- possible for different parts of team to be geographically remote
drawbacks of waterfall life cycle
- if requirements change part way through project, previous stages must be repeated delaying project
- caries risk
- end user doesnt see project until end
what type of project is waterfall lifecycle suited to
- large projects with static, well understood requirements and one carrying little risk
- not suitable for complex projects
how has a slight evolution of waterfall model changed what it allows you to do
- allows you to move back to previous phases as well as forwards (reflects fact that developers often have to rework earlier stages in light of knowledge gained as development progresses)
what is RAD methodology
- involves producing successive prototypes of software until a final version is produced and approved
what follows initial approval of a feasible program (RAD)
- increasingly refined prototypes made with reduced functionality which are designed, coded + tested then evaluated with end user until final working solution is achieved.
what happens if user wants prototype to be improved
- further improvements needed –> starts new iteration (analysis, design, coding, testing, evaluation)
positives of RAD
- continuous feedback from client means solution likely to have good usability
- requirements dont need to be entirely clear
- focus groups involving user can be used to gather requirements without need for full formal requirement document upfront
- can be confident end product meets users needs
drawbacks of RAD
- little attention paid to program efficiency due to focus on usability
- doesnt scale well
- can overrun initial budgets due to being agile approach
- regular contact with client must be maintained
what type of project is RAD suited to
- smaller projects where there is ready access to an end user
- projects where initial requirements not fully understood as iterative nature prevents side tracking of development
what is the spiral model
- risk-driven development methodology
- acts as more of a guide for development teams allowing them to adopt elements of one or more other methodologies like waterfall or RAD
what are the 4 stages of the spiral model (each taking up one quadrant of the spiral).
- quadrant 1: Objectives and requirements determined
- quadrant 2: risks and issues. A prototype is then developed
- quadrant 3: this prototype tested.
- After this the project is either complete or if the user wants more the final quadrant works on what will go into the next spiral.
is the spiral model a fixed process that is followed in correct order (true or false)
- false, spiral model order is dependent on project and its unique risks
positives of spiral method
- prioritises risk management and can handle changes in requirements
- suitable for high risk applications
drawbacks of spiral method
- if risk analysis done badly, project will suffer
- complex nature of risk analysis increases costs (risk management is a highly specialised skill)
what projects is spiral best suited for
- large, high-risk projects without tight time constraints and one where user doesnt fully understand their requirements upfront
what is agile devlopement
- group of methodologies which focus on idea that requirements will shift and change during development - this can only be dealt with by producing software in an iterative way
- they’re a more refined form of older concepts behind RAD
what idea is at the core of agile methodologies
- building each iteration in sprint cycles
what are sprint cycles (agile)
- short, time-boxed periods (no longer than 1-4 weeks) when a team has focused goals to complete a set amount of work
positives of agile
- adapts to users needs –> final system tailored to meet end user requirements
drawbacks of agile
- continual collaboration needed between software developers and end users
- hard to determine timescale and outcomes early on
what types of project is agile best suited to
- projects where initial requirements are hard to determine from outset and in which end user can play active role in development process