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 Rational Unified Process 5.0 1998
Rational Objectory Process 4.1 1996-1997
Funkcionális teszt Teljesítmény teszt Szükségletek menet. Üzleti tervezés Adat tervezés UI (GUI) tervezés
(fázisok, iteratív megközelítés) The Rational
UML Objectory Process 1.0-3.8 1987-1995
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
1
Á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 UseCase Jelölésrendszere megegyezik a Use Case-ével, de a cég üzleti folyamatait írja le, üzleti ciklusokra bontva.
RUP/ 6
2
Unified Process tulajdonságai / 1 Keret rendszer Komponens alapú. Modellszemlé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
3
Használati-eset vezérelt / 2 Használati eset modell Specifikálja
Analízis modell Realizálja
Tervezési modell
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
4
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
5
Architectúra-központú / 6
A modellek felé felépítik, tik, megjelení megjelenítik, tik, dokumentá dokumentáljá lják az architektú architektúrát
Inception
Elaboration
Construction
Transition
idő
Architektúra RUP/ 16
Inkrementális Analízis Specifikáció
Specifikáció
Tervezés
Implem.
Tesztelés
Tervezés
Specifikáció
Implem. Tervezés Tesztelé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
6
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 ellenő ellenőrizni az architektú architektúrát – Definiá Definiálni a teszt felté feltételeket és a folyamatot – Iterakció Iterakciót megtervezni – Felhaszná Felhasználói dokumentá dokumentáció ciót elké elkészí szíteni – Telepí Telepíteni a rendszert – begyű begyűjteni a felhaszná felhasználói reakció reakciókat Szinkronizá 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
7
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
8
"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
termék
Ciklusok, fázisok, iterációk Termék életciklus
generációk 1. generáció
n. generáció
Fejlesztési életciklus
ciklus fázis
2. generáció
kiindulás
kidolgozás
építkezés
átmenet
iteráció 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
9
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
10
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
11
Munkafolyamat (workflow) Tevékenységek sorozata, melynek eredménye van, vagy kapcsolat a személyek között.
RUP/ 34
Példa a személy, termék, tevékenység fogalmakra
A unit of work
A role played by an individual or a team
Tevékenység
Személy Analyst
responsible for
Use case
Describe a Use Case
Termék A piece of information that is produced, modified, or used by a process
Use case package
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
12
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
13
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
14
Ü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
15
Használati-eset model Use Case Diagrams Use Case Model
Class Diagrams
Analysis Model
Component Diagrams
Design Model
Deployment Diagrams
Object Diagrams
Sequence Diagrams
Depl. Model
Collaboration Diagrams
Impl. Model
Statechart Diagrams
Test Model
Activity Diagrams
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, RUP/ 48 Architecture description
16
Analízis, tervezési model Use Case Diagrams Use Case Model
Class Diagrams
Analysis Model
Component Diagrams
Design Model
Deployment Diagrams
Depl. Model
Impl. Model
Test Model
Object Diagrams
Incl. subsystems and packages
Sequence Diagrams Collaboration Diagrams Statechart Diagrams Activity Diagrams
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 Diagrams Use Case Model
Class Diagrams
Analysis Model
Component Diagrams
Design Model
Deployment Diagrams
Depl. Model
Impl. Model
Test Model
Sequence Diagrams
Object Diagrams
Incl. active classes and components
Collaboration Diagrams Statechart Diagrams Activity Diagrams
RUP/ 51
17
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 Diagrams Use Case Model
Class Diagrams
Analysis Model
Component Diagrams
Design Model
Deployment Diagrams
Depl. Model
Impl. Model
Test Model
Test model refers to all other models and uses corresponding diagrams
Object Diagrams
Sequence Diagrams Collaboration Diagrams Statechart Diagrams Activity Diagrams
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
18
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!
19