Szoftvertechnológia 12. előadás. Szoftverfejlesztési módszerek és modellek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Hasonló dokumentumok
Programozási technológia 2.

Programozási technológia 2.

Agilis projektmenedzsment

Térinformatikai és távérzékelési alkalmazások fejlesztése. A szoftverfejlesztés technikai támogatása

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

Szoftver technológia. Continuous integration & delivery. Cserép Máté ELTE Informatikai Kar 2019.

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Bevezetés a programozásba

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Verifikáció és validáció Általános bevezető

TESZTELÉS A SZOFTVER ÉLETCIKLUSÁN ÁT SZOFTVERFEJLESZTÉSI MODELLEK

Intelligens eszközök fejlesztése az ipari automatizálásban Evosoft Hungary kft., Evosoft Hungary Kft.

Ami a vízesésen túl van

Név: Neptun kód: Pontszám:

(Teszt)automatizálás. Bevezető

01. gyakorlat - Projektalapítás

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

Fejlesztési projektek menedzselése IBM Rational CLM termékekkel. Ker-Soft Kft. Kaszás Orsolya - üzleti tanácsadó

Szoftvertechnológia 1. előadás. A szoftverfejlesztési folyamat. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Minőségmenedzsment és Informatika Test-Driven Development

S01-7 Komponens alapú szoftverfejlesztés 1

Szoftvertechnológia 1. előadás. A szoftverfejlesztési folyamat Giachetta Roberto groberto@inf.elte.hu

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

In short, software is eating the world.

Fejlesztési modellek és módszertanok

MIÉRT KELL TESZTELNI?

INPUT PROGRAM Agilitás, SCRUM és Lean Startup

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Verziókövető rendszerek használata a szoftverfejlesztésben

extreme Programming programozástechnika

Scrum vagy nem scrum - ahol nem hibázhatunk Röviden a budapesti fejlesztési központról

Software engineering (Software techológia) Bevezetés, alapfogalmak. Történelem 1. Történelem as évek Megoldandó problémák: Fejlesztő: Eszköz:

Szoftverfejlesztés teszteléssel

Szoftvertermékek csoportjai. A szoftver. Bemutatkozás és követelmények

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Mi a folyamat? Folyamatokkal kapcsolatos teendőink. Folyamatok azonosítása Folyamatok szabályozása Folyamatok folyamatos fejlesztése

cím: 6725 Szeged Bokor u. 18. telefon: Innomedio Kft Scrum módszertan 1.0 Verzió Érvényes: április 1-től

Félévi követelmények Bemutatkozás és követelmények

Programfejlesztési Modellek

Szemléletmód váltás a banki BI projekteken

Mobil Informatikai Rendszerek

INPUT PROGRAM 2. Kanban és SCRUM. KANBAN alapok

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

Információtartalom vázlata

Nagy bonyolultságú rendszerek fejlesztőeszközei

Programozási technológia II 7. előadás. Verifikáció és validáció Giachetta Roberto

Szoftvertechnológia ellenőrző kérdések 2005

Kis-és nagyvállalatok együttműködésének előnyei és nehézségei a projektmenedzser szemével. Gyutai Balázs Loxon Tessényi András - Supercharge

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

TESZTMENEDZSMENT TESZTELŐ SZERVEZET TESZTTERVEZÉS ÉS BECSLÉS

Minőségmenedzsment: azért felel, hogy a projekt teljesítse az elvárt feladatát és a követelményeket.

Menetrendkezelő Rendszer

Autóipari beágyazott rendszerek. Fejlesztési fázis

Információs rendszerek Információsrendszer-fejlesztés

30 MB INFORMATIKAI PROJEKTELLENŐR

Szoftverminőségbiztosítás

A CMMI alapú szoftverfejlesztési folyamat

Szoftverminőségbiztosítás

A TANTÁRGY ADATLAPJA

Félévi követelmények. Gyakorlatvezetők

ELTE, Informatikai Kar december 12.

4. A szoftvergyártás folyamata

Életciklus modellek a rendszer és szoftverrendszer-fejlesztésben. SDLC System Development Life Cycle Software Development Life Cycle

Szoftverfejlesztési módszertanok / Agilis SCRUM

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

IRÁNYTŰ A SZABÁLYTENGERBEN

Tesztelés az XP-ben Tesztelés az XP-ben. A tesztelés kulcsjellemzői:

Modell alapú tesztelés: célok és lehetőségek

Informatikai projekteredmények elfogadottságának tényezői

Projectvezetők képességei

Szoftverminőségbiztosítás

Szoftver újrafelhasználás

Szoftver-technológia I.

A TANTÁRGY ADATLAPJA

Szoftverminőségbiztosítás

Előadók: Angyal Gergely (Raiffeisen), tesztelési csoportvezető Kováts Márton (KFKI), szenior rendszermérnök

Test Strategy. Tartalomjegyzék

Üzletmenet folytonosság menedzsment [BCM]

Szoftvertesztelés - Bevezető

Minőségi téradat-szolgáltatások. fejlesztése és. és üzemeltetése

Azonnali Információs Fórum. AZUR-projekt

DW/BI rendszerek kialakítása bevezetői szemszögből. Gollnhofer Gábor - Meta Consulting Kft.

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK STRUKTÚRA ALAPÚ, VAGY FEHÉRDOBOZ TECHNIKÁK TAPASZTALAT ALAPÚ TECHNIKÁK

Informatikai projektellenőr szerepe/feladatai Informatika / Az informatika térhódítása Függőség az információtól / informatikától Információs

A DevOps-kultúra eszközei

Rubin SPIRIT TEST. Domino net provisioning tesztelése esettanulmány 1.0. Készítette: Dobó Arnold Jóváhagyta: Varga József. Rubin Informatikai Zrt.

Szoftverminőségbiztosítás

A szoftverfolyamat és s a tesztelés

ALKALMAZÁS KERETRENDSZER

Agilis szoftverfejlesztés és Scrum

Teszt terv Új funkció implementációja meglévı alkalmazásba

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Tartalomjegyzék. 1 A tesztelés alapjai. 2 Tesztelés a szoftver életciklusán át. 3 Statikus technikák. 4 Teszt tervezési technikák. 5 Integrációs teszt

TOGAF elemei a gyakorlatban

Funkciópont elemzés: elmélet és gyakorlat

Java programozási nyelv

Projekt siker és felelősség

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Szoftvertechnológia 12. előadás Szoftverfejlesztési módszerek és modellek Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

A szoftver életciklus 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 ELTE IK, Szoftvertechnológia 12:2

A szoftver életciklus feladat specifikáció tervezés és implementáció validáció evolúció kész szoftver ELTE IK, Szoftvertechnológia 12:3

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) ELTE IK, Szoftvertechnológia 12:4

A vízesés modell feladat specifikáció tervezés implementáció validáció evolúció ELTE IK, Szoftvertechnológia 12:5

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) ELTE IK, Szoftvertechnológia 12:6

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 ELTE IK, Szoftvertechnológia 12:7

A spirális modell ELTE IK, Szoftvertechnológia 12:8

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ó ELTE IK, Szoftvertechnológia 12:9

Az inkrementális modell specifikáció kezdeti változat feladat tervezés és implementáció köztes változatok validáció végső változat ELTE IK, Szoftvertechnológia 12:10

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 ELTE IK, Szoftvertechnológia 12:11

Az Agilis Kiáltvány Azzal leplezzük le a szoftverfejlesztés jobb módjait, hogy csináljuk és segítünk másoknak is csinálni. Ezen a munkán keresztül következő értékekhez jutottunk el: Egyének és kölcsönhatások előnyben részesítése a folyamatok- és eszközökkel szemben Működő szoftver előnyben részesítése az átfogó dokumentációval szemben Ügyféllel való együttműködés előnyben részesítése a szerződéses megállapodással szemben Változásokra adandó válasz előnyben részesítése egy terv követésével szemben Habár a jobb oldali elemekben is van érték, mi sokkal értékesebbnek tartjuk a baloldali elemeket. ( 2001, Beck, K., et. al.) ELTE IK, Szoftvertechnológia 12:12

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 ELTE IK, Szoftvertechnológia 12:13

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 ELTE IK, Szoftvertechnológia 12:14

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 ELTE IK, Szoftvertechnológia 12:15

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-up meeting) 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 ELTE IK, Szoftvertechnológia 12:16

Scrum módszer teendőlista felmérés fejlesztés architektúrális tervezés kiértékelés áttekintés projektzárás szoftver változatok ELTE IK, Szoftvertechnológia 12:17

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 ELTE IK, Szoftvertechnológia 12:18

Kanban ELTE IK, Szoftvertechnológia 12:19

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 ELTE IK, Szoftvertechnológia 12:20

Folyamatos integráció fejlesztő verziókövető automatikus fordítás automatikus tesztelés kihelyezés betölt értesít sikertelen fordítás fordít betölt értesít fordít értesít tesztel továbbít sikeres kihelyezés ELTE IK, Szoftvertechnológia 12:21

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 ELTE IK, Szoftvertechnológia 12:22

3 Biggest Software Lies: The program s fully tested and bug-free. We re working on the documentation. Of course we can modify it (ismeretlen)