Požadavky
Tato stránka obsahuje stručný komentář ke zkušebním požadavkům okruhu Objektově orientované a komponentové systémy.
U jednotlivých požadavků jsou podle potřeby uvedeny heslovité podrobnosti o obsahu a některé základní znalosti, bez kterých zpravidla není možné zkoušku složit.
Je nutné upozornit, že komentář není oficiální, pro potřeby státní zkoušky je závazné pouze oficiální znění zkušebních požadavků a jeho výklad hodnotícími členy zkušební komise !
Třídy a objekty
Koncepty class, interface, object, vlastnosti encapsulation, inheritance, polymorphism, příklady.
Podrobnosti:
- Vysvětlení konceptů class, interface, object, method, attribute, abstract.
- Vysvětlení základních vlastností encapsulation, inheritance, polymorphism.
- Příklady v jazycích Java a C++.
- Znalost implementace (object layout, virtual method table).
Základy:
- Motivace, proč se uvedené koncepty zavádějí.
- Znalost jejich fungování v alespoň jednom jazyce.
Prototypy a klony
Koncepty prototype, clone, mixin, trait atd., základní vlastnosti, příklady.
Podrobnosti:
- Vysvětlení konceptů prototype, clone, method slot, parent slot, mixin, trait.
- Vysvětlení základních rozdílů mezi class based a prototype based languages.
- Příklady v jazyce Self (nebo JavaScript).
Základy:
- Motivace, proč se uvedené koncepty zavádějí.
Dědičnost a subtyping
Vazba mezi dědičností a subtyping, subsumption, variance signatur, příklady, implementace, diamond inheritance.
Podrobnosti:
- Vysvětlení vazby mezi dědičností a subtyping.
- Subsumption a její vliv na kovarianci, kontravarianci a invarianci částí signatur.
- Implementace v jazycích Java a C++ včetně diamond inheritance a type casting.
- Dynamic type casting.
Základy:
- Motivace, proč se uvedené koncepty zavádějí.
- Znalost jejich fungování v alespoň jednom jazyce.
Objekty v distribuovaném prostředí
Koncepty IDL, proxy, marshalling, reference, předávání argumentů, paralelismus, příklady.
Podrobnosti:
- Vysvětlení konceptů IDL, proxy, servant, stub, marshalling, remote reference, POA.
- Vysvětlení mechanismů předávání argumentů při volání vzdálených objektů.
- Vysvětlení mechanismů paralelismu při volání vzdálených objektů.
- Příklady v prostředí CORBA, RMI.
- Identita objektu.
- Lifecycle (factories, reference counting).
- Synchronous vs asynchronous (viz výše, také futures).
Základy:
- Fungování mechanismu volání vzdálených objektů.
Replikace a mobilita v distribuovaném prostředí
Konzistence replik, přenos stavu.
Podrobnosti:
- Vysvětlení konceptů replica, active replication, passive replication, mobile agent.
- Stav objektu a problémy spojené s jeho replikací a mobilitou.
Vyhledávání prostředků
Identita, naming, trading, příklady.
Podrobnosti:
- Koncept identity v distribuovaném prostředí.
- Služby naming a trading.
- Příklady v prostředí CORBA, JNDI, UDDI.
Základy:
- Jak funguje (nějaký) naming (včetně principu implementace).
Garbage collection
Koncepty live object, garbage, algoritmy garbage collection.
Podrobnosti:
- Vysvětlení konceptů live object, garbage, mutator, copying GC, concurrent GC.
- Schopnosti garbage collection identifikovat garbage.
- Základní principy garbage collection (reference counting, reachability tracing).
- Garbage collection v distribuovaném prostředí (primitivní tracing, reference counting, keepalive).
Základy:
- Základní principy garbage collection (reference counting, reachability tracing).
Architektura komponentových systémů
Koncepty komponenta, rozhraní, konektor, kontejner, ADL a UML, příklady.
Podrobnosti:
- Vysvětlení konceptů component, interface, provision, requirement, connector.
- Vysvětlení konceptů component nesting, component sharing, containers.
- Důvody konstrukce komponentových systémů.
- Příklady komponentových modelů CCM, EJB, (a částečně OSGi, COM ...).
- Příklady popisů architektur.
- ADL jazyky, Darwin, SOFA ADL, Fractal ADL.
- UML, class diagramy, sequence diagramy, use cases.
Základy:
- Vysvětlení konceptů component, interface, provision, requirement, connector.
Specifikace chování systémů
Přechodové systémy, CSP, protokoly, testování a verifikace.
Podrobnosti:
- Nízkoúrovňové popisy chování.
- Vysokoúrovňové popisy chování.
- CSP, syntaxe, sémantika, SOS pravidla.
- Protokoly, syntaxe, sémantika.
- Vysvětlení problémů testování a verifikace.
- Složitost dokazování v různých popisech chování (prakticke aspekty, (ne)rozhodnutelnost).
Základy:
- Přechodové systémy (LTS, Kripkeho struktura).
Model checking
Formulace úlohy, temporální logiky, Kripkeho struktura.
Podrobnosti:
- Formulace úlohy model checkingu.
- Kripkeho struktura.
- Temporální logiky.
- LTL, syntaxe, sémantika.
- CTL, syntaxe, sémantika.
- Srovnání výpovědní síly.
- State space explosion.
Základy:
- Formulace úlohy, temporální logiky.