Suport curs Sisteme anul II ECTS

  • Published on
    02-Feb-2017

  • View
    217

  • Download
    2

Embed Size (px)

Transcript

  • Universitatea Petre Andrei Iai

    Facultatea de Economie

    SISTEME SI APLICATII INFORMATICE

    IN MANAGEMENT

    Note de curs

    Titular disciplin,

    Lect.univ.dr. Virgil Fatu

    2008-2009

  • METODE I TEHNICI DE PROGRAMAREMETODE I TEHNICI DE PROGRAMARE

    Dup cum rezult din evoluia prezentat n paragraful anterior, exist mai multe metode de elaborare a produselor-program. n continuare vom prezenta caracteristicile principale ale acestor metode, deoarece multe din aceste caracteristici se regsesc n metodele i tehnicile utilizate n prezent.

    Metoda programrii clasice

    Prin programarea clasic se face referire la primii ani de dezvoltare a programelor, respectiv nceputul anilor 50, perioad n care existau puine reguli, majoritatea viznd scrierea programelor. De aceea, programarea clasic este impropriu numit metod, ns se face delimitarea de evoluiile ulterioare din domeniul programrii calculatoarelor.

    Programarea clasic presupune conceperea monolitic a programului prin parcurgerea unor etape1:

    analiza problemei n vederea stabilirii exacte a cerinelor informaionale ale utilizatorilor;

    elaborarea schemei logice a programului; scrierea programului surs; compilarea i ansamblarea programului; testarea i corectarea programului; exploatarea programului.

    Dezvoltarea programelor n aceast perioad prezenta o serie de neajunsuri dintre care mai importante erau: elaborarea intuitiv sau artizanal a algoritmilor de rezolvare a problemei; existena numeroaselor operaii de salt (instruciuni GOTO) ce conduc la un timp mare de execuie a programului i fac dificil nelegerea programului i modificarea acestuia, chiar dac acesta dispune de documentaie; imposibilitatea desfurrii activitii de programare n echip; ineficiena i slaba productivitate a activitii de programare, mai ales n cazul programelor mai mari etc.

    Acestea sunt doar cteva din motivele care au determinat progrmatorii s identifice i s formuleze reguli care s-i ghideze n activitatea lor i care au condus la apariia unor metode de programare.

    Metoda programrii modulare

    11 Grama, A., Filip, M., Medii de programare in economie, Editura Sedcom Libris, Iai, 2000

  • Programarea modular poate fi considerat prima metod de programare propriu-zis. Premisele apariiei ei au fost create odat cu apariia limbajului FORTRAN, care oferea posibilitatea utilizrii subprogramelor i compilrii lor separate. Compilarea separat a dus la apariia bibliotecilor de subprograme.

    Programarea modular este o metod de concepere a programelor care presupune descompunerea problemei de rezolvat n mai multe subprobleme mai simple, conform preceptelor gndirii carteziene: orice problem, orict de complex ar fi, poate fi descompus n subprobleme rezolvabile mai uor dect problema iniial. n acest mod, programatorii se pot concentra numai asupra unei subprobleme, considernd-o ca o problem de sine stttoare, dar care este mai simpl i mai uor de rezolvat.

    Trebuie remarcat deja interesul pentru instituirea de reguli n conceperea programelor i nu doar pentru scrierea programelor, precum i considerarea lor ca activiti independente; proiectarea modulelor programului se face independent de limbajul de programare ales, doar la scrierea programelor inndu-se cont de specificul fiecrui limbaj. Fiecrei subprobleme i va corespunde, n principiu, un modul de program, iar produsul-program va fi constituit prin integrarea modulelor componente, dezvoltate separat. De aici deriv i numele metodei programarea modular.

    Modulul este considerat o unitate structural de sine stttoare, fie program, fie subprogram, fie o unitate de program2. Un modul poate fi format, la rndul su, din mai multe module. Modulele sunt relativ independente, ceea ce nseamn c modificarea unui modul nu implic neaprat modificarea celorlalte module. Astfel, n cazul modificrii structurii unui program, dac funcia pe care o realizeaz un modul nu este afectat, atunci acel modul va fi utilizat n continuare fr modificri. n fapt, obiectivul principal urmrit la proiectarea modulelor const n identificarea unor module ct mai generale i mai independente ntre ele, care s permit reutilizarea lor n cazul modificrii programelor. De asemenea, modulele pot comunica ntre ele prin transmiterea de date.

    Fiecare modul are rolul su bine precizat i realizeaz o funcie n cadrul ntregului program, n conformitate cu rezultatele descompunerii funcionale a problemei de rezolvat, realizat prin aplicarea strategiei descendente (top-down). De fapt, din abordarea modular s-a desprins coala descompunerii funcionale3. Metoda presupune identificarea funciilor pe care le va realiza programul n vederea rezolvrii problemei, asocierea unui modul pentru una sau mai multe din funciile identificate, stabilirea legturilor dintre module, obinndu-se astfel structura programului. Dup ce structura programului este clar definit, se trece la transpunerea modulelor n construcii sintactice specifice limbajului de programare ales (scrierea programelor-surs), compilarea acestora i realizarea celorlalte faze necesare obinerii programelor executabile.

    22 Freniu, M., Prv, B., Elaborarea programelor. Metode i tehnici moderne, Editura Promedia, 1994

    33 Oprea, D., Analiza i proiectarea sistemelor informaionale economice, Editura Polirom, Iai, 1999

  • Avantajele programrii modulare sunt multiple, printre cele mai importante se numr:

    creterea calitii programelor obinute; ele conin mai puine erori, sunt mai uor de neles i de modificat.

    Sporirea productivitii i eficienei n activitatea de programare, prin facilitarea lucrului n echip i utilizarea bibliotecilor de subprograme.

    Uurarea testrii programului prin efectuarea unei testri la nivelul modulelor.

    Obinerea unor produse-program extensibile, ceea ce permite adugarea unor noi module n programul existent dac ulterior se dorete realizarea unei noi funcii.

    Metoda programrii structurate

    Metoda programrii structurate reprezint o dezvoltare a metodei programrii modulare prin introducerea unor noi principii, instrumente i tehnici, cu scopul unei mai bune stpniri a complexitii programelor mari. Complexitatea programului privete dificultatea elaborrii produselor-program odat cu creterea dimensiunii acestora. Complexitatea programelor crete exponenial i nu liniar cu dimensiunea sa. De aceea, obiectivul principal al programrii structurate a fost acela de a introduce ordine i rigoare n elaborarea de produse-program, ca o cale de stpnire a complexitii. Fr a intra n detalii, s spunem c pn n prezent metoda programrii structurate a reuit s realizeze doar parial obiectivul propus.

    Principiile programrii structurate au fost introduse de Bohm i Jacopini n 1966, atunci cnd ei au demonstrat c pentru a exprima logica intern a oricrui program sunt suficiente trei tipuri de structuri de control: structura secvenial, structura alternativ i structura repetitiv, iar fiecare din aceste structuri, ca parte dintr-un program, are o singur intrare i o singur ieire. Prin umare, programarea structurat ar putea fi definit ca programarea fr instruciunea GOTO.

    Programarea structurat a fost consacrat la nceputul anilor 70 prin contribuiile a numeroi autori: Dijkstra, Hoare, Mills, Baker, Wirth, Dahl, Warnier etc. n aceast perioad, aplicarea tehnicilor structurate era limitat la activitatea de scriere a programelor, urmrindu-se oferirea unor soluii la urmtoarele probleme: Cum ar trebui s arate un program? Care este legtura dintre structura static i structura dinamic a unui program? Cum poate fi controlat complexitatea unui program atunci cnd mrimea lui crete?

    Un alt obiectiv urmrit n programarea structurat privete modul de scriere a unui program astfel nct el s fie uor de neles i modificat. Claritatea unui program poate fi obinut, n afara utilizrii celor trei structuri de control fundamentale, prin respectarea urmtoarelor dou reguli:

  • scrierea indentat a textului programului i inserarea de comentarii n textul programului.

    Metoda programrii structurate a evoluat continuu, n sensul introducerii disciplinei nu doar n scrierea programelor, ci i n celelalte faze ale elaborrii programelor: analiza, proiectarea, testarea etc. Astfel, programarea structurat poate fi definit ntr-un sens restrns i unul larg4. n sens restrns, programarea structurat face referire la activitatea de codificare (scriere a programelor) i reprezint o metod de construire a programelor n conformitate cu un set de reguli care solicit utilizarea unui format strict, a structurilor de control standard i a unui set de construcii logice. n sens larg, programarea structurat reprezint o metodologie care impune disciplin asupra formei programelor, n analiza, proiectarea, scrierea i testarea programelor; ea este o metodologie de programare pentru construirea de programe modulare, ordonate ierarhic, prin utilizarea structurilor de control standard. Astzi, prin programare structurat se face referire la sensul su larg, motiv pentru care se vorbete de filozofia structurat.

    n concluzie, meritul principal al tehnicilor structurate este acela de a fi preluat toate practicile i experienele acumulate n programare i de a le fi formalizat i standardizat. Programarea structurat preia principiile programrii modulare pe care le dezvolt, dar se deosebete de aceasta cel puin prin dou aspecte:

    modularizarea ierarhic a programelor i utilizarea structurilor de control fundamentale.Avantajele oferite de metoda programrii structurate sunt numeroase, reinnd n

    continuare doar cteva dintre acestea: creterea calitii programelor; sporirea flexibilitii programelor, ceea ce uureaz ntreinerea lor; organizarea raional a ntregului proces de dezvoltare a programelor; creterea productivitii n dezvoltarea programelor de aplicaie prin specializarea

    activitilor.

    Metoda programrii orientat-obiect

    Programarea orientat-obiect pune n centrul ateniei noiunea de obiect, considerat drept o entitate care se poate distinge de alte entiti i care are o semnificaie n contextul aplicaiei modelate. Obiectul asociaz datele i prelucrrile n cadrul aceleiai entiti, rmnnd vizibil doar interfaa obiectului. Obiectele cu proprieti similare, comportament similar i relaii similare fa de alte obiecte constituie o clas de obiecte.

    Un obiect comport un aspect static, reprezentat prin intermediul unor variabile de stare numite atribute i un aspect dinamic, reprezentat de comportamentul obiectului i implementat prin intermediul metodelor asociate obiectului respectiv. Aspectul static este

    44 Martin, J., McClure, C., Op. cit., pp. 41-42

  • ascuns de aspectul dinamic. n acest fel, abordarea orientat-obiect se distinge de abordarea structurat. n locul unei structurri separate a datelor i a funciilor (reprezentate de prelucrri), se modeleaz entiti active formate din structuri de date ascunse de funcii. Un program este privit ntr-o manier global, ca un ansamblu de obiecte care interacioneaz prin intermediul mesajelor, fiecare obiect avnd asociat propriul set de operaii.

    Obiectul, n viziunea programrii orientate-obiect, are urmtoarele caracteristici: identitate: obiectul este o entitate discret care poate fi distins de alte entiti; clasificare: obiectele cu aceleai atribute i operaii sunt grupate n clase, iar un

    obiect este considerat o instan a clasei din care face parte; polimorfism: aceeai operaie poate avea comportament diferit n funcie de

    obiectul la care este ataat, implementarea concret a unei operaii ntr-o anumit clas numindu-se metod;

    motenire: atributele i operaiile se transmit de la o clas la alta de-a lungul unei relaii ierarhice.

    Pentru transmiterea similaritilor de la o clas de obiecte la alta, n condiiile pstrrii diferenelor ntre acestea, se utilizeaz generalizarea i motenirea. Generalizarea este relaia dintre o clas i una sau mai multe versiuni rafinate ale ei, n care clasa care se rafineaz se numete superclas, iar fiecare versiune mai rafinat se numete subclas. Atributele i operaiile comune sunt grupate n superclas i se spune c sunt motenite de subclase.

    Punctele forte ale abordrii orientat-obiect constau n capacitatea de a modela obiecte complexe, de a exprima ntr-o manier integrat dinamica obiectelor, ncapsularea acestor obiecte pentru a ascunde implementarea lor, posibilitatea reutilizrii unor componente ale produsului-program. Punctele slabe sunt reprezentarea monolitic a aplicaiilor, ceea ce nu corespunde cu adevrat percepiei ce o avem asupra realitii i marele efort de abstractizare.

    Preceptele abordrii orientat-obiect au fost aplicate cu succes mai nti n domeniul programrii, iar de la nceputul anilor 90, ca i n cazul tehnicilor structurate, s-au accentuat preocuprile specialitilor pentru implementarea lor i n celelalte faze ale elaborrii programelor. n consecin, au aprut mai multe metode orientate-obiect de relizare a produselor-program.

    n vederea simplificrii procesului de dezvoltare a programelor prin abordarea orientat-obiect, s-au nregistrat numeroase preocupri de integrare a diferitelor metode orientate-obiect existente. Dintre aceste ncercri, cea mai cunoscut i mai reuit s-a concretizat n standardul UML (Unified Modeling Language). UML a rezultat prin integrarea a trei din cele mai cunoscute metode orientate-obiect: OOD (Object Oriented Design) propus de Booch, OMT (Object Modelling Technique) propus de Rambaugh i

  • OOSE (Object-Oriented Software Engineering) propus de Jacobson. n 1996, OMG Object Management Group i-a manifestat interesul pentru rezultatele muncii celor trei autori, n vederea adoptrii UML ca standard n modelarea orientat obiect. n urma colaborrii i cu ali specialiti din domeniu, UML a fost adoptat ca standard OMG n septembrie 1997, fiind astfel utilizat de majoritatea productorilor de instrumente de dezvoltare a sistemelor informatice i specialiti n domeniu. OMG i-a asumat responsabilitatea dezvoltrii ulterioare a standardului UML.

    Programarea vizual

    Complexitatea mediilor de dezvoltare a aplicaiilor i bariera artificial ce se interpune ntre programator i aplicaii sunt doar dou impedimente pe care le elimin programarea vizual. n plus, uurina de nvare i exploatare a limbajelor constituie un argument hotrtor n favoarea programrii vizuale. Obiectivul declarat al acesteia este ca programarea s devin mai uoar pentru programatori i mai accesibil nespecialitilor, indiferent de destinaia limbajului: proiectarea rapid a aplicaiilor, prototipizare, simulri etc. n oricare domeniu, limbajele vizuale trebuie s permit utilizatorului s se concentreze asupra problemei ce o are de rezolvat i mai puin asupra limbajului de programare propriu-zis

    Notaiile vizuale au fost utilizate, practic, de la apariia pr...

Recommended

View more >