Software is a collection of instructions and data that tell a computer how to work. This is in contrast to physical hardware, from which the system is built and actually performs the work. In computer science and software engineering, computer software is all information processed by computer systems, including programs and data.
Computer software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be realistically used on its own.
Software can be grouped into a few broad categories.
Based on the goal, computer software can be divided into:
System software
Application software
Malicious software or malware
Software is typically stored on an long-term memory device, such as a hard drive or magnetic diskette. When the program is in use, the computer reads it from the storage device and temporarily places the instructions in random access memory (RAM). The process of storing and then performing the instructions is called “running,” or “executing,” a program. By contrast, software programs and procedures that are permanently stored in a computer’s memory using a read-only (ROM) technology are called firmware, or “hard software.”
System software is software designed to provide a platform for other software.
Moreover, System software controls a computer’s internal functioning, chiefly through an operating system, and also controls such peripherals as monitors, printers, and storage devices.
The Utility Software is system software that helps to maintain the proper and smooth functioning of a Computer System. It assists the Operating System to manage, organize, maintain, and optimize the functioning of the computer system.
Utility Software performs certain tasks like virus detection, installation, and uninstallation, data backup, deletion of unwanted files, etc. Some examples are antivirus software, file management tools, compression tools, disk management tools, etc.
1. Antivirus
A virus is a malicious software that enters the system along with a host program. Moreover, it multiplies with time and makes several copies which in turn slows down and corrupts the system.
An antivirus is a utility software that helps to keep the computer virus-free. Moreover, it notifies when any malicious file is detected and removes such files. In addition, it scans any new device attached to the computer and discards any virus if there. Moreover, it also scans the system from time to time for any threats and disposes of them. Examples of antivirus are McAfee Antivirus, Quickheal Antivirus, Windows Defender, etc.
2. File Management System
These utility software are used to manage files of the computer system. Since files are an important part of the system as all the data is stored in the files. Therefore, this utility software help to browse, search, arrange, find information, and quickly preview the files of the system.
Windows Explorer is a default file management tool present in the system. Some other examples of file management tools are Google Desktop, Double Commander, Directory Opus, etc.
3. Compression Tools
An important part of a computer is storage space, it is very important to maintain this storage. Therefore, we use certain utility software to compress big files and decrease their size, these are compression tools.The format of the files changes while compressing and we cannot access or edit them directly. In addition, we can easily decompress the file and get the original file back. Examples of compression tools are WinZip, WinRAR, WinAce, PeaZip, 7-Zip, etc.
4. Disk Management Tools
These utility software are used to manage data on disks. Moreover, they perform functions like partitioning devices, manage drives, etc.Examples of disk management tools are MiniTool Partition Wizard, Paragon Partition Manager, etc.
5. Disk Cleanup Tool
This utility software helps to free up the disk space. In addition, the files which are no longer in use are removed from the disk. Examples are Razer Cortex, Piriform CCleaner, etc.
6. Disk Defragmenter
This utility software helps to reduce the fragmentation and hence, reduces the access speed. Defragmenting refers to rearranging files and storing them in contiguous memory locations. Moreover, saves time in reading from files and writing files to disk. Examples of disk defragmenters are Perfect disk, Deflaggler, etc.
7. Backup Utility
This utility software helps to back up the files, folders, databases, or complete disks. Moreover, backup refers to duplicating the disk information so that the data can be restored if any data loss happens.
The advantages are as follows:
Enhances performance.
Manages space.
Manages files and data.
Helps to customize interface and desktop.
Helps to remove useless files.
Keep the system safe and secure.
Helps to recover files after a loss.
In conclusion, we can say that it makes the working of a computer system efficient.
An operating system is system software that controls the working of computer hardware and software. Moreover, it acts as a common connection between the computer hardware and software. In other words, we can also call it an interface between the hardware and the users. In addition to this, it keeps the records of all other software.
Examples of operating systems are Microsoft Windows, Android, Linux, Apple iOS, Apple macOS.
Single-user operating systems only allow for a general user and do not provide the option to customise the user interface for different users. They are often found in household appliances.
Network operating systems have additional functionality, including:
sending requests to a server when users log in with their username and password
separating user accounts and ensuring that users cannot access each other's files
providing access to network storage and shared resources such as
Following are some of important functions of an operating System.
Memory Management
Processor Management
Resource Management
Print Spooling
Security
The operating system allocates the required amount of memory (RAM) to one or more applications. When the application no longer requires the memory space, the operating system makes the space available for other applications to use.
The operating system also handles the creation of virtual memory.
See page 60 for more information about virtual memory.
In multiprogramming environment, the OS decides which process gets the processor when and for how much time. This function is called process scheduling. An Operating System does the following activities for processor management −
Keeps tracks of processor and status of process. The program responsible for this task is known as traffic controller.
Allocates the processor (CPU) to a process.
De-allocates processor when a process is no longer required.
System resources include internal components, such as the processor and graphics card, and external devices, such as printers. As well as allocating memory, the operating system ensures that system resources are made available to applications when they are required.
If a system resource is already being used by another application, then the operating system may say that the required resource is in use and place the additional request in a queue. For some resources, such as printers, the operating system can tell the user when the resource becomes available.
A Figure 2.7 Information about the use of memory and resources is provided by utility software
During large print jobs, the computer will have the pages ready for the printer faster than the printer can produce them. The operating system keeps each page in a queue ready for printing. This process is called print spooling.
Print Spooling:
Print spooling, short for "print job spooling," is a technique employed by computer systems to enhance the printing process. It allows multiple users to send print jobs to a printer without having to wait for each job to be completed before sending the next one. Instead, the print spooling system organizes and manages the print jobs in a queue, ensuring that they are processed in an orderly and efficient manner. Here's how print spooling works:
1. User Initiates a Print Job: When a user initiates a print job by selecting the print option from a software application (e.g., word processing software), the print request is sent to the print spooler.
2. Temporary Storage: The print spooler temporarily stores the print job in a designated location on the computer's storage (e.g., hard drive or memory).
3. Print Queue: The print spooler places the print job in a queue, which is essentially a list of print jobs waiting to be processed. The jobs in the queue are typically processed on a first-come, first-served basis.
4. Printing Process: The print spooler manages the order in which print jobs are sent to the printer. It sends one print job at a time to the printer for processing. As each print job is printed, it is removed from the queue.
5. Parallel Processing: While a print job is being printed, users can continue to send additional print jobs to the queue. This means that multiple print jobs can be in the queue simultaneously, and the printer processes them one after the other without user intervention.
6. Error Handling: If a print job encounters an issue (e.g., a paper jam or printer out of ink), the print spooler can hold the problematic job in the queue until the issue is resolved, allowing other print jobs to continue.
Software applications (apps) allow users to produce a digital product, such as a presentation or image, or carry out specific tasks that are not related to the operating system. Apps are usually downloaded from servers on the internet. Some devices, like smartphones and tablets, use operating systems that provide access to app stores. Some of these only make apps available to users after the store has checked the quality of the app and has ensured that the app does not include code that will harm a user's device or data. Apps can also be installed from storage media like DVDs.
You will learn more about online software in Unit 4 Online goods and services (178-179).
Picking up the right application software for personal or business use can improve function and efficiency. Understanding the different types of application software will help you save cost, time, and resources, enhance productivity, and improve decision-making.
Some of the commonly used application software are:
Office Productivity Software
Word processors
Desktop Publishing DTP
Database software
Spreadsheet software
Web authoring
Image Editing
Graphics software
Photo editors
Sound editing
Presentation software
Control applications
Communication software
Web browsers
Social media
SMS
MMS
Instant messaging
Free or open-source
Proprietary Software
While the list of application software is more exhaustive than this, we have tried to detail a few of the important types of application software below.
Office productivity software is any application that can carry out work-related tasks. They are often available as an application sui
Word processing software lets users create documents that mostly include words, but also some images. They can also include tables, hyperlinks, equations, simple drawings and shapes and charts. An example of word processing software is Writer from the LibreOffice application suite.
Word processors are a good choice of application for creating:
letters
reports
essays
books (for example, this book was written using word processing software).
Some word processing applications allow people to work together on a document. Comments can be added to the text so that others can understand the writer's intention and give feedback. The software can also track any changes made to the document, giving others the option to accept or reject those changes.
Word processing applications allow users to change the font and provide different layout views to allow users to position text and images on the page. They usually come with spelling and grammar checking tools that identify errors in the text as the user types.
DTP software has many similar features to those in word processing software. The main difference is the way in which the software allows users to work with complicated page layouts. An example of DTP software is Adobe® InDesign®2
You will learn more about spreadsheets in Unit 5 Applying Information and Communication Technology (page 185) and Unit 6 Software skills (page 276).
Spreadsheet application software is used to perform calculations. In this software, data is stored in a table format. The intersecting area, called cells, are separated to define fields such as text, date, time, and number. It allows the users to provide formulas and functions to perform calculations. Microsoft Excel and Google Sheets are examples of spreadsheet software.
An example of spreadsheet software is Microsoft® Excel®.
Presentation software allows users to create engaging multimedia content, including images, text, animation and video. This content can be placed on slides or pathways that are used to illustrate and support the spoken content of a talk given to an audience. An example of presentation software is Prezi. Some applications allow users to practise timings and add narration that automatically plays back on the appropriate slides. These slides can be set to advance automatically after a set period of time, or on command from the presenter. Notes can be added to the presentation to remind and prompt the presenter to speak about specific points during the presentation.
You will learn more about databases in Unit 6 Software skills (pages 307-333).
7. Database software
Database management systems (DBMS) are used to enter, edit and search data. Some systems can also produce reports that dynamically display real-time changes to the data as it updates.
DBMS software features include:
data entry forms so that users can input data
query editors so that users can select all data that meets certain criteria
report builders so that users can display data in a more readable format.
An example of DBMS software is Oracle® MySQL.
Communications software is the loose category of systems and apps that allows users to exchange files and text, audio, and video messages via the cloud or local network from various devices. The most common tools are email, chat, and messaging apps.
Social media refers to the means of interactions among people in which they create, share, and/or exchange information and ideas in virtual communities and networks. The Office of Communications and Marketing manages the main Facebook, Twitter, Instagram, LinkedIn and YouTube accounts.
(type of communication software)
Web browsers are application software used to browse the internet for locating and retrieving data across the web. The most popular web browsers are Google Chrome and Internet Explorer. Other examples of browsers include Firefox, MS Edge, Safari, etc.
You will learn more about web browsers on page 55 and in Unit 2 Connectivity (page 87).
Web authoring software lets users create web pages that include text and images. The pages are output as Hypertext Markup Language (HTML). HTML is read by web browser software such as Google® ChromeTM3, Microsoft® Edge or Mozilla® Firefox®4. Web browsers translate HTML into pages that people can see and read. Web pages can be linked together to create a website for people to view on an intra net or on a web server on the internet.
Although some people prefer to create or customise web pages by writing their own HTML, some applications will allow users to produce complex websites with little or no experience of HTML coding. These applications are sometimes called `What You See Is What You Get' (WYSIWYG) editors, because the published page will look very similar to the page that the user edits in the web authoring application. An example of web authoring software is Adobe® Dreamweaver®5.
Control applications are used to make something happen in the physical environment. This type of software is often used to automate the movement of control devices or actuators, such as motors. See page 37 for more information about actuators.
♦ Figure 2.16 Astronauts on the International Space Station use control software to move a robotic arm into position in order to capture a supply capsule
Control software takes input from one or more sensor(s), makes a decision based on the input value and then outputs something, such as a command, as a result.
Simulation application software is used in the fields of military engineering, practical education in certain industries, machinery testing, industrial training, video games, etc. It is used where work on the actual system or physical environment can be hazardous. It is a program that lets you study or observe an operation, or phenomenon through simulation without actually doing that operation. The best examples of simulation are in the field of robotics, flight systems, and weather forecast, etc. Augmented Reality and Virtual Reality technologies are also used to develop application software that support simulations.
Image editing applications let users create and change bitmap images, such as digital photographs, or vector graphics, such as drawings or logos.
GRAPHICS EDITORS Graphics editing applications allow users to create or edit vector graphics. An example of graphics editing software is Serif® Affinity Designer6. Features of graphics editors include:
■ vectorising images (that is, converting or tracing bitmap graphics to vector graphics)
■ layers (that is, having the ability to place some graphics on top of others)
■ adding text
■ adding or drawing shapes and lines
■ resizing, aligning or moving shapes and lines
■ altering the colour of shapes, lines and fill areas.
PHOTO EDITORS These allow users to edit and enhance digital photographs and images. An example of photo editing software is GNU Image Manipulation Program (GIMP). Features of photo editors include:
■ adjusting brightness and contrast
■ resizing the image
■ altering sharpness and blurring
■ applying filters and effects such as distortion
■ red-eye removal
■ cropping.
Graphics application software allows you to edit or make changes in visual data or images. It comprises illustration and picture editor software. Adobe Photoshop and PaintShop Pro are a few examples of graphics software.
Sound editing software allows users to edit audio files or to join together different audio files in order to create multitrack music or soundtracks for video. An example of sound editing software is Audacity®. Features of this software include:
■ cut and join audio clips
■ mute and solo some audio tracks
■ alter volume levels for individual tracks
■ change tempo
■ frequency equalisation (changing the levels of high and low pitch frequencies)
■ add effects like reverberation
■ apply audio processing: • reverse • noise reduction • normalisation • fade the volume in, so that it gets louder, or out, so that it gets quieter.
Multimedia application software lets you create or record images, and create audio or video files. This software is extensively used in animation, graphics, image, and video editing. Popular examples are VLC media player and Windows media player.
What Is a Software License?
A software license is a legally binding agreement made between the owner or developer of a software program and the user, outlining how they can use and distribute the product. In this document, the responsibilities of each party are clearly defined, preventing and protecting the developer from infringement of copyright law. Typically, the software license addresses things like:
If the user can view the underlying source code
If the user can copy, alter, or redistribute the program
Where the program can be installed and how frequently
Prevents customers from abusing your software. Without getting a signed licensing agreement, there's nothing stopping your customer from attempting to copy your software for their own benefit. Usually, customers that try to copy software do it so that they can install it on multiple computers, saving them money, but they could also try to sell it for a profit. Either way, this could cost you potential income.
Allows you to license the software without selling it. You can let customers pay for a license of your software while maintaining all rights to it, allowing you to license it out with restrictions placed on its use. This essentially gives you more control over how your software is both used and distributed and gives you the chance to make more money over time.
Gives you the chance to disclaim warranties. (ضمانات إخلاء المسؤولية)
Customers have certain expectations any time they purchase a product, and your software is no different. By incorporating a disclaimer of warranties in your license agreement, you can require the user to accept the software as available or as-is, putting the risk on them.
Limits your liability. (مسؤولية) Limiting your liability is extremely important because it helps protect your company against potential lawsuits.
Allows you to freely revoke licenses. (سحب التراخيص بحرية ) Including this section of the agreement gives you the freedom to revoke or suspend licenses at any time, and for any reason, helping you keep complete control over the software.
Source Code
Application software can also be classified based on their shareability and availability. Some such categories are:
1. Freeware
As the very name indicates, it is available free of cost. You can download freeware application software from the Internet and use it without any fee. However, this software does not allow you to modify it or charge a fee for distributing it. Adobe PDF, Mozilla Firefox, and Google Chrome are good examples of this type of application software.
2. Shareware
This is distributed freely to the users on a trial basis, usually with a limited time offer. The users are expected to pay if they want to continue to use this application software. Some examples of shareware are WinZip, SnapTouch, and Adobe Acrobat.
3. Open source
This type of application software is available along with the source code that allows you to modify the software, and even add features to the software. These could either be free or paid. Moodle and Apache Web Server are examples of open-source application software.
4. Closed source
Most of the application software packages that you use belong to this category. These are usually chargeable and have intellectual property rights or patents over the source code. It usually comes with restricted use. Examples include Microsoft Windows, Adobe Flash Player, WinRAR, mac OS, etc.
Here is a nice video to give an explanation of something done with good amount of allocated time vs something that is rushed and cheap.
As many factors collectively influence the development of application software, it is difficult to quote a precise figure. However, our experts can get back to you with a ballpark estimate for your application software depending on the following details:
Functionality, scope, features, and purpose of the application software
Platforms and devices supported
Third-party integrations required
Hardware components and compatibility
Complexity of the application
Maintenance and support requirements
A software update or patch is a free download for an application, operating system, or software suite that provides fixes for features that aren't working as intended or adds minor software enhancements and compatibility.
Software updates are released to address security issues when they occur, address minor bugs discovered in the software, improve the operation of hardware or peripherals, and add support for new models of equipment. These small, incremental updates improve the operation of your software.
A common operating system update is a security update, which is issued to protect your computer against vulnerabilities that might be exploited by hackers and viruses. It is wise to install security updates when they are released to ensure your system is as protected as possible against constantly changing threats.
Although they are typically small and free, software updates play important roles often related to solving or preventing a problem. For example, software updates:
Protect against new-found security risks.
Introduce new features in your software.
Improve battery depletion rate or performance speed.
Extend your equipment's usable life by allowing its maximum productivity.
Fix bugs in the software and improve functionality.
Software Updates Aren't Limited to Computers
The operating system and apps that run on your phone and tablet, the smartwatch on your wrist, and any peripherals that live stream video to your TV use software that occasionally needs to be updated. The majority of software updates are applied over the internet, so an internet connection is often a requirement.
If you subscribe to an internet application or a suite of apps, such as Microsoft 365, software updates may take place automatically. You may not realize the software has been updated. This is because the internet applications may not need to place a software update on your computer or device to work properly. In other cases, such as with Adobe Creative Cloud, you are notified when an update is available for the applications you previously downloaded, and you choose when to apply the update.
Understanding Software Version Numbers
All software applications have version numbers associated with them. This number helps track iterations of the software, including updates and upgrades. It is represented as a series of numbers separated by periods.
The leftmost number in a software's version number represents major upgrades to the software. For example, going from version 1.0 to 2.0 in software is a major upgrade. These upgrades may also have version names associated with them such as Windows 10 or macOS Catalina.
The rightmost number in a software's version number generally represents minor updates. Going from version 3.0.2 to 3.0.3 is usually a small change and is usually delivered as a free update.
Software Upgrades
A software upgrade is a new version of the software that offers a significant change or major improvement over the current version. In many cases, a software upgrade requires the purchase of the newest version of the software, sometimes at a discounted price if you own an older version of the software.