RUP, XP és SPEM. Budapest Április 21. Ráth István (Szőke Ákos fóliái alapján)

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

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

The Unified Software Development Process. Történet. Feltételek. Rational Unified Process. Krizsán Zoltán Ficsor Lajos

01. gyakorlat - Projektalapítás

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

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

UML (Unified Modelling Language)

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

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

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

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

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

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

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

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

(Teszt)automatizálás. Bevezető

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

MIÉRT KELL TESZTELNI?

A CMMI alapú szoftverfejlesztési folyamat

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

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

extreme Programming programozástechnika

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

Tartalom. Szoftverfejlesztési. Szoftver = Termék. módszertan. la Rational XDE CASE eszköz. Az előállításához technológiára van szükség

Bevezetés a programozásba

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

Agilis projektmenedzsment

4. A szoftvergyártás folyamata

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Szoftverminőségbiztosítás

Objektum orientált software fejlesztés (Bevezetés)

A szoftverfejlesztés eszközei

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

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Szoftverminőségbiztosítás

SW-project management

IT Factory. Kiss László

Modell alapú tesztelés mobil környezetben

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

A TANTÁRGY ADATLAPJA

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

A szoftver tesztelés alapjai

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

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

Szoftvertechnológia szakirány

Szoftver újrafelhasználás

Nagy bonyolultságú rendszerek fejlesztőeszközei

Hogyan lehet megakadályozni az üzleti modellezés és az IT implementáció szétválását? Oracle BPM Suite

2. A szoftver mint termék llításának folyamata, a szoftver életciklus modelljei

S01-7 Komponens alapú szoftverfejlesztés 1

A szoftverellenőrzés szerepe

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

Közösség, projektek, IDE

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

Szoftverminőségbiztosítás

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

TOGAF elemei a gyakorlatban

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

Szoftver-technológia I.

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Projectvezetők képességei

Komponens alapú fejlesztés

Modellezési Kockázat. Kereskedelmi Banki Kockázatmodellezés. Molnár Márton Modellezési Vezető (Kockázatkezelés)

Előzmények

Programfejlesztési Modellek

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

S S A D M ELEMZÉSI ÉS TERVEZÉSI MÓDSZERTAN. Structured Systems Analysis and Design Method

A CMMI alapú szoftverfejlesztési si folyamat

Ami a vízesésen túl van

A fejlesztési szabványok szerepe a szoftverellenőrzésben

DW 9. előadás DW tervezése, DW-projekt

Szabálykezelés a gyakorlatban

Szoftverminőségbiztosítás

Software Engineering

Orvostechnikai eszköz tesztelése DSS Unit test. Taliga Miklós BME-IIT

Pénzügy, számvitel. Váradi Mónika

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

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

IRÁNYTŰ A SZABÁLYTENGERBEN

Miért is transzformáljunk modelleket? Varró Dániel

Bevezetés a programozásba előadás: Alapvető programtervezési elvek

Azonnali fizetési rendszer megvalósítása

Böngészők, böngészőmotorok

Fejlesztési modellek és módszertanok

Gyakorlat és házi feladat tájékoztató

Szoftverminőségbiztosítás

A TANTÁRGY ADATLAPJA

Összetett szoftverrendszerek fejlesztése Innovatív szoftver prototípusok a Codespring Mentorprogram keretein belül

Az alkalmazás minőségbiztosítás folyamata Fókuszban a teszt-automatizálás

KOGGM614 JÁRMŰIPARI KUTATÁS ÉS FEJLESZTÉS FOLYAMATA

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

Programozási technológia 2.

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

Szoftverspecifikáció fázis: Követelmény specifikáció. 2. fázis: Követelmények feltárása és elemzése

Járműinformatika A járműinformatikai fejlesztés

A DevOps-kultúra eszközei

Kód átvizsgálás. Irodalom. (Code review) code review,smart Bear Inc., ! Jason Cohen: Best kept secrets of peer

Autóipari beágyazott rendszerek Dr. Balogh, András

SOA projektmenedzsment. Kondorosi Károly BME IIT, 2011.

Átírás:

RUP, XP és SPEM Budapest 2010. Április 21. Ráth István rath@mit.bme.hu (Szőke Ákos fóliái alapján)

Tartalomjegyzék Best pracpces A RaPonal Unified Process (RUP) RUP elveinek bemutatása RUP elemeinek bemutatása RUP fázisok bemutatása RUP, mint termék bemutatása extreme programming Agilis metodikák összehasonlítása Folyamatmintáktól a SPEM- ig 2

Best PracPces 3

Trend a szowvertechnológiában Egyre komplexebb rendszerek A meglévő fejlesztési folyamatok nem megfelelőek: 4

Trend a szowvertechnológiában Egyre komplexebb rendszerek A meglévő fejlesztési folyamatok nem megfelelőek: Az OK: a megfelelő módszertan hiánya! 4

A hinta 5

A probléma megoldás lépései: 6

A probléma megoldás lépései: Szimptómák (tünetek) meghatározása 6

A probléma megoldás lépései: Szimptómák (tünetek) meghatározása 6

A probléma megoldás lépései: Szimptómák (tünetek) meghatározása Okok felderítése 6

A probléma megoldás lépései: Szimptómák (tünetek) meghatározása Okok felderítése 6

A probléma megoldás lépései: Szimptómák (tünetek) meghatározása Okok felderítése Okok megszüntetése 6

Szimptómák meghatározása Elvárások nem teljesülnek Követelmények zavarosak Modulok nem illeszkednek egymáshoz Nehéz a karbantartás Hibák késő detektálása Gyenge minőség Gyenge performancia Fejlesztők közö_ eltérések 7

Okok felderítése Elégtelen követelmény- meghatározás Félreérthető kommunikáció Nem eléggé robosztus az architektúra Túlságosan nagy komplexitású a rendszer Nem detektált inkonzisztencia Alacsony fokú kiteszteltség Szubjekbv értékelés Vízesés modellen alapuló fejlesztés Nem kontrollált változtatás Elégtelen automapzáció 8

Okok megszüntetése Legjobb gyakorlatok Elvárások nem teljesülnek Követelmények zavarosak Modulok nem illeszkednek egymáshoz Nehéz a karbantartás Hibák késő detektálása Gyenge minőség Gyenge performancia Fejlesztők közö_ eltérések Elégtelen követelménymeghatározás Félreérthető kommunikáció Nem eléggé robosztus az architektúra Túlságosan nagy komplexitású a rendszer Nem detektált inkonzisztencia Alacsony fokú kiteszteltség Szubjektív értékelés Vízesés modellen alapuló fejlesztés Nem kontrollált változtatás Elégtelen automatizáció Best Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Control Changes (UCM) 9

Okok megszüntetése Legjobb gyakorlatok Elvárások nem teljesülnek Követelmények zavarosak Modulok nem illeszkednek egymáshoz Nehéz a karbantartás Hibák késő detektálása Gyenge minőség Gyenge performancia Fejlesztők közö_ eltérések Elégtelen követelménymeghatározás Félreérthető kommunikáció Nem eléggé robosztus az architektúra Túlságosan nagy komplexitású a rendszer Nem detektált inkonzisztencia Alacsony fokú kiteszteltség Szubjektív értékelés Vízesés modellen alapuló fejlesztés Nem kontrollált változtatás Elégtelen automatizáció Best Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Control Changes (UCM) 9

Mit jelentenek a legjobb gyakorlatok? Elvek, módszerek és folyamatok egy szerveze6 és dokumentált halmaza, amely növeli a szo=verfejlesztési minőségét és produkavitását. 10

PracPce 1 Fejlessz iterabvan! Develop Iteratively Manage Requirements Best Practices Use Component Architectures Model Visually Continuously Verify Quality Control Change 11

Szekvenciális fejlesztés Szekvenciális tevékenységek: Requirements Design Code Integra=on Test 100% Fejlesztés előrehaladása (% kódolt) Integráció kezdete Late Design Breakage Eredeti átadási dátum 12

A szekvenciális és az iterabv fejlesztési folyamat Folyamatok időbeli lefutása: összehasonlítása - 1 13

A termékek evolúciója a fejlesztési Az iterabv megközelítés miaj az idő előrehaladtával a termékek egyre érejebbek lesznek. 14

Bizonytalansági kúp 15

PracPce 2 Kezeld a követelményeket! Develop Iteratively Manage Requirements Best Practices Use Component Architectures Model Visually Continuously Verify Quality Control Change 16

PracPce 3 Használj komponens architektúrákat Develop Iteratively Manage Requirements Best Practices Model Visually Continuously Verify Quality Use Component Architectures Control Change 17

Komponens alapú architektúra előnye Komplexitás jobban kezelhető Integritás jobban biztosítható Újrafelhasználást támogatja: Komponens újrafelhasználás Architektúra újrafelhasználás Projekt menedzsmentet támogatja: SzoWver tervezés Emberi erőforrás tervezés 18

Példa: komponens alapú architektúra Lead Tracking Functions User Interface Mechanisms Customer Product Purchased Existing New 19

Példa: komponens alapú architektúra Lead Tracking Functions User Interface Mechanisms Customer Product License Purchased Existing New 19

Példa: komponens alapú architektúra Lead Tracking Functions User Interface Mechanisms Customer Product License Purchased Existing New 19

Példa: komponens alapú architektúra Lead Tracking Functions Licensing Functions User Interface Mechanisms Customer Product License Purchased Existing New 19

PracPce 4 Modellezz vizuálisan! Develop Iteratively Manage Requirements Best Practices Use Component Architectures Continuously Verify Quality Model Visually (UML) Control Change 20

Reprezentáció: az UML Az UML, a szowver- intenzív rendszerek termékeinek vizuális megjelenítésre, specifikálásra, tervezésre, és dokumentálásra kidolgozoj jelölésrendszer. 21

Vizuális modellezés az UML- lel Sequence Diagrams Use-Case Diagrams Class Diagrams Object Diagrams Collaboration Diagrams Models Component Diagrams Dynamic Diagrams Statechart Diagrams Activity Diagrams Deployment Diagrams Static Diagrams 22

PracPce 5 Folyamatosan ellenőrizd a szowver minőségét! Develop Iteratively Manage Requirements Best Practices Use Component Architectures Model Visually Control Change Continuously Verify Quality 23

Minőség méréséhez: szowver metrikák alkalmazása Termék metrikák pl. méret, funkcionalitás, komplexitás, struktúra Folyamat (fejlesztés és támogatás) metrikák pl. hibaszám, követelményeknek való megfelelőség Projekt metrikák pl. produkpvitás, ütemezés, költség, munkaerő- minta 24

PracPce 6 Kezeld a szowver változásait! Develop Iteratively Manage Requirements Best Practices Use Component Architectures Model Visually Continuously Verify Quality Control Change (UCM) 25

Mire való a változáskezelés? Iterabv fejlesztésből adódó változások vezérléséhez, nyomon követéséhez és monitorozásához. Minden fejlesztőnek biztonságos workspace- t biztosítson. AutomaPkus integrációhoz és build menedzsmenthez. Workspace Management Parallel Development Process Integration REPORT ALERT Build Management 26

A Best PracPce- ek egymást erősípk Develop Iteratively Best Practices Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Control Changes (UCM) A felhasználók bevonása a követelmények meghatározásába. Architektúra korai validációja. A tervezés és implementáció komplexitása fokozatosan nő. A minőség korai és gyakori mérése. Változások folyamatos nyomonkövetése. 27

A RUP ezen Best PracPce- okon alapul 28

A RUP ezen Best PracPce- okon alapul Develop Iteratively Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change 28

A RUP ezen Best PracPce- okon alapul Develop Iteratively Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change 28

A RUP ezen Best PracPce- okon alapul Develop Iteratively Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change 28

A RaPonal Unified Process (RUP) RUP elveinek bemutatása RUP elemeinek bemutatása RUP fázisok bemutatása RUP, mint termék bemutatása

A RaPonal Unified Process (RUP) RUP elveinek bemutatása RUP elemeinek bemutatása RUP fázisok bemutatása RUP, mint termék bemutatása

Mi a RUP? 31

Mi a RUP? Szoftverfejlesztési elv, mely: - Use-case vezérelt - Architektúra központú - Iteratív 31

Mi a RUP? Szoftverfejlesztési elv, mely: - Use-case vezérelt - Architektúra központú - Iteratív Szoftverfejlesztési folyamat, mely: - Jól definiált (ki, mit, mikor, hogyan) - Jól strukturált (életciklus, mérföldkövek, döntések) 31

Mi a RUP? Szoftverfejlesztési elv, mely: - Use-case vezérelt - Architektúra központú - Iteratív Szoftverfejlesztési folyamat, mely: - Jól definiált (ki, mit, mikor, hogyan) - Jól strukturált (életciklus, mérföldkövek, döntések) Termék a szoftverfejlesztéshez, mely - Testre szabható (projekt méret, ceremónia) - A projekt összes tagjának szolgáltatásokat nyújt 31

A RUP, mint szowverfejlesztési elv mopvációja A megrendelői igények kielégítése a cél, ezért ennek kell a központban lenni a folyamat során Minden jól működő rendszernek egy egyszerű, jól működő architektúrája van A szowverfejlesztés bizonytalanságának a csökkentése a fokozatos előrehaladással 32

A RUP, mint szowverfejlesztési elv mopvációja A megrendelői igények kielégítése a cél, ezért ennek kell a központban lenni a folyamat során Minden jól működő rendszernek egy egyszerű, jól működő architektúrája van A szowverfejlesztés bizonytalanságának a csökkentése a fokozatos előrehaladással Use case vezérelt 32

A RUP, mint szowverfejlesztési elv mopvációja A megrendelői igények kielégítése a cél, ezért ennek kell a központban lenni a folyamat során Use case vezérelt Minden jól működő rendszernek egy egyszerű, jól működő architektúrája van Architektúra centrikus A szowverfejlesztés bizonytalanságának a csökkentése a fokozatos előrehaladással 32

A RUP, mint szowverfejlesztési elv mopvációja A megrendelői igények kielégítése a cél, ezért ennek kell a központban lenni a folyamat során Use case vezérelt Minden jól működő rendszernek egy egyszerű, jól működő architektúrája van A szowverfejlesztés bizonytalanságának a csökkentése a fokozatos előrehaladással Architektúra centrikus Inkrementális és iteratív 32

Use Case vezérelt 33

Architektúra centrikusság: MDA Legend: Mostly text Diagram + text Model Code 34

Architektúra centrikusság: MDA Requirements Analysis Design Coding Testing Deployment Legend: Mostly text Diagram + text Model Code 34

Architektúra centrikusság: MDA Requirements Analysis Design Coding Testing Deployment Vision/scope SRS SDD Code Code Legend: Mostly text Diagram + text Model Code 34

Architektúra centrikusság: MDA Iterative process Requirements Analysis Design Coding Testing Deployment Vision/scope SRS SDD Code Code Legend: Mostly text Diagram + text Model Code 34

Architektúra centrikusság: MDA Iterative process Requirements Analysis Design Coding Testing Deployment Vision/scope SRS SDD Code Code Programmer s shortcut Legend: Mostly text Diagram + text Model Code 34

Architektúra centrikusság: MDA Iterative process (Non)Functional features Requirements Analysis Design Coding Testing Deployment Vision/scope SRS SDD Code Code Programmer s shortcut Legend: Mostly text Diagram + text Model Code 34

Architektúra centrikusság: MDA Iterative process (Non)Functional features Requirements Analysis Design Coding Testing Deployment Vision/scope SRS SDD Code Code Requirements Analysis Design Coding Testing Deployment Programmer s shortcut Legend: Mostly text Diagram + text Model Code 34

Architektúra centrikusság: MDA Iterative process (Non)Functional features Requirements Analysis Design Coding Vision/scope SRS SDD Requirements Analysis Design Coding PIM PIM PSM Testing Code Testing Code Deployment Code Deployment Code Programmer s shortcut Legend: Mostly text Diagram + text Model Code 34

Architektúra centrikusság: MDA Iterative process (Non)Functional features MDA process (Non)Functional features Requirements Analysis Design Coding Vision/scope SRS SDD Requirements Analysis Design Coding PIM PIM PSM Testing Code Testing Code Deployment Code Deployment Code Programmer s shortcut Legend: Mostly text Diagram + text Model Code 34

Az MDA előnyei A befektetej tudás megőrzése Különböző implementációs plauorm Tudás explicijé tétele Fejlesztés felgyorsítása Implementáció jelentős része generált Implementáció minősége Szakértők transzformációs template- eket biztosítanak Karbantartás és dokumentáció Analízis és design modell továbbírása történik meg 100% nyomon követés specifikációtól a teszpg 35

Iterabv és inkrementális folyamat Minden iterációban: RADIT lépések Minden iteráció az előzőre épül Konvergál a végleges termékhez 36

A RaPonal Unified Process (RUP) RUP elveinek bemutatása RUP elemeinek bemutatása RUP fázisok bemutatása RUP, mint termék bemutatása

A fejlesztési folyamat két dimenziója 38

A folyamat dinamikus struktúrája Mind a 4 fázis végén mérföldkő és jól definiált termékek: 39

A folyamat dinamikus struktúrája Mind a 4 fázis végén mérföldkő és jól definiált termékek: 39

A folyamat fázisai KezdeP fázis (IncepPon Phase) Kidolgozási fázis (ElaboraPon Phase) Megvalósítási fázis (ConstrucPon Phase) Átadási fázis (TransiPon Phase) 40

A folyamat fontosabb mérföldkövei Inception Elaboration Construction Transition time Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Product Release 41

Iterációk és fázisok kapcsolata Inception Elaboration Construction Transition Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration Kisebb mérföldkövek: release-k Az iteráció egy jól körülhatárolt tevékenység sor, mely egy megalapozoj terven és kiértékelhető kritériumon alapul, mely egy fujatható release- t (belső/külső) hoz létre. 42

A RaPonal Unified Process (RUP) RUP elveinek bemutatása RUP elemeinek bemutatása RUP fázisok bemutatása RUP, mint termék bemutatása

Az egyes fázisok ráfordítási szükséglete Inception Elaboration Construction Transition Munka ~5% 20 % 65 % 10% Idő 10 % 30 % 50 % 10% 44

KezdeP fázis helye a 45

KezdeP fázis főbb tevékenységei Projekt scope Projekt vízió elkészítése: Probléma megfogalmazása Kulcs felhasználók, stakeholder- ek analízise Magasszintű funkcionális, nem funkcionális követelmények megfogalmazása mile- wide, inch- deep felmérése: Aktorok azonosítása Magasszintű use- case- ek elkészítése Fejlesztési folyamat és eszközök meghatározása ÜzleP eset (business case) elkészítése: költség, ütemezés és kockázat becslés 46

Kidolgozási fázis helye a 47

Kidolgozási fázis főbb tevékenységei Köv. és kock. analízis Követelmények részletes felmérése, kidolgozása (lényegiek) Architektúra megtervezése, implementálása és validációja: Hw és Sw architektúra Építőkockák (building blocks) és IF- ek Technológiai döntések Kockázatok csökkentése: ütemezés, költség és terjedelem finomítása Fejlesztési folyamat finomítása 48

Megvalósítási fázis helye a 49

Megvalósítási fázis főbb tevékenységei Költség-hatékony fejlesztés Jól megalapozoj architektúra - >fejlesztési tevékenység párhuzamosítása Kimaradt követelmények részletes felmérése, kidolgozása Implementáció és unit- teszt Folyamatos integráció és regressziós tesztelés Megrendelő intenzív bevonása: alfa és béta tesztelés 50

Átadási fázis helye a 51

Átadási fázis főbb tevékenységei Rendszer finomhangolása Teljesség ellenőrzése Felhasználók oktatása, oktatási anyagok Telepítés a megrendelő telephelyére, konfigurálás Termék elfogadási teszt (kritériumok definiálása a teszt előj!) Tanulságok levonása 52

Mi történik átadás után? Fejlesztési ciklus Evolúciós ciklusok emberi tevékenység - termék (gyakori az átlapolódás) Patch- ek készítése 53

A fázisok gyakori Nem tévesztendő össze a vízesésmodell hagyományos fázisaival! Figyelembe kell venni mindkét dimenziót ( tevékenység púpok )! Nincs rögzítej munkafolyamat! Nincsenek rögzítej termékek! 54

A RaPonal Unified Process (RUP) RUP elveinek bemutatása RUP elemeinek bemutatása RUP fázisok bemutatása RUP, mint termék bemutatása

A RaPonal Unified Process (RUP) RUP elveinek bemutatása RUP elemeinek bemutatása RUP fázisok bemutatása RUP, mint termék bemutatása Live show!

extreme programming (XP)

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Szép lenne az élet mi? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Közvélemény kutatás Ki szeret napokat eltölteni azzal, hogy követelmény specifikáció és rendszer terv megbeszéléseken részt venni? Ki szeret hosszú és részletes specifikációkat és terv dokumentumokat írni? extreme programming! Ki szeret hosszú és részletesen megtervezett projekt státusz megbeszéléseken ülni? Ki szeret az első követelmény meghallását követően rögtön kódolni? Ki szereti a Java-t, vagy a C++-t? (megengedő vagy! ) Ki szeretne heti 40 órát programozni a munkahelyén, a többi 128-at pedig hobby programozással tölteni? 57

Tipikus XP projekt Rövid iterációk (2-3 hét) sorozata Minden iterációban üzlep értékek kerülnek átadásra Működő kód centrikus (állandó tesztelés) Szoros megrendelői együjműködés ( közös fejlesztés a megrendelővel) Naponta stand up megbeszélések (státusz nyomon követés) Kis létszámú programozókból álló Pger team Kis méretű szowver 58

Az XP projekt folyamata Forrás: Linda Farrenkopf - Software Methodologies and Impacts to Quality, 2004 59

Tervezési és visszajelzési hurkok az XP- ben Forrás: Per Runeson and Peter Greberg - Extreme Programming and Rational Unified Process, 2004 60

XP 12 szabálya Tervezési folyamat (planning game): Követelményeket storycard- okra írd! (cards on a wall) Teszt eseteket már a követelményeknél definiáld! Felhasználó válasszon az általad írandó funkciók közül a költség becslés alapján! Kis release - ek, rövid ciklusok Mielőbbi fujasd a programot! Mielőbbi szerezz visszajelzést a felhasználótól! Metafora használata Közösen használt nevek és leírásokat használj! Egyszerű tervezés UML- t használhatod, de egyáltalán nem szükséges! (elegendő a code model) 61

XP 12 szabálya (folyt.) Tesztelés Tesztelj állandóan! (verifikáció) Ellenőrizesd a felhasználóval! (User acceptance test) Refactoring Írd újra egyszerűbben! Pair programming Minden program funkciót kejen írjatok egy számítógép előj ülve! (állandó code review) Kollekbv tulajdonú kód Minden kódot közös felelősséggel kezeld és vele közös tulajdonként bánj! 62

XP 12 szabálya (folyt.) Állandó integráció Minden nap legalább egy kód integrációt hajtsatok végre, amely működik is! 40 óra egy hét Ne dolgozz többet egy héten 40 óránál, különben a minőség rovására megy! On- site customer A felhasználóval szorosan dolgozz együj! Kódolási standardok Tiszta, érthető, közös standardot használjatok a kód megírása során! 63

XP szabályok összefüggései Forrás: Per Runeson and Peter Greberg - Extreme Programming and Rational Unified Process, 2004 64

XP összegzése + Nagyon produkbv Projekt kockázatokat hatékonyan kezeli Helyesen futó kódra helyezi a hangsúlyt Vevői megelégedést kiemelten kezeli - 12 fő alaj alkalmas Maximum fél éves kifutású projektek KörnyezeP megkötés (közös légtér) Kultúrális megkötés (kooperáló közösség) Nem specifikál közbenső termékeket 65

Agilis metodikák összehasonlítása

A RUP, mint agilis szowverfejlesztési elv Az agilitás... annak a képessége, hogy gyorsabban cselekszünk, mint azok a dolgok, melyek negabvan befolyásolhatják a projektet. annak a képessége, hogy a releváns változásokkal: megrendelői igényekkel üzlep célokkal technológiai szükségeletekkel képes lépést tartani. 67

Agilis metodikák (RaPonal) Unified Process a 3 amigo : Bootch, Rumbaugh, Jacobson extreme programming (XP) Kent Beck SCRUM - Ken Schwaber, Mike Beedle Dynamic Systems Development Method (DSDM) Feature Driven Development (FDD) - Peter Coad Lean SoWware Development AdapPve SoWware Development - Jim Highsmith Crystal Methodologies - Alistair Cockburn 68

A vízeséses, a RUP és az XP metodika összehasonlítása Vízeséses RUP XP Prj mgt Szekvenciális Iteratív Iteratív Team formáció Nagy, erősen struktúrált Közepes méretű, tech. specialisták Programozók párban és prjmgr Követelmény mgt Szigorúan definiált és kezelt Szigorúan definiált és kezelt Programozás közben (stry crd) Elemzés és tervezés Széleskörűen és szigorú exit crit. Adott fázis részletes OO terve Követelmény elemzéssel együtt Tesztelés Modul tesztre koncentrál Tesztelési tervek szerint (U,I,UAT) Automatizált unit tesztre épít és napi integrációra 69

SoWware Process Engineering Metamodel Folyamat mintáktól a SPEM- ig RUP és XP modellek

SoWware Process Engineering Metamodel Folyamat mintáktól a SPEM- ig RUP és XP modellek

Út a folyamat mintákig Számos különböző szowverfejlesztési folyamat jöj létre. Mindegyik best pracpce - eket foglal magába néhány új ötlejel kiegészítve. A Design pajern- ök bebizonyítoják az előnyüket a szowver tervezése során, ezért ez az ötlet lej alkalmazva a szowverfejlesztési folyamatok szintjén is. 72

Út a folyamat mintákig Számos különböző szowverfejlesztési folyamat jöj létre. Mindegyik best pracpce - eket foglal magába néhány új ötlejel kiegészítve. A Design pajern- ök bebizonyítoják az előnyüket a szowver tervezése során, ezért ez az ötlet lej alkalmazva a szowverfejlesztési folyamatok szintjén is. 72

Út a folyamat mintákig Számos különböző szowverfejlesztési folyamat jöj létre. Mindegyik best pracpce - eket foglal magába néhány új ötlejel kiegészítve. A Design pajern- ök bebizonyítoják az előnyüket a szowver tervezése során, ezért ez az ötlet lej alkalmazva a szowverfejlesztési folyamatok szintjén is. Folyamat minták: A folyamat minták kipróbált és sikeresnek talált folyamatlépések sorozatát foglalja magába. 72

Észrevételek a folyamat mintákra A szöveges folyamat minta leírások alkalmazása nehézkes A minták testreszabása nagy munka Nincs formális leírásuk 73

Észrevételek a folyamat mintákra A szöveges folyamat minta leírások alkalmazása nehézkes A minták testreszabása nagy munka Nincs formális leírásuk 73

Észrevételek a folyamat mintákra A szöveges folyamat minta leírások alkalmazása nehézkes A minták testreszabása nagy munka Nincs formális leírásuk SPEM Software Process Engineering Meta-model 73

Észrevételek a folyamat mintákra A szöveges folyamat minta leírások alkalmazása nehézkes A minták testreszabása nagy munka Nincs formális leírásuk SPEM lehetővé teszi a formális definíciót! SPEM Software Process Engineering Meta-model 73

Észrevételek a folyamat mintákra A szöveges folyamat minta leírások alkalmazása nehézkes A minták testreszabása nagy munka Nincs formális leírásuk SPEM Software Process Engineering Meta-model Folyamat minták Gamma-szerű leírása lehetségesé válik! SPEM lehetővé teszi a formális definíciót! 73

Észrevételek a folyamat mintákra A szöveges folyamat minta leírások alkalmazása nehézkes A minták testreszabása nagy munka Nincs formális leírásuk SPEM Software Process Engineering Meta-model Folyamat minták Gamma-szerű leírása lehetségesé válik! SPEM lehetővé teszi a formális definíciót! 73

Észrevételek a folyamat mintákra A szöveges folyamat minta leírások alkalmazása nehézkes A minták testreszabása nagy munka Nincs formális leírásuk SPEM Software Process Engineering Meta-model Folyamat minták Gamma-szerű leírása lehetségesé válik! SPEM lehetővé teszi a formális definíciót! Eszköztámogatás is megoldható! 73

SoWware Process Engineering Metamodel SPEM: egy UML profile, amely szowver process modellezésre lej kifejlesztve egy OMG specifikáció Folyamat struktúra: WorkProduct, WorkDefiniPon, AcPvity, Step Folyamat komponens: Process, Discipline Folyamat életciklus: Phase, IteraPon 74

SPEM helye a modellek közöj 75

SPEM helye a modellek közöj SPEM helye 75

RUP konfigurációk 76

SoWware Process Engineering Metamodel Folyamat mintáktól a SPEM- ig RUP és XP modellek

SoWware Process Engineering Metamodel Folyamat mintáktól a SPEM- ig RUP és XP modellek Live show!

RUP referenciák I. Jacobson, G. Booch, J. Rumbaugh, The Unified So=ware Development Process, Addison Wesley 1999 P. Kroll, P. Kruchten, RaAonal Unified Process Made Easy, Addison Wesley 2003 P. Robillard, P. Kruchten, So=ware Engineering Process with the UPEDU, Addison Wesley 2003 M. Paulk, B. CurPs, M. Chrissis, C. Weber, Capability Maturity Model for So=ware, Tech. Report 1993 CMU SEI Website: www.ibm.com 78

XP referenciák Kent Beck. Extreme Programming Explained: Embrace Change. Jeffries, Ron, Ann Anderson, and Chet Hendrickson. Extreme Programming Installed. Beck, Kent and MarPn Fowler. Planning Extreme Programming. Craig Larman: Agile and IteraAve Development: Manager's Guide Websites: www.xprogramming.com www.extremeprogramming.org www.agilealliance.com 79