ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS Általános ismertető és Accountability Patterns ELTE, 2010. 11. 25. Herczeg István
[email protected] Made with OpenOffice.org
1
ANALYSIS PATTERNS Mi az a 'ANALYSIS PATTERN' ? Mi az a minta? MF minta (pattern) definíciója: A minta egy ötlet amely hasznos egy gyakorlati kontextusban és valószínűleg hasznos lesz másnak is. Miről szól a könyv: A rendszer analízisben fellelhető mintákról szól. Mintákról, melyek az üzleti folyamatok struktúráját tükrözik és nem annyira azok szoftver implementációját. Made with OpenOffice.org
2
ANALYSIS PATTERNS Néhány érdekesség MF nem hallgatóknak ajánlja a könyvet. A nagyok is áldásukat adták a könyvhöz: Ralph Johnson, Erich Gamma (két GoF) Sommás kijelentések: Modelling Principle Például: A minták kezdőpontok, nem célok.
Made with OpenOffice.org
3
ANALYSIS PATTERNS Fogalmi modellek (1) TERVEZÉS (Design) és ELEMZÉS (Analysis) OO alapelv: a szoftver struktúrája tükrözi a probléma struktúráját. Az alapelv eredményeként a tervezés és elemzés szándékosan nagyon hasonló eredményt ad. Ez félrevezetheti az embereket, azt gondolva hogy a tervezés és az elemzés ugyanaz! Made with OpenOffice.org
4
ANALYSIS PATTERNS Fogalmi modellek (2) Miről szól az elemzés? Megérteni a problémát ➢Megérteni a használati eseteket ➢A probléma modellezése, egyszerűsítése ➢A modell megalkotása ➢
Modelling Principle: A modellek nem jók, nem rosszak; kevésbé vagy jobban használhatók.
Made with OpenOffice.org
5
ANALYSIS PATTERNS Fogalmi modellek (3) Miről szól a tervezés ? (wikipedia) A rendszer architektúrájának ➢ komponenseinek ➢ moduljainak ➢ interfészeinek ➢ adatainak ➢
meghatározása, melyek kielégítik a specifikált követelményeket. 6 Made with OpenOffice.org
ANALYSIS PATTERNS Fogalmi modellek (4) Akkor mi is az a fogalmi modell? Conceptual modell – human artifact Mentális modellek, melyek segítenek megérteni és egyszerűsíteni egy problémát. Nem elég leírni a problémát, meg kell érteni. (snooker példa) Cél az egyszerűsítés. Lehetne egy modelling principle: Ne adj olyan flexibilitást, mely valószínűleg nem lesz felhasználva. 7 Made with OpenOffice.org
ANALYSIS PATTERNS Fogalmi modellek (5) A fogalmi modellek kifejezésének eszközei: Programozási nyelvek előny: egyszerű verifikálhatóság hátrány: gyakran a nyelv korlátoz a terv kifejezésében ➢
Tervezés / elemzés eszközei előny: a tervezésre koncentrálhatunk, a rajzok kifejezők, domain expert bevonása “essential” ➢
Made with OpenOffice.org
8
ANALYSIS PATTERNS Fogalmi modellek (6) Az elemzés célja, hogy technológia független legyen. Ideálisan a fogalmi modellek teljesen függetlenek a technológiától. Modelling Principle: A fogalmi modellek az interfészekhez kapcsolódnak (típus), nem az implementációkhoz (osztályok). OO elv: interfész – implementáció szeparálása Azonban a gyakorlatban nehéz pontos határt vonni a kettő között. Made with OpenOffice.org
9
ANALYSIS PATTERNS Minták (1) Nehéz egységes minta definíciót találni. A minták nem csak objektum-orientáltak lehetnek. David Hay (Modell Patterns: Conventions of Thought, 1996) adatmodell mintákról ír, relációs adatmodellt alkalmazva. Made with OpenOffice.org
10
ANALYSIS PATTERNS Minták (2) Hogyan tárgyaljuk, hogyan írjuk le a mintákat ? Erre sincs egységes formátum. MF négy dolgot tart fontosnak, ezekkel írja le: kontextus – ahol a minta hasznos ➢ probléma - amire a minta kell ➢ kényszerek – formálják a megoldást ➢ megoldás – feloldja a kényszereket ➢
Ezek adják majd az elemzési minták definícióját. Made with OpenOffice.org
11
ANALYSIS PATTERNS Minták (3) “A minta egy ötlet amely hasznos egy gyakorlati kontextusban és valószínűleg hasznos lesz másnak is.” Mit jelent részeiben MF minta definíciója: ötlet: ötlet a minta lehet bármi, pl. együttműködő objektumok csoportja gyakorlati kontextus: a minta kifejlesztése valós projektek gyakorlati tapasztalatai alapján történt 12 Made with OpenOffice.org
ANALYSIS PATTERNS Minták (4) MF hogyan tárgyalja a mintákat? Minden minta gyakorlati esetből jön. Nem használ egységes struktúrát, ('heading' pl. probléma, cél, diagram, példa) amit mások használnak (mint GoF). Minden mintát az eredeti projektből “származtatva” szövegesen, ábrákkal, példákkal mutat be. A lehető legkevesebb absztrakciót alkalmaz. Katalógus szerű könyv.13 Made with OpenOffice.org
ANALYSIS PATTERNS Minták (5) Milyen haszon származik a minták használatából? Triviális válasz: újra felhasználhatóság. Sajnos ez 'üzleti' szinten még nem látszik. (1996) Hogyan érhető el ez a cél? Common frameworks. MF vallja, hogy az üzleti framework-ök inkább absztrakt fogalmi folyamatok mentén szerveződnek majd. (vertikális osztály könyvtárak) A minták javaslatok, nem receptek. Made with OpenOffice.org
14
ANALYSIS PATTERNS Minták (6) A minták azok a dolgok amiről a fejlesztők úgy gondolják hogy hasznosak lesznek egy másik kontextusban is. MF könyve még arról is szól: Supporting Patterns – támogató minták Hogyan valósulnak meg az elemzési minták. Mintánál megjegyzi, milyen projektből származik. Minden mintára ad kézzelfogható példát. Made with OpenOffice.org
15
ANALYSIS PATTERNS Fogalmi modellek és BPR Üzleti modellezés – process engineering – BPR Egy jó elemzőnek tudnia kell: a meglévő folyamatok automatizálása nem elég, a számítógépek által lehetővé válik a dolgokat másképp csinálni. MF modellei (mintái) inkább az üzleti folyamatokról szólnak, mint a szoftver tervezésről. Made with OpenOffice.org
16
ANALYSIS PATTERNS Jelölések (1)
Made with OpenOffice.org
17
ANALYSIS PATTERNS Jelölések (2) Kérdés: Milyen az összefüggés az objektumok és a típusok között? Az objektumnak egy vagy több típusa lehet? (single, multiple classification) Fogalmilag kifejezőbb, ha az objektumnak több típusa lehet. A OO nyelvek inkább az egy típust támogatják. MF a fogalmi megközelítést szereti több típussal illusztrálni. Made with OpenOffice.org
18
ANALYSIS PATTERNS Jelölések (2) Kérdés: Az objektum meg tudja-e változtatni saját típusát? A dinamikus klasszifikáció megengedi egy objektumnak, hogy megváltoztassa a típusát, míg a sztatikus nem. Az OO nyelvek a sztatikus klasszfikációt támogatják. MF a (fogalmi) dinamikus klasszifikációt szereti. “Megvilágítja a finom különbséget fogalmi és implementációs modell között” Made with OpenOffice.org
19
ANALYSIS PATTERNS Jelölések (4)
Made with OpenOffice.org
20
ANALYSIS PATTERNS Jelölések (5)
Made with OpenOffice.org
21
ANALYSIS PATTERNS Gondoljunk egy kicsit az UML-re. Milyen jelölés felelhet meg az említett jelöléseknek? Interfészekkel dolgozunk, ami az osztályhoz hasonló, csak nincs implementáció. CLASS diagram, asszociáció:
Made with OpenOffice.org
22
ANALYSIS PATTERNS Típus öröklődés specializációval Polimorfizmus: ➢ Statikus típus – deklaráció során ➢ Dinamikus típus – végrehajtáskor Példa a dinamikus típusra: ha egy superclass példányának adjuk értékül a subclass egy példányát. Dinamikus összekapcsolás: a dinamikus típusnak megfelelő kiszámítási szabály hozzárendelése a taghoz a végrehajtás pillanatában. Made with OpenOffice.org
23
ANALYSIS PATTERNS Általánosítás és specializáció (ugye még emlékszünk …) A modellalkotásban nem pontosan azonos a típusosztály esetén említett öröklődéssel. Általánosabb fogalom – klasszifikációs megközelítés. Lényege: először létrehozunk egy általános tulajdonságokkal bíró osztályt, melynek tulajdonságait átvéve származtatjuk a speciálisabb tulajdonságokkal rendelkező osztályt. Származtatás - “is kind of” reláció. Többszörös öröklődés is megengedhető. Made with OpenOffice.org
24
ANALYSIS PATTERNS Accountability csoportba tartozó minták (1) Party Személy vagy szervezet szupertípusa Organization Hierarchies Egyszerű szervezet Organization Structure Komplex szervezet Accountability Party és az Organization Sturcture kombinációja Made with OpenOffice.org
25
ANALYSIS PATTERNS Accountability csoportba tartozó minták (2) Accountability Knowledge Level Komplex felelősségek ábrázolása Party Type Generalization Party általánosítása Hierarchic Accountability Szigorú hierarchiába tartozó felek közötti kapcsolat Made with OpenOffice.org
26
ANALYSIS PATTERNS Accountability csoportba tartozó minták (3) Operating scope Mint a felelősségi szerződés záradékai Post Összegyűjtött felelősségek Projekt A felelősségi modell az UK National Health Service Cosmos projektjében lett kifejlesztve. Made with OpenOffice.org
27
ANALYSIS PATTERNS PARTY (1) – egy jó példa Elsőre ilyen modellt alkotnánk:
Made with OpenOffice.org
28
ANALYSIS PATTERNS Party (2) – jó megoldás
Made with OpenOffice.org
29
ANALYSIS PATTERNS Organizational Hierarchies (1) Egy lehetséges megoldás
Probléma: nem felxibilis a terv. Ha a szervezet struktúrája változik, akkor meg kell változtatni az altípusokat és a szabályokat. Made with OpenOffice.org
30
ANALYSIS PATTERNS Organizational Hierarchies (2) Jó megoldás:
Made with OpenOffice.org
31
ANALYSIS PATTERNS Organizational Hierarchies (3) A szervezet struktúráját belső szabályai határozzák meg:
Made with OpenOffice.org
32
ANALYSIS PATTERNS Organizational Structure (1)
Made with OpenOffice.org
33
ANALYSIS PATTERNS Organizational Structure (2)
Made with OpenOffice.org
34
ANALYSIS PATTERNS
Tanulság Modelling Principle: Tervezz olyan modellt, hogy a leggyakoribb módosítások a modellen a legkevesebb típust módosítsák.
Made with OpenOffice.org
35
ANALYSIS PATTERNS Accountability (1)
Made with OpenOffice.org
36
ANALYSIS PATTERNS
Tanulság Modelling Principle: Ha definiálsz attribútumokat (feature) egy típushoz, melynek van szupertípusa, fontold meg vajon az attribútum szupertípusba való elhelyezése értelmes-e.
Made with OpenOffice.org
37
ANALYSIS PATTERNS Accountability Knowledge Level (1)
Made with OpenOffice.org
38
ANALYSIS PATTERNS
Tanulság Modelling Principle: Explicit módon válaszd szét a modelled ismeretek és tevékenységek szintjére.
Made with OpenOffice.org
39
ANALYSIS PATTERNS Party Type Generalization (1)
Made with OpenOffice.org
40
ANALYSIS PATTERNS Hierarchic Accountability (1)
Made with OpenOffice.org
41
ANALYSIS PATTERNS Hierarchic Accountability (2)
Made with OpenOffice.org
42
ANALYSIS PATTERNS Hierarchic Accountability (3)
Made with OpenOffice.org
43
ANALYSIS PATTERNS Operating Scopes
Made with OpenOffice.org
44
ANALYSIS PATTERNS Post
Made with OpenOffice.org
45
ANALYSIS PATTERNS
THE END. Köszönöm a figyelmet!
Made with OpenOffice.org
46