Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Szoftvertechnológia 2015/2016 – 1. félév. Dr. Johanyák Zs. Csaba - Szoftvertechnológia - 2015 Előadó Dr. Johanyák Zsolt Csaba

Hasonló előadás


Az előadások a következő témára: "Szoftvertechnológia 2015/2016 – 1. félév. Dr. Johanyák Zs. Csaba - Szoftvertechnológia - 2015 Előadó Dr. Johanyák Zsolt Csaba"— Előadás másolata:

1 Szoftvertechnológia 2015/2016 – 1. félév

2 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Előadó Dr. Johanyák Zsolt Csaba Tel.:

3 KÖVETELMÉNYRENDSZER Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

4 Követelményrendszer nappali tagozaton 1 Vizsgára bocsátás feltétele: 50 pont megszerzése Megajánlott vizsgajegy 65 ponttól Előadás ZH Előadás ZH (végleges kérdéslista a honlapon okt. 1-től) November 26., pótlási lehetőség: december 10. Megszerezhető pontszám: 40 Kötelező minimum: 21Projektfeladat Első konzultáció: megszerezhető pontszám: 5, kötelező minimum nincs Második konzultáció: megszerezhető pontszám: 5, kötelező minimum nincs Végső bemutatás: megszerezhető pontszám: 50, kötelező minimum: 25 4

5 Követelményrendszer nappali tagozaton 2 Egyéb Ha egy csoport minden tagja minden gyakorlaton jelen van, akkor a csoport minden tagja 5 pontot kap az utolsó gyakorlaton. 15 perces kiselőadás tartása. Témaválasztás és jelentkezés a CooSpace-ben Megszerezhető: 5 pont/kiselőadás (angol nyelvű előadás esetén maximálisan 10 pont szerezhető) Részvétel a tantárgy témaköréhez kapcsolódó Informatika.Neked előadásokon (az előadó hirdeti ki, hogy melyek az érintett előadások) Megszerezhető: 2 pont/előadás Az oktató által a félév során kiadott pontszerző feladat Dr. Johanyák Zs. Csaba - Szoftvertechnológia

6 Házi feladat nappali tagozaton azoknak, akik gyakorlattal vették fel a tárgyat Első gyakorlaton egy 4-5 fős csoport kialakítása (egy laborgyakorlaton legfeljebb három csoport lehet) A gyakorlatvezető által kiadott szoftverfejlesztési téma egyes részfeladatainak megoldása Értékelés a beadott projektdokumentáció és a bemutató előadás alapján a gyakorlatvezető pontozza a feladatmegoldást (FM) Minden csoporttag nyilatkozik arról, hogy a társak a as skálán milyen teljesítményt nyújtottak (T) Minden hallgató kap egy átlagértékelést a csapattársak értékelése alapján (ÁT) Végleges pontszám=FM*ÁT/100 Pl. ha FM=40 pont, T={80,90,90,100}→ÁT=90 VP=40*90/100=36 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

7 Követelményrendszer levelező tagozaton 1 Vizsgára bocsátás feltétele: 50 pont Megajánlott vizsgajegy Elmélet ZH Elmélet ZH (végleges kérdéslista a honlapon okt. 1-től) November , pótlási lehetőség: nov Megszerezhető pontszám: 40 Kötelező minimum: 21 Házi feladat Megszerezhető pontszám: 50 Kötelező minimum: 25 7

8 Követelményrendszer levelező tagozaton 2 Egyéb Egy kiválasztott témakör esszé jellegű kidolgozása (irodalomfeldolgozás, nem másolás!). Jelentkezés a kiírt témákra a CooSpace-ben Megszerezhető: 5 pont/témakör Részvétel a tantárgy témaköréhez kapcsolódó Informatika.Neked előadásokon (az előadó hirdeti ki, hogy melyek az érintett előadások) Megszerezhető: 2 pont/előadás Az egyéb kategóriában kötelezően megszerzendő pontszám: 4 pont Dr. Johanyák Zs. Csaba - Szoftvertechnológia

9 Használt szoftverek MS Project 2013 Software Ideas Modeler Microsoft Visual Studio 2013 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

10 Kötelező és ajánlott irodalom Kötelező Előadásdiák - minden előadást követően frissített változatot töltök fel [http://johanyak.hu]http://johanyak.hu Szabolcsi Judit: Szoftvertechnológia (a honlapomról letölthető) Ajánlott Ajánlott: Mileff Péter: Szoftverfejlesztés seg. [link]link Tarczali Tünde: UML diagramok a gyakorlatban [link]link Dr. Johanyák Zs. Csaba - Szoftvertechnológia

11 Ajánlott irodalom Langer Tamás: Projektmenedzsment a szoftverfejlesztésben Ian Sommerville: Szoftverrendszerek fejlesztése Szentirmai Róbert: Projektirányítás Microsoft Office Project 2007 segítségével Dr. Johanyák Zs. Csaba - Szoftvertechnológia

12 Témakörök Szoftverfejlesztési projektek menedzselése Szoftver életciklus modellek UML Alap tevékenységek Elvárások elemzése és specifikáció Tervezés Implementálás + tervezési minták Ellenőrzés Objektum orientált szoftverfejlesztési módszerek Agilis módszerek Dr. Johanyák Zs. Csaba - Szoftvertechnológia

13 SZOFTVERFEJLESZTÉSI PROJEKTEK MENEDZSELÉSE Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

14 Projekt definíciók Egy időben behatárolt erőfeszítés, egy egyedi termék, szolgáltatás vagy eredmény létrehozása céljából (PMBOK GUIDE magyarul: Projektmenedzsment útmutató, Akadémia Kiadó 2009) Egyedi folyamatrendszer, amely kezdési és befejezési dátumokkal megjelölt, specifikus követelményeknek – beleértve az idő-, költség- és erőforrás korlátokat – megfelelő célkitűzés elérése érdekében vállalt, koordinált és kontrollált tevékenységek csoportja (ISO 8402) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

15 A menedzselés fontossága A menedzselés szükségessége igen fontos eltérés a professzionális szoftverfejlesztés és az amatőr programozás között A jó menedzsment nem garantálja a projekt sikerét A rossz menedzsment biztos kudarcot eredményez Idő-költség-minőség Dr. Johanyák Zs. Csaba - Szoftvertechnológia Idő Erőforrás Minőség

16 A szoftvermenedzselés sajátosságai A szoftver nem kézzelfogható termék Gyakori technológiai váltások A nagy projektek gyakran eltérnek a korábbi projektektől Dr. Johanyák Zs. Csaba - Szoftvertechnológia

17 A szoftverprojekt vezetőjének feladatai Indítványok készítése, célok meghatározása és tervek készítése Csapattagok kiválogatása A projekt költségeinek figyelemmel kísérése A projektmegvalósulás követése és felülvizsgálata Beszámolók készítése és előadása Dr. Johanyák Zs. Csaba - Szoftvertechnológia

18 Tervek készítése Projektterv és PDD Minőségbiztosítási terv Validációs terv Konfigurációkezelési terv Karbantartási terv Munkaerő-fejlesztési terv Dr. Johanyák Zs. Csaba - Szoftvertechnológia

19 A projekttervezési és vezetési folyamat 1. Projektcél? Megállapítani a projekt megszorításait Szervezeti keretek, felelősök A projekt paramétereinek egy kezdeti összegzését elkészíteni Definiálni a projekt részeredményeit és mérföldköveit A dokumentálás módjának és szabályainak lefektetése Kockázatelemzés Kiinduló ütemterv elkészítése Projekt indító értekezlet Dr. Johanyák Zs. Csaba - Szoftvertechnológia

20 A projekttervezési és vezetési folyamat 2. Amíg a projekt nincs kész, vagy nem vonták vissza, addig elindítani az ütemtervnek megfelelő tevékenységeket átvizsgálni a projekt előrehaladását felülvizsgálni a projekt paramétereinek becslését frissíteni a projekt ütemtervét ha probléma merül fel elindítani a műszaki felülvizsgálatokat és a lehetséges átdolgozásokat újratárgyalni a projekt megszorításait és részeredményeit ciklus vége Projekt lezárása Dr. Johanyák Zs. Csaba - Szoftvertechnológia

21 A projekt ütemezése A folyamat tevékenységekre bontása Az egyes tevékenységekhez szükséges idő és erőforrások becslése Idő tartalékolása problémák megoldására és előre nem látott feladatokra (pl. Sommerville: +30% probl. +20% fel.) Mely tevékenységek végezhetőek párhuzamosan? Összefüggő sorozatba rendezés Erőforrások (pl. munkatársak) tevékenységekhez rendelése Felelősségi körök meghatározása (felelősségi mátrix) Költségek becslése A munkaerő kihasználtsága optimális legyen Grafikus megjelenítés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

22 Hierarchikus tevékenység/feladat lebontás 1. Dr. Johanyák Zs. Csaba - Szoftvertechnológia Projekt Fázis Szakasz Tevékenység Feladat Végrehajtás Forrás: Dr. Rutkovszky Edéné: Projektmenedzsment 22

23 Hierarchikus tevékenység/feladat lebontás 2. Film Forgatóköny v StílusÍróTém a Sci-fiHorrorstb. Szereposzt ás Casting Helyszín KülsőBelső Rendező Stáb DíszletOperatőrHáttér munkáso k Zene Szerzés IllesztésSzínész ek Gyártá s v. Vágás v.Képi világ Utómunka v. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

24 Mérföldkövek és részeredmények A mérföldkő A mérföldkő a szoftverfolyamat tevékenységeinek egy ellenőrző pontja, egy logikai szakasz vége. Egy vagy több olyan részfeladat után helyezzük el, ahol a részfeladatok eredményes befejezése nélkül nem lehet továbbhaladni. A részeredmények A részeredmények a projekt olyan eredményei, amelyek átadhatók a megrendelőnek. Ezek általában mérföldkövek is, de a mérföldkő nem szükségszerűen részeredmény. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

25 Tevékenységek és mérföldkövek Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: Ian Sommerville: Szoftverrendsszerek fejlesztése 25

26 Könyvesboltban történő vásárlás menete Tevékenység neve IdőtartamKezdésBefejezésMegelőzés (1) Vásárlás2 óraK (2) Vevő szempontjából 40 percK (3) Katalógus megtekintés 5 percK (4) Könyv kiválasztása 1 óraK (5) Könyv megtekintése 10 percK (6) Könyvből való következtetés levonása 5 percK Dr. Johanyák Zs. Csaba - Szoftvertechnológia

27 Tevékenység neveIdőtartamKezdésBefejezésMegelőzés (7) Alkalmazott szempontjából 20 percK (8) Alkalmazott hitelesítés 1 percK (9) Hitelesítés létrejövetele 0 percK (10) Kiválasztott könyv rögzítése 5 percK , 8 (11) Vevő adatainak bevitele (ha számlát kér) 5 percK (12) Könyv kifizetése2 percK Könyvesboltban történő vásárlás menete Dr. Johanyák Zs. Csaba - Szoftvertechnológia

28 Tevékenység – Időtartam – Függőségek táblázat TevékenységIdőtartam napbanFüggőségek T18 T215 T315T1;M1 T410 T510T2;T4;M2 T65T1;T2;M3 T720T1;M1 T825T4;M5 T915T3;T6;M4 T1015T5;T7;M7 T117T9;M6 T1210T11;M8 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: Ian Sommerville: Szoftverrendszerek fejlesztése 28

29 Tevékenység – Időtartam – Függőségek táblázat – MS Project 2013 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

30 Kezdet 03/7/4 M5 03/7/18 T1 8 nap M1 03/7/14 T3 15 nap T9 15 nap M4 03/8/4 M6 03/8/25 M8 03/9/5 T11 7 nap T12 10 nap Vég 03/9/19 T8 25 nap T4 10 nap T2 15 nap T6 5 nap M3 03/7/25 M2 03/7/25 T7 20 nap T5 10 nap T10 15 nap M7 03/8/11 Tevékenységháló Forrás: Ian Sommerville: Szoftverrendszerek fejlesztése Dr. Johanyák Zs. Csaba - Szoftvertechnológia

31 Tevékenység háló – MS Project 2013 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

32 7/47/117/18 7/25 8/1 8/88/15 8/22 8/299/59/12 9/19 Kezdet T4 T1 T2 M1 T7 T3 M5 T8 M3 M2 T6 T5 M4 T9 M7 T10 M6 T11 M8 T12 Befejezés Forrás: Ian Sommerville: Szoftverrendszerek fejlesztése Tevékenység (Gantt) diagram

33 Gantt diagram – MS Project 2013 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

34 Szervezet lebontási struktúra Dr. Johanyák Zs. Csaba - Szoftvertechnológia

35 OBSWBS Fejlesztő főosztály TervezésElőállítás Oktatás és dokumentálás Műszaki támogatás LogikaiFizikaiKódolás TesztelésOktatás Felhasználói kézikönyv Tervező osztály Programozási osztáy Tesztelő osztály Oktatási osztály Dokumentációs osztály Forrás: Langer Tamás: Projektmenedzsment a szoftverfejlesztésben Felelősségi mátrix Dr. Johanyák Zs. Csaba - Szoftvertechnológia

36 Erőforrások ütemezése Gépek, berendezések, alap- és segédanyagok, tartozékok és egyéb költségforrások A projekt szempontjából lényeges erőforrás Korlátozott mennyiségben áll rendelkezésre Mérhető a költsége Erőforrás típusok Anyag Költség (összeg) Munka (alap óradíj, túlóra díj) – ide tartoznak általában a dolgozók is Dr. Johanyák Zs. Csaba - Szoftvertechnológia

37 Munkatársak lekötöttségi diagramja – MS Project 2013 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

38 Túlterhelés Megoldási lehetőségek Elcsúsztatás tartalékidő felhasználással Több erőforrás bevonásának megkísérlése Munkaóra növelés (túlóra) Zárási határidő elcsúsztatásának megkísérlése Dr. Johanyák Zs. Csaba - Szoftvertechnológia

39 Költségvetés készítése Alap órabér számítási megközelítési módok Minden érintett munkatársnál visszaszámoljuk az órabért --> nem megoldható Projektszerep és végzettség szerint átlagos órabért határozunk meg  problémás Egységes átalánnyal számolunk Az órabérhez hozzáadunk átalányköltséget (pl. áram, szoftverbérlet, irodaszer) A teljes projektköltséghez hozzáadunk konkrét költségtételeket (pl. utazás) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

40 Kockázatkezelés Def.: A kockázatok azonosítását és az azok hatásának minimalizálása érdekében történő tervek felvázolását együtt kockázatkezelésnek nevezzük. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

41 Kockázati kategóriák Projekt: a projekt ütemtervére vagy az ott használt erőforrásokra ható kockázat Termék: a fejlesztett szoftver minőségére vagy teljesítményére ható kockázat Üzleti: a szervezetre ható kockázat Dr. Johanyák Zs. Csaba - Szoftvertechnológia

42 Konkrét példák Tapasztalt programozó elhagyja a projektet – projekt Hardver elérhetetlensége – projekt CASE-eszköz alulteljesítése – termék A fejlesztendő szoftver méretének alulbecslése – termék Technológia megváltozása – üzleti Versenyképes termék kerül piacra, mielőtt a rendszer elkészülne - üzleti Dr. Johanyák Zs. Csaba - Szoftvertechnológia

43 A kockázatkezelés folyamata 1. Kockázat azonosítása 2. Kockázat elemzése (valószínűség és következmények) 3. Kockázat tervezése (hogyan kerülhetjük el) 4. Kockázat figyelése  2 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

44 1. A kockázat azonosítása Kockázattípusok Technológiai - A rendszerhez használt adatbázis nem tud mp-ként annyi tranzakciót feldolgozni, mint amit elvárunk tőle. Emberi - A kulcsfontosságú munkaerő megbetegszik. Szervezeti - A projekt vezetősége megváltozik. Eszköz - A különböző típusú CASE-eszközöket nem lehet integrálni. Követelmény - A megrendelők nem képesek megérteni, hogy az általuk kívánt szolgáltatások miért lennének olyan drágák. Becslési - A szoftver kifejlesztéséhez szükséges időt alábecsülték. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

45 Kockázati tényezők Kockázattíp us Potenciális jelzés TechnológiaiA hardver vagy a támogató szoftver kései leszállítása, számos jelzett technológiai probléma. EmberiSzegényes munkamorál, rossz kapcsolatok a csapatok között. SzervezetiMunkahelyi pletykák, a felső vezetés tevékenységének hiánya. EszközA csapatok eszközökkel szembeni idegenkedése, a CASE eszközök körüli panaszok, nagyobb teljesítményű munkaállomások iránti igény. KövetelményIgény számos követelmény megváltoztatására, panaszok a megrendelő felől. BecslésiAz elfogadott ütemtervet nem sikerül betartani, nem lehet tisztázni a jelentett hibákat. Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: Ian Sommerville: Szoftverrendszerek fejlesztése

46 Halszálka diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

47 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

48 Vizuális programozás projektfeladat sikertelensége #1 Személyi #4 Módszer ----> Lustaság ---->Részfeladatokra bontás ----> Nem megfelelő végzettség---->Nem megfelelő kommunikáció ----> Együttműködő képesség hiánya---->Objektumorientáltsági problémák #2 Eszközök #5 Környezet ----> Számítástechnikai eszközök hiánya---->Távolság ----> Fejlesztőkörnyezet hiánya---->Túlterheltség ----> Jegyzetek hiánya ----> Internet hiánya ----> #3 Ismeretek ----> Hiányos programozói ismeretek ----> Hiányos nyelvi ismeretek ----> Hiányos matematikai ismeretek Dr. Johanyák Zs. Csaba - Szoftvertechnológia Enter specific causes associated with respective major causes below. Be precise and include data whenever possible. Click "finished" to continue.

49 Halszálka diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

50 2. A kockázat elemzése Valószínűség: 1 - nagyon kicsi (<10%), 2 - kicsi (10-25%), 3 - mérsékelt (25-50%), 4 - magas (50-75%) vagy 5 - nagyon magas (>75%); A kockázat hatása: 1 - nem jelentős, 2 - elviselhető, 3 - közepes, 4 - súlyos, 5 - katasztrofális Dr. Johanyák Zs. Csaba - Szoftvertechnológia

51 Kockázatelemzési táblázat Kockázat: Valószínűség (1-5)Hatás (1-5)V*H Lustaság5525 Nem megfelelő végzettség3515 Együttműködő képesség hiánya5315 Távolság4312 Túlterheltség5210 Részfeladatokra bontás339 Hiányos nyelvi ismeretek248 Nem megfelelő kommunikáció155 Hiányos matematikai ismeretek224 Objektumorientáltsági problémák224 Internet hiánya414 Fejlesztőkörnyezet hiánya122 Jegyzetek hiánya122 Számítástechnikai eszközök hiánya212 Hiányos programozói ismeretek212 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

52 Pareto Dr. Johanyák Zs. Csaba - Szoftvertechnológia

53 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

54 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

55 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

56 SWOT elemzés Belső tényezők Strengthserősségek Weaknessesgyengeségek Külső tényezők Opportunitieslehetőségek Threatsveszélyek Dr. Johanyák Zs. Csaba - Szoftvertechnológia

57 SWOT elemzés (vállalati példa) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

58 Erősségek Meghatározó a vállalat piaci szerepe? Jó a vásárlók véleménye? Fejlett technológiát használ a vállalat? Egyedülálló versenyelőnnyel rendelkezik? Jók a piaci erőforrásai? Gazdaságos üzemméretet használ? Jó a vállalat menedzsmentje? Kimagasló szakértelműek az alkalmazottak? Sikeres a vállalati stratégia? Forrás: Dr. Rutkovszky Edéné: Projektmenedzsment Dr. Johanyák Zs. Csaba - Szoftvertechnológia

59 Gyengeségek Elavult a technológia? Romlik a piaci pozíció? Nincs egyértelműen meghatározott stratégia? Hiányzik a megfelelő szakértelem? Elhasználódtak a létesítmények? Rossz a vállalat imázsa? Nem sikeres a kutatás-fejlesztési részleg? Rosszul funkcionál a menedzsment? A pénzügyi háttér nem rendezett? Forrás: Dr. Rutkovszky Edéné: Projektmenedzsment Dr. Johanyák Zs. Csaba - Szoftvertechnológia

60 Lehetőségek Gyorsabb piaci növekedés? Kiegészítő termékek fejlesztése? Új piacokra való belépés? Új technológia alkalmazása? A termékcsoport továbbfejlesztése? További célcsoportok feltérképezése? Egy nyersanyagforrás megszerzése? Beszállítás helyett saját előállítás? Új szervezeti felépítés kidolgozása? Forrás: Dr. Rutkovszky Edéné: Projektmenedzsment Dr. Johanyák Zs. Csaba - Szoftvertechnológia

61 Veszélyek Új versenytársak megjelenése a piacon. A piaci növekedés lassulása. Változó fogyasztói igények. Szigorodó szabályozás. Helyettesítő termékek megjelenése. Hátrányos demográfiai változások. Kedvezőtlen gazdasági ciklusok hatása. A beszállítók javuló alkupozíciója. Fogyasztói érdekvédelem fokozódó nyomása. Forrás: Dr. Rutkovszky Edéné: Projektmenedzsment Dr. Johanyák Zs. Csaba - Szoftvertechnológia

62 Kockázat tervezése és menedzselése Stratégiák Elkerülési stratégiák Minimalizációs stratégiák Vészhelyzeti tervek Dr. Johanyák Zs. Csaba - Szoftvertechnológia

63 Kockázat tervezése KockázatStratégia Szervezeti pénzügyi problémák Elkészíteni egy részletes dokumentumot a felső vezetés részére, amely bemutatja, hogy a projekt mennyire fontos kapcsolatban áll az üzleti célokkal Toborzási problémák Riasztani a megrendelőt, hogy potenciális nehézségek és lehetséges késések várhatók, kutatni a megvásárolható komponensek után. Munkaerő megbetegedése Újraszervezni a csapatot úgy, hogy a munkák jobban átfedjék egymást, így az emberek jobban megértik mások munkáit is. Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: Ian Sommerville: Szoftverrendszerek fejlesztése

64 A kockázat figyelése Változott-e az azonosított kockázatok bekövetkezési valószínűsége hatása Dr. Johanyák Zs. Csaba - Szoftvertechnológia

65 Az 1. előadás tartalmából Projekt A vezető feladatai A projekttervezési és vezetési folyamat Hierarchikus tevékenység/feladat lebontás Mérföldkövek és részeredmények Tevékenység – Időtartam – Függőségek - Erőforrások Ütemezés Kockázatkezelés Dr. Johanyák Zs. Csaba - Szoftvertechnológia Ismétlés

66 A projekttervezési és vezetési folyamat 1. Projektcél? A projekt megszorításai Szervezeti keretek, felelősök A projekt paramétereinek kezdeti összegzése A projekt részeredményeinek és mérföldköveinek definiálása A dokumentálás módjának és szabályainak lefektetése Kockázatelemzés Kiinduló ütemterv elkészítése Projekt indító értekezlet Ismétlés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

67 A projekttervezési és vezetési folyamat 2. Amíg a projekt nincs kész, vagy nem vonták vissza, addig elindítani az ütemtervnek megfelelő tevékenységeket átvizsgálni a projekt előrehaladását felülvizsgálni a projekt paramétereinek becslését frissíteni a projekt ütemtervét ha probléma merül fel, elindítani a műszaki felülvizsgálatokat és a lehetséges átdolgozásokat újratárgyalni a projekt megszorításait és részeredményeit ciklus vége Projekt lezárása Ismétlés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

68 Információgyűjtés Kitöltött űrlapok jelentések, jegyzőkönyvek, programok kimenetei, értekezleteken elhangzott információk Óraelszámolások Állapotjelentések Dr. Johanyák Zs. Csaba - Szoftvertechnológia

69 Elemzés - alapfogalmak ACWP ACWP – Actual Cost Of Work Performed – az elvégzett munka tényleges költsége BCWP BCWP – Budget Cost Of Work Performed – az elvégzett munkára ennyi költséget terveztünk BCWS BCWS – Budget Cost Of Work Scheduled – a tervezett (ütemezett) munkára ennyi költséget terveztünk Dr. Johanyák Zs. Csaba - Szoftvertechnológia

70 Elemzés – származtatott fogalmak CV CV – Cost Variance – költségeltérés CV=BCWP-ACWP SV SV – Schedule Variance – ütemezéstől való eltérés SV=BCWP-BCWS CPI CPI – Cost Performance Index – költséghatékonysági mutató CPI=BCWP/ACWP SPI SPI – Schedule Performance Index – ütemterv teljesülési mutató SPI=BCWP/BCWS CR CR – Critical Ratio – kritikus arány CR=SPI*CPI Dr. Johanyák Zs. Csaba - Szoftvertechnológia

71 Költség Idő Most SV CV BCWS ACWP BCWP Diagram Forrás: Langer Tamás: Projektmenedzsment a szoftverfejlesztésben

72 Felügyelet Beavatkozási határokat meghatározni Pl. 0,9…1,1 - OK 0,8…0,9 vagy 1,1…1,2 - tendenciafigyelés 0,8 alatt vagy 1,2 felett - cselekvés Az SPI és CPI értékét folyamatosan figyelni Dr. Johanyák Zs. Csaba - Szoftvertechnológia

73 Minta BCWSBCWPACWPCVSVCPISPIÉrtelmezés Időben és költségen ,25Időelőny és költségen ,8Késés és költségen ,81Időben és túlköltekezés ,831,25Időelőny és túlköltés ,8 Késés és túlköltés ,251Időben és megtakarítás ,25 Időelőny és megtakarítás ,250,83Késés és megtakarítás Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: Langer Tamás: Projektmenedzsment a szoftverfejlesztésben

74 Projekt lezárása A projekt akkor fejeződik be, ha teljesül a projektcél (elfogadták a projekt eredményét) Projektzáró dokumentum Projektadatok (…, tervezett és tényleges befejezési idő, bevétel, tervezett és tényleges költségek, emberóra ráfordítás) Lezárást követő teendők Vevői elégedettség Projekt általános értékelése Projektzáró értekezlet – értékelik a projekt lefutását Dr. Johanyák Zs. Csaba - Szoftvertechnológia

75 A projekt utóélete Szoftverrendszerrel kapcsolatos költségek 1/3-a fejlesztés és 2/3-a működtetés Projektzárást követő tevékenységek Üzemeltetés Garanciális javítások Későbbi karbantartás Támogatás (tanácsadás) Követés (változó jogi, hardver és szoftver környezet) Továbbfejlesztés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

76 Bejelentések fogadása Service Level Agreement (SLA) rögzíti Bejelentések súlyosság és prioritás szerinti kategorizálása Vállalt reakcióidők Informatikai infrastrukturális szolgáltatások módszertana (ITILv3) - Information Technology Infrastructure Library (ISO/IEC ) Informatikai rendszerek üzemeltetésére és fejlesztésére szolgáló módszertan, illetve szabvány- és ajánlás-gyűjtemény Dr. Johanyák Zs. Csaba - Szoftvertechnológia

77 Bejelentéskezelés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

78 SZOFTVER ÉLETCIKLUS MODELLEK Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

79 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Mi a szoftver? A számítógépes programok, a hozzájuk kapcsolódó dokumentációk és konfigurációs adatok összessége Két fő csoport Általános termékek és Rendelésre készített 79

80 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Igény a rendszerezett munkára Kezdetben kis programok Hardverfejlődés → bonyolultabb feladatok Folyamatábra, metanyelvű algoritmus leírás, stb. Szoftvertechnológia 80

81 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Boehm A szoftvertechnológia tudományos ismeretek gyakorlati alkalmazása számítógépes programok előállításához, a fejlesztéshez, a használathoz és karbantartáshoz szükséges dokumentációk tervezésében és előállításában. 81

82 Dr. Johanyák Zs. Csaba - Szoftvertechnológia IEEE A szoftvertechnológia olyan technológiai és vezetési alapelvek összessége, amelyek lehetővé teszik a programok termékszerű gyártását és karbantartását a költség- és határidő korlátok betartásával. 82

83 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Alap tevékenységek Követelményelemzés (Mit is kellene csinálni? Mikorra, és mennyiért? – megvalósíthatóság vizsgálata) Tervezés (architekturális tervezés, absztrakt specifikáció, interfész tervezés) Implementálás (komponens tervezés, adatszerkezet tervezés és algoritmus tervezés) Kipróbálás, validálás, bevezetés (szoftverátvizsgálás és tesztelés) Működtetés, karbantartás, továbbfejlesztés, leállítás 83

84 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Szoftverfolyamat modellek Vízesés Boehm féle spirál Inkrementális (evolúciós) Újrafelhasználás orientált (komponens alapú) V RUP (Rational Unified Process) ISO/IEC (1995, 2008) 84

85 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Vízesés modell Ábra forrása: Ficsor Lajos: / 85

86 Vízesés modell A következő fázis addig nem indulhat el, amíg az előző be nem fejeződött. Ez a modell akkor működik jól, ha a követelmények teljesen ismertek. Előny: Jól menedzselhető és ellenőrizhető. Minden fázisban jól definiált feladatok. Minden fázis jól dokumentálható. Előre jól definiálható követelmények esetén jól alkalmazható. Hátrány: Nagyon sok probléma csak az utolsó fázisban derül ki, így a javítás nagyon költséges. Korán kell jelentős döntéseket hozni, ez hibás döntésekhez vezethet. Nehéz a rendszert a fejlesztés közben változó követelményekhez igazítani. Sok dokumentációs munkát igényel. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

87 Spirál modell Dr. Johanyák Zs. Csaba - Szoftvertechnológia megvalósíthatóság a rendszer követelményeinek meghatározása rendszertervezés, stb. 87

88 Spirál Modell Elemzés Tervezés Megvalósítás Igények és Célok Prototípus 1 Prototípus 2 Prototípus 3 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

89 Spirál modell Előny: a kockázati tényezőkkel explicite számol. A spirális modellben nincsenek rögzített fázisok, és felölelhet más folyamatmodelleket is (vízesés, evolúciós, stb.). Hátrányai: a modell alkalmazása bonyolult, munkaigényes feladat; a párhuzamos foglalkoztatás csak a 3. szektorban lehetséges. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

90 Dr. Johanyák Zs. Csaba - Szoftvertechnológia V modell Forrás: 90

91 V modell Egy módosított vízesés modell. Megkülönbözteti a fejlesztésen belül a konstrukciós és a tesztelési fázisokat. Definiálja a tesztelés szintjeit. Szemlélteti, hogy a tesztelési munka végigköveti a teljes fejlesztési folyamatot. Összefüggést tételez fel az egyes konstrukciós fázisok és az egyes tesztelési szintek között. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

92 Specifiká- ció Tervezés Implemen- táció Tesztelés Specifiká- ció Tervezés Implemen- táció Tesztelés Specifiká- ció Tervezés Implemen- táció Tesztelés Implemen- táció Analízis Inkrementális (evolúciós) Ábra forrása: Ficsor Lajos: /

93 Evolúciós modell Ki kell fejleszteni egy kezdeti implementációt (prototípust), azt a felhasználókkal véleményeztetni, majd sok-sok verzión át addig finomítani, amíg megfelelő nem lesz. Iterációs modellnek is nevezik. Objektum orientált fejlesztésben gyakran használják. Ez a modell a felhasználó kívánságait jobban kielégítő programot eredményez. A kis (< programsor) és közepes (<= programsor) rendszerek fejlesztéséhez ideális. Hátrányai: a folyamat nem látható; a rendszerek gyakran szegényesen strukturáltak; a gyors fejlesztés rendszerint a dokumentáltság rovására megy. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

94 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Újrafelhasználás orientált fejlesztés (komponens alapú) Komponenselemzés Követelménymódosítás Rendszertervezés újrafelhasználással Fejlesztés és integráció 94

95 Komponens alapú modell Előnye: lecsökkenti a kifejlesztendő részek számát, így csökkenti a költségeket és a kockázatot. Ez általában a kész rendszer gyorsabb leszállításához vezet. Hátrányai: a követelményeknél hozott kompromisszumok elkerülhetetlenek, és ez olyan rendszerhez vezethet, ami nem felel meg a felhasználó valódi kívánságának. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

96 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Fázisok: Előkészítés Kidolgozás Megvalósítás Átadás Munka- folyamatok folyamatokKövetelményekTervezésImplementációTeszt RUP Ábra: Munkafolyamatok 96

97 RUP - dimenziók Az ábra vízszintes dimenziója az időbeliséget, a függőleges dimenziója a különböző munkafolyamatokat (tevékenységeket) szimbolizálja. Az ábra harmadik dimenziója – amit a sávok magassága jelent –, az egyes tevékenységek intenzitását, erőforrás igényét szimbolizálja. Egy-egy fázis elkészítése során több munkafolyamatot érint, ugyanakkor az egyes munkafolyamatok a különböző fázisokban különböző intenzitásúak, erőforrás igényűek. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

98 ISO Forrás: Tarczali Tünde: UML diagramok a gyakorlatban [link]link Dr. Johanyák Zs. Csaba - Szoftvertechnológia

99 Dr. Johanyák Zs. Csaba - Szoftvertechnológia CASE eszközök Computer-Aided Software Engineering Követelményspecifikáció: grafikus rendszermodellek, üzleti és domain Elemzés/tervezés során: adatszótár kezelése, mely a tervben található egyedekről és kapcsolataikról tartalmaz információt; felhasználói interfész generálását egy grafikus interfész- leírásból, melyet a felhasználóval együtt készíthetünk el.; a terv ellentmondás mentesség vizsgálata Implementáció során: automatikus kódgenerálás (Computer Aided Programming - CAP);verziókezelés Szoftvervalidáció során: automatikus teszt-eset generálás, teszt-kiértékelés, -dokumentálás Szoftverevolúció során: forráskód visszafejtés (reverse engineering); régebbi verziójú programnyelvek automatikus újrafordítása újabb verzióba. 99

100 Dr. Johanyák Zs. Csaba - Szoftvertechnológia CASE eszközök Automatikus dokumentumgenerálás; Projektmenedzsment támogatás (ütemezés, határidők figyelése, erőforrás-tervezés, költség- és kapacitásszámítás, stb. ) 100

101 UML Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

102 Dr. Johanyák Zs. Csaba - Szoftvertechnológia UML Unified Modeling Language Egységes modellező nyelv (2.1.2 ISO/IEC ) Object Management Group Eric J. Naiburg, Robert A. Maksimchuk: UML földi halandóknak. Kiskapu Kiadó, Budapest,

103 Dr. Johanyák Zs. Csaba - Szoftvertechnológia UML Dokumentálható A szoftverrel szemben támasztott követelmények A szoftver felépítése A szoftver működése Grafikus elemek Nem programozási nyelv Nem módszertan „Csak” segédeszköz 103

104 Mire jó az UML? 1. szemléltetésre a fejlesztői csoporton belül, illetve a fejlesztők, tesztelők, menedzserek és a megrendelők közötti kommunikációra specifikálásra megvalósításra dokumentálásra Dr. Johanyák Zs. Csaba - Szoftvertechnológia

105 Mire jó az UML? 2. Evolúciós programfejlesztés „szoftver mag ültetés és hajtatás” Dr. Johanyák Zs. Csaba - Szoftvertechnológia

106 Sikeres szoftverfejlesztési folyamat Jelölésrendszer (notation) – ez lehet az UML Folyamat (process) – pl. RUP (Rational Unified Process) Eszköz (tool) – pl. Enterprise Architect, Rational Rose, Visual Studio 2010 osztálydiagram készítő része, stb. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

107 UML szabvány részei 1. Infrastructure (4 rétegű metamodell, a nyelv alapvető szerkezetei, a „mag”) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

108 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

109 A metamodell architektúra M3 Meta- metamodell EBNF (Extended Backus-Naur Form) MOF M2metamodell A C# nyelv nyelvtana UML M1modell Egy C# program Számkitaláló M0rendszer Egy konkrét C# program végrehajtása A program futásának egy állapota Dr. Johanyák Zs. Csaba - Szoftvertechnológia

110 Az UML szabvány részei 2. Superstructure (a felhasználó milyen diagramokat, azon belül milyen elemeket és kapcsolatokat használhat; mi főleg ezt tanuljuk) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

111 Az UML szabvány részei 3. UML Diagram Interchange (UMLDI) – lehetővé teszi a különböző UML szerkesztő szoftverek közötti dokumentumcserét UML Human-Usable Textual Notation – egyes UML diagramokból ember által is olvasható szöveget generál MOF 2 XMI Mapping – MOF = Meta Object Facility XMI = XML Metadata Interchange – XML adatok és objektumok cseréje, manipulálása Dr. Johanyák Zs. Csaba - Szoftvertechnológia

112 Modell - diagram A kettő nem ugyanaz! „A modellek (tehát) több diagramból állnak, a diagramok pedig az elemek és azok más elemekkel való kölcsönhatásának ábrázolásai.” (Forrás: UML földi halandóknak könyv) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

113 Diagram Szerkezeti diagram Viselkedési diagram Osztály diagram (class) Objektumd. (object) Csomagdiagram (package) Összetevő d. (component) Összetett szerkezet d. (composite structure) Kialakítás d. (deployment) Tevékenység d. (activity) Használati eset d.(use-case) Állapotautomata d.(state machine) Kölcsönhatási diagram Sorrenddiagram (sequence) Kommunikációs d. (communication) Kölcsönhatás áttekintő d. (interaction overview) Időzítés d. (timing) Kontextus diagram Szakarchitektúra diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

114 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Diagram típusok Szerkezeti diagramok: Osztálydiagram (class) Objektumdiagram (object) Csomagdiagram (package) Összetevő diagram (component) Kontextus d., Szakarchitektúra d. Összetett szerkezet diagram (composite stucture) Kihelyezési/telepítési/kihelyezési diagram (deployment) Viselkedési diagramok: Tevékenység diagram (activity) Használati eset vagy feladat diagram (use-case) Állapotautomata vagy állapotgép diagram (state machine) Kölcsönhatási diagramok: Sorrend diagram (sequence) Kommunikációs diagram (communication) Időzítés diagram (timing) Kölcsönhatás áttekintő diagram (interaction overview) 114

115 Szerkezeti és viselkedési A szerkezeti diagramok (statikus) nem törődnek az időbeli változással, ők a modellezett rendszer állapotát egy adott időpillanatban mutatják be. Viselkedési diagramok (dinamikus) folyamatában, változásában mutatják ugyanazt a modellezett rendszert. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

116 Szerkezeti diagramok 1 Osztálydiagram: az UML modellezésben leggyakrabban használt diagramfajta. A rendszerben található állandó elemeket, azok szerkezetét és egymás közötti logikai kapcsolatát jeleníti meg. Objektumdiagram: a rendszer egy adott időpontban érvényes pillanatképét határozza meg. Az osztálydiagramból származtatjuk. Csomagdiagram: a csomagok olyan modellelemek, amelyek más modellelemek csoportosítására szolgálnak, és ezeket valamint a köztük lévő kapcsolatokat ábrázolja ez a fajta diagram. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

117 Szerkezeti diagramok 2 Összetevő diagram: az összetevő vagy komponens a rendszer fizikailag létező és lecserélhető része, feltéve, hogy az új komponens csatlakozási felülete (interfésze) megegyezik a régivel. Főleg implementációs kérdések eldöntését segíti. A megvalósításnak és a rendszeren belüli elemek együttműködésének megfelelően mutatja be a rendszert. Összetett szerkezeti diagram: A modellelemek belső szerkezetét mutatja. Kialakítás/kihelyezés/telepítési diagram: A fizikai (kész) rendszer futásidejű felépítését mutatja. Tartalmazza a hardver és a szoftverelemeket is. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

118 Viselkedési diagramok Tevékenységdiagram: A rendszeren belüli tevékenységek folyamatát jeleníti meg. Általában üzleti folyamatok leírására használjuk. Használati eset/feladat diagram: A rendszer viselkedését írja le, úgy, ahogy az egy külső szemlélő szemszögéből látszik. Állapotautomata diagram: Az objektumok állapotát és az állapotok közötti átmeneteket mutatja, valamint azt, hogy az átmenetek milyen esemény hatására következnek be. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

119 Kölcsönhatási diagramok Kommunikációs diagram: Az objektumok hogyan működnek együtt a feladat megoldása során, hogyan hatnak egymásra. Sorrenddiagram: Az objektumok közötti üzenetváltás időbeli sorrendjét mutatja. Időzítés diagram: A kölcsönhatásban álló elemek részletes időinformációit és állapotváltozásait vagy állapotinformációit írja le. Kölcsönhatás áttekintő diagram: Magas szintű diagram, amely a kölcsönhatás-sorozatok közötti vezérlési folyamatról ad áttekintést. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

120 ELVÁRÁSOK ELEMZÉSE ÉS SPECIFIKÁCIÓ Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

121 Elvárások elemzése és specifikáció A vevői/megrendelői elvárások összegyűjtése, elemzése (Mit is kellene csinálni? Mikorra, és mennyiért?) A rendszer környezetének felmérése A feladat leírása Információgyűjtés az adott területen dolgozó szakemberektől (pl. interjúk). Az adott terület üzleti folyamatainak beazonosítása A feladat lefordítása a szakmai nyelven megfogalmazott specifikációkra, ami magában foglalja a megvalósíthatóság vizsgálatát is. Dokumentálás: szakterületi fogalomtár, üzleti folyamatok strukturált leírása táblázatos formában és használati eset diagramok segítségével, tevékenység diagramok, állapot automata. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

122 Lépések Szakterületi fogalomtár Interjú – leírás szabad szöveges formában Interjú – leírás strukturáltan rendezve Az üzleti folyamatok táblázatos leírása egyenként Használati eset diagram elkészítése Használati esetek részletes, táblázatos dokumentálása Folyamatok (lépések) modellezése tevékenység diagram segítségével Dr. Johanyák Zs. Csaba - Szoftvertechnológia

123 Szakterületi fogalomtár A témakörhöz, feladathoz kapcsolódó fontosabb kifejezések, elnevezések felsorolása és magyarázata Nem szükséges minden esetben Dr. Johanyák Zs. Csaba - Szoftvertechnológia

124 Interjú leírása szabad szöveges formában Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: 124

125 Interjú leírása strukturált szövegként Forrás:http://www.tankon yvtar.hu/hu/tartalom/tam op425/0008_tarcali/Tarc zali_UML_diagramok_18 _18.html Dr. Johanyák Zs. Csaba - Szoftvertechnológia

126 Az üzleti folyamatok táblázatos leírása egyenként Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: 126

127 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

128 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Használati eset diagram Leggyakrabban a követelményelemzés és a specifikáció során alkalmazzák A rendszer viselkedését írja le, ahogyan az egy külső szemlélő szemszögéből látszik Összetevői Használati eset Szereplő Rendszerhatár 128

129 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Kapcsolatok Asszociáció Általánosítás 129

130 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Kapcsolatok - függőségek > 130

131 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Használati eset diagram készítése Enterprise Architectben Könyvtári rendszer használati eset diagramja 131

132 Folyamatok modellezése Tevékenység diagram Állapotautomata Dr. Johanyák Zs. Csaba - Szoftvertechnológia

133 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Tevékenység diagram A probléma megoldásának a lépéseit szemlélteti, a párhuzamosan zajló vezérlési folyamatokkal együtt Hasznos az üzleti vagy munkafolyamatok modellezésére, használati esetek vagy konkrét algoritmusok lefutásának leírására Az állapotautomata egy változatának is tekinthető, ahol az állapotok helyére a végrehajtandó tevékenységeket tesszük, az állapotátmenetek pedig a tevékenységek befejezésének eredményeként valósulnak meg. Action, Activity 133

134 Pénzfelvétel Dr. Johanyák Zs. Csaba - Szoftvertechnológia

135 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Másodfokú egyenlet megoldása 135

136 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Párhuzamos feladatvégrehajtás Elágazás (fork) Csatlakozás (join) 136

137 Tevékenység diagram aktorok szerinti partícióval Dr. Johanyák Zs. Csaba - Szoftvertechnológia

138 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechn Kivétel Mi idézheti elő? Külső esemény (pl. adathordozóval megszakad a kapcsolat) Időpont (pl. inaktív ftp kapcsolat megszakítása) Esetválasztás (pl. hibás paraméterezés következtében a hívott metódus kivételt idéz elő) Célzott előidézés - továbbadás (throw) 138

139 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Alap tevékenységek Követelményelemzés (Mit is kellene csinálni? Mikorra, és mennyiért? – megvalósíthatóság vizsgálata) Tervezés (architekturális tervezés, absztrakt specifikáció, interfész tervezés) Implementálás (komponens tervezés, adatszerkezet tervezés és algoritmus tervezés) Kipróbálás, validálás, bevezetés (szoftverátvizsgálás és tesztelés) Működtetés, karbantartás, továbbfejlesztés, leállítás Ismétlés 139

140 Diagram Szerkezeti diagram Viselkedési diagram Osztály diagram (class) Objektumd. (object) Csomagdiagram (package) Összetevő d. (component) Összetett szerkezet d. (composite structure) Kialakítás d. (deployment) Tevékenység d. (activity) Használati eset d.(use-case) Állapotautomata d.(state machine) Kölcsönhatási diagram Sorrenddiagram (sequence) Kommunikációs d. (communication) Kölcsönhatás áttekintő d. (interaction overview) Időzítés diagram (timing) Kontextus diagram Szakarchitektúra diagram Ismétlés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

141 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Állapotgép Az objektumok, a használati eseteknek és a protokollok dinamikus viselkedését mutatja, vagy a dialógusok lefutásának leírására is alkalmas Állapot Állapot: az objektum állapotát az attribútumai konkrét értékeinek n-esével jellemezzük. Tervezés és implementálás során Állapotátmenet: két állapot közötti kapcsolat, amely kifejezi, hogy egy adott állapotban lévő objektum egy esemény vagy valamely feltétel bekövetkezésének hatására milyen másik állapotba kerül 141

142 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

143 Állapot Dr. Johanyák Zs. Csaba - Szoftvertechnológia

144 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Álapotdiagram 144

145 Diszjunkt alállapotok Dr. Johanyák Zs. Csaba - Szoftvertechnológia

146 Állapotátmenetek Dr. Johanyák Zs. Csaba - Szoftvertechnológia

147 Egy kezdőállapot, több végállapot Dr. Johanyák Zs. Csaba - Szoftvertechnológia

148 Állapotgép könyv – könyvtári rendszer Dr. Johanyák Zs. Csaba - Szoftvertechnológia

149 Összetett állapotok Állapotok aggregációja Diszjunkt szub- vagy alállapotok Dr. Johanyák Zs. Csaba - Szoftvertechnológia

150 Állapotok aggregációja A B és C alrendszerek párhuzamosan működnek Az A állapotát a B és C állapotának az „összege” adja. Ezek egymással párhuzamosan kerülnek különböző állapotokba. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

151 Diszjunkt alállapotok Dr. Johanyák Zs. Csaba - Szoftvertechnológia

152 Emlékező vagy történeti állapot Dr. Johanyák Zs. Csaba - Szoftvertechnológia

153 Állapotátmenetek

154 Történeti állapot Egyszerű történeti állapot H – csak az állapotkonfiguráció legfelső szintjét őrzi meg Mély történeti állapot H* - teljes mélységében megőrzi az állapotkonfigurációt Dr. Johanyák Zs. Csaba - Szoftvertechnológia

155 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Állapotgép - tanulmányi rendszer - tantárgyfelvétel 155

156 Állapotgép - párátlanító Dr. Johanyák Zs. Csaba - Szoftvertechnológia

157 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Alap tevékenységek Követelményelemzés (Mit is kellene csinálni? Mikorra, és mennyiért? – megvalósíthatóság vizsgálata) Tervezés (architekturális tervezés, absztrakt specifikáció, interfész tervezés) Implementálás (komponens tervezés, adatszerkezet tervezés és algoritmus tervezés) Kipróbálás, validálás, bevezetés (szoftverátvizsgálás és tesztelés) Működtetés, karbantartás, továbbfejlesztés, leállítás Ismétlés 157

158 TERVEZÉS Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

159 Tervezés Szoftverarchitektúra beazonosítása (K-A-RM) Felhasználói interfészeken lefutó interakciók modellezése Osztályok és felépítésük Objektum életciklusok és objektum interakciók kidolgozása A tervezés során alkalmazható diagramok: kontextus d., architektúra d., rendszer- montázs d., tervezési osztálydiagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

160 Kontextus diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

161 Táblázat Ügyfél FeladatPénzkivétel, mobil egyenleg feltöltés, stb. Mennyiség* FajtaTermészetes személy Betanítási idő- Dr. Johanyák Zs. Csaba - Szoftvertechnológia

162 Táblázat Alkalmazott (pénzfeltöltő) FeladatKészpénz elhelyezése az automatába MennyiségHeti két alkalom FajtaAlkalmazott Betanítási időFél nap Dr. Johanyák Zs. Csaba - Szoftvertechnológia

163 Szakarchitektúra diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

164 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Összetett szerkezeti diagram Composite structure diagram Megmutatja egy osztály belső szerkezetét és az egységek közötti együttműködési lehetőséget. 164

165 Osztálydiagram Az UML modellezésben leggyakrabban használt diagramfajta. A rendszerben található állandó elemeket, azok szerkezetét és egymás közötti logikai kapcsolatát jeleníti meg. Általában a rendszer logikai és fizikai felépítésének ábrázolására szolgál. UML-beli osztály NEM UGYANAZ, mint a programozási nyelvek osztályfogalma! – többféle jelentés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

166 UML-beli osztály jelentései Fogalom: Ez az elemzési/ tervezési fázisban gyakori, ahol a szakterület fogalmait nevezzük osztálynak Típus: Ez már programozási nyelv közelibb; az objektumok az osztály típus értékei, példányai. Objektumhalmaz: Az osztály itt csak egy csoportosítás, az azonos felépítésű objektumok halmaza Implementáció: Az OOP nyelvekben az osztály egyszerűen csak egy implementáció (kód) is lehet, amin az objektumai osztoznak Dr. Johanyák Zs. Csaba - Szoftvertechnológia

167 Szoftver életciklus fázisai 1. Elemzési fázisban az osztály mint Fogalom – igen Típus – esetleg Objektumhalmaz – nem Implementáció (kód) - nem Dr. Johanyák Zs. Csaba - Szoftvertechnológia

168 Szoftver életciklus fázisai 2. Tervezési fázisban az osztály mint Fogalom – esetleg Típus – igen Objektumhalmaz – igen Implementáció (kód) - esetleg Dr. Johanyák Zs. Csaba - Szoftvertechnológia

169 Szoftver életciklus fázisai 3. Megvalósítási fázisban az osztály mint Fogalom – nem Típus – igen Objektumhalmaz – igen Implementáció (kód) - igen Dr. Johanyák Zs. Csaba - Szoftvertechnológia

170 Osztálydiagram példa Dr. Johanyák Zs. Csaba - Szoftvertechnológia

171 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Osztálydiagram 171

172 Osztálydiagram példa Dr. Johanyák Zs. Csaba - Szoftvertechnológia

173 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Az osztályok közötti kapcsolatok Asszociáció/társítás (association) Aggregáció/rész-egész kapcsolat (aggregation) Általánosítás (generalization) Függőség (dependency) Megvalósítás (realization) 173

174 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Asszociáció Reflexív asszociáció – Többes asszociáció 174

175 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Aggregáció Kompozíció (erős tartalmazás) Gyenge tartalmazás 175

176 Példák Dr. Johanyák Zs. Csaba - Szoftvertechnológia

177 Dr. Johanyák Zs. Csaba - Szoftvertechnológia További kapcsolatok Általánosítás Függőség Megvalósítás 177

178 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Objektum diagram 178

179 Sokszög Dr. Johanyák Zs. Csaba - Szoftvertechnológia

180 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Kölcsönhatási diagramok Sorrend diagram – kevés résztvevő sok üzenettel Kommunikációs diagram – sok résztvevő kevés üzenettel Időzítés diagram – kevés résztvevő, komplex időbeli egymásra hatás 180

181 Sorrend diagram Üzenetváltásokat ábrázol, amelyek több, kölcsönhatásban lévő partner között zajlanak le A partnerek lehetnek osztályok, aktorok, komponensek, csatlakozók és csomópontok. Akkor érdemes használni, ha kevés résztvevő (partner) van, de azok sok üzenetet küldenek. Az életvonalon látható üres téglalapot aktivációs résznek nevezzük, ilyenkor csinálhat valamit az adott szereplő. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

182 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Sorrend diagram 182

183 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

184 Sorrend diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

185 Sorrend diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

186 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Kommunikációs diagram ha sok résztvevő van és azok viszonylag kevés üzenetet küldenek egymásnak. 186

187 Kommunikációs diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

188 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Időzítés diagram kevés résztvevő, komplex időbeli egymásra hatás 188

189 Kölcsönhatás áttekintő diagram A kölcsönhatás áttekintő diagram kicsit kilóg a sorból, mivel ő az előző három fajta módon megrajzolt (de ugyanarra a rendszerre vonatkozó) diagramok között fennálló összefüggéseket a tevékenységdiagramok vizuális eszközeivel fejezi ki. Ő valóban egy áttekintést nyújt. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

190 Kölcsönhatás áttekintő diagram Olyan, mintha egy tevékenységdiagramot rajzolnánk (kezdőpont, végpontok, elágazás, stb.), de a tevékenységek helyett ref-ek állnak (referenciák). A referenciák általában egy sorrenddiagramra vonatkoznak, amit már részletesen megrajzoltunk. A példában mindkét ref mögött létezik egy-egy ugyanilyen nevű sorrenddiagram, ami megmutatja a bejelentkezés és a felhasználó megrendeléseinek a részleteit. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

191 Kölcsönhatás áttekintő diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

192 Üzenettípusok Az első háromfajta kölcsönhatási diagramban egyaránt a következő háromfajta üzenettípust használjuk. Kérés: Szinkron üzenet. Kérés alkalmával a küldő szünetelteti aktivitását (vár) és a fogadó aktiválása következik be. (pl. telefonálás) Válasz: Szinkron üzenet. A kérést küldő a válaszüzenet hatására újra aktiválódik. Szignál: Aszinkron üzenet, vagyis a küldő nem szünetelteti az aktivitását az üzenet elküldése után, hanem tovább dolgozik. (pl. levélküldés) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

193 Kérés, válasz és szignál Dr. Johanyák Zs. Csaba - Szoftvertechnológia

194 Komplex interakció Az első háromfajta kölcsönhatási diagramban szerepelhetnek. Folyamatok egész halmazát reprezentálhatják, amelyeket az interakciós operátorok kötnek össze. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

195 Interakciós operátorok strict operátor – szigorú sorrend ref operátor – névvel hivatkozik más interakciókra opt operátor – opcionális alt operátor – alternatívák (választási lehetőség) brk operátor - megszakítás seq operátor – sorrend, de nem szigorú sorrend, mint a strict-nél loop operátor – ciklus, ismétlés par operátor – párhuzamosság … (vannak még továbbiak) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

196 Interakciós operátorok Dr. Johanyák Zs. Csaba - Szoftvertechnológia

197 IMPLEMENTÁLÁS Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

198 Implementálás A technológiai részletek kidolgozása, a tényleges kód előállítása Komponens tervezés, adatszerkezet tervezés Felhasználói interakció megtervezése, felülettervek Integrálás (modulok összekapcsolása). Dokumentáció: objektum d., csomag d., komponens d. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

199 Csomag diagram Az UML-elemek csoportosítására, közös névtérben való elhelyezésére alkalmas Tartalmazhat további csomagot Dr. Johanyák Zs. Csaba - Szoftvertechnológia

200 Csomag láthatóság és útvonal megadás Public (default) – más névtérből is látható, private Teljes minősített név egymásba ágyazásnál: gyökércsomag_neve::csomag_neve::elemnév Relatív útvonal >-al Dr. Johanyák Zs. Csaba - Szoftvertechnológia

201 Csomagok közötti kapcsolatok > a csomag összes elemét vagy egy elemet láthatóvá tesz a másik csomag számára > privát import, ez az elem nem importálható tovább újabb csomagokba > összeolvasztás, a csomagimportálás egy fajtája, a beolvasztott része lesz a beolvasztónak Dr. Johanyák Zs. Csaba - Szoftvertechnológia

202 Komponens Komponens: a rendszer fizikailag létező és kicserélhető része, feltéve, hogy az új komponens csatlakozási felülete (interfésze) megegyezik a régivel. Az osztály és a komponens fogalma nagyon hasonló az UML-ben Dr. Johanyák Zs. Csaba - Szoftvertechnológia

203 Interfész Van nyújtott (szolgáltatott) interfész (kör a jele) Van elvárt (required) interfész (félkör a jele) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

204 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Összetevő diagram 204

205 Interfészek összefogása csatlakozóba (portba) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

206 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Kialakítási diagram 206

207 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Kihelyezési/telepítési diagram 207

208 ADATBÁZISOK MODELLEZÉSE Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia Ismétlés és kiegészítés a tervezés témakörhöz 208

209 ER modell Forrás: asg/oktata s/Adatbazi sok/adatb elm_nyh_ pdf.PDF Dr. Johanyák Zs. Csaba - Szoftvertechnológia

210 Relációs modell Dr. Johanyák Zs. Csaba - Szoftvertechnológia

211 Leképezési szabályok Egyedtípus → reláció Összetett attribútumok → komponensekre bontás → reláció Kulcsattr. → elsődleges kulcs N:M kapcsolat → kapcsolat reláció Dr. Johanyák Zs. Csaba - Szoftvertechnológia

212 Kiinduló relációk Dr. Johanyák Zs. Csaba - Szoftvertechnológia

213 Normálformák 1. A táblázat minden cellájában csak egy attribútum érték szerepel (1NF) 2. Minden nem kulcs (másodlagos) attribútum funkcionálisan teljesen függ minden kulcstól (2NF) 3. Nincs olyan másodlagos attribútum, ami tranzitívan függne valamilyen kulcstól Dr. Johanyák Zs. Csaba - Szoftvertechnológia

214 Entity Framework Dr. Johanyák Zs. Csaba - Szoftvertechnológia

215 Entity Framework modell kialakítása Id Egyedtípus → entitás Összetett attribútumok → komponensekre bontás → entitás Kulcsattr. → elsődleges kulcs (Entity key) N:M kapcsolat → kapcsolat Automatikusan keletkező navigációs tulajdonságok Dr. Johanyák Zs. Csaba - Szoftvertechnológia

216 IMPLEMENTÁLÁS - FOLYTATÁS Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

217 Prototípus A szoftverrendszer kezdeti verziója, amelyet arra használnak, hogy bemutassák a koncepciókat kipróbálják a tervezési opciókat jobban megismerjék a problémát és annak lehetséges megoldásait Támogatott tevékenységek a követelménytervezési folyamatban követelmények feltárása követelmények validálása Felhasználható Felhasználók képzésére Rendszer tesztelésére Dr. Johanyák Zs. Csaba - Szoftvertechnológia

218 A prototípus készítés előnyei A funkciók bemutatásakor azonosítani lehet a szoftverfejlesztők és a felhasználók közötti félreértéseket A szoftverfejlesztésen dolgozók hiányos és/vagy ellentmondásos követelményekre akadhatnak Hamar a rendelkezésünkre áll egy működő rendszer, így demonstrálhatjuk a vezetőségnek az alkalmazás megvalósíthatóságát és hasznosságát A prototípus felhasználható a valódi rendszer specifikációjának megírásakor A rendszer jobban használható lesz A rendszer jobban illeszkedik a felhasználói igényekhez Jobb a tervezés minősége Jobb a rendszer karbantarthatósága Kevesebb erőfeszítés szükséges a fejlesztéshez Dr. Johanyák Zs. Csaba - Szoftvertechnológia

219 Prototípus típusai Evolúciós prototípus - készítésének célja egy működő rendszer átadása a végfelhasználóknak Eldobható prototípus - készítésének célja a rendszerkövetelmények validálása vagy származtatása. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

220 Gyors prototípus készítési technikák Magas szintű nyelvek (3GL, 4GL) Komponensek és alkalmazások összeépítése Alkalmazási szinten Komponens szinten Dr. Johanyák Zs. Csaba - Szoftvertechnológia

221 Programozási nyelvek 1. generációs: gépi szintű nyelv/utasítások, kapcsolókkal vitték be Dr. Johanyák Zs. Csaba - Szoftvertechnológia Kép forrása i/File: panel.jpg 221

222 Programozási nyelvek 2. generációs (2GL): assembly nyelvek – van logikai struktúra, lassú fejlesztés 3. generációs (3GL): magasszintű nyelvek, strukturált programozás támogatása, kényelmi funkciók, nem kell a programozó kidolgozzon minden egyes részletet pl. C, C++, C#, Java, BASIC and Delphi gyorsabb fejlesztés, de sok hibalehetőség Dr. Johanyák Zs. Csaba - Szoftvertechnológia

223 Programozási nyelvek 4. generációs(4GL): kereskedelmi/üzleti célú szoftverek fejlesztéséhez, magasabb absztrakciós szint még gyorsabb fejlesztés kevesebb hibával, cél a fejlesztési költségek csökkentése PowerBuilder, jelentés generáló rendszerek, form generáló rendszerek, adatfeldolgozó rendszerek: SAS, SPSS Pl: generation_programming_language#Some_fourt h-generation_languageshttp://en.wikipedia.org/wiki/Fourth- generation_programming_language#Some_fourt h-generation_languages Dr. Johanyák Zs. Csaba - Szoftvertechnológia

224 Programozási nyelvek 5 GL: mesterséges intelligencia nyelvek, feladatmegoldás a korlátok/kényszerek megadásával, logikai nyelvek - ? Dr. Johanyák Zs. Csaba - Szoftvertechnológia

225 Az objektum-orientált tervezés néhány kérdése Mik az objektumok? Alapelvek: egységbezárás, öröklődés, többrétűség, adatrejtés Vezérlés – szolgáltatáskérés Szinkron kommunikáció Aszinkron kommunikáció Ütemezés – szabályozott megosztott hozzáférés erőforráshoz Nem preemptív – pl. szemaforok Preemptív Dr. Johanyák Zs. Csaba - Szoftvertechnológia

226 Az objektum-orientált tervezés néhány kérdése Objektum belső állapota Objektumok élettartama Perzisztens objektumok: élettartamuk hosszabb mint a program futási ideje Tranziens objektumok Nagyszámú perzisztens objektum  adatbáziskezelő rendszer alkalmazása RDB ha sok objektum, de kevés osztály OODB Dr. Johanyák Zs. Csaba - Szoftvertechnológia

227 OBJEKTUM ORIENTÁLT SZOFTVERFEJLESZTÉSI MÓDSZERTANOK Dr. Johanyák Zs. Csaba - Szoftvertechnológia

228 Objektum orientált szoftverfejlesztési módszertanok OMT Booch RUP Dr. Johanyák Zs. Csaba - Szoftvertechnológia

229 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Object Modeling Technique (OMT) Rumbaugh, Blaha, Premerlani, Eddy és Lorensen 1991 Egyszerű objektum orientált szoftverfejlesztési módszertan Jelölésrendszerének számos elemét átvették az UML-ben Alapgondolat: az OO gondolkodás közelebb áll az emberi problémamegoldáshoz, mint a korábbi próbálkozások A követelmény elemzés és tervezési fázis támogatására dolgozták ki Szekvenciális. Először a követelmény elemzés, majd a tervezés Mindegyik fázisban a kis lépések ciklikusan ismétlődnek Nem hangsúlyozza ki a tényleges implementációt, a tesztelést és a többi alaptevékenységet (fázist) 229

230 A modellezés célja (Rumbaugh ) A fizikai egységek tesztelése még beépítés előtt (szimuláció), Kommunikáció a megrendelővel Megjelenítés (vizualizáció) Bonyolultság csökkentése Dr. Johanyák Zs. Csaba - Szoftvertechnológia

231 Dr. Johanyák Zs. Csaba - Szoftvertechnológia OMT Három modell kidolgozását javasolja Objektum modell: a rendszer építőelemei  OM diagramok: objektumok és osztályok közötti statikus kapcsolatok Dinamikus modell: építőelemek közötti kölcsönhatás (események, állapotok átmenetek)  állapot diagram és esemény folyam diagram Funkcionális modell: a rendszer eljárásai adatfolyam/áramlás szempontból  adatfolyam diagramok 231

232 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Objektum diagram 232

233 Dr. Johanyák Zs. Csaba - Szoftvertechnológia OMT fázisai Elemzés - f eladatmeghatározás (célok és alapkoncepciók felsorolása is) Rendszertervezés fázis A rendszer felépítése (architektúra) Alrendszerek meghatározása Alrendszerek folyamatokhoz rendelése figyelembe véve a párhuzamos végrehajtást és együttműködést Perzistens adattárolás (adatbázis) Megosztott – globális információ kezelése, Határesetek vizsgálata, prioritások meghatározása Objektum tervezés fázis Implementációs terv elkészítése Osztályok és algoritmusok definiálása Adattárolás optimalizálás Öröklődés, asszociáció, aggregáció, alapértelmezett értékek vizsgálata Szoftver implementálás 233

234 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Booch módszertan Grady Booch A grafikus jelölésrendszer egy része bekerült az UML-be Az követelmény elemzési és a tervezési fázist fedi le Négy modellt dolgoz ki a feladatról Logikai modell (az osztályok és objektumok) Fizikai modell Statikus modell Dinamikus modell A modellek dokumentálására használt diagramok Osztály, objektum, modul, Állapot, kölcsönhatás, folyamat 234

235 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Booch osztálydiagram Forrás: Forrás: Grady Booch: Object- Oriented Analysis and Design. With Applications, 2nd edition, Addison- Wesley Longman, ISBN ,

236 Osztálydiagram példa Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: Grady Booch: Object- Oriented Analysis and Design. With Applications, 2nd edition, Addison- Wesley Longman, ISBN , 1994 Hidrokultúrás kertészeti rendszer 236

237 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Booch objektum diagram Forrás: 237

238 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechn Booch modul diagram Forrás: 238

239 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill Booch állapot átmenet diagram 239

240 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Booch - Fázisok Követetelmény-elemzés (analízis) – ciklikusan ismétli a három részfeladatot Követelmények a megrendelő szempontjából (a rendszer feladatainak és struktúrájának magasszintű leírása) Domain elemzés (osztályok attribútumok, öröklődés, metódusok + állapot diagramok az objektumokhoz) Validálás Tervezés (design) – ciklikusan ismétli a részfeladatokat Logikai tervezés Fizikai tervezés (Végrehajtási szálak, folyamatok, teljesítmény, adattípusok, adattstruktúrák) Prototípus létrehozása és tesztelése 240

241 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Egységesített eljárás – Rational Unified Process A három legelterjedtebb szoftverfejlesztési módszer egységesítésével jött létre 1997-ben (OMT + Booch + OOSE) Rational Unified Process (RUP) IBM Világszerte elterjedt fejlesztési módszertan Nagyon sok előző módszertanból merít Keret módszertan -> testre kell szabni 241

242 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Használati eset vezérelt (use case driven) A rendszer fejlesztésének elején meghatározott használati esetek végigkísérik a teljes fejlesztést Architektúra központú (architecture centric) A teljes fejlesztést meghatározza a rendszer architektúrája Iteratív és inkrementális (növekvő) Az egyes iterációk során a rendszer újabb verzióit fejlesztjük, készítjük el. Az egyes iterációk munkafolyamatokból állnak Főbb jellemzői 242

243 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Architektúra központú fejlesztés Architektúra: strukturálisan fontos elemek és ezek kapcsolata A rendszer nagy léptékű tagolását írja elő Nehezen megváltoztatható, a rendszer egész élettartama alatt változatlan A helyes architektúra meghatározása kulcsfontosságú: ha itt hibázunk, akkor ennek a kijavítása nagyon sokba kerül A klasszikus példa : ház Alaprajz Homlokzati rajz Elektromos kábelezés és berendezések Épületgépészet, vízvezetékek, fűtés 243

244 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Az architektúra célja Lehetővé teszi a bonyolultság kezelését Átláthatóvá tesz a fejlesztést Könnyebben felismerhetőek az újrafelhasználható elemek Átlátható projekt menedzsment Kockázatok csökkentése Lehetővé válik a párhuzamos fejlesztés 244

245 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Fázisok: Előkészítés Kidolgozás Megvalósítás Átadás Munka- folyamatok folyamatokKövetelményekTervezésImplementációTeszt RUP Ábra: 245

246 RUP – mérföldkövek - iterációk Minden fázis vége a fejlesztés egy-egy jól meghatározott mérföldkövét (milestone) jelenti, azaz olyan pontot, ahol egy célt kell elérnünk, illetve ahol kritikus döntéseket kell meghozni. A fázisok további kisebb egységekre, iterációkra (iteration) bonthatók. Minden iteráció egy teljes, illetve részben önálló fejlesztési ciklust jelent, mivel az iteráció végén egy működő és végrehajtható alkalmazásnak kell felállnia, az iteráció végén a rendszer újabb, bővített funkcionalitású verziója készül el. Minden egyes iteráció egy-egy mini fejlesztés. Az Egységesített Eljárás iterációi tervezettek és szigorúan ellenőrzöttek. Az iterációk számát és időtartamát, az egyes iterációk feladatát és az általuk előállított termékeket, az iterációs munkafolyamatok résztvevőit előre tervezik. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

247 Dr. Johanyák Zs. Csaba - Szoftvertechnológia RUP – átlós jelleg Ábra: 247

248 Átlós jelleg Az előkészítés fázisában a legnagyobb hangsúly a követelmények rögzítésére helyeződik, a többi tevékenység pedig jóval kisebb mértékben kap szerepet, tesztelés pedig gyakorlatilag nincs is. A későbbi iterációkban, illetve fázisokban ez a hangsúly fokozatosan áthelyeződik a technikaibb jellegű tevékenységekre. Az átadás fázisában már elsősorban tesztelés zajlik, így elemzés, tervezés és implementáció a tesztekre vonatkozóan és azok eredményeitől függően válik szükségessé, míg a követelmények összegyűjtése már nem kap szerepet. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

249 Dr. Johanyák Zs. Csaba - Szoftvertechnológia A fejlesztés fázisai Előkészítés a rendszer eredeti ötletét olyan részletes elképzeléssé dolgozzuk át, mely alapján a fejlesztés tervezhető lesz, a költségei pedig megbecsülhetők; megfogalmazzuk, hogy a felhasználók milyen módon fogják használni a rendszert, itt azonosítjuk a kulcsfontosságú használati eseteket, azaz a rendszer alapvető szolgáltatásait. milyen alapvető belső szerkezetet, architektúrát alakítunk ki. Kidolgozás a „használati eseteket” részleteiben is kidolgozzuk; alaparchitektúra kialakítása (Executable Architecture Baseline); az alaparchitektúra segítségével a teljes fejlesztés folyamata ütemezhető, és a költségei is tisztázhatók. Megvalósítás a rendszer iteratív és inkrementális növelése. a teljes rendszert kifejlesztjük (tervezés, kódolás). Átadás bétaváltozatok, tesztelés, módosítás dokumentációk, egyéb kapcsolódó termékek 249

250 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

251 Dr. Johanyák Zs. Csaba - Szoftvertechnológia A fázisok erőforrás- és időigénye egy átlagos fejlesztés esetében 5% 20% 65% 10% 10% 30% 50% 10% Fázisok: Előkészítés Kidolgozás Megvalósítás Átadás 251

252 Idő- és erőforrásigény A különböző jellegű fejlesztéseknél az egyes fázisok idő illetve erőforrás igénye lényegesen különbözhet. Például egy létező termék újabb verziójánál az előkészítő fázis majdnem nullára zsugorodhat, s a kidolgozási fázis is rövid lehet. Ugyanakkor egy ismeretlen szakterülten, ismeretlen eszközökkel végzett fejlesztés esetében az előkészítés igen hosszú ideig tarthat. Általános jellegzetesség, hogy az építési fázis a leghosszabb és a legnagyobb erőforrás igényű. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

253 Idő- és erőforrásigény Viszonylag általános jellegzetesség, hogy az előkészítő fázisnak jellemzően nagyobb az idő, mint az erőforrás igénye. Az elkészítő fázisban viszonylag kevés ember s viszonylag csekély intenzitással foglalkozik a projekttel. A megvalósítási fázisnak jellemzően nagyobb az erőforrás és arányosan kisebb az időigénye, mivel ez a fázis viszonylag jól párhuzamosítható, a már jól definiált feladatokon párhuzamosan sok fejlesztő dolgozhat Dr. Johanyák Zs. Csaba - Szoftvertechnológia

254 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Egy iteráció munkafolyamatai (RUP) Üzleti modellezés (Business Modeling): a készítendő rendszer üzleti (szakterületi) környezetének vizsgálata Követelmények (Requirements): a rendszer működésével kapcsolatos kezdeti elképzelések összegyűjtése (a felhasználó szemszögéből) Elemzés (Analysis): követelményeket a fejlesztők szempontjának megfelelően rendezzük át, így azok együttessen a rendszer egy belső képét határozzák meg, mely a további fejlesztés kiindulópontja lesz. Rendszerezzük és részletezzük az összegyűjtött használati eseteket, valamint azok alapján meghatározzuk a rendszer alapstruktúráját. Tervezés (Design): az elemzés során kialakított szerkezeti váz teljessé tétele. A tervezésnek a rendszert olyan szinten kell vázolnia, melyből az közvetlenül, egyetlen kérdés és probléma felvetése nélkül implementálható. Implementáció (Implementation): forráskódok, bináris és futtatható állományok, szövegek, képek, stb. előállítása. Az állományok előállítása egyben azok függetlenül végrehajtható, önálló tesztjeit is jelenti. Teszt (Test): Megtervezzük és implementáljuk a teszteket, azok eredményeit szisztematikusan feldolgozzuk, majd hibák vagy hiányosságok esetén újabb tervezési vagy implementációs tevékenységeket hajtunk végre. 254

255 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Egységesített Eljárás architektúrája Megvalósítás 255

256 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Az egyes termékcsoportok eltérő növekedése Megvalósítás 256

257 RUP irodalom miskolc.hu/iitweb/export/sites/default/users/fic sorl/Targyak/Infterv/Segedletek/swprochand. pdf miskolc.hu/iitweb/export/sites/default/users/fic sorl/Targyak/Infterv/Segedletek/swprochand. pdf ppt Dr. Johanyák Zs. Csaba - Szoftvertechnológia

258 AGILIS MÓDSZEREK Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

259 Gyors szoftverfejlesztés – agilis módszerek Lassú fejlesztési folyamatok Gyorsan változó környezet A gyors szoftverfejlesztési folyamatokat arra tervezték, hogy segítségükkel gyorsan készíthessük használható szoftvereket Dr. Johanyák Zs. Csaba - Szoftvertechnológia

260 Kiáltvány az agilis szoftverfejlesztéséért (2001. február) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

261 Az agilis fejlesztés 12 alapelve 1 Legfontosabbnak azt tartjuk, hogy a vevőnk elégedett legyen, mert értékes szoftvert szállítunk neki hamar és folyamatosan. Elfogadjuk, hogy a követelmények változhatnak akár a fejlesztés vége felé is. Az agilis módszertanok befogadják a változást a megrendelő versenyképességének érdekében. Gyakran szállítsunk működő szoftvert, pár hetes és hónapos időközönként, lehetőleg a rövidebb periódust választva. A megrendelők, üzleti szakemberek és a szoftverfejlesztők dolgozzanak együtt minden nap a teljes projekt során. Építsük motivált egyénekre a projekteket. Teremtsük meg nekik a számukra szükséges környezetet és támogatást, és bízzunk bennük, hogy elvégzik a munkát. A személyes beszélgetés az információ átadásának leghatásosabb és hatékonyabb módja a fejlesztő csapaton belül. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

262 Az agilis fejlesztés 12 alapelve Az előrehaladás elsődleges mércéje a működő szoftver. Az agilis módszertanok elősegítik a fenntartható fejlesztést. A szponzoroknak, fejlesztőknek, felhasználóknak korlátlan ideig képesnek kell lenniük az egyenletes sebesség megőrzésére. A folyamatos figyelem a technikai kiválóságra és a jó tervezésre fokozza az agilitást. Az egyszerűség – az el nem végzett munkamennyiség maximalizálásának művészete – alapvető érték. A legjobb architektúrák, követelmények és rendszertervek az önszerveződő csapatmunkából alakulnak ki. A fejlesztői csapat rendszeres időközönként megfontolja, hogyan válhatna hatékonyabbá, és ennek megfelelően változtatja viselkedését. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

263 Általános jellemzők - alapelvek A specifikáció, a tervezés és az implementálás párhuzamosan zajlik. Nincs részletes rendszerspecifikáció. Inkrementális fejlesztés. A végfelhasználók is részt vesznek minden lépés specifikációjában és az eredmény kiértékelésében. Indítványozhatnak változtatásokat és új követelményeket (gyakran). Felhasználói felület vizuális tervezéssel Kezelési egyszerűség: az egyszerűségre kell koncentrálni, mind a fejlesztendő szoftver, mind a fejlesztési folyamat tekintetében. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

264 Előnyök A szolgáltatások hamar használhatók Mivel a felhasználót bevonják a fejlesztésbe, a rendszer sokkal jobban meg fog felelni az igényeiknek és ráadásul jobban elkötelezik magukat a szoftver mellett Az inkrementális szoftverfejlesztés közel áll az emberek probléma-megoldási módjához: mivel ritkán dolgozunk ki teljes megoldásokat, hanem a megoldásainkat lépésenként továbbfejlesztjük, és visszalépünk, ha hibáztunk Dr. Johanyák Zs. Csaba - Szoftvertechnológia

265 Nehézségek Nem biztos, hogy az ügyfél tud és akar is időt tölteni a fejlesztőcsapattal Személyi adottságok hiánya Gyakori áttervezés Az egyszerűség fenntartása külön munkát igényel Dr. Johanyák Zs. Csaba - Szoftvertechnológia

266 Hátrányok Kezelési problémák - kevés a rendszerdokumentáció Szerződésbeli problémák - nincs rendszer- specifikáció A független validáció nehezen oldható meg A folyamatos változtatás elronthatja a rendszer struktúráját Dr. Johanyák Zs. Csaba - Szoftvertechnológia

267 Alkalmazás Mikor alkalmazzák? Kis rendszerek/ kis projekt Kevés fejlesztő Alacsony kritikussági fok Gyakran változó követelmények Csak gyakorlott, szenior fejlesztők esetén Mikor nem? Nagy és elosztott rendszerek Kritikus rendszerek Hosszú élettartamú rendszerek Dr. Johanyák Zs. Csaba - Szoftvertechnológia

268 Agilis technikák eXtrém Programozás Scrum KristályTiszta és más Kristály módszertanok Dynamic Systems Development Method Feature Driven Development (Funkcionalitáson Alapuló Fejlesztés) Test Driven Development (Tesztelésen Alapuló Fejlesztés) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

269 eXtrém Programozás Minden követelmény forgatókönyv (felhasználói történet) Ez feladatokra bontható és egy-egy feladat önállóan implementálható A programozók változó párokban dolgoznak, és minden feladatra teszteket készítenek mielőtt még a kódot megírnák Minden tesztnek sikeresen le kell futnia, mielőtt az új kódot elhelyeznék a rendszerben A rendszer kiadásai között csak kis idő telik el (pl. 1 hét) Folyamatos tökéletesítés (a kódot át kell írni, átszervezni, hatékonyabbá tenni, amikor csak lehet) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

270 XP lépések 1. A kiadáshoz történő felhasználói történet kiválasztása 2. A történet feladatokra bontása 3. A kiadás tervezése 4. A szoftver fejlesztése/integrálása/tesztelése 5. A szoftver kiadása 6. A rendszer értékelése 7. Vissza  1. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

271 Felhasználói történet „Egy cikk letöltése és kinyomtatása Először válasszuk ki egy megjelenített listából a kívánt cikket. Aztán adjuk meg a rendszernek a fizetési módot – ez lehet előfizetéses vagy vállalati számláról történő vagy hitelkártyával. Ezután kapunk egy kitöltendő szerzői jogi űrlapot. Ha ezt elküldtük, a cikk letöltődik a számítógépünkre. Ezután választunk egy nyomtatót és kinyomtatjuk a cikk egy másolatát. Közöljük a rendszerrel a sikeres nyomtatás tényét. Ha a cikk csak nyomtatható, akkor nem őrizhetjük meg a PDF-verziót, így az automatikusan törlődik a számítógépünkről.” Dr. Johanyák Zs. Csaba - Szoftvertechnológia

272 Feladatokra bontás „3. feladat: A fizetési lehetőségek implementálása A fizetés három különböző úton történhet. A felhasználó kiválasztja, hogy milyen módon szeretne fizetni. Ha a felhasználónak van könyvtári olvasójegye, akkor beírhatja ide annak azonosítóját, amit a rendszernek ellenőriznie kell. Másik lehetőség, hogy megad egy szervezeti számlaszámot. Ha az érvényes, akkor a cikknek megfelelő költséggel megterhelik a számlát. Végül beírható a 16 számjegyből álló hitelkártyaszám és lejárati dátum. Ellenőrizni kell ennek az érvényességét, és amennyiben érvényes, akkor terhelést kell küldeni a hitelkártyaszámlára.” Dr. Johanyák Zs. Csaba - Szoftvertechnológia

273 Teszteset-leírás 4. teszt: Hitelkártya érvényességének ellenőrzése Bemenet: A hitelkártyaszám egy karaktersorozat, míg a kártya lejárati hónapját és évét két egész szám reprezentálja. Tesztek: Ellenőrizni kell, hogy a karaktersorozat minden bájtja számjegy- e. Ellenőrizni kell, hogy a hónap egy és 12 között van-e és az év nagyobb vagy egyenlő-e az aktuális évvel. A hitelkártya számának első négy számjegye alapján ellenőrizni kell, a kibocsátó érvényességét a kártyakibocsátók táblázata alapján. A hitelkártya érvényességét ellenőrizzük úgy, hogy elküldjük a kártyaszámot és a lejárati dátuminformációt a kártya kibocsátójához. Kimenet: OK vagy hibaüzenet, ami a kártya érvénytelenségét jelzi. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

274 SCRUM Dr. Johanyák Zs. Csaba - Szoftvertechnológia

275 Scrum Hirotako Takeuchi & Ikoyiro Nonaka (1986) új, gyors termékfejlesztési módszer A Scrum elnevezés a rugby-ből ered Iteratív és inkrementális agilis szoftverfejlesztési keretrendszer Rugalmas Demokratikus, rugalmas, felelősség- és eredményközpontú, emberközpontú módszer A határidő szent és sérthetetlen Elsősorban kis csapatok 5-9 fő esetén működik jól A csapat végig együtt dolgozik Dr. Johanyák Zs. Csaba - Szoftvertechnológia

276 Scrum jellemzők Szóbeli kommunikáció Gyakran önszerveződő csapat Nem fedi le a teljes termékfejlesztési életciklust, ezért gyakran együtt alkalmazzák más módszerekkel Pl. kezdeti követelményelemzés, prioritások meghatározása, kezdeti magas szintű tervezés, ütemezés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

277 Scrum alapelvek A vevő igényei menet közben változhatnak Elfogadjuk, hogy lehet, hogy a feladatot nem tudjuk teljesen megérteni vagy definiálni Arra összpontosít a csapat, hogy a lehető leggyorsabban szállítson reagáljon az új követelményekre Dr. Johanyák Zs. Csaba - Szoftvertechnológia

278 Szerepkörök 1 Termékgazda (Product Owner): Termék teendőlista (Product Backlog) Biztosítja az értékteremtést Felhasználói történeteket ír és karbantartja azokat A fejlesztő csapat tagja lehet, lehet ő a projektmenedzser Fejlesztő csapat Feladata a sprint cél teljesítése A sprint végére átadható terméket kell előállítson 7±2 fő Dr. Johanyák Zs. Csaba - Szoftvertechnológia

279 Szerepkörök 2 SrumMaster: Segíti a csapatot Elhárítja a sprintcélt veszélyeztető akadályokat Gondoskodik arról, hogy helyesen alkalmazzák a Scrum-ot Nem csapatvezető, nem lehet azonos a projekt menedzserrel Dr. Johanyák Zs. Csaba - Szoftvertechnológia

280 Termék teendőlista (Product Backlog) Sprint teendőlista (Sprint Backlog) 2-4 weeks 24h Futam (Sprint) Egy működő szoftveregység (Working increment of the software) A Scrum folyamat Dr. Johanyák Zs. Csaba - Szoftvertechnológia

281 Termék teendőlista (Product Backlog) Magas szintű követelmény leírások Fejlesztési célok (funkciók leírásai, kívánságok, ötletek, stb.) Prioritások Üzleti érték becslés ← Terméktulajdonos Ráfordításigény becslés ← Fejlesztők Dr. Johanyák Zs. Csaba - Szoftvertechnológia

282 Sprint - Futam Egy előre meghatározott időtartamú részfolyamat 1 hét … 1 hónap (ált. 2 hét) Futamtervező megbeszélés → feladatok beazonosítása → Futam teendőlistája Sprintcélok megvalósítása (fejlesztés) és napi megbeszélés A végén értékelés (sprint forduló) Futamáttekintés Visszatekintés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

283 Futamtervező megbeszélés (Sprint planning) Elvégzendő feladatok kijelölése a termék teendőlistájáról (product backlog) a terméktulajdonos közreműködésével Futam teendőlistájának előkészítése, amely a teljes csapat figyelembevételével részletezi az egyes részfeladatok időszükségleteit Annak meghatározása és kommunikálása, hogy mennyi feladat elvégzése várható el az aktuális futam során 4 hetes futam esetén maximum 8 óra hosszúságú, rövidebb futam esetén ez az esemény is rövidebb Dr. Johanyák Zs. Csaba - Szoftvertechnológia

284 Futam teendőlistája (Sprint Backlog) A fejlesztő csapat "vállalja be a termék teendőlistáról" A csapat kezeli Felhasználói történetek/Funkciók részfeladatokra bontva A csapattagok önkéntesen vállalnak egy-egy részfeladatot a napi megbeszélések során – prioritások és készségek alapján Követés: Scrum Task Board Dr. Johanyák Zs. Csaba - Szoftvertechnológia

285 Scrum Task Board Forrás: edia.org/wikipedia/c ommons/1/1b/Scru m_task_board.jpg Dr. Johanyák Zs. Csaba - Szoftvertechnológia

286 Napi megbeszélés (Daily Scrum) Minden nap ugyanott, ugyanakkor, max. 15 perc Minden csapattagnak válaszolni kell: Mit csináltál az előző „Daily Scrum” óta? Mit tervezel mára? Akadályozza-e valami a munkádat? Dr. Johanyák Zs. Csaba - Szoftvertechnológia Ábra:

287 Burn down chart Naponta frissített diagram a futam állapotáról A hátralevő munka mennyisége Dr. Johanyák Zs. Csaba - Szoftvertechnológia Ábra: rg/wiki/File:Sample BurndownChart.png

288 Futamáttekintés (Demo vagy Sprint Review) Mely munkák készültek el és melyek nem? Az elkészült munka bemutatása a terméktulajdonos és a fejlesztésben érdekeltek részére (demo) Be nem fejezett munkát nem lehet bemutatni 4 hetes futam esetén maximum 4 óra hosszúságú, rövidebb futam esetén ez az esemény is rövidebb Dr. Johanyák Zs. Csaba - Szoftvertechnológia

289 Visszatekintés (Sprint Retrospective) A csapattagok véleményt alkotnak az elmúlt futamról Javaslatokat tesznek a folyamatok továbbfejlesztésére Két kérdés merül fel a megbeszélésen: Mi az, ami jól ment a futam alatt? Mi az, amit a következő futam során jobban lehetne csinálni? 4 hetes futam esetén maximum 3 óra hosszúságú, rövidebb futam esetén ez az esemény is rövidebb Dr. Johanyák Zs. Csaba - Szoftvertechnológia

290 Növekmény (Increment) A korábbi és a jelenlegi futam által megvalósított teendők összessége Dr. Johanyák Zs. Csaba - Szoftvertechnológia

291 SZOFTVEREK ELLENŐRZÉSE ÉS ELEMZÉSE Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

292 Verifikáció és validáció Verifikáció: a specifikációnak való megfelelés ellenőrzése Validáció: a vevői elvárások teljesülésének ellenőrzése (pl. ide tartozhat a hatékonyság e., hibatűrés e., erőforrásigény e. is) V&V-re a teljes fejlesztési folyamat során szükség van Dr. Johanyák Zs. Csaba - Szoftvertechnológia

293 V modell Dr. Johanyák Zs. Csaba - Szoftvertechnológia

294 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Ellenőrzési technikák Statikus elemzés Szoftver átvizsgálás Automatikus elemzés Dinamikus tesztelés Hiányosság tesztelés Stressz tesztelés Komponens tesztelés Rendszer (integrációs) tesztelés 294

295 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Szoftver átvizsgálás Legalább 4 fős csapat: szerző, olvasó, tesztelő, moderátor Átvizsgálás ↔ Szerző módosít Tipikus hibák: adath., vezérlési h., I/O h., interfész h., tárkezelési h., kivételkezelési h. A program hibáinak több mint 60%-a felderíthető ily módon 295

296 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Automatikus elemzés Szoftver, ami a forrásszöveget vizsgálja (nem futtat) Nem használt kódrészlet, inicializálatlan változók Tipikus hibák: adath., vezérlési h., I/O h., interfész h., tárkezelési h. Pl. LINT/Splint C; VS beépített figyelmeztetések, ReSharper Nem ismeri fel a helytelen inicializálást 296

297 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Szoftverek ellenőrzése és elemzése Technikák Statikus elemzés Szoftver átvizsgálás Automatikus elemzés Dinamikus tesztelés Hiányosság tesztelés Stressz tesztelés Komponens tesztelés Rendszer tesztelés Hogyan? Milyen céllal? Mit? 297

298 A hiányosságtesztelés folyamata Dr. Johanyák Zs. Csaba - Szoftvertechnológia

299 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Hiányosság tesztelés Célok A specifikáció és a megvalósított program közötti eltérések felderítése A rendszer helytelen működésének előidézése Irányelvek Válasszunk olyan bemeneteket, amelyekkel az összes lehetséges hibaüzenetet előidézhetjük Próbáljuk meg elérni a bemeneti pufferek túlcsordulását Ugyanaz a bemenet ugyanazt a kimenetet adja mindig? Kényszerítsük ki az érvénytelen kimenetet 299

300 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Hiányosság-tesztelési módszerek Fekete doboz tesztelés A rendszer/komponens belseje nem ismert A bemenetre adott válaszok tanulmányozása Fehér doboz tesztelés Ismert a szerkezet Kis egységekre alkalmazzák Minden független végrehajtási utat kipróbálnak (útvonal teszt) 300

301 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Fehér doboz tesztelés Útvonalak felderítése Egyszerű esetekben folyamatgráf felrajzolása kézzel Bonyolult esetekben dinamikus programelemzővel (DPE) DPE: a fordítóval együttműködő szoftver, számolja, hogy az egyes utasítások hányszor kerültek végrehajtásra – mi maradt ki → futási profil 301

302 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Útvonalak - folyamatgráf 302

303 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Stressz (teljesítmény) tesztelés Cél A teljesítmény és a megbízhatóság tesztelése A tervezett terhelés mellett képes legyen dolgozni a rendszer Olyan hiányosságok is kiderüljenek, amelyek nem jelennek meg normál körülmények között Eljárás Addig növeljük a terhelést, amíg a rendszer teljesítménye elfogadhatatlanná nem válik 303

304 Dr. Johanyák Zs. Csaba - Szoftvertechnológia Szoftverek ellenőrzése és elemzése Technikák Statikus elemzés Szoftver átvizsgálás Automatikus elemzés Dinamikus tesztelés Hiányosság tesztelés Stressz tesztelés Komponens tesztelés Rendszer tesztelés Hogyan? Milyen céllal? Mit? 304

305 Komponenstesztelés (egységteszt) Cél a komponensekben levő hibák felderítése Általában hiányosságtesztelés Mit tesztelünk? Metódusok Osztályok Teljes komponens (több osztály) funkcionalitása Dr. Johanyák Zs. Csaba - Szoftvertechnológia

306 Rendszertesztelés A komponensek integrálásával kapott egész tesztelése Szakaszok Integrációs tesztelés – fehér doboz tesztelés Cél a hiányosságok felderítése Kiadás tesztelés – fekete doboz tesztelés Jól működik-e a rendszer? Dr. Johanyák Zs. Csaba - Szoftvertechnológia

307 Integrációs tesztelés Cél az együttműködésből adódó problémák felderítése Képesek-e együttműködni? Megfelelőek-e a metódushívások? Mely komponens csoportok biztosítják az egyes funkcionalitás elemeket? Leggyakoribb az inkrementális integrációs tesztelés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

308 Regressziós tesztelés Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: Mileff Péter: Szoftverfejlesztés segédlet [Link]Mileff PéterLink 308

309 PROGRAMTERVEZÉSI MINTÁK Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

310 Programtervezési minták Design Patterns Újrahasznosítható osztályok: igazodnia kell a megoldandó problémához  eléggé általánosnak kell lennie ahhoz, hogy később könnyen módosítható legyen Típusfeladatokra bevált megoldások Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (GoF - Gang of Four) 23 minta Minta: „Egymással együttműködő objektumok és osztályok leírása, amely testreszabott formában valamilyen általános tervezési problémát old meg egy bizonyos összefüggésben.” Azonosítja a résztvevő osztályokat és objektumokat, szerepüket és kapcsolataikat Dr. Johanyák Zs. Csaba - Szoftvertechnológia

311 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

312 Egyke - singleton A minta neve és besorolása: Egyke, objektum-létrehozási minta Cél: Egy osztályból csak egy példányt engedélyezni, és ehhez globális hozzáférési pontot megadni Egyéb nevek: Singleton Feladat: Egyes osztályok esetén fontos, hogy pontosan egy példány legyen belőlük. Egy rendszerben több nyomtató is lehet, de nyomtatási sorból csak egyet lehet használni. Vagy csak egy fájlrendszer és csak egy ablakkezelő futhat. Hogyan biztosíthatjuk, hogy egy osztályból csak egyetlen példány legyen, de azt könnyen el lehessen érni? Ha globális változót hozunk létre, akkor az objektum könnyen elérhető lesz, de akkor akárhány példányt létrehozhatunk belőle. Maga az osztály a felelős a példányok nyilvántartásáért. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

313 Egyke Alkalmazhatóság: Pontosan egy példányra van szükség egy osztályból és annak elérhetőnek kell lennie az ügyfelek számára. Az osztály bővíthető kell legyen (leszármazott osztályok), és az ügyfelek legyenek képesek a saját kódjuk módosítása nélkül használni a bővített osztály példányát. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

314 Egyke Szerkezet: Dr. Johanyák Zs. Csaba - Szoftvertechnológia

315 Egyke Résztvevők: Egyke: Meghatároz egy olyan Példány műveletet, amely lehetővé teszi, hogy az ügyfelek hozzáférjenek az osztály egyedi példányához. A Példány statikus metódus. Felelős saját egyedi példányának (objektumának) létrehozásáért. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

316 Egyke Együttműködés: Az ügyfelek az Egyke példányt kizárólag az Egyke Példány műveletén keresztül érik el. Következmények: Az Egyke minta előnyei: Szabályozott hozzáférés az egyetlen példányhoz. Nincs globális változó. A leszármazással bővíthető az Egyke osztály funkcionalitása. Nem csak pontosan egy, hanem akárhány példány ellenőrzött létrehozására is alkalmas. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

317 C# megvalósítás class Egyke { private static Egyke EgyediPéldány; public static Egyke Példány() { if (EgyediPéldány == null) EgyediPéldány = new Egyke(); return EgyediPéldány; } protected Egyke(){ … } … } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

318 Használat Egyke e=new Egyke(); Miért nem jó a fenti utasítás? A jó megoldás: Egyke e=Egyke.Példány(); Dr. Johanyák Zs. Csaba - Szoftvertechnológia

319 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

320 Simple Factory Dr. Johanyák Zs. Csaba - Szoftvertechnológia

321 Simple Factory Dr. Johanyák Zs. Csaba - Szoftvertechnológia

322 ClassicStyle public class ClassicStyle:Name {public ClassicStyle(string FullName) {string[] sa = FullName.Split(' '); LastName = sa[sa.Count() - 1]; FirstName = ""; for (int i = 0; i < sa.Count()-1; i++) {FirstName += sa[i]+" "; } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

323 CommaStyle public class CommaStyle:Name {public CommaStyle(string FullName) { string[] sa = FullName.Split(','); FirstName = sa[1].Trim(); LastName = sa[0].Trim(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

324 NameFactory public class NameFactory {public NameFactory(string FullName) {if (FullName.IndexOf(",") > -1) Name = new CommaStyle(FullName); else Name = new ClassicStyle(FullName); } public Name Name{get; set;} } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

325 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

326 Adapter - Illesztő A cél egy olyan új osztály/objektum létrehozása, ami a korábbi osztály felhasználásával megvalósít egy elvárt új interfészt Például: a korábbi osztály rendelkezik Vezetéknév és Utónév tulajdonságokkal, de Teljesnév tulajdonsággal nem, és nekünk erre a tulajdonságra van szükségünk Megvalósítási módok Öröklődés Beágyazás Kiegészítés Bővítő metódus Dr. Johanyák Zs. Csaba - Szoftvertechnológia

327 Megoldás öröklődéssel public class Alap {public Alap(string V, string U) {Vezetéknév = V; Utónév = U; } public string Vezetéknév{ get; set; } public string Utónév { get; set; } } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

328 Megoldás öröklődéssel public class Leszármazott:Alap { public Leszármazott(string V, string U):base(V,U){} public string Teljesnév { get { return Vezetéknév + " " + Utónév; } } } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

329 Megoldás öröklődéssel static void Main(string[] args) { Leszármazott l = new Leszármazott("Duli", "Fuli"); Console.WriteLine(l.Teljesnév); Console.ReadLine(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

330 Megoldás beágyazással public class Beágyazott {Alap Alap; public string Teljesnév { get { return Alap.Vezetéknév + " " + Alap.Utónév; } } public string Vezetéknév { get { return Alap.Vezetéknév; } set { Alap.Vezetéknév = value; } } public string Utónév { get { return Alap.Utónév; } set { Alap.Utónév = value; } } public Beágyazott(string V,string U) { Alap = new Alap(V,U); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

331 Megoldás beágyazással static void Main(string[] args) { Beágyazott b = new Beágyazott("Zsákos", "Bilbó"); Console.WriteLine(b.Teljesnév); Console.ReadLine(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

332 Megoldás kiegészítéssel public partial class Alap {public Alap(string V, string U) {Vezetéknév = V; Utónév = U; } public string Vezetéknév { get; set; } public string Utónév { get; set; } } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

333 Megoldás kiegészítéssel public partial class Alap { public string Teljesnév { get { return Vezetéknév + " " + Utónév; } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

334 Megoldás kiegészítéssel static void Main(string[] args) { Alap a = new Alap("Zsákos", "Frodó"); Console.WriteLine(a.Teljesnév); Console.ReadLine(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

335 Megoldás bővítő metódussal Dr. Johanyák Zs. Csaba - Szoftvertechnológia

336 Megoldás bővítő metódussal public sealed class Alap {public Alap(string V, string U) {Vezetéknév = V; Utónév = U; } public string Vezetéknév { get; set; } public string Utónév { get; set; } } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

337 Megoldás bővítő metódussal public static class Bővítő { public static string Teljesnév(this Alap a) { return a.Vezetéknév + " " + a.Utónév; } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

338 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

339 Bridge - Híd Egy képzeletbeli okos TV, amivel nézhetünk Kábel TV-t Műholdas adást IPTV-t A felhasználó lekérheti a műsort (Guide) és indíthatja a kiválasztott műsorforrás megtekintését Absztrakció: műsor lekérés, indítás Minden műsorforrás esetén más a megvalósítás Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás: 339

340 Dr. Johanyák Zs. Csaba - Szoftvertechnológia

341 Interfész interface IVideoSource { string GetTvGuide(); string PlayVideo(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

342 Megvalósítás class LocalCabelTv : IVideoSource { const string SOURCE_NAME = "Local Cabel TV"; string IVideoSource.GetTvGuide() { return string.Format("Getting TV guide from - {0}", SOURCE_NAME); } string IVideoSource.PlayVideo() { return string.Format("Playing - {0}", SOURCE_NAME); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

343 LocalDishTv class LocalDishTv : IVideoSource { const string SOURCE_NAME = "Local DISH TV"; string IVideoSource.GetTvGuide() { return string.Format("Getting TV guide from - {0}", SOURCE_NAME); } string IVideoSource.PlayVideo() { return string.Format("Playing - {0}", SOURCE_NAME); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

344 IPTvService class IPTvService: IVideoSource { const string SOURCE_NAME = "IP TV"; string IVideoSource.GetTvGuide() { return string.Format("Getting TV guide from - {0}", SOURCE_NAME); } string IVideoSource.PlayVideo() { return string.Format("Playing - {0}", SOURCE_NAME); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

345 RefinedAbstraction class MySuperSmartTV {IVideoSource currentVideoSource = null; public IVideoSource VideoSource { get { return currentVideoSource; } set { currentVideoSource = value;} } public void ShowTvGuide() { if (currentVideoSource != null) { Console.WriteLine(currentVideoSource.GetTvGuide()); } else { Console.WriteLine("Please select a Video Source to get TV"+ " guide from"); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

346 RefinedAbstraction public void PlayTV() { if (currentVideoSource != null) { Console.WriteLine(currentVideoSource.PlayVideo()); } else { Console.WriteLine( "Please select a Video Source to play"); } } } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

347 class SuperSmartTvController { static void Main(string[] args) { MySuperSmartTV myTv = new MySuperSmartTV(); Console.WriteLine("Select A source to get TV Guide and Play"); Console.WriteLine("1. Local Cable TV\n2. Local Dish TV\n3. IP TV"); ConsoleKeyInfo input = Console.ReadKey(); switch (input.KeyChar) { case '1': myTv.VideoSource = new LocalCabelTv(); break; case '2': myTv.VideoSource = new LocalDishTv(); break; case '3': myTv.VideoSource = new IPTvService(); break; } myTv.ShowTvGuide(); myTv.PlayTV(); } } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

348 Futás Dr. Johanyák Zs. Csaba - Szoftvertechnológia

349 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

350 Composite - Összetétel Forrás: Mathias Bartoll, Nori Ahari, Oliver C. Moldez: Design Patterns in C# Dr. Johanyák Zs. Csaba - Szoftvertechnológia

351 Az összetétel minta szerkezete Dr. Johanyák Zs. Csaba - Szoftvertechnológia

352 Implemen- táció Dr. Johanyák Zs. Csaba - Szoftvertechnológia

353 Dr. Johanyák Zs. Csaba - Szoftvertechnológia line osztály levél

354 Picture osztály Dr. Johanyák Zs. Csaba - Szoftvertechnológia Picture osztály csomópont

355 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

356 Observer - Megfigyelő Dr. Johanyák Zs. Csaba - Szoftvertechnológia

357 Közzétevő osztály Dr. Johanyák Zs. Csaba - Szoftvertechnológia

358 Megfigyelő (feliratkozó) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

359 Fel/leiratkozás Dr. Johanyák Zs. Csaba - Szoftvertechnológia

360 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

361 Strategy - stratégia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

362 Megoldások/stratégiák Dr. Johanyák Zs. Csaba - Szoftvertechnológia

363 Illesztő modul Dr. Johanyák Zs. Csaba - Szoftvertechnológia

364 Használat Dr. Johanyák Zs. Csaba - Szoftvertechnológia

365 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

366 Dependency Injection Interfész konkrét osztálynév helyett A Client csak az IService interfészről kell tudjon, az azt megvalósító Service osztály nevét nem kell ismerje Megoldások Constructor Injection Property (Setter) Injection Method Injection Dr. Johanyák Zs. Csaba - Szoftvertechnológia

367 Constructor Injection A szolgáltatást nyújtó osztály public interface IService { void Serve(); } public class Service : IService { public void Serve() { Console.WriteLine("Service Called"); //To Do: Some Stuff } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

368 Az ügyfél osztály public class Client { private IService _service; public Client(IService service) { this._service = service; } public void Start() { Console.WriteLine("Service Started"); this._service.Serve(); //To Do: Some Stuff } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

369 Használat class Program { static void Main(string[] args) { client = new Client(new Service()); client.Start(); Console.ReadKey(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

370 Property (Setter) Injection A szolgáltatást nyújtó osztály public interface IService { void Serve(); } public class Service : IService { public void Serve() { Console.WriteLine("Service Called"); //To Do: Some Stuff } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

371 Az ügyfél osztály public class Client { private IService _service; public IService Service { set { this._service = value; } public void Start() { Console.WriteLine("Service Started"); this._service.Serve(); //To Do: Some Stuff } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

372 Használat class Program { static void Main(string[] args) { Client client = new Client(); client.Service = new Service(); client.Start(); Console.ReadKey(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

373 Method Injection A szolgáltatást nyújtó osztály public interface IService { void Serve(); } public class Service : IService { public void Serve() { Console.WriteLine("Service Called"); //To Do: Some Stuff } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

374 Az ügyfél osztály public class Client { private IService _service; public void Start(IService Service) { this._service=Service Console.WriteLine("Service Started"); this._service.Serve(); //To Do: Some Stuff } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

375 Használat class Program { static void Main(string[] args) { Client client = new Client(); client.Start(new Service()); Console.ReadKey(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

376 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

377 Template Method - Sablonfüggvény Dr. Johanyák Zs. Csaba - Szoftvertechnológia

378 Az absztrakt ős osztály abstract class AbstractClass { public abstract void PrimitiveOperation1(); public abstract void PrimitiveOperation2(); // The "Template method" public void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); Console.WriteLine(""); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

379 Leszármazott - A class ConcreteClassA : AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("ConcreteClassA.PrimitiveOperation1()"); } public override void PrimitiveOperation2() { Console.WriteLine("ConcreteClassA.PrimitiveOperation2()"); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

380 Leszármazott - B class ConcreteClassB : AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("ConcreteClassB.PrimitiveOperation1()"); } public override void PrimitiveOperation2() { Console.WriteLine("ConcreteClassB.PrimitiveOperation2()"); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

381 Használat class MainApp { /// /// Entry point into console application. /// static void Main() { AbstractClass aA = new ConcreteClassA(); aA.TemplateMethod(); AbstractClass aB = new ConcreteClassB(); aB.TemplateMethod(); // Wait for user Console.ReadKey(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

382 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

383 Model-View-Controller (MVC) Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás:

384 MVC alapelvek „Loose coupling” „Program to the interface” Eredmények Jobb karbantarthatóság Könnyebb újrahasznosíthatóság Dr. Johanyák Zs. Csaba - Szoftvertechnológia

385 MVC - általánosan Dr. Johanyák Zs. Csaba - Szoftvertechnológia sharpcorner.com/UploadFile/rmcochran/MVC_intro PM/MVC_intro.aspx

386 ACME 2000 sport car Dr. Johanyák Zs. Csaba - Szoftvertechnológia

387 MVC – ACME 2000 sport car Dr. Johanyák Zs. Csaba - Szoftvertechnológia sharpcorner.com/UploadFile/rmcochran/MVC_intro PM/MVC_intro.aspx

388 Preliminaries public enum AbsoluteDirection { North = 0, East, South, West } public enum RelativeDirection { Right, Left, Back } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

389 Program to the Interface + loose coupling Step 1 – Interfaces v1.0 Step 2 – Interfaces v2.0 Step 3 – Abstract Class Automobile Automobile.cs Step 4 – Concrete Automobile Implementations Truck.cs and RaceCar.cs Step 5 – Concrete Control Step 6 – Concrete View Dr. Johanyák Zs. Csaba - Szoftvertechnológia

390 Control Interface v1.0 public interface IVehicleControl { void RequestAccelerate(int paramAmount); void RequestDecelerate(int paramAmount); void RequestTurn(RelativeDirection paramDirection); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

391 Model Interface v1.0 public interface IVehicleModel { string Name { get; set; } int Speed { get; set; } int MaxSpeed { get; } int MaxTurnSpeed { get; } int MaxReverseSpeed { get; } AbsoluteDirection Direction { get; set; } void Turn(RelativeDirection paramDirection); void Accelerate(int paramAmount); void Decelerate(int paramAmount); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

392 View interface v1.0 public interface IVehicleView { void DisableAcceleration(); void EnableAcceleration(); void DisableDeceleration(); void EnableDeceleration(); void DisableTurning(); void EnableTurning(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

393 Control Interface v2.0 public interface IVehicleControl { void RequestAccelerate(int paramAmount); void RequestDecelerate(int paramAmount); void RequestTurn(RelativeDirection paramDirection); void SetModel(IVehicleModel paramAuto); void SetView(IVehicleView paramView); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

394 Model Interface v2.0 public interface IVehicleModel { string Name { get; set; } int Speed { get; set; } int MaxSpeed { get; } int MaxTurnSpeed { get; } int MaxReverseSpeed { get; } AbsoluteDirection Direction { get; set; } void Turn(RelativeDirection paramDirection); void Accelerate(int paramAmount); void Decelerate(int paramAmount); void AddObserver(IVehicleView paramView); void RemoveObserver(IVehicleView paramView); void NotifyObservers(); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia Observer Pattern

395 View interface v2.0 public interface IVehicleView { void DisableAcceleration(); void EnableAcceleration(); void DisableDeceleration(); void EnableDeceleration(); void DisableTurning(); void EnableTurning(); void Update(IVehicleModel paramModel); } Dr. Johanyák Zs. Csaba - Szoftvertechnológia

396 Osztálydiagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

397 MVC minta megvalósítása Megolvalósítás Visual Studio 2013 segítségével Demo Dr. Johanyák Zs. Csaba - Szoftvertechnológia

398 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

399 MVVM tervezési minta Ismétlés: MVC tervezési minta Az MVVM tervezési minta alapelveinek és megvalósításának áttekintése (a táblán) A minta megismerése egy gyakorlati példán keresztül Feladat: egy WPF-es hagyományos módon megírt alkalmazás átalakítása az MVVM tervezési mintának megfelelő struktúrába Dr. Johanyák Zs. Csaba - Szoftvertechnológia

400 MVVM Dr. Johanyák Zs. Csaba - Szoftvertechnológia View XAML, Code Behind Unit Tests Integration Tests ViewModel Properties, Commands, View Logic Bindings Actions Model Service Proxies Web Data Events Behavior Forrás:

401 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

402 Model-View-Presenter (MVP) Dr. Johanyák Zs. Csaba - Szoftvertechnológia Forrás:

403 MVC MVP Dr. Johanyák Zs. Csaba - Szoftvertechnológia

404 MVP Alkalmazási terület: adattárolással, megjelenítéssel, adatbevitellel kapcsolatos alkalmazások Célok: A kód minél nagyobb része automatikusan tesztelhető legyen (egységtesztek) Jól áttekinthető, könnyen megírható és könnyen karbantartható forráskód előállítása Dr. Johanyák Zs. Csaba - Szoftvertechnológia

405 Alapgondolat A felhasználói felület, az üzleti logika és az alkalmazáson belüli adatmodell szétválasztása – külön osztályok Szerepkörök Model (adatmodell) View (megjelenítő réteg) Presenter (eseménykezelést, üzleti logikát megvalósító osztály) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

406 MVP Ajánlás: laza csatolás Változatok: Supervising Presenter (controller) Passive View Dr. Johanyák Zs. Csaba - Szoftvertechnológia

407 Supervising Presenter Mikor alkalmazható? Állapottárolásra képes alkalmazásoknál (a klasszikus web alkalmazásoknál nem – ott állapotmentes) Asztali és okos kliens alkalmazások A Presenter és a View a kliensen Model megosztottan a kliensen és a szerveren Dr. Johanyák Zs. Csaba - Szoftvertechnológia

408 MVP Dr. Johanyák Zs. Csaba - Szoftvertechnológia View Presenter Model Parancs Adatlekérés Adatmódosítás Felhasználói esemény Esemény, állapot változás Lekérdezés

409 Példa Asztali alkalmazás Felület Sorrend diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

410 Passive View Ez a vékony View modell A View nem tartalmaz semmilyen alkalmazáslogikát  a teljes alkalmazáslogika könnyen tesztelhető A P felelős a teljes munkafolyamatért – gyakran alkalmazzák ASP.NET alkalmazásokban Dr. Johanyák Zs. Csaba - Szoftvertechnológia

411 Hogyan működik? A V az Observer mintát követve azonnal szinkronizálódik a modellel (adatkötés) A V és M között a kapcsolatot deklaratív módon adjuk meg Felhasználói interakció esetén az eseménykezelést a P egy metódusa valósítja meg. Ez magába foglalhat ellenőrzött adatbevitelt vagy komplex lekérdezést. A művelet ereményének a visszajelzéséről a P gondoskodik – változást idéz elő a V-ben Dr. Johanyák Zs. Csaba - Szoftvertechnológia

412 Példa Dr. Johanyák Zs. Csaba - Szoftvertechnológia

413 Példa Vékony webes kliens Szekvencia diagram Dr. Johanyák Zs. Csaba - Szoftvertechnológia

414 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

415 Repository minta Alkalmazási terület Olyan programok, amelyek adatbázisban, SharePoint listákon, webszolgáltatásokon elérhető adatokon dolgoznak Célok A kód minél nagyobb része automatikusan tesztelhető legyen Központosítottan felügyelt adathozzáférés, következetes hozzáférés szabályozás Központosított adat-gyorstárazás Dr. Johanyák Zs. Csaba - Szoftvertechnológia

416 Repository Célok (folytatás) Jól áttekinthető, könnyen megérthető és könnyen karbantartható forráskód előállítása Üzleti logika elválasztása az adat és szolgáltatás hozzáférési logikától Erősen típusos megoldások alkalmazása (ellenőrzés már fordítási időben) „Viselkedés” rendelése adatcsoportokhoz (pl. számított mezők, komplex kapcsolatok) Üzleti logika egyszerűsítése Dr. Johanyák Zs. Csaba - Szoftvertechnológia

417 Megvalósítás Egy „raktár” segítségével elválasztjuk az adatokat az őket lekérdező logikától Az üzleti logika független kell legyen az adatforrás rétegben alkalmazott adattárolási eszköztől (DB, SP, WS) Az R végzi az adatforrás lekérdezést, leképezi azt üzleti entitássá és visszafelé gondoskodik az üzleti entitáson végrehajtott módosítások tartós tárolásáról Dr. Johanyák Zs. Csaba - Szoftvertechnológia

418 Ábra Dr. Johanyák Zs. Csaba - Szoftvertechnológia

419 Az R általában gyengén típusos alakban kapja meg a lekérdezés eredményét az adatforrástól és erősen típusos (objektum) formába alakítva továbbítja azt az üzleti logikai réteg felé Átalakítás: Data Mapper minta Az R elfedi a tényleges adatlekérés módját (pl. SQL), azaz az ügyfél nem kell tudjon arról, hogy pontosan milyen paranccsal lett lekérdezve az adatforrás Dr. Johanyák Zs. Csaba - Szoftvertechnológia

420 Gyorstárazás és WS Az R gyakran gyorstárazást is megvalósít, amire akkor van különösen szükség, ha az adatelérés lassú (pl. WS) Ha az adatforrás egy WS, akkor az R némileg módosul, megjelenik egy proxy osztály: Dr. Johanyák Zs. Csaba - Szoftvertechnológia

421 Az alkalmazás hatásai Csökkenti a kódredundanciát Növeli az osztályok számát Részekre bont, ami megkönnyíti az egységtesztek készítését, az egyes részek mock objektumokkal való helyettesítését Többszálú környezetben a cache hozzáférést szinkronizálni kell Dr. Johanyák Zs. Csaba - Szoftvertechnológia

422 Tervezési minták Singleton (Egyke) Simple Factory Adapter (Illesztő) Bridge (Híd) Composite (Összetétel) Observer (Megfigyelő) Strategy Dependency injection Template Method (Sablonfüggvény) MVC,MVP Repository Data Mapper Dr. Johanyák Zs. Csaba - Szoftvertechnológia

423 Data Mapper Martin Fowler 2003 Egy leképezési réteg, ami biztosítja az adatbázis és a memória objektumok közötti adatáramlást úgy, hogy az adatok az ábrázolási technikától és leképezésektől függetlenek maradjanak. Miért van rá szükség? – az objektumok és a relációs adatbázisok eltérően strukturálják az adatokat (pl. gyűjtemények, öröklődés, stb.) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

424 A DM használata mellett a memória objektumok nem kell tudjanak a relációs tárolásról, nem kell tartalmazzanak SQL kódot Így a DM réteget vagy az adatbázis réteget könnyen lecserélhetjük a teszteléshez Egyszerű DM: adattábla mező—adattag Dr. Johanyák Zs. Csaba - Szoftvertechnológia

425 Insert és Update esetén a DM-nek tudnia kell, hogy mely objektumok módosultak, keletkeztek, szűntek meg  tranzakció kezelési keretrendszer szükséges ld. Unit of Work minta Egy alkalamzáshoz több DM is tartozhat Hol találkozhattunk eddig DM-el? Table/DataAdapter EntityFramework Dr. Johanyák Zs. Csaba - Szoftvertechnológia

426 Tervezési minták osztályozása LétrehozásiSzerkezetiViselkedési Singleton (Egyke)AdapterObserver Simple FactoryBridgeStrategy Dependency InjectionCompositeTemplate Method MVC MVP MVVM Dr. Johanyák Zs. Csaba - Szoftvertechnológia

427 Fontosabb szoftverminőség modellek Termék alapú megközelítés modellek McCall ISO 9126  ISO SCOPE NF Logiciel Folyamat alapú megközelítés CMM/CMMI Bootstrap SPICE Dr. Johanyák Zs. Csaba - Szoftvertechnológia

428 McCall 1978, James McCall a General Electrics egyik projektvezetője a végtermékre koncentrál a modellben meghatározzák a felhasználói alapszempontokat meghatározzák a termék minőségfaktorait (quality factors) a minőségfaktorokat minőségi jellemzőkre bontják (quality criteria) a minőségi jellemzőkhöz mérőszámokat rendelnek (metrics) Dr. Johanyák Zs. Csaba - Szoftvertechnológia

429 McCall modell Három fő kategória Termék működése Termék átdolgozása Termék átvitel Dr. Johanyák Zs. Csaba - Szoftvertechnológia

430 A termék működéséhez kapcsolódó faktorok Correctness Reliability Efficiency Integrity Usability How well does it run and ease of use. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

431 McCall’s Quality Factors Category: Product Operation Factors 1. Correctness - Helyesség. ‘correctness’ issues are arising from the requirements documentation and the specification of the outputs… Examples include: Specifying accuracies for correct outputs at, say, <1% errors, that could be affected by inaccurate data or faulty calculations; Specifying the completeness of the outputs provided, which can be impacted by incomplete data Specifying the timeliness of the output (time between event and its consideration by the software system) Specifying the standards for coding and documenting the software system Dr. Johanyák Zs. Csaba - Szoftvertechnológia

432 McCall’s Quality Factors Category: Product Operation Factors 2. Reliability - Megbízhatóság. (remember, this quality factor is specified in the specs!) Reliability requirements deal with the failure to provide service. Address failure rates either overall or to required functions. Example specs: A heart monitoring system must have a failure rate of less than one per million cases. Downtime for a system will not be more than ten minutes per month 3. Efficiency - Hatékonyság Deals with the hardware resources needed to perform the functions of the software. Here we consider MIPS, MHz (cycles per second); data storage capabilities measured in MB or TB; communication lines (usually measured in KBPS, MBPS, or GBPS). Example spec: simply very slow communications… Dr. Johanyák Zs. Csaba - Szoftvertechnológia

433 McCall’s Quality Factors Category: Product Operation Factors 4. Integrity – Biztonság – deals with system security that prevent unauthorized persons access. 5. Usability – Használhatóság – deals with the scope of staff resources needed to train new employees and to operate the software system. Deals with learnability, utility, and more. Example spec: A staff member should be able to process n transactions / unit time. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

434 Termék átdolgozásához kapcsolódó faktorok Maintainability Flexibility Testability Can I fix it easily, retest, version it, and deploy it easily? Dr. Johanyák Zs. Csaba - Szoftvertechnológia

435 McCall’s Quality Factors Category: Product Revision Software Factors These deal with requirements that affect the complete range of software maintenance activities: corrective maintenance, adaptive maintenance, and perfective maintenance 1. Maintainability Requirements The degree of effort needed to identify reasons (find the problem) for software failure and to correct failures and to verify the success of the corrections. Deals with the modular structure of the software, internal program documentation, programmer manuals Example specs: size of module <= 30 statements. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

436 McCall’s Quality Factors Category: Product Revision Software Factors 2. Flexibility Requirements – deals with resources to change (adopt) software to different types of customers that use the app perhaps a little differently May also involve a little perfective maintenance to perhaps do a little better due to the customer’s perhaps slightly more robust environment. 3. Testability Requirements – Are intermediate results of computations predefined to assist testing? Are log files created? Does the software diagnose itself prior to and perhaps during operations? Dr. Johanyák Zs. Csaba - Szoftvertechnológia

437 Termék átvitel faktorai Portability Reusability Interoperability Can I move the app to different hardware? Interface easily with different hardware / software systems; can I reuse major portions of the code with little modification to develop new apps? Dr. Johanyák Zs. Csaba - Szoftvertechnológia

438 McCall’s Quality Factors Category: Product Transition Software Quality Factors 1. Portability Requirements: If the software must be ported to different environments (different hardware, operating systems, …) and still maintain an existing environment, then portability is a must. 2. Reusability Requirements: Are we able to reuse parts of the app for new applications? Can save immense development costs due to errors found / tested. Certainly higher quality software and development more quickly results. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

439 McCall’s Quality Factors Category: Product Transition Software Quality Factors 3. Interoperability Requirements: Does the application need to interface with other existing systems Frequently these will be known ahead of time and plans can be made to provide for this requirement during design time. Sometimes these systems can be quite different; different platforms, different databases, and more Also, industry or standard application structures in areas can be specified as requirements. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

440 ISO/IEC 9126 (1991) ISO 9126:2001: „Software engineering — Product quality”. ISO helyett : ISO/IEC 25010:2011: Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models Felhasználta: a McCall és Boehm modelleket a modellek használatában szerzett tapasztalatokat a korabeli piaci igényeket Dr. Johanyák Zs. Csaba - Szoftvertechnológia

441 Elvek az ISO által meghatározott szoftverminőség –a definícióból adódó összes aspektust lefedje a szoftvertermék minőségét a lehető legkevesebb átfedéssel határozza meg az alkalmazott technológiához a lehető legközelebb legyen az egyszerűség kedvéért max. 6-8 minőségi jellemzőt azonosítson azonosítsa a továbbiakban javítandó területeket Dr. Johanyák Zs. Csaba - Szoftvertechnológia

442 Minőségi jellemzők Dr. Johanyák Zs. Csaba - Szoftvertechnológia

443 Funkcionalitás Dr. Johanyák Zs. Csaba - Szoftvertechnológia

444 Használhatóság Dr. Johanyák Zs. Csaba - Szoftvertechnológia

445 Megbízhatóság Dr. Johanyák Zs. Csaba - Szoftvertechnológia

446 Hatékonyság és karbantarthatóság Dr. Johanyák Zs. Csaba - Szoftvertechnológia

447 Hordozhatóság Dr. Johanyák Zs. Csaba - Szoftvertechnológia

448 SCOPE Software assessment and CertificatiOn Programme in Europe scope.html 1989 – szervezet 8 országból (EU és EFTA) módszertan és technológia szoftver termékek értékelésére és tanúsítására Dr. Johanyák Zs. Csaba - Szoftvertechnológia

449 Célok hagyományos mérési technikák alkalmazási lehetőségeinek kutatása és ezen technikák kombinálása szoftver termékek értékelése céljából termék értékelése aszerint, hogy milyen mértékben felel meg az elvárásoknak, pl. az ISO 9126-ban megfogalmazott minőségi jellemzőknek Dr. Johanyák Zs. Csaba - Szoftvertechnológia

450 Módszertan az értékelés ötlépéses folyamat az ISO két része (a hatból) innen lett átvéve négy értékelési szint: A (legszigorúbb) – D minden szinthez különböző értékelési módszerek szint minden minőségi jellemzőre egyedileg megválasztható magas kockázatú jellemzőknél szigorú értékelési szintet kell választani Dr. Johanyák Zs. Csaba - Szoftvertechnológia

451 Értékelési szintek megválasztása D: tulajdon kismértékű megkárosítása, emberek számára nem okoz kockázatot C: tulajdon veszélyeztetése, néhány személy kismértékű veszélyeztetése B: életveszély A: többen meghalhatnak Dr. Johanyák Zs. Csaba - Szoftvertechnológia

452 Értékelési modulok az értékelő által használható metrikákat és technikákat rögzítő dokumentum alkalmazási módszertan, alkalmazási módok előny: ismételhetőség és újra előállítható eredmények Dr. Johanyák Zs. Csaba - Szoftvertechnológia

453 D szintC szintB szintA szint Funkcionalitá s funkcionális tesztelés (black box) átvizsgálás (check lists) komponens teszt (glass box) formális ellenőrzés Megbízhatós ág programnyelvi adottságok hibatűrési elemzés Megbízhatóság növelési modell formális ellenőrzés Használható ság Felhasználói interfész felülvizsgálata Interfész szabványok nak való megfelelés labor teszt Felhasználói modell Hatékonyság Végrehajtási idő mérése benchmark algoritmikus komplexitás Teljesítmény elemzés Karbantartah atóság Dokumentumok felülvizsgálata statikus elemzés A fejlesztési folyamat elemzése Visszavezethe tőségi elemzés Hordozhatós ág Telepítés elemzése Programozási szabályokna k való megfelelés Környezeti korlátozások értékelése Programterv értékelés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

454 NF Logiciel AFNOR (Association Francaise de NORmalisation) 1996 Logiciel =szoftver minden szoftverre alkalmazható alkalmazási területtől, funkcionalitástól és eredettől függetlenül megszerzéséhez nem előfeltétel a tanúsítás megléte az elvárások a minőségrendszerek tanúsításánál megfogalmazott elvárásokon alapulnak célja a szállított termék minőségének garantálása az NF Logiciel célja a szállított termék minőségének garantálása nem célja a minőségrendszer értékelése az NF Logicielnek nem célja a minőségrendszer értékelése Dr. Johanyák Zs. Csaba - Szoftvertechnológia

455 NF Logiciel alapelvek 1 ISO/IEC ből levezetett elvárások teszt dokumentációval szembeni elvárások egyes szoftverkategóriákhoz speciális elvárások Dr. Johanyák Zs. Csaba - Szoftvertechnológia

456 NF Logiciel alapelvek 2 ISO/IEC ből levezetett elvárások minden szoftvercsomaghoz készüljön termékleírás fő célja, hogy segítse a felhasználót vagy potenciális vásárlót annak értékelésében, hogy megfelelő-e a termék számára és megalapozza a tesztelést tartalmi követelmények minden szoftvercsomaghoz készüljön felhasználói dokumentáció legyen teljes, korrekt, következetes, érthető és könnyen áttekinthető programokhoz és adatokhoz kapcsolódó elvárások: telepíthetőség, elvárt funkciók, megbízhatóság, használhatóság... előírások arra, hogy hogyan kell tesztelni a minőségi elvárásoknak való megfelelést Dr. Johanyák Zs. Csaba - Szoftvertechnológia

457 NF Logiciel alapelvek 3 A teszt dokumentációval kapcsolatos elvárások: tartalmaznia kell: teszt tervet validálási stratégiát teszt specifikációt teszt eredményeket követhetőséghez szükséges azonosító elemeket Dr. Johanyák Zs. Csaba - Szoftvertechnológia

458 NF Logiciel alapelvek 4 egyes szoftverkategóriákhoz speciális elvárások, mint pl. mechanikai szerkezetek számításai, fordítók, adatátvitel minőségbiztosítási szempontokból az ISO 9001 követelményeinek egy részét átvették Dr. Johanyák Zs. Csaba - Szoftvertechnológia

459 Tanúsítási eljárás az ANFOR (francia tanúsítási testület) által akkreditált tesztlabor egy tesztjelentést készít ANFOR minőségügyi audit bizottsági döntés Dr. Johanyák Zs. Csaba - Szoftvertechnológia

460 Fontosabb szoftverminőség modellek Termék alapú megközelítés modellek McCall ISO 9126  ISO SCOPE NF Logiciel Folyamat alapú megközelítés CMM/CMMI Bootstrap SPICE Dr. Johanyák Zs. Csaba - Szoftvertechnológia Ismétlés

461 A SZOFTVERMINŐSÉG FOLYAMAT ALAPÚ MEGKÖZELÍTÉSE Szoftvertechnológia Dr. Johanyák Zs. Csaba - Szoftvertechnológia

462 Szoftverfolyamat érettsége A szoftver folyamat érettsége: Annak mértéke, hogy egy folyamat mennyire pontosan meghatározott, vezérelt, mért, ellenőrzött és hatékony. Az érett szoftver folyamat: Meghatározott (definiált), vezérelt, mért, ellenőrzött, hatékony és javulásra képes. Dr. Johanyák Zs. Csaba - Szoftvertechnológia

463 Érettségi modellek Lépcsős modellek (staged models) Teljes szervezet CMM, Bootsrap Folytonos modellek (continuous models) Kiválasztott folyamat(ok) SPICE/ISO Kombinált, integrált modellek: ötvözik a kétféle modellt, a bizonyítottan hasznos elemeket kiválasztva Dr. Johanyák Zs. Csaba - Szoftvertechnológia

464 Lépcsős modellek A szervezet egészét vizsgálják Úgy tekintik, hogy a szervezetben „egyetlen” folyamat van, a „szervezeti szintű folyamat”, ez maga a szoftverfejlesztési folyamat, amely magába foglalja: a szoftverfejlesztésben részt vevő embereket a szoftverfejlesztésben alkalmazott technológiát a szoftverfejlesztésben alkalmazott módszereket a szoftverfejlesztésben alkalmazott eszközöket... Dr. Johanyák Zs. Csaba - Szoftvertechnológia

465 CMM Dr. Johanyák Zs. Csaba - Szoftvertechnológia Kezdő Ismételhető Definiált Menedzselt Optimalizált

466 Capability Maturity Model Dr. Johanyák Zs. Csaba - Szoftvertechnológia Értékelési kérdőív (módszer) kidolgozása szoftverfejlesztő vállalatok számára (Eredetileg az Amerikai Védelmi Minisztérium megrendelésére készült, amelyet a SW-beszállítóinak értékelésére akart használni) (1987) Ezt a módszert az USA-ban a Carnegie Mellon Egyetem Software Engineering Institute (SEI) intézete dolgozta ki (1991) Referenciamodell a később ez alapján levezetett modellek számára: Bootstrap-Assessment (európai értékelési módszer) (1992) és a Siemens-OPAL-Assessment (ZT SE) (1992) Először csak szoftver folyamat értékelése (SW-CMM), majd kibővül általános folyamatmodell értékeléssel (SW-A-CMM, SE- CMM, People-CMM) (1995)

467 Dr. Johanyák Zs. Csaba - Szoftvertechnológia A CMM szerepe CMM egy referenciamodell, amely a helyes gyakorlatot mutatja a szoftverfejlesztésben CMM szintek alapján meghatározható a szervezet érettségi szintje egy adott referenciamodellhez viszonyítva CMM szintek alapján értékelhetők a SW-beszállítok (pl. DoD, Boeing, NASA) CMM Assessment (értékelés) irányadó a szoftverfejlesztési tevékenység folyamatfejlesztésében a célok prioritások koncepciók meghatározásában

468 A CMM felépítése Dr. Johanyák Zs. Csaba - Szoftvertechnológia Folyamatváltozás-menedzselés Technológiai innováció Hibamegelőzés Minőségmenedzselés Folyamatmérés és -elemzés Képzési program Review-k, szemlék Folyamatközpontúság Szervezeti folyamatok meghatározása Integrált folyamat menedzselés Szoftvertechnológia Csoportközi együttműködés Konfiguráció-menedzselés Minőségbiztosítás Alvállalkozó-menedzselés Projektkövetés Projekttervezés Követelménymenedzselés