Software is a collection of data, programmes, or instructions that run machines and carry out particular functions. It is the antithesis of hardware, which speaks about a computer's external components. A device's applications, scripts, and programmes are collectively referred to as software. It may be viewed as the computer's variable component, with hardware serving as its fixed component.
System software and application software are the two primary types of software. Software that completes tasks or satisfies a particular demand is called an application. The purpose of system software is to manage a computer's hardware and offer an operating system for programmes to operate on.
Additional software categories include middleware, which stands between system software and applications, driver software, which manages computer peripherals and devices, and programming software, which offers the programming tools required by software developers.
Early software was supplied with the hardware it operated on and was created specifically for a certain machine. Software started to be marketed on floppy discs in the 1980s, and then on CDs and DVDs. The majority of software is now bought and downloaded straight from the internet. Websites for vendors or application service providers often contain software.
Examples and types of software
The following are the most popular kinds of software among the many categories:
- Application software. Application software, the most popular kind of software, is a computer programme package that works with another application or for the user in certain situations. Applications can be standalone or comprise a collection of programmes that execute the application on the user's behalf. Office suites, graphical software, databases and database management systems, web browsers, word processors, software development tools, picture editors, and communication platforms are a few examples of contemporary applications.
- System software. These software packages are made to function with the hardware and application software on a computer. The actions and features of the hardware and software are coordinated by the system software. It also manages how the computer hardware functions and offers a platform or environment in which all other applications may operate. System software is best shown by the operating system (OS), which controls all other computer programmes. The firmware, computer language interpreters, and system utilities are other instances of system software.
- Driver software. This software, often referred to as device drivers, is sometimes regarded as a subset of system software. Device drivers provide linked peripherals and devices the control they need to carry out their intended functions on a computer. Device drivers are necessary for the operation of any connected device on a computer. Software that is included with any nonstandard hardware, such as unique gaming controllers, and software that makes standard gear, such USB storage devices, keyboards, headphones, and printers, possible are two examples.
- Middleware. Software that acts as a mediator between two distinct types of application software or between an application and the system is referred to as middleware. For instance, middleware allows Word and Excel to communicate with Microsoft Windows. Additionally, it may be used to transmit a remote work request from an application running on one type of OS-equipped machine to another application running on a different OS. It also makes older apps compatible with more recent ones.
- Programming software. Programming software is used by computer programmers to develop code. Programmers may create, write, test, and debug other software programmes with the use of programming tools and software. Assemblers, compilers, debuggers, and interpreters are a few examples of software used in programming.
How does software work?
Application software
System software
Design and implementation
- Architectural design. This is the basic design, which uses architectural design tools to determine the system's general structure, key components, and interrelationships.
- High-level design. This second design layer focuses on how the system may be built as modules backed by a software stack, including all of its components. The connections between data flow and the many system modules and operations are described in a high-level design.
- Detailed design. All of the implementation specifics required for the chosen architecture are the main emphasis of this third design layer.
How to keep the calibre of software high
- Accessibility: The degree to which the programme is easily used by a wide range of users, including those who need assistive devices like voice recognition and screen magnifiers.
- Compatibility. The software's compatibility across several platforms, including various operating systems, gadgets, and web browsers.
- Efficiency. The software's capacity to function properly without squandering money, time, energy, or resources.
- Functionality. The functionality of software to do its designated tasks. Installability. The program's installation suitability in a certain setting.
- Localization. The several languages, time zones, and other characteristics that a software may operate in.
- Maintainability. The degree of ease with which the programme may be altered to include new features, address bugs, etc.
- Performance. How quickly the programme operates when subjected to a certain load.
- Portability. The software's portability, or its ability to move effortlessly across locations.
- Reliability is the capacity of the programme to carry out a necessary task error-free for a predetermined amount of time under particular circumstances.
- Scalability. the degree to which the programme can adapt its performance to alter as its processing requirements change.
- Security. The capacity of the programme to fend off illegal access, privacy violations, theft, data loss, harmful software, etc.
- Testability. How simple it is to run software tests.
- Usability. How user-friendly the programme is.
Software licensing and patents
History of software
- June 21, 1948. At the University of Manchester in England, computer scientist Tom Kilburn creates the first programme ever written for the Manchester Baby computer.
- the early 1950s. The first operating system is developed by General Motors for the IBM 701 electronic data processing machine. The operating system for general motors is known as GM OS.
- 1958. The term "software" is first used by statistician John Tukey in a piece on computer programming.
- late 1960s. In the 1980s and 1990s, floppy discs are introduced and utilised for software distribution.
- November 3, 1971. The first Unix OS edition is released by AT&T.
- 1977. Following the advent of the Apple II, demand for consumer software soars.
- 1979. VisiCorp releases VisiCalc for the Apple II, the first spreadsheet software for personal computers.
- Microsoft introduces MS-DOS in 1981. This operating system was used by many of the first IBM computers. The typical customer may now purchase commercial software when IBM starts selling it.
- 1980s. PC hard drives become the norm, and computer makers begin including software with their units.
- With Richard Stallman's GNU (GNU is not Unix) Linux project, which aims to provide a Unix-like operating system with freely distributable, copyable, and editable source code, the free software movement is established in 1983.
- Mac OS is launched in 1984 to power Apple's Macintosh computer range.
- the middle of the 1980s. Important software programmes are released, such as Microsoft Word, Microsoft Excel, and AutoDesk AutoCAD.
- 1985 saw the introduction of Microsoft Windows 1.0.
- 1989: CD-ROMs replace floppy discs as the industry standard and can store far more data. Large software packages may be deployed in a rapid, simple, and reasonably priced manner.
- The open source Linux operating system's foundation, the Linux kernel, is published in 1991.
- 1997. With the introduction of DVDs, which had a larger capacity than CDs, software packages like the Microsoft Office Suite could now be stored on a single disc.
- Salesforce.com pioneered online software distribution in 1999 by utilising cloud computing.
- In the year 2000, the phrase "software as a service" (SaaS) became popular.
- 2007 saw the release of the iPhone and the rise in popularity of mobile apps.
- from 2010 until the present. As more people purchase and download software from the internet and cloud, DVDs are becoming less and less relevant. Subscription-based approaches are being adopted by vendors, and SaaS is now widespread.