Software Development Flashcards
1
Q
Software Development Methodologies
A
1) Waterfall
2) Rapid Application Development
3) Spiral
4) Agile
5) Extreme Programming
2
Q
Waterfall
A
- Linear
- Each phase has a well-defined start and end point
- Cannot move back a phase
3
Q
Rapid Application Development (RAD)
A
- Produces prototypes until a final version is produced and approved
- Prototypes designed, coded, tested and evaluated with the end user
- May want further improvements
4
Q
Spiral
A
- Risk-driven - unique risks associated with each project
- Guide for development teams allowing them to adopt elements of other methodologies
- Order depends on the project and its unique risks
- Process model generator where decisions on the software are made based on the risks identified
5
Q
Agile
A
- Group of methodologies
- Focus on idea that requirements will change during development
- Produces software iteratively
- Refined version of RAD
- Small, iterative software releases with feedback
6
Q
Extreme Programming (XP)
A
- Aims to produce high-quality code and promote developed quality of life (encourage to adopt practices focusing on simplicity, communication, feedback, courage, respect)
- Agile framework - encourages regular, small, iterative software releases
- Every team member is equal value
7
Q
4 Stages of Compilation
A
1) Lexical Analysis
2) Syntax Analysis
3) Code Generation
4) Code Optimisation
8
Q
1) Lexical Analysis
A
- Comments and white space is removed
- Remaining code is turned into a series of tokens
- Symbol table is created to keep track of variables and subroutines
9
Q
2) Syntax Analysis
A
- Abstract syntax tree is built from tokens produced in the previous stages
- Errors generated if any tokens break the rules of the language
10
Q
3) Code Generation
A
- Abstract code tree converted to object code
- Object code is the machine code produced before the final step (linker) is run
11
Q
4) Code Optimisation
A
- Tweaks the code so it will run as quickly and use as little memory as possible
12
Q
Libraries
A
Ready compiled and tested programs that can be run when needed - typically grouped together into software libraries
13
Q
Benefits of Libraries
A
- Quick and easy to use in your own code
- Pre-tested so can be sure they are free from errors
- Pre-compiled so typically optimised to run quickly
14
Q
Drawbacks of Libraries
A
- Adding functionality or making specific tweaks can be difficult
- Sometimes you are ‘black-boxed’ from the actual implementation
- You have to trust the developers