Alkalmazasfejlesztes az UML jelöléseivel

Embed Size (px)

Citation preview

UMLA szabvnyos OO modellez nyelvVg Csaba / www.logos2000.hu

Modellezs

Vg Csaba / www.logos2000.hu

ModellezsProgramozs el tti el zetes terv Rendszerszervezs

elemzs tervezs implementci

Feladat Elemzs Tervezs Programozs Gpi szint egzaktsg

Vg Csaba / www.logos2000.hu

Modellezs

klnbz rszletezettsgi szint vzlatos tervek el nyk ttekinthet bbek ellen rizhet megrendel kkel egyeztetsre fejleszts menete jobban nyomon kvethet (er forrsigny, bekerls kltsge). knnyebben mdosthatkVg Csaba / www.logos2000.hu

Knnyebb mdosts

Cg

Alkalmazs 1 *

Szemly

Megfelel jellsrendszer esetn egyetlen jel megvltoztatsval lehet v tehetjk, hogy egy Szemlyt ne csak egy, hanem tbb Cg is alkalmazhasson.

Cg

Alkalmazs * *

Szemly

Vg Csaba / www.logos2000.hu

Vizulis jellsekProjektvezet Vezet* 1 Projekt 1 * Rszfeladat Kidolgoz Alvllalkoz * 1trkp, tervrajz (blueprint) csompontok: elemek; lek: viszonyok

Vg Csaba / www.logos2000.hu

Bonyolultsg kezelse

dealing with complexity eszkzk absztrakci rszekre bonts

Vg Csaba / www.logos2000.hu

Absztrakci (hasonlsg)vagy absztrakt elem

Szemly szletsi id : Date

Frfi sorkteles : booleanVg Csaba / www.logos2000.hu

N lenykori nv : String

Rszekre bonts

s:Szerkeszt lap fgg leges :Csszka :Vszon :Alakzat :Alakzat httr :Minta vzszintes :CsszkaVg Csaba / www.logos2000.hu

Absztrakci

Absztrakci kiemels lehet sge (konzisztencia!) megoszts (sharing), jrafelhasznls (reuse)

Adatbzisablak

Sajt adatbzisablakVg Csaba / www.logos2000.hu

Strukturlt szemllet1.1. rszfeladat 1. rszfeladat 2. rszfeladat Feladat 3. rszfeladat id 1.2. rszfeladat

Vg Csaba / www.logos2000.hu

SzemlletekGpkzeli szemlletadatelemek adatszerkezet

Strukturlt szemllet

Objektumorientlt szemlletobjektumstruktra

elemi utastsok szerkezet

utastsszerkezet Az OO megkzelts a feladatot egyetlen egysges mdon bontja fel.

Vg Csaba / www.logos2000.hu

Modell transzformcija

Gondolati modell

Modellez nyelv

Programozsi nyelv

Gpi nyelv

Vg Csaba / www.logos2000.hu

Megkzeltsi szintekA szemllet szintje Elemzs Tervezs Programozsnzet absztrakt megoldsi md lekpezs (mapping)

Vg Csaba / www.logos2000.hu

Koncepcionlis szint Technikai szint Implementcis szint

Trtnet

Vg Csaba / www.logos2000.hu

OO programozsi nyelvek

67

SIMULA (Dahl, Nygaard)

osztlyok, egyszeres rkl ds, m velet-tdefinils (overloading), a statikus s dinamikus kts (!), beptett garbage collection, korutinok, szimulcit segt kiegszt osztlyok

70-es vek: Smalltalk (A. Kay s A. Goldberg ) az els tisztn OO nyelv XEROX Palo Alto kutatkzpontja "objektumorientlt: Alan Kay SIMULA '67 koncepciin LISP alapfelpts nyelv zenetvlts jellse grafikus felhasznli felletek (GUI) megjelense

Vg Csaba / www.logos2000.hu

OO nyelvek: C kiterjeszts

'80-as vek elejn Objective-C Smalltalk nyelvre plt

C++ (korbban: C with classes) szimulcis feladatok hatkony kezelsre; tbb nyelvi elemet is a SIMULA '67-b l vettek t objektumorientlt koncepcik gpkzeli szinten s hatkonysggal -> OO technikk ipari mret felhasznlsa

Vg Csaba / www.logos2000.hu

C++ bonyolult nyelv: teljes eszkzrendszert csak magasan kvalifiklt programozk ismerik. hatkony s ezrt nagyon magas kltsg megoldst knyszerti ki: a problmt nem lehet nagyvonalan, absztraktabb szinten megkzelteni nem rendelkezik beptett automatizmusokkal (pl. gc) s vdelmi eszkzkkel (pl.: indexhatr-ellen rzs), amelyek megknnytenk a biztonsgos programok fejlesztst. viszonylag kevs a szabvnyos kiegsztse (sszetett adatok, felhasznli felletek kezelse).

Egy C++ projekt sikere nagy tapasztalatot s komoly el kszleteket ignyel.Vg Csaba / www.logos2000.hu

Javaegyszer stett C++ ltalnossg (pl. metdusok virtulisak, objektumrl megllapthatjuk, hogy egy adott osztly pldnya-e, stb.) el trbe helyezse a hatkonysg rovsra

bels automatizmusok (pl.: trfelszabadts) s a biztonsgossg (pl.: indexhatr-ell., res mutatn keresztl trtn hivatkozs). csak nehezen tehetjk meg, hogy ne nagyvonalan kzeltsk meg a feladatot.Vg Csaba / www.logos2000.hu

Java igen nagy mret osztlyknyvtrral rendelkezik a nyelv s a krnyezet is elmletileg platformfggetlen: a szlogen szerint az egyszer megrt s lefordtott kd brhol futtathat, ahol elrhet a Java virtulis gp. igen produktv krnyezet, amely lnyegesen felgyorsthatja az alkalmazsok fejlesztst. sok informatikai cg tmogatja: objektumorientlt lingua francaVg Csaba / www.logos2000.hu

Java - hinyossgokkvetkezetlensgek a nyelvben nem megoldottak a sebessg s hatkonysg problmk csak rszben megoldott az objektumok kls trolsnak krdse (a perzisztencia, illetve a relcis adatbzisban trtn trols) az alkalmazsoknak igen nagy az er forrsignye.

Vg Csaba / www.logos2000.hu

MdszertanokSzoftver-krzis OO mdszertanok

tervezs (OO design) elemzs (OO analysis) a kifejlesztend alkalmazst mr nyelvt l s platformtl fggetlen mdon kzelti meg.

'86: Grady Booch (Ada tanfolyam) Abbot '83 diagramok (Intel iAPX 432)

91: Booch mdszer (nem csak Ada-ra)Vg Csaba / www.logos2000.hu

'89: CRC-krtyk mdszere (Cunningham s Beck) '90: Rebecca Wirfs-Brock: felel ssgeken alapul tervezs (RDD: responsibility-driven design)

Vg Csaba / www.logos2000.hu

OO elemzs

Hagyomnyos elemzsi mdszerek alapjn '89: Shlaer-Mellor: adatmodellezs objektum-alap kiegsztse 90,91: Coad-Yourdon: elemzsi mdszer

Vg Csaba / www.logos2000.hu

OMT

91: James Rumbaugh s ngy trsa (Blaha, Premerlani, Eddy s Lorensen) General Electric kutatkzpontja Objektum-modellezsi technika (Object Modeling Technique - OMT) jellsrendszer s mdszer

egyik legkedveltebb mdszerr vlt.Vg Csaba / www.logos2000.hu

OMT siker a knyv kzrthet nyelven rdott elsajttshoz nem szksgesek mly informatikai ismeretek minden fogalmat (informlisan) egyszer en s rthet en definiltak legnpszer bb jellsek alapjn konzisztens jellsrendszert lltottak ssze mdszerk egyszer en, szinte gpiesen vgrehajthat lpsekb l ll (alapja az Abbot-fle szvegelemzs)Vg Csaba / www.logos2000.hu

OMT

a gyakorlati alkalmazs a jellsek s a technika tbb gyenge pontjt s hinyossgait is a felsznre hozta. ttekinthet s biztonsgos alap hasznlhat az OO technikkkal val ismerkeds els lpseknt is

Az UML majdnem teljes mrtkben tvette az OMT jellseit.Vg Csaba / www.logos2000.hu

Hasznlati esetek

korai OO mdszerek hinyossga: kevs tmpontot adtak a kvetelmnyek tisztzsra. pl. OMT: adottnak ttelezi fel szveges formban

Jacobson s trsai: Objectory, ill. OOSE (Object-Oriented Software Engineering) jdonsga a hasznlati esetek (use case) technikja.Vg Csaba / www.logos2000.hu

Hasznlati eseta rendszer s a felhasznl kztti tipikus interakci-sorozat sszefoglalhatjuk a rendszerrel kapcsolatos kvetelmnyeket, a rendszer vzlatos kls "kpt", a rendszer hatrait.

nagyon npszer technika (nem OO) OMT-II: alkalmazsfejleszts els lpse

Vg Csaba / www.logos2000.hu

Egysgests s szabvnyosts

90-es vek: OO technikk nagyon npszer ek, nll jellsek s mdszerek (10-50) nehz volt vlasztani azonos koncepcikat hasznltak

Jelent sebb mdszer msodik genercija (pl. Booch '93, OMT-II), melyek tbb koncepcit, jellst s technikt is tvettek versenytrsaiktl. OMG (Object Management Group) ksrlet Booch: informlis megbeszlsek ("ktetlen reggeli kvzs") "mdszerek hborja" (method war)Vg Csaba / www.logos2000.hu

Egyeztets

'94 sz: OOPSLA: Booch s Rumbaugh (Method war is over - we won) Rumbaugh csatlakozik Booch cghez (Rational)

'95 OOPSLA: Egysgestett mdszer (Unified Method) 0.8 Booch '93 + OMT-II + hasznlati esetek Jacobson (Objectory) is csatlakozik

UM: sok kritika; nem tartalmazott tnyleges mdszertani elemeket '96: UML (Egysgestett modellez nyelv) 0.9 Rational Objectory Process Vg Csaba / www.logos2000.hu

Szabvnyosts

UML Partners: UML szabvnyostsa (nmagban is "de facto" szabvnny vlt volna).

97 jan: UML 1.0 (nhny kifogs) 97 szept. UML 1.1 97 nov. OMG szabvny UML dokumentci: Rational web-lapjn 97: Fowler - Scott: UML Distilled. Applying the Standard Object Modeling Language 99 UML 1.3Vg Csaba / www.logos2000.hu

UML forrsokBooch, Rumbaugh, Jacobson: The Unified Modeling Language User Guide Rumbaugh, Jacobson, Booch: The Unified Modeling Language Reference Manual Jacobson, Booch, Rumbaugh: The Unified Software Development Process

Vg Csaba / www.logos2000.hu

Mi az UML? Unified Modeling Language OO szemlletre pl elemzs s tervezs eszkze. kzvetlen rkse a korbbi hrom legnpszer bb objektumorientlt mdszertannak (a hrom jellsrendszer kvetkez genercijnak is tekinthet ) az OMG ltal elfogadott, szabvnyos jellsrendszer. alapvet en grafikus nyelv (diagramok) modellez nyelv nem vizulis programozsi nyelv a modellek brzolsra alkalmas jellsrendszer

Vg Csaba / www.logos2000.hu

szabvnyossg

Informcicsere: OO mdszerek ipari mretekben trtn alkalmazsnak kulcsa fejleszt i csoporton belli kommunikci vllalatok kztti informcicsere a megrendel s a fejleszt cg kztti informcicsere

nem szksges kln bels szabvnyt kialaktani, nagyobb ismeretanyag, knyvek, cikkek oktatjk, ezrt lervidthet az jonnan felvett informatikusok munkba llsa.

Vg Csaba / www.logos2000.hu

Nyelv s mdszer

modellez nyelv: modellek brzolsa a nyelv ismerete egy ksz modell rtelmezst teszi lehet v, de nem ad ajnlst arra vonatkozan, hogy azt milyen lpsekkel lltsuk el . A mdszer (process) felajnl egy lpssorozatot, amely segtsgvel megrajzolhat az alkalmazs modellje.Vg Csaba / www.logos2000.hu

Rational Unified Process

Objectory Jacobson (Objectory) csatlakozsa kett vlasztottk a modellez nyelvet (UML) s a mdszertant (Rational Objectory Process). 98: Rational Unified Process (RUP)Vg Csaba / www.logos2000.hu

hasznlati eset vezrelt robosztus architektrra sszpontost tervezs lehet v teszi a prhuzamos fejlesztst, az jrafelhasznlhatsgot s egyszer sti a ks bbi karbantartst.

Vg Csaba / www.logos2000.hu

iteratv s inkrementlis eljrs nem "vzessszer " ignyeket tbb rszre bontjuk s el szr csak a leglnyegesebb elemeket valstjuk meg egyre tbb ismeret gy lik ssze az alkalmazssal szemben tmasztott tnyleges kvetelmnyekr l minden iterci m kd s tesztelhet szoftver inkrementlis: elemek integrcija folyamatos ( se a Booch mdszer)Vg Csaba / www.logos2000.hu

a fejleszts folyamata ellen rztt a felhasznlk ltal ignyelt alkalmazst fejlesztjk a fejleszts kockzatai s er forrsignye is becslhet a fejleszts folyamata is tervezhet min sgbiztosts - a fejleszts menetbe integrlhat.

Vg Csaba / www.logos2000.hu

Alapelemek

Vg Csaba / www.logos2000.hu

Megjegyzsek

"megjegyzslap" alakzat ("notesz-lap"), melyen szveg s kp is szerepelhet.

Seminar szakterleti modell. ttekint diagram. Ksztette: P.A., 1999-01-08

Vg Csaba / www.logos2000.hu

CsatolsServer Internetes s modemes kapcsolat is lehetsges! Csak megjelent funkcija van. Tams! Gondold t a kliens kommunikcijt a szerverrel!

Client

Vg Csaba / www.logos2000.hu

Kls dokumentum s URL

requirements lsd: Jelentkezs.doc

A dokumentci itt tallhat.

Vg Csaba / www.logos2000.hu

Szvegen belli megjegyzs

Jelentkezs -- jelentkez k szma -- jelentkez k rtestse -- jelentkezs lemondhat

Vg Csaba / www.logos2000.hu

Elnevezsek

Rvidtett elnevezsek Fogalomsztr v. szjegyzk (glossary) elnevezsek rvid lersa

Vg Csaba / www.logos2000.hu

Seminar tanfolyamszervezsA Seminar alkalmazs megknnyti a tanfolyamok szervezst. Segtsgvel Web-en meghirdetheti tanfolyamait, melyekre az rdekl d k egy rlap kitltsvel el zetesen jelentkezhetnek. A tanfolyamok meghirdetst az oktatsi igazgat (v. helyettese) irnytja, az adminisztratv teend ket pedig a tanfolyamszervez k ltjk el. A meghirdetett tanfolyamot a megtartsa el tt 3-5 munkanappal a szervez vglegestheti vagy elegend jelentkez hinyban, esetleg egyb klnleges ok miatt lemondhatja; mindkt esetben a jelentkez ket e-mail-ben rtesteni kell. A jelentkezsek szintn lemondhatk. A megtartott/lemondott tanfolyamok adatait egy archvum gy Csaba / www.logos2000.hu Vg jti.

Kiterjesztsi mechanizmusok

szabvnyos jellsek: a modellek brzolsnak egy ltalnos kerete kiterjesztsi mechanizmusok: az ltalnos jellsrendszert a fejleszts ltal megkvetelt irnyba specializlhatjuk a szabvny keretein bell az alkalmazs szakterletnek, az alkalmazott technolginak a fejlesztsi mdszernek megfelel jellsek

kiterjesztsi mechanizmusokkal az UML a fejleszts s a feladat krnyezethez igazthat.Vg Csaba / www.logos2000.hu

UML kiterjesztsi mechanizmusai

Sztereotpia: j modellelemek jellse. Megszortsok: tulajdonsgok, melyek az UML ms jellseivel nem adhatk meg. Kulcsszavas rtkek: a modellelemek lerst specilis jellemz kkel egszthetjk ki.Vg Csaba / www.logos2000.hu

Sztereotpia

Rebecca Wirfs-Brock - elnevezs (stereotype) osztlyok magas szint tipizlsa, az osztly ltalnos cljnak s jellegnek megadsa, melyek a kdban csak kzvetve ("jellegknt") jelennek meg, pl. vezrl (controller) vagy megjelent (view)

Jacobson (Objectory/OOSE): sztereotpikkal minden osztlyt hrom csoportba soroljunk modell (szakterleti osztly) interfsz (pldul megjelent ) vezrl

Vg Csaba / www.logos2000.hu

Rational Unified Process: modell helyett entits (entity) interfsz helyett hatrosztly (boundary)

UML: a sztereotpikat brmely modellelem esetn megadhat ltalnos kiterjesztsi mechanizmusknt alkalmazza, mellyel j modellelemeket kpezhetnk.Vg Csaba / www.logos2000.hu

Sztereotpiafrancia-idz jelek ( s ) kztt az elem neve el tt, vagy fltt adhatjuk meg (pldul control). control Minden Kapcsolat Kapcsolat sztereotpihoz kis kp ("ikon") boundary is rendelhet . Bejelentkez ablak Bejelentkez

ablak entity Tanfolyam

Vg Csaba / www.logos2000.hu

Tanfolyam

megadhat szvegesen a nv el tt vagy fltt, grafikusan az elem elnevezse mellett mindkt mdon

Tanfolyam entity Tanfolyam

Tanfolyam entity Tanfolyam Tanfolyam

vzlatos brzols: a sztereotpia ikonja s alatta az elem elnevezseVg Csaba / www.logos2000.hu

Szemlletets* Knyvtr * * *

Olvas 0..1 1 * *

KnyvVg Csaba / www.logos2000.hu

Pldny

Megszortsok

minden jells: a modellel kapcsolatos informci definilt jellsek mellett a szveges megszortsok (constraint) ltalnos eszkzknt hasznlhatk: a modell tovbb pontosthat egyetlen elemre vonatkoz tulajdonsg tbb elem kztti kapcsolatot is.Vg Csaba / www.logos2000.hu

elem elnevezse alatt vagy mgtt, kapcsos-zrjelek kztt adhatunk meg. lehet szveges (pldul magyar vagy angol, stb.) formlis (pl. prog. kifejezs vagy kplet, OCL)

Szemly nv szletsi dtum kor {kor = mai dtum szletsi dtum}Vg Csaba / www.logos2000.hu

kln csatolt megjegyzslapon is megadhat

Alkalmazott fizets beosztott * vezet

vezet * {vezet .fizets > beosztott.fizets }

Vg Csaba / www.logos2000.hu

Megszorts s kulcsszavas rtkelemek jellege, hasznlati mdja megadhat pl. {frozen}: kulcsszavas rtk (tagged value): adott nvhez rtk rendelhet (pl. fejlesztssel kapcsolatos informcik)

Jelentkezs {persistent version=0.8.13, author=Anna}nllan is szerepelhet, ha a jelentse egyrtelm , pldul egy felsorolsos tpuson belli elem (pl.: {transient} vagy {persistent}).

Vg Csaba / www.logos2000.hu

Kiterjesztsi mechanizmusok hasznlata

Sztereotpia: jabb modellelemet, metatpust definilhatunk Kulcsszavas rtk, illetve specilis megszorts: a modellelemeket ler jabb tulajdonsgot, azaz metadatatot adhatunk meg Egyszer megszorts: egy vagy tbb modellelemre vonatkoz sszefggs, szably Metatpus s metaadat: a modellelem olyan jellemz i, melyek az alkalmazsban csak kzvetve, "jellegknt" jelennek meg.Vg Csaba / www.logos2000.hu

Hasznlati eset (use case)

Elnevezs: Jacobson Az OO mdszerek rvid id alatt tvettk a technikt A Rational Unified Process a fejleszts teljes folyamatnak temezst a hasznlati esetek segtsgvel vgzi el. Hasznlati eset diagram: UML egy diagramtpusa.Vg Csaba / www.logos2000.hu

Aktor (actor)a rendszer hatrain kvl es , "kls , a rendszerhez kapcsold elem aktorok: a kapcsolds lehetsges mdjai

jele a "plcikaember"

Vg Csaba / www.logos2000.hu

Aktor

Jelentkez

Vezet Archvum

Szervez

Vg Csaba / www.logos2000.hu

Fogalomsztr

Vezet . A tanfolyamokkal kapcsolatos irnyt, menedzseri tevkenysgeket ltja el, gy meghirdethet vagy klnleges ok miatt (pl. oktat betegsge) lemondhat egy tanfolyamot. Szervez . A tanfolyamokkal kapcsolatos napi szervez i munkt ltja el s figyelemmel ksri a jelentkezseket.

Vg Csaba / www.logos2000.hu

Aktoractor sztereotpij osztly, ikonja: "plcikaember az aktor elnevezse egy tglalapba is rhat

Vezet Szervez JelentkezVg Csaba / www.logos2000.hu

Archvum

Aktor

egy szerep, tbb konkrt szerepl is eljtszhat, pldul vezet i jogkrrel az oktatsi vezet s helyettese is rendelkezhet. egy konkrt szerepl tbb szerepben is megjelenhet, pl. a Vezet s a Szervez ugyanaz a szemly is lehet.

jelenthet felhasznlkat, de lehet kls rendszer is.Vg Csaba / www.logos2000.hu

Hasznlati eset (use case)

A rendszer kls kapcsoldsi pontjai (kvlr l lthat funkcii), pl. egy sszetett prbeszd (interakci) a felhasznl s az alkalmazs kztt. Jells: ellipszis alakzat, az elnevezst kzpre igaztjuk Az aktorok s a funkcik kztt hzott vonallal jelljk, hogy az egyes aktorok milyen hasznlati esetekkel kapcsoldnak a rendszerhez. A kapcsolatot az alkalmazssal lefolytatott kommunikci lehet sgeknt rtelmezzk.Vg Csaba / www.logos2000.hu

tanfolyam meghirdetse Vezet tanfolyam trlse

Vg Csaba / www.logos2000.hu

Alkalmazs hasznlati eseteitanfolyamok megtekintse tanfolyamra jelentkezs

Seminar

tanfolyam vglegestse tanfolyamra kevs a jelentkez

Szervez

Jelentkez

Vezet tanfolyam meghirdetse tanfolyam trlseVg Csaba / www.logos2000.hu

tanfolyam archivlsa

Archvum

Aktor s hasznlati eset

UML: kapcsolat tpust jellhetjk a vonalak vgre helyezett nylhegyekkel. nyl az informcitovbbts irnyt brzolja irnytatlan vonal: "oda-vissza" informcicsere

Vg Csaba / www.logos2000.hu

Aktor s hasznlati esetAktor indtja be a folyamatot A hasznlati eset indt be az aktorban valamely folyamatot.

A hasznlati eset egyoldalan knyszertheti az aktort valamely tevkenysgre, ekkor az aktor a folyamat vgrehajtja, ms nven trgya, "szenved alanya".

Nem az aktor indtja el a funkcit, de a folyamat aktv kzrem kd je, gy beavatkozhat annak menetbe.Vg Csaba / www.logos2000.hu

tanfolyamok megtekintse tanfolyamra jelentkezs

tanfolyam vglegestse tanfolyam lemondsa

Szervez

Jelentkez

Vezet tanfolyam meghirdetse tanfolyam trlseVg Csaba / www.logos2000.hu

tanfolyam archivlsa

Archvum

Aktorok ltalnostsa/pontostsa aktor alvltozatai: A klnbz vltozatok az alkalmazsunkhoz eltr mdon kapcsoldhatnak.tanfolyamok megtekintse Jelentkez Web jelentkez Telefonos jelentkezVg Csaba / www.logos2000.hu

tanfolyamra jelentkezs

Kt aktor kztt ltalnosts viszony llhat fenn, ha az egyik (az ltalnosabb) sszes hasznlati esethez a msik is ugyanolyan mdon kapcsoldik. (vizsgljuk meg, hogy a valsgban is ltezik-e a viszony, teht az ltalnosabb szerepkrbe a specilisabb aktor brmely konkrt felhasznlja is behelyettesthet .)

Szervez VezetVg Csaba / www.logos2000.hu

Vltozatok (extends)

tanfolyamok megtekintse tanfolyamra jelentkezs extend Web jelentkez extend mdosts felajnlsa jelentkezs elfogadsa

Szervez

Vg Csaba / www.logos2000.hu

A vltozatok az alapeset m kdshez bizonyos tbbletet adnak. alapeseten bell opcionlisak (csak bizonyos felttelek esetn hajtdnak vgre).tanfolyamok megtekintse extend tanfolyamra jelentkezs extend mdosts felajnlsaVg Csaba / www.logos2000.hu

Jelentkez

extend

Szervez

jelentkezs elfogadsa

Kiterjesztsi pont

Kiterjeszts:az alap hasznlati eset a m kdsnek bizonyos pontjain "jelenti" a fennll helyzetet, melyet figyelve a vltozatok kzbeszrhatjk a helyzetnek megfelel tevkenysgket. pl. a tanfolyamok megtekintse egyszer csak jelentkezsbe "fajul el"extend (jelentkezs) tanfolyamra jelentkezs

tanfolyamok megtekintse extension points jelentkezsVg Csaba / www.logos2000.hu

Rszfunkci (include)

lnyeges rszfunkci (pl. a megszokottnl tbb er forrst ignyel a megvalstsa) vagy tbb hasznlati esetben ismtl d kzs rszletinclude tanfolyam vglegestse tanfolyam lemondsa

Jelentkez

rtests

include

Szervez

include

tanfolyam meghirdetse tanfolyam trlse Vezet

Vg Csaba / www.logos2000.hu

Hasznlati esetek ltalnostsa

hasznlati eset pontostsa olyan funkcit jell, amely az ltalnos helyre behelyettesthet . Pontosts: az ltalnos megvalstsi lehet sgeit, illetve ltalnosknt brzoljuk tbb hasznlati eset hasonl jellegt.include rtests tanfolyam megszaktsa tanfolyam lemondsa tanfolyam trlse

JelentkezVg Csaba / www.logos2000.hu

Vltozat, rszfunkci, ltalnosts?include: rszfunkci, amely az alap hasznlati eset m kdshez nlklzhetetlen, annak szerves rsze. (a rszfunkci m kdst kiemeljk az alapesetb l) extend: a norml m kds bizonyos pontjain adott felttelek mellett bekvetkez , de attl rszben fggetlen kiegszts (a m kdst beszrjuk az alapesetbe) ltalnos hasznlati eset pontostsa egy megvalsulsi lehet sget r le, gy brmely pontostott vltozat felhasznlhat ott, ahol szksgesknt csak az ltalnos vltozatot jelljk meg.

Vg Csaba / www.logos2000.hu

Vltozat, rszfunkci, ltalnosts?

include: szksges rsztevkenysg ("felttel nlkl") extend: lehetsges kiegszts (lehetsges tirny)

Vg Csaba / www.logos2000.hu

Diagramok kialaktsatanfolyam meghirdetse

Jelentkez

tanfolyam trlse

Vezet

tanfolyam archivlsa Archvum

Vg Csaba / www.logos2000.hu

Vezet

tanfolyam archivlsa Archvum tanfolyam megszaktsa

Szervez

tanfolyam meghirdetse

tanfolyam lemondsa

tanfolyam trlse

tanfolyam vglegestse

rtests tanfolyamok megtekintse extend tanfolyamra jelentkezs extend extend mdosts felajnlsaVg Csaba / www.logos2000.hu

Jelentkez

jelentkezs elfogadsa

Felhasznl cljai s az interakcikhasznlati eset: egy egyszer bb vagy sszetettebb prbeszd (interakci) A felhasznl a cljait ezeken a funkcikon keresztl tudja megvalstani. Els dlegesek a felhasznl cljai.

A hasznlati eseteket gy kell sszevlogatnunk, hogy azok lehet v tegyk ezeket a clokat.

Vg Csaba / www.logos2000.hu

Hasznlati eset diagramok

alapvet fontossgak a kvetelmnyek elemzsben. rendszer hatrait

Rszletessge: Eredeti knyvben Jacobson egy 10 emberves munka esetn mindssze 20 hasznlati eset rgztst ajnlja Fowler s Scott hasonl helyzetben 100-nl tbb hasznlati eset megadst tartja clszer nek (egy hasznlati eset ~ egy eh munka)

Vg Csaba / www.logos2000.hu

Hasznlati eset diagramok

Rszletesebb hasznlati esetekkel a fejleszts jobban behatrolhat s kisebb kockzattal temezhet . Tl sok hasznlati esetet felvve azonban knnyen ttekinthetetlenn vlhat a diagramunk.

Vg Csaba / www.logos2000.hu

Vezet

tanfolyam archivlsa Archvum tanfolyam megszaktsa

Szervez

tanfolyam meghirdetse

tanfolyam lemondsa

tanfolyam trlse

tanfolyam vglegestse

rtests tanfolyamok megtekintse extend tanfolyamra jelentkezs extend extend mdosts felajnlsa jelentkezs elfogadsa

Jelentkez

Vg Csaba / www.logos2000.hu

Csomag (package)Funkcicsoportok a rendszer rszekre, modulokra vagy ms nven csomagokra bonthat.

A csomag (package) a rendszer pt elemeinek magasabb szint egysgekbe csoportostsnak az eszkze.

Vg Csaba / www.logos2000.hu

system

seminartanfolyamok kezelse rdekl ds archivls

utility

Vg Csaba / www.logos2000.hu

Rszletesebb brzols

csomag lnyegi tartalma szvegesen: felsorolva a fontosabb alkotelemeket (hasznlati esetek csoportostsa esetn ez nem szoksos), grafikusan: diagram, pl. fontosabb hasznlati esetek vagy bels csomagok

Vg Csaba / www.logos2000.hu

rdekl ds extend tanfolyamok megtekintse Jelentkez tanfolyamra jelentkezs extend extend mdosts felajnlsa jelentkezs elfogadsa

Vg Csaba / www.logos2000.hu

systemA legfels csomag kivtelvel a modell minden eleme pontosan egy csomaghoz tartozik a tartalmazsi hierarchia egy ft alkothat.

Az UML gy tekinti, hogy ltezik egy legfels , system sztereotpij csomag, amelyet ltalban nem neveznk el.Vg Csaba / www.logos2000.hu

sztereotpik

system (rendszer): a hierarchia tetejn ll legfels csomag, azaz a teljes alkalmazs subsystem (rszrendszer): az alkalmazson belli, rszben fggetlen csomag model (modell): az alkalmazs egsznek egy adott nz pontbl vett Vg Csaba /www.logos2000.hu

stub (csonk): ms csomag funkciit utnz helyettest csomag. pldul egy ppen fejleszts alatt ll msik sszetett csomag ideiglenes helyettestse vagy bizonyos hlzaton elrhet funkcik loklis (helyi) interfszeknt. facade (szemlltet nzet): ms csomagok kivlasztott rszeinek adott szempontbl vett nzete, melyet Vg Csaba / ltalban szemlltetsknt ksztnk el.

www.logos2000.hu

Fgg sgektanfolyamok kezelse rdekl ds

archivls

utility

Vg Csaba / www.logos2000.hu

fgg sg (dependency)

az egyik defincijnak megvltozsa a msik (a fgg ) elem megvltozst is eredmnyezheti. Gyakorlatban: fordtsi fgg sg {global}Vg Csaba / www.logos2000.hu

Nvterlet (namespace)a csomag hatrn bell az elemek kzvetlenl hivatkozhatnak egymsra egyedisg

elrsi tvonal :: access importVg Csaba / www.logos2000.hu

Csomag pontostsautility

rtests

e-mail rtests

fax rtests

{abstract}

Vg Csaba / www.logos2000.hu

Hasznlati eset rszletezse

Esemnyfolyam

A Szervez lemond jelentkezst: y A Szervez bejelentkezik y Megjelenik a meghirdetett tanfolyamok listja y Kivlasztva egy tanfolyamot megjelenik a jelentkez k listja y Lemondja a jelentkezst

Vg Csaba / www.logos2000.hu

Norml s kivtelesA Jelentkez el zetesen jelentkezik a tanfolyamra: y Megtekinti a meghirdetett tanfolyamokat Megtekintheti egy-egy tanfolyam rszletes tematikjt Jelentkezik egy tanfolyamra y Megadja az adatait Az rdekl d flbeszakthatja jelentkezst y Jelentkezik y A mr jelentkezettek ltszmtl fgg en a rendszer - elfogadja a jelentkezst - mdostst ajnl fel

Vg Csaba / www.logos2000.hu

include s extend

szvegen belli nll mondat rsztevkenysg: include (rsztevkenysg) kiterjesztsi pont: (kiterjesztsi pont)Vg Csaba / www.logos2000.hu

Felhasznli felletekTanfolyamainky UML-1 (5 nap) nov. 27, 28, 31, dec. 1,2 Unified Modeling Language szabvnyos objektumorientlt modellez nyelv Jelentkezstematika

(El felttel: rendszerfejlesztsi alapismeretek)

y

jan. 4,5,6 C++ programozsi nyelv(El felttel: A C nyelv ismerete)

C++-1

(3 nap)

Jelentkezstematika

y

Java-1 jan. 8,9 OO programozs Java nyelven a nyelv alapelemei(El felttel: Programozsi alapismeretek)

(2 nap)

Jelentkezstematika

Vg Csaba / www.logos2000.hu

Tanfolyamaink Mgse jelentkezs Jelentkezs [elfogadva] [mdosts] Elfogadva Elfogadom MgseVg Csaba / www.logos2000.hu

tanfolyamaink tematika Tematika

jelentkezs

Mdosts

Osztlydiagramok

Vg Csaba / www.logos2000.hu

Osztly

hasznlati eset diagramok: kvetelmnyek tisztzsa felhasznl tbbi dokumentum

osztlydiagramok: alkalmazs bels szerkezete fejleszt tbbi dokumentumVg Csaba / www.logos2000.hu

Objektum s osztly

Valsg rszlete: entits vagy egyed (entity) "krlrajzolhatsg: elvlaszthat a krnyezett l

objektumorientlt szhasznlat: entits: objektum (object), vagy pldny (instance)

azonos jellegzetessg pldnyok tpusa: osztly (class) azonos jellegzetessg , ms szval egy Vg Csaba / www.logos2000.hu tpusba tartoz objektumokat csoportostja,

osztlyozs (classification)

ltalnos keret, melyet az objektumok tltenek fel konkrt tartalommal. '90-es vek: objektum: objektum pldny, objektum Vg Csaba / osztlywww.logos2000.hu

Knyvtr Klcsnz Knyv Pldny

megvalsts: jellemz iket ler s trol Vg Csaba / adatcsomagokwww.logos2000.hu

nvrsz

boundary F kperny {author=Joe}

Vg Csaba / www.logos2000.hu

objektumok egyedisge

Megklnbztethet sg objektumazonost (OID: object identifier) egysges egyrtelm

Vg Csaba / www.logos2000.hu

honnan jnnek az osztlyok?

Rational Unified Process: alkalmazs szakterletvel kapcsolatos fogalmak sszegy jtse OMT: szvegb l keressk ki s hzzuk al a f neveket klvilggal trtn adatcsere protokollja (felhasznli felletek) alapjnVg Csaba / www.logos2000.hu

Tanfolyamainky UML-1 (5 nap) nov. 27, 28, 31, dec. 1,2 Unified Modeling Language szabvnyos objektumorientlt modellez nyelv(El felttel: rendszerfejlesztsi alapismeretek)

Jelentkezstematika

Vg Csaba / www.logos2000.hu

Tanfolyamainky UML-1 (5 nap) nov. 27, 28, 31, dec. 1,2 Unified Modeling Language szabvnyos objektumorientlt modellez nyelv(El felttel: rendszerfejlesztsi alapismeretek)

Jelentkezstematika

Vg Csaba / www.logos2000.hu

Tanfolyam tpus Tanfolyam Jelentkezs

Vg Csaba / www.logos2000.hu

Attribtumok

entits adott szempontbl vett tulajdonsga nvrsz alatt (vonallal elvlasztva) nv: tpus = kezdeti rtk attribtum-nv: elnevezi a szempontot, attribtum-rtke: milyen az adott szempontbl, Vg Csaba / www.logos2000.hu

Sztereotpia s megszorts UML: kisbet vel kezd d egyes szm Tanfolyam tpus f nv vagy f nvi szerkezet

rvidts: String nv: Text tematika: HtmlText r: Int tartama: Real minimlis ltszm: Int maximlis ltszm: Int

minta, rlap

Vg Csaba / www.logos2000.hu

M veletekid beli vltozs (OO: viselkeds (behavior)) sszetett vltozs: m veletekre (operation) trdelve m velet: olyan eljrs, amelyet az objektum vgre tud hajtani vagy olyan krds, amelyre az tud vlaszolni

m velet azonostsa: nevvel s a paramtereinek tpusval Vg Csaba /www.logos2000.hu

Alakzat hely: Location mret: Size kirajzols() mozgats(jHely: Location) nagyts(faktor: Real) forgats()

Vg Csaba / www.logos2000.hu

M veletnv(paramterek):tpus a m velet neve "tlterhelhet " visszatrsi rtk tpusa.

Paramterek:jelleg nv: tpus = alaprtelmezettrtk jelleg: in, out, inout paramter neve, a paramter ltal felvehet rtkek az alaprtelmezett rtk opcionlis.

Vg Csaba / www.logos2000.hu

vgrehajts rszlete: a m velethez kapcsolt megjegyzsen egy adott programozsi nyelv: kapcsoszrjelek

sztereotpia, megszorts OO: az adatok manipulcii nem a programban sztszrva helyezkednek el, hanem azokat kigy jthetjk, gy Vg Csaba / rvidebb, ttekinthet bb s knnyebbenwww.logos2000.hu

Lekrdezs s mdost

lekrdezs (query) : egy krds nincs kvlr l szlelhet vltozs

transzformci vagy mdost (modifier): mdostja az objektum megfigyelhet llapott.

Megfigyelhet llapot (observable state): az objektum kls kpeVg Csaba / www.logos2000.hu

(megvalstsi technika)

Szrmaztatott attribtum/osztlyms elemekb l szmthat (szrmaztathat) / Szrmaztatott attribtum: rtke ms modellelemekb l szmthat szrmaztatott osztly

Megads: megszortsknt az elem Vg Csaba / mgtt, az alakzat mellett, vagy egywww.logos2000.hu

ru mennyisg egysg egysgr /nett r {nett r = mennyisg*egysgr } adkulcs /ad {ad = nett r*adkulcs/100 } /bruttr {bruttr nettr = ad}

Vg Csaba / www.logos2000.hu

Fowler s Scott ajnlsa: elemzs kezdetn: elemek kztti viszony, pl. {brutt r-nett r = ad} specilis, fggvnyjelleg megszorts szrmaztatott attribtum / lekrdez m veletVg Csaba / www.logos2000.hu

Lthatsg

bezrsnak (encapsulation) az objektumot egy "fekete dobozba" zrjuk, elrejthetjk a megvalsts rszleteit, gy a rendszernk ttekinthet bb s knnyebben mdosthat lesz. UML: hrom szint + (public) publikus # (protected) vdett Vg Csaba / www.logos2000.hu - (private) sajt

Lekrdez s bellt m veleteklekrdez metdus (getting method) visszatrsi rtkknt egyszer en egy attribtum rtkt utalja vissza, bellt metdus (setting method) a paramternek rtkt az attribtumba tlti t.

az attribtumot elrejthetjk s a hasznlatt csak adott m veleteken keresztl engedlyezzk,Vg Csaba / www.logos2000.hu

Azonosthatsg: prefix get / is set

Vg Csaba / www.logos2000.hu

Jellegzetessgek (feature),

Attribtuma s m velete felel ssg (responsibility) osztly magasabb rend clja attribtum: adatszolgltats vagy adattrols m velet az osztly cljnak megvalstshoz szksges utastssorozat.Vg Csaba / www.logos2000.hu

Rszletezettsg szintjeiShape Shape +location: Location +Shape(l:Location) +contains(l:Location) +draw() Shape {abstract, author=Joe} +location: Location #size: Size #parent: Canvas +Shape(l:Location) +contains(l:Location) +draw() +scale(r: Real)

Vg Csaba / www.logos2000.hu

Kzs sztereotpia s megszortsLocation +x :Int +y :Int constructor +Location(l:Location) +Location(x_:Int, y_:Int) query +equals(l:Location) +isInside(r:Rectangle) update +shift(l:Location)Vg Csaba / www.logos2000.hu

Rszek (compartment)attributes (attribtumok) / operations (m veletek) (hasznlati esetek: extension points)

Osztlyok: responsibilities (felel ssgek) exceptions (kivtelek) kivtelknt hasznlt osztlyok: exception signals (jelzsek): olyan zenetek, amelyeket az osztly a norml m kdse Vg Csaba / www.logos2000.hu kzben is tud fogadni.

Vg Csaba / www.logos2000.hu

Knyvklcsnzs operations +isHosszabbthat() :Bool +hosszabbts() responsibilities El jegyzett knyv klcsnzse nem hosszabbthat meg Klcsnzs legfeljebb ngyszer hosszabbthat A lejratot naponta ellen rizni kell Ksedelem esetn fizetni kell exceptions Tl sok knyvet klcsnz Tl sokszor akar hosszabbtani

Vltozatlansg

{changeable} ("vltoztathat") megszorts {frozen} ("befagyasztott") (C++ const, bizonyos esetekben final) "csak olvashat" (read only) tulajdonsgVg Csaba / www.logos2000.hu

Jellegzetessgek elrse

osztly attribtumra vagy m veletre hivatkozsa :: pl. Mailer::send(). objektum attribtumrtke vagy m velete . pl. t.id pont, vagy t.vglegests()Vg Csaba / www.logos2000.hu

Felel ssgek

A hagyomnyos strukturlt megkzeltssel ellenttben az OO legnagyobb kihvsa, hogy az alkalmazs egyttes m kdst szt tudjuk osztani az objektumok kztt. Megfelel tervezs esetn a m kds teljes "terhe" kiegyenslyozottan oszlik meg az egyttm kd objektumok kztt. Attribtum:Vg Csaba / www.logos2000.hu

Attribtum tpusa Num: szmrtk Nat: termszetes szm (0 vagy pozitv egsz) Int: egsz szm Real: vals szm Bool: logikai rtk Char: egyetlen karakter Code: kd-jelleg szveg, pldul egy szmsor String: rvid (egysoros) szveg VgText: Csaba / www.logos2000.hu hosszabb (tbbsoros) szveg.

Entitsok s rtkekobjektumok alapvet tulajdonsga az egyedisgk. rtkek: entitsra vonatkoz, de attl mr elszaktott adat rtk szabadon msolhat

osztlyok az sszetett rtktpusok brzolsra is alkalmasak entits-objektum / rtk-objektum

Vg Csaba / www.logos2000.hu

typeelemi s az sszetett rtkek tpusa: type enumeration enumeration HtNapja

htf = 1 kedd szerda cstrtk pntek szombat vasrnapVg Csaba / www.logos2000.hu

type Byte {values range from 128 to 127}

CRC-krtyk CRC(Class-Responsibility-Collaboration) Smalltalk programozs (Cunningham/Beck '80-as vek vgn) Jelentkezs

kapcsolattarts adatai jelentkez k szma r rtests a tanfolyamrl jelentkezs lemondsaVg Csaba / www.logos2000.hu

Tanfolyam Tanfolyam

Kommunikcis tvonalakfelel ssgek megosztsa: elrs kapcsolat (link)

strukturlis kapcsolat nem attribtum megvalsts (OID)

Vg Csaba / www.logos2000.hu

Asszocici s kapcsolat

Kapcsolat (link): konkrt objektumok kztt az elrs lehet sge (matematikailag: elem n-es) Strukturlis kapcsolat: az elrst maga az objektum szolgltatja temporlis kapcsolat ezzel szemben csak az objektum m kdsnek bizonyos pontjain "l".

Asszocici (association) az osztlyok objektumai kztti lehetsges strukturlis kapcsolat Vg Csaba /www.logos2000.hu

binris asszociciAlkalmazs Cg Szemly

AsszociciAlkalmazs CompSoft Nagy Istvn

Kapcsolat

Vg Csaba / www.logos2000.hu

magasabbrend asszocicira Trgy Tanterem

Tanr

Vg Csaba / www.logos2000.hu

Szerepek, szmossg

a..b 1..10 1,7 vagy 0,5,10..20

*

1..* 0..* Tanfolyam tpus 1

* Tanfolyam1

* Jelentkezs

Vg Csaba / www.logos2000.hu

Szmossg

1 (pontosan egy), * (tetsz leges, azaz nulla vagy tbb), 0..1 (opcionlis, azaz nulla vagy egy) n (pontosan egy adott szmrtk) 0..n (legfeljebb egy adott szmrtk)

A nem megadott szmossgot az UML Vg Csaba / "specifiklatlannak",www.logos2000.hu

AttribtumszmossgaTanfolyam id pont[1..*]: Date

opcionlis attribtum

Vg Csaba / www.logos2000.hu

osztly szmossga

1 control Tanfolyamok kezelse

tetsz leges (*) 1: pl.csomagokat reprezentl osztlyok esetn. Vg Csaba / 0: osztlynak csak gy jt szerepe van,

www.logos2000.hu

Mdosts lehet sge, sorrend

Asszocicinl/szerepnl {changeable} {frozen} {addOnly}

{ordered} Fowler s Scott: {sorted}

Vg Csaba / www.logos2000.hu

Elnevezsek

Cg

alkalmaz

* Alkalmazott *beosztott

vezet reflexv

lthatsgVg Csaba / www.logos2000.hu

Elnevezs s a navigciProject vezet 1

Irnyt*Project 1 Felbontva Kidolgoz 1 Alvllalkoz

Rszfeladat * *

Vg Csaba / www.logos2000.hu

Kollekci s felsorols

Kollekci: azonos osztlyhoz tartoz objektumok egy csoportja kapcsolat tbb szmossg szerepnl elhelyezked objektumok trol osztly (container class)

set {ordered}

Felsorols (enumeration) vagy itertor (iterator) Vg Csaba /www.logos2000.hu

Szrmaztatott asszocicik

Project vezet 1

1

Irnyt*Project 1

/Felel s Kidolgoz*Alvllalkoz 1

Felbontva

Rszfeladat * *

Vg Csaba / www.logos2000.hu

Rszhalmaz asszocicik

Kidolgoz Rszfeladat * {subset} 1 Alvllalkoz Jelentkezik *

*

Vg Csaba / www.logos2000.hu

asszocicik

Az asszocicik a modellezs klnbz szintjein klnbz mdon rtelmezhet k. Koncepcionlis szint: fogalmak kztti koncepcionlis viszonyok Tervezs: elrs felel ssge Megvalsts: elrs megvalstsa

Megvalsts (OID)Vg Csaba / www.logos2000.hu

Min stett asszocici

Knyvtr ISBN: Code

*

0..1

Knyv

Vg Csaba / www.logos2000.hu

Kzpont id : Date 1 hely: Code

0..1

Forgalmi adatok

min st / OIDVg Csaba / www.logos2000.hu

"Vagy" asszocici

Cg Vsrls

{or}Magnszemly

Vg Csaba / www.logos2000.hu

Asszocicis osztlyKnyvtr

*

*

Tag

0..1

0..10

Pldny

Klcsnzs visszahozs: Date hosszabbts()

Vg Csaba / www.logos2000.hu

Asszocicis osztly megvalstsaTag 1 0..10 Klcsnzs 0..1 1 Pldny

Vg Csaba / www.logos2000.hu

Aggregci s kompozci

Specilis asszocici: egsz-rsz viszony Coad: pl. szervezet s hivatalnokai kztti viszony

dominancia ternris s magasabbrend asszocicinl nem adhat meg. Vg Csaba /

www.logos2000.hu

Project 1

Felbontva

* Rszfeladat

Vg Csaba / www.logos2000.hu

jellemz k"egsz-rsz" viszony, a rsz logikailag az "egszen" bell helyezkedik el, illetve sok m veletben az egsz a rszeivel egytt vesz rszt. antiszimmetrikus viszony. Pl. szoba rsze lehet egy hznak tranzitv, a hz szobjnak ajtaja egyben a hz ajtaja m veletek tovbbtsa, deleglsa (delegation).

Vg Csaba / www.logos2000.hu

cascading deleteA legtbb aggregcira a trls tovbbtsa is jellemz UML: aggregci - az egsz-rsz viszony jelzse, mindenfle kiegszt szemantika nlkl.

Kompozci: "egsz" lnyegi alkotelemei a rsz csak egyetlen "egsz" objektumhoz tartozhat Vg Csaba / www.logos2000.hu a rsz az egsszel "egytt l s hal", azaz a

Kompozcihttr 1 Minta 1 1 vzszintes Csszka fgg leges

1 Vszon 1 1 1 Alakzat

*

Vg Csaba / www.logos2000.hu

begyazott jells

Szerkeszt lap 1 httr :Minta 1 :Vszon :Alakzat*Vg Csaba / www.logos2000.hu

1 fgg leges :Csszka 1 vzszintes :Csszka

Vszon httr: Minta fgg leges: Csszka vzszintes: Csszka alakzat: Alakzat[*]Vg Csaba / www.logos2000.hu

Attribtum s asszociciSzmla kelt: Date

?

Szmla *

kelt 1 Date

min st -jelleg ek nmaguk neveVg Csaba / www.logos2000.hu

Fgg sgekEgy osztly anlkl is felhasznlhat egy msik osztlyt, hogy azt egy asszocicin keresztl elrn. UML: egy modellelemt l fgg egy msik modellelem, ha a defincijnak megvltozsa a msik (a fgg ) elem megvltozst is eredmnyezheti.

fordtsi fgg sg

Pldul:Vg Csaba / www.logos2000.hu

zenetet kld a msiknak,

Jelentkezs utility.rtests

Vg Csaba / www.logos2000.hu

use (hasznlat) derive (szrmaztats) friend ("bart" kapcsolat) call ("hvs") instantiate ("pldnyosts") instanceOf ("pldny") powertype (hatvnytpus: a "tpustpusa") refine ("finomts") Vg Csaba / trace ("nyomkvets")

www.logos2000.hu

ltalnosts s pontosts

Az ltalnosts (generalization) vagy ms nven rkls (inheritance) egy viszony az s- vagy szuperosztly (ancestor, superclass) s annak egy vagy tbb pontostott vltozata, a Mdia leszrmazottak (descendent) vagy alosztlyok (subclasses) kztt.

Knyv

Vg Csaba / www.logos2000.hu

Hang kazetta

Vide kazetta

CD lemez

Mdia

Knyv

Hang kazetta

Video kazetta

CD lemez

{incomplete}Vg Csaba / www.logos2000.hu

ltalnosts-pontosts viszony koncepcionlis szinten az ltalnos jelleg s annak specilis vltozata kztti kapcsolat Technikai szempont: az sosztly jellegzetessgeivel (attribtumaival, m veletei-vel, asszociciival s fgg sgeivel) annak minden alosztlya is rendelkezik. A megvalsts oldalrl az ltalnosts a jellegzetessgek tvtelnek informatikai megoldst jelenti, amelyet ltalban Vg Csaba / www.logos2000.hu rklssel (inheritance), vagy esetenknt

sosztly: jelleget helyettesthet sg (substitutability) alosztly sszhangban van (conform) az sosztlyval: az sosztly minden jellegzetessgvel is rendelkezik. kiemels, az absztrakci lehet sgeVg Csaba / www.logos2000.hu

Tbbszrs osztlyozs

egyestett osztly (join class)Szrazfldi jrm Vzi jrm

Ktlt jrm

tbbszrs osztlyozs (multiple Vg Csaba / classification)www.logos2000.hu

{overlapping} Szrazfldi jrm sebessg

Jrm szllthat utasok

Vzi jrm sebessg

Aut

Ktlt jrm

Vg Csaba / www.logos2000.hu

megklnbztet (discriminator)Frfi nem N beoszts Orvos beoszts Asszisztens Szemly {incomplete} beoszts N vr

Vg Csaba / www.logos2000.hu

Dinamikus vltozatStatikus osztlyozs (static classification): objektumnak a teljes lettartama alatt nem vltozik meg a tpusa. Dinamikus osztlyozs (dynamic classification): az objektum altpusa megvltozhat. Fowler s Scott: dynamic

Vg Csaba / www.logos2000.hu

Frfi nem N beoszts Orvos beoszts Asszisztens Szemly dynamic {incomplete} beoszts N vr

Vg Csaba / www.logos2000.hu

tbbszrs vltozattpus, mely rtkeihez tbb konkrt objektum is tartozik. pl.:Tanfolyam tpus s Tanfolyam nem modellezhet hagyomnyos pontostsknt: az alosztlyok az sosztlynak nem csak a jellegzetessgein, hanem annak rtkein is osztoznak.

Asszociciknt modellezsVg Csaba / www.logos2000.hu

Kiterjeszts s korltozsKiterjesztsMdia cm

Korltozs (explicit md)Szemly

Korltozs (implicit md)Ellipszis r R{ r = R }

nemKnyv szerz * ISBN Frfi N

Kr

Vg Csaba / www.logos2000.hu

M veletek tdefinilsa Az alosztly kiegszt jellegzetessgei miatt a m veletet is kiterjeszthetjk, a m kdshez bizonyos tbbletet adhatunk. Az ltalnosabb sosztlyban a m veletnek csak egy alaprtelmezett vltozatt adjuk meg, melyet az alosztlyban konkretizlhatunk. Korltozs esetn meg akarjuk tiltani a m velet bizonyos vltozatait. A pontostott alosztlyban az objektumrl tbb informci ll rendelkezsre, gy az Vg Csaba / www.logos2000.hu alosztly bizonyos m veleteket

A m veletek felldefinilst (overriding) az objektumorientlt nyelv megfelel mechanizmusa, a kts (binding) teszi lehet v, amely minden objektum esetn megadja az adott m velethez tartoz megfelel m kdst, a metdust. Az alosztly felldefinilhatja az s bizonyos m veleteit, ugyanakkor az alosztly objektuma az sosztly objektumaknt is szerepelhet Vg Csaba / polimorfizmus, tbbalaksg

www.logos2000.hu

Osztlyhierarchia

osztly nem lehet nmagnak az sosztlya egyszeres osztlyozs: "fa esetenknt a fa "gykere" csak egyetlen osztly lehet.

Tbbszrs osztlyozs: dag

{root} {leaf}

osztly Vg Csaba / www.logos2000.hu m velet

Absztrakt osztlyokabsztrakt osztly: ltalnos keret konkrt osztly (concrete class) Alakzat

{incomplete}

Tglalap

Ellipszis

Csomag

Ikon

Vg Csaba / www.logos2000.hu

Absztrakt m veletAlakzat bounds: Bounds paint() {incomplete}

Tglalap paint()

Ellipszis paint()

Csomag paint()

Ikon

Rajz paint()Vg Csaba / www.logos2000.hu

Kp paint()

interfaceattribtumokkal nem rendelkezhet (legfeljebb konstansokkal), mindssze bizonyos m veletek ltezst jelenti ki az alosztlyokkal szemben tmasztott kvetelmnyekknt, azok elrsnek lehet sgeknt jelenik meg.

interface Movable getLocation():Location setLocation(location :Location)Vg Csaba / www.logos2000.hu

interface Paintable paint()

Comparable

realizciinterface Movable getLocation():Location setLocation(location :Location)

PaintableAlakzat

Vg Csaba / www.logos2000.hu

interfsz hasznlataAlakzat Paintable Movable controller Move

interface MovableVg Csaba / www.logos2000.hu

interfsz szerepnlRaktr Raktri szm: Code :Trol 1 tartalmazott :Raktri ttel * Knyv pldnyVg Csaba / www.logos2000.hu

type

olyan szerepet, amelyet az osztly felvehet, illetve amelyr l ks bb lemondhat ellentte implementationClass

Egy osztly legfeljebb egy implementcis osztly, de tetsz leges sok szerep-jelleg osztly szrmaztatsa lehet. A type osztlybl a szrmaztatst realizcival jelljk, amely ebben az Vg Csaba / esetben azt jelenti, hogy az alosztly

www.logos2000.hu

type Biztostott type Adz

implementationClass Szemly

Alkalmazott

Vg Csaba / www.logos2000.hu

Generikus osztlyStack /empty(): Bool Push(x: X) pop(): X every(): Every X AddOnlyArray data[0..size]: X numberOfElements: Int add(x: X) elementAt(i :Int): X every(): Every size :Int, X

Stack bind (16, Color) PaletteVg Csaba / www.logos2000.hu

Klnleges m veletekrtkek msolsa s ellen rzse Konstrukci s destrukci osztlynak tetsz leges szm, klnbz paramter konstruktora lehet, de legfeljebb egy destruktora.

alaprtelmezett konstruktor msol konstruktor

Konverzi rtkjelleg konverzi osztlyba s osztlybl trtn konverzi.Vg Csaba / www.logos2000.hu

tpuskonverzi

Osztlyattribtumok

Osztlyattribtum (class attribute) osztly minden objektumra rvnyes rtket trolhatunk. hasonlak a hagyomnyos programozsi nyelvek globlis vltozihoz, de az osztly el is rejtheti ezeket az attribtumokat vdettknt (protected) vagy sajtknt (private) megjellve.

Egy osztlyattribtum alkalmas pldul az osztly objektumainak szmontartsra vagy egyszer en a Vg Csaba /www.logos2000.hu

Osztlym velet

az osztlyra vonatkoz m velet, kizrlag az osztlyattribtumokat, illetve a tbbi osztlym veletet ri el, csak kzvetve hivatkozhat a tbbi, un. pldnyattribtumra s pldnym veletre. hasonlak a hagyomnyos (globlis) eljrsokhoz s fggvnyekhez, de az osztly a lthatsg korltozsval a klvilg el l el is rejtheti ezeket a m veleteket.

Vg Csaba / www.logos2000.hu

Szmla utols sorszm j szmla()

hibalehet sg

Racionlis szmll :Int nevez :Int nulla :Racionlis lnko(a:Int, b:Int) :Int

Vg Csaba / www.logos2000.hu

utility

utility Math pi: Real e: Real sin(x: Real) :Real cos(x: Real) :Real

Vg Csaba / www.logos2000.hu

Metaosztly s sztereotpiametaclass, instanceOf stereotype

stereotype instance

stereotype utilityVg Csaba / www.logos2000.hu

stereotype application

Invarinsok, el - s utfelttelek

megszort szably: kapcsoszrjelek kztt adhatjuk meg, mely lehet kplet, egy programozsi nyelv kifejezse vagy egyszer szveg. Az osztlyokat, illetve azok attribtumait s m veleteit egy magasabb absztrakcis szinten jellemezhetjk hrom specilis megszorts, az invarinsok, az el - s az utfelttelek Vg Csaba / segtsgvel. A technikt (design bywww.logos2000.hu

invarinsok strukturlis elemek (osztlyok, attribtumok, asszocicik, stb.) esetn adhatk meg a szablynak minden konkrt esetben (pldul egy osztly minden objektuma esetn) teljeslni kell, ha az elem elrhet

el - s utfeltteleket (pre- and postcondition) m veletek esetn adhatjuk meg a m velet krnyezetre vonatkoz szably Vg Csaba / www.logos2000.hu m velet annyira egyszer esetenknt a

Pontosts: az invarinsokat s az utfeltteleket legfeljebb tovbb korltozhatjuk ("er sthetjk"), mg az el feltteleket legfeljebb gyengthetjk. UML: kln invariant, precondition vagy postcondition sztereotpij megjegyzslapon adjuk meg

hibakeress (debug) keretrendszer ksztse: clszer az Vg Csaba /

www.logos2000.hu

M veletek vgrehajtsi mdja{sequential} ("szekvencilis"): egyszer szekvencilis vgrehajts; a hasznlknak kell biztostaniuk, hogy egy objektumnak azonos id ben (konkurensen) nem hvjuk meg tbb m velett. {guarded} (" rztt", "felgyelt"): a m velet feldolgozst valamely mechanizmus szablyozza, mely pldul egy vrakozsi sorba lltja a krseket. Vg Csaba / {concurrent} ("konkurens"):

www.logos2000.hu

signal m velet: az osztly elfogadja az adott szignlt (tvtele {guarded} mechanizmussal is trtnhet) M veletek: atomi, azaz flbeszakthatatlan m veletek az akcik (action) tevkenysgek (activity) vgrehajtsa hosszabb id t, egy meghatrozott id tartamot vesz ignybe.Vg Csaba / www.logos2000.hu

Objektumok

Cg :Cg

Szemly instanceOf CompSoft :Cg Kovcs Jnos

Vg Csaba / www.logos2000.hu

Point x: Int y: Int

instanceOf p x=3 y=4

:Point x :Int =3 y :Int =4

Vg Csaba / www.logos2000.hu

:Poligon location = (0,0) size = (4,4) vertices = ((0,0),(0,4),(4,4),(4,0),(0,0))

Vg Csaba / www.logos2000.hu

:Tanfolyam [meghirdetett] :Tanfolyam [vglegestett] :Tanfolyam [archivlt]

Vg Csaba / www.logos2000.hu

become: objektum id beli vltozsa copy: msolat

:Tanfolyam [meghirdetett] become :Tanfolyam [vglegestett] become :Tanfolyam [archivlt]

Vg Csaba / www.logos2000.hu

Objektumok s kapcsolatokUML1 :Tanfolyam tpus

:Tanfolyam [meghirdetett] CompSoft :Jelentkezs :Jelentkezs Kovcs Jnos :Jelentkezs

Vg Csaba / www.logos2000.hu

association ("asszocici") self ("nmaga") global ("globlis") local ("loklis" vltoz) parameter ("paramter")

Vg Csaba / www.logos2000.hu

lettartam szablyozsa: {new} ("j"): az objektum a m velet sorn jn ltre. {destroyed} ("trlt"): a m velet sorn megsz nik az objektum. {transient} ("tranziens"): az objektum csak a m velet (az brzolt helyzet) alatt ltezik, gy ez a {new destroyed} rvidtse.

Vg Csaba / www.logos2000.hu

multiobjektum:Tanfolyam [meghirdetett] :Alvllalkoz :Jelentkezs

Vg Csaba / www.logos2000.hu

Kompozit objektum:Szerkeszt lap fgg leges :Csszka :Vszon :Alakzat :Alakzat httr :Minta

vzszintes :CsszkaVg Csaba / www.logos2000.hu

Aktv objektum

:Server [working]

Schedule

:Alvllalko :Job z

{active}

Vg Csaba / www.logos2000.hu

Osztlydiagramok hasznlataalapvet szerep ek, tbbi diagram elemek

a csompontokban az osztlyok attribtumaik m veleteik

az elemek kztti viszonyokat lekkel brzoljukasszocicik, ltalnosts/pontosts viszonyok, fgg sgek megszortsok (szvegesen megfogalmazott Vg Csaba / www.logos2000.hu viszonyok).

Az osztlydiagram a fejleszts klnbz fzisaiban msknt hasznlhat: elemzs: a szakterlet fogalmait s a kzttk lv viszonyokat brzolhatjuk. tervezs: meghatrozzuk a szakterleti modell megvalstsnak mdjt s az azt m kdtet infrastruktrt. A szakterleti modellt kiegsztjk a megvalstshoz szksges technolgiai appartussal. Megvalsts: az implementci bizonyos rszleteit szemlltethetjk. Ekkor az Vg Csaba / www.logos2000.hu osztlydiagramokat a forrskd

Interakci-diagramok

Vg Csaba / www.logos2000.hu

InterakciInterakci-diagramok

interakci-diagramok: objektumok adott krlmnyek kztt, pldul egy sszetett feladat megvalstsakor hogyan m kdnek egytt.

Egy interakci-diagram ltalban egy hasznlati eset rszleteit hatrozza meg. plda-objektumok (example object). Vg Csaba /

www.logos2000.hu

SzekvenciaSzekvencia-diagramok

id belisg

:Tanfolyam :Szervez vglegest()

:Jelentkezs *vglegest()

Vg Csaba / www.logos2000.hu

Egyttm kdsi diagramok1: vglegests() :Tanfolyam :Szervez 2: *vglegests() :Jelentkezs

Vg Csaba / www.logos2000.hu

Pldaobjektum2: setKidolgoz(v) :Projektvezet r {parameter} :Rszfeladat {r.Jelentkez } 1: v:=vlaszt(nv: String)

Jelentkez kivlasztsaJelentkez :Alvllalkoz

3: rtests(r)Vg Csaba / www.logos2000.hu

v {local}

* :Alvllalkoz

zenetklds

Egy zenetkldst a kvetkez alapelemekkel adhatunk meg: vezrl informcik. visszatrsi rtk vagy rtkek v1,v2:= formban, amely elnevezsekkel a ks bbiekben az zenet eredmnyeire hivatkozhatunk. az zenet elnevezse (ezt minden zenet esetn clszer megadni), az zenet argumentumai (ms nven paramterei) zrjelek kztt.

Vg Csaba / www.logos2000.hu

vezrlsa felttel (condition): az zenet kldsnek felttele. Jele az zenet neve el, szgletes-zrjelek kz rt logikai kife-jezs, pl.: [x>y]. Alternatv legazs esetn vagy a felttel ellenttt fogalmazzuk meg, vagy az else kulcsszt alkalmazzuk. itercis jelz (iteration marker): az zenetet fogad objektumnak az zenet tbbszr is elkldsre kerl. Az Vg Csaba / itercira ltalban a * (a tbb

www.logos2000.hu

nylhegy

"hagyomnyos" nylhegy: a vezrls egyszer , nem fggvnyhvs-jelleg terjedst jelli. teljes-nylhegy: szinkron zenetvltst jell. fl-nylhegy: aszinkron zenetkldsVg Csaba / www.logos2000.hu

SzekvenciaSzekvencia-diagram:Projektvezet

letvonal

r:Rszfeladat

Jelentkez : Alvllalkoz*

v:Alvllalkoz

v:=vlaszt(nv)

setKidolgoz(v) rtests

Vg Csaba / www.logos2000.hu

vezrlsfkuszAktv, m kd llapot: az objektum rendelkezik a vezrlssel, gy pldul zenetet kldhet egy msik objektumnak. Vrakoz llapot: az objektum valamely m veletnek vgrehajtsa kzben egy elkldtt zenetnek a feldolgozsra vr. Ezrt ebben a pillanatban nem rendelkezik a vezrlssel, de a m velet sorn felvett loklis vltozi mg Vg Csaba / lteznek.

www.logos2000.hu

Konkurens folyamatok:Ignyl id pontfoglals kapcsolds krem vrjon id pontkrs rendben id pont lefoglalva :Kliens :temez

a telefonos b kapcsolat {b-b