Definition of a computer software!

Definition of a computer software! A software or an application is a set of programs, which allows a computer or a computer system to perform a particular task or function (for example customer relationship management software, production software, accounting software, etc. Loan management software).

In general, in a computer system, a distinction is made between the hardware part (the computer and its peripherals) and the software part, immaterial (the programs “written” on the hard disk).

Definition of a computer software! Software is an intangible good, but above all, it is a non-rival good, that is to say, that it does not wear out, it is a good whose consumption by a given individual does not prevent ‘other consumers enjoy it simultaneously.

The term software is often used to refer to a computer program, and vice versa, although software can be made up of a single program or a series of programs.

This last case is all the more frequent as the reduced computing capacity of the computer requires a segmentation of the tasks into several separate modules; however, the enormous capacities of current microcomputers with regard to typical office automation applications have made it possible to produce monolithic applications.

Usually, programs come with a set of data to make them work (e.g. a game will come with lots of pictures, animations, sounds, etc.).

To function, the software requires the use of a computer (microcomputer, computing station, mainframe, supercomputer, etc.) on which there is originally an “engine software” (operating system) that accepts the “software application”.


The right to use software is generally regulated by a user license and copyright.

The most famous license families are:

  • licenses around the free software ( free software in English eg: Project GNU);
  • the freeware( freeware eg; icq, .com);
  • the shareware (shareware eg: COM);
  • other types of licenses, such as single-user or multi-user licenses;
  • Finally, some software is internal to companies and their distribution is prohibited.

Various software presentations

Programs can take different forms:

  • Executables: they can be executed directly by the computer;
  • generally, they can only be executed on a particular type of machine and operating system (example: Microsoft Windows a compatible PC);
  • However, there is executable (in bytecode) executable on a variety of platforms (such as those of the Java language); they are in fact aimed at execution for a virtual machine, which is itself software available on the various platforms.
  • source files: this is generally a text respecting the writing rules of a particular programming language; as an indication, the order of magnitude of the size of software such as Microsoft Word are one million lines of code;
  • For a compiled language: they must be translated into an executable by a compiler;
  • For an interpreter: they are executed directly on reading (for example Perl or PHP scripts).
  • Libraries: this is a set of functions that, by themselves, are not directly executable and do not provide the functionality to the user, but provide services to other programs (for example, on will find libraries that allow a program to load animations or play sounds); in particular, there are dynamic libraries ( Windowsill or so GNU / Linux).

The data associated with the software can also be of different formats: classic files, databases (relational, hierarchical, etc.). Software data can be broken down into a large number of files, or all of the software can be combined into a single file; for example, in Windows, the definition of the user interface, the drawing of icons, etc., are often integrated into the same file as the main application.

Software development

Definition of a computer software! Software, depending on its size, can be developed by a single person, a small team, or a set of coordinated teams. The development of large software by large teams poses major coordination problems, due to the large amount of information to be communicated between the stakeholders: documentation, meetings. For these reasons, software development in a professional context often follows strict rules allowing group work and code maintenance; in fact, often the people who need to make subsequent modifications to the code are no longer the people who developed it.

A new development model is, however tending to spread: the bazaar (model used for the design of GNU / Linux)

Software in beta version (or beta-test) is unfinished software, for which a series of tests is carried out until relative stability is reached. People who look for the latest flaws in these versions of the software are called beta testers.


Design errors in software can cause incorrect behavior, often referred to as bugs. The severity of these can range from very minor (e.g., the slightly incorrect appearance of a GUI element), to catastrophic events (explosion of the Ariane rocket flight 501, incorrect irradiation of patients by a machine. Processing …) through more or less loss of data, and, rarely, by the deterioration of the equipment.

It is difficult, for fundamental reasons, to produce bug-free software; however, there are mechanisms by which you can limit the number of bugs or even remove them. Let us quote on the one hand the precepts of organization of the programming teams and their methodology, on the other hand, the technologies for finding bugs in the software. Computer science research has developed a field of study, formal verification, the objective of which is to certify the quality of software and guarantee its reliability. Overall, obtaining complex, low-buggy software is costly in manpower and time. The earlier anomalies are detected in the development of the software, the less expensive they are to correct.

Open source code

Definition of a computer software! The software is classified according to the availability of the source code and the license that governs the distribution of the program:

  • Open code: the whole world can read the source code. This term is not synonymous with free software;
  • closed code: the source code is only available to a minority of people;
  • Free software: anyone can study, copy, modify, and distribute modified versions of the software (definition of the free software foundation). Most free software is protected by a user license; However, this does not mean that the software is free.
  • Proprietary software: at least one of these rights is not fulfilled for users. Most of the time, acquiring a user license requires the payment of a certain sum to the creators of the software;
  • Commercial software: software intended for sale, it can be free or proprietary.




Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium


An analysis of Caduceus decentralized edge rendering technology — a breakdown of its native tools…

How to learn serverless development in 2020

Refactoring App Features into Modules in Ruby

A Software Degree I never Used (But will change that)

What is Bitwise Shifting?

Creating an Improved Email Development Workflow

Uncovering the hidden value

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Aadil Shaikh

Aadil Shaikh

More from Medium

Catch the scratch just in 30 minutes!

My interview with Odinachi David on LinkedIn - Mobile engineer.

Cubbit Software Review

Upgrade all software with one click with Choco and Total Commander