Modificarea incrementala a sistemelor soft

36
Modificarea incremental ˘ a a sistemelor soft Referat la doctorat Tez ˘ a doctorat: Modelarea conceptual ˘ a a sistemelor soft Conduc ˘ ator ¸ stiin¸ tific: Prof. Dr. Bazil Pârv Doctorand: Codru¸ t-Lucian Laz ˘ ar UNIVERSITATEA BABE¸ S-BOLYAI FACULTATEA DE MATEMATIC ˘ SI INFORMATIC ˘ A Martie 2009 Referat la doctorat Modificarea incremental ˘ a a sistemelor soft

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.

Transcript of Modificarea incrementala a sistemelor soft

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

Directii de cercetare

I Analiza impactului în modele executabile(Executable UML)

I diagrame de claseI UML Action Semantics + Action LanguageI diagrame de stari

Referat la doctorat Modificarea incrementala a sistemelor soft