Table of Contents

21. Objektově orientované programování

Popište základní principy objektově orientovaného jazyka. Uveďte příklady a diskutujte odchylky od důsledné implementace objektových principů. Posuďte vliv na efektivnost programátorské práce a kvalitu výsledného produktu.

Úloha

Předpoklady: Pracujete na projektu vývoje IS objektově-orientovaným způsobem a právě tvoříte plán tohoto projektu. V rámci toho se rozhodujete o příslušném nástroji CASE. Zákazník požaduje, aby byla specifikace systému provedena jazykem UML, protože slyšel, že je to oborový standard. CASE, který podporuje Vaší metodiku, používá jinou notaci.

Zadání:

Teorie

Charakteristiky OOP

Další pojmy

Realizace OOP v Javě

Výhody OOP

Vývoj v OOP

Efektivnost programátorské práce v OOP je vysoká – problém se dá velmi dobře členit do samostatných jasně ohraničených součástí. Dá se používat jiných, už hotových částí kódu nebo je modifikovat (ve strukturovaném programování lze prakticky pouze využívat knihovní funkce – všechno nebo nic). Udržování vnitřní konzistence pomocí zapouzdření vede k omezení rizika chyb. Na druhou stranu mají objekty větší systémovou režii a to jak co do použití paměti, tak i do rychlosti zpracování.

Jednak existují metodiky, které UML využívají jako jazyk pro vyjádření svých postupů (UP, RUP), ale především UML je pouze syntaxe k vizualizaci nějakého stavu – i když každý její element obsahuje jisté metodické postupy. UML je ale nezávislé na metodice, pomocí které se modeluje.

Rozdíly oproti strukturovanému programování

Ostatní

Praxe

Náš zákazník, náš pán - asi je snazší změnit notaci diagramů, než předělat vlastní firmu na jinou metodiku (která ovlivňuje způsob myšlení, postupy, výstupy …). otázka je také, zda bude UML kompatibilní s naší metodikou (jestli pomocí UML dokážu vyjádřit vše, co naše metodika žádá). Do budoucna zvážím studium UML.

Pokusím se ho přesvědčit, že naše notace je pro daný účel vyhovující/dostačující. Vysvětlím mu, že bude lepší, když to nechá na nás, a UML se nechá vyrobit až nakonec z diagramů naší notace.

Protože metodik existuje velké množství, od různých skupin (firem, sdružení, univerzit), pro různé typy projektů a dost se od sebe liší. UML je především syntaxe diagramů, pomocí které lze modelovat cokoliv, třeba jen jeden diagram jedné konkrétní části systému - proč se kvůli tomu učit a omezovat nějakou konkrétní metodikou? Navíc se sešlo hodně společností a dalo jim dost práce se shodnout na jednotné notaci. Metodiky jsou o dost rozsáhlejší, komplikovanější a dosáhnout shody je obtížnější. Raději bych viděl metodiku/návod pro tvorbu UML diagramů, které jsou úplné, správně strukturované a vzájemně konzistentní - tedy spíš nějaké best practices.