Date post: | 18-Jul-2015 |
Category: |
Documents |
Upload: | andrei-luca |
View: | 102 times |
Download: | 0 times |
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
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.
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
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.
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
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.
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,
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
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.
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.
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; }
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.
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.
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.
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
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
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;
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.
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.
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;
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
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.
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
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.
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
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
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.
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.
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
r
i
ii
f f r
f f
I −
−
−=
∑= (3.1)
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
r
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.
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)
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.
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)
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;
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.
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)
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;
}
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.
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
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)
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
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.
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
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.
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
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.
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;
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.
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.
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;
};
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 }.
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.
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
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;
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;
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;
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;
}
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
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.
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.
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;
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
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;
}
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 ++)
{
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; }
}
}
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;
}
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; }
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];...
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);
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;
}
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.
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;
}
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.
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;
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.
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.
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.
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
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.
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.
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
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
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.
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.
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
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.
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
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.
5/16/2018 Clonarea-Informatica - slidepdf.com
http://slidepdf.com/reader/full/clonarea-informatica 89/203
6
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
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
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
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.
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
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;
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
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
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
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
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.
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.
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
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
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.
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;
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.
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.
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.
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;
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
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.
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.
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
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
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.
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
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;
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;
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.
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.
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.
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
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;
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.
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.
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;
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.
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;
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.
5/16/2018 Clonarea-Informatica - slidepdf.com
http://slidepdf.com/reader/full/clonarea-informatica 129/203
8
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
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.
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
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)
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.
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.
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.
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.
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.
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 ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅= − =⋅
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’;
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.
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.
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.
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;
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
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
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
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
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
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.
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.
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;
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
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
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.
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
k
A
k
c
k
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
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
k
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],
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
k a r
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.
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
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:
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
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
r
i A A ≠ , astfel încât gradul de asemanare este:
1ij
n
GAk
α= (8.25)
unde a arata câti indicatori Ai =A j.
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;
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)
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)
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
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
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.
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;
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
d
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
C
C
i
pi f ∏=
= γ γ (8.33)
unde:- C 2
n - numarul de comparatii efectuate ;
- γ pi - gradul de asemanare mediu al devizului i;
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:
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.
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)
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
}
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
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.
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
C
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)
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)
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.
5/16/2018 Clonarea-Informatica - slidepdf.com
http://slidepdf.com/reader/full/clonarea-informatica 179/203
9
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
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.
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,
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
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.
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
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
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,
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.
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
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.
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 ;
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).
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).
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.
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.
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
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ă
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
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
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
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ţă
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
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
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