Software [1] [2] [3] (udtalesoftware [ 3] [4] [5] [6] er også acceptabel ) ( software ) er et program eller et sæt programmer, der bruges til at styre en computer ( ISO/IEC 26514: 2008 ) [7] .
Der er andre definitioner fra internationale og russiske standarder:
Software er en af typerne af computersystemsoftware sammen med teknisk (hardware), matematisk, informativ, sproglig, organisatorisk, metodisk og juridisk støtte [13] .
De akademiske områder, der studerer software, er datalogi og softwareteknik .
I computerslang bruges ordet " blødt " ofte , afledt af det engelske ord " software ", som først blev brugt i denne betydning i en artikel i American Mathematical Monthly af Princeton University-matematikeren John Tukey i 1958 [14] .
Det første program blev skrevet af Ada Lovelace til Charles Babbages Difference Engine , men da denne maskine aldrig blev færdig, forblev Lady Lovelaces udvikling rent teoretisk [15] .
Den første teori om software blev foreslået af den engelske matematiker Alan Turing i 1936 i hans essay "On computable numbers with an application to the Entscheidungsproblem" [ 16 ] [17] [18] . Han skabte det, der er kendt som en Turing-maskine , en matematisk model af en abstrakt maskine, der er i stand til at udføre sekvenser af rudimentære operationer, der tager maskinen fra en fast tilstand til en anden. Hovedideen var at matematisk bevise det faktum, at enhver forudbestemt tilstand af systemet altid kan opnås ved sekventiel udførelse af et endeligt sæt af elementære kommandoer (programmer) fra et fast sæt af kommandoer.
De første elektroniske computere i 1940'erne og 1950'erne blev omprogrammeret ved at skifte vippekontakter og gentilslutte kabler, hvilket krævede en dyb forståelse af deres interne struktur. Disse maskiner omfattede især ENIAC (som dog efterfølgende blev modificeret, så den i det mindste delvist kunne programmeres ved hjælp af hulkort ) [19] .
Et vigtigt skridt i retning af moderne computere var overgangen til John von Neumann-arkitekturen , først udmøntet i Storbritannien , i computeren udviklet under ledelse af J. R. Womersley og med deltagelse af Alan Turing , kendt som Mark I. Det første program gemt i computerhukommelsen blev lanceret den 21. juni 1941. For at lette programmeringen af denne maskine kom Turing med et stenografisk kodningssystem, hvor en sekvens af teletype -symboler, der udsendes til et hulbånd, blev brugt til at repræsentere en binær maskinkode [20] .
En af Turings ansatte, John Mauchly , der senere blev (sammen med John Presper Eckert ) leder og grundlægger af Eckert-Mauchly Computer Corporation , som udviklede computere som BINAC og UNIVAC , instruerede sine ansatte om at skabe en oversætter af algebraiske formler. Selvom dette ambitiøse mål ikke blev nået i 1940'erne, blev den såkaldte " Short Code " under ledelse af Mauchly udviklet, hvor operationer og variabler blev kodet med kombinationer af to tegn. Den korte kode blev implementeret ved hjælp af tolken [21] . Grace Hopper , der har arbejdet siden begyndelsen af 1950'erne på et sæt matematiske subrutiner til UNIVAC I , opfandt " A-0 " linkerprogrammet , som, givet en identifikator , hentede den ønskede subrutine fra et bibliotek gemt på magnetbånd og skrev det ned til den tildelte plads i RAM [22] .
De første programmeringssprog på højt niveau dukkede op i 1950'erne, hvor John Backus udviklede FORTRAN og Grace Hopper udviklede COBOL . Sådanne udviklinger forenklede i høj grad skrivningen af applikationssoftware, som derefter blev skrevet af enhver virksomhed, der køber en computer [23] .
I begyndelsen af 1950'erne var begrebet software endnu ikke udviklet. Så der blev ikke sagt noget om ham i Fortune -artiklen fra januar 1952 "Office Robots", som beskrev Univac-computere. Selvom artiklen allerede taler om computeren som en universel enhed, blev programmeringsprocessen i denne artikel anakronistisk beskrevet som "switching toggle switches" [24] . Men i midten af 1950'erne var brugerdefineret softwareudvikling [25] allerede veletableret , selvom selve udtrykket "software" endnu ikke blev brugt, så talte de blot om " programmering på bestilling " eller " programmeringstjeneste " [26] . Det første softwarefirma var System Development Corporation , etableret i 1956 fra det amerikanske regeringsejede RAND Corporation [27] . På dette stadium var kunderne til software (unik og ikke-replikerbar) store virksomheder og offentlige myndigheder, og omkostningerne på en million dollars for programmet var ikke usædvanlige [28] .
Selve begrebet "software" er blevet brugt meget siden begyndelsen af 1960'erne, hvor det blev relevant at skelne mellem de kommandoer, der styrer en computer og dens fysiske komponenter - hardware [29] . Samtidig begyndte dannelsen af softwareindustrien som en selvstændig industri . Det første softwareudviklingsfirma var Computer Sciences Corporation , grundlagt i 1959 af Roy Nutt og Fletcher Jones med en startkapital på $100. CSC's første kunder, og de softwarevirksomheder, der fulgte det, var superstore virksomheder og statslige organisationer som NASA [30] , og firmaet fortsatte med at operere på markedet for tilpasset software, ligesom andre tidlige private softwareopstarter som Computer Usage Company (CUC ) [27] .
De første selvfrigivne softwareprodukter, der ikke blev leveret med computerhardware, var AUTOFLOW computerdokumentationsgeneratoren , som automatisk tegner flowcharts , udgivet af Applied Data Research i 1965, og MARK-IV programmeringssprogsoversætteren , udviklet i 1960-1967 år. hos Informatics, Inc. [26] [31] Fremkomsten af virksomhedssoftwaremarkedet er tæt forbundet med fremkomsten af IBM System/360- familien af computere . Tilstrækkeligt massive, relativt billige computere, kompatible med hinanden på programkodeniveau, åbnede vejen for replikeret software [32] .
Efterhånden udvidedes kredsen af softwarekunder, hvilket stimulerede udviklingen af nye typer software. Således dukkede de første firmaer op, der specialiserede sig i udvikling af computerstøttede designsystemer [30] .
I november 1966 behandlede Business Week emnet softwareindustrien for første gang. Artiklen hed "Software Gap - A Growing Crisis for Computers" og talte om både udsigterne for denne virksomhed og krisen forbundet med mangel på programmører [24] . Typiske softwareprodukter fra tiden tjente til at automatisere almindelige forretningsopgaver såsom løn eller automatisere forretningsprocesserne i en mellemstor virksomhed såsom en produktionsfabrik eller en kommerciel bank . Omkostningerne ved sådan software var typisk mellem $5.000 og $100.000 [26] .
Fremkomsten i 1970'erne af de første personlige computere (såsom Altair 8800 ) skabte forudsætningerne for fremkomsten af et massesoftwaremarked. Oprindeligt blev programmer til personlige computere distribueret i "boks"-form gennem indkøbscentre eller via post og blev prissat til $ 100-500 [26] .
Betydende for det spirende massemarked af software var produkter som VisiCalc-regnearket , idéen kom til Daniel Bricklin , da han som MIT -kandidat og softwareingeniør ved DEC tog kurser på Harvard Business School og ønskede at lette sig selv med kedelige økonomiske beregninger [33] , og tekstbehandleren WordStar , som blev udviklet af Seymour Rubinstein , efter omhyggeligt at have studeret markedets behov [34] . VisiCalc blev først talt om som en dræberapplikation , det vil sige en computerapplikation, der ved selve dets eksistens beviser behovet (og ofte behovet for at købe) den platform, som et sådant program er implementeret til. For VisiCalc og WordStar er personlige computere blevet sådan en platform, som takket være dem er blevet et arbejdsredskab fra et rigt legetøj til nørder . De startede mikrocomputerrevolutionen , og disse programmer har konkurrenter: SuperCalc-regneark , Lotus 1-2-3 , dBase II -databasestyringssystem , WordPerfect -tekstbehandler osv. [35] Tekstbehandlere, regneark, databasestyringssystemer , samt grafik redaktører , blev snart hæfteklammer på markedet for pc-software [36] .
I midten af 1990'erne gjorde massereplikering det muligt at reducere omkostningerne ved software til personlige computere til et hundrede til fem hundrede dollars [26] , mens softwareproducenternes virksomhed fik en vis lighed med lydoptagelsesselskabernes forretning [35 ] .
Tilgange til softwareklassificering er formaliseret tilstrækkeligt detaljeret i den internationale standard ISO/IEC 12182 [37] . Især gav den første version af standarden 16 kriterier for klassificering af softwareværktøjer:
Eksempler på PS-funktionsklasser er:
Eksempler på applikationsdomæneklasser er:
Eksempler på PS-skalaklasser er:
Eksempler på kritikalitetsklasser er:
Eksempler på brugerklasser er:
Eksempler på stabilitetsklasser er:
I henhold til graden af portabilitet er programmerne opdelt i
Ifølge distributions- og brugsmetoden er programmer opdelt i
I henhold til formålet med programmet er de opdelt i:
I henhold til typerne af programmer er de opdelt [38] i:
Klassificeringen af software efter industrisektor omfatter flere tilgange. Generelt er software opdelt i brugerdefineret , det vil sige skabt til en specifik kunde, og produkt , det vil sige skabt til salg på markedet. Til gengæld opdeles software efter typen af forbruger i Business-to-Business ( B2B ), det vil sige for virksomheder og organisationer, og Business-to-Consumer ( B2C ), det vil sige for enkeltpersoner [39] .
En af mulighederne for at klassificere efter industrisektor er opdelingen i software til en virksomhedskunde ( engelske virksomhedssoftwareleverandører ), software til masseforbrugeren ( engelsk massemarkedssoftwareleverandører ) og it-tjenester [40] .
En anden tilgang er at opdele softwareindustrien i tre sektorer: forretningsprodukter til generelle formål ( engelsk Business Function Software ), specialiserede erhvervsprodukter ( engelsk Industrial Business Software ) og produkter til privatlivet ( engelsk Consumer Software ). Virksomhedsprodukter til generelle formål er designet til at understøtte virksomheders og organisationers funktion og omfatter regnskabssystemer, finansielle systemer, personaleregistreringssystemer osv. Specialiserede forretningsprodukter er fokuseret på opgaverne i en bestemt type virksomhed: geografiske informationssystemer, medicinske systemer , logistiksystemer osv. n. Privatlivsprodukter omfatter antivirus- og informationssikkerhedssoftware, forskellige nyttige hjælpeprogrammer, uddannelsessoftware, multimediesoftware osv. [39]
Et sæt programmer, der giver kontrol over computersystemkomponenter , såsom en processor , RAM , input-outputenheder , netværksudstyr , der fungerer som et "mellemlagsinterface", på den ene side er hardwaren, og på den anden side brugeren applikationer. I modsætning til applikationssoftware løser systemsoftware ikke specifikke praktiske problemer, men sikrer kun driften af andre programmer, giver dem servicefunktioner, der abstraherer detaljerne i hardware- og firmwareimplementeringen af computersystemet, styrer computersystemets hardwareressourcer . Tildelingen af denne eller hin software til systemet er betinget og afhænger af de konventioner, der anvendes i en bestemt sammenhæng. Som regel inkluderer systemsoftware operativsystemer , hjælpeprogrammer , databasestyringssystemer , en bred klasse af middleware .
Applikationssoftware er et program designet til at udføre visse brugeropgaver og er designet til direkte interaktion med brugeren.
Brugeren modtager softwaren sammen med en licens , som giver ham ret til at bruge softwareproduktet i henhold til licensbetingelserne. Som regel begrænser disse betingelser brugerens mulighed for at overføre softwareproduktet til andre brugere, ændre koden.
Nogle af softwaren leveres med en gratis licens. Sådanne licenser giver dig mulighed for at distribuere softwaren samt ændre den.
En del af softwaren distribueres som freeware. Der er også shareware. I dette tilfælde modtager brugeren normalt en gratis demoversion af softwareproduktet med noget begrænsede funktioner i en vis prøveperiode, og efter den er slut, er han forpligtet til enten at købe produktet eller afinstallere det.
![]() | ||||
---|---|---|---|---|
|
Softwareudvikling | |
---|---|
Behandle | |
Koncepter på højt niveau | |
Vejbeskrivelse |
|
Udviklingsmetoder _ | |
Modeller | |
Bemærkelsesværdige tal |
|
Software distribution | |
---|---|
Licenser | |
Indkomstmodeller | |
Forsendelsesmetoder |
|
Svigagtig/ulovlig | |
Andet |
|