1.2 Software and Software Development

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/23

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

24 Terms

1
New cards

Applications software

Software that is used by the end-user to perform one specific task

2
New cards

Systems software

Low level software that allows a computer system to run smoothly by interacting with hardware

3
New cards

Backups

Utility software that automatically creates routine copies of specific files selected by the user

4
New cards

Defragmentation

Utility software that rearranges the contents of the hard disk drive when it is full to optimise performance

5
New cards

Antivirus

Utility software that detects and prevents possible malware from being downloaded onto the computer

6
New cards

Open-source code

Code that can be used and distributed by anyone

Pros:

  • Free

  • Updates can be made by many developers

Cons:

  • Security risks

  • No financial gain for developer

7
New cards

Closed-source code

Code that is protected by the copyright act, a license is needed in order to use it

Pros:

  • Well supported and tested code

  • High levels of security

Cons:

  • Users can’t modify the software

  • Expensive

8
New cards

Compiler

Translates high level code into machine code all at once then reports back any errors

9
New cards

Interpreter

Translates and executes high level code one line at a time, stopping at any error

10
New cards

Compiler vs interpreter

  • Compiler is faster at executing than interpreter as interpreter runs through each line of code every time it is executed

  • If changes are made code needs to be recompiled

11
New cards

Stages of compilation

  1. Lexical analysis

  2. Syntax analysis

  3. Code generation

  4. Optimisation

12
New cards

Lexical analysis

  1. White space and comments are removed from the code

  2. Names of variables and constants are replaced by tokens

  3. These tokens are stored in a symbol table

13
New cards

Syntax analysis

  1. Tokens from the lexical analyser are compared to the correct grammar and rules of the programming languages

  2. Builds a parse tree (abstract syntax tree)

  3. Reports any syntax errors

14
New cards

Code generation

The parse tree (abstract syntax tree) is used to the produce machine code

15
New cards

Optimisation

Insignificant or redundant code is removed, repeated code may be replaced with a more efficient piece of code

Aim is to make the code faster to execute, however this process takes time

16
New cards

Advantages of libraries

  • Quick and easy to use

  • Pre-tested so no errors

  • Pre-compiled so optimised to run quickly

17
New cards

Linkers

Links external modules and libraries to one executable file of code

18
New cards

Loaders

Part of the operating system that loads the executable file into memory, ready to be run

19
New cards

Stages of the software development lifecycle

  1. Feasibility

  2. Requirements

  3. Analysis and design

  4. Implementation

  5. Testing

  6. Deployment

  7. Evaluation

  8. Maintenance

20
New cards

Waterfall lifecycle

Series of stages and started and finished before moving onto the next stage until the software is fully developed. Changes can be made by revisiting a stage of development

21
New cards

RAD (rapid application development)

Continuously creating prototypes which are improved after each iteration —> used when user requirements are unsure

22
New cards

Spiral model

Iterative approach that refines prototypes with every cycle. There 4 stages in a cycle:

  1. Determine objectives

  2. Identify and resolve risks

  3. Develop and test

  4. Plan the next iteration (cycle)

23
New cards

Agile methodologies

A group of software development techniques that are heavily flexible and can adapt to user’s requirements quickly.

Stages are developed in groups in parallel

24
New cards

Extreme programming

Agile development that focuses on small, frequent releases in order to get customer feedback