The answersDownload the PDF
Worksheet

A10.1 Classifying software

Operating systems, software and translators · A level · OCR H446 1.2.2, AQA 7517 4.6.1.2, Eduqas A500QS 2.7 · about 30 min

BugBotLab
NameClassDate

What this lesson is about

System and application software, utilities, libraries and translators, and open versus closed source.

Questions 5 marks in all

  1. [1 mark]Which of these are system software?

    Tick every answer that is true.

    1. AA compiler
    2. BA disk defragmenter
    3. CA maths library
    4. DA spreadsheet package
    5. EA payroll program
  2. [1 mark]What is a library?

    1. AA collection of pre-written, tested routines that other programs can call
    2. BA program that translates source code into machine code
    3. CA folder where the operating system keeps its files
    4. DAn application for searching documents
  3. [1 mark]A small charity needs software to record donations. Which is the strongest reason to choose off-the-shelf software over bespoke?

    1. AIt is available now, costs less, and has been tested by many users
    2. BIt will match the charity's exact needs
    3. CThe charity will own the source code
    4. DIt never needs updates
  4. [1 mark]What makes software open source?

    1. AIts source code is available, under a licence that lets people study, change and share it
    2. BIt is free to download
    3. CIt was written by volunteers
    4. DIt has no licence at all
  5. [1 mark]Which is a disadvantage of closed source software for the organisation that buys it?

    1. AOnly the owner can find and fix flaws or add features
    2. BAttackers can read its source code
    3. CThere is never any official support
    4. DIt cannot be sold

The task: the software audit

Audit the software on a robot and the laptop that programs it. software is a list of tuples (name, kind, licence): name and kind are strings, and licence is "open" or "closed". kind is one of "operating system", "device driver", "translator", "utility", "library" or "application". Write classify(kind), which returns the string "system" for the five kinds of system software and "application" for applications. Then, for each item in order, print <name>: <group>, <licence> source, for example FreeRTOS: system, open source. After the list, print three totals, one per line: system: <n>, application: <n> and open source: <n>. Count them in your loop rather than typing them. The robot stays still.

# the two lines every program starts with: the commands, then the robot
from bugbot import *
connect()

software = [
    ("FreeRTOS", "operating system", "open"),
    ("motor driver", "device driver", "open"),
    ("pocketpy", "translator", "open"),
    ("backup tool", "utility", "closed"),
    ("lesson browser", "application", "closed"),
    ("maths library", "library", "open"),
    ("spreadsheet", "application", "closed"),
    ("disk defragmenter", "utility", "closed"),
]

def classify(kind):
    pass

Plan your program here, then type it in and press Run.

QR code
Do it on the robot
www.bugbotlab.com/learn/a10-1-classifying-software/
The simulator checks it and tells you when it passes. Nothing to install, no account.

Challenges

  1. A device driver is system software. Explain why, in one sentence, using the idea of what it exists for.
  2. A school wants software to run its lunch payments. Argue for bespoke or off-the-shelf software, making three points linked to the school.
  3. Add a cost field to each item and print the total cost of the closed source software.