Title: X13DFA Kritika UML
1X13DFAKritika UML
- Ing. Martin Molhanec, CSc.
- 8. prednáška
2UML
- Ambiciózní nástroj
- Široce podporovaný
- Porád se o nem mluví
- Nekritické uprednostnování
- Chybné používání!!!
3Myslíme v jazyku UML
Kritika nedostatku!
- Joseph Schmuller
- GRADA Publishing
- 2001
- myslíme v
- knihovna programátora
4Smer vztahu
Pro vysvetlení toho co je vztah (asociace)
naprosto nevhodné! Jedná se totiž o zprávu
(message).
5Smer vztahu
- Asociace zapnout je jednosmerná. Znamená to, že
vy zapínáte televizi. At už sledujete televizi
rádi nebo ne, televize vám vaší náklonnost
neoplácí. Jiné asociace, jako napr. je
ženatý/vdaná jsou obousmerné.
Nesmysl !Asociace nemá žádný smer !Aspon v tom
významu, jak je zde vysvetlováno !
6Smer vztahu
Intuitively, the name arrow shows which way to
read the name
Takhle to je správne dle autoru UML!
7Smer vztahu
Zatím je to správne.
8Smer vztahu
Další naprostá kravina !!!Jedná se o JEDEN
vztah, ale dva smery ctení!
Asociace mohou fungovat také opacným smerem
mužstvo zamestnává hráce. Obe asociace mužete
znázornit ve stejném diagramu, smer asociace
urcuje vybarvený trojúhelník.
9Další možné nesprávnosti
Není zcela korektní!
10Další možné nesprávnosti
- Vztahová trída (associated class)
- Jen klíce
- Vazební entita (trída)
- Zhmotnelý vztah (reified association)
- Klíce a atributy
- Defakto normální entita (trída)
Smlouva je toto!
11Špatný výklad
Není príklad na M N !!!
Takže nezkušený ctenár ani nezjistí, že muže také
existovat !
12Špatný výklad
Ridic rídí cestující ?!A co autor chtel tímto
príkladem vlastne povedet ?
13Špatný výklad
V knize nesmyslne vysvetleno!Zapomente!
14Špatný výklad
Ano, ale zde se jedná už o implementaci! A ta nás
v analýze nezajímá, ale to není nikde vysvetleno!
15Špatný výklad
Autori by se podivili!
16Základy objektove orientovaného návrhu v UML
Kritika nedostatku!
- Meilir Page-Jones
- GRADA Publishing
- 2001
- moderní programování
17Špatný výklad
- Operace je abstraktní, když nemá žádnou
implementaci. Abstraktní trída nevytvárí instance
objektu obvykle proto, že má definovanou alespon
jednu abstraktní operaci.
A složiteji už to nejde ?
18Špatný výklad
- Asociace neboli vztah se v tradicním informacním
modelování obvykle oznacuje slovesem. Modelári
v objektove orientovaném svete však dávají
prednost nazvání asociace podstatným jménem
v jednotném císle. Duvod asociace je v zásade
trída, jejíž pojmenování podstatným jménem je
nejprirozenejší.
Naprostá kravina, kterou si asi vymyslel
prihlouplý programátor, který neví vubec nic o
analýze!
19Špatný výklad
Správný název vztahu je pochopitelne
VLASTNÍ!Cili sloveso ! Pokud se nám tam tlací
podstatné jméno pujde samozrejme o trídu a nic
nemusim povyšovat!
20Špatný výklad
Pruchodnost (navigability) v analýze zcela
zbytecná. Navíc výklad je zcela nesmyslný,
napsaný programátorem v jazyce C!
21Studentský príklad
1) Samé agregace
2) Špatné agregace
4) Trída FILTR
3) Nesmyslné trídy
5) Vztah závislost
22Diagram tríd v analýze
- Je pokracování ER diagramu.
- Je konceptuální, nikoliv fyzický.
- Zobrazuje data se kterými aplikace pracuje!
- Nezobrazuje implementacne závislé veci.
23Vztahy v diagramu tríd
- Žádné šipky nejsou treba!
- V UML se kreslí v diagramu tríd šipky
- Navigace (to je ale implementacní, ne relacní
záležitost) - Závislost (opet implementacní, trochu nejasne
definovaná záležitost) - Zpráva (nemá co delat v datovém diagramu)
- Jedine prípustný je tento symbol ?, který urcuje
jakým smerem se cte název vztahu
24Co je to kontejner?
- Velice casto se plete se vztahem 1M.
- Studenti ho nadužívají.
- Matter of taste ?
- Celek a cást mají fyzickou nebo jí podobnou
souvislost. - Zkusme uvažovat co se stane, když pohneme cástí.
Bude se pohybovat i celek?
25Shrnutí
- Jsou psány predevším pro programátory a to
zejména v jazyku C. Proto se na svet okolo nás
dívají pohledem implementace a nikoliv pohledem
analytika! - Nezduraznují, které konstrukty se mají užívat ve
fázi analýzy a které až ve fázi implementace! - Nekteré príklady nejsou vhodne zvoleny nebo jsou
nedostatecne popsány, takže nejsou bud
pochopitelné nebo jsou zavádející. - Vždycky je nutné se dívat do referencní knihy
autoru UML. Bez jejich vysvetlení, jak jsou
jednotlivé konstrukty myšlené, je bohužel cetba
všech ostatních knih o UML nedostatecná.
26Celkové shrnutí
- Ucebnice UML jsou v mnoha prípadech mírne receno
zavádející. - Málokdy se v nich rozlišuje mezi užitím UML ve
fázi analýzy a ve fázi implementace. - UML není v soucasné dobe postacujícím nástrojem
v oblasti datového modelování a návrhu
uživatelského rozhraní. - Je nutné peclive císt referencní manuál od
vlastních autoru UML.
27Tvrzení
- UML není konecným rešením v oblasti analýzy a
návrhu, jak se nám snaží namluvit nekterí
prodejci nástroju, které UML podporují. - Pokud nekdo používá pro vývoj svých programu UML,
neznamená to automaticky nejvyšší kvalitu. - Použití jiných nástroju než UML, neznamená
nijakou degradaci, jak se nám opet snaží namluvit
nekterí prodejci nástroju podporujících UML. - To, že UML podporují velké firmy a stojí za ním
velká jména, neznamená automaticky, že nelze nic
dalšího než UML použít nebo vytvorit.
28UML a persistence
Ambler je velice chytrý pán!!!
- Scott W. Ambler
- Be Realistic About the UML
- Persistence Modeling in the UML
- Toward Executable UML
- http//www.agilemodeling.com/essays/references.htm
- http//www.sdmagazine.com
29Další pomerne dobré knihy
- UML a unifikovaný proces vývoje aplikací
- Jim Arlow, Ila Neustadt
- Computer Press (Addison-Wesley) 2003
- Popisují užití UML v rámci vývoje aplikací!
- UML srozumitelne
- Hana Kanisová, Miroslav Müller
- Computer Press 2004
- Zminují i datové modelování
30Nevím co to je, ale to hezké ?