Informatika | Felsőoktatás » Dr. Katona József - Szoftverfejlesztési folyamat, módszerek és modellek

Alapadatok

Év, oldalszám:2022, 50 oldal

Nyelv:magyar

Letöltések száma:44

Feltöltve:2022. október 01.

Méret:1 MB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

INFORMATIKAI INTÉZET SZOFTVERFEJLESZTÉSI ÉS ALKALMAZÁSI TANSZÉK .NET technológiák 3. előadás Szoftverfejlesztési folyamat, módszerek és modellek Dr. Katona József, PhD egyetemi docens, tanszékvezető e-mail: katonaj@uniduna.hu Az előadás anyag letölthető: https://dufoffice365-my.sharepointcom/:f:/g/personal/katonaj uniduna hu/EjjIjvjNSy9Ep0hDfPwA08sBaYJGn 111pl0FSX BUMB8Q?e=J8i78B HALLGATÓI TÁJÉKOZTATÓ A prezentációban található adatok, információk és tudásanyag csak a tananyag vázát alkotják. Ismeretük szükséges, de nem elégséges feltétele a sikeres tantárgy teljesítésnek. A sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a megjelölt kötelező irodalmak, a gyakorlatokon átadott ismeretek és példák, valamint az otthoni felkészülés képessége is nélkülözhetetlen. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 2 ELŐADÁS TEMATIKA Cél:

Bevezetés a szoftverfejlesztés folyamatába, módszereibe és modelljeibe. Tartalom: • A szoftverfejlesztés folyamata • • • • • Minőségi mutatók, szoftvertechnológia projekt Specifikáció Tervezés és implementáció Validáció és evolúció A szoftver életciklus • Szoftverfejlesztési módszerek és modellek • Klasszikus módszerek • Agilis módszerek 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 3 Szoftverfejlesztési folyamat, módszerek és modellek Szoftverfejlesztés • A szoftverek nélkülözhetetlen alkotóelemei a modern világnak: • Számos célt szolgálhatnak; • Különböző felépítésűek, működési elvűek; • Megvalósításuk módja jelentősen eltérhet. • A szoftverekben sok hiba található, a szoftverfejlesztési munkák nagyrésze kudarcba fullad, ennek okai: • Egyre nagyobb számban, egyre összetettebb szoftverekre van szükség: • Magasak az elvárások a

szoftverekkel szemben. • Nagy szükség van a professzionális szoftverfejlesztésre. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 4 Szoftverfejlesztési folyamat, módszerek és modellek Minőségi mutatók • A szoftvereknek megfelelő színvonalon kell biztosítania az elvárt funkciókat, amit a szoftver minőségi mutatóival (quality characteristics) írhatunk le: • Karbantarthatóság (maintainability): módosíthatóság, továbbfejleszthetőség lehetőségei; • Megbízhatóság és biztonság (dependability and security): meghibásodások valószínűsége, támadásokkal szembeni védelem, sebezhetőségi pontok; • Hatékonyság (efficiency): erőforrások használata, korlátai, válaszidő, skálázhatóság; • Használhatóság (acceptability): érthetőség, használat elsajátítása, ergonómia. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 5

Szoftverfejlesztési folyamat, módszerek és modellek A szoftvertechnológia • Egy szoftvernek, mint terméknek gyártási technológiára van szüksége, amely garantálja a program funkcióit, minőségét, költségét és határidejét: • A szoftvertechnológia feladata szoftverek rendszerezett, felügyelt, minősített fejlesztése, működtetése és karbantartása: • A szoftver a program(ok), dokumentáció(k), konfiguráció(k), valamint adatok együttese • A szoftverek többsége nagy méretű, nagy bonyolultságú programrendszer, amely: • Rendszerint csapatmunkában készül; • Hosszú élettartamú, karbantartást és bővítést igényel. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 6 Szoftverfejlesztési folyamat, módszerek és modellek Szoftvertechnológiai projekt • A szoftver fejlesztésének folyamatát projektnek, előállításának felügyeletét projektmenedzselésnek nevezzük. • A

projektért felelős személy a projektmenedzser (project manager), aki: • Biztosítja, hogy a szoftver megfelel az előírt minőségnek, és elkészül a megadott határidőre a költségkereten belül; • Szervezi, irányítja, ütemezi a projektben részt vevő csapat munkáját, és biztosítja a szükséges hardver és szoftver erőforrásokat; • Garantálja a módszerek és szabványok alkalmazását; • Gondoskodik a projekt dokumentáltságáról. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 7 Szoftverfejlesztési folyamat, módszerek és modellek Szoftvertechnológiai projekt • A szoftverfejlesztési csapatnak számos további tagja lehet, akik különböző szerepeket töltenek be, pl.: • Termékgazda (product management): üzleti folyamatok, prioritások és elfogadási feltételek kezelése; • Programgazda (program management): fejlesztés ütemezése, feladatok elosztása és követése; • Tervező

(architect): szoftver magas szintű tervének elkészítése, technikai döntések kezelése; • Fejlesztő (developer): szoftver implementációja; • Minőségbiztosítás (quality assurance): tesztelés tervezése, magvalósítása, minőségi kritériumok ellenőrzése. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 8 Szoftverfejlesztési folyamat, módszerek és modellek Szoftvertechnológiai projekt uc Use Case Model proj ektmenedzsment termékgazda programgazda terv ező 2022. 02 06 fej lesztő minőségbiztosítás .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 9 Szoftverfejlesztési folyamat, módszerek és modellek Szoftvertechnológiai projekt • Minden szoftver rendelkezik életciklussal, amely meghatározza létét a feladat kitűzésétől a program használatának befejeztéig. • Az életciklus általában négy fő fázisra bontható: 1. Specifikáció: a szoftver

funkcionalitásának és megszorításainak megadása; 2. Tervezés és implementáció: a specifikációnak megfelelő szoftver előállítása; 3. Verifikáció és validáció: a szoftver ellenőrzése a specifikációnak történő megfelelésre; 4. Evolúció: a szoftver továbbfejlesztése a változó elvárásoknak megfelelően 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 10 Szoftverfejlesztési folyamat, módszerek és modellek Specifikáció • A specifikáció (software specification) célja a feladatot megoldó szoftver funkcióinak tisztázása, a rendszerre és a fejlesztésre vonatkozó elvárások megadása: • Feltérképezi a követelményeket felhasználói, valamint fejlesztői szemszögből, lépései: • megvalósíthatósági elemzés; • követelmény feltárás és elemzés; • követelmény specifikáció; • követelmény validáció. • Eredménye a szoftver követelmény-leírása (software

requirements specification). 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 11 Szoftverfejlesztési folyamat, módszerek és modellek Tervezés és implementáció • A szoftver tervezése és implementációja (software design and implementation) feladata a specifikáció átalakítása egy végrehajtható rendszerré: • Meghatározza a rendszer szerkezetét (felépülés), felületét (be-és kimenet), működését (alkalmazott algoritmusok, kommunikációs folyamatok); • A folyamat során elkészül a szoftver rendszerterve (software design description), amely tartalmazza a program statikus és dinamikus szerkezetét, a kommunikációs csatornák feltérképezését, az implementációs és tesztelési tervet; • Elkészíthető a szoftver prototípusa (prototype), amely a program egyszerűsített megvalósítását tartalmazza. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD

(katonaj@unidunahu) 12 Szoftverfejlesztési folyamat, módszerek és modellek Tervezés és implementáció • az implementációhoz megfelelő szoftverfejlesztési környezetet kell használnunk, a programkód változásait verziókövetéssel tartjuk nyilván; • Az implementáció részeként az egyes programegységek tesztelése is megtörténhet; • A szoftverek tervezésének és programozásának módszerét nevezzük programozási paradigmának: • Meghatározza a programozási stílust, az absztrakciós szintet; • Meghatározza az alkalmazható programozási nyelvek körét is, és fordítva. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 13 Szoftverfejlesztési folyamat, módszerek és modellek Validáció és evolúció • A verifikáció és validáció (software verification and validation) célja megmutatni, hogy a rendszer megfelel a specifikációnak, valamint a felhasználói elvárásoknak: •

Alapvetően tesztelés, amely több fázisban, több módszerrel történik (a felhasználói tesztek csak az utolsó lépésben történnek). • Az evolúció (software evolution) során új követelményeknek megfelelően bővítjük a szoftvert, illetve korrigáljuk a felmerülő hibákat: • Átlagosan a szoftver élettartamának 80%-a, ezért eleve bővíthetőre, módosíthatóra kell kialakítani a szoftvert. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 14 Szoftverfejlesztési folyamat, módszerek és modellek A szoftver életciklus • További lépések is kísérhetik a fejlesztési folyamatot, pl.: • Kihelyezés (deployment): a program üzembe állítása, és elérhetővé tétele; • Tréning és támogatás (training and support): a felhasználókkal való kapcsolattartás (annak biztosítása, hogy a szoftvert megfelelően tudják kezelni és használni). • A szoftver dokumentációja két részből

tevődik össze: • Felhasználói dokumentáció, amely tartalmazza a szoftver üzembe helyezésének, funkcióinak bemutatását; • Fejlesztői dokumentáció, amely tartalmazza a szoftver megvalósítását folyamatát és részletes ismertetését. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 15 Szoftverfejlesztési folyamat, módszerek és modellek Az UML • A szoftverfejlesztési életciklust folyamatosan követi a modellezés, ennek eszköze az egységes modellezési nyelv (Unified Modeling Language, UML), amely egy öt pillérű szemléletrendszerrel rendelkezik: • Használati: a szoftver szolgáltatásai és azok kapcsolata a felhasználókkal; • Szerkezeti (statikus): a rendszer és a programegységek felépítése, kapcsolatai; • Dinamikus: a programegységek viselkedése; • Implementációs: a megvalósítás szempontjai, komponensei; • Környezeti: hardver és szoftver erőforrások. 2022. 02 06 .NET

technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 16 Szoftverfejlesztési folyamat, módszerek és modellek Az UML nézetei szerkezeti vagy logikai implementációs vagy komponens használati vagy követelmény dinamikus vagy folyamat 2022. 02 06 környezeti vagy telepítési .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 17 Szoftverfejlesztési folyamat, módszerek és modellek Modell, modellelem, nézet és diagram • Modell: A modell egy rendszer (bonyolult probléma vagy szerkezet) absztrakciója, amely a megértést és a kezelhetőséget célozza. A modell az adott rendszert egy bizonyos absztrakciós szinten teljes mértékben leírja. • Nézet: A rendszernek lehetnek nézetei. Az egyes nézetek a rendszert más-más szemszögből világítják meg, más-más oldalról mutatják. • Modellelem: A modell alkotó elemei a modellelemek. Minden egyes modellelemnek más a célja, jelölése, és más-más

szabályok vonatkoznak rá. • Diagram: A diagramokat modellelemek és az azok közötti kapcsolatok alkotják. Egy diagramra bármely modellelem rátehető, és egy modellelem több diagramon is szerepelhet. Ha egy modellelemet megszüntetünk, akkor az az összes diagramról eltűnik. Két modellelem közötti kapcsolat nem feltétlenül látszik egy diagramon. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 18 Szoftverfejlesztési folyamat, módszerek és modellek Modellelemek (példák) uc Use Case Model Aktor: class Class Model Használati eset: Tanulás Használó analysis Business Process . Osztály: Objektum: Tanulo t : Tanulo - - eletkor: int nev: string + + + alszik(): void eszik(etel: string): void tanul(): void eletkor: int = 22 nev: string = "Kiss Imre" stm StateMachine sd Dynamic View Aktivitás: Állapot: eletkor Beindítj a az autót 2022. 02 06 do / szuletesnapot unnepel .NET

technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 19 Szoftverfejlesztési folyamat, módszerek és modellek Diagramok (példák) Használatieset-diagramok Telepítési diagramok Komponens diagramok Állapot diagramok Aktivitás diagramok 2022. 02 06 Osztálydiagramok UML modell diagramjai Objektumdiagramok Szekvenciadiagramok Együttműködési diagramok .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 20 Szoftverfejlesztési folyamat, módszerek és modellek Struktúramodellezés • Osztálydiagram (Class Diagram): Megadja a rendszer osztályait, és az azok közötti társítási és öröklési kapcsolatokat. Az adatbázisdiagram (database diagram) egy speciális osztálydiagram, amely megadja a rendszer perzisztens adatainak szerkezetét. • Objektumdiagram (Object Diagram): Megadja a rendszer objektumait, és az azok közötti kapcsolatokat. Az osztálydiagram egy „pillanatfelvétele” •

Komponensdiagram (Component Diagram): Megadja a szoftver fizikai felépítést, vagyis a tervezési elemek szoftver elemekre való leképezését. • Telepítési diagram (Deployment Diagram): Megadja, hogy milyen szoftver elemeket milyen hardverre telepítünk. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 21 Szoftverfejlesztési folyamat, módszerek és modellek Viselkedésmodellezés • Használatieset-diagram (Use Case Diagram): Megadja, hogy a felhasználó mire tudja használni a rendszert. Aktorokat, használati eseteket és azok kapcsolatait ábrázoló diagram. Funkcionális követelményeket ábrázoló diagram • Állapotdiagram (State Diagram): Egy adott osztály vagy alrendszer állapotváltozásait írja le. • Aktivitásdiagram (Activity Diagram): Leír egy folyamatot (tevékenységek egymásutánját). Az üzleti folyamat diagram egy speciális aktivitásdiagram, mely leírja a rendszert körülvevő

folyamatokat, illetve azt a környezetet, amelybe a rendszert el kell helyezni. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 22 Szoftverfejlesztési folyamat, módszerek és modellek Interakció • Szekvenciadiagram (Sequence Diagram): Aktorokat, objektumokat és az azok közötti kapcsolatokat, kölcsönhatásokat (üzeneteket) ábrázoló diagram. A szekvenciadiagram olyan interakció diagram, mely az idő múlására helyezi a hangsúlyt. • Együttműködési diagram (Collaboration (UML 1.x)/Communication Diagram (UML 2.0)): Megadja a rendszer objektumait, az azok közötti kapcsolatokat és üzeneteket. Az együttműködési diagram a szekvenciadiagram egy más formája – olyan interakció diagram, mely az objektumok közötti kapcsolatra helyezi a hangsúlyt. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 23 Szoftverfejlesztési folyamat, módszerek és modellek

Kapcsolatok • Függőségi (dependency): Logikai kapcsolat. Két dolog között függőségi kapcsolat van, ha az egyik (független) dolog változása maga után vonja a másik, (függő ) dolog változását. • A függőség fajtái: • Finomítás vagy részletezés (refinement) • Nyomkövetés (trace) • Tartalmazás (include) • Kiterjesztés (extend) • Szaggatott nyíllal jelöljük, ahol a nyíl iránya jelzi a függőség irányát. A mutatott dolog függ a mutató dologtól. A függés lehet kétirányú is A nyíl tartalmazhat címkét, amely leírja a függőség típusát. Elvileg bármely két dolog között lehet függőségi kapcsolat 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 24 Szoftverfejlesztési folyamat, módszerek és modellek Kapcsolatok • Társítás (assocation): Elemek közötti strukturális kapcsolat. • A társításai kapcsolat fajtái: • Ismertség (acquaintance) • Tartalmazás

(aggregation), amely lehet gyenge és erős. • Folytonos nyíllal jelöljük, ahol a nyíl iránya jelzi a kapcsolat irányát. Ha a nyíl hegyét nem tesszük ki, akkor a kapcsolat kétirányú. A tartalmazási kapcsolatot a nyíl elején egy tömör (erős tartalmazás) vagy üres (gyenge tartalmazás) rombusz jelzi. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 25 Szoftverfejlesztési folyamat, módszerek és modellek Szoftverfejlesztési módszerek és modellek • Amellett, hogy a szoftverfejlesztés betartja az életciklus fázisait, a folyamat lefolyása különféle módokon történhet, amiket szoftverfejlesztési módszereknek nevezünk: • Klasszikus módszerek: vízesés, prototipizálás, inkrementális, iteratív, spirális, VModel; • Agilis módszerek: Scrum, Lean, Kanban, XP (extreme programming), RAD (rapid application development); • Speciális célú módszerek: BDD (behavior-driven development), TDD

(test-driven development), FDD (feature-driven development); • Formális módszerek: B-módszer. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 26 Szoftverfejlesztési folyamat, módszerek és modellek Szoftverfejlesztési módszerek és modellek: A vízesés modell • A szoftverfejlesztési modell határozza meg az életciklus egyes fázisai közötti kapcsolatot, időbeliséget. • A legegyszerűbb fejlesztési modell a vízesés (waterfall) modell, amelyben az egyes fázisok lineárisan követik egymást: • Előre megtervezi a projekt időtartamát, ráfordításait; • Elvárja minden fázis megfelelő dokumentálását, amely tartalmazza annak eredményeit; • Előnyei: jól strukturált, dokumentált folyamatot biztosít; • Hátrányai: nem teszi lehetővé a követelmények megváltoztatását, nem készül fel az esetleges nehézségekre (nincs kockázatkezelés). 2022. 02 06 .NET technológiák, Készítette: Dr

Katona József, PhD (katonaj@unidunahu) 27 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: A vízesés modell feladat specifikáció tervezés implementáció validáció evolúció 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 28 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Prototípusok • A szoftverfejlesztés során felmerülő nehézségek könnyebben előreláthatóak, ha a szoftvernek elkészítjük a prototípusait (prototyping), amely lehet: • horizontális prototípus: interakciós szempontból mutatja be szoftvert (pl. felhasználói felület); • vertikális prototípus: egy adott funkció (csoport) részletes megvalósítása (pl. adatkezelés) • A folyamat során megvalósított prototípusok a szoftver részévé válhatnak (evolutionary prototyping), vagy szolgálhatják csak a bemutatást/ellenőrzést, és ténylegesen nem kerülnek

felhasználásra (throwaway prototyping). 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 29 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: A spirális modell • A (Boehm-féle) spirális (spiral) modell egy kockázatvezérelt fejlesztési modell, amelyben a folyamat során elsőként prototípusok kerülnek megvalósításra, amelyek kiértékelése után kerül megvalósításra a tényleges szoftver: • A fejlesztés ciklusokban történik, amelyben az elkészített prototípusok, valamint a továbbfejlesztésével kapcsolatos kockázatok kiértékelésre kerülnek; • Előnyei: jobban alkalmazkodik a változó követelményekhez, a prototípusok lehetővé teszik a nehézségek előrelátását; • Hátrányai: költségesebb a prototípus elkészítése és a kockázatkiértékelés végett, továbbá a prototípusok megzavarhatják a felhasználót. 2022. 02 06 .NET technológiák, Készítette:

Dr Katona József, PhD (katonaj@unidunahu) 30 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: A spirális modell 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 31 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Az inkrementális modell • Az inkrementális (incremental) modell több lépésből építi fel a folyamatot, és több változatban állítja elő a szoftvert: • Minden változat egy újabb funkcionalitással bővíti a szoftvert, a fázisok rövidek, gyors visszajelzésekkel (a felhasználói oldalról); • Az egyes fázisok átfedésben vannak, és kihatnak egymásra; • Előnyei: gyorsan alkalmazkodik a változó követelményekhez, a felhasználó jobban követheti a fejlesztési folyamatot; • Hátrányai: kevésbé menedzselhető, tervezhető, áttekinthető, nehezebben validálható. 2022. 02 06 .NET technológiák, Készítette: Dr Katona

József, PhD (katonaj@unidunahu) 32 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Az inkrementális modell kezdeti változat specifikáció feladat tervezés és implementáció köztes változatok köztes változatok köztes változatok validáció 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) végső változat 33 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek modellek: Agilis szoftverfejlesztés • Az agilis szoftverfejlesztés (agile software development) célja a gyors alkalmazásfejlesztés megvalósítása, inkrementális alapon: • A szoftver folyamatos fejlesztés és kiadás alatt áll (continuous delivery), a sebesség állandó, a változtatások minden lépésben beépíthetőek (welcome changes); • A működő szoftver az előrehaladás mérőeszköze, előtérben az egyszerűség, ugyanakkor folyamatos odafigyelés a megfelelő tervezésre,

optimalizációra; • A fejlesztést általában önszervező, kis csapatok végzik, megosztott felelősséggel, folytonos interakcióval, gyors visszajelzésekkel. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 34 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Agilis szoftverfejlesztés • Az agilis fejlesztés • Előnyei: jól alkalmazkodik a változtatásokhoz, hatékonyabbá teszi a fejlesztési folyamatot; • Hátrányai: egyes tényezői nehezen megvalósíthatóak, különösen nagyobb szoftverek esetén a megvalósításhoz képzett fejlesztők kellenek, a dokumentáció hiánya megnehezíti a későbbi evolúciót. • Az agilis fejlesztés elveit több speciálisabb módszertan ültette át a gyakorlatba: • pl. Extreme programming, Scrum, Kanban, Lean; • A módszertanok nem szeparáltak, a gyakorlatban sokszor vegyítve alkalmazzák őket. 2022. 02 06 .NET technológiák,

Készítette: Dr Katona József, PhD (katonaj@unidunahu) 35 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Agilis szoftverfejlesztés • Az Extreme programming (XP) a gyors fejlesztési ciklusokra támaszkodik: • Elvárja a követelmények viselkedés alapú felbontásával (BDD), a tesztek előre történő megadását (TDD), a folyamatos integrációt és refaktorálást; • Támogatja a párban történő programozást. • A Lean software development (LSD) az egyszerűséget, a felesleges tényezők kiküszöbölését hangsúlyozza: • Kiküszöbölendő tényezők (TIMWOOD): munka és munkaerő átvitel, eszköztár túlhalmozás, várakoztatás, túlteljesítés, hibák; • Támogatja a döntések elhalasztását, a folyamatos, globális áttekintést. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 36 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Scrum

módszer • Az agilis fejlesztés menedzselését az egyes változatok előállítása szempontjából közelítik meg, amelyhez a Scrum módszer ad egy általános modellt: • fő lépései: 1. Architekturális tervezés, amely megadja a szoftver magas szintű vázát; 2. Futamok (sprint), amelyek az egyes változatokat állítják elő, és rögzített hosszúságúak (2-4 hét); 3. projektzárás, a szükséges dokumentáció előállítása; • nincs projektmenedzser, de minden futamnak van felelőse (scrum master), akinek a személye futamonként változik. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 37 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Scrum módszer • Minden futam egy összetett folyamat megtervezett lépésekkel: • Feladatok felmérése (select), lefejlesztése (develop), áttekintése (review), kiértékelése (assess); • A megvalósítandó funkciók a termékgazdával

egyetértésben kerülnek kiválasztásra a teendők listájából (product backlog); • Naponta rövidebb megbeszélések (stand-upmeeting) a teljes csapat számára; • Ciklus elején/végén hosszabb megbeszélések (sprint planning, sprint review), valamint visszatekintés (retrospective) a termékgazdával. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 38 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Scrum módszer teendő lista felmérés fejlesztés architektúrális tervezés projektzárás kiértékelés áttekintés szoftver teendő változatok teendőlista lista 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 39 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Kanban • A Kanban módszer célja a döntéshozatal elősegítése, és a fejlesztési folyamat gyors áttekintése: • Eszköze a Kanban tábla

(Kanban board), amely vizualizálja a fejlesztési feladatok állását. • Elvei: • kiinduló állapot áttekintése, folyamatos, kísérleti továbbfejlesztés; • fókuszban a felhasználói elvárások, folyamatos visszajelzés; • egyéni döntéshozatal, önszervezés támogatása, tanulás és fejlődés; • munkamennyiség és kiegészítő tevékenységek korlátozása. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 40 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Kanban 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 41 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Folyamatos integráció • A folytonos integráció (continuous integration, CI) egy olyan gyakorlati módszer, amely lehetővé teszi a programkódok ellenőrzésének és tesztelésének felgyorsítását: • Célja a lehetséges hibák,

integrációs problémák azonnali, automatizált kiszűrése, visszajelzés a fejlesztőnek; • A programkódok verziókezelő rendszer segítségével egy központi tárhelyre kerülnek, naponta többször; • A tárhely tartalma minden módosítást követően automatikusan fordításra kerül (build automation), a fordítással pedig a lekódolt tesztek is végrehajtódnak; • Az így ellenőrzött kódot további tesztelés követheti. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 42 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Folyamatos integráció sd Folyamatos integráció verziókövető kihelyezés automatikus tesztelés automatikus fordítás fejlesztő betölt() értesít() fordít() sikertelen fordítás() betölt() értesít() fordít() értesít() tesztel() továbbít() sikeres kihelyezés() 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD

(katonaj@unidunahu) 43 A szoftverfejlesztési folyamat Szoftverfejlesztési módszerek és modellek: Csoportosítás • A szoftverfejlesztési modelleket 3 csoportba soroljuk: • Terv-vezérelt (plan-driven): célja a rend fenntartása, a szoftver fejlesztése előzetes specifikáció és tervezés alapján történik, igyekszik garantálni a minőséget; • Agilis: célja a változáshoz történő alkalmazkodás, az egyszerűség, így kevésbé garantálja a minőséget; • Formális: garantálja a minőséget, az implementáció bizonyíthatóan helyes megoldását adja a specifikációnak • A gyakorlatban a fejlesztőcsapat és a feladat befolyásolja leginkább a választott módszert: • Sokszor a különböző módszerek vegyítve jelennek meg. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 44 A szoftverfejlesztési folyamat Szoftvereszközök • A fejlesztőcsapat munkáját megfelelő szoftvereszközökkel kell

alátámasztani: • Projektirányítási eszközzel (project tracking system), amely támogatja a dokumentálást és a feladatok követését; • Fejlett tervezőeszközzel (case tool), ahol a fejlesztés folyamata és a felelősség is nyomon követhető; • Integrált fejlesztőkörnyezettel (IDE), amely elősegíti a csapatmunkát; • Verziókövető rendszerrel (revision control system), amely lehetővé teszi a programkód változásainak követését; • Folyamatos integrációs eszközzel (continuous integration), amely elősegíti a tevékenységek automatizálását. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 45 A szoftverfejlesztési folyamat Projektirányítási eszközök lehetőségei • A projektirányítási eszköz lehetőséget ad a projekt menedzselésének ellátására: • Általában webes felületű eszköz, amely bárhonnan elérhető és használható; • Főbb funkciói: • Fejlesztés

ütemtervének, kockázatainak rögzítése; • Egyszerű és folyamatos dokumentálás lehetősége; • Feladatok, tevékenységek, hibák rögzítése, és a kapcsolatos tevékenységek követése; • Integrált forráskód böngészés, és forrástörténet áttekintés (verziókezelés). • Pl.: Trac, Redmine, Team Foundation Server (TFS) 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 46 A szoftverfejlesztési folyamat Projektirányítási eszközök lehetőségei • A rendszerek lehetőséget adnak a fejlesztők számára feladatok kitűzésére, valamint a tesztelők számára a programban fellelhető hibák jelzésére: • A feladatokat úgynevezett cédulák (ticket, issue) segítségével írhatóak ki: • Jelölhetnek új funkcionalitást (feature), hibát (bug), egyéb fejlesztési feladatot (task), vagy dokumentációs feladatot (documentation); • Megadható a leírása, felelőse, határideje; •

Kommentálhatóak, lezárhatóak, újra kinyithatóak. • A cédulák biztosítják a fejlesztési és tesztelési folyamat naplózását. 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 47 A szoftverfejlesztési folyamat Projektvezető szolgáltatások • A projektvezető szolgáltatások (project hosting services) olyan online szolgáltatások, amelyek a projekttel kapcsolatos legtöbb funkcionalitást integrálják: • Projektmenedzsment, kód tárolás, verziókövetés, dokumentáció, folyamatos integráció, kihelyezés; • Integrálhatóak projektirányítási eszközökkel, fejlesztőeszközzel; • Garantálják a kód épségét, a folyamatos rendelkezésre állást; • Általában nyílt forráskódú szoftverek esetén ingyenes a használatuk; • pl.: SourceForge, CodePlex, GitHub, GitLab 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 48 Köszönöm a figyelmet!

Kérdés(ek)??? FELHASZNÁLT FORRÁSOK Irodalom(ak): https://people.infeltehu/groberto/elte szt/eloadas anyagok/elte szt ea01 diapdf https://people.infeltehu/groberto/elte szt/eloadas anyagok/elte szt ea12 diapdf https://www.planviewcom/resources/guide/kanban-project-management-virtual-teams/kanban-boardexamples/ 2022. 02 06 .NET technológiák, Készítette: Dr Katona József, PhD (katonaj@unidunahu) 50