1.2.2 notes

The nature of Applications


Application software

Application software is software designed to perform a specific task for the user.

Examples:

  • word processors

  • spreadsheets

  • databases

  • Presentation software

  • CAD software

  • graphics software


Purpose of application software:

  • to improve efficiency

  • to perform specialised tasks

  • to provide tools for user


what

Application

Purpose

Word Processor

Used to create, edit, format and print text-based documents such as reports, letters and essays.

Spreadsheet

Used to perform calculations, analyse numerical data and create models using formulae and functions.

Database Management System (DBMS)

Used to store, organise, manage and retrieve large amounts of structured data efficiently.

Presentation Software

Used to create and deliver visual presentations containing text, images, audio and video to an audience.

Graphics Software

Used to create, edit and manipulate digital images, photographs and artwork.

CAD Software

Used to produce accurate technical drawings and 3D models for engineering, architecture and product design.


Factors affecting suitability

  • functionality

  • efficiency

  • accuracy

  • security

  • Cost

  • ease to use

  • reliability


Justification Technique

For OCR questions:

  1. Identify user requirement

  2. Select application

  3. Explain feature

  4. Link feature to requirement


Utilities

Utility software is system software used to maintain, manage, optimise and protect a computer system


Anti-virus software

Used to detect, prevent, and remove malware from a computer system

Advantages:

  • improves security

  • protects data


Disadvantages

  • uses System resources

  • may miss new threads


Backup Utility

Used to create copies of data for recovery after loss or corruption


Advantages:

  • prevents permanent data loss

  • supports recovery


Disadvantages

  • requires storage space

  • needs regular updating


Disk Defragmentation Utility

Used to reorganise fragmented files on an HDD to improve access speed.


Advantages:

  • Faster file access

  • Improved HDD performance


Disadvantages

  • Time consuming

  • unnecessary for SSDs


Disk clean-up utility

Used to remove unnecessary files and free storage space


Advantages

  • frees space

  • improves efficiency


Disadvantages

  • risk of deleting useful files


file compression utility

used to reduce file size for storage and transmissions'


Advantages:

  • saves storage

  • faster transfer


Disadvantages:

  • Compression/decompression time


Encryption Utility

Used to protect data by converting it into an unreadable form without the correct key


Advantages:

  • improves security

  • protects sensitive data


Disadvantages:

  • Processing overhead

  • risk of lost key



OPEN SOURCE VS CLOSED SOURCE


Open source software

Software whose source code is publicly available and may be viewed, modified and redistributed


Advantages:

  • often free

  • can be customised

  • community bug fixing

  • greater transparency


Disadvantages:

  • limited support

  • variable quality

  • may require technical expertise


Closed source software

Software whose source code is not publicly available and is controlled by the developer


Advantage:

  • professional support

  • consistent quality control

  • user-friendly


Disadvantages

  • licence costs

  • limited customisation

  • dependence on vendor updates


Translator

A translator is software that converts source code into machine code or another executable form.

Purpose:

  • Allows programs written by humans to be executed by a CPU.


Compiler

A compiler translates an entire high-level language program into machine code before execution.

Advantages

  • Faster execution

  • Machine code can be distributed

  • Reports multiple errors during compilation

Disadvantages

  • Compilation takes time

  • Program must be recompiled after changes


Interpreter

An interpreter translates and executes source code one statement at a time.

Advantages

  • Easier debugging

  • Immediate execution

  • Faster development cycle

Disadvantages

  • Slower execution

  • Source code required


Assembler

An assembler translates assembly language into machine code.

Advantages

  • Efficient code

  • Direct hardware control

Disadvantages

  • Difficult to write

  • Time consuming


Machine Code

Machine code consists of binary instructions that can be directly executed by the CPU.


Assembly Language

A low-level language that uses mnemonic instructions to represent machine code operations.



Compilation

Compilation is the process of translating a high-level language program into machine code.


1. Lexical Analysis

Breaks source code into tokens.

A token may be:

  • Identifier

  • Operator

  • Keyword

  • Constant

Purpose

Allows the compiler to recognise individual program components.

Errors Found

Lexical errors.


2. Syntax Analysis

Checks that tokens follow the grammatical rules of the programming language.

Purpose

Ensures program structure is valid.

Errors Found

Syntax errors.


3. Code Generation

Converts validated source code into machine code or object code.

Purpose

Produce executable instructions for the CPU.


4. Optimisation

Improves generated code to increase efficiency.

Objectives

  • Reduce execution time

  • Reduce memory usage

  • Remove redundant instructions


⚖ Advantages of Optimisation

✅ Faster execution

✅ Reduced memory requirements

✅ Improved performance


Disadvantages of Optimisation

❌ Increases compilation time

❌ Makes generated code more complex


Libraries

A library is a collection of pre-written routines, procedures or functions that can be reused by programs.

Purpose

  • Reduce development time

  • Improve reliability

  • Promote code reuse

Advantages

  • Faster development

  • Tested code

  • Reduced costs

Disadvantages

  • Dependency issues

  • Increased program size

  • Less control over implementation


Linker

A linker is system software that combines object code modules and required library code to produce an executable program.

Functions

  • Combine object files

  • Resolve external references

  • Link library routines

  • Produce executable code


Loader

A loader is system software that loads an executable program from secondary storage into RAM for execution.

Functions

  • Locate executable

  • Load into memory

  • Allocate memory

  • Prepare execution environment

  • Start execution