|
Metode de abordare a sistemelor informatice
Elaborarea unui produs informatic constituie o activitate deosebit de complexa. O asemenea activitate nu se poate desfasura decat pe baze metodologice riguroase, generatoare de eficienta si eficacitate in management si in plan economic.
Etapele de realizare a unui sistem informatic: analiza, proiectare, implementare sunt unanim recunoscute de toti realizatorii de sisteme informatice. Nu se pune in discutie denumirea etapelor sau succesiunea lor, ci modul de grupare a activitatilor necesare procesului de elaborare a unui sistem informatic. Din aceste considerente etapele de realizare a unui sistem informatic sunt tratate in detaliu sau mai superficial, in functie de contextul in care au aparut si in functie de modul concret de realizare a unui sistem informatic.
Un aspect comun pentru aceste etape si activitati este faptul ca trecerea de la o etapa la alta se face numai dupaa o analiza de fond a modului de realizare a sarcinilor, etapelor parcurse si avizarii de catre factorii de raspundere ai beneficiarului a rezultatelor obtinute.
De asemenea, orice etapa, parcursa deja, se finalizeaza cu activitati de pregatire a etapei urmatoare, prin elaborarea sau actualizarea planului de lucru.
Se desprinde concluzia, ca realizarea unui sistem informatic impune folosirea unor resurse materiale, umane si financiare, iar utilizarea eficienta a acestora nu se poate realiza decat apeland la cele mai performante si moderne metodologii de realizare a sistemelor informatice.
Putem defini metodologia de realizare a unui sistem informatic ca "o implementare fizica a ciclului de viata a sistemelor care include:
activitati pas cu pas pentru fiecare etapa de lucru;
regulile individuale si de grup pentru fiecare activitate;
standardele de calitate in fiecare activitate;
instrumentele si tehnicile utilizate in fiecare activitate."
O metodologie de realizare a unui sistem informatic este o multime de concepte fundamentale, reguli de notatie, ce sunt utilizate impreuna cu multimea proceselor si a regulilor empirice recomandate pentru construirea modelelor si implementarea lor. Altfel spus, o metodologie este o expresie a ciclului de viata considerat ca fiind cel mai adecvat pentru dezvoltarea unui sistem dat."
Din aceste definitii, constatam ca o metodologie de realizare a unui sistem informatic trebuie sa cuprinda:
modul de abordare a sistemelor informatice;
modalitati de derulare a ciclului de viata a sistemelor informatice;
metode si tehnici de realizare a sistemelor informatice;
modalitati de conducere a proiectului (planificare, organizare, urmarire).
Principalele metode de abordare a sistemelor informatice
Metodele de abordare a sistemelor informatice s-au transformat si evoluat in paralel cu dezvoltarea tehnologiilor informationale, a sistemelor informationale si a organizatiilor.
Multitudinea metodelor de abordare, determinata de caracteristicile activitatilor necesare realizarii sistemelor informatice, au fost comentate (caracterizate) de multi autori de specialitate, dar le vom descrie pe cele considerate mai edificatoare.
Autorii Yourdon si Argila efectueaza o trecere in revista nu a metodelor, asa cum le-am intitulat noi anterior, ci a scolilor.
De la forma incipienta a anilor 1950-1960, ce ar putea fi botezata .a programelor inteligibile, referirea in mod evident fiind o trimitere la neputinta intelegerii de catre majoritatea utilizatorilor calculatoarelor a programelor scrise in cod - masina sau in "criptatele" limbaje de asamblare, s-a ajuns la un important moment de progres: modularizarea programelor.
Din curentul "gandirii modulare" s-a desprins scoala descompunerii functionale. De fapt, autorii considera ca aceasta ar fi prima scoala veritabila de abordare a sistemelor, in fiecare modul existand cate o functie.
Alta scoala, concurenta celei amintite anterior, pune la baza modulelor, datele. Crezul ei este formulat astfel: "Fiecare modul trebuie sa aiba incapsulata o structura de date". Numai ca proiectantii aplicatiilor in timp real aveau alta opinie, si anume: "Fiecare modul trebuie sa recunoasca si sa raspunda unui eveniment".
Analizand scolile prezentate, putem spune ca ele sunt orientate spre functii, spre date si spre evenimente. Pe acest fond, Yourdon si Argila afirma ca apare o a patra scoala, cu crezul: "Fiecare modul corespunde unui si numai unui singur obiect din lumea reala" Autorii ajung la concluzia ca structurarea programelor nu va mai fi efectuata in functie de metodele de analiza, ci, in varianta orientata-obiect, ea se va efectua in concordanta cu problema de rezolvat. Virtual, orice componenta a ciclului de viata al ingineriei softului poate fi incapsulata ca un obiect reutilizabil.
Istoricul scolilor de mai sus este precedat de o alta grupare a metodelor de analiza, realizata tot de Yourdon, insa in echipa cu Peter Coad. Cei doi autori prezinta patru modalitati de abordare a analizelor, considerate ca instrumente ale gandirii utilizate pentru a ajuta la formularea cerintelor. Cele patru metode sunt orientate spre functii, procese, informatii (date), ultima fiind cea orientata obiect. Autorii fac mentiunea ca nu se pune problema desfiintarii metodelor vechi, ci a incorporarii celor mai bune idei ale primelor trei metode in una mai cuprinzatoare, atotcuprinzatoare - analiza orientata - obiect
Intr-o versiune proprie, David Brown sistematizeaza metodele de abordare a sistemelor informatice in:
metode timpurii nesistematizate (1950 - inceputul anilor 1960);
metode orientate-iesiri (sfarsitul anilor 1960);
metode orientate-proces, prin apelarea la diagramele fluxurilor de date, DFD (anii 1970);
metode orientate-date, prin folosirea diagramelor entitate-relatie, DER (anii1980);
metode orientate-obiect (anii 1990).
D. Oprea, considera ca metodele ar putea fi grupate, prin prisma celor mai multi autori, astfel:
metode orientate spre functii, numite si metode ale descompunerii functionale;
metode orientate spre fluxuri de date, deci spre procese, deoarece diagramele fluxurilor de date se intrebuinteaza pentru descrierea proceselor. Deseori, in forma lapidara, aceste metode sunt denumite orientate - date.
metode orientate spre informatii sau date, orientate-informatii, probabil si datorita popularizarii puternice a ingineriei informatiei a lui James Martin, dar si a diagramelor entitate - relatie ale lui Chen;
metode orientate-obiect.
Oricum, dupa cum afirma James Martin si James Odell: ,,exista multe metode de realizare a sistemelor; ele vor exista intotdeauna si trebuie sa existe intotdeauna. Diferite activitatii pot avea caracteristici diferite care sa necesite moduri diferite de abordare. Provocarea consta in selectia si integrarea acestor metode''. De fapt, referindu-se numai la metodele orientate-obiect, Hoffer, George si Valacich, in 1996, inventariau cel putin 13 sisteme de notatie, desi, in 1994, T.F. Hutt lansase deja o carte in care erau destul de detaliat descrise caracteristicile a peste 20 de metode orientate-obiect.
Steve Skidmore, citand cercetarea lui Ian Graham, in 1997, spune ca au fost identificate probabil 60 de metode complet orientate - obiect. Comentariile sunt de prisos.
Caracteristicile esentiale ale principalelor metode de abordare a sistemelor
Dupa prezentarea principalelor opinii exprimate in literatura de specialitate cu privire la evolutia si clasificarea metodelor de abordare a sistemelor informationale, vom face o scurta prezentare a principalelor abordari in dezvoltarea sistemelor informationale. In acest sens, vom urma gruparea prezentata in finalul paragrafului anterior si care se regaseste de altfel, in mod explicit sau implicit, in majoritatea opiniilor exprimate in literatura de specialitate.
Metoda descompunerii functionale (orientate-functii)
Dintre autorii remarcabili care au abordat descompunerea functionala ii enumeram pe cativa, cum ar fi DeMarco, Yourdon si Constantine, Jackson, Page-Jones, Warnier-Orr, Dahl, Marco & Mc Gowan.
Descompunerea functionala este cea care anunta aparitia proiectarii structurate si analizei structurate. Ea a fost conceputa cu scopul controlarii complexitatii prin operatiuni de tipul devide et impera. Fiecare functie este descompusa in subfunctii s.a.m.d., pana cand se obtin forme usor de transpus in instructiunile limbajelor de programare.
Si in cazul descompunerii functionale conceptele specifice au fost introduse mai intai in programarea structurata (Dahl, 1972) si apoi in proiectare, urmata de analiza. Aceeasi situatie este intalnita si in varianta orientarii - obiect.
Descompunerea functionala (DF) este vazuta ca o suma de functii, subfunctii si interfete functionale, sub forma unei ecuatii:
DF=Functii
+Subfunctii
+Interfete functionale.
Printr-o astfel de reprezentare se ilustreaza modul in care recunoastem o descompunere functionala. Obiectul il constituie prelucrarile necesare in noul sistem. Analistul va specifica prelucrarile si interfetele functionale.
Metoda are ceva puncte tari:
simplitate - fiind o cale naturala de rezolvare a unei probleme;
obtinerea destul de lejera a cerintelor utilizatorului;
generarea de solutii pe diferite niveluri de abstractizare (sistem, subsistem, functie, subfunctie).
Ca puncte slabe sunt descrise:
concentrarea eforturilor spre functii conduce la culegerea multor date redundante;
inexistenta unor reguli precise de descompunere;
evidentierea anevoioasa a interactiunilor non-ierarhice din sistemele complexe.
Disfunctionalitatile metodei au fost mult anihilate prin solutii ingenioase de tipul coeziunii si cuplarii, introduse spre sfarsitul anilor '80 de Page & Jones si Yourdon/Constantine.
Metoda fluxului de date(orientate-procese)
O alta metoda si in acelasi timp o alta modalitate de reprezentare a domeniului problemei si responsabilitatilor sistemului printr-o specificatie tehnica este metoda orientata spre procese, deseori descrisa ca ,,analiza structurata''.
Ecuatia metodei este:
Metoda fluxului de date = Fluxul (si controlul) datelor
+ Transformarile (si controlul) datelor
+ Stocarea (si controlul) datelor
+ Terminatori
+ Specificatii de proces
+ Dictionarul datelor.
Prin aceasta metoda, analistii efectueaza reprezentarea lumii reale prin linii ale fluxurilor in analiza structurata. Se vorbeste despre o metoda ,,veche", cu reprezentantii De Marco - 1978 si Gane & Sarson - 1977, si despre o metoda ,,moderna" de analiza structurata, lansata in dezbateri la nivelul anului 1982 si prin materiale editate in 1984 - reprezentative fiind lucrarile autorilor McMenamin & Palmer, din 1984, si a lui Yourdon, Analiza moderna structurata, din 1989. In ultima varianta sunt definite cu claritate evenimentele din lumea reala la care sistemul trebuie sa raspunda, o forma embrionara a actualelor interactiuni dintre utilizator si sistem, bazate pe mesaje. De asemenea, printr-o documentatie suplimentara, sunt incluse fluxurile datelor si transformarilor la nivel inferior prin intermediul dictionarului de date, respectiv al specificatiilor proceselor.
Cum metoda orientata pe procese are inca un mare grad de asemanare cu descompunerea functionala, criticile metodei descrise anterior se raporteaza si in cazul de fata. Oricum, dupa cum se va vedea ulterior, multe elemente ale acestei metode sunt preluate de catre metodele orientate-obiect.
Metode orientate spre informatii (orientate-date)
Doua realizari remarcabile in domeniu au dat tonul unei noi orientari in abordarea sistemelor: modelarea datelor cu ajutorul diagramelor entitate-relatie, de catre Peter P. Chen (1976) si ingineria informatiei, in viziunea lui James Martin. Acestora li s-au adaugat alte reusite de esenta.
Termenul ,,obiect'' este lansat la mijlocul anilor '70 intr-o forma ,,originala'', nestandard, daca ne gandim fie la semnificatiile anterioare ale lui , fie la cele curente , firesc , din domeniul abordarii sistemelor. Asa cum este el folosit de Chen , de cei ce se ocupa cu modelarea informatiilor (cum ar fi Flavin, in 1981) sau de cei ce trateaza modelarea semantica a datelor (Shlaer & Mellor, in 1988), obiectul este un simbol prin care se reprezinta una sau mai multe ,,ocurente'' (cazuri) ale ,,entitatilor" lumii reale.
Metoda este identificata prin urmatoarea ecuatie:
Modelarea informatiilor = Obiecte
+Atribute
+Relatii
+Supertipuri/Subtipuri
+Obiecte asociative
Coad si Yourdon spun ca si in acest caz se poate vorbi despre existenta a doua strategii.
Strategia veche se bazeaza pe conceperea listei atributelor gruparea lor in obiecte, stabilirea de relatii intre ,,ocurente" (cazuri), folosirea supertipurilor/subtipurilor pentru extragerea atributelor comune si definirea obiectelor asociative pentru reliefarea relatiilor sigure.
Noua strategie este destul de apropiata de precedenta, cu exceptia primului pas, care isi propune mai intai sa identifice obiectele lumii reale si apoi urmeaza descrierea lor cu ajutorul atributelor.
Specialistii apreciaza salturile inregistrate, insa , in acelasi timp fac inventarul conceptelor inexistente, cum ar fi: servicii,mostenire,structura.
Metode orientate-obiect
Intrucat acest subiect necesita multe descrieri preliminare, deocamdata nu vom face decat o foarte sumara prezentare. Sintagma ,,orientat - obiect" este destul de greu de definit din cauza acceptiunilor diferite ce i-au fost date de diversele discipline. Numai in domeniul informaticii exista vreo trei variante: una folosita in modelarea informatiilor , alta in programare si a treia, cea de fata, utilizata in analiza si proiectarea sistemelor, de cele mai multe ori identica semnificatiei din programare. Fiind un domeniu relativ nou, este normal sa existe o mare diversitate de opinii pana si asupra termenului ,,obiect".
Pentru a continua regula prezentarii ecuatiei ce caracterizeaza metoda, o vom reda in cele ce urmeaza:
Orientat-Obiect = Clase si Obiecte
+ Mostenire
+ Comunicatii prin mesaje.
Conceptele de obiect si clasa sunt independente: un obiect apartine unei clase (este o instanta a clasei), iar o clasa este o grupare logica a obiectelor care au aceeasi structura si un comportament similar.
Un obiect este o abstractizare a datelor elementare si poate fi descris astfel:
Obiect = Identitate
+ Comportament
+ Stare.
Identitatea obiectului se realizeaza printr-un identificator al obiectului, care este un atribut invariabil ce permite ca obiectul sa fie referit independente de celelalte obiecte. Identificatorul este generat de sistem la crearea obiectului.
Starea obiectului este o valoare care poate fi simpla (de exemplu, un literal) sau structura(de exemplu, o lista). in ultimul caz, ea poate fi compusa din valori simple, referinte la alte obiecte sau valori care sunt structurate ele insele.
Comportamentul unui obiect este definit printr-un set de operatiuni ce-i pot fi aplicate si este descris in clasa careia ii apartine obiectul.
In concluzie, obiectul este o abstractizare a datelor elementare, caracterizat printr-un identificator unic, invariabil, o clasa careia ii apartine si o stare reprezentata printr-o valoare simpla sau structura.