+ All Categories
Home > Documents > Clonarea-Informatica

Clonarea-Informatica

Date post: 18-Jul-2015
Category:
Upload: andrei-luca
View: 102 times
Download: 0 times
Share this document with a friend
Description:
Programmer & User please read this!!!
203
  1 INTRODUCERE Dezvoltarea societatii informationale presupune un nou mod de abordare a productiei si circulatiei de software. Obiectivul acestui studiu este definirea conceptelor de clonare informatica, a proceselor specifice clonarii. Este introdus un sistem riguros de indicatori care masoara elementele de structura si de comportament ale  programelor pentru a evidentia situatiile în care un produs program este clona.  Necesitatea clonelor este impusa de dezvoltarea produselor program  prin reutilizare si prin lucrul în echip a, cu trecer ea de la o versiu ne la alta sau de la o generatie la alta de software. Procesele de clonare influenteaza dinamica dezvoltarii de tehnici si metode de analiza proiecta re codifica re – testare – implementar e software atât timp cât sunt mentinute în limite normale si se deruleaza în companiile producatoare de software. Fiecare produs program este definit prin caracteristici constructive la  produ cator si, respectiv, prin mod de comportament la utilizator. În lucrare sunt definiti indicatori cu ajutorul carora se masoara atât caracteristicile constructive cât si cele de comportament, precizându-se prin
Transcript
Page 1: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 1/203

 

 

1 INTRODUCERE

Dezvoltarea societatii informationale presupune un nou mod deabordare a productiei si circulatiei de software.

Obiectivul acestui studiu este definirea conceptelor de clonareinformatica, a proceselor specifice clonarii. Este introdus un sistem rigurosde indicatori care masoara elementele de structura si de comportament aleprogramelor pentru a evidentia situatiile în care un produs program esteclona.

Necesitatea clonelor este impusa de dezvoltarea produselor programprin reutilizare si prin lucrul în echipa, cu trecerea de la o versiune la altasau de la o generatie la alta de software.

Procesele de clonare influenteaza dinamica dezvoltarii de tehnici simetode de analiza – proiectare – codificare – testare – implementaresoftware atât timp cât sunt mentinute în limite normale si se deruleaza încompaniile producatoare de software.

Fiecare produs program este definit prin caracteristici constructive laproducator si, respectiv, prin mod de comportament la utilizator.

În lucrare sunt definiti indicatori cu ajutorul carora se masoara atâtcaracteristicile constructive cât si cele de comportament, precizându-se prin

Page 2: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 2/203

 

proceduri riguroase modul în care se culeg datele si se efectueaza calcule.Fiecare indicator este însotit de exemplificari care evidentiaza cazurilenormale de definire a programului cât si situatiile în care se obtin valoriparticulare.

Din multimea indicatorilor se extrag cei mai importanti, obtinându-se o sublista recunoscuta în continuare sub denumirea de amprenta aprogramului.

O amprenta a programului este definita în unul din urmatoarele treimoduri:

v lista de indicatori formata din reuniunea sublistei indicatorilor destructura si, respectiv, cu sublista indicatorilor de comportament;

v indicator agregat fara diferentiere a importantei factorilor de

influenta;v indicator agregat dupa o noua procedura cu luarea în considerarea diferentierii factorilor de influenta.

Problema clonarii informatice capata o noua valenta în contextuldezvoltarii tehnicilor si metodelor de realizare a aplicatiilor distribuite si decrestere spectaculoasa a costurilor de asigurare a protectiei si securitatiituturor tranzactiilor. De asemenea, realizarea de noi aplicatii cu caracterdeschis orientate spre utilizatorul cetatean care are acces la un terminal

amplasat într-un loc public necesita crearea unor noi tehnologii. Acesteapresupun preluarea masiva a componentelor software aflate în uz curent siincluderea lor într-un produs în care interfetele om – calculator permitderularea de tranzactii de catre cetateni în conditii de maxim confort si desiguranta.

Copierea unei dischete sau a unui CD se realizeaza cu comenzi alesistemului de operare si costurile obtinerii unor còpii sunt date de costulsuportului destinatie. Deci, în urma copierii se obtine clona unui program,unui text, unei baze de date, a unui fisier în general. Simplificând lucrurile,clona informatica este un fisier de iesire, identic cu fisierul de intrare,obtinuta prin operatia de copiere fisiere.

Problema obtinerii clonelor informatice este mult mai complexa si îmbraca o serie de aspecte atât tehnice, cât si juridice care trebuie cunoscutepentru a putea gestiona corect circuitul complet al produselor informatice.

Page 3: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 3/203

 

Stadiul actual al dezvoltarii societatii informationale [GHIL02]românesti este caracterizat prin:

Ø atingerea unui nivel ridicat al infrastructurii IT;Ø diversificarea tipologiilor de aplicatii informatice;Ø crearea de organizatii virtuale orientate pe productie;Ø realizarea de magazine virtuale, derularea activitatilor de – comert

si de alte afaceri electronice;Ø realizarea de noi tipologii de servicii si activitati;Ø orientarea economiei spre valorificarea de cunostinte;Ø cresterea numarului de utilizatori permanenti;Ø orientarea spre rezolvarea problemelor curente (plati, taxe,

achizitii, comert);

Ø dezvoltarea de licitatii electronice;Ø crearea de site-uri pentru prezentare structuri organizationale;Ø crearea de structuri virtuale pentru muzee;Ø realizarea instruirii la distanta în cadrul universitatilor virtuale cu

biblioteci virtuale.

Dezvoltarea infrastructurii si productia de software presupun eforturifinanciare considerabile. Literatura de specialitate mentioneaza costuri cedepasesc de multe ori nivelul produsului intern brut pe cap de locuitor,

pentru obtinerea unui nivel acceptabil de posturi de lucru si de acces laInternet.

În SUA, în tarile UE si în România a fost creat un cadru adecvatpentru dezvoltarea tehnologiilor IT si pentru crearea de aplicatii informaticepe care cetatenii sa le foloseasca în mod direct, fara a fi nevoiti sa parcurgastagii prealabile de instruire. Acest cadru este în continua perfectionarepentru a prelua noile realizari tehnologice si pentru a reflecta gradul deaccesibilitate a cetatenilor la derularea de e-activitati. Astfel, pentrudezvoltarea tranzactiilor electronice a fost realizata o legislatie adecvata, iarpentru protectia producatorilor de software original au fost create organismecare gestioneaza unitar produsele program si licentele de utilizare a acestora.Sunt specificate conditiile de realizare si circulatie a produselor software si aserviciilor.

Practica arata ca în paralel cu activitatile de productie si utilizaresoftware si baze de date, au loc si atacuri la acestea, care joaca rol de frânapentru procesele normale de recuperare a investitiilor si de fructificare aefectelor unui act investitional în informatica. Astfel, crearea de virusi are

menirea de a dezvolta productia de antivirusi. Fiecarui sistem de protectie sisecuritate îi sunt identificate rapid partile slabe si se declanseaza ofensivapenetrarii lor. Pentru a preveni efectele catastrofale se proiecteaza de fiecare

Page 4: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 4/203

 

data noi componente si desi exista costuri uriase, se achizitioneaza noisisteme de protectie si securitate, care au capacitatea sa reducavulnerabilitatea aplicatiilor informatice pentru o anumita perioada. Asa seexplica preocuparile din sistemul bancar, din sistemul de evidenta apopulatiei, din sistemul educational pentru protectia si securitatea bazelor dedate si pentru derularea tranzactiilor.

În paralel sunt desfasurate activitati care ocolesc cadrul legal fara a fireutilizari autorizate de componente program.

Procesele de clonare se regasesc datorita particularitatilor specificepentru domeniul informatic.

Clonarea informatica este un nou domeniu al cercetarii întrucât esteimportanta dezvoltarea de instrumente care evidentiaza originalitatea sau

caracterul de clona al unui produs software lansat pe piata.Companiile producatoare de software uziteaza clonarea în modfrecvent. Trecerea de la o versiune la alta a unui produs software necesitamai întâi realizarea de clone. Fiecare clona este supusa unei analize privindnoi functii care se adauga, functii asupra carora trebuie lucrat daca în timpulexploatarii au produs erori si proceduri care trebuie dezvoltate, în sensulcresterii generalitatii.

Lucrul pe clone este benefic atât timp cât este efectuat de detinatorullegal al produsului software.

Testarea unui produs software la utilizatori, înainte ca produsul sa fieintrodus pe piata, este efectuata cu utilizarea de clone reprezentând diferitestadii atinse de un produs.

Clonarea software pentru testare are rolul de a creste productivitateatesterilor. Simultan, pe clone, se aplica seturi diferite de date de test, iarrezultatele obtinute sunt reunite si analizate.

În cazul în care producatorul de software urmareste obtinerea deavantaje speciale, cloneaza fisierele de texte sursa si le difuzeaza liber.

Lucrul pe text sursa de foarte buna calitate este generatorul sigur alunei scoli de dezvoltare software. Lucrul pe clone conduce la obtinerea deversiuni locale ale produsului clonat. În acelasi timp, se creeaza un grad deindependenta a clientilor fata de producator. Se diminueaza costurile de întretinere. Producatorul de software îsi creeaza disponibilitatea de resursepentru a dezvolta noi produse prin degrevarea de un trecut, deosebit defavorabil.

Crearea de site-uri cu acces liber se bazeaza pe clone software siclone de date. Clona de date pe site-uri permit dezvoltarea de modele care

sunt testate pe aceleasi date, originalitatea si comparabilitatea.

Page 5: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 5/203

 

Clona software regleaza preturile pe piata de software. Dispunereape site a unui produs complet documentat conduce la informareautilizatorilor. Prin compararea acestor produse de pe site cu cele care sevând curent îl orienteaza pe client spre acel produs care i se potriveste.Comparatiile conduc de la sine la eliminarea de la sine a produselor clonate,ambalate sub alta eticheta.

În productia de software clona regleaza calitatea proceselor siproduselor. Calitatea vizeaza în primul rând clona, întrucât sunt multiplicateprodusele software performante. Nu sunt clonate programe neperformantesau programe nenecesare de dragul de a fi stocate pur si simplu pentru a nufi lansate niciodata în executie.

Cine cloneaza software urmareste un scop fie realizarea de profit, fie

obtinerea de efecte pozitive.Lucrarea de fata este rezultatul activitatii de cercetare stiintificadesfasurata de autori de-a lungul mai multor ani. Sunt abordate probleme debaza ale clonarii software si ale clonarii datelor. Rezultate ale cercetarilor aufost publicate în reviste de specialitate sau au facut obiectul unor comunicarila sesiuni si conferinte stiintifice.

La structurare s-a avut în vedere necesitatea unei abordari gradate,astfel încât sa fie clarificate principalele aspecte legate de conceptul declonare, modalitati de obtinere clone în contextul existentei unui cadru

 juridic operational.Sunt propusi indicatori de masurare a gradului de ortogonalitate a

software si a bazelor de date, se constituie în elemente de baza pentrudefinirea de amprente care stau la baza compararii programele si/sau bazelorde date în vederea stabilirii originalitatii lor sau a faptului ca sunt clone.

Implementarea acestor indicatori presupune elaborarea de softwarespecializat. Unele dintre rezultatele obtinute de autori sunt stocate pe site-ulwww.clonare-informatica.ase.ro.

Preluarea produselor program în mod neautorizat este însotita deefectuarea unor transformari, de cele mai multe ori mecanice care au rolulde a obtine produse echivalente, greu de recunoscut, în comparatie cuoriginalul.

Studiile de caz incluse evidentiaza modul cum tehnicile si metodelede clonare sunt utilizate si cum se identifica un produs clonat princompunere de efecte ale automatizarii transformarilor.

Cercetarile în domeniul clonarii informatice sunt la început sinecesita utilizarea unor noi abordari precum si crearea unor structuri

organizationale orientate spre educarea celor care creeaza si utilizeaza directproduse program. Elementele de etica profesionala pentru programatori,pentru dealer-ii de software si pentru utilizatorii produselor program vin sa

Page 6: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 6/203

 

contureze un nou curent în obtinerea unui climat care stimuleaza dezvoltareacalitativa a componentelor software.

Autorii sunt recunoscatori tuturor celor care prin sugestiile sipropunerile pe care le fac vor contribui la îmbunatatirea unei editii viitoare.

Page 7: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 7/203

 

 

2 PROCESE DE CLONARE 

2.1 Programe, module, proceduri

Programul este o constructie destinata rezolvarii unei probleme, fiindscris într-un anumit limbaj de programare. În functie de destinatia sa, unprogram face parte din una din urmatoarele categorii:

§ programe pentru efectuarea de calcule matematice;§ programe pentru crearea si utilizarea de fisiere;§ programe pentru crearea formularelor;§ programe pentru afisarea unui tabel;

§ programe pentru afisarea grafica a unei figuri.Programul este rezultatul unei activitati logice, de stabilire a

succesiunii instructiunilor unui limbaj în vederea implementarii unuialgoritm.

Programele definesc operanzi, îi initializeaza si îi folosesc îninstructiuni care efectueaza diverse calcule, selectari sau repetari a unorsecvente.

Programul P este o constructie unitara formata din instructiunile I1,I2, …, INi. Instructiunile folosite sunt aranjate într-o succesiune logica,

Page 8: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 8/203

 

formând liniile sursa ale programului. De exemplu, fie programulPSUM.CPP, care însumeaza elementele unui sir de numere:

#include <stdio.h>#include <conio.h>

void main()

{

int a[10],s,i,n;

 printf(„\n Numarul de elemente:”);

scanf(„%d”,&n);

 printf(„\n Valorile elementelor:”);

 for(i=0;i<n;i++){

 printf(„\n a[%d]=”,i+1);

scanf(„%d”,&a[i]);

 }

s=0; for(i=0;i<n;i++)

s+=a[i];

clrscr();

 printf(„\n Suma elementelor este:%d”,s);

 }

Programul PSUM.CPP are 19 linii sursa si pentru fiecare linie sursanumarul caracterelor care o compun este dat în tabelul urmator:

Numar caractere pe linie sursa

Tabelul 2.1Linie sursa Numar de caractere

#include <stdio.h> 18#include <conio.h> 18void main() 11{ 1int a[10],s,i,n; 16 printf(„\n Numarul de elemente:”); 34scanf(„%d”,&n); 15 printf(„\n Valorile elementelor:”); 35

 for(i=0;i<n;i++) 16{ 1

 printf(„\n a[%d]=”,i+1); 24scanf(„%d”,&a[i]); 18

 } 1s=0; 4 for(i=0;i<n;i++) 16

s+=a[i]; 8clrscr(); 9 printf(„\n Suma elementelor este:%d”,s); 39

 } 1

Page 9: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 9/203

 

A

B C D

E F G H I

Limbajele evoluate permit structurarea programelor în module si amodulelor în proceduri. Fiecarui program i se asociaza o structuraarborescenta. În figura nr. 2.1 este evidentiata structura unui programoarecare:

Figura 2.1 Structura unui program oarecare

Programul are structura sub forma unui arbore cu 3 niveluri.Procedurile E, F, G, H, I, C sunt grupate în modulele B si D, iar apelantuleste A. Programul are 2 module sau 6 proceduri.

Fiecare procedura Gi are o lungime LGi, iar fiecare modul Mi are o

lungime LMi, ambii indicatori fiind exprimati în numar de linii sursa.Structurarea programelor în proceduri si module permite lucrul în

echipa.

2.2 Macrodefinitii si proceduri

Macrodefinitia este o multime de prelucrari care înlocuiesc în textul

sursa numele macrodefinitiei.Înlocuirea numelui macrodefinitiei cu instructiunile corespunzatoare

este efectuata de preprocesor. Acesta realizeaza o verificare minimala ainstructiunilor macrodefinitiei, deoarece se lucreaza la nivel de text, nefiindposibila o verificare a erorilor la nivel de sintaxa a limbajului.

În limbajul C++ macrodefinitia este definita cu ajutorul directivei decompilare #define, fiecare ocupând, de regula, o singura linie sursa.Macrodefinitiile au doua forme:

Ø cu parametri;Ø fara parametri.

Page 10: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 10/203

 

În general, macrodefinitiile fara parametri sunt folosite pentru adefini constante. Exemple de macrodefinitii de acest gen:

#define size 512

#define word long#define bytes sizeof(word)

Utilizând definitiile de mai sus, secventa de cod urmatoare:

word n=size * bytes;

este expandata la urmatoarea secventa:

long n=512 * sizeof(long);

O macrodefinitie cu parametri presupune efectuarea unui apel,similar celui de la proceduri sau functii, în care sunt furnizate argumentelemacrodefinitiei. În secventa urmatoare este data o macrodefinitie dedeterminare a maximului dintre doua numere:

#define max(x,y) ((x) > (y) ? (x) : (y))

Se impune specificarea parametrilor x si y între paranteze, deoarecex si y pot fi date sub forma unor expresii. Exemplu:

n=max(n-2, k+6);

este expandata în secventa urmatoare:

n=(n-2) > (k+6) ? (n-2) : (k+6);

Procedura ofera un mod convenabil de a împacheta un ansamblu deprelucrari astfel încât sa fie utilizata de câte ori se doreste. Este o constructiede sine statatoare formata din:

§ antet;§ delimitatori formali;§ corp.

Page 11: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 11/203

 

Antetul unei proceduri este format, la rândul sau, din o serie deelemente, si anume:

• numele procedurii; trebuie sa fie un identificator unic în cadrulprogramului;

• parametrii procedurii sau semnatura acesteia; sunt utilizati întransmiterea sau receptionarea de valori în/din corpul procedurii;exista posibilitatea unei liste vide de parametri;

• tipul rezultatului returnat; în cazul limbajului de programareacesta este dat de cuvântul cheie void .

Delimitatorii formali sunt constructii care separa corpul proceduriide antet si de restul programului. În C++ delimitatorii formali sunt { si }.

Corpul procedurii cuprinde ansamblul instructiunilor incluse într-o

anumita ordine care realizeaza o multime de prelucrari.Folosirea unei proceduri într-un program implica si apelul ei în

vederea obtinerii rezultatului prelucrarilor prevazute în corp. Apelul consta în precizarea numelui sau urmata de lista parametrilor separata de operatori.

Când o procedura este apelata, argumentele sale sunt evaluate, iarrezultatele obtinute sunt transferate operanzilor din corpul functiei. Are locexecutia corpului procedurii si obtinerea valorii sau valorilor dorite.

Exista un caz particular de procedura, având aceleasi proprietati, cudiferenta ca returneaza apelantului, aparent, un singur rezultat.

Definirea functiei care efectueaza ridicarea la o putere întreagapozitiva a unui numar întreg este data mai jos:

int putere(int baza, int exponent)

{

int rezultat=1;

 for(int i=0;i<exponent;++i)

rezultat*=baza;

return rezultat; }

Page 12: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 12/203

 

Modul în care are loc apelul acestei functii este prezentat în listingulurmator:

#include <iostream.h>

main(void){

cout<<”2^8=”<<putere(2,8)<<”\n”;

 }

De regula, definirea unei proceduri are loc înainte de a fi folosita.Definirea dupa apel este permisa numai în masura în care este declaratantetul procedurii înaintea apelului si definirea propriu-zisa are loc dupaapel.

Transmiterea parametrilor într-o procedura sau functie se efectueazaprin doua modalitati:

v prin valoare; valoarea transmisa este copiata, prelucrarileafecteaza numai aceasta copie, iar la revenirea în apelantvaloarea transmisa procedurii este aceeasi;

v prin referinta; se lucreaza în mod direct asupra valoriiargumentelor transmise, modificarile efectuate regasindu-se larevenirea în apelant.

Diferenta dintre macrodefinitii si proceduri/functii se reflecta înlungimea programelor sursa si în modul de executie a instructiunilor ceformeaza corpurile acestora. Astfel, în cazul macrodefinitiilor, fiecare apeleste înlocuit cu codul sursa corespunzator. Procedura, respectiv functia, suntdefinite o singura data în program, iar la apel instructiunile ce formeazacorpul lor sunt executate din punctul la care au fost definite.

De asemenea, în cazul macrodefinitiilor se lucreaza întotdeauna peoriginalul parametrilor transmisi, în timp ce procedurile prevad si unmecanism de transmitere a argumentelor prin valoare, care nu afecteazaoriginalul în programul apelant.

Sunt dezvoltate tehnici de realizare a bibliotecilor de macrodefinitiisi proceduri. Ideea este de a utiliza intens aceste biblioteci, facându-sediferenta între folosirea acestor biblioteci în cadrul programelor si clonareamacrodefinitiilor si procedurilor incluse în acestea.

Page 13: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 13/203

 

2.3 Integrarea de componente reutilizabile

Componenta este o unitate de cod executabil, care ofera o încapsulare fizica a serviciilor asociate. Componenta se constituie într-o

evolutie a conceptului de obiect. Ea constituie o parte dintr-un sistem sau ostructura mai ampla, fiind combinata cu alte componente în vederea ofeririide servicii specifice în cadrul unei aplicatii software.

Elementele reutilizabile includ parti software si componente aflate pediverse nivele de abstractizare si de diferite dimensiuni. Aceste elemente seclasifica dupa mai multe criterii prezentate în tabelul urmator, conform[STAN03]:

Criterii de clasificare a componentelor

Tabelul 2.2Criteriul declasificare   Tipuri de componente  

Aplicabilitate în procesulsoftware

-  Elemente de analiza – folosite la reutilizarea modeluluide sistem;

-  Elemente de proiectare;-  Elemente de implementare – sunt elemente software

executabile, pregatite pentru includerea într-un nou sistem.Nivelulde abstractizare

 încapsulat

-  Elemente care încapsuleaza o abstractie functionala –subrutinele si functiile în bibliotecile traditionale; 

-  Elemente care acopera o grupare cazuala de elemente –pachetele si fisierele; 

-  Elemente care încapsuleaza o abstractie de data – clasele deobiecte; 

-  Elemente care încapsuleaza un grup de abstractii (sau

cadru de dezvoltare) – C++ STL (Standard TemplateLibrary), biblioteci SMALLTALK; 

-  Elemente care încapsuleaza o abstractie de sistem –componente COM, CORBA.

Nivelulde executie

-  Elemente statice – nu sunt înlocuite fara recompilare; -  Elemente substituibile – au variante substituibile dinamic; -  Elemente dinamice - sunt integrate în momentul executiei.

Nivelulde accesibilitate

-  Elemente disponibile doar prin descrierea interfetei; -  Elemente disponibile prin sursa – cazul pentru produsele

software gratuite;

-  Elemente disponibile prin descrierea interfetei si surse –reutilizarea are loc prin interfata, sursele fiind disponibilepentru inspectie, discutii, corectii. 

Page 14: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 14/203

 

Integrarea componentelor reutilizabile reprezinta o etapa în mini-ciclul de viata al consumatorului de reutilizare dezvoltat în faza deplanificare a procesului de dezvoltare a noului sistem informatic.

Dezvoltarea cu reutilizare se refera la dezvoltarea de sisteme cu

reutilizarea componentelor. Tehnicile utilizate în cadrul acestui proces sunt[STAN03]:

• selectarea pachetului de aplicatie;• selectarea componentelor reutilizabile;• verificarea redundantei la nivel de produs software;• identificarea componentelor reutilizabile candidate.

Selectarea pachetului de aplicatie consta în determinarea aceluipachet care ofera solutia optima din punctul de vedere al costului, calitatii siduratei.

Pachetul de aplicatie presupune reutilizarea întregului sistem.Selectarea componentelor reutilizabile consta în determinarea

celei mai bune solutii, utilizând componente candidate. Optimalitateacomponentei este determinata pe baza urmatorilor factori:

§ factori economici;§ calitate;§ durata;§ restrictii ale domeniului de aplicatie sau a mediului de dezvoltare;§ obiective privind reutilizarea viitoare;§ aspecte juridice;§ politicile de reutilizare aplicate de catre organizatie.

Sursele de obtinere a componentelor reutilizabile sunt:Ø piata de componente;Ø sisteme aflate în exploatare;Ø proiecte care se deruleaza în paralel;Ø bibliotecile de componente;Ø catalogul de reutilizare;Ø surse Internet.

Verificarea redundantei la nivelul produsului software consta înstabilirea identitatii privind functionalitatea, scopul si definirea datelor încadrul componentelor software. De asemenea, se stabileste, în cadrulciclului de viata, nivelul la care este prezenta redundanta, precum sidimensiunile de manifestare ale acesteia.

Page 15: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 15/203

 

Operatia de verificare a redundantei este efectuata pe diferite stadiide dezvoltare ale noului sistem în vederea asigurarii unui grad ridicat deeficienta a produsului program final.

Identificarea componentelor reutilizabile candidate consta în

propunerea componentelor reutilizabile care sunt incluse în produsulsoftware. Este de preferat sa se includa în noul sistem si componenteoriginale care, printr-o modificare ulterioara, sa fie utilizate în noi proiecte.

Strategia de proiectare a unor astfel de componente are un caracterselectiv, în sensul ca sunt alese ca fiind reutilizabile acele componente caresansele cele mai mari de a fi reutilizate.

De asemenea, se verifica existenta în biblioteci sau cataloage dereutilizare a componentelor care se creeaza.

2.4 Redundanta din programe

Conceptul de redundanta software se refera, în general, la realizareade copii ale unor sisteme, aplicatii, în vederea prevenirii eventualelorpierderi de date. În acest context, redundanta software este asimilata notiuniide backup.

În anumite sisteme hardware, redundanta este inacceptabila, în timp

ce redundanta software reprezinta unica modalitate de a îmbunatatiperformantele sistemului si toleranta acestuia la erori.

În anumite situatii, tehnicile de realizare a redundantei softwarebazate pe modificarea codului sursa si duplicarea datelor au ca scopcresterea robustetei sistemului la posibilele erori hardware care apar întimpul functionarii sistemului.

Exista doua modalitati de aplicare a tehnicilor de redundanta, privindmodificarea codului sursa [WWW2]:

• duplicarea unei parti sau a tuturor variabilelor dintr-un program

sursa în vederea introducerii redundantei si modificareaoperatorilor care gestioneaza replicile variabilelor;

• introducerea unei verificari de consistenta în cadrul fluxurilor decontrol pentru a verifica periodic consistenta între cele doua copiiale unei variabile.

De exemplu, secventa:

e = a + b + c

Page 16: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 16/203

 

Este modificata, obtinându-se urmatoarea secventa prin aplicareatehnicilor de redundanta specificate mai sus:

 f = x + y + z

g = t + u + v

if ( x != t || y != u || z != v)eroare ();

În anumite cazuri, aplicatiile critice din punctul de vedere alsecuritatii au restrictii stricte în termeni de memorie ocupata si performantaa sistemului. Duplicarea întregului set de variabile si verificarea consistentei înaintea fiecarei operatii de citire reprezinta alegerea optima din punctul de

vedere al acoperirii erorilor.Aplicarea tehnicilor de redundanta (duplicare set de variabile,

verificare consistenta) garanteaza total eliminarea erorilor care apar înmemorie pe toata durata ciclului de viata al fiecarei variabile [WWW2].

Pe de alta parte, prin duplicarea unei mici parti ale setului devariabile definit în cadrul unui program se realizeaza un compromis întreacoperirea erorilor si supraîncarcarea unitatii centrale de prelucrare.

Utilizarea redundantei trebuie sa realizeze un echilibru între costuri,exprimate în timp mai mare de executie a unitatii centrale de prelucrare, si

avantaje date de eliminarea posibilitatii de aparitie a erorilor în timpulexploatarii produsului program.

2.5 Reutilizarea de software

 Reutilizarea software consta în fructificarea avantajelor oferite deeforturile de dezvoltare anterioare în vederea realizarii produselor programcu un cost minim.

Exista mai multe acceptiuni ale conceptului de reutilizare software.Ceea ce este comun acestor definitii se refera la proiectarea siimplementarea de componente software care sunt utilizate într-un proces deasamblare si combinare care conduce la obtinerea produsului program.

Reutilizarea este un concept care se aplica asupra reprezentarilorabstracte ale unui sistem, obiectelor software si a componentelor,prototipurilor si sistemelor partiale, datelor si modelelor de date,arhitecturilor de programe si proiectelor de structuri de date, laimplementare si rutine de test [STAN03]. Astfel, reutilizarea software ofera

beneficii mari pe termen lung, atunci când eforturile de reutilizare vizeaza

Page 17: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 17/203

 

primele activitati desfasurate în cadrul ciclului de viata a realizarii unuiprodus program.

Sistemul software este format dintr-un ansamblu de elemente careactioneaza împreuna în vederea atingerii obiectivelor stabilite la începutul

procesului de dezvoltare.În prezent, se constata o crestere a complexitatii sistemelor

informatice datorita introducerii de noi caracteristici si functionalitati înarhitectura acestora. Aceste caracteristici constau în:

v folosirea mai multor sisteme de operare;v asigurarea comunicatiei on- line între calculatoare;v proiectarea, implementarea si utilizarea sistemelor de baze de

date în cadrul solutiilor proiectate;v utilizarea diferitelor tipuri de retele de calculatoare;

v utilizarea diferitelor tipuri de interfete utilizator;v posibilitatea utilizarii calculului paralel.Unitatea de reutilizare în procesul de dezvoltare de noi solutii

informatice este componenta, care se constituie dintr-un ansamblu deobiecte care actioneaza împreuna în vederea furnizarii unui serviciu pentruutilizator.

Conceptul de reutilizare software este abordat din doua puncte devedere, conform [STAN03]:

• dezvoltarea sistematica de componente software;• reutilizarea sistematica de componente software si a elementelor

constitutive ale acestora.Exista mai multe criterii de clasificare a elementelor reutilizabile:§ stadiul dezvoltarii în care elementele reutilizabile sunt produse

si/sau utilizate;§ nivelul de abstractizare;§ natura elementelor.Clasificarile elementelor reutilizabile se face fie pe baza unuia din

criteriile mentionate anterior, fie pe o combinatie a acestora.

Astfel, în [MILI95] sunt identificate urmatoarele categorii deelemente reutilizabile:

• date;• arhitectura;• proiect de detaliu;• program.De asemenea, a fost propusa o ierarhie a cunostintelor reutilizabile

astfel:•

cunostinte specifice domeniului în care are loc reutilizarea;

Page 18: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 18/203

 

• cunostinte externe mediului în care are loc reutilizarea;• arhitecturi functionale;• structuri logice;• fragmente de cod.Exista trei mari clase de sisteme reutilizabile [MILI95]:Ø tipare de program – utilizat pentru instantierea fragmentelor de

cod sau a proiectelor specifice;Ø procesoare – interpretoare pentru specificatii executabile de nivel

 înalt;Ø sisteme de transformare – includerea anumitor activitati de

dezvoltare în transformari mai mult sau mai putin formale.În [STAN03] sunt evidentiate mai multe tipuri de reutilizare

software prezentate în tabelul urmator:

Criterii de clasificare a reutilizarii software

Tabelul 2.3Criteriul

de clasificareTipuri de reutilizare software

Scop •  Reutilizare generala (reutilizare orizontala) – este o reutilizareindependenta de domeniu;

•  Reutilizare în cadrul domeniului (reutilizare verticala) – estespecifica unui domeniu;

•  Reutilizare în cadrul unei familii de aplicatii.

Tipulde reutilizator

•  Reutilizare interna – în interiorul unei organizatii;

•  Reutilizare externa (de piata) – în cadrul unei alte organizatii.Granularitateacomponentelor

•  Reutilizare de componente de granularitate fina – componentele(functii I/E, functii de manipulare structuri de date, clase deobiecte) sunt independente de domeniu;

•  Reutilizare de componente de granularitate grosiera –componentele sunt subsisteme de aplicatii.

Modul

de adaptare alcomponentelor

• Reutilizare tip cutie neagra – componenta reutilizata nu estemodificata;

•  Reutilizare tip cutie gri – componenta reutilizata este modificata într-o mica masura;

•  Reutilizare tip cutie alba – componenta reutilizata este modificatamajor.

Integrarea înciclul de viatasoftware

•  Reutilizare ocazionala – reutilizarea nu este planificata, fiind unrezultat secundar al proceselor ciclului de viata software; 

•  Reutilizare sistematica - practica reutilizarii se bazeaza pe procese

repetabile, bine definite. 

Page 19: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 19/203

 

Reutilizabilitatea este o caracteristica externa produsului software,reflectând potentialul de reutilizare al produsului program. Caracteristicileunei componente reutilizabile sunt [STAN03]:

v generalitate;

v arie larga de aplicare;v modularitate;v completitudine si consistenta;v independenta hardware;v independenta de implementare;v robustete;v  încapsulare;v fiabilitate;v documentare;

v adaptabilitate/extensibilitate;v standardizare;v portabilitate;v certificare;v mentanabilitate.

2.6 Caracteristicile clonarii

Se considera o entitate EI formata din componente de baza careinteractioneaza în vederea realizarii unor functii F1, F2,…, Fnf , perceputedirect de mediul în care se gaseste.

A copia entitatea EI înseamna a realiza unele dintre componente cusau fara interactiuni, obtinându-se o noua entitate E1 ce executa sau nufunctii din multimea F1, F2,…, Fn. Copia E1 difera mai mult sau mai putinsemnificativ de entitatea EI.

A clona entitatea EI înseamna a dezvolta procese prin care se obtincomponente, se genereaza interactiuni si se realizeaza functiile F1, F2,…, Fn,

obtinându-se noi entitati E1, E2,…, Em, care nu difera cu nimic fata deentitate de baza EI.

Dupa un tablou se executa copii, dintre care unele sunt perfecte,adica diferentele fata de original sunt insesizabile la suficient de multeniveluri de analiza.

Dupa un prototip de strung se realizeaza clone întrucât toatestrungurile au aceleasi repere, sau au loc aceleasi cuplari, iar operatiilerealizabile pe un strung, nu difera în raport cu celelalte. Singurele problemeapar în timp si genereaza diferente de fiabilitate.

Page 20: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 20/203

 

Din punct de vedere al diferentelor de comportament în timp,datorita utilizarilor neomogene, se obtin diferente între entitatile clonate,aspect absolut natural si obiectiv.

Atât pentru realizarea copiilor, cât si pentru realizarea clonelor, sunt

necesare eforturi si consumuri care se regasesc la nivelul costurilor asociatenoilor entitati. Spre deosebire de alte domenii de activitate, domeniulinformaticii este caracterizat prin costuri care tind spre zero atunci când suntcopiate baze de date sau produse software. Prin copierea unui produssoftware S se obtin, cu costuri aproape zero, clonele S1, S2,…, Sm. EntitateaSi, i =1, 2, …, m, este în primul rând o copie a entitatii de baza S pentru caprocesul prin care este obtinuta, desi este deosebit de complex, are asociatnumele de copiere (copy). Entitatea Si este o clona pentru ca:

• are aceleasi componente pe care le detine entitatea de baza S;• componentele lui Si au aceleasi interactiuni pe care le au

componentele din S;• nu exista nici o diferenta între functiile pe care le realizeaza cele

doua entitati.Produsele software sunt stocate pe suport tehnic (CD, discheta,

HDD), iar copierea acestora este un fapt cotidian. Atât fisierele cât si bazelede date fac obiectul proceselor de copiere, de cele mai multe ori obtinându-se clone.

În cazul în care fisierele si bazele de date includ elemente de regasirecriptate, numai în cazul obtinerii algoritmilor de decriptare si a procedurilorde cautare se vor realiza totalitatea interactiunilor, obtinându-se princopiere, clone perfecte.

În cazul proiectarii unui echipament exista costul CP al proiectului sicostul Cr al realizarii unui produs. În cazul producerii a Np entitati, costultotal CT este:

C T = C P + N  p (2.1)

Se observa ca nivelul costului total CT este proportional cu numarulclonelor.Pentru dezvoltarea unei aplicatii informatice, concretizata printr-un

produs sofware si printr-o baza de date, sunt necesare costurile CS, respectivCBD. Daca se realizeaza M copii pentru produsul software si R copii pentrubaze de date, costul total al aplicatiei informatice CTAI este:

C TAI = C S + C  BD + M(C SS + C OS ) + R(C SBD + C OBD ) (2.2)

unde: CSS– costul suportului de stocare a unei copii software;

COS – costul operatiei de copiere-stocare software;

Page 21: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 21/203

 

CSBD – costul suportului pentru stocare baze de date;COBD – costul copierii bazei de date.În ipoteza în care COS = COBD = 0 si CSS = CSBD, rezulta:

C TAI = C S + C  BD + K(M + R)C SS (2.3)

unde K reprezinta numarul de unitati folosite pentru stocarea de software sibaze de date.

Si în cazul clonarii de software si baze de date costul total esteproportional cu numarul clonelor. Costul unei copii este nesemnificativ.

Cât timp clonarea produselor software este gestionata de companiacare le-a dezvoltat, sunt create si mentinute premisele recuperarii

cheltuielilor si obtinerii de profit. Clonarea produselor software si a bazelorde date se efectueaza pentru utilizarea directa de catre diferiti beneficiari, înscopul solutionarii problemelor specifice cu costuri nule. De asemenea,clonele sunt integrate în aplicatii informatice noi, reducând semnificativcosturile.

În timp au fost dezvoltate instrumente complexe care au ca intrare unprodus software sau o baza de date, asupra carora sunt efectuatetransformari, obtinându-se la iesire constructii noi, dar echivalente, care dinpunct de vedere al functiilor pe care le realizeaza, sunt clone ale intrarilor.

Astfel de transformari sunt înlocuirile unor cuvinte, interschimbul unorsecvente, efectuarea de optimizari în zona subexpresiilor comune, eliminariale secventelor neactive sau redundante. În cazul în care procesele detranslatare vizeaza atât componente, cât si interactiuni, structura clonei sedeparteaza de original, functiile cel mult mentinându-se, fiind putin probabilca în stadiul actual sa fie generate functii noi, exclusiv pe baza entitatilorfolosite ca intrari.

Companiile care dezvolta aplicatii informatice, cât si utilizatoriiposeda numeroase mijloace pentru a asigura protectia la copiere

neautorizata a produselor software si bazelor de date. Dezvoltarile de tehnicisi metode destinate accesului neautorizat la produselor software si baze dedate genereaza noi protectii. Acestea din urma impun noi tehnici si metodede acces neautorizat, procesul fiind ca un bulgare de zapada în rostogolire.Uneori costurile de mentinere a protectiei devin insuportabile si companiilecare dezvolta software prefera sa ofere în sistem de acces liber unele dintreproduse. Recuperarile de costuri provin din consultanta si din customizare.

În contextul dezvoltarii de tehnici, metode si instrumente pentruasistarea proceselor de analiza, proiectare, codificare si testare software sau

baze de date, sunt create premisele obtinerii de clone involuntare. Daca se

Page 22: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 22/203

 

considera o problema complet si corect definita Pcc, folosind o metodariguroasa de definire a specificatiilor, echipele Ae1, Ae2,…, Aek realizeazaindependent specificatiile a1

1, a12,…, a1

k, între care exista diferentemasurabile cu un indicator universal f(a1

i, a1 j). Elaborarea specificatiilor

reprezinta primul pas în realizarea unei aplicatii informatice.Se alege:

11

,

1max ,max  ji

 ji f h αα=   (2.4) 

Pentru definirea structurii pe module, pentru stabilirea claselor sefolosesc instrumente de aceeasi generatie, obtinându-se independentdocumentatia de design: a2

1, a22,…, a2

k.

Între rezultatele celor k echipe exista diferente, dintre care cea maimare este:

( ){ }22

,

2max ,max  ji

 ji f h αα=   (2.5)

Pentru faza de codificare se obtine un nivel maxim al diferentelor:

( ){ }33

,

3max ,max  ji

 ji f h αα=   (2.6)

unde a3i si a3

 j sunt textele sursa obtinute de echipele Aei, respectiv Aej.Procesul de testare determina reveniri asupra rezultatelor precedente.Liniarizarea unei structuri repetitive conduce la crearea unui sir aldiferentelor maxime: h1

max , h2max , …, h x

max . În mod normal, daca tehnicile deanaliza, design, programare, testare sunt corect utilizate, procesul trebuie safie convergent, iar sirul diferentelor maxime este strict descrescator cu:

0limmax=

 x

 p xh   (2.7)

unde pm este numarul de reluari maxim acceptabil, care prin depasire faceprodusul ineficient. Daca exista doua stadii a r

i, as j pentru f( ar

i, as j ) = 0,

echipele Ai si A j au realizat independent clone, numite clone involuntare.

Page 23: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 23/203

 

 

 3 

3.1 Fisiere

Fisierul reprezinta o secventa de octeti organizata într-o manieraspecifica pe un suport de memorie extern în vederea utilizarii lor ulterioare

 într-un anumit scop.Sistemul de fisiere este o componenta a unui sistem de operare care

asigura gestionarea informatiei memorate pe disc sub forma fisierelor.Functiile unui sistem de operare sunt:

§ stocarea informatiei;§ regasirea informatiei stocate;§ asigurarea autorizata la informatie.

Structura de directoare reprezinta o colectie de noduri care contineinformatii cu privire la fisierele stocate pe disc.

Fisierul constituie o zona de memorie contigua din punct de vederelogic în care este memorata informatia. Tipuri de fisiere:

Ø de date: fisiere numerice, de tip text, binare;Ø de tip program sursa.

ORTOGONALITATEA

FISIERELOR 

Page 24: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 24/203

 

Diferenta între fisier si o structura de date din memoria internaconsta în:

• fisierele stocheaza informatia într-un mod nevolatil (permanent);•

fisierele sunt obiect al operatiei de copiere de pe un suport destocare pe altul.

Structura unui fisier variaza în functie de scopul în care este utilizatainformatia stocata, fiind stabilita fie de sistemul de operare, fie de utilizatorprin intermediul programului creat de acesta.

Atributele unui fisier:Ø nume – retine informatia de identificare a fisierului pe suportul

extern de memorie;Ø tip – specifica modul de interpretare si utilizare a informatiei

stocate;Ø marime – reflecta dimensiunea fisierului exprimata în numar de

octeti ocupati pe disc;Ø locatie – specifica locul pe disc în care se regaseste fisierul;Ø mod de organizare – evidentiaza modalitatea în care sunt

organizati octetii pe suportul extern de memorie;Ø protectie (permisiuni de acces) – contine drepturile utilizatorului

privind efectuarea anumitor operatii asupra fisierului;Ø data si timp – specifica data si momentul de timp la care suntefectuate diverse operatii asupra fisierului;

Ø informatii despre fisiere retinute în structura de directoare.

Operatiile care au loc asupra fisierelor sunt:v creare;v scriere;v citire;v pozitionare în cadrul fisierului;v stergere;v trunchiere;v cautare pe disc.

Page 25: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 25/203

 

Fisierele sunt de mai multe tipuri, acestea fiind prezentate, împreunacu extensiile uzuale, în tabelul urmator:

Tipuri de fisiereTabelul 3.1

Tipul fisierului Extensia uzuala Descriere

executabil exe, com, bin sau faraextensie

executie ainstructiunilorspecificate în

programul sursaobiect obj, o fisier compilat, dar

ne-linkeditatcod sursa c, cc, java, pas, asm,

acod sursa în diferite

limbaje de programarebatch bat, sh comenzi executate de

interpretorul decomenzi

text txt, doc date de tip text,documente

procesor de text wp, tex, rrf, doc formate diverse aleprocesoarelor de textbiblioteca lib, a, so, dll, mpeg,

mov, rmcolectii de rutine

pentru programatoritiparire/vizualizare arc, zip, tar fisiere ASCII sau

binare într-un formatdestinat tiparirii sau

vizualizariiarhiva arc, zip, tar grup de fisiere în

forma compresatamultimedia mpeg, mov, rm fisiere binare cu

informatie de tipaudio/video

Page 26: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 26/203

 

Accesul la datele memorate în fisiere se realizeaza prin urmatoarelemetode:

v acces secvential;v acces direct;v acces indexat.

3.2 Diversitatea datelor

Se considera o colectivitate Ac formata din elementele a1, a2, …, an,

diferite.Se pune problema inserarii elementului an+1 în colectivitatea  Ac, cu

conditia ca acesta sa fie, de asemenea, diferit de toate elementele a1, …, an ale colectivitatii Ac.

În cazul în care acest nou element nu este diferit de toate elementelecolectivitatii  Ac se pune problema calcularii gradului în care elementul an+1 este asemanator cu elementele deja existente în colectivitate.

Obiectivele acestei lucrari sunt:v definirea conceptului de ortogonalitate a datelor;v construirea unor indicatori pentru evaluarea asemanarii;v

prezentarea structurii software orientata pe evaluareaortogonalitatii;v prezentarea de evaluari folosind o baza de texte.

3.3 Conceptul de ortogonalitate a elementelor

Doua drepte sunt ortogonale daca unghiul format la intersectiaacestora are cosinusul egal cu zero, cu alte cuvinte cele doua drepte sunt

perpendiculare. Un ansamblu de drepte este ortogonal daca dreptele ce-lcompun sunt perpendiculare doua câte doua .

Doua plane sunt ortogonale daca unghiul format la intersectia lor arecosinusul egal cu valoarea zero, adica cele doua plane sunt perpendiculare.Un ansamblu format din mai multe plane este ortogonal daca planele ce-lformeaza sunt ortogonale doua câte doua.

Doi vectori sunt ortogonali daca produsul scalar al acestora este nul.În continuare o data este reprezentata uzual ca un numar (125 sau 0

sau –400.72 sau +25.3e-4) sau un sir de caractere (“masina” sau “125” sau“Cluj-Napoca-2000”).Extinzând, rezulta ca datele D1 si D2 sunt ortogonale semantic, daca

continutul informational al acestora, sensul lor, difera într-o maniera

Page 27: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 27/203

 

categorica si semiotic, daca acestea au o formalizare matematica totaldiferita.

Se considera vocabularul V T  = {v1,v2,…,vn}, unde v1,v2,…,vn suntcuvinte din vocabular.

Se construiesc frazele:• Fr1 formata din cuvintele vk1,vk2,…,vkp;• Fr2 formata din cuvintele vl1,vl2,…, lmm .

Lungimea ca numar de cuvinte a acestor fraze este:

 Lg(F r1) = Lg(vk1 vk2 … vkp) = p cuvinte

 Lg(F r2) = Lg(vl1 vl2 … v lm) = m f cuvinte

Frazele Fr1 si Fr2 sunt ortogonale daca ele difera ca lungime precumsi din punct de vedere al continutului, adica nu exista nici un cuvânt dinfraza Fr1 care sa se regaseasca în fraza Fr2 si invers.

Pentru colectivitatea  A, elementele a1, a2, …, an, diferite, se descriuprintr-un numar de mc caracteristici specifice colectivitatii, C1, C2, …,

cmC  .

Pentru doua elemente oarecare ai si a j apartinând colectivitatii  A se înregistreaza nivele ale caracteristicilor dupa cum urmeaza:

ai = (ci1 , ci2 , … ,cimc )

a j = (c j1 , c j2 , … ,c jmc )

unde cik este nivelul caracteristicii Ck pentru elementul ai .

Un element  x este ortogonal pe colectivitatea  A daca si numai daca

<x, ai> = = 0 , oricare ar fi ai , element al colectivitatii.În spatiul Rn, pentru elementele x si y ale sale se defineste produsulscalar dintre cele doua elemente prin <x, y> = x1*y1+x2*y2+…+xn*yn , dacax = ( x1, x2, …, xn) si y = (y1, y2 …, yn ).

Se defineste operatia T asa fel încât cik T c jk are valoarea zero dacapentru caracteristica Ck nu exista valori comune elementelor ai si a j sivaloarea 1 în caz contrar.

Se defineste pseudoprodusul scalar prin <<ai, a j >>.Elementul ai este ortogonal cu elementul a j daca <<ai, a j>> = 0, adica

daca (ci1 T c j1 + ci2 T c j2 + … +cimc T

c jmc ) = 0.

Page 28: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 28/203

 

În conditiile în care elementele grupului sunt descrise princaracteristici vom considera aceasta relatie adevarata daca fiecare termeneste egal cu zero: ci1 T c j1 = 0, ci2 T c j2 = 0, …,

cimc Tc jmc = 0.

Relatia cik T c jk = 0 , k apartinând multimii {1, 2, …, mc}, reprezintafaptul ca elementele ai si a j ale grupului sunt total diferite dupa caracteristicaCk .

Se defineste indicatorul care evidentiaza ortogonalitatea dintre douaelemente ale unei colectivitati sau, mai flexibil, care evidentiaza diferenteleexistente între elemente.

Indicatorul normat Ii, cuprins în intervalul [0, 1] are valorile:• Ii = 0, daca elementele sunt ortogonale ( nu au nimic în comun).•

Ii = 1, elementele sunt identice ( nu difera prin nici ocaracteristica).

Daca valorile lui Ii tind catre 0 înseamna ca seturile de date tind catreortogonalitate, iar daca valorile indicatorului normat Ii sunt apropiate de 1

 înseamna ca seturile de date au foarte multe elemente identice.Acest indicator se defineste pentru masurarea gradului de

ortogonalitate dintre doua seturi de date (texte) si, de asemenea, pentruortogonalitatea unui numar oarecare de seturi de date (texte).

Se urmareste maniera în care doua fraze , doua texte, douaprograme, doua baze de date sunt ortogonale, adica masura în care ele diferaca forma de prezentare si continut.

De exemplu, se considera mai multi autori care scriu despre unacelasi domeniu.

Lucrarile lor vor fi 100% ortogonale daca textele au comune numaicuvintele de specialitate, celelalte cuvinte fiind foarte diferite ca frecventede aparitie în texte si ca pozitie în propozitii.

Este mai important ca lucrarile sa fie ortogonale si nu total diferite.Daca lucrarile sunt total diferite înseamna ca nu apartin aceluiasi domeniu.La compararea textelor T1 si T2 se calculeaza separat frecventele

pentru cuvintele de specialitate si frecventele pentru celelalte cuvinte,tabelele 3.2 si 3.3, unde:

r - numarul de cuvinte cheie ale domeniului;s - numarul de cuvinte nespecifice ale domeniului.

 f ij  - frecventa de aparitie a cuvântului ai în textul T j.gij  - frecventa de aparitie a cuvântului nespecific ßi în textul T j.

Page 29: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 29/203

 

 

Frecvente de aparitie a cuvintelor cheiedomeniului

Tabelul 3.2 Frecvente de aparitieCuvinte cheie

T1 T2 

a 1 f 11 f 21 a 2 f 12 f 22 ...

.

.

.

.

.

.a r f 1r f 2r

Frecvente de aparitie a cuvintelor nespecifice domeniuluiTabelul 3.3 

Frecvente de aparitieCuvinte cheie

T1 T2 

ß 1 g11 g21 

ß 2 g12 g22 ...

.

.

.

.

.

.ß s g1s g2s

Indicatorul normat Ii se defineste diferentiat pentru cele douacategorii de cuvinte care alcatuiesc textele.

Pentru cuvintele cheie ale domeniului , indicatorul I1 • ia valoarea I1 = 0 daca frecventele pentru aceleasi cuvinte cheiedin T1 si T2 sunt egale (f 1i = f 2i, (∀) i = 1, 2, …, r);

• ia valoarea:

221

2

121

1|)max(|*

|)(|1

ii

i

ii

 f  f r 

 f  f 

 I −

−=

∑=   (3.1) 

Page 30: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 30/203

 

Pentru cuvintele nespecifice domeniului , indicatorul I2 :• ia valoarea I2 = 0 daca frecventele pentru un acelasi cuvânt cheie

din T1 si T2 sunt egale (g1j = g2j, (∀) j = 1, 2, …, s);

• ia valoarea:

221

2

121

2 |)max(|*

|)(|1

 j j

i

 j j

ggr 

gg

 I −

−=

∑=  (3.2)

Pentru a scoate în evidenta masura în care cele doua texte suntasemanatoare are loc o agregare a indicatorilor I1 si I2, obtinându-se I.

Astfel, Ia = =I1 * I2 , unde Ia ia valori între 0 si 1.

De exemplu, se considera secventa de program SP1 definita prin:

if a > b then c=a+b;

if b > a then c=b-a; 

si secventa de program SP2 definita prin:

 for ( i = 0 ; i < a; i++)a--;

 for ( i = 0; i>b;b--)

i++;

pentru care se înregistreaza frecventele de aparitie a cuvintelor cheie dinlimbajul de programare C în tabelul 3.4 si frecventele de aparitie acuvintelor utilizator în tabelul 3.5.

Page 31: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 31/203

 

Frecvente de aparitie a cuvintelor cheie ale

domeniuluiTabelul 3.4 

Frecvente de aparitieCuvinte cheie T1 T2 

if 2 0then  2  0for 0 2= 2 2- 1 0+ 1 0< 0 1> 2 1; 2 6

++ 0 2( 0 2) 0 2-- 0  2

Frecvente de aparitie a cuvintelor nespecifice

domeniuluiTabelul 3.5 

Frecvente de aparitieCuvinte cheie

T1 T2 

a 4  2b 4 2c 2 0i  0  4

Se calculeaza indicatorii I1 si I2 si nivelul agregat al indicatorului Ia.

I1 = 1 – [ |2-0|2 + |2-0|2 + |2-2|2 + |0-2|2 + |1-0|2 + |1-0|2 + |0-1|2 + |2-1|2

+ |2-6|2 + |0-2|2 + |0-2|2 + |0-2|2 + |0-2|2 ] / [14 * 16] = 1 - ( 4 + 4 + 0 + 4 + + 1+ 1 + 1 + 1 + + 16 + 4 + 4 + 4 + 4 ) / 224 = 1 – 48 / 224 = 1 - 0,214 =0,786. (3.3)

I2 = 1- [ |4-2|2 + |4-2|2 + |2-0|2 + |0-4|2 ] / [4 * 16] = 1 - ( 4 + 4 + 4 +16 ) / 64 = = 1 – 28 / 64 = 1 - 0,437 = 0,562. (3.4)

Page 32: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 32/203

 

Indicatorul agregat Ia, are valoarea:

 I a = I 1 * I 2 = 0,786 * 0,562 = 0,441. (3.5)

rezulta ca gradul de ortogonalitate al celor doua texte este redus.Reutilizare de software presupune existenta de biblioteci de

subprograme sau de clase si referirea de componente, fara ca acestea sa fiecopiate sau modificate. Reutilizarea prin referire este un procedeu uzual îningineria software, fara a fi clonare. În cazul în care reutilizarea seefectueaza prin macrogenerare apare conceptul de clonare acceptata,

 întrucât macrodefinitiile sunt constructii dedicate, acceptate din start ca fiindproducatoare de secvente clonate.

Exemplu: macrodefinitia

cub x, y x = y * y * y

prin referirea:

cub x, y

genereaza secventa:

 x = y * y * y

Customizarea este un procedeu uzual prin care se genereaza variantede sisteme software adaptate cerintelor particulare ale utilizatorilor, pornindde la un produs de baza.

Programul initial se dezvolta în forma cea mai generala si estegestionat de un alt program care îl personalizeaza prin procesul decustomizare, maximizând numarul functiilor de prelucrare, în raport cudatele furnizate la intrare.

Rezultatul customizarii este un sistem de programe generat cuproceduri adaptate la cerintele utilizatorilor. Contine submultimi aleprodusului software de baza.

Page 33: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 33/203

 

3.4 Indicatori ai diferentelor masurate dintre proceduri

Procedurile dintr-un program sunt asemanatoare din urmatoarelepuncte de vedere:

• al problemei pe care o rezolva;• al instrumentelor folosite;• al functiilor pe care le realizeaza;• al tehnicilor de proiectare ;• al performantelor.

Este preferabil sa se construiasca proceduri si biblioteci de proceduri în scopul reutilizarii acestora pentru a creste productivitatea programatorilorsi pentru a reduce volumul de munca vie încorporata în programele noi carese elaboreaza. În cazul în care pentru o aceeasi tipologie de prelucrari sescriu mai multe proceduri, costurile aplicatiei informatice cresc nejustificat.

Pentru a controla continutul textelor sursa din produsele softwareelaborate si utilizate în vederea reducerii ponderii componentelor identicerealizate accidental este necesar sa se evalueze permanent ortogonalitateaprocedurilor existente în aplicatiile aflate în uz curent sau în curs deelaborare.

Astfel, se impune definirea unui sistem de indicatori cu scopul de aevalua asemanarea existenta între proceduri.Se considera doua proceduri Pri si Prj. Gradul de asemanare între cele

doua componente ale colectivitatii formata din produsele software elaborate,se determina ca o medie geometrica între indicatorii ce caracterizeazaasemanarea procedurilor în functie de criteriile considerate (dimensiune canumar de instructiuni, frecventa de aparitie a caracterelor alfabetice,frecventele de aparitie a cuvintelor unui vocabular dat de catre utilizator,frecventele de aparitie a cuvintelor ce formeaza cele doua proceduri,frecventele de aparitie a diferitelor tipuri de date, complexitate secventeprogram).

Primul indicator J1 caracterizeaza asemanarea procedurilor Pri si Prj din punctul de vedere al lungimii acestora si se calculeaza ca raport întrelungimea procedurii Pri si lungimea procedurii Prj.

 j

i

 L

 L J  =1 , daca  ji

 L L <   (3.6)

Page 34: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 34/203

 

sau

i

 j

 L

 L J  =1 , daca i j

 L L <   (3.7)

unde:Li – lungimea in octeti a procedurii Pri;L j – lungimea in octeti a procedurii Prj;

Aceasta se realizeaza pentru a determina un grad de asemanarerelevant a carui valoare sa fie cuprinsa în intervalul [0, 1].

Al doilea indicator J2 are în vedere surprinderea asemanarii dintre

cele doua proceduri Pri si Prj în functie de frecventele de aparitie acaracterelor alfabetice.

 NTC 

nca

 J 

 NTC 

i

i∑== 1

2   (3.8)

unde:- NTC – reprezinta numarul total de caractere alfabetice (mari si

mici);- ncai – ia una din urmatoarele valori:

• 0, daca pentru caracterul i frecventele de aparitie în cele douaproceduri sunt diferite;

• 1, daca pentru caracterul i frecventele de aparitie în cele douaproceduri sunt identice.

Al treilea indicator J3 reflecta gradul de asemanare a celor doua

proceduri în functie de un vocabular furnizat de catre utilizator.

 NCV 

ncv

 J 

 NCV 

i

i∑== 1

3   (3.9)

unde:- NCV – numarul de cuvinte al vocabularului pentru care

frecventele de aparitie în cele doua proceduri nu sunt egale sinule pentru un cuvânt dat;

Page 35: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 35/203

 

 

- ncvi – ia una din valorile:• 0, daca frecventele pentru cuvântul i sunt diferite sau egale,

dar nule;

• 1, daca frecventele pentru cuvântul i sunt identice si diferitede zero.

Urmatorul indicator, J4, are în vedere criteriul de comparare aelementelor privind frecventele de aparitie a totalitatii cuvintelor ce compuncele doua proceduri.

 NTCV 

ncvf 

 J 

 NTCV 

i

i∑== 14   (3.10)

unde:- NTCV – numarul total de cuvinte al celor doua elemente, cuvinte

care sunt distincte;- ntcvi – ia una din urmatoarele valori:

• 0, daca frecventele pentru cuvântul i sunt diferite saucuvântul i nu se regaseste în cealalta procedura;

• 1, daca pentru cuvântul i frecventele sunt identice în celedoua proceduri.

Al cincilea indicator, J5, pune în evidenta asemanarea a douaelemente în functie de structura lor.

 NMES

 NESC  J  =5   (3.11)

unde:- NESC – numarul de elemente structurale comune celor doua

proceduri considerate, respectiv Pi si P j;- NMES – numarul minim de elemente structurale a celor doua

proceduri Pri si Prj.

Page 36: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 36/203

 

Urmatorul indicator, J6, determina gradul de asemanare aelementelor prin utilizarea unei matrice de precedenta. Acest grad deasemanare se foloseste pentru analiza gramaticala a elementelor.

 j

i

 NCI 

 NCI  J  =6 , daca  ji  NCI  NCI  <   (3.12)

sau

i

 j

 NCI 

 NCI  J  =6 , daca i j

 NCI  NCI  <   (3.13)

unde:- NCIi – numarul de cuvinte interschimbabile din procedura Pri;- NCI j – numarul de cuvinte interschimbabile din procedura Prj.

Aceasta se realizeaza pentru a determina un grad de asemanarerelevant a carui valoare sa fie cuprinsa în intervalul [0, 1].

Ultimul indicator, J7, are în vedere determinarea gradului de

asemanare a celor doua elemente din punctul de vedere al complexitatiiacestora.

 j

i

cmplx

cmplx J  =7 , daca  ji

cmplxcmplx <   (3.15)

sau

i

 j

cmplx

cmplx J  =7 , daca i j cmplxcmplx <   (3.16)

unde:cmplxi, cmplx j - complexitatile celor doua proceduri Pri si Prj.

Gradul de asemanare a celor doua proceduri, J, reprezinta, de fapt, osinteza a gradelor de asemanare calculate dupa cele sapte criterii amintite,realizând o omogenizare a acestor indicatori.

77

1∏=

=i

i J  J    (3.17)

Page 37: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 37/203

 

În final, pentru un produs software se determina indicatorul agregat

Jn care masoara gradul de asemanare a procedurilor ca medie geometrica între gradele de asemanare dintre toate componentele ce formeaza un produs

software, componentele fiind luate doua câte doua.

2

1

i

in

k nC 

n i

i

 J J =

= ∏   (3.18)

unde:- Cn 2 – numarul de combinatii posibile de proceduri luate doua

câte doua;- Ji – valori indicatori calculate pentru fiecare doua proceduri

considerate;- ni – frecventa de aparitie a valorii respectivului indicator;- ki – numarul de valori distincte ale indicatorului Ji.De exemplu, se considera procedurile:Pr1 - destinata calculului sumei patratelor elementelor unui masiv

unidimensional al carui text sursa este:

int sume(int x[], int n)

{

int S;S=0;

 for(int j=0;j<n;j++)

S=S+x[j]*x[j];

return S;

 }

Pr2 - destinata calculului produsului scalar a elementelor a douamasive unidimensionale al carui text sursa este:

int prod_sc(int x[],int y[],int n)

{

int S;

S=0; for(int j=0;j<n;j++)

S=S+x[j]*y[j];return S;

 }

Page 38: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 38/203

 

Pr3 – alegerea minimului dintre trei elemente întregi al carui textsursa este:

int min(int a,int b,int c)

{

int min;

min=a;if(min>b)

min=b;

if(min>c)

min=c;

return min;

 }

Pr4 – alegerea maximului dintre trei elemente întregi al carui textsursa este:

int max(int a,int b,int c)

{

int max;

max=a;if(max<b)

max=b;if(max<c)

max=c;return max;

 }

Textele sursa ale celor patru proceduri conduc la obtinerea

frecventelor f ij si gij din tabelele 3.6 si 3.7.

Page 39: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 39/203

 

Frecventele de aparitie a cuvintelor cheie în procedurile

Pr1, Pr2, Pr3 si Pr4

Tabelul 3.6 Frecvente de aparitie

Cuvinte cheiePr1 Pr2 Pr3 Pr4

int 5 6 5 5} 1 1 1 1} 1 1 1 1( 2 2 3 3) 2 2 3 3= 3 3 3 3+ 1 1 0 0- 0 0 0 0[ 3 4 0 0] 3 4 0 0; 6 6 5 5

++ 1 1 0 0return 1 1 1 1

-- 0 0 0 0

for 1 1 0 0< 0 0 0 2> 0 0 2 0if 0 0 2 2, 1 2 2 2* 1  1 0 0

Page 40: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 40/203

 

Frecventele de aparitie a cuvintelor nespecifice din procedurile

Pr1, Pr2, Pr3 si Pr4.Tabelul 3.7 

Frecvente de aparitieCuvinte nespecifice Pr1 Pr2 Pr3 Pr4

sume 1 0 0 0x 3 2 0 0n 2 2 0 0S 5 5 0 00 2 2 0 0

prod_sc 0 1 0 0y 0 2 0 0

min 0 0 8 0a 0 0 2 2b 0 0 3 3c 0 0 3 3

max 0 0 0 8

Se studiaza ortogonalitatea- între Pr1 si Pr2 si se obtine:

 I a = I 1 * I 2 = 0.8 * 0.7916 = 0.6(3) (3.19)

- între Pr3 si Pr4 si se obtine:

 I a = 0.8(3) * 0.9 = 0.75 (3.20)

Din aceste doua comparatii rezulta ca gradele de ortogonalitate

dintre Pr1 si Pr2, respectiv dintre Pr3 si Pr4 sunt foarte scazute.Se studiaza ortogonalitatea- între Pr1 si Pr3 si se obtine:

 I a = I 1 * I 2 = 0.68(3) * 0.6916 = 0.4769 (3.21)

- între Pr2 si Pr4 si se obtine:

 I = 0.75 * 0.6875 = 0.515 (3.22)

Page 41: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 41/203

 

Din aceste doua comparatii rezulta ca gradele de ortogonalitatedintre Pr1 si Pr3, respectiv dintre Pr2 si Pr4 sunt ridicate.

3.5 Structura software pentru analiza calitativa a noilorelemente incluse în baze de date

Aplicatiile informatice complexe includ module programintercorelate si fisiere independente sau interdependente. În cazul folosiriiunor SGBD-uri aplicatiile informatice includ texte sursa de baza, structurigenerate si date care fac obiectul prelucrarilor precum si date necesareaccelerarii proceselor de selectie si de regasire.

Este important sa se gestioneze redundanta în bazele de date mai alesatunci când se impune ca textele stocate sa fie diferite între ele.De exemplu, se considera multimea ofertelor pentru obtinerea de

fonduri de finantare si se impune ca între oferte sa existe diferentesemnificative, în sensul nedepunerii aceleiasi oferte pentru doua licitatii sau

 în sensul depunerii de oferte asemanatoare în cadrul aceluiasi program.De asemenea, tezele de doctorat, lucrarile de licenta, articolele si

cartile prezentate de autori pentru concursuri trebuie sa fie diferite unele decelelalte.

În acest sens, este necesara construirea unui produs software caremasoara gradul de ortogonalitate în cadrul unui fisier sau a unei baze de dateprecum si dintre fisiere, respectiv, baze de date.

Se considera structura data în figura 3.1.

Analiza calitativa

a elementelor noi

Încarcareabazei de date

Lungimeelemente

Frecventecaractere

Frecventevocabular

Frecventecuvinte

Structuraelemente

Matriceprecedenta

Complexitate

Concluzii

Figura 3.1 Structura software pentru indicatoride ortogonalitate

Page 42: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 42/203

 

Produsul software destinat implementarii indicatorilor este scris înlimbajul C++ si se caracterizeaza prin:

v vocabular definit de utilizator;v mecanism de cautare combinatii de fisiere;v evaluare frecvente;v calcul indicatori simpli si indicatori agregati;v afisare rezultate;v stocari rezultate în vederea constituirii seriilor de date pentru

analize statistice.

Modul în care este proiectat permite includerea de noi indicatori siimplementarea de noi mecanisme de analiza comparata a datelor.

Produsul software a fost testat pentru evaluarea ortogonalitatii unuinumar de 4 perechi de fisiere.

În etapele urmatoare vor fi implementati indicatori destinati evaluariigradului de ortogonalitate pentru n - tuple de fisiere.

Page 43: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 43/203

 

 

 4 

4.1 Evidentierea clonarii informatice

Se considera o multime de programe, formate din componentele P1,P2, ..., Pn. Fiecare program Pi, i = 1, 2, ..., n, este analizat si se efectueazadiferite masuratori, folosind modelele Mc1, Mc2, ..., Mck de calcul a unorindicatori. Problemele care apar sunt legate de:

v numarul n al programelor, în sensul colectarii unui numar foartemare de programe, dintre cele elaborate; acest numar este dat fiede programele înscrise în registrul programelor lansate pe piata desoftware, fie de capacitatea de colectare a unui organism saubiblioteci specializate;

v extragerea dintr-o multime foarte mare de modele de indicatoriasociati caracteristicilor de calitate, a unui numar ck de modele,considerate reprezentative, dar si suficiente pentru a obtine unindicator agregat care sa marcheze caracterul biunivoc al legaturii

dintre multimea programelor si multimea valorilor calculate cuacest indicator agregat;

CLONAREA

SOFTWARE 

Page 44: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 44/203

 

v efortul necesar evidentierii situatiei în care pentru programelediferite Pi si P j se obtin valori identice ale indicatorului agregat, seconchide cu o probabilitate de 0,99 ca unul din programele Pi, P j este clona celuilalt.

În realitate, nu sunt evaluate decât programele pe care proprietariidoresc sa le protejeze sau pentru care se fac masuratori în vedereacompararii cu alte produse similare existente pe piata, pentru a le marcasuperioritatea. Desi, initial se defineste o multime de programe P1, P2, ..., Pn,

 în realitate aceasta este numai un esantion, probabil, reprezentativ almultimii programelor aflate în uz curent.

La multimea programelor se adauga noi componente Pn+1, Pn+2, ...,

Pn+s. Din aceasta multime sunt retrase programe uzate moral. Structuramultimii are o dinamica proprie, iar numarul ei de componente este ofunctie care depinde de timp, n = g(t). Mai mult, chiar componentele Pi alemultimii sufera în timp transformari, obtinându-se versiuni, precum Pi

(1),Pi

(2), ..., Pi(r).

Pentru simplificarea ipotezelor de lucru, se considera un moment detimp t0, pentru care componentele multimii programelor sunt P1

(0), P2(0), ...,

Pn0(0), iar n0 = g(t0). Se vor utiliza notatiile initiale n0 -> n, Pi

(0) -> Pi, t0 -> t1 

pentru a simplifica dezvoltarile ulterioare. Trecerea de la momentul t0 lamomentul t1, devine numai o problema de utilizare a multor indici la nivelulvariabilelor din modele.

De asemenea, pe masura aparitiei unei noi versiuni, Pi(k), în multimea

programelor noua versiune o înlocuieste pe cea veche, Pi(k-1). Multimea

initiala a programelor este formata din componente diferite, realizateindependent de echipele de dezvoltatori de software. Problema certificariioriginalitatii programelor este definita numai pentru noile programe care seinclud în multime. În mod practic, problema se pune în acelasi fel atunci

când exista deja constituita o baza de programe si se adauga o nouacomponenta, Px. Este necesar mai întâi sa se verifice daca în baza deprograme nu exista deja respectiva componenta. În cazul în care în baza deprograme se dovedeste ca programul Px deja exista, se deruleaza procesul decertificare a clonei.

În cazul în care programul de adaugat, P, nu este regasit în baza deprograme, se deruleaza procesul de certificare a originalitatii în raport cuceea ce exista în baza de programe. Dupa aceea se procedeaza la adaugarea

componentei în baza de programe.Certificarea clonarii se realizeaza prin compararea programului Px cuprogramele P1, P2, ..., Pn din baza de programe, bucata cu bucata.

Page 45: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 45/203

 

CopiereFs

X Gf 

CopiereX

Fs

Fs

Gf 

Y

Y

De fiecare data sunt efectuate evaluari care au rolul de a identificaclone si de a întrerupe procesul de analiza, respectiv, de a determinaneincluderea programului Px în baza de programe.

În continuare sunt prezentate tehnici de clonare a programelor însotite de exemplificari. Problema clonarii software se solutioneaza fiemanual, fie folosind instrumente de automatizare. Se considera caprogramele sunt stocate sub forma de fisiere sursa.

Tehnicile de clonare a programelor au în vedere copierea propriu-zisa a acestora de pe un suport de stocare pe altul, conversia datelormemorate dintr-un format în altul, translatarea programelor din punctul devedere al limbajelor utilizate în realizarea acestora, transformari pe textulsursa al programelor, restructurarea codului sursa în vederea optimizarii

acestuia, schimbarea structurilor de date utilizate precum si aducerea la oforma comuna a subprogramelor de tip functie si procedura.

4.2. Copierea de fisiere

Se considera fisierul Fs cu o extensie data, stocat pe un suport.Copierea fisierului pe acelasi suport X se realizeaza sub un alt nume, Gf ,având aceeasi extensie, figura 4.1.

Figura 4.1 Copierea fisierului pe acelasi suport

În cazul în care fisierul Fs aflat pe suportul X este copiat pe suportul

Y, fie i se mentine numele, fie i se atribuie un nou nume, Gf , figura 4.2.

Figura 4.2 Copierea fisierului pe un alt suport

Page 46: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 46/203

 

Extensiile fisierelor ramân neschimbate.Sistemul de operare MS-DOS permite copierea fisierelor prin

instructiunea copy definita astfel:

copy [/a | /b] sursa [/a | /b] [[/a | /b] + sursa [/a | /b] [+ ...]] [/v] [/n] [/y |

 /-y] [/z] [/a | /b] [destinatie [/a | /b]]

unde parametrii au semnificatia urmatoare:v sursa – specifica locatia si numele unuia sau mai multor fisiere

de unde se copiaza; locatia este un disc, un director, un fisier sau

o combinatie de acestea;

v destinatie – specifica locatia si numele unuia sau mai multor 

 fisiere unde se copiaza; locatia este un disc, un director, un fisier sau o combinatie de acestea;

v /a – indica un fisier text ASCII;

v /b – indica un fisier binar;

v /v - verifica daca noile fisiere sunt scrise corect;

v /n – se foloseste un nume scurt de fisier când copierea are loc

 pentru un fisier cu un nume mai mare de opt caractere sau

extensia e mai mare de trei caractere;

v /-y – se cere confirmarea suprascrierii unui fisier;v /z – se copiaza fisiere din retea în mod restartabil, daca în timpul

copierii se pierde conexiunea.

Sistemul de operare Windows efectueaza copierea de fisiere prinurmatoarele metode:

a) “tragere si plasare” (drag-and-drop) – sunt efectuateurmatoarele operatii:• se selecteaza fisierul care se copiaza;• se tine apasat butonul stânga al mouse-ului;• se “plaseaza” fisierul deasupra directorului destinatie;• se elibereaza butonul stânga al mouse-ului.

b) “copiere si lipire” – sunt parcurse urmatoarele operatii:• se selecteaza fisierul care se copiaza;• se copiaza fisierul în Clipboard prin selectare optiune Copy 

din meniul de context, meniul Edit sau bara de instrumente;• se selecteaza destinatia unde se copiaza fisierul;

• se copiaza propriu-zis fisierul prin selectare optiune Paste din meniul de context, meniul Edit sau bara de instrumente.

Page 47: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 47/203

 

c) "trimitere la disc flexibil" - daca se copiaza fisiere pe dischete,atunci din meniul de context se alege optiunea Send To 3 ½Floppy (A); trimiterea este generalizabila.

Fisierele se copiaza fie unul câte unul, caz în care sunt repetateoperatiile de mai sus pentru fiecare, fie toate o data, acestea selectându-se cuajutorul mouse-ului sau a tastelor de directare, pe de o parte, si a tastelorCTRL sau SHIFT, pe de alta parte.

De exemplu, daca fisierul As este copiat, dupa efectuarea operatiilordescrise anterior, se obtine fisierul Bs. Copierea se realizeaza:

§ pe acelasi suport;§ pe alt suport;

§  în acelasi director;§  în alt director.

Copierea fisierelor reprezinta unul din cazurile de clonare perfecta.• tiparire fisiere – presupune realizarea imprimarii continutului

fisierelor text cu sau fara format;• stergere fisiere - operatie prin care se realizeaza eliminarea de pe

suportul magnetic extern a continutului si a datelor de descriere.

Problema gestionarii documentelor sub aspectul denumirii, versiunii,lungimii, datei crearii si/sau modificarii de fisiere constituie un domeniudistinct deosebit de important, abordat de cercetarile în birotica moderna.

Exista instrumente care permit clonarea dischetelor, a discuriloroptice si a hard-disk-urilor. Pe lânga faptul ca se copiaza fisierele sidirectoarele de pe o unitate de stocare pe alta, având acelasi continut, clonaobtinuta are aceeasi structura ca si originalul.

4.3 Conversia de fisiere

Fisierul Fs are o extensie x, ceea ce înseamna ca în procesul decreare au fost respectate o serie de reguli. Extensiile uzuale sunt:

• CPP – fisierul contine un text sursa construit dupa cerintelelimbajului C++;

• PAS – fisierul contine un text sursa scris în conformitate cucerintele limbajului Pascal;

• TPU – sunt stocate unit-uri pentru programele scrise în limbajulPascal, fiind construite conform sintaxei limbajului Pascal;

Page 48: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 48/203

 

ConversieFs.α Fs.β 

•  ASM  – contine secvente de instructiuni ale limbajului deasamblare care sunt reunite sub forma de fisier sursa;

• OBJ  – fisierul contine module obiect rezultate în procesul de

compilare sau asamblare;•  EXE  – contine cod executabil obtinut în urma stabilirii delegaturi între modulele obiect continute în fisierele cu extensiaOBJ;

•  DAT  – sunt stocate date care sunt memorate direct în formatbinar, fara efectuare de conversii în diverse formate si coduri(ASCII, UNICODE);

•  DOC  – fisiere de tip document rezultate din lucrul cu unprocesor de texte;

• TXT  – contine date memorate în format ASCII, scrierea datelorpe disc efectuându-se cu conversie;

•  XLS – fisiere de tip foaie da calcul tabelar rezultate din lucrul cuo aplicatie de calcul tabelar;

•  ZIP – contine fisiere de tipul celor enumerate mai sus asupracarora s-a aplicat un algoritm de compresie de date;

•  HTML – fisiere construite conform sintaxei limbajului HTML acaror continut este vizualizat cu ajutorul unui browser web;

•  BMP – contine date ce sunt vizualizate sub forma unei imagini;•  JPEG – fisiere care contin date de tip imagine asupra carora se

aplica un algoritm de compresie;•  AVI – fisiere care contin date de tip multimedia: imagini, video,

sunet;Conversia este procesul prin care un fisier Fs de intrare, având o

extensie data α, este transformat, obtinându-se la iesire un fisier Fs având oalta extensie β , figura 4.3.

Figura 4.3 Conversia fisierului de la tipulα

la tipulβ

 

Trebuie sa existe si operatia de conversie inversa care executatransformarea de la extensia β la extensia α, figura 4.4.

Page 49: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 49/203

 

Conversiedirecta

Conversieinversa

Fs.α Fs.αFs.β  

Fisieresursa

CompilareModulobiect

Program scris

 în limbaj deasamblare Asamblor Modulobiect

Figura 4.4 Conversia directa si conversia inversa a fisierelor

Compilarea programelor scrise în limbajele evaluate C++, COBOL,PASCAL, FORTRAN sunt compilate si sunt construite modulele obiect,figura 4.5.

Figura 4.5 Compilarea fisierelor cu extensia CPP, PAS

Asamblarea programelor cu extensia ASM determina obtinerea, deasemenea, a modulelor obiect, figura 4.6.

Figura 4.6 Obtinerea modulelor obiect prin asamblare

Operatia inversa compilarii este decompilarea. Transformareainversa a asamblarii este dezasamblarea modulelor obiect.Uzual se construiesc programe utilitare pentru conversie,

preponderent pentru conversia fisierelor grafice.

Page 50: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 50/203

 

4.4 Translatarea fisierelor sursa

Translatarea este un proces prin care un program scris într-un limbajL

lieste transformat într-un program care realizeaza aceleasi functii pe care

le are programul initial, scris în limbajul Llj.Translatoarele sunt programe care asigura prin generalitatea lor

obtinerea de structuri de programe. Un translator opereaza transformari lanivel de procedura sau functie, dar si la nivel de modul si chiar la nivel desistem de programe.

De exemplu, constructiei

var ++;

din limbajul C++ îi va corespunde în programe Pascal urmatoareaconstructie:

var:= var + 1;

Scrierea în corespondenta a cuvintelor cheie permite realizarea dedefiniri de operanzi echivalenti în programele C++, pornind de la

programele Pascal.Exemplu:

int integer 

 float realstruct record 

switch case

* char string

Descrierii:

struct nume { tip1 nume1; tip2 nume2; ... tipn numen; 

 }; 

Page 51: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 51/203

 

din programe C++, îi va corespunde constructia în limbajul Pascal:

nume = record  nume

1: tip

1; 

nume2: tip2; ... numen: tipn; 

end; 

Implementarea structurilor alternative multiple:

switch (expresie)

{case val1: { ... break; }

case val2: { ... break;}

...

default : { ... break;} }

din programele C++ îi corespunde descrierea urmatoare în limbajul Pascal:

case expresie of 

begin

val1: begin ... end;

val2: begin ... end;

...

valn: begin ... end;

end;

Programele translatoare au capacitatea de a dezvolta transformari lanivel de linie sursa sau instructiune, cât si la nivel de secventa pentru a oferisolutii complete, proprii limbajului destinatie.

Blocurile delimitate în programele Pascal de begin si end  sedelimiteaza în programele C++ prin { si }.

Page 52: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 52/203

 

 

4.5 Transformari pe text sursa

Se construiesc programe care opereaza pe text sursa, producândmodificari ce determina crearea de diferente între textul sursa initial si celobtinut ulterior. Înlocuirea denumirilor de variabile si etichete presupune:

Ø traversarea textului sursa si crearea vocabularului de cuvintegenerate de programator;

Ø se genereaza siruri de caractere cu rol de identificator variabilesau etichete;

Ø se pun în corespondenta sirurile generate cu cuvintelevocabularului creat de programator;

Ø se înlocuiesc sirurile generate cu sirurile corespondente din textulsursa.

Pentru exemplificare, se considera secventa:

vcub = l * l * l;

vpiramida = (B * b * h) / 3;

vsfera =( 3.14159 * 4 * R * R * R) / 3;

vcilindru = 3.14159 * R * R * G;

vcon = (3.14159 * R * G * G) / 3

se genereaza vocabularul format din cuvinte utilizator: vcub, l, vpir, B, b, h,

vsfera, R, vcil, G, vcon.

Page 53: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 53/203

 

Vocabularul este pus în corespondenta cu sirul generat: sir 1 , sir 2 ,

sir 3 , sir 4 , sir 5 , sir 6  , sir 7  , sir 8 , sir 9 , sir 10 , sir 11. Se pun în corespondenta:

vcub – sir 1

l – sir 2

vpiramida – sir 3

 B – sir 4

b – sir 5

h – sir 6 

vsfera – sir 7 

 R – sir 8

vcilindru – sir 9

G – sir 10

vcon – sir 11

Prin înlocuire se obtine secventa:

sir 1 = sir 2 * sir 2 * sir 2;

sir 3 = (sir 4 * sir 5 * sir 6 ) / 3;

sir 7 =( 3.14159 * 4 * sir 8 * sir 8 * sir 8) / 3;

sir 9 = 3.14159 * sir 8 * sir 8 * sir 10;

sir 11 = (3.14159 * sir 8 * sir 10 * sir 10) / 3

Page 54: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 54/203

 

Optimizarea automata a programelor presupune efectuarea deoperatii pe texte sursa, precum:

• eliminarea subexpresiilor comune;

• eliminarea invariantilor;• eliminarea codului „mort”;• simplificarea prin calcul simbolic;• concatenarea de structuri repetitive.

Un program care optimizeaza programe, operând pe text sursatransforma secventa:

...s1 = 0;

 for ( i = 0; i < n; i ++)

s1 + = x [i];

s2 = 0; for ( i = 0; i < n; i ++)

s2 + = x [i] * x [i];s3 = 0;

 for ( i = 0; i < n; i ++)

s4 = 0; for ( i = 0; i < n; i++)

{

c = 0;

s4 + = x [i] * x [ i] * x [i];

 }

l = (a * a + b * b + c * c) * ( a * a + b * b + c * c - 1) * (a * a + b * b);

g = (a * a + b * b + c * c) / (a * a + b * b + c * c) –1;

Page 55: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 55/203

 

devenind, dupa optimizare:

s1 = s2 = s3 = s4 = 0;

 for (i = 0; i < n; i ++)

{

s1 + = x [i];

s2 + = x [i] * x [i];s3 + = x [i] * x [i] * x[i];

s4 + = x [i] * x [i] * x [i] * x [i];

 }

c = 0;

alfa = c * c;

aux = aa + bb + alfa;l = aux * (aux - 1) * (aux – alfa)

g = 0;

Programele care genereaza secvente echivalente au menirea de a înlocui constructii de forma:

var = var + 1;

cu

var ++;

sauif (expresie1)

var = expresie2;

elsevar = expresie3;

cu 

(expresie1) ? expresie2 : expresie3;

Page 56: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 56/203

 

saui = 0; s1 = 0; s2 = 0; s3 = 0;10: if ( i >= n) goto 20;

s1 = s1 + x [i];s2 = s2 + x [i] * x [i];

s3 = s3 + x [i] * x [i] * x [i];

i = i + 1;

goto 10;

20: s4 = s1 + s2 + s3;

 în secventa:

s1 = s2 = s3 = 0; for ( i = 0; i < n; i ++)

{

s1 + = x [i];

s2 + = x [i] * x [i];

s3 + = x [i] * x [i] * x [i];

 }s4 = s1 + s2 + s3;

Secventele echivalente se construiesc si prin interschimbul de liniisursa, daca instructiunile sunt independente unele de celelalte. Secventa:

s = a + b + c;if ( x > y)

 z = x * y;

else

 z = x – y;

devine:

if ( x < = y)

 z = x - y;else

 z = x * y;

s = a + b + c;

Page 57: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 57/203

 

Schimbarile se produc în cadrul unei unitati, fie ca e vorba deprogram principal, fie ca este o functie sau o procedura. Inserarea deinstructiuni sau de secvente cu caracter neutru au menirea de a transformaun program initial. Secventa:

e = a + b;

g = a – b;

h = a * b;

prin introducerea unor instructiuni distincte cu efect ce va fi anulat ulterior,se obtine o noua secventa:

e = ( a - 1) * ( b -1);

g = ( a + 1) * ( b +1);

h = ( a+b) * ( a – b);e = a + b;

g = a – b;

h = a * b;

Daca instructiunile se insereaza, secventa initiala devine:e = ( a - 1) * ( b – 1);

e = a + b;

g = ( a + 1) * ( b + 1);g = a – b;

h = ( a + b) * ( a – b);

h = a * b;

Negarea expresiei conditionale interschimba secventele deinstructiuni din structurile alternative. Secventa:

if ( a)

{e1 = a + b;

e2 = a – b;

e3 = a * b; }

else

{e1 = b / ( a +1);

e2 = b;

e3 = a;

 }

Page 58: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 58/203

 

devine:if (!( a))

{

e1 = b / ( a+1);

e2 = b;

e3 = a;

 }else

{

e1 = a + b;

e2 = a - b;

e3 = a * b;

 }

Controlul efectului de ondularitate.  Toate modificarile induse deprocesele de clonare genereaza efecte de ondulanta. În toate situatiileclonarea trebuie sa gestioneze ondulanta si sa asigure stabilitateaprelucrarilor, cel putin la nivelul programului initial.

În cazul în care unui program P i se asociaza proceduri ale altui

program RP rezulta un produs combinat, notat în continuare Sc. Produsul Sc este rezultatul procesului de concatenare directa, când programele RP si Psunt ortogonale din punct de vedere a definirilor si referirilor, figura 4.7.

Figura 4.7 Concatenare programe ortogonale

Când ortogonalitatea nu este totala si apar interferente se impuneconstruirea de secvente în care apar variabile intermediare care asigura

conditia de ortogonalitate.Când se cloneaza software apar cazuri frecvente în care la programulinitial sunt adaugate secvente sau functii care efectueaza prelucrari de

a, b, x, y,a, b,c

Page 59: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 59/203

 

P1 P2 S1

S  

CD  Fi1

P1

F1( ) 

Fi1

Fi2

P2

F2( ) 

S1

S2

S3

P’1 P’2

CD 

siguranta, editari de rezultate, salvari de fisiere, noi regrupari de date, noisortari sau se obtin noi rapoarte. În sistemul de programe din figura 4.8:

Figura 4.8 Sistem de programe în cascada

Datele de intrare sunt preluate de pe un CD si prelucrate de

programele P1 si P2. Se obtin situatiile finale Sf1 si Sf2 cu folosirea fisieruluiintermediar Fi1.

Prin clonarea sistemului de programe în cascada la care se adaugaprogramelor P1 si P2 noi proceduri F1( ), F2( ), desemnând P’1 si, respectiv,P’2 se va utiliza un nou fisier Fi2 si se obtin noi rapoarte prin adaugareaprogramului P3 care realizeaza o functie de prelucrare comuna, figura 4.9.

Figura 4.9 Sistem de programe clonat cu adaugare de proceduri

Includerea unui program copiat într-un sistem de programe este unmod uzual de ascundere a clonelor.

Page 60: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 60/203

 

PFs1 Fs2

SistemulS

PFs1 Fs2

Se considera programul P clonat prin copiere mecanica, împreuna cufisierele Fs1 si Fs2 atasate, figura 4.10:

Figura 4.10 Program cu date de intrare/iesire pe disc

Sistemul de programe SP încorporeaza clona P prin manipulareafisierelor Fs1 si Fs2, figura 4.11:

Figura 4.11 Sistem de programe cu clona încorporata

4.6 Restructurarea programelor

Daca programul este dat sub forma de program principal, seidentifica parti apelabile, produsul transformat fiind un program apelat simai multe proceduri în cazul în care transformarea vizeaza contopireamodulelor într-un program fara apeluri, se produce integrarea de secvente

 într-un tot unitar, cu gestionarea parametrilor reali.

Page 61: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 61/203

 

Programul:

citeste a, b, c

 x = minim (a, b, c)

 y = maxim (a, b, c)

 z = minim (a, b, a)

w = maxim (b, c, c)e = x + y +z + w

devine:int minim(int a, int b, int c)

{

min = a;if (min > b) min = b;

if (min > c) min = c;

return min;

 }

int maxim(int a, int b, int c)

{

max = a;if (max < b) max = b;

if (max < c) max = c;

return max;

 }

min = a;

if (min > b) min = b;

if (min > c) min = c; x = min;

max = a;

if (max < b) max = b;

if (max > c) max = c;

 y = max;

min = a;if (min > b) min = b;

if (min > a) min = c;

 z = min;

Page 62: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 62/203

 

 

max = b;

if (max > a) max = b;

if (max > c) max = c;w = max;

e = x + y + z + w;

Separarea secventelor în proceduri distincte fie este rezultatulanalizei repetabilitatii se secvente, fie se efectueaza mecanic.

Reunirea definirilor de operanzi consta în a concatena liste devariabile având acelasi tip.

Secventa:

tip1 v1 , v2 , ..., v n;tip2 u1 , u2 , ..., um;

tip1 w1 , w2 , ..., wk ;tip2 y1 , y2 , ..., yr ;

devine dupa concatenari:

tip1 v1 , v2 , ..., v n , w1 , w2 , ..., wk ;

tip2 u1 , u2 , ..., um , y1 , y2 , ..., yr ;

Interschimbul de operanzi are la baza comutativitatea operatorilor.Expresia:

e = a * (b + c + d)

devine:

e = (d + c + b) * a

sau

e = (c + b + d) * a

Page 63: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 63/203

 

Interschimbul elementelor din lista omogena de definire sau din listede parametri formal, respectiv, liste de parametri reali determina aparitia demodificari în texte sursa, fara influente asupra semnificatiei secventelor.

tip v1 , v2 , v3 , ..., v n;

se înlocuieste prin:

tip vn , vn-1 , ..., v2 , v1;

Sau, în cazul definirii unei functii:

tip nume (tip1 v1 , tip2 v2 , ..., tipn vn)

este înlocuita prin:

tip nume (tipn vn , tipn-1 vn-1 , ..., tip2 v2 , tip1 v1)

si, în mod corespunzator, apelul:

nume (x1 , x2 , ..., xn)

este înlocuit cu apelul:

nume (xn , xn-1 , ..., x2 , x1)

Reunirea de proceduri presupune ca într-un program în care seapeleaza procedurile Pr1, Pr2, ..., Prn, având listele de parametri Lp1, Lp2, ...,Lpn se modifica în sensul apelarii unei singure proceduri Pr având o lista deparametri Lp = Lp1 ∪ Lp2 ∪ Lp3 ∪ ... ∪ Lpn ∪ L0, unde L0 este o listaaditionala a variabilelor de stare si a celor de solutie.

Se considera programul Ap care apeleaza procedurile:

int suma(int x[ ], int n){

int s = 0, i;

 for (i = 0; i < n; i ++)

s += x [i];return s;

 }

Page 64: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 64/203

 

 

int prod (int x [ ], int y [ ], int n)

{

int p = 0; for (i = 0; i < n; i ++)

 p += x [i] * y [i];

return p;

 }

int minim (int x [ ], int n)

{

int min, i;min = x [0];

 for ( i = 1; i < n; i++))

if (min > x [i])

min = x [i];

return min;

 }

int max ( int x [ ], int n)

{int max, i;

max = x [0];

 for ( i = 1; i < n; i ++)if ( max < x [i])

max = x [i];return max;

 }

Prin clonare cu reunire de proceduri se ajunge la constructia:int calcul ( int x [ ], int y [ ], int n, int k)

{

int s, p, max, min, i;

if ( k == 0){

s = 0; for ( i = 0; i < n; i ++)

{

Page 65: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 65/203

 

s += x [i];

return s; }

 }

else

if (k == 1)

{ p = 0;

 for ( i = 0; i < n; i ++)

{

 p += x [i] * y [i];

return p;

 } }

elseif (k == 2)

{min = x [0];

 for ( i = 1; i < n; i ++)

{

if (min > x [i])min = x [i];

return min; }

 }else

{

max = x [0]; for ( i = 1; i < n; i++)

{if ( max < n)

max = x [i];

return max; }

 }

 }

Page 66: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 66/203

 

În cazul în care cele patru proceduri se afla în programul principalnumai în secvente de forma:

a = suma ( x, n);

b = prod ( x, y, n);

c = minim (x , n );

d = maxim ( x, n);

r = suma ( x, n);

q = prod ( x, y, n);t = minim (x , n );

u = maxim ( x, n);

alfa = suma ( x, n);beta = prod ( x, y, n);

gama = minim (x , n

);

delta = maxim ( x, n);

cele patru se concateneaza si dupa optimizare rezulta:

int * calcul ( int x [ ], int y [ ], int n)

{int s [4], i;

s [0] = s [1] = 0;

s [2] = s [3] = x [0]; for ( i = 0; i < n; i ++)

{

s [0] += x [i];

s [1] += x [i] * y [i];if ( s [2] > x [i])

s [2] = x [i];if ( s [3] < x [i])

s [3] = x [i];

 }

return s;

 }

Page 67: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 67/203

 

Pentru aceste modalitati se construiesc instrumente care efectueazamai întâi o analiza pe matrice de precedenta dupa care, în mod automat,genereaza secvente în trepte obtinându-se cresterea gradului deortogonalitate a fisierelor de texte sursa.

Daca se opereaza înlocuiri ale numelor de functii si ale numelor devariabile, deja efectele induc un grad de diferentiere majorat ale textuluisursa rezultat fata de textul sursa initial.

De exemplu, functia:

 float calcul( int a, float b)

{ float d;

d = a + b;return d;

 }

Dupa interschimburi în liste si în expresii, se obtine constructia:

 float calcul( float b, int a)

{

 float d;

d = b + a;return d;

 }

Daca se opereaza cu înlocuiri de nume:

calcul -> suma

b -> x

a -> yd -> z

atunci noua constructie va fi:

 float suma( float x, int y)

{

 float z; z = x + y;

return z; }

Page 68: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 68/203

 

4.7 Schimbarea structurilor de date utilizate

Prin schimbarea structurilor de date utilizate se urmareste aducereala o forma comuna a programelor, precum si cresterea gradului demodularitate a acestora. Schimbarea structurilor de date utilizate într-unprogram are în vederea urmatoarele aspecte:

- utilizare articole în loc de variabile elementare;Secventa:

...

int nr_mat;

char nume[20], prenume[30];

 float medie;...

este transformata în:

...

struct student 

{

int nr_mat;char nume[20];

char prenume[30]; float medie;

 }

- utilizare masive bidimensionale;De exemplu, denumirile de discipline sunt memorate în astfel de

structuri de date:

...

char disciplina1[20], disciplina2[20], disciplina3[20];

...

obtinându-se urmatoarea secventa:

...

char discipline[20][20];...

Page 69: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 69/203

 

În masivul bidimensional anterior fiecare disciplina este memoratape o linie a matricei.

- folosire de variabile de tip pointer;De exemplu, secventa:

...

student stud1;...

este înlocuita de:

...

student * stud1;...

- definire de clase de obiecte.Prezinta avantajul de a reuni în cadrul aceleiasi structuri atât starea

unui obiect, cât si comportamentul acestuia. Astfel, pentru entitatea studentavem secventa:

...int nr_mat, note[10];

char nume[20], prenume[30]; float medie;

 float calcul_medie ( int note[ ])

{

int i, s;s = 0;

 for ( i = 0; i < 10; i ++)s = s + note [i];

return s / 10;

 }...

medie = calcul_medie (note);

Page 70: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 70/203

 

care, transformata în clasa de obiecte, devine:

...

class student 

{

int nr_mat, note[10];

char nume[20], prenume[30]; float medie;

void calcul_medie (int note[ ]);

...

 };

void student:: calcul_medie ( int note[ ]){

int i, s;s = 0;

 for ( i = 0; i < 10; i ++)s = s + note [i];

medie = s /10;

 }

...

4.8 Omogenizarea tipurilor de functii

Are în vedere aducerea la o forma comuna a subprogramelor de tipfunctie prin efectuarea urmatoarelor operatii:

- înlocuire void cu int prin introducerea unei variabile de control;De exemplu, functia:

void minim (int a, int b, int *c)

{

if ( a > b)

*c = b;

 }

Page 71: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 71/203

 

este adusa la forma urmatoare:

int minim (int a, int b, int *c)

{

int vb = 0;

if ( a > b)

{*c = b;

vb = 1;

 }

return vb;

 }

- mod identic de transmitere a parametrilor pentru toate functiile;De exemplu, transmiterea parametrilor prin adresa pentru toate

functiile:int minim (int a, int b, int *c)

{

int vb = 0;

if ( a > b)

{*c = b;

vb = 1; }

return vb; }

Forma functiei minim dupa aceasta operatie este:

int minim (int *a, int *b, int *c){

int vb = 0;

if ( (*a) > (*b)){

*c = *b;

vb = 1; }

return vb; }

- utilizarea unei singure instructiuni return.

Page 72: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 72/203

 

Pentru functia:

int minim (int a, int b)

{

if ( a > b)

return b;

elsereturn a;

 }

efectuarea acestei operatii conduce la urmatoarea secventa:

int minim (int a, int b){

int min = a;if ( a > b)

min = b;return min;

 }

- utilizare exclusiva a structurii de tip DO-WHILE, înlocuindstructurile de tip DO-FOR si DO-UNTIL.Fie functia:

 float calcul_medie ( int note[ ])

{int i, s;

s = 0; for ( i = 0; i < 10; i ++)

s = s + note [i];return s / 10;

 }

Page 73: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 73/203

 

Omogenizarea conform acestei operatii conduce la obtinereasecventei de cod:

 float calcul_medie ( int note[ ])

{

int i, s;

s = 0;i = 0;

while ( i < 10)

{

s = s + note [i];

i + +;

 }return s / 10;

 }

4.9 Efectele clonarii asupra complexitatii programelor

Metodele de clonare produc diverse efecte asupra fisierelor sursa.Exista metode care nu modifica nivelul complexitatii programelor.Astfel, daca se schimba denumirile de variabile si de etichete cu alti

identificatori, numarul operanzilor si numarul operatorilor nu se schimba,deci complexitatea ramâne neschimbata.

Secventa:

s = 0;

 for (i = 0; i < n; i ++)

S += x [i];

are complexitatea Halstead:

C  ps = n1 * log2 n1 + n2 * log2 n2 (4.1)

unde:- n1 – numarul de operanzi;

- n2 – numarul de operatori.

Page 74: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 74/203

 

Pentru secventa data, complexitatea este Cps = 10 log2 10 + 7 log2 2.Secventa:

suma = 0;

 for (alfa = 0; alfa < numar; alfa ++)

suma += elem [alfa];

are aceeasi complexitate.Exista metode care reduc nivelul complexitatii, mai ales atunci când

este vorba de optimizare texte sursa.Secventa:

s = ( a + b + c + d) * ( a + b + c + d - e) – (a + b + c + d + e) * (a + b +

c + d - - 1);

 y = ( a + b + c + d) / ( a + b + c + d – 2);

 z = a + b + c + d – y * s;

are complexitatea Cps = 38 * log2 38 + 35 * log2 35.Prin clonare se genereaza secventa de optimizare:

g = a + b + c + d;s = g * ( g - e) – ( g + e) * ( g -1);

 y = g / ( g -2);

 z = g – y * s;

are complexitatea Cps = 21 * log2 21 + 17 * log2 17, fiind mult mai micadecât a textului sursa initial, înaintea clonarii.

Pentru procedurile Pr1, Pr2, Pr3:

int P1(int x [ ], int n)

{

int s1 = 0, i;

 for ( i = 0; i < n; i ++)s1 + = x [i];

return s1;

 }

int P2(int x [ ], int n){

int s2 = 0, i;

Page 75: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 75/203

 

for ( i = 0; i < n; i ++)

s2 + = x [i] * x [i];

return s2;

 }

int P3(int x [ ], int n)

{

int s3 = 0, i;

 for ( i = 0; i < n; i ++)

s3 + = x [i] * x [i] * x[i];

return s3;

 }

complexitatile sunt:

P1 : Cps = 7 * log2 7 + 9 * log2 9;P2 : Cps = 9 * log2 9 + 10 * log2 10;P3 : Cps = 11 * log2 11 + 11 * log2 11.

Secventa optimizata este:

int * sume ( int x [ ], int n)

{

int s [3], i;

s [0] = s [1] = s [2] = 0;

 for ( i =0; i < n; i ++)

{

s [0] += x [i];s [1] += x [i] * x [i];s [2] += x [i] * x[i] * x [i];

 }return s;

 }

complexitatea fiind: Cps

= 26 * log2

26 + 18 * log2

18.

Page 76: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 76/203

 

Unele dintre transformari fac obiectul proceselor automate princrearea de instrumente care preiau unele dintre modalitatile de construire asecventelor echivalente. În cazul în care se dezvolta instrumente careoptimizeaza programele folosind ca intrari texte sursa si oferind la iesire, deasemenea, texte sursa, se obtin clone cu un nivel de performanta mai bun.Aceste instrumente evalueaza complexitatea textelor sursa atât la intrare, câtsi la iesire si evidentiaza saltul obtinut prin procesul dezvoltat.

Page 77: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 77/203

 

 

5 CLONAREA DATELOR 

5.1 Aplicatii ale bazelor de date

Pastrarea si protejarea datelor în vederea unor prelucrari ulterioareeste o activitate vitala în dezvoltarea si utilizarea aplicatiilor softwareasemeni procesului de dezvoltare a programelor.

Clonarea unei baze de date, este procesul de obtinere unui exemplaridentic de baza de date, care prezinta aceleasi caracteristici cu originalul înceea ce priveste tabelele, datele si legaturile.

Se face distinctie între notiunea de replicare a bazei de date sinotiunea de clonare a bazei de date. Replicarea este un concept atasatbazelor de date distribuite. El consta în mentinerea acelorasi date pe maimulte site-uri, acest lucru implicând propagarea la distanta a oricareimodificari suferite de baza de date, asigurându-se integritatea datelor.

Procesul de clonare prezinta mai multe tipuri si anume: clonareaintegrala, clonarea structurii bazei de date, clonarea partiala a structurii

bazei de date cu mentinerea legaturilor între tabelele clonate, clonare bazeide date cu adaugare de noi tabele etc.

Page 78: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 78/203

 

Fiecare tip de clonare se realizeaza dupa un numar finit de pasi dupacum urmeaza:

a. se deschide baza de date de clonat; acest pas conditioneazacontinuarea procesului. Daca deschiderea nu se realizeaza corect,fie baza de date nu exista, fie nu a fost introdusa corect caleabazei de date, procesul de clonare se opreste;

b. se creeaza baza de date clona; se creeaza o noua baza de datecare nu contine tabele sau alte informatii; este practic o baza dedate vida; daca baza de date nu se creeaza corespunzatorprocesul se încheie fara obtinerea rezultatului dorit;

c. urmeaza o serie de pasi specifici fiecarui tip de clonare; dupaefectuarea acestor pasi se obtine baza de date clona;

d. ultimul pas corespunde închiderii bazei de date. Acest lucru oferaposibilitatea utilizatorului de a clona în cadrul aplicatiei declonare a bazelor de date aceeasi baza de date.

Lucrul pe clone rezolva problema reprezentarii uniforme a datelor,bazele de date având acelasi format. Reînnoirea datelor centrale serealizeaza mai rapid, iar comunicarea între departamente este eficace.Rapiditatea si eficienta procesului de comunicare în ambele sensuri estesporita, activitatea intermediara de a trece baza de date dintr-un format în

altul fiind complet eliminata. Transformarea unei baze de date prezintariscul pierderii de informatie.

R e i n t r o d u c e r e d a t e î nb a z a d e d a t e c e n t r a l a

B a z a d e d a t ec e n t r a l a

C l o n a 1D e p a r t a m e n t p e r i f e r i c

… … .

T r a n s f e r u l c l o n e i b a z e i d ed a t e c a t r e d e p a r t a m e n t

C l o n a n  D e p a r t a m e n t p e r i f e r i c

C l o n a 2D e p a r t a m en t p e r i f er i c  

A d a u g a r e d e n o id a t e

P r e l u c r a r e d a t e

 

S t er e re d a te i n i t i al e  

A d a u g a r e d e n o id a t e

P r e l u c r a r e d a t eS t e r e r e d a t e i n i t i a l e

A d a u g a r e d e n o id a t e

P r e l u c r a r e d a t e

S t e r g e r e d a t e i n i t i a l e  

Figura 5.1 Transferul de date între departamente prin intermediulclonelor

Page 79: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 79/203

 

Clonarea bazelor de date nu implica o rata mare de transfer întrecentru si sistemele periferice, lucru care fluidizeaza activitatea. De exemplu,protectia si securitatea bazei de date centrale sunt doua elemente esentialepentru asigurarea desfasurarii normale a activitatii unei firme.

Folosirea clonelor duce la fluidizarea traficului. La dorintautilizatorului, clonele sunt create cu proprietatea de accesibilitate rapida careasigura minimul de resurse informationale, neîncarcând monitorul cu datenefolositoare.

Aceeasi situatie este analizata prin prisma procesului deconcatenarea a bazelor de date, proces surprins atât la nivel fizic cat si lanivel logic.

La nivel fizic, daca bazele de date de la nivelul departamentului sunt

realizate pentru o aplicatie cu aceleasi reguli , transferata de la centru, secreeaza o singura baza de date si toate tranzactiile sunt efectuate prin centru.

La nivel logic, daca exista n BD baze de date cu aceeasi structura si oaplicatie aferenta, se opereaza în toate cele n BD baze de date. Astfel la nivellogic exista o singura baza de date, desi fizic exista n BD baze de date.

Ambele concepte utilizeaza clonarea bazelor de date, respectaprincipiile amintite mai sus, cu privire la securitate si protectie, si datoritaprocesului de clonare implica, cantitati reduse de resurse umane, financiare

si de timp.Eficienta procesului de clonare este obtinuta prin calculareaurmatorului indicator:

1

nrtab

e

i

 L nrleg nrcamp nrinreg=

= + ⋅∑   (5.1)

unde:- nrleg - numarul de legaturi al bazei de date;

- nrtab - numarul de tabele;- nrcamp - numarul de câmpuri al tabelei i;- nrinreg - numarul de înregistrari al tabelei i (ia valori începând

cu 1).Calculând un indicator pentru baza de date initiala  BD L si un

indicator CLONA L pentru baza de date clonata, dupa care se calculeazaindicatorul agregat:

 BD

CLONACLONARE 

 L L I  =   (5.2)

pentru masurarea eficientei procesului de clonare.

Page 80: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 80/203

 

5.2 Gestiunea contractelor

Se construieste aplicatia „Contracte” pentru exemplificareaclonarii bazelor de date.

O societate comerciala care are obiect de activitate închirierea despatii comerciale doreste sa informatizeze aceasta activitate. Pentrurezolvarea problemei se cunosc urmatoarele date:

Ø clientii firmei sunt caracterizati prin cod, denumire, cod fiscal,numar Registrul Comertului (reprezentat în tabele de variabilaNrRegCom).

Ø facturile sunt caracterizate de un numar de factura si data la cares-a facut.

Ø chiria este definita prin cod chirie, numarul contractului la care serefera, data scadenta si valoarea chiriei.

Ø contractele ce se încheie între firma si clientii sai, secaracterizeaza prin numarul contractului, data contractului sivaloare.

Clienti  

Cod clientDen client 

Cod f i s c a l N r R e g C o m 

Contracte  

Nr c on t ra c tData con trac t 

Valoare  

Chirii  

Cod chirieNr c on t ra c t

Data scadenta Valoare chirie  

Nr facturaData factura

Facturi  

Cod cl ient

Cod c l ientCod chirieNr c on t ra c t

1,n

1,n

1,n

1,n

1,n

Figura 5.2 Modelul relational al datelor pentru aplicatia „Contracte”

Baza de date se creeaza sub Microsoft Access si este conectata la unserver SQL sau alte sisteme de management a bazelor de date, modificareaaplicatiei nefiind necesara.

Aplicatia care cloneaza baza de date Contracte în functie denecesitatile utilizatorului, este realizata în Visual C++ folosindu-se

tehnologia MFC.Codul sursa al programului alaturi de explicatiile aferente suntpublicate pe Internet la adresa www.clonare-bazededate.ase.ro.

Page 81: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 81/203

 

5.3 Clonare integrala

Trendul exponential de dezvoltare al societatii informationaleprezinta riscuri majore. Unul dintre acestea este cel referitor la securitateainformatiei. Securitatea informatiei în cadrul unei retele se confundata defoarte multe ori cu lupta împotriva accesului neautorizat al piratilor lainformatii confidentiale.

Modificarile cauzate de acesti indivizi sunt iremediabile si de aceeaeste indicat ca administratorul de retea sau utilizatorul datelor respective, încazul nostru al bazelor de date, sa creeze o copie de siguranta, lucru realizatprin operatia numita Back-up. Back-up-ul este procesul de copiere a uneidate la o locatie cunoscuta de cel care realizeaza acest proces. În cazul

bazelor de date, baza de date pe care se lucreaza, este copiata integral.Pe lânga problemele cauzate de accesul nedorit la date confidentiale

exista si riscul aparitiei unor necesitati de ordin fizic. O fluctuatie a tensiuniicurentului electric poate produce urmarii iremediabile datelor si fisieruluicare le stocheaza. Neatentia utilizatorului în modul de gestionare a lucruluicu respectivele date are repercusiuni majore asupra integritatii lor.

Realizarea unei copii de siguranta este utila în asemenea situatii.Scopul realizarii lor este acela ca în situatiile în care, din motivele obiective

si subiective amintite, integritatea bazei de date este pusa sub semnul întrebarii, sau accesarea bazei de date nu mai este posibila, sa se utilizezerespectiva copie de siguranta.

Copiere legaturivechi s i date vechi BD 2BD 1

Figura 5.3 Procesul de clonare integrala a unei BD

Baza de date BD1 este practic transferata în baza de date BD2.Aceasta se realizeaza prin copierea atât a datelor bazei BD1, cât si alegaturilor acestei baze. Se obtine baza de date BD2 care este o clona abazei BD1, si anume o baza de date identica cu BD1.

Se foloseste termenul clonare, si nu cel de copiere, dintr-un motiv

bine determinat. Procesul de copiere în domeniul informatic presupuneexistenta unui singur pas, în carul caruia este efectuata copierea obiectuluidorit. Procesul de clonare este un proces care presupune existenta unui

Page 82: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 82/203

 

numar de pasi. Procesul de clonare nu are drept unic scop obtinerea uneibaze de date identice cu cea clonata. Acesta este scopul clonarii integrale.Copierea bazei de date într-o alta baza de date este valabil doar în cazulclonarii integrale si de aceea nu trebuie generalizat la nivelul întreguluiproces de clonare, care presupune diferentierea clonarii în functie denecesitatile imediate.

În concluzie, operatiile aferente pasului C sunt: daca baza de dateclona a fost creata cu succes urmeaza etapa în care sunt obtinuteparticularitatile bazei de date clonate, cum ar fi numele si numarul tabelelor,numarul, numele, tipul câmpurilor, câmpurile indexate, numarul legaturiloretc. Dupa obtinerea acestor particularitati urmeaza crearea lor propriu-zisa

 în baza de date clona.

Astfel este obtinuta baza de date clona. Operatia nu este o simplacopiere, fiind necesare si informatii suplimentare pentru crearea entitatilordin cadrul clonei, informatii obtinute prin apelul unor functii specializateoferite de pachetul Microsoft Visual Studio 6.

Tabela 1  Tabela 2  Tabela n ……….. 

Cele n tabele ale bazei de date initiale 

Datele aflate în tr  - o tabela 

Tabela 1  Tabela 2  Tabela n ……….. 

Cele n tabele ale clonei 

Clonare structura tabele 

Câmp k Câmp 2 Câmp 1  ………. 

Data 11  Data 12  Data 1k Data 21  Data 22  Data 2k 

……  ……  ……. Data m1 Data m2   Data mk 

………. ………. 

………. 

Câmp k Câmp 2 Câmp 1  ………. 

Data 11  Data 12  Data 1k Data 21  Data 22  Data 2k 

Data m1  Data m2  Data mk  

………. ………. 

………. 

Clonare structura câmpuri 

Clonare date 

Legaturi BD Legaturi clonaClonare legaturi

Figura 5.4 Secventa clonarii integrale a unei baze de date

Page 83: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 83/203

 

Procesul de clonare integrala a unei baze de date este procesul princare se copiaza atât datele, tabelele cât si legaturile tabelelor bazei de dateinitiale în conformitate cu particularitatile fiecarei entitati, într-o noua bazade date numita clona bazei initiale. În urma acestui proces se obtine o bazade date identica cu cea care s-a dorit a fi clonata.

Pentru baza de date Contracte, considerând ca tabele au în mediecâte 3 înregistrari, indicatorii  BD L si CLONA L au valorile 56= BD L si

56=CLONA L , iar indicatorul CLONARE  I  are valoarea 1, fiind copiata integral inclona.

5.4 Clonare structura baza de dateLimitarea la simpla copiere a bazei de date într-o alta baza de date

prin obtinerea clonei sale integrale, este o greseala. Aplicabilitatea clonariibazelor de date consta tocmai în posibilitatea clonarii bazei de date initiale

 în conformitate cu interesele utilizatorului. Crearea unei noi baze de datecare sa contina tabelele si legaturile bazei de date clonata, dar fara date, seobtine prin clonarea structurii bazei de date.

Procesul de clonare a structurii bazei de date este procesul prin care

se creeaza tabele si legaturile identice cu cele ale bazei de date initiale într-o noua baza de date.

În figura 5.5. este prezentata imaginea generala a acestui proces .

C o p i e r e t a b e l ev e c h i s i d a t e v e c h i B D 2B D 1

Figura 5.5 Procesul de clonare structura

Se doreste crearea unei baze de date BD2 care contine aceleasitabele ca si baza de date BD1. O solutie este crearea manuala a bazei de dateBD2. Aceasta solutie are un mare inconvenient si anume cel al costuluiimplicat. Crearea bazei de date BD1 a fost suportata cu un cost X. Cum celedoua baze au aceleasi tabele, se considera ca ele sunt similare.

Se obtine baza de date Contracte Filiala care are tabelele de dateclienti, chirii, contracte, facturi, iar legaturile dintre tabele sunt aceleasi cacele din baza de date Contracte.

Page 84: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 84/203

 

Dupa obtinerea bazei de date prin clonare, urmeaza completarea cudate a bazei Contracte Filiala.

Procesul este prezentat pe larg în figura 5.6.

Tabela 1   Tabela 2  Tabela n ……….. 

Cele n tabele ale bazei de date initiale 

Datele aflate într-  o tabela 

Tabela 1   Tabela 2  Tabela n ……….. 

Cele n tabele ale clonei 

Clonare structura tabele 

Câmp k Câmp 2  Câmp 1  ……….  

Data 11 Data 12  Data 1k  Data 21 Data 22  Data 2k  

……  ……  ……. Data m1  Data m2  Data mk 

……….  ……….  

……….  

Câmp k Câmp 2  Câmp 1   ……….  

Clonare structura câmpuri 

Legaturi BD Legaturi clonaClonare legaturi 

Figura 5.6 Secventa clonarii integrale a unei baze de date

Clonarea structurii este realizata în cadrul celor 4 pasi si conduce lavalorile 22= BD L si 56=CLONA L , iar 39.0=CLONARE  I  , însemnând ca baza dedate a fost clonata în proportie de 39%.

5.5 Clonare partiala a structurii bazei de date 

Procesul de clonare partiala a structurii bazei de date presupunecopierea anumitor tabele, precum si a legaturilor aferente acestor tabele dincadrul bazei de date initiale, într-o noua baza numita clona partiala, pentruca mai apoi în aceasta clona sa se introduca datele necesare lucrului.Procesul este reprezentat grafic în figura 5.7. 

Page 85: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 85/203

 

 

C o p i e r e t a b e l e a l e s e s i l e g a t u r iv e c h i î n t r e t a b e l e l e a l e s e B D 2B D 1

Figura 5.7 Procesul de clonare partiala a structurii bazei de date

Din figura 5.7 reiese ca se doreste crearea unei noi baze de date, sianume BD2, care are o structura similara cu baza de date BD1. Datoritasimilitudinilor cu baza de date BD1 nu mai este necesara crearea ei prinmetode conventionale. Aceasta ar presupune alocarea de noi resurse, resurse

care sunt utilizate în alte activitati.Clonarea partiala a structurii se realizeaza în cadrul pasului Cc, sicuprinde secventa de operatii descrisa în figura 5.8.

Tabela 1  Tabela i  Tabela n ……  

Cele n tabele ale bazei de dateinitiale 

Datele aflate înt r - o tabela 

Cele m tabele aleclonei 

Clonare structura tabele alese pentru a fi ate  

Câmp k  Câmp 2  Câmp 1   ………. 

Data 11  Data 12   Data 1k Data 21  Data 22   Data 2k 

……   ……   …….  

Data m1 Data m 2  Data mk 

………. ………. 

………. 

Câmp k  Câmp 2 Câmp 1   ………. 

Clonare structura

Legaturi BD   Legaturi clona  Clonare le aturi

……   Tabela ……  ……  

Figura 5.8 Secventa clonarii partiale a bazei de date

Page 86: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 86/203

 

 Clonarea partiala a bazei de date este realizata în cadrul celor 2 pasi

si conduce la valorile 17= BD L si 56=CLONA L , iar 30.0=CLONARE  I  ,

 însemnând ca baza de date a fost clonata în proportie de 30%.

5.6 Clonare baza de date cu adaugare de tabele

Procesul de clonare a unei baze de date cu adaugare de tabelepresupune copierea bazei de date initiale într-o noua baza numita clona,pentru ca mai apoi în aceasta clona sa se adauge tabele noi.

Clonarea unei baze de date cu adaugare de tabele noi se utilizeazacând se doreste crearea unei noi baze de date care contine pe lânga datele silegaturile din baza de date initiala si alte tabele, deci clona are o structurasimilara cu baza de date clonata si crearea unei baze de date prin metodeconventionale ar fi costisitoare. Procesul este reprezentat grafic înfigura 5.9. 

C o p i e r e l e g a t u r i v e c h i s id a t e v e c h i s i t a b e l e v e c h i B D 2B D 1

A d a u g a r et a b e l e n o i

Figura 5.9 Procesul de clonare baza de date cu adaugare de tabele noi

Dupa se observa, baza de date BD1 este practic transferata în baza

de date BD2. Aceasta se realizeaza prin copierea atât a datelor si tabelelorbazei BD1, cât si a legaturilor acestei baze. Se obtine astfel baza de dateBD2 care este o clona a bazei BD1.

Page 87: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 87/203

 

La baza de date BD2 se adauga tabelele noi dorite de utilizator. Seobtine astfel cu un cost minim o noua baza de date. Pentru o mai buna

 întelegere se exemplifica pe aplicatia „Contracte”. Modelul conceptual alnoii baze de date arata astfel:

Clienti  

Cod cl ientDen client  

Cod f i sca l N rRegCom  

C ontrac te  

Nr cont rac tData cont ract 

Valoare 

Chirii  

Cod chirieNr cont rac t

Data scadenta  

Valoare chirie  

 

Nr factura

Data factura

F a c t u r i  Încasar iNr document

Data docum

Cod cl ient

Cod cl ientCod chirieNr contract

Nr factura

1 ,n

1,n

1,n

1 ,n

1 ,n

1,n

Suma încasa ta

 

Figura 5.10 Modelul relational al problemei dupa ce s-au adaugatnoi tabele

Dupa cum se observa în figura 5.10 complexitatea bazei de date a

crescut, în timp ce efortul de realizare a acestei noi baze de date a fostminim.

Tabela 1  Tabela 2   Tabela n  ……….. 

Cele n tabele ale bazei de date initiale 

Tabela 1   Tabela 2   Tabela n  … 

Cele n+m tabele ale clonei 

Clonare totala a tabelelor 

Legaturi BD 

Tabela 1  Tabela m  ……….. 

Cele m tabele noi care se adauga la clona 

Tabela n+m  … Tabela n+1  

Adaugare tabele noi 

Legaturi clona 

Se creaza legaturi noi 

Clonare legaturi  

Figura 5.11 Secventa clonarii bazei de date cu adaugare de noi tabele

Page 88: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 88/203

 

 Operatiile aferente pasului C, în care se realizeaza procesul propriu-

zis de clonare cu adaugare de tabele noi a bazei de date sunt descrise înfigura 5.11.

Clonarea cu adaugare de tabele bazei de date este realizata în cadrulcelor 4 pasi si conduce la valorile 61= BD L si 56=CLONA L , iar

08,1=CLONARE  I  , însemnând ca baza de date a fost clonata în proportie de30%. Cei 8% in plus reprezinta o noua legatura adaugata si o noua tabelapentru încasari care are patru câmpuri.

Page 89: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 89/203

 

 

6.1 Conceptul de interfata om - calculator

Interfata om – calculator a devenit o parte integrata a produsului software sila fel de importanta ca si acesta. Aceasta situatie se datoreaza în principaldezvoltarii fara precedent a societatii informationale care se bazeaza peinteractiunea din ce în ce mai complexa dintre om si calculator. Daca acum20 - 30 de ani comunicam cu calculatorul prin intermediul cartelelor atâtpentru introducere de date cât si pentru citirea rezultatelor, astazi barierelesunt de ordin imaginativ.

Datorita resurselor marilor companii producatoare de softwareprecum si a competitiei acerbe dintre acestea, produsele informatice încep afi orientate catre om, iar termeni ca eficacitate, eficienta sau satisfactie autilizatorului sunt din ce în ce mai utilizati în descrierea interfetelor. Acestlucru dovedeste în plus ca interfata nu mai este un simplu element decoratival aplicatiei, ci este o caracteristica definitorie a acestuia, influentând majorcalitatea întregului produs.

Trebuie facuta diferenta dintre interactiune om – calculator si

interfata om – calculator. Astfel primul termen se refera la întelegerea

CLONAREAINTERFETELOR

OM – CALCULATOR 

Page 90: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 90/203

 

dialogului dintre om si calculator precum si a implicatiilor asupra fiecaruia,iar cel de-al doilea termen este o imagine particulara a acestei întelegeri. Deaceea proiectarea interactiunii are ca unelte metode de cercetare, descriere simodelare a dialogului, iar proiectarea interfetei om – calculator se bazeazape crearea unei structuri, a relatiilor dintre elementele interfetei precum si

pe delimitarea ei de restul produsului software.

6.2 Tehnologii pentru dezvoltarea interfetei om – calculator

A dezvolta o interfata om – calculator este echivalent cu a crea într-un mediu specific de programare ca Visual Basic, Visual C++, un suport aldialogului dintre utilizator si calculator. Greutatea nu consta în cunoasterealimbajului de programare ci mai degraba în varietatea cunostintelor necesaredin domenii ca psihologie, lingvistica, sociologie, design industrial,management, antropologie sau tipografie, care sa fie folosite pentru amaximiza avantajele potentiale ale produsului final.

În mare exista doua tehnologii, fiecare cu instrumentele ei, care suntaplicate în constructia interfetelor om – calculator. Cele doua sunt:tehnologia bazata pe software, pe instrumentele puse la dispozitie de diferiteprograme si tehnologia orientata pe utilizator care este o parte din stiintainteractiunii om – calculator si care opereaza mai mult cu concepte. Ele sunt

complementare, software punând la dispozitie mijloacele de a pune înpractica ideile rezultate din interactiunea omului si a masinii de lucru.

Din prima tehnologie, fac parte interfetele de tip grafic numiteferestre sau, windows, care sunt utilizate în mod frecvent în ziua de azi.Acestea pot fi descrise pe scurt prin WIMP, adica windows (ferestre), icons(iconite), menu (meniu) si pointer (cursor). Aceste patru elementefundamentale sunt nelipsite dintr-o interfata grafica, fiind caracterizate pescurt astfel:

• fereastra reprezinta zona rectangulara a spatiului de lucru curent.Accepta input din partea utilizatorului (chiar miscarea mouse îninteriorul sau este o actiune de input de date) si afiseaza subdiferite forme datele de output. Contine o bara de titlu pe care segasesc o serie de butoane de actionare (minimizare, maximizaresi închidere), un meniu, o bara de defilare si o margine prin carefereastra este redimensionata;

• iconita este o imagine de mici dimensiuni ce simbolizeaza un

lucru simplu si familiar din mediul utilizatorului, fiind asociata

Page 91: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 91/203

 

unui element al mediului de lucru. Este utila deoarece apeleaza lamemoria vizuala a utilizatorului care astfel recunoaste actiuneasau elementul;

• cursorul este un element de pozitionare în interiorul ferestrei sicare este utilizat cu preponderenta împreuna cu mouse. Pe lânga

indicarea pozitiei, el are si functii de output transmitândutilizatorului diferite stari ale programului prin intermediulformei sale. De exemplu forma de clepsidra care este asociatastarii curente a unui software în care acesta prelucreaza datele.

• meniul consta în aranjarea tuturor obiectelor sau functiilor dintr-o interfata sub forma unor liste vizibile de nume sau descrieri.Elementele listelor sunt grupate dupa caracteristici asemanatoare,pentru a fi regasite cu usurinta, ele reprezentând acele

componente pe care utilizatorul le foloseste în mod curent.Alte obiecte utilizate în mod curent de aceasta tehnologie sunt:

caseta de dialog, butonul (butonul de comanda, butonul radio, butonul deoptiune), caseta text (text box), caseta lista (list box), caseta combo (combobox) si casuta de verificare (check box).

Alegerea elementelor vizuale, prezentate mai sus, necesareconstruirii unei interfete care sa faciliteze dialogul normal dintre om sicalculator nu reprezinta decât o parte din timpul total alocat proiectului.

Restul, care la nivelul anilor 90 reprezenta 50% din total, consta în aranjareavizuala a informatiei, în amplasarea si dimensionarea obiectelor alese înprima etapa, adica pe scurt în crearea structurii prezentarii. Conceptele luate în considerare sunt:

• structura prezentarii;• proiectarea ecranelor;• complexitatea spatiala;• consistenta prezentarii.

O alta tehnica utilizata de aceasta tehnologie este folosireametaforelor, adica a unor simboluri luate din lumea reala care sunt în modobisnuit, familiar asociate unor actiuni specifice. Exemple de metafore sunt:cosul de reciclare (recycle bin), suprafata de lucru a biroului (desktop),imprimanta. Acestea sunt folosite pentru a reproduce aspectul obiectuluifolosit sau pentru a emula modul cum trebuie folosit obiectul interfetei.

Cea de-a doua tehnologie folosita are ca idee centrala reconsiderareafactorului uman si anume îl integreaza în procesul de construire a unei

interfete om – calculator. Aceasta tehnologie daca este utilizata, o precede

Page 92: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 92/203

 

pe ce prezentata anterior pentru ca, dupa cum s-a mai zis, prin intermediul eigândim interfata, o proiectam, o analizam si apoi o cream fizic.

Astfel, proiectarea interfetei se face în primul rând considerândelementul uman ca element central al interfetei. Acest lucru necesita initial oabordare etnografica care sa scoata în evidenta elemente lingvistice si

culturale particulare ale utilizatorului. A doua etapa este caracterizata decercetarea factorului social încercându-se sa se scoata în evidentaelementele mediului social afectate, efectele asupra cadrului de lucruorganizational si chiar impactul social avut, care uneori are repercusiuniasupra utilizatorului.

Proiectarea în sine este de doua tipuri: iterativa si prototipizare.Primul tip consta în parcurgerea iterativa a unui numar finit de etape care saaiba ca finalitate produsul software. Însa, acest lucru este aproape imposibilde aplicat în cazul proiectelor mari. Datorita numeroaselor elemente careinfluenteaza sistemul este necesara întoarcerea la etape anterioare în vederearezolvarii problemelor aparute în proiectare. Totusi, folosirea curenta aproiectarii iterative are avantajele sale atunci când luam în calcul verificareacalitatii produselor software, verificare care reprezinta în sine o strategieiterativa de proiectare.

Daca în cazul primei metode de proiectare este dificila cooptarea înprocesul decizional a utilizatorului final sau a partilor care interactioneaza într-un mod sau altul cu produsul final, datorita barierelor în comunicatie

(pregatirea tehnica diferita a partilor), cea de-a doua tehnica utilizeazainstrumente care sa schimbe aceasta stare a lucrurilor. Fiecare instrumentare avantajele si dezavantajele sale. O parte din ele sunt: ajuta la întelegereaprodusului, facilitând astfel adaugarea de cunostinte noi; constituie bazapentru proiectarile viitoare prin care acesta este îmbunatatit; este mareconsumatoare de resurse, în special de timp, necesar construirii prototipului,documentarii acestuia. Principalele tipuri de prototipuri utilizate sunt:

• schitele pe hârtie;• schitele electronice;• prototipurile orizontale;• prototipurile verticale.

Din acest punct de vedere se iau în considerare definitiileutilizabilitatii date de standardele ISO 9126 (1991) si ISO 9241-11 (1994).În esenta prin utilizabilitatea unui produs software se întelege calitateaacestuia de a fi utilizabil si în acest sens fiecare din cele doua standardenumesc o serie de caracteristici care confera în final produsului calitatea

descrisa mai sus.

Page 93: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 93/203

 

În standardul ISO 9126 (1991) sunt definite caracteristicile pe caretrebuie sa le aiba o interfata om - calculator:

• functionalitate. Se refera la existenta unui set de instrumente caresa permita satisfacerea directa sau indirecta a cerintelorutilizatorului.

• fiabilitate. Produsul trebuie sa confere factorului uman un gradde siguranta în utilizare, acest lucru fiind dovedit cel mai bineprintr-o utilizare îndelungata.

• utilizabilitate. Prin aceasta caracteristica, standardul se referaimplicit la efortul utilizatorului de a recunoaste, întelegeconcepte noi precum si de a le învata si apoi de le controla într-un mod optim.

• eficienta. Aceasta caracteristica scoate în evidenta raportul dintre

efortul depus de utilizator si acuratetea rezultatelor.• mentenabilitate. Un produs software pentru a fi considerat reusit

trebuie, pe lânga celelalte caracteristici, sa permitaproducatorului sa-l corecteze, sa-l testeze sau sa-l actualizeze cuversiuni mai noi, si toate acestea cu costuri cât mai mici.

• portabilitate. Astazi, este din ce în ce mai necesar ca un produssoftware sa se integreze cât mai bine în diversitatea de medii delucru, software si hardware, care caracterizeaza lumeainformatica de azi. Acest lucru este echivalent cu capacitatea

acestuia de a se transfera usor între aceste medii si totodata de ase adapta la ele.

6.3 Diversitatea interfetei om – calculator

O caracteristica a tehnologiei din ziua de azi o constituiemultitudinea facilitatilor puse la dispozitia programatorului pentru a

construi o interfata om – calculator. Astfel avem la dispozitie componentecare au functionalitati input cât si output, cum ar fi casutele de dialog. Dacamai luam în considerare si faptul ca exista mai multe posibilitati pentru arealiza aceeasi operatie, de exemplu putem selecta un obiect cu ajutorulmouse-ului sau prin combinatii de caractere, si ca o interfata include în eamai multe tehnologii de realizare, tragem concluzia ca este destul deanevoios sa descriem diversitatea interfetelor om – calculator fara a avea uninstrument pe care sa-l folosim.

În acest sens introducem notiunea de stil de interfata întelegând prin

aceasta caracteristicile dominante ale unei interfete, caracteristici ce sunt

Page 94: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 94/203

 

determinate atât de modul grafic cât si de tehnica de interactiune. Asadardiversitatea interfetelor este data de modul în care sunt proiectatecomponentele grafice, atât în ceea ce priveste aspectul grafic, cât si în ceeace priveste modul cum se interactioneaza cu acestea.

Principalele categorii de stiluri care includ atât componente vizuale

cât si notiuni din interactiunea om – calculator diferite, au fost numite:• categoria manipularii directe;• categoria WYSIWYG;• categoria interfetelor iconice.

În prima categorie sunt incluse acele interfete ale caror elementegrafice, atribute sau relatii sunt vizibile operându-se direct cu acestea.Caracteristica definitorie a acestei categorii este data de faptul ca se lucreaza

direct cu obiectele interfetei, vizual, folosind de cele mai multe ori mouse.Desi acest lucru usureaza dialogul dintre utilizator si masina, în cazullucrului mai rapid, se utilizeaza si alte moduri de interactiune cum ar fitastatura sau meniurile. O astfel de interfata caracterizeaza mediul de lucrual unui software de tip chestionar în care utilizatorul bifeaza diferite optiuni.

A doua categorie WYSIWYG, al carei nume este prescurtarea de laWhat You See Is What You Get, este caracterizata de ultima fereastra sauimagine (în cazul software care nu este bazat pe ferestre), adica utilizatorulare pe ecran ultima imagine pe care programul a creat-o. Cel mai elocvent

exemplu al acestei categorii este interfata unui program de instalare când separcurg mai multi pasi, fiecaruia corespunzându-i o fereastra.

Cea de-a treia categorie, poate si cea mai cunoscuta, are ca elementedefinitorii iconitele (icons) care în esenta sunt mici grafice reprezentândobiecte si actiuni din lumea reala. Usurinta lucrului cu acestea consta înasocierile pe care utilizatorul, chiar si cel neexperimentat, le face în modnatural permitându-i astfel sa utilizeze obiecte, actiuni sau concepte fara a finevoie sa-i fie explicate sau descrise. O astfel de interfata este binecunoscutul desktop al sistemului de operare Mic rosoft Windows.

Dupa cum se observa în lumea aplicatiilor software, nu existainterfete care sa apartina exclusiv numai unei singure categorii, eleincluzând în masuri diferite elemente din aproape toate. Însa împartireainterfetelor pe categorii nu este inutila, deoarece ne ajuta sa le descriem maiusor.

În descrierea mai exacta a diversitatii de interfete om – calculatorsunt utilizate si urmatoarele criterii de clasificare:

• limbajul al dialogului utilizator - calculator utilizat;•

structura interfetei;

Page 95: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 95/203

 

• domeniul de utilizare;• portretul utilizatorului;• specificatiile echipamentului utilizat;• nivelul de flexibilitate.Cu toate ca mai pot fi gasite mult mai multe criterii de clasificare,

ceea ce conteaza este faptul ca ori câte am gasi o interfata satisface simultan într-o masura mai mare sau mai mica pe fiecare în parte.

6.4 Orientarea clonarii informatice spre utilizator

Clonarea informatica a interfetelor este un nou concept de reutilizarea produselor software, în cazul de fata interfata. Astfel sunt obtinute entitati

noi care incorporeaza în totalitate sau partial interfata clonata. Din pacate seface confuzie între produs software si modul de reprezentare vizuala ainteractiunii cu utilizatorul, interfata reprezentând o unitate de sinestatatoare a carei realizare urmareste o serie de pasi distincti de cei aiprodusului software. De aceea, procesul de clonare a interfetelor esteindependent de produsul software în care acestea sunt integrate.

Dezvoltarea tehnologiei client – server si în special a Internetului asporit viteza de circulatie a informatiei. Domeniul muzical a valorificat lamaxim oportunitatile oferite datorita aparitiei formatului mp3. Astfel a

aparut posibilitatea publicarii produselor media si a instrumentelor adiacentelor. Unul dintre aceste instrumente îl reprezinta playerul mp3. La început,diferitele produse software din acest domeniu prezentau aceleasicaracteristici tehnice. Diferenta majora dintre acestea, care în final s-adovedit a fi cheia succesului, a reprezentat-o implementarea conceptuluiinteractiunii utilizator – calculator. Implementarea acestui concept a avut labaza strategia orientata utilizator, astfel interfata fiind proiectata dupaprincipiul simplitate în complexitate. Numarul ridicat de functiuni a fostimplementat într-un mod care permite utilizarea produsului independent denivelul cunostintelor utilizatorului.

O data câstigat segmentul major al pietei, producatorul este nevoit saia în calcul trendul ascendent al evolutiei domeniului respectiv. Pentrumentinerea si îmbunatatirea pozitiei actuale, producatorul investeste resursesemnificative în cercetarea si dezvoltarea produsului. Cum în acest domeniuimaginea produsului este asociata cu reprezentarea sa grafica (interfata),aceasta nu sufera modificari radicale. Urmatoarele versiuni au un comun unnucleu de caracteristici definitorii pentru produs, care nu sunt alterate ci sunt

clonate. Astfel prin intermediul procesului de clonare efortul depus este

Page 96: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 96/203

 

minimizat, fiind reorientat catre dezvoltarea caracteristicilor tehnice aleprodusului.

6.5 Tehnici si metode utilizate în clonarea interfetelor

Interfata ca entitate de sine statatoare este împartita în structura sicontinut. Structura este definita de modul cum sunt aranjate si grupatediferitele componente ale interfetei (ferestre, butoane, toolbar, meniurileetc.), iar continutul se refera la particularitatile ce le sunt conferite si care leindividualizeaza în ochii utilizatorului. De obicei aceste particularitaticonstau în informatiile care sunt percepute atunci când privim la unul dinobiecte.

De exemplu, ceea ce deosebeste cele doua butoane aflate pe interfatadin Figura 1 este pozitia lor în structura acesteia si etichetele de pe ele.Astfel, un buton este caracterizat din punct de vedere structural (se afla înstânga) si din punct de vedere al continutului sau (pe el scrie  Informatii

impozite). Un alt caz concret este dat de programele Microsoft Word siMicrosoft Excel din pachetul Microsoft Office, care desi au structurainterfetei aproape identica, continutul acesteia este total diferit.

Figura 6.1 Tip de interfata

Acest mod de a privi si descrie o interfata se datoreaza celor douaconcepte fundamentale ale procesului de realizare a dialogului om - masina,cel dependent de tehnologie si cel al interactiunii om – calculator. Procesulde clonare trebuie deci, sa tina seama de cele doua parti distincte ale uneiinterfete si sa le trateze ca atare. Mai mult chiar, procesul de clonare estecaracterizat în functie de partea clonata.

Clonare de structura. Clonarea de structura aplicata unei interfete

are ca rezultat o alta interfata cu structura produsului initial. Sa luam de

exemplu interfata simpla din figura 6.1 a unui produs software de informare

Page 97: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 97/203

 

 publica care consta în doua butoane numite : Informatii impozite si

Informatii scutiri impozite.

Figura 6.2 Structura interfetei din Figura 6.1

Crearea unui nou produs software care de data aceasta sa prezintecopiilor din clasele pregatitoare doua operatii matematice elementarenecesita o interfata asemanatoare primului produs, care sa nu implice costurinejustificate. Solutia optima consta în clonarea structurii interfetei din figura6.1 si adaugarea continutului necesar rezultatul dorit, figura 6.3.

Figura 6.3 Interfata noului program

Page 98: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 98/203

 

 

Setul 1 dedate inputsi output

Setul 2 dedate inputsi output

Setul 3 dedate input siou tpu t

Structura componentei 1 ainterfetei

Setul 1 dedate input si

output

Setul 3 dedate input si

output

Setul 2 dedate inputsi output

 

Structuracomponentei n a

interfetei

Structura componentei 1 aclonei

Structuracomponentei  n a

clonei

Interfata initiala

Clona

obtinuta

Clonare de

structura

Figura 6.4 Clonare de structura a interfetei

Asigurarea continuitatii procesului de clonare se realizeaza prin:• utilizarea acelorasi cerinte cheie pentru comenzi;• mentinerea pozitiei ;• realizarea unui produs nou ca extensie a unui produs existent

care îl include pe acesta;

Produsnou

Produs

vechi

Figura 6.5 Caracteristica de continuitate a procesului de clonare

Page 99: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 99/203

 

6.6 Efectele clonarii unor interfetei

Dinamica societatii actuale impune producatorilor de softwareimplementarea strategiei orientate utilizator. Dupa cum se cunoaste piata ITeste dominata de producatorii de echipamente care concura pentru obtinerea

suprematiei pe piata respectiva. Aceste echipamente, care în acceptiuneautilizatorilor sunt instrumente de lucru, intra în contact direct cu utilizatorulprin intermediul interfetei. Indiferent de tipul echipamentului, cum ar ficomputerul personal, telefonul mobil, PDA, pocket PC, table PC, laptop,simplitatea utilizarii respectivului echipament este cheia viitorului succes.

În paragraful "Orientarea catre utilizator" s-a prezentat exemplulreferitor la player mp3. Acest exemplu subliniaza importanta alocariiresurselor catre departamente specializate în analiza interactiunii omului cucalculatorul. Firma respectiva si-a orientat toate resursele spre utilizator,realizând acest lucru prin metoda cea mai putin costisitoare, si anume,realizarea unei interfete atractive. Totusi realizarea unei interfete necesita unanumit cost. Sa presupunem ca piata a fost câstigata de respectiva firma.

În cazul de fata intervine urmatoarea etapa si anume pastrarea sidezvoltarea segmentului actual din piata respectiva. Astfel producatorul estenevoit sa aduca îmbunatatiri produsului prin lansarea de noi versiuni sau noiproduse pe piata.

Asadar, producatorul are doua variante pentru reprezentarea vizuala

a produsului:• pastrarea unor caracteristici semnificative din cadrul interfetei

vechiului produs;• realizarea unei noi reprezentari vizuale.Asa cum s-a afirmat mai sus, realizarea unei interfete necesita

anumite costuri. Aici intervine procesul informatic de clonare a interfetelor.Un produs, indiferent de calitatea lui intrinseca, este asociat de utilizatoriprin intermediul interfetei. De aceea, noile versiuni ale unui produs cucaracteristice tehnice remarcabile va pastra vechea interfata la care se

adauga noile optiuni. Efectul cel mai semnificativ al clonarii interfetelor îlreprezinta minimizarea costurilor. Astfel cu ajutorul procesului de clonareresursele alocate cercetarii domeniului de interactiune, realizarea unuiprototip, testarea si evaluarea sunt redistribuite catre alte locatii.

Deci, cu ajutorul procesului de clonare se obtin noi interfete careprezinta caracteristicile vechiului produs.

Page 100: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 100/203

 

  S t r u c t u r a c o m p o n e n t e i 1

a i n t e r f e t e i

S t r u c t u r a

c o m p o n e n t e i n a

i n t e r f e t e i

S e t u l 2 d ed a t e i n p u t s i

o u t p u t

S e t u l 3 d ed a t e i n p u t s i

o u t p u t

S e t u l 1 d ed a t e i n p u t s i

o u t p u t

S e t u l 1d e d a t ei n p u t s io u t p u t

S e t u l 2d e d a t ei n p u t s io u t p u t

S e t u l 3d e d a t ei n p u t s io u t p u t

S t r u c t u r a c o m p o n e n t e i 1

a i n t e r f e t e i

S t r u c t u r a

c o m p o n e n t e i n a

i n t e r f e t e i

 

S e t u l 2 d ed a t e i n p u t s i

o u t p u t

S e t u l 3 d ed a t e i n p u t s i

o u t p u t

S e t u l 1 d ed a t e i n p u t s i

o u t p u t

S e t u l 1d e d a t ei n p u t s io u t p u t

S e t u l 2d e d a t ei n p u t s io u t p u t

S e t u l 3d e d a t ei n p u t s io u t p u t

 

I n t e r f a t ai n i t i a l a C l o n ao b t i n u t a

C l o n a r e

t o t a l a

Figura 6.6 Clonarea totala a interfetei

Pâna la un punct clonarea interfetelor conduce la crestereaproductivitatii în procesul de dezvoltare a aplicatiilor informatice complexe.Daca se produc salturi calitative, trecerea la o generatie la alta de interfete

vizeaza adaptarea la cerintele utilizatorilor. Clonarea interfetelor în cadrulaceluiasi producator de software asigura înzestrarea produselor programfinale cu caracteristica de continuitate. Utilizând aceleasi simboluri, aceleasicuvinte cheie si aceleasi amplasamente ale butoanelor, trecerea de la unprodus program la altul este însotita de un efort redus din parteautilizatorului si de acceptarea de catre utilizator a produsului program nou,fara introducerea de noi restrictii ca în cazul în care utilizatorul trebuie sa sealinieze la o noua tipologie de interfata.

Page 101: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 101/203

 

 

 7 

7.1 Protectia juridica a programelor de calculatorsi a bazelor de date

Produsele software si bazele de date întrunesc cerintele unei creatiiintelectuale ce constituie obiect al dreptului de autor pentru ca:

• sunt rezultatul consumului de munca vie, în special sub formaefortului intelectual depus de analisti, programatori, designeri,testeri etc.

• folosind resurse de baza (limbaje, instrumente, echipamente,metodologii) realizeaza structuri software si de baze de date caresunt susceptibile de a fi exprimate într-o forma concretaperceptibila simturilor umane si de a fi fixate pe un suportmaterial, electronic.

• noile structuri obtinute se diferentiaza de alte structuri existente, în sensul ca poarta amprenta personalitatii autorului,„caracterizata de un minim de creativitate si un aport de noutate”[ROSV01], ceea ce le confera caracter de originalitate.

ASPECTE JURIDICEALE CLONARII

INFORMATICE 

Page 102: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 102/203

 

• produsele software si bazele de date sunt susceptibile de a fiaduse la cunostinta publicului.

• procesele generatoare de software si baze de date presupunfluxuri informationale specifice comunicarii între membriiechipelor complexe de informaticieni, care realizeaza o operaunitara, a carei valoare nu este data de suportul material pe careprogramul este stocat si nici de munca depusa pentru realizareaacestor suporturi.

Relatiile sociale create în legatura cu produsele software si bazele dedate, ca rezultate ale muncii creative individuale sau colective depuse depersoane fizice sau în cadrul unor procese dezvoltate de persoane juridice,sunt reglementate de normele juridice din domeniul proprietatii intelectuale,

mai exact din domeniul dreptului de autor.În paralel cu notiunea de drept de autor se mai foloseste si notiuneade copyright , caracteristica sistemului de drept anglo-saxon. Desi aparent nuexista nici o diferenta între continutul celor doua notiuni, trebuie subliniat catermenul copyright  se refera mai ales la dreptul patrimonial, principalaprerogativa constând în producerea de copii ale unei opere numai cuconsimtamântul titularului dreptului de autor. Notiunea drept de autor  vizeaza atât drepturile nepatrimoniale, referindu-se la persoana care estecreatorul operei, cât si aspectele patrimoniale.

Sistemul dreptului de autor a fost creat pe baza conceptiei filosoficeconform careia opera, ca obiect al protectiei, este o reflectare a personalitatiiautorului. Ideea este pe deplin aplicabila în cazul operelor literare siartistice, unde personalitatea autorului se exprima prin stilul operei. În cazulprogramelor pentru calculator si al bazelor de date, care sunt opere tehnice,complexe, în care se folosesc limbaje si notiuni de specialitate, si care suntrealizate, de regula, de colective de programatori, creativitatea este mailimitata, iar personalitatea autorului se reflecta mai putin. Totusi, în prezent,

 în majoritatea tarilor, programele pentru calculator sunt protejate prinsistemul dreptului de autor.

Studiile si cercetarile interdisciplinare ale informaticienilor si juristilor au contribuit la definirea unui cadru legislativ inovator, care înacelasi timp stimuleaza dezvoltarea informaticii si protejeaza peproducatorii si dezvoltatorii de software si baze de date împotriva clonariineautorizate.

Protectia juridica a programelor pentru calculator în SUA  esterezultatul productiei si utilizarii deosebit de intense începând cu deceniulsapte. Astfel, în 1976 a fost adoptata Legea nr.95-553 (intrata în vigoare la 1

Page 103: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 103/203

 

ianuarie 1978) pentru modificarea legii copyright-ului din 1909. Legea din1976 consacra legislativ programele de calculator ca opere de creatieintelectuala, protejabile în cadrul drepturilor de autor. Prin modificarea din12 decembrie 1980, se defineste notiunea de program pentru calculator ca„un ansamblu de instructiuni destinate a fi utilizate direct sau indirect într-

un calculator pentru a obtine anumite rezultate”. În SUA, legea copyright-ului apartine mai mult dreptului afacerilor decât dreptului de creatieintelectuala [ROSV01], punându-se astfel accent pe aspectele patrimoniale.

În 1988 a fost adoptata în SUA o lege de punere în aplicare aConventiei de la Berna  pentru protectia operelor literare si artistice, din 9septembrie 1886. România a aderat la aceasta Conventie în forma revizuitaprin Actul de la Paris la 24 iulie 1971 si modificata la 28 septembrie 1979,prin Legea nr. 77 din 8 aprilie 1998.

Protectia juridica a programelor pentru calculator la nivelcomunitar   este reglementata de Directiva Consiliului ComunitatilorEuropene nr. 91/250/C.E.E. din 14 mai 1991 care recomanda masuri pentruuniformizarea legislatiei în domeniu si protejarea programelor de calculator„ca opere literare în întelesul Conventiei de la Berna”.

România a aderat la Conventia de la Berna, în forma revizuita prinActul de la Paris la 24 iulie 1971 si modificata la 28 septembrie 1979, prinLegea nr. 77 din 8 aprilie 1998. Scopul acestui tratat international a fost,asa cum reiese din preambul, de a proteja într-un mod cât mai eficient si maiuniform cu putinta drepturile autorilor asupra operelor lor literare siartistice. În art.2 alin.3 din Conventie, este enuntat principiul conform caruiaoperele derivate se bucura de aceeasi protectie ca si operele originale.

Aceasta directiva comunitara a stat la baza legii privind dreptul deautor în România, în privinta programelor pentru calculator, fiind cuprinsaaproape în totalitate în legea româna.

De asemenea prin Directiva nr.969/11.03.1996, se recomandaasigurarea protectiei bazelor de date ca obiect al dreptului de autor.

Protectia juridica a programelor pentru calculator în România arela baza o serie de acte normative adoptate în ultimul deceniu.Principalul act normativ în acest domeniu este  Legea nr. 8 din 14

martie 1996 privind dreptul de autor si drepturile conexe  [LDAD96],publicata în Monitorul Oficial nr. 60 din 26 martie 1996, care face referireexplicita la domeniul informaticii, considerând opere protejate programelede calculator si bazele de date. În Partea a II-a, Dispozitii speciale, Cap. IX(art. 72 - 81) sunt cuprinse norme speciale aplicabile programelor decalculator.

Page 104: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 104/203

 

Obiectul dreptului de autor: potrivit art. 7 lit. a), programele decalculator constituie obiect al dreptului de autor, fiind considerate opereoriginale de creatie intelectuala, oricare ar fi modalitatea de creatie, modulsau forma concreta de exprimare si independent de valoarea si destinatia lor.Art. 72 din lege stabileste continutul notiunii de program pentru calculator

protejat, care include: „orice expresie a unui program, programele deaplicatie si sistemele de operare, exprimate în orice fel de limbaj, fie în cod-

sursa sau cod-obiect, materialul de conceptie pregatitor, precum si

manualele”. Alin. 2 din acelasi articol stabileste si limitele protectiei prindreptul de autor: „ideile, procedeele, metodele de functionare, conceptele

matematice si principiile care stau la baza oricarui element dintr-un

 program pentru calculator, inclusiv acelea care stau la baza interfetelor 

sale, nu sunt protejate”.

Dreptul de autor protejeaza numai forma de exprimare a ideilor, nusi ideile [OMPI01]. În acest sens, clonarea unei opere consta în folosireaformei în care opera originala a fost exprimata.

„Bazele de date reprezinta o multime centralizata de informatii

organizate în scopul prelucrarii si utilizarii de catre beneficiari” [ROSV01]. Potrivit art. 8 lit. b), bazele de date sunt considerate operederivate, create plecând de la una sau mai multe opere preexistente, fiindprotejate, cu conditia de a nu prejudicia drepturile autorilor operei originale.În acelasi sens, art. 16 prevede ca autorul unei opere are dreptul patrimonialexclusiv de a autoriza traducerea, adaptarea, precum si orice altatransformare a operei sale prin care se obtine o opera derivata.

Subiectul dreptului de autor: conform regulii prevazute de art. 3,autorul operei este persoana care a creat opera. Art. 4 instituie o prezumtierelativa, pâna la proba contrara, în privinta calitatii de autor, relativ lapersoana sub numele careia opera a fost adusa pentru prima data lacunostinta publica. Desi nu este o conditie pentru a fi protejata, aducereaoperei la cunostinta publica este importanta pentru recunoasterea autorului.

În art. 74 este prevazuta norma speciala, supletiva, aplicabila în lipsaunei conventii contrare, conform careia „drepturile patrimoniale de autorasupra programelor pentru calculator, create de unul sau de mai multiangajati în exercitarea atributiilor de serviciu sau dupa instructiunile celuicare angajeaza, apartin acestuia din urma”.

Continutul dreptului de autor: autorul unei opere beneficiaza dedoua categorii de drepturi: morale si patrimoniale. Autorul unui programpentru calculator are urmatoarele drepturi morale:

v dreptul de a decide daca, în ce mod si când va fi adusa opera lacunostinta publica;

v dreptul de a pretinde recunoasterea calitatii de autor al operei;

Page 105: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 105/203

 

v dreptul de a decide sub ce nume va fi adusa opera la cunostintapublica;

v dreptul de a pretinde respectarea integritatii operei si de a seopune oricarei modificari, precum si oricarei atingeri aduseoperei, daca prejudiciaza onoarea sau reputatia sa.

Aceste drepturi nu pot face obiectul vreunei renuntari sau înstrainari.Conform art. 12, autorul unei opere are dreptul patrimonial exclusiv

de a decide daca, în ce mod si când va fi utilizata sau exploatata opera sa,inclusiv de a consimti la utilizarea operei de catre altii. Utilizarea sauexploatarea unui program pentru calculator da nastere, conform art. 73, ladreptul patrimonial exclusiv al autorului de a realiza si de a autoriza:

Ø reproducerea permanenta sau temporara a unui program, integral

sau partial, prin orice mijloc si sub orice forma, inclusiv în cazul în care reproducerea este determinata de încarcarea, afisarea,transmiterea sau stocarea programului pe calculator;

Ø traducerea, adaptarea, aranjarea si orice alte transformari aduseunui program pentru calculator, precum si reproducerearezultatului acestor operatiuni, fara a prejudicia drepturilepersoanei care transforma programul pentru calculator;

Ø difuzarea originalului sau a copiilor unui program pentrucalculator sub orice forma, inclusiv prin închiriere.

De asemenea, potrivit art. 13 lit. m), autorul are dreptul patrimonialexclusiv de a autoriza accesul public la bazele de date pe calculator, în cazul

 în care aceste baze de date contin sau constituie opere protejate.În art. 14 sunt definite notiunile de reproducere si difuzare, care sunt

folosite de legiuitor pentru a exprima si clonarea informatica. Astfel, prinreproducere se întelege „realizarea uneia ori a mai multor copii ale unei

opere, în orice forma materiala, inclusiv realizarea oricarei înregistrari

sonore sau vizuale a unei opere, precum si stocarea permanenta oritemporara a acesteia cu mijloace electronice”. Prin difuzare se întelege„distribuirea catre public a originalului ori a copiilor unei opere, prin

vânzare, închiriere, împrumut sau prin orice alt mod de transmitere cu titlu

oneros sau cu titlu gratuit”. Durata protectiei dreptului de autor: momentul nasterii dreptului de

autor asupra unui program de calculator este cel al crearii acestuia. Dininterpretarea sistematica a art. 24 (1) si art. 1 (2) rezulta ca, din momentulcrearii programului, acesta este protejat indiferent de modul sau forma deexprimare si de aducerea la cunostinta publica.

Page 106: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 106/203

 

Conform art. 30, drepturile patrimoniale asupra programelor pentrucalculator dureaza tot timpul vietii autorului, iar dupa moartea acestuia setransmit prin mostenire, potrivit legislatiei civile, pe o perioada de 50 de ani.Dupa expirarea acestui termen, opera intra în domeniul public, putând fiutilizata de oricine, fara a mai fi necesara autorizarea titularului dreptului.

Experienta arata ca în domeniul software ritmul uzurii morale este destul deaccentuat si situatia utilizarii libere dupa 50 de ani este extrem de rar

 întâlnita în practica.Cesiunea drepturilor de autor: transmisiunea drepturilor

patrimoniale de autor prin contract este denumita cesiune. Conform art. 39,aceasta este exclusiva, când însusi titularul dreptului de autor nu mai poateutiliza opera în modalitatile, pe termenul si pentru teritoriul convenite cucesionarul si nici nu mai poate transmite dreptul respectiv unei alte

persoane. Caracterul exclusiv al cesiunii trebuie sa fie expres prevazut încontract. Cesiunea este neexclusiva când titularul dreptului de autor poateutiliza el însusi opera si poate transmite dreptul neexclusiv si altor persoane.Cesionarul neexclusiv nu poate ceda dreptul sau unei alte persoane decât cuconsimtamântul expres al cedentului. Cesiunea unuia dintre drepturilepatrimoniale ale titularului dreptului de autor nu are nici un efect asupracelorlalte drepturi ale sale, daca nu s-a convenit altfel. Contractul de cesiunea drepturilor patrimoniale trebuie încheiat numai în forma scrisa. Aceastacerinta este impusa de lege ad probationem, pentru a se dovedi existenta sicontinutul contractului.

Conditiile speciale, intrinseci si de validitate, care trebuie sa facaparte din structura contractului de cesiune a drepturilor patrimoniale deautor sunt prevazute de art.41 si sunt urmatoarele: drepturile patrimonialetransmise, modalitatile de exploatare, durata si întinderea cesiunii, precum siremuneratia titularului dreptului de autor. Lipsa oricareia dintre acesteclauze este sanctionata cu nulitatea relativa, orice parte interesata avândposibilitatea sa ceara si sa obtina anularea contractului de cesiune.

În cazul programelor de calculator, cesiunea este neexclusiva, art.75.Norma din acest text legal este supletiva, partile, prin conventia dintre ele,având posibilitatea sa stabileasca în mod expres alte clauze.

În art. 63 este reglementat contractul de închiriere a unei opere,aplicabil inclusiv programelor pentru calculator, prin care autorul seangajeaza sa permita folosinta, pe timp determinat, cel putin a unuiexemplar al operei sale, în original sau în copie. Cesionarul dreptului de

 închiriere se angajeaza sa plateasca o remuneratie autorului pe perioada câtfoloseste acel exemplar al operei. Contractul de închiriere a unei opere estesupus dispozitiilor de drept comun privind contractul de locatiune.

Page 107: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 107/203

 

Autorul pastreaza dreptul de autor asupra operei închiriate, cuexceptia dreptului de difuzare, daca nu s-a convenit altfel. Daca autorul numai pastreaza dreptul de difuzare a programului de calculator, rezulta ca nicinu îl mai poate transmite altei persoane. Deci, în privinta dreptului dedifuzare, contractul de închiriere a unei opere este o cesiune exclusiva

limitata. Pentru celelalte drepturi patrimoniale, contractul de închiriere esteo cesiune neexclusiva.

Pentru transmiterea prin contract a drepturilor patrimoniale de autor,legea cadru [LDAD96] foloseste notiunea de licenta izolat, în art. 130,precizând ca organismele de gestiune colectiva au obligatia de a acordautilizatorilor, prin contract, în schimbul unei remuneratii, autorizatiineexclusive de utilizare a operelor sau prestatiilor titularilor drepturilor, subforma de licenta neexclusiva, fara a arata expres întelesul aceste notiuni.

O.G. nr. 124/2000, aprobata si modificata prin Legea nr. 213/2002,defineste în art. 2 lit. a), licenta programului pentru calculator  ca fiindacordul scris al titularului dreptului de autor privind cesiunea unor drepturicatre utilizatorul programului si care însoteste programul.

În consecinta, exista doua acceptiuni ale notiunii de licenta: înprimul rând de contract prin care se transmit drepturi patrimoniale de autor,iar în al doilea rând, de autorizare a autorului pentru ca o persoana sautilizeze sau sa exploateze opera sa.

Pentru o buna întelegere a semnificatiei notiunii, aceasta trebuieanalizata în comparatie cu întelesul avut în domeniul proprietatii industriale(brevete, marci). Astfel, transmiterea prin contract a drepturilor deproprietate industriala se face sub forma de cesiune sau licenta. Cesiuneaeste actul juridic prin care se transmite dreptul de proprietate industriala, siimplicit dreptul de exploatare exclusiva asupra brevetului sau marcii de latitular catre o alta persoana. Spre deosebire, licenta este actul juridic princare se transmite, în întregime sau în anumite limite, dreptul de folosintaasupra obiectului protectiei, de la titular catre o alta persoana.

În domeniul dreptului de autor, transmiterea drepturilor patrimonialeeste denumita generic – cesiune. Dupa cum am aratat mai sus, cesiunea esteexclusiva – echivalentul unei cesiuni în domeniul proprietatii industriale,sau neexclusiva – echivalentul unei licente. Normele care reglementeazacesiunea, art. 39 si urmatoarele [LDAD96], sunt dispozitii comune,generale. În mod special, este reglementat contractul de închiriere a uneiopere, care reprezinta o cesiune exclusiva limitata în privinta dreptului dedifuzare, si o cesiune neexclusiva, pentru celelalte drepturi patrimoniale.Contractul de licenta în domeniul dreptului de autor este o varianta de speciea cesiunii neexclusive. Un astfel de contract de licenta este contractul numitde lege în art. 75 – de utilizare a unui program pentru calculator.

Page 108: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 108/203

 

Prin contractul de licenta se stabilesc si conditiile deutilizare/exploatare a operei protejate, iar persoana care primeste licenta esteobligata sa utilizeze opera numai în conditiile si limitele prevazute încontract.

 Dispozitii speciale aplicabile protectiei programelor pentru

calculator: titlul I, Cap. VI din lege [LDAD96] – privind limitele exercitariidreptului de autor – reglementeaza în art. 33-34, utilizarile permise ale uneiopere, fara a mai fi necesar consimtamântul autorului, exceptii ce suntcunoscute în literatura de specialitate sub denumirea fair use.

Conform art. 81 [LDAD96], dispozitiile Cap. VI din Titlul I al legii,privind limitele exercitarii dreptului de autor, nu se aplica programelorpentru calculator. Rezulta deci ca nici art. 34 privind dreptul la copiaprivata, adica posibilitatea reproducerii unei opere fara consimtamântul

autorului, pentru uzul personal si pentru cercul normal al unei familii, nu seaplica în cazul programelor pentru calculator. Este însa permis, potrivit art.77, ca fara autorizarea autorului, utilizatorul autorizat al unui program safaca o copie de arhiva sau de siguranta, în masura în care este necesarapentru utilizarea programului.

 Raspunderea juridica pentru încalcarea drepturilor de autor în

domeniul programelor pentru calculator: încalcarea drepturilor recunoscutesi garantate prin prezenta lege atrage raspunderea civila, contraventionalasau penala.  Raspunderea civila este consecinta exercitarii de catre titulariidrepturilor încalcate a unei actiuni civile la instantele judecatoresti, prin carese solicita recunoasterea drepturilor lor, constatarea încalcarii acestora sirepararea prejudiciului cauzat prin fapta ilicita. Raspunderea civila estedelictuala, întemeiata pe dispozitiile art. 998-999 Cod civil, saucontractuala, întemeiata pe contractul de cesiune încheiat între titularuldreptului de autor si utilizatorii de software. De asemenea, conform art. 139[LDAD96], titularii drepturilor încalcate pot cere instantei de judecata sadispuna aplicarea oricareia dintre urmatoarele masuri:

§ remiterea, pentru acoperirea prejudiciilor suferite, a încasarilorrealizate prin actul ilicit sau, daca prejudiciile nu pot fi reparate înacest mod, remiterea bunurilor rezultate din fapta ilicita, învederea valorificarii acestora, pâna la acoperirea integrala aprejudiciilor cauzate;

§ distrugerea echipamentelor si a mijloacelor aflate în proprietateafaptuitorului, a caror destinatie unica sau principala a fost aceeade producere a actului ilicit;

§ scoaterea din circuitul comercial prin confiscarea si distrugereacòpiilor efectuate ilegal;

Page 109: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 109/203

 

§ publicarea în mijloacele de comunicare în masa a hotarâriiinstantei de judecata, pe cheltuiala celui care a savârsit fapta.

 Raspunderea penala intervine ca urmare a încalcarii normei juridicepenale, a savârsirii unei infractiuni. Astfel, potrivit art. 140, constituie

infractiune si se pedepseste cu închisoare de la o luna la 2 ani sau cu amendade la 200.000 lei la 3 milioane lei, daca nu constituie o infractiune maigrava, fapta persoanei care, fara a avea autorizarea sau, dupa caz,consimtamântul titularului drepturilor recunoscute prin lege: 

• aduce o opera la cunostinta publica (lit. a);• permite accesul public la bazele de date pe calculator, care contin

sau constituie opere protejate (lit. c);• traduce, publica în culegeri, adapteaza sau transforma o opera,

pentru a obtine o opera derivata (lit. d).

Potrivit art. 141, constituie infractiune si se pedepseste cu închisoarede la 3 luni la 5 ani sau cu amenda de la 500.000 lei la 10 milioane lei faptapersoanei care îsi însuseste, fara drept, calitatea de autor al unei opere saufapta persoanei care aduce la cunostinta publica o opera sub un alt numedecât acela decis de autor, daca fapta nu constituie o infractiune mai grava.

Potrivit art. 142, constituie infractiune si se pedepseste cu închisoarede la 3 luni la 3 ani sau cu amenda de la 700.000 lei la 7 milioane lei, dacanu constituie o infractiune mai grava, fapta persoanei care, fara a aveaconsimtamântul titularului drepturilor recunoscute prin lege:

Ø reproduce integral sau partial o opera (lit. a);Ø difuzeaza o opera (lit. b);Ø importa, în vederea comercializarii pe teritoriul României, còpii

de pe o opera (lit.c).

Potrivit art. 143, constituie infractiune si se pedepseste cu închisoare

de la 3 luni la 2 ani sau cu amenda de la 500.000 lei la 5 milioane lei, dacanu constituie o infractiune mai grava, fapta persoanei care pune la dispozitiapublicului prin vânzare sau prin orice alt mod de transmitere cu titlu onerosori cu titlu gratuit mijloace tehnice destinate stergerii neautorizate sauneutralizarii dispozitivelor tehnice care protejeaza programul pentrucalculator (lit. a).

În cazul infractiunilor prevazute la art. 140, 141 si 142 lit. a), c),actiunea penala se pune în miscare la plângerea prealabila a persoanei

vatamate în sensul prezentei legi. Cel care savârseste o infractiune dintre

Page 110: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 110/203

 

cele enumerate anterior nu poate fi tras la raspundere penala decât dacapersoana vatamata îsi manifesta vointa în acest sens.

Potrivit legii, transformarea unui program pentru calculatorreprezinta o opera derivata. Având în vedere specificul obiectului protectiei

 în domeniul informaticii, o transformare superficiala a unui program, fisier

nu este totdeauna o opera derivata în întelesul legii, adica o opera deperfectionare, corectare a erorilor, de dezvoltare a programului originar.Astfel, transformari de genul: clonarea sub forma conversiei extensieifisierului, inclusiv prin compresia de date, clonarea prin translatareafisierelor sursa dintr-un limbaj în altul sau clonarea structurii interfetelor,sunt efectuate de cel care cloneaza, uneori, pentru a ascunde, sub aparentaunei transformari, o simpla copiere.

Interesul practic al discutiei este ca în functie de calificarea activitatii

de transformare a programului pentru calculator, ca opera derivata sau careproducere, se face încadrarea juridica a unei încalcari a dreptului de autor, în infractiunea prevazuta de art. 140 lit. d), sau în cea prevazuta de art. 142lit. a) din lege.

Pentru a solutiona aceasta problema trebuie avuta în vedere intentiacelui ce cloneaza, de a ascunde o simpla copiere sau de a realiza o operaderivata. Daca se dovedeste intentia faptuitorului de a ascunde o simplacopiere, prin clonare nu s-a obtinut o opera derivata, întrucât nu estecaracterizata prin originalitate si creativitate. În acest caz, clonarea a

 îmbracat forma reproducerii si este sanctionata ca atare potrivit art. 142 lit.a). Se observa astfel, ca reproducerea se realizeaza, ca exceptie, si prin alteforme de clonare decât copierea propriu-zisa.

 Raspunderea contraventionala potrivit O.G. 124/2000 aprobata si

modificata prin Legea 213/2002 [ORGV00], pentru completarea cadrului juridic privind dreptul de autor si drepturile conexe, prin adoptarea demasuri pentru combaterea pirateriei în domeniile audio si video, precum si aprogramelor pentru calculator, este reglementata în art. 8.

În art. 1 este aratat scopul actului normativ: stabilirea unor masuri învederea combaterii producerii, distribuirii sau comercializarii neautorizate aprogramelor pentru calculator. Art. 2 lit. c) si f) defineste termenii decomercializare sau închiriere neautorizata, respectiv producere sireproducere neautorizata, referindu-se la încalcarea obligatiilor prevazute deprezenta ordonanta. Spre deosebire de legea cadru privind dreptul de autornr. 8/1996, conform cu care prin comercializare, închiriere sau reproducereneautorizata se întelege efectuarea acestor activitati fara consimtamântulautorului operei, în ordonanta [ORGV00] notiunea neautorizat  are un

 înteles diferit, iar acest fapt trebuie avut în vedere pentru interpretarea siaplicarea corecta a dispozitiilor privind raspunderea contraventionala.

Page 111: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 111/203

 

 Potrivit art. 8, constituie contraventii urmatoarele fapte, daca nu sunt

savârsite în astfel de conditii încât sa fie considerate, potrivit legii penale,infractiuni, si se sanctioneaza dupa cum urmeaza:

v detinerea de programe de calculator, coperte de programe de

calculator, contrafacute sau pirat, în spatiile comerciale, înanexele acestora si în mijloacele de transport utilizate latransportul sau depozitarea produselor susmentionate, cu amendade la 20.000.000 lei la 100.000.000 lei si confiscareaprogramelor pentru calculator si a copertelor, lit. a;

v distribuirea, comercializarea sau închiriarea neautorizata aprogramelor pentru calculator cu amenda de la 25.000.000 la250.000.000 lei, lit. b;

v detinerea de programe de calculator sau coperte, fara acte justificative, ori de aparatura ce ar permite realizareaprogramelor de calculator sau a copertelor, în scopul produceriisau reproducerii neautorizate a acestora, cu amenda de la30.000.000 la 150.000.000 lei si confiscarea suporturilor,materialelor si a aparatelor, lit. c;

v neîndeplinirea obligatiilor prevazute la art.3 alin.1, cu amenda dela 20.000.000 la 40.000.000 lei, lit. f. Aceste obligatii se refera lacomunicarea catre Oficiul Român pentru Drepturile de Autor aurmatoarelor: - acordul titularului dreptului de autor pentruactivitatile de distribuire, comercializare sau închiriere, si -informatii referitoare la modul de acordare a licentei si modelullicentei acordate utilizatorilor de programe pentru calculator.

Suporturile, materialele sau copertele confiscate potrivit art. 8 alin.1-3 vor fi distruse, dupa data expirarii termenului legal de atacare aprocesului-verbal de constatare a contraventiei ori dupa data ramânerii

definitive a hotarârii judecatoresti prin care s-a respins plângerea împotrivaprocesului-verbal de constatare a contraventiei, dupa caz.

Page 112: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 112/203

 

7.2 Cai de crestere a eficientei în combaterea

clonarii informatice neautorizate

Amploarea realizarii neutorizate a clonelor informatice are ca efectdirect stagnarea sau diminuarea productiei de software original. Progresul

tehnicii a condus la crearea unor mijloace cu ajutorul carora se pot producecu usurinta còpii ilegale ale unei opere originale. Cel ce cloneaza nu suportacosturile unei investitii în producerea operei originale, astfel încât cloneleneautorizate sunt vândute la preturi mici, subminând posibilitatea autoruluisi a investitorului original de a obtine recompensa morala si economica justapentru munca si investitia lor [OMPI01].

Atât în literatura de specialitate cât si în legislatie, se folosestenotiunea de  piraterie, ca fiind copierea neautorizata a operei protejate prin

drept de autor, în scopuri comerciale, ca si comercializarea neautorizata decòpii de pe o opera [OMPI01]. Acest termen este folosit de legiuitor în O.G.nr. 124/2000, aprobata si modificata prin Legea nr. 213/2002, prin care sestabilesc masuri pentru combaterea pirateriei în domeniul audio si video,precum si a programelor pentru calculator. Se observa ca notiunea depiraterie este folosita într-un înteles larg, acoperind si alte domenii deprotectie prin dreptul de autor decât cel al programelor pentru calculator. Deasemenea, Legea nr. 202/2000, privind unele masuri pentru asigurarearespectarii drepturilor de proprietate intelectuala în cadrul operatiunilor devamuire, în art. 1, pct. 14, defineste notiunea de marfuri pirat : toate copiilefabricate fara consimtamântul titularului dreptului sau al persoanei legalautorizate de acesta în tara de producere si care sunt executate, direct sauindirect, dupa un produs purtator al dreptului de autor, daca realizarea deastfel de copii constituie o încalcare a dreptului de proprietate intelectualarespectiv, în baza legislatiei tarii de import.

Având în vedere ca fenomenul clonarii neautorizate prejudiciazainteresele economice ale titularilor drepturilor de autor, dar este si în

detrimentul societatii, pentru ca descurajeaza interesul creatorilor de aproduce opere de succes si pentru ca deterioreaza renumele international alstatului ce permite dezvoltarea acestui fenomen, se impune luarea unormasuri care sa-l limiteze:

Ø se impune cunoasterea mediului românesc pentru a identificamotivatia orientarii spre utilizarea neautorizata a programelorpentru calculator si bazelor de date clonate, si pentru a identificacategoriile de persoane care cloneaza si care comercializeazaneautorizat clone.

Ø una dintre cauzele clonarii neautorizate este caracterul prohibitival achizitionarii de licente coroborat cu puterea de cumparare

Page 113: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 113/203

 

scazuta a populatiei. Prin recunoasterea unor categorii distincte deutilizatori, si respectiv prin adoptarea unor preturi diferentiate alelicentelor se creaza premisele utilizarii legale de programe pentrucalculator si baze de date.

Ø prin includerea în pretul calculatoarelor la vânzare si a pretului

unor licente de componente software se asigura utilizarea legalape calculatoare de software minimal. Astfel sunt licentele OEM,programul fiind livrat împreuna cu un calculator nou saucomponente hardware.

Ø introducerea sistemului de plata în rate, crearea de facilitati pentrucei care reînnoiesc licente si diferentierea pretului în functie denumarul de licente achizitionate, în sensul invers proportional cunumarul de licente.

Ø livrarea gratuita pentru o perioada limitata de timp (o luna) aprodusului în vederea testarii, dupa care, în cazul ca se doresteutilizarea în continuare, trebuie achizitionata licenta.

Ø acordarea de licente educationale institutiilor de învatamânt carevor avea software licentiat la nivel maximal. De asemenea,distribuirea la preturi modice sau în sistem de licenta gratuita asoftware de utilitate publica precum: software pentru evidentasituatiilor scolare, pentru gestionarea bibliotecilor, pentru bilantulcontabil, pentru posta electronica, genereaza efecte secundare careconduc la recuperarea costurilor.

Ø impunerea obligatiei în sarcina agentilor economici de a evidentia în contabilitate, într-un registru special, asemanator inventaruluimijloacelor fixe, software utilizat de întreprindere.

Ø crearea Registrului utilizatorilor de software permite o evidenta acelor care utilizeaza legal pe categorii de produse si directionareacontroalelor spre agenti economici care nu poseda licente.

Ø crearea Registrului programelor pentru calculator ofera un

instrument sigur autorilor de programe recunoscute oficial caoriginale si protejate prin dreptul de autor de a-si asiguraopozabilitatea fata de utilizatorii acestor programe, care suntobligati sa achizitioneze licente pentru programele înregistrate.Prin O.G. nr. 124/2000 a fost înfiintat Registrul programelorpentru calculator, administrat de Oficiul Român pentru Drepturilede Autor. În art. 3 din actul normativ susmentionat, suntprevazute anumite documente care vor fi înscrise în Registrulprogramelor pentru calculator: - acordul titularului dreptului deautor pentru activitatile de distribuire, comercializare sau

 închiriere, si - informatii referitoare la modul de acordare a

Page 114: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 114/203

 

licentei si modelul licentei acordate utilizatorilor de programepentru calculator. Scopul înfiintarii acestui Registru a fost acelade a crea o baza de date cu privire la titularii care doresc sa se

 înscrie, utila O.R.D.A., altor autoritati sau persoane interesate.Prin Decizia O.R.D.A. nr.5 din 30 octombrie 2000, s-au adoptat

Normele metodologice privind administrarea Registruluiprogramelor pentru calculator.

Ø pe baza experientei acumulate, folosind si aquis-ul comunitar îndomeniu, se procedeaza la perfectionarea legislatiei prinincluderea de masuri cât mai eficiente: sanctiuni penale, caretrebuie sa aiba atât o functie represiva cât si una compensatorie,sa asigure posibilitati reale si eficiente titularilor drepturilor deautor de a obtine compensatii pentru prejudiciul material cât si

moral cauzat prin încalcarea drepturilor. Uneori este dificilastabilirea cu exactitate a cuantumului despagubirilor, astfel casunt necesare prevederi legale speciale care sa stabileasca criteriisi modele de evaluare a unei compensatii echitabile. Alte masuri,de natura civila sau administrativa, privesc: confiscarea sieventual, distrugerea còpiilor software neautorizate si ainstrumentelor folosite la realizarea lor, sigilarea locurilor unde sedesfasoara activitatea de clonare neautorizata, ordonarea încetariiactivitatii de clonare prin care se încalca drepturi de autor[OMPI01].

Ø este evidenta necesitatea implementarii prevederilor legale îndomeniu, prin crearea de unitati specializate în cadrul politiei, înministerele de resort si în cadrul organelor vamale, unitati care saefectueze mai eficient controale la persoane fizice si juridicepentru a identifica eventuale clone neautorizate software si debaze de date. Astfel, prin Legea nr. 202/2000 au fost initiate unelemasuri pentru asigurarea respectarii drepturilor de proprietate

intelectuala în cadrul operatiunilor de vamuire, una dintremasurile ce se ia de organele vamale, la cerere sau din oficiu,fiind suspendarea operatiunilor de vamuire si retinerea marfurilorsuspectate a aduce atingere unui drept de proprietate intelectuala.De asemenea, prin art. 9, alin. 2 din O.G. 142/2000 s-a prevazutposibilitatea implicarii reprezentantilor autorizati ai titularilordrepturilor de autor, de a însoti organele abilitate ale statului laconstatarea si sanctionarea contraventiilor prevazute de acest actnormativ.

Page 115: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 115/203

 

Ø se impune definirea unui cod de etica pentru dezvoltatorii desoftware si baze de date si un cod de etica pentru utilizatorii deproduse informatice.

Ø trebuie publicate facilitatile oferite pentru ca utilizatorii, avândcunostinta, sa beneficieze de acestea si sa nu procedeze la

achizitionarea la achizitionarea de clone în conditii de risc, maiales atunci când costurile licentelor sunt mai reduse.

Ø organismele care gestioneaza drepturile de autor, O.R.D.A., prinmasuri concrete în institutii de învatamânt, sa culturalizeze cuprivire la faptul ca programele de calculator si bazele de date suntopere protejate prin dreptul de autor, consecintele încalcariiacestor drepturi fiind inclusiv de natura penala.

Ø crearea de experti în domeniul juridic si al informaticii care sa

analizeze software si baze de date pentru identificareaprofesionala a clonelor. Acesti experti vor facilita rezolvarea unorcauze deduse organelor executive sau de justitie.

Ø chiar producatorii de software si baze de date, titularii drepturilorde autor, folosesc diferite tipuri de protectie împotriva copieriineautorizate, cum sunt: programe de protectie, coduri, aplicareade holograme pe suportul pe care este stocat programul pentrucalculator, certificatul de autenticitate, dispozitive hardware.

Ø pentru eficienta combaterii clonarii neautorizate, trebuie mai întâica toate institutiile publice sa aiba toate posturile de lucru numaicu software licentiat, oferind astfel un exemplu utilizatorilorprivati. Retelele de calculatoare vor fi livrate numai cu softwarelicentiat la nivel maximal, pentru a înlatura orice posibilitate deutilizare fara licenta.

7.3 Codul etic al programatorului

În cadrul desfasurarii activitatilor din domeniul software seidentifica:

• elaboratorii de produse software;• utilizatorii de produse program;• comerciantii de software si de servicii informatice.

Diversitatea persoanelor care îsi desfasoara activitatea, direct sau

indirect, în domenii care utilizeaza calculatoare impune stabilirea unor

Page 116: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 116/203

 

reguli de comportament unanim acceptate care sa fundamenteze existentaunui climat propice rezolvarii de probleme cu ajutorul tehnicii de calcul.

Existenta retelelor de calculatoare aduce noi aspecte ce trebuie luate în considerare privind limitele pe care sistemele de protectie le genereaza.Oricarui sistem de protectie i se construiesc la intervale scurte de timp

modalitati de acces neautorizat cu efecte negative asupra întregului procesde informatizare.

Elaborarea codurilor de etica pentru diferitele tipologii de personalcare îsi desfasoara activitatea în sfera informaticii ia in considerareparticularitatile specifice ale acesteia.Principiile etice care trebuie sa stea la baza activitatii desfasurate dedezvoltatorii de software au în vedere urmatoarele aspecte:

1. proiectarea si/sau implementarea sistemelor informatice trebuie

sa asigure utilizarea responsabila a produselor informatice, careraspund nevoilor sociale, nu afecteaza mediul natural si nu auefecte daunatoare asupra sanatatii si bunastarii;

2. evitarea producerii de efecte negative utilizatorilor, publicului îngeneral, angajatorilor si angajatilor; efectele negative au învedere pierderi nedorite de informatii, pierderi sau distrugeri aleproprietatii, resurselor umane si financiare, programatorul fiindobligat de a raporta orice suspiciune a sistemului care ar conducela pagube serioase;

3. dezvaluirea limitelor si problemelor sistemului, fara a facedeclaratii false sau înselatoare privind proiectarea si realizareasa, precum si calificarea personalului care sa conduca la conflictede interese;

4. discriminarea de orice natura nu este acceptata, promovându-sevalorile egalitatii, tolerantei, respectului fata de altii date deutilizarea tehnologiilor informatice;

5. respectarea drepturilor de proprietate asupra produselor software;

6. obligativitatea protejarii proprietatii intelectuale;7. respectarea intimitatii celorlalti; tehnologia informatica si acomunicatiilor permit colectarea si schimbul de informatiipersonale, crescând astfel posibilitatea violarii intimitatiiindivizilor si grupurilor de persoane;

8. respectarea confidentialitatii informatiilor atunci când se face înmod explicit promisiunea respectarii acesteia sau când diverseinformatii legate de îndeplinirea datoriei devin accesibile;

9. realizarea unei calitati înalte de calitate, eficienta si prestanta înactivitatile desfasurate si produsele obtinute;

Page 117: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 117/203

 

10. acumularea si mentinerea competentei profesionale la un nivelcât mai ridicat prin:• studiu individual;• participare la seminarii, conferinte si cursuri;• implicare în organizatii profesionale.

11. cunoasterea si respectarea legilor locale, nationale siinternationale privind activitatea profesionala; violarea unei legieste etica atunci când aceasta este nepotrivita cu principiile eticefundamentale sau contravine unei legi considerata ca fiind maiimportanta, iar persoana respectiva este responsabila denerespectarea legii;

12. criticarea în mod profesional a calitatii activitatii desfasurate;fiecare persoana trebuie sa caute si sa foloseasca criticile

pertinente si sa furnizeze critici asupra muncii altora;13. furnizarea unor evaluari complete si detaliate a sistemelor si aimpactului lor, luând în considerare posibilele riscuri;

14. onorarea contractelor, întelegerilor si responsabilitatilor caredecurg din acestea;

15. atitudine pozitiva si constructiva fata de beneficiarii informaticiisi a consecintelor ei; programatorii au responsabilitatea

 împartasirii cunostintelor tehnice cu publicul, încurajând astfel întelegerea informaticii si a impactului acesteia asupra societatii;

16. accesarea resurselor de calcul si a comunicatiei doar prinautorizare; indivizii si organizatiile au dreptul de a restrictionaaccesul la sistemele atât timp cât nu este încalcat principiuldiscriminarii;

7.4 Codul etic al utilizatorului

Utilizatorii sunt persoane fizice si juridice care folosesc hardware,software si beneficiaza de servicii informatice.

Utilizatorii de informatica desfasoara activitati în conformitate cuprincipiile etice daca:

1. folosesc software, hardware si alte resurse obtinute prin mijloacelegale;

2. respecta integral conditiile definite în contractele încheiate cuproprietarii aplicatiilor sau resurselor informatice;

3. folosesc produsul software potrivit destinatiei pentru care a fostrealizat;

Page 118: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 118/203

 

4. nu folosesc unele facilitati puse la dispozitie de respectivulprodus pentru a evita masurile de securitate sau pentru a spargecodurile altui produs informatic;

5. îsi procura prin metode legale alte resurse informatice care suntnecesare utilizarii produsului, conform specificatiilor

distribuitorului;6. gestioneaza în limitele prevazute de lege numarul de còpii pe

care le fac pentru arhivare si reîncarcare în cazul distrugeriivariantei initiale;

7. nu ies în afara limitelor permise de lege prin vânzarea, închirierea sau împrumutul produselor software contractate;

8. nu desfasoara activitati menite spargerii codului sau evitariimasurilor de securitate ale produselor informatice;

9. precizeaza de fiecare data produsul informatic cu ajutorul caruiaau obtinut rezultatele finale pe care le prezinta în carti,simpozioane, analize sau sinteze;

10. nu modifica în afara limitelor stabilite de comun acord cu celcare îi ofera produsul respectiv, codul sursa al acestuia;

Conditiile legale trebuie respectate de toti utilizatorii de software,indiferent daca ceea ce folosesc este software de baza, software de aplicatiisau este software destinat utilizarii pe un singur calculator sau este destinatutilizarii în retele sau pe Internet.

În afara acestor reguli care trebuie respectate si care decurg dinlegislatia aflata în vigoare, toti utilizatorii de software respecta si un set dereguli etice în ceea ce priveste utilizarea software:

• folosirea produsului numai în scopurile pentru care acesta a fostcreat, prezentate în documentatia aferenta;

• raportarea distribuitorului sau elaboratorului produsului respectivneajunsurile produsului informatic;

Acestea reprezinta doar un set de reguli minimale care trebuierespectate de toti utilizatorii de produse sau servicii informatice. Diferitelorcategorii de utilizatori li se mai adauga la acestea reguli specifice categoriei

 în care se încadreaza.Tehnologia care sta la baza Internetului a fost dezvoltata de catre

Departamentul de Aparare a Statelor Unite ale Americii pentru a facilitacomunicatiile între calculatoare si retelele de calculatoare din domeniulmilitar si laboratoarele din cadrul universitatilor.

Page 119: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 119/203

 

Exista o serie de aspecte cheie privind structura organizationala aretelei Internet [WILL97]:

§ reteaua a fost proiectata pentru a fi descentralizata, capabila de atransmite rapid informatii, fara implicarea si controlul direct afactorului uman, având abilitatea automata de a redirija

informatia daca una sau mai multe legaturi devin indisponibile.Acest sistem redundant de calculatoare interconectate a fostproiectat pentru a permite continuarea comunicatiilor, chiar dacaparti ale retelei au fost afectate.

§ nici o entitate organizationala nu administreaza reteaua Internet.Internetul exista si functioneaza ca urmare a faptului ca sute simii de operatori în informatica si retele de calculatoareindependente au decis sa utilizeze protocoale comune de transfer

a datelor pentru interschimbul de informatie cu alte calculatoare.Nu exista un loc de stocare centralizat, punct de control sau canalde comunicatii si nu este fezabil din punct de vedere tehnicpentru ca o singura entitate sa controleze toate informatiiletransmise în Internet.

Asadar, Internetul este un nou mediu, unic, al comunicatiei umaneuniversale.

Desi cadrul legislativ national, precum si tratatele internationalecontinua sa aiba un rol în activitatile desfasurate pe Internet, metodeletraditionale de guvernare nu vor avea un succes deplin. În cadrulInternetului se creeaza o anarhie electronica. Exista doua definitii diferiteprivind anarhia:

1. o societate utopica, guvernata de indivizi sau grupuri de indivizi;2. dezordine politica si sociala, confuzie si haos.

Internetul este o noua frontiera care ofera un anumit gen de libertate

care nu este gasita în lumea reala. Este un mediu în care exista nu numai omai mare libertate, dar si unul în care legile, regulile si standardele socialenu sunt foarte clar delimitate sau atât de bine impuse.

Exista doua curente de opinii cu privire la modul de utilizare aInternetului:

v mentinerea unei libertati totale si dreptul de utilizare a retelei asacum decide fiecare;

v identificarea metodelor, cailor de restrictionare a acestei libertatipe care Internetul o ofera, prin elaborarea si aplicarea unor regulisi legi.

Page 120: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 120/203

 

Nici una din aceste abordari nu ofera atât de mult pe cât promit.Succesul operatiunilor desfasurate pe Internet depinde de cei care au ofilosofie diferita, care consta în recunoasterea faptului ca libertateaindividuala trebuie sa fie însotita de responsabilitate individuala, respectpentru altii si interes pentru binele comun.

Atunci când doua persoane comunica prin intermediul calculatoruluitot ceea ce ele vad sunt cuvintele tiparite pe ecran. Expresiile faciale,gesturile, tonul vocii sunt elemente care nu sunt percepute într-un astfel tipde comunicare. Regula de aur în mediul virtual este la fel de importanta casi în lumea reala: o persoana trebuie sa-i trateze pe ceilalti în acelasi mod încare doreste sa fie tratata.

Persoanele care folosesc Internetul nu sunt judecate în functie de înfatisarea fizica, rasa, culoarea parului sau vârsta, ci sunt reprezentate de

ceea ce scriu. Oamenii primesc oferte de joburi, oportunitati privindefectuarea de diverse studii, contracte etc., în functie de imaginea lor peInternet.

Caracteristicile pe care trebuie sa le îndeplineasca un mesaj de e-mail sau trimiterea unui mesaj la un grup de discutii [WILL97]:

Ø cunoasterea domeniului abordat si asigurarea corectitudiniimesajului;

Ø asigurarea claritatii si logicii mesajului;Ø prezentarea celor mai importante informatii în primele fraze;Ø paragrafe scurte si la obiect;Ø utilizarea de simboluri si culori pentru a sublinia un aspect

discutat sau de a transmite un sentiment;Ø utilizarea unui limbaj direct si simplu;Ø acordarea unei griji mai mari folosirii sarcasmului si a umorului,

deoarece nu are loc o comunicare directa a persoanelor si existariscul unei interpretari gresite;

Ø utilizarea unui stil si ton apropiat mediului;

Ø asigurarea politetii, neutilizându-se un limbaj agresiv si cuconotatii sexuale;Ø precizarea tuturor referintelor si surselor de informare utilizate;Ø demonstrarea sensibilitatii culturale în mesaj;Ø asigurarea corectitudinii gramaticale;Ø precizarea permanenta a identitatii;Ø asigurarea ca mesajul este trimis persoanei sau grupului de

persoane la care trebuie sa ajunga.

Page 121: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 121/203

 

Unul din drepturile cele mai importante al oamenilor privesteintimitatea acestora. Din pacate, usurinta cu care informatiile personale suntculese, stocate si facute public, folosind tehnologia, afecteaza dreptul laintimitate. Sunt câteva metode de cultivare a aprecierii si respectului pentruintimitate în activitatile pe Internet:

v nefurnizarea de informatii privind detaliile personale despre viatasi situatia altor persoane într-un mesaj public sau privat;

v tratarea cu respect a ceea ce spun diferite persoane în mesajelelor private;

v sa nu se citeasca mesajele altor persoane sau sa se invadezespatiul de stocare personal a acestora;

v atentie deosebita acordata informatiilor private ale companiei,numite si secrete comerciale.

O latura aparte în comunicarea pe Internet o constituie discutiile încontradictoriu, în care apar puncte de vedere divergente privind o anumitaproblema. Participarea la astfel de discutii trebuie sa aiba în vedereurmatoarele aspecte:

Ø trimiterea mesajului provocator în locul în care trebuie;Ø neangajarea în atacuri la persoana, care atrage pierderea

respectului prietenilor si a colegilor;Ø neimplicare frecventa în astfel de discutii;Ø mesajul incitator trebuie sa fie scurt si la obiect;Ø raspunsul cu mânie la un atac la persoana este o mare pierdere de

timp; este mai potrivit un raspuns motivat, cu o anumita tenta deumor.

Greselile sunt componente normale în procesul de învatare si este deasteptat ca ele sa se produca. Câteva modalitati în care un începator esteajutat atunci când face o greseala:

Ø trecerea cu vederea a greselii si adresarea într-o manieracorespunzatoare catre începator;Ø trimiterea unui mesaj politicos persoanei respective, punctând

asupra greselii si sugerând actiunea potrivita.

Declaratiile imorale au o mare tendinta sa gaseasca o cale catre locul în care se doreste cel mai putin sa ajunga: cadre didactice, angajatori,administratori de sistem, parinti etc.

Un mesaj în format electronic este cu usurinta dirijat catre altedestinatii. Nu exista nici un control cu privire la locul în care un mesaj poateajunge. Redirectarea unui mesaj de catre o anumita persoana, fara acordul

Page 122: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 122/203

 

emitentului, constituie o încalcare a dreptului la intimitate. Stergerea unuimesaj din casuta postala nu are nici un efect daca el este prezent pe unmediu de stocare sau în casuta postala a altei persoane.

Criptarea mesajului transmis previne citirea lui de catre persoaneneautorizate, dar siguranta absoluta cu privire la pastrarea confidentialitatii

apare doar daca emitentul cunoaste continutul mesajului si nu-l transmitenimanui.

Fisierele cu date personale sunt accesibile oricarei persoane care areprivilegii de sistem sau sunt invadate de un hacker daca sistemul pe caresunt stocate nu este unul sigur.

Concluzia este ca nu trebuie inclusa într-un e-mail informatia care nuse doreste a fi facuta publica.

Regulile care guverneaza utilizarea unui cont Internet sunt denumite

 în mod generic politici de utilizare. Furnizorii comerciali tind sa aiba celemai putine restrictii privind utilizarea sistemului lor. Politicile variaza de lafurnizor la altul. Furnizorii stabilesc orice politicile pe care le doresc si alegserviciile de care beneficiaza un posesor de cont Internet.

Crearea si utilizarea unui cont Internet într-un sistem educationalpresupune politici mai restrictive. Institutia educationala limiteaza folosireaunui cont la activitatile care au un scop educational.

Companiile, agentiile guvernamentale nu au nici o obligatie de afolosi propriile resurse pentru a oferi un serviciu de acces public angajatilorsai.

Cheia transmisiunii informatiilor pe Internet este de a mentine unbun raport „semnal-zgomot”. „Semnalul” se refera la datele viabile caresunt transmise, iar „zgomotul” este ceea ce opreste ca datele sa fietransmise, denaturându- le.

Transmiterea unui mesaj electronic ia din timpul de emisie a altuicalculator. Emitentul are responsabilitatea ca ceea ce se transmite sa nuocupe inutil cuante de timp alocata. Internetul functioneaza pe baza unor

mesaje supraîncarcate, adica exista mai multe surse care doresc sa emitadate în acelasi timp.Astfel, se impune luarea unor masuri care sa nu afecteze în mod

inutil transmisiunea datelor în retea [WILL97]:• trimiterea de mesaje scurte si al obiect;• raspunsul la un mesaj anterior trebuie sa contine suficient text din

primul mesaj pentru a sti cui i se raspunde;• neincluderea în mesajul raspuns a întregului text original, iar

corpul mesajului sa fie nesemnificativ;

Page 123: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 123/203

 

• adresarea unei întrebari catre un grup trebuie sa precizeze modul în care se doreste ca raspunsul sa fie obtinut: personal sau încadrul grupului; dupa primirea raspunsului, se trimite un rezumatla grupul de discutii;

• netrimiterea unor articole lungi la un grup;• limitarea semnaturii la patru sau cinci linii, la sfârsitul mesajului;• netrimiterea unor întrebari stupide si efectuarea de cercetari cu

privire la domeniul abordat, atunci când un expert este cel careofera raspunsurile.

Exista limite ale resurselor din reteaua Internet. Internetul este oretea de retele care permit traficul de date de-a lungul lor. Un trafic maimare determina retele congestionate pâna când sistemul cade din punctul de

vedere al functionalitatii.Un cont Internet are atât limite locale, cât si limite privind mediul de

transmisie.Limitele locale au în vedere marimea traficului pe care furnizorul îl

manipuleaza, precum si spatiul de stocare a sistemului. Limitele reteleivizeaza caracteristicile de trafic existente la nivelul întregului Internet.

Reguli ce decurg din caracterul limitat al resurselor:Ø neîncarcarea retelei cu activitati nefolositoare;Ø

descarcarea de fisiere mari numai atunci când este absolutnecesar;Ø alegerea unui moment de timp potrivit pentru descarcarea de

fisiere de mari dimensiuni, atunci când resursele sistemului si aleretelei sunt mai putin solicitate;

Ø responsabilitate în folosirea e-mail-ului: verificare e-mail în modregulat, nedepasirea limitei maxime alocate pentru stocareamesajelor electronice, subscrierea la un numar rezonabil de listede e-mail, anularea subscrierii la liste de e-mail atunci când nu

este posibilia verificarea frecventa a cutiei postale;Ø neocuparea liniei de dial-up atunci când nu este folosita si

punerea liniei la dispozitia altor persoane;Ø netrimiterea repetata a unui mesaj în scopul supraîncarcarii

casutei postale.

Page 124: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 124/203

 

Toti utilizatorii au responsabilitatea de a face tot ceea ce tin de eipentru asigurarea securitatii sistemului local si a retelei. Primaresponsabilitate este aceea de a asigura securitatea contului Internet. În acestsens, trebuie luate toate masurile care sa previna accesarea neautorizata acontului. Aceste masuri au în vedere:

• alegerea unei parole corespunzatoare, care sa includa atât literecât si cifre;

• nefurnizarea datelor privitoare la cont catre alte persoane;• alegerea de parole diferite pentru site-urile care cer autentificare.

Conectarea unui calculator la o retea implica responsabilitati în pluspentru a preveni introducerea un virus în retea. Aceasta se realizeaza prin:

§ neimportarea de programe din surse necunoscute sau

compromitatoare;§ verificarea programelor descarcate cu ajutorul unui program

antivirus.

Este posibil ca utilizatorul loveasca de probleme de securitate.Comportamentul acestuia trebuie sa aiba în vedere:

Ø notificarea administratorului de sistem atunci când apar suspiciunicu privire la o problema de securitate;

Ø problema de securitate este discutata numai cu administratorul desistem;

Ø nu trebuie sa se caute probleme de securitate prin încercari de asparge sistemul sau de atribuire de noi drepturi de acces.

Întotdeauna trebuie luate în considerare consecintele, pozitive saunegative, a ceea ce fiecare contribuie la Internet. Exista mai multe elementecare afecteaza imaginea Internetului:

Ø materiale care descriu abuzuri sexuale sau exploatarea sexuala a

copiilor;Ø materiale care promoveaza ura fata de alte persoane datorita rasei,

religiei, originii, orientarii sexuale;Ø limbaj agresiv, profan, nepoliticos, violent, dezagreabil;Ø atacuri la persoana si provocarea de discutii aprinse pe un anumit

subiect;Ø farse electronice, lansarea de zvonuri, informatii periculoase.

Page 125: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 125/203

 

De asemenea, este importanta cunoasterea unui act ilegal în lumeareala, acesta fiind ilegal si pe Internet.

Hartuirea este definita ca fiind un actiune permanenta desfasurata deo persoana si derulata într-o maniera care deranjeaza sau supara o altapersoana. Aspecte care vizeaza hartuirea pe Internet:

• daca o persoana considera un mesaj ofensator primit ca fiindhartuire atunci acest mesaj este hartuire;

• trimiterea unui mesaj ofensator în mod repetat unei persoane,atunci acesta se înscrie în categoria de atacuri la persoana.

Nimeni nu are dreptul de a spune orice doreste despre o altapersoana. Cine face o declaratie publica falsa despre o persoana saucompanie, care aduce prejudicii acelei persoane sau companii, va avea de

suferit din cauza defaimarii propriei persoane.Principii de baza ale defaimarii [WILL97]:v declaratia trebuie sa fie falsa;v declaratia trebuie sa fie una publica;v declaratia facuta trebuie sa prejudicieze reputatia unei persoane

sau companii si sa cauzeze defaimare;v declaratia cu privire la o persoana publica despre care se stie ca

este falsa va face raspunzator pe cel care o lanseaza.

Exista o serie de reguli foarte importante pentru asigurarea securitatiipersonale:

v nefurnizarea pe Internet a informatiilor personale, cum sunt:adresa, numarul de telefon, adresa de la locul de munca, precumsi datele persoanelor apropiate;

v o persoana minora nu trebuie sa se întâlneasca cu o alta persoana,cunoscuta pe Internet, fara acordul parintilor; în cazul obtineriiacordului parintilor, întâlnirea trebuie sa aiba loc într-un loc

public si cu participarea parintilor;v relatarea catre o persoana apropiata sau de încredere despre

mesajele primite care au un caracter nepotrivit;v furnizarea catre autoritati a informatiilor despre persoanele care

desfasoara activitati suspecte pe Internet.

Aparitia tranzactiilor electronice pe Internet a determinat si existentacelor care doresc sa obtina bani de la potentialii clienti prin mijloacefrauduloase. Astfel de capcane sunt:

Ø solicitarea numarului cartilor de credit;

Page 126: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 126/203

 

Ø comercializarea unor produse de lux la preturi foarte mici;Ø  jocurile de tip piramidal;Ø participarea la activitati pentru care se garanteaza aprioric

multiplicarea sumei investite.

Plagiatul a fost întotdeauna considerat ca fiind inacceptabil.Deoarece Internetul permite operatii de preluare de text din lucrarile altorpersoane, este foarte important de a distinge activitatea de cercetare de ceaprivind plagiatul.

Exista o serie de probleme practice în evitarea plagiatului sidesfasurarea unei activitati de cercetare cu ajutorul Internetului. Astfel, înnavigarea pe Internet este foarte simplu de a gasi si concentra idei, conceptesi de a omite notarea, memorarea surselor acestor idei. Revenirea la aceste

surse identificate este o operatie foarte dificila. Este important sa seanticipeze aceasta dificultate înaintea declansarii unui proiect si sa seabordeze o maniera eficienta de retine sursele de informare.

În ceea ce priveste activitatea creatoare a oamenilor, acestia audreptul de cere si primi compensatii pentru activitatea desfasurata.Compensarea oamenilor încurajeaza desfasurarea în continuare a acesteiactivitati precum si evolutia societatii pe baza contributiei acestora.

Rezultatul unei munci creatoare este automat protejata prinintermediul drepturilor de autor din momentul în care aceasta este creata.Nici un preaviz privind drepturile de autor sau înregistrare a rezultatuluidesfasurarii activitatii creatoare nu este ceruta.

Domeniul public este starea unei activitati care nu este protejata dedrepturile de autor, fie pentru ca autorul nu este specificat clar sau serenunta la toate drepturile de autor, fie pentru ca drepturile de autor auexpirat.

Proprietarul unui drept de autor are drepturile exclusive de a copia,modifica, distribui, afisa, transmite si executa rezultatul muncii sale.

În general, este rezonabila sa se utilizeze [WILL97]:• copierea unui fragment foarte scurt dintr-o lucrare aflata sub

incidenta drepturilor de autor;• pasajele în care sunt utilizate copii din alte lucrari trebuie sa fie

foarte scurte;• utilizarea unei lucrari protejata de drepturi de autor pentru un

scop educational sau social;• utilizarea unei lucrari protejate nu afecteaza venitul potential al

detinatorului drepturilor de autor.

Page 127: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 127/203

 

De regula, este bine cererea permisiunii autorului înainte de a folosio lucrare.

Anumite persoane considera ca Internetul le ofera libertatea de a faceorice doresc, ignorând drepturile celorlalti. Oricine are dreptul de a folosiInternetul fara a fi subiectul tratamentului oferit de astfel de persoane. În

Internet, fiecare persoana are dreptul:§ de a nu primi mesaje e-mail ofensive si hartuitoare;§ de pastrare a intimitatii;§ de protejare a activitatii creatoare desfasurate;§ de a nu avea lucruri neadevarate spuse pe Internet la adresa sa;§ de a nu fi supus imaginilor cu caracter pornografic, în special

pentru membrii unor grupuri de lucru care activeaza în cadruleducational;

§ de a nu primi lucruri nedorite prin e-mail si de a proteja copiii deexploatarea comerciala.

În utilizarea mediului Internet este foarte important sa se stabileascaanumite limite, care au în vedere urmatoarele aspecte:

• stabilirea unui scop pentru utilizarea retelei Internet;• participarea la un numar relativ scazut de grupuri de discutii,

pentru a face fata volumului mare de informatii primite;• stabilirea unui interval orar zilnic strict pentru navigarea pe

Internet;• evitarea utilizarii Internetului pentru evadarea din problemele

lumii reale;• neacordarea unei prioritati mai mari Internetului fata de familie,

activitatea educationala si munca de zi cu zi.

Internetul este asociat unui loc în care milioane de oameni îsi aduccontributia si îsi împart propriile experiente. Aceasta tehnologie ofera

oamenilor oportunitatea de a da în aceeasi masura cu a primi ceva. Existamai multe modalitati în care se aduce contributia în Internet:

• raspunsuri si ajutor oferit persoanelor care pun întrebari;• ajutor si îndrumari oferite începatorilor;• redactare de rezumate a raspunsurilor date într-o anumita

problema si publicarea acestora în cadrul grupului de discutii;• mediere în discutiile duse în contradictoriu, fiecare exprimându-

si un punct de vedere diferit de al celorlalti;

•  împartire cunostinte dintr-un anumit domeniu cu alte persoane;• realizare site-uri organizatii nonprofit;

Page 128: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 128/203

 

• participare la diverse discutii fara ca vârsta sa fie un obstacol înacest sens.

În prezent are loc o evolutie rapida catre o era în care granitele fizicevor fi irelevante. O era în care nici o regula sau lege, autoritate sau barierede ordin tehnologic nu vor avea un succes deplin în controlareacomportamentului.

Page 129: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 129/203

 

 

8.1 Conceptul de metrica utilizat în aplicatii informatice

Aprecierea sistemelor de programe este de ordin calitativ (bun,satisfacator, foarte bun, nesatisfacator) si de ordin cantitativ, exprimatnumeric.

Problematica definirii unui sistem de masurare a calitatii genereazadiferite abordari, pe text sursa si asupra comportamentului la utilizator alprogramelor.

Metricile software înglobeaza modele, indicatori si proprietatileacestora, precum si modalitati de evaluare si validare. Capitolul îsi propunesa prezinte concepte de baza, modele si modalitati de utilizare a metricilorsoftware.

Conceptul de metrica nu este nou. Se considera o multime de puncteMa pe care se defineste o aplicatie:

d : M a x M a ∩  R (8.1)

MATRICI

ALE CLONARII

 

Page 130: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 130/203

 

astfel încât:1. d ( x1, y1 ) ≥ 0 si d ( x1, y1 ) = 0, daca x1 = y1;2. d ( x1, y1 ) = d ( y1, x1 ) (axioma simetriei);3. d ( x1, y1 ) ≤ d ( x1, y1 ) + d ( y1, z1 ) (inegalitatea triunghiului);Exista conceptul de norma si se poate stabili o legatura între norma

si metrica astfel: norma distantei a doua elemente se defineste ca o functiede forma:

d ( x1 , y1 ) = || x1 – y1 || (8.2)

Se poate spune cã si în domeniul ingineriei programarii utilizareaconceptului de metrici este acceptabila.

Definirea de metrici software revine la a construi modele, indicatoricare pornesc de la marimi ce se masoara cu obiectivitate (numar linii sursã,numar erori, numar variabile, numar instructiuni de Intrare/Iesire, numarfunctii, numar parametrii transmisi, numar nivele ale arborelui asociat).

Practica arata ca exista o strânsa legatura între comportamentulefectiv al unui program si structura lui exprimata prin marimi ce sedetermina exact, obiectiv.

Indicatorii (metricile software) se construiesc în asa fel încât valorileobtinute caracterizeaza produsul. Astfel, functia:

 f(x) : R ∩ [0,1] (8.3)

este pusa în corespondenta cu aprecieri asupra comportamentului unuiprogram astfel:

v dacã f(x) = 0 se va spune ca programul este lipsit de calitate si

exista riscuri pentru utilizator în cazul folosirii;v dacã f(x) = 1 se va spune ca programul are un nivel de calitate

deosebit, deci utilizatorul trebuie sa aiba încredere în rezultateleobtinute la executia programului;

v dacã α  ≤ f(x) < 1, unde α este o valoare numita prag deacceptare, obtinuta experimental, programul poate fi utilizat,riscurile de obtinere a rezultatelor eronate fiind minore;

v dacã 0 < f(x) < α, frecventa cu care se obtin rezultate incorecteeste atât de mare încât eforturile de a utiliza un astfel de programse dovedesc ineficiente.

Page 131: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 131/203

 

Se observa ca o metrica astfel conceputa are rolul de a pozitiona unprogram într-una din doua categorii: program acceptabil a fi în uz curent siprogram imposibil de utilizat.

Daca se considera multimea programelor P={P1 ,P2 ,...,Pn}  si seconstruieste un indicator de performanta sau de caracterizare f(x) : P → N,exista posibilitatea de a compara programele.

O astfel de functie este, de exemplu, lungimea fisierului executabil.Comparatiile sunt directe.

Daca f(Pi) > f(P j) se va spune cã programul Pi este mai mare sau mailung sau ca ocupa spatiu de stocare (memorie externa) mai mare decâtprogramul P j.

Sunt interesante si comparatiile directe de forma:

 f: P x P ∩ N (8.4)

ca de exemplu:

 f (Pi , P j) = ( Pi / P j ) · 100 (8.5)

Daca f(Pi, P j) > 100 rezulta ca programul Pi este mai lung decâtprogramul P j.

Dacã f(Pi, P j) < 100 rezulta ca programul Pi este mai scurt decâtprogramul P j.

Spre deosebire de multimea Ma definita la început, în care punctelesunt omogene, este extrem de dificil de construit multimi omogene deprograme, conditie esentiala pentru realizarea de comparatii care sa aibasens.

De aceea, metricile software sunt concepute ca programul sã fieraportat prin el însusi la modele ideale (f(x) = 1 sau f(x) = 0).

Rolul metricilor este de a reduce subiectivitatea aprecierii unuiprogram. Asemeni unitatilor de masura din sistemul metric international, ceicare îsi propun sã construiasca metrici software trebuie sa parcurgaurmatoarele etape:

Ø definirea marimilor obiective care pot fi masurate fie în textulsursa al programului, fie pe durata utilizarii programului labeneficiar;

Ø stabilirea metodologiei de înregistrare a marimilor obiective si deconstituire a bazei de date asociate programului;

Ø elaborarea modelului sau modelelor în care marimile obiectivestabilite figureaza ca variabile independente x1, x2, x3, ....xn si în

Page 132: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 132/203

 

care yr, variabila rezultativa, va releva comportamentulprogramului sau calitatile acestuia;

Ø evaluarea unui nivel y0 pentru valori date x01 , x0

2, .....x0n din baza

de date a programului;Ø încadrarea programului în una din cele doua clase (program bun,

acceptabil sau program neacceptabil);Ø înregistrarea comportamentului în timp al programului si

compararea rezultatelor obtinute cu ceea ce a oferit (prezis)metrica la momentul initial; în cazul în care se evidentiaza cametrica a prezis un comportament care este confirmat de realitate,are loc validarea metricii.

Metricile software se definesc pentru caracteristici de calitate.În timp, s-a acordat o atentie deosebita complexitatii software si

fiabilitatii software, modelele asociate acestora constituindu-se si înveritabile metrici.

Desi initial un program este cotat bun sau nu, în realitate aprecierilesunt mai nuantate.

Pentru o metrica software definita  f : P ∩ [a,b], a, b∈ R+ si a ≤ b, sevor identifica mai multe valori critice (praguri) α1, α2 care permit aceastanuantare a delimitarii, cu a < α1 <  α2 < b.

Intervalul [a, α1] corespunde zonei de respingere a programului,dacã f (Pi) ∈ [a, α1]. Intervalul (α1, α2] corespunde zonei de acceptare curezerve a programului Pi, dacã f (Pi) ∈ (α1,α2]. Intervalul (α2,b] corespundezonei de acceptare cu încredere a programului Pi, dacã f (Pi) ∈(α2,b].

Metodologiile de clasificare a sistemelor de programe stocate înbiblioteci publice de software atribuie apartenenta, respectiv la clasele de

programe Cf , Bf  si Af  dupa încadrarea în unul din cele trei subintervale.Ceea ce este caracteristic unei metrici este generalitatea, adica posibilitateade a aplica formula (modelul) oricarui program în mod neambiguu. Adicamarimile obiective trebuie atât de riguros definite încât oricine are ladispozitie un program Pi si metrica, sa obtina aceleasi rezultate.

De exemplu, daca se considera:• n1 - numar de operanzi distinct;• n2 - numar de operatori distinct;• n3 - numar de definitii tipuri de date;

si o masura a complexitatii:C t = n1 log1 n1 + n2 log2 n2 + n3 log3 n3 (8.6)

Page 133: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 133/203

 

si se precizeaza ca operanzii sunt:Ø constante definite în program care participa în evaluari de

expresii;Ø variabile elementare;Ø variabile de tip derivat,

se obtine un grad de obiectivitate acceptabil.

Nu se includ definirile de tip derivat, ci numai variabilele care sunt înzestrate cu proprietatile acestor tipuri.

Prin operator se va întelege:• instructiunile if, for, switch, goto, while, do;• expresii de atribuire;• apeluri de functii;• evaluari de expresii.

Pentru o definire neambigua se iau în considerare toate elementeleunui limbaj de programare si se stabilesc regulile de contorizare la n1, la n2 

sau la n3 a fiecarui element.Aceasta înseamna ca o metrica este legata de un limbaj deprogramare anumit. Este rezonabil ca definirile pentru diferite limbaje deprogramare sa urmeze aceleasi reguli. În situatia în care, pentru rezolvareaaceleiasi probleme, se scriu programe în limbaje diferite de catreprogramatori cu acelasi nivel de performanta, trebuie ca diferentele obtinutepentru aplicarea metricii sã fie nesemnificative. Daca ipotezele de construiresi utilizare a unei metrici sunt judicios concepute exista reale posibilitati dea utiliza metrica si, mai ales, de a aprecia programele prin prisma nivelelordate de calculul respectivei metrici. Este important ca marimile obiectivedin care deriva metrica sa fie usor de obtinut. O metrica costisitor de evaluat

este abandonata usor.

8.2 Metrici ale ortogonalitatii fisierelor sursa C++

În continuare sunt prezentate mai multe metrici legate de un anumitlimbaj de programare, în particular C++, si care se adauga metricilordefinite în capitolul „Ortogonalitatea fisierelor”.

Frecvente de aparitie paragrafe consta în împartirea textelor sursa înparagrafe si analiza comparata a acestora dupa criteriile:

• frecvente de aparitie a caracterelor în paragrafe;• frecvente de aparitie a cuvintelor în paragrafe, prin realizarea

vocabularelor acestora.

Page 134: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 134/203

 

Împartirea unui text în paragrafe se realizeaza cu ajutorul unuiseparator de paragraf.

Indicatorii care reflecta asemanarea fisierelor prin împartirea acestora în paragrafe sunt:

 NTC 

ncap

g

 NTC 

i

i∑== 1

1   (8.7)

unde:- g1 – gradul de asemanare a între doua paragrafe dupa frecventele

de aparitie a caracterelor alfabetice;- NTC – numarul total de caractere alfabetice (mari si mici);- ncapi – elementul i din vectorul de stocare a frecventelor de

aparitie a caracterelor si ia una din urmatoarele valori:• 0, daca pentru caracterul i frecventele de aparitie în cele doua

paragrafe sunt diferite;

• 1, daca pentru caracterul i frecventele de aparitie în cele douaparagrafe sunt identice.

 NTCV 

ncvfp

g

 NTCV 

i

i∑== 1

2  (8.8)

unde:- g2 – gradul de asemanare a paragrafelor dupa vocabularul

fiecaruia dintre acestea;

- NTCV – numarul total de cuvinte al celor doua paragrafe,cuvinte care sunt distincte;- ntcvpi – un element al vectorului în care sunt stocate valori

privind identitatea frecventelor de aparitie a diverselor cuvinte siia una din urmatoarele valori:• 0, daca frecventele de aparitie pentru cuvântul i sunt diferite

sau cuvântul i nu se regaseste în celalalt text;• 1, daca pentru cuvântul i frecventele de aparitie sunt identice.

Paragrafele identificate sunt supuse analizei cantitative doua câte

doua, urmând ca, în final, sa se calculeze un indicator care sa reflecteasemanarea între doua texte prin împartirea acestora în paragrafe.

Page 135: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 135/203

 

Gradul de asemanare a doua paragrafe se determina dupa expresiaurmatoare, care este media geometrica:

21' gggi

⋅=   (8.9)

unde gi’ este gradul de asemanare între doua paragrafe conform celor douacriterii definite, frecvente de aparitie a literelor în paragrafe si frecvente deaparitie a cuvintelor în paragrafe.

Gradul de asemanare între texte, conform acestui criteriu, este:

, '

1

 p

 p

m

mi

i

g g=

= ∏   (8.10)

unde:

- g’ – gradul de asemanare între texte în urma împartirii înparagrafe a acestora;- gi’ – gradele de asemanare între paragrafe; sunt luate în

considerare cele doua criterii de analiza: frecvente de aparitie acaracterelor alfabetice, frecvente de aparitie a cuvintelor dinparagrafe;

- mp – numarul de comparatii care sunt efectuate între paragrafe; mse determina ca produs între numarul de paragrafe ale celor douatexte.

Textele sursa contin caractere cu rol neutru în raport cu etapeleprelucrarilor. De aceea este necesara derularea unui proces de normalizare,

 în care tot ce este nesemnificativ în raport cu obiectivul urmarit esteeliminat.

Dupa procesul de normalizare se obtin texte sursa apte pentru a fisupuse unei analize comparate.

 Lungimea Ls a fisierului sursa se exprima ca numar de baiti.Fisierul sursa Fp1:

int a;

int b;

int c;

a = 1;

b = 2;c = a + b;

are lungimea Ls = 52 baiti.

Page 136: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 136/203

 

Fisierul sursa Fp2:

int a; a = 1;

int b; b = 2;

int c; c = a + b;

are lungimea Ls = 49 baiti.Dupa normalizare, prin eliminarea unor spatii si a unor caractere de

control, fisierul Fp1 devine:

int a; int b; int c; a=1; b=2; c=a+b;

iar lungimea sa este Ls = 37 baiti.Aplicând acelasi procedeu fisierului Fp2, se obtine continutul

normalizat:

int a; int b; int c; a=1; b=2; c=a+b;

iar lungimea noului fisier este Ls = 37 baiti.Doua fisiere Fp1 si Fp2 cu lungimi diferite, dupa procesul de

normalizare devin fisiere cu aceeasi lungime.Daca fisierul normalizat Fpi are o lungime Li baiti, iar fisierul

normalizat Fpj are lungimea L j baiti, indicatorul:

},{max

},{min

 ji

 ji

 L L L

 L L I  =   (8.11)

evidentiaza gradul de asemanare a lungimilor a doua fisiere normalizate.Daca IL = 1 înseamna ca cele doua fisiere au lungimi identice. Cu cât

indicatorul IL este mai apropiat de zero, cu atât gradul de asemanare alungimilor celor doua fisiere este mai redus.

 Lungimea vocabularului, LV, este data de numarul de cuvintedistincte identificate într-un text sursa.

Page 137: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 137/203

 

Secventa de program SP1 :

int a;

int b;

int c;

a=17;

b=17;

c=a+17*b;

C=c+a+111;

are un vocabular format din cuvintele:

int, a, b, c, 17, 111, =, +, *, ; 

adica LV=10 cuvinte.Secventa SP2 :

int a; float b;

double c; for(a=0;a<100;a++)

c=c+a;b=c-1;

are un vocabular format din cuvintele:

int, float, double, a, b, c, for, ( , = , ; , < , 100, +, ++, - , )

iar LV = 16 cuvinte.Indicatorul:

},max{

},min{

 ji

 ji

V  LV  LV 

 LV  LV  I  =   (8.12)

vizeaza masura în care lungimile vocabularelor celor doua secvente suntdiferite.

Daca IV = 1 înseamna ca vocabularele celor doua texte are acelasi

numar de cuvinte, fara sa se specifice daca aceste cuvinte sunt sau nuidentice.

Page 138: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 138/203

 

 Diversitatea vocabularului unui program este data de relatia:

21

2

1 1

log1

( ) log ( )

m

i ii

v m m

i i

i i

 f f 

 D

 f f 

=

= =

⋅= −

∑ ∑  (8.13)

unde f i reprezinta frecventa cu care este utilizat un cuvânt al unui vocabular în program.

Secventa de program SP3 :

int a=1;

int b=1;int c=0;

int d=0;

contine vocabularul cu frecventele de utilizare a cuvintelor din tabelul nr. 1.

Frecvente utilizare vocabular

Tabelul 8.1

Cuvânt Frecventa

int 4

= 4

; 4

1 2

0 2

a 1b 1

cd 

11

Diversitatea este:

2 2 2 2 2 2 2 2 2

2

4log 4 4log 4 4log 4 2log 2 2log 2 1log 1 1log 1 1log 1 1log 11

20log 20v D

+ + + + + + + += −

 

4 2 4 2 4 2 2 1 2 1 1 0 1 0 1 0 1 01 0,3220 4,34v D ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅= − =⋅  

Page 139: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 139/203

 

În cazul în care toate cuvintele au în text câte o singura utilizare,diversitatea este maxima, egala cu 1.

 Lungimea vocabularului comun, LV co , pentru programele Pi, P j estedata de numarul de cuvinte comune utilizate în ele.

Fie secventa SP4 :

int a;int b;

int c;

a=7;

b=a+2;

c=a+b;

si secventa SP5 :

int a;

int b;int y;a=7;

b=a-2; y=a-b;

Cele doua secvente au comune cuvintele:

int, a, b, = , 7, 2

Lungimea vocabularului comun LVco = 6 cuvinte, pentru secventele

SP4 si SP5 . Lungimea vocabularului reuniune, LV re , este data de numarul de

cuvinte distincte utilizate de programe.În secventa SP6:

int a;char x;

a=2; x=’1’;

Page 140: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 140/203

 

si secventa SP7 :

 float y;

double z;

 y=4.;

 z=y++;

reuniunea vocabularelor este:

int, char, a, x, = , , , 1, float, double, y, z, 4, ++

Vocabularul reuniune are lungimea LVre = 13 cuvinte.Indicatorul:

},{max

},{min

reco

reco

cr  LV  LV 

 LV  LV  I  =   (8.14)

evidentiaza masura în care doua programe utilizeaza acelasi fond de cuvinteal unui vocabular.

Secventele SP8:

int a;

 float b;

a=b=0;

si SP9 :int x;

 float y;

 x=0;

 y=0;

au vocabular comun format din cuvintele:

int, float, = , 0

are lungimea LVco = 4 cuvinte, si un vocabular reuniune:

a, b, = , 0, x, ycu LVre = 8 cuvinte, iar Icr = 0,5.

Page 141: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 141/203

 

Ponderea elementelor identice în doua programe este data deraportul:

re

 f 

re

K  I 

 LV =   (8.15)

unde Kre este numarul cuvintelor din vocabularul reuniune care au aceeasifrecventa.

Un program Pi are vocabularul:

Vocabular program Pi 

Tabelul 8.2

Simbol Frecventa

int 7 

 float 7 

a 15

++ 8

b 5

iar programul P j are vocabularul urmator:

Vocabular program P j

Tabelul 8.3 Simbol Frecventa

int 7 

 float 8a 15

++ 8

b 5

Se calculeaza If :

8,054==

 f  I    (8.16)

Daca If = 1 rezulta ca programul Pi este clona a programului P j. DacaIf  = 0 rezulta ca programele Pi si P j nu au frecvente identice de utilizare aacelorasi cuvinte.

Page 142: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 142/203

 

 Lungimea alfabetului, LA, utilizat este data de numarul caracterelordiferite utilizate.

În programul:

int a;

int b;

a=0;

b=1;

alfabetul folosit este:

Frecvente de aparitie simboluriTabelul 8.4

Simbol Frecventa

i 2

n 2

t 2a 2

b 2

= 2

0 1

1 1

deci, LA = 8 caractere.

Si în cazul alfabetului, pentru programele Pi si P j se definesc:§ lungimea alfabetului comun;§ lungimea alfabetului reuniune;§ frecventele de utilizare a simbolurilor alfabetului în program.

Se defineste IA, indicatorul caracterelor cu frecvente identice, dat derelatia:

c

re

G IA

 LA=   (8.17)

unde:- Gc – numarul de caractere comune programelor Pi si P j, cu

frecvente identice;- LAre – lungimea alfabetului reuniune.

Page 143: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 143/203

 

Programul Pi:int a=1;int b=1;

int c=1;

int d=1, z=4;

a++;

b++;c++;d++;

d=d+a+b+c;

are urmatorul alfabet:

Frecvente de aparitie simboluri în programul Pi

Tabelul 8.5

Simbol Frecventai 4n 4

t 4a 3

b 3c 3d 4

++ 4+ 3

= 6 1 4 z 1

4 1

Programul P j:

int a=1;

int b=1;int c=1;

int d=1, x=2;a++;b++;

c++;

d++; x--;d=d+a+b+c+x;

Page 144: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 144/203

 

are urmatorul alfabet:

Frecvente de aparitie simboluri în programul Pi

Tabelul 8.6

Simbol Frecventa

i 4

n 4t 4

a 3

b 3

c 3

d 4

++ 4

+ 4

= 6 

1 4

 x 3

-- 1

2 1

Se construieste tabelul:

Frecvente de aparitie simboluri în programele Pi si P j 

Tabelul 8.7

Simbol FrecventaSimboluri

 comune

 Frecvente

 simboluri

 comune

Simbol Frecventa

i 4

n 4

t 4

a 3

b 3

c 3

d 4

++ 4

= 6 

1 4

 x 2

-- 1

2 1 z 1

4 1

Page 145: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 145/203

 

Pentru exemplul considerat, Gc = 10 simboluri, iar LAre = 15simboluri.

66,015

10== IA  

86,04539 == f  IA  

Fie programul P format din instructiunile I1, I2, …, INi. InstructiuneaI j are un numar de f  j caractere. Perechile (I j, f  j), j = 1, 2, …, n se sorteazadescrescator, obtinându-se programul P’. Se obtine sirul de instructiuni

1a I  ,

2a I  , …,na I  astfel încât instructiunea I j cu pozitia j în programul P are

pozitia a j în programul P’.Se calculeaza indicatorul:

1

| |

max{| |,1}

n

 j

 j

c

i

a j

k n a j

=

=⋅ −

∑  (8.18)

În continuare se da o secventa de program împreuna cu lungimileinstructiunilor utilizate, în numar de caractere utilizate:

Lungimea instructiunilor exprimata în numar de caractereTabelul 8.8 

Pozitie

instructiune(j)

Instructiune Lungime

1 s2=0.; 6 

2 s=0; 4

3 P=1.; 5

4 for(i=0;i<n;i++) 16 

5 { 1

6 s=s+x[i]; 9

7 P*=x[i]; 8

8 s2+=x[i]*x[i]; 14

9 } 1

10 if(s2>s) a=1; 1311 else 4

12 a=2; 4

Page 146: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 146/203

 

Dupa operatia de sortare se obtine secventa S’, care are urmatorulcontinut:

Sortare instructiuni în functie de lungime

Tabelul 8.9 Pozitie

instructiunesecventa SP 

(j)

Pozitie

instructiunesecventa S’

(a j)

Instructiune Lungime

4 1 for(i=0;i<n;i++) 16 

8 2 s2+=x[i]*x[i]; 14

10 3 if(s2>s) a=1; 13

6 4 s=s+x[i]; 9

7 5 P*=x[i]; 8

1 6 s2=0.; 6 

3 7 P=1.; 5

2 8 s=0; 411 9 else 4

12 10 a=2; 4

5 11 { 1

9 12 } 1

Când programele au numar mare de instructiuni se procedeaza lastabilirea frecventelor:

§ se alege frecventa minima f minim = 1 caractere;§ se alege frecventa maxima f maxim = 16 caractere;§ se calculeaza def = f maxim – f minim = 15 caractere;

§ se calculeaza lungimea intervalului: .53

3 caracteredef 

r  ==  

Se construieste tabelul:

Gruparea instructiunilor pe intervale de lungime

Tabelul 8.10 Interval Numar de instructiuni

[1; 6) 6 

[6; 11) 3

[11; 16] 3

Total 12

Page 147: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 147/203

 

| 4 1| |8 2 | |10 3 | | 6 4 | |7 5 | |1 6 | | 3 7 | |2 8 |

12 max{| , |,1}c

i

k a j

− + − + − + − + − + − + − + − +=

⋅ 

=⋅

−+−+−+−+

}1|,,max{|12

|129||115||1012||911|

 jai

 

55,084

47

712

362264522753==

+++++++++++=  

Pentru datele prezentate în tabelul anterior se calculeaza media sidispersia acestor valori. Astfel:

43

3363

3

13 =

++==

∑=i

i x

 x  

23

1143

)(3

1

2

23 =

++=

−=∑=i

i  x x

σ  

Pornind de la valorile indicatorilor de medie si dispersie sedetermina coeficientul de variatie:

83,241,1

4

3

33 ===

σ

 xCV   

Daca se calculeaza 75,34

154 ==r  , atunci obtinem valorile sintetizate

 în urmatorul tabel:

Grupare instructiuni pe intervale de lungime

Tabelul 8.11 Interval Numar de instructiuni

[1; 4,75) 4

[4,75; 8,50) 3

[8,50; 12,25) 3[12,25; 16] 2

Total 12

Page 148: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 148/203

 

Pentru calcularea coeficientului de variatie este necesar sa sedetermine valorile mediei si a dispersiei:

3

4

2334

4

4

14 =

+++==

∑=i

i x

 x  

66,03

113

)(4

1

2

24 =

+=

−=∑=i

i  x x

σ  

Valoarea coeficientului de variatie CV4 este:

93,481,04

4

44 ===

σ

 xCV   

Indicatorul agregat privind variatia este:

73,393,483,243 =⋅=⋅= CV CV CV   

Doua programe cu aceeasi valoare a indicatorului CV sunt identice.Daca programul RR este:

Pozitii noi ale instructiunilor în ierarhia dupa lungimeTabelul 8.12 

Instructiune Lungime Pozitieveche

Pozitienoua

alfa=200; 9 1 1

beta=20; 8 2 2

gama=2; 7 3 3

eta=1; 6 4 4

Page 149: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 149/203

 

Fie programul PP:

Pozitia instructiunilor în functie de lungimeTabelul 8.13 

Instructiune Lungime Pozitie

i=0; 4 1

lm=1; 5 2

lmp=2; 6 3

lmr=20; 7 4

lmt=200; 8 5

Dupa sortarea descrescatoare a instructiunilor dupa lungime,programul PP devine PP’:

Abaterea pozitiilor instructiunilor ierarhizate dupa lungimea lor

Tabelul 8.14 Instructiune Pozitie

vechePozitienoua

| pozitie veche –pozitie noua |

lmt=200; 1 5 4

lmr=20; 2 4 2

lmp=2; 3 3 0

lm=1; 4 2 2

i=0; 5 1 4

În cazul programului RR diferentele calculate dintre pozitiile vechisi cele noi sunt nule. Ca urmare, valoarea indicatorului kc este nula.

Un program are indicatorul kc nul daca lungimile liniilor sursa suntdeja descrescatoare.

În cazul programului PP, valoarea indicatorului kc se calculeazaconform relatiei:

4 2 0 2 40,25

12 4ck 

+ + + += =

⋅ 

Fie programul P cu instructiunile I1, I2, …, INi, acestea avândpozitiile 1, 2, …, Ni. Se calculeaza L1, L2, …, LNi lungimile instructiunilorca frecvente de caractere f 1, f 2, …, f Ni.

Page 150: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 150/203

 

Este parcursa urmatoarea succesiune de pasi:1. se scrie programul:

Instructiunilor unui program si lungimile acestora

Tabelul 8.15 Instructiune Pozitie veche Frecventa

 I 1 1 f 1

 I 2 2 f 2… … …

 I n  N f n

2. se sorteaza instructiunile descrescator, dupa lungimile f i, i = 1, 2,…, Ni.

Ierarhia instructiunilor dupa sortarea descrescatoare a lungimilor

Tabelul 8.16 

Instructiune Pozitieveche

Pozitienoua

Frecventa

1a I    a1 1 g1

2a I    a2 2 g2

… … … …

na I    an n gn

Se calculeaza indicatorul kc, conform relatiei:

1| |

max{| |,1}

n

 j

 j

c

i

a j

k n a j

=−

=⋅ −

∑  (8.19)

3. se sorteaza instructiunile crescator, dupa lungimile f i, i = 1, 2, …,Ni.

Page 151: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 151/203

 

Ierarhia instructiunilor dupa sortarea crescatoare a lungimilor

Tabelul 8.17 Instructiune Pozitie

vechePozitienoua

Frecventa

1b I    b1 1 h1

2b I    b2 2 h2

… … … …

nb I    bn n hn

Se calculeaza indicatorul La, pe baza relatiei analitice a indicatoruluikc, astfel:

1

| |

max{ , 1}

n

 j

 j

a

i

b j

 Ln b j

=

=⋅ −

∑  (8.20)

Pe baza indicatorilor kc si La se determina indicatorul T, conformrelatiei urmatoare:

},{max},{min

 Lk 

 Lk T =   (8.21)

Exemplu: fie programul ST, având codul sursa:

a=1;c=b++;

if(a>b) c+=x[i];t=s=0;

 for(i=0;i<n;i++)

{

s+=y[i];t+=y[i]+x[i];

 }

a+=s/t;

Page 152: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 152/203

 

Pentru programul ST se determina frecventele caracterelor cealcatuiesc instructiunile:

Frecventele de aparitie ale caracterelor instructiunilor

Tabelul 8.18 Instructiune Frecventa

(f i)

a=1; 4

c=b++; 6 

if(a>b) c+=x[i]; 15

t=s=0; 6 

 for(i=0;i<n;i++) 16 

{ 1

s+=y[i]; 8

t+=y[i]+x[i]; 13

 } 1

a+=s/t; 7 

Dupa identificarea frecventelor caracterelor din instructiuni seprocedeaza la sortarea descrescatoare a acestora.

Abaterile pozitiilor instructiunilor dupa ierarhizareTabelul 8.19 

Instructiune Frecventa(f i)

Pozitieveche

Pozitienoua

| pozitie veche– pozitie noua

|

 for(i=0;i<n;i++) 16 5 1 4

if(a>b) c+=x[i]; 15 3 2 1

t+=y[i]+x[i]; 13 8 3 5

s+=y[i]; 8 7 4 3

a+=s/t; 7 10 5 5

c=b++; 6 2 6 4

t=s=0; 6 4 7 3

a=1; 4 1 8 7 

{ 1 6 9 3

 } 1 9 10 1

Page 153: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 153/203

 

Valoarea indicatorului kc este:

36 360,51

10 max{7,1} 70ck  = = =⋅

 

Valoarea indicatorului La se calculeaza dupa ordonarea crescatoare ainstructiunilor programului în functie de frecventele de aparitie acaracterelor:

Abaterile pozitiilor instructiunilor în functie de frecventelede aparitie ale caracterelor

Tabelul 8.20 Instructiune Frecventa

(f i)

Pozitie

veche

Pozitie

noua

| pozitie veche

– pozitie noua|

{ 1 6 1 5

 } 1 9 2 7 a=1; 4 1 3 2

t=s=0; 6 2 4 2

c=b++; 6 4 5 1

a+=s/t; 7 10 6 4

s+=y[i]; 8 7 7 0

t+=y[i]+x[i]; 13 8 8 0

if(a>b) c+=x[i]; 15 3 9 6 

 for(i=0;i<n;i++) 16 5 10 5

Valoarea indicatorului La este:

32 320,45

10 max{7,1} 70a L = = =⋅

 

Având valorile indicatorilor kc si La, se calculeaza valoareaindicatorului T:

88,051,0

45,0

}45,0;51,0{max

}45,0;51,0{min===T   

Page 154: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 154/203

 

Programele au:§ secvente de definire operanzi;§ instructiuni if ;§ instructiuni for ;§ apeluri de functii;§ evaluari expresii;§ frecvente de utilizare operanzi;§ frecvente de utilizare operatori.

Asemenea ADN-ului, programele se individualizeaza prin:• numar de proceduri;• numar niveluri;• complexitate;• frecvente comune vocabular;• numar de structuri alternative;• numar de structuri repetitive;

• numar de niveluri;• numar de functii cu lista de parametri comuna;• numar expresii de evaluare;• numar functii de biblioteca referite.

Selectia vizeaza ce caracteristici de baza sunt analizate, luându-secombinatii de acestea. 

Selectia de proceduri. Se iau k proceduri la întâmplare din produsulPi si k proceduri din P care au lungimi similare si se cauta sa se vada caresunt identice.

Se iau x secvente aleatoare din Pi si se cauta sa se gaseasca în P j.Daca sunt gasite aceste secvente identice atunci înseamna ca a avut loc unproces de clonare.

Page 155: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 155/203

 

Se considera doua programe PA si PB:

Caracteristici structurale ale programelor PA si PB Tabelul 8.21 

 P A  P B Comune

 Numar moduleC 1

25 30 20

 Numar

instructiuni forC  2

300 450 300

 Numar

instructiuni if C  3

250 300 240

 Apeluri functiiC  4

170 210 165

 Evaluari expresii

C  5

500 880 490

 Numarinstructiuni while

C 6 

200 260 200

Operatii de I/EC 7 

160 150 150

},{min  B

 A

c

k GG

G I  =   (8.21)

unde: - kp – pozitia caracteristicii BPC;- Gk

c – nivelul caracteristicii k pentru elementele identice în celedoua programe;

- GkA – nivelul caracteristicii k în programul PA;

- GkB – nivelul caracteristicii k în programul PB.

8,025

20

}30,25{min

201 === I   

1300300}450,300{min 3002 === I   

Page 156: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 156/203

 

96,0250

240

}300,250{min

2403 === I   

97,0170

165

}210,170{min

1654 === I   

98,0500

490

}880,500{min

4905 === I   

1200

200

}260,200{min

2006 === I   

1150

150

}150,160{min

1507 === I   

95,01198,097,096,018,07 =⋅⋅⋅⋅⋅⋅= BPC   

Rezultatul compararii caracteristicilor de baza BPC = 0,95, ceea cearata ca între programele PA si PB este dezvoltat un proces de clonare.

În cazul în care se înregistreaza la una din cele 7 caracteristici unindicator Ik = 0, atunci:

7

7

1, 0k 

k k I 

 BPC I = ≠

= ∏   (8.22)

unde k este numarul de indicatori Ik nenuli, indicându-se numarulcaracteristicilor pentru care Ik este diferit de zero.

Daca se ia indicatorul:

7

7

1

k  I 

 BPC e=

= ∏   (8.22)

BPC ∈ [1, e], unde valoarea 1 indica originalitatea, deci programele nu au

nimic în comun si e daca programele sunt identice. Agregarea indicatorilor. Pentru programele Pi si P j se face o analiza a

clonarii. Se considera o serie de indicatori I1, I2, ..., Im astfel încât Ik ∈ [0, 1],

Page 157: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 157/203

 

k = 1, 2, ..., m, cu semnificatia Ik = 1 înseamna ca în raport cu ocaracteristica Ck cele doua programe Pi si P j sunt clone.

Se calculeaza un indicator agregat:

1

k a r 

 I I 

=

= ∏   (8.23)

al clonarii.1. daca Ia = 1, programele sunt clone perfecte;2. daca Ia = 0 programele nu sunt clone;3. daca Ia ∈ [0,92; 1] programele sunt clone certe;4. daca Ia ∈ [0,78; 0,92] programele contin elemente de clonare.

8.3 Amprenta programului

Amprenta programului este data de o succesiune de caracteristici

obiectiv masurabile care îl individualizeaza si care determina ca în cazul încare nivelurile sunt diferite toate pentru programe diferite sau sunt identicepentru programe identice.

Fie programul care calculeaza norma unei matrice, folosind diferiteforme analitice.

Codul sursa al programului este publicat la adresa www.clonare-

informatica.ase.ro, denumirea fisierului fiind norma.cpp.În vederea stabilirii amprentei acestui program, se calculeaza

indicatorii:- lungimea tuturor instructiunilor, exprimata în numar de

caractere;- lungimile fisierelor sursa, obiect si executabil;- complexitatea programului, care se calculeaza conform relatiei

Halstead:

1 2 1 2 2 2log logcp

C n n n n= ⋅ + ⋅   (8.24)

unde:• n1 – numarul de operanzi;• n2 – numarul de operatori.- lungimea vocabularului programului, diferentiat pe cuvinte cheie

si cuvinte utilizator;

- lungimea alfabetului, diferentiat pe litere si caractere speciale;- frecventele de aparitie a instructiunilor;- frecventele de aparitie a literelor si simbolurilor speciale.

Page 158: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 158/203

 

Din acestea se retine un numar de indicatori care formeaza amprenta.Oricine aplica o regula obtine aceleasi valori.

Pentru toate se poate scrie software si se pot obtine valorilecorespunzatoare. Ca urmare, amprenta programului se stabileste conformsuccesiunii:

Figura 8.1 Etapele stabilirii amprentei unui program

Orice program are o astfel de amprenta, indiferent de limbaj.În vederea stabilirii amprentei unui program se elaboreaza un produs

software prin intermediul caruia sunt implementati indicatorii prezentati în

paragraful anterior.Aceasta presupune derularea unui proces de normalizare, în care totce este nesemnificativ în raport cu obiectivul urmarit este eliminat.

Un program este format din instructiuni dispuse într-o succesiune Js1,Js2, Js3, ..., Jsn. Fiecare limbaj de programare contine:

• instructiuni alternative;• instructiuni repetitive;• expresii de atribuire;• apeluri de functii;• operatii de I/E;• instructiuni de revenire;

• evaluari expresii.

Clasificarea instructiunilor are niveluri diferite de detaliere. Esteimportant ca o data definite tipurile de instructiuni sa se elaboreze softwarecare genereaza automat programe sursa normalizate.

Normalizarea programelor se realizeaza prin efectuarea urmatoareloroperatii:

• eliminarea spatiilor si a altor caractere de control ale editoarelorde text;

• generarea de nume pentru variabile si pentru constante;

• reordonarea alfabetica dupa nume sau dupa lungimea instructiuniica numar de caractere si, în caz de egalitate, se procedeaza laordonare alfabetica.

Program Evaluare Amprenta

Page 159: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 159/203

 

Produsul software determina nivelurile indicatorilor de stabilire aamprentei unui program sursa.

De exemplu, pentru programul sursa care determina valorileformelor analitice ale normei unei matrice, avem:

- lungimile fisierelor sursa, obiect si executabil:

Lungime fisiere în functie de tipTabel 8.22

Tip fisier Lungime fisier

(baiti)

Fisier sursa 1138

Fisier obiect 4063

Fisier executabil 167982

- complexitatea programului este Ccp = 1898,25;

- lungimea vocabularului programului:

Numarul de cuvinte în functie de tipTabel 8.23

Tip cuvinte Numar cuvinte

Cuvinte cheie 9

Cuvinte utilizator 9

- lungimea alfabetului:

Numar de caractere în functie de tipTabel 8.24

Tip caracter Numar caractere

Litere 17

Caractere speciale 24

- frecvente de aparitie a instructiunilor:

Page 160: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 160/203

 

Frecvente de aparitie a instructiunilor

Tabel 8.25 

Tip instructiune Frecventa de aparitie

 Numar module  0

 Numar instructiuni for   9

 Numar instructiuni if   4 Apeluri functii  0

 Evaluari expresii  56 

 Numar instructiuni while  0

Operatii de intrare  2

Operatii de iesire 3

- frecvente de aparitie litere si simboluri speciale:

Frecventele de aparitie a caracterelor utilizate în programTabel 8.26

Simbol Frecventa de aparitie

i 70

 n 39

 c 6 

l  2

u 4

 d  11

e 10

 s 16 

 t 11

 o 15

 m 12

 a 24

 j 25

 f  18

 r 16 

 p 3

 h 2

 #  2

< 17 > 2

(  23

Page 161: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 161/203

 

 ) 23

{  6 

 } 6 

 [  48

 ]  48

 ; 22 , 8

 . 2

= 18

++ 10

 „ 5

”  5

 \ 3

: 1

% 6 

& 2+= 8

* 4

- 2

+ 3

Cu ajutorul indicatorilor prezentati anterior se definesc caracteristicide baza ale programului cu care se construieste amprenta acestuia.Indicatorii construiti definesc procesele de clonare pentru a fundamentacertificarea originalitatii produselor software.

Fie indicatorii A1

, A2

, …nk 

 A . Acest numar kn trebuie ales astfel încâtoricare ar fi doua programe Pi, P j diferite, sa existe cel putin un indicator Ar,

pentru ca r 

 j

i  A A ≠ , astfel încât gradul de asemanare este:

1ij

n

GAk 

α=   (8.25)

unde a arata câti indicatori Ai =A j.

Page 162: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 162/203

 

Fie programele Pi:

int a=2;

int b=3;

int c=3;

c=a*b;a++;

b--;

c+=a/(b*b);

si P j:

int a,b,c;

a=2;

b=c=3;c+=a*b;

c+=a--+b++;

if(c>1) c++;

Pentru aceste doua programe se calculeaza urmatorii indicatori:1. lungimea programelor ca numar de caractere, dupa normalizare,

A1;

Lungimea programelor Pi si P j

Tabelul 8.27 Pi P j

 Numar de caractere(A1)

49 50

2. lungimea vocabularului ca numar de cuvinte, A2;

Page 163: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 163/203

 

Lungimea vocabularelor programelor Pi si P j 

Tabelul 8.28 

Pi P j

 Numar de cuvinte

(A2)

3 4

3. numarul mediu de caractere pe linie, A3;Numarul de caractere pe fiecare linie este dar în tabelul urmator:

Numarul caracterelor pe fiecare linie în programele Pi si P j 

Tabelul 8.29 Numar linie Pi P j

1 8 102 8 43 8 64 6 75 4 116 4 127 11 -

Total 49 50

Numarul mediu de caractere pe linie, pentru cele doua programe, Pi siP j este evidentiat în tabelul urmator:

Numarul mediu de caractere pe linie în programele Pi si P j Tabelul 8.30 

Pi P j

 Numar mediu de

caractere pe linie

(A3)

7 8,33

4. dispersia, A4;

n

 x x A

n

i

i

∑= −= 1

2

4)(

  (8.26)

Page 164: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 164/203

 

Pentru cele doua programe, valoarea dispersei este în tabelul:

Dispersia pentru programele Pi si P j 

Tabelul 8.31 

Pi P j

 Dispersia(A4)

5,42 8,21

5. complexitatea programelor în sens Halstead, A5;

 A5 = n1 log1 n1 + n2 log2 n2 (8.27)

unde:• n1 – numarul de operanzi;• n2 – numarul de operatori.

Numarul operanzilor si operatorilor din cele doua programe este:

Numarul operanzilor si operatorilor în programele Pi si P j 

Tabelul 8.32 

Pi P j

n1 15 12

n2 18 20

Astfel, pentru programele Pi si P j, avem valorile:

Complexitatea Halstead pentru programele Pi si P j 

Tabelul 8.32 

Pi P j

Complexitatea Halstead 

(A5)

133,89 129,68

6. complexitatea McCabe a celor doua programe, A6;

2216 +−= mm A (8.27)

Page 165: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 165/203

 

unde:- m1 – numarul de arce din graful programului;- m2 – numarul de noduri din graful programului.Astfel, cele doua programe au complexitatea McCabe exprimata în

tabelul urmator:

Complexitatea McCabe pentru programele Pi si P j 

Tabelul 8.33 

Pi P j

Complexitatea Halstead 

(A6 )

1 2

7. calculul indicatorului A7, identic cu indicatorul kc.

}1|,{|max

||1

7 jan

 ja

 Ai

n

 j

 j

−⋅

=∑=   (8.28)

Sortare instructiuni program Pi în functie de lungimea data în numarde caractere:

Ierarhizarea instructiunilor în functie de numarul de caractere

pentru programul Pi 

Tabelul 8.34 

Instructiune Pozitie veche Pozitie noua Lungime

c+=a/(b*b); 7 1 11

int a=2; 1 2 8

int b=3; 2 3 8

int c=3; 3 4 8

c=a*b; 4 5 6 

a++; 5 6 4

b--; 6 7 4

Page 166: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 166/203

 

Sortare instructiuni program P j în functie de lungimea data în numarde caractere:

Ierarhizarea instructiunilor în functie de numarul de caracterepentru programul Pi 

Tabelul 8.35 

Instructiune Pozitie veche Pozitie noua Lungime

if(c>1) c++; 6 1 12

c+=a--+b++; 5 2 11

int a,b,c; 1 3 10

c+=a*b; 4 4 7 

b=c=3; 3 5 6 

a=2; 2 6 4

Valorile indicatorului A7 pentru Pi si P j sunt:

Valorile indicatorului A7 pentru programele Pi si P j

Tabelul 8.36 

Pi P j

 A7   0,28 0,53

Valorile acestor indicatori sunt prezentate în tabelul sintetizatorurmator:

Valorile indicatorilor pentru programele Pi si P j 

Tabelul 8.37 

Indicator Pi P j a

 A1 49 50 0

 A2 3 4 0

 A3 7 8,33 0

 A4 5,42 8,21 0

 A5 133,89 129,68 0

 A6  1 2 0

 A7  0,28 0,53 0

Total 0

Page 167: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 167/203

 

Pe baza datelor din tabelul de mai sus, se calculeaza indicatorulsintetic:

07

0===

k Gij

α 

Amprenta programului P este:- un sir de valori;- un indicator agregat.

8.4 Metrici ale ortogonalitatii masivelor bidimensionale

Se defineste un sistem de indicatori pentru evaluarea asemanariiexistente între masive bidimensionale.

Se considera un ansamblu format din mai multe masivebidimensionale pentru care se cerceteaza masura în care sunt identice sauasemanatoare. În acest sens se considera criterii precum:

• identitatea valorilor elementelor aflate pe aceeasi pozitie în cadrulmatricelor;

• identitatea ponderilor elementelor în cadrul matricelor; ponderilese calculeaza atât în functie de totalul pe linii cât si în functie detotalul pe coloane.

Compararea se efectueaza pentru perechi de matrice, în final gradele

de asemanare obtinute sunt agregate obtinându-se gradul de asemanare a întregului lot de masive considerat.Stabilirea asemanarii în functie de valorile elementelor aflate pe

aceeasi pozitie în cadrul masivelor bidimensionale presupune construireamatricei care ia valorile:

• 0, daca pe aceeasi pozitie din cele doua matrice sunt valoridistincte;

• 1, daca pe o aceeasi pozitie din cele doua masive bidimensionalese afla elemente cu valori identice.

Pentru a obtine gradul de asemanare a doua matrice în functie de

acest criteriu se însumeaza valorile elementelor matricei rezultate dupacomparare, iar suma împarte la numarul total de elemente ale masivului.

Page 168: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 168/203

 

Expresia analitica a acestui indicator, ?1, are urmatoarea forma:

11

1 11

( 1) ( 1)

cnm

ij

i j

c

b

m nγ 

++

= ==+ ⋅ +

∑∑  (8.29)

unde:- b – matricea de stocare a valorilor privind identitatea elementelor

din cadrul matricelor;- m+1 – numarul de linii al matricelor (inclusiv linia de total);- nc+1 – numarul de coloane al matricelor (inclusiv coloana de

total).Compararea matricelor în functie de ponderi presupune:- calcularea de ponderi ;- construirea a doua matrice care contin valorile rezultate dupa

comparare:• 0, daca pe o aceeasi pozitie în cadrul celor doua masive

bidimensionale se afla ponderi cu valori diferite;• 1, daca pe o aceeasi pozitie se afla ponderi cu aceeasi

valoare.

Indicatorii ?2 si ?3 au expresiile analitice:

1

1 12 ( 1 )

cnm

i j

i j

c

c

m nγ 

+

= ==+ ⋅

∑ ∑  (8.30)

unde:- c – matricea de stocare a elementelor privind identitatea valorilor

ponderilor (calculate în functie de totalul pe linii) aflate pe oaceeasi pozitie în cadrul matricelor;

- m+1 – numarul de linii pentru care se calculeaza aceste ponderi;- nc – numarul de coloane pentru care se calculeaza aceste ponderi.

când reperul considerat este totalul pe linii;

Page 169: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 169/203

 

1

1 13 ( 1)

cnm

i j

i j

c

m nγ 

+

= ==⋅ +

∑ ∑  (8.31)

unde:- d – matricea de stocare a valorilor elementelor privind identitatea

ponderilor (calculate în functie de totalul pe coloane) aflate pe oaceeasi pozitie în cadrul matricelor care sunt comparate;

- m – numarul de linii pentru care se calculeaza aceste ponderi;- nc+1 – numarul de coloane pentru care se calculeaza aceste

ponderi.când reperul considerat este totalul pe coloane.Completarea celor doua matrice se efectueaza în functie de reperul

luat în considerare la calculul ponderilor, total pe linii, respectiv, total pe

coloane.În final, pentru a sintetiza gradele de asemanare ce corespund celortrei criterii se calculeaza un indicator, ?p, care reflecta gradul de asemanaremediu al celor doua masive bidimensionale ca medie geometrica întregradele de asemanare partiale. Acest indicator este utilizat ulterior pentru acalcula gradul de asemanare a întregului lot de matrice considerat.

3321 γ γ γ γ  ⋅⋅= p   (8.32)

Gradul de asemanare γ f 

a lotului de devize reprezentat ca lot dematrice se calculeaza ca medie geometrica între gradele de asemanare finaleobtinute în urma compararii masivelor bidimensionale doua câte doua.

2

2

1

n

n

i

 pi f  ∏=

= γ γ   (8.33)

unde:- C 2

n - numarul de comparatii efectuate ;

- γ pi - gradul de asemanare mediu al devizului i;

Page 170: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 170/203

 

 8.5 Matricea de precedente

Un program este format din instructiuni dispuse într-o succesiune Js1,Js2, Js3, ..., Jsn. Fiecare limbaj de programare contine:

v instructiuni alternative;v instructiuni repetitive;v expresii de atribuire;v apeluri de functii;v operatii de I/E;v instructiuni de revenire;v evaluari expresii.

Clasificarea instructiunilor are niveluri diferite de detaliere. Esteimportant ca o data definite tipurile de instructiuni sa se elaboreze softwarecare genereaza automat matricele de precedente. În continuare se noteaza:

- a1 – instructiuni de salt conditionat;- a2 – instructiuni repetitive;- a3 – evaluari de expresii;- a4 – apeluri de functii;- a5 – operatii de I/E.

Matricea Aa contine elemente aij care indica frecventa instructiunilorde tip ai care urmeaza instructiunilor de tip a j. Programului:

a=1;

b=7;

c=5; for(...) c++;

 for(...) a++; for(...) b++;

c++;

if(...) printf(...);if(...) printf(...);

max(...);

i se asociaza matricea de precedente:

Page 171: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 171/203

 

Matricea de precedente a programului

Tabelul 8.38 a1 a2 a3 a4 a5

a1 1 1a2 2 1a3 1 2a4 1a5 1

Doua programe clone au matrice de precedente egale. Un program Peste format din instructiunile I1, I2, …, INi. 

Metrica McCabe ia în considerare graful Gr(Vn, Aa), unde Vn estemultimea nodurilor si Aa este multimea arcelor. Se considera programulurmator:

void main ()

{ I 1int a, b, c, d, e, x;a= 3; I 2b = 5; I 3c =8; I 4 

b = 7; I 5 

scanf(“%d”, &x); I 6 

if (x>0) I 7 

e = a + b; I 8else

e = c + d; I 9

 printf(“%d”,e); I 10  }

 I 11

Programului i se asociaza graful Gr din figura 8.2.

Page 172: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 172/203

 

 

Start

a = 3

b = 5c = 8

d = 7

scanf( )if 

e = c + d e = a + b

printf( )

Stop

Figura 8.2 Graful asociat programului.

Precedenta este rezultatul dispunerii instructiunilor în program în asafel încât acestea sa conduca la obtinerea de rezultate corecte. O problema seobtine prin scrierea a N programe diferite, care însa implementeaza acelasialgoritm. Diferentele care apar sunt determinate de: limbajul utilizat,

structurile de date definite si referite, structurile de control folosite, gradulde generalitate, dimensiunea problemelor care se rezolva, preciziarezultatelor, optiunile privind datele de intrare si structura rezultatelorobtinute, nivelul de reutilizabilitate a procedurilor, a tipurilor de date, aclaselor.

Matricele de precedenta difera de la program la program, chiar dacaeste vorba de rezolvarea aceleiasi probleme. Pentru ca instructiunile,succesiunea lor determina grafuri diferite. În [IVAN99] este definita metricabazata pe matricea de precedenta, cu luarea în considerare a lungimilorarcelor, determinate de diferenta în modul a pozitiei instructiunilor executateconsecutiv. Astfel metrica LIL1 se defineste prin:

 A jisi ji ji LILii j

∈≠−=∑∑ ),(,1  (8.34)

Page 173: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 173/203

 

iar metrica LIL2 se defineste prin:

( )  A jisi ji ji LILii j

∈≠−=∑∑ ),(,22

  (8.35)

Experimentele evidentiaza diferentele care apar între programele încare lungimea ar-celor este mare, ceea ce metrica McCabe nu reflecta.

Software elaborat pentru implementarea metricilor  LIL1,  LIL2precum si a formelor normate:  LIL1N =  LIL1 / max ( LIL1), LIL2N =  LIL2 / max ( LIL2), conduce la evaluarea coeficientilor de corelatie ale carorniveluri sunt cuprinse între 0.70 si 0.90, ceea ce exprima posibilitateautilizarii oricarei dintre metrici, rezultatele fiind asemanatoare.

8.6 Matricea dependentelor

Se considera programul P, format din instructiunile I1, I2, …, INi.Instructiunea Ik depinde de instructiunile Ik-1, Ik-2, …., Ik-r daca variabileleinitializate sau modificate de acestea intervin activ în expresii sau determinacontrolul executiei Ik.

Matricea B, având nm linii si nm coloane, a dependentelor areelementele:

 jinstr.dedepindeiinstr.daca1,

 jinstr.dedepindenuiinstr.daca0,=ijb  

Se considera bii = 1, instructiunea depinzând de ea însasi.Se considera programul P1 :

void main( ){

int a, b, c, d;a = 1; // I 1 

b = 2; // I 2 c = 7; // I 3 d = 114; // I 4 

 }

Page 174: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 174/203

 

Programului P1 i se asociaza matricea dependentelor:

I1 I2 I3 I4 I1 1 0 0 0I2 0 1 0 0I3 0 0 1 0I4 0 0 0 1

Se observa ca instructiunile programului P1 sunt independente unade celelalte si li se asociaza matricea unitate a dependentelor. ProgramuluiP2 :

void main( )

{

int a, b, c, d;,e

a = 4; // I 1 

b = a+5; // I 2 c = b+120; // I 3 d = b+a+c; // I 4e = c+d; // I 5 

 printf (“ \n %d %d %d %d %d”, a, b, c, d, e); // I 6  

 } 

i se asociaza matricea dependentelor:

I1 I2 I3 I4 I5 I6 I1 1 0 0 0 0 0

I2 1 1 0 0 0 0I3 0 1 1 0 0 0I4 1 1 1 1 0 0I5 0 0 1 1 1 0I6 1 1 1 1 1 1

Programului P3 :

void main ( )

{int a,b,c,d,e,i;

scanf( “%d”,&a); // I 1 if (a>5) { // I 2 

Page 175: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 175/203

 

scanf(“%d”,&b); // I 3 

d = a+b; // I 4  }

else {

scanf(“%d”,&c); // I 5 

d = a + c ; // I 6  

 }e = d ++; // I 7  

 for(i =0 ;i<7;i++) // I 8 

e += a; // I 9  printf(“%d”,e); // I 10 

 }

i se asociaza matricea dependentelor:

I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 

I1 1 0 0 0 0 0 0 0 0 0I2 1 1 0 0 0 0 0 0 0 0I3 0 1 1 0 0 0 0 0 0 0I4 0 1 1 1 0 0 0 0 0 0I5 0 1 0 0 1 0 0 0 0 0I6 1 1 0 0 1 1 0 0 0 0I7 0 0 0 1 0 1 1 0 0 0I8 0 0 0 0 0 0 0 1 0 0I9 1 0 0 0 0 0 1 1 1 0I10 0 0 0 0 0 0 0 0 1 1

 Indicatorul de dependente.  Se considera matricea dependentelor Bavând elementele bij ∈{0,1}. Se calculeaza complexitatea:

21 1 1

(( )log ( ))m m mn n n

d ij ij

i j j

C b b= = =

=∑ ∑ ∑   (8.36)

bazata pe dependente. Cd apartine intervalului [0,θ ] unde ∑=

=n

i

ii1

2logθ  

pentru ca se lucreaza cu matricea inferior triunghiulara.

Page 176: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 176/203

 

Normarea indicatorului bazat pe dependente se va realiza astfel:

21 1 1

2

1

( log ( ))

log

m m m

m

n n n

ij ij

i j j

d  n

i

b b

i i

= = =

=

=∑ ∑ ∑

∑  (8.37)

Matricea dependentelor maxime pentru un program cu 5 instructiunieste:

I1 I2 I3 I4 I5 I1 1 0 0 0 0I2 1 1 0 0 0I3 1 1 1 0 0I4 1 1 1 1 0I5 1 1 1 1 1

Daca programul are toate instructiunile de atribuire independente între ele sau contin exclusiv afisarea unor texte, atunci matriceadependentelor este o matrice unitate si Cd,   Cd sunt 0.

Instructiunile se grupeaza în doua categorii în functie de dependenta:instructiuni slab dependente si instructiuni puternic dependente.

Se noteaza1

mn

i ij

 j

b b=

=∑ . Se alege elementul maxim din sirul b1 , b2, …,

bn:

{ }ini

bb,1

max max=

=   (8.38)

Se calculeaza valoarea ∆ = (bmax –1 )/2 .Fie:

11 1

11 max

m

m

n

 p i

n

i

ibi

ib bi

 M b

 N b

=≤ ≤∆+

=∆ + < ≤

=

=

  (8.38, 8.39)

Page 177: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 177/203

 

Complexitatea gradata a programului este data de relatia :

2 2log log p pCg M M N N  = +   (8.40)

2 2

2

log log

( )log ( )

 p p

 p p

 M M N N Cg

 M N M N 

+=

+ +  (8.41)

Se considera un program P4 având matricea dependentelor:

11 11 0 10 1 1 11 0 0 1 11 0 1 1 1 1

0 1 0 0 1 1 1

Sirul bi este format din elementele: {1, 2, 2, 3, 3, 5, 4}, bmax = 5, ∆ =2, Mp=1+2+2+3+3 = 11, N = 5 + 4 = 9.

9log911log11 22 +=gC  = 66.58

20log20

9log911log11

2

22 +=gC  = 0.77025

Complexitatea calitativa Ca opereaza cu numarul de componenteapartinând intervalelor [1, ∆+1] si (∆+1, bmax].

Fie M1 numarul de elemente din sirul b1, b2, ...,  bn pentru care bi ∈ [1, ∆+1] si N1 numarul de elemente din sirul b i∈ (∆+1, bmax]. 

Astfel:1log11log1 22  N  N  M  M Ca +=   (8.42)

nn

 N  N  M  M Ca

2

22

log

1log11log1 +=   (8.43)

Page 178: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 178/203

 

Pentru programul P4, M1 = 5, numarul de elemente din sirul b1, b2, …,

bn pentru care bi ∈ [1, ∆+1], iar N1 = 2, numarul de elemente din sirulbi∈(∆+1, bmax]. 

2log25log5 22 +=Ca = 13,6

)17(lg7

2log25log5

2

22

+=Ca =0,69

În cazul în care sunt luati în considerare coeficienti de importanta sisunt utilizate modele neliniare se dezvolta noi metrici ale clonarii software.Este deosebit de important sa se ia în considerare ca orice model care seconstruieste sa includa printre factorii de influenta carora le corespundvariabilele exogene elemente ce rezulta din masuratori pe texte sursaefectuate automat. În cazul în care se construiesc metrici ce presupun altemodalitati de colectare a datelor, apar dificultati de încarcare baze de date,de validare a metricilor si de implementare în vederea folosirii curente.

Page 179: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 179/203

 

 

9.1 Gestionarea clonelor informatice

Lansarea unui produs informatic pe piata este înregistrata într-un Registru al produselor software. Problema care se pune este de stabili dacanoul produs este sau nu o clona a produselor înscrise deja în acest registru.

Este evident faptul ca indicatorul care reflecta gradul de asemanare întreaplicatiile informatice trebuie sa tinda spre 1 pentru a concluziona ca este oclona a unui produs program deja existent. Produsele software care seadreseaza aceluiasi segment de piata au caracteristici si functionalitatiapropiate, dar nu sunt absolut identice.

Gestionarea clonelor informatice consta, în principal, în stabilireacaracterului original al unui software si actiunile care se impun a fi luate încazul identificarii de clone informatice. Clonele informatice sunt forme

concrete de manifestare a fenomenului de piraterie software.Managementul informational reprezinta un control sistematic lainformatiei înregistrate, asigurând suport în luarea deciziilor, reducereacosturilor si atingerea obiectivelor propuse în cadrul organizatiei.

ALTE ASPECTEALE CLONARII

INFORMATICE 

Page 180: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 180/203

 

Orice tip informatie, fie în format electronic, fie în alt format dereprezentare si stocare, trebuie sa fie administrata într-o maniera eficienta siconsistenta. Aspectul esential al managementului informational consta în

asigurarea accesului la înregistrarile dorite în orice moment din ciclul lor deviata.Informatia reprezentata si stocata în format electronic prezinta

caracteristici specifice datorita varietatii de formate, suporturi si sistemeaflate în uz curent. Resursele informationale create în mediul electronictrebuie sa fie gestionate într-o maniera care asigura identificarea lorefectiva, organizarea, regasirea si mentenanta acestora.

Produsele program sunt colectii de coduri sursa, date si alteinformatii furnizate în format digital. Introducerea acestora în Registrulproduselor software se efectueaza sub forma de înregistrari într-o baza dedate. Aceste înregistrari electronice sunt obiecte de management înconcordanta cu regulile legale specifice fiecarei tari.

O aplicatie de management automat al înregistrarilor cu privire laprodusele software lansate pe piata nu numai ca le administreaza electronic,dar face posibila si gestionarea acestora pe alte medii de stocare (hârtie,film, casete audio/video, fotografii, microfilme, discuri optice si casetemagnetice).

Aplicatia de management automat trebuie sa:• ofere o baza de date centrala cu diverse tipuri de aplicatii

informatice;• control fizic al înregistrarilor electronice si stabilirea locatiei si

dispunerii documentelor non-electronice;• identificare automata a fiecarei înregistrari electronice sau non-

electronice.

Se impune ca aplicatia de gestiune automata a înregistrarilor dinRegistrul produselor software sa ofere protectia informatiilor continute înacesta împotriva:

§ accesul neautorizat;§ modificarilor necorespunzatoare;§ pierderi fizice de informatie.

Procedurile de securitate pentru documentele stocate în format

electronic trebuie sa includa controlul accesului la calculatoare sidispozitivele de stocare electronica a datelor.

Page 181: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 181/203

 

De asemenea, sunt necesare copii ale înregistrarilor esentiale.Software sau documentatia ceruta pentru regasirea si accesul la acesteatrebuie sa fie plasate într-o locatie separata unde sunt gestionate aceste copii.

Aplicatia de gestiune automata a înregistrarilor trebuie sa oferefacilitati de vizualizare, copiere, tiparire pe durata existentei acestora.Acestea presupun ca aplicatia sa dispuna de operatii:

• mentinerea în bune conditii de functionare a dispozitivelorhardware si modulelor software ale sistemului;

• realizarea de copii de siguranta a înregistrarilor importante dinbaza de date;

• asigurarea, prin intermediul dispozitivelor hardware si software,

a vizualizarii înregistrarilor în formatul nativ;• asigurarea compatibilitatii între diferitele versiuni hardware sisoftware;

• trecerea la noi formate de reprezentare si stocare a informatieiatunci când vechile formate nu mai sunt utilizate pe scara larga.

Înregistrarea în baza de date a unei noi aplicatii software trebuie sase realizeze conform unor reguli:

v stabilirea denumirii produsului;v clasificarea produsului – se asigura descrierea prin intermediul

unui profil al produsului;v stabilirea regulilor de regasire si acces la înregistrarea creata;v asigurarea controlului versiunii produsului;v detalii privind mentinerea sau eliminarea înregistrarii.

9.2 Efecte economice ale clonarii informatice

Diversele modalitati de masurare a pierderilor datorate utilizariineautorizate a clonelor informatice sunt discutabile datorita metodologiilorde aplicare a lor. În acest context, se ridica o serie de probleme:

Descresterea volumului de vânzari a copiilor legale. Numarul decopii autorizate suplimentare care ar putea fi vândute nu este identic cunumarul de duplicate realizate în mod ilegal. Copiile neautorizate suntvândute la un pret substantial inferior celui al produselor autorizate.

Efectele pirateriei software asupra preturilor de desfacere. Preturile de desfacere al produselor software sunt afectate de extindereacomertului cu copii software neautorizate. Copiile ilegale, având un nivelridicat de calitate, determina reducerea cererii pentru copiile legale,

Page 182: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 182/203

 

autorizate si cresterea numarului de utilizatori care cumpara copii ilegale înlocul celor autorizate. Efectul asupra pretului de desfacere al produselorprogram legale este fie pozitiv, fie negativ.

Efectul pozitiv apare deoarece pretul creste daca cei mai multiconsumatori sensibili la pret se îndreapta spre produsele neautorizate, întimp ce cea mai mare parte a consumatorilor nesenzitivi la pret ramân fidelipietei legale. Ca urmare, are loc o cerere mai putin senzitiva la pret, ceea cepermite producatorilor o crestere a pretului.

Efectul negativ se manifesta atunci când consumatorii nu diferafoarte mult în senzitivitatea la pret, acesta înregistrând o scadere. În acestcaz, toti consumatorii prefera sa achizitioneze produse program piratate.Astfel, efectul pirateriei software consta într-o cerere mai elastica în functiede pret a copiilor autorizate.

Estimarea nivelului pirateriei software. Presupunând cadezvoltarea practicilor de realizare a copiilor în mod neautorizat poate fiestimata în limite rezonabile, nu se poate presupune ca toate copiileneautorizate sunt ilegale si reprezinta piraterie.

Definitia exacta cu privire la copiile legale face obiectul unorcontroverse. Opiniile diferite exprimate cu privire la legalitatea copiilor aucondus la realizarea unor statistici diverse asupra consecintelor economice

ale dezvoltarii pirateriei.Anticiparea pirateriei. Anticiparea procesului de copiere ilegala de

software determina ca anumite produse sa nu fie niciodata lansate pe piatadeoarece producatorul nu considera ca vânzarile de pe piata autorizata suntsuficiente pentru a acoperi costurile de productie si distributie.

În acest caz, pierderile producatorului sunt reprezentate de profitul sialte drepturi banesti care decurg din vânzarea produsului. De asemenea,consumatorii sufera si ei un cost egal cu diferenta între valoarea pe care ar fi

obtinut-o cu ajutorul produsului si pretul de achizitie al acestuia.Pierderi non-profit. Exista pierderi cauzate de pirateria softwarecare nu sunt direct legate de profit. Reputatia unui producator de softwareare de suferit daca pe piata circula copii neautorizate, de o foarte slabacalitate, în scopul degradarii reputatiei în fata potentialilor clienti.

Pentru a face fata provocarilor lansate de pirateria software,eforturile s-au îndreptat în directia protejarii produse program. Exista maimulte modalitati de a combate pirateria. Una dintre principalele metodeconsta în oferirea unei protectii chiar de software însusi prin intermediulunui numar de identificare „serial number”. Aceasta tehnica de protectieconsta doar în introducerea unui „serial number” valid si nimic altceva.

În general, „serial number” este independent de numele de utilizator,dar exista produse la care acesta este derivat din numele utilizatorului. În

Page 183: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 183/203

 

aceasta situatie, utilizatorul este mai putin tentat de a da altcuiva cheia deactivare a produsului sau de a face-o publica pe Internet.

Scheme mai avansate prevad generarea numarului pe baza

componentelor hardware din sistem. Se genereaza un unic „computer id”specific fiecarui computer.O alta forma de protectie consta în atasarea unui dispozitiv la unul

din porturile calculatorului. La lansarea aplicatiei se verifica existentaacestui dispozitiv, programul nefunctionând daca lipseste. O protectiesuplimentara este oferita de încriptarea cu ajutorul unui algoritm care nupoate fi spart a comunicatiei între aplicatia software si dispozitiv. Acestedispozitive sunt utilizate în principal pentru aplicatii specializate si au unpret ridicat.

Exista o tehnica de protectie a copierii si pe mediile de stocare de tipCD. Solutia este una bazata pe software si consta în includerea uneisemnaturi digitale pe suportul CD.

Pirateria software distruge fluxul de venituri al companiilor micicare au gasit nise pe piata. Fara acest flux de venituri companiile mici ramânfara sursa de dezvoltare de noi inovatii software, reducându-se astfelposibilitatea de a face profit.

În plus, includerea unei modalitati de protectie la copiere a

produsului software realizat este foarte scumpa pentru anumite companii.De exemplu, dispozitivul hardware mentionat mai sus aduce un pretsuplimentar de 5$ pâna la 20$ pentru fiecare copie a programului. Totodata,acesta nu faciliteaza distribuirea produsului prin Internet si, deci, o piatapotentiala mai restrânsa pentru producator.

Pirateria software afecteaza si consumatorul. Adesea, ca urmare afolosirii unei copii neautorizate acesta beneficiaza de un produs incompletsau deteriorat. De asemenea, nu se obtine acces la suportul producatorului,

materiale de instruire sau noi versiuni la un pret scazut. În plus, expertiispun ca de multe ori produsul software piratat contine virusi care distrugdatele utilizatorilor stocate pe disc, iar tehnicile de protectie nu sunt agreatede utilizatori datorita complexitatii acestora de instalare si utilizare.

În concluzie, pirateria software este un fenomen negativ atât pentruindustrie, cât si pentru utilizatori. Protectia copierii de software pare a fi mairea decât fenomenul de piraterie în sine. În multe cazuri, tot ceea ce faceprotectia la copiere a produselor program este de a îngradi accesulutilizatorilor legali la software.

Page 184: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 184/203

 

9.3 Instrumente pentru identificarea clonelor

Instrumentele pentru identificarea clonelor informatice actioneaza

asupra urmatoarelor elemente supuse analizei:v texte;v cod sursa scris în limbajul de programare C++;v devize de cheltuieli, care însotesc diverse documente.

Analiza gradului de asemanare între texte se realizeaza prinintermediul programului Texte.exe [POPA02]. Acest program determina oserie de indicatori prezentati în capitolele anterioare, si anume:

Ø gradul de asemanare al textelor în functie de lungimea acestora;Ø gradul de asemanare al textelor în functie de frecventele de

aparitie a caracterelor alfabetice;Ø gradul de asemanare al textelor pe baza vocabularului utilizator;Ø gradul de asemanare al textelor pe baza vocabularelor textelor;Ø gradul de asemanare al textelor în functie de frecventele minime

si maxime ale vocabularului comun;Ø gradul de asemanare al textelor prin împartirea textului în

paragrafe.

Sistemul de fisiere utilizat de aceasta aplicatie cuprinde urmatoareleelemente:

§ fisierul care contine numele fisierelor care formeaza lotul supusanalizei comparative; acest fisier este memorat pe disculmagnetic sub numele de fisiere.dat ;

§ textele care se compara la un moment dat; sunt memorate îndoua variabile globale ale aplicatiei date prin variabilele de tip

vector de caractere cu numele: numef1, numef2;§ fisierul care memoreaza cuvintele vocabularului definit deutilizator; este folosit prin intermediul unei variabile globale asistemului, având denumirea de numef3; acesta este un fisier text,care memoreaza pe prima linie numarul de cuvinte alevocabularului, iar pe rândurile urmatoare fiecare cuvânt în parte;

§ fisierul care stocheaza gradele de asemanare între texte; esteformat din articole ce contin fiecare câte o variabila ce reflectagradul de asemanare între doua texte; este memorat pe disc subnumele de grade_txt.dat ;

§ fisierele care memoreaza vocabularele textelor care se comparala un moment dat, date prin numef1 si numef2; continutulacestora se modifica, fiind suprascrise atunci când se compara

Page 185: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 185/203

 

alte texte, date de asemenea prin numef1 si numef2; primularticol al vocabularelor fisierelor care se compara continenumarul de cuvinte ce formeaza vocabularul; celelalte articole au

structura:• nume variabila; este un sir de caractere care memoreaza

denumirile variabilelor utilizate în program;• frecvente de aparitie în text a cuvântului corespunzator

identificat;Fisierele sunt memorate pe disc sub numele de voc_f1.dat  si

voc_f2.dat ;v fisierele care contin denumirile fisierelor paragraf; fisierele

paragraf sunt formate fiecare din câte un paragraf al unui text,acestea fiind memorate pe discul magnetic sub numele de fis*.dat ,respectiv gis*.dat , unde * ia valorile 0,1,2,... în functie denumarul de paragrafe identificate în textele care sunt comparate;fisierele care memoreaza aceste nume de fisier-paragraf suntdenumite si stocate pe suport extern sub numele de  para_f1.dat ,pentru numef1, si, respectiv, para_f2.dat , pentru numef2.

v fisiere care sunt formate din vocabularele fisierelor-paragraf;structura acestor fisiere este identica cu cea a fisierelor care

memoreaza vocabularul textelor; sunt stocate pe disc sub numelede voc_pf1.dat si voc_pf2.dat , continutul acestora schimbându-seatunci când sunt comparate alte texte;

v fisierul care memoreaza gradele de asemanare între paragrafepentru doua texte comparate la un moment dat; acesta este stocatsi utilizat sub numele de grade_para.dat ; structura sa cuprindearticole de tip double, dimensiunea în articole fiind egala cuprodusul între numarul de paragrafe al textelor care se compara.

Aplicatia furnizeaza valoarea sintetica a gradului de asemanare aunor texte pe baza urmatoarelor operatii de introducere a datelor:

- deschidere fisiere de lucru. Sunt introduse date cu privire lalotul de fisiere care sunt supuse analizei. Datele introdusevizeaza urmatoarele elemente:• numarul de fisiere supuse analizei;• denumirile de fisier care formeaza lotul textelor supuse

analizei.- construire vocabular definit prin utilizare . Consta încrearea unui vocabular de catre utilizator pentru contorizarea

Page 186: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 186/203

 

frecventelor de aparitie a cuvintelor din acesta. Datele pe careutilizatorul trebuie sa le introduca sunt:• numarul de cuvinte al vocabularului utilizator;•

numele fisierului în care este memorat vocabularulutilizator;• cuvintele vocabularului utilizator.

Analiza gradului de asemanare între programele sursa scrise înlimbajul de programare C++ se realizeaza cu ajutorul aplicatiei Orto.exe [POPA02]. Valorile calculate de aplicatie pe fisiere sursa C++ vizeazaurmatorii indicatori:

gradul de asemanare în functie de lungime exprimata în numarulde octeti ocupati pe suportul de stocare;• gradul de asemanare în functie de frecventele de aparitie a

caracterelor alfabetice;• gradul de asemanare în functie de frecventele de aparitie a

cuvintelor din vocabularul utilizator;• gradul de asemanare în functie de frecventele de aparitie a

cuvintelor din vocabularul acestora;•

gradul de asemanare în functie de frecventele de aparitie acaracterelor alfabetice si frecventele de aparitie a cuvintelor dinvocabularul paragrafelor;

• gradul de asemanare în functie de frecventele de aparitie avariabilelor definite în cadrul programelor sursa;

• gradul de asemanare în functie de pozitia variabilelor înprogramele sursa;

• gradul de asemanare în functie de frecventele de aparitie, minimesi maxime, a cuvintelor din vocabularele fisierelor;

• grade de asemanare în functie de matricele de precedenta aleinstructiunilor din fisierele comparate.

Sistemul de fisiere utilizat de aplicatie cuprinde urmatoareleelemente:

- fisierul care memoreaza gradele generale de asemanare întreprogramele sursa C++, care sunt determinate pe baza criteriilordefinite; numele sub care este memorat pe disc acest fisier estegrade_text.dat ;

- fisierul care memoreaza gradele partiale de asemanare pentrufiecare pereche de fisiere care se compara; denumirea acestuifisier este grade_ptxt.dat ; articolele acestui fisier sunt vectori,

Page 187: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 187/203

 

numarul de articole fiind dat de numarul de comparatii, iardimensiunea articolului este egala cu numarul de criterii definite;

- fisierul care retine vocabularul definit de utilizator; este un fisier

text care memoreaza pe fiecare linie câte un cuvânt dinvocabular; prima linie este ocupata de dimensiuneavocabularului exprimata în cuvinte; articolele acestui fisier suntsiruri de caractere, fiecare sir memorându-se pe câte un rând;este utilizat prin intermediul unei variabile globala a aplicatieisub denumirea numef3;

- fisiere care sunt utilizate pentru retinerea numelor fisierelor carese compara la un moment dat; acestea sunt folosite în aplicatiesub forma variabilelor globale care sunt de tip sir de caractere siau denumirile numef1 si numef2;

- fisierul care memoreaza denumirile tuturor fisierelor careformeaza lotul supus analizei comparative; este un fisier de datebinar, iar denumirea sa este fisiere.dat ;

- fisiere utilizate pentru stocarea tipurilor de date utilizate înprogramele sursa C++; articolele au urmatoarea structura:• cheie tip - este un câmp al articolului prin care se identifica în

mod unic un tip de date în cadrul fisierului;• denumire tip - este un câmp care memoreaza denumirea

tipului de date care corespunde codului specificat în celalaltcâmp.

Denumirea acestora fisiere are forma tipuri_*.dat , unde *reprezinta denumirea unui fisier care se compara la un momentdat;

- fisierele care memoreaza variabilele identificate în cadrulcodurilor sursa; articolele au urmatoarea structura:

• codul tipului de date al variabilei;• tipul variabilei: simpla, pointer, masiv;• dimensiunea tipului variabilei;• denumirea variabilei;• frecventa de aparitie a acesteia în cadrul programului.Denumirea fisierelor are forma variab_*.dat , unde * reprezintanumele unui fisier care se compara al un moment dat;

- fisierele care retin frecventele de aparitie a variabilelor dupa

instructiuni; structura articolelor acestor fisiere este:• denumire instructiune;• frecventele de aparitie a variabilelor dupa instructiune.

Page 188: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 188/203

 

Denumirea acestor fisiere are forma instr_var_*.dat , unde *reprezinta numele fisierului care se compara la un anumitmoment.

- fisierele care memoreaza instructiunile de atribuire; utilizate învederea construirii matricelor de precedenta a fisierelor care secompara; denumirea acestor fisiere are forma instr_atrib_*.dat ,unde * reprezinta numele fisierului care se compara la unmoment dat; articolele acestor fisiere sunt siruri de caractere;

- fisierele care stocheaza matricele de precedenta; articolele suntvariabile de tip int ; forma denumirii acestor fisiere estemat_prec_*.dat , unde * este numele unui fisier care se comparala un moment dat;

- fisierele care memoreaza lungimile în octeti a fisierelor;denumirile acestora au forma lung_*.dat , unde * este numeleunui fisier care se compara la un moment dat, iar articolele suntvariabile de tip long;

- fisierele care memoreaza frecventele de aparitie a caractereloralfabetice din fiecare fisier din lotul considerat; articolele acestorfisiere sunt vectori, iar denumirea lor este de tipul  frecv_*.dat ,unde * reprezinta numele unui fisier care se compara la un

moment dat;- fisierele care memoreaza frecventele de aparitie a cuvintelor care

formeaza vocabularul fisierelor care sunt supuse analizei; primularticol a acestor fisiere reprezinta numarul de cuvinte alvocabularului care este memorat prin intermediul unei variabilede tip long; celelalte articole au urmatoarea structura:• denumire cuvânt;• frecventa de aparitie a cuvântului

Denumirile acestor fisiere au forma vocf_*.dat , unde * reprezintanumele unui fisier care se compara la un moment dat;- fisierele care stocheaza frecventele de aparitie a cuvintelor din

vocabularul definit de utilizator; articolele acestor fisiere suntvectori; denumirile acestor fisiere au forma voc_*.dat , unde *este numele unui fisier sursa C++ care se analizeaza la unmoment dat;

- fisierele care memoreaza sumele minime si maxime ale

frecventelor de aparitie a cuvintelor care formeaza vocabularelefisierelor care se compara; articolele acestor fisiere sunt de tiplong; denumirile lor sunt sumamin_*.dat , pentru sumafrecventelor minime, respectiv, sumamax_*.dat , pentru suma

Page 189: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 189/203

 

frecventelor maxime; * reprezinta un sir de caractere format princoncatenarea numelor celor doua fisiere care se compara la unmoment dat;

- fisierele care retin gradele de asemanare între paragrafeleidentificate în cadrul fisierelor sursa care se compara la unmoment dat; articolele acestor fisiere sunt de tip double, iardenumirea lor are forma grade_para_*.dat , unde * este un sir decaractere obtinut prin concatenarea numelor fisierelor sursa carese compara la un moment dat;

- fisierele care memoreaza frecventele de aparitie a caractereloralfabetice dintr-un paragraf al unui fisier sursa C++ care estesupus analizei comparative la un anumit moment; articoleleacestor fisiere sunt vectori de elemente de tip int , iar denumirealor este frecv_para_*.dat ; * reprezinta un sir de caractere formatprin concatenarea numelor fisierelor care se compara sisuccesiunea data de numarul paragrafelor în cadrul fisierelor.

Obtinerea valorii indicatorului sintetic de asemanare a fisierelorsursa dintr-un set de asemenea elemente are loc pe baza urmatoareloroperatii de introducere a datelor:

- deschidere fisiere de lucru. Sunt introduse informatii privind

lotul de fisiere care sunt supuse analizei. Datele furnizate sunt:• numarul de fisiere supuse analizei;• denumirile de fisier care formeaza lotul de texte sursa supus

analizei.- construire vocabula definit prin utilizare . Consta în furnizarea

unui vocabular de catre utilizator pentru contorizareafrecventelor de aparitie a cuvintelor din vocabularul dat. Aceastaoperatie presupune introducerea urmatoarelor date:• numarul de cuvinte ale vocabularului utilizator; numarul

maxim de cuvinte pe care utilizatorul le poate introduce estede 60000 de cuvinte;

• introducerea numelui fisierului în care se vor memoranumarul de cuvinte si cuvintele propriu-zise;

• introducerea cuvintelor vocabularului.

De asemenea, exista posibilitatea vizualizarii indicatorilor deortogonalitate ce corespund diferitelor criterii luate în considerare, precum sielementele pe baza carora acestia au fost determinati.

Page 190: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 190/203

 

Ortogonalitatea în cadrul unei multimi de devize de cheltuieli estesurprinsa cu ajutorul programului  Devize.exe [POPA02]. Programul oferautilizatorului mai multe modalitati de lucru:

 încarcarea unor devize preluate din fisiere existente pe disc, caresunt supuse ulterior analizei cantitative;• introducerea devize a caror structura este specificata de utilizator;• completarea unui set de devize cu structura predefinita care sunt

analizate pentru a stabili gradul de ortogonalitate.

Indicatorii de ortogonalitate care se calculeaza sunt:§ gradul de asemanare între valorile aflate pe aceleasi pozitii în

matricea asociata devizului;§ gradul de asemanare a ponderilor valorilor în totalul pe linii al

matricei;§ gradul de asemanare a ponderilor valorilor în totalul pe coloane al

matricei.

Fisierele utilizate în acest modul sunt:- devize preluate din fisiere existente pe discul magnetic:

fisierul care contine valorile devizelor; încarcat si folositprintr-o variabila globala a aplicatiei, si anume nume_dprel;• fisierul care contine structura devizelor; numele este preluat,

de asemenea, de la tastatura si este încarcat si folosit printr-ovariabila globala a aplicatiei numef_dsprel;

• fisierul care stocheaza, în urma efectuarii analizei, gradele deasemanare între devizele preluate din fisiere preluate de latastatura; se identifica pe disc sub numele grade_prel.dat ;este format din articole de tip double.

- devize create de utilizator:• fisierul care stocheaza structura devizelor; este memorat pe

discul magnetic sub numele struct_dev.dat ;• fisierul care memoreaza valorile devizelor; este stocat pe

discul magnetic sub numele de devize.dat ;• fisierul care memoreaza gradele de asemanare între devize;

stocat si utilizat sub numele de devize.dat .- devize cu structura predefinita:

• fisierul care contine structura predefinita a devizului; esteutilizat prin variabila globala a aplicatiei numef ;

• fisierul care memoreaza valorile devizelor cu structurapredefinita; se identifica pe disc prin numele devize_pdef.dat ;

Page 191: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 191/203

 

• fisierul care stocheaza gradele de asemanare între devizele custructura predefinita; articolele acestui fisier sunt de tipdouble, iar numele sub care este regasit pe disc este

grade_pdef.dat .

Operatiile de introducere a datelor necesare determinarii gradului deasemanare a devizelor de cheltuieli sunt grupate astfel:

Definirea devizelor utilizator presupune efectuarea urmatoareloroperatii:

- stabilirea structurii si continutului devizelor – presupuneintroducerea urmatoarelor elemente:• numarul de devize;• numarul de categorii de cheltuieli ale devizului;• numarul de perioade de timp pentru care se construieste

devizul.- introducerea datelor în devize – consta în completarea devizului

cu informatiile propriu-zise urmatoare:• denumirea categoriilor de cheltuieli ale devizului;• specificarea intervalelor de timp pentru care se realizeaza

devizul;• introducerea valorilor privind cheltuielile efectuate;• specificarea seriei devizului;• introducerea denumirii devizului.

Preluarea devizelor din fisiere consta în introducerea urmatoarelordate:

• denumirea fisierului încarcat cu valorile de cheltuieli;• denumirea fisierului încarcat cu structura devizului.

Analiza cantitativa a unui set de devize cu structura predefinita presupune efectuarea urmatoarelor operatii:

- initializarea structurilor de date în care se memoreazainformatii despre devize (structura, valori, grade deasemanare). Sunt introduse urmatoarele date:• denumire fisier în care se memoreaza structura

predefinita a devizului;• specificarea modalitatii de deschidere a fisierului

(pentru creare sau pentru actualizare).

Page 192: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 192/203

 

- introducerea valorilor elementelor devizelor – presupuneintroducerea de date cu privire la:• numarul de devize care se introduc în setul de analiza;•

valorile propriu-zise ale devizelor;• seria devizului.

O operatie aparte efectuata asupra devizelor consta în selectareadevizului dupa serie. Datele care trebuie introduse în vederea identificariiunui deviz sunt:

Ø seria devizului;Ø tipul devizului (utilizator, preluat de pe suportul extern de

memorie).

Page 193: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 193/203

 

 

10 CONCLUZII 

De regula, clonarea informatica produce rezultate negative datoritacelor care o efectueaza.

Când o companie livreaza un produs realizabil cu de zece ori

numarul sau de programatori, evident nu are capacitatea de a gestionacalitatea produsului software care va fi clonat. Mai mult, prin preturilepromotionale se creeaza dependenta clientilor de un produs softwareincomplet cunoscut vânzatorului si de cele mai multe ori imposibil dedepanat.

Introducerea studiului sistematic asupra clonelor are menireaobtinerii unei delimitari exacte unde începe productia reala de software siunde conduce lipsa de control asupra clonelor software.

În cazul dezvoltarii unui laborator pentru identificarea clonelor

informatice se creeaza cadrul propice stimularii echipelor care proiecteazaproduse program si baze de date pentru a solutiona probleme, cu eforturiproportionale cu complexitatea problemelor de rezolvat.

Procesele de clonare creeaza disproportii între efortul de obtinere aprodusului software în raport cu complexitatea, bineînteles în defavoareaproducatorilor reali.

Clonarea este un subiect cu mult mai larg decât clonarea din biologiesau din informatica. Clonarea se regaseste în literatura si arta, precum si întoate celelalte ramuri ale stiintei.

Page 194: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 194/203

 

În competitiile de obtinere a fondurilor participa clone, câte una lanivelul unui program sau an dupa an în cadrul aceluiasi program.

Lucrari stiintifice publicate, cu autor specificat, se regasesc în alteleaflate în librarii sau biblioteci cu multi ani înainte.

Din când în când, sunt anulate titluri stiintifice daca lucrarile pe baza

carora au fost acordate se dovedesc a fi clone. În cazul în care exista creatun sistem de analiza a ortogonalitatii fisierelor, deja s-a definit uninstrument de lupta eficienta împotriva clonarii informatice, cu extensie sispre alte domenii.

Trebuie sa existe instrumente care analizeaza automat continutulfisierelor si trebuie definite fluxuri de urmat pentru verificareaortogonalitatii.

Chiar daca exista instrumente si structuri organizatorice binedefinite, este necesara definirea procedurilor. Fiecare procedura are inputuri

si outputuri, precum si pasi ce trebuie parcursi de toti actorii unui sistem,subsistem sau microsistem, generator de produse sau servicii purtatoare deprofit.

Pentru o studiere sistematica a proceselor informatice, este necesarao abordare interdisciplinara. Clonele informatice reprezinta o componentaimportanta în reglarea accelerarii dezvoltarii societatii informationale.Crearea de clone se efectueaza prin copiere dar si prin acces neautorizat însisteme informatice (spargere de cod). Cunoasterea legislatiei în vigoarepermite alocarea corespunzatoare a resurselor pentru protectia proceselor de

dezvoltare software si de baze de date originale. Totodata, interactiunile sicomunicarea dintre specialisti creeaza premise pentru perfectionareacadrului juridic. Minimizarea clonarii neautorizate are ca efect crestereagradului de atragere a marilor companii producatoare de software pentru adeveni investitori în acel stat.

Extensiile analizelor de clone presupun crearea unor sisteme de înregistrare, de verificare a noilor componente în raport cu cele existente sistabilirea unor modalitati de evidentiere a clonelor, respectiv, de sanctionareatunci când procesele de clonare contravin legislatiei în vigoare saunormelor de etica profesionala.

Demersul întreprins de autori reprezinta un început, iar cercetariletrebuie continuate pentru a obtine expresii cantitative ale limitelor între careun produs informatic sau un text trebuie acceptat ca nefiind clona. În acestscop se impune utilizarea retelelor neuronale si a algoritmilor geneticipentru a fundamenta o noua filosofie asupra proceselor de clonare, îndinamica lor.

Page 195: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 195/203

 

Anexă 

LISTA DE VARIABILE

ŞI ACRONIME

A program apelant

Aa mulţimea arcelor grafului asociat unui program 

Ac  colectivitate

Aei  echipa i de realizare a specificaţiilor  

Af  clasă de programe în funcţie de valoarea lui f(Pi)

ai  elementul i al colectivităţii A

Ai indicatorul de pe poziţia i dintr-o mulţime de indicatori

Ai indicatorul de pe poziţia i din mulţimea indicatorilor 

calculaţi

a j noua poziţie a instrucţiunii j după efectuarea operaţiei desortare

A p  program care apelează proceduri 

As fişier pe suportul de memorie

 b elementul de pe linia i, respectiv coloana j privind

identitatea valorilor din cadrul matricelor comparate

B modul în cadrul unui program

BDi baza de date cu poziţia i în mulţimea colecţiilor de date

organizate sub această formă 

Bf  clasă de programe în funcţie de valoarea lui f(Pi)

 bi suma elementelor pe coloana j bij elementul de pe linia i, coloana j a unei matrice de

 precedenţă 

 bmax suma maximă a elementelor calculate pe coloane

BPC indicator sintetic al tuturor indicatorilor Ik  stabiliţi pentru

fiecare caracteristică 

Bs fişier pe suportul de memorie

C procedur ă în cadrul unui program ,

C1  numărul de module din cadrul unui program sursă 

C2 numărul de instrucţiuni for într-un text sursă 

C3 numărul de instrucţiuni if  

C4 numărul de apeluri de funcţii

C5 numărul evaluărilor de expresii

Page 196: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 196/203

 

Clonarea informatică 208

C6 numărul de instrucţiuni while

C7 numărul operaţiilor de I/E

Cc  pas de clonare par ţială a structurii bazei de date

Ccp complexitatea programului 

Cd complexitate bazată pe dependenţele instrucţiunilor 

d C   complexitate normat

ăbazat

ăpe dependen

ţele

instrucţiunilor 

CD Compact Disc

Cf  clasă de programe în funcţie de valoarea lui f(Pi)

Cg complexitate gradată a programului

gC    complexitate gradată normată a programului

Ci  caracteristica specifică i a unei colectivităţi

cij elementul de pe linia i, respectiv coloana j privind

identitatea ponderilor elementelor în valorile totale pe

linii

Cik 

  nivelul caracteristicii Ck 

pentru elementul ai

din

colectivitatea A

ck  numărul de modele ale indicatorilor de calitate asociaţiunei mulţimi de programe

cmplxi  complexitatea procedurii Pi 

COBD  costul copierii bazei de date

COS  costul operaţiei de copiere-stocare software

CP  costul proiectului unui echipament

C ps complexitatea unui program sau a unei secvenţe de

 program

Cr   costul realizării unui produs

CSBD  costul suportului pentru stocare baze de dateCSS  costul suportului de stocare a unei copii software

Ct complexitate a programului, luând în considerare şi

tipurile de date

CT  costul total la realizării unui echipament 

CTAI  costul total al aplicaţiei informatice

CV indicator agregat de variaţie

CVi coeficientul de variaţie al colectivităţii ce valori i 

d aplicaţie definită pe o mulţime de puncte M

D modul în cadrul unui program

def diferenţa între lungimea minimă  şi lungimea maximă ainstrucţiunilor dintr-un program sursă 

Page 197: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 197/203

 

Anexă 209

 

Di  data i utilizată în procesul de analiză a ortogonalităţii

dij elementul de pe linia i, repsectiv coloana j privind

identitatea ponderilor elementelor în valorile toatele pe

coloane

Dv indicatorul de diversitate a progarmului

E procedur ă în cadrul unui program

EI  entitate informatică 

Ei  entitatea i care este clona entităţii EI 

f indicator de performanţă sau de caracterizare a mulţimii

 programelor P

F procedur ă în cadrul unui program

f maxim lungime maximă a instrucţiunilor dintr-un program sursă 

Fi  funcţia i realizată de entitatea EI 

f i frecvenţa cu care este utilizat un cuvânt al unui vocabular 

în program

Fi( )   procedura i care se adaugă programului PFii  fişierul intermediar cu poziţia i din mulţimea tuturor 

fişierelor intermediare 

f ij  frecvenţa de apariţie a cuvântului αi în textul T j 

f ik   numărul de caractere de pe linia sursă Lk din programul Pi

f k   numărul de caractere de pe linia sursă k  

f minim lungime minimă a instrucţiunilor dintr-un program sursă 

F pi fişierul sursă cu poziţia i în mulţimea tuturor fişierelor 

sursă supuse analizei

Fri  fraza i dintr-un text

Fs 

fişier stocat pe un anumit suportFsi  fişierul cu poziţia i în mulţimea fişierelor utilizate

G procedur ă în cadrul unui program

g’ indicator agregat de asemănare între două texte prin

structurare în paragrafe

g’i indicator agregat al metricilor gi 

GAij gradul de asemănare în funcţie de identitatea valorilor 

indicatorilor între programele sursă Pi şi P j 

Gc numărul de caractere comune a două programe care au

frecvenţe de apariţie identice

Gf   nume nou pentru fişierul F

Gi   procedura i într-un program 

gi indicatorul i de asemănare a două paragrafe din două 

texte prin structurarea acestuia în paragrafe

Page 198: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 198/203

 

Clonarea informatică 210

gij  frecvenţa de apariţie a cuvântului nespecific βi în textul T j 

Gk A nivelul caracteristicii k în programul PA

Gk B nivelul caracteristicii k în programul PB 

Gk c nivelul caracteristicii k pentru elementele identice în cele

două programe

Gr 

graful asociat unui program

H procedur ă în cadrul unui program

HDD Hard-Disk – discul hard

himax  diferenţa maximă măsurabilă între specificaţiile realizate

de echipa i 

I procedur ă în cadrul unui program

Ia  indicator agregat

IA gradul de asemănare a două programe sursă în funcţie de

caracterele comune cu frecvenţe de apariţie identice

ICLONARE indicator pentru măsurarea eficienţei procesului de

clonare

Icr  gradul de asemănare a două programe sursă în funcţie defondul comun de cuvinte ale vocabularelor 

If  gradul de asemănare al programelor sursă în funcţie de

numărul cuvintelor din vocabularul reuniune cu aceeaşifrecvenţă de apariţie

Ii  indicatorul i cu valoarea cuprinsă în intervalul [0, 1]

Iij  instrucţiunea de pe poziţia j din programul Pi 

I j instrucţiunea cu poziţia j dintr-un program sursă 

Ik  indicator de comparare a unei caracteristici comune din

două programe cu valoarea minimă a sa

IL

gradul de asemănare, în func

ţie de lungime, a dou

ăfişiere

sursă normalizate

IT Information Technology – tehnologia informaţiei

IV gradul de asemănare a două fişiere sursă 

J  indicator agregat al asemănării a două texte sursă scrise

într-un limbaj de programare

Ji  indicatorul de asemănare i

Jn  indicator agregat al asemănării a unui lot de programe

sursă scrise într-un limbaj de programare

Jsi instrucţiunea dintr-un program sursă care se află pe

 poziţia i

K   numărul de unităţi folosite pentru stocarea de software şi baze de date 

k   numărul echipelor de realizare

Page 199: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 199/203

 

Anexă 211

k c indicator de cuantificare a abaterii poziţiei instrucţiunilor 

faţă de cea iniţială prin efectuarea operaţiei de sortare

descrescătoare a lungimii acestora

k i numărul de valori distincte ale indicatorului Ji.

k n numărul de indicatori Ik nenuli

k  p poziţia caracteristicii BPC

K re numărul cuvintelor din vocabularul reuniune care au

aceeaşi frecvenţă 

L  lista parametrilor procedurii unice P

L0  listă adiţională a variabilelor de stare şi a celor de soluţie

La indicator de cuantificare a abaterii poziţiei instrucţiunii

faţă de poziţia iniţială prin efectuarea operaţiei de sortare

crescătoare a lungimilor acestora

LA lungimea alfabetului exprimată în număr de caractere

diferite utilizate 

LBD indicator de cuantificare a caracteristicilor bazei de date

iniţialeLCLONA indicator de cuantificare a caracteristicilor bazei de date

clonate 

Le indicator de cuantificare a eficienţei procesului de clonare

LGi  lungime procedur ă Gi exprimată în număr de linii sursă 

Li  lungimea fişierului sursă i exprimată în număr de octeţi 

Lik   linia sursă cu poziţia k din programul Pi

LIL1 metrică bazată pe matricea de precedenţă 

LIL1N forma normată a metricii LIL1

LIL2 metrică bazată pe matricea de precedenţă 

LIL2N forma normată

a metricii LIL2

Lk   linia sursă cu poziţia k din programul

Lli  limbajul de programare i din mulţimea tuturor limbajelor 

de programare 

LMi  lungime modul M exprimată ca număr de linii sursă 

L pi  lista parametrilor procedurii cu poziţia i în mulţimea

 procedurilor construite

LVco lungimea vocabularului comun a două programe sursă 

LVi lungimea vocabularului text sursă i, exprimată în numărul

de cuvinte distincte identificate

LVre lungimea vocabularului reuniune a două programe sursă 

M  numărul de copii pentru un produs softwarem numărul de linii considerate pentru compararea masivelor 

 bidimensionale 

Page 200: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 200/203

 

Clonarea informatică 212

M1 numărul de elemente din şirul bi, bi∈ [1, ∆+1]

m1 numărul de arce din graful programului

m2 numărul de noduri din graful programului 

Ma mulţimea de puncte pe care se defineşte aplicaţia d  

mc  numărul de caracteristici specifice ale unei colectivităţi

Mci 

modelul cu poziţia i într-un sistem de cuantificare a unor indicatori

mf  numărul de cuvinte dintr-o frază 

Mi  modul în cadrul unui program

M p valoarea totală a sumelor calculate pe coloane care se

află sub pragul ∆ 

m p numărul de comparaţii efectuate între paragrafe 

n n – numărul de programe care fac obiectul analizei

 procesului de clonare

n dimensiunea matricei de precedenţă a instrucţiunilor  

 N valoarea totală a sumelor calculate pe coloane care se

află peste pragul ∆ n0  numărul programelor pentru care se construiesc versiuni

 N1 numărul de elemente din şirul bi, bi∈ (∆+1, bmax]

n1 numărul operanzilor dintr-un program sursă 

n2 numărul operatorilor dintr-un program sursă 

n3 numărul de definiţii de tipuri de date

napi identitate paragrafe în funcţie de frecvenţele de apariţie a

caracterelor identificate

nBD numărul de baze de date

nc numărul de coloane considerate în calculul ponderilor  

ncai  identitate frecvenţe de apariţie ale caracterului i în două texte

 NCIi  numărul de cuvinte interschimbabile într-o procedur ă 

scrisă într-un limbaj de programare

 NCV  numărul de cuvinte dintr-un text cu frecvenţe de apariţiediferite şi nenule

ncvi  identitate frecvenţe de apariţie a cuvintelor dintr-un text

 NESC  numărul de elemente structurale comune a două texte

comparate

nf numărul de funcţii realizate de entitatea EI

 Ni numărul de instrucţiuni dintr-un program

ni frecvenţa de apariţie a valorii respectivului indicator;

nm dimensiunea matricei de precedenţă 

Page 201: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 201/203

 

Anexă 213

 NMES  numărul minim de elemente structurale a două texte

 N p  numărul de entităţi produse

nrcamp numărul de câmpuri ale unei tabele

nrinreg numărul de înregistr ări ale unei tabele

nrleg numărul de legături al bazei de date relaţionale

nrtab numărul de tabele

 NTC  numărul total de caractere alfabetice mici şi mari dintr-un

text

 NTCV  numărul total de cuvinte distincte din două texte care se

compar ă 

ntcvi  semnalează identitatea frecvenţelor de apariţie a

cuvântului i în ambele proceduri

ntcvp identitatea a două paragrafe în funcţie de frecvenţele de

apariţie a cuvintelor identificate

OEM Original Equipment Manufacturer - software livrat

împreună cu un calculator nou sau componente hardware

OG Ordonanţă Guvernamentală ORDA Oficiul R omân pentru Drepturile de Autor 

P program supus analizei 

 p  numărul de cuvinte dintr-o frază 

P’ programul sursă după sortare

P’i   procedura i care este adăugată programului P

PA program sursă 

PB program sursă 

Pc  clonă a programului P

PC Personal Computer - calculator personal

Pcc 

 problemă complet şi corect definită PDA Personal Digital Assistent – asistent digital personal

Pi   programul cu poziţia i dintr-o mulţime de programe 

Pi(j)

  versiunea j a programului Pi 

 pm  numărul de reluări maxim acceptabil

PP program sursă înainte de sortarea descrescătoare a

instrucţiunilor 

PP’ program sursă după efectuarea sortării descrescătoare a

instrucţiunilor 

Pri   procedura cu poziţia i în mulţimea procedurilor definite

Prk    procedura k dintr-un program

Pu   procedur ă unică de realizare a prelucr ărilor R   numărul de copii al unei baze de date

Page 202: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 202/203

 

Clonarea informatică 214

r   numărul de cuvinte cheie dintr-un anumit domeniu

r i indicator de determinare a lungimii unui subinterval

 pentru colectivitatea i

R P  alt program decât P 

RR program sursă înainte de sortarea descrescătoare a

instrucţiunilor 

S   produs software

s  numărul de cuvinte nespecifice ale unui domeniu

S’ secvenţă de program

Sc   produs combinat între programele P şi R 

Sfi  situaţia finală cu poziţia i din mulţimea tuturor situaţiilor 

finale

SGBD Sistem de Gestiune a Bazelor de Date

Si  clone ale produsului software S 

SP  sistem de programe

S p  secvenţă de program 

S pi  secvenţă de program iST program sursă 

SUA Statele Unite ale Americii

T gradul de abatere a indicatorilor k c  şi La, unul faţă de

celălalt

T j  textul j supus procesului de analiză a ortogonalităţii

UE Uniunea Europeană 

V  vocabularul programului P

Vi  vocabularul programului Pi 

vi  cuvântul i din vocabularul V

vij 

cuvântul i din fraza j al unui textVn mulţimea nodurilor grafului asociat unui program

VT  Vocabularul unui text

WIMP Windows, Icons, Menu, Pointer 

WYSIWYG What You See Is What You Get 

x  element pentru care se desf ăşoar ă procesul de analiză a

ortogonalităţii

X  suport de memorare a fişierelor 

x0i valoarea i dată din baza de date a programului

x1  punct pentru care se calculează valoarea funcţiei distanţă 

xi variabila independentă cu poziţia i în mulţimea mărimilor 

obiective

i x   media aritmetică a colectivităţii de valori i

Page 203: Clonarea-Informatica

5/16/2018 Clonarea-Informatica - slidepdf.com

http://slidepdf.com/reader/full/clonarea-informatica 203/203

 

Anexă 215

y element pentru care se desf ăşoar ă procesul de analiză a

ortogonalităţii

Y suport de memorare a fişierelor 

y0 Nivel determinat pe baza valorilor x0i 

y1  punct pentru care se calculează valoarea funcţiei distanţă 

yr 

variabilă rezultativă a comportamentului programului sau

a calităţilor acestuia

z1  punct pentru care se calculează valoarea funcţiei distanţă 

α  extensie a unui fişier 

α 1 numărul de indicatori cu valori identice

αi j  specificaţia j pentru echipa i de realizare

β extensie a unui fişier 

γf  indicator agregat de asemănare a unui lot de masive

 bidimensionale

γi indicatorul de pe poziţia i din mulţimea metricilor 

aplicate pe masive bidimensionale

γ p indicator agregat de asemănare a două masive bidimensionale, calculat pe baza valorilor indicatorilor γi 

∆ valoarea mediană a sumei maxime bmax 2

iσ     dispersia unei colectivităţi de valori i

θ limita superioar ă a intervalului de valori al indicatorului

Cd 


Recommended