π£| Programming - Theory Flashcards
Development Methodologies:
What does the iterative process involve?
2
- Programmers move from stage to stage in order, only revisiting stages where necessary and a problem is discovered
- It is a very structured process and clients are only communicated with at the beginning and end of development
What does the agile process involve?
2
- Uses βsprintsβ which are periods of planned analysis, design, implementation and testing of a particular aspect of software
- It is a flexible process that is based on team work and daily communication which is suited to small, short term projects rather than larger scale projects
Development Methodologies:
Iterative Strengths
2
- Good for large teams - helps to plan and track large software projects
- Clear agreement on outcomes at start of project
Development Methodologies:
Iterative Weaknesses
2
- Very rigid approach does not deal well with mid-project changes
- Little involvement of client after analysis
Development Methodologies:
Agile Strengths
2
- Ongoing testing and evaluation
- Ongoing involvement of client allows changes to be agreed quickly
Development Methodologies:
Agile Weaknesses
2
- Needs close version control and tracking of changes
- Can be more difficult to predict the longer term goals of the project, and the final product may not look anything like the initial concept.
Design:
What is top down, stepwise refinement?
2
- Any main steps from the design are known as the top down design
- These main steps are usually broken down further into step by step instructions known as stepwise refinements, which helps the programmer break down the program into manageable modules
What criteria is evaluated in a program?
5
- Fitness for purpose
- Efficient use of coding constructs
- Usability
- Maintainability
- Robustness
Evaluation:
Fitness for purpose
If the software functions as specified in the software specification
Evaluation:
Efficient use of coding constructs
If the most appropriate constructs/data types have been used
Evaluation:
Usability
The ease of the user interface to use and learn
Evaluation:
Maintainability
If changes can be made easily and quickly to allow for future upgrades
Evaluation:
Robustness
If the program can cope with abnormal or unexpected inputs without crashing