The Unified Software Development Process Rational Unified Process Krizsán Zoltán Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 12. 04. Történet The Rational Rational Unified Process 5.0 1998 Rational Objectory Process 4.1 1996-1997 (fázisok, iteratív megközelítés) Objectory Process 1.0-3.8 1987-1995 Funkcionális teszt Teljesítmény teszt Szükségletek menet. Üzleti tervezés Adat tervezés UI (GUI) tervezés UML Ericsson RUP/ 2 Feltételek + Egyre nagyobb, komplex rendszerek + Újrahasználhatóság, áttelepíthetőség + Gyorsaság + Team modell + Modern algoritmusok -/ +Növekvő hardver erőforrások RUP/ 3
Általános séma Definiálja ki, mikor, mit, hogyan fog elkészíteni, hogy a kész rendszer a megfelelő célt szolgálja. Megrendelő szükségletei Szoftver Tervezési Folyamat Szoftver rendszer RUP/ 4 RUP definició Keretrendszer, amely : Egységesített fejlesztési módszertan Adott elvek és módszerek alapján Meghatározott tevékenységsorozattal Előírja a fejlesztési folyamat lépéseit RUP/ 5 Üzleti modell Probléma: a menedzserek nem értik a programozói leírást. A RUP megoldotta a problémát: business Use- Case Jelölésrendszere megegyezik a Use Case-ével, de a cég üzleti folyamatait írja le, üzleti ciklusokra bontva. RUP/ 6
Unified Process tulajdonságai / 1 Keret rendszer Komponens alapú. lszemléletű Jól definiált interfészeken keresztül kapcsolódik. Az UML jelölésrendszerét használja. RUP/ 7 Unified Process tulajdonságai / 2 Használati-eset vezérelt (Use - Case Driven) Architektúra központú (Architecture Centric) Iteratív és inkrementáló (Iterative and Incremental) RUP/ 8 Használati-eset vezérelt / 1 HASZNÁLATI ESET (USE CASE) A rendszer funkcionalitását fejezi ki: Megmutatja az adott feladat végrehajtásának az eredményét Megfogalmazza a felhasználónak a rendszerrel szemben támasztott elvárásait RUP/ 9
Használati-eset vezérelt / 2 Specifikálja Használati eset modell Analízis modell Tervezési modell Realizálja Eloszt Telepítési modell Megvalósítja Implementációs modell Ellenőrzi Teszt modell RUP/ 10 Architectúra-központú / 1 Az architektúra egy rendszer elemeinek és működési folyamatainak egyfajta strukturális nézete, amelyben kifejezésre jut, hogy az egyes részek hogyan működnek együtt, és hogyan kommunikálnak egymással. Raffai Márta : Egységesített megoldások a fejlesztésben RUP/ 11 Architektúra-központú / 2 Az architektúra: Elősegíti a statikus, dinamikus elemek modellezését A rendszert interfészeken keresztül kapcsolódó komponensek rendszereként modellezi. Az architektúra a megbízó üzleti elvárásaiból ered RUP/ 12
Architektúra-központú / 3 Szintjei: Üzleti követelmény architektúra Logikai - koncepcionális (építőelemek, funkciók, szolgáltatások, együttműködés) Fizikai: technikai, technológiai megoldások (hardver, szoftver, komponens, kódok, fájlok) RUP/ 13 Architektúra-központú / 4 Az architektúra "4+1" nézete RUP/ 14 Architectúra-központú / 5 Réteg (layer): jól elhatárolható rész, elemei azonos jellemzőkkel, interfész típusokkal Rétegei: Felhasználói-specifikus alkalmazási Általános alkalmazási Középréteg (middleware) Rendszer - szoftver RUP/ 15
Architectúra-központú / 6 A modellek felépítik tik, megjelenítik tik, dokumentálj lják az architektúrát Inception Elaboration Construction Transition idő Architektúra RUP/ 16 Inkrementális Analízis Specifikáció Tervezés Specifikáció Implem. Tervezés Specifikáció Tesztelés Tesztelés Implem. Tervezés Implem. Tesztelés Használat RUP/ 17 Előnyei: Ha rossz útra tévedtünk, akkor csak az utolsó lépés eredménytelen. Kisebb a rizikó, a problémák hamarabb a felszínre kerülnek. Gyorsabb fejlesztés (tisztább, rövid részek). Minden lépés után "átadható" a rendszer. Könnyebben változtatható. Jobban újrahasználható. Jobb minőség. RUP/ 18
Iteráció / 1 Elsőként csak a felhasználó-kritikus komponensek Később a gyakorlati hasznosság szerint fokozatosan bővül RUP/ 19 Iteráció / 2 Létrehozni és s ellenőrizni az architektúrát Definiálni a teszt feltételeket teleket és s a folyamatot Iterakciót megtervezni Felhasználói i dokumentáci ciót t elkész szíteni Telepíteni a rendszert begyűjteni a felhasználói i reakciókat kat Szinkronizálni a modelleket Használati-eset diagram Architektúra RUP/ 20 Iteráció / 3 H. E. -al a rendszer funkcióit, az arch-val a sikeres terméket szimbolizáljuk Az arch. egy durva becslést ad a nem specifikus H. E. kimeneteire H. E. alapján készül az alrendszer- és komponens-arch. A H. E. specifikációk egyre világosabbá teszik az arch. RUP/ 21
Iteráció / 4 Előnyei: Felhasználó nyugodt, igényei folyamatosan beépülnek Fejlesztő nyugodt, munkavégzés hatékonysága nő kisebb a ráfordítási kockázat, hiba esetén csak egy iteráció költségei buknak Kisebb a sikertelenség kockázata, teszteléskor kiderülnek a problémák RUP/ 22 Iterációk és munkafolyamatok / 1 RUP/ 23 Erőbedobás, ütemterv RUP/ 24
"Mérföldkövek" Minden fázisban 1 vagy több iteráció! Inception Elaboration Construction Transition idő Konkrét követelmények Architektúra Alap rendszer Produktum (kész "termék") RUP/ 25 Ciklusok, fázisok, iterációk termék Termék életciklus generációk 1. generáció 2. generáció n. generáció ciklus Fejlesztési életciklus fázis iteráció kiindulás kidolgozás építkezés átmenet 1. iteráció 2.iteráció n. iteráció munkafolyamat analízis tesztelés RUP/ 26 Statikus struktúra (elsődleges modell elemek) Ki? szerepkör (role) Hogyan? tevékenység (activity) Mit? termék (artifact) Mikor? munkafolyamat (workflow) RUP/ 27
Szerepkör (role) A szerepkör a munkában résztvevő személy vagy személyek egy csoportjának viselkedését és felelősségi körét definiálja. Viselkedés: a szerepkörhöz rendelt tevékenységek Felelősségi kör: azok a termékek, amiket létrehoz, módosít. Személy (resource): konkrét élő személyek pl.: Lajos, Dénes, Gyuri, Miki,... RUP/ 28 Szerepkör (role) (folyt.) Szerepkör: designer, design reviewer, architect, use case author stb. Szerepkör : Személy = n : m Egy személy akár egy munkanapon belül is betölthet több szerepkört. A szerepkörök és a személyek közötti leképezés megtervezése a projekt menedzser feladata. RUP/ 29 Tevékenység (activity) A munka egy egysége, amelyet egy a személynek egy adott szerepkörben kell elvégeznie. A projekt szempontjából szükséges eredménye van Általában egy termék létrehozása, vagy frissítése (modell, osztály, terv) Minden tevékenység egy adott szerepkörhöz rendelt. RUP/ 30
Tevékenység (activity) (folyt.) Általában néhány órát, max. néhány napot vesz igénybe. Általában egy személy végzi, és kevés személyre van hatása Egy adott tevékenység a projekt során többször ismétlődhet, ugyan ahhoz a szerepkörhöz, de nem feltétlenül ugyan ahhoz a személyhez rendelve. RUP/ 31 Tevékenység (activity) (folyt.) Példák: Execute performance test (Performance Tester) Plan an iteration (Project Manager) Review the design (Design Reviewer) RUP/ 32 Termék (artifact) Egy része az információnak, amelyet használ, módosít vagy eredményez a fejlesztési folyamat. Egy szerepkör egy tevékenységének bemenete és/vagy eredménye. Példák: modell, forrás kód, bináris kód, dokumentum Egy termék más termékekből állhat össze. (Például egy tervezési modell számos osztály tervét tartalmazza.) RUP/ 33
Munkafolyamat (workflow) Tevékenységek sorozata, melynek eredménye van, vagy kapcsolat a személyek között. RUP/ 34 A role played by an individual or a team Példa a személy, termék, tevékenység fogalmakra Tevékenység A unit of work Személy Analyst responsible for Describe a Use Case Termék Use case Use case package A piece of information that is produced, modified, or used by a process RUP/ 35 Figyelem! A magyar szóhasználat kialakulatlansága miatt a "munkafolyamat" kifejezést két értelemben is szokás használni: workflow (javaslatom: munkafolyamat) discipline (javaslatom: résztevékenység) Vegyes nyelven (de ezáltal pontosabban) fogalmazva: Egy discipline végrehajtási módját egy hozzá rendelt core workflow definiálja. RUP/ 36
Kezdeti fázis, felmérés (Inception) Tárgya A projekt hatáskörének meghatározása Minden külső tényező meghatározása Azonosítása minden H.E.-nek, a kritikusak kidolgozása (max 20 %) Alap rizikó becslése Nagyvonalú projekt terv elkészítése: iterációkra, fázisokra bontás RUP/ 37 Kezdeti fázis, felmérés (Inception) (folyt.) Alapvető termékek Egy "vision" dokumentum Use case modell, amely felsorolja mindazokat az aktorokat és use case-eket, amelyek ebben a fázisban azonosíthatók. Kezdeti szójegyzék (Glossary). Kezdeti kockázat lista. Projekt terv (fázisok, iterációk). Gyakran egy kezdeti prototípus. RUP/ 38 Kidolgozási fázis (Elaboration) Tárgya A problématér (problem domain) analízise. A projekt terv részletes kidolgozása A legfontosabb nem funkcionális követelmények definiálása H. E. m. legalább 80 %-os kidolgozása (minden H. E., és aktor definiált) RUP/ 39
Kidolgozási fázis (Elaboration) (foyt.) Alapvető termékek Use case modell (min. 80%-os készültségben) Kiegészítő (nem funkcionális, illetve use casehez nem köthető) követelmények Szoftver architektúra leírás Végrehajtható architekturális prototípus Továbbfejlesztett kockázati lista Részletes projekt terv Részletes projekt terv RUP/ 40 Kivitelezési fázis (Construction) Végleges felhasználói kézikönyv Kész szoftver termék Teljes leírása a terméknek Általában ezen fázis végén jön létre a béta verzió RUP/ 41 Átalakulási (átadási) fázis (Transition) Béta teszt Dokumentációk frisssítése, ha szükséges Végleges telepítés, konfigurálás Felhasználók oktatása Gratulációk fogadása RUP/ 42
Üzleti modellezés Feladata a szervezet céljainak és struktúrájának feltárása feltárni a szervezet aktuális problémáit meggyőződni arról, hogy a felhasználók és a fejlesztők ugyanazt látják a rendszer követelményeinek levezetése a szervezet igényiből RUP/ 43 Követelményfeltárás / 1 Ötletek begyűjtése (rövid név - rövid leírás) Státusz Becsült implementálási költség Prioritás Rizikószint Eredménye: tulajdonság lista A rendszer tartalmának megértése Azonosítani, elnevezni az objektumokat Eredménye: Business vagy domain modell RUP/ 44 Követelményfeltárás / 2 Funkcionális szükségletek begyűjtése. Használati-eset modellek elkészítése. (A H.E. a rendszer használatának egy lehetséges módja) Eredménye: H. E. modell Nem funkcionális szükségletek begyűjtése. Környezeti, implementálási kényszer (pl.: max 1000 sor), teljesítmény, biztonsági követelmény Eredménye: doksi, esetleg H.E. RUP/ 45
Használati-eset model Use Case Use Case Class Object Analysis Design Depl. Impl. Test Component Deployment Sequence Collaboration Statechart Activity RUP/ 46 Analízis Szükségletek mélyebb megértése, javítása, részletezése A rendszer belsejének meghatározása Külső rendszer nézet -> belső - - Eredménye: analízis modell, kontroll osztályok RUP/ 47 Tervezés Megérteni teljes mélységében: UI topológiát, DB technológiát, Szétbontani a feladatot több menedzselhető részre. (Team modell.) Definiálni a fő interfészeket a részrendszerek között. Vizuálisan ábrázolni amit lehet Elkészíteni egy absztrakt rendszer implementációt Termék: design model, design class, interface, Architecture description RUP/ 48
Analízis, tervezési model Use Case Use Case Class Object Analysis Design Component Deployment Incl. subsystems and packages Depl. Impl. Test Sequence Collaboration Statechart Activity RUP/ 49 Implementálás A rendszert teljesen kidolgozni Szétosztani a rendszert több futtatható komponensre Elkészíteni a forrásfájlokat, szkripteket. Komponens teszt, előállítani a futtatható bináris állomány(oka)t Eredmény: komponens (forrás, bináris, könyvtár, tábla, doksi, csomag,...), interfész RUP/ 50 Telepítési és megvalósítási model Use Case Analysis Use Case Class Component Object Design Depl. Impl. Test Deployment Sequence Collaboration Statechart Activity Incl. active classes and components RUP/ 51
Teszt Vázolni a tesztet, minden iterációban integrációs, legutolsóban rendszer tesz. Megtervezni, implementálni a tesztet. Elkészíteni a teszt osztályt, meghatározni mit fog tesztelni Szisztematikusan mérni a teszt eredményeket, és azok teljesítményét Eredmény: teszt modell RUP/ 52 Teszt model Use Case Use Case Class Object Analysis Component Design Depl. Impl. Test Test model refers to all other models and uses corresponding diagrams Deployment Sequence Collaboration Statechart Activity RUP/ 53 RUP eszközök: TOOL MENTOR Rational Requisite Pro Rational PerformanceStudio Rational SoDA (dokumentáció) Rational Rose Rational Purify (run-time hiba kereső) Rational TeamTest Rational ClearCase RUP/ 54
Referenciák: http://www.rational.com/products/rup/whitepa pers.jsp Jacobson, Booch, Rumbaugh: The Unified Software Development Process Addison-Wesley, 1999 Raffai Márta: Egységesített megoldások a fejlesztésben (UML modellező nyelv, RUP módszertan) Novadat, 2001. RUP/ 55 Köszönöm a figyelmet!