Pentru a descarca referate trebuie sa fii membru eCursuri.ro
Intra in contul tau sau inregistreaza-te GRATUIT (dreapta sus)
Proiect Visual Basic
1.Programarea pe obiecte.Notiuni generale
1.1.1. Obiecte.Clase.Caracteristici
Limbajele de programare,tehnicile si metodele de programare au evoluat in mod spectaculos de la aparitia calculatorului si pana astazi,ca urmare a necesitatii de a raspunde la cresterea continua a complexitatii problemelor de rezolvat si deci,implicit a programelor corescpunzatoare.Astfel,programarea a evoluat de la stadiul initial al introducerii notiunilor direct in cod binar si a continuat cu aparitia limbajelor de asamblare,care permiteau reprezentarea simbolica a instructiunilor pt calculator.Atunci cand limbajele de asamblare n-au mai facut fata complexitatii crescande a programelor a fost necesara utilizarea unor limbaje de nivel mai inalt, cunoscute sub numele de limbaje de programare de gereratia 1 si 2, care sa faciliteze gestionarea acelui nivel de complexitate.Reprezentate de seama ale acestei perioade sunt limbajele FORTRAN,COBOL,ALGOL.
Deceniul 6 al secolului 20 a adus cu sine aparitia programarii structurate, ceea ce a constituit unul dintre pasii semnificativi in evolutia ingineriei software, aceasca paradigma de programare dominand o buna bucata de timp lumea programarii.Programarea structurata este sustinuta de limbaje de generatia 3 cum sunt C,PASCAL,BASIC principala caracteristica a lor fiind utilizarea subprogramelor ca modalitate de gestionare a complexitatii.Programarea structurata s-a dovedit a fi o modalitate corespunzatoare de abstractizare a operatiilor si a algoritmilor,dovedindu-si eficienta in gestionarea programelor a caror complexitate putea fi controlata de catre un singur programator sau de catre un numar restrans de programatori.
Odata cu cresterea dimensiunii si complexitatii proiectelor software a devenit tot mai clar ca pentru a le putea controla este absolut necesara abstractizarea datelor si ca in acest scop programarea structurata nu mai este suficienta.In 1984 Shankar afirma ca:”Natura abstractizarilor ce pot fi obtinute prin utilizarea procedurilor este adecvata descrierii operatiilor abstracte, darn u este adecvata descrierii obiectelor abstracte.Aceasta este o carenta majora de vreme ce in multe aplicatii complexitatea obiectelor de date care trebuiesc manipulate contribuie substantial la complexitatea globala a problemei”.
S-a impus gasirea unui nou model de programare capabil sa depaseasca limitarile programarii structurate si care sa fie capabila sa realizeze abstractizarea adecvata a datelor.Asa s-a nascut limbajele bazate pe obiecte si apoi cele orientate pe obiecte.Dintre acestea cele mai raspandite sunt Ada si CLOS si ma ide curand Java(bazate pe obiecte),respective Smalltalk,C++,Eiffel (orientate pe obiecte).
1.1.2.Conceptul de obiecte
In evolutia tehnicilor de proiectare si realizare efectiva a programelor au aparut la un moment dat,concepte si constructii noi,modalitati noi de structurare a datelor, de tratare a colectiilor de date si chiar de programare.
Constructia de baza in abordarea orientata obiect este obiectul care combina structura datelor si comportamentul intr-o singura entitate.
Prin obiect intelegem o entitate din lumea reala asupra careia se poate intreprinde o actiune,sau care poate intreprinde o actiune.
Obiectul este deci un concept,o abstractie sau un lucru,o entitate din lumea reala avand limite precise si un sens precis in contextul problemei studiate
Un obiect este caracterizat prin 3 elemente:
identitate;
stare;
comportament;
Spunem despre un obiect ca are 2 componente:
structura informationala;
comportamentul sau operatiile care actioneaza asupra structurii.
Analizand mai atenti obiectele,constatam ca acestea pot fi:
obiecte concrete,care exista in mod fizica;
obiecte conceptuale(o idee,o lege,etc).
Comportamentul obiectelor poate fi declansat de stimul externi sau evenimente.
Fiecare obiect contine informatii individuale(date) care trebuie sa fie accesate sau modificate numai prin intermediul multimii de operatii care definesc comportamentul obiectului respectiv.Singura parte vizibila a unui obiect este constituita din operatiile(functiile) obiectului si este denumita interfata.
Atat structura care memoreaza informatiile cat si implementarea operatiilor sunt ascunse in interiorul obiectului.Operatiile arata numai ce face obiectul nu si cum face.
Orice obiect are atribute si operatii.
Atributele descriu un obiect si sunt valori ale datelor,in timp ce operatiile(functiile) definesc comportamentul obiectelor.Anumite metode orientate propun,pentru acelasi scop,utilizarea a trei tipuri de obiecte,definite in contextual problemei si anume:
obiecte entitate
obiecte de interfata
obiecte de control
Modelul in abordarea pe obiecte bazata pe faptul ca fiecare obiect, ca subsistem individual cuprinde o procedura particulara, un comportament propriu si comunica cu alte obiecte.
Arhitectura sistemelor cu obiecte se bazeaza pe clase,obiecte si interactiunea dintre ele.
Un obiect dispune de proprietati,metode si evenimente.
Proprietatile unui obiect descriu caracteristicile fizice ale acestuia.Obiectul este deci caracterizat prin proprietatile(atributele) sale:nume,dimensiune,.culoare,eticheta si alte proprietati care fac unic un obiect.
Intr-un limbaj de programare, fiecare obiect poseda o cheie unica prin care el poate fi referit fara ambiguitate.Referintele asupra obiectelor sunt uniforme si independente de continutul lor, ceea ce permite crearea colectiilor de obiecte.
Din punct de vedere al programatorilor,un obiect reprezinta o multime de date si o serie de operatii, numite metode,care manipuleaza datele.Utilizarea de obiecte in programe este o modalitate de a privi programele din perspective obiectelor care compun un sistem.
Un obiect se caracterizeaza prin:
identitate-cea care individualizeaza obiectul
starea obiectului-este caracterizata de atributele care descriu obiectul
Obiectele cu stari comportamentale asemanatoare formeaza deci o clasa de obiecte.
1.1.3.Conceptul de Clasa de obiecte
O clasa de obiecte este o abstractie care descrie toate caracteristicile comune ale unui grup de obiecte si care permite crearea de noi obiecte.Ea descrie o multime de obiecte cu atribute similare,operatii similare,aceeasi semantica si aceleasi relatii cu alte obiecte.
Exemple de clase:
bicicleta;
fereastra;
triunghi.
O clasa poate fi rafinata in subclase din ce in ce mai fine.Fiecare subclasa mosteneste toate proprietatile superclasei sale si adauga propriile sale proprietati.
Daca o clasa mosteneste o alta clasa atunci ea mosteneste toate atributele si operatiile clasei de baza,iar din punctual de vedere al codului, acestea sunt aceleasi cu cele ale clasei de baza,si nu copii ale lor.
Incapsularea reprezinta conceptul care defineste apartenenta unor proprietati si metode fata de un obiect.Incapsularea protejeaza obiectele de manevre eronate din afara.
1.2.Modele utilizate in dezvoltarea de produse software
1.2.1Generalitati privind activitatea de programare
Programarea este practice activitatea prin care se concepe si se realizeaza programul pentru rezolvarea unei probleme,cu ajutorul calculatorului electronic.
Un program reprezinta o succesiune de instructiuni si comenzi apartinand unui/unor limbaje de programare(Pascal,Basic,C,Visual Basic,Java,etc) care conduc la solutionarea problemelor formulate.
Daca ne referim la activitatea de programare,vom identifica in cadrul acesteia,urmatoarele etape:
formularea problemei;
elaborarea,identificarea si descrierea algoritmului de rezolvare a problemei date;
scrierea programului;
testarea programului;
realizarea,completarea si definitivarea documentatiei programului;
exploatarea curenta,utilizarea si intretinerea programului.
Modele utilizate in dezvoltarea programelor:
Un model este o notiune abstracta si este construit pentru a intelege problema inainte de a implementa solutia.
Cele mai utilizate modele in dezvoltarea programelor sunt:
modelul orientat procedural care se bazeaza pe proceduri si algoritmi;
modelul orientat pe obiecte,care consta intr-o colectie de obiecte ce apartin unor clase;
modelul orientat pe reguli(de timpul If-Then);
modelul orientat logic in care anumite scopuri se exprima prin calcule cu predicate;
modelul orientat pe constrangeri(relatii de invarianta).
Cea mai mare raspandire o are modelul procedural si cel mai mare interes il prezinta in ultimul timp modelul orientat pe obiecte.
1.2.2.Scurta prezentare a modelului procedural
Modelul procedural reprezinta,prin intermediu algoritmilor de prelucrare,succesiunea de operatii elementare,in numar infinit,care trebuie parcurse pentru rezolvarea unei probleme.
Modelul procedural are la baza abstractia procedurala si principiul substitutiei conform careia,la apelul unei proceduri,fiecare pozitie de parametru formal din corpul acesteia,poate fi ocupata de o valoare de parametru identical din punct de vedere al tipului,sau de un nou apel la o procedura,inclusive a procedurii in cauza(recursivitate),care reintoarce tipul corespunzator parametrului substituit.
Programele complexe sunt structurate in subprograme si/sau proceduri.Programele cuprind deci proceduri ce se pot apela reciproc.
Dintre limbajele de tim procedural amintim:Pascal,Cobol,Basic,C++,FoxPro.
1.2.3.Modularitatea
Clasele si obiectele obtinute in urma abstractizarii si incapsularii trebuie grupate si apoi stocate intr-o forma fizica,denumita modul.Modulele pot fi privite ca si containere fizice in care declaram clasele si obiectele rezultate in urma proiectarii la nivel logic.Modulele formeaza asadar arhitectura fizica a programului.Modularizarea consta in divizarea programului intr-un numar de module care pot fi compilate separate,dar care sunt conectate intre ele.Limbajele care suporta conceptul de modul fac in acelasi timp distinctia intre interfata modulului si implementarea sa.Putem spune ca incasularea si modularizarea merg mana in mana.Concret,in C++ modulele nu sunt altceva decat fisiere ce pot fi compilate separat.
Reguli generale de modularizare
1.Structura fiecarui modul trebuie as fie sufficient de simpla pentru a putea fi complet inteleasa.
2.Implementarea unui modul trebuie sa depinda doar de interfetele altor module.Cu alte cuvinte trebuie sa fie posibila modificarea implementarii unui modul fara a avea cunostinte despre implementarea altor module si fara a afecta comportarea celorlante module.
3.Detaliile sistemului ce se presupune ca se vor modifica independent vor fi plasate in module diferite.
4.Singurele legaturi intre module vor fi acelea a caror modificare este improbabila.
5.Orice structura de date este incapsulata intr-un modul;ea poate fi accesata direct din interiorul modulului darn u poate fi accesata din afara modulului decat prin intermediul obiectelor si claselor continute in acel modul.
1.2.4.Programarea orientata pe obiecte.Concepte de baza.
Programarea orientata pe obiecte este o metoda de implementare in care programele sunt organizate ca si colectii de obiecte ce coopereaza intre ele,fiecare obiect reprezentand instanta unei clase;fiecare clasa apartine unei ierarhii de clase,clasele fiind unite prin relatii de mostenire.
Limbaj de programare bazat pe obiecte.Programare cu tipuri de date abstracte.
Un limbaj de programare care ofera support pentru utilizarea claselor si a obiectelor,dar care nu are implementat mecanismul relatiilor de mostenire intre clase este un limbaj de programare bazat pe obiecte.Programarea bazata pe clase si pe obiecte,care nu face uz de relatia de mostenire se mai numeste programare cu tipuri de date abstracte.
Pentru a descarca referate trebuie sa fii membru eCursuri.ro
Intra in contul tau sau inregistreaza-te GRATUIT (dreapta sus)
0 comentarii
Adauga comentariu
Pentru a adauga comentarii trebuie sa fii membru eCursuri.ro
Intra in contul tau sau inregistreaza-te GRATUIT (dreapta sus)