1. Obecně o programování
|
|
- Karel Pokorný
- před 8 lety
- Počet zobrazení:
Transkript
1 1. Obecně o programování Cíl látky V tomto bloku bude věnována pozornost základnímu pojmu co je to vlastně programování. Budou vysvětleny jaké činnosti jsou potřebné a jak by měly být řazeny, aby vznikl požadovaný software. K tomu aby pojem programování bylo možné lépe chápat, jsou v tomto bloku uvedeny programovací paridigmata tak, jak historicky vznikala. V závěru bloku je podrobněji řečeno jak se a kdo se hlavně podílel na vzniku objektové orientace Co je to programování Slovo programování se používá různých významech. Programují se různé přístroje jako například rekodéry videa, topení, klimatizace apod. V my se budeme dále věnovat programování aplikací pro samočinné počítače. Při programování bychom se neměli soustřeďovat pouze tvorbu zdrojových kódu v konkrétních programovacích jazycích ale vývoj by měl procházet postupně několika specializovanými činnostmi: 1. sběrem požadavků na systém 2. analýzou problému 3. návrhem řešení 4. implementací 5. ověřením Všech těchto pět základních činností vývoje softwaru je dobré několikrát zopakovat. Tedy vyvíjet software iterativně a v každé iteraci realizovat jen část požadovaných funkcí. Cílem tohoto postupu je co nejdříve testovat vykonavatelný kód, tak aby včas odhalily chyby nebo různá nedorozumění. Mluvíme zde o programu a o softwaru. Pod pojmem program můžeme opravdu myslet jenom vykonavatelný kód, který je výsledkem překladu a sestavení, a někdy možná i zdrojové kódy. Zatímco do pojmu software zahrnujeme vše co tvoří program a dále veškerou další dokumentaci. Všechny tyto věci zahrnujeme pod společný pojem artefakty. Artefakty se, i při tvorbě softwaru, opravdu rozumí to, že se jedná produkty vytvořené člověkem. Tyto artefakty produkované v projektech s vývojem softwaru mohou mít různé podoby a formy: textové dokumenty s požadavky, s popisy případů užití, s testovacími předpisy,... analytické a návrhové modely vykonavatelné kódy aplikací a automatizovaných testů dokumentace ke zdrojovým kódům různé skripty na řízení překladu, sestavení nebo testů uživatelské příručky 1
2 Sběr požadavků Prvotní věcí v projektu s vývojem softwaru je shromáždění požadavků na chování budoucí aplikace a na omezení, která se musí respektovat. Požadavky lze rozdělit do dvou základních kategorii Funkční požadavky Nefunkční požadavky Specifikují to co se od systému očekává. Specifikují různá omezen, jako jsou například pro jaký operační systém bude aplikace určena, jaký typ databáze má využívat. Zatímco výkonnostní parametry mohou definovat například počet transakcí za určitou dobu, doby odezev, množství uschovaných dat. Podcenění významu požadavků je podle statistik nejčastější příčinou neúspěchu projektů s vývojem softwaru. Velmi cenným zdrojem informací o funkcích budoucího softwarového systému jsou případy užití, které rozvíjejí funkční požadavky. Při jejich sestavování se řídíme pouze pohledem budoucích uživatelů co budou ze systémem dělat. Přitom se naprosto nepřihlíží tomu, jak ten software bude realizován. Případy užití a jejich specifikace slouží po celou dobu vývoje softwaru pro návrháře, kodéry a testery. Nesmí se též zapomenout, že tyto informace mohou posloužit velmi účinně při tvorbě uživatelských příruček. Pokud nejsou požadavky a případy užití v projektu s vývojem softwaru k dispozici, je takový projekt charakterizován velkou zmatečností, neustálým předěláváním, nedodržování termínů a mnohdy i překročení nákladů Analýza Cílem analýzy je pochopit na nejvyšší úrovni abstrakce co se od systému očekává a jak logicky by měl pracovat. Tedy jaké jsou hlavní funkce tohoto systému a jaké jsou vztahy mezi nalezenými reálnými objekty. Analýza se sestavuje vždy v jazyku dané problémové oblasti. To znamená v pojmech, které používá zadavatel a budoucí uživatelé vyvíjeného systému. Je nutné se vyvarovat pojmům z oblasti programovacích jazyků, softwarových technologií apod. Důvodem je to, že se v této fázi je nutné se domluvit se zadavateli. Měl by zároveň vzniknout překladový slovník mezi světem zadavatelů a vývojářů. Výsledky analýzy je dobré zpracovávat pomocí vhodného modelovacího jazyka v podobě modelu. Jako nejlepším modelovacím jazykem, který se již stal všeobecně známým standardem, je Unified Modeling Language (UML). I k analýze lze přistupovat objektově, kdy významným pomocníkem je právě UML. Po objektové analýze může následovat kromě přirozeného objektového návrhu i neobjektový návrh. To záleží na omezeních daného projektu, například tehdy, když se požaduje naprogramování v neobjektovém programovacím jazyku. 2
3 Návrh Při návrhu se návrháři zaměřují na základní architektonické principy jak bude daný software realizován. Zde se již používají pojmy z programátorského prostředí a použitých technologií. Zde dochází ke konvertování jedné analytické tříd i do několika návrhových tříd, které již mohou mít technologické názvy tříd, metod i atributů. Návrhové třídy se vyznačují tedy daleko menší úrovní abstrakce než analytické třídy. I návrhové třídy je dobré modelovat pomocí UML a výsledek ukládat pomocí vhodného nástroje do modelu. Nástroje jsou známy většinou pod zkratkou CASE. CASE nástroje většinou jsou schopny pokrýt celý životní cyklus vývoje softwaru. Tj. od zachycení požadavků, případů užití, analytických a návrhových tříd.dále dokáží převést model tříd do koster vzdrojových v různých programovacích jazycích nebo i obrácený postup tj., že zdrojových kódů vytvořit zpětně model tříd Implementace Implementací se rozumí samotné vytváření zdrojových kódů. Co se týče objemu prací je tato činnost nejrozsáhlejší. Z toho vyplývájí tyto závěry: 1. Každé nepochopení skutečných požadavků zadavatele může později znamenat značné přepracování zdrojových kódů. 2. Tím ovšem dojde ke ztrátě vynaložené práce, zvýšení nákladů a nevratnou ztrátu času Ověření Ověřováním se zjišťuje shoda mezi požadavky a výsledným produktem. Ověřování lze rozdělit na dvě části: na přezkoumání na testování Přezkoumání Přezkoumání je metoda jak ověřit takové artefakty, které nelze automaticky zkontrolovat. Jsou to většinou textové dokumenty. Takové dokumenty musí vždy překontrolovat člověk. Testování Testováním rozumíme dokumentované porovnání chování již hotových aplikací proti požadavkům. Testování se již může provádět pomocí různých nástrojů nebo člověkem, ale vždy musí být tento proces dokumentován. Dokumentováním v testování se rozumí, že je podle požadavků připraven testovací postup, který se provede s testovanou aplikací. Výsledek testování se zase musí dokumentovat v podobě zprávy nebo protokolu. 3
4 K podpoře testování je k dispozici řada různých nástrojů a informačních databází. Problematice testování je věnováno samostatné téma Programovací paradigmata Trocha historie nikoho nezabije Přehled programovacích paradigmat je zde uveden z důvodu ujasnění si, jak postupně se měnily názory jak programovat. Většina informací je ze Důležitá pasáž Obecně paradigma je určitá množina vzorů, vztahů či vzorců myšlení. Programovací paradigma je výchozí imaginární schematizace úloh, soubor náhledů na obor informační/výpočetní problematiky soubor přístupů k řešení specifických úloh daného oboru soustava pravidel, standardů a požadavků na programovací jazyky Jednotlivá paradigmata mohou zřetelně ulehčit práci v rámci svého určení a komplikovat nebo úplně odsunout "neohniskové" úlohy do zcela "nekompatibilních" dimenzí (například některé jazyky nelze použít k výpočtům nebo jiné zase k interakci s uživatelem). Zdroj: Naivní paradigma Naivní paradigma bývá někdy chápáno jako samostatné paradigma a ještě častěji se mezi paradigmaty programování ani neuvádí. Naivní způsoby programování se vyznačují jakousi všudypřítomnou chaotičností, mají obvykle nesystematickou syntaxi i sémantiku. V některých rysech tento přístup mají podobné vlastnosti jako nestrukturované jazyky. Typickým zástupcem je například jazyk BASIC Sekvenční paradigma Sekvenční programovaní byl jeden z prvních stylů programování. Jeho základním principem bylo sekvenční (sériové) řazení příkazů. Přechod v sekvenci příkazů byl měněn pomocí příkazu GOTO, který umožňoval přejít na jakýkoliv příkaz, který byl opatřen tzv., návěštím nebo dokonce se dalo přejít na jakoukoliv adresu v operační paměti. Tento styl programování vyplynul z instrukcí strojového kódu, jako jsou instrukce nepodmíněných a podmíněných skoků. Sekvenční programování využívaly tyto programovací jazyky: asemblery BASIC 4
5 FORTRAN Sekvenční styl se vyznačuje nepřehledným a nečitelným zápisem u rozsáhlých programů, protože volnost programátora není téměř ničím omezena a tyto programovací jazyky obsahují velmi často pouze primitivní konstrukce. V současné době se tyto jazyky používají minimálně. Assemblery nejčastěji k programování jednočipových mikroprocesorů. FORTRAN přežívá v programování matematických úloh. Klasický BASIC se výrazně proměnil ve Visual Basic s objektovou vestavbou. Zdroje: Strojový kód [ Jazyky symbolických adres tzv. assemblery [ Jazyk_symbolických_adres] BASIC [ FORTRAN [ Strukturované paradigma Strukturované programování nebo též procedurální programování vychází z předchozího sekvenčního stylu, kdy přebírá sekvenční řazení a odstraňuje nadměrné používání příkazů typu GOTO. Novým prvkem je, že sekvenci příkazů vkládá do nových jazykových konstrukcí tzv. struktur. Základní strukturu tvoří blok, který obsahuje sekvenci příkazů. Tyto bloky lze do sebe vnořovat, opakovat nebo volit. Kromě toho, že sekvence instrukcí lze různě strukturalizovat, lze strukturalizovat i data do různorodých tvarů (záznamů). Jakoukoliv strukturu lze graficky vyjádřit stromem. Tím se programy přibližují některým situacím v reálném životě. Ovšem ne všechny situace v reálném životě lze takto řešit pouze rozpadem do strukturálního rozkladu. Graficky lze programové struktury zobrazit pomocí struktogramů. Příkladem může být Nassi-Shneiderman-Diagramm [ Shneiderman-Diagramm]. Existuje i česká varianta, tzv. KoPeNoGramy autorů Kofránek, Pecinovký, Novak, která vznikla v 80 letech. Příklady těchto kopenogramu lze nalézt například na stránkách věnovaných programovacímu jazyku Karel [ Zdrojové kódy v tomto stylu jsou daleko čitelnější, protože zavádějí abstraktní úrovně, což je velmi blízké k lidskému myšlení. Jazyky obsahují již složitější příkazy, takže programátor se nemusí zabývat detailními konstrukcemi tak, jak to bylo o jazyků se sekvenčním stylem. Samozřejmě z toho vyplývá, že programátor je již více omezen, ale ziskem je bezpečnější a srozumitelnější zdrojový kód. Typickými jazyky pro strukturalizované programování jsou historicky jeden z prvních byl ALGOL [ ALGOL] Pascal Pascal [ 5
6 jazyk C [ Objektové paradigma Objektové paradigma se nejvíce přibližuje k principům reálného světa, protože umožňuje vytvářet vztahy mezi libovolný objekty, které tvoří síť vzájemně komunikujících objektů. Vlastnosti: základním stavebním prvkem je objekt každý objekt má stav a chování objekty mezi sebou komunikují prostřednictvím zpráv grafické vyjádření vztahů mezi objekty je síť Přejímá vše ze strukturálního programování pro implementaci těla metod. Objektové paradigma je hlavním tématem předmětu IOOP, proto je v této kapitole uvedena pouze tato stručná charakteristika. Podrobnější informace o tomto paradigmatu budou uvedeny v dalších kapitolách. Čistě objektové programovací jazyky: Smalltalk [ Ruby [ Hybridní jazyky Java C++ Java [ C++ [ C Sharp [ Další programátorské styly nebo přístupy V této kapitole jsou uvedeny další programátorské Imperativní programování Imperativní programování je jedno z programovacích paradigmat, neboli způsobů, jak jsou v programovacím jazyku formulována řešení problémů. Imperativní programování popisuje výpočet pomocí posloupnosti příkazů a určuje přesný postup (algoritmus), jak danou úlohu řešit. Program je sadou proměnných, jež v závislosti na vyhodnocení podmínek mění pomocí příkazů svůj stav. Základní metodou imperativního programování je procedurální programování, tyto termíny bývají proto často zaměňovány. 6
7 Zdroj: Deklarativní programování Deklarativní programování je založeno na myšlence programování aplikací pomocí definic co se má udělat a ne jak se to má udělat. Opakem tohoto principu je imperativní programování popisující jednotlivé úkony pomocí algoritmů. Zjednodušeně to lze popsat tak, že imperativní programy obsahují algoritmy, kterými se dosáhne chtěný cíl, zatímco deklarativní jazyky specifikují cíl a algoritmizace je ponechána programu (interpretu) daného jazyka. Zdroj: Funkcionální programování Funkcionální programování patří mezi deklarativní programovací principy. Alonzo Church [ vytvořil formální výpočtový model nazvaný Lambda kalkul [ Church pak společně s Turingem ukázal, že lambda kalkul (a další výpočetní modely) má výpočetní sílu Turingova stroje, což otevřelo cestu k Churchova- Turingova teze [ Výpočtem funkcionálního programu je posloupnost vzájemně ekvivalentních výrazů, které se postupně zjednodušují. Výsledkem výpočtu je výraz v normální formě, tedy dále nezjednodušitelný. Program je chápán jako jedna funkce obsahující vstupní parametry mající jediný výstup. Tato funkce pak může být dále rozložitelná na podfunkce. Programovací jazyk C Sharp již lamda kalkul obsahuje a pro programovací jazyk Java bude doplněn ve verzi 8. Stavové programování Při stavovém programování je systém naprogramován tak, aby podle potřeb a vnějších požadavků přecházel mezí různými stavy. V každém stavu potom systém nabízí odpovídající funkce Událostmi řízené programování Při událostmi řízeném programování je systém neustále v podstatě v témže stavu tj. v čekání na následující událost. Jakmile se systém dočká události, obslouží ji odpovídajícím způsobem, a opět čeká na další Jak vznikala objektová orientace Historie objektové orientovaného softwarového inženýrství rekapituluje historii tradičního softwarového inženýrství. Trvalo desítky let než se zformovaly procedurální a databázové konstrukce. U objektového programování se to podařilo v rámci několika let. Vývoj softwaru počal prostě programováním. Jak rostla velikost softwarových produktů, tak si začali lidé kolem vývoje softwaru uvědomovat, že nelze jen tak pouze zapisovat programový kód. 7
8 Kdo se hlavně podílel na vzniku objektově orientovaného programování? Byli to především: Ole-Johan Dahl [ Kristen Nygaard [ Alan Kay [ (CZ [ cs.wikipedia.org/wiki/alan_kay]) Adele Goldberg [ %28computer_scientist%29] Barbara Liskov [ Liskov Substitution Principle (LSP) [ Liskov_substitution_principle] David Parnas [ I would advise students to pay more attention to the fundamental ideas rather than the latest technology. The technology will be outof-date before they graduate. Fundamental ideas never get out of date. However, what worries me about what I just said is that some people would think of Turing machines and Goedel's theorem as fundamentals. I think those things are fundamental but they are also nearly irrelevant. I think there are fundamental design principles, for example structured programming principles, the good ideas in "Object Oriented" programming, etc. (viz) [ bcupp/lookback/softwareengineering/davidparnas.poster.htm] Jean Ichbiah [ Bjarne Stroustrup [ C++ Další odkazy Object-oriented programming [ Turingova_cena [ Historie objektové orientace převzato a zjednodušeno z knihy Základy objektově orientovaného návrhu v UML Vlastnosti objektů reálného světa Než bude popsána samotná objektová orientace, je vhodné si připomenout, že se pohybujeme ve světě reálných objektů, které mají řadu nejrůznějších atributů, jejichž obsah a počet vzájemně objetky od sebe odlišují mnohé atributy jsou pro mnoho objektů společné, jako například barva, hmotnost některé atributy jsou pro daný objekt stálé (například hmotnost), jiné lze měnit (například jméno) 8
9 mnoho atributů může být reprezentováno jinými objekty (dům má okna, okna mají rámy, rámy mají skla), jeden objekt je složen z mnoha dalších a dohromady tvoří jeden celek existují takové atributy, které odkazují na jiné objekty, přičemž mezi nimi je rovnoprávný vztah objekty lze rozdělit do skupin stejného druhu mezi objekty existuje přirozená hierarchie objekty nejsou pasivními nositeli atributů, ale dokáží i aktivně reagovat na akce okolního světa, který je reprezentován zase jenom objekty. 9
IB111 Úvod do programování skrze Python Přednáška 13
IB111 Úvod do programování skrze Python Přednáška 13 Programovací jazyky Nikola Beneš 14. prosinec 2016 IB111 přednáška 13: programovací jazyky 14. prosinec 2016 1 / 21 Osnova dnešní přednášky Programovací
Více3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
Více1 Strukturované programování
Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,
VíceProgram a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
VíceVyřešené teoretické otázky do OOP ( )
Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika
VíceÚvod. Programovací paradigmata
.. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky
Více1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata
1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata Studijní cíl Tento první blok celého kurzu zaměřen na zvládnutí základních pojmů z oblasti programování a
VíceIB111 Programování a algoritmizace. Programovací jazyky
IB111 Programování a algoritmizace Programovací jazyky Programovací jazyky Programovací jazyk Prostředek pro zápis algoritmů, jež mohou být provedeny na počítači Program Zápis algoritmu v programovacím
Více2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování
1. Teoretické základy modelování na počítačích 1.1 Lambda-kalkul 1.1.1 Formální zápis, beta-redukce, alfa-konverze 1.1.2 Lambda-výraz jako data 1.1.3 Příklad alfa-konverze 1.1.4 Eta-redukce 1.2 Základy
VíceIB111 Úvod do programování skrze Python Přednáška 13
IB111 Úvod do programování skrze Python Přednáška 13 Programovací jazyky Nikola Beneš 18 prosinec 2015 IB111 přednáška 13: programovací jazyky 18 prosinec 2015 1 / 21 Osnova dnešní přednášky Programovací
VíceMATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceMasarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
VíceVlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost
Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
VíceAlgoritmy a algoritmizace
Otázka 21 Algoritmy a algoritmizace Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceUML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W
UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W Co je to UML Evoluce UML Diagram komponent Diagram odbavení Diagram tříd Aktivity diagram Stavový diagram Sekvenční diagram Diagram
VíceMatematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
VíceSOFTWAROVÉ INŽENÝRSTVÍ 1
Metodický list č. 1 Název tématického celku: Úvod do softwarového inženýrství Základním cílem tohoto tematického celku je vysvětlení smyslu discipliny nazývané softwarové inženýrství. Tematický celek zahrnuje
VíceKlasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W
Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W Osnova přednášky Co to je softwarové inženýrství Softwarový proces Metodika a metoda Evoluce softwarových
VíceObsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VíceProgramování II. Třídy a objekty (objektová orientovanost) 2018/19
Programování II Třídy a objekty (objektová orientovanost) 2018/19 Osnova přednášky Objektový přístup (proč potřebujeme objekty). Třídy, objekty,... Příklad. Proč potřebujeme objekty? Udržovatelnost softwaru
VíceUnifikovaný modelovací jazyk UML
Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li
VíceJaký programovací jazyk učit jako první a jak ho učit?
Vojtěch Merunka Katedra informačního inženýrství PEF ČZU Praha Jaký programovací jazyk učit jako první a jak ho učit? strana 1 Motivace dříve strana 2 Motivace... pokračování dnes strana 3 Obsah presentace
VíceObjektová tvorba SW, Analýza požadavků 2006 UOMO 53
Objektová tvorba SW, Analýza požadavků 2006 UOMO 53 Osnova Základní principy tvorby SW Fáze tvorby SW v předmětu UOMO Analýza požadavků Modelování typových úloh 2006 UOMO 54 Tvorba SW Dříve umění vyvolených
VíceVyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
Více11. Přehled prog. jazyků
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
VícePHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
VíceZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2014 5.3-5.8 9/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 UML unifikovaný modelovací jazyk Zkratka tohoto
VíceProgramování II. Modularita 2017/18
Programování II Modularita 2017/18 Modul? Osnova přednášky Vývoj programování Modularita Příklad Vývoj programování Paradigmata programování Jak a proč se jazyky vyvíjejí? V čem se OOP liší od předchozích
VíceSada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 01. Základní pojmy a principy programování Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 22. Otázka : Úvodní fáze rozpracování softwarového projektu. Postupy při specifikaci byznys modelů. Specifikace požadavků a jejich rozpracování pomocí
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Více4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody
4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty
VíceMaturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Více5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina
5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.
VíceZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 2+2.1 3/14
ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 2+2.1 3/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 12 0:40 Programování na PC Při programování na PC musíme
VíceVyužití SysML pro tvorbu modelů v systémovém inženýrství
Využití SysML pro tvorbu modelů v systémovém inženýrství Antonín Srna, Ústav informatiky, Provozně ekonomická fakulta, Mendelova univerzita v Brně, xsrna2@mendelu.cz Abstrakt Článek se zaobírá univerzálním
VíceJak správně psát scénáře k případům užití?
Jak správně psát scénáře k případům užití? Autor RNDr. Ilja Kraval 2007 http://www.objects.cz K napsání tohoto článku mne inspiroval tento mail: Dobrý den pane Kravale, chci Vás poprosit o radu, která
Více6 Příkazy řízení toku
6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní
VícePrincipy OOP při tvorbě aplikací v JEE. Michal Čejchan
Principy OOP při tvorbě aplikací v JEE Michal Čejchan Témata přednášky Principy OOP - připomenutí Úvod - co nás vede k používání OOP Reálný svět - jak (ne)používáme OOP Nedostatky na úrovni programovacích
VíceAnalytická specifikace a její zpracování
Analytická specifikace a její zpracování Analýza Měla by odpovědět na otázku CO? Musí definovat konceptuální model řešeného problému datový model entity, vztahy, omezení funkční model služby pro záznam,
VíceVýukový materiál zpracován v rámci projektu EU peníze školám
Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední
VíceInformační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.
3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelování.
VíceLekce 01 Úvod do algoritmizace
Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním
VíceAlgoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
Více1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
VíceANOTACE vytvořených/inovovaných materiálů
ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a
VíceKritéria hodnocení praktické maturitní zkoušky z databázových systémů
Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
VíceKapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů
- 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa
VíceMaturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.
Maturitní témata IKT, školní rok 2017/18 1 Struktura osobního počítače Von Neumannova architektura: zakreslete, vysvětlete její smysl a popište, jakým způsobem se od ní běžné počítače odchylují. Osobní
VíceNávrh softwarových systémů - architektura softwarových systémů
Návrh softwarových systémů - architektura softwarových systémů Jiří Šebek Návrh softwarových systémů (B6B36NSS) Převzato z přednášky X36AAS M. Molhanec Co je to architektura 2 Využívá se v různách oborech
Více10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému
VícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
VíceProgramovací jazyky Přehled a vývoj
Programovací jazyky Přehled a vývoj 1 Programování a programovací jazyk Historie a současnost programovacích jazyků Objektově orientované a vizuální programování Značkovací a skriptovací jazyky 2 Programování
Více5 Požadavky a jejich specifikace
5 Požadavky a jejich specifikace 5.1 Inženýrství (requirements engineering) - proces stanovení služeb, které by měl vyvíjený systém poskytovat a omezení, za nichž musí pracovat - CO má systém dělat, ne
VíceAlgoritmizace- úvod. Ing. Tomáš Otáhal
Algoritmizace- úvod Ing. Tomáš táhal Historie 9. století perský matematik a astronom Mohammed Al-Chorezím v latinském přepise příjmení= algoritmus Nejstarší algoritmus Euklides řecký matematik, 4. století
Více5 Požadavky a jejich specifikace
5 Požadavky a jejich specifikace 5.1 Inženýrství (requirements engineering) - proces stanovení služeb, které by měl vyvíjený systém poskytovat a omezení, za nichž musí pracovat - CO má systém dělat, ne
VíceMaturitní témata Školní rok: 2015/2016
Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní
VícePředměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013
Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521
VíceNSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA
Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA Literatura W.Stallings: Computer Organization & Architecture J.L.Hennessy, P.A.Patterson: Patterson: Computer Architecture: a Quantitative Approach
VíceInovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz
Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Podmíněný příkaz
VíceÚloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy
Úloha 1 Zkratka ERP jako celopodniková transakční aplikace znamená: a. Enterprise Route Planning b. Enterprise Resource Planning c. Enterprise Re-implementation Planning d. Enterprise Resource Processing
VíceStruktura e-learningových výukových programù a možnosti jejího využití
Struktura e-learningových výukových programù a možnosti jejího využití Jana Šarmanová Klíčová slova: e-learning, programovaná výuka, režimy učení Abstrakt: Autorská tvorba výukových studijních opor je
VíceAlgoritmizace. Cíle předmětu
Cíle předmětu Algoritmizace naučit se sestavovat algoritmy řešení jednoduchých problémů a zapisovat je v jazyku Java Organizace předmětu přednášky (učast nepovinná, ale doporučená) cvičení střídavě u tabule
VíceNávrh softwarových systémů - architektura softwarových systémů
Návrh softwarových systémů - architektura softwarových systémů Martin Tomášek, Jiří Šebek Návrh softwarových systémů (B6B36NSS) Převzato z přednášky X36AAS M. Molhanec Co je to architektura Využívá se
VíceKOPENOGRAMY A JEJICH IMPLEMENTACE V NETBEANS
KOPENOGRAMY A JEJICH IMPLEMENTACE V NETBEANS Rudolf Pecinovský ICZ a.s., Na hřebenech II 1718/10, 147 00 Praha 4, VŠE Praha, Fakulta informatiky a statistiky, Katedra informačních technologií rudolf@pecinovsky.cz
VíceAlgoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
Více7 Jazyk UML (Unified Modeling Language)
7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující
VíceTabulace učebního plánu
Tabulace učebního plánu Vzdělávací obsah pro vyučovací předmět : Informační a výpočetní technika Ročník: 3. - 4. ročník (septima - oktáva) Tématická oblast DIGITÁLNÍ TECHNOLOGIE informatika hardware software
VíceArchitektura počítačů
Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem
VíceTvar dat a nástroj přeskupování
StatSoft Tvar dat a nástroj přeskupování Chtěli jste někdy použít data v jistém tvaru a STATISTICA Vám to nedovolila? Jistě se najde někdo, kdo se v této situaci již ocitl. Není ale potřeba propadat panice,
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 28. Otázka : Vyšší programovací jazyky a jejich moderní rysy (správa paměti, implementace objektově orientovaných prvků, výjimky) Obsah : 1. Rozdělení
VíceDatová věda (Data Science) akademický navazující magisterský program
Datová věda () akademický navazující magisterský program Reaguje na potřebu, kterou vyvolala rychle rostoucí produkce komplexních, obvykle rozsáhlých dat ve vědě, v průmyslu a obecně v hospodářských činnostech.
VíceStanovit nezbytná pravidla pro tvorbu dokumentace vytvářenou ve SITRONICS centru využitelnou firmou SITRONICS TS.
Tvorba dokumentace SITRONICS centrum 1. Cíl Usnadnit tvorbu jednotné dokumentace SITRONICS centra. 2. Účel Stanovit nezbytná pravidla pro tvorbu dokumentace vytvářenou ve SITRONICS centru využitelnou firmou
VíceAnalýza a Návrh. Analýza
Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,
VíceFunkcionální programování. Kristýna Kaslová
Funkcionální programování Kristýna Kaslová Historie Alonzo Church (30. léta) Netypovaný lambda kalkul Základ prvních funkcionálních jazyků Jeho konstrukce i v mnoha současných programovacích jazycích (Python)
Více2 Životní cyklus programového díla
2 Životní cyklus programového díla Typické etapy: 1. Specifikace požadavků - specifikace problému - analýza požadavků 2. Vývoj programu - návrh - kódování (programování) 3. Verifikace a validace 4. Provoz
VíceKritéria hodnocení praktické maturitní zkoušky z databázových systémů
Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné
VíceDTP Základy programování Úvod do předmětu
DTP Základy programování 01 - Úvod do předmětu Úvod Co již umíte? Plán předmětu Studijní materiály Způsob ukončení předmětu Základní pojmy I. Řešený problém: Řešeným nebo zpracovávaným problémem je konkrétní
VíceAlgoritmizace. Obrázek 1: Přeložení programu překladačem
Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.
Více2. Systémová analýza SA návrhová část projektu = příručka projektu - systémový přístup k analýze problémů, nejdůležitější etapa projektu - podrobné st
1. IŘS, definice, třídění, projekt, životní cyklus IŘS systémy na zpracování získaných (naměřených) informací a jejich využití pro řízení IŘS : a) IS informační systémy systémy sběru a zpracování dat (hromadné),
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
VíceAlgoritmizace diskrétních. Ing. Michal Dorda, Ph.D.
Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických
VícePOČÍTAČE A PROGRAMOVÁNÍ
POČÍTAČE A PROGRAMOVÁNÍ Moderní metody vývoje softwaru, Demontrační příklad piškvorky Miroslav Vavroušek PPI 09 V1.0 Opakovaní z minulé přednášky Vícerozměrná statická a dynamická pole Pole polí Datový
VíceObjektově orientovaný přístup
Objektově orientovaný přístup 1 Historie programovacích jazyků 1945: John von Neumann článek o nové metodě pro ukládání programů 1945: Grace Hopper poprvé termín "bug" 1946: Konrad Zuse Plankalkul - první
Více2. Začlenění HCI do životního cyklu software
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
VíceČtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
VíceVývoj informačních systémů. Přehled témat a úkolů
Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení
VíceVISUAL BASIC. Přehled témat
VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat
VíceCASE. Jaroslav Žáček
CASE Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Co znamená CASE? Definice dle SEI A CASE tool is a computer-based product aimed at supporting one or more software engineering activities
Více7 Jazyk UML (Unified Modeling Language)
7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující
VícePokročilé typové úlohy a scénáře 2006 UOMO 71
Pokročilé typové úlohy a scénáře 2006 UOMO 71 Osnova Interní model typové úlohy Vazby include a extend Provázanost typových úloh na firemní procesy a objekty Nejčastější chyby 2006 UOMO 72 Interní model
VíceIB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat
IB015 Neimperativní programování Organizace a motivace kurzu, programovací jazyk Haskell Jiří Barnat Sekce IB015 Neimperativní programování 01 str. 2/36 Organizace kurzu Cíle kurzu IB015 Neimperativní
VícePHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě
PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především
VíceŘízení reálných projektů, agilní metodiky
Agent Technology Group Katedra kybernetiky Fakulta elektrotechnická - České vysoké učení technické Praha, 2009 Osnova Lze vyvíjet software bez metodiky? - bohužel ano menší komerční firmy (zejména vývoj
Více