Programvara

Programvara [1] [2] [3] (uttalsprogramvara [ 3] [4] [5] [6] är också acceptabel ) ( mjukvara ) är ett program eller en uppsättning program som används för att styra en dator ( ISO/IEC 26514: 2008 ) [7] .

Det finns andra definitioner från internationella och ryska standarder:

Programvara är en av typerna av datorsystemprogramvara , tillsammans med tekniskt (hårdvara), matematiskt, informativt, språkligt, organisatoriskt, metodologiskt och juridiskt stöd [13] .

De akademiska områdena som studerar programvara är datavetenskap och programvaruteknik .

I datorslang används ordet " mjuk " ofta , härlett från det engelska ordet " mjukvara ", som först användes i denna mening i en artikel i American Mathematical Monthly av matematikern John Tukey från Princeton University 1958 [14] .

Historik

Bakgrund. Ursprunget till programmering

Det första programmet skrevs av Ada Lovelace för Charles Babbages Difference Engine , men eftersom denna maskin aldrig blev färdig, förblev Lady Lovelaces utveckling rent teoretisk [15] .

Den första teorin om mjukvara föreslogs av den engelske matematikern Alan Turing 1936 i hans essä "On computable numbers with an application to the Entscheidungsproblem" [ 16 ] [17] [18] . Han skapade vad som är känt som en Turing-maskin , en matematisk modell av en abstrakt maskin som kan utföra sekvenser av rudimentära operationer som tar maskinen från ett fast tillstånd till ett annat. Huvudidén var att matematiskt bevisa det faktum att vilket som helst förutbestämt tillstånd i systemet alltid kan uppnås genom sekventiell exekvering av en ändlig uppsättning elementära kommandon (program) från en fast uppsättning kommandon.

De första elektroniska datorerna på 1940- och 1950-talen omprogrammerades genom att byta vippomkopplare och återansluta kablar, vilket krävde en djup förståelse av deras interna struktur. Dessa maskiner inkluderade i synnerhet ENIAC (som dock senare modifierades så att den åtminstone delvis kunde programmeras med hjälp av hålkort ) [19] .

Ett viktigt steg mot moderna datorer var övergången till John von Neumann-arkitekturen , först förkroppsligad i Storbritannien , i den dator som utvecklades under ledning av J. R. Womersley och med deltagande av Alan Turing , känd som Mark I. Det första programmet som lagrades i datorns minne lanserades den 21 juni 1941. För att underlätta programmeringen av denna maskin kom Turing med ett stenografikodningssystem där en sekvens av teletypsymboler som matas ut till ett hålband användes för att representera en binär maskinkod [20] .

En av Turings anställda, John Mauchly , som senare (tillsammans med John Presper Eckert ) blev chef och grundare av Eckert-Mauchly Computer Corporation , som utvecklade datorer som BINAC och UNIVAC , instruerade sina anställda att skapa en översättare av algebraiska formler. Även om detta ambitiösa mål inte uppnåddes på 1940-talet, under ledning av Mauchly, utvecklades den så kallade " Short Code ", där operationer och variabler kodades med tvåteckenkombinationer. Den korta koden implementerades med hjälp av tolken [21] . Grace Hopper , som arbetade sedan tidigt 1950-tal med en uppsättning matematiska subrutiner för UNIVAC I , uppfann länkprogrammet " A -0 " som, givet en identifierare , hämtade den önskade subrutinen från ett bibliotek lagrat på magnetband och skrev den ner till den tilldelade platsen i RAM [22] .

De första programmeringsspråken på hög nivå dök upp på 1950-talet, med  John Backus som utvecklade FORTRAN och Grace Hopper som utvecklade COBOL . Sådan utveckling förenklade avsevärt skrivningen av applikationsprogramvara, som sedan skrevs av varje företag som köper en dator [23] .

I början av 1950-talet hade begreppet mjukvara ännu inte utvecklats. Så ingenting sades om honom i Fortune- artikeln från januari 1952 "Office Robots", som beskrev Univac-datorer. Även om artikeln redan talar om datorn som en universell enhet, beskrevs programmeringsprocessen i denna artikel anakronistiskt som "växling av vippomkopplare" [24] . Men i mitten av 1950-talet var anpassad mjukvaruutveckling [25] redan väletablerad , även om termen "mjukvara" i sig ännu inte användes, då talade de helt enkelt om " programmering på beställning " eller " programmeringstjänst " [26] . Det första mjukvaruföretaget var System Development Corporation , etablerat 1956 från det amerikanska regeringsägda RAND Corporation [27] . I detta skede var kunderna för mjukvara (unika och icke-replikerbara) stora företag och statliga myndigheter, och kostnaden för en miljon dollar för programmet var inte ovanlig [28] .

Tidig historia. Företagsprogramvara

Själva termen "mjukvara" har kommit till stor användning sedan början av 1960-talet, då det blev relevant att skilja mellan kommandona som styr en dator och dess fysiska komponenter - hårdvara [29] . Samtidigt började bildandet av mjukvaruindustrin som en oberoende industri . Det första företaget för mjukvaruutveckling var Computer Sciences Corporation , grundat 1959 av Roy Nutt och Fletcher Jones med ett startkapital på $100. CSC:s första kunder, och mjukvaruföretagen som följde det, var superstora företag och statliga organisationer som NASA [30] , och företaget fortsatte att verka på marknaden för anpassad mjukvara, liksom andra tidiga privata mjukvarustartups som Computer Usage Company (CUC ) [27] .

De första självutgivna mjukvaruprodukterna som inte levererades med datorhårdvara var datordokumentationsgeneratorn AUTOFLOW , som automatiskt ritar flödesscheman , släppt av Applied Data Research 1965, och MARK-IV programmeringsspråksöversättaren , utvecklad 1960-1967 år. på Informatics, Inc. [26] [31] Framväxten av företagsprogramvarumarknaden är nära kopplad till tillkomsten av IBM System/360 -familjen av datorer . Tillräckligt massiva, relativt billiga datorer, kompatibla med varandra på nivån av programkod, öppnade vägen för replikerad programvara [32] .

Efter hand utökades kretsen av mjukvarukunder, vilket stimulerade utvecklingen av nya typer av mjukvara. Således dök de första företagen som specialiserade sig på utveckling av datorstödda designsystem upp [30] .

I november 1966 tog Business Week upp ämnet mjukvaruindustrin för första gången. Artikeln hette "Software Gap - A Growing Crisis for Computers" och talade om både utsikterna för denna verksamhet och krisen i samband med brist på programmerare [24] . Typiska mjukvaruprodukter från den tiden tjänade till att automatisera vanliga affärsuppgifter som löner eller automatisera affärsprocesserna i ett medelstort företag som en fabrik eller en affärsbank . Kostnaden för sådan mjukvara var vanligtvis mellan $5 000 och $100 000 [26] .

Persondatorer och mjukvara för masskonsumenten

Uppkomsten på 1970-talet av de första persondatorerna (som Altair 8800 ) skapade förutsättningarna för uppkomsten av en massprogramvarumarknad. Ursprungligen distribuerades program för persondatorer i "förpackad" form genom köpcentra eller via post och prissattes till $ 100-500 [26] .

Betydande för den begynnande massmarknaden för mjukvara var sådana produkter som kalkylbladet VisiCalc , vars idé kom till Daniel Bricklin , när han som MIT -examen och mjukvaruingenjör vid DEC tog kurser vid Harvard Business School och ville lätta på sig själv med tråkiga ekonomiska beräkningar [33] , och ordbehandlaren WordStar , som utvecklades av Seymour Rubinstein , efter att noggrant studerat marknadens behov [34] . VisiCalc talades först om som en mördarapplikation , det vill säga en datorapplikation som, genom att den existerar, bevisar behovet (och ofta behovet av att köpa) plattformen för vilken ett sådant program är implementerat. För VisiCalc och WordStar har persondatorer blivit en sådan plattform, som tack vare dem har blivit ett arbetsverktyg från en rik leksak för nördar . De startade mikrodatorrevolutionen , och dessa program har konkurrenter: SuperCalc-kalkylblad , Lotus 1-2-3 , dBase II- databashanteringssystem , WordPerfect -ordbehandlare , etc. [35] Ordbehandlare, kalkylblad, databashanteringssystem, såväl som grafik redaktörer , blev snart häftklamrar på marknaden för persondatorprogramvara [36] .

I mitten av 1990-talet gjorde massreplikering det möjligt att sänka kostnaden för mjukvara för persondatorer till etthundra till femhundra dollar [26] , samtidigt som mjukvaruproducenternas verksamhet fick en viss likhet med ljudinspelningsföretagens verksamhet [35 ] .

Programvaruklassificering

Tillvägagångssätt för klassificering av programvara formaliseras tillräckligt detaljerat i den internationella standarden ISO/IEC 12182 [37] . Den första versionen av standarden förutsatte särskilt 16 kriterier för klassificering av mjukvaruverktyg:

Exempel på PS-funktionsklasser är:

Exempel på applikationsdomänklasser är:

Exempel på PS-skalklasser är:

Exempel på kritikalitetsklasser är:

Exempel på användarklasser är:

Exempel på stabilitetsklasser är:

Beroende på graden av portabilitet delas program in i

Enligt distributions- och användningssätt delas program in i

Beroende på syftet med programmet är de indelade i:

Beroende på typen av program är de indelade [38] i:

Klassificering av programvara efter bransch

Klassificeringen av programvara efter branschsektor innefattar flera tillvägagångssätt. Generellt sett delas mjukvara in i anpassad , det vill säga skapad för en specifik kund, och produkt , det vill säga skapad för försäljning på marknaden. I sin tur, beroende på typen av konsument, delas mjukvara in i Business-to-Business ( B2B ), det vill säga för företag och organisationer, och Business-to-Consumer ( B2C ), det vill säga för individer [39] .

Ett av alternativen för att klassificera efter branschsektor är uppdelningen i programvara för en företagskund ( engelska  företagsprogramvaruleverantörer ), programvara för masskonsumenter ( engelska  massmarknadsmjukvaruleverantörer ) och IT-tjänster [40] .

Ett annat tillvägagångssätt är att dela upp mjukvaruindustrin i tre sektorer: affärsprodukter för allmänna ändamål ( Engelska  Business Function Software ), specialiserade affärsprodukter ( English  Industrial Business Software ) och produkter för privatlivet ( Engelska  Consumer Software ). Allmänna affärsprodukter är utformade för att stödja företags och organisationers funktion och inkluderar redovisningssystem, finansiella system, personalregistersystem etc. Specialiserade affärsprodukter är inriktade på uppgifterna för en specifik typ av verksamhet: geografiska informationssystem, medicinska system , logistiksystem, etc. n. Integritetsprodukter inkluderar antivirus- och informationssäkerhetsprogram, olika användbara verktyg, utbildningsprogram, multimediaprogramvara, etc. [39]

Systemprogramvara

En uppsättning program som ger kontroll över datorsystemkomponenter , såsom en processor , RAM , input-out-enheter , nätverksutrustning , som fungerar som ett "mellanskiktsgränssnitt", på vars ena sida finns hårdvaran, och på den andra, användaren applikationer. Till skillnad från applikationsprogramvara löser inte systemprogramvara specifika praktiska problem, utan säkerställer endast driften av andra program, förser dem med servicefunktioner som abstraherar detaljerna i hårdvaru- och firmwareimplementeringen av datorsystemet, hanterar hårdvaruresurserna i datorsystemet . Tilldelningen av denna eller den mjukvaran till systemet är villkorad och beror på de konventioner som används i ett visst sammanhang. Som regel inkluderar systemprogramvara operativsystem , verktyg , databashanteringssystem , en bred klass av mellanprogram .

Programvara

Tillämpningsprogram är ett program utformat för att utföra vissa användaruppgifter och är utformat för direkt interaktion med användaren.

Licens

Användaren får programvaran tillsammans med en licens , som ger honom rätt att använda mjukvaruprodukten, i enlighet med villkoren i licensen. Som regel begränsar dessa villkor användarens möjlighet att överföra mjukvaruprodukten till andra användare, ändra koden.

En del av programvaran kommer med en gratis licens. Sådana licenser tillåter dig att distribuera programvaran samt modifiera den.

En del av programvaran distribueras som gratisprogram. Det finns också shareware. I det här fallet får användaren vanligtvis en gratis demoversion av mjukvaruprodukten med något begränsade funktioner under en viss provperiod, och efter att den är slut är han skyldig att antingen köpa produkten eller avinstallera den.

Se även

Anteckningar

  1. Ozhegov S.I. Ordbok för det ryska språket. - M . : Ryska språket, 1986. - S. 364.
  2. Accentordbok . Hämtad 26 maj 2007. Arkiverad från originalet 3 april 2007.
  3. 1 2 Ordböcker för det ryska språket - Kontrollera ordet "tillhandahålla" Arkivkopia daterad 3 april 2018 på Wayback Machine Gramota.ru
  4. Reznichenko I. L. Orthoepic Dictionary of the Russian Language: Pronunciation. Betoning: Okej. 25 000 enheter / Reznichenko I.L. M .: Astrel Publishing House LLC: AST Publishing House LLC, 2003. - 284 sid.
  5. 2007 års upplaga av Ozhegovs stavningsordbok ger det enda alternativet . // Ortografisk ordbok för det ryska språket / Redigerad av S. I. Ozhegov. Locky-Press, 2007. 912 sid. ISBN 5-320-00396-X .
  6. 2006 och 2007 års upplaga av Rosenthal Dictionary ger också det enda alternativet - programvara // D. E. Rosenthal . Ryska språket. Handbok-övning. Onyx, Peace and Education, 2007. ISBN 5-488-00712-1 , 5-94666-332-1, 978-5-488-01360-5.
  7. ISO/IEC 26514:2008 Systems and Software Engineering — Krav på designers och utvecklare av användardokumentation
  8. Enligt GOST 19.101-77 inkluderar mjukvarudokument dokument som innehåller information som är nödvändig för utveckling, tillverkning, underhåll och drift av program .
  9. GOST 19781-90 Arkiverad 10 februari 2019 på Wayback Machine . Tillhandahållande av programvara för informationsbehandlingssystem. Termer och definitioner
  10. Batovrin V.K., 2012 .
  11. Informationsbehandlingssystem - ett eller flera datorsystem och enheter, såsom kontors- och kommunikationsutrustning, som utför informationsbehandling // Standard ISO / IEC 2382-1 Arkiverad 18 september 2012 på Wayback Machine
  12. IEEE Std 829-2008 IEEE-standard för programvara och systemtestdokumentation
  13. GOST 34.003-90 Informationsteknologi. Automatiserade system. Termer och definitioner
  14. John Tukey, 85, statistiker; Myntade ordet "Software" , Obituaries , New York Times (28 juli 2000).
  15. Computer Languages, 1989 , 1. Den osynliga konstruktören § Harbingers of the Computer Age, sid. elva.
  16. Turing A. On Computable Numbers, with a Application to the Entscheidungsproblem  // Proceedings of the London Mathematical Society - London Mathematical Society , 1937. - Vol. s2-42, Iss. 1. - S. 230-265. — ISSN 0024-6115 ; 1460-244X - doi:10.1112/PLMS/S2-42.1.230
  17. Turing A. M. om beräkningsbara nummer, med en tillämpning på Entscheidungsproblemet. A Correction  (engelska) // Proceedings of the London Mathematical Society - London Mathematical Society , 1938. - Vol. s2-43, Iss. 6. - s. 544-546. — ISSN 0024-6115 ; 1460-244X - doi:10.1112/PLMS/S2-43.6.544
  18. Halley, Mike. Elektroniska hjärnor/Berättelser från datorålderns gryning  (engelska) . - London: British Broadcasting Corporation och Granta Books, 2005. - S.  79 . — ISBN 1-86207-663-4 .
  19. Computer Languages, 1989 , 1. Invisible Constructor, sid. 10-11.
  20. Computer Languages, 1989 , 1. Invisible Constructor, sid. 14-16.
  21. Computer Languages, 1989 , 1. Invisible constructor § Att göra läsbara koder för människor, sid. 16.
  22. Computer Languages, 1989 , 1. Den osynliga konstruktören § Steg till förmån för programmering, sid. 18-20.
  23. Computer Languages, 1989 , 1. Den osynliga konstruktören § Steg till förmån för programmering, sid. tjugo.
  24. 1 2 Campbell-Kelly, 2003 , 1. Programvaruindustrin, sid. ett.
  25. Campbell-Kelly, 2003 , 1. Programvaruindustrin § Periodisering, Sektorisering och kapacitet, sid. 3.
  26. 1 2 3 4 5 Campbell-Kelly, 2003 , 1. Programvaruindustrin § Periodisering, Sectorization, and Capabilities, sid. fyra.
  27. 1 2 Campbell-Kelly, 2003 , 1. Programvaruindustrin § Software Contractors, sid. 5.
  28. Campbell-Kelly, 2003 , 1. Programvaruindustrin § Periodisering, Sektorisering och kapacitet, sid. 3-4.
  29. Computer Languages, 1989 , 1. Invisible Constructor, sid. tio.
  30. 1 2 Computer Languages, 1989 , 3. The Rise of Software § Mjukvaran blir en industri i sin egen rätt, sid. 61.
  31. Campbell-Kelly, 2003 , 4. Ursprunget till mjukvaruproduktindustrin § Banbrytande inom mjukvaruproduktindustrin: Informatik Mark IV, sid. 103-104.
  32. Campbell-Kelly, 2003 , 1. Programvaruindustrin § Företags mjukvaruprodukter, sid. 6.
  33. Computer Languages, 1989 , 3. The rise of software § Första industristandarder, sid. 68-69.
  34. Computer Languages, 1989 , 3. The rise of software § Första industristandarder, sid. 68.
  35. 1 2 Campbell-Kelly, 2003 , 1. Programvaruindustrin § Massmarknadsmjukvaruprodukter, sid. 7.
  36. Computer Languages, 1989 , 3. The Rise of Software § The Four Workhorses, sid. 75-84.
  37. ISO/IEC TR 12182:2015 System- och mjukvaruteknik — Ramverk för kategorisering av IT-system och mjukvara, och guide för tillämpningen . Hämtad 4 mars 2018. Arkiverad från originalet 4 mars 2018.
  38. GOST 19.101-77
  39. 1 2 Werder, Karl, Wang, Hua-Ying. Mot en programvaruproduktindustriklassificering Arkiverad 13 april 2021 på Wayback Machine // Nya trender inom mjukvarumetoder, -verktyg och -tekniker. H. Fujita, G. A. Papadopoulos, IOS Press, 2016. ISBN 978-1-61499-674-3 . DOI: 10.3233/978-1-61499-674-3-27
  40. Campbell-Kelly M., Garcia-Swartz, D. Från produkter till tjänster: The Software Industry in the Internet Era Arkiverad 12 augusti 2021 på Wayback Machine // The Business History Review, Vol. 81, nr. 4 (Vinter, 2007), s. 735-764. DOI: 10.2307/25097422

Litteratur