the unified software development processusers.iit.uni-miskolc.hu/ficsor/swtechseg/rup.pdf ·...
TRANSCRIPT
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
Rational Unified Process 5.01998 Funkcionális teszt
Teljesítmény tesztSzükségletek menet.Üzleti tervezésAdat tervezésUI (GUI) tervezésRational Objectory Process 4.1
1996-1997
Objectory Process 1.0-3.81987-1995
(fázisok, iteratív megközelítés)
UML The Rational
Ericsson
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
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.
Szoftver TervezésiFolyamat
Szoftver
rendszer
Megrendelő
szükségletei
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.
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
RUP/ 10
Használati-eset vezérelt / 2
Telepítési modell
Implementációs modell
Megvalósítja
Ellenőrzi
Realizálja
Specifikálja
Eloszt
Használatieset modell
Analízis modell
Tervezési modell
Teszt modell
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
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
RUP/ 16
Architectúra-központú / 6A A modellekmodellek felfelééppíítiktik, , megjelenmegjeleníítiktik, , dokumentdokumentááljljáákk azaz architektarchitektúúrráátt
Inception Elaboration Construction Transition
idő
Architektúra
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.
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–– 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
Használati-eset diagram
Architektúra
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.
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
RUP/ 25
"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 Alaprendszer
Produktum(kész "termék")
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
termék
generációk
ciklus
fázis
1. iteráció 2.iteráció n. iteráció
analízis tesztelés
iteráció
munkafolyamat
RUP/ 27
Statikus struktúra (elsődleges modell elemek)
szerepkör (role)
tevékenység (activity)
termék (artifact)
munkafolyamat (workflow)
Ki?
Hogyan?
Mit?
Mikor?
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.
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.)
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 CaseAnalyst
Személy
A role played by an individual or a team
Tevékenység
A unit of work
responsible for Termék
A piece of information that is produced, modified, or used by a process
Use caseUse case package
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.
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)
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
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.
RUP/ 46
Használati-eset model
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
Use CaseDiagrams
ObjectDiagrams
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
RUP/ 49
Analízis, tervezési model
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
StatechartDiagrams
SequenceDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
Incl. subsystems and packages
Use CaseDiagrams
ClassDiagrams
ObjectDiagrams
ActivityDiagrams
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
Use CaseModel Class
DiagramsObject
Diagrams
AnalysisModel
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
SequenceDiagrams
Incl. active classes and components
DesignModel
Depl.Model
Impl.Model
StatechartDiagrams
TestModel
ActivityDiagrams
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
Use CaseModel Class
DiagramsObject
Diagrams
AnalysisModel Component
Diagrams
DesignModel
DeploymentDiagrams
Test model refers to all other models and uses corresponding diagrams
Depl.Model
SequenceDiagrams
CollaborationDiagramsImpl.
Model
StatechartDiagrams
TestModel
ActivityDiagrams
RUP/ 54
RUP eszközök:TOOL MENTORRational Requisite ProRational PerformanceStudioRational SoDA (dokumentáció)Rational RoseRational Purify (run-time hiba kereső)Rational TeamTestRational ClearCase
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!