Digital technology, software development concept. Coding programmer, software engineer working on laptop with circuit board and javascript on virtual screen, internet of things IoT

Software systems: an explainer

Software is what most people interact with when they use a computer or mobile device. Written in programming code, software is the set of instructions that enable computer hardware, systems, programmes, and applications to operate and perform tasks. 

Types of software 

There are several different types of software, all serving different functions. The software systems used today can largely be categorised into a few key areas:

  • system software
  • application software
  • utility software
  • programming software.

System software

System software manages a computer system’s resources. It works in partnership with computer hardware and other software – such as applications – to provide the end-user interface.

Examples of system software include:

Operating systems

An operating system, or OS, is one of the most important pieces of software on a computer, managing all of the other computer programmes installed on the device. Popular examples include Microsoft Windows, Mac OS, Android OS, and Linux.

Application software typically uses an application programme interface (API) to interact with the OS. Users, meanwhile, interact with the operating system itself through one of two user interfaces:

  • a command-line interface (CLI) user interface, such as MS-DOS
  • more commonly, a graphical user interface (GUI), such as Windows

Device drivers

Driver software manages any device or peripherals that connect to a computer. For example, a printer connected to a computer will need an appropriate driver in order to work as expected. 

Other devices that require drivers include:

  • computer mice
  • keyboards
  • speakers and headphones
  • modems and routers
  • sound cards
  • USB storage devices.

Firmware

Firmware is an essential piece of software because it ensures that hardware works as it’s intended, and manages some of the most basic functions of a machine. Firmware is typically embedded and installed directly into a piece of hardware by its manufacturer. Once a device is switched on, firmware is what boots up the computer by initialising its hardware components and loading its operating system. 

Application software

Application software is responsible for performing specific tasks and functions for users. Rather than managing how the computer or device operates, this type of software is designed and developed according to the specifications and needs of people using the machines.

Examples of application software include:

Web browsers

Web browsers, such as Google Chrome or Apple’s Safari, are software applications that allow people to access and use the web. Anyone accessing a standard website uses a web browser to do so.

Word processors

Word processors, used to write and edit text, are among the oldest computer applications. Examples include Microsoft Word and Google Docs.

Multimedia software

Multimedia applications are used to view, create, edit, and manage media content. This includes:

  • images
  • videos
  • audio.

Windows Media Player, iTunes, and Adobe PhotoShop are all examples of multimedia software. When referring specifically to graphics content, such as videos, images, infographics, and so on, the term graphics software is also applicable.

Communication software

Any computer programme that’s used to communicate with other people – including through text, audio, and video – is an example of communication software. This includes:

  • Microsoft Outlook and Teams
  • Skype
  • Zoom.

Utility software

Utility software is often considered a subtype of system software, but its focus is specifically on helping to configure, maintain, or optimise a computer’s hardware and software architecture.

Examples of utility software include:

Security software

Security software, such as antivirus software, protects a device’s hardware and software from viruses and other threats. It ideally monitors a computer in real time, scanning existing programmes, incoming files and downloads, and shielding against any attacks by cybercriminals.

File compression software

Compression software helps condense files and other data so it takes up less storage space on a device. These tools also ensure condensed data can be safely managed and restored to its original format when required.

Middleware

Middleware straddles systems and application software, and effectively enables different computer programmes to interact with one another. According to IBM, middleware “enables developers to build applications without having to create a custom integration every time they need to connect to application components (services or microservices), data sources, computing resources or devices.”

Programming software

Programming software is what programmers and developers use to write code and develop new software programmes.

Examples of programming software include:

Programming language translators

Computing or programming language translators can translate one form of code into other programming languages. There are three main types:

  1. Compilers, which convert whole programmes written in programming languages, such as Java or C++, into machine language.
  2. Assemblers, which convert code in assembly languages into machine language.
  3. Interpreters, which can execute instructions written in a programming or scripting language, rather than requiring that these languages be first compiled into machine code enabling rapid programme development, ease of use, portability, and safety.

Debuggers

Debugging tools are used by programmers to test for – and then resolve – errors and issues within programmes. 

Design software and start your career in computer science

Deepen your understanding of software systems, as well as computer science more broadly, with the 100% online MSc Computer Science from the University of York. This Masters degree includes a module in software engineering, allowing you to focus on designing and building software systems. You will look at principles and patterns in software design, where to apply them, and how they inform design choices, and learn techniques for ensuring the systems you build behave correctly.

You will also study other key areas required for software development, such as advanced programming, computer architecture and operating systems, algorithms and data structures, and artificial intelligence and machine learning.

This flexible degree has been designed for working professionals and graduates who may not currently have a computer science background but want to launch a career in the cutting-edge field. You can learn part-time around your current work and home commitments, and because the degree is taught exclusively online, you can study whenever and wherever you want. 

For further information about tuition fees, English language requirements, coursework, and other courses available with the Department of Computer Science at the University of York, please visit the University of York website.