4 Projekt menedzsment A projekt menedzsment fő területei: 41 Projekt tervezése 42 Projekt ütemezése 43 Projekt mérése 44 Projekt becslése 45 Kockázat menedzsment, kockázat kezelés 46 Projekt követés és ellenőrzés 47 Team-szervezési megoldások l Jól definiált cél Mi a projekt? l Előre rögzített határidő és részhatáridők l Meghatározott erőforrások (költségvetés) l Tervezett tevékenység l Alapvető jellemzőiben egyedi DIN 69901: Ein Projekt ist ein Vorhaben, bei dem innerhalb einer definierten Zeitspanne ein definiertes Ziel erreicht werden soll, und das sich dadurch auszeichnet, dass es im Wesentlichen ein einmaliges Vorhaben ist BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 5 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 6 Projekt méretekm 41 projekt tervezése Megnevezés Résztvevők Időtartam Program nagysága Példa A szoftver projekt előkészítése: Mini projekt 1 1-4 hét 500 LOC egyszerű Pascal pr l A megrendelő és a fejlesztő közösen meghatározzák: Kis projekt Közepes projekt Nagy projekt Szuper projekt 1 2-5 5-100 100-1000 11-12 hónap 1-2 év 2-3 év 3-5 év 1-5 5-50 50-100 1 MLOC féléves feladat Compiler Op rend-szer Nagy Op rendszer a projekt céljait a megvalósítandó rendszer fő funkcióit kvantitatív mérőszámokat a funkciók jellemzésére l Alternatív megoldási módokban állapodnak meg a tervezési tér növelése érdekében l költség, határidő, erőforrás korlátok tisztázása Mega projekt 2000-5000 5-10 év 1-10 MLOC SDI BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 7 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 8
A projekt terv típusait l Minőségi terv (a projektben használandó minőségi eljárásokat és szabványokat tartalmazza) l Validációs terv (a rendszer validációhoz szükséges megközelítési módot, erőforrásokat és ütemterveket határozza meg) l Konfigurációkezelési terv (a konfiguráció kezeléséhez szükséges eljárásokat és szerkezeteket tartalmazza) l Karbantartási terv (a rendszer karbantartásához szükséges követelményeket, költségeket tartalmazza) l Munkaerő-fejlesztési terv (a projektteam tagjainak szakmai fejlődését tartalmazza) A projektterv készk szítésének folyamata A projekt megszorításainak megállapítása A projekt paraméterek kezdeti értékének rögzítése A mérföldkövek és a részeredmények rögzítése while A projekt még nincs kész és nem lőtték le A projekt ütemtervének összeállítása Tevékenységek indítása az ütemtervnek megfelelően Várakozás A projekt előrehaladásának vizsgálata A projekt becsült paramétereinek felülvizsgálata A projekt ütemtervének frissítése A megszorítások és részeredmények újratárgyalása if probléma merül fel Műszaki felülvizsgálat és átdolgozás BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 9 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 160 A projektterv felépítése (szakaszai) 1, Bevezetés Meghatározza a projekt célját, alapvető jellemzőit, a menedzselés megszorításait (erőforráskorlátok, időkorlátok) 2, Projekt szervezet Megadja a projekthez rendelt team vagy teamek összetételét, a tagok szerepköreit, feladataikat, felelősségüket 3, Kockázatelemzés Számba veszi a lehetséges projekt kockázatokat, elkerülésükhöz szükséges stratégiákat, bekövetkezésük esetén szükséges tevékenységeket 4, Hardver és szoftver erőforrás követelmények Rögzíti, hogy a fejlesztéshez pontosan milyen hardver és szoftver eszközökre van szükség Amennyiben ezeket be kell szerezni, úgy tartalmazza a költségbecslést is 5, Munka felosztása Tartalmazza a projekt tevékenységekre bontását az egyes tevékenységekhez tartozó részeredményekkel és mérföldkövekkel együtt 6, Projekt ütemterve Megadja az egyes tevékenységek közötti függőségeket, a mérföldkövek eléréséhez szükséges becsült időt, valamint a tevékenységekhez rendelt becsült emberi erőforrásokat 7, Figyelési és jelentéskészítési mechanizmusok (projekt követés és ellenőrzés) Meghatározza a menedzser által elkészítendő jelentéseket, azok leadási idejét, valamint az alkalmazandó projekt követési, ellenőrzési technikákat) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 161 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 162
Mérföldkövek a projektben l A mérföldkövek alkalmazása egy eszköz a projekt követésére l A mérföldkövek tipikusan a projekt egyes szakaszainak végét jelzik (esetenként ritkább, máskor sűrűbb bontásban) l A mérföldkövekhez jelentések (report) tartoznak l A mérföldkövek kapcsolódhatnak belső részeredményekhez, vagy külső, leszállításra kerülő részeredményekhez (pl: specifikáció, stb) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 163 Mérföldkövek a követelmk vetelményspecifikáció folyamatában Megvalósíthatósági vizsgálat Tervtanulmány Megvalósíthatósági jelentés Követelmény elemzés Prototípus fejlesztés Értékelési jelentés Tevékenységek Szerkezeti terv Követelmények meghatározása Felhasználói követelmények Rendszerkövetelmények I Sommerville: Szoftverrendszerek fejlesztése, Mérföldkövek Panem, 2002 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 164 42 Projekt ütemezése Az ütemezéshez ismerni kell: l A tevékenység egységeket l Időigényüket l Erőforrásigényüket l Függőségeiket l A folyamatok, részfolyamatok sorrendiségeit l A párhuzamosítható tevékenységeket l Egyéb korlátokat, illetve peremfeltételeket Ökölszabályok: l Ha a tevékenység 8-10 hetet meghaladna, szét kell bontani l Mindig tervezzünk tartalékot a nem várt problémákra (30-50%) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 165 Tevékenységek azonosítása Szoftver követelmények A projekt ütemezés s folyamata Tevékenységek függőségi viszonyainak azonosítása Erőforrások becslése a tevékenységekhez Emberek tevékenységekhez rendelése Projektdiagrammok készítése Tevékenység- és I Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 oszlopdiagrammok BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 166
A projekt ütemterv ábrázolásának lehetőségei Oszlopdiagramok (Tevékenység diagramok) l Tartalmazza az adott tevékenység felelősét (munkavégzőjét) és a tevékenységek kezdési és befejezési időpontjait Tevékenységhálók l A tevékenységek közötti függőségeket ábrázolja T8 T9 T10 T11 T12 Példa a projekt ütemtervre Adott egy projekt tevékenységhalmaza: (T-tevékenység, M-mérföldkő) Tevékenység T1 T2 T3 T4 T5 T6 T7 Időtartam (nap) 8 10 10 5 20 25 7 10 Függőségek T1(M1) T2, T4 (M2) T1, T2 (M3) T1 (M1) T4 (M5) T3, T6 (M4) T5, T7 (M7) T9 (M6) T11 (M8) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 167 I Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 168 A tevékenys kenységhalmazból l generált tevékenys kenységháló: A tevékenys kenységhalmazból l generált tevékenys kenységdiagram 7/4 7/11 7/18 7/25 8/1 8/8 8/ 8/22 8/29 9/5 9/12 9/19 99/7/4 Kezdet 8 nap T1 10 nap T4 nap T2 99/7/14 M1 99/7/25 M3 99/7/25 M2 99/7/18 M5 A kritikus út jelölése nap T3 5 nap T6 T7 10 nap T5 99/8/4 M4 20 nap nap BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 169 T9 99/8/11 M7 25 nap T8 I Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 99/8/25 M6 nap T10 7 nap T11 99/9/5 M8 10 nap T12 Vég 99/9/19 I Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 Kezd T4 T1 T2 M1 T7 T3 M5 T8 M3 M2 T6 T5 M4 T9 M7 T10 M6 T11 M8 T12 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 170 Vég tevékenység Lehetséges késés
A munkatársak lekötötts ttsége az idő függvényében Egy hagyományos szoftver projekt ütemezése Fred Jane 7/4 7/11 7/18 7/25 8/1 8/8 8/ 8/22 8/29 9/5 9/12 9/19 T4 T8 T11 T12 T1 T3 T9 analízis szerkezeti- és adat tervezés egység tervezés terv kódolás bejárás kód áttekintés egység teszt integrációs teszt Anne Jim T2 T7 T6 T10 követelmény áttekintés terv áttekintés validációs teszt Mary T5 I Sommerville: Szoftverrendszerek fejlesztése, Panem, 2002 mérföldkő teszt tervezés teszteljárás tervezés tesztterv áttekintés BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 171 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 172 példa: Az emberi erőforr források ütemezésének kérdése Adott 4 fejlesztő 5/év kapacitással Ha egy csoportban dolgoznak -> 20 /év!!! Ebből lejön azonban a kommunikációs veszteség, ami 250 LOC/év!! (4x5000) - (6x250) = 18500 4625 LOC/fő Ha hozzáadunk még két embert a csoporthoz: (6x5000) - (x250) = 26250 4375 LOC/fő BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 173 Az összefüggés nem lineáris! Nem érdemes csoportban dolgozni!? Érdemes mert: l sokszor a projekt méretei miatt nem is lehet másként megoldani l jobb a minőség és a megbízhatóság mint a magányos farkasok esetében l nem fog mindenki, mindenkivel beszélgetni Brooks törvénye Ha egy elcsúszott projekthez plusz embert rendelsz, az tovább fog csúszni! Prof Dr F P Brooks (az IBM-360 és az OS/360 Projektmenedzsere) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 174
A projektidő alakulása a résztvevr sztvevők számának függvf ggvényében Projekt idő 1 elmélet (kommunikáció nélkül) gyakorlati tapasztalat járulékos kommunikáció 1 2 4 8 16 Résztvevők Ütemezési módszerek: l PERT (Program Evaluation and Review Technique) l CPM (Critical Path Method) Lehetővé teszik: l kritikus út meghatározását l a feladatok legvalószínűbb idő-ütemezését l idő-ablakok meghatározását (legkorábbi, legkésőbbi befejezés / kezdés, indítási idő-intervallumok) BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 175 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 176 43 Projekt mérésem A szoftver mérése a szoftver mint termék, illetve a szoftver készítési folyamat szignifikáns jellemzőinek számszerűsítésével foglalkozik (szoftver metrikák) A szoftver metrikák lehetnek: l Vezérlési metrikák (a szoftver folyamattal kapcsolatosak, pl: hibák, ráfordítások, idők) l Prediktor metrikák (a szoftver termékkel kapcsolatosak, pl: a modul ciklomatikus komplexitása) A vezetői döntéshozatalt mindkét típus befolyásolhatja A mérés m s céljac A mérések több célt szolgálhatnak: A termék mérése esetén l a termék minőségének értékelése A folyamat mérése esetén l az alkalmazott módszerek, eszközök hatékonyságának értékelése l a fejlesztők termelékenységének elemzése l a következő projektek becslési fázisához bázis-értékek kialakítása, a meglévő értékek javítása BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 177 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 178
Mennyire közelíti meg a specifikációt a termék A termelési folyamat értékelése Mennyiségi és minőségi adatok közvetlen gyűjtésén és kiértékelésén alapuló módszer Közvetett mérési módszer elvonatkoztatott szempontok alapján (hipotetikus változók bevezetése) A fejlesztők véleményének értékelésén alapuló módszer A mérések m kategorizálása Modularitás foka, logikai komplexitás, stb Műszaki jellemzők mérése Minőség mérése Termelékenység mérése Méret-orientált mérési módszerek Funkció-orientált mérési módszerek Ember-orientált mérési módszerek BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 179 Méret-orientált mérési módszer Közvetlen mérési módszer, a mérés tárgya az elkészült termék és a készítés folyamata Projekt neve A B C [ember/év] 30 70 40 Költség [ezer$] 141 200 5 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 180 11 30 21 Doku [oldal] 500 00 700 Hibák 19 61 5 Résztvevők 4 8 6 Termelékenység = Minőség = Hibák Fajlagos költség = Költség A módszer jellemzői: l mennyiségi mérőszámokon alapuló egyszerű módszer (oldalak, sorok, emberek, stb) l nem igényel tapasztalatot, szaktudást a kiértékelés l nem veszi figyelembe a komplexitást, a szoftver sajátosságait Fajlagos doku = Doku l csak azonos típusú projektek összehasonlítására, becslésére használhatók fel a mérőszámok BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 181 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 182
Funkció-orient orientált mérési m módszerm A LOC számolása helyett a szoftver funkcionalitása kerül előtérbe A módszer alkalmas a komplexitás kezelésére A módszer m lépései: l 1, A számértékeket tartalmazó táblázat kitöltése Jellemzők Szám Súlyfaktor Érték Albrecht: Function Point Method (1979) A Function Point (FP) valamilyen számszerűsíthető jellemzőből származtatható Tipikus jellemzők, melyeket a módszer alapul vesz: l felhasználói inputok (adat) l felhasználói outputok (adat) l felhasználói interakciók (vezérlés) l fájlok l külső interfészek (pl: hálózat) Felhasználói inputok Felhasználói outputok Felhasználói interakciók Fájlok Külső interfészek Teljes összeg Egyszerű 3 4 3 7 5 Átlagos 4 5 4 10 7 Komplex 6 7 6 11 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 183 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 184 2, A komplexitás értékelése Módszer: 14 kérdésre adandó 05 értékű, osztályzat jellegű válasz összege adja a SUM(Fi), a komplexitást kifejező tényezőt (max érték = 70) Példák a komplexitást kifejező tényezőkre: l Mennyire szükséges üzembiztos mentés? l Mennyire szükséges az osztott feldolgozás? l Mennyire legyen a kód újrafelhasználható? (lásd: Jones, C: Programming Productivity, McGraw-Hill, 1986) 3, A táblázat és a válaszok alapján FP meghatározása FP= [Teljes összeg] x [065 + 001 x SUM(Fi)] A komplexitástól függően a [teljes összeg] 065 135 -tel módosulhat Termelékenység = Minőség = FP Hibák BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 185 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 186
Fajlagos költség = Fajlagos doku = Költség FP Doku FP Jellemzők: l adat alapú, ami azért előnyös, mert az adatok a fejlesztés korai szakaszában már ismertek, míg a LOC csak a végén l programozási nyelv független l részben szubjektív l a LOC alapúval szemben az értékelés szaktudást, tapasztalatot igényel Objektum-orient orientált mérési m módszerm Az OO projektek esetén is alkalmazható pl az FP alapú mérési módszer Pontosabb mérési módszerre tett javaslatot: Lorenz, M, Kidd, J: Object-oriented Software Metrics, Prentice-Hall, 1994 Javasolt paraméterek: l A szcenáriók (a felhasználó és az alkalmazás közti interakciókat írják le erősen korrelál az alkalmazás méretével) l Kulcs osztályok ( az OO analízis korai szakaszában már definiált, erősen független osztályok korrelál a számuk a rendszer kifejlesztéséhez szükséges ráfordítással, a szükséges tesztesetek számával BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 187 BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 188 l Támogató osztályok (nem tartoznak közvetlenül a rendszer probléma specifikus funkcióihoz pl UI osztályok, szerviz osztályok számuk jó indikációt ad a rendszer kifejlesztéséhez szükséges ráfordításra, és a reuse lehetőségére l A kulcs osztályokat támogató osztályok átlagos GUI alkalmazás esetén a támogató/kulcs osztály arány 2-3, nem GUI alkalmazás esetén 1-2 (mivel a kulcs osztályok már az analízis korai fázisában ismertek, így következtethetünk a teljes alkalmazás méretére l Alrendszerek a rendszer komplexitásának jó indikátora BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 189 Use-Case Case-orientált mérési módszerm Potenciális előnyök a use-case-ek metrikákban történő felhasználása esetén: l A szoftver folyamat korai szakaszában rendelkezésre állnak l A rendszer funkcionalitását (legalább a felhasználó oldaláról) jól jellemzik l Programozási nyelvtől, környezettől függetlenek l Számuk arányos a rendszer nagyságával és a szükséges tesztesetek számával Problémák, ami miatt még nincs széleskörű használat: l A use-casek mérete, bonyolultsága nem szabványosított, erősen függ az alkalmazott absztrakciós szinttől l Nehéz megadni a use-case / ráfordítást BMF-NIK-SZTI Tick: Szoftver Tervezés és Technológia 190 Coming soon?!