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] .
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 linker „ A-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] .
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] .
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] ] .
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 î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]
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ția software este un program conceput pentru a îndeplini anumite sarcini de utilizator și este conceput pentru interacțiunea directă cu utilizatorul.
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.
Dicționare și enciclopedii | ||||
---|---|---|---|---|
|
Dezvoltare de software | |
---|---|
Proces | |
Concepte de nivel înalt | |
Directii |
|
Metodologii de dezvoltare | |
Modele |
|
Cifre notabile |
|
software | Distribuție|
---|---|
Licențe | |
Modele de venit | |
Metode de expediere |
|
Frauduloasă/ilegală | |
Alte |
|