Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

  • Upload
    rdondon

  • View
    235

  • Download
    0

Embed Size (px)

Citation preview

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    1/63

    UNIVERSITATEA DIN CRAIOVA

    FACULTATEA DE TIINE EXACTE

    SPECIALIZAREA INFORMATIC

    LUCRARE DE LICEN

    Coordonator tiinific: Absolvent:

    Lect.univ.dr. Dorel Svulea Vduva Liliana-Georgiana

    -IULIE 2012-

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    2/63

    2 P a g e

    UNIVERSITATEA DIN CRAIOVA

    FACULTATEA DE TIINE EXACTE

    SPECIALIZAREA INFORMATIC

    Proiectarea sistemelor informatice utiliznd

    tehnologia orientat pe obiecte

    Coordonator tiinific: Absolvent:

    Lect.univ.dr. Dorel Svulea Vduva Liliana-Georgiana

    -IULIE 2012-

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    3/63

    3 P a g e

    Cuprins

    Introducere .......................................................................................... 5

    Capitolul I. Concepte generale ............................................................. 9

    1.1 Baze de date Notiuni introductive ............................................. 9

    1.1.1 Sisteme de gestiune a bazelor de date .................................. 9

    1.1.2 Limbajul SQL ....................................................................... 10

    1.1.3 Limbajul SQL PLUS .............................................................. 11

    1.1.4 Modelul obiectual-relational .............................................. 12

    1.2 Introducere in .Net Framework .................................................... 17

    1.2.1 Microsoft Intermediate Language(MSIL sau IL) .................. 17

    1.2.2 Common Language Specification(CLS)................................. 18

    1.2.3 Common Type System(CTS) ................................................ 18

    1.2.4 Common Language Runtime(CLR) ....................................... 20

    1.2.5 Trasaturi ale platformei .NET .............................................. 24

    Capitolul II Proiectarea Orientata spre Obiect.....................................26

    1. Introducere si obiective...................................................................261.1Determinarea subsistemelor.....................................................261.2Legatura subsistemelor cu unitati functionale..........................271.3Alegerea si gestiunea depozitelor de date................................281.4 Determinarea arhitecturii sistemului........................................28

    2. Proiectarea Orientata spre obiect.29

    2.1 Obiecte si clase de obiecte..31

    2.2 Mesajul..32

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    4/63

    4 P a g e

    2.3 Mostenirea..32

    2.4 Polimorfismul.33

    2.5 Abstractizarea...33

    2.6 Incapsularea34

    2.7 Reutilizarea....35

    2.8 Persistenta36

    3. Metodologii de realizare a sistemelor informatice cu abordare

    orientata obiect37

    3.1 Object modeling technique.38

    3.2 Object lifecycles..40

    3.3 Object oriented analysis and design.42

    3.4 Objectoriented system development.44

    Capitolul III. Descrierea si folosirea aplicatiei ...................................... 46

    Capitolul IV. Concluzii ......................................................................... 60

    Capitolul V. Referinte .......................................................................... 62

    5.1 Referinte WEB ............................................................................... 62

    5.2 Referinte literare ........................................................................... 62

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    5/63

    5 P a g e

    Introducere

    Intr-o era a informatiei, abilitatea de a reactiona rapid si eficient la diferitele

    necesitati este cel mai important factor in orice domeniu de activitate al societatii. In

    acest caz, volumul si complexitatea informatiilor care se vehiculeaza pot fi

    covarsitoare, iar eficienta folosirii informatiilor depinde in cea mai mare masura de

    capacitatea de organizare a unui volum mare de date intr-un timp cat mai scurt.

    In prezent societatea moderna informatizata (pe plan global) reprezinta deja orealitate comuna, in care se ignora frontierele si se trece peste orice problema de ordin

    spatial sau temporal. Societatea, politica, economia, etc. se bazeaza azi, din ce in ce

    mai mult, pe aceasta infrastructura informatica. De asemenea, guvernele, firmele din

    sectoarul public si privat, organismele financiare nationale si internationale,

    invatamantul, cultura si cercetarea stiintifica, beneficiaza toate de aceste forme

    avansate, implementate si bine structurate de conducere, informare si comunicare.

    Lumea de azi este marcata de o noua dimensiune, trasata in plan global, data

    circulatiei si valorificarii informatiei, indiferent de zona geografica din care aceasta

    provine. Puterea de manipulare in timp rapid si cat mai eficace a informatiei a devenit

    azi unul din criteriile de evaluare a gradului de dezvoltare a unei societati.

    O baza de date este un instrument pentru colectarea si organizarea

    informatiilor[14]. Bazele de date pot stoca informatii despre persoane, produse,

    comenzi sau orice altceva.

    Multe baze de date incep sub forma de liste intr-un editor de text sau intr-o

    foaie de calcul. Pe masura ce lista creste, incep sa apara redundante si inconsistente in

    datele prezente. Datele devin greu de inteles in forma de lista, iar posibilitatile de a

    cauta si a extrage subseturi de date pentru revizuire sunt limitate. Odata ce incep sa

    apara aceste probleme, este o idee buna sa se transfere datele intr-o baza de date

    creata de un sistem de gestionare al bazelor de date (DBMS), cum ar fi Oracle9i[14].

    O baza de date computerizata este un container de obiecte. O baza de date

    poate contine mai mult de un tabel. De exemplu, un sistem de gestionare a angajatilor

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    6/63

    6 P a g e

    unei institutii care utilizeaza trei tabele nu reprezinta trei baze de date, ci o baza de

    date care contine trei tabele.

    O baza de date proiectata corespunzator furnizeaza acces la informatii precise,

    actualizate. Deoarece o proiectare corecta este esentiala pentru atingerea scopurilor

    utilizarii unei baze de date, investitia in timpul necesar invatarii principiilor unei bune

    proiectari este esentiala.

    Anumite principii ghideaza procesul de proiectare al unei baze de date. Primul

    principiu este acela ca informatiile dublura (numite si date redundante) au o influenta

    negativa, deoarece consuma spatiu si sporesc probabilitatea producerii de erori si

    inconsistente. Al doilea principiu il reprezinta importanta corectitudinii si caracterului

    complet al informatiilor. Daca baza de date contine informatii incorecte, orice

    rapoarte care extrag informatii din baza de date vor contine, de asemenea, informatii

    incorecte. Drept urmare, orice decizie luata bazandu-va pe aceste rapoarte va fi gresit

    informata.

    O proiectare buna a unei baze de date este, dupa cum urmeaza, una care:

    Imparte informatiile in tabele pe baza subiectelor, pentru a reducedatele redundante.

    Furnizeaza programului Access informatiile necesare pentru a asociainformatiile din tabele dupa necesitati.

    Asista si asigura acuratetea si integritatea informatiilor. Adapteaza necesitatile de procesare a datelorsi cele de raportare.

    Lucrarea de fata a fost elaborata din nevoia de a facilita fluxul lucrarilor din

    interiorul unor institutii, in speta a celor din categoria muzeelor nationale, si pentru o

    mai buna monitorizare a modului de gestionare a datelor si informatiilor specific

    birotice.

    Stocarea datelor si informatiilor dintr-un sistem informatic este una dintre

    problemele fundamentale ale informaticii, iar in ceea ce priveste stocarea informatiei

    pe termen lung este unul din obiectele de interes ale activitatii de gestiune si

    arhivistica.

    Bazele de date isi propun sa serveasca cat mai rapid aplicatiile care au nevoie

    de acele date. O baza de date isi propune:

    - sa centralizeze toate datele ce sunt necesare unei firme;

    - sa fie capabile sa serveasca cat mai rapid cu informatii toate acele aplicatii.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    7/63

    7 P a g e

    O baza de date este formata din mai multe tabele relationate. Datele dintr-o

    baza de date sunt folosite de diferite aplicatii.

    Aceste aplicatii pot fi:

    - site-uri;

    - soft-uri de contabilitate;

    - etc.

    Pentru a putea tine o evidenta exacta a tuturor lucrarilor din institutie s-a

    implemetat un produs software cu ajutorul caruia sa se poata controla fluxul datelor.

    Acest sistem informatic va cuprinde doua fluxuri de date:

    1. unul care va fi format din categoria documentatelor intrate in institutie;

    2. si celalalt care va cuprinde toate cererile provenite din exterior si cele interne.

    Produsul software este destinat pentru a facilita si inlesni activitatea

    administratorilor unor muzee nationale. De asemenea, pe parcursul derularii

    prezentului proiect se va incerca obtinerea unui produs software care sa corespunda la

    un nivel cat mai inalt nevoilor si cerintelor administratorilor. Se va urmarii realizarea

    unui program birotic ce va oferii o functionalitate sporita.

    Planul de proiect ofera o lista completa a scopurilor si obiectivelor lucrarii

    care pot fi rezumate dupa cum urmeaza:

    sa se identifice principalele sarcini de lucru ale administratorilor acestorinstitutii si sa se implementeze corect in proiectarea produsului software

    sa se obtina o versiune perfect functionala a unui produs software care safaciliteze lucrul cu cele doua fluxuri de documente, specifice acestor

    institutiilor

    produsul software sa ofere garantia unui grad ridicat de confidentialitate adatelor

    Produsul software va fi implementat utilizand doua tehnologii informatice:

    - tehnologia Oracle- platforma .Net Framework

    Operatiile de stocare si manipulare a fluxurilor de date din interiorul

    institutiilor se vor implementa utilizand versiunea 9i a serverului de baze de date

    Oracle. De asemenea, pentru a se obtine o interfata simpla, prietenoasa si usor de

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    8/63

    8 P a g e

    utilizat, view-ul aplicatiei va fi realizat utilizand platforma .Net Framework. Se va

    folosi modul de programare orientat obiect pus la dispozitie de ambele tehnologii.

    Prezenta este structurata dupa cum urmeaza :

    - capitolul de fata cuprinde o expunere succinta a scopurilor si obiectivelorproiectului

    - capitolul I descrie principalele concepte ale celor doua tehnologii utilizate- capitolul II prezinta proiectarea orientata obiect- capitolul III expune functionalitatea de baza a produsului software- capitolul IV prezinta concluziile formulate in urma definitivarii proiectului- ultimul capitol cuprinde lista itemilor bibliografici

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    9/63

    9 P a g e

    Capitolul I. Concepte generale

    1.Baze de dateNotiuni introductiveIn aceasta sectiune se descrie o prezentare generala a conceptelor bazelor de date

    relationale.

    O baza de date este o colectie de informatii interrelationate gestionate ca o singura

    unitate. Aceasta definitie este foarte larga, deoarece exista mari diferente intre

    conceptiile diferitilor producatori care pun la dispozitie sisteme de baze de date. De

    exemplu, Oracle Corporation defineste o baza de date ca fiind o colectie de fisiere

    fizice gestionate de o singura instanta (copie) a produsului software pentru baze de

    date[14],in timp ce Microsoft defineste o baza de date SQL Server ca fiind o colectie

    de date si alte obiecte.

    Un obiect al bazei de date este o structura de date denumita, stocata in baza de

    date, cum ar fi un tabel, o vizualizare sau un index.

    Exista mari diferente intre implementarile furnizorilor de baze de date. In

    majoritatea sistemelor de baze de date, datele sunt stocate in mai multe fisiere fizice,

    dar in Microsoft Access toate obiectele bazei de date, impreuna cu datele care apartin

    unei baze de date sunt stocate intr-un singur fisier fizic.(Un fisier este o colectie de

    inregistrari inrudite stocate ca o singura untiate de sistemul de operare al

    calculatorului.) Totusi, unul dintre principalele avantaje ale bazelor de date relationale

    este faptul ca detaliile de implementare fizica sunt separate de definitiile logice ale

    obiectelor bazei de date, astfel incat majoritatea utilizatorilor bazei de date nu au

    nevoie sa stie unde (si cum) sunt stocate obiectele bazei de date in sistemul de fisiere

    al calculatorului[6].

    1.1Sisteme de gestiune a bazelor de dateAparitia si dezvoltarea calculatoarelor electronice au condus la amplificarea

    activitatilor legate de stocarea, interogarea si administrarea colectiilor de date. Astazi,

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    10/63

    10 P a g e

    cele mai multe dintre activitatile noastre zilnice necesita accesarea si actualizarea

    informatiei dintr-o baza de date: extragerea unei sume de bani din contul bancar,

    rezervarea unei camere de hotel, cumpararea unui bilet de avion, imprumutarea unei

    carti de la biblioteca, platirea facturilor de telefon, curent electric etc. Toate acestea se

    pot face rapid si in siguranta pentru ca datele respective sunt bine organizate intr-o

    baza de date si administrate de un sistem de gestiune a bazelor de date.

    Baza de date (BD) = o colectie de date aflate in relatie unele cu altele si structurata

    astfel incat sa poata servi unui anumit scop = un set de date corelate si organizate in

    scopul prelucrarii lor rapide si concomitente de catre mai multe persoane[9].

    Exemple :

    1) baza de date a unui muzeu, in care sunt inregistrate operele de arta (grupate dupa

    tip, autor, tehnica de lucru) si expozitiile itinerante (descrise prin perioada, itinerariu,

    responsabil, custozi participanti);

    2) baza de date a unui magazin de muzica, in care sunt inregistrate albumele de

    muzica in functie tipul de suport fizic (CD, caseta etc.), stil, autori, solisti, anul

    aparitiei etc.

    Un sistem de gestiune a bazelor de date (SGBD) prin definitie este un ansamblu

    de programe care permit crearea si administrarea unei baze de date. Prin urmare, un

    SGBD (Database Management System) este un pachet software de nivel inalt care

    permite proiectarea, construirea si administrarea bazelor de date dedicate rezolvarii

    problemelor din cele mai variate domenii ale vietii reale.

    1.2Limbajul SQLProcedural Language/Structured Query Language (PL/SQL) este extensia

    procedurala a limbajului SQL.

    PL/SQL este un limbaj de programare sofisticat care asigura accesarea datelor

    unei baze de date relationale orientate obiect si permite gruparea unei multimi de

    comenzi intr-un bloc unic de tratare a datelor[9]. Programul este format din unul sau

    mai multe blocuri care pot contine blocuri incuibarite. PL/SQL include atat

    instructiuni SQL pentru manipularea datelor si pentru gestiunea tranzactiilor, cat si

    instructiuni proprii[5]. Limbajul combina constructiile procedurale ale unui limbaj

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    11/63

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    12/63

    12 P a g e

    limbaje, de exemplu Cobol, C, C++, Java etc. Principalele aspecte prin care SQL

    difera de limbajele de programare traditionale sunt urmatoarele:

    Asigura accesarea automata a datelor;

    Opereaza asupra unor multimi de date, si nu asupra elementelor individuale; Permite programarea la nivel logic, necesitatea de a considera detaliile

    implementarii fiind redusa;

    Oracle SQL include extensii ale limbajului SQL standard ANSI/ISO, iar

    instrumentele si aplicatiile Oracle furnizeaza instructiuni suplimentare.

    Utilitarele SQL*Plus si Oracle Enterprise Manager permit atat executarea

    instructiunilor limbajului SQL standard asupra unei baze de date Oracle, cat si a

    instructiunilor sau functiilor suplimentare disponibile.

    Desi unele utilitare si aplicatii Oracle simplifica sau mascheaza utilizarea SQL,

    toate operatiile asupra bazei de date sunt realizate folosind acest limbaj.

    Caracteristicile limbajului SQL pot fi sintetizate astfel[14]:

    Este abordabil de diferite categorii de utilizatori, inclusiv de aceia care auputina experienta in programare;

    Este un limbaj neprocedural, de comunicare cu server-ul Oracle; Reduce timpul necesar crearii si intretinerii aplicatiilor de baze de date ;

    1.4Modelul obiectual-relationalNecesitatea gestionarii obiectelor complexe (precum texte foarte lungi, grafice,

    harti, imagini, sunete, etc.) a condus la introducerea conceptului de obiect in cadrul

    schemelor relationale. In prezent tehnologia bazelor de date orientate obiect este inca

    la inceput, neexistand un model general de SGBD orientat obiect. S-a impus insa un

    model relational care suporta majoritatea principiilor modelarii orientate pe obiect.

    Incepand cu versiunea Oracle 8 putem vorbi de SGBD-uri relational-obiectuale ce

    faciliteaza integrarea tehnologiei orientate pe obiect in modelul relational[7].

    Un obiect este un model informational al unei entitati reale, care poseda o multime

    de proprietati si care are in acelasi timp un anumit comportament. Avand in vedere

    proprietatile comune si comportamentul similar al entitatilor pe care le modeleaza,

    obiectele pot fi impartite in multimi. Daca in limbajele de programare orientate obiect

    avem notiunea de clasa pentru a desemna o multime de obiecte de acelasi fel, in

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    13/63

    13 P a g e

    sistemul Oracle se poate defini un tip obiect, obiectele individuale similare

    constituind manifestari/realizari/instantieri ale acestuia[8]. Proprietatile obiectelor se

    pot defini cu ajutorul atributelor din definitia tipului obiect, iar comportamentul

    acestora va fi stabilit prin metodele precizate.

    Tipul obiect poate fi folosit in modelul relational pentru a defini tabele obiect sau

    campuri intr-un tabel relational. Oracle permite abordarea tabelelor obiect in doua

    maniere :

    ca si tabele cu o singura coloana, in care fiecare linie este un obiect de tipulobiect ce a stat la baza definirii acestora ;

    ca si tabele cu mai multe coloane, in care acestea corespund atributelor dindefinitia tipului obiect considerat.

    Oracle ofera in prezent suport deplin pentru tehnologia orientata- obiect sub

    forma unui nivel de abstractizare construit deasupra modelului relational. Tipuri

    abstracte noi (numite si tipuri definite de utilizator) pot fi construite fie pornind de la

    tipurile de date scalare standard, fie pe baza unor alte tipuri abstracte, referinte la

    alte obiecte sau tipuri colectii. Metadatele referitoare la tipurile abstracte sunt

    stocate in schema bazei de date fiind astfel disponibile in SQL, PL/SQL , Java, C#

    sau alte limbaje. In spatele acestui model obiectual datele sunt in continuare

    stocate sub forma de tabele si atribute, dar pot fi tratate si ca entitati complexe

    (obiecte) din lu- mea reala. Utilizarea tipurilor abstracte pentru modelarea datelor

    poate oferi urmatoarele avantaje majore:

    Pot fi incapsulate operatii alaturi de date. Daca tabelele pot stoca doar date,

    tipurile abstracte ofera posibilitatea definirii unor functii (denumite metode) ce pot fi

    aplicate asupra datelor obiectelor. De exemplu pentru o factura, privita ca obiect ce

    cuprinde toate datele unui document real, se poate defini o metoda care sa calculeze

    suma totala si TVA- ul pentru produsele componente.

    Obiectele ofera eficienta sporita in dezvoltarea aplicatiilor datorita faptului ca sunt

    stocate in baza de date, includ operatiile ce se pot efectua asupra lor si pot fi

    accesate de orice alt modul-program. Ca urmare, programatorii nu sunt nevoiti sa

    recreeze structuri de mapare a datelor in fiecare aplicatie- client.

    Obiectele ofera o perspectiva de intreg asupra datelor (partile componente), in

    mod similar modului de abordare a lucrurilor din perspectiva umana. Ca urmare sunt

    mai usor de reprezentat si de manipulat.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    14/63

    14 P a g e

    Tipuri abstracte de date. Atribute si metode: in Oracle, pentru a defini un nou tip

    utilizam instructiunea CREATE TYPE astfel[14]:

    CREATE TYPE numeTip AS OBJECT(,, ,

    [ MEMBER FUNCTION Metoda1 [(p1 tip,)] RETURN Tip],

    [MEMBER PROCEDURE Metoda2[(p1 tip, )])

    Pentru definirea tipului fiecarui membru-atribut putem apela fie la tipurile

    predefinite (Number, Varchar2, Integer, etc) fie la alte tipuri abstracte definite

    anterior. Definirea comportamentului obiectelor (operatiile pe care le pot realiza

    acestea asupra datelor proprii) se realizeaza prin implementarea functiilor membru

    specificate la crearea tipului, astfel[14]:

    CREATE TYPE BODY numeTip AS

    MEMBER FUNCTION Metoda1 IS

    BEGIN

    Corpul metodei

    END Metoda1;

    END;

    Un obiect nou de un anumit tip se obtine cu ajutorul constructorului implicit (o

    metoda cu acelasi nume ca si al tipului si parametri pentru toate atributele declarate):

    NEW DenumireTip(val1, val2, .. valn) , unde

    vali (i=1,n) reprezinta o valoare pentru fiecare atribut al tipului.

    Un aspect deosebit de important in ceea ce priveste manipularea obiectelor intr-

    un limbaj de programare se refera la modul de transfer al acestora (intre variabile

    sau intre un modul-program si altul). In acest sens este important de retinut faptul ca

    in Oracle obiectele se transmit in mod implicit prin valoare si nu prin referinta (asa

    cum se intampla de exemplu in C#). Astfel, fiind date doua obiecte, obj1 si obj2,

    adresate prin doua variabile, v1 respectiv v2, in urma atribuirii v1:=v2 nu vom obtine

    doua referinte spre un acelasi obiect (obj2) ci vom dispune de doua variabile ce

    puncteaza spre doua obiecte complet distincte dar cu un continut identic.

    Stocarea si gestionarea obiectelor in baza de date: Oracle furnizeaza doua

    tehnologii de stocare a obiectelor in baza de date:

    tehnologii ce au obiecte linie sunt stocate sub forma de linii ale unei tabeleconstruita pe baza tipului caruia ii apartin respectivele obiecte; atributele

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    15/63

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    16/63

    16 P a g e

    un element nou pentru a evidentia o anumita particularitate a obiectelor (entitatile

    din lumea reala). Elementul de noutate se poate concretiza in:

    atribute si/sau metode noi;

    modificarea comportamentului ( o alta implementare a metodelor mostenite).Ansamblul alcatuit din tipul de baza (cel mai abstract) si toate subtipurile sale

    specializate este numit ierarhie . Specializarea subtipului poate insemna: adaugarea

    unor noi membri (atribute, metode) sau modificarea comportamentului uneia din

    metodele mostenite (proces numit suprascriere). Suprascrierea metodelor face

    posibila manifestarea polimorfismului (doua obiecte de acelasi supertip, dar de

    subtipuri diferite se comporta diferit la executia metodei suprascrise).

    Incepand cu versiunea 9i, Oracle ofera suport deplin pentru toate conceptele

    descrise anterior. Astfel, definirea unui subtip derivat dintr -un supertip poate fi

    realizata numai daca acesta din urma a fost declarat NOT FINAL. De cele mai multe

    ori o aplicatie nu lucreaza cu obiecte instantiate din supertip ci cu obiecte

    specializate. Supertipurile se utilizeaza pentru a trata la un moment dat toate obiectele

    din tipurile derivate in mod unitar.

    Avand in vedere aspectele discutate anterior, paradigma orientata - obiect ofera

    posibilitatea crearii unor tipuri ce nu pot fi instantiate (nu putem obtine obiecte de

    tipul respectiv) si a unor metode fara implementare ce vor trebui obligatoriu

    suprascrise de tipurile derivate.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    17/63

    17 P a g e

    2. Introducere in .Net FrameworkPlatforma .NET este un cadru (framework) de dezvoltare software cu ajutorul

    caruia se pot realiza, distribui si rula aplicatii desktop Windows si aplicatii WEB.

    .NET este o tehnologie care inglobeaza laolalta mai multe tehnologii (ASP,

    XML, OOP, SOAP, etc) si limbaje de programare (VB, C++, C#, J#) asigurand atat

    portabilitatea codului compilat intre diferite calculatoare cu un sistem de operare

    Windows, cat si reutilizarea codului in programe, indiferent de limbajul de

    programare utilizat[11].

    In general, .NET Framework este o componenta livrata impreuna cu sistemul

    de operare Windows. Pentru a dezvolta aplicatii pe platforma .NET este bine sa avem3 componente esentiale:

    - un set de limbaje (C#, Visual Basic .NET, J#, Managed C++, Smalltalk,Perl, Fortran, Cobol, Lisp, Pascal, etc)

    - un set de medii de dezvoltare (Visual Studio .NET, Visio)- o biblioteca de clase pentru crearea serviciilor Web, aplicatiilor Web si

    aplicatiilor desktop Windows

    Ca un element de portabilitate, trebuie spus ca .NET Framework este

    implementarea unui

    standard numit Common Language Infrastructure[10] ceea ce permite rularea

    aplicatiilor .NET nu numai pe sistemul de operare Windows, ci si pe unele tipuri de

    Unix, Linux, Solaris, Mac OS X si alte sisteme de operare.

    2.1 Microsoft Intermediate Language(MSIL sau IL)

    In cazul limbajelor de programare, s-a ajuns treptat la crearea unor nivele de

    abstractizare a codului rezultat la compilare, precum p-code (cel produs de

    compilatorul Pascal-P) si bytecode (binecunoscut din limbajul Java). Bytecode-ul

    Java, generat prin compilarea unui fisier sursa, este cod scris intr-un limbaj

    intermediar care suporta tipul de programare orientata obiect. Bytecod-ul este in

    acelasi timp o abstractizare care permite executarea codului Java, indiferent de

    platforma tinta, atata timp cat aceasta platforma are implementata o masina virtuala

    Java, capabila sa transforme mai departe fisierul .class in cod nativ.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    18/63

    18 P a g e

    Microsoft a realizat si el propria sa abstractizare de limbaj, aceasta numindu-se

    Microsoft Intermediate Language. Desi exista mai multe limbaje de programare de

    nivel inalt (C#, Managed C++, Visual Basic .NET, etc), la compilare toate vor

    produce cod in acelasi limbaj intermediar: Microsoft Intermediate Language (MSIL,

    sau IL pe scurt). Asemanator cu bytecod-ul, IL[10] are trasaturi ale programarii

    orientate obiect, precum abstractizarea datelor, mostenirea, polimorfismul,

    incapsularea sau concepte care s-au dovedit a fi extrem de necesare, precum exceptiile

    sau evenimentele. De remarcat ca aceasta abstractizare de limbaj permite rularea

    aplicatiilor independent de platforma (cu aceeasi conditie ca si in cazul limbajului

    Java: sa existe o masina virtuala pentru acea platforma).

    2.2 Common Language Specification(CLS)

    Unul din scopurile tehnologiei .NET este de a sprijini integrarea limbajelor de

    programare astfel incat programele, desi scrise in diferite limbaje, pot interopera,

    folosind concepte ale programarii orientate obiect precum mostenirea, polimorfismul,

    incapsularea, etc. Dar limbajele nu sunt identice: unele suporta supraincarcarea

    operatorilor (Managed C++, C#), altele nu (Visual Basic .NET); unele sunt case

    sensitive, altele nu. Pentru a se asigua totusi interoperabilitatea codului scris in diferite

    limbaje, Microsoft a publicat Common Language Specification (CLS)[10], un subset

    al lui CTS (Common Type System, vezi 1.3), continand specificatii de reguli necesare

    pentru integrarea limbajelor. CLS defineste un set de reguli pentru compilatoarele

    .NET, asigurand faptul ca fiecare compilator va genera cod MSIL. Obiectele si

    tipurile create in diferite limbaje pot interactiona fara probleme suplimentare.

    Combinatia CTS/CLS realizeaza de fapt interoperarea limbajelor. Concret, se poate ca

    o clasa scrisa in C# sa fie mostenita de o clasa scrisa in Visual Basic care arunca

    exceptii ce sunt prinse de cod scris in C++ sau J#.

    2.3 Common Type System(CTS)

    Pentru a asigura interoperabilitatea limbajelor din .NET Framework, o clasa

    scrisa in C# trebuie sa fie echivalenta cu una scrisa in VB.NET, o interfata scrisa in

    Managed C++ trebuie sa fie perfect utilizabila in Managed Cobol. Toate limbajele

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    19/63

    19 P a g e

    platformei .NET trebuie sa aibe un set comun de concepte pentru a putea fi integrate.

    Modul in care acest deziderat s-a transformat in realitate se numeste Common Type

    System (CTS)[11]; orice limbaj trebuie sa recunoasca si sa poata manipula niste tipuri

    comune. Iata o scurta descriere a unor facilitati comune :

    Tipuri valoare - in general, CLR-ul (care se ocupa de managementul si

    executia codului IL, vezi mai jos) suporta doua tipuri diferite: tipuri valoare si tipuri

    referinta. Tipurile valoare reprezinta tipuri alocate pe stiva si nu pot avea valoare de

    null. Tipurile valoare includ tipurile primitive, structuri si enumerari. Datorita faptului

    ca de regula au dimensiuni mici si sunt alocate pe stiva, se manipuleaza eficient,

    reducand overhead-ul cerut de mecanismul de garbage collection.

    Tipuri referinta - se folosesc daca variabilele de un anumit tip cer resurse de

    memorie semnificative. Variabilele de tip referinta contin adrese de memorie heap si

    pot avea valoarea de null. Transferul parametrilor se face rapid, dar referintele induc

    un cost suplimentar datorita mecanismului de garbage collection .

    Boxing si unboxing - motivul pentru care exista tipuri primitive este acelasi

    ca si in Java: performanta. Insa orice variabila in .NET este compatibila cu clasa

    Object, radacina ierarhiei existente in .NET. De exemplu, int este un alias pentru

    System.Int32, care se deriveaza din System.ValueType. Tipurile valoare se stocheaza

    pe stiva, dar pot fi oricand convertite intr-un tip referinta memorat in heap; acest

    mecanism se numeste boxing. De exemplu:

    int i = 1; //i - un tip valoare

    object box = i; //box - un obiect referinta

    Cand se face boxing, se obtine un obiect care poate fi gestionat la fel ca oricare altul,

    facanduse abstractie de originea lui. Inversa boxing-ului este unboxing-ul, prin care

    se poate converti un obiect in tipul valoare echivalent, ca mai jos:

    int j = (int)box;

    unde operatorul de conversie este suficient pentru a converti de la un obiect la o

    variabila de tip valoare.

    Clase, proprietati, indexatori - platforma .NET suporta pe deplin

    programarea orientata pe obiecte, concepte legate de obiecte (incapsularea,

    mostenirea, polimorfismul) sau trasaturi legate de clase (metode, campuri, membri

    statici, vizibilitate, accesibilitate, tipuri interioare, etc). De asemenea se includ

    trasaturi precum proprietati, indexatori, evenimente.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    20/63

    20 P a g e

    Interfetein C# reprezinta acelasi concept precum clasele abstracte din C++

    (dar continand doar functii virtuale pure), sau interfetele Java. O clasa care se

    deriveaza dintr-o interfata trebuie sa implementeze toate metodele acelei interfete. Se

    permite implementarea simultana a mai multor interfete (in rest mostenirea claselor

    este simpla).

    Delegati - inspirati de pointerii la functii din C, ce permit programarea

    generica. In C# reprezinta versiunea sigura a pointerilor catre functii din C/C++ si

    sunt mecanismul prin care se trateaza evenimentele.

    2.4 Common Language Runtime(CLR)

    CLR[10] este de departe cea mai importanta parte componenta a lui .NET

    Framework. Este responsabil cu managementul si executia codului scris in limbaje

    .NET, aflat in format IL; este foarte similar cu Java Virtual Machine. CLR instantiaza

    obiectele, face verificari de securitate, depune obiectele in memorie, disponibilizeaza

    memoria prin garbage collection. In urma compilarii unei aplicatii rezulta un fisier cu

    extensia exe, dar care nu este un executabil portabil Windows, ci un executabil

    portabil .NET (.NET PE). Acest cod nu este deci un executabil nativ, ci se va rula de

    catre CLR, intocmai cum un fisier class este rulat in cadrul JVM. CLR foloseste

    tehnologia compilarii JIT(just-in-time) - o implementare de masina virtuala, in care o

    metoda sau o functie, in momentul in care este apelata pentru prima oara, este tradusa

    in cod masina. Codul translatat este depus intr-un cache(zona de memorie rapida, in

    mod normal de dimensiune mai mica de 1 MB, situata pe sau in apropierea

    procesorului), evitand-se astfel recompilarea ulterioara. Exista 3 tipuri de

    compilatoare JIT:

    1. Normal JIT - a se vedea descrierea de mai sus.

    2. Pre-JIT - compileaza intregul cod in cod nativ o singura data. In mod

    normal este folosit la instalari.

    3. Econo-JIT - se foloseste pe dispozitive cu resurse limitate. Compileaza

    codul IL bit cu bit, eliberand resursele folosite de codul nativ ce este stocat in cache.

    In esenta, activitatea unui compilator JIT este destinata a imbunatati

    performanta executiei, ca alternativa la compilarea repetata a aceleiasi bucati de cod

    in cazul unor apelari multiple. Unul din avantajele mecanismului JIT apare in clipa in

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    21/63

    21 P a g e

    care codul, o data ce a fost compilat, se executa pe diverse procesoare; daca masina

    virtuala este bine adaptata la noua platforma, atunci acest cod va beneficia de toate

    optimizarile posibile, fara a mai fi nevoie recompilarea lui (precum in C++, de

    exemplu).

    CLR-ul este capabil sa inteleaga codul in format IL si sa-l compileze in cod masina.

    In general, exista o componenta a CLR-ului care este raspunzatoare pentru compilarea

    codului din format IL in cod masina. Aceasta componenta este compilatorul just-in-

    time(JIT), care actioneaza atunci cand un program este instalat sau executat. Figura

    urmatoare schematizeaza fazele compilarii unui cod C# in cod masina[10]:

    Figura 1 : Compilare cod C# in cod masina

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    22/63

    22 P a g e

    Exista numeroase componente ale lui CLR care il fac cea mai importanta parte a lui

    .NET Framework: metadata, assemblies, assembly cache, reflection, garbage

    collection.

    Metadata: Metadata inseamna in general date despre date. In cazul .NET,

    ea reprezinta informatii destinate a fi citite de catre masina, nu de utilizatorul uman.

    Este stocata impreuna cu codul pe care il descrie. Pe baza metadatei, CLR stie cum sa

    instantieze obiectele, cum sa le apeleze metodele, cum sa acceseze proprietatile.

    Printr-un mecanism numit reflection, o aplicatie (nu neaparat CLR) poate sa

    interogheze aceasta metadata si sa afle ce expune un obiect. Mai pe larg, metadata

    contine o declaratie a fiecarui tip si cate o declaratie pentru fiecare metoda, camp,

    proprietate, eveniment al tipului respectiv. Pentru fiecare metoda implementata,

    metadata contine informatie care permite incarcatorului clasei respective sa localizeze

    corpul metodei. De asemena mai poate contine declaratii despre cultura aplicatiei

    respective, adica despre localizarea ei (limba folosita in partea de interfata utilizator).

    Mecanismul prin care aceste informatii se folosesc pe parcursul rularii de catre

    aplicatii se numeste reflection.

    Assemblies : Un assembly reprezinta un bloc functional al unei aplicatii

    .NET. El formeaza unitatea fundamentala de distribuire, versionare, reutilizare si

    permisiuni de securitate. La runtime, un tip de date exista in interiorul unui assembly

    (si nu poate exista in exteriorul acestuia). Un assembly contine metadate care sunt

    folosite de catre CLR. Scopul acestor assemblies-uri este sa se asigure dezvoltarea

    softului in mod plug-and-play. Dar metadatele nu sunt suficiente pentru acest lucru;

    mai sunt necesare si manifestele. Un manifest reprezinta metadate despre assembly-

    ul care gazduieste tipurile de date. Contine numele assembly-ului, informatia despre

    versiune, referiri la alte assemblies-uri, o lista a tipurilor in assembly, permisiuni de

    securitate si altele.

    Un assembly care este impartit intre mai multe aplicatii are de asemenea un

    shared name. Aceasta informatie care este unica este optionala, neaparand in

    manifestul unui assembly daca acesta nu a fost gandit ca o aplicatie partajata.

    Deoarece un assembly contine date care il descriu, instalarea lui poate fi facuta

    copiind assembly-ul in directorul destinatie dorit. Cand se doreste rularea unei

    aplicatii continute in assembly, manifestul va instrui mediul .NET despre modulele

    care sunt continute in assembly. Sunt folosite de asemenea si referintele catre orice

    assembly extern de care are nevoie aplicatia.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    23/63

    23 P a g e

    Versionarea este un aspect deosebit de important pentru a se evita asa numitul

    DLL Hell. Scenariile precedente erau de tipul: se instaleaza o aplicatie care aduce

    niste fisiere .dll necesare pentru functionare. Ulterior, o alta aplicatie care se

    instaleaza suprascrie aceste fisiere (sau macar unul din ele) cu o versiune mai noua,

    dar cu care vechea aplicatie nu mai functioneaza corespunzator. Reinstalarea vechii

    aplicatii nu rezolva problema, deoarece a doua aplicatie nu va mai functiona in acest

    caz. Desi fisierele dll contin informatie relativ la versiune in interiorul lor, ea nu este

    folosita de catre sistemul de operare, ceea ce duce la probleme. O solutie la aceasta

    dilema ar fi instalarea fisierelor dll in directorul aplicatiei, dar in acest mod ar disparea

    reutilizarea acestor biblioteci.

    Assembly cache: Assembly cache este un director aflat in mod normal in

    directorul \Winnt \Assemblies. Atunci cand un assembly este instalat pe o masina, el

    va fi adaugat in assembly cache. Daca un assembly este descarcat de pe Internet, el va

    fi stocat in acest assembly cache, intr-o zona tranzienta. Aplicatiile instalate vor avea

    assemblies-urile intr-un assembly cache global. In acest assembly cache vor exista

    versiuni multiple ale aceluiasi assembly. Daca programul de instalare este scris corect,

    va evita suprascrierea assembly-urilor deja existente (si care functioneaza perfect cu

    acplicatiile instalate), adaugand doar noul assembly. Este un mod de rezolvare a

    problemei DLL Hell, unde suprascrierea unei biblioteci dinamice cu o varianta mai

    noua putea duce la nefunctionarea corespunzatoare a aplicatiilor anterior instalate.

    CLR este cel care decide, pe baza informatiilor din manifest, care este versiunea

    corecta de assembly de care o aplicatie are nevoie. Acest mecanism a pus capat unei

    epoci de trista amintire pentru programatori si utilizatori.

    Garbage collection: Managementul memoriei este una din sarcinile cele mai

    consumatoare de resurse umane. Garbage collection este mecanismul care se

    declanseaza atunci cand alocatorul de memorie raspunde negativ la o cerere de

    alocare de memorie. Implementarea este de tip mark and sweep: se presupune

    initial ca toata memoria alocata se poate disponibiliza, dupa care se determina care din

    obiecte sunt referite de variabilele aplicatiei; cele care nu mai sunt referite sunt

    dealocate, iar celelalte zone de memorie sunt compactate. Obiectele a caror

    dimensiune de memorie este mai mare decat un anumit prag nu mai sunt mutate,

    pentru a nu creste semnificativ penalizarea de performanta. In general, CLR-ul este

    cel care se ocupa de apelarea mecanismului de garbage collection. Totusi, la dorinta,

    programatorul poate cere rularea lui.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    24/63

    24 P a g e

    2.5 Trasaturi ale platformei .NET

    Prin prisma celor prezentate mai sus putem rezuma urmatoarele trasaturi:

    Dezvoltarea multilimbaj: Deoarece exista mai multe limbaje pentru aceastaplatforma, este mai usor de implementat parti specifice in limbajele cele mai adecvate.

    Numarul limbajelor curent implementate este mai mare decat 10. Aceasta dezvoltare

    are in vedere si debugging-ul aplicatiilor dezvoltate in mai multe limbaje.

    Independenta de procesor si de platforma: IL este independent de

    procesor. O data scrisa si compilata, orice aplicatie .NET (al carei management este

    facut de catre CLR) poate fi rulata pe orice platforma. Datorita CLR-ului, aplicatia

    este izolata de particularitatile hardware sau ale sistemului de operare.

    Managementul automat al memoriei: Problemele de tipul memory

    leakage(fenomen ce apare in programare atunci cand un program consuma memorie

    pe care apoi este incapabil sa o elibereze)nu mai trebuie sa preocupe programatorii;

    overhead-ul indus de catre mecanismul de garbage collection este suportabil, fiind

    implementat in sisteme mult mai timpurii.

    Suportul pentru versionare: Ca o lectie invatata din perioada de DLL

    Hell, versionarea este acum un aspect de care se tine cont. Daca o aplicatie a fost

    dezvoltata si testata folosind anumite componente, instalarea unei componente de

    versiune mai noua nu va atenta la buna functionare a aplicatiei in discutie: cele doua

    versiuni vor coexista pasnic, alegerea lorfiind facuta pe baza manifestelor.

    Sprijinirea standardelor deschise: Nu toate dispozitivele ruleaza sisteme

    de operare Microsoft sau folosesc procesoare Intel. Din aceasta cauza orice este strans

    legat de acestea este evitat. Se foloseste XML si cel mai vizibil descendent al acestuia,

    SOAP. Deoarece SOAP este un protocol simplu, bazat pe text, foarte asemanator cu

    HTTP5 , el poate trece usor de firewall-uri, spre deosebire de DCOM sau CORBA.

    Distribuirea usoara: Actualmente instalarea unei aplicatii sub Windows

    inseamna copierea unor fisiere in niste directoare anume, modificarea unor valori in

    registri, instalare de componente COM, etc. Dezinstalarea completa a unei aplicatii

    este in majoritatea cazurilor o utopie. Aplicatiile .NET, datorita metadatelor si

    reflectarii trec de aceste probleme. Se doreste ca instalarea unei aplicatii sa nu

    insemne mai mult decat copierea fisierelor necesare intr-un director, iar dezinstalarea

    aplicatiei sa se faca prin stergerea acelui director.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    25/63

    25 P a g e

    Arhitectura distribuita: Noua filosofie este de a asigura accesul la servicii

    Web distribuite; acestea conlucreaza la obtinerea informatiei dorite. Platforma .NET

    asigura suport si unelte pentru realizarea acestui tip de aplicatii.

    Interoperabilitate cu codul unmanaged: Codul unmanaged se refera

    la cod care nu se afla in totalitate sub controlul CLR. El este rulat de CLR, dar nu

    beneficiaza de CTS sau garbage collection. Este vorba de apelurile functiilor din

    DLL-uri, folosirea componentelor COM, sau folosirea de catre o componenta

    COM(Component Object Model) a unei componente .NET. Codul existent se poate

    folosi in continuare.

    Securitate: Aplicatiile bazate pe componente distribuite cer automat

    securitate. Modalitatea actuala de securizare, bazata pe drepturile contului

    utilizatorului, sau cea din Java, in care codul suspectat este rulat intr-un sandbox(

    un mecanism de securitate folosit pentru a rula cod netestat sau programme nedorite),

    fara acces la resursele critice este inlocuit in .NET de un control mai fin, pe baza

    metadatelor din assembly (zona din care provine - ex. Internet, intranet, masina locala,

    etc) precum si a politicilor de securitate ce se pot seta.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    26/63

    26 P a g e

    Capitolul II. Proiectarea orientata

    obiect

    1. Introducere si obiective

    Odata ce o problema a fost analizata, este necesar sa decidem cum ar trebui ea

    proiectata. Etapa proiectarii sistemului descrie o strategie de nivel inalt, necasara

    pentru rezolvarea problemei. In aceasta faza, se stabilesc bazele arhitecturale ale

    sistemului atat din punct de vedere hardware, cat si software. Proiectarea obiectelor

    este a doua etapa a fazei de proiectare si se ocupa cu determinarea tuturor definitiilor,claselor si asocierilor pe care le folosim in implementare. In plus, trebuie proiectati si

    algoritmii care implementeaza operatia.

    Acest capitol descrie pasii care trebuie urmati de-a lungul proiectarii

    sistemului.

    1.2 Determinarea subsistemelor

    O entitate poate fi orice tip de informatie, de exemplu caracteristica obiectului,

    numele clasei, fluxul datelor si decursul evenimentelor. Miller[MG] a introdus

    notiunea de fragment. Un fragment contine o cantitate de informative de nivel inalt

    sau scazut. Subsistemele, in dezvoltarea orientate spre obiect, sunt grupuri de clase

    inrudite, fiecare constituind o entitate avand atat proprietati (atribute), cat si

    comportament (operatii)[15].

    O proiectare buna a sistemelor va produce subsisteme care au o puternica

    cuplare interna si o slaba cuplare externa, cu alte subsisteme.

    Tehnica de aplicare a conceptelor permite proiectantului sa le determine intr-o

    etapa recipient. Conceptul cheie va corespunde sistemului principal, in timp ce

    conceptele mai putin generale vor corespunde subsistemelor. Fiecare concept, mai

    putin general, poate fi la randul lui analizat ca un concept cheie.

    Exista un numar de piedici care apar la extinderea sistemelor software, si

    anume:

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    27/63

    27 P a g e

    Distributia excesiva a informatiilor: Sistemul postal este un bun exempludespre modul in care deciziile de implementare luate sunt raspandite si

    propagate in intregul sistem. Proiectantul software ar trebui sa ia in

    considerare sursele de incertitudine in timpul fazei de proiectare al sistemului.

    Scopul ar trebui sa fie proiectarea de software, care este extensibil, fara

    schimbari majore in arhitectura sa de baza.

    Inlantuirea transformarilor de date: O problema majora in proiectarea desoftware implica sisteme care produc iesiri dupa un format predefinit. O iesire

    dintr-un sistem poate fi folosita ca intrare de un altul.

    Componente care indeplinesc mai mult de o functie: De exemplu, o gresealafrecventa in C++ este implementarea de clase care indeplinesc activitati

    specific domeniului si care, in acelasi timp, se pot scrie pe discheta. Daca

    dorim sa extindem clasa in asa fel incat sa lucreze cu un sistem de baze de date

    orientate spre obiect, probabil va trebui sa schimbam codul sursa si sa testam

    din nou functionalitatea de baza a clasei.

    Cicluri in ierarhia utilizarilor: Un subsistem dat poate folosi serviciile altuisubsistem. Cu toate acestea, pot exista cicluri in aceste utilizari, relatiile

    rezultand dintr-un sistem care este viabil doar daca toate elementele

    functioneaza.

    1.3. Legatura subsistemelor cu unitatile functionale

    Odata ce subsistemele au fost fondate, urmatorul pas este sa alocam fiecarui

    subsistem o unitate functionala. Aceasta poate fi un proces hardware, software sau

    unul de uz general. Aplicatiile in care informatia este distribuita printre diferite locatii

    va fi implementata de cateva unitati functionale. De exemplu, aplicatia client/server

    foloseste un singur dispozitiv de stocat informatii (serverul), in timp ce alte

    dispozitive contin subsisteme care acceseaza aceste informatii (clientii).

    Reprezentarea unitatilor functionale:

    Pasii care trebuie urmati in acest studiu al proiectarii sunt:

    Estimarea nevoilor de performanta; Determinarea unitatilor functionale care implementeaza fiecare sistem; Determinarea conexiunii fizice, a unitatilor functionale rezultate;

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    28/63

    28 P a g e

    Alegerea unei unitati functionale depinde de aplicatie. Unele programe grafice

    implementeaza algoritmi tridimensionali de transformare geometrica in

    dispozitive hardware, pentru a imbunatati executia. Alte aplicatii produc o rezerva

    de date intr-o statie de lucru locala, in acest fel prevenindu-se nevoia de a accesa

    datele intr-un deposit permanent, mai lent.

    Unele unitati functionale produc date care sunt necesare altor unitati. Daca

    ambele unitati sunt localizate pe acelasi procesor sau daca ambele pot accesa

    datele, atunci nu este nevoie de transfer de date. In medii de retea, este de

    asemenea posibil sa se configureze statiile de lucru in asa fel incat aplicatiile care

    lucreaza pe diferite gazed sa poata accesa un disc dat. Acest lucru este atins de

    Sun Microsystems Network File System (NFS), care suporta accesul fisierelor

    printr-o retea si nu numai.

    1.4. Alegerea si gestiunea depozitelor de date

    Un depozit de date este o entitate pasiva care stocheaza date. Comunicarea

    subsistemeleor prin referinta se pot efectua prin fisiere, sisteme de baze de date

    relationale (RDBMS) sau sisteme de baze de date orientate spre obiect (ODBMS).

    Bazele de date orientate spre obiect au avantajul ca suporta cele mai importante

    trasaturi mostenite din paradgima orientarii spre obiect, cum ar fi agregarea,

    mostenirea si incapsularea. Sistemele ODBMS modeleaza obiectele intr-un mod

    natural si folosirea lor este recomandata. Totusi, anumite subsisteme trebuie sa

    realizeze interfata cu alte sisteme care au fost scrise folosind limbaje neorientate

    spre obiect si sisteme de baze de date. Aceste subsisteme nu inteleg obiectele,

    astfel ca interfetele lor sunt implementate de obicei, ca fisiere ASCII sau tabele

    RDBMS[15].

    1.5. Determinarea arhiteturii sistemului

    Exista un numar de prototipuri de structuri arhitecturale in care se incadreaza

    majoritatea problemelor din viata reala.

    Iata cateva tipuri de sisteme:

    Manager de tranzactieeste un sistem de baze de date a carui functieprincipal este sa stocheze si sa acceseze informatii.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    29/63

    29 P a g e

    Transformarile de seriese diferentiaza prin faptul ca nu interactioneaza culumea exterioara. Ele sunt o aparitie comuna in constructia compilatoarelor in

    programele statului de plata si in implementari ale metodei elementului finit.

    Un program de elemente finite citeste fisierul continand specificatiile

    geometrice ale obiectelor bidimensionale si tridimensionale si calculeaza

    proprietatile asociate cu aceste obiecte.

    Interfata interactivaeste un sistem in care interactiunile dintre sistem siagentii externi joaca un rol important. O astel de interfata poate fi o parte a

    unei aplicatii. De exemplu, PIR are nevoie de o interfata, astfel incat cititorii

    sa introduca date si cereri. Aceasta interfata ar putea fi un sistem alfanumeric

    sau un sistem Windows cu intrari de la tastatura si mouse.

    Un sistem in timp realeste acel sitem dominat de constrangerile timpului inactiunile sale. Modelul dinamic este de o importanta absoluta, in timp ce

    modelele functionale si ale obiectelor pot fi impotante sau nu.

    Un sistem de simulare dinamicamodeleaza obiectele din lumea reala.Modelul obiectelor este deseori complex, acesta fiind reprezentat prin clase

    pentru ansamblul pompei, rezervorului si liniei de debitare. Modelul dinamic

    descrie interactiunile clientului cu sistemul, in timp ce modelul functional

    descrie procesele care au loc odata ce un client a completat tranzactia de

    livrare si trebuie facuta o adeverinta de plata.

    O transformare continuaeste un sistem in care iesirile active depind deschimbarea intrarilor si care trebuie periodic reactulizat. Aceasta opereaza

    asupra unor fluxuri active, in care intrarea, cat si iesirea, sunt reactualizate

    continuu. Modelele obiectelor si cel functional sunt importante in

    transformarile continue, in vreme ce modelele dinamice sunt mai putin

    importante din moment ce majoritatea interactiunilor din sistem sunt datorate

    fluxului de date constant dintre diferite procese si nu interactiunilor cu agenti

    externi.

    2. Programarea orientate spre obiectDezvoltarea de sisteme orientate obiect pare a fi, la prima vedere, mai

    complicata si de durata mai mare decat dezvoltarea aplicatiilor traditionale. In

    realitate, durata si costurile dezvoltarii de aplicatii orientate obiect sunt mult mai mici.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    30/63

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    31/63

    31 P a g e

    obiecte, analiza si proiectare orientata pe obiecte, metode de reprezentare a

    cunostintelor orientate pe obiecte.

    Modelarea obiectuala a devenit astfel trasatura comuna generatiei actuale de

    metode de proiectare a sistemelor si aplicatiilor informatice de gestiune[15]. Chiar

    daca implementarea urmeaza sa se faca utilizand o baza de date relationala sau un

    limbaj de programare fara functionalitati specifice, practica a dovedit ca aplicarea

    acestui demers conduce la solutii superioare calitativ, in special in cazul sistemelor de

    mari dimensiuni si complexitate. Abordarea obiectuala foloseste cinci concepte de

    baza: obiectul, clasa, mesajul, mostenirea si polimorfismul la care se adauga, intr-un

    plan mai general, abstractizarea, incapsularea, reutilizarea, persistenta.

    2.1. Obiecte si clase de obiecte

    Obiectul constituie componenta elementara intr-un sistem orientat pe obiecte.

    Acesta poate corespunde unui concept, unei abstractiuni sau unui lucru cu limite bine

    definite si cu semnificatie precisa in spatiul problemei studiate. Fiecare obiect poseda

    o stare, un comportament si o identitate[11].

    Starea caracterizeaza obiectul si este format din ansamblul de valori ale

    atributelor sau proprietatilor acestuia la un moment dat.

    Comportamentul este definit de ansamblul de operatii pe care le poate executa

    obiectul. Comportamentul mai poate fi perceput si ca un set de responsabilitati

    asumate sau de servicii oferite altor obiecte. Comportamentul obiectului este definit

    de ansamblul operatiilor sale si depinde de starea in care se afla.

    Identitatea semnifica posibilitatea reprezentarii si conservari individualitatii

    fiecarui obiect, indiferent de transformarile sau schimbarile de stare pe care le suporta.

    Identificarea obiectelor se face datorita existentei lor inerente si nu printr-o proprietate

    sau grup de proprietati. Distinctia dintre obiecte - respectiv desemnarea sau

    referirea unui anumit obiect - are un caracter uniform si independent de continut.

    Termenul "uniform" indica foarte clar ca identitatea unui obiect il separa pe acesta

    din ansamblul tuturor obiectelor, indiferent de tipul lor.

    Clasa descrie ansamblul, eventual infinit, de obiecte care au proprietati

    similare, comportament comun, relatii comune cu alte obiecte si aceeasi semantica.

    Gruparea obiectelor in clase este rezultatul abstractizarii, prin care se pleaca de la

    cazuri particulare. Clasa abstractizeaza un grup de obiecte similare. Clasa cuprinde

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    32/63

    32 P a g e

    elementele comune obiectelor ce-i apartin, adica descrierea atributelor si a operatiilor.

    Fiecare obiect este o instantiere a clasei sale si contine numai valorile proprii

    corespunzatoare fiecarui atribut. in plus, fiecare obiect mentine permanent legatura cu

    clasa sa.

    Ca instantiere a unei clase, orice obiect trebuie creat la un moment dat si poate

    disparea atunci cand nu mai este necesar. Operatiile corespunzatoare sunt denumite

    constructori si respectiv destructori[11]. Operatiile sunt de mai multe tipuri:

    constructor, destructori, selectori, modificatori. In cursul existentei unui obiect, pot

    apare operatii ce modifica starea acestuia, numite generic modificatori si operatii de

    consultare a stirii, numite selectori.

    Implementarea (maniera de executie) fiecarei operatii este memorata in cadrul

    clasei si constituie o metoda. Metoda este implementarea unei operatii de catre o

    clasa. Orice operatie are un argument implicit si anume obiectul caruia i se adreseaza.

    Obiectul invocat va obtine de la clasa careia ii apartine metoda corespunzatoare si o

    va aplica asupra datelor sale de stare. O operatie poate avea si alte argumente.

    Numarul, tipul si ordinea argumentelor impreuna cu tipul eventualului rezultat

    returnat definesc semnatura operatiei.

    2.2. Mesajul

    Schimbul de mesaje reprezinta forma universala de interactiune intre obiecte.

    Mesajul este unitatea de comunicatie dintre obiecte[11]. Obiectele interactioneaza

    prin schimburi de mesaje. Un mesaj are un emitator si un destinatar si invoca o

    anumita operatie. Destinatarul poate raspunde singur solicitarii primite sau poate

    emite, la randul sau, mesaje adresate altor obiecte.

    Obtinand de la acesta durata corespunzatoare codului sau de clasificare, va

    determina amortizarea pentru luna si anul specificate, dupa care le va transmite ca

    raspuns emitatorului mesajului initial. Invocarea unei operatii este prefixata de

    identificatorul obiectului destinatar, delimitat de regula prin punct. Functionarea

    sistemului rezulta din aceasta interactiune a obiectelor iar derularea prelucrarii este

    decisa prin cooperarea dintre obiecte, dictata de comportamentul specific al fiecaruia

    si de starea in care se gasesc in momentul respectiv.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    33/63

    33 P a g e

    2.3. Mostenirea

    Mostenirea desemneaza partajarea atributelor si operatiilor unei (sau unor)

    clase de catre o alta (sau alte) clase in cadrul unei relatii ierarhice, pastrand nealterate

    diferentele dintre ele. Clasa de la care se mosteneste este numita superclasa, iar ceacare mosteneste poarta numele de subclasa sau clasa derivata. Mostenirea permite

    exprimarea relatiilor de generalizare/specializare dintre clase.

    Mostenirea este tranzitiva pe un numar oricat de mare de nivele[10].

    Instantierea unei subclase este simultan instantiere a tuturor superclaselor sale. Prin

    intermediul mostenirii se pot exprima diferite relatii dintre clase: generalizarea,

    specializarea, clasificarea, aproximatia si evolutia. Posibilitatea factorizarii

    proprietatilor comune mai multor clase intr-o superclasa si a mostenirii proprietatile

    superclasei este unul dintre avantajele importante ale abordarii orientate pe obiecte.

    2.4. Polimorfismul

    Polimorfismul desemneaza capacitatea unei operatii de a se aplica obiectelor

    din clase diferite. Unul dintre cele mai comune exemple de polimorfism este

    reprezentat de operatorii + si (minus), care exprima adunarea, respectiv scaderea,

    atat pentru numerele intregi cat si pentru cele reale. Operatiile polimorfe sunt

    implementate de mai multe clase prin metode diferite[11].

    Polimorfismul inseamna, asadar, ca o operatie poate fi implementata prin mai

    multe metode. Operatiile polimorfe au aceeasi semnatura in toate clasele care le

    implementeaza. Selectia metodei adecvate la apelul unei operatii se face automat, pe

    baza numelui operatiei si a clasei careia ii apartine obiectul implicat. Astfel, obiectul

    ce emite un mesaj prin care invoca o operatie nu trebuie sa stie nici cate implementari

    diferite exista pentru aceasta si nici modul in care operatia este executata de catre

    obiectul destinatar.

    2.5. Abstractizarea

    Abstractizarea este procesul prin care se izoleaza si se retin numai o parte dintre

    aspectele unei probleme, considerate esentiale, ignorandu-le pe celelalte. Aspectele

    retinute depind de scopul urmarit. Rezulta de aici ca, pentru aceeasi problema sau

    aspect al realitatii, pot exista mai multe abstractizari diferite. Abstractizarea permite

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    34/63

    34 P a g e

    concentrarea asupra aspectelor conceptual-functionale si evitarea luarii premature in

    considerate a detaliilor[11].

    Abstractizarea isi gaseste multiple utilizari in informatica, pe tot parcursul

    dezvoltarii unei aplicatii informatice, indiferent de metoda (sau de lipsa de metoda)

    folosita. De altfel, se apreciaza ca gasirea de bune abstractizari este problema

    esentiala pentru orice proiectare de sistem.

    In cadrul abordarii orientate obiect, exista multiple utilizari specifice ale

    abstractizarii. Una dintre acestea o reprezinta conceptul de clasa. Clasele reprezinta

    abstractizari ale unor multimi de obiecte. Una dintre uzantele sale specifice in

    abordare poate fi privit, in ansamblu, ca un proces de abstractizare, prin care se

    urmareste formularea in termeni informatici - inregistrare, cheie de acces, procedura,

    functie, modul etc. - a unor concepte sau parti ale lumii reale, cu un nivel mult mai

    inalt de abstractizare - persoane, structuri organizatorice, utilaje, facturi s.a.m.d. Din

    cauza complexitatii, acest demers se realizeaza progresiv, in mai multe stadii

    succesive, intr-o ordine in care mai intai se stabileste ce este si ce trebuie sa faca

    fiecare obiect si abia apoi se decide modul in care acesta este implementat. Clasele

    constituie, la randul lor, abstractizari ale unor ansambluri de obiecte.

    2.6. Incapsularea

    Incapsularea plaseaza o bariera intre comportamentul exterior si detaliile

    interne[11].

    Incapsularea, numita si mascarea informatiilor, consta in gruparea tuturor

    detaliilor de implementare - moduri de reprezentare si mecanisme de realizare a

    comportamentului - intr-o parte ascunsa, inaccesibila din exterior. Cooperarea cu

    restul componentelor are loc prin intermediul unei interfete, care expune numai

    caracteristicile functionale necesare utilizarii. Bariera dintre interfata si implementare

    trebuie sa fie inviolabila pentru orice componenta cu care are loc cooperarea. Prin

    incapsulare se reduce gradul de interdependenta intre componente. Daca sunt

    necesare modificari pentru inlantuirea unor erori sau pentru ameliorarea

    performantelor de executie, aceasta afecteaza numai partea de implementare. Interfata

    ramane neschimbata si, in consecinta, functionarea celorlalte componente ale

    aplicatiei nu este afectata. Practic, incapsularea ascunde reprezentarea obiectelor si

    metodele acestora.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    35/63

    35 P a g e

    O clasa nu trebuie sa expuna decat ansamblul operatiilor care formeaza

    comportamentul instantierilor sale. Aceasta inseamna ca si atributele trebuie sa fie

    mascate, deci invizibile si inaccesibile din exterior. In consecinta, sunt necesare

    operatii distincte pentru consultarea si modificarea - sau cel putin initializarea -

    continutului lor. Dat fiind caracterul lor implicit, ele pot sa nu fie specificate in cursul

    analizei si proiectarii dar apar obligatoriu in faza de programare. Pentru a permite

    mascarea selectiva a atributelor si metodelor, indispensabila in practica, se recurge la

    conceptul de vizibilitate. In termeni generali, pentru ca un obiect sa poata invoca o

    operatie sau sa faca referire la un atribut, acestea trebuie sa fie vizibile pentru el.

    Vizibilitatea este structurata pe trei nivele: publica, privata , protejata. Atributele si

    metodele private sunt invizibile si, in consecinta, inaccesibile tuturor celorlalte clase.

    Prin contrast, atributele si metodele publice sunt expuse si deci accesibile intregului

    sistem. Nivelul protejat limiteaza vizibilitatea la ansamblul subclaselor.

    Gradul de incapsulare este indicat de nivelul de vizibilitate. Vizibilitatea poate

    fi fixata individual pentru fiecare atribut si operatie, respectiv metoda, ceea ce ofera

    un spor de flexibilitate.

    2.7. Reutilizarea

    Reutilizarea constituie unul dintre marile avantaje promise de abordarea

    orientata pe obiecte. Calitatile de modularitate si flexibilitate conferite prin aplicarea

    abstractizarii, incapsularii si mostenirii permit construirea de biblioteci de

    componente reutilizabile, ce pot fi direct asamblate corespunzator cerintelor fiecarei

    aplicatii a sa cum se face, spre exemplu, cu caramizile sau prefabricatele la ridicarea

    unei constructii. La economia de efort de conceptie si programare realizate astfel, se

    adauga si o calitate superioara, provenita din faptul ca aceste componente sunt

    studiate, dezvoltate si testate independent. Utilizarea intr-un numar mare de aplicatii

    conduce, inevitabil, si la cresterea fiabilitatii[11].

    Mostenirea structurilor de date si a comportamentului contribuie intr-un mod

    specific la reutilizare. Aceasta se manifesta in primul rand la nivelul codului de scris

    intr-un limbaj de programare, care devine mult mai redus deoarece pentru dezvoltarea

    unei noi subclase este necesar sa se redacteze numai partile specifice acesteia, restul

    fiind obtinut de la superclasa. Chiar la nivelul conceperii aplicatiei, mostenirea poate

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    36/63

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    37/63

    37 P a g e

    rezolvare se recurge la baze de date orientate obiect in cazurile cele mai fericite,

    relationale in cazurile cele mai frecvente.

    3.

    Metodologii de realizare a sistemelor informatice cu abordareorientata obiect

    Evolutia rapida in domeniul tehnologiei informatiei a impus elaborarea de noi

    metodologii pentru dezvoltarea sistemelor si aplicatiilor informatice. Astfel au inceput

    sa fie dezvoltate metodologiile cu abordare orientata obiect, care permit construirea

    sistemelor informatice folosind conceptele tehnologiei orientate obiect. Premisele care

    au condus la aparitia acestor metodologii isi au originea in necesitatea eliminarii

    deficientelor metodologiilor cu abordare structurala. Metodologiile orientate obiect

    propun modelarea concomitenta a datelor si functiilor obtinand ierarhii de clase de

    obiecte care inglobeaza atat date cat si comportament.

    Desi exista un numar mare de metodologii cu abordare obiectuala de realizare

    a sistemelor informatice, fiecare avand anumite particularitati, acestea sunt dezvoltate

    in jurul unor aspecte comune:

    activitatile sunt grupate in raport de omogenitatea si obiectivele urmarite inetape;

    documentatia de sistem permite imbunatatirea comunicarii intre cei careparticipa la dezvoltarea noului sistem: analisti, utilizatori, proiectanti si

    programatori;

    pentru descrierea sistemului se utilizeaza trei modele: modelulobiectelor (static), modelul dinamic si modelul functional;

    realizarea sistemului informatic se bazeaza pe o abordare ciclica, iterativa;

    ciclul de viata al dezvoltarii sistemelor cu abordare obiectuala contine ingeneral trei faze: analiza, proiectarea si implementarea;

    permit reutilizarea rezultatelor din fazele de analiza, proiectare siimplementare;

    comparativ cu metodologiile cu abordare structurata, abordarea orientataobiect muta centrul de greutate al solutionarii problemei in faza de analiza,

    fapt ce va fi compensat cu un minimum de efort in faza de implementare.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    38/63

    38 P a g e

    In prezent exista mai multe metodologii de realizare a sistemelor orientate

    obiect dintre care amintim: Object Modeling Technique (OMT), Object Lifecycles

    (OL), Object - Oriented Analysis and Design (OOAD), Object oriented System

    Development (OOSD) si metodologii de realizare a sistemelor informatice bazate pe

    UML[11].

    3.1. Object modeling technique (OMT)

    Object Modeling Technique (OMT) - este o tehnica de proiectare a sistemelor

    informatice care insa a fost extinsa la rang de metodologie. Descrierea sistemului se

    realizeaza cu ajutorul a trei modele:

    a. Modelul obiectual cu ajutorul sau se realizeaza descrierea structurii

    statice a obiectelor, claselor de obiecte, a operatiilor si atributelor precum si a

    legaturilor si a relatiilor dintre ele. La nivelul acestui model se foloseste Diagrama de

    asociere a claselor (Class Association Diagram).

    b. Modelul dinamic - cu ajutorul sau se realizeaza descrierea interactiunilor

    dintre obiecte si este focalizat pe aspecte ce se schimba in timp deoarece orice obiect

    are un ciclu de viata cu un punct de pornire si unul de sfarsit; modelul dinamic descrie

    acest ciclu de viata, ce se intampla de-a lungul sau si cum este influentat obiectul. La

    nivelul acestui model se folosesc: Diagrama de trasare a evenimentelor (Event Trace

    Diagram) si Diagrama de tranzitie a starilor (State Transition Diagram).

    c. Modelul functional- descrie transformarile valorilor datelor precizand

    sursa lor, transformarile lor (obtinerea iesirilor informationale pe baza intrarilor),

    precum si destinatia lor. La nivelul acestui model se foloseste Diagrama de flux a

    datelor (Data Flow Diagram), Diagrama de Comunicare a Claselor (Class

    Comunication Diagram), Diagrama de Generalizare a Mesajelor (Message

    Generalization Diagram). Conform acestei metodologii se parcurg patru faze, la

    nivelul fiecarei etape realizandu-se o serie de activitati specifice:

    1. Etapa de analiza - vizeaza realizarea unui model global ce va contine

    obiectele din domeniul aplicatiei, precum si descrierea proprietatilor si

    comportamentului acestora. La nivelul acestei etape se realizeaza urmatoarele

    activitati:

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    39/63

    39 P a g e

    formularea problemei beneficiarul formuleaza problema si cuprindecerintele acestuia (ce anume asteapta sa realizeze viitorul sistem) vis-a-vis

    de sistemul care se va dezvolta;

    se initiaza procesul de realizare a modelului obiectual se identificaobiectele, clasele de obiecte, asocierile dintre clase si obiecte, atributele

    claselor si obiectelor. Acestea vor servi pentru descrierea statica a

    sistemului utilizand diverse diagrame si simboluri grafice;

    se initiaza procesul de realizare a modelului dinamicse identifica starilesi evenimentele care conduc la trecerea dintr-o stare in alta, precum si

    succesiunea acestora in timp, toate acestea regasindu-se in diagramele de

    stare si diagrama globala de flux a evenimentelor;

    se initiaza procesul de realizare a modelului functional: se identificaintrarile si iesirile realizandu-se diagrama de flux a datelor; se descriu

    procesele elementare fara a se lua in considerare detaliile legate de

    implementare; se identifica constrangerile, precum si modalitatile de

    optimizare.

    2. Etapa de proiectare la modelul obiectual obtinut in prima etapa se vor

    adauga detalii de implementare pentru a se putea genera automat cod sau pentru o

    dezvoltare ulterioara fara generare automata. Modelul functional va descrie operatiile

    pe care proiectantul trebuie sa le implementeze. Modelul dinamic descrie modul in

    care sistemul raspunde la stimuli externi, model din care deriva structura de control.

    La nivelul etapei se realizeaza urmatoarele activitati:

    sistemul se descompune in subsisteme pe baza unor criterii de structurare;se identifica subsistemele concurente pentru optimizarea implementarii;se determina necesarul resurselor hard si soft necesare fiecarui subsistem;se decide cu privire la modul de organizare al datelor, respectiv al tipurilor

    de acces;

    3. Etapa de proiectare a obiectelor are ca scop rafinarea modelelor

    obtinute in fazele anterioare, parcurgandu-se urmatoarele activitati:

    se identifica operatiile pentru modelul obiectual folosind celelalte modele:se definesc operatii pentru fiecare eveniment al modelului dinamic si se

    determina operatiile aferente fiecarui proces descris in modelul functional;

    se proiecteaza algoritmii pentru implementarea operatiilor;

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    40/63

    40 P a g e

    se definesc noi clase sau operatii daca acest lucru este necesar si serealizeaza o restructurare a celor existente pentru a creste probabilitatea

    mostenirii;

    se optimizeaza caile de acces;se implementeaza controlul pornind de la solutia aleasa pentru proiectarea

    de sistem;

    se proiecteaza implementarea asocierilor;clasele si asocierile se vor grupa in module.4. Etapa de implementaretranspunerea modelului anterior obtinut intr-un

    limbaj de programare urmat de transferul sistemului realizat la nivelul beneficiarului,

    unde se va verifica si comportamentul acestuia in practica pentru a se putea trece la

    exploatarea lui curenta.

    3.2.Object lifecycles (OL)Object Lifecycles (OL) divide analiza si proiectarea orientata obiect.

    1.Procesul de analiza orientat obiect presupune:

    a. modelarea informatiei - se determina entitatile conceptuale in termeni de

    obiecte si atribute ale obiectelor. Sunt definiti identificatorii pentru a defini fiecare

    instanta a obiectului. De asemenea se realizeaza o descriere a fiecarui atribut si a

    domeniului lui, precum si a legaturilor dintre obiectele modelate. Asocierile intre

    entitati se definesc ca legaturi bazate pe reguli si legi fizice rezultate din lumea reala.

    Au fost introduse elemente literare key pentru obiecte si numere pentru o corelatie

    mai usoara intre elemente cu efect benefic asupra intelegerii reprezentarii grafice a

    modelului informatiei. Tabelul de corelatie pentru obiecte asociate a fost abandonat;

    b. modelarea star i i vizeaza comportamentul obiectelor si a legaturilor in

    timp. Modelele de stare sunt prezentate prin Diagrame de tranzitie a starii (DTS)

    pentru fiecare obiect ce are comportament dinamic si tabelele starii de tranzitie pentru

    descrierea fiecarei actiuni prezentata in DTS si a evenimentelor din lista. Modelele de

    stare sunt astfel folosite pentru descrierea ciclului de viata al obiectelor precum si a

    legaturilor dintre acestea. Diagramele de tranzitie a starii sunt realizate multi-nivel

    pentru ca modelul comunicarii sa fie ordonat si usor de inteles.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    41/63

    41 P a g e

    c. modelarea procesuluise realizeaza diagramele de actiune a fluxului de

    date, care descriu ordinea de executie a proceselor, iar rezultatele sunt prezentate

    explicit. Modelarea procesului se realizeaza astfel:

    1. actiunile sunt impartite in procese;2. fiecare proces va fi denumit si descris;3. se realizeaza un tabel al procesului de stare care cuprinde toate

    procesele din sistem si actiunile in care sunt folosite;

    4. se realizeaza un model de acces la obiect pentru intelegerea modului decomunicare intre modelele de stare si sistem.

    In aceasta faza de analiza se utilizeaza urmatoarele tehnici:

    diagrama structurii de informatie realizata pentru modelarea informatiei; diagrama de tranzitie a starii pentru a descrie ciclul de viata al unui

    obiect;

    modelul de comunicare al obiectului face distinctie intre tipurile deevenimente: evenimente externe (eveniment care apare din actiuni

    anterioare ale sistemului sau un eveniment solicitat si care reprezinta

    raspuns la o activitate anterioara a sistemului) si interne (generate de un

    model de stare din sistem). Sunt descrise doua modele de comunicare: trop

    driven pattern (modelul condus spre varf ) si bottom driven pattern

    (modelul condus spre baza);

    Thread od Control Chartpentru indicarea ordinii evenimentelor si starilor(secventa de actiuni si evenimente ce apar ca raspuns la un eveniment

    anume);

    diagrama actiunii fluxului de date - pentru reprezentarea unitatilor deprocesare intr-o actiune si comunicare intre acele unitati ale procesului;

    modele de acces ale obiectului cu ajutorul carora se obtine o imaginecomplementara a modelului de comunicare a obiectului, prezentand

    maniera de comunicare sincronizata intre modelele de stare si datele

    aferente obiectului.

    2.Procesul de proiectare orientat obiect se exprima in termenii unui singur

    program care contine:

    1) un program principal pentru comunicarea intre stari, invocareaoperatiilor si initializarea claselor aplicatiilor;

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    42/63

    42 P a g e

    2) patru clase arhitecturale care furnizeaza mecanismele necesareinitializarii, pentru traversarea masinilor de stare si obiectului timer

    al fazei de analiza. Obiectul timer este un mecanism utilizat de o

    actiune pentru a genera un eveniment la un moment viitor;

    3) clase de aplicatii care sunt derivate din obiecte si modelele de stare.In aceasta faza de proiectare se utilizeaza urmatoarele tehnici:

    diagrama de clasa pentru reprezentarea unei clase; diagrama de structura a clasei pentru prezentarea structurii interne a

    codului de operatii al clasei;

    diagrama de dependenta defineste invocarea client-server si legaturilefriend dintre clase;

    diagrama de mostenire cu ajutorul careia se prezinta legaturile demostenire existente intre clase.

    3.3.Objectoriented analysis and design (OOAD)

    Object - Oriented Analysis and Design (OOAD) cunoaste doua versiuni:

    prima publicata de Martin si Odell in 1992 si cea de a doua publicata de Martin in

    1993 (spre deosebire de prima versiune nu se descriu pasii proceselor de analiza si

    proiectare, abordarea fiind preluata din prima versiune), versiuni ce sunt aproape

    identice. Se incepe cu identificarea rezultatelor care se doresc a fi obtinute si punctele

    de plecare. Se definesc apoi evenimentele si obiectele in mod ciclic, pentru fiecare

    nou eveniment identificat trebuie sa se repete ciclul.

    Procesul de analiza si proiectare conform acestei metodologii vizeaza

    urmatoarele etape:

    1. defi ni rea scopului analizeise identifica scopul sau universul de interesal problemei, etapa la care participa un analist si un expert in problema;

    2. clar if icarea tipului de eveniment - identificarea tipului de evenimentcaruia ii apartine cel identificat. Tipul de eveniment tinta este schimbarea

    in starea obiectului care trebuie atinsa in final. Trebuie sa fie de asemenea

    identificate tipurile de obiecte implicate in eveniment, eveniment caruia i

    se va atribui un nume (numele trebuie sa certifice starea pre si post

    eveniment si procesul pe care il reprezinta);

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    43/63

    43 P a g e

    3. generalizarepentru a defini daca un tip eveniment descrie cel mai clarnivelul de abstractizare, tipul de eveniment cu starea lui pre si post

    eveniment trebuie sa fie generalizat si care este cel mai reprezentativ nivel

    al generalizarii;

    4. defi ni rea conditi il or operatieise identifica operatiile care conduc la uneveniment specificat, dupa care se identifica natura operatiei: operatie

    interna sau externa. Sunt identificate de catre expert apoi conditiile de

    control pentru operatie intr-un limbaj adecvat, pentru ca analistul sa le

    poata transforma in conditii intr-o forma normalizata;

    5. identi f icarea cauzelor operatiei se identifica evenimentul declansator.Se studiaza conditiile de control si se identifica evenimentul care apare

    pentru indeplinirea conditiilor de control, dupa care evenimentele care

    declanseaza actiunile sunt grupate in complexe sau nu. Daca evenimentele

    declansatoare se aplica numai unei anumite parti a conditiei de control

    atunci se realizeaza o regrupare pentru aceste conditii. Se vor specifica de

    asemenea regulile evenimentului declansator, adica se vor identifica

    specificatiile exacte ale obiectului de care este nevoie pentru a invoca

    operatia;

    6. prelucrarea rezul tatelor cicluluiin raport de evenimentele declansatoareidentificate se stabileste care din acestea pot fi generalizate intr-un nivel

    eveniment mai ridicat. De asemenea se poate stabili daca este posibil sa se

    specializeze evenimente declansatoare triggeri pentru a se clarifica

    utilizarea lor, si sa se verifice daca triggerii sunt la fel sau sunt o

    subclasificare a tipului de eveniment. Se elimina tot in aceasta etapa

    evenimentele redundante.

    Tehnicile utilizate in cadrul acestei metodologii sunt:

    diagrame de legaturi intre obiecte folosite pentru descrierea tipuluiobiectelor si a legaturilor dintre ele;

    diagrame de comunicare a claselor pentru prezentarea claselormultiple si cerintele dintre ele;

    diagrama de evenimente pentru descrierea comportamentuluisistemului;

    diagrama fluxului de obiecte pentru modelarea procesului printr-oapropiere de nivelul strategic;

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    44/63

    44 P a g e

    diagrame de compunere pentru a arata obiectul sau clasa care secompune din alte tipuri de obiecte, respectiv clase;

    diagrama Ferncu ajutorul careia se reprezinta relatia de generalizare,indicandu-se directia mostenirii, fara insa sa indice ce anume a fost

    mostenit sau cum a functionat mostenirea;

    diagrama de tranzitie a starilorprezinta secventa de stare prin caretrece un obiect si comportamentul lui;

    diagrama de generalizare.

    3.4.Objectoriented system development (OOSD)

    Object oriented System Development (OOSD) dezvoltata de catre

    Champeaux, costa in faze de analiza, proiectare si implementare, primele doua faze

    fiind reprezentate pe larg, in timp de faza de implementare este mentionata cu ajutorul

    catorva consideratii. Sistemul modelat este prezentat cu ajutorul unui vocabular

    central bazat pe patru componente: o componenta statica, o componenta dinamica, o

    componenta pentru comportamentul in interiorul unui singur obiect, o componenta

    pentru conexiunile dintre obiecte. Procesul de dezvoltare presupune urmatoarele faze:

    1. Faza de analiza la nivelul careia sunt parcursi urmatorii pasi:

    se intocmeste un document care cuprinde cerintele complete; informatiile pot sa nu fie complete, daca descrierile limbajului natural nu

    sunt precise si poate aparea situatia in care cerintele utilizatorului nu sunt

    de la inceput recunoscute. Atunci apare o descriere a comportamentului de

    catre interactiunea sistemcontext;

    delimitarea sistemului; pentru fiecare subsistem gasit se foloseste un limbaj specific; se descriu clasele si legaturile intre clase; se realizeaza un model in care dinamica obiectelor este interconectata.2. Faza de proiectareactivitatile acestei faze nu pot fi descrise algoritmic.

    Numai anumite actiuni pot fi desfasurate mecanic. Cea mai mare parte a

    transformarilor sunt cele cu situatii specifice si pot aparea cu specificatii despre cum

    trebuie executate. Acestea folosesc cerintele transformarilor functionale, de resurse si

    de performanta.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    45/63

    45 P a g e

    3. Faza de implementare constructia unui sistem soft intercluster,

    documentarea si testarea. Se obtine un sistem de lucru care satisface corectitudinea,

    eficienta si alte criterii de performanta.

  • 7/27/2019 Proiectarea Sistemelor Informatice Utilizand Tehnologia Orientata Pe Obiecte

    46/63

    46 P a g e

    Capitolul III. Descrierea si folosirea

    aplicatiei

    In acest capitol sunt descrise si expuse functionalitatile de baza pe care le

    ofera prezenta aplicatie. Produsul software a fost conceput prin contopirea scopurilor

    si obiectivelor prezentate in primul capitol, implementand o gama importanta a

    cerintelor de natura birotica si fiscala din cadrul unor institutii de arta si cultura, si

    anume din cadrul muzeelor nationale.Aplicatia dispune de o interfata prietenoasa si usor de utilizat, astfel incat

    utilizatorilor le sunt necesare cunostinte minimale de operare pe un calculator. Pentru

    a fi cat mai utila din punct de vedere al functionalitatii si pentru a fi cat mai usor de

    utilizata aplicatia este compusa din opt ferestre Windows principale:

    1. Fereastra Log in - reprezinta fereastra de start a aplicatiei; prin intermediulacestei un user administrator se poate loga pentru a executa operatii de

    intrare/iesire asupra datelor din baza sa de date;

    2. Fereastra Account - ofera posibilitatea unui user de a-si crea un cont nou;3. Fereastra Main - reprezinta fe