proiect uml in star uml

23
Aplicaţie pentru gestionarea unei agenţii de turism 1

Upload: alexandru-munteanu

Post on 25-Oct-2015

1.012 views

Category:

Documents


110 download

DESCRIPTION

Proiect UML in STAR UML. Describes java classes used in order to build a successfully application. This document provides how a product management should be

TRANSCRIPT

Page 1: Proiect UML in STAR UML

Aplicaţie pentru gestionarea unei

agenţii de turism

Student:

Munteanu Alexandru

1

Page 2: Proiect UML in STAR UML

– CUPRINS –

1. Limbajul UML - prezentare generală

2. Diagrame UML – tipuri de diagrame

3. Prezentarea şi descrierea aplicaţiei pentru gestionarea unei agenţii

de turism

4. Reprezentarea activităţilor unei agenţii de turism cu ajutorul

limbajului UML

2

Page 3: Proiect UML in STAR UML

UML (The Unified Modeling Language)

Limbajul UML

UML nu este un simplu limbaj de modelare orientat pe obiecte, ci în prezent, este

limbajul universal standard pentru dezvoltatorii software din toata lumea. UML este

succesorul propriu-zis al celor mai bune trei limbaje de modelare anterioare orientate pe

obiecte (Booch, OMT, OOSE). UML se constituie din unirea acestor limbaje de modelare

si în plus deţine o expresivitate care ajută la rezolvarea problemelor de modelare pe care

vechile limbaje nu o aveau.

Limbajul de modelare modificat (UML - The Unified Modeling Language) oferă

arhitecturi de sisteme ce funcţionează pe analiza si proiectarea obiectelor cu un limbaj

corespunzător pentru specificarea, vizualizarea, construirea si documentarea artefactelor

sistemelor software si de asemenea pentru modelarea în întreprinderi. UML este un

limbaj de modelare care oferă o exprimare grafică a structurii si comportamentului

software. Pentru această exprimare grafica se utilizează notaţiile UML.

Notaţiile UML constituie un element esenţial al limbajului pentru realizarea propriu-zisă

a modelării si anume partea reprezentării grafice pe care se bazează orice limbaj de

modelare. Modelarea în acest limbaj se realizează prin combinarea notaţiilor UML în

cadrul elementelor principale ale acestora denumite diagrame.

În cadrul limbajului UML descoperim 9 tipuri de diagrame:

diagrama cazurilor de utilizare

diagrama de secvenţă

diagrama de colaborare,

diagrama de clase (cea mai utilizata)

diagrama de stări

diagrama de componente

diagrama de construcţie

3

Page 4: Proiect UML in STAR UML

diagrama de obiecte

diagrama de activităţi

În cele ce urmează vor fi prezentate notaţiile UML care vor fi grupate după

diagramele corespunzătoare fiecărei notaţii în parte.

Analiza unei aplicaţii implică realizarea mai multor categorii de modele, dintre care

cele mai importante sunt:

Modelul de utilizare: realizează modelarea problemelor şi a soluţiilor acestora

în maniera în care le percepe utilizatorul final al aplicaţiei. Diagramă asociată:

diagramă de cazuri de utilizare

Modelul structural: se realizează pe baza analizei statice a problemei şi

descrie proprietăţile statice ale entităţilor care compun domeniul problemei.

Diagrame asociate: diagramă de module, diagramă de clase

Modelul comportamental: priveşte descrierea funcţionalităţilor şi a succesiunii

în timp a acţiunilor realizate de entităţile domeniului problemei. Diagrame

asociate: diagrama (harta) de stări, diagrama de colaborare, diagrama de

interacţiune

Diagramele UML

O diagrama oferă utilizatorului un mijloc de vizualizare si de manevrare a

elementelor de Modelare. Majoritatea diagramelor se prezintă sub forma unor grafuri,

compuse din elemente si arce.

Diagramele pot arăta o parte sau toate caracteristicile elementelor de modelare,

conform nivelului de detaliu util în contextul unei diagrame date. Diagramele pot

grupa informaţii interdependente, pentru a arăta, de exemplu caracteristicile moştenite

de o clasă. Diagramele UML sunt:

diagramele cazurilor de utilizare, care prezintă funcţiile sistemului din

punct de vedere al utilizatorului; acestea sunt grafuri de actori şi cazuri de

utilizare, având ca arce relaţiile dintre ele: asociaţiile între actori şi cazuri

de utilizare, generalizarea între actori, incluziunea, extinderea şi

generalizarea între cazuri de utilizare;

4

Page 5: Proiect UML in STAR UML

diagrame de clasă, care prezintă structura statică în termeni de clase şi

asocieri (relaţii); diagramele de clase sunt grafuri, având ca noduri în

general clase, dar putând conţine şi pachete, interfeţe sau chiar obiecte, iar

ca arce relaţiile dintre aceste elemente. aceste diagrame sunt organizate în

pachete, ele putând depinde de alte pachete sau constituind baza pentru

construirea unor pachete. O clasă trebuie să aibă un nume unic în cadrul

pachetului din care face parte, ea putând fi referită sub forma

NumePachet::NumeClasă.

diagrame de colaborare, care sunt reprezentări spaţiale ale obiectelor,

legăturilor si interacţiunilor; diagramele din această categorie sunt

organizate în jurul rolurilor jucate de obiecte în cadrul unei interacţiuni,

cuprinzând astfel şi relaţiile dintre obiecte;

există două niveluri de reprezentare pentru diagramele de colaborare:

- nivelul instanţelor – diagrama de colaborare la nivelul instanţelor

este un graf, având ca noduri obiectele participante la colaborare şi

ca arce legăturile dintre ele, însoţite de stimulii transmişi prin

intermediul acestora; obiectele sunt reprezentate prin dreptunghiuri

ce conţin numele obiectului subliniat; se poate prezenta şi rolul

obiectului în colaborare, folosind notaţia generală:

NumeObiect’/’NumeRolClasificator’:’NumeClasificator[’.’NumeClasificator]*

- nivelul specificaţiei – diagrama de colaborare la nivelul rolurilor

este formată din roluri ale clasificărilor şi ale asociaţiilor dintre

aceştia, precum şi din mesajele transmise între ele; rolul unui

clasificator se prezintă într-un dreptunghi, având un nume de tipul:

’/’NumeRolClasificatir’:’NumeClasificator[’.’NumeClasificator]*

diagrame de secvenţă, care prezintă temporal obiectele si interacţiunile

lor; diagramele din această categorie categorii cuprind obiectele care fac

parte dint-o anumită colaborare şi descriu secvenţa de stimuli transmişi

între obiecte în cadrul unei interacţiuni; ele cuprind şi o dimensiune

temporală, deoarece fiecărui obiect îi corespunde o linie de viaţă, trasată

vertical sub dreptunghiul ce conţine numele obiectului; timpul se scurge 5

Page 6: Proiect UML in STAR UML

de sus în jos, iar stimulii sunt reprezentaţi prin săgeţi etichetate, de la linia

de viaţă a obiectului transmiţător către linia de viaţă a celui receptor;

diagrame de componente, care prezintă componentele fizice ale unei

aplicaţii; componentele pot fi executabile, biblioteci dinamice, tabele,

fişiere de cod sursă, fişiere de date, documente, elemente din modele

orientate pe obiecte clasice; durata de viaţă a componentelor diferă, unele

existând numai în timpul compilării, altele la editarea de legături, iar altele

la momentul rulării; diagramele de componente sunt grafuri de

componente şi interfeţe ale acestora, interconectate prin relaţii de

dependenţă, generalizare, asociaţie, agregare şi realizare;

diagrame de construcţie, care prezintă construcţia componentelor pe

dispozitivele hardware; acestea sunt grafuri de noduri, în interiorul cărora

se reprezintă instanţe ale componentelor, rezidente la momentul rulării;

nodurile sunt folosite pentru a modela suportul material al sistemului, ele

fiind elemente fizice reprezentând resurse de prelucrare, precum

procesoare sau periferice; reprezentarea UML se efectuează printr-un cub

tridimensional, având în interior numele tipului de nod, sau numele

subliniat al instanţei unui nod; relaţia între noduri este de asociaţie;

diagrame de stări-tranziţii, care prezintă comportamentul unei clase în

termeni de stări; diagramele de stări au la bază două concepte importante:

stările, ce caracterizează valori sau seturi de valori ale obiectelor, şi

evenimentele, ce constau din stimuli externi, ce acţionează asupra

obiectelor şi determină o tranziţie de la o stare la alta;

diagrame de obiecte, care prezintă obiectele si relaţiile lor, fiind nişte

diagrame de colaborare simplificate, fără reprezentarea mesajelor trimise

între obiecte; obiectele sunt instanţe ale claselor, caracterizate printr-un

nume şi valori specifice atributelor. ele se prezintă în UML în mod similar

claselor, în dreptunghiuri ce pot avea unul sau două compartimente.

Primul compartiment conţine numele obiectului şi numele clasei, precedat

de „:”, ambele fiind subliniate; cel de-al doilea compartiment conţine

atributele, cu tipul lor de date şi valorile specifice obiectului.

6

Page 7: Proiect UML in STAR UML

diagrame de activităţi, care reprezintă comportamentul unei operaţii în

termeni de acţiuni; ele sunt cazuri particulare ale diagramelor de stare,

care nu descriu însa un flux de control bazat pe evenimente, ci un

procedural, în care toate sau majoritatea tranziţiilor se efectuează automat,

la terminarea acţiunilor efectuate în interiorul stărilor;

diagramele de colaborare împreună cu cele de secvenţă se numesc

diagrame de interacţiune pe când diagramele de stare mai sunt denumite

maşini cu stări finite, automate, etc.

Relaţiile care se stabilesc între două elemente din cadrul unei diagrame pot fi:

- actor–funcţionalitate – relaţie de asociere

- actor–actor – relaţie de generalizare

- funcţionalitate–funcţionalitate - relaţie de asociere, de

generalizare şi de dependenţă

Relaţia de asociere – modelează o comunicare între elementele pe care le

conectează. Aceste tip de relaţie apare între un actor şi o funcţionalitatea sau între două

funcţionalităţi (transfer de date, trimitere de mesaje sau date).

Relaţia de generalizare – se realizează între elemente de acelaşi tip şi modelează

situaţii în care un element este un caz particular al unui alt element. Elementul particular

moşteneşte relaţiile în care este implicat elementul general.

Relaţia de dependenţă – apare între două funcţionalităţi şi modelează situaţii în

care o funcţionalitate foloseşte comportamentul definit în altă funcţionalitate (include)

sau în cazul în care comportamentul unei funcţionalităţi poate fi extins către o altă

funcţionalitate.

Prezentarea şi descrierea aplicaţiei

7

Page 8: Proiect UML in STAR UML

Această aplicaţie îşi propune gestionarea unei agenţii de turism. Accesul se face pe

baza unei proceduri de identificare. Există două tipuri de utilizatori:

clienţii agenţiei de turism

angajaţii agenţiei de turism

Aplicaţia pune la dispoziţia clienţilor o modalitate de a vizualiza lista de oferte

turistice disponibile şi posibilitatea de a selecta o ofertă din lista respectivă. Clientul îşi

poate rezerva o destinaţie însă, după alegerea destinaţiei X, el are posibilitatea sa se

răzgândească. Pentru a alege o altă ofertă, clientul trebuie să renunţe la oferta iniţială X.

Clientul are posibilitatea de a propune o ofertă turistică. În acest sens, clientul trebuie să

facă o descriere a destinaţiei dorite şi să specifice în ce categorie se încadrează. În cadrul

listei de categorii, fiecare destinaţie se încadrează într-o singură categorie existentă.

O ofertă devine vizibilă in lista de preţuri numai după ce a fost aprobată de către un

angajat al agenţiei.

Ofertele pot fii listate toate sau pot fi grupate pe categorii. Lista de oferte este

dinamică, în sensul că se poate modifica pe parcursul unui an (pot fi introduse noi oferte

în listă sau se pot şterge oferte în cazul în care nu sunt alese de niciun client). Clientul

poate vizualiza ofertele pe tot parcursul anului.

Aplicaţia oferă posibilitatea angajaţilor de a vizualiza ce oferte şi-au ales clienţii, iar

în cazul unui anumit produs, există posibilitatea de a vedea de către cine a fost ales.

Destinaţia este aleasă dintr-o listă în care pot fi văzute toate circuitele care au fost

selectate de cel puţin un client. Deoarece pot exista foarte multe destinaţii, este necesară

posibilitatea vizualizării acestora grupate pe categorii. Angajatul are posibilitatea de a

vedea care sunt destinaţiile propuse de către clienţi, mai mult, el are dreptul de a aproba

sau respinge o astfel de propunere. În momentul în care o destinaţie este aprobată, ea

devine vizibilă în lista de circuite disponibile. În cazul respingerii unei destinaţii, aceasta

nu este ştearsă imediat din baza de date, angajatul putându-se răzgândi (în cazul în care

consideră că destinaţia propusă poate aduce un venit consistent agenţiei), urmând a o

accepta ulterior.

Aplicaţia trebuie să pună la dispoziţia angajatului posibilitatea de a şterge definitiv

din baza de date un anumit circuit. Angajatul poate vedea lista tuturor circuitelor

existente, lista sejururilor alese de cel puţin un client şi oferta biletelor de avion.

8

Page 9: Proiect UML in STAR UML

Conturile create sunt gestionate de către angajaţi. Ei trebuie să aibă posibilitatea

creării/editării unui cont. Prin conceptul editare se înţelege posibilitatea modificării

tuturor informaţiilor referitoare la un anumit client. Toţi utilizatorii trebuie să aibă

posibilitatea modificării parolei proprii. Pentru rezolvarea situaţiilor în care un anumit

client îşi uită parola, angajaţii vor avea dreptul să seteze/genereze parole pentru fiecare

client. De fiecare dată când parola unui utilizator este modificată (de utilizatorul şi sau de

către un angajat), utilizatorul va fi înştiinţat de acest lucru prin e-mail.

Diagrama de clase:

9

Sejur 2011 Nume ţară: String Oraş: String Hotel: String Perioadă sejur: String Tarif cazare: Integer

Completare_Sejur() Modificare_Sejur() Ştergere_Sejur() Tipărire_Sejur()

Page 10: Proiect UML in STAR UML

Diagrama Use Case principala

10

Destinaţii

Nume ţară: String Descriere ţară: String

Creare_Destinaţii() Selectează_Destinaţie()

Hoteluri Nume hotel: String Localizare: String Structură de cazare:

String Dotări cam: String Servicii incluse: String Servicii cu plată:

String

Adăugare_Hoteluri() Vizualizare_Hoteluri()

Ofertă bilete avion

Ţară plecare: String Oraş plecare: String Ţară destinaţie: String Oraş destinaţie: String Companie aeriană:

String Escală: String Tip bilet: String Valabilitate billet: String Tarif: Integer

Editare_Ofertă() Adăugare_Ofertă() Tipărire_Ofertă()

Clienţi

Nume: String CNP: Integer Data naşterii: Integer Adresă: String Telefon: Integer E-mail: String Date referitoare la

contractul încheiat: String

Adăugare_Clienţi() Ştergere_Clienţi() Căutare_Clienţi() Modificare_Clienţi()

Rezervări on-line

Nume client: String Nr. Telefon: Integer Hotel: string Staţiune: String Perioadă: Integer Tip circuit: String

Vizualizare_Rezervări()

Circuite 2011

Tip circuit: String Transport: String Durată: String Rută: String Servicii incluse: String Perioadă: Integer Preţ: Integer Descriere: String

Iniţializare() Vizualizare_Circuite() Incrementare()

Utilizator

Cont utilizator: Integer Parolă: String Creare_Cont() Creare_Parolă() Login()

Circuit Nume: String

Adăugare_Circuit() Ştergere_Circuit()

Page 11: Proiect UML in STAR UML

Diagrama Use Case client

11

Page 12: Proiect UML in STAR UML

Diagrama Use Case angajat

12

Page 13: Proiect UML in STAR UML

13

Page 14: Proiect UML in STAR UML

Diagrama Use Case administrator

Diagrama Use Case angajat2

14

Page 15: Proiect UML in STAR UML

Diagrama de secvente

15

Page 16: Proiect UML in STAR UML

Secventa de “Logare” Secventa de “Modificare a unui client”

Secventa de “Stergere a unui cirucit”

16