Computer Program Software

By|Last updated: January 10, 2018

Computer software, or simply software, is that part of a computer system that consists of data or computer instructions, in contrast to the physical hardware from which the system is built. In computer science and software engineering, computer software is all information processed by computer systems, 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.

The majority of software is written in high-level programming languages that are easier and more efficient for programmers, meaning closer to a natural language. High-level languages are translated into machine language using a compiler or an interpreter or a combination of the two. Software may also be written in a low-level assembly language, essentially, a vaguely mnemonic representation of a machine language using a natural language alphabet, which is translated into machine language using an assembler.

Freeware

Freeware is software that is available for use at no monetary cost. In other words, while freeware may be used without payment it is most often proprietary software, as usually modification, re-distribution or reverse-engineering without the author’s permission is prohibited. Two historic examples of freeware include Skype and Adobe Acrobat Reader. There is no agreed set of rights or a license or an EULA which would define “freeware” unambiguously; every Freeware publisher defines their own rules for their Freeware. For instance, redistribution of Freeware by third-parties is often permitted but there is a significant portion of Freeware which prohibits redistribution.

Freeware, although itself free of charge, may be intended to benefit its producer, e.g. by encouraging sales of a more capable version (“Freemium” or Shareware business model). The source code of freeware is typically not available, unlike free and open source software which are also often distributed free of charge.

Open-source Software

Open-source software (OSS) is computer software with its source code made available with a license in which the copyright holder provides the rights to study, change, and distribute the software to anyone and for any purpose.[1] Open-source software may be developed in a collaborative public manner. According to scientists who studied it, open-source software is a prominent example of open collaboration.

Shareware

Shareware is a type of proprietary software which is initially provided free of charge to users, who are allowed and encouraged to make and share copies of the program. Shareware is often offered as a download from an Internet website or as a compact disc included with a magazine. Shareware is available on all major personal computer platforms. The term shareware is used in contrast to open-source software, in which the source code is available for anyone to inspect and alter; and freeware, which is software distributed at no cost to the user but without source code being made available.

Programming tool

A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object. The ability to use a variety of tools productively is one hallmark of a skilled software engineer.

Architecture

Users often see things differently from programmers. People who use modern general purpose computers (as opposed to embedded systems, analog computers and supercomputers) usually see three layers of software performing a variety of tasks: platform, application, and user software.

  • Platform software: The Platform includes the firmware, device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment).
  • Application software: Application software or Applications are what most people think of when they think of software. Typical examples include office suites and video games.
  • User-written software: End-user development tailors systems to meet users’ specific needs. User software include spreadsheet templates and word processor templates.

Quality and reliability

Software quality is very important, especially for commercial and system software like Microsoft Office, Microsoft Windows and Linux. If software is faulty (buggy), it can delete a person’s work, crash the computer and do other unexpected things. Faults and errors are called “bugs” which are often discovered during alpha and beta testing. Software is often also a victim to what is known as software aging, the progressive performance degradation resulting from a combination of unseen bugs.