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

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

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

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

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

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

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

A szoftverfolyamat és s a tesztelés

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

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

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

A folyamat közös fázisai. A szoftverfolyamat modelljei. A vízesésmodell fázis: követelmények elemzése és meghozása

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

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

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

Bevezetés a programozásba

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

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

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

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

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

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

Szoftverminőségbiztosítás

4. A szoftvergyártás folyamata

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

Szoftver-technológia I.

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

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

Szoftver újrafelhasználás

Projectvezetők képességei

S01-7 Komponens alapú szoftverfejlesztés 1

Programfejlesztési Modellek

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

extreme Programming programozástechnika

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

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

Szoftvermenedzsment 4. fejezet A szoftverfolyamat

Agilis projektmenedzsment

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

(Teszt)automatizálás. Bevezető

Szoftver Tervezés és Technológia. vetelményrendszer

Tételek: Kidolgozott és összefésült tételek színe

UML (Unified Modelling Language)

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

SW-project management

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

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Bevezetés Mi a szoftver? Általános termékek: Mi a szoftvertervezés?

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

Közösség, projektek, IDE

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

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

A szoftverfejlesztés eszközei

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

Software project management Áttekintés

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

Fejlesztési stratégiák

Programozási technológia 2.

Mérnök informatikus mesterszak mintatanterve (GE-MI) nappali tagozat/ MSc in, full time Érvényes: 2011/2012. tanév 1. félévétől, felmenő rendszerben

A szoftverellenőrzés szerepe

Szoftverfejlesztés teszteléssel

MIÉRT KELL TESZTELNI?

Rendszer-modellezés, modellezési technikák

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

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

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

A CMMI alapú szoftverfejlesztési folyamat

A szoftver tesztelés alapjai

A szoftverfejlesztés eszközei

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

Szoftverminőségbiztosítás

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

A DevOps-kultúra eszközei

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

Software Engineering

Nagy bonyolultságú rendszerek fejlesztőeszközei

Osztott Objektumarchitektúrák

Fejlesztési modellek és módszertanok

S01-8 Komponens alapú szoftverfejlesztés 2

Formális módszerek GM_IN003_1 Bevezetés

Szoftverfejlesztési modellek

4. Projekt menedzsment

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

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

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

Integráci. ciós s tesztek. ciós s tesztek (folyt.) Integration Level Testing (ILT) Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

KÉSZÍTETTE: DR. MILEFF PÉTER

Biztonsági folyamatirányító. rendszerek szoftvere

Szoftver tervezés és design

Szoftverfejlesztés. Created by XMLmind XSL-FO Converter.

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

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Szoftverminőségbiztosítás

30 MB INFORMATIKAI PROJEKTELLENŐR

4.4 Projekt becslése. Dekompozíci. I. LOC vagy FP orientált technikák. A becslés tárgya: A becslési technikák csoportosítása:

IRÁNYÍTÓ RENDSZER IRÁNYÍTANDÓ FOLYAMAT. Biztonsági funkciók Biztonsági integritás. Normál működés. Hibák elleni védettség Saját (belső) biztonság

IT Factory. Kiss László

A TANTÁRGY ADATLAPJA

Átírás:

2. A szoftver mint termék előáll llításának folyamata, a szoftver életciklus modelljei A szoftverfolyamat modellje a szoftverfolyamat absztrakt reprezentációja egy adott speciális aspektusból. Szokásos típusai lehetnek: l Munkafolyam modell (tevékenységek sorrendje, bemenetei, kimenetei, függőségei) l Az adatfolyam vagy tevékenység modell (mindegyik tevékenység valamilyen adattranszfomációt hajt végre. Azt reprezentálja, hogyan alakul át a folyamat bemenete kimenetté az emberek, vagy számítógépek által végrehajtott tevékenységek során). l A szerepkör / cselekvés modell(a szoftverfolyamatban résztvevő emberek szerepköreit és felelősségüket ábrázolja.) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 41 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 42 Modellezési koncepció Mit nevezünk modellnek? la rendszer megértést segítő absztrakció lelhanyagolja a lényegtelen részleteket la modell kizárólag az eredeti rendszer lényegi elemeit tartalmazza LÉNYEGI ELEM? -- lényeges a vizsgálat szempontjából Modellek például: Építészeti modellek, Modellvasút, Claudia Schiffer, Naomi Campbell, A modellek különböző célokat szolgálhatnak: l a komplexitás csökkentése l kommunikáció az ügyféllel l a rendszer vizsgálata megépítése előtt l vizualizálás BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 43 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 44

2.1 A vízesv zesés s (waterfall( waterfall) ) modell A szoftverfolyamatok osztályozása: l Vízesés modell l Evolúciós fejlesztés l Formális rendszerfejlesztés l Újrafelhasználás alapú fejlesztés Hagyományos szemléletű, erősen szeparált fázisokat tartalmazó modell. Az eredeti vízesés modellt 1970-ben W. W. Royce publikálta. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 45 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 46 Követelmények meghatározása Rendszer és szoftvertervezés Implementáció és egységteszt A Royce féle vízesés s modell Integráció és rendszerteszt Jellemzők: l szisztematikus, szekvenciális, top-down modell l a hagyományos mérnöki szemléletet követi l leginkább elterjedt (legrégibb) modell Működtetés és karbantartás I. Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 47 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 48

Problémák: l a valós projektek ritkán követnek szekvenciális modellt l nehezen valósítható meg az iteráció l az egész modell a specifikáció minőségétől függ l a projekt elején meglévő kezdeti bizonytalanságot nem tudja kezelni l nagyon későn lát a megrendelő működő programot Előnyök: l modellt ad a különböző fázisokhoz tartozó módszerek elhelyezésére l logikus, könnyen érthető, kézenfekvő modell l sok tapasztalat halmozódott fel BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 49 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 50 Recommended Approach to Software Development NASA/GSFC-SEL http://sel.gsfc.nasa.gov BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 51 The spread of activities Throughout the development life cycle NASA/GSFC-SEL http://sel.gsfc.nasa.gov BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 52

2.2 Az evolúci ciós s modell A prototípus pus készk szítés folyamata Kommunikáció Gyors tervezés Egy kezdeti implementációt (prototípust) a felhasználókkal véleményeztetünk és soksok verzión keresztül addig finomítjuk, amíg a megfelelő rendszert el nem érjük. Prototípus véleményezés Modellezés, gyors megvalósítási terv Prototípus készítés BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 53 R. S. Pressman: Software Engineering BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 54 Prototípus típusok: t Az evolúciós fejlesztés modellje Specifikáció Kezdeti verzió l Termék prototípus l Rész-prototípus l Interfész prototípus Vázlat leírása Fejlesztés Közbenső verziók Validálás Végleges verzió I. Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 55 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 56

Az evolúci ciós s fejlesztések sek típusai, t problematikája Típusok l Feltáró fejlesztés l Eldobható prototípus készítése Problémák l A folyamat nehezen menedzselhető l A rendszerek struktúrája nem megfelelő l Minőségbiztosítási problémák l Speciális eszközök és technikák igénye 2.3 Formális rendszerfejlesztés A formális rendszerfejlesztés jellegében a vízesés modellhez hasonlít. Lényege a specifikáció futtatható formába transzformálása formális matematikai eszközökkel BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 57 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 58 A leglényegesebb különbsk nbségek a vízesv zesés modell és s formális modell között: k 1. A követelményspecifikáció részletes matematikai jelölésekkel leírt formális specifikálás. 2. A tervezés, implementáció, egységteszt egy transzformációs folyamat (a formális specifikáció transzformációk során programmá válik). A formális rendszerfejlesztés s fázisaif Követelmények meghatározása Formális specifikáció Formális transzformáció Integráció és rendszerteszt BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 59 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 60

Formális specifikáció A formális transzformáci ció menete R1 R2 R3 P1 P2 P3 P4 Futtatható program A transzformációs folyamat során a kezdeti formális specifikáció transzformálódik egyre jobban kifejtett, de matematikailag korrekt rendszerreprezentációvá. Minden egyes lépés további finomítás mindaddig, amíg a formális Specifikáció vele ekvivalens programmá nem válik. I. Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 61 A formális modell előnyei l A transzformációk korrektek, így könnyű a verifikációjuk, a sok kis lépés után a program lényegében a specifikáció szisztematikus transzformációja. l Annak bizonyítása, hogy a program megfelel a specifikációnak, más paradigmákkal szemben itt egyszerű, hiszen sok kis ellenőrzéssé csökken a transzformációk során. l Használata nagyon előnyös olyan rendszerek, vagy részrendszerek esetében, ahol elsődleges a rendszer biztonsága, megbízhatósága és annak autentikus bizonyítása. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 62 A Cleanroom szoftverfejlesztés l Mills, Cobb, Linger, Prowell munkái nyomán l Formális, inkrementális fejlesztési modell l Alapgondolata, hogy a szoftverhibák elkerülhetők egy szigorú átvizsgálási folyamat segítségével. A rendszerkomponensek modultesztelését helyettesítő átvizsgálások a komponensek specifikációjukkal való konzisztenciájuk ellenőrzése A Cleanroom fejlesztés s főf jellemzői l Formális specifikáció (a kifejlesztendő rendszer formális modelljének megadása állapot-átmenet modellel) l Inkrementális fejlesztés (a szoftver fejlesztés folyamatát jól definiálható inkrementumokra osztjuk) l Strukturált programozás (kis számú konstrukció alkalmazása, lépésenkénti finomítás) l Statikus verifikáció (nem a hagyományos értelemben vett modul- és integrációs teszt) l A rendszer statisztikai tesztelése (a rendszer specifikációjával párhuzamosan kifejlesztett működési profilon alapuló teszt) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 63 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 64

A Cleanroom fejlesztési si folyamat Linger- Rendszer formális meghatározása Működési profil fejlesztése Szoftver inkrementumok Definiálása Strukturált Program készítése Statisztikai tesztek tervezése I. Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 féle modellje (1994) Kód formális átvizsgálása Integrált rendszer tesztelése Inkrementum integrálása BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 65 A cleanroom fejlesztés s előnyei l Először a kritikus funkciókat valósítják meg és az inkrementumokkal haladnak a kevésbé kritikusok felé. (Így a kritikus van legtöbbet tesztelve). l A specifikáció és a terv folyamatos átdolgozás alatt áll, diszkrét inkrementumok formájában (élő kapcsolat a felhasználóval, kitűnő változáskövetés) l Állapot alapú rendszermodell, kiegészítő modellek, jól definiált transzformációk sorozata korrekt szoftver BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 66 A cleanroom fejlesztés s a számok tükrt krében l 15 projektet (5 MSLOC) elemezve a hibák száma: 3.3 / KSLOC (a hagyományos 30-50 /KSLOC-kal szemben) l A hibák a cleanroom esetében tipikusan kódolási hibák és nem tervezési, specifikációs hibák, mint az a hagyományos esetben szokásos l US Army s Life Cycle Software Engineering Center jelentése szerint: a termelékenység 121 SLOC / emberhónapról 559 SLOC / emberhónapra nőtt a teljes ciklusra vonatkoztatva (hibák száma: 1.14/KSLOC) l NASA-nál a hibák száma 7/KSLOC-ról 4.3-6/KSLOCra csökkent a cleanroom bevezetésével BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 67 2.4 Újrafelhasználás- orientált fejlesztés Tisztázandó kérdések: l Mi az újrafelhasználás l Mi az előnye az újrafelhasználás-orientált fejlesztésnek l Mi az, ami újrafelhasználható l Az újrafelhasználás formái (tervezett, nem tervezett) l Az újrafelhasználás költség-komponensei BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 68

Az újrafelhaszn jrafelhasználás s gyakorisága ga Az újrafelhasználás s mértm rtéke Az újrafelhaszn jrafelhasználás s m mért rtéke Az újrafelhasználás-orientált fejlesztés folyamata Követelmények specifikációja Komponenselemzés Követelmények módosítása Fejlesztés és integráció Rendszertervezés újrafelhasználással Rendszer validáció Az újrafelhasznált lt elem mérete, m komplexitása BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 69 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 70 2.5 Folyamatiteráci ció l Inkrementális fejlesztés (a specifikáció, a tervezés, az implementálás kis inkrementális lépésekben valósul meg). l Spirális fejlesztés (belülről kifelé tartó spirálvonalat követ a fejlesztés). Inkrementális fejlesztés l Mills ajánlotta 1980-ban l Cél az átdolgozások számának csökkentése a fejlesztési folyamatban. l Lehetőséget ad a megrendelőnek bizonyos a követelményekkel kapcsolatos döntések későbbre halasztására. l A fejlesztés jól meghatározott inkremensekben történik. l Ha egy inkremens elkészül, átadásra kerül, azt a megrendelő akár használatba is veheti BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 71 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 72

Az inkrementális fejlesztés s modellje Kommunikáció A projekt előrehalad rehaladása Vázlatos követelmények meghatározása Rendszerinkremens fejlesztése Követelmények Inkremensekhez rendelése Inkremens validálása Rendszer Architektúrájának megtervezése Inkremens integrálása Rendszer validálása Szoftver funkcionalitása Analízis, tervezés Kódolás, tesztelés Validálás Szállítás, visszajelzés 2. inkremens 3. inkremens n. inkremens Végleges rendszer BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 73 1. inkremens Projekt idő R. S. Pressman: Software Engineering BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 74 Az inkrementális fejlesztés s előnyei l A szoftver már menetközben használhatóvá válik a megrendelő számára (kritikus követelmények teljesülnek először) l A megrendelők használhatják a korábbi inkremenseket, mint prototípusokat a későbbi inkremensekhez l Kisebb a kockázata a projekt kudarcának, biztonságos fejlesztés l A legkritikusabb funkciókat teszteljük legtöbbet (azok készülnek el először) A RAD Modell (Rapid Application Development) l J. Martin publikálta 1991-ben l Inkrementális modell l Kifejezetten rövid fejlesztési ciklus (60-90 nap) l High-speed adaptációja a vízesés modellnek l A nagy sebesség a component based construction, software reuse, automatic code generation technikák alkalmazásával érhető el. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 75 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 76

l Különböző teamek dolgoznak párhuzamosan a tervezés fázisától a különböző funkciókon l A team tagjainak sokoldalúnak kell lennie l A megrendelő szakemberei is részt vesznek a teamek munkájában l Modern fejlesztői környezetet használ l RAD-et támogató tool-ként hirdetik magukat: Microsoft Visual Studio.NET Sun Java Studio Creator BEA Web Logic Workshop Borland C# Builder IBM WebSphere Studio Application Developer BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 77 A RAD vázlatos v modellje Communication Planing Team #n Modelling Business Modelling Data Modelling Process Modelling Construction Component reuse authomatic code generation, testing Team #1 Modelling Business Modelling Data Modelling Process Modelling Construction Component reuse authomatic code generation, testing 60 90 days R. S. Pressman: Software Engineering BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 78 Deployment Integration, Delivery Feedback A RAD modell problémái A Boehm-féle spirál l modell l Nagy projektek esetén nagy a humán erőforrás igény az elegendő számú RAD-team felállításához l Ha a rendszer nehezen modularizálható, a komponensek elkészítése problematikus l Magas műszaki kockázat esetén a RAD nem működik biztonságosan l l Boehm publikálta 1988-ban A valós fejlesztést jól követő modell Prof. Dr. Barry Boehm University of Souther California BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 79 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 80

A spirál minden ciklusa négy szektorra bontható: 1. Célok kijelölése (célok, alternatívák, megszorítások, kockázatok meghatározása 2. Kockázat becslése, csökkentése (kockázat elemzés, kockázati tényezők csökkentésére intézkedés kidolgozása 3. Fejlesztés és validálás (a következő szintű termék fejlesztése, a kockázat analízis eredményének függvényében fejlesztési modell választása 4. Tervezés (a következő fázis, ciklus megtervezése BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 81 A BoehmBoehm-féle spirá spirál modell ciklusai és lé lépései A BoehmBoehm-féle spirá spirálmodell I. Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 82 2.6 Agile Software Pocesses 2001-ben 17 neves szoftver fejlesztő alapította meg az Agile Allience -t és fogalmazta meg a Manifesto for Agile Software Development et BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 83 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 84 11

A legfontosabb elvek Első rendű szempont a megrendelő maradéktalan kielégítése Flexibilitás a követelmények változásával szemben Működő szoftver gyors átadása (inkrementálisok) Az üzleti szakembereknek és a fejlesztőknek napi kapcsolatban kell lenniük Motivált szakembereket gyűjts a projekt köré, teremtsd meg a feltételeket a munkájukhoz Szorgalmazd a szemtől-szembeni párbeszédet a teamen belül az információ cserére A haladás legjobb mértéke a működő szoftver Agile process fenntartható fejlődést ösztönöz A fejlesztőknek és a megrendelőnek egy állandó ütemet kell fenntartani a fejlesztési folyamatban A kiváló műszaki színvonalra és a jó tervre folyamatosan ügyelni kell Egyszerűség csak az igazán fontos feladat elvégzése Az önszerveződő, aktív teamektől származnak a legjobb megoldások (szerkezetekre, követelményekre, tervekre) Rendszeres időközönként a teamnek önvizsgálatot kell tartani és viselkedését esetleg módosítani BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 85 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 86 Ezen elveket követk vető módszerek: l Extreme Programming (XP) l Adaptive Software Development (ASD) l Dynamic Software Development Method (DSDM) l Scrum l Crystal l Feature Driven Development (FDD) l Agile Modeling (AM) Extrém m programozás s (XP) l Beck publikálta először 1999-ben l Inkrementális megközelítés OO alapon l Ajánlott szabályok és praktikumok l 4 alapvető aktivitás: Planing Design Coding Testing www.agilealliance.org www.extremeprogramming.org Kent Beck BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 87 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 88

Az extrém m programozás s vázlatos v modellje User stories Iteration plan Acceptance test Release Software increment Simple design CRC cards Spike solutions planing testing design coding Pair programming Continous integration No overtime Unit test R. S. Pressman: Software Engineering Acceptance test BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 89 Az extrém m programozás s szabályai (1) Planning User stories are written. Release planning creates the schedule. Make frequent small releases. The project velocity is measured. The project is divided into iteration. Iteration planing starts each iteration. Move people around. A stand-up meeting starts each day. Fix XP when it breaks. Designing Simplicity. Choose a system metaphor. Use CRC cards for design sessions. Create spike solutions to reduce risk. No functionality is added early. Refactor whenever and wherever possible. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 90 Az extrém m programozás s szabályai (2) Coding The customer is always available. Code must be written to agreed standards. Code the unit test first. All production code is pair programmed. Only one pair integrates code at a time. Integrate often Usecollectivecodeownership. Leave optimization till last. No overtime. Testing All code must have unit tests. All code must pass all unit tests before it can be released. When a bug is found tests are created. Acceptance tests are run often and the score is published. BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 91 A változtatv ltoztatás s költsk ltségeinek alakulása www.khatovaretech.com BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 92