You are on page 1of 21

1. Az UML kiterjesztsi lehetsgei. Sztereotpusok, nv-rtk prok, s az OCL megszortsler nyelv. A kiterjesztsek szabvnyhoz kpest eltrseket fogalmaznak meg.

Kiterjesztsi mechanizmusok: az ltalnos jellsrendszert a fejleszts ltal megkvetelt irnyba specializlhatjuk a szabvny keretein bell. A kiterjesztsi mechanizmusokkal az UML a fejleszts s a feladat krnyezethez igazthat. -Sztereotpia: j modellelemek jellse. -Megszortsok: tulajdonsgok, melyek az UML ms jellseivel nem adhatk meg -Kulcsszavas rtkek: a modellelemek lerst specilis jellemzkkel egszthetjk ki. Profilokban troljuk a kiterjesztseket: egyes szakterleteken klnll metamodell kiterjesztsek elrhetk. Pl. SPEM: Software Process Engineering Metamodel Az UML metamodellje kiterjeszthet n. profilokkal: ezek a szabvnyhoz kpest valamilyen eltrseket fogalmaznak meg. Egyik ilyen jellemz profil az OCL (Object Constraint Language) Felttel Ler Nyelv: Tisztn kifejezskzpont nyelv: nincsenek mellkhatsok. Egy modellezsi nyelv, gy nincsenek megvalstsi krdsek benne, s mivel nem is programozsi nyelv, gy nem vgrehajthat, s nincs szksg vezrlsre. Egy predikatv nyelv, minden kifejezse kirtkelhet, az eredmny pedig logikai rtk. Ersen tpusos nyelv, minden jl formzott OCL kifejezsnek tpusa van, a tpusegyeztetst mindig ktelez elvgezni. Mivel hasznlhat az UML rendszerekben, ezrt szksgszeren objektumorientlt nyelv. Megszort nyelv is, azaz ha valamilyen pldnyhalmazhoz kapcsoljuk, akkor megszortja a halmazt olyan egyedekre, melyekre a kifejezs igazra rtkeldik ki. Az OCL hasznlati krnyezetei: -Osztlyok, tpusok s kapcsolatok invarinsai -Sztereotpusok tpusinvarinsai -Mveletek el- s utfelttelei -Tevkenysg- s llapotdiagramok rfelttelei -Navigcit ler nyelv -Mveletek megszortsai -A grafikus nyelv is megfogalmazhat OCL megszortsknt. Az OCL felptse: Egy OCL felttel egy Boolean tpus kifejezs. Egy OCL kifejezsbl navigcival egy msik kifejezs kpezhet. Az j kifejezs tpust a navigci hatrozza meg. -Naviglhatunk az alapkifejezs tpusmeghatrozsban megadott tulajdonsggal. Az eredmny tpusa a tulajdonsg tpusa lesz. (Employee.salary) -Naviglhatunk az alapkifejezs tpushoz rendelt kapcsolattal. Az eredmny tpusa a navigciban hasznlt kapcsolatvg tpusa lesz (Person.child) -Naviglhatunk mveletkifejezssel. Az eredmny tpusa a mvelet eredmnynek tpusa lesz. Egyes mveletek opertorok, vagyis nem ktelez a zrjeles kifejezs hasznlata. (Person.doMarry) -Gyjtemny-mvelet navigcihoz a -> opertort hasznljuk (htVezr->size=7) Az OCL tpusai: Alaptpusok: Boolean, Integer, Real, String Tpusmegfelels: egy tpus megfelel az stpusainak tranzitven is OclAny: minden tpus stpusa OclType: amelynek a tpusok a pldnyai Collection : Set, Bag, Sequence ; Set(T), Bag(T), Sequence(T) Set A matematikai rtelemben vett halmaz. Egy elem csak egyszer szerepelhet benne, nincs rendezs megadva a tartalmazott elemek kztt. Bag Olyan gyjtemny, amelyben egy elem tbbszr is elfordulhat. Nincs az elemek kztti sorrend rgztve. Mveletei megegyeznek a halmazival Sequence Olyan gyjtemny, amelyben az elemek sorrendje rgztett. Egy elem tbbszr is elfordulhat Felsorolstpusok -Osztlyok <<enumeration>> , <<enum>> sztereotpussal -rtkeik: attribtumnevek -OCL nyelvtan: sex{male,female} -Hivatkozs felsorolsrtkre: sex=#female Metamvelet pl.: OclAny::oclType: OclType ; OclAny::oclIsTypeOf(t:OclType):Boolean

2. Az UML ngyrteg metamodell szerkezete. Az UML metamodellje s ms rendszerek metamodellje

Az UML 4 rteg metamodell szerkezete: 1. Alkalmazi adatok: a vals vilg s a vals adatok szintje, a modellszint pldnya 2. Alkalmazi (szoftver) modell: ez a modellszint, a vals vilg modellje 3. A modell-ler formalizmus (pl.: UML) lersa: metamodell, a modell modellje 4. A modellezeszkz lersnak a lersa: meta-metamodell, a metamodell modellje Az egyes szintek kztt (fentrl-lefel) a bonyolultsg szintje cskken, az elvontsg szintje pedig n. Egy modell egy szoftver ltal kezelt informci szerkezetnek adatfggetlen, pontos lersa. Az adatokat osztlyok s pldnyaik szerint csoportostjuk, hozzjuk rendeljk a tulajdonsgaikat s rtkeiket. A kzs tulajdonsgokat kiemeljk, ezzel bizonyos fok elvonatkoztatst, ltalnostst tudunk vgezni. Az adatkapcsolatokat is csoportostjuk az egyes kapcsolatok s azok pldnyai szerint. Egy metamodell egy szemantikus (adatszerkezetekre koncentrl) modell ksztse sorn hasznlt eszkzs s szablyok pontos defincijt tartalmazza. A metamodellezs sorn a modellezsi folyamat trgya a modellez eszkz maga. Metamodellek ksztsnek tbb oka is lehet, pl.: egy rendszerintegrtor szmra fontos, hogy a klnbz jelleg adatok integrcijhoz szksges megalkotni s/vagy megrteni azok szerkezett, azaz metamodelljt. A vgfelhasznlk szmra is hasznos lehet egy metamodell egy j rendszer rtkelse, megismerse idejn. Egy adat- vagy informci trhz tervez szmra az adatszerkezet ltrehozsa s mdostsa sorn hasznlt eszkzkben is hasznlhatak metamodellek. Az UML metamodellje Az UML fogalmaibl ptett UML modell, aminek osztlyai az UML fogalmai s kapcsolatai az UML fogalmai kztti kapcsolatok. Metamodell: - Class metaosztly: Az osztly fogalom lersa. Minden osztly a Class metaosztly egy pldnya. Jells: <<metaclass>> sztereotpus. Tbbszrssg (multiplicity): [1..3] pldnyok szmra korlt. Egypldny (singleton) Osztlyjellemzk (Feature) -Lthatsg (visibility): + nyilvnos (public), # (protected) vdett, - rejtett (private) Az osztly szint attribtumot alhzssal jelli. Tbbszrssg (multiplicity): [1..3], vektormegads. Rendezettsg {ordering}, Tulajdonsgok (attribute), Eljrsok (method). Osztlyfggvnyek Paramterek: rendezettek, sorszmmal indexelhetk. Kimen/bemen/tmen/(visszatr) {ordered}, Alaprtk (attribute), Tpus (method). Meta-metamodell: A metamodell lersa/modellje a metamodell a meta2modell pldnya A meta-metamodellek akkor mutatkozik meg, ha egy rendszerhez tbbfle metamodell is felpthet, hasznlhat (mindegyik klnbz clokra). Modelltrhz ptse sorn is szksgesek meta-metamodellek, ha a trhzat tbbfle metamodellre akarjuk alkalmazni, illetve mdostani, tovbbfejleszteni szeretnnk a metamodellnket. Metametamodell hasznlhat mg akkor is, ha klnbz metamodellel rendelkez rendszerek kztt intelligens informci integrcit szeretnnk megvalstani: ekkor megadjuk mindkt rendszer metamodelljt, majd megadjuk a kt modell kztti talaktsi szablyokat, pl.: UML asszocicikkal s OCL megszortsokkal. Egyb metamodellek: Software Process Engineering Metamodel (SPEM) XML metamodell Common Warehouse Metamodel (CWM) Prolog metamodell Relcis metamodell SQL metamodell

3. Modellvezrelt szoftverkszts. Az OMG Model Driven Architecture elkpzelse. A modellvezrelt szoftverkszts a rendszerek specifikcijnak s felptsnek j mdja, UML hasznlatval. A teljes fejlesztsi ciklust tmogatja (elemzs, tervezs, megvalsts, telepts, kvets, tovbbfejleszts, integrci meglv rendszerekkel). Cl a hordozhatsg s az egyttmkdtethetsg. A modellvezrelt szoftverkszts alapjait az OMG ltal ksztett MDA szabvny fogja ssze: az architektra kialaktsa sorn figyelembe kellett venni, hogy soha nem lesz egysges programozsi nyelv, kztes rtegek, fizikai hardverek, hlzat, de a szoftver csatlakozsi felletek lehetnek egysgesek, s ez a legfontosabb cl a fejlesztsek sorn.

A modell magja az OMG specifikci 3 fontos alkotelemt tartalmazza, a MOF-t (Meta Object Facility), az UML-t (Unified Modelling Language) s a CWM-t (Common Warehouse Metamodel), melyre a kztesrtegmodellek alapoznak. Ezeket a szoftver-architektra klnbz szempontjait biztostjk, mint pldul a biztonsgot. A kifele mutat nyilak az alkalmazsi terletekre utalnak, melyekrt a modellt szerkesztj

Model Driven Architecture

Az MDA alapfogalmai: Modell: mveletkszlet, felpts s viselkeds egyttesen Formlis specifikci: jl meghatrozott forma (nyelvtan/szintaxis), rtelmezs (szemantika), elemzsi s kvetkeztetsi szablyok, a szerkezeteket ellenrz szablyok (formlis vagy informlis rtelmezs megadssal) Absztrakci: modellek kztti kapcsolat ->a felesleges rszletek elhagysa. Finomts: jabb rszletek meghatrozsa. Absztrakcis kritrium: milyen rszletek feleslegesek. Nzet (view): valamilyen kritrium alapjn elvgzett modellabsztrakci Kzelts, tvolts (zooming in/out) modellmvelet: az absztrakci-finomts kapcsolat mentn trtnhet Platform: technolgiai s mszaki rszletek sszessge, amelyek fggetlenek egy szoftver funkciitl Platform fggetlen modell (PIM): a rendszer szerkezetnek s mkdsnek formlis meghatrozsa (a mszaki rszletektl fggetlenl)

A modellvezrelt szoftver-fejleszts esetben fontos egy olyan platformfggetlen modellt (Platform Independent Model) megalkotni. A modell alkotsnl csupn szakmai szempontokat vesznk figyelembe, s ezeket modellezzk. Az gy ltrejtt modell akkor is rvnyes, ha semmilyen szoftvert nem fejlesztnk segtsgvel, ezeket a flig formalizlt modelleket valban hasznljk a pldul az zleti folyamatok elemzsnl s optimalizlsnl (Business Process Re-Engineering). De leggyakrabban ezek a modellek szolglnak alapul a fejlesztend szoftver rendszernek.
Platformfgg modell (PSM): amely a platform valamelyik elemt mr tartalmazza/fgg tle Az MDA folyamatai: Platform fggetlen modell megtervezse. (zleti mveletkszlet s viselkedsmd, a technolgiai rszletek nlkl, rszletes modell, el- s utfelttelek a mveletekhez, stb.) Platformfgg modell vagy tbb modell generlsa, rszben automatikusan, rszben kzzel. (Lekpezs az adott middleware eszkzeire) Implementcis kd ltrehozsa (illeszts alkalmazi felletekhez, GUI elemekhez, SQL lekrdezsekhez, stb.) Refaktorizci: az alkalmazs tapasztalatai alapjn a Platformfggetlen Modell mdostsa Meglev alkalmazsok integrcija: alkalmazsok visszamodellezse (reverse engineering) Alkalmazsi hidak ltrehozsa platformok kztt Mikor ksztsnk modellvezrelt szoftvert? Ha modellelemeken s a modell adatpldnyain is kvnunk mveleteket vgezni, ha a modell futsidben is mdosulhat, vagy ha a modell a szoftver egyik termke.

4. Modellvezrelt szoftverek ksztse. Teljesen s rszben ktszint szoftverek s alkalmazsaik. Pldk: dinamikus tulajdonsglista, dinamikus osztlyszerkezet. A hagyomnyos szoftverkszts egyszint, monolitikus. A szoftverkszts sorn kzhez kapjuk, vagy a megrendelvel val konzultcik sorn ellltjuk a szoftver lerst, specifikcijt, ennek alapjn elkszl a szoftver terve, vagy modellje, amely alapjn a programozk beprogramozzk a szksges mveleteket. Ez a folyamat nem teszi lehetv a szoftver modelljnek futsidej mdostst, ez azonban a szoftverek nagy rsznl nem is kvetelmny. Egyes esetekben a kvetelmnyek olyan mrtkben rugalmas adatkezelst szabnak meg, amelyre nem lehet, de legalbbis nem rdemes az emltett kttt szerkezet, monolitikus szoftver fejlesztsi modellt hasznlni. Ilyen esetekben sokszor rdemes egy modellvezrelt szoftver ltrehozst megfontolnunk. rdemes, ha: Ha modellelemeken s a modell adatpldnyain is kvnunk mveleteket vgezni Ha a modell futsidben is mdosulhat Ha a modell a szoftver egyik termke Egy ktszint, modellvezrelt szoftver az albbi rszekbl ll: - A modellszinten a szoftver kezelte adatok modelljt troljuk, A modell futsidben is mdosulhat, ezrt ezen a szinten olyan mveleteket kell megvalstanunk, amelyek a modell betltst, mentst, esetleg az inkrementlis mdostst lehetv teszik. Ezen lehetsgek azonban csak kpzett felhasznlk ltal hasznlhatk. A modellszint mveleteit megvalst szoftver sszetevt modelltrhznak nevezzk. - Az adatszinten modellvezrelt adatmveletek megvalstsa. Ezen mveletek megvalstsa ersen tmaszkodik a modellben trolt informcikra, azokat rtelmezi, interpretlja szemben pl. a modellbl szoftvert ltrehoz CASE eszkzk lefordtott, kompillt megoldsaival. - Mindkt rteg tmaszkodik egy vgs adattrol rtegre, amely a programfutst tll (perzisztens) informcik trolsrt s kezelsrt felels. Ez a rteg trolja az adatszinten keletkez s hasznlt adatokat, vagyis a pldnyinformcikat is, s itt troljuk a pldnyoknak megfelel modelleket magukat is.

Jellegzetesen modellvezrelt szoftverek a relcis adatbzis-kezel szoftverek, br ezek tervezsekor ezt a fogalmat mg alig ismerhettk. Itt a felhasznl, ha csak kzvetve is, a konkrt adatokat lekrdez, ill. mdost (Data Query Language/DQL, Data Manipulation Language/DML) mveletekkel tallkozik, amelyek futsa ersen a beptett modell alapjn, ill. annak vezrlsvel trtnik. A modellszinten tallhatk az adatsmt megad (Data Definition Language/DDL) mveletek, amelyeket jellegzetesen a fejlesztk, ill. az alkalmazsokat kszt szakember hasznlhatnak. Melyek lehetnek egy modellvezrelt szoftver ksztsnek az indtkai s mik az elnyei? Akkor rdemes a modellszintet ilyen mdon elklnteni s az adatmveleteket a modellel interpretltan vezrelni, ha az albbi felttelek fennllnak: - ha nemcsak a program adatszintjn, de a modellszinten is kvnunk mveleteket vgezni - vagyis ha a modell maga futsidben is mdosulhat - ha a mdosul modell maga is eredmnye/termke a szoftvernek - ha a szoftvert tbbfle krnyezetbe tervezzk, amelyek kztt a klnbsg ppen a modell klnbz kialaktsval ragadhat meg. Vagyis a klnbz teleptsek esetben a szoftvert rszben a modell megadsval szabhatjuk testre. Dinamikus tulajdonsglista (modellszint) Ktszint, dinamikus modellaz objektumok tulajdonsgkszlete futsidben vltozhat Mveletek (a modellszinten): DynFeature DynClass:feature DynClass:add(attr:DynAttribute) j tulajdonsg felvtele DynClass:del(attr:DynAttribute) tulajdonsg trlse DynClass-DynFeature-DynAttribute osztlyok a Class-Feature-Attribute metaosztlyok leszrmazottai DynFeatureClass kapcsolosztly DYNCLASS: osztlyokat trol relcis tbla (nem szksges: a kv. tblban van CLASS mez) DYNFEACLASS: a DynFeatureClass kapcsolosztly elemeit trol relcis tbla Dinamikus tulajdonsglista (pldnyszint) A modellszinten rgztetteknek megfelel objektum rtkek bersa s kiolvassa. Mveletek: DynObject DynObject:get(attr:String) DynObject:put(attr:String,obj:DynObject) DynObject: a dyn-tul-listval rendelkez objektumok innen (is) rklnek DynObjValue: DynObj s DynValue kztti kapcsolosztly

name:String a tulajdonsg nevvel van indexelve DynValue: tulajdonsgrtket tartalmaz objektum diszjunktv tpusfelpts, (skalr:Integer, String, vagy a DynObject kapcsolat) tulajdonsgmultiplicits (a skalr attribtumok tbbszrsek/a DynObject kapcsolat nth:Integer-indexelhet) Dinamikus tulajdonsglista (pldnyszint, adatbzistblk) DYNOBJECT: relcis tbla az objektumok rszre absztrakt tbla, vagyis a mezket egy konkrt tbla rkli A tbla sorainak vagy egy ID azonostmezjk a dinamikus objektumokat trol tblknak van egy CLASS:DYNCLASS mezjk, ami a DYNCLASS tblba (modellszint) mutat DYNVALUE: relcis tbla a DynObjValue kapcsolosztly pldnyok szmra absztrakt tbla, vagyis a mezket egy konkrt tbla rkli OBJID: a dinamikus objektumtblba mutat (Foreign Key), a gazdaobjektumra Skalrok: Integer, String tbbszrsen is felvehetk (multiplicits) VALUE_ID: a dinamikus objektumtblba mutat az rtkobjektumra Dinamikus osztlyszerkezet Modellszinten: Csak dinamikus tulajdonsgokkal (nem foglalkozunk fix tulajdonsgkszlet osztlyokkal) Kapcsolatok megvalstsa tulajdonsgknt Osztlyonknt parent s child gyjtemnyek Adatszinten: Csak monoton mveletek (trls helyett trltsgi bit) Dinamikus fggvnyek hvsa, -hozzszerkesztse Futsidben minden dinamikus objektum a (relatv) gykrosztly (DynObject) tpust viseli, a dinamikus osztlyra kln mutatval mutatunk 5. Metamodell keretrendszer vza. Metamodell vezrelt ments s betlts mvelet. Az OMG HUTN szabvnya. A MODELLTRHZ S AZ UML 4 RTEG METAMODELL SZERKEZETE A modelltrhz megvalstsnl a modellvezrelt megkzeltst alkalmazsnak tbb elnye is lehet. Ilyen esetben mg a metamodellt is elklntve troljuk, amely trols alapja a rendszer valamilyen elvonatkoztats tjn kapott metametamodellje, vagyis az UML metamodell szerkezet legelvontabb rtege. A modellvezrelt szoftverek ltalnos jellemzsekor felsoroltakon tli elnye egy ilyen megoldsnak, hogy lehetsget ad a metamodell vltoztatsra is. Erre vagy akkor lehet szksg, ha a kvetelmnyek nem teszik szksgess a teljes metamodell brzolst. Az is elfordulhat, hogy a szoftver kifejlesztshez a metamodell bizonyos mrtk bvtse, pl. esetleg j metatulajdonsgok hozzvtele szksges. Az alkalmazi adatok/alkalmazi modell/metamodell/meta-metamodell ngyest az OMG alapjn ngyrteg metamodell szerkezetnek nevezzk. A 2. brn lthat fa csompontjai kztt a pldnya viszony ll fenn: az alkalmazi adattmeg pldnya az alkalmazi modellnek, mg ez utbbi modell pldnya a metamodellnek. ltalnossgban a faszerkezet nik szintjn lev modellek pldnyai az n+1-ik szintrl feljk mutat modelleknek. A faszerkezet azt is jelzi: a modellalkotsi folyamattl fggen egy adott pldny- adatkszlethez tbbfle modell is ltrehozhat. A fa magassga elvben nem korltos, a gyakorlatban azonban a meta-meta szintnl tvolabbi elvonatkoztatsnak nincs jelentsge.

METAMODELL-VEZRELT MENTS S BETLTS A modelltrhz adatszintjn elvgezhet modellvezrelt mveletek igen sokrtek lehetnek. Mgis, taln a legalapvetbb a ments-betlts mvelet, amelyet mg a legszegnyebb megvalstsban s clszernek ltszik kivitelezni. UML modellek mentsre s betltsre mr az OMG is adott javaslatot: ez a Human Usable Textual Notation (OMG, 2004). A HUTN azonban nem a metamodellhez, hanem egy vezrl adatszerkezethez kti a betlts-ments mveletpr megvalstst, amelyben az adatszerkezet a mvelet s a szveg nyelvtannak paramterezsre hasznlhat.
Modellhez kttt nyelvtanmegads A modellhez kttt nyelvtanmegads minden modellosztlyhoz kt egy azonos nev nemterminlist s az azt levezet krnyezetfggetlen(szer) nyelvtani szablyt. Egy ilyen szably a modellosztlyhoz rendelt nemterminlist annak tulajdonsg- s rszobjektumtpusaihoz rendelt nemterminlisokk, ill. egyes terminlis szvegkonstansokk vezeti le. A nyelvtant a krnyezetfggetlen eszkzket termszetes s intuitv mdon kiterjeszt metanemterminliskszlet segtsgvel adjuk meg. A nyelvtani szably jobboldalnak a megadsa az adott metamodell-elemhez kttt nv-rtk pr (tagged value) segtsgvel trtnik. Az itt hasznlhat metanemterminlis-kszlet bizonyos nemterminlisok hasznlatt segti, elssorban az osztlytulajdonsgok s sszettelek tbbszrssgeit s ismtldseit is figyelembe vev elemkszletet tartalmaz. Jellegzetes elemei a kvetkezk: LISTOF(Nonterminal,Begin,Separator,End)ahol Nemterminlis a tartalmaz osztly egy tulajdonsghoz vagy rszobjektumhoz rendelt nemterminlis, amelynek 1-nl nagyobb a tbbszrssge. Begin, Separator s End pedig a tbbszrs tulajdonsgrtkbl kpzett listt nyit s csuk zrjel, ill. az elemeket elvlaszt jel. IFTHEN(Cond,Then)ahol Cond egy Boolean rtk tulajdonsgrtk, Then pedig az a kifejezs, amelynek Cond teljeslse mellett a szablybehelyettestskor el kell fordulnia. IFTHELSE(Cond,Then, Else)az IFTHEN szerkezethez hasonl, amelyben .a felttel hamis rtkre is megadunk egy lehetsges generland szvegelemet. A fentiek bemutatsra nzznk egy pldt, ismt SILAN nyelven (4. bra). A Package metamodell-osztlynak egy azonos nev nemterminlis felel meg. Az osztly syntax nv-rtk prja ezt a nemterminlist levezet szably jobboldalt adja meg. A jobboldal elemei kztt tallhatk tulajdonsgnevek (comment, name), s a LISTOF metanemterminlis, amely az ownedElement navigcis kifejezsbl a { s } listazrjelekkel s a ; elvlasztjellel kpzett listt rja le.
class ModelElement; class Package:modelElement { attribute String comment; attribute String name; tagged value syntax=comment, package, name, LISTOF(ownedElement, {, ;, }); }; association { connection Package as owner navigable; connection ModelElement composite as ownedElement navigable; };

HUTN: Pldny s modell egyntet kezelse: pldnyszeren, a modell a metamodell pldnya Konfigurlhat konkrt nyelvtan nem rgztett Boolean vagy Enum rtkek hasznlata az osztlyfejben, mintegy jelz szeren Attribtumok hasznlata paramter-szeren Tartalmazott objektum brzolhat begyazva (azonost nv hasznlata elhagyhat) Osztlypldnyok azonostsa: valamely attribtumukkal mely hatskrn bell egyrtelm? osztly+alosztlyok? tartalmaz objektum? Egyszerstett azonost nevek hasznlata Alaprtelmezett rtkek: mely attribtumok elhagyhatk, mert default rtkk van Elre definilt konfigurcik 6. Modellek sszekapcsolsa s egyestse. A SILK keretrendszer felptse s alkalmazsa. A SILK modellellenrz. Modellek sszekapcsolsa Problma: ha kt modell ugyanarrl szl, akkor rdemes ket sszekapcsolni Cl: intelligens adategyests a modelljk kapcsolata rvn Adatpldnyok is tfednek Ha az egyes adatmennyisgek nagyok, az tfeds pedig elegend az tfed pldnyok azonostshoz tfed osztlyok azonosthatk
ha az adatpldnyok tfednek, s a adatmennyisg nagy akkor az tfeds elegend az tfed pldnyok azonostshoz amibl kvetkezik, h az tfed osztlyok azonosthatak

Modellek sszekapcsolsaegyes osztlyaik sszekapcsolsval

Osztlyok sszekapcsolsa megfeleltetssel


class System Finance Employee + + + + firstName: String lastName: String real: Real tax: Real + + + Production

Worker correspondence name: String salary: Real skills: String

Ktoldal UML kapcsolatok: kt osztly c1 s c2 rtkhalmaznak C1 s C2 direktszorzata Legtbbszr: C1C2= <<correspondence>>: C1C1 s C2C2, hogy C1 s C2 kztt klcsnsen egyrtelm megfeleltets hozhat ltre Tbbszrssgek: 0-1..0-1 a fenti legltalnosabb eset 1..1 a kt osztly kztt teljes megfeleltets hozhat ltre (C1=C1, C2=C2) ((full join, teljes csatols)) 1..0-1 a bal osztly szkebb, de minden eleme megfeleltetsbe hozhat a jobbal (C1=C1, de C2<>C2) ((half join, flcsatols)) Egynl nagyobb tbbszrssgek nem fordulhatnak el

Osztlyok sszekapcsolsa adategyests cljbl


class System Finance Employee + + + + +worker firstName: String +emp + lastName: String correspondence + real: Real {worker.name=empl.firstName+' + tax: Real '+emp.lastName implies emp.salary=worker.salary} Production

Worker name: String salary: Real skills: String

Attribtumrtkek megfeleltetse: OCL constraint segtsgvel <azonost tulajdonsgrtk-kifejezsek egyeznek> implies <ms rtksszefggsek> Plda (fent): worker.name=empl.firstName+ +empl.lastName implies emp.salary=worker.salary Klnbz fogalmi szint osztlyok sszekapcsolsa <<abstraction>>: szemantikailag megegyezik a megfeleltetssel, de klnbz fogalmi szintek kztt
class System Biology

Human + + + birth: Date death: Date sex: Sex

abstraction Production

Worker + + + name: String salary: Real skills: String

Adategyests cl modellkapcsolatok. A SILK-projekt A SILK tmogatja a modellek sszehasonltst, sszekapcsolst, integrcijt, heterogn informciforrsok modellalap, komplex lekrdezst. Hasznlati cl: Heterogn adatforrsok egyttes hasznlatnak s integrlsnak tmogatsa Technolgiai cl: Ismeretkezelsi eszkzrendszer logikai programozsra s korltalap megoldsokra ptve

A SILK rendszer bemutatsa


A SILK rendszer vllalati informci-forrsok integrlst segt eszkzk gyjtemnye. Az eszkzkszletet a SILK (System Integration via Logic and Knowledge) EU projekt keretben, az 5.keretprogram IST alprogramjnak tmogatsval fejlesztette ki az IQSOFT Rt. francia, romn s grg partnerekkel kzsen. A hrom ves kutatsi s fejlesztsi munka 2002. oktberben sikeresen lezrult. A SILK rendszer egy ismeretkezelsen alapul eszkzkszlet, amelynek segtsgvel a heterogn adatforrsok egysges rendszerr integrlsa hatkonyabb tehet. Modellalap megkzelts mdjval lehetv teszi mind az informciforrsok dinamikus lekrdezst (medils), mind azok homognebb formjra s tartalmra trtn talaktst (integrls). A rendszer adatforrsok szles skljt kezeli: kzvetlenl kpes lekrdezni relcis adatbzisokat, rszben strukturlt adatokat (mint az XML), valamint helyi alkalmazsok vagy web-szolgltatsok formjban elrhet informci-forrsokat. A SILK rendszer eszkzket nyjt a modelltrhz feltltshez, a modellek s kapcsolatrendszerek felptshez. Segtsget ad a modell- s adat-szint ellentmondsok feldertshez s kikszblshez, modellek hasonlsg-elemzshez s egyestshez. Lehetsget nyjt tovbb az heterogn informciforrsok lekrdezsre klnbz absztrakcis szinteken

(adatforrs- ill. fogalmiszinten). Az elllt modellek ms integrcis mdszerek (mint pl. adattrhz vagy zleti folyamat alap technolgik) segtsre is felhasznlhatk. Lvn a SILK kizrlag modellekkel dolgozik az adatintegrcin tl alkalmazsok integrcijhoz is hasznlhat. A SILK logikai alapokon mkd szoftver, a rendszer bels moduljai Prolog hasznlatval kszltek (kvetkeztets, elemzs, lekrdezs-optimalizls). A rendszerhez kszlt gra_kus kezelfelletet s az adatforrsokhoz trtn kapcsoldst Java krnyezetben implementltuk. Az elkszlt rendszer kzel 100 ezer sornyi forrskdbl ll, ebbl 40 ezer sornyi kd Prolog nyelven, a maradk JAVA-ban rdott.

A SILK-rendszer hasznlati krnyezete


Rendszerfelh.
Informcinapi forrs Informciforrs hasznlat
ltrehoz/mdost/ integrl forrs szint adatkrs (pl. SQL)

Eseti felh.

Mediator

eredmnyadatok (pl. XML, Excel)

SILK Integrator

Modelltrhz

SILK Server

Kls alkalmazs

Technikai sszegzs

A lekrdezs folyamata
A feltett magas szint krdst az integrtor elemzi s bizonyos talaktsok utn tadja a meditornak. A meditor vgrehajtsi tervet kszt, sztbontja a krdst olyan egysgekre, melyeket egy-egy wrapper mr kpes megvlaszolni. A wrapperek vgzik a tnyleges adathozzfrst. Az alacsony szintrl kapott vlaszok vgl felgyrznek magasabb szintre.

Informciforrsok Brmi, ami objektumorientlt modellel lerhat Pldk: relcis adatbzisok; objektumorientlt adatbzisok; XML fjlok; Web-szolgltatsok; RDF fjlok Model Verifier (modellellnrz) Feladat modellelemek egy halmaznak konzisztencijt ellenrizni az OCL ekvivalens az elsrend logikval -> teljessg nem vrhat el Megvalsts mlysg s idkorltos vgrehajts modulris tbb korlt-megold (CLP(R), {log}, CHR kiegsztsek) temez koordinlja a megoldkat a vlasz ellentmondsos korltok egy halmaza

SILK plda
Az albbiakban egy pldt mutatunk a SILK integrcis folyamat egy rszletre. Legyen adott az albbi modell a SILK modelltrhzban. Ez egy _ktv vllalat pnzgyi rszlegben alkalmazott adatbzis modellje lehet. A modellen bell egy osztly tallhat. Itt az alkalmazkrl trolunk informcikat, gy mint a vezetk- s keresztnv, a _zets, a be_zetett ad sszege. Ezenfell adott mg kt korlt is az rtelemszer jelentssel s egy (sszetett) elsdleges kulcs.

forrs

adat metaadat

lekr- eredmnydezs adatok

Informci-

Wrapper

zleti/ szakrt felh.

lekrdezs

elemez/ karbantart

modell (XMI) kezdeti modell

felh./ ontolgik/ vllalati szakterleti fogalmak, ismeretek ismeretek

platformspecifikus sma

Integrcis szakrt

Kls eszkzk

Rendszer fejleszt

7. Szolgltatskzpont szoftvertechnolgia. Extensive Markup Language. Webszolgltatsok ksztse s hasznlata. ANetBeansIDEegyJavanyelvenmegrtfejlesztikrnyezet,amiaNetBeansPlatformothasznlja.Modulrisrendszer, mindenszolgltatstegymoduladja,gyaszolgltatsaibvthetek.Aprogramgrafikusfejlesztfelletetknla klnbzalkalmazsok,AppletekvagyakrJavaBeanekelksztshez,amelyneksegtsgvelknnyebben,gyorsabban tudjukfejlesztenisajtprogramjainkat. ANetBeans UML technolgija lehetvtesziazUMLalapszoftverfejlesztst,amineksegtsgvelatervezka programszerkezetnekmegtervezsrefkuszlhatnak,mgafejlesztknekkizrlagakdolsmarad.Lehetsgvanaz UML2szabvnybanrgztettszmosdiagramhasznlatra(nemazsszesre),pl.:usecase,activity,class,sequencestb. LehetsgvanUMLdiagramblgenerlhatJavakd,sJavakdblgenerlhatUMLdiagram. Arefaktorizci szmosolyaneljrstfogunkssze,amineksegtsgvelamrmegrtkdontudunkvltoztatsokat eszkzlni,nagymrtkbenautomatizltmdon.Ilyeneljrsokpl.: tnevezs:osztly,eljrs,vltoztnevezse,melyazsszeshivatkozstisrinti Vltoz,lland,osztlymez,eljrskiemelse:amegjelltkdrszletblvltoz,lland,osztlymez,eljrs ltrehozsa,akdrszlethelynpedighivatkozsltrehozsa Eljrsparamterek(szignatra)mdostsa:paramterhozzadsa,trendezse,hozzfrsimdokvltoztatsa.A vltoztatsazsszeshivatkozshelynismegtrtnik. Osztlyvltozkhozelreljrsokltrehozsa,sakzvetlenhozzfrseikcserjeazelreljrsokhvsaira Osztlyvltozk,eljrsokltalnostsa:mozgatsabbaazosztlyba,ahonnanazaktulisosztlyrkl Osztlyvltozk,eljrsokkonkretizlsa:mozgatsrklttosztlyblazaktulisosztlyba. Osztlymozgatsa:mscsomagbavagymsosztlyba Osztlymsolsa:ugyanazonvagymsosztlyba Belsosztlymozgatsa:klsbbosztlyba,osztlymozgatsamsikosztlyba.Avltoztatsmindenhivatkozsnl ismegtrtnik Nvtelenosztlymozgatsabelsbbosztlyba. Felletkivonatolsa.Ltezosztlyvagyfelletlthatnemstatikuselemeinek(eljrsainak,mezinek) kivonatolsa,sfelletltrehozsa sosztlykivonatolsa.Azaktulisosztlymegjelltlthatelemeiblsosztlyksztse. sosztlyrahivatkozs.Akdbanaholcsaklehetsgesahivatkozsokatazsosztlyracserli Biztonsgostrls.Atrltelemsszeshivatkozsnaktrlse Az eXtensive Markup Language (XML) egy ltalnos cl ler nyelv, specilis cl ler nyelvek ltrehozsra. Ltrehozsra, faszerkezetek lersra hasznlt szabvny. Elsdleges clja strukturlt szveg s informci megosztsa. Az XML-re pl nyelvek formlis mdon vannak lerva, gy egy program a formtum elzetes ismerete nlkl is kpes lehet mdostani s validlni egy dokumentumot. Az adatokat egy faszerkezetben trolja, ezen bell mindent elemek formjban trol, klnbz tag-ekkel jellve. Minden XML nyelvhez tartozik egy nyelvtan, amik egy egyszer szablykszleten alapulnak: egy elem formtuma kttt (<elem attr1=rtk1 attr2=rtk2>tartalom</elem>), illetve az egymsba gyazott elemek formtumra is van megkts (<elem1><elem2></elem2></elem1> ktelez). Minden nyelvtanhoz tartozik egy nyelvtanlers (sma), ami jellemzen kt fle tpus lehet: DTD (Document Type Definition): a legrgebbi tpus sma, mindenhol tmogatott. Rgi, ezrt nem tmogatja az XML jabb kpessgeit (pl.: nvterek), a felptse nem XML formtum. XML Schema (XSD, XML Schema Definition): jabb tpus sma nyelv, a DTD utdjaknt ksztettk. Sokoldal adattpus rendszert hasznl, gy jval rszletesebb megktseket tud alkalmazni az XML logikai szintjn. Lehetsg van primitv tpusok hasznlatra, tpusok szktsre s bvtsre, regulris kifejezsek hasznlatra, tpusok unijnak s metszetnek ltrehozsra. Megkthet az elemtartalmak sorrendje, ktelez s lehetsges elfordulsok kijellse, szmossg megadsa. Van tpusrklds s behelyettests. A formtuma XML alap, ezrt szabvnyos XML eszkzkkel hozhat ltre s mdosthat. Htrnya, hogy tl nagy a specifikcija (nehz megrteni s implementlni), s az XML formtum miatt tl bbeszd egy sma definci. -Relax NG: kicsi, sokoldal, elegns. Kevs hivatalos tmogats ll mgtte. Az XML Xpath kiterjesztsvel lehetsges az egyes komponensekre val hivatkozs egy XML dokumentumon bell, kzvetlenl hivatkozhat a szveg brmely rsze, adata s XML elem rtke. Ezzel random elrsv tehet egy XML dokumentum ms technolgik szmra. Ilyen technolgia lehet az XSLT (XML Structured Transformation Language), ami deklaratv, XML alap dokumentum talakt nyelv, ami egy XML dokumentumot alakt t msik XML dokumentumm, vagy valamilyen emberi olvassra alkalmas formtumm. Jellemzen XML smk kzti talaktskor szoks hasznlni, esetleg weboldalak HTML/XHMTL formtumv alaktsra, de mg szmos ms felhasznlsa is lehetsges. Az XML file-ok kezelsre kt jellemz technolgia van, a SAX s a DOM. A SAX egy esemnyvezrelt API, ami szekvencilis elrst biztost az XML dokumentumokhoz. Gyorsan s egyszeren implementlhat, de bonyolult vele random elrst biztostani az XML-ben trolt adatokhoz.

A DOM API Node tpus objektumok hljaknt kezeli az XML dokumentumot, s ezek a Node-ok reprezentljk a dokumentum adatait. A DOM adattpusai absztraktak, az aktulis nyelvi implementci hatrozza meg ket. A hasznlata memria intenzv, mivel az egsz dokumentumot a memriba kpezi le.

Web szolgltats architektra ttekintse


UDDI (Web Szolgltats Brker)

Publikl
Internet

Keres

Kt
Web szolgltats nyjt

Web szolgltats felhasznl

Web szolgltats szolgltat: Pldul: Web szerverek .NET Common Language Runtime: a .NET Keretrendszer rsze, egy futtat krnyezet. Lehetv teszi a

Common Intermediate Language nev kd futtatst klnbz platformokon


Web szolgltats fogyaszt: Minimlis funkcionalits Szolgltats keress Proxy-k Aszinkron hvsok Web szolgltats brker: Egyttmkds a brkerek s a szolgltatk kztt Egyttmkds a brkerek s a fogyasztk kztt UDDI trolk: (Universal Description, Discovery and Integration) Univerzlis lers, felfedezs s

integrci tartalmazza, hogy ki a szolgltats gyrtja, mi a szolgltats (termszetes nyelv lers), hol tallhat a szolgltats WSDL:(Web Service Definition Language), webszolgltats defincis nyelv. Egy WSDLspecifikci 3 dolgot definil: mit csinl a szolgltats, hogyan kommunikl s hol tallhat meg-specifikcija s azt, hogy hogyan lehet feliratkozni a szolgltats frisstsvel kapcsolatos informcikra.
WEB szolgltatsok: olyan kiszolgl komponensek, amelyek /valamifle dediklt hlzati protokoll helyett/ WEBkiszolglkon/ ltaluk rtelmezett protokollon keresztl/ llnak rendelkezsre csak a protokoll/ adatformtum/ rgztett, a megvalsts nemplatform fggetlensg RESTful Web Services: Universal Resource Identifiers+HTTP. Minden egyb informci a HTML-be van begyazva Java API for XML based Remote Procedure Calls (JAX-RPC) webszolgltatsok s gyfelek megvalstsa J2EE1.4 krnyezetben Java API for XML WebServices (JAX-WS). Java EE5-tl, a JAX-RPC tovbbfejlesztse A Service-Oriented Architecture (SOA) egy szmtstechnikban alkalmazott felptmny stlus, aminek segtsgvel lehet ltrehozni s hasznlni zleti folyamatokat, n. service-eket, a teljes letciklusuk sorn. Emellett meghatroz egy infrastruktrt is, ami lehetv teszi klnbz alkalmazsok kztt az adatcsert, s a rszvtelt az zleti folyamatokban. A SOA az egyes funkciit fggetlen egysgekbe (ezek a service-ek) vonja ssze, amik aztn kzztehetek a hlzaton, s jrafelhasznlva vagy msokkal kombinlva j zleti alkalmazsokat hozhatnak ltre. Ezek a serviceek kommuniklnak egymssal, vagy tadva az adatokat egyik service-tl a msikig, esetleg kt vagy tbb service kztt koordinlt mdon. Egy SOA rendszer clja, hogy egy vllalat zleti folyamatait flexibilis s szabvnyos mdon kezelje. Egysgesti az egyes folyamatokat azzal, hogy a nagy alkalmazsokat lebontja ad hoc jelleggel kapcsold kisebb modulok (service-ek) szintjre. Ezek az alkalmazsok aztn hasznlhatak a vllalaton bell s kvl is, s j alkalmazsok hozhatak ltre egy globlis kszletbl, ami nagy flexibilitst s egysgessget biztost. Ezzel klnbz vllalatok klnbz alkalmazsai kapcsoldhatnak egymshoz egysges s egyszer mdon, s egy vllalat knnyen tud j szolgltatsokat bepteni a rendszerbe, amin keresztl adatokat cserlhet msik vllalatok rendszereivel.

8. Agilis szoftverkszts. Extrm Programkszts. Scrum (csetepat) s Feature Driven Development (jegyvezrelt fejleszts). Az agilis szoftverkszts (agile sw developement) egy elmleti keretrendszer, ami az iterlt fejlesztst (Itercis fejleszts: folyamatos javtsa az elkszlt rszeknek) egy projekt teljes letciklusra kiterjeszti. Tbbfle agilis fejlesztsi eljrs van, de jrszt mindegyik a kis kockzat fejlesztsre trekszik a rvid idej fejlesztsi ciklusok (ismtlsek, itercik) hasznlatval. Minden ismtls egy teljes szoftverfejlesztsi ciklus: tervezs, kvetelmnyelemzs, kivitelezs, kdols, tesztels s dokumentls. Egy ismtls clja, hogy a ciklus vgre egy letesztelt, elrhet kiads jjjn ltre az alkalmazsbl. Minden iterci vgn a fejleszti csapat jrartkeli a projekt fbb cljait. Az agilis mdszerek a szemtl-szembeni kapcsolatot rszestik elnyben az rsos dokumentcik helyett. Emiatt az agilis csoportok jellemzen egyetlen nagy irodban helyezkednek el (scrum). Az agilis mdszereknl a halads legfbb mrszma a mkd szoftver. Az agilis mdszerek alapelvei: 1. Hasznos szoftvertermkek gyors, folyamatos szlltsbl fakadan elgedett megrendelk. 2. Mkd szoftver szlltsa gyakran (inkbb hetes, mint havi peridusban) 3. Az elrehalads mrcje a mkd szoftver 4. A kvetelmnyekben mg a ksi vltozsoknak is rlnek. 5. Szoros, napi kommunikci a fejlesztk s a megrendel kztt 6. Szemlyes kapcsolattarts 7. A projekteket motivlt, megbzhat munkatrsak vezetik 8. Folyamatos figyelem ksri a mszaki sznvonalat s a tervet 9. Egyszersg 10. nszervezd csapatmunka 11. A vltoz krlmnyekhez val gyors alkalmazkods Agilis mdszertan hasznlata javasolt kis projektmret, kevs (de tapasztalt) fejleszt esetn, alacsony kritikussgi foknl, illetve gyakran vltoz kvetelmnyek esetn. Ellenjavallt a hasznlata nagy projekteknl, elosztott fejlesztseknl, ltfontossg projektekben. Az Extrm programkszts (XP) egy szoftverksztsi mdszertan, az agilis szoftverkszts egy tpusa, ami minden rintett szmra elr napi feladatokat, amik magukba foglaljk s btortjk az XP rtkeit, azok hasznlatt. Az XP tmogati szerint ezen feladatok elvgzse (a klasszikus tervezsi feladatok extrm szint gyakorlsa) jobb kommunikcihoz vezet a megrendelkkel, s jobb programkdot eredmnyez. Szerintk a kvetelmnyek folyamatos vltozsa termszetes, elkerlhetetlen s elvrhat, emiatt az lland vltozsokhoz val alkalmazkods egy projekt letciklusnak brmely fzisban sokkal letszerbb s jobb hozzlls, mint a klasszikus, elre mindent meghatroz megkzeltsek. Htrnya viszont ppen az, hogy folyamatosan vltoznak a kvetelmnyek, s kevs az rsos dokumentci. Az XP rtkei: Kommunikci: megrendelk, fejlesztk kztt Egyszersg: a legegyszerbb megoldst fejlesztjk ki legelszr Visszacsatolsok: A rendszertl: egysgtesztekkel A megrendeltl: elfogadsi teszteket a megrendelvel egytt rjk A fejlesztktl: megrendelkkel kzsen trgyaljk az j fejlesztsek ignyeit Btorsg: A mnak kdolunk, nem a holnapnak Szksg esetn trjuk a kdot (refactoring) Szksgtelen kd trlse (brmennyi munka is van benne) Tisztelet: a munkatrsaink irnt Az XP tevkenysgei: Kdols: a kdols folyamn jn ltre a programkd. Ez a folyamat szmos elemet magban foglalhat: UML diagramok ksztse, alternatv megoldsok vizsglata, programozsi rtekezletek szervezse. Tesztels: a program funkciinak tesztelse, mivel tesztels nlkl nem biztos, hogy jl mkdik a program. Vannak Unit tesztek, amikor egy automatikus teszt nzi, hogy egy egysg azt csinlja-e, amit kell. s vannak elfogadsi tesztek, amikor a felhasznl elvrsaihoz hasonltjk az alkalmazs egyes funkciit. Figyels: oda kell figyelni, hogy mit szeretne a felhasznl. Meg kell rteni az zleti folyamatokat, s visszajelzst kell adni a felhasznlnak a problmirl. Tervezs: a rendszer struktrjnak felptse, szervezse, a rendszer logikjnak felptse. Szksgtelen fggsgek kivdse.

A SCRUM (kavarods, csetepat, kzelharc) egy agilis szoftverfejlesztsi mdszertan, amely kifejezetten kis csapatok esetn mkdik jl (5-9 f). Gyakorlatilag nincs "fnk", csak mentor/specialista (Product owner), illetve modertor (SCRUM master). Rvid, sprintnek nevezett szakaszokban folyik a fejleszts, amelyek ltalban egy hetesek. Naponta megtartjk a 15 perces, "daily scrum"-nak nevezett sszejvetelt, ahol a fejlesztk kizrlag hrom krds megvlaszolsra szortkoznak: mit csinltl elz nap? / mit csinlsz ma? / akadlyozza-e valami a munkdat? A megoldsi javaslatokat, rszletekbe men vitkat kerlni kell a daily scrum-on - ennek kivdse a SCRUM master feladata. Naprl napra halad a project, az informci jl ramlik, mivel kicsi a csapat s naponta tartanak megbeszlseket (ltalban a daily scrumot kveten, de nincs megszabva), persze csak ha szksges. Nem arrl van sz, hogy egsz nap meetingeken s design megbeszlseken pazaroljuk el az idnket, hanem sszeren informcit cserlnk egymssal! Minden sprint vgn fel kell mutatni valamilyen eredmnyt, leginkbb valamilyen funkcionlis, mukd dolgot (amolyan "demzs" ez a megrendel szmra). Ez a sprint review, amivel azt biztostjuk, hogy nem csak a project egy ksi szakaszban (legrosszabb esetben a vgn) derl ki, egyltaln nem azt hoztuk ssze, amire a vevnek valban szksge lett volna. Ilyesmi pedig srn elfordul, a megrendel kds ignyeinek vagy a designer, architekt tvedsei miatt. A retrospektv elemzs azt szolglja, hogy az esetleges hibkbl okulva leszrjk a kvetkezmnyeket. Nem ujjal egymsra mutogatsrl van sz, hanem fejldsrl! A hatrid szent s srthetetlen. Nem lehet eltolni, azaz ami elkszlt arra az idpontra, az van, s ksz. Ezltal akr kthrom sprint utn ki lehet szrni a megvalsthatatlan kvetelmnyeket, projecteket, nem csak tbb hnapos megbeszlssorozat, tervezs s kdols, tesztels utn, ahogy az ms mdszertanoknl elfordulhat (pl. a V-modellnl). A SCRUM-nak is vannak persze negatvumai is, azonban rvidebb (< 1-1,5 v) projectek megvalstshoz szerintem kivl. Feature Driven Development (FDD) (jegyvezrelt fejleszts) Rvid itercis idej, modellvezrelt fejleszts 5 alapvet tevkenysg: tfog modell megalkotsa: a rendszer hatrainak meghatrozsa, minden modellterletre kln modell, kiscsoportos kidolgozs, ezek valamelyike, egytt vagy egyestve adjk az tfog modellt Jegyek listjnak ltrehozsa: a teljes clterlet lebontsa trgyakra-zleti tevkenysgekre, ezek lpsei adjk a jegyek listjt <tevkenysg><eredmny><trgy> formban. Jegyenknti projekttervezs: 1 jegy1 osztly1 felels Jegyenknti szoftvertervezs: jegyekbl fejlesztsi csomagok szekvenciadiagramok osztlydiagramok eljrsspecifikcilk Jegyenknti szoftversszellts (build): kdols, egysgteszt, kdszemleclszoftver sszelltsa Mrfldkvek: tfog modell, terv, tervszemle, kd, kdszemle, vgs sszellts Gyakorlati mdszerei Domain Object Modelling: szakterleti modell ksztse, amihez knnyen adhatunk jegyeket Jegyenknti fejleszts: Ha egy jegy 2 htnl sszetettebb, akkor szt kell bontani Egyni kd (osztly) birtokls Jegyfejleszt csapatok: kicsi hatkony csapat Szemlzs: hibafelderts, minsgbiztosts cljbl Konfigurcikezels Rendszeres sszellts (builds): mindig van egy napraksz futtathat rendszer A folyamat s az eredmnyek lthatsga Feature Driven Development s a Metamodellek A feladat lershoz legmegfelelbb nyelv megtervezse (ksbb hasznlata) Metaadat modellezs a modellezsi fogalmak rendszere Metafolyamat modellezs a modellezsi folyamatok rendszere Modelltalakt nyelv ltrehozsa UML Eszkzk: Adatmodell Aktivitsdiagram Folyamat-aktivits diagram (tevkenysgek s eredmnyek sszerendelse)

9. Szoftver felptmny mintk. Szoftver felptmny stlusok s elemzsk. Egy szoftver felptmnye egy adott rendszer struktrjt jelenti.A szoftver rendszer szervezsvel kapcsolatos legfontosabb dntsek. A szoftver elemeinek s kapcsold felleteinek (szerkezeti) lersa . A viselkedst a szoftverelemek kztti egyttmkds fogalmaival rjuk le . Szerkezeti s viselkedsbeli elemek egyttesen Egy szoftver felptmny minta egy olyan tlet, ami hasznosnak bizonyult egy gyakorlati helyzet megoldsban, s hasznos lehet msok szmra is. Egy minta egy utat mutat, hogy kisebb ptelemekbl hogyan llhat ssze egy komplett rendszer, a maga sszefggseivel. A minta mondja meg, hogy egy elemet hogyan, mikor, milyen mdon lehet hasznlni, s milyen elnyei vannak. Egy felptmny minta lerja egy teljes szoftver rendszer legfontosabb strukturlis felptst, rszrendszereket definil, lerja azok funkciit, s tartalmaz szablyokat s ajnlsokat az egyes elemek kzti egyttmkdsre. Egy minta szmos mdon felplhet, de jellemzen a kvetkez rszeket tartalmazza: nv, problmalers, elfelttelek a hasznlathoz, erssgek (a fbb erssgei s megktsei a mintnak, pl.: biztonsg, hatkonysg, jrafelhasznlhatsg, rthetsg, knny hasznlat stb.), az elrhet cl, pldk, hasonl mintk, ismert hasznlati helyek. Egy minta nem ad meg kzzel foghat felptst, sokkal inkbb egy rendszer ltfontossg elemeinek lersra koncentrl. A mintk legfontosabb klnbsgt az erssgei adjk, azaz hogy milyen problma megoldsra koncentrl az adott minta. Egy szoftver felptmny stlus hasonl szerkezet rendszerek egy csaldjt rja le, egy sztrt megadva, amiben le vannak rva az egyes sszetevk s hozzjuk tartz kapcsolelemek, s definilva vannak az egyes sszetevk sszekapcsolsra vonatkoz megszortsok. Rsze lehet mg egy szemantikus modell is, ami lerja, hogy milyen mdon hatrozhatak meg a teljes rendszer tulajdonsgai az egyes rszrendszereinek tulajdonsgaibl. Egy felptmny nzete: a rendszer egyszerstett lersa/elvonatkoztats valamilyen nzpontbl, lnyeges vonsokat kiemelve s lnyegteleneket pedig elhagyva. J felptmny jellemzi: rugalmas egyszer jl sztvlasztott szempontrendszerek felelssgek kiegyenslyozott sztosztsa gazdasgi s technolgiai megktsek kiegyenslyozott kezelse Lnyeges elemek A legfontosabb zleti osztlyok A legfontosabb mkdsi mdok Gpek s folyamatok Rtegek s alrendszerek
Logikai Nzet sszetev Nzet
Programozk Szoftver karbantarts jrafelhasznlhatsg Hordozhatsg

Vgfelhasznl Mveletkszlet

Haszn.Eset Nzet
rthetsg Hasznlhatsg

Folyamat Nzet
Rendszer integrtorok Teljestkpessg Elrhetsg Hibatrs

Teleptsi Nzet
Rendszertervezk Rendszertopolgia Szllts, telepts Kommunikci

Dataflow rendszerek: adatramlson alapul rendszerek, a lers alapja az adatok mozgsa s talakulsa o Csvek s szrk: minden komponensnek van ki- s bemenete, a szrk mdostjk is az tmen adatokat, a csvek csak kapcsolatot biztostanak. A szrk a komponensek, a csvek pedig a kapcsolelemek. Elnyk: Knny jrafelhasznlhatsg Knny karbantarthatsg s tpthetsg Prhuzamos vgrehajtsra alkalmas Htrnyok batch szekvencilis gondolkodsmd Az elemi lpsek egyenslyvesztse Interaktv alkalmazsokra nem hasznlhatk o Batch szekvencilis rendszer: csvekbl s szrkbl ll ez is, de a szrk minden bemenetket egyetlen entitsknt kezelik Hvs-s-visszatrs rendszerek: o Fprogram s eljrsok: adott egy fprogram, ami klnbz eljrsokat hv meg, s a visszaadott adatokkal dolgozik tovbb.

o OO rendszerek: minden adat egy objektumba van zrva. A komponensek az objektumok, a kapcsolelemek az eljrsok. Minden objektum maga felels az adatairt s mveleteirt. Adatrejts is lehetsges. Htrny, hogy kommunikcihoz ismerni kell az objektum azonostjt. o Hierarchikus rtegek: egy rendszer tbb hierarchikus szintre (rtegre) van osztva, minden szint az alatta lv rteget szolglja ki. Egy rteg egy elvonatkoztatsi vagy fizikai rteget jelent. Egy szintre a hasonl elvonatkoztatsi szinten lv, de egymstl fggetlen elemek kerlnek. Ezzel a problmk jl feloszthatak, az egyes rszek jrafelhasznlhatk. Htrny a hatkonysg (egy szint mindig csak a felette lvt hvhatja). Ilyen a kt- s hrom rteg szoftver felptmny. Fggetlen komponensek: o Esemnyvezrelt rendszerek: nem kzvetlen eljrshvs van, az egyes komponensek esemnyeket vltanak ki, ms komponensek pedig figyelnek bizonyos tpus esemnyeket. Egy esemny egy bizonyos tpus eljrs meghvst vltja ki. Virtulis gpek: o rtelmezprogramok: egy virtulis gpet megvalst szoftver szimultor. ltalban ngy rsze van: az rtelmezett program, a program llapota, az rtelmez llapota s az rtelmez maga. Egy programozs nyelv felfoghat, mint egy virtulis nyelv gp. Adatkzpont rendszerek: kt jellemz rszk van: egy kzponti adat struktra, ami az adatok aktulis llapott reprezentlja, s fggetlen komponensek gyjtemnye, ami az adattroln dolgozik. o Adatbzisok: ha a bemen adat tranzakci vlasztja ki a futtatand folyamatot, akkor hagyomnyos adatbzis hasznlhat o Blackboard rendszerek: ha a bemen adatoknl az adattrol llapota hatrozza meg a futtatand folyamatot, akkor blackboard a rendszer. Specializlt alrendszerekbl ll, amik egy kzs adattrral (ez a blackboard) dolgoznak. Az egyes alrendszerek eredmnyeinek sszefslse adja a teljes rendszer eredmnyt. Implicit hvs: az eljrsok kzvetlen meghvsa helyett az alrendszerek esemnyeket kldenek szt Ms alrendszerek az esemnyhez kezeleljrsokat rendelhetnek. Esemnyek fellpsekor a rendszer meghvja az esemnykezel eljrsokat Alrendszerek objektumfellet interface + esemnyek Htrnyok A vezrlst hangslyozzuk a szmts helyett Adatcsere igny Helyessgi ellenrzs/bizonyts problms Rteges szoftverfelptmny Rtegek: -Elvonatkoztatsi szinteket s fizikai rtegeket (szmtgpeket+szoftvereket) jelentenek. A hasonl elvonatkoztatsi szinten lev mveletek/szolgltatsok azonos krnyezetbe kerlnek. -Vzszintes s fggleges tagoltsg Rtegek -Szoftversszetevk ->Minden rteg egymstl fggetlen szoftversszetevkbl ll. -Megszorts ->A j rteg szolgltatsai csak a j+1. rtegbl hasznlhatk -Elnyei ->Absztrakcis szinteket tmogat tervezsi mdszerek hasznlhatk. ->Az egyes sszetevk jrafelhasznlsa knny. ->Knny a rendszerek karbantartsa s tovbbfejlesztse. ->Sklzhatsg yHtrnyai ->A megolds nem minden rendszerre keresztlvihet ->Hatkonysg: nem knny a magas s alacsonyszint sszetevk megklnbztetse ->Hatkonysg: Egy magasszint rtegbl az alacsonyszint rteg nem szlthat meg kzvetlenl gyfl-kiszolgl logikai rtegek GUI (grafikus kezeli fellet) - Front-end, eltr zleti logika (BOM, Business Object Model)- Kzprteg Adatbzis - Back-end, httr Ktrteg gyfl-kiszolgl vltozatok 1. zleti logika s adatbzis ugyanazon a gpen 2. Kzponti kezeli fellet s tvoli terminlok 3. zleti logika rszben az gyflnl

4. 5.

zleti logika teljes egszben az gyflnl ugyanez helyi adattrolssal

Hromrteg gyfl-kiszolgl vltozatok 1.Klasszikus hromrteg szerkezet 2.zleti logika rszben a httrben 3.zleti logika rszben az gyflnl 10. Elemzsi s tervezsi mintk. Idpont, Szakasz, Szmla s diszkrt idfgg adatkezels terve. Az elemzsi mintk egyfajta koncepcionlis mintk, amik egy vals helyzet absztrakcijnak lekpezsei, amivel gyakran lehet tallkozni szoftver tervezs folyamn. Egy elemzsi minta felfoghat gy, mint sszetartoz, ltalnos objektumok egy csoportja, amik tartalmaznak adat defincikat, eljrsokat s vannak kztk bizonyos elvrt egyttmkdsek. Jellemzen egy helyzet megoldsnak valamilyen lerst adja meg egy minta. A tervezsi mintk a szoftvertervezsben ltalnosan jrafelhasznlhat megoldsok klnbz ltalnos problmkra. Ezek nem olyan mintk, amik azonnal kdd alakthatk, inkbb egyfajta lerst adjk a problma megoldsnak, ami aztn szmos klnbz helyzetben felhasznlhat. Pl.: az OO mintk ltalban az egyes osztlyok s objektumok kapcsolatt mutatjk be, pontos osztly vagy objektum specifikcik nlkl. A tervezsi mintk hasznlatval gyorsthat a fejlesztsi folyamat, mivel jl tesztelt, bizonytottan jl mkd fejlesztsi mintkat ad. A mintk jrafelhasznlhatsga nveli a kd megbzhatsgt.

Model-View-Controller mgpedig sokszor van gy, hogy vltoztatni szeretnnk az adatkezelsen, jraszervezni az adatokat s nem szeretnnk, hogy mindez rintse a felhasznli felletet, vagyis ahhoz neknk mg vletlenl se kelljen ezen dolgok mdostsa miatt hozznyulnunk. Az adathozzfrs s az n. zleti logika elvlik az adat prezentcijtl, melyet egy kztes komponens bevezetsvel rnk el, ezt hvjuk Controller-nek. Model :Ebben a rszben fogalmazdik meg az zleti logika. Ezen rteg feladata lerni az adatszerkezeteket (melyeket hasznlni fogunk az alkalmazsban) s definilni azokat a szablyokat, melyek alapjn elrhetjk azokat. View: Ez itt a megjelentssel/prezentcival kapcsolatos osztlyokat rja le, s itt mutatkozik meg az MVC igazi ereje, vagyis szeparldik a prezentci az adatoktl. A View dolga a Model teljes tartalmnak vagy egy rsznek prezentlsa. Controller: Itt a lnyege az egsznek. Ok, hogy van Model s vannak View-k, de ezeket ssze kellene ktni valahogy. Ezrt felel a Controller. Az esemnyeket, mint pl. kattints egy gombra, bill. lets... tfordtja egy a modell ltal vgrehajtand akcira, illetve az akci lefutsnak eredmnytl fggen megjelenti a megfelel View-t
Minta:Idpont Idpont brzolsa valamilyen felbontsban, valamilyen helyen - milyen felbontsban? (vjrat dtum Timestamp) - milyen helyen? (idznk) - mveletek klnbz pontossg adatok kztt Ktfle megolds a Date tpusra
Tulajdonsgok: adatmodell / megvalstsi modell
Date
year : Integer month : Integer day : Integer '+'(diff : Date) : Date '-'(diff : Date) : Date tomorrow() : Date yesterday() : Date

Fellet (interface) csak mveletdefincik

Date
year() : Inte ger mo nth () : Int ege r day() : I nt eger '+ '( diff : Date) : Dat e '-'(di ff : Dat e) : Date tomorrow() : Dat e yesterday () : Date

Burkolosztlyok (adapterek, wrapperek)


MyCalendar - /base : GregorianCalendar + year ( ) + month ( ) + day ( ) + previous ( ) + next ( ) +- ( ) ++( ) + year ( ) - base + month ( ) + day ( ) * + previous ( ) + next ( ) +- ( ) ++( ) GregorianCalendar

Burkolosztly, amelyben az alaposztly sszetev


MyCalendar_1

Burkolosztlykpzs alosztlykpzssel

+ isLeapYear ( )

Range (Szakasz) sszehasonlthat/rendezhet tpusok felett Mveletek: szakaszba ess, tlapols Osztlymintkkal (template) megvalsthat Sorbarendezs, mint extra mvelet Nyitott vg szakasz Accounting Entry (Szmla ttel) Idpont sszeg Partner Helyszn Hny szmlnk van? (Kinek?) Account (Szmla) Ttelek halmaza, ahol a ttelek sszegezhetek (+(x:Entry):Entry) A ttelek, a trtnetk maguk fontosabbak, mint az sszegk Nem felttlenl pnztl van sz (fogyaszts, csapadk, teljestmny stb.) Indirekcis lehetsg, szrhet a ttelek tbbi krlmnyei alapjn Idfggs, idgp Diszkrt idfggs: a vltozs ugrsszer Milyen vltozsokat kell rgzteni? Csak jelenidej vltozsok. Tranzakciba foglals Csak httrben trolt (perzisztens) objektumokra Alapesetben a legfrissebb adatokkal dolgozunk Az idgp brmilyen korbbi dtumra visszallthat Idbeli vltozsok egyetlen elemre Egy konkrt objektumhl (pillanatfelvtel) idben sszeegyeztethet (konzisztens)-e Idfgg adatok kre Idfggs finomsga (az egsz rendszerre/egy objektumra/egy tulajdonsgra) Iddimenzik szma (bi-temporal, 2 iddimenzi)
temporal Customer 1 Address

Temporal Property + getAddress ( ) Lekrdezs (accessor) idpont fggvnyben Mdostsok - hozzfz az idsor vgn, mltbeli, jelen, jvbeli - mdost az idszakaszok egymst kizrjk? - beszr egyb konzisztenciakrdsek - trl (!!!) Megvalsts: 1. egyszer lineris vektor 2. Idfgg gyjtemny (temporal collection)

11. Elemzsi s tervezsi mintk. A 4-ek bandja ltrehoz (creational) tervezsi minti. A 4-ek bandja (Gang of Four, GoF) nvvel egy knyv ngy szerzjt szoktk illetni, akik a knyvben szoftvertervezs jellemz problmira adnak ismtld vlaszokat. A knyvk els felben az objektumorientlt programozs lehetsgeit s csapdit veszik t, a msodik rszben a 23 klasszikus szoftver tervezsi mintt. A GoF ltal meghatrozott tervezsi mintknak hrom nagy csoportja van: a ltrehozi (creational), a szerkezeti (structural) s a viselkedsi (behavioral) mintk. Az elemzsi mintk egyfajta koncepcionlis mintk, amik egy vals helyzet absztrakcijnak lekpezsei, amivel gyakran lehet tallkozni szoftver tervezs folyamn. Egy elemzsi minta felfoghat gy, mint sszetartoz, ltalnos objektumok egy csoportja, amik tartalmaznak adat defincikat, eljrsokat s vannak kztk bizonyos elvrt egyttmkdsek. Jellemzen egy helyzet megoldsnak valamilyen lerst adja meg egy minta. A tervezsi mintk a szoftvertervezsben ltalnosan jrafelhasznlhat megoldsok klnbz ltalnos problmkra. Ezek nem olyan mintk, amik azonnal kdd alakthatk, inkbb egyfajta lerst adjk a problma megoldsnak, ami aztn szmos klnbz helyzetben felhasznlhat. Pl.: az OO mintk ltalban az egyes osztlyok s objektumok kapcsolatt mutatjk be, pontos osztly vagy objektum specifikcik nlkl. A tervezsi mintk hasznlatval gyorsthat a fejlesztsi folyamat, mivel jl tesztelt, bizonytottan jl mkd fejlesztsi mintkat ad. A mintk jrafelhasznlhatsga nveli a kd megbzhatsgt. Ltrehozi mintk: objektumok ltrehozsnak mdjval foglalkozik, hogy milyen mdon hozzuk ltre az objektumokat a helyzetnek megfelel mdon. o Singleton: olyan objektum, amibl garantltan egyetlen pldny ltezhet csak egy rendszerben. Rendszerint tartalmazza sajt egyetlen pldnyt. o Abstract factory: egy feladathoz szksges objektumot nem a sajt konstruktorval hozzuk ltre, hanem a factory egy fggvnyhvsval. Egy felletet ad akr sszetartoz, akr fggetlen objektumok ltrehozshoz, anlkl, hogy megadnnk a konkrt osztlytpust. o Builder: elvlasztja egy komplex objektum ltrehozst a reprezentcijtl, gy ugyanaz a ltrehoz eljrs kpes klnbz reprezentcikat is ltrehozni. o Prototype: megad egy objektum prototpust, amibl aztn msolssal lehet ltrehozni jabb pldnyokat. Singleton Olyan osztly megadsa, amely megakadlyozza, hogy tbbszrsen pldnyostsk. Ezt gy ri el, hogy az osztly tartalmazza sajt egyetlen pldnyt (statikus, osztly hatkr) Az egyetlen pldny elrse statikus (osztly hatkr) elr (accessor) mvelettel A Singleton konstruktora csak privt lehet! (hogy ne tudjok brki j pldnyt ltrehozni belle) Ksi kezdrtkezs Vigyzat a statikus accessorral! Nem szrmaztathat le belle jabb osztly Globlis vltozhoz hasonl mkdsmd (llandnak ltsz krnyezeti informcik trolsa vagy csak funkcionlis osztly) Singleton trlse (?) Builder Cl: valamilyen kls reprezentci beolvassakor a reprezentci felismerst s az adatszerkezet ltrehozst klnvlasztani Megolds: a Director a Builder burkolja (Builder rsze Directornak). A Director:construct eljrsa ltrehozza a teljes Product szerkezetet. A construct eljrs meghvja a Builder:buildPart1(), buildPartN() eljrsait, amelyek a Builderen bell ltrehozzk a Product rszeit. A ltrehozs utn a Builder:getResult:Product eljrssal lehet az eredmnyt megkapni. Prototype A Prototype tpus objektumbl j pldnyokat gy hozhatunk ltre, hogy meghvjuk a clone():Prototype mdszert. Ez ltrehozza az alapobjektum egy msolatt. Factory Method A munkhoz szksges objektumokat a ConcreteCreator:factoryMethod lltja el. Ennek az eredmnye az absztrakt Product tpus. A vltozatlan specifikci mellett egy vagy tbb ConcreteProduct ltezik, a factoryMethod termszetesen konkrt tpus objektumokat llt el.

AbstractFactory A munkhoz szksges objektumokat a programban nem a new opertorral lltjuk el, hanem a Factory osztly createProduct (polimorf) hvsval. A Factory osztlyban nemcsak egyetlen createProduct eljrs van, hanem ilyenekbl egy csokorra val. Ha j ConcreteProduct tpusra van szksgnk, akkor nem szksges az absztrakt kdot mdostani, hanem csak a megfelel ConcreteFactory osztlyt kell ltrehozni. Ilyen mdon hozzuk ltre pl. a CORBA objektumokat (a tvoli szerverrl csak a Factory objektum azonostjt szerezzk meg, a tbbit mr a megfelel hvsok eredmnyekppen kapjuk meg). 12. Elemzsi s tervezsi mintk. A 4-ek bandja szerkezeti (structural) tervezsi minti. A 4-ek bandja (Gang of Four, GoF) nvvel egy knyv ngy szerzjt szoktk illetni, akik a knyvben szoftvertervezs jellemz problmira adnak ismtld vlaszokat. A knyvk els felben az objektumorientlt programozs lehetsgeit s csapdit veszik t, a msodik rszben a 23 klasszikus szoftver tervezsi mintt. A GoF ltal meghatrozott tervezsi mintknak hrom nagy csoportja van: a ltrehozi (creational), a szerkezeti (structural) s a viselkedsi (behavioral) mintk. Az elemzsi mintk egyfajta koncepcionlis mintk, amik egy vals helyzet absztrakcijnak lekpezsei, amivel gyakran lehet tallkozni szoftver tervezs folyamn. Egy elemzsi minta felfoghat gy, mint sszetartoz, ltalnos objektumok egy csoportja, amik tartalmaznak adat defincikat, eljrsokat s vannak kztk bizonyos elvrt egyttmkdsek. Jellemzen egy helyzet megoldsnak valamilyen lerst adja meg egy minta. A tervezsi mintk a szoftvertervezsben ltalnosan jrafelhasznlhat megoldsok klnbz ltalnos problmkra. Ezek nem olyan mintk, amik azonnal kdd alakthatk, inkbb egyfajta lerst adjk a problma megoldsnak, ami aztn szmos klnbz helyzetben felhasznlhat. Pl.: az OO mintk ltalban az egyes osztlyok s objektumok kapcsolatt mutatjk be, pontos osztly vagy objektum specifikcik nlkl. A tervezsi mintk hasznlatval gyorsthat a fejlesztsi folyamat, mivel jl tesztelt, bizonytottan jl mkd fejlesztsi mintkat ad. A mintk jrafelhasznlhatsga nveli a kd megbzhatsgt. Szerkezeti mintk: objektum sszettelekre plnek, elsegtik a tervezst azzal, hogy egy egyszer utat nyitnak az egyes pldnyok kzti kapcsolatok feldertshez. Adaptor: burkol osztly, egy osztly fellett talaktja olyan mdon, ahogy azt egy msik objektum elvrja. Klasszikus Wrapper osztlyszerkezet/Objektum adapter/objektumkompozcival Target: interface, definci, ezt kapja/hasznlja/vrja az gyfl Client: gyfl, aki hasznlja Adapter: olyann alaktja az Adaptee interfszt, amilyet a kliens szeretne Adaptee: ezen vgznk talaktst Adapter osztlyszerkezet tbbszrs rkldssel (osztly adapter) Bridge: elvlasztja a defincit a megvalststl, gy ezek kln tudnak vltozni egymstl. Composite: tbb fggetlen objektumbl kpez egy fa-struktrj sszetett objektumot, amit aztn, mint egyetlen objektumot lehet tovbb kezelni. sszetett objektumok kezelse, amikor objektumok egy csoportjt gy kezeljk, mintha egyetlen objektum volna. A tnylegesen egyszer (Leaf) s az sszetett (Composite) objektumok egyntet kezelse (Component fellet) Az objektumok egy faszerkezetet fesztenek ki Decorator: egy osztlyhoz dinamikusan ad hozz j mveleteket, kibvtve a funkcionalitst. Decorator egy burkolosztly, amivel j mveleteket adunk az eredeti (Component) osztlyhoz. Decorator() (konstruktor) paramtere a kibvtend Component pldny. Valjban a ConcreteDecorator adja hozz az j mveleteket. Elbb a Component objektumot hozzuk ltre, majd ezzel ltrehozzuk a Decoratort Facade: tbb interface szmra biztost egy egysges, egyszerstett felletet. A Facade osztly tbb klnbz osztlyhoz biztost egyszerstett felletet. Ilyen lehet pl. tbb osztly, alrendszer, vagy nagyobb llegzet objektumknyvtr. Flyweight: Ha nagyon nagyszm objektumot kezelnk, akkor fontos, hogy csak kevs felesleges adatot troljunk Nincsenek osztlyfggvnyeik, hogy a vtable pointer ne foglaljon helyet Pl: egy word-processor karakterei. Nem trolhatunk minden bett a formattlsval egytt csupn egy hivatkozst trol a formattlsra Azonosan formattlt szvegszakaszok sszefogsa egyetlen blokkba

Proxy: egy fellet egy msik osztly fel, amin keresztl lehet kezelni az adott osztlyt. Jellemzen egy osztlyhoz tbb proxy tartozhat. Objektum helyett egy helyettest objektumot hasznl, ami szablyozza az objektumhoz val hozzfrst. Pl. Szvegszerkeszt, sok nagymret kppel. Csak akkor jelentjk meg/tltjk be a kpeket, ha odagrgetnk Egyetlen pldnyt hozunk ltre, s (szksg szerint) proxy pldnyt. Minden mveletet a megvalstott osztlypldny vgez el Ha a proxy megsznik, akkor megsznhet a megvalstott pldny is Subject: kzs interfszt biztost a Subject s a Proxy szmra (ezltal tud a minta mkdni, ez a lnyeg!) RealSubject: a valdi objektum, amit a proxy elrejt Proxy: helyettest objektum. Tartalmaz egy referencit a tnyleges objektumra, hogy el tudja azt rni. Szablyozza a hozzfrst a tnyleges objektumhoz, feladata lehet a tnyleges objektum ltrehozsa s trlse is. Tvoli Proxy: Tvoli objektumok loklis megjelentse tltsz mdon. A kliens nem is rzkeli, hogy a tnyleges objektum egy msik cmtartomnyban, vagy egy msik gpen van Virtulis Proxy: Nagy erforrs igny objektumok igny szerinti ltrehozsa (pl. kp) Vdelmi Proxy: A hozzfrst szablyozza klnbz jogok esetn Smart Pointer: Egy pointer egysgbezrsa, hogy bizonyos esetekben automatikus mveleteket hajtson vgre (pl.:lockols) 13. Elemzsi s tervezsi mintk. A 4-ek bandja viselkedsi (behavioral) tervezsi minti. A 4-ek bandja (Gang of Four, GoF) nvvel egy knyv ngy szerzjt szoktk illetni, akik a knyvben szoftvertervezs jellemz problmira adnak ismtld vlaszokat. A knyvk els felben az objektumorientlt programozs lehetsgeit s csapdit veszik t, a msodik rszben a 23 klasszikus szoftver tervezsi mintt. A GoF ltal meghatrozott tervezsi mintknak hrom nagy csoportja van: a ltrehozi (creational), a szerkezeti (structural) s a viselkedsi (behavioral) mintk. Az elemzsi mintk egyfajta koncepcionlis mintk, amik egy vals helyzet absztrakcijnak lekpezsei, amivel gyakran lehet tallkozni szoftver tervezs folyamn. Egy elemzsi minta felfoghat gy, mint sszetartoz, ltalnos objektumok egy csoportja, amik tartalmaznak adat defincikat, eljrsokat s vannak kztk bizonyos elvrt egyttmkdsek. Jellemzen egy helyzet megoldsnak valamilyen lerst adja meg egy minta. A tervezsi mintk a szoftvertervezsben ltalnosan jrafelhasznlhat megoldsok klnbz ltalnos problmkra. Ezek nem olyan mintk, amik azonnal kdd alakthatk, inkbb egyfajta lerst adjk a problma megoldsnak, ami aztn szmos klnbz helyzetben felhasznlhat. Pl.: az OO mintk ltalban az egyes osztlyok s objektumok kapcsolatt mutatjk be, pontos osztly vagy objektum specifikcik nlkl. A tervezsi mintk hasznlatval gyorsthat a fejlesztsi folyamat, mivel jl tesztelt, bizonytottan jl mkd fejlesztsi mintkat ad. A mintk jrafelhasznlhatsga nveli a kd megbzhatsgt. Viselkedsi mintk: az objektumok kztti kommunikcit ler mintk. Nhny plda: o Command: objektumba csomagol egy krst a paramtereivel egytt. o Iterator: lehetsget ad egy sszetett objektum egyes elemeinek szekvencilis elrsre anlkl, hogy a bels struktrval foglalkozna. o Mediator: egy objektumot definil, amibe becsomagolja, hogy ms objektumok milyen mdon mkdnek egytt. Egy felletet biztost ms felleteknek egy alrendszerben. o State: egy mdja annak, ahogy egy objektum futsidben kpes legyen rszben megvltoztatni a sajt tpust. TemplateMehtod Cl Egy mveleten bell algoritmus vzat definil, s a vz nhny lpsnek implementlst a leszrmazott osztlyra bzza. Plda: Framework-ben dokumentum megnyitsa A framework-ben legyen adott kt osztly, Application s Document. Ezekbl kell a programoznak egy-egy sajt osztlyt leszrmaztatnia, amikben megvalstja az alkalmazs specifikus viselkedst. Lehetv teszi n. hook fggvnyek definilst: kiterjesztsi pontok Lehetv teszi, hogy az algoritmus invarins rszeit egy helyen definiljuk, s a vltoz rszeket a leszrmazott osztlyban adjuk meg Kd duplikls elkerlse: a hierarchiban a kzs kdrszeket a szl osztlyban egy helyen adjuk meg (template method), ami a klnbz viselkedst megvalst egyb mveleteket hvja meg. Ezeket a klnbz viselkedst megvalst egyb mveleteket a leszrmazott osztlyban fell kell/lehet definilni.

Observer Cl Hogyan tudjk objektumok rtesteni egymst llapotuk megvltozsrl anlkl, hogy fggsg lenne a konkrt osztlyaiktl Plda: MVC vagy Document-View architektra A felhasznl megvltoztatja az egyik nzeten az adatokat, hogyan frisstsk a tbbit? Kzvetlen fggvnyhvssal? Ha j nzetet szeretnk bevezetni, minden nzet osztlyt mdostani kell Nehz karbantartani, tovbbfejleszteni, jrafelhasznlni, mert tl szoros a csatols az osztlyok kztt Megolds Az elz pldra a MVC vagy Document-View architektra Emeljk ki az adatokat s az azon rtelmezett mveleteket egy modell osztlyba A modellhez klnbz view-kat (observers) lehet beregisztrlni Ha valamelyik view megvltoztatja a modell adatait, a modell rtesti az sszes beregisztrlt view-t a vltozsrl. Az rtests hatsra a view lekrdezi a modell llapott s frissti magt A modell csak egy kzs View (Observer) interfszen keresztl trolja a beregisztrlt view-kat Elnyk A modell kdjban csak egy IView lista van, gy a modell fggetlen az egyes IView-t implementl osztlyoktl. A modell jrafelhasznlhat! Egy egyszer mechanizmust kaptunk arra, hogy az sszes view konzisztens nzett mutassa az adatoknak. A rendszer knnyen kiterjeszthet j view osztlyokkal. Sem a modellt, sem a tbbi view osztlyt nem kell ehhez mdostani. ltalnostva, elvonatkoztatva a model-view esettl A fenti megkzelts lehetv teszi, hogy egy objektum megvltozsa esetn rtesteni tudjon tetszleges ms objektumokat anlkl, hogy brmit is tudna rluk Ez az n. observer pattern Szereplk a klasszikus megvalstsban Subject Trolja a beregisztrlt Observer-eket Interfszt definil Observer-ek be- s kiregisztrlsra valamint rtestsre Observer Interfszt definil azon objektumok szmra, amelyek rteslni szeretnnek a Subject-ben bekvetkezett vltozsrl (Update mvelet) ConcreteSubject Az observer-ek szmra rdekes llapotot trol rtesti a beregisztrlt observer-eket, amikor az llapota megvltozik ConcreteObserver Referencit trol a megfigyelt ConcreteSubject objektumra Olyan llapotot trol, amit a megfigyelt ConcreteSubject llapotval konzisztensen kell tartani Implemetlja az Observer interfszt (Update mvelet), ez az, amit a Subject meghv, amikor a ConcreteSubject llapota megvltozik. Ebben frissti a sajt llapott a megfigyelt ConcreteSubject llapotnak megfelelen Felelssgi lnc A krs kldje s fogadja csak kzvetett kapcsolatban van gy, hogy egy sor, klnbz tpus fogadobjektum kzl egy lncon megkeresi azt, amelyik kezeli a krst Client:a krs kezdemnyezje Handler fellet: definilja: 1. a krs kezeljt 2. a successor rkvetkez kapcsolatot ConcreteHandlerN: megvalstja a krskezel eljrst, vagy tovbbtja a kvetkeznek Parancs (Command) Krs becsomagolsa objektumknt Client: ltrehoz egy Invoker objektumot, s belltja a fogad (Receiver) tagjt, majd meghvja egy eljrst. Invoker: pldnyostja a ConcreteCommand objektumokat s meghvja az execute mdszerket Command: a mveletvgrehajts fellett definilja ConcreteCommand: 1. a kapocs a Receiver objektum s a tevkenysg kztt 2. megvalstja az Execute mdszert gy, hogy meghvja a Receiver egyes mdszereit Receiver: a parancs egyes mveleteinek megvalstja Interpreter Ha adott egy nyelv, akkor megadja a nyelvtan brzolst, valamint egy rtelmezprogramot hozz Context: az interpreter szmra globlis objektumok kszlete Client: felpti a program absztrakt szintaxisfjt, belertve a a TerminalExpression, a NonterminalExpression s ms szerkezeteket AbstractExpresson: fellet, amely megadja a mvelet vgrehajtst NonterminalExpression: minden nemterminlishoz ksztnk egy ilyen osztlyt, benne a szably jobboldalnak megfelel AbstractExpression pldnyokkal megvalstja az interpret mveletet TerminalExpression: - megvalstja az interpret mveletet a mondat minden terminlishoz ksztnk egy pldnyt

Iterator (Lineris) Gyjtemny elemeinek szekvencilis elrse Iterator: absztrakt fellet gyjtemnyelemek bejrshoz s elrshez ConcreteIterator: - az Itertor fellet megvalstsa a gyjtemny aktulis pozcijnak trolsa Aggregate: absztrakt gyjtemny itertor ltrehozst szabja meg ConcreteAggregate: konkrt itertor ltrehozsa Mediator - Objektum megadsa, amely ms objektumok klcsnhatst zrja egysgbe gy, hogy laza (nem kzvetlen) kapcsolatot hoz kzttk ltre Mediator: a Colleague objektumok klcsnhatsainak kezelst megad fellet ConcreteMediator: - megvalstja a Meditor fellett trolja a kollgkat - ConcreteColleague: - rmutat a Meditorra kommunikcis igny esetn a msik kollga helyett a meditorral kommunikl Memento Egy objektum bels llapotnak mentse ksbb visszatltshez Memento: - az Originator objektum bels llapott (v. annak egy rszt) trolja kt fellet: 1.Caretaker csak a Mementt ltja, s csak hozni-vinni tudja. Csak Originator tud a teljes bels llapothoz hozzfrni Originator: - a bels llapotrl kszt egy Memento pillanatfelvtelt a Mement segtsgvel visszalltja a bels llapott Caretaker: - trolja a mementt de sosem fr hozz a mementhoz kzvetlenl Strategy Algoritmuscsald megadsa, amelyek cserlhetk. Strategy lekezeli az algoritmusok vltozst gy, hogy az gyfl nem ltja Strategy: Felletmegads, amin keresztl pl. Context meghvja ConcreteStrategy: a Strategy fellet algoritmusainak megvalstsa Context: - a ConcreteStrategy objektummal egytt konfigurlhat - egy Stratgia objektumra mutat referencit trolunk. Megadhat egy fellet is, amin keresztl Strategy hozzfrst biztosthat State - A minta clja, hogy egy objektum a konkrt tpust futsidben is kpes legyen vltoztatni A konkrt tpus a State osztlybl van leszrmaztatva (esetleg tbb is) ConcreteState. A Context-beli eljrsok csak az absztrakt State fellet eljrsait hvjk meg. Visitor Visitor kiterjeszti az Element (knny) objektumok mkdst anlkl, hogy az Element osztlyhierarchihoz hozz kellene nylni. Dupla polimorfizmus: 1. Element konkrt tpustl fggen ms s ms accept megvalsts hvdik meg. 2. Az accept-nek tadott Visitor konkrt tpustl fggen ms s ms visit megvalsts hvdik meg

You might also like