1. oddíl -- Datové modelování a objektově orientovaný přístup -- 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 objektově orientovaného přístupu -- 1.2.1 Historie a přehled -- 1.2.1.1 Čistý versus smíšený přístup -- 1.2.2 Objekt, zpráva, metoda -- 1.2.2.1 Zprávy -- 1.2.2.2 Protokol objektu -- 1.2.2.3 Data a metody -- 1.2.2.4 Polymorfismus -- 1.2.3 Datové modelování s objekty -- 1.2.3.1 Kolekce objektů -- 1.2.3.2 Třídy objektů, instance tříd, extenze třídy -- 1.2.3.3 Třídy versus kolekce -- 1.2.3.4 Grafické zobrazení -- 1.2.3.5 Hierarchie dědění objektů -- 1.2.3.6 Skládání objektů -- 1.2.3.7 Data a operace s nimi -- 1.2.3.8 Změny protokolu kolekcí při operacích s daty -- 1.2.3.9 Jak správně použít kolekce, atributy a skládání ---
2. 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í -- 3.1.2 Zprávy -- 3.1.2.1 Unární zprávy -- 3.1.2.2 Binární zprávy -- 3.1.2.3 Slovní zprávy -- 3.1.2.4 Kaskáda zpráv -- 3.1.2.5 Bloky -- 3.1.3 Zápis metod -- 3.1.3.1 Přístupové metody -- 3.1.4 Řízení výpočtu -- 3.1.5 Architektura programů ve Smalltalku -- 3.1.6 Reflexe -- 3.2 Vývojová prostředí -- 3.2.1 VisualWorks -- 3.2.2 STX -- 3.2.3 Squeak -- 3.2.3.1 Croquet -- 3.3 Daskalos -- 3.4 LambdaTalk -- 4. Gemstone -- 4.1 Historie Gemstone -- 4.2 Vlastnosti Gemstone -- 4.3 Programovací jazyk Smalltalk DB -- 4.4 Příklad objektové databáze -- 4.4.1 Popis úlohy -- 4.4.2 Implementace úlohy -- 4.4.3 Program v jazyce Smalltalk DB databázového systému Gemstone -- 4.5 Příklady dotazů -- 4.6 Shrnutí -- 5. Příklady datových modelů -- 5.1 Evidence přátel -- 5.2 Obchod s pivem ---
5.2.1 Třídy a kolekce -- 5.2.2 Data -- 5.2.3 Dotazy -- 6. Pokročilé metody návrhu datového modelu -- 6.1 Jak poznat správný návrh -- 6.2 Objektová normalizace -- 6.2.1 Datový objekt, atributy objektu -- 6.2.2 Tři objektové normální formy -- 6.2.2.1 10NF -- 6.2.2.2 20NF -- 6.2.2.3 30NF -- 6.3 Transformace datového modelu -- 6.3.1 Změny objektového schématu -- 6.3.2 Refaktoring -- 6.4 Návrhové vzory -- 6.4.1 Co to je návrhový vzor -- 6.4.2 Příklady návrhových vzorů -- 6.4.2.1 Adaptér -- 6.4.2.2 Skladba -- 6.4.2.3 Dekorátor -- 6.4.2.4 Stav -- 7. Seznam použitých symbolů -- 7.1 Formální zápis -- 7.2 Jazyk Smalltalk -- 2. oddíl -- Datové modelování v projektování a tvorbě informačních systémů -- 1. Objektové programování -- 1.1 Programovací jazyky a prostředí -- 1.1.1 Objektově orientované programovací jazyky -- 1.1.2 Smíšené programovací jazyky -- 2. Databázové systémy -- 2.1 Objektově orientované databáze ---
2.1.1 Objektový datový model -- 2.1.2 Jak vytvořit objektovou databázovou aplikaci -- 3. Metody analýzy a návrhu informačních systémů -- 3.1 Otázka transformace zadání od uživatele do podoby objektového modelu -- 4 Dnešní stav objektových nástrojů a technik -- 4.1 Přínosy OOP -- 4.2 Problémy OOP -- 4.2.1 Odklon od původního OOP -- 4.2.2 Problém s UML -- 4.2.3 Nedostatečnost metod analýzy -- 4.3 Pokrok v oblasti programovacích jazyků a prostředí -- 4.4 Objektový přístup v databázových systémech -- 4.4.1 Čisté objektové a objektově relační databáze -- 4.4.2 Situace v České republice a ve světě -- 4.4.3 Formální techniky návrhu objektových databází -- 4.5 Metody řízení projektů informačních systémů -- 4.5.1 Iterativní a evoluční versus sekvenční model -- životního cyklu -- 4.5.1.1 Sekvenční model životního cyklu -- 4.5.1.2 Iterativní model životního cyklu -- 4.5.1.3 Evoluční model životního cyklu ---
4.5.2 Rigorózní versus agilní metodiky -- 4.5.2.1 Rigorózní metodiky -- 4.5.2.2 Agilní metodiky -- 4.5.2.3 Příčina sporu -- 4.6 Tvorba informačních systémů v kontextu -- podnikového managementu -- 4.6.1 Procesy a procesní modely requirement engineering -- 4.6.2 Myšlenka konvergenčního inženýrství -- 4.6.3 Vztah mezi informačním a řídícím systémem -- uvnitř organizace -- 4.6.4 Vztah k OOP -- 5. Jak správně využít objektový přístup v projektech -- informačních systémů -- 5.1 Celopodnikový pohled -- 5.2 Model životního cyklu projektu informačního systému -- 5.2.1 Iniciace -- 5.2.2 Konstrukce -- 5.2.3 Dodání -- 5.2.4 Provoz -- 5.2.5 Jednotlivé týmy v procesech -- 5.2.6 Provozní, testovací a vývojová platforma -- 5.3 Postupná transformace datového modelu při projektování -- 5.3.1 Metoda BORM -- 5.3.1.1 Použití BORMu v praxi -- 5.3.2 Vývoj pojmu objekt během projektování -- 5.3.3 Fáze expanze a konzolidace ---
5.3.4 Objekty reálného světa (business objekty) -- 5.3.4.1 Metoda OBA -- 5.3.4.2 Diagram ORD -- 5.3.4.3 Podrobná analýza procesů -- 5.3.4.4 Rozšíření modelu business procesů směrem nahoru -- 5.3.4.5 Rozšíření modelu obchodních a správních procesů směrem dolů -- 5.3.4.6 Simulace procesů -- 5.3.4.7 Změna procesů Business Process Reengineering -- 5.3.5 Logické konceptuální objekty -- 5.3.6 Přechod od business objektů ke konceptuálním objektům -- 5.3.6.1 Diagramy konceptuálních objektů -- 5.3.7 Softwarové implementační objekty -- 5.3.8 Přínos rozdělení modelu na business, konceptuální -- a softwarové objekty -- 5.3.9 Evoluce hierarchií objektů -- 5.3.10 Tři dimenze objektového modelu zjednodušení složitosti -- 5.3.11 Chyby, kterých je třeba se vyvarovat při modelování -- 5.3.12 Zkušenosti -- 5.4 Jazyk Smalltalku -- 5.4.1 Jména objektů -- 5.4.2 Konstanty -- 5.4.2.1 Číselné konstanty -- 5.4.2.2 Znakové konstanty ---
5.4.2.3 Řetězcové konstanty -- 5.4.2.4 Konstanty symbol -- 5.4.2.5 Bajtová pole -- 5.4.2.6 Pole jiných konstant konstant -- 5.4.3 Proměnné -- 5.4.4 Výrazy -- 5.4.4.1 Zprávy -- 5.4.4.2 Sekvence výrazů -- 5.4.4.3 Kaskáda zpráv -- 5.4.4.4 Návratový výraz -- 5.4.4.5 Použití pomocných proměnných -- 5.4.4.6 Bloky výrazů lambda výrazy -- 5.4.5 Jednoduchý program -- 5.4.6 Řízení výpočtu ve Smalltalku -- 5.4.6.1 Větvení -- 5.4.6.2 Iterace -- 5.4.6.3 Operace nad sadami (Collection) -- 6. Výkladový slovník -- 7. Závěr