Software

30-01-2015, 13:27Print
Software is made of slightly changeable components, complement to‚ hardware‘ for the physical components) is a collective term for programmes and the accompanying data. As for example the software documentation can contain as accessories, in addition, components you in the digital or printed form of a manual.

Software determines what does a software-controled device and how it does this (in possibly comparably with a manuscript). Software executes. The hardware (the device) (it processes) and puts into action them thus. Software is the totality of information which one must add to the hardware, so that a software-controled device becomes usable for a defined spectrum of the problems.

By the software-controled working principle a stiff hardware can work individually. Nowadays it is applied not only in classical computers, but also in many embedded systems, as for example in washing machines, mobile phones, navigation systems and modern television sets.

The concept software is not uniform till this day and also not is defined unambiguously. This decreases among other things to the fact that „within the software engineering a uniform respectable, consistent and systematic formation of concepts becomes by a high innovation speed and practise nearness hindered“. Hence, :22 It there exist the different definitions which differ according to author and context often even in details.

The name software is covered generally usage mostly only to programmes, but not to other data. However, Besides can be also added the source program, other data or the documentation according to definition.

To sum up, for the technical definition the concept software can be understood basically as the „totality of information which one must add to the hardware, so that the so resulted computer system becomes usable for a defined spectrum of the problems“.

Moreover, becomes‚ software‘ also as a type concept for different kinds of programmes uses (graphics software, application package, standard software, security software and v. a.).

Etymology

The printout "software" is a coined word which was used by John W. Tukey in 1958 in the American Mathematical Monthly as a counterpart of the substantially older word "Hardware" the first time. Besides, hardware all physical components of a computer designates. In this sense all electronically saved data could be understood by software – as the counterpart of the hardware – basically. Nevertheless, as a definition this perception is not enough.

The actual ISO/IEC norm 27465 replaced the DIN-standard 44300 and contains following definitions for software:

Software is a programme or an amount from programmes which serve to run a computer.
Software are programmes as well as the accompanying documentation.
Software are programmes and if necessary the accompanying documentation and other data which are necessary to the company of a computer.
Which of these definitions applies, depends on the respective context and also here the crossings are fluent.

Software as a programme

In the software engineering software exists of „computer programs in every manifestation, from the source program up to the directly compiled machine code“. computer programs often exist of several components which can distribute themselves also about several files.

Software as a programme and documentation

In the software right (often in connection with the software acquisition) software is also designated software product which can contain, in addition, components as for example the documentation in digital or printed form „as accessories or has to go“. So also in the copyright with which the draught material belongs to the software, like the source program, called also source programme. I.E. the originator's legal protection is valid i. d. R. also for the source code [as a protective object].

Software as a programme, documentation and data

Some definitions call beside the programme even (and perhaps the documentation) also other data than to the software belonging („accompanying data“ [2]). In the glossary of the IEEE for software developers examples of such non-compiled software parts are called, like fonts, graphics, audiorecordings and video recordings, templates, dictionaries, documents and information structures (like data bank records).

Furthermore there are software definitions which surround all data which the computer program uses and, in addition, also the documentation include. On the other hand there are also the definitions which exclude the documentation, as well as the data intended for the processing.

Nevertheless, a clear rule is not defined closer which describes which data are meant specifically (e.g., the data to be processed) or which data‚ inevitably‘ are or‚ accompanying‘.

History

In the 1950s software and hardware were still connected and perceived as a unity. Besides, the software was a part of the hardware and was designated program code. In 1958 the statistician John W. Tukey stamped the concept software for the first time.

Then later the decision of the US government provided in the 1970s for a novelty that IBM on calculations has to compute software and hardware separated and to perform. This corresponded to a recognition of the Einzelhaftigkeit of software of official site and a final fragmentation of hardware and software or a demarcation of the software of the hardware.

Then this development followed in the 1970s the foundation of companies which acted for the first time only with software and developed only software and no hardware. Microsoft and in Germany SAP belonged in the USA to these companies. The existence of such companies appears in the 21st century self-evident fact, at that time displayed, nevertheless, a considerable new development.

The logical crossing between hardware and software can be made clear in the early amusement arcade games, like the game Break-out which was published in April, 1976. At that time their complete programme (the execution, the logic) existed figuratively seen of „prewired switchboards“. The amusement arcade device produced by Atari used no processor. Already a year later when the game was programmed for the computer and one started to make a distinction by processor-controled devices between the concepts‚ hardware‘ and‚ software‘, there was Break-out as software. The game did not exist any more of „prewired switchboards“, but of instructions for a processor including the further information necessary for the processing which was deposited together on a data carrier.

Software is immaterial

Software is immaterial and exists of the languages and notations in which she is formulated. Though :37 software can be printed on certain media saved, be indicated or be advanced. However, these are not the software, but they contain them only.

Though it is conceivable to deposit bits obviously and handy on carrier media, however, is basic‚ software‘ abstract, from carrier media independent concept. This applies for the type concept anyway, but also for concrete stamping like a certain application program. As an analogy in addition it is not decisive for concept for the concept‚ opera‘ or‚ magic flute‘ whether it is performed at the theatre, is transmitted on radio / TV or sold as a CD or is heard whether she is described in the opera leader or in the score is recorded.

In detail different meanings

In connection with the implementation on a computer everything is understood by software primarily what can be executed on the computer (the programme in the narrower sense, consisting of commands and data declarations). In addition, there come the resources connencted with the programmes which are necessary to the company of the software. This are, depending on the used developing tools, for example, configuration files, font files, Lookup tables, data structures for data banks etc.
In the narrowest sense would be under to understand software‘ only from the hardware compiled machine code. However, everything also falls under it what can be executed by any‚ interpreting systems‘ which are a part of the system software as by use advanced languages and developing environments are nearly always the case.
Thus is in the software development (as a central working object) and in the quality assurance (as an important test object; see software quality) also the source code an essential software artefact.
Linguistically becomes the printout‚ software‘ differently uses: He stands for specifically named components (programme XY, subroutine ABC, configuration file XXX.INI). He is used as a collective term for different totalities / amounts of programmes, for example, for accountancy software existing of many single programmes, for all applications of an enterprise („our enterprise software“), or, as already mentioned, as a type and type concept for different kinds of software (how graphics software, standard software, system software etc.).

Fluent border between software and data

To the processing certain data count generally usage not to the concept software. Nevertheless, the border is fluent between software and data, because according to situation data and programmes can appear in different roles and the concepts, besides, be exchanged:

At the file level hybrid forms can appear, for example, in office documents or with a table calculation file. On this occasion, a file contains data in terms of the edited (texts or cell contents) as well as functional instructions (macroinstructions, cell formulas).
The roles are exchanged, for example, if a source programme by a compiler is converted into a machine programme: The source programme as well as the generated binary are, on this occasion‚ data‘, the compiler is the software. Also an interpreter uses a source programme or an emulator a binary as data and generates from it memory-inside the compiled code. The so processed program files are software, specifically for role, however, at the same time data.
This connection that a programme can appear as data as well as as a function is central in different disciplines of the computer science, under it the theoretical computer science (and a. Rekursionstheorie, automata theory, domain theory), and the technical computer science (e.g., from Neumann's architecture).

Differentiation between hardware and software

According to connection is meant with the differentiation between hardware and software one or several the following meanings:

Slightly changeable component (software) versus hardly changeable component (hardware) in a computer design.
Instruction code (software) versus universal machine (hardware).
Non-handy in terms of the function components of a computer system which cannot be touched „“ (software) versus handy components (hardware). Software cannot be transmitted about a telephone line, hardware against it.
The contrasts are intended in the English-speaking concept coinage (soft=weich, hard=hart).

Cooperation with the hardware (Execution)


Software: Classification, connections, overview
„Between hardware and software a certain allocation of duties exists: The hardware guarantees quantity, so tempo and memory size, the software the picture of the demands on the structurally primitive hardware“ provides for. :38

Although software‘ partial attributes are ascribed to the concept‚ like flexibility, individuality, computer power etc., in the end, everything becomes what the computer really does‘, not from the software, but exclusively by the hardware executed. Software‚ describes‘ merely what should be done and in which form this happens.

In addition the machine code of the software is loaded at the lowest level under use of the operating system (i.e. also by his Maschinbefehle) in the main memory of the computer and is supplied to the arithmetic work step by step (see instruction counter) for the implementation. This working principle is valid for every kind of software, even if it is executed, e.g., by interpreters: These are also software whose machine code is executed in the hardware interface also as described and the computer instructions generate only memory-inside. Also compilers, macroprocessors and any other kind of system software are executed after this principle.

The machine code must be given moreover in a form / structure which can be interpreted by the hardware about those in it implemented interface and be executed. The commands indicate by its contents and its structure what is to be done which data areas should be used in the main memory, besides, or be changed (about addressing entries contained in the command) and if necessary at which place the programme is to be continued.

By the implementation many layers co-operate and lead as a totality to state updates in the hardware or final to the intended results, possibly of the output of a line of print, to a data access or the display of field contents on the display. With applications developed in advanced languages are able so already for relatively easy functions (as reading from the data bank) often hundred thousands or millions of computer instructions will run through.

The parallel execution possible in modern computers of several programmes / processes is caused in the essentials by the operating system which initiates the change of one to the other task in certain events and administers. See also multitasking.

In the systematic cooperation of many components which is possible only under application clearly of defined interfaces „software belongs to the most complicated artefacts, the people up to now have created“.

Besides, the software decisively contributes to how efficiently the hardware is used. According to creation of the algorithms different system performances can be reached with the same hardware.

The development of software is a complicated process. This is systematised by the software engineering, to a branch of the computer science. Here the production of the software is described gradually in a process by the analysis about the software modelling up to the testing as a repeatable process.

In general the software is customised after the development several times and is extended. The software-life cycle can absolutely amount several years.

Software is developed under use of certain procedures, methods and‚ tools‘. Besides, the different development stages in which in each case different interstates of the software originate will run through: Analysis operations (numerous developing documents)> programming (source code)> in the company (machine code or compiled code). In the narrower sense of the implementation on the computer is valid merely latter than 'software'. See also software development.
In this connection is software Treatment object of system programs: If, e.g., a compiler reads the source code of a programme, processes and generates a machine code or intercode, are from his view 'data'.
Once generated software can be multiplicated with relatively low costs which mostly result by data carrier, advertisement and producing of envelope and written down documentations.
Software does not wear out by use, nevertheless, is defeated with the time of the software ageing.
Software is mostly interchangeable, is correctable able for the updating, and extendable, in particular when existing directives are kept and the source program is available.
Software tends to contain the more error, the more complicated it is. Errors become in updated software versions or with the help of a patch and i. d. R. after realisation of software tests repaired. One designates software error also program error or "bug".
Because software can be developed at the risk of many different programming languages and in many different operating systems and system environments, software standards are necessary, are knowable around information system-covering and enterprise-covering‚‘ and interchangeable how to make. See also electronic data interchange (examples), program style.
Choice of software

Software procurement
In the decision for the acquisition of software lets itself i. Distinguish W. the application from standard software or own production (individual software). Particularly in the operational sphere this decision causes often high costs. Also such decisions can be a basis to the conversion of the enterprise strategy or should improve enterprise processes decisively. For the avoidance of bad investments a systematic decision-making process should walk at the head of the acquisition.

The application of software requires some degree in organisation according to area of application to seat the belonging together parts properly and to remove by new versions (for example, in bigger enterprises in the release management).
Every now and then software can be preconfigured to accelerate such a new installation and to minimise error with the configuration.
Software from the point of view of the business management and working sociology

In the essentials for operational application package software from (compan) economic view can be looked validly as an 'in advance performed spiritual work', so as an investment. For example, the program authors compile a solution procedure for the correct separation of all words in a word processor. With it is in advance, so before this activity really results, already for all writers who work with this word processor, the spiritual work „correct separation of German words“ performed. Besides, the property is used by computers, to them shifted duties to be able to execute considerably faster and more reliably than this was possible up to now for people. Especially also in the software development will be fallen back intensely on "in advance" developed algorithms and code parts ('software re-use').

A similar connection is seen in the working sociology: Such software-based measures are likely to change working contents and executions considerably. Besides, the bandwidth reaches from providing easy accessories (possibly to the summation or average determination) up to the complete transformation of processes (by concentration earlier more separated or by decomposition earlier of centralised work routines) – or even up to their entire substitute by IT solutions. Brödner call among other things this "materialised" headwork. See also rationalisation, optimisation, Taylorismus.

Categorisation of software

After ISO / IEC in 2382 software is divided as follows (and designated):

System software: Software independent of application which allow the execution of application package or support (e.g., operating system, as well as device driver and utility programs),
Support software, i.e. programmes which help in the development, maintenance or produce a non-application-centric capacity (e.g., editors, compilers, virus scanners, data bank management systems, …).
The application package which supports the user by the implementation of its duties and thereby donates to him only the real, immediate use (e.g., a table calculation)

Division after the degree of the individuality

Standard software becomes from a software provider, the application during several / many customers created who can acquire this software.
Individual software is created for a single user for the solution of a specific conceptual formulation individually, alternatively by a software provider or by own developers or development departments of an enterprise.
Juridically it is distinguished with the acquisition from software between individual software and standard software: For individual software a contract for work or work delivery contract is concluded which is valid acquisition of standard software as a material purchase.

Division in the kind of the generated artefacts

These mostly originate in the course of the production process of software and can be:

Source code, intercode, machine code, device driver and other necessary modules (than software library delivered).
Setup programs and belonging to it instructions.
Other documents like the documentation for software developers and software users.
Software in the kind of the imbedding

Not embedded software which is installed afterwards.
Firmly in a device to his control accommodated software (e.g., in a ROM or as a part of an embedded system) one designates firmware or also embedded (or‚ embedded') software.
Classification after right of use (licence)

Adware,
Beerware,
Cardware (also Postcardware),
Careware,
Crippleware,
Donationware,
Freeware,
Nagware,
Shareware and
Free software.

Division after source code availability

Free software,
Open Source and
Proprietäre software.
Classification after availability

Abandonment product and
Vaporware
Other software concepts

Portable software: On different computer (types) operational.
Native software: For the implementation on a certain computer system created or compiled. The program code uses the individual functionality of a certain system type, universality and Portabilität are not valid as a development objective.
Banana product (unmature software),
However, Schlangenöl (programme without real function, is recommended as a wonder drug),
Shovelware (collection of software and the quantity counts),
Riskware,
Bloatware (with functions without synergetic use bloatware),
Spyware,
Used software.
Licence models

The propagation and use of software is defeated by the copyright. There are several typical surrender models in this connection:

Sales
The entire sales of software, including the surrender of wide propagation rights, seem practically only between enterprises, as a rule within the scope of order programming or by the sales of a software development enterprise.
Right of use
With most software which can be "bought", for example, for PCs only one right of use will leave in reality. This model is also usual with the order programming with which an enterprise develops a programme for the own use of another enterprise especially. With freeware this right is free what may not be mistaken for free software.
Software feed a service
The software becomes with a service provider gehostet which can be computed real use of the software either per period or per unity of utilisation and can be often used with an easy PC and, e.g., by web browser.
Free software / Open Source/GPL
Free software may be used by everybody, be changed arbitrarily and be spread. This right is often defeated by certain restrictions to put as for example of the naming of the author or the obligation, changed versions under the same licence (GPL). Software which does not count to this group is called proprietär.
Between the abovementioned main forms of the software propagation there are numerous intersteps and mixing steps.

‚ Free software’ is a social movement which understands not free software as a social problem. And "freely" here means not "free of charge" (free software’ is not the same like‚ freeware’), but the freedoms for the society means which offers product so licensed (also commercial). Therefore, in the eyes from Richard Stallman in 1985 founded Free software Foundation (FSF) the decision for or against free software is primarily an ethical and social decision.

Against it source-open software understands the Open Source founded in 1998 initiative (OSI) as a bare developing model and the question whether software should be source-open is there a purely practical and no ethical question. A deflection of the essential dots accuses of the OSI, hence, of the FSF. Eric S. Raymond has the concept‚ Open Source’ in the acceptance introduced that the unpopular subject‚ freedom’ can deter financier for such projects.

Even if it concerns today two different movements with different views and destinations, it connects the common esteem for source-open code what flows in numerous projects in which they work together.

See also

Software crisis
Software quality, software quality after ISO
Software enterprises

Popular magazines