Computer software

From Canonica AI

Introduction

Computer software, also known as software, is a collection of data or computer instructions that tell the 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, programs and data.

History

The first theory about software, prior to the creation of computers as we know them today, was proposed by Turing in his 1935 essay On Computable Numbers, with an Application to the Entscheidungsproblem. This eventually led to the creation of the twin academic fields of computer science and software engineering, which both study software and its creation.

An early computer system with visible hardware components.
An early computer system with visible hardware components.

Types of Software

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.

System Software

System software includes operating systems, which govern computing resources. Today large applications such as Microsoft Word and Google Chrome are classified under system software, as they are large programs that interact directly with the system.

Programming Software

Programming software includes tools in the form of programs or applications that software developers use to create, debug, maintain, or otherwise support other programs and applications.

Application Software

Application software includes end-user applications of computers such as word processors or video games, and ERP software for groups of users.

Development

Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process.

Software Engineering

Software engineering is the study of designing, implementing, and modifying software in order to ensure it is of high quality, affordable, maintainable, and fast to build. It is a systematic approach to software design, involving the application of engineering practices to software.

Software Industry

The software industry includes businesses for development, maintenance and publication of software that are using different business models, mainly either "license/maintenance based" (on-premises) or "Cloud based" (such as SaaS, PaaS, IaaS, MaaS, AaaS, etc.).

Open Source and Free Software

Both open-source software and free software are types of software that are designed to be publicly accessible and they fit into the broader category of FOSS (Free and Open Source Software).

See Also