Sunteți pe pagina 1din 16

Proiect-Ingineria programării

I: Introducere
Concurenta din ce in ce mai puternica determina cresterea calitatii bunurilor si serviciilor
oferite si reducerea timpului de procesare a comenzilor. Pentru atingerea acestor obiective,
companiile trebuie sa-si optimizeze operatiunile interne.
Optimizarea= construirea unui model de afaceri care sa reprezinte activitatea firmei, permitand
acesteia sa analizeze si simuleze schimbarile ce ar putea surveni.
Pana de curand, modelele utilizate erau cele ierarhice, ce reprezentau structura organizationala a
companiilor. In ultima vreme a devenit insa evident faptul ca optimizarea proceselor lor de
afaceri reprezinta o solutie mult mai buna.
BPM: se refera la activitatea de reprezentare a proceselor ce au loc in cadrul unei intreprinderi
in scopul analizei acestora si identificarii posibilitatilor de imbunatatire in viitor. In general
aceste imbunatatiri implica utilizarea unor solutii informatice.
Procesul de afaceri: o colectie de activitati interconectate si structurate care au ca scop obtinerea
unui serviciu sau produs pentru un anumit client.
Limbajul de Modelare Unificat
-Limbajul de Modelare Unificat (UML) : limbaj de modelare orientat obiect considerat
standard de catre dezvoltatorii software din toata lumea.
-UML este succesorul propriu-zis al celor mai bune trei limbaje de modelare anterioare orientate
obiect (Booch, OMT, and OOSE) ce au fost unificate, obtinandu-se astfel un limbaj superior,
mult mai expresiv.
-UML este un limbaj de reprezentare vizuala ce poate fi utilizat pentru: modelarea proceselor de
afaceri, reprezentarea structurii unei aplicatii, descrierea arhitecturii unui sistem, surprinderea
comportamentului unui sistem, modelarea structurilor de date sau pentru construirea unei
specificatii detaliate a unui sistem.
-Reprezentarea se face utilizand elementele standard ale UML: notatiile si diagramele.
-Notatiile sunt elemente ce se regasesc in cadrul fiecarei diagrame si sunt de tipul: conectori,
simboluri, valori, etc.
-Diagramele sunt reprezentari ale unui proces, ale unui sistem sau ale partilor lor componente.
Diagrame definite in UML
În cadrul UML 2.2 sunt definite 14 tipuri de diagrame ce se impart in doua categorii:
 
Diagrame de structura
• Evidentiaza componentele ce trebuie sa existe in cadrul sistemului modelat; sunt in
general folosite pentru documentarea arhitecturii sistemelor software.
Diagrame de comportament
• Evidentiaza ce trebuie sa se intample in sistemul modelat; ilustreaza comportamentul
sistemului si sunt utilizate in general pentru a descrie functionalitatea sa.
Diagrame de interactiune
• Diagramele de interactiune reprezinta diagrame de comportament care evidentiaza modul
in care circula datele si se transfera controlul in sistemul modelat.
Diagrame de structura
2
• Diagrama de clasa: descrie structura unui sistem prin evidentierea claselor din sistem, a
atributelor lor si a relatiilor dintre clase.
• Diagrama de componente: descrie modul in care un sistem este descompus in partile sale
componente si arata dependentele dintre acestea.
• Diagrama structurii compozite: descrie structura interna a unei clase si colaborarile
posibile datorate acestei structuri.
• Diagrama de constructie: descrie componentele hardware utilizate in implementarea
sistemului
• Diagrama de obiecte: prezinta obiectele si relatiile dintre ele;
• Diagrama de pachet: descrie modul in care un sistem este impartit in grupuri logice
aratand legaturile intre aceste grupuri;
• Diagrama de profil: opereaza la nivel de metamodel.
Diagrame de comportament
• Diagrama de activitate: descrie succesiunea de activitati operationale ale componentelor
unui sistem;
• Diagrama de stare: descrie starile si starile de tranzitie ale sistemului;
• Diagrama cazurilor de utilizare: descrie functionalitatea oferita de sistem din perspectiva
actorilor, a scopurilor lor lor reprezentate la si cazuri de utilizare si a oricaror dependente
dintre aceste cazuri.
Diagrame de interactiune
• Diagrama de comunicare: arata interactiunile dintre obiecte sau componente dpdv al
mesajelor. Reprezinta o combinatie a informatiilor preluate de la diagramele de clasa, de
secventa si de cazuri de utilizare ce descriu atat structura statica cat si pe cea dinamica a
unui sistem;
• Diagrama de interactiune de ansamblu: confera o privire de ansamblu asupra sistemului,
nodurile reprezentand diagrame de interactiune;
• Diagrama de secventa: arata modul in care obiectele comunica intre ele dpdv al
secventierii mesajelor;
• Diagrama de incadrare in timp: un tip specific de diagrame de interactiune in care focusul
este dat de restrictiile de timp.
Diagrama cazurilor de utilizare (Use-case Diagram)
• Un use case este o reprezentare la nivel conceptual a unei interactiuni dintre un actor si un
sistem si a activitatilor care se produc si pe care sistemul le face.
• Un caz de utilizare este o secventa a tranzactiilor realizate de sistem ca raspuns la
evenimentele declansate de un actor sistemului.
• Un caz de utilizare contine toate evenimentele care pot surveni in cadrul perechii actor -
caz de utilizare, nu neaparat unul ce va apare in orice scenariu particular.
• Un caz de utilizare poate de asemenea descrie comportamentul unui set de obiecte, ca de
exemplu o organizatie.
• O diagrama use case este folosita în general pentru a indica sau caracteriza
functionalitatile si comportamentul sistemului ce interactioneaza cu unul sau mai multi

3
actori. Un actor poate fi un utilizator sau orice sistem ce poate interactiona cu sistemul
modelat.
Atât timp ce actorii reprezinta utilizatorii, ei ajuta la construirea unei imagini clare a ceea ce se
asteapta a se întâmpla în sistem. Cazurile de utilizare sunt construite pe baza nevoilor pe care le
au actorii (utilizatorii). Aceasta asigura faptul ca sistemul va produce ceea ce s-a dorit.
Element Descriere Notaţie

Un actor este, în principiu, un utilizator al sistemului, dar poate fi şi un


Actor
alt sistem informatic care interacţionează cu sistemul analizat.

Use Case-urile se reprezintă sub forma unei elipse în interiorul căreia


Use
este scris numele Use Case-ului respectiv. Numele incepe de obicei cu
Case
un verb
Asocierea este utilizată pentru a indica legătura dintre un Actor şi un
Asociere Use Case, în sensul că acel actor participă într-un fel oarecare în acel
Use Case.

Diagrama Use case


• Ex. : un client care suna la 958 pentru Ora Exacta.
• Între actori şi use case-uri pot să existe relaţii de generalizare / specializare atunci când un
actor sau un use case poate fi asimilat unei clase de actori, respectiv de use case-uri.
• O generalizare intre doua cazuri de utilizare indica faptul ca cazul de utilizare poate
impartasi comportamentul definit in unul sau mai multe cazuri de utilizare.
• Ex. Emitere pasaport (temporar/ electronic)
• O generalizare intre actori arata ca un actor mosteneste structura si comportamentul ale
unui actor sau mai multi actori.
• EX. Studenti (Ciclul Licenta/ Master)
Relaţii între use case-uri
• Relaţia de tip extensie (şi implicit use case-urile de extensie) se folosesc atunci când se
modelează un comportament opţional sau excepţional, care nu condiţionează finalitatea
use case-ului de bază.
Ex.: un cumparator ce achizitioneaza un LCD poate să mearga la bancul de probe pentru
verificare.
• Relaţia de tip includere: se foloseşte atunci când use case-ul inclus nu este o parte
esenţială a fluxului din use case-ul de bază sau este un comportament care se repetă în mai
multe use case-uri.
EX. Verificarea statusului unui colet si eventual schimbarea destinatiei presupune in primul rand
identificarea utilizatorului

Diagrame de clasa

4
• Class diagram este un tip de diagramă utilizată pentru descrierea structurii statice, adică a
entităţilor sau claselor existente într-un sistem.
• utilizat de către dezvoltatori pentru specificarea claselor dar poate fi foarte util şi pentru
specificarea structurii unor sisteme sau subsistem dintr-un business real.
• arata relatiile dintre clase de tipul: mostenire, agregare si asociere, precum si operatiile si
atributele aferente fiecareia.
• Clasa are instanţe, sau realizări. Aceste instanţe sunt obiectele clasei. Prin conceptul de
clasă se descriu structura şi comportarea obiectelor clasei. Structura conţine atributele
fiecărui obiect din clasă.
Element Descriere Notaţie
O clasă este reprezentată printr-un dreptunghi cu trei
compartimente: în cel de sus se trece numele clasei, în mijloc
Clasă
se trec atributele clasei iar jos se trec operaţiile specifice
clasei.

Moştenirea este o relaţie care indică faptul că o clasă


Moştenire
moşteneşte caracteristicile unei clase părinte.

Asocierea este o relaţie generică între două clase. Aceste


Asociere relaţii pot fi de tipurile unu la unu, unu la mulţi, mulţi la
mulţi.

Atunci când o clasă depinde de o altă clasă, în sensul că


Dependenţă utilizează acea clasă ca şi atribut al său, se foloseşte relaţia
de dependenţă.

Agregarea indică o relaţie de tip întreg-parte (se poate spune


Agregare despre clasa părinte că are clase de tip copil). În această
relaţie, clasa copil poate exista şi fără clasa părinte.

Această relaţie derivă din agregare dar se utilizează atunci


Compoziţie când o clasă copil nu poate exista decât în cazul existenţei
clasei părinte.

• În reprezentarea clasei atributele şi operaţiile sunt declarate în compartimentele speciale:


– atributele: numele atributului: tipul atributului = valoare implicită
– operaţiile: numele operaţiei (parametri): tipul valorii returnate
• se pot folosi tipurile de date specifice business-ului, ca de exemplu: unitati monetare,
unitati de timp, unitati de greutate, etc.

5
Vizibilitatea: pentru a specifica vizibilitatea unui atribut sau a unei operatiuni/metode, vom
utiliza inaintea acestora urmatoarele notatii:
 + Public – orice clasa poate avea acces la informatie
 # Protejat – numai clasa respectiva si succesorii sai pot accesa informatia
 - Privat – numai clasa respectiva poate avea acces la informatie.  
Moştenirea este o relaţie prin care se indică faptul că o clasă moşteneşte caracteristicile clasei
părinte. În plus, clasa copil poate avea propriile caracteristici

Asocierea arată existenţa unei relaţii între clase. Asocierile de tip binar (cu doua capete) sunt
reprezentate in mod obisnuit printr-o linie care face legatura intre doua clase. Asocierile de ordin
mai mare pot fi reprezentate ca avand mai mult de doua capete.
• O asociere poate primi un nume iar capete pot avea diverse roluri, grad de multiplicitate,
vizibilitate si alte proprietati.
Ex. O universitate este condusa de un singur rector si un rector conduce o singura universitate.

Ex. O universitate are mai multe facultati.

6
Exemplu: între persoană şi card bancar putem avea următoarea relaţie: o persoană poate avea
zero, unul sau mai multe carduri.

Un tip special de asociere este indicat printr-o clasă de asociere. Ca si clasele, asocierile pot avea
atribute si operatii. Pentru a arata grafic acest lucru, o clasa de asociere se conecteaza printr-o
linie intrerupta. Altfel spus, relaţia în sine este o clasă.
Exemplu: relaţia de asociere dintre Banca si Persoana este intermediata de existenta unui card
Bancar.

7
II. SIMULAREA FUNCTIONARII UNUI ATM

Formularea problemei:
Se cere dezvoltarea unui produs software care să controloze functionarea unui
ATM. Acest bancomat dispune de un dispozitiv magnetic pentru citirea cardului, o
consola pentru a interactiona cu clientul (tastatura si monitor), un dispozitiv de printare a
chitantei, un dipozitiv de eliberarea a banilor. ATM-ul va comunica cu banca, pentru a
valida pinul si pentru a confirma tranzactiile.

Bancomatul va putea servi doar cate un client pe rand. Clientul va fi rugat sa


introduca cardul in dispozitivul special al ATM-ului si PIN-ul pentru identificare. Aceste
informatii vor fi trimise la banca pentru validare, la fiecare tranzactie efectuata. Daca
PIN-ul este corect introdus, atunci clientul va putea efectua una sau mai multe tranzactii.
Cardul va ramane in ATM pana cand clientul nu va mai dori sa efectueze nici o
tranzactie.

ATM-ul trebuie sa asigure urmatoarele servicii clientului:

 Clientul poate retrage din contul corespunzator cardului, orice suma de bani.
Inainte de a elibera banii, trebuie primita confirmarea de la banca.
 Clientul poate sa ceara interogare de sold pentru contul corespunzator cardului
 Clientul poate face plati catre furnizori.
 Clientul poate sa ceara afisarea ultimelor 10 operatiuni.
 Clientul poate abandona o tranzactie in orice moment, in loc sa raspunda la o
intrebare din partea bancomatatului

ATM-ul va comunica fiecare tranzactie la banca si va obtine verificarea si


aprobarea din partea bancii. O tranzactie este considerata incheiata de banca din
momentul in care va fi aprobata

Daca banca determina ca PIN-ul introdus nu este corect, ATM-ul va afisa un


mesaj prin care clientul este rugat sa reintroduca PIN-ul inainte de a efectua orice
tranzactie. PIN-ul introdus incorect de 3 ori, va determina retinerea cardului in bancomat,
iar clientul va trebuie sa contacteze banca pentru al recupera.

In cazul in care tranzactia nu este efectuata (ex. PIN introdus gresit), ATM-ul va
afisa un mesaj cu problema aparuta, si il va intreba pe client daca doreste sa efectueze o
alta tranzactie.

Bancomatul va elibera o chitanta la solicitarea clientului, pentru fiecare tranzactie


efectuata cu succes, pe care va afisa : data si ora efectuarii tranzactiei, tipul tranzactiei, o
balanta a contului.
A. Modelarea Use Case
• Determină cum se pot obţine anumite rezultate folosind produsul ce trebuie creat,
fără a interesa ordinea.
• Prezintă informaţiile sub forma diagramelor Use Case şi a scenariilor asociate.
Diagrama Use Case descrie ce face un program sau subprogram dar nu precizează nimic
despre cum este realizată o funcţionalitate.

Relatii intre USE CASE-uri:

1. Intre actorul client si Use Case-urile SelecteazaLimba, IntroduceCard,


IntroducePin, si SelecteazaTranzactie exista o relatie de asociere, pentru a putea
exprima interactiunea (comunicarea) dintre client si operatiunile pe care acesta
trebuie sa le efectueze pentru a demara o tranzactie.
2. Intre actorul bancomat si Use Case-urile EliberareCard, AfiseazaMeniu,
VerificaPin, BlocareCard si VerificarePozitieCard exista o relatie de asociere,
pentru a putea exprima interactiunea intre obiectele pe care le uneste
(Bancomatul si functiile acestuia).
3. Intre Use Case-urile VerificaPozitieCard si IntroduceCard exista o relatie de tip
include, pentru a explica dependenta Use Case-ului IntroduceCard de functiile
Use Case-ul VerificaPozitieCard.
4. Intre Use Case-urile IntroducePin si AfiseazaMeniu exista o relatie de tip include,
pentru a explica dependenta Use Case-ului IntroducePin de functiile Use Case-ul
AfiseazaMeniu.
5. Intre Use Case-ul VerificaPin(E) si Use Case-urile PlatesteFurnizor,
AfiseazaOperatiuni, RetrageNumerar, InterogheazaSold(A,B,C,D) exista o relatie
de tip include pentru a explica dependenta dintre A, B, C, D si use case-ul E.
6. Intre Use Case-ul VerificaPin (A) si BlocareCard(B) exista o relatie de tip extend,
prin care use case-ul A controleaza daca B va fi executat sau nu.
7. Intre Use Case-ul AfiseazaInformatiiTranzactii (A) si EfectueazaTranzactii(B)
exista o relatie de tip extend, prin care use case-ul A controleaza daca B va fi
executat sau nu.
8. Intre Use Case-ul AfiseazaInformatiiTranzactii (A) si ElibereazaChitanta(B)
exista o relatie de tip extend, prin care use case-ul A controleaza daca B va fi
executat sau nu.
9. Intre Use Case-ul EfectueazaTranzactii (A) si VerificaPin(B) exista o relatie de
tip extend, prin care use case-ul A controleaza daca B va fi executat sau nu.
10. Intre Use Case-ul AfiseazaMeniu(A) siUse Case-urile InterogheazaSold,
RetrageNumerar, AfiseazaOperatiuni, PlatesteFurnizori (B1,B2,B3,B4) exista o
relatie de tip generalizare, in care case-urile derivate B1, B2, B3, B4 controleaza
ce se executa si ce se modifica din case-ul de baza.

Efectuarea Tranzactiilor:

Use Case-ul EfectueazaTranzactie incepe cu o sesiune de operatiuni, in care


clientul alege din Use Case-ul AfiseazaMeniu ce tip de tranzactie doreste sa
efectueze. El trebuie sa introduca o serie de date, pentru a putea efectua tranzactia.
Actorul Bancomat va trimite catre banca reprezentata de Use Case-ul VerificaPin,
informatiile legate de tranzactia selectata impreuna cu datele clientului (informatiile
din cardul clientului si PIN-ul introdus). Daca banca verifica informatiile( Use Case-
ul VerificaPin) si le confirma ca fiind corecte, atunci se executa Use Case-ul
EfectueazaTranzactie(PlatesteFurnizori, RetrageNumerar, InterogheazaSold) , iar
case-ul ElibereazaChitanta se va efectua si el. In cazul in care case-ul VerificarePin
nu confirma valabilitatea PIN-ului introdus, clientul este rugat sa reintroduca PIN-ul,
iar noile informatii impreuna cu tranzactia selectata sunt trimise spre verificare.
Cardul poate fi retras prin activarea case-ului BlocareCard, daca PIN-ul a fost
introdus gresit de 3 ori la rand.
B. Diagrama de clasa:
Diagrama de clase este folosită pentru a modela structura (viziunea statică asupra)
unui sistem. O astfel de diagramă conţine clase / interfeţe, obiecte şi relaţii care se
stabilesc între acestea.

Clasa ATM:

 Caracteristici:
- atribute: ID-ul, Adresa, Banca;
- metode: elibereaza chitanta, elibereaza bani;
 Atm-ul poate elibera bani si chitanta, daca a fost solicitata.

Clasa Tranzactie:

 Caracteristici:
- atribute: cont, pin;
- metode: tranzactie, retragere numerar, plata catre furnizori,
ultimele 10 tranzactii, interogare sold.
 Responsabilitati:
- Permite clientului sa-si aleaga tranzactia dorita;
- Efectueaza retragerea de numerar solicitata;
- Efectueaza platile catre furnizori;
- Memoreaza ultimele 10 operatiuni efectuate de client;
- Permite interogarea soldului.

Clasa Client:

 Caracteristici:
- atribute: cont, data_expirarii, nume, prenume, pin, suma;
- metode: client, getDate, get Prenume, getCont, getSuma,
getPin;

 Responsabilitati:
- Preia informatiile legate de contul clientului;
- Retine suma solicitata de client.

Clasa Meniu:

 Caracteristici:
- atribute: idLimba;
- metode: meniu, listeaza optiuni, getOptiuni;
 Responsabilitati:
- Afiseaza Meniul;
- Afiseaza lista cu otiunile posibile;
- Permite selectarea unei optiuni.

Clasa Verifica:

 Caracteristici:
- atribute: cont, pin;
- metode: verificare Pin, Verificare Card, verificare Suma.
 Responsabilitati:
- Verifica daca PIN-ul introdus este cel corect;
- Verifica daca suma de bani din cont.

Clasa Limba:

 Caracteristici:
- atribute: idLimba;
- metode: limba, get id limba.
 Responsabilitati:
- Permite selectarea limbii in care se va dori dialogarea cu ATM-
ul;
- Retine optiunea selectata.
C. Diagrama de stare
Diagrama de stare este folosită pentru a modela comportamentul unui singur
obiect. Diagrama de stări specifică o secvenţă de stări prin care trece un obiect de-a
lungul vieţii sale ca răspuns la evenimente împreună cu răspunsul la aceste evenimente.
D. Diagrama de activitati:
Diagramea de activitati scoate în evidenţă controlul execuţiei de la o activitate la
alta.
E. Diagrama de secventa:
Diagrama de secvenţă pune accentul pe aspectul temporal (ordonarea în timp a
mesajelor).

Mesajele trimise de la un obiect la altul sunt de tip sincron deoarece controlul


executiei revine la obiectul – “expeditor” dupa ce obiectul – “destinatar” isi va
termina executia.
F. Diagrama de colaborare:
Diagrama de colaborare este o diagramă de interacţiuni care pune
accentul pe organizarea structurală a obiectelor care participă la interacţiune.

S-ar putea să vă placă și