If you can't read please download the document
Upload
letram
View
218
Download
2
Embed Size (px)
Citation preview
Informcis Rendszerek
Tervezse
Munkapldny
Illys Lszl
2016
Bevezet:
Ez az rott anyag azt a jegyzetet szeretn helyettesteni, amelyik a Kolozsvri Sapientia
Cskszeredai Kzgazdasgi- s Humntudomnyok karn tantrgyknt ltez (Gazdlkodsi)
Informcis Rendszerek Tervezse tantrgynl tantott elmleti- s gyakorlati problmkat
taglalja. Elzmnyknt annyit tudnk elmondani, hogy az anyag sszelltst nagyban
befolysolta Fbin Csaba professzor, a Bukaresti ASE nagy tiszteletben ll nyugalmazott
tanra. Sok bra tle van, de idkzben n is vettem t mshonnan brkat s szvegeket. Az
informatika annyira szertegaz s annyira gyors temben fejldik, hogy egy valdi knyv
kiadsra csak akkor vllalkozhat az ember, ha azok az elvi s gyakorlati megkzeltsek tbb
vtizeden keresztl is meglljk majd a helyket. Azt meg informatikban szinte senki nem
tudja felvllalni.
1. Fejezet. Projektmenedzsment a szoftvertechnolgiban.
I. A gazdasgi Informatika helye az informci technolgiai tudomnyok kztt
1.-es bra. A gazdasgi informatika helye (Fbin Csaba Bla).
Szmtstechnika tudomnya
Szmtstechnikai mrnksg
II. Az elads motivcija
a) Mi a fontosabb? Eszkzk tantsa vagy ismeretek kzlse?
A szotvertechnolgia szintjn is sok minden beszklt. Nagyon sok programoztl csak azt
vrjk el, hogy bizonyos szk keresztmetszetben nagyon hatkonyan s jl dolgozzanak. Az igazi
algoritmusok egy rszt mr csak a tudomnyokkal foglalkoz informatikusok tervezik meg, ami
az ssz informatikusi termelsnek 10%-t, ha kiteszi. Az eszkzk mindig vltoznak. Mindig
jabb s jabb eszkzket gyrtanak. A programozs egyre knyebb vlik, inkbb az eszkzk
hasznlata lesz mrvad, na meg a problma-elemz kpessg. Vagyis, az eszkzk tantsnl
tbb szempont rvnyeslhet. Az egyik az, hogy a jl bevlt nyelvek tanulsa azrt is kifizetd,
mert olyan, ltalnosan hasznlt mintkat tartalmaz, amelyek bizonyosan benne lesznek ms
eszkzkben is. Msik szempont a nylt forrskd lenne. Az olyan programcsomag, meg
krnyezet, amely nyltan vllalja a megmrettetst a programozi vilgban, az hozzjrul egy
komoly informatikai kultra kialakulshoz.
b) Mennyi algoritmustervezsre van szksg?
Mit neveznk algoritmusnak?
Algoritmuson vagy inkbb eljrson olyan megengedett lpsekbl ll mdszert,
utasts(sorozato)t, rszletes tmutatst, receptet rtnk, amely valamely felmerlt problma
megoldsra alkalmas. Pldul eljrst, algoritmust, receptet lehet adni egy kombo asztal
(vagy egyb btor) sszeszerelsre, valamilyen lelmiszer, mondjuk sajt (vagy brmilyen
tejipari termk) elksztsnek mdjra, a Dek trrl a Lnchdhoz vezet t megtallsra,
vagy ppen kt egsz szm legnagyobb kzs osztjnak kiszmolsra. A szmtgpes
programok ltalban tartalmaznak algoritmusokat, ezekkel utastjk a gpet az adott feladat
vgrehajtsra.[5]
Mint az elbbi defincibl is kiltszik, az algoritmus a val letben ltez folyamatok lerst is
szolglja. Egy nagyobb cgbe bejv megrendelsi akta is valamilyen algoritmus szerint jut el
azon szemlyekhez, akiket rint. Az informcitartalma szerint vagy vltozatlan formban, vagy
mr valamilyen elzetes feldolgozson megy keresztl. A titkrn, tudva a helyi rendet, tadja
pl. az igazgatnak a berkezett megrendelst. Az igazgat rrja, kinek kell tovbbtani, s kld
egy-egy hozzrendelt informcit a gazdasgi igazgatnak s a termelsi igazgatnak. A
termelsi igazgattl megkrdi, hogy milyen hatrid alatt tudja elkszteni, figyelembe vve az
aktulis munkkat s az lmunka, meg gpi lefdttsget. A gazdasgi igazgattl megkrdezi,
hogy a megrendel tartozik-e valamivel, s mennyire fontos gyfl. A termelsi igazgat
lekrdezi a raktrt a meglv anyagokrl, majd megkrdezi a beszerzsi osztlytl, mennyi id
alatt tudjk beszerezni a hinyz anyagokat. Majd megkrdezi a gazdasgi igazgatt, hogy van-e
elg pnz az anyagok beszerzsre, vagy hitelbe is el lehet hozni azokat. Az gy megkapott
informcikbl a termelsi igazgat egy elzetes jelentst tud adni a megrendels lehetsges
megvalstsnak hatridejrl.
A fentebb lertak egy relatv kis magja a minsgbiztostsnak. A vllalatokon belli folyamatok
ismerete, feltrkpezse, irnytsa s ellenrzse informatikai mdszerekkel egy nagyon
fontos eleme a vllalat mkdsnek, amely nlkl mr egy kzepes vllalkozs se tud j
dntseket hozni, de napjainkban mr egy kisvllalkozsban is ugyangy fel kell derteni ezen
algoritmusokat, mert ezen llhat vagy bukhat meg egy vllakozs. Az algoritmusoknak a grafikai
megjelentse sokkal kzelebb hozza nemcsak a dntshozhoz, hanem minden alkalmazotthoz
a bels folyamatok megrtst.
c) Mely ismeretet s mdszert kell tadni a hallgatnak?
Ht azt, amelyik a legaktulisabb, vagy amelyik gy tnik, kialakt egy olyan godolkodsmdot,
amelyik a technolgiai fejldst is kvetni tudja kisebb-nagyobb hozzadssal. A hallgatkban
olyan mintk kell kialakuljanak, amelyek rvnyesek most s taln mg azok lesznek egy j
darabig. Meg azt, amelyik standardot kpvisel, amelyet, ha nem is mindenki, de az ezzel a
tudomnnyal foglalkoz emberek kzs nyelvt kpezi.
d) Milyen pedaggiai s mdszertani eszkzk szksgesek a tantshoz (tanulshoz)?
e) Melyik az aktulisan legjobb CASE eszkz/ krnyezet/ programozsi nyelv kombinci?
III. A program, mint termk
A termk jellemzi:
a) Szolgltatsi funkcival rendelkezik
b) Minsggel rendelkezik
c) Ellltsi kltsge van
d) Ellltsi hatrideje van
A termk ellltshoz technolgira s menedzsmentre van szksg.
A trsadalom ltal a gyakorlatban felvetett problmk megoldsra szolgl dolgok
tudomnyos ismeretek alkalmazsval trtn, gazdasgos ellltsnak mikntjt nevezzk
technolginak. [4]
A szoftvertechnolgia trgya:
Nagymret programrendszerek ellltsa.
Ezen programrendszerek jellemzi:
Nagy bonyolultsg rendszerek
Csapatmunkban kszlnek el
Hossz az lettartamuk (verzik s azok menedzselse, karbantartsi munkk)
A szoftver ellltsi- s letciklusa
ISO (International Standard Organization) 12207 Life-Cycle standard
Az letciklus az az idintervallum, amely a dnts s a szoftver teljes kicserlse kztt van.
Az ellltsi ciklus az az idintervallum, amelyik a dnts s az implementci kztt van.
Ellltsi princpiumok:
Minsgi princpium (biztostja a hibk megtallst s kikszblst)
Menedzsment princpium (az rak s hatridk tervezse)
Mrnki princpium (a problma tiszta meghatrozsa, a megolds kivlasztsa)
IV. Az letciklus, az ISO 12207 alapjn [6]
Az letciklus elsdleges folyamatai
Acquisition vtel, beszerzs
Supply felszerels
Development fejleszts
Operation mkds, zemeltets
Maintenance karbantarts
Destruction - megsemmists
a) Vtel, beszerzs.
A beszerzs fedi azon tevkenysgeket, amelyek a projekt kezdett jelenti. A beszerzsi fzist
fel lehet osztani klnbz tevkenysgekre s teljesthetsgekre amelyeket kronolgiai
sorrendben tltenek ki.
Kezdemnyezs: ezen aktivits sorn a kvetkez feladatokat vgzik el
o Annak a lersa, hogy mirt kell beszerezni, fejleszteni vagy feljavtani egy
termket
o Rendszer szint kvetelmnyek meghatrozsa s jvhagysa, ha szksges
o Dediniljuk a globlis szoftverkvetelmnyt
o Ms lehetsgek szmbavtele, mint egy szemlyre szabott termk vagy egy
ltez termk feltningolsa
o Ha egy szemlyre szabott termket szerznk be, a termk szoftver-kvetelmny
rendszert meg kell vizsglnunk.
o Egy beszerzsi tervet kell kifejleszteni, amelyik vgigkveti a beszerzsi fzisokat
o Elfogadsi kvetelmnyeket hatrozunk meg
Elterjesztsi krelem: ez sorn a kvetkez feladatokat vgezzk
o Definiljuk a beszerzsi kvetelmnyeket, pldul a rendszer-feltteleket s a
technikai megszortsok, mint a clkrnyezet
o A projekthez szksges ISO/IEC 12207 folyamatokat kell meghatrozni, szksg
esetn
o Szerzdsi mrfldk az fellvizsglatra s a beszerzsi folyamat tvizsglsi
feltteleit rgztjk
Szerzds elksztse: ezen tevkenysg folyamn a kvetkez feladatok vannak:
o A beszlltk kivlasztsi feltteleit adjuk meg
o Kivlasztjuk a beszlltkat, az elzleg megadott felttelek szerint
o A szemlyre szabott ISO/IEC 12207-es standardot bele kell foglalni a szerzdsbe
Egyeztets a mdostsokrl: ezen aktivits sorn a kvetkez mveleteket vgezzk
o A kivlasztott beszlltkkal val egyezkeds, egyeztets
A szerzds feljtsa: ez alatt a kvetkez tevkenysgeket rtjk
o A szerzdst feljtjk az elz aktivitsban trtnt egyezkeds alapjn.
A beszllt megfigyelse: ezen aktivits sorn a kvetkezk trtnnek
o Megfigyels alatt tartjuk a beszlltk tevkenysgeit az egyeztetsre val
tekintettel
o Kzs munka a beszlltval, hogy a hatridket leszgezzk s betartsuk
tvtel s kiteljeseds: ezen aktivitsok sorn a kvetkez mveleteket kell elvgezni
o tvteli tesztek s eljrsok kifejlesztse
o A termk tvtele s tesztelse
o A szlltott termk konfigurlsa
b) Felszerels, kiszllts
Ebben a fzisban egy projekt menedzsment tervet ksztenek. Ez a terv meghatrozza egyebek kztt a
projekt mrfldkveit. Ez a projekt menedzsmenti terv szksges a fejlesztsi fzisban.
c) Fejleszts
A fejlesztsi fzisban tervezzk meg a szoftver termket, elksztjk, teszteljk, majd az
eredmnye egy szoftver termk lesz, amelyiket tadhatunk a felhasznlnak. Az elmlt idkben
sokan fogalmaztk meg a szoftver termk fejlesztst. Nagyon sok esetben a sajtos helyzettl
fgg a vlaszts. Sokan a V-model-t alkalmazzk, mint fejlesztsi mdszert. Azon technikk,
amelyeket hasznlhatunk: a fejleszts sorn az UML, a tesztels sorn a TMap.
Meghatrozzuk a funkcionlis kvetelmnyeket: ezen aktivits a kvetkez feladatok elvgzst jelenti
o Az elksztend termk funkcionlis kvetelmnyeinek s/vagy az ignyek felmrse A magasszint tervezs sorn a kvetkez feladatok elvgzsre kerl sor
o Egy alapvet szerkerzet elksztse. Ezek bizonyos modulok elrendezst jelentik, s a kommunikcit kzttk. A tervezs nem tartalmaz rszleteket a modulokrl
Elksztjk a modul-tervet o A klnbz modulokat bemutatjuk magas szinten, kln, kln. A modulokat a lehet
legnagyobb rszletessggel tervezzk meg Kdols
o A kdolst a legmagasabb szint tervezs s a modul tervezs alapjn trtnik A modul-teszt vgrehajtsa
o Minden modult letesztelnk, hogy korrektl mkdik-e. Ha ez rendben van, a projekt ttrhet a kvetkez aktivitsra, mskpp visszatrnk a modul tervezs fzisra hibajavts vgett.
Integrcis teszt futtatsa o A modulok kztti kommunikcit teszteljk, hogy rendben mkdik-e. Ha ez rendben
van, akkor jhet a kvetkez tevkenysg, mskpp a projekt visszakerl a magasabb szint tervezshez hibajavts vgett.
Rendszer-szint teszt elvgzse o Ez a teszt megkeresi, hogy minden funkcionlis kvetelmny benne van-e a termkben.
Ha ez rendben van, a termk kszen ll az gyflnek val tadsra. Mskppen a projekt visszakerl a szoftver-kvetelmny tevkenysghez s a funkcionlis kvetelmnyeket igaztjuk
d) zemeltets
Az zemeltetsi s a karbantarsi fzis egyszerre indul, az zemeltetsi fzis olyan folyamatokbl ll,
mint a felhasznl felgyelete a szoftver-termk hasznlata sorn.
e) Karbantarts
A karbantarsi fzis karbantartsi mveleteket jelent, ami azt eredmnyezi, hogy a termk mkdik s
fut. A karbantartshoz tartozik mindenfle ltalnos bvts, mdosts s hozzads, amelyet a
vgfelhasznl kr. Ezen hibkat s hinyossgokat a kifejlesztk dokumentljk, hogy az elkvetkez
kibocsjtsokban ezen hinyossgok megolddjanak. Nincsen befejezsi fzis
f) Megsemmists
V. Az letciklus fzisai. Ciklusmodellek.
1. A felhasznlk krelmei (kvetelmnyanalzis)
2. Szoftver-kvetelmnyek
3. Architektra tervezse
4. Finom tervezs
5. Implementci (programkd rs)
6. Karbantarts
Fzis Clkitzs Vgtermk
A felhasznl krelmei A problma definilsa A felhasznl specifikcija
Szoftverkvetelmnyek A problma analzise A szoftver specifikcija
A durva tervezs ltalnos megolds ltalnos terv
Tervezs Implementci Aprlkos, finom terv
tltets zembe helyezs A kliensek felksztse, hibakeress
Karbantarts A szoftver fejldse Karbantartott s tovbb-fejlesztett
szoftver
Az letciklus 4 fzisa erforrs s id fggvnyben
erforrs
kezdet kidolgozs felpts tmenet
id
VI. A szoftver ellltsi- s letciklusa
Definci:
Az letciklus az a idintervallum ami a dnts s a szoftver teljes kicserlse kztt van.
Definci:
Az ellltsi ciklus az az idintervallum amelyik a dnts s az implemetci kztt van
VII. A vzess modell
A vzess modell ezen formjban az implementci utni tesztels adja ki a hibkat. A
futtats s karbantarts alatt kiderl hibk mr magasabb szinteken okoznak
vltozsokat. A vzess ebben az esetben a hgoly effektust valstja meg, egy felsbb
szinten meglv anomlia minl lennebb r, annl nagyobb hatst fejt ki, annl tbb
helyen kell javtani. Ennek a modellnek az anomliit kikszblend alkottk meg azt a
vzess modellt, amelyikben a negatv visszacsatols minden szint kztt megvan. Ez
elmletileg szp s j, gyakorlati megvalstsa nehzkesebb, mint az elz.
http://en.wikipedia.org/wiki/File:Spiral_model_(Boehm,_1988).svg
Ezen brn a Development and Test, az 3-as, nem 2-es.
http://en.wikipedia.org/wiki/File:Spiral_model_(Boehm,_1988).svg
Az IBM Rational Unified Process.
A Rational Unified Process (RUP) egy iteratv szofver- fejlesztsi folyamat keretrendszer,
amelyet a Rational Software Corporation fejlesztett ki, a IBM-nek egy 2003-tl ltez
rszlege. A RUP nem egy egyetlen, konkrt elrsos folyamat, hanem egy alkalmazhat
folyamat-keretrendszer, amelyet gy terveztk, hogy a szervezetek s a szoftverfejleszt
csapatokra szabhat legyen, amelyek kivlasztjk a nekik megfelel elemeket a
folyamatbl.
A 6 legjobb hasznlat (best practice)
1. fejlessz itercikban
2. kezeld a kvetelmnyeket
3. hasznlj komponenseket
4. modellezz vizulisan
5. ellenrizd a minsget
6. Irnytsd a vltozsokat
VIII. Agile mdszertan
IX. A jghegy princpium
X. A konstans terlet hromszg elve.
A konstans hromszg elve kimondja, hogy a szmtgpes projekteknl (s nemcsak ott)
az id, a negatv minsg s az r egy 3 dimenzis trben konstans terlet
hromszget hatroz meg. Ezt hrom esetben vizsglhatjuk, ha rgztjk a hrom
paramter egyikt.
Rgztjk az egyik rtket, a msikat elmozdtjuk egyik fel, s a harmadik kimozdul a
msik fel ahhoz, hogy konstans terlet hromszget kapjak.
a) Rgztett r mellett, ha kevesebb idt sznunk a projektre n a negatv
minsg, vagyis a minsge cskken. Ha tbb idnk van r, jobb
minsget is tudunk szolgltatni.
b) Rgztett minsg mellett, ha tbb pnzt tudunk rfordtani, kevesebb
id alatt lehet elkszteni a termket.
c) Ha idben be vagyunk hatroldva, ahhoz hogy jobb minsget rjnk el,
nagyobb rat kell fizessnk
XI. Egy terv alapelemei
a) A fnevek, a mellknevek s az igk felrsa.
b) A rendszer bemen informcii s a kimen listinak felsorolsa. Milyen krdsekre kell
tudnia vlaszolni a rendszernek?
c) A bemen s az eredmny adatfluxus elksztse
d) Az Use Case-k (rossz fordtsban hasznlati esetek) elksztse
e) Az osztlyok elksztse
f) A csomagdiagram elksztse
g) Az osztlydiagramok elksztse
2. Fejezet. Adatok s adatstruktrk
Tartalom: Elemi adatok s adatszerkezetek. Az adatok szervezse s feldolgozsa a bels
memriban. Az adatok szervezse s feldolgozsa a kls memriban. Az adatstruktrk
kivlasztsi kritriumai
1) Elemi adatok s adatszerkezetek
Adat: egy modell informcik brazolsra
Elementris adatok: skalris, tovbb nem oszthat
Logikai, alkalmazi nvn:
Fizikai, gpi nvn:
azonost:< szimblum ,nv>
attribtum
Az adat rtke
Adatstruktrk:
Csoportosts:
A komponensek kivlasztsa szerint (direkt hozzfrs, szekvencilis hozzfrs)
A memria tpusa szerint (bels, kls)
A struktra vltozkonysga szerint (dinamikus, statikus
Adatstruktrkon trtn mveletek
Ltrehozs: az adatok memorlsa
Lekrdezs: az adatok kiolvassa. (bejrs)
Aktualizls: az adatok mdostsa (beszrs, trls)
Rendezs: az adatok sorba helyezse bizonyos logikai sorrend szerint
sszevons: az adatok egyestse
Msols: az adatok msolsa
Adatszervezs:
Azonosts, csoportosts, a tulajdonsgok lersa, gyjtemnyek ltrehozsa
A struktra megllaptsa
Az brzolsi mdok maghatrozsa
A feldolgozsi mdok defincija
A fontosabb adattpusok:
Numerikus: egsz, vals, komplex stb.
Logikai: boolean (igen, nem)
Karakter: betk, szmok, jelek egyttese
Mutat: adatok melyek cmeket jelentenek
2) Az adatok szervezse s feldolgozsa a bels memriban
Adattpsok a bels memriban
mbk (vektor, mtrix, n-dimenzis tmb)
Kapcsolt listk
Fa adatszerkezet (rekordszerkezet, algebrai kifejezs)
Ms adatszerkezetek
1. Verem
2. Sor
3. Lncolt lista
4. Grfok
Lineris (egydimenzis) tmbk
Hasonl adatelemek vges szm tagbl ll listja.
Az egyes elemekre az n tag halmaz egymst kvet sorszmaival hivatkozhatunk.
( , ,3,...,n)
C-ben s Java-ban (0,1,2,...,(n-1))-el hivatkozunk
Jellsek:
Indexes jells a1, a2, a3,...., an
Zrjeles jells A( ), A( ), A(3),..., A(N)
Szgletes zrjeles jells A[ ], A[ ], A[3],, A[N]
Jellstl fggetlenl az A[K]-ban lev szmot indexnek, az A[K]-t indexelt vltoznak
nevezzk
3) Az adatok szervezse s feldolgozsa a kls memriban
Fjlok, szervezsi mdok s hozzfrs
Fjlok:
Volumen, blokkok,
Ltests, Aktualizls
Lekrdezs, Kzbekels
Msols
Szervezs (szekvencilis, index szekvencilis, szelektv, relatv, inverz, multiindexlt,
sszektsekkel, adatbzis
4) Az adatstruktrk kivlasztsi kritriumai
a. Volumen
Nagy volumennl a visszakeresshez felttlenl szksges indexek hasznlata. Viszont
gy kell tervezni, hogy csak hasznos indexek legyenek felhasznlva, mert az indexllomnyok is
terhelik (terhelhetik a memrit.)
b. Opercik s frekvencijuk
Index hasznlata esetn, ha sok j elem kerl be, esetleg sok trls ltezik, az indexek
hasznlata lelasstja a folyamatokat.
c. Aktivitsi mutatja az opercinak
1. Ha nagyon sok bers, trls ltezik
2. Ha nagyon sok kiolvass trtnik
3. Sok bers, trls s kiolvass
d. A struktra lettartama
Bizonyos esetekben, ha a memri
e. A programozs komplexitsa
f. A teljessg biztostsa
g. A kapcsold tevkenysgek idtartama s komplexitsa
h. A memria hatkony kihasznlsa
Indexek hasznlata segti a memria hatkony kihasznlst. Az adatstruktra, amin a
mveleteket vgezzk ugyangy lehet memriafal vagy memria-hatkony. A memria
dualitsa okozhat problmt, amelyet optimalizlni kell: ugyanaz a memria trolja bizonyos
struktrban az adatokat, s ugyanabban a memriban kell mkdjn az algoritmus, amelyik
feldolgozza ezeket az adatokat. Mint lttuk a cscsmtrix s a szomszdsgi lista esetben, a
cscsmtrix nagyobb helyet foglal el a memriban (vannak resen elfoglalt helyek), viszont pl.
egy j l ltrehozsa a cscsmtrixban 2 helyen val mdostst eredmnyez, mg egy
szomszdsgi listban akr minden cscshoz val hozzrst is eredmnyezhet, na meg egy
kln sort az j cscsnak. Egyenslyt kell tallnunk a memria, mint trolsi kapacits s a
memria, mint a trolt informcin val mveletvgzs helye kztt.
3. Fejezet. Algoritmusok brzolsa.
a) ltalnossgok
b) Algoritmusok reprezentlsa:
a. Matematikai-logikai nyelvezet
b. Pszeudokd
c. Fggleges logikai smk
d. Vzszintes logikai smk
e. Fastruktrk
c) Dntsi tblk
ltalnossgok:
Mikor van szksg algoritmusokra?
a) Nagy a szmts volumene.
b) Sokszor ismtldik az aktivits.
c) Az eredmnyek rvid idn bell szksgesek.
Hogyan ptjk fel s hogyan brzolunk egy algoritmust egy vals s nehz problma
megoldsnak rdekben.
Ltezik olyan, hogy legjobb algoritmus?
Algoritmusok elemzse
Elre meg kell adnunk, milyen erforrsokra lesz szksge az algoritmusnak. A RAM (Random
Access Memory) kzvetlen hozzfrs memrit vesszk alapul. A memria a processzorral
egytt alkotjk a kzvetlen hozzfrs gpet. Az utastsokat a processzor egyms utn hajtja vgre, egyidej mveletek nlkl.
Meg kell fogalmazzuk a modell mveleteit s azok kltsgeit.
Bemenet mrete: feladatfgg
a tmb n elemszma (rendezsnl)
Bitek szma (pl. szmok szorzsa esetn)
Grf leinek s cscsainak szma
Futsi id: egy bizonyos bemenetre a vgrehajtott alapmveletek (lpsek szma)
Beszrsos rendezs algoritmusa:
1 2 3 4 5 6
5 2 4 6 1 3
2 5 4 6 1 3
2 4 5 6 1 3
2 4 5 6 1 3
1 2 4 5 6 3
1 2 3 4 5 6
Ltjuk, hogy ez az algoritmus olyan, mintha krtykat rendeznnk nvekv sorrendbe. Megnzzk a msodik krtyt, majd az elejre tesszk, ha kell. A kvetkezkben sorban nzzk a krtykat, a 3,4,5 stb. sorrendben. sszehasonltjuk visszafel sorban mindenik krtyval, s addig cserlgetjk amig helyre kerl. Legjobb esetben a sor mr rendezve van, viszont az algoritmusnak bizonyos rszei gyis le kell fussanak.
1 2 3 4 5 6
1 2 3 4 5 6
1 for j to hossz[A] 2 do SA[j] 3 ij-1 4 while i>0 and A[i]>S 5 do A[i+ ]A[i] 6 ii-1 7 A[i]S
1 for j to hossz[A] 2 do SA[j] 3 ij-1 4 while i>0 and A[i]>S 5 do A[i+ ]A[i] 6 ii-1 7 A[i]S
1 c1 n 2 c2 (n-1) 3 c3 (n-1) 4 c4 (n-1) 5 c5 ??? 6 c6 ??? 7 c7 (n-1)
Legjobb esetben a c5 s c6 nem hajtdik vgre, ezrt az algoritmus kltsgt a kvetkez
fggvny fejezi ki:
T(n)=c1*n+c2*(n-1)+c3*(n-1)+c4*(n-1)+c7*(n-1)=(c1+c2+c3+c4+c7)*n-(c2+c3+c4+c7)=a*n+b,
vagyis lineris fggvny.
Legrosszabb esetben:
1 2 3 4 5 6
6 5 4 3 2 1
Legroszabb esetben c5 s c6 rtke (n-1)*(n-1). A fggvny:
T(n)=c1*n+(c2+c3+c4+c7)*(n-1)+(c5+c6)*(n2-2n+1)=
(c5+c6)*n2+(c1+c2+c3+c42*c52*c6+c7)*n+(c5+c6c2c3c4)=d*n2+e*n+f, vagyis egy
ngyzetes fggvny.
Definci:
Azt mondjuk, hogy T(n)=O(f(n)) az algoritmus komplexitsnak a mrtke ha lteznek c1 s c2
szmok valamint n0 gy, hogy:
c1*f(n) T(n) c2*f(n), ()n n0.
Definci:
Azt mondjuk, hogy T(n)=O(f(n)) egy algoritmus komplexitsnak nagysgrendje, ha ltezik kt
pozitv konstans c, n0, gy, hogy
T(n) cf(n), ()n n0.
Ltjuk, hogy a c*f(n) fggvny leszortja az algoritmust, ezrt nagysgrendileg biztosan alatta
van. Viszont tallhatunk egy olyan kisebb komplexits fggvnyt, amelyik ugyangy teljesti a
felttelt.
Az algoritmusok jellemzi
ltalnossg
vgessg
egyedisg
automatizmus
Szubalgoritmusok.
egymsratevdses kpzs
fokozatos kpzs
Algoritmusosztlyok
numerikus
nemnumerikus
feldolgozsi
Definci: Egy algoritmust polinomilisnak neveznk, ha olyan temporlis komplexitssal rendelkezik, amelyik O(f(n)) alak, ahol f(n) egy polinomilis fggvny n hosszsg bemenetekre.
f(n)=a1n+a0
f(n)=a2n2+a1n+a0
f(n)=a16n16+a10n
10+a5n5+a2n
2+a1n+a0
f(n)=a6783n6783+a532n
532+a5n5+a2n
2+a1n+a0
Definci:
Ha egy algoritmus nem polinomilis komplexits, akkor exponencilis; minden olyan
algoritmus exponencilisknt van kezelve, amely komplexitsa nlog n, habr sem nem
polinomilisak sem nem exponencilisak matematikai rtelemben.
Utazgynk problma:
Egy utazgynk n vrost kell megltogasson bizonyos idn bell. Hogyan jrja be a vrosokat,
hogy a kltsge minl kisebb legyen (legyen a kltsg=t hossza).
Az utak bejrsnak sszes esete: n!
1!=1=20 2!=1*2=21 3!=1*2*3>22 4!=1*2*3*4>23 5!=1*2*3*4*5>24
Vagyis 3>2, 4>2, 5> , 6> , , n> , vagyis n!>2n-1, theht alulrl korltozza a 2n-1 exponencilis
fggvny, vagyis exponencilis komplexits az n! tipus algoritmus..
Algoritmusok brzolsa
matematikai-logikai nyelvezet, pszeudokd, fggleges logikai smk, vzszintes logikai smk (Chapin), fastrktrk (Tabourier vagy Mills), dntsi tblk.
Pszeudokd tpus nyelvek
Ezen tipus nyelvek tulajdonsgai:
ermszetes nyelv, strukturlt s egyszerstett, Egy alternatvja a logikai smnak Nem programozsi nyelv de ltezik megvalstsa: pl. Pascal Sok vltozata van Az algoritusok egymsutni mondatokbl plnek fel,
Mondatok lehetnek: egyszerek (pl.: nyiss meg egy llomnyt, olvass egy bejegyzst egy fjlbl);
Komplex mondatok, logikai opertorokkal sszektve A # szimblum az elkvetkezkben kiterjesztett mondatra utal A mondat egy igvel kezddik (pl. Read vltoz,..)
Megkzelts mdja "top-down" tips (fentrl lefel)
Fggleges logikai sma s vzszintes jellsk:
Hromfajta egysgbl (blokkbl) ll.
1. Funkcionlis egysg Y=f(X)
2. Dntsi egysg YUZ=c(X)
3. sszekttetsek
Alap kontroll struktrk:
a) Lineris struktra, jellse (s1,s2...,sn)
b) Alternatv struktra, jellse (c,s1,s2)
c) Elfeltteles repetitv struktra, jellse (c,s)
s1 s2 sn
s1 s2
c
s c
d) res struktra, jellse /\
Minimlisan az elz 4 struktra szksges egy algoritmus brzolshoz. A tbbi levezethet
az elz ngybl. Pl. a pszeudo-alternatv struktra ugyanaz, mint az alternatv struktra, az
egyik gn res struktrval.
e) Utfeltteles repetitv struktra, jellse (c,s)
f) Pszeudo-alternatv struktra, jellse (c,s)
g) ltalnostott alternatv struktra, jellse (c,s ,s sn)
s
c
s
c
s1
c
s2 sn
Beszrsos rendezs algoritmusa:
1 2 3 4 5 6
5 2 4 6 1 3
Szimblum Jelentse
s1 j=2
s2 rendez
s3 j=j+1
c1 j0 and A[i]>S 5 do A[i+ ]A[i] 6 ii-1 7 A[i]S
s2=(s4,(s5,X))
s2=(s4,(s5,(Y,s8)))
Y=(c2,(s7,s6))
s2=(s4,(s5,((c2,(s7,s6)),s8))) , s mivel F=(s1,(c1,(s2,s3)))
F= (s1,(c1,((s4,(s5,((c2,(s7,s6)),s8))),s3)))
Szimblum Jelentse
s1 j=2
s3 j=j+1
c1 j
s7 A[i+1]=A[i]
s8 A[i]=S
c2 i>0 AND A[i]>S
Az alapsturkrk tulajdonsgai:
) struktra ltalban nem kommutatv:
(s ,s ) (s ,s ).
) struktra asszociatv:
(s , (s ,s3)= ( (s ,s ),s3).
3) Az res /\ elem semleges a szekvencilis struktra szempontjbl :
(s,/\)= (/\,s).
4) struktra jobb oldalrl disztributv az alternatv strukturra nzve:
( (c,s ,s ),s3)= (c, (s ,s3), (s ,s3)).
5) struktra disztributv balrl az alternatv struktrra nzve :
(s , (c,s ,s3))= (c, (s ,s ), (s ,s3)).
6) struktra talakthat az alternatv bennfoglalsi struktrkra:
(c,s)= (c, (s, (c,s)),/\)= (c, (s, (c, (s, (c,s) )),/\)),/\)=...
7) ', ", ' struktrk talakthatak a , , struktrkra :
'(c,s)= (s, (c,s));,
'(c,s)= (c,s,/\);
'(c,s)= (c,s, (c,s));
'(c,s ,s ,...sn)= (c ,s , (c ,s ,...)),
A struktra ttele. Bhm s Jacopini ttele
A szekvencia, szelekci s az iterci segtsgvel minden olyan algoritmus felpthet, amelynek egy
belpsi s egy kilpsi pontja van.
Fastruktra diagram: Tabourier varins
szekvencilis (s1,s2)=(BLOCK, s1,s2)
alternatv (c,s1,s2) (IFTHENELSE,c,s1,s2)
elfeltteles repetitv jellse (WHILEDO,c,s)
pszeudoalternatv jellse (IFTHEN, c,s)
BLOCK
s1 s2
IFTHENELSE
s1 s2 c
WHILEDO
s c
IFTHEN
s c
tbbszrsen alternatv jellse (CASEOF, c,s1,s2,...,sn)
utfeltteles repetitv jellse (DOUNTIL,s,c),
CASEOF
s1 s2 c sn
DOUNTIL
s c
A fenti algoritmus ugyanaz a rendezsi algoritmus, csak a Tabourier brzolssal megoldva.
Dntsi tblk
DNTSI TBLA
Esetek
E1 E2 ... Em
FELTTELEK F1
F2
...
Fr
AKCIK A1
A2
...
Ap
Van 3 termknk T1, T2, T3 egy raktrban M1, M2, M3 mennyisgben.
Felttelezzk, hogy ezen termkekbl egy adott pillanaban krnek K , K , K3 mennyisgben.
Ha a termket krik, a kvetkez forgatknyv mkdik:
Ha K2M2 visszautastjk a krst T3 termk esetben hasonlkppen jrunk el.
T1 termk esetn a klnbsg az, hogy K1=M1 esetn kielgtik a krst.
A felttelek megllaptsa:
F1 megadja a krt termk tipst
F1=0, ha a T1 termket krik
F1=1, ha a T2 termket krik
F1=2, ha a T3 termket krik F2 megadja a krt mennyisg s a raktron lev mennyisg kzti sszefggst
F2=0, ha a krt mennyisg meghaladja a raktron lev mennyisget
F2=1, ha a krt mennyisg egyenl a raktron lev mennyisgel
F2=3, ha a krt mennyisg kisebb, mint amennyi raktron van A kt felttel ltal behozott esetek szma 3*3=9
3 fajta akci van:
A1 a krs teljes kiszolglsa
A2 a krs rszleges kiszolglsa
A3 a krs visszautastsa
Dntsi tbla felptse:
E1 E2 E3 E4 E5 E6 E7 E8 E9
F1 0 0 0 1 1 1 2 2 2
F2 0 1 2 0 1 2 0 1 2
A1 * * * *
A2 * *
A3 * * *
Az E1, E4 s E7 sszevonsval megkapjuk az E1 esetet, az E3, E6, E9 sszevonsval megkapjuk az E2
esetet. Az egyszerstssel a kvetkez dntsi tblt kapjuk:
E1 E E2 E5 E8
F1 0 1 2
F2 0 2 1 1 1
A1 * *
A2 * *
A3 *
Ez trhat a kvetkez logikai brba:
F2=0
F2=1
F1=0
A3
A2
A1
A1
IGAZ
IGAZ
HAMIS
IGAZ
HAMIS
4. Fejezet. A moh algoritmus
Bevezet:
Az eddig tanult algoritmus tipsok nem alkalmazhatk vals problmk esetben:
A vals problmk nem tiszta klasszikus problmk
A problmk dimenzii nagyok, vagy nagyon nagyok
A problmk tbb clfggvnyesek
Gyakoriak a homlyos megfogalmazsok
Nagyon sok szmtsi idre van szksg.
Keress a mogoldsok terben
Problma: max {c*x | x S }
ahol S a megoldsok tere,
x egy elem ebbl a trbl x S
c*x egy valos rtk , mri az x minsgt
Definci: x pont krnyezete:
V(x) = { x | dist ( x - x)
MOH algoritmusok
Optimalizlsi problmk megoldsakor hasznljuk.
Olyan lpsek sorozatbl ll, ahol minden lpsben egy adott halmazbl vlaszthatunk.
Mindig az adott lpsben optimlisnak ltsz vlasztst tesszk.
Loklis optimumot vlasztjuk, annak a remnyben hogy eljutunk a globlis optimumhoz.
[8] szerint a kvetkez t pillrre tmaszkodik ltalban:
1. egy halmazbl veszi a jellteket, amelyekkel fellltja a megoldshalmazt
2. egy kivlaszt fggvnyt hasznl, amely a legjobb jelltet vlasztja ki a megolds
remnyben
3. egy lehetsgvizsgl fggvnyt alkalmaz, amely megnzi, hogy egy jellt alkalmas-e a
megoldsra
4. egy clfggvny rtkt szmtja ki, amely rtket megoldsnak, vagy rszleges
megoldsnak jell
5. egy megoldsfggvnyt hasznl, amely jelzi, ha megtalltuk a teljes megoldst.
Egyszer plda. Pnzvisszaadsi algoritmus:
Hogyan adhat vissza egy nagyobb pnzbl az elrust vsrls utn, hogy minl kevesebb
cmletet hasznljon.
Ad a legnagyobb cmletbl, amennyit lehet, utna a kvetkez legnagyobb cmletbl amennyit
lehet, stb.
Vissza kell adnunk 367 RON-t egy 500 RON-os cmletbl.
o 1 db. 200 RON
o 1 db. 100 RON
o 1 db. 50 RON
o 1 db. 10 RON
o 1 db. 5 RON
o 2 db. 1 RON
Legrvidebb t megtallsa????
Adott az albbi bra. Bal-fels sarokbl a jobb als sarokba szeretnnk eljutni gy, hogy csak
lefele vagy jobbra lehet lpni. Moh tvonal a srga, legrvidebb tvonal a piros + az utols 2
srga.
01 02 03 04 05 06 07 08
01 1 2 3 4 5 6 7 8
02 7 4 9 8 7 6 5 4
03 1 9 5 4 2 1 7 9
04 1 1 2 4 3 6 8 9
05 1 9 7 8 6 4 2 9
06 1 9 9 9 9 3 4 9
07 1 4 1 2 8 8 8 9
08 1 1 1 1 1 1 7 2
A htizsk problma moh megoldsa.
Van egy htizskunk. A zsk trfogata V. Vannak hasznos dolgaink, amelyeket be szeretnnk
rakni a zskba. Nem fr bele a zskba minden. Mit pakoljunk bele a zskba, hogy minl nagyobb
legyen a hasznunk?
Jellsek:
o V- a zsk trfogata
o vi az i-edik dolog trfogata
o hi az i-edik dolog hasznossga
Definilunk egy relatv hasznossgot, vagy hasznossgi srsget.
Ez az rtk, az egysgnyi trfogatra es hasznossg mrtke lesz.
o si=hi/vi az i-edik dolog hasznossgi srsge
A dolgainkat a relatv hasznossg szerint cskken sorrendbe rakjuk. A legnagyobb rtkt
pakoljuk be elszr. Addg pakoljuk a zskot, amg fr bele. Ha nem fr a nagyobb hasznossg
dolog, vesszk sorba a kvetkezt, amelyik belefr. Egyenl relatv hasznossg esetn vagy
aleatorikusan pakoljuk a htizskot vagy valamilyen lexikografikus sorrendben.
1) Beolvas n, V, v[2][n] //n-a dolgok szma, V htizsk trfogata,
2) v[1][n] tartalmazza a dolgok trfogatait
3) v[2][n] tartalmazza a dolgok hasznossgt
4) Kiszmol s sorbarak.
5) Berak a htizskba, amg lehet
6) Vge
Nv Matrac Arany Vz Zokni Pokrc Als
vi 300 50 100 30 200 60
hi 500 1000 20 40 100 20
hi/vi 1.66 20 0.2 1.33 0.5 0.33
A htizsk ssztrfogata 500 dm3
Dolog Hasznos Trfogat ssztrf
Arany 1000 50 50
Matrac 500 300 350
Zokni 40 30 380
Pokrc 100 200 580
Als 20 60 440
Viz 20 100 540
Lthat, hogy a pokrc nem frt bele, ezrt az Als (nadrg) kerlt bele. Utna mr a vz se fr
bele a htizskba. rdekes elgondolni mg azt is, hogy a tmege a htizskba tett dolgoknak
mennyi lehet. Mert vannak hlgyek, akiknek nem szabad tbb, mint 18-20 kg-ot cipelnik, de
egy frfi se cipelhet tbb, mint 40 kg-t hossz tvon, s az is lehet, hogy maga a htizsk
struktrja is csak kb. 35 kg-ra van tervezve, s minden slyfelesleg rontja a htizsk llapott is,
s egy id utn leszakad valami rla.
MOH algoritmusok
Defincik s jellsek E egy vges sokasg W: E R egy slyfggvny
W(S) = w(e), e S, S E F(E) egy az E alsokasgok csaldja
1. Kivlasztunk egy e1 E elemet gy hogy
S1 := { e1 } F(P) es w(e1 )= max{w(e) : { e } F(P)}
2. Vlasztunk egy msik elemet e2 E-S1 gy hogy
S2 := S1 { e2 } = { e1, e2 } F(P) , s
W(e2 ) = max { w(e) : e E-S1 es S1 { e } F(P)} 3. Folytatjuk a folyamat vgig Ttel: Ha (E,F) egy matroid akkor a moh algoritmus az optimlis megoldshoz vezet.
A minimlis fesztfa problma. Megoldsai optimlis moh algoritmussal.
Huzalozsi problmnak is nevezzk, mivel n pont kztt prbl meghatrozni egy olyan ft,
amelyikben a grf minden cscspontja egyszer benne van. Lnyeges, hogy a kltsg minl
kisebb legyen (minl kisebb hosszsg vezetkszl).
sszefgg, irnytatlan G=(V,E) grf segtsgvel modellezk, ahol V-beli cscsok az ramkr
pontjai, E lei az sszekthet pontprokat jellik Evu ),( l rendelkezik egy w(u,v) sllyal,
amelyik az u s v sszektsi kltsgt adjk meg
Ltez moh algoritmusok (amelyek optimlisak)
Kruskal algoritmus
Prm algoritmusa
Kruskal algoritmusa:
1. Megkersessk a legrvidebb (legkisebb) kltsg leket a maradkbl (az elejn persze
az egszbl)
2. Hozzvesszk a megoldsok halmazhoz valamilyen sorrendben, kivve, ha az addig
keletkezett erdben hurok keletkezik.
3. Addig folytatjuk, mg mindenik cscs benne lesz az erdben (mindenik cscshoz legalbb
egy msik cscsot kapcsoltunk)
Az albbi brkon bemutatjuk, hogyan mkdik az algoritmus. Az egyszer hrok a lehetsges
sszektst jelentik, a dupla sszektsek az algoritmus ltal megvalstott ktseket jelentik.
Az els lpsben a legkisebb kltsg a h-g hr, amelyiknek kltsge 1, ezrt hozzvesszk a
megoldsok halmazhoz, mint az els brn lthat. Megoldsi halmaz: {hg}
A msodik lpsben a legkisebb kltsg a 2 lesz. Ezek a c-i s f-g hrok. Mivel a c az a bet
amelyik az bcben a leghamarabb van a c,f,g,i kzl, ezrt lexikografikusan vve a c-i hrt
vesszk be a megoldsok halmazba elszr. Megoldsi halmaz: {hg; ci; fg}
A harmadikknt az f-g l kerl, mivel az is kevs kltsget jelent s nem keletkezik hurok. A
kvetkez legkisebb kltsg lek kltsge 4, maguk az lek pedig a-b s c-f. Mivel megint
lexikografikus sorrendet vlasztom, az a-b-t teszem be a megoldsba. {hg; ci; fg; ab}
A kvetkez lpsben a c-f is belejtt a megoldsba, mivel mg mindig a legkisebb kltsg a
maradtak kzl, s nem keletkezik hurok. {hg; ci; fg; ab; cf}
A kvetkez a g-i lenne, 6-os kltsggel, de akkor hurkot kapnnk: [c, f ,g, i, c]
A kvetkez a 7-es kltsg, s mivel semmi akadlya hogy bevegyk a megoldsok halmazba,
ezrt a megoldsi halmaz gy alakul: {hg; ci; fg; ab; cf; cd}
Az elkvetkezkben a 8-as kltsg a-h s b-c leket kell megvizsglnunk. Az a-h l belekerl, a
b-c viszont mr ezutn nem kerlhet be a megoldsba, mivel [a, b, c, f, g, h] hurok keletkezne.
Ha itt s most nem lexikografikusan vlasztottunk volna, akkor bekerlhetett volna a b-c, de
akkor mr nem kerlhetett volna be az a-h, ugyanazon hurok miatt. gy, mostmr a megoldsi
halmaz a kvetkez kppen alakult: {hg; ci; fg; ab; cf; cd; ah}. Amint ltjuk, csak az e cscs
hinyzik a halmazbl. Folytathatjuk az algoritmust, vagy megnzhetjk mostmr azt, hogy az e
cscshoz melyik cscs van a legkzelebb. Ezen rvels utn hozzvesszk a d-e lt a
megoldsokhoz. Emgy a vgs megoldsi l-halmaz a kvetkez kppen alakul:
Megoldsi halmaz teht: {hg; ci; fg; ab; cf; cd; ah; de}. A feladatok megoldsnl krem
betartani a sorrendet, hogy lehessen ltni azt, hogy rendben mkdik a logikja a hallgatnak.
A vgs megolds:
Divide et Impera, (oszd meg s uralkodj) elv
Az oszd meg s uralkodj elv egy algoritmus tervezsi stratgia. A problmt olyan kisebb mret, azonos
rszproblmkra osztjuk fl, amelyek rekurzvan megoldhatk. Ezutn egyestjk a megoldsokat.
Plda: Adva van egy vektor a=(a1,a2,,an), a feldolgozsa lehetsges kt rszben i=1,.., k. s
i=k+1,,n ig. Majd az eredmnyeket kombinlva az a vektor feldolgozst kapjuk
Pocedure divimp (p.q, )
If q-p then call feldolg (p,.q, )
else call div (p,q,m) call div (p, m, )
call divimp(m+1, q, )
call comb(, , ) endif return end Heurisztikus mdszerek
Definci: Egy algoritmust heurisztikusnak mondunk, ha:
Nincs elmleti alapja, Knny implementlni Gyorsan elg j megoldsokat ad
Klnbz esetek
A felttelek knnyen vagy nehezen teljesthetk, az optimalits knnyen vagy nehezen elrhet
Egy gpen val sorbaraks, elksztsi idvel.
A B C D E F
A 0 2 5 6 3 1
B 1 0 4 3 7 5
C 3 3 0 5 2 4
D 4 3 2 0 1 5
E 7 2 5 2 0 4
F 2 4 3 4 3 0
A mtrixban megkeressk indulunk az A feladatbl. A legkisebb tlltsi id az F mveletet
jelenti, ez kltsg szempontbl k= . Kvetkez lpsben az F mveletbl kell tovbbmenjnk.
Onnan a legkisebb kltsg az A feladatra val elkszts, viszont azt mr az els alkalommal
elvgeztk, ezrt a kvetkez legkisebb tllsi idt kell megkeresnnk, amelyik a C vagy az E, 3
egysgnyi kltsggel. Mivel itt is a lexikografikus sorrendet vlasztjuk, ezrt a C lesz.
Eddigiekben AFC s a kltsgek k=1+3. C-bl a legkisebb tllsi kltsg az E-be van, gy a
sorrend AFCE s a kltsg k=1+3+2.
5. Fejezet. A genetikus algoritmus
A. Bevezet
B. A kanonikus genetikus algoritmus
C. A genetikus algoritmusok biolgiai alapjai
D. Trtneti ttekints
E. A genetikus algoritmusok helye az optimalizlsban
F. A genetikus algoritmusok elmleti alapjai
G. Permutcis adatstruktrk
H. Specilis reprezentcik
I. Sajt reprezentcik
Bevezet
Charles Darwin elmlete s G.J. Mendel statisztikai ksrletei egy minsgi ugrst
jelentettek a biolgiban.
J.D. Watson s F. Crick ksztettk el elszr a DNS struktrt, ahogy ma is ismerjk.
A komplexits elmlet s az opercikutats nagy hatssal voltak a kutatsokra,
kimutatva, hogy a vals, komplex problmk nem oldhatk meg polinomilis id
alatt
Kerestk az olyan algoritmusokat, amelyek modelezni s utnozni tudnk a nagy
tllt: a Termszetet.
A kanonikus genetikus algoritmus
A problmt a htizsk problmn keresztl vizsgljuk, amelyik egy befektetsi portflirl
szl. Egy befektet rendelkezik c tkvel, amit be szeretne fektetni. Vlaszthat n
befektetsbl. Az sszes lehetsges befektets rtke nagyobb, mint a tke, ami a
rendelkezsre ll (c). Az i-edik befektets sszege fdi s a vrhat nyeresg bi, si-
kivlasztsi vektor: si=1 ha kivlasztjuk az i-edik varins, ha nem vlasztjuk ki, akkor si=0
A matematikai modell:
n
i
ii sb1
*max
n
i
ii csfd1
*
1 ajnlat 2 ajnlat 3 ajnlat 4 ajnlat 5 ajnlat 6 ajnlat
Befektets 2000 2200 2500 3000 3200 3200
Jvedelem 300 400 500 600 700 705
Kodifikls. Egyszerre tbb kromoszmval (egyeddel) dolgozunk, amelyek populcit
alkotnak. Az els generci ltalban pszeud-aleatorikus
Az albbi kodifikci azt jelenti, hogy a befektet elfogadta a {O1, O2, O5, O6} ajnlatokat,
vagyis befektetett 10.800 egysget s a vrhat jvedelme 2.105egysg. Ha a befektetnek
csak 10.000 egysg befektetni valja van, akkor ez a kromoszma egy nem rvnyes
egyedet jelkpez.
O1 O2 O3 O4 O5 O6
1 1 0 0 1 1
Inicializls s szelekci
Az algoritmus kzponti eleme a POPULCI. Egy populci a kromoszmk egy halmaza,
amelyek a megoldsok terben egy lehetsges megoldst kdolnak. Az algoritmus itercii
sorn jabb egyedek keletkeznek, amelyek egy jabb populcit alkotnak: a kvetkez
genercit.
Az inicializls folyamn egy pszeudo-aleatorikus, kezdeti (P0) populcit lltunk el.
Szelekci: a populci egyedeibl (kromoszmkbl) az algoritmus kivlaszt egyeseket, a
jsgi rtkkkel arnyos valsznsggel, akik szlv vlnak, s amelyek gnjeit rkli a
kvetkez generci.
A clfggvny s a fitnessz fggvny (fitness function): A fitnessz fggvny a clfggvnybl
alakul ki. Azt mutatja meg, hogy mennyire j a kromoszma ltal kodifiklt megolds.
A kanonikus genetikus algoritmus esetben a fitnessz fggvny megegyezik a
clfggvnnyel, vagyis:
n
i
iii sbf1
*
Sklznunk kell az eredmnyeket, hogy megllapthassunk egy relatv jsgot is.
Binris sztringek egypontos keresztezse
Egy kromoszma lehetsges UML megvalstsa.
Szlk
Binris sztringek ktpontos keresztezse:
Binris sztringek mutcija
A genetikus algoritmus helye az optimalizlsban
Trtneti ttekints
-minden rendszer egy olyan populci kialaktsra pl, amely egy adott problma
megoldsi lehetsgeit tartalmazza
1965,73 Rechenberg evolcis stratgik
1966 Fogel, Owens s Walsh evolutv programozs
1975 Holland J. genetikus algoritmusok a kanonikus genetikus algoritmus
1992,94 Koza J.R. genetikus programozs
A genetikus algoritmusok biolgiai httere
Mirt hasznlhat?
Sok szmtsi feladat megoldsakor szksgnk van egy adaptcis lehetsgre, vagyis arra,
hogy az algoritmus robusztus legyen vltoz krnyezetben is
Robotikban, a robotirnytsban, meg kell oldani olyan feladatokat, amelyek vltoz
krnyezetben zajlanak, a program hasznlhat kell legyen ms felhasznl szmra is.
A tllsi versenyben, az ersebb egyedeknek (akik jobban megoldanak egy problmt,
tbb energiaforrshoz jutnak) nagyobb az eslyk, hogy szaporodjanak, a gyerekeik
rklni fogjk a kromoszma-llomnyuk egy rszt.
A genetikus algoritmus fogalmai s a biolgiai megfeleljeik
Biolgia Genetikus algoritmusok
Kromoszma Sztring
Gn jellemz
gnvltozat (alll) Jellemz rtke
Gn helye (locus) Sztring-pozci
Genotpus Struktra
Fenotpus Egy megolds
A szaporods
Az egyszer, vagy a genercis szaporods: lecserli a szl (rgi) populcit. Ennek
kiegsztse kppen, hasznlatos az elitizmus princpiuma, amelyben a populci legjobb
elemei tovbblnek a kvetkez generciban is.
Elmleti alapok
A smk egymssal versengenek, hogy megvalstsk a clfggvnyt (meta-egyedek
versengse)
Holland szerint az adaptv rendszereknek kt fontos tulajdonsguk van:
j terletek felfedezse (exploration)
A rgi adaptcik felhasznlsa (exploitation)
Ezen tulajdonsgok hasznlatnak egyenslya j eredmnyekhez vezet a megoldsok
terben. A mutci ki tudja mozdtani az algoritmust egy loklis optimumbl. A felfedezs a
mutcis opertor ltal valsul meg, a kiaknzs pedig a keresztezs opertor ltal.
Ms elmleti megkzeltsek
Building block hyphotesis (Goldberg)
Markov lncokkal
Mechanikai statisztika
trendez opertorok
Permutcikra kidolgozott
Az utazgynk problmt megold
Egy olyan genetikus anyag, amelyben minden gn ms-ms informcit hordoz- nincs 2
egyforma gn
A permutcis jelleg megmarad
Az inverzi genetikus mvelet
Partial Mixed Crossover (PMX trendez opertor
OX Order crossover opertor
CX Cycle crossover
6. Fejezet UML
Visszatekints trtnelmi szempontok
ADA, SIMULA, SMALLTALK- programozsi nyelvek
OOD (Object Oriented Design) Grady Booch 1991-1993
OOSA ( Object Oriented System Analysis) Shaer& Mellor1999
OMT (Object Modeling Technique) James Rumbaugh 1991
OOA ( Object Oriented Analysis) Coad & Ed Yourdon 1991
HOOD ( Hierarchical Object Oriented Design) ESA (European space Agency)
OOSE (Object Oriented Software Engineering) Ivar Jacobson 1992
RUMBAUGH, JACOBSON s BOOCH clkitzsei (Raffai Mria UML pp. 9):
1) Komplex, kldetskritikus, szoftverintenzv rendszerek fejlesztshez hatkony
megoldsok fejlesztse
2) Egyrtelm lpseket hatroznak meg az objektum-orientlt elv rendszermodellezsi
folyamat vgrehajtshoz a koncepcikialaktstl a vgrehajthat szoftvertermk
felgyeletig
3) Olyan modellez nyelv kifejlesztse, amely az emberi kommunikcihoz s a gpi
megvalstshoz egyarnt alkalmas
Modellvezrelt fejleszts (Model Driven Architecture)
A legkivlbb fejlesztk s programozk tapasztalatait s megoldsait integrlja
egysges egssz. Az alkalmazs-fejleszts sorn ismerni kell a tmogatand rendszert,
a folyamatokat, a lekpzsi eljrsokat s a tmogat technolgikat. Az alapvet cl
ennek a tudsnak a formalizlsa. (Allan Kennedy)
Az MDA-szabvny kimondja, hogy az zleti feladatok modellezst el kell vlasztani a
megvalsts rszleteitl, vagyis a fejlesztst a szakterlet modellnzeteinek
kialaktsval kell kezdeni, figyelmen kvl hagyva ebben a folyamatrszben az
implementci s mkdtets technolgiai krnyezett, erre, meg a megvalstsi
platformra alapozva kell megtervezni s megvalstani az alkalmazst
MDA (Model Driven Architecture) modellnzetek
1) A szakterleti rendszert kifejez, az informatikai krnyezetet figyelmen kvl hagy, a
vals rendszer elemeit s funkcionalitst ler domnmodell (CIM)
2) A megvalsts eszkzeitl s mdjtl fggetlen, a tmogatand szakterleti
rendszernek a fejlesztsi clja szerinti lnyeges elemeit tkrz platformfggetlen
modell (PIM)
3) A megoldsi technolgit figyelembevev, a technikai rszleteket ler, az
implementcit megvalst platformspecifikus modell (PSM)
Defincik
A szoftver mrnksg terletn, az egysgestett modellez nyelv (UML) egy
standardizlt specifikcis nyelv az objektum modellezsre. Az UML egy ltalnos cl
nyelv, amely egy grafikus jellsrendszert hasznl, hogy egy rendszernek az absztrakt
modellt fel lehessen pteni, amelyre gy hivatkozunk, hogy UML model.
Az UML-t az Objekt Management Group (OMG) hivatalosan meghatrozza az UML
metamodellen keresztl, amelyik egy Meta-Object Facility (MOF) metamodel.
Mire hasznlhat mg?
zleti folyamatok modellezsre
Rendszer-mrnki modellezsre
Szervezeti struktra brzolsra
A System Modeling Language (SyML)- rendszer egy domn specifikus modellezsi nyelv
a rendszer-mrnkisgre, amely UML 2.0 profilknt van meghatrozva
Az UML kataliztor a modellek ltal vezrelt technolgikra
Az UML modell transzformlhat ms reprezentcikra (Java)
Az UML kiterjeszthet
Strukturlis diagramok
1. Osztlydiagram
2. Komponensdiagram
3. sszetett struktra diagram
4. Teleptsi diagram
5. Objektumdiagram
6. Csomagdiagram
Viselkedsi-s klcsnhats diagramok
Viselkedsi diagramok:
1. Aktivitsi diagram
2. llapotgp diagram
3. Use Case (hasznlati eset) diagram
Klcsnhatsi diagramok:
1. Kommunikcis diagram
2. Szekvencia-diagram
3. Interaction overview diagram (UML 2)
4. UML Timing diagram (UML 2)
Hasznlatos fogalmak
Strukturknl: aktor, attribtum, osztly, komponens, interfsz, objektum, csomag
Viselkedsnl: aktivits, esemny, zenet, metdus, operci, llapot, use case
Kapcsolatoknl: aggregci, asszocici, kompozci, fggsg, ltalnosts (rklds)
Ms:
sztereotpia
sokszersg kardinalits az adatbzisoknl
szerep
Struktra fogalmai grafikusan
Viselkedsi fogalmak
Attribtumok
String Karakteres (rvid)
Char, Byte egy karakterbl ll
Text szveges (hossz) karakterlnc
Enum felsorols- (lista-) jelleg
Real vals szm
Double dupla pontossg vals rtk
Integer egsz rtk
Long hossz integer
Date dtum jelleg
Boolean logikai rtk
Currency rfolyam tpus
Attribtumok jellege
{changeable} az attribtum rtke korltozs nlkl ltrehozhat, trlhet,
vltoztathat
{addOnly} jelleget az 1-nl nagyobb multiplicits attribtumokhoz lehet hozzrendelni.
Tbb rtkkel rendelkezhetnek, de ha egy rtket ltrehoztak, akkor azt nem lehet
trlni vagy mdostani
{frozen} jelleg attribtum az objektum ltrehozsa utn nem trlhet s nem
vltoztathat
Mveletek (metdusok
Mdost s lekrdez mveletek (set, get)
Jellemzk:
Mvelet neve
A mvelet paramterei s azok jellege:
in: bemeneti paramter
out: kimenet a hv objektum szmra
inout: berkezett paramter, amelyet megvltoztatva az objektum visszakld,
vagy tovbbt ms objektumnak
A paramter tpusa
= alaprtelmezett rtk
Mveletspecifikci finomtsa
invariant olyan szably, vagy felttel meghatrozsa, amelyeknek mindg teljeslnie kell
precondition olyan felttel, amelynek a mvelet vgrehajtsa eltt teljeslnie kell
postcondition a mvelet vgrahajtsa utni feltteleket szablyozza s meghatrozza a
visszatrsi rtkre (return value) vonatkoz szablyokat
7. Fejezet. Az objektumorientlt tervezs alapelemei
Az objektum fogalma
A programozi gyakorlat a kvetkez cl megfogalmazshoz vezetett: egy objektumra
vonatkoz minden informci a program egyetlen helyn jelenjen meg.
Adatszerkezet s algoritmus egy helyen
Ez az informci a program tbbi rszben, st ms programokban is knnyen
jrahasznlhat legyen
Szisztematikus programfejleszts sorn tudatosult, hogy az informci-feldolgozsi
problma megkzelthet az adatok s az algoritmusok oldalrl
Az objektumorientlt paradigma
Paradigmnak nevezzk egy vilgszemllet, lts s gondolkodsmdot, amelyet az
adott fogalomkrben hasznlt elmletek, modellek s mdszerek sszessge jellemez.
Az objektumorientltsg egy paradigma, amelynek alapjn tbb rendszerfejlesztsi
mdszertant is kidolgoztak. Ezek a mdszertanok a modellezstl az implementciig
st a karbantartsig tfogjk a teljes fejlesztsi folyamatot. Az a rendszer, amelynek
fejlesztsre, lersra a mdszertanok hasznlhatk, rtelmezhet a szoftver
rendszernl lnyegesen tgabban is, jelenthet egy integrlt hardver-szoftver egyttest
vagy egy szervezetet is.
Az objektumorientlt mdszertan
Az objektumorientlt mdszertan alkalmazsval a kifejlesztend rendszert
egyttmkd objektumokkal modellezzk, a tervezs s az implementci sorn pedig
ezen objektumokat "szimull" programegysgeket alaktunk ki.
A minket krlvev vilg olyan objektumokkal rhat le, mint hzak, vrosok, emberek,
jrmvek stb. Ugyanezen vilg jellemezhet olyan objektumokkal is mint napkzi, iskola,
egyetem, dik, tanr. A modell objektumait az hatrozza meg, hogy a rendszer milyen
vonatkozsait akarjuk megjelenteni, az objektum modell a valsg mely szelett
reprezentlja. Az objektumok valamilyen absztrakcit tkrznek.
Az objektum
Az objektum egy vals vagy absztrakt, azonosthat, egyedi entits, amely a vizsglt
krnyezet egy jl definilt szereplje.
Egy objektum ms objektumokra hatst gyakorol s ms objektumok hatssal vannak
r.
Objektumknt definilhat brmi, aminek pontos hatrai meghzhatk.
Az objektum jellemezhet a rajta rtelmezett mveletekkel s a rajta elvgzett
mveletek hatst rgzt llapottal.
Definci
Az objektum egy rendszer egyedileg azonosthat szereplje, amelyet a klvilg fel
mutatott viselkedsvel, bels struktrjval s llapotval jellemezhetnk.
Egysgbe zrs (encapsulation) azt jelenti, hogy egy objektum egysgbe zrja az
llapott tartalmaz adatstruktrt, a rajtuk vgrehajtott mveleteket. Az objektum
tervezjnek a feladata a struktra, viselkeds s llapotok programozsa. A klvilg
(kls program) az objektum szolgltatsait veszi ignybe.
Az objektum felelssge
Minden objektum felels nmagrt
Az objektumhoz felelssg rendelhet, amelynek vllalsa s teljestse az objektum
feladata
Az objektum viselkedse
Az ltala vgrehajtott tevkenysgsorozatban nyilvnul meg.
o aktv
o passzv
Aktv: folyamatosan mkdik, valamilyen tevkenysget hajt vgre, ms objektumokra
hatst gyakorol. (fprogram, vezrl-objektum)
Passzv: addg nem tesz semmit, amg valamilyen kls hats nem ri (esemny, zenet)
(pl. daemon)
zenetek
Az objektumok egymsra hatsa az zeneteken keresztl valsul meg.
Az zenetek tovbbtshoz infrastruktra szksgeltetik
Az zenet szerepe:
o vezrlsi szerep
o adatcsere az objektumok kztt
az zenet komponensei:
o nv
paramter
zenetek kldse
Egy adott nev zenet tbbszr is elkldhet ms-ms vagy ugyanazon paramterekkel
Egy objektum tbb, klnbz nev zenet fogadsra kpes. Ezek sorrendje is fontos
lehet az objektum szmra
Azonos nev, klnbz paramterekkel kapott zenet az objektum azonos reakciit
idzik el, amelyik folytatsa fgghet a paramter rtelmezstl
A paramter ms objektum is lehet.
zenetek-komolyabban
Aki kapja tudja-e (kell-e tudnia), hogy az zenetet kitl kapta, kpes-e szelektven
fogadni
Konkurens objektumok problmi:
o Indulhat-e a rendszer eleve tbb aktv objektummal?
o Ltezhetnek-e aszinkron mveletek
o Objektumon belli konkurencia lehetsges-e? (az objektum mg nem dolgozta
fel az elz zenetet, amikor jabb zenetet kap, amelyik esetleg teljesen ms
viselkedsre sztnzik)
Esemnyek (event)
Egyes mdszertanok az zenet helyett az esemny fogalmt vezetik be az objektumok
kztti klcsnhats modellezsnl.
Az esemny egy azonosthat, pillanatszer trtns
Az esemnyekhez statikus (nv) s dinamikus (paramter) informcik tartozhatnak
Az esemnyeket az objektumok hozzk ltre (objektum lehet a felhasznl is, mint
aktor)
Felmerl krdsek:
o van-e cmzettje az esemnynek
o eldntheti-e az objektum, hogy melyik esemnyre reagljon
o egy esemnyre egyetlen objektum reagl-e vagy tbb
zenet s esemny
Az egyttes hasznlat sokszor egyrtelm
Ha egy objektum szlel egy esemnyt, majd errl zenetkldssel rtest egy msik
objektumot, a szmra az zenet is lehet egy esemny
Pl.: Ha van egy szenzorunk, amelyik egy gpnl a maximlis lehetsges elmozdulst jelzi,
az ltala kldtt zenet egy olyan esemny a vezrlegysg szmra, amelyik gp
lellsra vagy a mozgsirny megvltoztatsra knyszerti
Az res zenet is tartalmazhat kdolt informcit
Metdusok (opercik)
zenet hatsra az objektumok vgrehajtjk a hozzjuk rendelt felelssgek ltal
meghatrozott cselekedeteket.
Ezen cselekedeteket metdusoknak vagy operciknak nevezzk
Az objektum viselkedsnek meghatrozsa a metdusokba van belekdolva
zenet: MIT, metdus: HOGYAN
Ugyanaz az objektum ugyanarra az zenetre (ugyanolyan paramter rtkekkel)
mskpp is reaglhat, a korbbi hatsoktl fggen
zenetek, esemnyek s metdusok
Ezek alkotjk az osztly felelssgt s az osztly jellsben a 3-ik rszt foglaljk el
Lehetnek:
o res zenet
o Paramterezett zenet
o res zenet visszatrsi rtkkel
o Paramterezett zenet visszatrsi rtkkel
llapotok
Az objektum azonos tartalm zenetre klnbzkppen reaglhat
Pl. A felvon attl fggen indul el felfele vagy lefele, hogy a hv szemly milyen relatv
pozciban van hozz kpest
Az objektumban vgbemen vltozsok nyomt az objektum llapota jellemzi.
Az objektum llapott az attribtumok troljk. Az attribtumok rtkei vltozhatnak az
objektum letciklusa sorn
Objektumok ltehozsa, inicializlsa
Az objektumnak letciklusa van. Megszletik, l s meghal. Szletskor meg kell adni a kezdeti
adatait. Az inicializlst vgz metdust konstruktornak nevezzk. Egy osztlynak lehet tbb
konstruktora is. Javaban az objektumot a new(j) opertoral hozzuk ltre. Az opertor utn
meg kell adni az osztly nevt. Mivel a konstruktor neve egyben az osztly neve is, az objektum
automatikusan inicializldik.
Egy osztlynak tbb konstruktora
Egy ablak a kpernyn megadhat tbbfle kppen.
1. A bal fels sarok helyzete a kpernyn +szlessg+magassg
2. A bal fels sarok helyzete + jobb als sarok helyzete
Pont(x:int, y:int){}
Ablak(balFelsoPont:Pont, szelesseg:int, magassag:int){}
Ablak(balFelsoPont:Pont, jobbAlsoPont:Pont){}
Osztlyok s pldnyok (objektumok)
Megegyez viselkeds s struktrj objektumok egy kzs minta alapjn kszlnek,
amit osztlynak neveznk.
Az osztly a megegyez viselkeds s struktrj objektumok gyra, vagy forrsa
Az objektum az osztly egy pdnya (instance)
Az objektum egy bizonyos pillanatban ltez egyed. Minden objektum klnbzik a
msik, ugyanazon osztlybl szrmaz objektumtl- equals ki kivel egyenl
Az objektum ismeri az osztlyt, amelyikbl szrmazik
Az informci-elrejts elve
Az objektumok ms objektumok ltal csak a metdusokon keresztl rhetk el.
Lehetnek bels metdusok, amelyek a mkds egy rszt is elrejtik (fggvnyhvs)
A publikus metdusokat nevezhetjk az osztly szolgltatsainak is, azokon keresztl
valsul meg az objektum felelssge
A Demeter trvny (az objektum s krnyezete kztti csatols gyengtsnek elve)
A csatols a leggyengbb, ha a metduson bell csak az albbi elemekre trtnik
hivatkozs:
o A metdus paramtereire s eredmnyre
o A metdust tartalmaz osztly attribtumaira
o A program globlis vltozira
o A metdusban definilt loklis vltozkra
8. Fejezet.
9. Fejezet.
10. Fejezet. Dntscentrikus rendszertervezs
A fejezet nagy rszben ezen a 2 cikken alapszik
Mark Norton, "Decisioning: A New Approach to Systems Development (Part 1),"
Business Rules Journal, Vol. 8, No.1 (Jan. 2007),
URL: http://www.BRCommuity.com/a2007/b326a.htm
Mark Norton, "Decisioning: A New Approach to Systems Development (Part 2),"
Business Rules Journal, Vol. 8, No.1 (Jan. 2007),
URL:http://www.BRCommunity.com/a2007/n326b.html
Bevezet
Decisioning - egy j fogalom, ami az zleti sztrakban tallhat
rtelme: automatikus dntshozsi-folyamat.
Ez az a kulcssz, ami megvilgostja, hogy a dntshozs alapvet fontossggal br az zleti
folyamatokban. A dntshozsi tuds (know-how) az, ami megklnbzteti egyik cget (zletet)
a msiktl. A rendszer-fejlesztsi letciklusban jtszott kritikus szerepe kerl bemutatsra, ahol
a dntshozsi-folyamat lesz a vezrl. A cikkek szerzje sok dnts-centrikus rendszer-ptsi
tapasztalata alapjn fejlesztette ki ezen eredmnyeket.
Motivci
Dntsi automatizmus: motivcija sok rendszer ptsnek (zr-rints feldolgozs).
Dntshozsi know-how : sok energit fektetnek be a feltrkpezsre s megvalstsra.
Dntshozsi know-how lepl (belepl) egy amorf programkdba, vagyis elveszti identitst
s integritst.
Dnts-centrikus rendszer-felpts lnyege tmogatni a:
termk kivlasztst
razst
jvhagyst
hatridk s felttelek meghatrozst
Clkitzsek:
1. A rendszer-pts legfontosabb sszetevje a dntshozatal legyen
2. A felptett rendszer egy termk-kontner legyen, amelyik bizonyos specifikcit s
import-export interfszt betartva a kontnerbe illeszthet termkeket eredmnyezzen
3. A termkek konfigurcija megvalsthat legyen
4. Ne hagyjuk a programozra, hogy az zleti szablyokat k hatrozzk meg
Eddigi bevlt modellek:
1. Adat-felfedezs s normalizci
2. Folyamat-felfedezs s dekompozci
Az j modell (dntsi perspektva) elsbbsget lvez a folyamattal szemben, adat vagy
dntshozatali aktivits nlkl NINCS processz (folyamat) kvetelmny
Dnts: A relevns tnyekre alkalmazott strukturlt zleti tuds eredmnye, amely sorn
meghatrozhat egy optimlis lefolysa az zleti cselekmnyeknek.
A dnts:
rtelmet ad az adatoknak
irnyt ad a folyamatoknak
A dntsek hozzsegtenek ms dntsek felfedezshez is.
Egy dnts fgghet elz dntsektl s befolysolhatja a kvetkez dntseket. gy pthet
fel a dntsi modell
Mivel a dntsek kpezik az zleti tuds magjt, ezek kpezik elssorban az elsrend tudst
a terleti szakembereknek, mintsem az adat vagy a folyamat ismerete.
Decisioning: szisztematikus felfedezse, defincija s menedzsmentje a dntseknek a
dntsek automatizmusa cljbl.
Kvetelmny-analzis szempontok:
Egy zleti rtk akkor keletkezik, amikor egy felismerhet zleti objektum llapota megvltozik
Ez fkuszl a magra: mivel kereskednk, mit menedzselnk, mit hasznostunk, mit hasznlunk,
ptnk vagy adunk el, hogy elrjk az zleti cljainkat.
zleti objektumok vltozsa: dnts eredmnye amely a folyamatban aktivizldik s NEM a
folyamat (processz) eredmnye
Tradcionlis megkzeltsek. Az alkalmazsba kdoljk a dntseket, ugyanazt a programozsi
nyelvet hasznlva. A technikai aspektusait az alkalmazsnak, sszekeverik ms aspektusokkal,
mint a perszisztencia, felhasznli fellet s integrlsi logika.
A hagyomnyos modellek problmi a dntsi modell szempontjbl:
1. Ellenrizhetsg: nem-technikai szemlynek nem biztost rthetsget
2. Karbantarthatsg: a belekdols megnveli a komplexitst, nehezen vltoztathat meg
egy aspektus anlkl, hogy egy msikat is befolysolna
3. Kockzat, r s id: ezek exponencilisan nnek a rendszer komplexitsnak
nvekedsvel
4. Redundancia s tfeds: a rendszer fejldse s adaptcija az j kvetelmnyekhez
dupliklt dntsi szablyokat eredmnyez. Ez ugyanannak a dntsnek tbb
implementcijhoz vezethet.
5. Rossz kontextusba val elhelyezs: a kvetelmnyek szempontjbl ered
6. Dokumentci: reverse engineeringet nehz hasznlni
Objektum-orientlt tervezs: menedzseli az alkalmazs komplexitst az adatok
absztraktizlsval s begyazsval s a begyazott fggvnyekkel, amelyek az adatokon
mveleteket vgeznek. Ugyanakkor egy tipikus dnts BB osztly rszvtelt gnyli, ami azt
jelenti, hogy a dnts rszeiben lesz jelen (tbb osztlyhoz fog tartozni).
Ugyanaz a problma merl fel, amikor egy ABR-ben prblunk zleti szablyokat nyilvntartani.
A dntsi szablyok itt is fragmentltak lesznek.
Ez a leptse (beptse) a dntsi-ptsi folyamatnak (decisioning) a programkdba a
tradcionlisan tervezett rendszerekben annak az eredmnye, hogy a dntsi komponensek
termszetes modellje nincs beptve a rendszerbe.
A problma eredete a rendszer-fejlesztsi letcikulusban van. (System Development Life Cycle)
xxx. bra. A hagyomnyos modell
Az eredeti kvetelmnyspecifikci tbbnyire (magyar) elbeszls formjban rgztdik,
tbb forrsbl. Az elbeszl forma ktrtelmsget, szemlyes kifejezsmdot s
rtelmezst hoz be s nem ritkn egyenesen logikai konfliktusokat. A dntsek identitsa
ritkn rzdik meg.
Az elbeszl formt ezek utn talaktjk strukturlt tervezsi dokumentumokk
(adatmodell, folyamat-modell, Use Case stb.) s kibvtik, hogy tartalmazza a nem
funkcionlis specifikcit. A dntsi defincik rendszerint sztszrdnak ezen
dokumentumokon bell mint ms fogalmak jellemzi.
A tervezsi dokumentumokat talaktjk rszletes tervekk s program-specifikcikk, mg
jobban sztszrva a dntsi specifikcit a tehnolgiai rtegekben (biztonsgi,
kommunikcis, platform s disztribci)
Az als szint specifikcit talaktjk programkdba, s kibvtik a kivtel-kezelssel s a
folyamat-irnytssal
xxx. bra. A dntscentrikus modell
Dnts-analzis:
Az elsdleges zleti objektum (business object), definci szerint tapinthat s klnll;
egyrtelmen identifiklhat. Ugyancsak definci szerint az zleti rtk forrsa, az zlet egy
egyrtelm azonostt biztost szmra- ez az els adat attribtuma.
Milyen attribtumok a lnyegesek? Azok, amelyekre szksgnk van a dntshez.
Decisioning! Ahogyan dntnk, az hatrozza meg a klnbsgeket az zletben- ahogyan
dntnk, hogy fogadjuk el az gyfeleinket, hagyjuk jv az eladst, hatrozzuk meg az eladsi
rat, egyeztetjk a hatridket s feltteleket
Dnts-analzis egyszer s intuitv, mivel az zleti folyamat elsdleges tevkenysge- ez az,
amit az zlet a legjobban tud.
Dnts-felderts (feltrs)
A dnts egyedlll, elemi rtk; nem lehet fldntst hozni, mg annyira sem, mint ahogy
nincs fl-attribtumunk.
Keressk az explicit, egy-rtk kimeneteket, mindeniket rgztnk, mint egy j attribtumot.
Kezdjk az elemzst a mi zleti objektumunkkal (nevezzk biztostsi szerzdsnek), s egy
llapotvltozssal, amelyik az objektum llapott megvltoztatja (mondjuk, szerzdst
jovhagy). Szksgnk van a trgykri szakrtre az zletben. A trgykzi szakrt az, aki
megtudja vlaszolni azt a krdst, hogy: Milyen dntseket hoz ahhoz, hogy... jvhagyja ezt a
biztostsi szerzdst?
xxx. bra.
A srgs krk a legfontosabbak a ciklusban.
Megbzs s elfogads.
A biztostsi szerzdsi objektum: elfogadom vagy sem a kockzatot?
Hogy meghatrozzuk ezt a dntst, meghatrozhatunk tbb elzetes dntst, amelyet elbb
kell figyelembe venni. Pldul meg kell felelni a kvetkez krdsekre:
Mi a jellemz kockzata az objektumnak?
Mi az gyfl-kockzat?
Mi a geogrfiai kockzat?
Ezen dntsek sorozata ms dntseket eredmnyezhet, ebbl kifolylag felpthetnk egy
dntsi ft- ez a dntsi modellje a jvhagysnak.
Milyen ron? (Pricing or Costing)
Milyen dntst kell hozni, hogy meghatrozzuk az rt ... ennek a kockzatnak?
Ugyancsak dntsi ft eredmnyez ezen dntsnek a meghozatala is. (csomag stb.)
Megismtelhetjk az albbi folyamatot minden el- s ut-dntsre:
Elfeldolgozsi ellenrzs: Van-e elg informcim ahhoz, hogy elkezdjem a
dntshozst?
Kontextus alap rvnyests: rvnyes-e a szolgltatott adat?
Gyarapts: Milyen tovbbi adatot tudok szrmaztatni, hogy tmogassam az
elsdleges dntshozatalt?
Termk- vagy folyamat-vlaszts: szksgem van-e meghatrozni egy dntsi
utat a tbbi lehetsges tbl az elsdleges dntshozatalhoz?
Az elsdleges dntshozatal utn:
Munkafolyamat. Miutn meghoztam az elsdleges dntst, mit kell tennem
ezutn?
Ut-feldolgozs. Hiba nlkl fejeztem be s hinytalanul? A dntseim az
elfogadhat hatrok kztt vannak?
Normalizci
Adat normalizci egy kzel-precz mdszer elemi adatok kztti kapcsolat modellezsben.
Azrt kzel-precz mivel a normalizci egy precz mdszer, ami fgg egy pr nem-precz
bemenettl:
rvnyessgi kr: meghatrozza mi relevns nem normalizlunk olyat, ami nem
lnyeges az alkalmazs szempontjbl
Kontextus: meghatrozza hogyan ltunk (s hogyan definilunk) minden adatot
Minden adat defincija: ez nagyon szubjektv, mgis irnytja a normalizcis
folyamatot
Adat-normalizci arra pl, hogy szubjektv kijelentseket tesznk az adatok rtelmre
s fontossgra, utna hasznljuk a normlformkat, hogy megszervezzk ezeket egy
koherens modellbe.
A dntsek fellrl nzve a normalizci hasonl. Minden dnts egyetlen adatot
eredmnyez s elemi ugyangy, mint ahogy az adat elemi.
Minden dntshez tartoznak kapcsolatok, amelyek ms dntsekhez kapcsoljk a
modellben. A dntsek kapcsoldnak mind a szekvencikhoz mind a kontextushoz.
Ebbl a szemszgbl a kontextus ugyanazt a szerepet jtssza, mint az elsdleges kulcs
az adat-normalizciban.
A relcik kztti kapcsolat tartalmazhatja a kvetkezket:
Az sszes dntsnek adat-kontextusa van, ami az normalizlt bemenetnek
elhelyezsbl szrmazik.
Minden dntsi definci megelzhet vagy kvethet egyetlen egy ms dntsi
defincit.
Minden dnts hozztartozik azon dntsi csoporthoz, amelyik ugyanazt a
kontextust hasznlja.
Prhuzamot vonva a 4-ik Normlformval, eltr dntsek, amelyek ugyanazt a
kontextust osztjk meg kln csoportokba sorolandk.
A dntseknek egy csoportjnak is sorrendje van s csoportosthat ms
dntsekkel vagy csoportokkal a megosztott kontextus szerint.
Az elzekben letrgyaltuk a Mit s Hogyan-t: az zleti objektumot, amelynek llapotai
vannak s a dntsi folyamatot, amelyik az llapovltozsokrt felels.
Mikor: Az esemny termszete, amely serkenti az llapotvltozst-Mskpp fogom
fogadni a pcienset vszhelyzetben s mskpp norml helyzetben?
Hol: Van valamilyen trvnykezsi vagy helyi alapismeret, ami az llapotvltoztatst
befolysolya-Elfogadom ezt az zletet, ha egy hbors krnyezetben zajlik?
Kicsoda: Ki kveti el az llapotvltozst-Egy kzvett ltal vgzett gylet ms elbrls
al esik, mint egy bels tranzakci?
Mirt: Mirt fontos ez az llapotvltozs az zletbenfkppen hogyan teremt rtket?
xxx. bra
Decisioning-vezette folyamat-tervezs
A decisioning folyamatokat is vezrel. Hogy a dnts vgrehajtsra kerljn, szolgltatni kell
hozz az elzetes adatokat egy folyamat ltal. Ezen adatok s a hozztartoz folyamatok nem
hatrozhatk meg mindaddig, amg a dntsi kvetelmnyek nem tudottak. Miutn a
dntsnek valamilyen eredmnye van egy folyamat meg kell valstson valamilyen vlaszt.
Az eszkzk: Milyenek legyenek?
Pontosan krlrt. Minden tny, minden opertor tiszta s egyrtelm kell legyen gy,
hogy a dntsi modell garantltan flrerthetetlen legyen
Strukturlt. Az elemek felptst egy jelentstani (szemantikus) modellbe menedzselni
kell, hogy biztosak lehessnk abban, hogy csak egyetlen rtelmezsi (s egyben
vgrehajtsi) t lehetsges minden specifikus problma-pldnyra
Knnyen hasznlhat. Gyorsabb kell legyen, mint az rsa a vele ekvivalens
elbeszlsnek hasznljon grafikai elemeket (modellezst) ha lehetsges
Hozzfrhet zleti kimeneteket kell adjon az ellenrzs vgett. A dntsi analista
kzelebb kell tudja hozni a hurkot a domn szakrtvel, amely hitelesti a dntsi
felptmnyt mieltt a kltsges, ebbl kifolylagos munka elvgzsre kerlne
Tesztelhet. A dntsi modell ki kell tudja mutatni a helyes eredmnyeket mieltt a
kltsges tovbbi munkk elvgzdnnek. Csak ezutn a csompont utn tudhatjuk azt,
hogy a dntsi kvetelmnyek tudottak s teljesek, eltvoltva a kockzat s kltsg
nagy rszt az elkvetkez rendszer-tervezsi let-ciklus megkzeltsben
Nem szabad olyan lenyomata legyen ami kdozsi megvalstst von maga utn. Ne
legyen semmilyen programnyelv fgg.
Az emberek.
Ki fogja elvgezni a dntsi analzist? Mindenki, aki rendelkezik:
Prhzamos gondolkozssal s analitikus kszsggel hogy megrtse a dntsi
felptmnyt sz szerint, nem strukturlt dntsi tudst a trgkr szakrtjtl
Strukturlt, fkuszlt tudssal hogy talaktsa a sz szerinti, nem strukturlt dntsi
tudst a trgykri szakrttl normalizlt s strukturlt dntss s adat-modell
Egy pr jellemz, amelyik segtsgre van egy dntsi terveznek:
Trgykri- s ltalnos zleti tuds. Minl tbb, annl jobb.
Normalizcis gyakorlat. Nagyon lnyeges megrteni a normalizcit s azt hogyan
lehet alkalmazni az adat- s a dntsi modellezsre
Kpessg, hogy ltalnos fogalmakrl a legkisebb rszletekre tlljon
Kitarts a rszletekben. Le kell tesztelnie sajt dntsi modelljt rszletesen ez segti
megrteni s elkerlni az tllsi kltsget. A dntsi modellez tesztel, mivel ez segt
neki abban, hogy megrtse a problmt s a megoldsokat is.
Kommunikcis kszsg. A dntsi elemz a kulcs-csatlakoz a trgykri szakrt s a
rendszer kztt. Elssorban zleti kpvisel felltztetve analitikusi ruhba.
Logika. Logikusnak kell lennie, de jobb, ha NEM tudja hogyan trtnik a kdols a
tradicionlis fejlesztsi nyelven! Csak logikusan gondolkozzk, s ne legyen felruhzva
azon tulajdonsgokkal, amelyek ezekkel a program-nyelvekkel egytt jr.
Decisioning s termk-mrnksg
A decisioningnek direkt s stratgiai fontossga van az zletben. A decisioning az zlet magjt
kpez objektumokra sszpontost (mivel kereskednk, menedzselnk, milyen tkt
mozgatunk, mit hasznlunk, ptnk vagy adunk el azrt, hogy elrjk az zleti cljainkat). Ezen
objektumoknak egy kznsges kifejezst adhatunk: termkek. A decisioning nem csak
tmogatja az zleti termkeket; jobban, mint ms fogalmak, meghatrozza a termkek
anatmijt.
Decisioning a nem-fogyaszti termkeknek az elsdleges megklnbztetje.
Egy modell a paramterezhet termkekre
"Product Configurators: New Tech for Insurance Marketplace" [Gartner, 29 November 2001,
Kimberly Harris]. (Termk-konfigurlk)
Lteznek, de kevs sszpontost az zleti szablyok (business rules) integrcijra, egyik sem
teszi a decisioning paradigmt a termk-konfigurl kzponti tervezsi-modellezsi
irnytjv.
Hogy kiemelhessk a konfigurlhat termket, az nem tartalmazhatja az gyfelet, rtkestsi
csatornt, knyvelst vagy ms, zlettl fgg fogalmat. Ezek az infrastruktra elemei.
sszestve: azt mondhatjuk, hogy a termk-mrnksg s tmogats az elsdleges gyjtpontja
minden zletnek s a tle fgg entitsok s rendszer-infrastruktrk ezen elvek szerinti
vezrlst ignyli.
xxx. bra. Az zleti infrastruktra, mint gazda-szervezete a konfigurlhat termknek
xxx. bra. A konfigurlhat termk begyazva az infrastruktrba
A konfigurlhat termk-megolds elemei.
A konfigurlhat termk-megolds teljesen bezrt termket kell szolgltasson, ami vonatkozik a
termk-specifikus informcira, decisioningra, folyamatra s dokumentcira egyarnt. Kritikus
tnyez az, hogy a kls infrastruktra ne fggjn a termk bels vltozitl. Az a tny hogy a
rendszer nem termk-fgg, lehetv teszi, hogy a termket megjelenthessk anlkl, hogy
valamilyen kdozsi kvetelmny rvnyesljn. A rendszer gy mkdik, mint egy termk-
motor. A kvetkez topikok azon elemei a termknek, amelyek a konfigurlhat termk
definciban a bels megvalsts rszei kell legyenek.
Termk-adatok
Azon adatokra, amelyek kizrlag a termk meghatrozsaknt lteznek gy fogunk hivatkozni,
hogy: faktorok. Termk-faktorok magukba foglaljk mindazon faktorokat, amelyek a termk-
kvetelmnyben szksgesek, kivve a klsleg menedzselt adatokat.
Pldul, klnbsget kell tennnk egy gyfl szletsi dtuma s egy sofr szletsi dtuma
kztt egy aut-biztostsi ktvnyben. Csak a msodik FAK OR. Az gyflrl szl adatok nem
termk-fggek s a kls krnyezet szolgltatja minden termk esetben. A sofr szletsi
dtuma elrhet kell legyen a konfigurlhat termk felptsi folyamatban, a konfigurlhat
termk defincijnak hatrain bell.
A faktorokat al-csoportokra oszthatjuk. Ezen alcsoportok sokszor a termelsi ciklus klnbz
fzisaiba vannak belefoglalva:
Informcik, melyek lerjk a termk instancit
Informcik, amelyek megmutatjk a vev vlasztsi lehetsgeit s preferenciit a
termk instancia szempontjbl
Adatok, amelyek kimenetei a termk meghatrozs dntsi folyamatainak
(szrmaztatott adatok)
A termk-faktorokat interaktv mdon kell bemutatni a felhasznlnak. Ez dinamikus s
ltalnos alkalmazsi program interfszt ignyel felhasznli fellet, amely bemutatja a
FAKTORokat, mintsem explicit mdon megfogalmazott attribtumokat.
llapotok
Kijelentettk, hogy rtk akkor keletkezik, amikor a termk-instancia llapota megvltozik
Minden llapotot vilgosan azonostani kell s klnllan menedzselni. A biztostsi pldban
az llapot-vltozsok magukba foglaljk:
rajnlat-ttelt
Javaslatttel a biztostsi krst talaktja javaslatttell
Ktvny a javaslatttelt talaktja ktvnny
Jvhagys jrafuttatjuk a ktvny decisioning-jt potencilis j bemen vltozkkal
Megjts jrafuttatjuk a ktvny vltozkat potencilisan j decisioninggel
rvnytelents
Lteznie kell egy pr elemnek a munkafolyamati menedzsmentben, amelyik megfelel egy, a
felhasznl ltal tett, llapot-vltozs krelemnek a megfelel dntsi modell szmra, amelyik
vgrehajtja s irnytja az llapot-vltozst.
Szerzdsi dokumentumok
Minden llapot-vltozs esetn egy vagy tbb dokumentum szksges a vltozs tanustsra.
A dokumentum felptse egy dnts-vezette aktivits, amelyik szelektv jrulka egy elre-
megformzott dokumentum talaktsa egy vagy tbb kimeneti dokumentumba. A
dokumentum kell tkrzze a dinamikusan definilt adatokat.
Knyvvitel
A knyvviteli s portflis effektusait az llapot-vltozsoknak levlaszthatjuk standardizlt
formban s elterjeszthetjk a portfli menedzsment- vagy knyvviteli rendszernek. Ez
sokszor egy hagyomnyos rendszer. A termk ezen aspektust knnyen megvalsthatjuk, ha
megvan a standard knyvelsi zleti osztly vltoznk.
Koncepci megvalstsa
Hogyan mkdik
Azonostottunk egy halom komponenst, amelyik szksges ahhoz, hogy megvalstsra
kerljn a konfigurlhat termk elve, lteznek megvalstsok is.
A termk-szerver, amelyik begyazza s vgrehajtja a konfigurcis termk defincit (a
termk-proxy)
A munkafolyamat minta, amely trstja az sszes kvetkez elemet egy specifikus
termk-llapotvltozsi krshez.
XML sma a kvetkezkre:
Az adatok, amiket szolgltatni kell a kiszolglnak a decisioning tmogatsra
A termk-specifikus adatokat, amelyek rgztsre kerlnek vagy ltrehozza a
konfigurcis termk folyamat
Kimenetek, amelyeket visszakap a kiszolgl a feltlts vgett.
rlapok, a megjelentsre s adatbeolvassra az gyfltl/hez.
Szerzds rlapok a termels vagy szerzdsi dokumentcihoz.
Decisioning a kvetkezkre:
Vezrelni az llapot-vltozsokat
Ellenrizni a munkafolyamatot
Konfigurlni az rlapot
sszelltani a szerzds-dokumentumot
Ezen komponenseket integrlhatjuk egy alkalmazsba, amelyre gy hivatkozunk, mint termk
szerver. Minden csatlakoz, amely a termk szerverben s a termk szerver irnyban valsul
meg, XML-ben definiland. A termk szerver ezutn elrhet egy egyszer lekrdezsi
felleten keresztl, s begyazhat egy lazn csatolt, nll alkalmazsba- egy termk fekete
dobozba.
rlapok
Az rlapok fontos elemei a konfigurlhat termknek. A konfigurlhat termk megolds
felttelezi, hogy az adatok sszeszedse automatikus, ha mr meg van hatrozva. A bngsz
ereje, mint felhasznli fellet lehetv teszi, hogy ltrehozzunk sok, lehetsges megjelentst
dinamikusan s gyorsan.
A kpkocka s a stluslapok hasznlata lehetv teszi a gazda krnyezetet, hogy fggetlenl
menedzselje az ltalnos kperny megjelentst pontosan gy, ahogyan a termk szerver
generlja a tartalmat. Egypr lehetsges megkzeltse lehetsges, hogy valra vltsuk a
dinamikus rlapokat, belertve az XSD-megkzeltst megvalst az Xformok ltal.
Egy mg deklaratvabb tervet lehet megvalstani, ha meta-adatokat rendelnk hozz a termk
faktorokhoz, amelyek vezrlik a felhasznli interfsz komponenst. Ebben a megkzeltsben,
dinamikus HTML lesz generlva a meta-adatokkal sszhangban, ahol a faktorok gy vannak
hordozva, mint ismeretlen tartalom. Ezen az ton, generikus prezentcis kd lesz megrva
egyszer, amelyik nem fgg semmifle explicit faktortl. A generlt rlap kpes lesz tlalni s
begyjteni az adatokat, mivel a meta-dokumentumok valk arra, hogy lerjk a faktorokat.
dokumentum-genertor
A dokumentum genertor egy elre megszerkesztett szveg komponensekbl ll knyvtrat
tartalmaz, amelyik sszell a dntsek vezrlsvel, hogy tkrzze alapjt kpez termk
szerzdst (ahogy XML formtumban definilva van). A vltozk behelyettestsvel s formz
mintval, megbzhat zletileg sklzott dokumentumokat lehet kszteni a termk szerveren
bell, emberi beavatkozs nlkl.
A termk konfigurtor
Egy j eszkz a termk konfigurtorszksges hogy menedzselni lehessen a meta-adat
defincikat s a termk teleptst. Az zleti szablyokat, amelyek vezetik a termk
defincikat be lehet gyazni ebbe az alkalmazsba, hasznlva esetleg mg nagyobb szint meta
adatokat.
Ez az alkalmazs nagyon szken sszpontost. A hasznlata nem ignyel semmifle
tradcionlis IT jrtassgot (platform tudst, programozst, adatbzisokat, stb.)
A rltsa a vilgra korltozva van azon adatok ltal, amelyek egyeznek s meg vannak
hatrozva a kiszolgl rendszer csatlakozin keresztl (pl. gyfl) s egy faktor
halmazzal, amelyeket a termkre nmagra hatrozott meg a termk tulajdonosa.
Ez a korltozott vilgra lts utna meg van erstve a termk tulajdonosa ltal
szolgltatott dntsi modellel.
Extreme Programming (XP) egy akaratlagos tudomnyos megkzeltse a szoftver
tervezsnek. Krlbell 3 ve terjedt el de sok, klnbz mret vllalatnl bevlt.
XP sikeres, mivel kiknyszerti az gyfl megelgedettsgt. A metodolgia arra van
kitallva, hogy az gyflnek akkor szolgltasson szoftvert, amikor neki szksge van arra.
Az XP felhatalmazza a fejlesztt, hogy a felhasznlnak a kvetelmnyei vltozsra
vlaszoljon, brmikor a termk letciklusa kzben.
Ez a metodolgia eltrbe helyezi a csapatmunkt. Menedzserek, vsrlk s fejlesztk
mind rszesei a szoftverfejlesztsi minsg megteremtsnek. XP implementl egy
egyszer, de hatkony utat a csoportos stlus fejlesztshez. (groupware)
Az XP 4 elemi mdon javtja fel a szoftver projektet; kommunikci, egyszersg,
visszacsatols (feedback) s btorsg. Az XP programozk kommuniklnak az
gyfelekkel s a trs programozkkal. k a tervezst egyszeren s tisztn vgezik.
Megkapjk a visszajelzst, mivel a szoftver tesztelse az els napon kezddik. k a
felhasznlnak a leghamarabbi llapotban szlltjk a rendszert s a vltoztatsok
kivitelezst a javaslattal egyidben vgzik. Ezzel az alapokkal, az XP programozk
vlaszolni tudnak a vltoz kvetelmnyeknek s technolginak.
Az XP klnbz. Nem olyan, mint egy puzzle, aminek megvan minden darabja s
kirakhat. Kis darabokbl ll ssze. nmagban a daraboknak nincsen sajt rtelmk, de
amikor sszerakjuk egy teljes kp ll ssze. Ez a jelents klnbsg, amely
megklnbzteti a tradicionlis szoftver fejlesztsi mdszerektl.
Tervezs
Felhasznli trtnetek rdnak
A vgleges vltozat kibocstsi terve adja meg a hatridket.
Sok kis kibocstst csinlnak.
A program sebessge mrve van
A projektet felosztjk itercikra
Itercis tervezs elzi meg minden itercit
Emberek jrjk krbe
Egy ll-gyls kezddik minden nap
Leszgezzk a folyamatot, amikor megll
Szerkeszts
Egyszersg
Vlasztunk rendszer-metafrt
CRC krtykat hasznlunk tervezsi szakaszonknt (class, responsibilities, collaborators)
Tske megoldsokat csinlnak a kockzat cskkentse rdekben
Semmilyen funkcionalits nincs hozzadva tl korn
Refraktls, akrhnyszor, brmikor
Kdols
Az gyfl mindg elrhet
A kdot megegyezses standard formban rjk
Kdoljuk az egysges tesztet elszr
Minden termelt kd prosan programlt
Csak egy pr integrlja a kdot egy idszakban
Sok alkalommal zajl integrls
Kollektv kd tulajdonjog
Az optimizlst a vgre hagyni
Nincs tlra
Tesztels
Minden kdnak unit tesztje kell legyen
Minden kd t kell menjen ezen az unit teszteken , mieltt kibocsjtannk
Amikor BUG ot fedeznek fel, tesztet kell kszteni hozz
Elfogadhatsgi tesztet kell sokszor futtatni s az eredmnyt publiklni
11. Fejezet
12. Fejezet
13. Fejezet. Laborgyakorlat 1
A laborgyakorlatok 4 alkalmazs kr csoportosulnak s az UML alapkveit prbljk letenni.
Ezen alkalmazsok: A bankautomata, a hsleves elksztse, a knyvtri alkalmazs s egy
szllt cg informcis rendszere.
Prbljuk megfogalmazni egy ATM (bankautomata) kvetelmnyrendszert.
Ez iteratv mdon fog megtrtnni. Egy tblzatba foglaljuk, amely gy trtnt egy alkalommal:
FNV IGE MELLKNV KVETELMNY
bankkrtya pnzfelvtel valutanem ramkiess lekezelse
Szmlaszm krtya elnyels pontossg
elnyelsi felttel: krtya hibs, letiltott krtya, hibs pinkd tbbszros letse
pnz nyelvvlaszts esetek: nem adja ki a pnzt,
ram egyenleg lekrdezs nincs elg pnz a krtyn
pin ATM feltoltese gepbe nincs penz
Pnzszmll nincs megfelel cmlet
krtyatulajdonos napi keret meghaladsa
bankok
beolvas,kijelz
vlasztsi lehetsgek,billentyzet
cimlettrol
alkalmazs, program
Kdol
Dekdol
kommunikcis csatorna atm-bank
3DES
Lnyeges ezen
x.x. bra. Sikeres pnzfelvtel aktivitsi diagramja
xx.bra. A krtya elnyelsek bemutatsa
14. Fejezet. Laborgyakorlat 2
A (hs)leves elksztse.
Nagyi kiadja a parancsot Apnak, hogy fzzn levest.
Apa, mivel nem tud fzni megkrdi nagyobbik lnyt, Julcsit, hogy van-e kedve fzni
Ha nincs kedve, megkrdezi Marcsi lnyt is
Ha neki sincs kedve fzni, kiadja Anynak a parancsot
Hrmuk kzl, aki fz, megvizsglja, van-e hozzval
Ha nincs, elmegy vsrolni, ha van, vagy mr bevsrolt,nekill fzni
Fzs utn elmosogat, s kzben szl Apnak, hogy ksz a leves
Apa szl Nagyinak, hogy ksz a leves
Elksztjk az aktivitsi diagramjt az alkalmazsnak.
Az aktivitsi diagram fbb alkotelemei:
Kezd aktivits. Minden diagramban CSAK van belle
Befejezsi aktivits. Lehet tbb is belle.
ltalnos aktivits.
Az A1 aktivis utn vlaszthoz rkezik az algoritmus (IF, vagy mskpp alternatv
struktra). Ha AZ f1 felttel teljesl, akkor az A2 esemny kvetkezik, ha viszont hamis,
akkor az A3 esemny kvetkezik.
Mint ltalban egy diagramot tbb esetre is elkszthetjk. Amint ltszik, vlaszt akkor
van, mikor a lnyokat kell megkrdezni, hogy van-e kedvk fzni, majd akkor, mikor
megvizsglja az a szemly, aki fz azt, hogy van-e elg hozzval.
A fzs utn j