Skip to main content

What is Software?: What is software?

What is Software?
What is software?
    • Notifications
    • Privacy
  • Project HomeTools and Techniques in Software Engineering
  • Projects
  • Learn more about Manifold

Notes

Show the following:

  • Annotations
  • Resources
Search within:

Adjust appearance:

  • font
    Font style
  • color scheme
  • Margins
table of contents
  1. What is software?
  2. History of Computing
  3. Software Distribution
  4. Cloud Computing
  5. OSS
  6. Optimization

What is software?

Software is a general term used to describe a collection of programs with accompanying installation manual and documentation, and serves as prescribed solutions to problems. Software is made up of individual programs, which are a set of instructions written in a programming language used to tell machines how to operate. Software is a broad term whereas program is a specific term.

With regards to differences between script and a program, there isn't a strong distinction between these terms anymore but still good to know about. Traditionally a program is compiled and a script is interpreted, but that is not really important anymore. You can generate a compiled version of most scripts if you really want to, and other compiled languages like Java are in fact interpreted (at the byte code level.) A more modern definition might be that a program is intended to be used by a customer (perhaps an internal one) and thus should include documentation and support, while a script is primarily intended for the use of the author. An application tends to be used interactively with an end user, where a script would run its course for a single task or job on a machine with little to no human interaction.

Introduction to software

Software is traditionally divided into three main categories on a computer machine:

  • System software serves as a base for application software. System software includes device drivers, operating systems (OS), compilers, disk formatters, text editors and utilities helping the computer to operate more efficiently. It is also responsible for managing hardware components and providing basic non-task-specific functions. The system software is usually written in C programming language.
  • Programming software is a set of tools to aid developers in writing programs. The various tools available are compilers, linkers, debuggers, interpreters and text editors.
  • Application software is intended to perform certain tasks. Examples of application software include office suites, gaming applications, database systems and educational software. Application software can be a single program or a collection of small programs. This type of software is what consumers most typically think of as software.

You might hear these referred to generally as "software", or with other interchangeable terms such as OS software, Development Tools, and User Applications. The figure below is for illustrative purposes to show briefly how these concepts relate to each other. It is limited in the categories presented. There are more levels and dimensions to consider when describing software in specificity.

Types of Software

Videos:

  • Difference between Application and System Software
  • Assembly language and machine code - Gary explains! but in today's world with new technologies there are emerging categories:

System Software

System software refers to the operating system and all utility programs that manage computer resources at a low level. It includes compilers, loaders, linkers, drivers, and debuggers.

Videos:

  • System Software Overview
  • Why Do Computers Use 1s and 0s? Binary and Transistors Explained.
  • "Panel: Systems Programming in 2014 and Beyond".

Programming Languages Used

Languages for programming a computer include: machine language, assembler language, and high-level programming language (Java, C++, Python).

Application Software

Application software is often those designed for an end user, such as word processors, database systems, and spreadsheet programs. Some examples of various application use cases are summarized in this table.

For examples of what each category represents take a look at this slide deck.

Desktop Applications

Web Applications

Examples of Application Software

Business

  • Word processing
  • Spreadsheet
  • Database
  • Presentation
  • Note Taking
  • Personal Information Manager
  • Business Software for Phones
  • Business Software Suite
  • Project Management
  • Accounting
  • Document Management
  • Enterprise Computing

Graphics & Multimedia

  • Computer-Aided Design (CAD)
  • Desktop Publishing
  • Paint/Image Editing
  • Photo Editing
  • Video & Audio Editing
  • Multimedia Authoring
  • Web Page Authoring

Home/Personal/Education

  • Software Suite
  • Personal Finance
  • Legal
  • Tax Preparation
  • Desktop Publishing
  • Paint/Image Editing
  • Photo Editing & Photo Management
  • Image Gallery
  • Video & Audio Editing
  • Home Design/Landscaping
  • Travel & Mapping
  • Reference & Educational
  • Entertainment

Communication

  • Web Browser
  • Email
  • Instant Messaging
  • Newsgroup
  • Chat Room
  • FTP
  • VoIP
  • Video Conferencing
  • Blogging
  • Vlogging
  • RSS Aggregator

Programming Languages Used

Java/JavaFX/Swing, Swift/Cocoa for MacOS, C++/Qt, C/GTK+, Universal Windows Platform (UWP) with C#, VB.Net, C++ (for Windows applications), Windows Presentation Foundation (WPF), Python

Cloud-Based Software

This is a relatively nascent group of software that emerged in recent decades running on shared computing resources via the Internet, referred to by names such as Software as a Service (SaaS), Cloud Infrastructure, and so forth. The computing resource are maintain in remote center dedicated to hosting various applications on multiple platforms such as Amazon Web Services (AWS), Googld Cloud Platform (GCP), Microsoft Azure, and more.

The main characteristics of software for this group is the deployment model, that the end user doesn’t have to install SaaS on their local machine, they can access the software through a connection to a server, scuh as a browser. This does mean, however, that an internet connection is typically required.

Video:

  • SaaS Introduction (Software as a Service)

Embedded Systems

These are systems and software that work on non-traditional computing devices, such as automobiles, medical imaging, video game consoles, household appliances, HVAC systems, digital cameras, and so forth. An embedded system is a combination of computer hardware and software. The embedded hardware includes elements such as a user interface, input/output interfaces, display and memory, etc. Embedded systems range from no user interface to complex interfaces. It usually is included as part of another peice of equipment as opposed to needing a dedicated computer to compile and run software.

Embedded systems can be classified into different types based on performance, functional requirements and performance of the microcontroller.

Links

*

Programming Languages Used

C/C++, Rust, Python

  • Dubois, Chantelle. (2017). Programming Languages for Embedded Systems 101: Background and Resources. All about circuits. https://www.allaboutcircuits.com/news/programming-languages-for-embedded-systems-101-background-and-resources/

Annotate

Next Chapter
History of Computing
Next
Software Engineering
Powered by Manifold Scholarship. Learn more at
Opens in new tab or windowmanifoldapp.org