curs 1-2 apoo sim (4 files merged)
Embed Size (px)
DESCRIPTION
curs apooTRANSCRIPT
-
CURS 1-2
ANALIZIPROIECTAREORIENTATOBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU
-
"abordareorientatpeobiecte"
Sintagma "abordare orientat pe obiecte" sau "abordare obiectual" semnific organizarea i funcionarea programelor, aplicaiilor sau sistemelor informatice ca un ansamblu de obiecte distincte ce coopereaz ntre ele.
-
Aplicatmaintindomeniulprogramrii,ABORDAREA ORIENTATPEOBIECTE s-aimpuscaonouparadigm
informatic, cu o utilizare foarte diversificat
Sediscutastfeldespre: programare orientat pe obiecte (sau programare obiectual); baze de date orientate pe obiecte; analiz i proiectare orientat pe obiecte; metode de reprezentare a cunotinelor
orientate pe obiecte.
-
Modelareaobiectualadevenitastfeltrsturacomungeneraieiactualedemetodedeproiectareasistemeloriaplicaiilorinformaticedegestiune.
Chiar dac implementarea urmeaz s se fac utiliznd o baz de date relaional sau un limbaj de programare fr funcionaliti specifice, practica a dovedit c modelarea conceptual conduce la soluii superioare calitativ, n special n cazul sistemelor de mari dimensiuni i complexitate.
-
Concepte
Metoda de analiz i proiectare = omulimedeprocedee,tehniciirecomandriutilizatenetapelecicluluideviaaluneiaplicaiiavndcascopfinalcreareaunuimodelalaplicaieicareurmeazaficonstruit. Specificarea modelului serealizeazprin intermediul unui limbaj sau formalism vizual compus dintr-unsetdesimbolurigraficeiadnotritextuale.
Metodologia = o cale prin care modelele i tehnicile din diferite stadii ale ciclului de via al realizrii sistemului sunt puse laolalt pentru a crea un sistem.
Alegerea unei metode depinde de: tipul problemei de rezolvat; domeniul n care se ncadreaz problema; pregtirea i calificarea echipei de proiectare i realizare a produsului
software; resursele hardware i software disponibile; bugetul i timpul alocat proiectului.
-
Metodologii de proiectare si realizare a SI
Ierarhice Sistemice Orientate obiect (Obiectuale), care prezint: - Avantaje: permit reutilizarea componentelor deprogram,favorizeazmodelareaiutilizareade obiecte complexe. - Dezavantaje:percepiaireprezentareamonoliticdetipul"totulesteobiect"nucorespundentotdeaunarealitiireprezentate.
-
Metodele de "Analiza si proiectare orientate obiect "
au aprut dup 1990, prelund cele mai bune idei din programarea structurat,combinate cu conceptele noi ale limbajeloriinstrumentelordeprogramare,alebazelordedateceutilizeazmodelulentitate-asociere.
Consoriul american OMG (Object Management Group) cuprinznd peste 800 de companii productoare de aplicaii care au utilizat tehnologia orientat obiect i impun adoptarea unor standarde n domeniu, a studiat posibilitile de convergen din domeniul metodelor de analiz i proiectare orientate obiect.
n noiembrie 1997 OMG a hotrt unificarea celor mai utilizate metode de analiz i proiectare prin realizarea unui standard n domeniul proiectriisistemelor informatice, LIMBAJUL DE MODELARE UNIFICAT (UML-Unified Modeling Language).
-
Metode tradiionale de proiectare vs metode orientate obiect
Metodele tradiionale au separat modelarea datelor de modelarea funciilor (a prelucrrilor), obinnd astfel dou tipuri de structuri distincte: structuri de date i structuri funcionale.
Metodele orientate obiect propun modelarea concomitent a datelor i funciilor, obinnd ierarhii de clase de obiecte care nglobeaz att date, ct i comportament (funcii).
-
Analiza si proiectarea orietata obiect
privete sistemul informatic ca o structur de obiecte autonome ce se organizeaz i coopereaz ntre ele.
fiecare obiect poate interveni n mai multe feluri sau scenarii funcionale diferite i poate participa la conceperea altor obiecte noi, mai complexe
obiectul combin structura datelor i comportamentul ntr-o singur entitate
-
Existomultitudinedemetode de dezvoltare a sistemelor orientate obiect
OOD - Object Oriented Design (G. Booch); OOSA - Object Oriented System Analysis (Shlaer &
Mellor) OMT - Object Modeling Technique (James
Rumbaugh, Michael Blaha, William Premerlani .a); OOA - Object Oriented Analysis (Peter Coad,
Edward Yourdon); HOOD - Hierarchical Object Oriented Design; OOSD - Object Oriented Structured Design
(Wasserman);
-
Metode de dezvoltare a sistemelor orientate obiect - continuare
RDD - Responsibility-Driven Design (Wirfs-Brock, R., Wilkesson, B., Wiener, L.);
OORSS - Object Oriented Role Analysis, Synthesis and Structuring (Reenskaugh);
OOSE - Object Oriented Software Engineering (Jacobson Ivar);
OSA - Object Oriented Systems Analysis (Embley);
OBA- Object Behavior Analysis (Goldberg&Rubin
-
este otehnicdedezvoltareasoftware-uluibazatpemodelecaabstraciialeproblemelordin lumea real, menite s focalizeze aspectele importante ale problemei i s omit pe cele irelevante.
-
Observaie: Abordarea orientat obiect mut centrul de greutate al rezolvrii unei probleme de realizare a unui sistem informatic n faza de analiz, compensnd acest lucru cu un efort redus n faza de implementare. O nelegere corecta cerinelor problemei reale constituie premiza pentru construirea unui model fiabil, adaptabil, care va suporta uor modificrile ulterioare.
-
Analiza si proiectarea orientat obiect
Folosete, pentru descrierea unui sistem informatic, trei modele: 1. Modelul obiect, care descrie obiectele i relaiile lor n cadrul sistemului; 2. Modelul dinamic, care descrie interaciunile dintre obiecte n cadrul sistemului; 3. Modelul functional, care descrie operaiilede transformare a valorii datelor n cadrul sistemului.
-
Orice model prezinttreiaspecteimportante:
ABSTRACTIZAREA REALITII - pentru aceeai problemse pot crea mai multe modele care s focalizeze diferite aspecte.
SCOPUL MODELULUI - se focalizeaz ceva cunoscut
COMUNICAREA - modelul trebuie neles de toi membrii echipei de analiz-proiectare, precum i neles i validat de utilizator.
-
MODELUL OBIECT
prezint structura static a sistemului identific clasele i obiectele sistemului i descrie atributele, operaiile i relaiile dintre ele
este reprezentat grafic prin: DIAGRAMA DE ASOCIERE A
CLASELOR (DAC)
-
MODELUL DINAMIC
prezint aciunile (comportamentul de baz) al sistemului
reflect dinamica obiectelor i modificrile strilor lor, reliefnd modul n care este influenat un obiect de-a lungul ciclului de via
este reprezentat grafic prin: DIAGRAMA DE TRASARE A EVENIMENTELOR
(DTE) DIAGRAMA DE TRANZIIEASTRILOR(DTS)
-
MODELULFUNCIONAL prezint funciile sistemului, dar nu i
modul n care se desfoar acestea descrie valorile datelor (cu sursa lor), transformrile lor i destinaia lor
este reprezentat grafic prin: DIAGRAMA DE FLUX DE DATE (DFD)
-
MODELUL DE COMUNICARE A CLASELOR
Obs: La cele trei modele, n contextul desvririi procesului de interaciune i comunicare ntre clasele aferente obiectelor identificate - se poate aduga i un model de comunicare ntre clase/de comunicare a claselor Acesta este reprezentat grafic prin:
DIAGRAMA DE COMUNICARE A CLASELOR (DCC) DIAGRAMA DE GENERALIZARE A MESAJELOR
(DGM)
-
Relatiile dintre modelele O.M.T.
-
ConceptedebazaleA.P.O.O. 5CONCEPTEDEBAZ
OBIECTUL CLASA MESAJUL MOTENIREA POLIMORFISMUL
4 CONCEPTE GENERALE ABSTRACTIZAREA NCAPSULAREA REUTILIZAREA PERSISTENA
-
OBIECTUL
Un OBIECT poate corespunde unui concept; uneiabstraciuni; unui lucru cu limite bine definite i cu
semnificaie precis n spaiul problemei studiate.
constituiecomponentaelementarntr-un sistem orientat pe obiecte
EXEMPLE DE OBIECTE Popescu Vasile, Astra S.R.L., Strungul 2
-
OBIECTUL definete un concept, o abstracie sau un lucru bine
delimitat, avnd o identitate proprie stabilit pe baza atributelor sale
-
Un obiect
reprezint o entitate din lumea real asupra creia se poate ntreprinde o aciune, sau care poate ntreprinde o aciune.
el combin structura datelor i comportamentul intr-o singur entitate.
este caracterizat prin stare, comportament i identitate.
are dou componente: structura informaional i comportamentul sau operaiile care acioneaz asupra structurii
-
OBIECTUL
STAREA OBIECTULUI caracterizeazobiectuliesteformatdinansamblul
devalorialeatributelorsauproprietiloracestuiala un moment dat.
Spre exemplu: "2477, 16/02/2009, 34.200.000, Strung SR300
constituie starea curent a obiectului strungul 2, reprezentnd: numrul de inventar, data intrrii, valoarea contabil de intrare i denumirea acestuia.
fiecare obiect are deci o identitate implicit, o stare iun comportament
-
OBIECTUL
Comportamentul obiectului se caracterizeaz prin structura operaiilor sale i depinde de starea n care se afl.
Comportamentul obiectului mai poate fi perceput i ca un set de responsabiliti asumate sau de servicii oferite altor obiecte.
Operaiile arat numai ce face obiectul nu i cum face Spre exemplu operaiialeobiectuluiStrungul2:
Reevaluare, casare, amortizare_lunar, valoare_rmas
Comportamentul obiectului este definit de ansamblul de operaii pe care le poate executa obiectul.
-
OBIECTUL
Identitatea obiectului reflect posibilitatea reprezentrii i conservrii individualitii fiecrui obiect, indiferent de transformrile sau schimbrile de stare pe care le suport.
Exemplu: obiectul strungul 2 va avea un identificator implicit, frniciolegturcunumruldeinventarcare,
deiunicpentrufiecaremijlocfix,rmneaiciunatributca oricare altul
Identificarea obiectelor sefacedatoritexisteneilorinerenteinuprintr-oproprietatesaugrupdeproprieti.
-
OBIECTUL
Termenul "uniform" indic faptul c identitatea unui obiect l separ pe acesta din ansamblul tuturor obiectelor, indiferent de tipul lor; Exemplu: ntr-unsistem,ncareseregsesc,caobiecte: utilaje,materiale,gestiuni,clienietc - identificatorul unui obiect de tip "utilaj" este discriminant, nu numai n raport cu celelalte utilaje (aacumacioneaz,deexemplu,ocheientr-o BDR), ciifadetoateobiectele, fie acestea: materiale,gestiunisauclieni.
Distinciadintreobiecte- respectiv desemnarea sau referirea unui anumit obiect - are uncaracteruniformi
independentdeconinut
-
Identitatea obiectului
Reprezint proprietatea unui obiect care permite identificarea sa in raport cu alte obiecte de acelasi fel.
Dac se modific valoarea atributelor, acest lucru nu afecteaz identitatea obiectului.
Identificatorul obiectului servete la legarea obiectelor ntre ele.
Un obiect este o instan a unei clase
-
Observatie
Fiecare obiect conine informaii individuale (date) care trebuie s fie accesate sau modificate numai prin intermediul mulimii de operaii care definesc comportamentul obiectului respectiv.
Singura parte vizibil a unui obiect este constituit din operaiile (funciile) obiectului i este denumit interfa.
structura care memoreaz informaiile i implementarea operaiilor sunt ascunse n interiorul obiectului.
-
Exemplu: Factura: un obiect complex, care cuprinde n mulimea
atributelor sale i atribute ale cror valori reprezint identificatorul unui alt obiect.
-
ATRIBUTUL
definete o proprietate a obiectelor dintr-o clas se reprezint sub numele clasei, prin specificarea
numelui atributului i, opional, a tipului i a unei valori implicite a acestuia.
-
Abordarea Orientat Obiect are ca efect imbunatatirea urmtoarelor caracteristici ale produsului software:
Extensibilitate - capacitatea de a realiza produse software ce pot fi adaptate, cu un efort rezonabil, la modificrile care apar n timp n comportarea sistemului;
Reutilizarea - capacitateade a construi sisteme formate din componente existente deja, componenetele noi fiind proiectate astfel incat s poat fi folosite la alte sisteme;
Portabilitatea capacitatea de a realiza software ce poate fi mutat pe diverse platforme hardware sau software fara un cost prea mare;
Eficienta capacitatea de a produce software eficient
-
Obiectul - Concluzii
descrie o entitate a lumii reale care se distinge de alte entiti deoarece prezint propria identitate i are o anumit semnificaie in contextul aplicaiei modelate.
exist n timp i spaiu are o stare descris de valorile atributelor
sale, un comportament descris prin mulimea operaiilor pe care le poate executa i o identitate
-
Obiectul este o unitate de observare in care se incapsuleaz att datele care descriu obiectul, ct i operaiile pe care obiectul le poate executa
Clasa de obiecte descrie o multime de obiecte cu proprieti similare, comportament similar si legturi similare fa de alte obiecte.
Un obiect este o instan a unei clase
-
CURS 3-4
ANALIZIPROIECTAREORIENTATOBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU
-
ConceptedebazaleA.P.O.O. CONCEPTEDEBAZ
OBIECTUL CLASA MESAJUL MOTENIREA POLIMORFISMUL
CONCEPTE GENERALE ABSTRACTIZAREA NCAPSULAREA REUTILIZAREA PERSISTENA
-
Un obiect se caracterizeaz prin : Structur, care regrupeaz atributele ce pot
lua valori atomice sau valori complexe (ex. nume de obiecte)
Interfa, compus din selectorii metodelor i care reprezint partea vizibil a obiectului.
-
Observatie
Un model de obiecte este format dintr-un numr de obiecte care comunic ntre ele. Dintre acestea unele au caracteristici comune i, pentru a pstra legtura semantic, acestea sunt grupate n clase de obiecte.
Se pot identifica i descrie clase care s reprezinte toate obiectele care au aceeai strucur a informaiei i un comportament similar.
-
Concluzii:
Un obiect se caracterizeaz prin: structura obiectului, cunoscut doar de el nsui (adic nu este accesibil din exterior);
un obiect poate fi manipulat numai prin metodele asociate lui;
prin ncapsulare structura i metodele obiectului nu pot fi modificate/accesate din exterior.
-
CLASA
O CLAS descrie ansamblul, eventual infinit, de obiecte care au proprieti similare, comportament comun, relaii comune cu alte obiecte i aceeai semantic;
Clasa abstractizeaz, un grup de obiecte similare.
EXEMPLE DE CLASE UTILAJE, MATERIALE, GESTIUNI, CLIENI.
-
Clasa
Tipuri de clase : CLAS ABSTRACT: definete o clas construit special
pentru a fi motenit i care, de obicei, nu are instane CLAS CONCRET: definete o clas construit pentru a
crea instane
-
CLASA
Gruparea obiectelor n clase este rezultatul abstractizrii, prin care se pleac de la cazuri particulare - strungul 2, freza orizontal - spre un ansamblu de cazuri similare Utilaje;
Clasa cuprinde elementele comune obiectelor ce-i aparin,adic descrierea atributelor i a operaiilor.
Fiecare obiect este o instaniere a clasei sale i conine numai valorile proprii corespunztoare fiecrui atribut; In plus, fiecare obiect menine permanent legtura cu clasa sa (clasa fiind, ca i identificatorul, un atribut implicit).
-
CLASA EXEMPLE DE CLASE I INSTANIERI ALE CLASEI:
-
ATRIBUTUL - definete o proprietate a obiectelor dintr-o clas - se reprezint sub numele clasei, prin specificarea numelui atributului i, opional, a tipului i a unei valori implicite a acestuia.
-
ATRIBUTE
Tipuri de atribute:
- Atributul CLASEI - Atribut DERIVAT
-
ATRIBUTUL CLASEI
definete atributul a crui valoare este comun unei clasei de obiecte, nu numai unei instane specifice numele su este precedat de simbolul $
Ex: atributul Proiecte P.O.O din structura unei clase Student este un atribut al clasei, cci definete o proprietate comun ntregii clase, i nu doar a unei anumite instane a acesteia (Studentul Gheorghiu G.). valoarea acestuia, implicit = 2 (un proiect pentru OMT i
unul pentru UML) va fi aceeai pentru toi studenii facultii de Informatic, indiferent de nume, dar pentru care valoarea atributului An_studiu este = 3
-
Reprezentare grafic
-
ATRIBUT DERIVAT
definete atributul a crui valoare se calculeaz pe baza valorii altor atribute
numele su este precedat de simbolul / de exemplu, atributul Medie_an_studiu din
structura aceleai clase Student este un atribut derivat, deoarece valoarea sa se calculeaz raportnd suma notelor obinute la toate disciplinele din cele dou semestre , la numrul acestora
-
Atribut derivate - Exemplu astfel, pentru obiectul Gheorghiu G.careaobinut trei note de
9 i patru note de 10 , valoarea atributului Medie_an_studiu va fi 9.57
-
Operaiile (metodele) pe care o clas le ofer clienilor si sunt :
modificare este o metod care altereaz starea obiectului clasei respective.
selectarea este o metod de accesare a strii obiectului, fr a o altera;
iterare este o operaie ce permite tuturor prilor unui obiect s fie accesate ntr-o ordine bine definit;
constructor operaia ce creaz un obiect i i iniializeaz starea (valorile atributelor);
destructor operaia care elibereaz starea unui obiect i/sau distruge obiectul nsui.
-
CLASA
Operaiile corespunztoare de creare i respectiv suprimare a obiectelor sunt denumite: constructori i respectiv, destructori. Spre exemplu pentru Clasa de Obiecte UTILAJ:
CONSTRUCTOR:operaiadeACHIZIIONARE (se creaz un nou obiect ca instan a clasei UTILAJ)
DESTRUCTOR:operaiadeCASARE (se suprim un obiect al clasei UTILAJ)
Cainstaniereauneiclase,oriceobiecttrebuie creat la un momentdatipoatedispreaatunci cnd nu mai este necesar
-
OPERAIA definete comportamentul obiectelor clasei reprezentarea unei operaii se face n seciunea inferioar a unei clase, prin specificarea numelui operaiei, urmat, opional, de parametrii i de tipul rezultatului returnat.
-
OPERAIACLASEI
definete o operaie definit pe o clas ntreag i nu doar pe o instan a acesteia
numele su este precedat de simbolul $ exemplu: se poate defini pentru clasa Student operaia
Identific_numr_materii_examen, deoarece stabilirea materiilor din planul de invatamant (pentru an sau semestru) dintr-un an de studiu este administrativ (fra nici o implicare din partea unui anumit obiect student)
astfel, aceast operaie este definit la nivelul ntregii clase a studenilor, i nu la nivelul unei anumite instane a acesteia.
-
Reprezentare grafica
-
CONCEPTE UTILIZATE N LUCRUL CU OPERAII METODA: semnific implementarea operaiilor une clase POLIMORFISM: definete proprietatea unei aceleai operaii de
a fi implementat diferit pe clase diferite de exemplu, operaia Stabilire_performane va avea metode
diferite (implementri specifice) pentru fiecare dintre clasele Studenti Profesori astfel, pentru un student performana poate fi identificat prin
media anual obinut la sfritul unui an de studiu, n timp ce pentru oricare dintre profesori performanele se pot concretiza n numrul de articole i crile scrise de-a lungul anului, premiile obinute la concursurile de specialitate, programele de cercetare ctigate, etc.
-
CLASA
Operaiile corespunztoare de modificare a strii i respectiv de consultare a strii obiectelor sunt denumite generic: modificatori i respectiv, selectori.
Spre exemplu pentru Clasa de Obiecte UTILAJ: MODIFICATOR:operaiadeREEVALUARE
(deoarece schimb valoarea rmas) SELECTOR:operaiadeAMORTIZARE_LUNAR
(deoarece furnizeaz o informaie despre starea utilajului n acest caz informaia este obinut prin calcul)
Incursulexisteneiunuiobiect,potapareoperaiice modificstareaacestuia sau permit consultareastriiacestuia
-
Operaie-metod-mesaj Operatia se definete n cadrul unei clase i reprezint o funcie, o prelucrare aplicat fiecrui obiect aparinnd clasei respective.
Implementarea concret a unei operaii pentru o clas se numete metod.
Mesajul este o cerere adresat unui obiect de ctre un alt obiect urmrind fie modificarea strii obiectului, fie extragerea unei valori.
Obs: Nu toate obiectele unei clase rspund la fel la un anumit mesaj.
-
OPERAIACLASEI definete o operaie definit pe o clas ntreag i
nu doar pe o instan a acesteia numele su este precedat de simbolul $ Ex: se poate defini pentru clasa Student operaia Identific_numr_materii_examen, deoarece stabilirea materiilor din planul de nvmnt (pentru an sau semestru) dintr-un an de studiu este exclusiv una administrativ (fr nici o implicare din partea unui anumit obiect student)
-
Operaia este definit la nivelul ntregii clase a studenilor, nu pentru o anumit instan a acesteia.
-
CLASA - METODA
Implementarea (maniera de execuie) fiecrei operaii este memorat n cadrul clasei i constituie o metod; Orice operaie are un argument implicit i anume: obiectul cruia i se adreseaz; Obiectul invocat va obine de la clasa creia i aparine metoda corespunztoare i o va aplica asupra datelor sale de stare; O operaie poate avea i alte argumente: exemplu, pentru execuia operaiei Amortizare_lunara este necesar s se mai precizeze luna i anul pentru care se face calculul; Numrul, tipul i ordinea argumentelor mpreun cu tipul rezultatului returnat - definesc semntura operaiei.
Metodaesteimplementareauneioperaiidectreoclas.
-
Observaie Clasele nu sunt izolate, intre ele exist relaii.
Relaiile ce pot exista ntre clase sunt: Asocierea Motenirea Agregarea Utilizarea Instanierea
-
Relaiile dintre clase Asocierea - o relaie dintre dou obiecte care sunt
independente. Ea reprezint o dependen semantic i nu precizeaz direcia acestei dependene: ea implic navigarea bidirecional. Asocierea poate fi de tip: 1:1; 1:m; m:n
Motenirea este proprietatea prin care o subclasa motenete structura i comportamentul superclasei sale.
Agregarea este o relatie ntreg/parte care d posibilitatea de a naviga de la ntreg (numit agregat) ctre prile sale sau nu. Agregarea este un caz particular de asociere.
-
Relaiile dintre clase - continuare Utilizarea este o relaie care poate fi privit ca posibil
rafinare a unei asocieri prin care se precizeaz care din abstracii este clientul i care este furnizorul unui anumit serviciu.
Instanierea. O clasa parametrizata (clasa generica) este o clas care servete ca ablon (cadru) pentru alte clase. O clas generic trebuie instaniat (parametrii sai trebuie completai) nainte de crearea obiectelor clasei respective. Dac o clas generic utilizeaz o alt clas generic, amndou trebuie instaniate.
-
Asocierea
Legtura exprim o conexiune fizic sau conceptual ntre obiecte (instane)
Asocierea indic grupul de legturi cu aceeai structur i aceeai semantic.
-
Asocierea
definete conexiunea ntre obiecte reprezint descrierea unui grup de legturi cu aceiai structur i semantic asocierile reprezint abstractizri ale legturilor
(aa cum obiectele sunt abstractizri ale claselor) legturile dintre obiecte sunt instane ale
asocierii dintre dou clase, astfel nct trebuie modelate doar asocierile dintre clase i nu legturile dintre obiecte.
-
Asocierea - Reprezentare
oasocierentredouclasesereprezintnmetodologiaOMT printr-oliniecareconecteazdouclase numele asocierii sereprezintderegulprintr-un verb isetrecedeasupralinieiceconecteazclasele,indicnd sensul asocierii.
-
Multiplicitatea asocierii
reprezinto caracteristicdebazaasocierii iindicnumrul de instane ale unei clase care pot avea legturi cu o instan a celeilalte clase dintr-o asociere.
multiplicitatea asocierii dintre dou clase, poate fi de tipul:
UNU LA UNU UNU LA ZERO SAU MAI MULI UNU LA ZERO SAU UNU UNU LA UNU SAU MAI MULI
-
MULTIPLICITATEA UNU LA UNU (1:1)
Presupunem Carnet_Note este o clas distinct serie, numr, universitate, nr_matricol _student etc. Putem identifica o relaie de tipul unu la unu n asocierea cu clasa Student nr _matricol, nume, adresa etc - din cadrul unei singure faculti: un Student poate avea n cadrul unei faculti un singur Carnet de Note, iar un Carnet de Note poate fi atribuit unui singur Student.
-
MULTIPLICITATEA UNU LA UNU LA ZERO SAU UNU (1:0/1)
Un Student poate obine sau/nu la sfritul unui an universitar o singur Burs de Studiu.
-
MULTIPLICITATEA UNU LA ZERO SAU MAIMULI(1:0/M)
Un Student poate participa ntr-un an de studiu la (nici unul) zero/sau mai multe Cursuri Opionale din cadrul unei faculti.
-
MULTIPLICITATEA UNU LA UNU SAU MAIMULI(1:1/M)
Un Student frecventeaz obligatoriu minim cursurile unei Universiti, (dar poate fi Student i la mai multe instituii de nvmnt superior)
-
ATRIBUTELE ASOCIERII
Atributul unei asocieri nu poate aparine nici uneia dintre cele dou clase implicate n asociere; Astfel:
-
Explicatie
atributulValoare_Burs_Studiunuaparine,caocaracteristic,niciclaseiStudentiniciclaseiFacultate.
este oconsecinaasocieriidintreceledouclase:unstudentobineobursdestudiu - cuoanumitsum- la o facultate)
-
CURS 5-6
ANALIZIPROIECTAREORIENTATOBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU
-
Relaiile dintre clase Asocierea - o relaie dintre dou obiecte care sunt
independente. Ea reprezint o dependen semantic i nu precizeaz direcia acestei dependene: ea implic navigarea bidirecional. Asocierea poate fi de tip: 1:1; 1:m; m:n
Motenirea este proprietatea prin care o subclasa motenete structura i comportamentul superclasei sale.
Agregarea este o relatie ntreg/parte care d posibilitatea de a naviga de la ntreg (numit agregat) ctre prile sale sau nu. Agregarea este un caz particular de asociere.
-
Relaiile dintre clase - continuare Utilizarea este o relaie care poate fi privit ca posibil
rafinare a unei asocieri prin care se precizeaz care din abstracii este clientul i care este furnizorul unui anumit serviciu.
Instanierea. O clasa parametrizata (clasa generica) este o clas care servete ca ablon (cadru) pentru alte clase. O clas generic trebuie instaniat (parametrii sai trebuie completai) nainte de crearea obiectelor clasei respective. Dac o clas generic utilizeaz o alt clas generic, amndou trebuie instaniate.
-
ASOCIERI ORDONATE
Obiectele din partea muli ale unei asocieri au de obicei o ordine explicit, putnd fi vzute ca un SET!
Astfel, prin specificarea termenului {ordonat} lng punctul care indic multiplicitatea, se reflect faptul c SETUL de obiecte va fi vzut ca un SET ORDONAT.
-
ASOCIERI ORDONATE
Formageneraldereprezentareaunei ASOCIERI ORDONATE este:
-
ASOCIERI ORDONATE
Exemplu, dac se specific faptul c o Persoan - definit ca Superclas pentru clasa Student - poate obine o serie de diplome i c ordinea (cronologic) de obinere a acestora conteaz diplom bacalaureat, diplom licen, masterat, doctorat - atunci se poate discuta despre o asociere ordonat:
-
ASOCIERI TERNARE
n mod uzual, o asociere este realizat ntre dou clase. Exist ns i asocieri ntre mai multe clase. Dintre acestea fac parte ASOCIERILE TERNARE care
reprezint asocieri ntre 3 clase Formageneraldereprezentare
-
ASOCIERI TERNARE Ex: Asocierea Obine este o Asociere ternar ntre 3 clase: Student,
Diplom (licen) i Facultate: un Student poate obine o Diploma de licen doar prin
absolvirea unei Faculti (prin intermediul unei faculti) Asocierea Obine nu poate fi divizat n Asocieri (duale) ntre
clasele implicate Student i Facultate - fr a se pierde din semnificaia (ternar) a asocierii.
-
NUMELE DE ROL
Este un concept prin care se identific n mod unic capetele unei asocieri
O Clas, care are definit mai mult de o asociere, poate juca roluri diferite fa de fiecare dintre acestea.
Forma de reprezentare:
-
NUMELE DE ROL
Ex: clasaPerformane poateaveaDOUROLURIdiferite,dindoupunctedevederediferite:
Pentru un Student, Performana (rezultatele) se concretizeaz n obinerea unei Burse de Studiu, n timp ce pentru o Firm, Performana se traduce prin obinerea unei Cifre de Afaceri maxime
n concluzie: exist nume de rol diferite - Burs i respectiv, Cifr de afaceri - pentru aceeai clas de Performane-Rezultate:
-
ASOCIERI CALIFICATE
Reprezint asocieri de tipul unu la muli sau muli la muli la care un atribut special (numit CALIFICATOR) reduce multiplicitatea efectiv.
Un CALIFICATOR distinge ntre seturile de obiecte de la captul muli al unei asocieri
Forma general:
-
EX:
Asocierea iniial de tipul unu la unu sau muli (a.), se transform n asociere de tipul unul la unu (b.) prin introducerea CALIFICATORULUI P.O.O. (examen la disciplina Proiectare Orientat Obiect)
Astfel, dac n varianta a un Student putea susine unu sau mai multe Examene, prin introducerea calificatorului P.O.O, tipul muli din asociere (examene) se identific acum strict (unu la unu) cu partea Student.
Deci un Student, prin calificatorul P.O.O, va susine un singur Examen n sesiune, cel la disciplina POO !.
-
GENERALIZAREA CLASELOR
Permit partajarea caracteristicilor comune ntre clase, pstrnd totodat diferenele dintre acestea.
Generalizarea presupune identificarea atributelor i/sau operaiilor comune mai multor clase i izolarea lor n superclase.
-
Ne amintim c: Un model entitate asociere poate fi dezvoltat ulterior,funciedecondiiileconcreteale
problemei date, prin: generalizare sau definire de supertipuri; specializare sau definire de subtipuri; introducereatimpuluiicreareaunuimodeltemporal.
Astfel, prin generalizare se grupeaz, n cadrul modelului EA, caracteristicile comune ntr-un supertip de entitate, n timp ce elementele de descriere specifice sunt grupate n subtipuri de entiti.
-
Generalizarea
Este procesul prin caredousaumaimultetipurideentitisuntgeneralizate,pebazaproprietilorcomune, ntr-un nou tip.
naceastrelaie,tipurileiniialedevinsubtipuri aletipuluiobinutpringeneralizare(Angajat).
Dacnereferim la o universitate, tipurile de entitiAngajat iStudent pot fi generalizate prin tipul PERSOANA, care va prelua astfel atributele comune ale acestora: Nume, Prenume, Data naterii,Adresa,Telefon,Domiciliu,CodNumericPersonal, etc.
-
Superclasa: Angajat; Subclase: Muncitor, Economist
ANGAJAT Marca Nume Loc munca Data nasterii .
MUNCITOR
Meserie Calificare
ECONOMIST
Specialitate
#
ANGAJAT Marca Nume Loc munca nasterii Data nasterii ...
MUNCITOR
Meserie Calificare
ECONOMIST
Specialitate
1,1
0,1 0,1
1,1 este-un este-un
Se poate observa existena unor asocieri Subtip, n care cardinalitatea subtipurilor este 1,1 iar a supertipului (superclasei) este 0,1.
-
Specializarea claselor
Specializarea claselor esteopusGeneralizriiiarecapunctdeplecareosuperclaslacareseadaugnoiatribute relevante numai pentru anumiteobiectedinaceaclas,crendastfel subclase.
-
Specializarea
Definirea unor subclase se poate face n principal, astfel:
pe baza valorilor unui anumit atribut ; pe baza unor criterii definite de utilizator. Prin definirea de subclase se efectueaz
specializarea entitilor superclasei acestora (Angajat).
Ele motenesc toate atributele superclasei i pot avea atribute proprii specifice, inexistente la nivelul superclasei.
-
Observatie
Specializarea poate fi: total,ceeacenseamncoriceentitate
a tipului face parte, obligatoriu, dintr-un subtip;
parial, nsemnndcpotexistaentiticaresnuaparinniciunuisubtip.
Generalizarea,obinndu-se prin gruparea tipurilordeentitidejaexistente,nupoatefi dect total.
-
MOTENIREA reprezintunmecanismcedposibilitateapartajriiatributelorioperaiilorutilizndrelaiadegeneralizare
Motenireapermiteexprimarearelaiilordegeneralizare/specializaredintre clase
-
MOSTENIREA
Motenirea desemneaz partajarea atributelor i operaiilor unei (sau unor) clase de ctre o alt clas (sau alte clase) n cadrul unei relaii ierarhice, pstrnd nealterate diferenele dintre ele. Clasa de la care se motenete este numit SUPERCLAS, iar clasa care motenete poart numele de SUBCLAS sau CLAS DERIVAT Motenirea este tranzitiv pe un numr orict de mare de nivele. Instanierea unei subclase este simultan instaniere a tuturor superclaselor sale.
-
operaiile i atributele comune mai multor clase se pot izola definiind structura unei noi clase, numit superclas.
clasele din care provin atributele i/sau operaiile comune, preluate de la superclas, devin acum subclase ale acesteia.
atributele i operaiile superclasei nu mai apar n cadrul subclaselor ataate ei, dar ele aparin acestora prin motenire.
-
n subclase se descriu numai atributele i/sau operaiile specifice fiecreia dintre ele.
Superclasele i subclasele se mai numesc prini/copii sau strmoi/descendeni.
-
MOTENIREA Exemplu de definire a RELAIEI DE MOTENIRE dintre SUPERCLASE I SUBCLASE:
RelaiademoteniredintreclaselePersoanaiStudent: Un Studenteste o Persoan:
n contextul partajrii atributelor i operaiilor de ctre clasa care motenete - proprietile Persoanei (Nume, Prenume, CNP, Data naterii etc) - vor fi motenite de ctre Student, fr a mai fi necesar repetarea lor;
n contextul pstrrii nealterate a diferenelor dintre ele pentru un Student vor fi menionate doar proprietile suplimentare specifice, cum ar fi: Facultate, AnStudii, Medie etc.
-
Exemplu: orelaiedemotenireSuperclasa/subclasa
-
Explicaie figur: Se presupun dou clase: Liceniat i Doctorand - ambele avnd att
atribute comune - Nume, Prenume, Adresa, Data naterii, Facultate, Medie Anual i Foaie Matricol ct i operaii comune - precum Aprofundare Studii i Medie Final;
Cele dou clase se pot generaliza i se creaz astfel clasa Student, cu atributele i operaiile comune celor dou clase;
Deoarece att Liceniatul, ct i Doctorandul provintot din structura de Student, nici unul nici cellalt, nu i pot definitiva studiile dac nu au baza de Student;
Clasa Liceniat presupune ns i atribute specifice, care nu se regsesc n clasa Doctorand i ca urmare acestea nu vor apare i n clasa printe.
Operaiile din clasa de baz sunt motenite de ctre clasele derivate, dar exist i posibilitatea suprascrierii acestor operaii n clasele derivate.
-
Observatie
Generalizarea este util att n modelarea conceptual, ct i n implementare, devenind sinonim cu noiunea de reutilizare a codului.
Atributele reutilizabile sunt grupate n superclase, urmnd ca fiecare programator s-i implementeze subclase proprii prin care s adauge trsturi i metode noi superclaselor, specifice aplicaiei.
-
Observaie Fiecare subclas va moteni deci metodele i atributele superclasei n care se include.
Prin generalizare se grupeaz informaiile cele mai generale din clase la nivelul superclasei.
Clasele vor fi specializate din aproape n aproape n subclase, implementnd comportamente din ce n ce mai particulare
-
POLIMORFISMUL Termenul POLIMORFISM estederivatdindoucuvinte
greceti:POLI, carenseamnMULTEiMORPHOS, carenseamnFORM
.
Polimorfismul desemneazcapacitateauneioperaiideaseaplica obiectelor din clase diferite.
Unul dintre cele mai comune exemple de polimorfism este reprezentat de operatorii+i-(minus),careexprimadunarea,respectivscderea,attpentrunumerelentregictipentru cele reale.
Spre exemplu: Operaia:Amortizare_lunarasevarealizanmaniere
diferite pentru clasele: UTILAJ, CONCESIUNE sau TITLU DE PARTICIPARE
Operaiilepolimorfesunt implementate de mai multe clase prin metode diferite.
-
ABSTRACTIZAREA esteprocesulprincareseizoleazisereinnumaio
parte dintre aspectele unei probleme, considerate eseniale, ignorndu-le pe celelalte
ASPECTELE REINUTE depind de scopul urmrit. Rezult de aici c, pentru aceeai problem sau aspect al
realitii, pot exista mai multe abstractizri diferite. Spre exemplu: OBIECTUL STRUNGUL 2 va fi privit n mod
diferit de ctre CONTABIL i de ctre MECANICUL DE NTREINERE:
CONTABILUL va fi interesat de valoarea mijlocului fix de intrare, de metoda de amortizare folosit, de modernizarea sau de reevaluare sa n timp; MECANICUL va fi interesat de numrul de ore de funcionare, de piesele componente, de gradul de uzur fizic sau de data ultimei reparaii.
-
ABSTRACTIZAREA permite concentrarea asupra aspectelor
conceptual-funcionaleievitarealuriiprematurenconsideraieadetaliilor
ASPECTELE REINUTE depind de scopul urmrit. Rezult de aici c, pentru aceeai problem sau aspect al
realitii, pot exista mai multe abstractizri diferite. Spre exemplu: OBIECTUL STRUNGUL 2 va fi privit n mod
diferit de ctre CONTABIL i de ctre MECANICUL DE NTREINERE:
CONTABILUL va fi interesat de valoarea mijlocului fix de intrare, de metoda de amortizare folosit, de modernizarea sau de reevaluare sa n timp; MECANICUL va fi interesat de numrul de ore de funcionare, de piesele componente, de gradul de uzur fizic sau de data ultimei reparaii.
-
ABSTRACTIZAREA igsetemultipleutilizrininformatic,petot
parcursuldezvoltriiuneiaplicaiiinformatice,indiferentdemetoda(saudelipsademetod)folosit
Spre exemplu: CLASELE reprezint ABSTRACTIZRI ale unor MULIMI DE OBIECTE;
Una dintre uzanele specifice ABSTRACTIZRII, const n formularea n termeni informatici - nregistrare, cheie, procedur, funcie, modul etc - a unor concepte sau pri ale lumii reale, cu un nivel mult mai nalt de abstractizare - persoane, structuri organizatorice, utilaje, facturi etc.
-
NCAPSULAREA plaseazobarierntrecomportamentulexterior
idetaliileinterne
este numit i mascarea informaiilor i const n gruparea tuturor detaliilor de implementare - moduri de reprezentare i mecanisme de realizare a comportamentului - ntr-o parte ascuns, inaccesibil din exterior ;
cooperarea cu restul componentelor are loc prin intermediul unei interfee, care expune numai caracteristicile funcionale utilizrii;
prin ncapsulare se reduce gradul de interdependen ntre componente: dac sunt necesare modificri pentru nlturarea unor erori sau pentru ameliorarea performanelor de execuie, aceasta afecteaz numai partea de implementare;
astfel, interfaa rmne neschimbat i, n consecin, funcionarea celorlalte componente ale aplicaiei nu este afectat.
-
NCAPSULAREA oclasnutrebuiesexpundectansambluloperaiilorcare formeazcomportamentulinstanierilorsale,adicatributele
trebuiesfiemascate,deciinvizibileiinaccesibiledinexterior
nconsecin,suntnecesareoperaiidistincte pentru consultareaimodificarea- saucelpuininiializareaconinutuluiatributelorncapsulate(ascunse);
Spre exemplu pentru clasa Utilaj: alturi de operaiile existente de Reevaluare, Casare, Achiziionare, Valoare_rmas i Amortizare_lunar, este necesar adugarea de noi operaii pentru consultarea i atribuirea de valori pentru cele patru atribute: Numr_inventar,Data_intrare,
Valoare_contabil_intrare,Denumire.
-
NCAPSULAREA
ntruct aceste operaii noi adugate au un caracter implicit, ele pot s nu fie specificate n cursul analizei i proiectrii, dar vor trebui s apar, obligatoriu, n faza de programare.
-
NCAPSULAREA pentru a permite mascareaselectivaatributelori
metodelor,indispensabilnpractic, se recurge la conceptul de VIZIBILITATE
n termeni generali, pentru ca unobiectspoatinvocaooperaiesausfacreferirelaunatribut, acesteatrebuiesfieVIZIBILEPENTRUEL;
Vizibilitateaestestructuratpetreinivele: PUBLIC,PRIVATIPROTEJAT:
PRIVAT: atributele i metodele private sunt invizibile i, n consecin, inaccesibile tuturor celorlalte clase; PUBLIC: prin contrast, atributele i metodele publice sunt expuse i deci accesibile ntregului sistem; PROTEJAT: nivelul protejat limiteaz vizibilitatea la ansamblul subclaselor;
-
NCAPSULAREA VIZIBILITATEA poate fi fixatindividualpentrufiecareatributioperaie,respectivmetod,ceeaceoferunspordeflexibilitate.Gradul de ncapsulare este indicat de nivelul de vizibilitate.
Spre exemplu: fie Clasa Imobilizri, care are menirea de a grupa caracteristicile comune tuturor imobilizrilor, fie acestea corporale, necorporale sau financiare;
Printre altele, aici pot exista operaii distincte pentru fiecare dintre metodele de calcul ale amortizrii: liniar, degresiv i accelerat;
Subclasele acesteia, printre care se numr i Utilaje, vor invoca, fiecare, operaia sau operaiile de care au nevoie pentru calcularea amortizrii, conform specificului obiectelor pe care le reprezint;
Toatecelelalteclasedinsistemnuaunevoiescunoascexistenalor: prin urmare, nivelul adecvat de vizibilitate este protejat;
Coeficienii folosii de unele metode de calcul a amortizrii nu trebuie ns cunoscui dect n cadrul clasei Imobilizri: n consecin, atributele care memoreaz coeficenii sunt private (invizibile pt. subclase).
-
REUTILIZAREA constituie unul dintre marile avantaje promise de
abordareaorientatpeobiecte
Calitile de modularitate i flexibilitate conferite prin aplicarea abstractizrii, ncapsulrii i motenirii permit construirea de biblioteci de componente reutilizabile, ce pot fi direct asamblate corespunztor cerinelor fiecrei aplicaii aa cum se face, spre exemplu, cu crmizile sau prefabricatele la ridicarea unei construcii;
La economia de efort de concepie i programare realizate astfel, se adaug i o calitate superioar, provenit din faptul c aceste componente sunt studiate, dezvoltate i testate independent;
-
REUTILIZAREA Motenireastructurilordedateiacomportamentului
contribuie ntr-un mod specific la REUTILIZARE
REUTILIZAREA se manifest n primul rnd la nivelul codului de scris ntr-un limbaj de programare, care devine mult mai redus deoarece pentru dezvoltarea unei noi subclase este necesar s se redacteze numai prile specifice acesteia, restul fiind obinut de la superclas;
REUTILIZAREA s-a extins i spre nivelele care preced programarea propriu-zis, sub forma abloanelor (patterns) i a arhetipurilor: au fost astfel definite abloane de arhitectur, abloane de analiz, abloane de proiectare i abloane de modelare a ntreprinderii (business patterns).
-
PERSISTENA ScopulPERSISTENEIesteaceladeapermite
obiectelors"supravieuiasc"delaoexecuielaalta
ntruct NU toate obiectele trebuie conservate, prin PERSISTEN, se poate recurge la termenii de:
OBIECTE EFEMERE sau OBIECTE TRANZITORII, pentru obiectele a cror existen poate nceta odat cu ncheierea execuiei programului; OBIECTE PERSISTENTE, pentru obiectele care trebuie conservate, astfel nct, la urmtoarea execuie, s poat fi regsite n starea pe care o aveau la terminarea prelucrrii precedente PERSISTENA EXPRIMSARCINAMEMORRIIOBIECTELOR
DELAOEXECUIELAALTA
-
EXEMPLU SUGESTIV DE ABORDARE ORIENTATOBIECT
Starea fiecruia dintre cele opt obiecte este definit, la o prim vedere, de poziia pe tabl, respectiv de linia i coloana pe care se afl i care, din motive de simplitate, pot fi notate prin valori numerice cuprinse ntre 1 i 8.
n termenii conceptelor O.O, cele opt piese de ah ce trebuie amplasate sunt obiecte ale unei singure clase "Regina".
Comportamentul semnificativpentruproblem,alacestora constncapacitateadeaatacapelinie,pecoloan
ipediagonale.
Problemaceloroptreginepetabladeah! Sgseascosoluiedeamplasarepetabladeahaoptregine(piesedeah),aacesteasnuseatacereciproc!
-
Cumpoatefiidentificatfiecarepiesdintreceleopt?
SOLUIA!Identitatea obiectelor, independentdeoriceproprietatesauatribut
alobiectelor,promovatdeabordareaobiectual,ofersoluieacesteintrebri.
CERINPRACTIC:
Evident, piesele sunt identice ca form, mrime, culoare, deci nu exist posibiliti de difereniere sub acest aspect. Poziiaocupatpetablnu poate nici ea servi dreptidentificator,pentrusimplulmotivcestechiarceeaceproiectantulncearcsgseasc.
-
Cesolicitproblemadinpunctulde vedere al unei regine ?
Rspunsul a fost deja formulat: gsirea unei poziii inatacabile de ctre celelalte.
Cepoatefaceoreginnacestscop? S se aeze pe o poziie linie i coloan iniial i s le ntrebe pe celelalte dac o pot ataca. In cazul n care rspunsul primit este negativ, nseamn c soluia a fost gsit. Dac nu, regina n cauz va cuta o nou poziie i se va interesa dac n noul amplasament este vulnerabil. OBSERVAIE: Pentru a simplifica lucrurile, se poate presupune c reginele sunt aezate din start pe coloane diferite, astfel nct, ceea ce trebuie eventual schimbat, este doar linia.
-
Din aceleairaiuni,oreginpoatecunoateidialoganumai
cu una din vecinele sale, spre exemplu cea din stnga.
In concluzie:
fiecare reginvaaveatrei atribute: linia, coloana ireginavecindin stnga. fiecare reginvaaveatrei operaii:
gseteopoziieiniial,gsetealtpoziie, poziiaeste atacabila?.
OBSERVAIE: Cele trei operaii ale reginei sunt executate de ctre fiecare regin n raport cu starea acesteia, astfel putndu-se examina, n temeni generali, aciunea fiecreia.
-
Figura:Unobiectalclasei"regindeah",ncutareauneipoziiiinatacabile
dectrealtereginedepetabl.
-
1. Gseteopoziieiniialva atribuilinieivaloarea1ivantrebavecinasadinstngadacpoateataca
poziiancaresegsete. Dac vecina rspunde afirmativ, regina aflat n cutarea poziie iniiale trebuie s caute o alt amplasare.
2. Gsete alt porie face exact acest lucru: incrementeaz cu 1 linia curent i o ntreab din nou pe vecina din stnga dac poate ataca noua poziie. ntrebrile adresate vecinei invoc operaia poziia este atacabil, ale crei argumente sunt linia i coloana la care se refer ntrebarea i al crei rspuns este un simplu da sau nu
Vecina ntrebat va verifica dac poziia indicat poate fi atacat de ea nsi i, n caz contrar, o va ntreba mai departe, pe vecina sa din stnga, dac poate ataca poziia respectiv.
-
OBSERVAIE:Dacrspunsuriletuturor reginelor interogate sunt negative, atunci poziiaregineieste
inatacabil. Totodat,trebuieprecizateicerinelepracticedeproiectareprivindevitareaieiriireginelordinspaiul
celor 8 linii ale tableideah.
Pentru adeclanarezolvarea,maiestenecesarocerin prin caressefacamplasareareginelorpecteo coloaniemitereactreprimadintreacesteaaunui
mesaj princareiseceres-igseascopoziieiniial. Aceastavadeclanainteraciuneadintreregine,derulatprinemitereareciprocdemesajeceinvocceletreioperaiiamintite,pncndtoatei-augsitpoziiiinatacabileiprelucrareanceteazdelasine.
-
Metodologia O.M.T. (Object Modeling Tehnique)
OMT - este o tehnic de dezvoltare a software-ului bazat pe modele ca abstracii ale problemelor din lumea real, menite s focalizeze aspectele importante ale problemei i s omit pe cele irelevante.
Modelul are trei aspecte importante: ABSTRACTIZAREA REALITII - pentru aceeai problema se pot crea mai multe modele care s focalizeze diferite aspecte. SCOPUL MODELULUI - se focalizeaz ceva cunoscut COMUNICAREA - modelul trebuie neles de toi membrii echipei de analiz-proiectare, precum i neles i validat de utilizator.
-
TIPURI DE MODELE UTILIZATE N O.M.T:
Metodologia O.M.T. propune trei tipuri de modele, pentru trei scopuri diferite: Modelul OBIECTUAL, Modelul DINAMIC i Modelul FUNCIONAL.
MODELUL OBIECTUAL: prezintstructurastaticasistemului identificclaseleiobiectelesistemuluiidescrieatributele,operaiileirelaiiledintreele
este reprezentat grafic prin: DIAGRAMA DE ASOCIERE A CLASELOR
(DAC)
-
ModelulDINAMICiModelulFUNCIONAL
MODELUL DINAMIC: prezintaciunile(comportamentuldebaz)alsistemului
MODELUL DINAMIC: prezintaciunile(comportamentuldebaz)alsistemului reflectdinamicaobiectelorimodificrilestrilorlor,reliefndmoduln
careesteinfluenatunobiectde-alungulcicluluidevia este reprezentat grafic prin:
DIAGRAMA DE TRASARE A EVENIMENTELOR (DTE) DIAGRAMA DE TRANZI IEASTRILOR(DTS)
MODELULFUNCIONAL: prezintfunciilesistemului,darnuimodulncaresedesfoar descrievaloriledatelor,precizndsursalor,transformrilelori
destinaialor este reprezentat grafic prin:
DIAGRAMA DE FLUX DE DATE (DFD)
MODELUL FUNCIONAL: prezintfunciilesistemului,darnuimodulncaresedesfoar
-
CURS 7-8
ANALIZIPROIECTAREORIENTATOBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU
-
Relaiile dintre clase Asocierea - o relaie dintre dou obiecte care sunt
independente. Ea reprezint o dependen semantic i nu precizeaz direcia acestei dependene: ea implic navigarea bidirecional. Asocierea poate fi de tip: 1:1; 1:m; m:n
Motenirea este proprietatea prin care o subclasa motenete structura i comportamentul superclasei sale.
Agregarea este o relatie ntreg/parte care d posibilitatea de a naviga de la ntreg (numit agregat) ctre prile sale sau nu. Agregarea este un caz particular de asociere.
-
Relaiile dintre clase - continuare Utilizarea este o relaie care poate fi privit ca posibil
rafinare a unei asocieri prin care se precizeaz care din abstracii este clientul i care este furnizorul unui anumit serviciu.
Instanierea. O clasa parametrizata (clasa generica) este o clas care servete ca ablon (cadru) pentru alte clase. O clas generic trebuie instaniat (parametrii sai trebuie completai) nainte de crearea obiectelor clasei respective. Dac o clas generic utilizeaz o alt clas generic, amndou trebuie instaniate.
-
AGREGARE/DESCOMPUNERE
sunt operaii semantice n care, clasele rezultate din descompunere, sunt pri ale clasei agregate.
AGREGAREA : descrie un obiect ca fiind constituit din mai multe
obiecte. se folosete la gruparea claselor ntr-o nou clas.
se folosete la construcia unui obiect complex, rezultat din gruparea lui n prile componente
-
Agregarea
Agregarea se refer la prile componente ale unui ntreg Este un tip special de asociere ntre o clas NTREG i una sau mai multe clase de tip PARTE. sunt operaii semantice n care clasele rezultate din
descompunere sunt pri ale clasei agregate. Forma general a relaiei de agregare PARTE-NTREG:
-
Observaie Agregarea este o relaie ntreg/parte care permite
navigarea de la ntreg (numit agregat) ctre prile sale sau nu.
Agregarea i motenirea se reprezint sub form de arbore, astfel:
- un arbore de agregare este format din acele obiecte care sunt pri ale obiectului compus; - un arbore de generalizare este format din clasele care descriu aceleai obiecte, dar la nivele de detaliere diferite
-
Exemplu
PentruobinereaDiplomeideLicendectreunabsolvent,iimplicit,astatutuluideliceniat,unstudenttrebuiessusin n cadrulExamenuluideLicen douprobe,respectivdouexemene distincte castructurimoddedesfurare dar ambeleprialeaceluiaintreg(Licena): oprobscris:reprezentndverificareacunotinelorteoreticeale
absolventului o prob practic: reperezentnd susinerea Proiectului de Diplom,
respectiv prezentarea unui produs program propriu.
-
Explicaie Fiecare din cele dou pri ale Examenului de Licen teoretic i practic, respectiv Partea scris i Proiectul pot fi integrate n sistemul Licen ca fiind dou clase, cu atributele i operaiile corespunztoare reprezentate de:
DatScris,ComisieScris,GrilScris,PunctajScris,nscrieNot,AcceptConstestaietc
respectiv:DatSusinereProiect,ComisieProiect,NotPrezentareProiect,FormuleazAprecieri,StabileteNotProiectetc
-
Explicaie - continuare Legturastabilitntreparteintregnaceastasociereestedetipulunulaunu
Aceasta nseamn c att Parteateoreticct iProiectuldeDiplompotfisusinuteosingurdat,ncadruluneisesiunidelicen(nusepotprezentaabsolvenide programe de licen pentru a suine, n aceeaisesiune, una dintre probe de mai multe ori)
-
POLIMORFISMUL Termenul POLIMORFISM estederivatdindoucuvinte
greceti:POLI, carenseamnMULTEiMORPHOS, carenseamnFORM
.
Polimorfismul desemneazcapacitateauneioperaiideaseaplica obiectelor din clase diferite.
Unul dintre cele mai comune exemple de polimorfism este reprezentat de operatorii+i-(minus),careexprimadunarea,respectivscderea,attpentrunumerelentregictipentru cele reale.
Spre exemplu: Operaia:Amortizare_lunarasevarealizanmaniere
diferite pentru clasele: UTILAJ, CONCESIUNE sau TITLU DE PARTICIPARE
Operaiilepolimorfesunt implementate de mai multe clase prin metode diferite.
-
ABSTRACTIZAREA esteprocesulprincareseizoleazisereinnumaio
parte dintre aspectele unei probleme, considerate eseniale, ignorndu-le pe celelalte
ASPECTELE REINUTE depind de scopul urmrit. Rezult de aici c, pentru aceeai problem sau aspect al
realitii, pot exista mai multe abstractizri diferite. Spre exemplu: OBIECTUL STRUNGUL 2 va fi privit n mod
diferit de ctre CONTABIL i de ctre MECANICUL DE NTREINERE:
CONTABILUL va fi interesat de valoarea mijlocului fix de intrare, de metoda de amortizare folosit, de modernizarea sau de reevaluare sa n timp; MECANICUL va fi interesat de numrul de ore de funcionare, de piesele componente, de gradul de uzur fizic sau de data ultimei reparaii.
-
ABSTRACTIZAREA permite concentrarea asupra aspectelor
conceptual-funcionaleievitarealuriiprematurenconsideraieadetaliilor
ASPECTELE REINUTE depind de scopul urmrit. Rezult de aici c, pentru aceeai problem sau aspect al
realitii, pot exista mai multe abstractizri diferite. Spre exemplu: OBIECTUL STRUNGUL 2 va fi privit n mod
diferit de ctre CONTABIL i de ctre MECANICUL DE NTREINERE:
CONTABILUL va fi interesat de valoarea mijlocului fix de intrare, de metoda de amortizare folosit, de modernizarea sau de reevaluare sa n timp; MECANICUL va fi interesat de numrul de ore de funcionare, de piesele componente, de gradul de uzur fizic sau de data ultimei reparaii.
-
ABSTRACTIZAREA igsetemultipleutilizrininformatic,petot
parcursuldezvoltriiuneiaplicaiiinformatice,indiferentdemetoda(saudelipsademetod)folosit
Spre exemplu: CLASELE reprezint ABSTRACTIZRI ale unor MULIMI DE OBIECTE;
Una dintre uzanele specifice ABSTRACTIZRII, const n formularea n termeni informatici - nregistrare, cheie, procedur, funcie, modul etc - a unor concepte sau pri ale lumii reale, cu un nivel mult mai nalt de abstractizare - persoane, structuri organizatorice, utilaje, facturi etc.
-
NCAPSULAREA plaseazobarierntrecomportamentulexterior
idetaliileinterne
este numit i mascarea informaiilor i const n gruparea tuturor detaliilor de implementare - moduri de reprezentare i mecanisme de realizare a comportamentului - ntr-o parte ascuns, inaccesibil din exterior ;
cooperarea cu restul componentelor are loc prin intermediul unei interfee, care expune numai caracteristicile funcionale utilizrii;
prin ncapsulare se reduce gradul de interdependen ntre componente: dac sunt necesare modificri pentru nlturarea unor erori sau pentru ameliorarea performanelor de execuie, aceasta afecteaz numai partea de implementare;
astfel, interfaa rmne neschimbat i, n consecin, funcionarea celorlalte componente ale aplicaiei nu este afectat.
-
NCAPSULAREA oclasnutrebuiesexpundectansambluloperaiilorcare formeazcomportamentulinstanierilorsale,adicatributele
trebuiesfiemascate,deciinvizibileiinaccesibiledinexterior
nconsecin,suntnecesareoperaiidistincte pentru consultareaimodificarea- saucelpuininiializareaconinutuluiatributelorncapsulate(ascunse);
Spre exemplu pentru clasa Utilaj: alturi de operaiile existente de Reevaluare, Casare, Achiziionare, Valoare_rmas i Amortizare_lunar, este necesar adugarea de noi operaii pentru consultarea i atribuirea de valori pentru cele patru atribute: Numr_inventar,Data_intrare,
Valoare_contabil_intrare,Denumire.
-
NCAPSULAREA
ntruct aceste operaii noi adugate au un caracter implicit, ele pot s nu fie specificate n cursul analizei i proiectrii, dar vor trebui s apar, obligatoriu, n faza de programare.
-
NCAPSULAREA pentru a permite mascareaselectivaatributelori
metodelor,indispensabilnpractic, se recurge la conceptul de VIZIBILITATE
n termeni generali, pentru ca unobiectspoatinvocaooperaiesausfacreferirelaunatribut, acesteatrebuiesfieVIZIBILEPENTRUEL;
Vizibilitateaestestructuratpetreinivele: PUBLIC,PRIVATIPROTEJAT:
PRIVAT: atributele i metodele private sunt invizibile i, n consecin, inaccesibile tuturor celorlalte clase; PUBLIC: prin contrast, atributele i metodele publice sunt expuse i deci accesibile ntregului sistem; PROTEJAT: nivelul protejat limiteaz vizibilitatea la ansamblul subclaselor;
-
NCAPSULAREA VIZIBILITATEA poate fi fixatindividualpentrufiecareatributioperaie,respectivmetod,ceeaceoferunspordeflexibilitate.Gradul de ncapsulare este indicat de nivelul de vizibilitate.
Spre exemplu: fie Clasa Imobilizri, care are menirea de a grupa caracteristicile comune tuturor imobilizrilor, fie acestea corporale, necorporale sau financiare;
Printre altele, aici pot exista operaii distincte pentru fiecare dintre metodele de calcul ale amortizrii: liniar, degresiv i accelerat;
Subclasele acesteia, printre care se numr i Utilaje, vor invoca, fiecare, operaia sau operaiile de care au nevoie pentru calcularea amortizrii, conform specificului obiectelor pe care le reprezint;
Toatecelelalteclasedinsistemnuaunevoiescunoascexistenalor: prin urmare, nivelul adecvat de vizibilitate este protejat;
Coeficienii folosii de unele metode de calcul a amortizrii nu trebuie ns cunoscui dect n cadrul clasei Imobilizri: n consecin, atributele care memoreaz coeficenii sunt private (invizibile pt. subclase).
-
REUTILIZAREA constituie unul dintre marile avantaje promise de
abordareaorientatpeobiecte
Calitile de modularitate i flexibilitate conferite prin aplicarea abstractizrii, ncapsulrii i motenirii permit construirea de biblioteci de componente reutilizabile, ce pot fi direct asamblate corespunztor cerinelor fiecrei aplicaii aa cum se face, spre exemplu, cu crmizile sau prefabricatele la ridicarea unei construcii;
La economia de efort de concepie i programare realizate astfel, se adaug i o calitate superioar, provenit din faptul c aceste componente sunt studiate, dezvoltate i testate independent;
-
REUTILIZAREA Motenireastructurilordedateiacomportamentului
contribuie ntr-un mod specific la REUTILIZARE
REUTILIZAREA se manifest n primul rnd la nivelul codului de scris ntr-un limbaj de programare, care devine mult mai redus deoarece pentru dezvoltarea unei noi subclase este necesar s se redacteze numai prile specifice acesteia, restul fiind obinut de la superclas;
REUTILIZAREA s-a extins i spre nivelele care preced programarea propriu-zis, sub forma abloanelor (patterns) i a arhetipurilor: au fost astfel definite abloane de arhitectur, abloane de analiz, abloane de proiectare i abloane de modelare a ntreprinderii (business patterns).
-
PERSISTENA ScopulPERSISTENEIesteaceladeapermite
obiectelors"supravieuiasc"delaoexecuielaalta
ntruct NU toate obiectele trebuie conservate, prin PERSISTEN, se poate recurge la termenii de:
OBIECTE EFEMERE sau OBIECTE TRANZITORII, pentru obiectele a cror existen poate nceta odat cu ncheierea execuiei programului; OBIECTE PERSISTENTE, pentru obiectele care trebuie conservate, astfel nct, la urmtoarea execuie, s poat fi regsite n starea pe care o aveau la terminarea prelucrrii precedente PERSISTENA EXPRIMSARCINAMEMORRIIOBIECTELOR
DELAOEXECUIELAALTA
-
EXEMPLU SUGESTIV DE ABORDARE ORIENTATOBIECT
Starea fiecruia dintre cele opt obiecte este definit, la o prim vedere, de poziia pe tabl, respectiv de linia i coloana pe care se afl i care, din motive de simplitate, pot fi notate prin valori numerice cuprinse ntre 1 i 8.
n termenii conceptelor O.O, cele opt piese de ah ce trebuie amplasate sunt obiecte ale unei singure clase "Regina".
Comportamentul semnificativpentruproblem,alacestora constncapacitateadeaatacapelinie,pecoloan
ipediagonale.
Problemaceloroptreginepetabladeah! Sgseascosoluiedeamplasarepetabladeahaoptregine(piesedeah),aacesteasnuseatacereciproc!
-
Cumpoatefiidentificatfiecarepiesdintreceleopt?
SOLUIA!Identitatea obiectelor, independentdeoriceproprietatesauatribut
alobiectelor,promovatdeabordareaobiectual,ofersoluieacesteintrebri.
CERINPRACTIC:
Evident, piesele sunt identice ca form, mrime, culoare, deci nu exist posibiliti de difereniere sub acest aspect. Poziiaocupatpetablnu poate nici ea servi dreptidentificator,pentrusimplulmotivcestechiarceeaceproiectantulncearcsgseasc.
-
Cesolicitproblemadinpunctulde vedere al unei regine ?
Rspunsul a fost deja formulat: gsirea unei poziii inatacabile de ctre celelalte.
Cepoatefaceoreginnacestscop? S se aeze pe o poziie linie i coloan iniial i s le ntrebe pe celelalte dac o pot ataca. In cazul n care rspunsul primit este negativ, nseamn c soluia a fost gsit. Dac nu, regina n cauz va cuta o nou poziie i se va interesa dac n noul amplasament este vulnerabil. OBSERVAIE: Pentru a simplifica lucrurile, se poate presupune c reginele sunt aezate din start pe coloane diferite, astfel nct, ceea ce trebuie eventual schimbat, este doar linia.
-
Din aceleairaiuni,oreginpoatecunoateidialoganumai
cu una din vecinele sale, spre exemplu cea din stnga.
In concluzie:
fiecare reginvaaveatrei atribute: linia, coloana ireginavecindin stnga. fiecare reginvaaveatrei operaii:
gseteopoziieiniial,gsetealtpoziie, poziiaeste atacabila?.
OBSERVAIE: Cele trei operaii ale reginei sunt executate de ctre fiecare regin n raport cu starea acesteia, astfel putndu-se examina, n temeni generali, aciunea fiecreia.
-
Figura:Unobiectalclasei"regindeah",ncutareauneipoziiiinatacabile
dectrealtereginedepetabl.
-
1. Gseteopoziieiniialva atribuilinieivaloarea1ivantrebavecinasadinstngadacpoateataca
poziiancaresegsete. Dac vecina rspunde afirmativ, regina aflat n cutarea poziie iniiale trebuie s caute o alt amplasare.
2. Gsete alt porie face exact acest lucru: incrementeaz cu 1 linia curent i o ntreab din nou pe vecina din stnga dac poate ataca noua poziie. ntrebrile adresate vecinei invoc operaia poziia este atacabil, ale crei argumente sunt linia i coloana la care se refer ntrebarea i al crei rspuns este un simplu da sau nu
Vecina ntrebat va verifica dac poziia indicat poate fi atacat de ea nsi i, n caz contrar, o va ntreba mai departe, pe vecina sa din stnga, dac poate ataca poziia respectiv.
-
OBSERVAIE:Dacrspunsuriletuturor reginelor interogate sunt negative, atunci poziiaregineieste
inatacabil. Totodat,trebuieprecizateicerinelepracticedeproiectareprivindevitareaieiriireginelordinspaiul
celor 8 linii ale tableideah.
Pentru adeclanarezolvarea,maiestenecesarocerin prin caressefacamplasareareginelorpecteo coloaniemitereactreprimadintreacesteaaunui
mesaj princareiseceres-igseascopoziieiniial. Aceastavadeclanainteraciuneadintreregine,derulatprinemitereareciprocdemesajeceinvocceletreioperaiiamintite,pncndtoatei-augsitpoziiiinatacabileiprelucrareanceteazdelasine.
-
Metodologia O.M.T. (Object Modeling Tehnique)
OMT - este o tehnic de dezvoltare a software-ului bazat pe modele ca abstracii ale problemelor din lumea real, menite s focalizeze aspectele importante ale problemei i s omit pe cele irelevante.
Modelul are trei aspecte importante: ABSTRACTIZAREA REALITII - pentru aceeai problema se pot crea mai multe modele care s focalizeze diferite aspecte. SCOPUL MODELULUI - se focalizeaz ceva cunoscut COMUNICAREA - modelul trebuie neles de toi membrii echipei de analiz-proiectare, precum i neles i validat de utilizator.
-
TIPURI DE MODELE UTILIZATE N O.M.T:
Metodologia O.M.T. propune trei tipuri de modele, pentru trei scopuri diferite: Modelul OBIECTUAL, Modelul DINAMIC i Modelul FUNCIONAL.
MODELUL OBIECTUAL: prezintstructurastaticasistemului identificclaseleiobiectelesistemuluiidescrieatributele,operaiileirelaiiledintreele
este reprezentat grafic prin: DIAGRAMA DE ASOCIERE A CLASELOR
(DAC)
-
ModelulDINAMICiModelulFUNCIONAL
MODELUL DINAMIC: prezintaciunile(comportamentuldebaz)alsistemului
MODELUL DINAMIC: prezintaciunile(comportamentuldebaz)alsistemului reflectdinamicaobiectelorimodificrilestrilorlor,reliefndmoduln
careesteinfluenatunobiectde-alungulcicluluidevia este reprezentat grafic prin:
DIAGRAMA DE TRASARE A EVENIMENTELOR (DTE) DIAGRAMA DE TRANZI IEASTRILOR(DTS)
MODELULFUNCIONAL: prezintfunciilesistemului,darnuimodulncaresedesfoar descrievaloriledatelor,precizndsursalor,transformrilelori
destinaialor este reprezentat grafic prin:
DIAGRAMA DE FLUX DE DATE (DFD)
MODELUL FUNCIONAL: prezintfunciilesistemului,darnuimodulncaresedesfoar