Információs Rendszerek Tervezése Munkapéldány Illyés ...emte.siculorum.ro/~illyeslaszlo/IRT/2015/eloadas/IRTEloadas28.pdf · amelyeket használhatunk: a fejlesztés során az

  • 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