Software
Co je to software?
Software je ve světě IT vše, co není Hardware Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém
Podívejme se tedy na jednotlivé objekty, které řadíme do kategorie software
Program je sada instrukcí zapsaná programovacím jazykem, která říká počítači, co má konat
Program se skládá z algoritmů (množina instrukcí, která vykoná určitou funkci) a z meta algoritmů (množina instrukcí vybírající algoritmy)
Kolem vzniku a existence programů existuje mnoho profesí: IT Manažer: zajišťuje hladký průběh vývoje programu a komunikaci Inženýr požadavků: zjišťuje od zákazníka co má program dělat Softwarový architekt: navrhuje model programu Programátor (junior/senior): vytváří program Tester: testuje program po programátorovi IT SW Support: zaučuje a řeší problémy s programem
Příklad programu vypisující text Hello World na standardní výstup (obrazovka počítače)
Hello world v jazyce FORTRAN na děrném štítku
Hello world v jazyce FORTRAN90
Kvadratická rovnice
Real:: a,b,c,diskr,x1,x2 Read *, a,b,c Diskr = b**2 4*a*c If (Diskr > 0) then x1 = (-b + sqrt(diskr))/(2*a) x2 = (-b sqrt(diskr))/(2*a) else if (Diskr = 0) then x1 = -b/(2*a) else print*, nema reseni v oboru Realnych cisel End If print*, koreny jsou:, x1,x2
Proces je jedna spuštěná instance programu (program je MS Word, ten můžu spustit vícekrát = vytvořit více procesů programu MS Word najednou)
Programy obecně rozdělujeme na systémové (OS, ovladače) a uživatelské (těm říkáme aplikace)
Aplikace pomáhají uživatelům řešit určité problémy MS Word pomáhá psát dokumenty, Windows media player pomáhá přehrát filmy
Systémový software přímo ovládá samotný počítač, aplikace ho využívají k mnoha činnostem
Jaké znáte aplikace vy? Co všechno systémový software ovládá?
K čemu software slouží z pohledu různých oborů?
Enterprise prostředí: software slouží pro podporu business procesů (Databázové aplikace, Csharp, Java, Access, Excel) Přírodní vědy: software slouží k simulaci nad vytvořenými modely (Fortran, C++, Numerické knihovny, molekulární programy) Humanitní vědy: software slouží ke zpracování statistických dat (Excel, R) Umělecká činnost: Photoshop, Sony Vegas Domácnosti: software slouží k multimediálním aktivitám (Windows media player, Chrome, Irfan View)
Jeden program vládne všem Jeden jim vše káže Jeden všechny přivede uživateli spustí
K čemu slouží operační systém a jaké znáte?
OS je zaveden do paměti počítače při spuštění a zůstává v paměti až do ukončení běhu PC Skládá se z jádra (kernel) a systémových nástrojů Hlavním úkolem je: Ovládání počítače uživatelem (IO přesměrování a kolona, spouštění procesů) Abstrakce nad hardwarem (vytvoření API pro procesy) Správa systémových prostředků (RAM, CPU čas procesům)
Ovladače
Překladače
Knihovní funkce Matematické: goniometrické funkce, absolutní hodnot, zaokrouhlování, mocniny, konstanty Pro manipulaci s řetězci: parsování podslov ze slov, odsekání bílých znaků Vykreslování objektů na obrazovku Konkurentní a paralelní běh aplikací
Mobilní systémové programy
Druhy aplikací
Kancelářské balíky
MS Word
MS Excel
MS Powerpoint
MS OneNote
MS Outlook
MS Access
Internetové prohlížeče
Aplikace pro úpravu fotek
Internetové komunikátory
Vědecké aplikace
Počítačové hry
Kde je software spouštěn/umístěn?
Server side (PHP, ASP.NET, J2EE Java)
Client side (javascript, angular, jquery)
Licencování softwaru
Komerční SW: Musí se za poplatek koupit licence k užívání produktu (krabicová, digitální) Freeware: Free trial: Funguje po určitou dobu bez licence Freemium: Základní funkcionalita zadarmo, za lepší funkcionalitu je nutné platit Klasický freeware: Zadarmo, ale je programově uzavřen a nesmí se distribuovat bez svolení autora Open Source: Zadarmo a plně otevřen k úpravám typicky Linux programy pod GNU
Test
1) co je to aplikace 2) co je to proces 3) co je to program 4) co je to algoritmus 5) co je to systémový program
1) jaké znáte aplikace 2) jaké znáte operační systémy 3) jaké znáte webové prohlížeče 4) jaké aplikace jsou součástí MS Office 5) jaké znáte aplikace pro multimédia
1) Co dělá programátor? 2) Co dělá tester programů? 3) Co dělá IT manager (vedoucí)? 4) Co dělá inženýr požadavků? 5) Co dělá IT SW Support (podpora)?
1) MS Word použiju když? 2) MS Excel použiju když? 3) MS Outlook použiju když? 4) MS OneNote použiju když? 5) MS PowerPoint použiju když?
1) Mohu přepsat freeware? 2) Co převážně dělají aplikace na serveru? 3) Mohu přepsat open source SW? 4) K čemu jsou SW knihovny? 5) K čemu je operační systém?