ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS. Általános ismertető és Accountability Patterns

Hasonló dokumentumok
Programfejlesztési Modellek

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

Programozási technológia

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

UML (Unified Modelling Language)

Objektumorientált paradigma és a programfejlesztés

Objektum orientált programozás Bevezetés

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

Programozási technológia

Objektumorientált paradigma és programfejlesztés Bevezető

Interfészek. PPT 2007/2008 tavasz.

Objektum orientált software fejlesztés (Bevezetés)

Már megismert fogalmak áttekintése

Programozás módszertan p.1/46

Szoftvertechnológia ellenőrző kérdések 2005

Programozási nyelvek Java

Programozás 1. 2.gyakorlat

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

OOP. Alapelvek Elek Tibor

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Programozás alapjai II. (5. ea) C++

Programozás alapjai II. (5. ea) C++

Az adatbázis-alapú rendszerek tervezésének alapvető része az adatok modellezése. Ez legtöbbször két fázisban zajlik:

A TANTÁRGY ADATLAPJA

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

S0-02 Típusmodellek (Programozás elmélet)

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

01. gyakorlat - Projektalapítás

Webes alkalmazások fejlesztése

Adatbázis rendszerek Definíciók:

Objektum Vezérelt Szoftverek Analízise

Hát én immár mit válasszak?

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Programozás alapjai II. (4. ea) C++

Programozás alapjai II. (4. ea) C++

Magas szintű adatmodellek Egyed/kapcsolat modell I.

A TANTÁRGY ADATLAPJA

Adatmodellezés, alapfogalmak. Vassányi István

Adatbázis rendszerek. dr. Siki Zoltán

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

Szakterület modell. Bővítés attribútumokkal. BCE, Információrendszer tanszék, Dr. Molnár Bálint, egyetemi

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

S01-7 Komponens alapú szoftverfejlesztés 1

Software Engineering

Előzmények

Rendszer-modellezés, modellezési technikák

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Metamodellezés. Simon Balázs BME IIT, 2011.

5. Előadás tartalma Magas szintű adatbázismodellek Adatmodellezés

Szoftver újrafelhasználás

Adatmodellek komponensei

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

Szoftver-technológia II. Modulok és OOP. Irodalom

Objektumelvű alkalmazások fejlesztése 6. gyakorlat. Öröklődés, polimorfizmus. Öröklődés Kódismétlődés objektum-orientált szerkezetben

AZ OBJEKTUM-ORIENTÁLT TERVEZÉSI ALAPELVEK KRITIKAI VIZSGÁLATA

7. rész: A specifikációtól az implementációig az EJB rétegben

Programozási nyelvek Java

Adatbázis rendszerek I

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

Interfészek. Programozás II. előadás. Szénási Sándor.

Objektumorientáció, objektumorientált szemlélet

ELTE SAP Excellence Center Oktatóanyag 1

Folyamatmodellezés (BPMN) és alkalmazásai

Komponens alapú fejlesztés

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

CAD Rendszerek I. Sajátosság alapú tervezés - Szinkron modellezés

Szoftver-technológia II. Architektúrák dokumentálása UML-lel. Irodalom. Szoftver-technológia II.

Adatbázisrendszerek. adatbázisokban. Objektumorientált és objektum-relációs adatbázisok április 24.

Programozás alapjai II. (4. ea) C++

Programozás alapjai II. (4. ea) C++

Rendszer-modellezés, modellezési technikák

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Software Engineering Szoftver fejlesztés

Méréselmélet MI BSc 1

Java programozási nyelv 5. rész Osztályok III.

Adatbázisok - 1. előadás

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

E/K diagram átalakítása relációs adatbázistervre

Programozási technológia 1.

Név: Neptun kód: Pontszám:

Programozás alapjai II. (5. ea) C++ Objektummodell, öröklés, virtuális tagfüggvény

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Digitális matematika taneszközök a. hatékonyabb tanulásszervezés szolgálatában. Szerző: Huszka Jenő

Ismeretanyag Záróvizsgára való felkészüléshez

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

Models are not right or wrong; they are more or less useful.

Komplex záróvizsga témakörök Gazdaságinformatikus szak Pénzintézeti informatikus szakirány 2018

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Alkalmazott modul: Programozás 11. előadás. Objektumorientált programozás: öröklődés

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

Átírás:

MARTIN FOWLER ANALYSIS PATTERNS Általános ismertető és Accountability Patterns ELTE, 2010. 11. 25. Herczeg István iherczeg@inf.elte.hu 1

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. 2

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. 3

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! 4

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. 5

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

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

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 8

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. 9

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. 10

Minták (2) ANALYSIS PATTERNS 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. 11

Minták (3) ANALYSIS PATTERNS 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: 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

Minták (4) ANALYSIS PATTERNS 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

Minták (5) ANALYSIS PATTERNS 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. 14

Minták (6) ANALYSIS PATTERNS 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. 15

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. 16

Jelölések (1) ANALYSIS PATTERNS 17

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. 18

Jelölések (2) ANALYSIS PATTERNS 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 19

Jelölések (4) 20

Jelölések (5) 21

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ó: 22

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. 23

Á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ő. 24

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 25

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 26

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. 27

PARTY (1) egy jó példa Elsőre ilyen modellt alkotnánk: 28

Party (2) jó megoldás 29

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. 30

Organizational Hierarchies (2) Jó megoldás: 31

Organizational Hierarchies (3) A szervezet struktúráját belső szabályai határozzák meg: 32

Organizational Structure (1) 33

Organizational Structure (2) 34

Tanulság Modelling Principle: Tervezz olyan modellt, hogy a leggyakoribb módosítások a modellen a legkevesebb típust módosítsák. 35

Accountability (1) 36

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. 37

Accountability Knowledge Level (1) 38

Tanulság Modelling Principle: Explicit módon válaszd szét a modelled ismeretek és tevékenységek szintjére. 39

Party Type Generalization (1) 40

Hierarchic Accountability (1) 41

Hierarchic Accountability (2) 42

Hierarchic Accountability (3) 43

Operating Scopes 44

Post 45

THE END. Köszönöm a figyelmet! 46