Upload
haliem
View
216
Download
1
Embed Size (px)
Citation preview
1
The Unified Software Development Process
Rational Unified Process
Krizsán ZoltánFicsor Lajos
Miskolci EgyetemÁltalános Informatikai Tanszék
Utolsó módosítás: 2007. 12. 04.
RUP/ 2
Történet
Funkcionális tesztTeljesítmény tesztSzükségletek menet.Üzleti tervezésAdat tervezésUI (GUI) tervezés
Rational Unified Process 5.01998
Rational Objectory Process 4.11996-1997
Objectory Process 1.0-3.81987-1995
Ericsson
UML The Rational
(fázisok, iteratív megközelítés)
RUP/ 3
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
2
RUP/ 4
Általános séma
Definiálja ki, mikor, mit, hogyanki, mikor, mit, hogyan fog elkészíteni, hogyhogy a kész rendszer a megfelelőcélt szolgálja.
Megrendelő
szükségletei
Szoftver
rendszer
Szoftver TervezésiFolyamat
RUP/ 5
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/ 6
Üzleti modellProbléma: a menedzserek nem értik a programozói leírást.A RUP megoldotta a problémát: business Use-CaseJelölésrendszere megegyezik a Use Case-ével, de a cég üzleti folyamatait írja le, üzleti ciklusokra bontva.
3
RUP/ 7
Unified Process tulajdonságai / 1Keret rendszerKomponens alapú.ModellszemléletűJól definiált interfészeken keresztül kapcsolódik.Az UML jelölésrendszerét használja.
RUP/ 8
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/ 9
Használati-eset vezérelt / 1HASZNÁ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
4
RUP/ 10
Használati-eset vezérelt / 2Használatieset modell
Analízis modell
Tervezési modell
Telepítési modell
Implementációs modell
Teszt modell
Megvalósítja
Ellenőrzi
Realizálja
Specifikálja
Eloszt
RUP/ 11
Architectúra-központú / 1Az 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/ 12
Architektúra-központú / 2Az architektúra:
Elősegíti a statikus, dinamikus elemek modellezésétA rendszert interfészeken keresztül kapcsolódó komponensek rendszereként modellezi. Az architektúra a megbízó üzleti elvárásaiból ered
5
RUP/ 13
Architektúra-központú / 3Szintjei:
Üzleti – követelmény architektúraLogikai - 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/ 14
Architektúra-központú / 4
Az architektúra "4+1" nézete
RUP/ 15
Architectúra-központú / 5Réteg (layer): jól elhatárolható rész, elemei
azonos jellemzőkkel, interfész típusokkalRétegei:
Felhasználói-specifikus alkalmazásiÁltalános alkalmazásiKözépréteg (middleware)Rendszer - szoftver
6
RUP/ 16
A A modellekmodellek felfelééppíítiktik, , megjelenmegjeleníítiktik, , dokumentdokumentááljljáákk azaz architektarchitektúúrráátt
idő
Architektúra
Inception Elaboration Construction Transition
Architectúra-központú / 6
RUP/ 17
Inkrementális
Analízis
Specifikáció
Tervezés
Implem.
Tesztelés
Használat
Specifikáció
Tervezés
Implem.
Tesztelés
Specifikáció
Tervezés
Implem.
Tesztelés
RUP/ 18
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.
7
RUP/ 19
Iteráció / 1
Elsőként csak a felhasználó-kritikus komponensekKésőbb a gyakorlati hasznosság szerint fokozatosan bővül
RUP/ 20
Iteráció / 2
Használati-eset diagram
Architektúra
–– LLéétrehozni trehozni éés ellens ellenőőrizni az architektrizni az architektúúrráátt–– DefiniDefiniáálni a teszt feltlni a teszt feltéételeket teleket éés a folyamatot s a folyamatot –– IterakciIterakcióótt megterveznimegtervezni–– FelhasznFelhasznáállóói dokumenti dokumentáácicióót elkt elkéészszííteniteni–– TelepTelepííteni a rendszertteni a rendszert–– begybegyűűjteni a felhasznjteni a felhasznáállóói reakcii reakcióókatkat
SzinkronizSzinkronizáálni a modelleketlni a modelleket
RUP/ 21
Iteráció / 3H. E. -al a rendszer funkcióit, az arch-val a sikeres terméket szimbolizáljukAz arch. egy durva becslést ad a nem specifikus H. E. kimeneteireH. E. alapján készül az alrendszer- és komponens-arch. A H. E. specifikációk egyre világosabbá teszik az arch.
8
RUP/ 22
Iteráció / 4Elő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 buknakKisebb a sikertelenség kockázata, teszteléskor kiderülnek a problémák
RUP/ 23
Iterációk és munkafolyamatok / 1
RUP/ 24
Erőbedobás, ütemterv
9
RUP/ 25
idő
Konkrét követelmények Architektúra Alaprendszer
Produktum(kész "termék")
Inception Elaboration Construction Transition
"Mérföldkövek"
Minden fázisban 1 vagy több iteráció!
RUP/ 26
Ciklusok, fázisok, iterációkTermék életciklus
Fejlesztési életciklus
1. generáció 2. generáció n. generáció
kiindulás átmenetkidolgozás építkezés
1. iteráció 2.iteráció n. iteráció
analízis tesztelés
termék
generációk
ciklus
fázis
iteráció
munkafolyamat
RUP/ 27
Statikus struktúra (elsődleges modell elemek)
Ki?
Hogyan?
Mit?
Mikor?
szerepkör (role)
tevékenység (activity)
termék (artifact)
munkafolyamat (workflow)
10
RUP/ 28
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égekFelelő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/ 29
Szerepkör (role) (folyt.)Szerepkör: designer, design reviewer, architect, use case author stb.Szerepkör : Személy = n : mEgy 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/ 30
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.
11
RUP/ 31
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ásaEgy 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/ 32
Tevékenység (activity) (folyt.)Példák:
Execute performance test (Performance Tester)Plan an iteration (Project Manager)Review the design (Design Reviewer)
RUP/ 33
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, dokumentumEgy termék más termékekből állhat össze. (Például egy tervezési modell számos osztály tervét tartalmazza.)
12
RUP/ 34
Munkafolyamat (workflow)Tevékenységek sorozata, melynek eredménye van, vagy kapcsolat a személyek között.
RUP/ 35
Példa a személy, termék, tevékenység fogalmakra
Describe a Use Case
Use case package
Use case
responsible for
Analyst
Termék
A piece of information that is produced, modified, or used by a process
Személy
A role played by an individual or a team
Tevékenység
A unit of work
RUP/ 36
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.
13
RUP/ 37
Kezdeti fázis, felmérés (Inception)Tárgya
A projekt hatáskörének meghatározásaMinden külső tényező meghatározásaAzonosítása minden H.E.-nek, a kritikusak kidolgozása (max 20 %)Alap rizikó becsléseNagyvonalú projekt terv elkészítése: iterációkra, fázisokra bontás
RUP/ 38
Kezdeti fázis, felmérés (Inception) (folyt.)
Alapvető termékekEgy "vision" dokumentumUse 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/ 39
Kidolgozási fázis (Elaboration)Tárgya
A problématér (problem domain) analízise.A projekt terv részletes kidolgozásaA 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)
14
RUP/ 40
Kidolgozási fázis (Elaboration) (foyt.)Alapvető termékekUse case modell (min. 80%-os készültségben)Kiegészítő (nem funkcionális, illetve use case-hez nem köthető) követelményekSzoftver architektúra leírásVégrehajtható architekturális prototípusTovábbfejlesztett kockázati lista Részletes projekt tervRészletes projekt terv
RUP/ 41
Kivitelezési fázis (Construction)Végleges felhasználói kézikönyvKész szoftver termékTeljes leírása a terméknekÁltalában ezen fázis végén jön létre a béta verzió
RUP/ 42
Átalakulási (átadási) fázis (Transition)Béta tesztDokumentációk frisssítése, ha szükségesVégleges telepítés, konfigurálásFelhasználók oktatásaGratulációk fogadása
15
RUP/ 43
Üzleti modellezésFeladata
a szervezet céljainak és struktúrájának feltárásafeltárni a szervezet aktuális problémáitmeggyőződni arról, hogy a felhasználók és a fejlesztők ugyanazt látjáka rendszer követelményeinek levezetése a szervezet igényiből
RUP/ 44
Követelményfeltárás / 1Ötletek begyűjtése (rövid név - rövid leírás)
StátuszBecsült implementálási költségPrioritásRizikószintEredménye: tulajdonság lista
A rendszer tartalmának megértéseAzonosítani, elnevezni az objektumokatEredménye: Business vagy domain modell
RUP/ 45
Követelményfeltárás / 2Funkcioná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. modellNem funkcionális szükségletek begyűjtése.
Környezeti, implementálási kényszer (pl.: max1000 sor), teljesítmény, biztonsági követelményEredménye: doksi, esetleg H.E.
16
RUP/ 46
Használati-eset modelUse CaseDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
RUP/ 47
AnalízisSzükségletek mélyebb megértése, javítása, részletezéseA rendszer belsejének meghatározásaKülső rendszer nézet -> belső - | | -Eredménye: analízis modell, kontroll osztályok
RUP/ 48
TervezésMegé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 lehetElkészíteni egy absztrakt rendszer implementációtTermék: design model, design class, interface, Architecture description
17
RUP/ 49
Analízis, tervezési modelUse CaseDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
Incl. subsystems and packages
RUP/ 50
ImplementálásA rendszert teljesen kidolgozniSzétosztani a rendszert több futtathatókomponensreElkészíteni a forrásfájlokat, szkripteket.Komponens teszt, előállítani a futtathatóbináris állomány(oka)tEredmény: komponens (forrás, bináris, könyvtár, tábla, doksi, csomag, ...), interfész
RUP/ 51
Telepítési és megvalósítási modelUse CaseDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
Incl. active classes and components
18
RUP/ 52
TesztVá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 tesztelniSzisztematikusan mérni a teszt eredményeket, és azok teljesítményétEredmény: teszt modell
RUP/ 53
Teszt modelUse CaseDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
Test model refers to all other models and uses corresponding diagrams
RUP/ 54
RUP eszközök:TOOL MENTORRational Requisite ProRational PerformanceStudioRational SoDA (dokumentáció)Rational RoseRational Purify (run-time hiba kereső)Rational TeamTestRational ClearCase
19
RUP/ 55
Referenciák:http://www.rational.com/products/rup/whitepapers.jspJacobson, Booch, Rumbaugh: The UnifiedSoftware Development ProcessAddison-Wesley, 1999Raffai Márta: Egységesített megoldások a fejlesztésben (UML modellező nyelv, RUP módszertan)Novadat, 2001.
Köszönöm a figyelmet!