Email - harun.bspt2014@gmail.com Phone - +8801717615827

Types of Software

Software is a collection of data or computer instructions that tell the computer how to work or instructions that tell a computer what to do. The software comprises the entire set of programs, procedures, and routines associated with the operation of a computer system. The term was coined to differentiate these instructions from hardware—i.e., the physical components of a computer system.

Computer software, without software, most computers would be useless. Once the software is loaded, the computer is able to execute the software. Computers operate by executing the computer program. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. An operating system has three main functions: (1) manage the computer’s resources, such as the central processing unit, memory, disk drives, and printers, (2) establish a user interface, and (3) execute and provide services for applications software.

Software, which is abbreviated as SW or S/W, is a set of programs that enables the hardware to perform a specific task. All the programs that run the computer are software. The software can be of three types: system software, application software, and programming software.

Types of Software

1. System Software

The system software is the main software that runs the computer. When you turn on the computer, it activates the hardware and controls and coordinates their functioning. The application programs are also controlled by system software. An operating system is an example of system software.

System software provides a platform for other software and includes the programs managing the computer itself, such as the computer’s operating system, file management utilities, and disk operating system (or DOS). The system’s files consist of libraries of functions, system services, drivers for printers and other hardware, system preferences, and other configuration files. The programs in system software encompass assemblers, compilers, file management tools, system utilities, and debuggers.

i) Operating System

An operating system is the system software that works as an interface to enable the user to communicate with the computer. It manages and coordinates the functioning of the hardware and software of the computer. The commonly used operating systems are Microsoft Windows, Linux, and Apple Mac OS X.

Some other examples of the system software include

  • BIOS: It stands for the basic input-output system. It is a type of system software, which is stored in Read-Only Memory (ROM) located on the motherboard. However, in advanced computer systems, it is stored in flash memory. BIOS is the first software that gets activated when you turn on your computer system. It loads the drivers of the hard disk into memory as well as assists the operating system to load itself into the memory.
  • Boot Program: Boot refers to starting up a computer. When you switch on the computer, the commands in the ROM are executed automatically to load the boot program into memory and execute its instructions. The BIOS program has a basic set of commands that enables the computer to perform the basic input/output instructions to start the computer.
  • An assembler: It plays the role of a converter as it receives basic computer instructions and converts them into a pattern of bits. The processor uses these bits to perform basic operations.
  • A device driver: This system software controls hardware devices connected to a computer. It enables the computer to use the hardware by providing an appropriate interface. The kernel of a Computer’s CPU communicates with different hardware through this software. Operating systems generally come with most of the device drivers. If the operating system does not have a device driver for hardware, you have to install the device driver before using that hardware device.

System Software

System software runs things in the background and operating systems are an example of system software. For desktop computers, laptops, and tablets:

  • Microsoft Windows
  • macOS (for Apple devices)
  • GNU/Linux

For smartphones:

  • Apple’s iOS
  • Google’s Android
  • Windows Phone OS

Other examples include game engines, computational science software, industrial automation software, and software as a service application. Other than operating systems, some people also classify programming software and driver software as types of system software. However, we will discuss them individually in the next two sections.

2. Application Software

Application software is a set of programs designed to perform a specific task. It does not control the working of a computer as it is designed for end-users. A computer can run without application software. Application software can be easily installed or uninstalled as required. It can be a single program or a collection of small programs. Microsoft Office Suite, Adobe Photoshop, and any other software like payroll software or income tax software are application software. As we know, they are designed to perform specific tasks. Accordingly, they can be of different types such as:

  • Word Processing Software: This software allows users to create, edit, format, and manipulate text and more. It offers lots of options for writing documents, creating images, and more. For example, MS Word, WordPad, Notepad, etc.
  • Spreadsheet Software: It is designed to perform calculations, store data, create charts, etc. It has rows and columns, and the data is entered in the cell, which is an intersection of a row and column, e.g., Microsoft Excel.
  • Multimedia Software: This software is developed to perform editing of video, audio, and text. It allows you to combine texts, videos, audio, and images. Thus, you can improve a text document by adding photos, animations, graphics, and charts through multimedia software. For example, VLC player, Window Media Player, etc.
  • Enterprise Software: This software is developed for business operational functions. It is used in large organizations where the quantum of business is too large. It can be used for accounting, billing, order processing, and more. Examples, CRM (Customer Relationship Management), BI (Business Intelligence), ERP (Enterprise Resource Planning), SCM (Supply Chain Management), customer support systems, and more.

Types of Application Software and Examples

  • Word Processing Software: Google Docs, Microsoft Word, WordPad and Notepad
  • Database Software: MySQL, Microsoft SQL Server, Microsoft Access, Oracle, IBM DB2 and FoxPro
  • Spreadsheet Software: Google Sheets, Apple Numbers and Microsoft Excel
  • Multimedia Software: Media Player, Winamp, QuickTime and VLC Media Player
  • Presentation Software: Google Slides, Microsoft Powerpoint, Keynotes, Prezzy
  • Enterprise Software: customer relationship management (CRM) software (HubSpot, Microsoft Dynamic 365)), project management tools (Jira, Monday), marketing automation tools (Marketo, HubSpot), enterprise resource planning (ERP) software (SAGE, Oracle, Microsoft Dynamics), treasury management system (TMS) software (SAP S/4HANA Finance, Oracle Treasury), business intelligence (BI) software (SAP Business Intelligence, MicroStrategy, Microsoft Power BI)
  • Information Worker Software: Documentation tools, resource management tools
  • Communication Software: Zoom, Google Meet, Skype
  • Educational Software: Dictionaries – Encarta, Britannica; Mathematical: MATLAB; Others: Google Earth, NASA World Wind
  • Simulation Software: Flight and scientific simulators
  • Content Access Software: Accessing content through media players, web browsers
  • Application Suites: Apache OpenOffice, Microsoft Office365, Apple’s iWork, LibreOffice, G-Suite, Oracle E-Business Suite
  • Software for Engineering and Product Development: IDE or Integrated Development Environments
  • Email Software: Microsoft Outlook, Gmail, Apple Mail

3. Programming Software

It is a set or collection of tools that help developers in writing other software or programs. It assists them in creating, debugging, and maintaining software or programs or applications. We can say that these are facilitator software that helps translate programming languages such as Java, C++, Python, etc into machine language code. So, it is not used by end-users. For example, compilers, linkers, debuggers, interpreters, text editors, etc. This software is also called a programming tool or software development tool.

Some examples of programming software include:

  • Eclipse: It is a java language editor.
  • Coda: It is a programming language editor for Mac.
  • Notepad++: It is an open-source editor for windows.
  • Sublime text: It is a cross-platform code editor for Linux, Mac, and Windows.

Computer programmers use programming software to write code. Programming software and programming tools enable developers to develop, write, test and debug other software programs. Examples of programming software include assemblers, compilers, debuggers, and interpreters.

It’s possible to write computer languages like Java or PHP in plain-text editor apps, but more robust, industry-standard applications are available. Compilers, assemblers, debuggers, interpreters, etc. are examples of programming software. Integrated development environments (IDEs) are combinations of all these software.

Most software developers use programming software apps like:

  • GitHub
  • GitLab
  • Android Studio
  • Visual Studio Code
  • Eclipse
  • XCode
  • Notepad++
  • Atom

They’re termed IDEs or integrated development environments and programmers use them for a reason.

4. Middleware

The term middleware describes software that mediates between application and system software or between two different kinds of application software. For example, middleware enables Microsoft Windows to talk to Excel and Word. It is also used to send a remote work request from an application on a computer that has one kind of OS, to an application on a computer with a different OS. It also enables newer applications to work with legacy ones.

5. Driver Software

Driver software communicates with hardware and control devices and peripherals attached to a computer. It does this by gathering input from the OS (operating system) and giving instructions to the hardware to perform an action or other designated task. Internal components like the hard drive and processor each require their own driver. If the wrong software’s installed the device won’t work correctly.

In older versions of Windows, device drivers became the bane of office life. New peripherals like a printer required the correct driver. When the CD went missing it took forever to find the right driver software online. Thankfully Windows and other operating systems install and manage drivers behind the scenes. The result is an optimized and working machine.

Examples of Driver Software

All hardware devices require drivers. For example:

  • Graphic cards
  • Network cards
  • Mouse and keyboard

When you insert a USB flash drive into your computer, the OS recognizes it as a new device. The driver then gets installed automatically to make it functional.

Drivers are part of the system software category. Without them, nothing would work. Hardware manufacturers are usually responsible for creating driver software. However, Linux and Chromebook often get overlooked because of their small market share. Thankfully the coding community comes to the rescue. Someone writes the code to make the device work correctly on their system. They then share the driver online for others to download and use.

6. Freeware

Freeware sounds like free software or open-source software but there’s a difference. Freeware software does not expose or share its source code. Yet the software owner does not charge others to use it. Freeware licenses vary as to what the software can be used for and who can share it.

Some developers only allow their freeware for private or personal use. Businesses need a paid license or get written permission. An example of this is GPT-3 – and only approved developers and marketers can get access to the program. Always read the small print and be wary of the copyright of freeware licenses.

Freeware software examples cover a wide base of useful applications from audio to virtual machines. Explore some of this year’s best freeware software here. And if you want a great free alternative to Adobe Photoshop check out gimp.org.

You pay nothing for fully developed software. You can uninstall it if you don’t like the features. There are no companies ‘forcing’ you to upgrade. Freeware also helps the online community to share and grow. Developers can showcase their talents while businesses can avail of some excellent apps.

7. Shareware

Like freeware, shareware is free to use and share with others, but only for a short time. It acts as an evaluation. You can try some or all of the features before committing to a purchase. WinZip is one of the most established shareware apps. It started in 1991 when compression software wasn’t included in Windows. Nearly thirty years later, it still sees high download volumes. The free trial is time-limited but all versions include encryption.

Shareware lets you try the software for free before purchasing a full license. Some give a limited feature set or are time-locked. “Try before you buy” is a great way to check if the software is right for your business’s needs.

8. Open Source Software

Open source means you can explore the actual code that the app was written in. Strict software licenses restrict what another developer is able to do with the code. However, the ethos behind open-source is to encourage development. Open source means evolving the code to make it better for everyone.

The Linux OS is the perfect example of open-source software. Developers can download the source code and edit it as they see fit. New flavors of Linux help target a certain need as a result. Github.com is the top destination for coders to save and share their code.

Repositories are often open source and developers can find the right solution to their issues easily. They can clone whole projects or download elements for free.

9. Closed Source Software

Most applications are closed source in that they do not expose the original code. Licenses are stringent. No unauthorized copying or cracking is allowed. The app can be commercial or private but it requires payment of some kind to use. Any app that hides or encrypts its source code is considered closed-source. For example, Skype allows video conferencing. It’s owned by Microsoft and although free to use, the corporation charges high-volume users a fee. Closed source software is designed for commercial use. Developers are often employed to write code. That costs money. Therefore companies don’t want their investment shared without recompense. Utility software is designed to analyze and optimize a device. These apps are usually bundled with an OS. They track performance and alert the system if there’s a problem like overheating.

The Windows Task Manager shows all open processes in Windows. It details performance over time and showcases how much memory each uses. Utilities also include anti-virus software and backup apps. Keeping a close eye on overheating is essential as is scanning for malware. Utility software helps to keep things stable. It’s designed to make your system run smooth and not get damaged due to overuse.

How does the software work?

All software provides the directions and data computers need to work and meet users’ needs. However, the two different types — application software and system software — work in distinctly different ways.

Application software

Application software consists of many programs that perform specific functions for end-users, such as writing reports and navigating websites. Applications can also perform tasks for other applications. Applications on a computer cannot run on their own; they require a computer’s OS, along with other supporting system software programs, to work.

These desktop applications are installed on a user’s computer and use the computer memory to carry out tasks. They take up space on the computer’s hard drive and do not need an internet connection to work. However, desktop applications must adhere to the requirements of the hardware devices they run on.

Web applications, on the other hand, only require internet access to work; they do not rely on the hardware and system software to run. Consequently, users can launch web applications from devices that have a web browser. Since the components responsible for the application functionality are on the server, users can launch the app from Windows, Mac, Linux or any other OS.

System software

System software sits between the computer hardware and the application software. Users do not interact directly with system software as it runs in the background, handling the basic functions of the computer. This software coordinates a system’s hardware and software so users can run high-level application software to perform specific actions. System software executes when a computer system boots up and continues running as long as the system is on.

Design and implementation

The software development lifecycle is a framework that project managers use to describe the stages and tasks associated with designing software. The first steps in the design lifecycle are planning the effort and then analyzing the needs of the individuals who will use the software and creating detailed requirements. After the initial requirements analysis, the design phase aims to specify how to fulfill those user requirements.

The next step is implementation, where development work is completed, and then software testing happens. The maintenance phase involves any tasks required to keep the system running.

The software design includes a description of the structure of the software that will be implemented, data models, interfaces between system components, and potentially the algorithms the software engineer will use.

The software design process transforms user requirements into a form that computer programmers can use to do the software coding and implementation. The software engineers develop the software design iteratively, adding detail and correcting the design as they develop it.

The different types of software design include the following:

  • Architectural design. This is the foundational design, which identifies the overall structure of the system, its main components, and their relationships with one another using architectural design tools.
  • High-level design. This is the second layer of design that focuses on how the system, along with all its components, can be implemented in form of modules supported by a software stack. A high-level design describes the relationships between data flow and the various modules and functions of the system.
  • Detailed design. This third layer of design focuses on all the implementation details necessary for the specified architecture.

How to maintain software quality

Software quality measures if the software meets both its functional and non-functional requirements.

Functional requirements identify what the software should do. They include technical details, data manipulation, processing, calculations, or any other specific function that specifies what an application aims to accomplish.

Nonfunctional requirements — also known as quality attributes — determine how the system should work. Nonfunctional requirements include portability, disaster recovery, security, privacy, and usability.

Software testing detects and solves technical issues in the software source code and assesses the overall usability, performance, security, and compatibility of the product to ensure it meets its requirements.

The dimensions of software quality include the following characteristics:

  • Accessibility. The degree to which a diverse group of people, including individuals who require adaptive technologies such as voice recognition and screen magnifiers, can comfortably use the software.
  • CompatibilityThe suitability of the software for use in a variety of environments, such as with different OSes, devices, and browsers.
  • Efficiency. The ability of the software to perform well without wasting energy, resources, effort, time, or money.
  • Functionality. Software’s ability to carry out its specified functions.
  • Installability. The ability of the software to be installed in a specified environment.
  • Localization. The various languages, time zones, and other such features a software can function in.
  • Maintainability. How easily the software can be modified to add and improve features, fix bugs, etc.
  • Performance. How fast the software performs under a specific load.
  • Portability. The ability of the software to be easily transferred from one location to another.
  • Reliability. The software’s ability to perform a required function under specific conditions for a defined period of time without any errors.
  • Scalability. The measure of the software’s ability to increase or decrease performance in response to changes in its processing demands.
  • Security. The software’s ability to protect against unauthorized access, invasion of privacy, theft, data loss, malicious software, etc.
  • Testability. How easy it is to test the software.
  • Usability. How easy it is to use the software.

To maintain software quality once it is deployed, developers must constantly adapt it to meet new customer requirements and handle problems customers identify. This includes improving functionality, fixing bugs and adjusting software code to prevent issues. How long a product lasts on the market depends on developers’ ability to keep up with these maintenance requirements.

When it comes to performing maintenance, there are four types of changes developers can make, including:

  1. Corrective. Users often identify and report bugs that developers must fix, including coding errors and other problems that keep the software from meeting its requirements.
  2. Adaptive. Developers must regularly make changes to their software to ensure it is compatible with changing hardware and software environments, such as when a new version of the OS comes out.
  3. Perfective. These are changes that improve system functionality, such as improving the user interface or adjusting software code to enhance performance.
  4. Preventive. These changes are done to keep software from failing and include tasks such as restructuring and optimizing code.

Modern software development

DevOps is an organizational approach that brings together software development and IT operations teams. It promotes communication and collaboration between these two groups. The term also describes the use of iterative software development practices that use automation and programmable infrastructure. Get the full picture in our ultimate guide to DevOps.

Software licensing and patents

A software license is a legally binding document that restricts the use and distribution of software.

Typically, software licenses provide users with the right to one or more copies of the software without violating copyright. The license outlines the responsibilities of the parties that enter into the agreement and may place restrictions on how the software can be used.

Software licensing terms and conditions generally include fair use of the software, the limitations of liability, warranties, disclaimers, and protections if the software or its use infringes on the intellectual property rights of others.

Licenses typically are for proprietary software, which remains the property of the organization, group, or individual that created it; or for free software, where users can run, study, change and distribute the software. Open source is a type of software where the software is developed collaboratively, and the source code is freely available. With open-source software licenses, users can run, copy, share and change the software similar to free software.

Over the last two decades, software vendors have moved away from selling software licenses on a one-time basis to a software-as-a-service subscription model. Software vendors host the software in the cloud and make it available to customers, who pay a subscription fee and access the software over the internet.

Although a copyright can prevent others from copying a developer’s code, a copyright cannot stop them from developing the same software independently without copying. A patent, on the other hand, enables a developer to prevent another person from using the functional aspects of the software a developer claims in a patent, even if that other person developed the software independently.

In general, the more technical software is, the more likely it can be patented. For example, a software product could be granted a patent if it creates a new kind of database structure or enhances the overall performance and function of a computer.

What’s the difference between open-source software and free software?

Free software, open-source software, FOSS, FLOSS. Are they the same? Different? Does it matter?

Do you use “open source software” or “free software”? Although there are different rules for free software licenses (four freedoms) and open source licenses (Open Source Definition), what is not apparent from those two sets of rules is:

  1. Both terms refer to essentially the same set of licenses and software, and
  2. Each term implies different underlying values.

In other words, although the terms “free software” and “open-source software” refer to essentially the same set of licenses, they arrive at that set via different routes. (The results aren’t perfectly identical, but the differences are unlikely to matter broadly.) And, even though the licenses are the same, a person’s choice of terminology may imply a different emphasis on values.

The concept of “free software” was developed by Richard Stallman in the 1980s. The focus is on what the recipient of software is permitted to do with the software: “Roughly, it means that the users have the freedom to run, copy, distribute, study, change, and improve the software.”

“Open source” focuses on the practical consequences enabled by these licenses: surprisingly effective collaboration on software development. Free software came first. Later, it became apparent that free software was leading to remarkable collaboration dynamics. In 1997, Eric Raymond’s seminal essay “The Cathedral and the Bazaar” focused attention on the implications that free software has for software development methodology.

In “Why Open Source Misses the Point of Free Software,” Stallman explains: “The two terms describe almost the same category of software, but they stand for views based on fundamentally different values. Open source is a development methodology; free software is a social movement.”

Different values? Yes. But not mutually exclusive. Rather than aligning with one or the other, many people find varying degrees of resonance with the values underlying each term.

Clearing the confusion

Rather than aligning with one or the other, many people find varying degrees of resonance with the values underlying each term.

What if someone wants to refer to this type of software without specifying underlying values? Awkwardly, there is no broadly accepted term that refers to the licenses or the software that’s neutral about the values implied by each term. In other words, we lack a third term that refers to that same software and the same set of licenses but doesn’t take sides with respect to why that software and those licenses are significant. It may be that “open source” was initially expected to be a neutral term; however, it has developed its own implied values.The closest to a neutral term would be FOSS (free and open-source software) or FLOSS (free/libre/open-source software), which have had limited success fulfilling that value-neutral role. Perhaps the existence of two such terms (with and without “L”) may have diluted and thus diminished the ability of either to break out as a broadly used term.

This assortment of terms has contributed to the confusion. Would a neutral term be useful? Or is the attempt to separate the associated values a flawed goal? Is a neutral term inappropriate because there are significant free software projects that would not be considered open source? Or the reverse? Please share your thoughts in the comments.

History of software

The term software was not used until the late 1950s. During this time, although different types of programming software were being created, they were typically not commercially available. Consequently, users — mostly scientists and large enterprises — often had to write their own software.

The following is a brief timeline of the history of software:

  • June 21, 1948. Tom Kilburn, a computer scientist, writes the world’s first piece of software for the Manchester Baby computer at the University of Manchester in England.
  • The early 1950s. General Motors creates the first OS, for the IBM 701 Electronic Data Processing Machine. It is called General Motors Operating System, or GM OS.
  • 1958. Statistician John Tukey coins the word software in an article about computer programming.
  • The late 1960s. Floppy disks are introduced and are used in the 1980s and 1990s to distribute software.
  • Nov. 3, 1971. AT&T releases the first edition of the Unix OS.
  • 1977. Apple releases the Apple II and consumer software takes off.
  • 1979. VisiCorp releases VisiCalc for the Apple II, the first spreadsheet software for personal computers.
  • 1981. Microsoft releases MS-DOS, the OS on which many of the early IBM computers ran. IBM begins selling software, and commercial software becomes available to the average consumer.
  • The 1980s. Hard drives become standard on PCs, and manufacturers start bundling software in computers.
  • 1983. The free software movement is launched with Richard Stallman’s GNU (GNU is not Unix) Linux project to create a Unix-like OS with source code that can be freely copied, modified, and distributed.
  • 1984. Mac OS is released to run Apple’s Macintosh line.
  • The mid-1980s. Key software applications, including AutoDesk AutoCAD, Microsoft Word, and Microsoft Excel, are released.
  • 1985. Microsoft Windows 1.0 is released.
  • 1989. CD-ROMs become standard and hold much more data than floppy disks. Large software programs can be distributed quickly, easily, and relatively inexpensively.
  • 1991. The Linux kernel, the basis for the open-source Linux OS, is released.
  • 1997. DVDs are introduced and able to hold more data than CDs, making it possible to put bundles of programs, such as the Microsoft Office Suite, onto one disk.
  • 1999. Salesforce.com uses cloud computing to pioneer software delivery over the internet.
  • 2000. The term software as a service (SaaS) comes into vogue.
  • 2007. iPhone is launched and mobile applications begin to take hold.
  • 2010 to the present. DVDs are becoming obsolete as users buy and download software from the internet and the cloud. Vendors move to subscription-based models and SaaS has become common.

References

Dr. Harun
Show full profile Dr. Harun

Dr. Md. Harun Ar Rashid, MPH, MD, PhD, is a highly respected medical specialist celebrated for his exceptional clinical expertise and unwavering commitment to patient care. With advanced qualifications including MPH, MD, and PhD, he integrates cutting-edge research with a compassionate approach to medicine, ensuring that every patient receives personalized and effective treatment. His extensive training and hands-on experience enable him to diagnose complex conditions accurately and develop innovative treatment strategies tailored to individual needs. In addition to his clinical practice, Dr. Harun Ar Rashid is dedicated to medical education and research, writing and inventory creative thinking, innovative idea, critical care managementing make in his community to outreach, often participating in initiatives that promote health awareness and advance medical knowledge. His career is a testament to the high standards represented by his credentials, and he continues to contribute significantly to his field, driving improvements in both patient outcomes and healthcare practices.

Register New Account