curs 1-2 apoo sim (4 files merged)

155
CURS 1-2 ANALIZĂ ŞI PROIECTARE ORIENTATĂ OBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU

Upload: robert-daniel-jitaru

Post on 08-Dec-2015

46 views

Category:

Documents


0 download

DESCRIPTION

curs apoo

TRANSCRIPT

CURS 1-2

ANALIZ ăŞIăPROIECTAREăORIENTAT ăOBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU

"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)

Relatiile dintre modelele O.M.T.

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

CURS 3-4

ANALIZ ăŞIăPROIECTAREăORIENTAT ăOBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU

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).

CLASA

EXEMPLE DE CLASE ŞI INSTAN IERI ALE CLASEI:

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.

ATRIBUTE

Tipuri de atribute:

- Atributul CLASEI

- Atribut DERIVAT

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

Reprezentare grafic

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.

Reprezentare grafica

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)

CURS 5-6

ANALIZ ăŞIăPROIECTAREăORIENTAT ăOBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU

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

Formaăgeneral ădeăreprezentareăaăuneiă ASOCIERI ORDONATE este:

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.

Exemplu: oărela ieădeăămoştenireăSuperclasa/subclasa

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

CURS 7-8

ANALIZ ăŞIăPROIECTAREăORIENTAT ăOBIECT- PROF.UNIV.DR. CORNELIA BOTEZATU

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