1.2.3 Software Development Flashcards
craig + dave videos - 27 to 31
what is the software development lifecycle?
the distinct phases which programmers go through when developing a solution for a computer system
what is a software development methodology?
the arrangement and how programmers move from one phase to another in the software development lifecycle
what are the stages of the SDLC?
- feasibility
- requirements
- analysis and design
- implementation
- testing
- deployment
- evaluation
- maintenance
what are the 5 methodologies?
waterfall
rapid application development
sprial
agile
extreme programming
what are the features of the waterfall lifecycle?
- each phase has a well defined start and end point with identifiable deliverables
- once you end one phase, you never really return to it and move onto the next one
what are the features of rapid application development (RAD)?
- produces successive prototypes of the software until the final version is produced and approved
- following approval of the feasibility of the program, increasingly refined prototypes are made wit reduced functionality
- each prototype is designed, coded, tested and evaluated with the user
what are the four main quadrants of the spiral methodology?
- determine objectives
- identify and resolve risks
- development and test
- plan for next iteration
what are the features of the spiral model?
- risk driven
- provides a guide for the team where the decisions on the software development methodology are made based on the risks identified
what is agile development?
a group of methodologies which focus on the idea that requirements will shift and change during development and this can only be dealt with in an iterative way.
what are sprints in agile methodologies?
short, time boxed periods when a team has focused goals to complete a set amount of work
- should only be a bite sized piece of focused work
what is extreme programming?
a framework for software development
what is the aim of extreme programming?
produce high quality code and promote developers’ quality of life by adopting a set of common practices
what are the values of extreme programming?
- simplicity
- communication
- feedback
- courage
- respect
what are the 5 core practices of extreme programming which are generally thought to boost overall quality of any solution to almost any project?
- collective code ownership
- continuous integration
- code standards
- refactoring
- paired programming
what are some benefits of the waterfall methodology?
- simplicity = easy to manage
- everyone knows responsibilities at each stage
- clear deliverables
- easy to see if project running to schedule
what are the drawbacks of the waterfall methodology?
- carries a lot of risk
- user doesn’t get to see product for the first time until the end is near
- misunderstanding requirements can lead to the problems not easy to fix
- requirements must be well understood so not suitable for complex projects
when would the waterfall model be used?
ease of management means it is suitable for large scale development projects
- have to be well understood and carry little risk
what are the advantages of RAD?
- requirements don’t need to be clear from the start
- focus groups involving user can be used to gather info without formal documents at first
- continuous feedback from client means solution is likely to have excellent usability
what are the disadvantages of RAD?
- focuses on usability rather than how product works - got good where efficiency is important
- regular contact with client must be kept at all times
- scales poorly for large projects with big teams