Software Development Flashcards

1
Q

Software Development Methodologies

A

1) Waterfall
2) Rapid Application Development
3) Spiral
4) Agile
5) Extreme Programming

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Waterfall

A
  • Linear
  • Each phase has a well-defined start and end point
  • Cannot move back a phase
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

4 Stages of Compilation

A

1) Lexical Analysis
2) Syntax Analysis
3) Code Generation
4) Code Optimisation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

4) Code Optimisation

A
  • Tweaks the code so it will run as quickly and use as little memory as possible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Libraries

A

Ready compiled and tested programs that can be run when needed - typically grouped together into software libraries

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly