Software

Software [1] [2] [3] ( software de pronunție [3] [4] [5] [6] este de asemenea acceptabil ) ( software ) este un program sau un set de programe utilizate pentru a controla un computer ( ISO/IEC 26514: 2008 ) [7] .

Există și alte definiții din standardele internaționale și ruse:

Software-ul este unul dintre tipurile de software de sistem informatic , împreună cu suportul tehnic (hardware), matematic, informațional, lingvistic, organizatoric, metodologic și juridic [13] .

Domeniile academice care studiază software sunt informatică și ingineria software .

În argoul informatic , este adesea folosit cuvântul „ soft ” , derivat din cuvântul englez „ software ”, care a fost folosit pentru prima dată în acest sens într-un articol din American Mathematical Monthly de către matematicianul de la Universitatea Princeton, John Tukey , în 1958 [14] .

Istorie

Fundal. Originile programării

Primul program a fost scris de Ada Lovelace pentru Charles Babbage 's Difference Engine , dar din moment ce această mașină nu a fost niciodată finalizată, evoluțiile lui Lady Lovelace au rămas pur teoretice [15] .

Prima teorie referitoare la software a fost propusă de matematicianul englez Alan Turing în 1936 în eseul său „On computable numbers with an application to the Entscheidungsproblem” [ 16 ] [17] [18] . El a creat ceea ce este cunoscut sub numele de mașină Turing , un model matematic al unei mașini abstracte capabilă să efectueze secvențe de operații rudimentare care duc mașina dintr-o stare fixă ​​în alta. Ideea principală a fost de a demonstra matematic faptul că orice stare predeterminată a sistemului poate fi întotdeauna atinsă prin executarea secvenţială a unui set finit de comenzi elementare (programe) dintr-un set fix de comenzi.

Primele calculatoare electronice din anii 1940 și 1950 au fost reprogramate prin comutarea întrerupătoarelor și reconectarea cablurilor, ceea ce a necesitat o înțelegere profundă a structurii lor interne. Aceste mașini, în special, au inclus ENIAC (care, totuși, a fost modificat ulterior astfel încât să poată fi, cel puțin parțial, programat cu ajutorul cardurilor perforate ) [19] .

Un pas important către calculatoarele moderne a fost trecerea la arhitectura John von Neumann , prima dată întruchipată în Marea Britanie , în computerul dezvoltat sub conducerea lui J. R. Womersley și cu participarea lui Alan Turing , cunoscut sub numele de Mark I. Primul program stocat în memoria computerului a fost lansat pe 21 iunie 1941. Pentru a facilita programarea acestei mașini, Turing a venit cu un sistem de codare scurtă în care o secvență de simboluri de teletip transmise pe o bandă perforată a fost folosită pentru a reprezenta un cod binar de mașină [20] .

Unul dintre angajații lui Turing, John Mauchly , care a devenit mai târziu (împreună cu John Presper Eckert ) șeful și fondatorul Eckert-Mauchly Computer Corporation , care a dezvoltat computere precum BINAC și UNIVAC , și-a instruit angajații să creeze un traducător de formule algebrice. Deși acest obiectiv ambițios nu a fost atins în anii 1940, sub conducerea lui Mauchly a fost dezvoltat așa-numitul „ Cod scurt ”, în care operațiunile și variabilele erau codificate cu combinații de două caractere. Codul scurt a fost implementat folosind interpretul [21] . Grace Hopper , lucrând încă de la începutul anilor 1950 la un set de subrutine matematice pentru UNIVAC I , a inventat programul de linkerA-0 ” , care, având un identificator , a preluat subrutina dorită dintr -o bibliotecă stocată pe bandă magnetică și a scris până la locul alocat în RAM [22] .

Primele limbaje de programare de nivel înalt au apărut în anii 1950,  John Backus dezvoltând FORTRAN și Grace Hopper dezvoltând COBOL . Astfel de evoluții au simplificat foarte mult scrierea aplicațiilor software, care a fost apoi scrisă de fiecare companie care achiziționează un computer [23] .

La începutul anilor 1950, conceptul de software nu se dezvoltase încă. Deci nu s-a spus nimic despre el în articolul Fortune din ianuarie 1952 „Roboți de birou”, care descria computerele Univac. Deși articolul deja vorbește despre computer ca pe un dispozitiv universal, procesul de programare din acest articol a fost descris anacronic drept „comutarea comutatoarelor cu comutare” [24] . Cu toate acestea, la mijlocul anilor 1950, dezvoltarea software personalizat [25] era deja bine stabilită , deși termenul „software” în sine nu era încă folosit, atunci pur și simplu s-au vorbit despre „ programare la comandă ” sau „ serviciu de programare ” [26] . Prima companie de software a fost System Development Corporation , înființată în 1956 de la RAND Corporation , deținută de guvernul SUA [27] . În această etapă, clienții pentru software (unici și nereplicabile) erau mari corporații și agenții guvernamentale, iar costul de un milion de dolari pentru program nu era neobișnuit [28] .

Istoria timpurie. Software pentru întreprinderi

Termenul „software” în sine a intrat în uz pe scară largă încă de la începutul anilor 1960, când a devenit relevant să se facă distincția între comenzile care controlează un computer și componentele sale fizice – hardware [29] . În același timp, a început formarea industriei software ca industrie independentă . Prima companie de dezvoltare de software a fost Computer Sciences Corporation , fondată în 1959 de Roy Nutt și Fletcher Jones cu un capital inițial de 100 USD. Primii clienți ai CSC și companiile de software care l-au urmat au fost corporații super-mari și organizații guvernamentale precum NASA [30] , iar firma a continuat să opereze pe piața de software personalizat, la fel ca și alte startup -uri private timpurii de software, cum ar fi Computer Usage Company (CUC ) [27] .

Primele produse software auto-lansate care nu au fost furnizate cu hardware de calculator au fost generatorul de documentație pentru computer AUTOFLOW , care desenează automat diagrame de flux, lansat de Applied Data Research în 1965, și traducătorul de limbaj de programare MARK-IV , dezvoltat în anii 1960-1967. la Informatica, Inc. [26] [31] Creșterea pieței de software pentru întreprinderi este strâns legată de apariția familiei de calculatoare IBM System/360 . Calculatoare suficient de masive, relativ ieftine, compatibile între ele la nivel de cod de program, au deschis calea software-ului replicat [32] .

Treptat, cercul clienților de software s-a extins, ceea ce a stimulat dezvoltarea de noi tipuri de software. Astfel, au apărut primele firme specializate în dezvoltarea sistemelor de proiectare asistată de calculator [30] .

În noiembrie 1966, Business Week a abordat pentru prima dată subiectul industriei software. Articolul se numea „Software Gap – A Growing Crisis for Computers” și vorbea atât despre perspectivele acestei afaceri, cât și despre criza asociată cu deficitul de programatori [24] . Produsele software tipice ale vremii serveau la automatizarea sarcinilor obișnuite de afaceri, cum ar fi salarizarea sau automatizarea proceselor de afaceri ale unei întreprinderi mijlocii, cum ar fi o fabrică de producție sau o bancă comercială . Costul unui astfel de software era de obicei între 5.000 și 100.000 USD [26] .

Calculatoare personale și software pentru consumatorul de masă

Apariția în anii 1970 a primelor computere personale (cum ar fi Altair 8800 ) a creat premisele pentru apariția unei piețe de software de masă. Inițial, programele pentru calculatoare personale erau distribuite în formă „cutie” prin centre comerciale sau prin poștă și aveau prețuri de 100-500 USD [26] .

Semnificative pentru piața de masă în curs de dezvoltare a software-ului au fost produse precum foaia de calcul VisiCalc , ideea căreia i-a venit lui Daniel Bricklin , când acesta, ca absolvent al MIT și inginer software la DEC , a urmat cursuri la Harvard Business School și a vrut să se ușurează cu calcule financiare obositoare [33 ] , și procesorul de text WordStar , care a fost dezvoltat de Seymour Rubinstein , după ce a studiat cu atenție nevoile pieței [34] . S-a vorbit mai întâi despre VisiCalc ca o aplicație ucigașă , adică o aplicație informatică care, prin însăși existența ei, dovedește necesitatea (și adesea nevoia de achiziție) a platformei pentru care este implementat un astfel de program. Pentru VisiCalc și WordStar, computerele personale au devenit o astfel de platformă, care, datorită lor, au devenit un instrument de lucru dintr-o jucărie bogată pentru tocilari . Ei au început revoluția microcalculatoarelor , iar aceste programe au concurenți: foi de calcul SuperCalc , Lotus 1-2-3 , sistem de gestionare a bazelor de date dBase II , procesor de text WordPerfect etc. [35] Procesoare de text, foi de calcul, sisteme de gestionare a bazelor de date, precum și grafice editori , au devenit curând elementele de bază ale pieței de software pentru computere personale [36] .

Până la mijlocul anilor 1990, replicarea în masă a făcut posibilă reducerea costului software-ului pentru calculatoarele personale la o sută până la cinci sute de dolari [26] , în timp ce afacerea producătorilor de software a căpătat o anumită similitudine cu cea a companiilor de înregistrări audio [35] ] .

Clasificare software

Abordările clasificării software-ului sunt formalizate suficient de detaliat în standardul internațional ISO/IEC 12182 [37] . În special, prima versiune a standardului prevedea 16 criterii pentru clasificarea instrumentelor software:

Exemple de clase de funcții PS sunt:

Exemple de clase de domenii de aplicație sunt:

Exemple de clase de scară PS sunt:

Exemple de clase de criticitate sunt:

Exemple de clase de utilizatori sunt:

Exemple de clase de stabilitate sunt:

În funcție de gradul de portabilitate , programele sunt împărțite în

În funcție de metoda de distribuție și utilizare, programele sunt împărțite în

În funcție de scopul programului, acestea sunt împărțite în:

După tipurile de programe, acestea sunt împărțite [38] în:

Clasificarea software-ului pe sectoare industriale

Clasificarea software-ului în funcție de sectorul industrial include mai multe abordări. În general, software-ul este împărțit în personalizat , adică creat pentru un anumit client, și produs , adică creat pentru vânzare pe piață. La rândul său, în funcție de tipul de consumator, software-ul este împărțit în Business-to-Business ( B2B ), adică pentru întreprinderi și organizații, și Business-to-Consumer ( B2C ), adică pentru persoane fizice [39] .

Una dintre opțiunile de clasificare pe sectoare industriale este împărțirea în software pentru un client corporativ ( furnizori englezi  de software pentru întreprinderi ), software pentru consumatorul de masă ( vânzători de software de pe piața de masă engleză  ) și servicii IT [40] .

O altă abordare este împărțirea industriei software în trei sectoare: produse de afaceri de uz general ( Engleză  Business Function Software ), produse de afaceri specializate ( Engleză  Industrial Business Software ) și produse pentru viața privată ( Engleză  Consumer Software ). Produsele de afaceri de uz general sunt concepute pentru a sprijini funcționarea întreprinderilor și organizațiilor și includ sisteme de contabilitate, sisteme financiare, sisteme de evidență a personalului etc. Produsele de afaceri specializate sunt concentrate pe sarcinile unui anumit tip de afaceri: sisteme de informații geografice, sisteme medicale , sisteme logistice etc. n. Produsele de confidențialitate includ software antivirus și de securitate a informațiilor, diverse utilități utile, software educațional, software multimedia etc. [39]

Software de sistem

Un set de programe care oferă control asupra componentelor sistemului informatic , cum ar fi un procesor , RAM , dispozitive de intrare-ieșire , echipamente de rețea , care acționează ca o „interfață interstrat”, pe o parte a căreia se află hardware-ul și, pe de altă parte, utilizatorul aplicatii. Spre deosebire de software-ul de aplicație , software-ul de sistem nu rezolvă probleme practice specifice, ci asigură doar funcționarea altor programe, oferindu-le funcții de serviciu care abstrag detaliile implementării hardware și firmware a sistemului de calcul, gestionează resursele hardware ale sistemului de calcul. . Alocarea acestui sau aceluia software la sistem este condiționată și depinde de convențiile utilizate într-un anumit context. De regulă, software-ul de sistem include sisteme de operare , utilități , sisteme de gestionare a bazelor de date , o clasă largă de middleware .

Aplicație software

Aplicația software este un program conceput pentru a îndeplini anumite sarcini de utilizator și este conceput pentru interacțiunea directă cu utilizatorul.

Licență

Utilizatorul primește software-ul împreună cu o licență , care îi conferă dreptul de a utiliza produsul software, sub rezerva termenilor licenței. De regulă, aceste condiții limitează capacitatea utilizatorului de a transfera produsul software altor utilizatori, schimba codul.

Unele dintre programe vin cu o licență gratuită. Astfel de licențe vă permit să distribuiți software-ul și să îl modificați.

O parte din software este distribuită ca program gratuit. Există și shareware. În acest caz, utilizatorul primește de obicei o versiune demo gratuită a produsului software cu caracteristici oarecum limitate pentru o anumită perioadă de probă, iar după terminarea acesteia, este obligat fie să achiziționeze produsul, fie să îl dezinstaleze.

Vezi și

Note

  1. Ozhegov S.I. Dicționar al limbii ruse. - M . : Limba rusă, 1986. - S. 364.
  2. Dicţionar de accent . Consultat la 26 mai 2007. Arhivat din original pe 3 aprilie 2007.
  3. 1 2 Dicționare ale limbii ruse - Verificarea cuvântului „furnizarea” Copie de arhivă din 3 aprilie 2018 pe Wayback Machine Gramota.ru
  4. Reznichenko I. L. Dicționar ortoepic al limbii ruse: pronunție. Subliniere: ok. 25.000 de unități / Reznichenko I.L. M .: Editura Astrel SRL: Editura AST SRL, 2003. - 284 p.
  5. Ediția din 2007 a dicționarului de ortografie al lui Ozhegov oferă singura opțiune - prevederea . // Dicționar ortografic al limbii ruse / Editat de S. I. Ozhegov. Locky-Press, 2007. 912 p. ISBN 5-320-00396-X .
  6. Ediția din 2006 și 2007 a Dicționarului Rosenthal oferă și singura opțiune - software // D. E. Rosenthal . Limba rusă. Manual-practica. Onix, pace și educație, 2007. ISBN 5-488-00712-1 , 5-94666-332-1, 978-5-488-01360-5.
  7. ISO/IEC 26514:2008 Ingineria sistemelor și software-ului — Cerințe pentru proiectanții și dezvoltatorii de documentație pentru utilizatori
  8. Conform GOST 19.101-77 , documentele software includ documente care conțin informații necesare pentru dezvoltarea, fabricarea, întreținerea și operarea programelor .
  9. GOST 19781-90 Arhivat pe 10 februarie 2019 la Wayback Machine . Furnizare de software pentru sisteme de procesare a informațiilor. Termeni și definiții
  10. Batovrin V.K., 2012 .
  11. Sistem de procesare a informațiilor - unul sau mai multe sisteme și dispozitive informatice, cum ar fi echipamente de birou și de comunicații, care efectuează procesarea informațiilor // Standard ISO / IEC 2382-1 Arhivat la 18 septembrie 2012 la Wayback Machine
  12. IEEE Std 829-2008 IEEE Standard for Software and System Test Documentation
  13. GOST 34.003-90 Tehnologia informației. Sisteme automatizate. Termeni și definiții
  14. John Tukey, 85 de ani, Statistician; A creat cuvântul „Software” , Obituaries , New York Times (28 iulie 2000).
  15. Computer Languages, 1989 , 1. The Invisible Constructor § Harbingers of the Computer Age, p. unsprezece.
  16. Turing A. On Computable Numbers, with an Application to the Entscheidungsproblem  // Proceedings of the London Mathematical Society - London Mathematical Society , 1937. - Vol. s2-42, Iss. 1. - P. 230-265. — ISSN 0024-6115 ; 1460-244X - doi:10.1112/PLMS/S2-42.1.230
  17. Turing A. M. Despre numerele calculabile, cu o aplicație la problema Entscheidungs. O corecție  (engleză) // Proceedings of the London Mathematical Society - London Mathematical Society , 1938. - Vol. s2-43, Iss. 6. - P. 544-546. — ISSN 0024-6115 ; 1460-244X - doi:10.1112/PLMS/S2-43.6.544
  18. Halley, Mike. Creiere electronice/Povestiri din zorii erei computerelor  (engleză) . - Londra: British Broadcasting Corporation și Granta Books, 2005. - P.  79 . — ISBN 1-86207-663-4 .
  19. Computer Languages, 1989 , 1. Invisible Constructor, p. 10-11.
  20. Computer Languages, 1989 , 1. Invisible Constructor, p. 14-16.
  21. Computer Languages, 1989 , 1. Constructor invizibil § Realizarea de coduri care pot fi citite de om, p. 16.
  22. Computer Languages, 1989 , 1. The Invisible Constructor § Step for the Benefit of Programming, p. 18-20.
  23. Computer Languages, 1989 , 1. The Invisible Constructor § Step for the Benefit of Programming, p. douăzeci.
  24. 1 2 Campbell-Kelly, 2003 , 1. The Software Industry, p. unu.
  25. Campbell-Kelly, 2003 , 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3.
  26. 1 2 3 4 5 Campbell-Kelly, 2003 , 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. patru.
  27. 1 2 Campbell-Kelly, 2003 , 1. The Software Industry § Software Contractors, p. 5.
  28. Campbell-Kelly, 2003 , 1. The Software Industry § Periodization, Sectorization, and Capabilities, p. 3-4.
  29. Computer Languages, 1989 , 1. Invisible Constructor, p. zece.
  30. 1 2 Computer Languages, 1989 , 3. Ascensiunea software-ului § Software-ul devine o industrie în sine, p. 61.
  31. Campbell-Kelly, 2003 , 4. Origins of the Software Products Industry § Pioneering in the Software Products Industry: Informatica Mark IV, p. 103-104.
  32. Campbell-Kelly, 2003 , 1. The Software Industry § Corporate Software Products, p. 6.
  33. Computer Languages, 1989 , 3. Ascensiunea software-ului § Primele standarde industriale, p. 68-69.
  34. Computer Languages, 1989 , 3. Ascensiunea software-ului § Primele standarde industriale, p. 68.
  35. 1 2 Campbell-Kelly, 2003 , 1. Industria software § Mass-Market Software Products, p. 7.
  36. Computer Languages, 1989 , 3. The Rise of Software § The Four Workhorses, p. 75-84.
  37. ISO/IEC TR 12182:2015 Sisteme și inginerie software — Cadru pentru clasificarea sistemelor IT și a software-ului și ghid pentru aplicarea acestuia . Preluat la 4 martie 2018. Arhivat din original la 4 martie 2018.
  38. GOST 19.101-77
  39. 1 2 Werder, Karl, Wang, Hua-Ying. Towards a Software Product Industry Classification Arhivat 13 aprilie 2021 la Wayback Machine // Noi tendințe în metodologii, instrumente și tehnici software. 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. From Products to Services: The Software Industry in the Internet Era Arhivat 12 august 2021 la Wayback Machine // The Business History Review, vol. 81, nr. 4 (Iarna, 2007), pp. 735-764. DOI: 10.2307/25097422

Literatură