"abordareăorientat ăpeăobiecte"
Sintagma "abordare orientat pe obiecte" sau "abordare obiectual " semnific organizarea şi func ionarea programelor, aplica iilor sau sistemelor informatice ca un ansamblu de obiecte distincte ce coopereaz între ele.
Aplicat ămaiăîntâiăînăădomeniulăăprogram rii,ăABORDAREA ORIENTAT ăPEăOBIECTE s-aăimpusăcaăoănou ăparadigm ă
informatic , cu o utilizare foarte diversificat
Seădiscut ăastfelădespre:ă programare orientat pe obiecte
(sau programare obiectual ); baze de date orientate pe obiecte;
analiz şi proiectare orientat pe obiecte;
metode de reprezentare a cunoştin elor orientate pe obiecte.
Modelareaăobiectual ăaădevenităastfelătr s turaă
comun ăgenera ieiăactualeădeămetodeădeăproiectareăaă
sistemelorăşiăaplica iilorăinformaticeădeăgestiune.ă
Chiar dac implementarea urmeaz s se fac utilizând o baz de date rela ional sau un limbaj de programare f r func ionalit i specifice, practica a dovedit c modelarea conceptual conduce la solu ii superioare calitativ, în special în cazul sistemelor de mari dimensiuni şi complexitate.
Concepte
Metoda de analiză şi proiectare = oămul imeădeăprocedee,ătehniciăşiărecomand riăutilizateăînăetapeleăcicluluiădeăvia ăalăuneiăaplica iiăavândăcaăscopăfinalăcreareaăunuiămodelăalăaplica ieiăcareăurmeaz ăaăfiăconstruit . Specificarea modelului seărealizeaz ăprin intermediul unui limbaj sau formalism vizual compus dintr-unăsetădeăsimboluriăgraficeăşiăadnot riătextuale.
Metodologia = o cale prin care modelele şi tehnicile din diferite stadii ale ciclului de viaţă al realizării sistemului sunt puse laolaltă pentru a crea un sistem.
Alegerea unei metode depinde de: tipul problemei de rezolvat; domeniul în care se încadreaz problema; preg tirea ş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 deăprogram,ăfavorizeaz ămodelareaăşiăutilizareaăde obiecte complexe. - Dezavantaje:ăpercep iaăşiăreprezentareaămonolitic ădeătipulă"ătotulăesteăobiectă"ăănuăcorespundeăîntotdeaunaărealit iiăreprezentate.
Metodele de "Analiza si proiectare orientate obiect "
au ap rut dup 1990, preluând cele mai bune idei din programarea structurat ,ăcombinate cu conceptele noi ale limbajelorășiăinstrumentelorădeăprogramare,ăaleăbazelorădeădateăceăutilizeaz ăămodelulăentitate-asociere.
Consorțiul american OMG (Object Management Group) cuprinzând peste 800 de companii produc toare de aplicații care au utilizat tehnologia orientat obiect și impun adoptarea unor standarde în domeniu, a studiat posibilit țile de convergenț din domeniul metodelor de analiz și proiectare orientate obiect.
În noiembrie 1997 OMG a hot rât unificarea celor mai utilizate metode de analiz și proiectare prin realizarea unui standard în domeniul proiect riiăsistemelor informatice, LIMBAJUL DE MODELARE UNIFICAT (UML-Unified Modeling Language).
Metode tradi ionale de proiectare vs metode orientate obiect
Metodele tradi ionale au separat modelarea datelor de modelarea func iilor (a prelucr rilor), ob inând astfel dou tipuri de structuri distincte: structuri de date şi structuri
func ionale.
Metodele orientate obiect propun modelarea concomitent a datelor şi func iilor, ob inând ierarhii de clase de obiecte care înglobeaz atât date, cât şi comportament (funcții).
Analiza si proiectarea orietata obiect
privește 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 funcționale diferite și poate participa la conceperea altor obiecte noi, mai complexe
obiectul combin structura datelor şi comportamentul într-o singur entitate
Exist ăoămultitudineădeămetode 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 oătehnic ădeădezvoltareăaăsoftware-uluiăbazat ăpeămodeleăcaăabstrac iiăaleăproblemelorădin lumea real , menite s focalizeze aspectele importante ale problemei şi s omit pe cele irelevante.
Observație:
Abordarea orientat obiect mut centrul de greutate al rezolv rii unei probleme de realizare a unui sistem informatic în faza de analiz , compensând acest lucru cu un efort redus în faza de implementare. O în elegere corect ăa cerin elor problemei reale constituie premiza pentru construirea unui model fiabil, adaptabil, care va suporta uşor modific rile ulterioare.
Analiza si proiectarea orientat obiect
Folosește, pentru descrierea unui sistem informatic, trei modele: 1. Modelul obiect, care descrie obiectele și relațiile lor în cadrul sistemului; 2. Modelul dinamic, care descrie interacțiunile dintre obiecte în cadrul sistemului; 3. Modelul functional, care descrie operațiileăde transformare a valorii datelor în cadrul sistemului.
Orice model prezint ătreiăaspecteăimportante:
ABSTRACTIZAREA REALIT II - pentru aceeaşi problem ăse pot crea mai multe modele care s focalizeze diferite aspecte.
SCOPUL MODELULUI - se focalizeaz ceva cunoscut
COMUNICAREA - modelul trebuie în eles de to i membrii echipei de analiz -proiectare, precum şi în eles şi validat de utilizator.
MODELUL OBIECT
prezint structura static a sistemului identific clasele şi obiectele sistemului
şi descrie atributele, opera iile şi rela iile dintre ele
este reprezentat grafic prin: DIAGRAMA DE ASOCIERE A
CLASELOR (DAC)
MODELUL DINAMIC
prezint ac iunile (comportamentul de baz ) al sistemului
reflect dinamica obiectelor şi modific rile st rilor lor, reliefând modul în care este influen at un obiect de-a lungul ciclului de via
este reprezentat grafic prin: DIAGRAMA DE TRASARE A EVENIMENTELOR
(DTE) DIAGRAMA DE TRANZI IEăAăST RILORă(DTS)
MODELULăFUNC IONAL
prezint func iile sistemului, dar nu şi modul în care se desf şoar acestea
descrie valorile datelor (cu sursa lor), transform rile lor şi destina ia lor
este reprezentat grafic prin: DIAGRAMA DE FLUX DE DATE
(DFD)
MODELUL DE COMUNICARE A CLASELOR
Obs: La cele trei modele, în contextul des vârşirii procesului de interac iune şi comunicare între
clasele aferente obiectelor identificate - se
poate ad uga ş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)
Concepteădeăbaz ăaleăA.P.O.O.
5ăCONCEPTEăDEăBAZ OBIECTUL CLASA MESAJUL MOŞTENIREA POLIMORFISMUL
4 CONCEPTE GENERALE ABSTRACTIZAREA ÎNCAPSULAREA REUTILIZAREA PERSISTEN A
OBIECTUL
Un OBIECT poate corespunde unui concept; uneiăabstrac iuni; unui lucru cu limite bine definite şi cu
semnifica ie precis în spa iul problemei studiate.
constituieăcomponentaăelementar ăîntr-un sistem orientat pe obiecte
EXEMPLE DE OBIECTE Popescu Vasile,
Astra S.R.L.,
Strungul 2
OBIECTUL
– defineşte un concept, o abstrac ie sau un lucru bine delimitat, având o identitate proprie stabilit pe baza atributelor sale
Un obiect
reprezint o entitate din lumea real asupra c reia se poate întreprinde o ac iune, sau care poate întreprinde o ac iune.
el combin structura datelor şi comportamentul intr-o singur entitate.
este caracterizat prin stare, comportament şi identitate.
are dou componente: structura informa ional şi comportamentul sau opera iile care ac ioneaz asupra structurii
OBIECTUL
STAREA OBIECTULUI caracterizeaz ăobiectulăşiăesteăformat ădinăansamblul
deăvaloriăaleăatributelorăsauăpropriet ilorăacestuiaăla un moment dat.
Spre exemplu: "2477, 16/02/2009, 34.200.000, Strung SR300“
constituie starea curent a obiectului “strungul 2”, reprezentând: num rul de inventar, data intr rii, valoarea contabil de intrare şi denumirea acestuia.
fiecare obiect are deci o identitate implicită,
o stare şiăun comportament
OBIECTUL
Comportamentul obiectului se caracterizeaz prin structura opera iilor sale şi depinde de starea în care se afl .
Comportamentul obiectului mai poate fi perceput şi ca un set de responsabilităţi asumate sau de servicii oferite altor obiecte.
Opera iile arat numai ce face obiectul nu şi cum face Spre exemplu – opera iiăaleăobiectuluiăStrungulă2:
“Reevaluare, casare, amortizare_lunară, valoare_rămasă”
Comportamentul obiectului este definit de ansamblul de operaţii pe care le poate executa obiectul.
OBIECTUL
Identitatea obiectului reflect posibilitatea reprezent rii şi conserv rii individualit ii fiec rui obiect, indiferent de transform rile sau schimb rile de stare pe care le suport .
Exemplu: obiectul strungul 2 va avea un identificator implicit,
f r ăniciăoăleg tur ăcuă“num rulădeăinventar”ăcare, deşiăunicăpentruăfiecareămijlocăfix,ăr mâneăaiciăunăatribută
ca oricare altul
Identificarea obiectelor seăfaceădatorit ăexisten eiălorăinerenteăşiănuăprintr-oăproprietateăsauăgrupădeăpropriet i.ă
OBIECTUL
Termenul "uniform" indic faptul c identitatea unui obiect îl separ pe acesta din ansamblul tuturor obiectelor, indiferent de tipul lor; Exemplu: într-unăsistem,ăînăcareăseăreg sesc,ăcaăobiecte:ă utilaje,ăăămateriale,ăăăgestiuni,ăăăclien iăetc - identificatorul unui obiect de tip "utilaj" este discriminant, nu numai în raport cu celelalte utilaje (aşaăcumăac ioneaz ,ădeăexemplu,ăoăcheieăîntr-o BDR), ciăşiăfa ădeătoateăobiectele, fie acestea: materiale,ăgestiuniăsauăclien i.ă
Distinc iaădintreăobiecteă- respectiv desemnarea sau referirea unui anumit obiect - are unăcaracterăuniformăşiă
independentădeăcon inut
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 servește la legarea obiectelor între ele.
Un obiect este o instanță a unei clase
Observatie
Fiecare obiect con ine informa ii individuale (date) care trebuie s fie accesate sau modificate numai prin intermediul mul imii de operaţii care definesc comportamentul obiectului respectiv.
Singura parte vizibil a unui obiect este constituit din opera iile (func iile) obiectului şi este denumit interfa .
structura care memoreaz informa iile şi implementarea opera iilor sunt ascunse în interiorul obiectului.
Exemplu: Factura: un obiect complex, care cuprinde în mulțimea
atributelor sale și atribute ale c ror valori reprezint identificatorul unui alt obiect.
ATRIBUTUL
defineşte o proprietate a obiectelor dintr-o clas se reprezint sub numele clasei, prin specificarea
numelui atributului şi, op ional, a tipului şi a unei valori implicite a acestuia.
Abordarea Orientat Obiect are ca efect imbunatatirea urm toarelor caracteristici ale produsului software:
Extensibilitate - capacitatea de a realiza produse software ce pot fi adaptate, cu un efort rezonabil, la modific rile 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 entit ți deoarece prezint propria identitate și are o anumit semnificație in contextul aplicației modelate.
exist în timp și spațiu are o stare descris de valorile atributelor
sale, un comportament descris prin mulțimea operațiilor pe care le poate executa și o identitate
Obiectul este o unitate de observare in care se incapsuleaz atât datele care descriu obiectul, cât și operațiile pe care obiectul le poate executa
Clasa de obiecte descrie o multime de obiecte cu propriet ți similare, comportament similar si leg turi similare faț de alte obiecte.
Un obiect este o instanț a unei clase
Concepteădeăbaz ăaleăA.P.O.O.
CONCEPTEăDEăBAZ
OBIECTUL CLASA MESAJUL MOŞTENIREA POLIMORFISMUL
CONCEPTE GENERALE
ABSTRACTIZAREA ÎNCAPSULAREA REUTILIZAREA PERSISTEN A
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
num r de obiecte care comunic între ele.
Dintre acestea unele au caracteristici comune şi, pentru a p stra leg tura semantic , acestea
sunt grupate în clase de obiecte.
Se pot identifica şi descrie clase care s
reprezinte toate obiectele care au aceeaşi strucur a informaţiei şi un comportament
similar.
Concluzii:
Un obiect se caracterizeaz prin:
structura obiectului, cunoscut doar de el
însuși (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 proprietăţi similare,
comportament comun, relaţii comune cu
alte obiecte şi aceeaşi semantică;
Clasa abstractizează, un grup de obiecte similare.
EXEMPLE DE CLASE UTILAJE,
MATERIALE,
GESTIUNI,
CLIEN I.
Clasa
Tipuri de clase :
CLAS ABSTRACT : defineşte o clas construit special
pentru a fi moştenit şi care, de obicei, nu are instanţe
CLAS CONCRET : defineşte o clas construit pentru a
crea instanţe
CLASA
Gruparea obiectelor în clase este rezultatul
abstractiz rii, 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
apar in,adică descrierea atributelor şi a opera iilor.
Fiecare obiect este o instanţiere a clasei sale şi conţine numai valorile proprii corespunz toare fiec rui atribut;
In plus, fiecare obiect menţine permanent leg tura cu clasa sa (clasa fiind, ca şi identificatorul, un atribut implicit).
ATRIBUTUL - defineşte o proprietate a obiectelor dintr-o clas - se reprezint sub numele clasei, prin specificarea numelui atributului şi, op ional, a tipului şi a unei valori implicite a acestuia.
ATRIBUTUL CLASEI
defineşte atributul a c rui valoare este comun unei
clasei de obiecte, nu numai unei instanţe specifice
numele s u este precedat de simbolul $
Ex: atributul “Proiecte P.O.O” din structura unei clase
“Student” este un atribut al clasei, c ci defineşte o
proprietate comun întregii clase, şi nu doar a unei
anumite instanţe a acesteia (“Studentul Gheorghiu G.”). valoarea acestuia, implicit = 2 (un proiect pentru OMT şi
unul pentru UML) va fi aceeaşi pentru toţi studenţii facult ţii de Informatic , indiferent de nume, dar pentru
care valoarea atributului “An_studiu” este = 3
ATRIBUT DERIVAT
defineşte atributul a c rui valoare se
calculeaz pe baza valorii altor atribute
numele s u este precedat de simbolul / de exemplu, atributul “Medie_an_studiu” din
structura aceleaşi clase “Student” este un
atribut derivat, deoarece valoarea sa se
calculeaz raportând suma notelor obţinute
la toate disciplinele din cele dou semestre ,
la num rul acestora
Atribut derivate - Exemplu
astfel, pentru obiectul “Gheorghiu G.”ăcareăaăobţinut trei note de
9 şi patru note de 10 , valoarea atributului “Medie_an_studiu” va fi 9.57
Operațiile (metodele) pe care o clas le ofer clienților s i sunt :
modificare – este o metod care altereaz starea obiectului clasei respective.
selectarea – este o metod de accesare a st rii obiectului, f r a o altera;
iterare – este o operație ce permite tuturor p rților unui obiect s fie accesate într-o ordine bine definit ;
constructor – operația ce creaz un obiect și îi inițializeaz starea (valorile atributelor);
destructor – operația care elibereaz starea unui
obiect și/sau distruge obiectul însuși.
CLASA
Operaţiile corespunz toare de creare şi respectiv
suprimare a obiectelor sunt denumite: constructori şi respectiv, destructori.
Spre exemplu – pentru Clasa de Obiecte UTILAJ:
CONSTRUCTOR:ăopera iaădeăACHIZI IONARE
(se crează un nou obiect ca instan ă a clasei UTILAJ)
DESTRUCTOR:ăopera iaădeăCASARE
(se suprimă un obiect al clasei UTILAJ)
Caăinstanţiereăaăuneiăclase,ăoriceăobiectătrebuie creat la un
momentădatăşiăpoateădisp reaăatunci când nu mai este necesar
OPERA IA
• defineşte comportamentul obiectelor clasei
• reprezentarea unei operaţii se face în secţiunea
inferioar a unei clase, prin specificarea numelui
operaţiei, urmat, opţional, de parametrii şi de tipul
rezultatului returnat.
OPERA IAăCLASEI
defineşte o operaţie definit pe o clas întreag şi nu doar
pe o instanţ a acesteia
numele s u este precedat de simbolul $
exemplu: se poate defini pentru clasa “Student” operaţia
“Identific _num r_materii_examen”, deoarece stabilirea
materiilor din planul de invatamant (pentru an sau
semestru) dintr-un an de studiu este administrativ (f ra
nici o implicare din partea unui anumit “obiect student”) astfel, aceast operaţie este definit la nivelul întregii
clase a studenţilor, şi nu la nivelul unei anumite instanţe a
acesteia.
CONCEPTE UTILIZATE ÎN LUCRUL CU OPERA II
METODA: semnific implementarea operaţiilor une clase
POLIMORFISM: defineşte proprietatea unei aceleaşi operaţii de
a fi implementat diferit pe clase diferite
de exemplu, operaţia “Stabilire_performanţe” va avea metode
diferite (implement ri specifice) pentru fiecare dintre clasele
“Student”şi “Profesori” astfel, pentru un student performanţa poate fi identificat prin
media anual obţinut la sfârşitul unui an de studiu, în timp ce
pentru oricare dintre profesori performanţele se pot concretiza
în num rul de articole şi c rţile scrise de-a lungul anului,
premiile obţinute la concursurile de specialitate, programele
de cercetare câştigate, etc.
CLASA
Operaţiile corespunz toare de modificare a stării şi respectiv de consultare a stării obiectelor sunt denumite
generic: modificatori şi respectiv, selectori.
Spre exemplu – pentru Clasa de Obiecte UTILAJ:
MODIFICATOR:ăopera iaădeăREEVALUARE (deoarece schimbă valoarea rămasă)
SELECTOR:ăopera iaădeăAMORTIZARE_LUNAR (deoarece furnizează o informa ie despre starea utilajului –
în acest caz informa ia este ob inută prin calcul)
Inăcursulăexistenţeiăunuiăobiect,ăpotăapareăoperaţiiăce modific ăstareaăacestuia sau permit consultareaăst riiăacestuia
Operație-metod -mesaj
Operatia se definește în cadrul unei clase și reprezint o funcție, o prelucrare aplicat fiec rui obiect aparținând clasei respective.
Implementarea concret a unei operații pentru o
clas se numește metod .
Mesajul este o cerere adresat unui obiect de
c tre un alt obiect urm rind fie modificarea st rii obiectului, fie extragerea unei valori.
Obs: Nu toate obiectele unei clase r spund la fel la
un anumit mesaj.
OPERA IAăCLASEI
defineşte o operaţie definit pe o clas întreag şi nu doar pe o instanţ a acesteia
numele s u este precedat de simbolul $
Ex: se poate defini pentru clasa “Student” operaţia “Identific _num r_materii_examen”, deoarece stabilirea materiilor din planul de
înv ț mânt (pentru an sau semestru) dintr-un an
de studiu este exclusiv una administrativ (f r
nici o implicare din partea unui anumit “obiect
student”)
Opera ia este definit la nivelul întregii clase a studen ilor, nu pentru o anumit instan a acesteia.
CLASA - METODA
Implementarea (maniera de execuţie) fiec rei operaţii este
memorat în cadrul clasei şi constituie o metod ; Orice operaţie are un argument implicit şi anume: obiectul
căruia i se adresează;
Obiectul invocat va obţine de la clasa c reia îi aparţine
metoda corespunz toare şi o va aplica asupra datelor sale
de stare;
O operaţie poate avea şi alte argumente: exemplu, pentru
execuţia operaţiei Amortizare_lunara este necesar s se mai
precizeze luna şi anul pentru care se face calculul;
Num rul, tipul şi ordinea argumentelor împreun cu tipul
rezultatului returnat - definesc semn tura opera iei.
Metodaăesteăimplementareaăuneiăopera iiădeăc treăoăclas .
Observație
Clasele nu sunt izolate, intre ele exist
relații. Relațiile ce pot exista între clase sunt:
– Asocierea
– Moștenirea
– Agregarea
– Utilizarea
– Instanțierea
Relațiile dintre clase
Asocierea - o relație dintre dou obiecte care sunt
independente. Ea reprezint o dependenț semantic și nu precizeaz direcția acestei dependențe: ea implic
navigarea bidirecțional . Asocierea poate fi de tip: 1:1;
1:m; m:n
Moștenirea – este proprietatea prin care o subclasa
moștenește structura și comportamentul superclasei
sale.
Agregarea este o relatie întreg/parte care d
posibilitatea de a naviga de la întreg (numit agregat)
c tre p rțile sale sau nu. Agregarea este un caz
particular de asociere.
Relațiile dintre clase - continuare
Utilizarea este o relație care poate fi privit ca posibil
rafinare a unei asocieri prin care se precizeaz care din
abstracții este clientul și care este furnizorul unui anumit
serviciu.
Instanțierea. O clasa parametrizata (clasa generica)
este o clas care servește ca șablon (cadru) pentru alte
clase. O clas generic trebuie instanțiat (parametrii
sai trebuie completați) înainte de crearea obiectelor
clasei respective. Dac o clas generic utilizeaz o
alt clas generic , amândou trebuie instanțiate.
Asocierea
Leg tura exprim o conexiune fizic sau
conceptual între obiecte (instanțe)
Asocierea indic grupul de leg turi cu
aceeași structur și aceeași semantic .
Asocierea
defineşte conexiunea între obiecte
reprezint descrierea unui grup de leg turi cu
aceiaşi structur şi semantic
asocierile reprezint abstractiz ri ale leg turilor (aşa cum obiectele sunt abstractiz ri ale
claselor)
leg turile dintre obiecte sunt instanţe ale
asocierii dintre dou clase, astfel încât trebuie
modelate doar asocierile dintre clase şi nu
leg turile dintre obiecte.
Asocierea - Reprezentare
oăasociereăîntreădou ăclaseăseăreprezint ăînămetodologiaăOMT printr-oălinieăcareăconecteaz ădou ăclase
numele asocierii seăreprezint ădeăregul ăprintr-un verb
şiăseătreceădeasupraălinieiăceăconecteaz ăclasele,ăindicând sensul asocierii.
Multiplicitatea asocierii
reprezint ăo caracteristic ădeăbaz ăaăasocierii şiăindic ănumărul de instan e ale unei clase care pot avea legături 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 MUL I UNU LA ZERO SAU UNU
UNU LA UNU SAU MAI MUL I
MULTIPLICITATEA UNU LA UNU (1:1)
Presupunem “Carnet_Note” este o clasă distinctă – serie, număr, universitate,
nr_matricol _student etc. Putem identifica o rela ie de tipul “unu la unu” în
asocierea cu clasa Student – nr _matricol, nume, adresa etc - din cadrul unei
singure facultă i: un Student poate avea în cadrul unei facultă i 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 ob ine sau/nu la sfârşitul unui an universitar o singură Bursă de
Studiu.
MULTIPLICITATEA UNU LA ZERO SAU MAIăMUL Iăăă(1:0/M)
Un Student poate participa într-un an de
studiu la (nici unul) “zero”/sau mai multe
Cursuri Op ionale din cadrul unei facultă i.
MULTIPLICITATEA UNU LA UNU SAU MAIăMUL Iăăă(1:1/M)
Un Student frecventează obligatoriu minim
cursurile unei Universită i, (dar poate fi Student
şi la mai multe institu ii de învă ământ superior)
ATRIBUTELE ASOCIERII
Atributul unei asocieri nu poate apar ine nici uneia
dintre cele două clase implicate în asociere; Astfel:
Explicatie
atributulă“Valoare_Burs _Studiu”ănuăaparţine,ăcaăoăcaracteristic ,ăniciăclaseiă“Student”ăşiăniciăclaseiăă“Facultate”.
este oăconsecinţ ăaăăasocieriiădintreăceleădou ăclase:ăunăstudentăobţineăoăburs ădeăstudiu - cuăoăanumit ăsum ă- la o facultate)
Relațiile dintre clase
Asocierea - o relație dintre dou obiecte care sunt independente. Ea reprezint o dependenț semantic și nu precizeaz direcția acestei dependențe: ea implic navigarea bidirecțional . Asocierea poate fi de tip: 1:1; 1:m; m:n
Moștenirea – este proprietatea prin care o subclasa moștenește structura și comportamentul superclasei sale.
Agregarea este o relatie întreg/parte care d posibilitatea de a naviga de la întreg (numit agregat) c tre p rțile sale sau nu. Agregarea este un caz particular de asociere.
Relațiile dintre clase - continuare
Utilizarea este o relație care poate fi privit ca posibil rafinare a unei asocieri prin care se precizeaz care din abstracții este clientul și care este furnizorul unui anumit serviciu.
Instanțierea. O clasa parametrizata (clasa generica) este o clas care servește ca șablon (cadru) pentru alte clase. O clas generic trebuie instanțiat (parametrii sai trebuie completați) înainte de crearea obiectelor clasei respective. Dac o clas generic utilizeaz o alt clas generic , amândou trebuie instanțiate.
ASOCIERI ORDONATE
Obiectele din partea “mul i” ale unei asocieri au de obicei o ordine explicit , putând fi v zute ca un SET!
Astfel, prin specificarea termenului {ordonat} lâng punctul care indic multiplicitatea, se reflect faptul c SETUL de obiecte va fi v zut ca un SET ORDONAT.
ASOCIERI ORDONATE
Exemplu, dac se specific faptul c o Persoan - definit ca Superclas pentru clasa “Student” - poate ob ine o serie de diplome şi c ordinea (cronologic ) de ob inere 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 Formaăgeneral ădeăreprezentare
ASOCIERI TERNARE – Ex:
Asocierea “Ob ine” este o Asociere ternar între 3 clase: Student, Diplom (licen ) şi Facultate:
un Student poate ob ine o Diploma de licen doar prin absolvirea unei Facult i (prin “intermediul” unei facult i)
Asocierea “Ob ine” nu poate fi divizat în Asocieri („duale”) între clasele implicate – Student şi Facultate - f r a se pierde din semnifica ia (“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: clasaăPerforman e poateăaveaăDOU ăROLURIădiferite,ădinădou ăpuncteădeăvedereădiferite:
Pentru un Student, Performan a (rezultatele) se concretizeaz în
ob inerea unei Burse de Studiu, în timp ce pentru o Firm , Performan a se traduce prin ob inerea unei Cifre de Afaceri
maxime În concluzie: exist nume de rol diferite - Burs şi respectiv, Cifr
de afaceri - pentru aceeaşi clas de Performan e-Rezultate:
ASOCIERI CALIFICATE
Reprezint asocieri de tipul unu la mul i sau mul i la mul i la care un atribut special (numit “CALIFICATOR”) reduce multiplicitatea efectiv .
Un CALIFICATOR distinge între seturile de obiecte de la cap tul “mul i” al unei asocieri
Forma general :
EX:
Asocierea ini ial de tipul unu la unu sau mul i (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 sus ine unu sau mai multe Examene, prin introducerea calificatorului “P.O.O”, tipul “mul i” din asociere (examene) se identific acum strict (unu la unu) cu partea Student.
Deci un Student, prin calificatorul ”P.O.O”, va sus ine un singur Examen în sesiune, cel la disciplina POO !.
GENERALIZAREA CLASELOR
Permit partajarea caracteristicilor comune între clase, p strând totodat diferen ele dintre acestea.
Generalizarea presupune identificarea atributelor şi/sau opera iilor comune mai multor clase şi izolarea lor în superclase.
Ne amintim c :
Un model entitate asociere poate fi dezvoltat ulterior,ăfunc ieădeăcondi iileăconcreteăaleăproblemei date, prin: generalizare sau definire de supertipuri; specializare sau definire de subtipuri; introducereaătimpuluiăşiăcreareaăunuiămodelătemporal.
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 entit i.
Generalizarea
Este procesul prin careădou ăsauămaiămulteătipuriădeăentit iăsuntăgeneralizate,ăpeăbazaăpropriet ilorăcomune, într-un nou tip.
Înăaceast ărela ie,ătipurileăini ialeădevinăsubtipuri aleătipuluiăob inutăprinăgeneralizareă(Angajat).ă
Dac ăneăreferim la o universitate, tipurile de entit iăAngajat şiăStudent pot fi generalizate prin tipul PERSOANA, care va prelua astfel atributele comune ale acestora: Nume, Prenume, Data naşterii,ăAdresa,ăTelefon,ăDomiciliu,ăCodăNumericăPersonal, 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 existen a unor asocieri Subtip, în care cardinalitatea subtipurilor este 1,1 iar a supertipului (superclasei) este 0,1.
Specializarea claselor
Specializarea claselor esteăopus ăGeneraliz riiăşiăareăcaăpunctădeăplecareăoăsuperclas ălaăcareăseăadaug ănoiăatribute relevante numai pentru anumiteăobiecteădinăaceaăclas ,ăcreândăastfel 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 entit ilor superclasei acestora (Angajat).
Ele moştenesc toate atributele superclasei şi pot avea atribute proprii specifice, inexistente la nivelul superclasei.
Observatie
Specializarea poate fi: total ,ăceeaăceăînseamn ăc ăoriceăentitateă
a tipului face parte, obligatoriu, dintr-un subtip;
par ial , însemnândăc ăpotăexistaăentit iăcareăs ănuăapar in ăniciăunuiăsubtip.ă
Generalizarea,ăob inându-se prin gruparea tipurilorădeăentit iădejaăexistente,ănuăpoateăfi decât total .
MOŞTENIREA
reprezint ăunămecanismăceăd ăposibilitateaăpartaj riiăatributelorăşiăopera iilorăutilizândărela iaădeăgeneralizare
Moştenireaăpermiteăexprimareaărela iilorădeăgeneralizare/specializareădintre clase
MOSTENIREA
Moştenirea desemneaz partajarea atributelor şi opera iilor unei (sau unor) clase de c tre o alt clas (sau alte clase) în cadrul unei rela ii ierarhice, p strând nealterate diferen ele dintre ele.
Clasa de la care se moşteneşte este numit SUPERCLAS , iar clasa care moşteneşte poart numele de SUBCLAS sau CLAS DERIVAT
Moştenirea este tranzitiv pe un num r oricât de mare de nivele. Instan ierea unei subclase este simultan instan iere a tuturor superclaselor sale.
opera iile şi atributele comune mai multor clase se pot izola definiind structura unei noi clase, numit superclas .
clasele din care provin atributele şi/sau opera iile comune, preluate de la superclas , devin acum subclase ale acesteia.
atributele şi opera iile superclasei nu mai apar în cadrul subclaselor ataşate ei, dar ele apar in acestora prin moştenire.
În subclase se descriu numai atributele şi/sau opera iile specifice fiec reia dintre ele.
Superclasele şi subclasele se mai numesc p rin i/copii sau str moşi/descenden i.
MOŞTENIREA
Exemplu de definire a RELA IEI DE MOŞTENIRE dintre SUPERCLASE ŞI SUBCLASE:
Rela iaădeămoştenireădintreăclaseleă“Persoana”ăşiă“Student”ă: Un “Student”ăeste o “Persoan ”ă:
în contextul “partaj rii atributelor şi opera iilor de c tre clasa care moşteneşte” - propriet ile “Persoanei” (Nume, Prenume, CNP, Data naşterii etc) - vor fi moştenite de c tre “Student”, f r a mai fi necesar repetarea lor;
în contextul “p str rii nealterate a diferen elor dintre ele” – pentru un “Student” vor fi men ionate doar propriet ile suplimentare specifice, cum ar fi: Facultate, AnStudii, Medie etc.
Explicație figur :
Se presupun dou clase: “Licen iat” şi “Doctorand” - ambele având atât atribute comune - Nume, Prenume, Adresa, Data naşterii, Facultate, Medie Anual şi Foaie Matricol – cât şi opera ii comune - precum Aprofundare Studii şi Medie Final ;
Cele dou clase se pot generaliza şi se creaz astfel clasa “Student”, cu atributele şi opera iile comune celor dou clase;
Deoarece atât Licen iatul, cât şi Doctorandul provintot din structura de Student, nici unul nici cel lalt, nu îşi pot definitiva studiile dac nu au baza de Student;
Clasa “Licen iat” presupune îns şi atribute specifice, care nu se reg sesc în clasa “Doctorand” şi ca urmare acestea nu vor apare şi în clasa p rinte.
Opera iile din clasa de baz sunt moştenite de c tre clasele derivate, dar exist şi posibilitatea suprascrierii acestor opera ii în clasele derivate.
Observatie
Generalizarea este util atât în modelarea conceptual , cât și în implementare, devenind sinonim cu noțiunea de reutilizare a codului.
Atributele reutilizabile sunt grupate în superclase, urmând ca fiecare programator s -și implementeze subclase proprii prin care s adauge tr s turi și metode noi superclaselor, specifice aplicației.
Observație
Fiecare subclas va moșteni deci metodele și atributele superclasei în care se include.
Prin generalizare se grupeaz informațiile cele mai generale din clase la nivelul superclasei.
Clasele vor fi specializate din aproape în aproape în subclase, implementând comportamente din ce în ce mai particulare
POLIMORFISMUL Termenul POLIMORFISM esteăderivatădinădou ăcuvinteă
greceşti:ă“POLI”, careăînseamn ă“MULTE”ăşiă“MORPHOS”, careăînseamn ă“FORM ”
.
Polimorfismul desemneaz ăcapacitateaăuneiăopera iiădeăaăseăaplica obiectelor din clase diferite.
Unul dintre cele mai comune exemple de polimorfism este reprezentat de operatoriiă“+”ăşiă“-”ă(minus),ăcareăexprim ăadunarea,ărespectivăsc derea,ăatâtăpentruănumereleăîntregiăcâtăşiăpentru cele reale.
Spre exemplu: Opera ia:ă“Amortizare_lunara”ăseăvaărealizaăînăămaniereăă
diferite pentru clasele: UTILAJ, CONCESIUNE sau TITLU DE PARTICIPARE
Opera iileăpolimorfeăsunt implementate de mai multe clase prin metode diferite.
ABSTRACTIZAREA esteăprocesulăprinăcareăseăizoleaz ăşiăseăre inănumaiăoă
parte dintre aspectele unei probleme, considerate esen iale, ignorându-le pe celelalte
ASPECTELE RE INUTE depind de scopul urm rit. Rezult de aici c , pentru aceeaşi problem sau aspect al
realit ii, pot exista mai multe abstractiz ri diferite. Spre exemplu: OBIECTUL STRUNGUL 2 va fi privit în mod
diferit de c tre CONTABIL şi de c tre MECANICUL DE ÎNTRE INERE:
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 num rul de ore de func ionare, de piesele componente, de gradul de uzur fizic sau de data ultimei repara ii.
ABSTRACTIZAREA permite concentrarea asupra aspectelor
conceptual-func ionaleăşiăevitareaălu riiăprematureăînăconsidera ieăaădetaliilor
ASPECTELE RE INUTE depind de scopul urm rit. Rezult de aici c , pentru aceeaşi problem sau aspect al
realit ii, pot exista mai multe abstractiz ri diferite. Spre exemplu: OBIECTUL STRUNGUL 2 va fi privit în mod
diferit de c tre CONTABIL şi de c tre MECANICUL DE ÎNTRE INERE:
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 num rul de ore de func ionare, de piesele componente, de gradul de uzur fizic sau de data ultimei repara ii.
ABSTRACTIZAREA îşiăg seşteămultipleăutiliz riăînăinformatic ,ăpeătotă
parcursulădezvolt riiăuneiăaplica iiăinformatice,ăindiferentădeămetodaă(sauădeălipsaădeămetod )ăfolosit
Spre exemplu: CLASELE reprezint ABSTRACTIZ RI ale unor MUL IMI DE OBIECTE;
Una dintre uzan ele specifice ABSTRACTIZ RII, const în formularea în termeni informatici - înregistrare, cheie, procedur , func ie, modul etc - a unor concepte sau p r i ale lumii reale, cu un nivel mult mai înalt de abstractizare - persoane, structuri organizatorice, utilaje, facturi etc.
ÎNCAPSULAREA
plaseaz ăoăbarier ăîntreăcomportamentulăexterioră şiădetaliileăinterne
este numit şi mascarea informa iilor ş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 interfe e, care expune numai caracteristicile func ionale utiliz rii;
prin încapsulare se reduce gradul de interdependen între componente: dac sunt necesare modific ri pentru înl turarea unor erori sau pentru ameliorarea performan elor de execu ie, aceasta afecteaz numai partea de implementare;
astfel, interfa a r mâne neschimbat şi, în consecin , func ionarea celorlalte componente ale aplica iei nu este afectat .
ÎNCAPSULAREA oăclas ănuătrebuieăs ăexpun ădecâtăansamblulăopera iilorăcare formeaz ăcomportamentulăinstan ierilorăsale,ăadic ăatributele
trebuieăs ăfieămascate,ădeciăinvizibileăşiăinaccesibileădinăexterior
înăconsecin ,ăsuntănecesareăopera iiădistincte pentru consultareaăşiămodificareaă- sauăcelăpu inăini ializareaă–con inutuluiăatributeloră“încapsulate”ă(ascunse);
Spre exemplu pentru clasa Utilaj:
al turi de opera iile existente de Reevaluare, Casare, Achizi ionare, Valoare_r mas şi Amortizare_lunar , este necesar ad ugarea de noi opera ii pentru consultarea şi atribuirea de valori pentru cele patru atribute: Num r_inventar,ăData_intrare,ă
Valoare_contabil _intrare,ăDenumire.
ÎNCAPSULAREA
Întrucât aceste opera ii noi ad ugate au un caracter implicit, ele pot s nu fie specificate în cursul analizei şi proiect rii, dar vor trebui s apar , obligatoriu, în faza de programare.
ÎNCAPSULAREA pentru a permite mascareaăselectiv ăaăatributelorăşiă
metodelor,ăindispensabil ăînăpractic ,ă se recurge la conceptul de VIZIBILITATE
în termeni generali, pentru ca unăobiectăs ăpoat ăinvocaăoăopera ieăsauăs ăfac ăreferireălaăunăatribut, acesteaătrebuieăs ăfieăVIZIBILEăPENTRUăEL;
Vizibilitateaăesteăstructurat ăpeătreiănivele:ă PUBLIC,ăPRIVATăŞIăPROTEJAT:
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 fixat ăindividualăpentruăfiecareăatributăşiăopera ie,ărespectivămetod ,ăceeaăceăofer ăunăsporădeăflexibilitate.ăGradul de încapsulare este indicat de nivelul de vizibilitate.
Spre exemplu: fie Clasa “Imobiliz ri”, care are menirea de a grupa caracteristicile comune tuturor imobiliz rilor, fie acestea corporale, necorporale sau financiare;
Printre altele, aici pot exista opera ii distincte pentru fiecare dintre metodele de calcul ale amortiz rii: liniar , degresiv şi accelerat ;
Subclasele acesteia, printre care se num r şi Utilaje, vor invoca, fiecare, opera ia sau opera iile de care au nevoie pentru calcularea amortiz rii, conform specificului obiectelor pe care le reprezint ;
Toateăcelelalteăclaseădinăsistemănuăauănevoieăs ăcunoasc ăexisten aălor: prin urmare, nivelul adecvat de vizibilitate este protejat;
Coeficien ii folosi i de unele metode de calcul a amortiz rii nu trebuie îns cunoscu i decât în cadrul clasei Imobiliz ri: în consecin , atributele care memoreaz coeficen ii sunt private (invizibile pt. subclase).
REUTILIZAREA
constituie unul dintre marile avantaje promise de abordareaăorientat ăpeăobiecteă
Calit ile de modularitate şi flexibilitate conferite prin aplicarea abstractiz rii, încapsul rii şi moştenirii permit construirea de biblioteci de componente reutilizabile, ce pot fi direct asamblate corespunz tor cerin elor fiec rei aplica ii aşa cum se face, spre exemplu, cu c r mizile sau prefabricatele la ridicarea unei construc ii;
La economia de efort de concep ie şi programare realizate astfel, se adaug şi o calitate superioar , provenit din faptul c aceste componente sunt studiate, dezvoltate şi testate independent;
REUTILIZAREA
Moştenireaăstructurilorădeădateăşiăaăcomportamentuluiăcontribuie într-un mod specific la REUTILIZARE
REUTILIZAREA se manifest în primul rând 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 p r ile specifice acesteia, restul fiind ob inut 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”).
PERSISTEN A
ScopulăPERSISTEN EIăesteăacelaădeăaăpermiteăobiectelorăs ă"supravie uiasc "ădeălaăoăexecu ieălaăaltaă
Întrucât NU toate obiectele trebuie conservate, prin PERSISTEN , se poate recurge la termenii de:
OBIECTE EFEMERE sau OBIECTE TRANZITORII, pentru obiectele a c ror existen poate înceta odat cu încheierea execu iei programului;
OBIECTE PERSISTENTE, pentru obiectele care trebuie conservate, astfel încât, la urm toarea execu ie, s poat fi reg site în starea pe care o aveau la terminarea prelucr rii precedente
PERSISTEN Aă EXPRIM ăSARCINAăMEMOR RIIăOBIECTELORă DEăLAăOăEXECU IEăLAăALTA
EXEMPLU SUGESTIV DE ABORDARE ORIENTAT ăOBIECT
Starea fiec ruia dintre cele opt obiecte este definit , la o prim vedere, de pozi ia 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 semnificativăpentruăproblem ,ăalăacestoraăăă const ăînăcapacitateaădeăaăatacaăpeălinie,ăpeăcoloan ă
şiăpeădiagonale.
Problemaăcelorăoptă“regine”ăpeătablaădeăşah!ă S ăg seasc ăoăsolu ieădeăamplasareăpeătablaădeăşahăaăoptăregineă(pieseădeăşah),ăaîăacesteaăs ănuăseăataceăreciproc!
Cumăpoateăfiăidentificat ăfiecareăpies ădintreăceleăoptă?
SOLU IA!ăIdentitatea obiectelor, independent ădeăoriceăproprietateăsauăatribută
alăobiectelor,ăpromovat ădeăabordareaăobiectual ,ăofer ăsolu ieăacesteiăîntreb ri.
CERIN ăPRACTIC :
Evident, piesele sunt identice ca form , m rime, culoare, deci nu exist posibilit i de diferen iere sub acest aspect.
Pozi iaăocupat ăpeătabl ănu poate nici ea servi dreptăidentificator,ăpentruăsimplulămotivăc ăesteăchiarăceeaăceăproiectantulăîncearc ăs ăg seasc .ă
Ceăsolicit ăproblemaădinăpunctulăde vedere al unei regine ?
R spunsul a fost deja formulat: g sirea unei pozi ii inatacabile de c tre celelalte.
Ceăpoateăfaceăoăregin ăînăacestăscopă? S se aşeze pe o pozi ie — linie şi coloan — ini ial şi s le întrebe pe celelalte dac o pot ataca. In cazul în care r spunsul primit este negativ, înseamn c solu ia a fost g sit .
Dac nu, regina în cauz va c uta o nou pozi ie şi se va interesa dac şî în noul amplasament este vulnerabil .
OBSERVA IE: Pentru a simplifica lucrurile, se poate presupune c reginele sunt aşezate din start pe coloane diferite, astfel încât, ceea ce trebuie eventual schimbat, este doar linia.
Din aceleaşiăra iuni,ăoăregin ăpoateăcunoaşteăşiădialogaănumaiă
cu una din vecinele sale, spre exemplu cea din stânga.
In concluzie:
fiecare regin ăvaăaveaătrei atribute: linia, coloana şiă“reginaăvecin ”ădin stânga.
fiecare regin ăvaăaveaătrei opera ii: g seşteăoăpozi ieăini ial ,ăg seşteăalt ă
pozi ie, pozi iaăeste atacabila?.
OBSERVA IE: Cele trei opera ii ale reginei sunt executate de c tre fiecare regin în raport cu starea acesteia, astfel putându-se examina, în temeni generali, ac iunea fiec reia.
Figura:ăUnăobiectăalăclaseiă"regin ădeăşah",ăînăc utareaăuneiăpozi iiăinatacabileă
deăc treăalteăregineădeăpeătabl .
1. G seşteăoăpozi ieăini ial ăva atribuiălinieiăvaloareaă1ăşiăvaăîntrebaăvecinaăsaădinăstângaădac ăpoateăatacaă
pozi iaăînăcareăseăg seşte. Dac vecina r spunde afirmativ, regina aflat în c utarea pozi ie ini iale trebuie s caute o alt amplasare.
2. G seşte alt por ie face exact acest lucru: incrementeaz cu 1 linia curent şi o întreab din nou pe vecina din stânga dac poate ataca noua pozi ie. Întreb rile adresate vecinei invoc opera ia pozi ia este atacabil , ale c rei argumente sunt linia şi coloana la care se refer întrebarea şi al c rei r spuns este un simplu da sau nu
Vecina întrebat va verifica dac pozi ia indicat poate fi atacat de ea îns şi şi, în caz contrar, o va întreba mai departe, pe vecina sa din stânga, dac poate ataca pozi ia respectiv .
OBSERVA IE:ăDac ăr spunsurileătuturor reginelor interogate sunt negative, atunci pozi iaăregineiăesteă
inatacabil . Totodat ,ătrebuieăprecizateăşiăcerin eleăpracticeădeăproiectareăprivindăevitareaăieşiriiăreginelorădinăspa iulă
celor 8 linii ale tableiădeăşah.
Pentru aădeclanşaărezolvarea,ămaiăesteănecesar ăoăcerin ă prin careăs ăseăfac ăamplasareaăreginelorăpeăcâteăoă
coloan ăşiăemitereaăc treăprimaădintreăacesteaăaăunuiă mesaj prinăcareăiăseăcereăs -şiăg seasc ăoăpozi ieăini ial .ă
Aceastaăvaădeclanşaăinterac iuneaădintreăregine,ăderulat ăprinăemitereaăreciproc ădeămesajeăceăinvoc ăceleătreiăopera iiăamintite,ăpân ăcândătoateăşi-auăg sităpozi iiă
inatacabileăşiăprelucrareaăînceteaz ădeălaăsine.
Metodologia O.M.T. (Object Modeling Tehnique)
OMT - este o tehnic de dezvoltare a software-ului bazat pe modele ca abstrac ii ale problemelor din lumea real , menite s focalizeze aspectele importante ale problemei şi s omit pe cele irelevante.
Modelul are trei aspecte importante: ABSTRACTIZAREA REALIT II - pentru aceeaşi problema se pot crea mai multe modele care s focalizeze diferite aspecte. SCOPUL MODELULUI - se focalizeaz ceva cunoscut COMUNICAREA - modelul trebuie în eles de to i membrii echipei de analiz -proiectare, precum şi în eles ş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 FUNC IONAL.
MODELUL OBIECTUAL: – prezint ăstructuraăstatic ăaăsistemului – identific ăclaseleăşiăobiecteleăsistemuluiăşiă
descrieăatributele,ăopera iileăşiărela iileădintreăele – este reprezentat grafic prin:
DIAGRAMA DE ASOCIERE A CLASELOR
(DAC)
ModelulăDINAMICăşiăModelulăFUNC IONAL
MODELUL DINAMIC: prezint ăac iunileă(comportamentulădeăbaz )ăalăsistemului
MODELUL DINAMIC: – prezint ăac iunileă(comportamentulădeăbaz )ăalăsistemului – reflect ădinamicaăobiectelorăşiămodific rileăst rilorălor,ăreliefândămodulăînă
careăesteăinfluen atăunăobiectăde-aălungulăcicluluiădeăvia – este reprezentat grafic prin:
DIAGRAMA DE TRASARE A EVENIMENTELOR (DTE) DIAGRAMA DE TRANZI IEăAăST RILORă(DTS)
MODELULăFUNC IONAL: – prezint ăfunc iileăsistemului,ădarănuăşiămodulăînăcareăseădesf şoar – descrieăvalorileădatelor,ăprecizândăsursaălor,ătransform rileălorăşiă
destina iaălor – este reprezentat grafic prin:
DIAGRAMA DE FLUX DE DATE (DFD)
MODELUL FUNC IONAL: prezint ăfunc iileăsistemului,ădarănuăşiămodulăînăcareăseădesf şoar
Relațiile dintre clase
Asocierea - o relație dintre dou obiecte care sunt independente. Ea reprezint o dependenț semantic și nu precizeaz direcția acestei dependențe: ea implic navigarea bidirecțional . Asocierea poate fi de tip: 1:1; 1:m; m:n
Moștenirea – este proprietatea prin care o subclasa moștenește structura și comportamentul superclasei sale.
Agregarea este o relatie întreg/parte care d posibilitatea de a naviga de la întreg (numit agregat) c tre p rțile sale sau nu. Agregarea este un caz particular de asociere.
Relațiile dintre clase - continuare
Utilizarea este o relație care poate fi privit ca posibil rafinare a unei asocieri prin care se precizeaz care din abstracții este clientul și care este furnizorul unui anumit serviciu.
Instanțierea. O clasa parametrizata (clasa generica) este o clas care servește ca șablon (cadru) pentru alte clase. O clas generic trebuie instanțiat (parametrii sai trebuie completați) înainte de crearea obiectelor clasei respective. Dac o clas generic utilizeaz o alt clas generic , amândou trebuie instanțiate.
AGREGARE/DESCOMPUNERE
sunt opera ii semantice în care, clasele rezultate din descompunere, sunt p r i ale clasei agregate.
AGREGAREA : descrie un obiect ca fiind constituit din mai multe
obiecte. se foloseşte la gruparea claselor într-o nou
clas . se foloseşte la construc ia unui obiect complex,
rezultat din gruparea lui în p r ile componente
Agregarea
Agregarea se refer la p rțile componente ale unui întreg Este un tip special de asociere între o clas ”ÎNTREG” şi una sau mai multe clase de tip “PARTE”. sunt opera ii semantice în care clasele rezultate din
descompunere sunt p r i ale clasei agregate. Forma general a rela iei de agregare “PARTE-ÎNTREG”:
Observație
Agregarea este o relație întreg/parte care permite navigarea de la întreg (numit agregat) c tre p rțile sale sau nu.
Agregarea și moștenirea se reprezint sub form de arbore, astfel:
- un arbore de agregare este format din acele obiecte care sunt p rți ale obiectului compus; - un arbore de generalizare este format din clasele care descriu aceleași obiecte, dar la nivele de detaliere diferite
Exemplu
Pentruăob inereaăDiplomeiădeăLicen ădeăc treăunăabsolvent,ăşiăimplicit,ăaăstatutuluiădeălicen iat,ăunăstudentăătrebuieăs ăsus in ă– în cadrulăExamenuluiădeăLicen ă– dou ăprobe,ărespectivădou ăexemene distincte – caăstructur ăşiămodădeădesf şurareă– dar ambeleăp r iăaleăaceluiaşiăîntregă(Licen a)ă: oăprob ăscris :ăreprezentândăverificareaăcunoştin elorăteoreticeăaleă
absolventului o prob practic : reperezentând sus inerea Proiectului de Diplom ,
respectiv prezentarea unui produs program propriu.
Explicație
Fiecare din cele dou p r i 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 opera iile corespunz toare reprezentate de:
Dat Scris,ăComisieScris,ăGril Scris,ăPunctajScris,ăÎnscrieNot ,ăAccept Constesta iăetcă
respectiv:ăDat Sus inereProiect,ăComisieProiect,ăNot PrezentareProiect,ăFormuleaz Aprecieri,ăStabileşteNot Proiectăetc
Explicație - continuare
Leg turaăstabilit ăîntreăparteăşiăîntregăînăaceast ăasociereăesteădeătipulă“unuălaăunu”
Aceasta înseamn c atât Parteaăteoretic ăcât şiăProiectulădeăDiplom ăpotăfiăsus inuteăoăsingur ădat ,ăînăcadrulăuneiăsesiuniădeălicen ă(nuăseăpotăprezentaăabsolven iăde programe de licenț pentru a su ine, în aceeaşiăsesiune, una dintre probe de mai multe ori)
POLIMORFISMUL Termenul POLIMORFISM esteăderivatădinădou ăcuvinteă
greceşti:ă“POLI”, careăînseamn ă“MULTE”ăşiă“MORPHOS”, careăînseamn ă“FORM ”
.
Polimorfismul desemneaz ăcapacitateaăuneiăopera iiădeăaăseăaplica obiectelor din clase diferite.
Unul dintre cele mai comune exemple de polimorfism este reprezentat de operatoriiă“+”ăşiă“-”ă(minus),ăcareăexprim ăadunarea,ărespectivăsc derea,ăatâtăpentruănumereleăîntregiăcâtăşiăpentru cele reale.
Spre exemplu: Opera ia:ă“Amortizare_lunara”ăseăvaărealizaăînăămaniereăă
diferite pentru clasele: UTILAJ, CONCESIUNE sau TITLU DE PARTICIPARE
Opera iileăpolimorfeăsunt implementate de mai multe clase prin metode diferite.
ABSTRACTIZAREA esteăprocesulăprinăcareăseăizoleaz ăşiăseăre inănumaiăoă
parte dintre aspectele unei probleme, considerate esen iale, ignorându-le pe celelalte
ASPECTELE RE INUTE depind de scopul urm rit. Rezult de aici c , pentru aceeaşi problem sau aspect al
realit ii, pot exista mai multe abstractiz ri diferite. Spre exemplu: OBIECTUL STRUNGUL 2 va fi privit în mod
diferit de c tre CONTABIL şi de c tre MECANICUL DE ÎNTRE INERE:
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 num rul de ore de func ionare, de piesele componente, de gradul de uzur fizic sau de data ultimei repara ii.
ABSTRACTIZAREA permite concentrarea asupra aspectelor
conceptual-func ionaleăşiăevitareaălu riiăprematureăînăconsidera ieăaădetaliilor
ASPECTELE RE INUTE depind de scopul urm rit. Rezult de aici c , pentru aceeaşi problem sau aspect al
realit ii, pot exista mai multe abstractiz ri diferite. Spre exemplu: OBIECTUL STRUNGUL 2 va fi privit în mod
diferit de c tre CONTABIL şi de c tre MECANICUL DE ÎNTRE INERE:
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 num rul de ore de func ionare, de piesele componente, de gradul de uzur fizic sau de data ultimei repara ii.
ABSTRACTIZAREA îşiăg seşteămultipleăutiliz riăînăinformatic ,ăpeătotă
parcursulădezvolt riiăuneiăaplica iiăinformatice,ăindiferentădeămetodaă(sauădeălipsaădeămetod )ăfolosit
Spre exemplu: CLASELE reprezint ABSTRACTIZ RI ale unor MUL IMI DE OBIECTE;
Una dintre uzan ele specifice ABSTRACTIZ RII, const în formularea în termeni informatici - înregistrare, cheie, procedur , func ie, modul etc - a unor concepte sau p r i ale lumii reale, cu un nivel mult mai înalt de abstractizare - persoane, structuri organizatorice, utilaje, facturi etc.
ÎNCAPSULAREA
plaseaz ăoăbarier ăîntreăcomportamentulăexterioră şiădetaliileăinterne
este numit şi mascarea informa iilor ş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 interfe e, care expune numai caracteristicile func ionale utiliz rii;
prin încapsulare se reduce gradul de interdependen între componente: dac sunt necesare modific ri pentru înl turarea unor erori sau pentru ameliorarea performan elor de execu ie, aceasta afecteaz numai partea de implementare;
astfel, interfa a r mâne neschimbat şi, în consecin , func ionarea celorlalte componente ale aplica iei nu este afectat .
ÎNCAPSULAREA oăclas ănuătrebuieăs ăexpun ădecâtăansamblulăopera iilorăcare formeaz ăcomportamentulăinstan ierilorăsale,ăadic ăatributele
trebuieăs ăfieămascate,ădeciăinvizibileăşiăinaccesibileădinăexterior
înăconsecin ,ăsuntănecesareăopera iiădistincte pentru consultareaăşiămodificareaă- sauăcelăpu inăini ializareaă–con inutuluiăatributeloră“încapsulate”ă(ascunse);
Spre exemplu pentru clasa Utilaj: al turi de opera iile existente de Reevaluare, Casare, Achizi ionare, Valoare_r mas şi Amortizare_lunar , este necesar ad ugarea de noi opera ii pentru consultarea şi atribuirea de valori pentru cele patru atribute: Num r_inventar,ăData_intrare,ă
Valoare_contabil _intrare,ăDenumire.
ÎNCAPSULAREA
Întrucât aceste opera ii noi ad ugate au un caracter implicit, ele pot s nu fie specificate în cursul analizei şi proiect rii, dar vor trebui s apar , obligatoriu, în faza de programare.
ÎNCAPSULAREA pentru a permite mascareaăselectiv ăaăatributelorăşiă
metodelor,ăindispensabil ăînăpractic ,ă se recurge la conceptul de VIZIBILITATE
în termeni generali, pentru ca unăobiectăs ăpoat ăinvocaăoăopera ieăsauăs ăfac ăreferireălaăunăatribut, acesteaătrebuieăs ăfieăVIZIBILEăPENTRUăEL;
Vizibilitateaăesteăstructurat ăpeătreiănivele:ă PUBLIC,ăPRIVATăŞIăPROTEJAT: 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 fixat ăindividualăpentruăfiecareăatributăşiăopera ie,ărespectivămetod ,ăceeaăceăofer ăunăsporădeăflexibilitate.ăGradul de încapsulare este indicat de nivelul de vizibilitate.
Spre exemplu: fie Clasa “Imobiliz ri”, care are menirea de a grupa caracteristicile comune tuturor imobiliz rilor, fie acestea corporale, necorporale sau financiare;
Printre altele, aici pot exista opera ii distincte pentru fiecare dintre metodele de calcul ale amortiz rii: liniar , degresiv şi accelerat ;
Subclasele acesteia, printre care se num r şi Utilaje, vor invoca, fiecare, opera ia sau opera iile de care au nevoie pentru calcularea amortiz rii, conform specificului obiectelor pe care le reprezint ;
Toateăcelelalteăclaseădinăsistemănuăauănevoieăs ăcunoasc ăexisten aălor: prin urmare, nivelul adecvat de vizibilitate este protejat;
Coeficien ii folosi i de unele metode de calcul a amortiz rii nu trebuie îns cunoscu i decât în cadrul clasei Imobiliz ri: în consecin , atributele care memoreaz coeficen ii sunt private (invizibile pt. subclase).
REUTILIZAREA
constituie unul dintre marile avantaje promise de abordareaăorientat ăpeăobiecteă
Calit ile de modularitate şi flexibilitate conferite prin aplicarea abstractiz rii, încapsul rii şi moştenirii permit construirea de biblioteci de componente reutilizabile, ce pot fi direct asamblate corespunz tor cerin elor fiec rei aplica ii aşa cum se face, spre exemplu, cu c r mizile sau prefabricatele la ridicarea unei construc ii;
La economia de efort de concep ie şi programare realizate astfel, se adaug şi o calitate superioar , provenit din faptul c aceste componente sunt studiate, dezvoltate şi testate independent;
REUTILIZAREA
Moştenireaăstructurilorădeădateăşiăaăcomportamentuluiăcontribuie într-un mod specific la REUTILIZARE
REUTILIZAREA se manifest în primul rând 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 p r ile specifice acesteia, restul fiind ob inut 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”).
PERSISTEN A
ScopulăPERSISTEN EIăesteăacelaădeăaăpermiteăobiectelorăs ă"supravie uiasc "ădeălaăoăexecu ieălaăaltaă
Întrucât NU toate obiectele trebuie conservate, prin PERSISTEN , se poate recurge la termenii de:
OBIECTE EFEMERE sau OBIECTE TRANZITORII, pentru obiectele a c ror existen poate înceta odat cu încheierea execu iei programului;
OBIECTE PERSISTENTE, pentru obiectele care trebuie conservate, astfel încât, la urm toarea execu ie, s poat fi reg site în starea pe care o aveau la terminarea prelucr rii precedente
PERSISTEN Aă EXPRIM ăSARCINAăMEMOR RIIăOBIECTELORă DEăLAăOăEXECU IEăLAăALTA
EXEMPLU SUGESTIV DE ABORDARE ORIENTAT ăOBIECT
Starea fiec ruia dintre cele opt obiecte este definit , la o prim vedere, de pozi ia 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 semnificativăpentruăproblem ,ăalăacestoraăăă const ăînăcapacitateaădeăaăatacaăpeălinie,ăpeăcoloan ă
şiăpeădiagonale.
Problemaăcelorăoptă“regine”ăpeătablaădeăşah!ă S ăg seasc ăoăsolu ieădeăamplasareăpeătablaădeăşahăaăoptăregineă(pieseădeăşah),ăaîăacesteaăs ănuăseăataceăreciproc!
Cumăpoateăfiăidentificat ăfiecareăpies ădintreăceleăoptă?
SOLU IA!ăIdentitatea obiectelor, independent ădeăoriceăproprietateăsauăatribută
alăobiectelor,ăpromovat ădeăabordareaăobiectual ,ăofer ăsolu ieăacesteiăîntreb ri.
CERIN ăPRACTIC :
Evident, piesele sunt identice ca form , m rime, culoare, deci nu exist posibilit i de diferen iere sub acest aspect.
Pozi iaăocupat ăpeătabl ănu poate nici ea servi dreptăidentificator,ăpentruăsimplulămotivăc ăesteăchiarăceeaăceăproiectantulăîncearc ăs ăg seasc .ă
Ceăsolicit ăproblemaădinăpunctulăde vedere al unei regine ?
R spunsul a fost deja formulat: g sirea unei pozi ii inatacabile de c tre celelalte.
Ceăpoateăfaceăoăregin ăînăacestăscopă? S se aşeze pe o pozi ie — linie şi coloan — ini ial şi s le întrebe pe celelalte dac o pot ataca. In cazul în care r spunsul primit este negativ, înseamn c solu ia a fost g sit .
Dac nu, regina în cauz va c uta o nou pozi ie şi se va interesa dac şî în noul amplasament este vulnerabil .
OBSERVA IE: Pentru a simplifica lucrurile, se poate presupune c reginele sunt aşezate din start pe coloane diferite, astfel încât, ceea ce trebuie eventual schimbat, este doar linia.
Din aceleaşiăra iuni,ăoăregin ăpoateăcunoaşteăşiădialogaănumaiă
cu una din vecinele sale, spre exemplu cea din stânga.
In concluzie:
fiecare regin ăvaăaveaătrei atribute: linia, coloana şiă“reginaăvecin ”ădin stânga.
fiecare regin ăvaăaveaătrei opera ii: g seşteăoăpozi ieăini ial ,ăg seşteăalt ă
pozi ie, pozi iaăeste atacabila?.
OBSERVA IE: Cele trei opera ii ale reginei sunt executate de c tre fiecare regin în raport cu starea acesteia, astfel putându-se examina, în temeni generali, ac iunea fiec reia.
Figura:ăUnăobiectăalăclaseiă"regin ădeăşah",ăînăc utareaăuneiăpozi iiăinatacabileă
deăc treăalteăregineădeăpeătabl .
1. G seşteăoăpozi ieăini ial ăva atribuiălinieiăvaloareaă1ăşiăvaăîntrebaăvecinaăsaădinăstângaădac ăpoateăatacaă
pozi iaăînăcareăseăg seşte. Dac vecina r spunde afirmativ, regina aflat în c utarea pozi ie ini iale trebuie s caute o alt amplasare.
2. G seşte alt por ie face exact acest lucru: incrementeaz cu 1 linia curent şi o întreab din nou pe vecina din stânga dac poate ataca noua pozi ie. Întreb rile adresate vecinei invoc opera ia pozi ia este atacabil , ale c rei argumente sunt linia şi coloana la care se refer întrebarea şi al c rei r spuns este un simplu da sau nu
Vecina întrebat va verifica dac pozi ia indicat poate fi atacat de ea îns şi şi, în caz contrar, o va întreba mai departe, pe vecina sa din stânga, dac poate ataca pozi ia respectiv .
OBSERVA IE:ăDac ăr spunsurileătuturor reginelor interogate sunt negative, atunci pozi iaăregineiăesteă
inatacabil . Totodat ,ătrebuieăprecizateăşiăcerin eleăpracticeădeăproiectareăprivindăevitareaăieşiriiăreginelorădinăspa iulă
celor 8 linii ale tableiădeăşah.
Pentru aădeclanşaărezolvarea,ămaiăesteănecesar ăoăcerin ă prin careăs ăseăfac ăamplasareaăreginelorăpeăcâteăoă
coloan ăşiăemitereaăc treăprimaădintreăacesteaăaăunuiă mesaj prinăcareăiăseăcereăs -şiăg seasc ăoăpozi ieăini ial .ă
Aceastaăvaădeclanşaăinterac iuneaădintreăregine,ăderulat ăprinăemitereaăreciproc ădeămesajeăceăinvoc ăceleătreiăopera iiăamintite,ăpân ăcândătoateăşi-auăg sităpozi iiă
inatacabileăşiăprelucrareaăînceteaz ădeălaăsine.
Metodologia O.M.T. (Object Modeling Tehnique)
OMT - este o tehnic de dezvoltare a software-ului bazat pe modele ca abstrac ii ale problemelor din lumea real , menite s focalizeze aspectele importante ale problemei şi s omit pe cele irelevante.
Modelul are trei aspecte importante: ABSTRACTIZAREA REALIT II - pentru aceeaşi problema se pot crea mai multe modele care s focalizeze diferite aspecte. SCOPUL MODELULUI - se focalizeaz ceva cunoscut COMUNICAREA - modelul trebuie în eles de to i membrii echipei de analiz -proiectare, precum şi în eles ş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 FUNC IONAL.
MODELUL OBIECTUAL: – prezint ăstructuraăstatic ăaăsistemului – identific ăclaseleăşiăobiecteleăsistemuluiăşiă
descrieăatributele,ăopera iileăşiărela iileădintreăele – este reprezentat grafic prin:
DIAGRAMA DE ASOCIERE A CLASELOR (DAC)
ModelulăDINAMICăşiăModelulăFUNC IONAL
MODELUL DINAMIC: prezint ăac iunileă(comportamentulădeăbaz )ăalăsistemului
MODELUL DINAMIC: – prezint ăac iunileă(comportamentulădeăbaz )ăalăsistemului – reflect ădinamicaăobiectelorăşiămodific rileăst rilorălor,ăreliefândămodulăînă
careăesteăinfluen atăunăobiectăde-aălungulăcicluluiădeăvia – este reprezentat grafic prin:
DIAGRAMA DE TRASARE A EVENIMENTELOR (DTE) DIAGRAMA DE TRANZI IEăAăST RILORă(DTS)
MODELULăFUNC IONAL: – prezint ăfunc iileăsistemului,ădarănuăşiămodulăînăcareăseădesf şoar – descrieăvalorileădatelor,ăprecizândăsursaălor,ătransform rileălorăşiă
destina iaălor – este reprezentat grafic prin:
DIAGRAMA DE FLUX DE DATE (DFD)
MODELUL FUNC IONAL: prezint ăfunc iileăsistemului,ădarănuăşiămodulăînăcareăseădesf şoar