2.2: Problem Solving and Programming Flashcards
What is meant by software development methodology?
- The arrangement of phases and how programmers move from one phase to another - both forwards and backwards
What is meant by the term ‘SDLC’?
- Software Development Lifecycle
- Phases of software development
What are the stages of the SDLC?
- Feasibility
- Requirements
- Analysis and design
- Implementation
- Testing
- Deployment
- Evaluation
- Maintenance
What happens during the feasibility stage?
Figuring out if the problem is solvable
What happens during the requirements stage?
Working out what the solution needs to do
What happens during the analysis and design stage?
Working out how the solution needs to do it
What happens during the implementation stage?
The solution is coded
What happens during the testing stage?
Checking if it actually works
What happens during the deployment stage?
Installing the program in the target environment
What happens during the evaluation stage?
Checking in with the user - is the solution complete?
What happens during the maintenance stage?
Ensuring it continues to function properly by the way of improvements, patches and updates
What are the 5 types of development methodologies?
- Waterfall
- RAD
- Spiral
- Agile
- Extreme programming
Describe the waterfall methodology.
- It has a cascading effect from one phase to another
- Each phase has a well defined start and end point with identifiable deliverables
- A slight evolution of the waterfall model allows you to move back to a previous stage as well as forwards - this reflects the fact that developers often have to rework earlier stages in light of knowledge gained as development progresses
Describe the RAD methodology.
- Methodology that involves producing successive prototypes of the software until a final version is produced and approved
- Following the initial approval of a feasible program, increasingly refined prototypes are made with reduced functionality
- These are designed, coded, test and evaluated with the end user
- Your user might decide they are happy with the system or that they want further improvements, which will start a new cycle
Describe the Spiral model methodology.
- Risk-driven development methodology.
- The spiral model is more of a guide for development teams, allowing them to adopt elements of one or more other methodologies like waterfall or RAD
- This model is better thought of as a process model generator, where decisions on the software development methodology are made based on the risks identified
Describe the agile methodology.
- Refers to a group of methodologies
-These methodologies focus on the idea that requirements will shift and change during development - this can only be dealt with by producing software in an iterative way - They are a more refined form of older concepts behind RAD
- The product is built in a series of iterations known as sprints
- These 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
Describe the extreme programming methodology.
- Aims to produce very high quality code
- Encourages developers to adopt a set of common practices that focus on the values of:
- Simplicity
- Communication
- Feedback
- Courage
- Respect
- It is considered an agile framework as it encourages regular, small, iterative software releases
What are the 5 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