View
50
Download
0
Category
Preview:
DESCRIPTION
Modificarea incremental (Incremental Change) reprezinta adaugarea de functionalitate noua sau de noi proprietati unui sistem soft in mod iterativ.Modificarea incrementala este o componenta de baza a proceselor agile de dezvoltare a softului. De asemenea, este o parte esentiala a evolutiei si intretinerii unui sistem soft.
Citation preview
Modificarea incrementala a sistemelor soft
Referat la doctorat
Teza doctorat: Modelarea conceptuala a sistemelor soft
Conducator stiintific: Prof. Dr. Bazil PârvDoctorand: Codrut-Lucian Lazar
UNIVERSITATEA BABES-BOLYAIFACULTATEA DE MATEMATICA SI INFORMATICA
Martie 2009
Referat la doctorat Modificarea incrementala a sistemelor soft
Modificarea incrementala
Modificarea incrementala (Incremental Change)I reprezinta adaugarea de functionalitate noua sau de noi
proprietati unui sistem soft în mod iterativ.I este o componenta de baza a proceselor agile de
dezvoltare a softului.I este o parte esentiala a evolutiei si întretinerii unui sistemI mare parte a cercetarii s-a concentrat asupra activitatilor
independente:I localizarea conceptelorI analiza impactuluiI propagarea modificarii
Referat la doctorat Modificarea incrementala a sistemelor soft
Model integrat pentru evolutia sistemelor soft
I un model de modificare incrementala propus în contextulîntretinerii softului in anul 1988
I faze pentru aplicarea unei modificari incrementale:1. întelegerea programului2. generarea propunerilor de întretinere3. considerarea efectului de propagare a modificarilor4. revalidarea sistemului
Referat la doctorat Modificarea incrementala a sistemelor soft
Model integrat pentru evolutia sistemelor soft (2)
Figura: Model pentru întreg ciclul de dezvoltare al programului
Referat la doctorat Modificarea incrementala a sistemelor soft
Model integrat pentru evolutia sistemelor soft (3)
Figura: Utilitare cu acelasi model de reprezentare a programului
Referat la doctorat Modificarea incrementala a sistemelor soft
Modelarea evolutiei sistemelor soft folosind EIG
Evolving Interoperation Graphs (EIG)I o aplicatie ce evolueaza se modifica în pasi succesiviI EIG este o structura de date definita formal având la baza:
1. setul de componente ce alcatuieste aplicatia2. relatiile dintre componente3. marcaje ale relatiilor dintre componente
I semnifica faptul ca o componenta ce s-a modificat poateinfluenta o alta componenta
Referat la doctorat Modificarea incrementala a sistemelor soft
Modelarea evolutiei sistemelor soft folosind EIG (2)
Figura: Exemplu de graf EIG - sistem aflat în stare consistenta
Figura: Exemplu de graf EIG - adaugarea clasei EventAbstr
Referat la doctorat Modificarea incrementala a sistemelor soft
Modelarea evolutiei sistemelor soft folosind EIG (3)
Figura: Exemplu de graf EIG - vizitarea clasei EventList
Figura: Exemplu de graf EIG - vizitarea clasei Event
Referat la doctorat Modificarea incrementala a sistemelor soft
Dezvoltarea incrementala bazata pe concepte
Concept-based Incremental Development (CID)I reprezinta un proces agil de dezvoltare a softului, având la
baza aplicarea repetata a modificarii incrementaleI varianta initiala:
1. Faze de analiza si proiectare1.1 extragerea de concepte (concept extraction)1.2 localizarea conceptelor (concept location)1.3 analiza impactului (impact analysis)
2. Faze de implementare2.1 actualizare (actualization)2.2 incorporarea (incorporation)2.3 propagarea modificarii (change propagation)
I tehnicile pentru reducerea propagarii modificarilor:I restructurarea (refactoring)I împartirea rolurilor (splitting the roles)
Referat la doctorat Modificarea incrementala a sistemelor soft
Dezvoltarea incrementala bazata pe concepte (2)
Figura: Varianta finala a procesului de modificare incrementala CID
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor în cod
I este procesul de identificare a elementelor din programunde sunt implementate anumite concepte
I un obiectiv imediat - reducerea spatiului de cautare
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor folosind expresii regulare
I prin potrivirea expresiilor regulare asupra sirurilor decaractere
I folosind utilitare de genul: grep, egrep, fgrep, ed, sed,awk si lex
I rezultatele cautarii au o granularitate micaI se pierde informatia referitoare la structura programului
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor folosind grafe de dependente
I graful de dependente al unei proceduri(Procedure Dependence Graph - PDG)
I nodurile - instructiuni sau regiuni de codI muchiile - posibilele transmiteri de date sau control
I graf de dependente al unui sistem(System Dependence Graph - SDG)
I alcatuit din mai multe grafe de tipul PDG
Referat la doctorat Modificarea incrementala a sistemelor soft
Loc. conceptelor folosind grafe de dependente (2)
Figura: Exemplu de graf SDG (format din 2 grafe PDG)
Referat la doctorat Modificarea incrementala a sistemelor soft
Loc. conceptelor folosind grafe de dependente (3)
I graf abstract de dependente al unui sistem(Abstract System Dependence Graph - ASDG)
I s-a ridicat nivelul de analiza de la instructiuni lacomponente (proceduri si variabile globale)
Figura: Graf de tipul ASDG pentru un program
Referat la doctorat Modificarea incrementala a sistemelor soft
Loc. conceptelor folosind grafe de dependente (4)
Scenariu de localizare de concepte:I se alege un punct de pornire (de exemplu, functia main)I componentele vizitate si vecinii acestora constituie graful
de cautare (Search Graph)I este un subgraf al grafului de tip ASDGI contine întotdeauna o componenta activa, ce va fi vizitata la
pasul urmatorI roluri alternative pentru programator si calculator
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor folosind Information Retrieval
I folosind algoritmi de Information RetrievalI exemplu: LSI (Latent Semantic Indexing)I se va indexa codul sursa si documentatia aplicatieiI utilizatorul va putea efectua interogariI rezultatele sunt ordonate dupa relevanta
Referat la doctorat Modificarea incrementala a sistemelor soft
Loc. conceptelor folosind Software Reconnaissance
I metoda dinamica de localizare a conceptelor în codI utilitar de monitorizare a acoperirii testelorI doua seturi de cazuri de testare
I teste în care este implicat conceptulI teste în care nu este implicat conceptul
I poate identifica doar acele concepte ce pot fi controlateprin varierea datelor de testare
Referat la doctorat Modificarea incrementala a sistemelor soft
Loc. conc. folosind Software Reconnaissance (2)
Figura: Exemplu de aplicare a tehnicii, folosind doua seturi de teste
I componente comune (CCOMPS)I componente potential implicate (ICOMPS)I componente indispensabil implicate(IICOMPS)I componente unic implicate(UCOMPS)
I un punct bun de unde se poate începe întelegereaprogramului
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor folosind execution slices
I tehnica dinamica similara cu Software ReconnaissanceI doua tipuri de seturi de testeI programul este impartit în:
I blocuri (secvente de instructiuni)I deciziiI expresii ce calculeaza valori pentru variabileI predicate ce folosesc valorile variabilelor
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor folosind scenarii
I tehnica dinamica similara cu Software ReconnaissanceI bazata pe analiza formala a conceptelorI se folosesc scenarii:
I un scenariu implica mai multe concepteI un scenariu implica mai multe unitati computationale
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor folosind scenarii (2)
Figura: Laticea conceptelor
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor folosind scenarii (3)
Activitati:1. crearea de scenarii2. extragerea grafului static de dependente3. analiza dinamica
3.1 compilarea pentru înregistrare3.2 executia scenariilor
4. interpretarea laticei conceptelor4.1 selectia scenariilor4.2 analiza conceptelor4.3 interpretarea de baza4.4 relationarea scenariilor cu conceptele
5. analiza statica a dependentelor5.1 construirea setului de inceput5.2 inspectia grafului static de dependente
Referat la doctorat Modificarea incrementala a sistemelor soft
Localizarea conceptelor folosind scenarii (4)
Figura: Laticea rara a conceptelor, împartita în categorii pentruconceptul f1, care a fost expus în scenariile s1 si s2.
Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului
I este formata dintr-o colectie de tehnici ce au ca scopdeterminarea efectelor modificarii codului sursa
I doua categorii de tehnici:I folosind dependentele din codI folosind legaturile de urmarire între diverse documente
(traceability links)
Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului folosind PathImpact
I PathImpactI tehnica dinamicaI executia programului va genera o urma (execution trace) ce
va contine evenimentele de la intrarea si iesirea din metodeI urma va fi compresata
I CoverageImpactI foloseste doar informatia referitoare la acoperirea codului
I CollectEAI (X,Y) sunt în relatia de Execute-After :
daca exista cel putin un eveniment legat de metoda X dupacel putin un eveniment legat de metoda Y
Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului folosind PathImpact (2)
Me Ae Ar Ae Ar Be Ce Cr Br Be
Figura: Urma pentru o executie (partiala) a programului
τ → Me 1 1 Be Ce Cr Br Be1 → Ae Ar
Figura: Urma a executiei, compresata de PathImpact
I (PathImpact) set de impact pentru C: {C, M, B}Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului folosind PathImpact (3)
M A B C D1 1 1 1 0
Figura: Executia reprezentata ca vector de biti pentruCoverageImpact
I (CoverageImpact) set de impact pentru C: {C, M, A, B}
MF AF AL BF CF CL ML BL
Figura: Executia reprezentata ca secventa Execute-After
I (CollectEA) set de impact pentru C: {C, M, B}
Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului folosind traceability links
I presupune examinarea dependentelor dintre toate tipurilede entitati ale documentatiei, nu doar a dependentelor dincodul sursa
I QuaTraceI se stabilesc legaturi pentru a putea efectua ulterior o
analiza a impactuluiI trei tipuri de relatii între doua entitati de documentatie:
I relatii de reprezentareI relatii de rafinareI relatii de dependenta
Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului folosind traceability links (2)
Figura: Exemplu de entitati de documentatie
Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului folosind metoda Chianti
I presupune existenta unei suite de teste (de regresie)I acces la versiunea originala a codului si la versiunea
editataI este extras un set de modificari atomice interdependenteI pentru fiecare test care pica la executie, se determina
subsetul de modificari atomice ce ar fi putut sa afectezeexecutia testului
Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului în modele UML
I sunt suportate trei tipuri de diagrame UML:I diagrame de claseI diagrame de secventaI diagrame de stari
I sub-probleme:I verificarea consistentei diagramelor modificate
I reguli de consistentaI detectarea si clasificarea automata a modificarilor
I taxonomia modificarilorI analiza impactului
I reguli de analiza a impactuluiI prioritizarea rezultatelor analizei impactului
I folosirea unei masuri de distanta
Referat la doctorat Modificarea incrementala a sistemelor soft
Analiza impactului în modele UML (2)
Figura: Modelul conceptual al procesului de analiza a impactului
Referat la doctorat Modificarea incrementala a sistemelor soft
Propagarea modificarii
I este o etapa similara cu analiza impactuluiI sunt revizuite componentele (clase, metode) ce sunt
afectate de modificare, reparându-se toate inconsistenteledin cod
I se porneste de la setul de componente identificate întimpul analizei impactului
Referat la doctorat Modificarea incrementala a sistemelor soft
Framework-ul Morpheus pentru sisteme SOA
I se adreseaza aplicatiilor dezvoltate folosind SOA (ServiceOriented Architecture)
I sunt suportate trei tipuri de diagrame UML:I diagrame de cazuri de utilizareI diagrame de secventaI diagrame de componente
I sunt definite formal atât elementele de structura sisemantica ale documentelor, cât si relatiile dintre ele
I relatiile sunt folosite pentru a enumera toate modificarileposibile asupra elementelor constituente
Referat la doctorat Modificarea incrementala a sistemelor soft
Recommended