Software [1] [2] [3] ( software pro výslovnost [3] [4] [5] [6] je také přijatelný ) ( software ) je program nebo sada programů používaných k ovládání počítače ( ISO/IEC 26514: 2008 ) [7] .
Existují další definice z mezinárodních a ruských norem:
Software je jedním z typů softwaru počítačového systému spolu s technickou (hardwarovou), matematickou, informační, jazykovou, organizační, metodickou a právní podporou [13] .
Akademické obory, které studují software, jsou informatika a softwarové inženýrství .
V počítačovém slangu se často používá slovo „ soft “ , odvozené z anglického slova „ software “, které bylo poprvé použito v tomto smyslu v článku v American Mathematical Monthly matematika z Princetonské univerzity Johna Tukeyho v roce 1958 [14] .
První program napsala Ada Lovelace pro Difference Engine Charlese Babbage , ale protože tento stroj nebyl nikdy dokončen, vývoj Lady Lovelace zůstal čistě teoretický [15] .
První teorii týkající se softwaru navrhl anglický matematik Alan Turing v roce 1936 ve své eseji „On computable numbers with application to the Entscheidungsproblem“ [ 16 ] [17] [18] . Vytvořil to, co je známé jako Turingův stroj , matematický model abstraktního stroje schopného provádět sekvence základních operací, které převádějí stroj z jednoho pevného stavu do druhého. Hlavní myšlenkou bylo matematicky dokázat skutečnost, že libovolného předem určeného stavu systému lze vždy dosáhnout sekvenčním prováděním konečné množiny elementárních příkazů (programů) z pevné množiny příkazů.
První elektronické počítače ze 40. a 50. let byly přeprogramovány přepínáním přepínačů a přepojováním kabelů, což vyžadovalo hluboké pochopení jejich vnitřní struktury. Mezi tyto stroje patřil zejména ENIAC (který však byl následně upraven tak, aby jej bylo možné alespoň částečně programovat pomocí děrných štítků ) [19] .
Důležitým krokem k moderním počítačům byl přechod na architekturu Johna von Neumanna , poprvé ztělesněnou ve Velké Británii , v počítači vyvinutém pod vedením J. R. Womersleyho a za účasti Alana Turinga , známého jako Mark I. První program uložený v paměti počítače byl spuštěn 21. června 1941. Pro usnadnění programování tohoto stroje přišel Turing se zkráceným kódovacím systémem, ve kterém byla sekvence dálnopisných symbolů výstupu na děrnou pásku použita k reprezentaci binárního strojového kódu [20] .
Jeden z Turingových zaměstnanců, John Mauchly , později se stal (spolu s Johnem Presperem Eckertem ) hlavou a zakladatelem Eckert-Mauchly Computer Corporation , která vyvinula počítače jako BINAC a UNIVAC , instruoval své zaměstnance, aby vytvořili překladač algebraických vzorců. Přestože se tohoto ambiciózního cíle ve 40. letech 20. století nepodařilo dosáhnout, pod vedením Mauchlyho byl vyvinut tzv. „ krátký kód “, ve kterém byly operace a proměnné kódovány dvouznakovými kombinacemi. Krátký kód byl implementován pomocí interpretu [21] . Grace Hopper , pracující od počátku 50. let na sadě matematických podprogramů pro UNIVAC I , vynalezla linkerový program " A-0 " , který po zadání identifikátoru získal požadovaný podprogram z knihovny uložené na magnetické pásce a zapsal to až na přidělené místo v RAM [22] .
První programovací jazyky na vysoké úrovni se objevily v padesátých letech minulého století, kdy John Backus vyvinul FORTRAN a Grace Hopper vyvinula COBOL . Takový vývoj značně zjednodušil psaní aplikačního softwaru, který pak psala každá společnost, která si zakoupila počítač [23] .
Na počátku 50. let se koncept softwaru ještě nevyvinul. Takže o něm nebylo řečeno nic v článku Fortune z ledna 1952 „Kancelářští roboti“, který popisoval počítače Univac. Přestože se již v článku hovoří o počítači jako o univerzálním zařízení, programovací proces v tomto článku byl anachronicky popsán jako „přepínání přepínačů“ [24] . V polovině 50. let byl však vývoj softwaru na zakázku [25] již dobře zavedený , i když samotný termín „software“ se ještě nepoužíval, pak se jednoduše hovořilo o „ programování na zakázku “ nebo „ programovací službě “ [26] . První softwarová společnost byla System Development Corporation , založená v roce 1956 z americké vládou vlastněné RAND Corporation [27] . V této fázi byly zákazníky softwaru (jedinečného a nereplikovatelného) velké korporace a vládní agentury a cena jednoho milionu dolarů za program nebyla neobvyklá [28] .
Samotný termín „software“ se začal široce používat od počátku 60. let 20. století, kdy začalo být relevantní rozlišovat mezi příkazy, které řídí počítač a jeho fyzickými součástmi – hardwarem [29] . Ve stejné době začalo formování softwarového průmyslu jako nezávislého odvětví . První společností zabývající se vývojem softwaru byla společnost Computer Sciences Corporation , založená v roce 1959 Royem Nuttem a Fletcher Jones s počátečním kapitálem 100 $. Prvními klienty CSC a softwarové společnosti, které je následovaly, byly super velké korporace a vládní organizace jako NASA [30] a firma nadále působila na trhu zakázkového softwaru, stejně jako jiné rané soukromé softwarové startupy jako Computer Usage Company (CUC) [27] .
Prvními samostatně vydanými softwarovými produkty, které nebyly dodávány s počítačovým hardwarem, byly generátor počítačové dokumentace AUTOFLOW , který automaticky kreslí vývojové diagramy , vydané společností Applied Data Research v roce 1965, a překladač programovacího jazyka MARK-IV , vyvinutý v letech 1960-1967. ve společnosti Informatika, Inc. [26] [31] Vzestup trhu podnikového softwaru úzce souvisí s příchodem rodiny počítačů IBM System/360 . Dostatečně masivní, relativně levné počítače, vzájemně kompatibilní na úrovni programového kódu, otevřely cestu pro replikovaný software [32] .
Postupně se okruh zákazníků softwaru rozšiřoval, což podnítilo vývoj nových typů softwaru. Tak se objevily první firmy specializující se na vývoj počítačově podporovaných konstrukčních systémů [30] .
V listopadu 1966 se Business Week poprvé zabýval tématem softwarového průmyslu. Článek se jmenoval „Software Gap – A Growing Crisis for Computers“ a hovořil jak o perspektivách tohoto byznysu, tak o krizi spojené s nedostatkem programátorů [24] . Typické softwarové produkty té doby sloužily k automatizaci běžných obchodních úkolů, jako jsou mzdy , nebo k automatizaci obchodních procesů středně velkého podniku, jako je výrobní závod nebo komerční banka . Cena takového softwaru se obvykle pohybovala mezi 5 000 a 100 000 $ [26] .
Vznik prvních osobních počítačů (např. Altair 8800 ) v 70. letech vytvořil předpoklady pro vznik masového softwarového trhu. Zpočátku byly programy pro osobní počítače distribuovány v „krabicové“ formě prostřednictvím nákupních center nebo poštou a byly za cenu 100–500 $ [26] .
Významné pro rodící se masový trh se softwarem byly takové produkty jako tabulkový procesor VisiCalc , jehož myšlenka přišla na Daniela Bricklina , když jako absolvent MIT a softwarový inženýr na DEC absolvoval kurzy na Harvard Business School a chtěl uklidněte se nudnými finančními výpočty [33] a textovým procesorem WordStar , který vyvinul Seymour Rubinstein po pečlivém prostudování potřeb trhu [34] . O VisiCalc se nejprve hovořilo jako o killer aplikaci , tedy počítačové aplikaci, která už svou existencí dokazuje nutnost (a často i nutnost nákupu) platformy, pro kterou je takový program implementován. Pro VisiCalc a WordStar se takovou platformou staly osobní počítače, které se díky nim staly pracovním nástrojem z bohaté hračky pro geeky . Odstartovaly revoluci mikropočítačů a tyto programy mají konkurenci: tabulkové procesory SuperCalc , Lotus 1-2-3 , systém správy databází dBase II , textový procesor WordPerfect atd. [35] Textové procesory, tabulkové procesory, systémy pro správu databází a také grafické editorů , se brzy staly základem trhu se softwarem pro osobní počítače [36] .
V polovině 90. let umožnila hromadná replikace snížit cenu softwaru pro osobní počítače na sto až pět set dolarů [26] , přičemž podnikání výrobců softwaru nabylo do jisté míry podobnosti s podnikáním společností pro nahrávání zvuku [35 ] .
Přístupy ke klasifikaci softwaru jsou dostatečně podrobně formalizovány v mezinárodní normě ISO/IEC 12182 [37] . Konkrétně první verze standardu stanovila 16 kritérií pro klasifikaci softwarových nástrojů:
Příklady tříd funkcí PS jsou:
Příklady tříd aplikační domény jsou:
Příklady tříd stupnice PS jsou:
Příklady tříd kritičnosti jsou:
Příklady uživatelských tříd jsou:
Příklady tříd stability jsou:
Podle stupně přenositelnosti se programy dělí na
Podle způsobu distribuce a použití se programy dělí na
Podle účelu programu se dělí na:
Podle typů programů se dělí [38] na:
Klasifikace softwaru podle průmyslových odvětví zahrnuje několik přístupů. Obecně se software dělí na zakázkový , tedy vytvořený pro konkrétního zákazníka, a produktový , tedy vytvořený pro prodej na trhu. Software se zase podle typu spotřebitele dělí na Business-to-Business ( B2B ), tedy pro podniky a organizace, a Business-to-Consumer ( B2C ), tedy pro jednotlivce [39] .
Jednou z možností třídění podle odvětví je rozdělení na software pro firemního zákazníka ( anglicky enterprise software vendors ), software pro masového spotřebitele ( anglicky mass-market software vendors ) a IT služby [40] .
Dalším přístupem je rozdělení softwarového průmyslu do tří sektorů: všeobecné obchodní produkty ( anglicky Business Function Software ), specializované obchodní produkty ( anglicky Industrial Business Software ) a produkty pro soukromý život ( anglicky Consumer Software ). Univerzální obchodní produkty jsou určeny pro podporu fungování podniků a organizací a zahrnují účetní systémy, finanční systémy, systémy personální evidence atd. Specializované obchodní produkty jsou zaměřeny na úkoly specifického typu podnikání: geografické informační systémy, zdravotnické systémy , logistické systémy atd. n. Mezi produkty pro ochranu soukromí patří antivirový software a software pro zabezpečení informací, různé užitečné utility, vzdělávací software, multimediální software atd. [39]
Sada programů, které poskytují kontrolu nad komponentami počítačového systému , jako je procesor , RAM , vstupně-výstupní zařízení , síťová zařízení , fungující jako „interlayer interface“, na jehož jedné straně je hardware a na druhé straně uživatel. aplikací. Na rozdíl od aplikačního softwaru systémový software neřeší konkrétní praktické problémy, ale pouze zajišťuje provoz jiných programů, poskytuje jim servisní funkce, které abstrahují detaily implementace hardwaru a firmwaru výpočetního systému, spravuje hardwarové zdroje výpočetního systému . Přiřazení toho či onoho softwaru k systému je podmíněné a závisí na konvencích použitých v konkrétním kontextu. Systémový software zpravidla zahrnuje operační systémy , utility , systémy pro správu databází , širokou třídu middlewaru .
Aplikační software je program určený k provádění určitých uživatelských úkolů a je navržen pro přímou interakci s uživatelem.
Uživatel obdrží software spolu s licencí , která mu dává právo používat softwarový produkt v souladu s podmínkami licence. Tyto podmínky zpravidla omezují možnost uživatele přenést softwarový produkt na jiné uživatele, změnit kód.
Některý software je dodáván s bezplatnou licencí. Tyto licence vám umožňují distribuovat software a také jej upravovat.
Část softwaru je distribuována jako freeware. Existuje také shareware. Uživatel v tomto případě obvykle na určitou zkušební dobu obdrží zdarma demo verzi softwarového produktu s poněkud omezenými funkcemi a po jejím skončení je povinen produkt buď zakoupit, nebo odinstalovat.
![]() | ||||
---|---|---|---|---|
|
Vývoj softwaru | |
---|---|
Proces | |
Koncepty na vysoké úrovni | |
Pokyny |
|
Vývojové metodiky | |
Modelky |
|
Pozoruhodné postavy |
|
softwaru | Distribuce|
---|---|
licence | |
Příjmové modely | |
Způsoby dopravy |
|
Podvodné/ilegální | |
jiný |
|