1.2.3 Software Development Flashcards
What is the Software development lifecycle (SDLC)?
A number of distinct phases programmers work through to develop a solution to a problem
What is feasibility?
-Whether or not the project can be done
-five factors must be considered (economic, time, technical, political, legal)
What is a requirement?
-A requirement is a specific feature of the new system and is recorded in a document called requirements specification
What are requirements broken down into?
Interface – how the user interacts with it.
Functional – what will the system do
Performance – how well/fast will the system respond
What is the analysis and design section?
-the process of taking the requirements of a new system and deciding what the system will look like, how will it store data and how it will process data
-Design can only go ahead once the requirements specification has been completed
Name the software development methodologies (5)
-waterfall
-RAD (rapid application development)
-spiral
-agile
-extreme programming
What is the waterfall lifecycle?
-Each phase has a well-defined start and end point with identifiable deliverables
-evolution of the waterfall model allows you to move backwards or forwards to a different stage as developers often have to rework earlier stages in light of knowledge gained as development progresses
What is the spiral model?
-risk-driven
-more of a guide for development teams, decisions on the software development methodology are made based on the risks identified
-it is wholly dependant on the project and its unique risks (not fixed)
What is RAD?
-that involves producing successive prototypes of the software until a final version is produced and approved
-increasingly refined prototypes are made with reduced functionality
-These are designed, coded, tested and evaluated with the end user
What is agile?
-The product is built in a series of iterations known as sprints
-sprints are short, time-boxed periods when a team has focused goals to complete a set amount of work
-Each sprint should ideally be a bite-sized piece of focused work, taking no longer than one to four weeks
What is extreme programming?
-not so much a software methodology as it is a framework
-considered an agile framework as it encourages regular, small, iterative software releases
-aims to produce very high-quality code and promote developers’ quality of life by encouraging them to adopt a set of common practices that focus on the values of:
-Simplicity
-Communication
-Feedback
-Courage
-Respect
What are the strict stages of the SDLC (9)
-Identify the problem
-Assess the feasibility: technical, economic, legal, operational, time
-Analyse the system
-Design a solution
-Code (implementation)
-Testing
-Go live: direct changeover, phased, parallel or pilot
-Evaluation
-Maintenance: adaptive and corrective
What are the five core practices that are considered to boost the overall quality of completed solutions for a project:
-Collective code ownership
-Continuous integration
-Code standards
-Refactoring
-Paired programming
Advantages of waterfall:
Disadvantages of waterfall:
Advantages of RAD:
Disadvantages of RAD:
Advantages of spiral:
Disadvantages of spiral: