1/23
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
Applications software
Software that is used by the end-user to perform one specific task
Systems software
Low level software that allows a computer system to run smoothly by interacting with hardware
Backups
Utility software that automatically creates routine copies of specific files selected by the user
Defragmentation
Utility software that rearranges the contents of the hard disk drive when it is full to optimise performance
Antivirus
Utility software that detects and prevents possible malware from being downloaded onto the computer
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
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
Compiler
Translates high level code into machine code all at once then reports back any errors
Interpreter
Translates and executes high level code one line at a time, stopping at any error
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
Stages of compilation
Lexical analysis
Syntax analysis
Code generation
Optimisation
Lexical analysis
White space and comments are removed from the code
Names of variables and constants are replaced by tokens
These tokens are stored in a symbol table
Syntax analysis
Tokens from the lexical analyser are compared to the correct grammar and rules of the programming languages
Builds a parse tree (abstract syntax tree)
Reports any syntax errors
Code generation
The parse tree (abstract syntax tree) is used to the produce machine code
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
Advantages of libraries
Quick and easy to use
Pre-tested so no errors
Pre-compiled so optimised to run quickly
Linkers
Links external modules and libraries to one executable file of code
Loaders
Part of the operating system that loads the executable file into memory, ready to be run
Stages of the software development lifecycle
Feasibility
Requirements
Analysis and design
Implementation
Testing
Deployment
Evaluation
Maintenance
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
RAD (rapid application development)
Continuously creating prototypes which are improved after each iteration —> used when user requirements are unsure
Spiral model
Iterative approach that refines prototypes with every cycle. There 4 stages in a cycle:
Determine objectives
Identify and resolve risks
Develop and test
Plan the next iteration (cycle)
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
Extreme programming
Agile development that focuses on small, frequent releases in order to get customer feedback