SlideShare une entreprise Scribd logo
1  sur  90
Télécharger pour lire hors ligne
Forráskódtárak gráfalapú
statikus analízise
Budapesti Műszaki és Gazdaságtudományi Egyetem
Méréstechnika és Információs Rendszerek Tanszék
Hibatűrő Rendszerek Kutatócsoport
Stein Dániel
Projekt résztvevői
2
Lucz Tamás Soma
– Honfi Dávid
– Vörös András
Stein Dániel
– Szárnyas Gábor Lippai Ádám
Tartalom
1. Problémakör
2. Eszközök
3. Felhasználási lehetőségek
4. Neo4j tanulságok, példák
3
Folytonos integráció (FI)
Continuous Integration (CI) – Több fejlesztő együttműködése
– Integrációs problémák
megelőzése
– Például
– Jenkins
– Hudson
– Travis CI
4
Verziókezelés
Fordítás
Fejlesztés
Egység- és
integrációs teszt
5
Apple,
https://blog.codecentric.de/en/2014/02/curly-braces/
5
Apple,
https://blog.codecentric.de/en/2014/02/curly-braces/
5
hupsz
Apple,
https://blog.codecentric.de/en/2014/02/curly-braces/
Statikus analízis
– Nincs szükség a program
fordítására és futtatására
– Alaki és strukturális jellegű
szabályellenőrzést végzünk
– FI mellett vagy részeként
alkalmazandó
– Egy lehetséges módja a
kódanalízis, kódmintaillesztés
6
Verziókezelés
Fordítás
Fejlesztés
Egység- és
integrációs teszt
Kódanalízis
Statikus analízis
– Nincs szükség a program
fordítására és futtatására
– Alaki és strukturális jellegű
szabályellenőrzést végzünk
– FI mellett vagy részeként
alkalmazandó
– Egy lehetséges módja a
kódanalízis, kódmintaillesztés
6
Verziókezelés
Fordítás
Fejlesztés
Egység- és
integrációs teszt
Kódanalízis
Statikus analízis
– Nincs szükség a program
fordítására és futtatására
– Alaki és strukturális jellegű
szabályellenőrzést végzünk
– FI mellett vagy részeként
alkalmazandó
– Egy lehetséges módja a
kódanalízis, kódmintaillesztés
6
Verziókezelés
Fordítás
Fejlesztés
Egység- és
integrációs teszt
Kódanalízis
– Java
– FindBugs
– PMD
– CheckStyle
Statikus analízis
– Nincs szükség a program
fordítására és futtatására
– Alaki és strukturális jellegű
szabályellenőrzést végzünk
– FI mellett vagy részeként
alkalmazandó
– Egy lehetséges módja a
kódanalízis, kódmintaillesztés
6
Verziókezelés
Fordítás
Fejlesztés
Egység- és
integrációs teszt
Kódanalízis
– Java
– FindBugs
– PMD
– CheckStyle
– JavaScript
– ESLint
– Facebook Infer, Flow
– Tern
– TAJS
– A kódanalízis időigényes folyamat
– Nagy projektekre (100k+ LOC) lassú, nem
alkalmazható FI-szerű ütemezéssel
Megoldandó probléma
7
egységteszt
kódanalízis
☼ ☆☾☆
– A kódanalízis időigényes folyamat
– Nagy projektekre (100k+ LOC) lassú, nem
alkalmazható FI-szerű ütemezéssel
– Átmeneti megoldás: tömbösítés
Megoldandó probléma
7
egységteszt
kódanalízis
☼ ☆☾☆
egységteszt
kódanalízis
– A kódanalízis időigényes folyamat
– Nagy projektekre (100k+ LOC) lassú, nem
alkalmazható FI-szerű ütemezéssel
– Átmeneti megoldás: tömbösítés
Minél hamarabb,
minél gyorsabban
eredményt kell adni.
Megoldandó probléma
7
egységteszt
kódanalízis
☼ ☆☾☆
egységteszt
kódanalízis
Megoldandó probléma
– Memóriakorlátba ütközhetünk...
– globális szabályok
– a struktúrát memóriában tárolva
(in-memory megközelítés)
– nagy méretű kódbázisok
ellenőrzésekor.
– Inkrementalitás hiánya
– Kötegelt feldolgozás
– Kisebb módosítás is
teljes feldolgozást
indukál
8
A bemutatott megoldás
– Inkrementalitás elvét alkalmazzuk
– Kötegelt feldolgozás helyett
– A módosítás hatásával frissítjük az
eredményt
– A memóriában egyszerre csak a
minimálisan szükséges részleteket
tároljuk
9
kódanalizátor
Δ2.-1.1.
VCS Workspace Abstact Syntax
Tree
Abstract Semantic
Graph
Well-formedness
Rules
Query Execution Database
Main.js | ++----
Dependency.js | +++++-
FIterator.js | ----
Parser.js | ++
Automatic
Well-formedness
Rule Evaluation
Manual Execution
and Data Extraction
Querying and Transformation
.
discoverer
ChangeProcessor.js
CommandParser.js
FileIterator.js
iterators
DepCollector.js
FileDiscoverer.js
InitIterator.js
Main.js
whitepages
ConnectionMgr.js
DependencyMgr.js
neo4jValidation Report
<!>
<?>
<.>
Module
declaration
declarators
items
binding init
left right
Architektúra áttekintés
10
VCS Workspace Abstact Syntax
Tree
Abstract Semantic
Graph
Well-formedness
Rules
Query Execution Database
Main.js | ++----
Dependency.js | +++++-
FIterator.js | ----
Parser.js | ++
Automatic
Well-formedness
Rule Evaluation
Manual Execution
and Data Extraction
Querying and Transformation
.
discoverer
ChangeProcessor.js
CommandParser.js
FileIterator.js
iterators
DepCollector.js
FileDiscoverer.js
InitIterator.js
Main.js
whitepages
ConnectionMgr.js
DependencyMgr.js
neo4jValidation Report
<!>
<?>
<.>
Module
declaration
declarators
items
binding init
left right
Architektúra áttekintés
10
VCS Workspace Abstact Syntax
Tree
Abstract Semantic
Graph
Well-formedness
Rules
Query Execution Database
Main.js | ++----
Dependency.js | +++++-
FIterator.js | ----
Parser.js | ++
Automatic
Well-formedness
Rule Evaluation
Manual Execution
and Data Extraction
Querying and Transformation
.
discoverer
ChangeProcessor.js
CommandParser.js
FileIterator.js
iterators
DepCollector.js
FileDiscoverer.js
InitIterator.js
Main.js
whitepages
ConnectionMgr.js
DependencyMgr.js
neo4jValidation Report
<!>
<?>
<.>
Module
declaration
declarators
items
binding init
left right
Architektúra áttekintés
10
VCS Workspace Abstact Syntax
Tree
Abstract Semantic
Graph
Well-formedness
Rules
Query Execution Database
Main.js | ++----
Dependency.js | +++++-
FIterator.js | ----
Parser.js | ++
Automatic
Well-formedness
Rule Evaluation
Manual Execution
and Data Extraction
Querying and Transformation
.
discoverer
ChangeProcessor.js
CommandParser.js
FileIterator.js
iterators
DepCollector.js
FileDiscoverer.js
InitIterator.js
Main.js
whitepages
ConnectionMgr.js
DependencyMgr.js
neo4jValidation Report
<!>
<?>
<.>
Module
declaration
declarators
items
binding init
left right
Architektúra áttekintés
10
Kódfeldolgozás lépései
21
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
22
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
23
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Utasítások sorozata
adott nyelven formalizálva.
Kódfeldolgozás lépései
24
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Utasítások sorozata
adott nyelven formalizálva.
Kódfeldolgozás lépései
25
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
26
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
token – a legrövidebb, még
jelentéssel rendelkező
karaktersorozat
Kódfeldolgozás lépései
27
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
token – a legrövidebb, még
jelentéssel rendelkező
karaktersorozat
Kódfeldolgozás lépései
28
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Token Token típus
VAR (Keyword)
IDENTIFIER (Ident)
ASSIGN (Punctuator)
NUMBER (NumericLiteral)
DIV (Punctuator)
NUMBER (NumericLiteral)
token – a legrövidebb, még
jelentéssel rendelkező
karaktersorozat
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
13
Module
VariableDeclarationStatement
VariableDeclaration
VariableDeclarator
BindingIdentifier
name = `foo`
BinaryExpression
operator = `Div`
LiteralNumericExpression
value = 1.0
LiteralNumericExpression
value = 0.0
declaration
declarators
items
binding init
left right
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
13
Abstract Syntax Tree (AST)
– A tokenek sorozatának
– nyelvtani struktúrájának
– fa reprezentációja.
Module
VariableDeclarationStatement
VariableDeclaration
VariableDeclarator
BindingIdentifier
name = `foo`
BinaryExpression
operator = `Div`
LiteralNumericExpression
value = 1.0
LiteralNumericExpression
value = 0.0
declaration
declarators
items
binding init
left right
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
13
Module
VariableDeclarationStatement
VariableDeclaration
VariableDeclarator
BindingIdentifier
name = `foo`
BinaryExpression
operator = `Div`
LiteralNumericExpression
value = 1.0
LiteralNumericExpression
value = 0.0
declaration
declarators
items
binding init
left right
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
14
Module
declaration
declarators
items
binding init
left right
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
14
Module
declaration
declarators
items
binding init
left right
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
14
Module
declaration
declarators
items
binding init
left right
GlobalScope
variables
references
children
declarations
node
astNode
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
Abstract Semantic Graph
(ASG)
– Gráf, nem feltétlenül fa.
– Szintaktikai struktúra
mellett szemantikai
információt is hordoz.
– Tartalmaz
keresztéleket →
– A részkifejezések
akár közösek is lehetnek.
14
Module
declaration
declarators
items
binding init
left right
GlobalScope
variables
references
children
declarations
node
astNode
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Kódfeldolgozás lépései
14
Module
declaration
declarators
items
binding init
left right
GlobalScope
variables
references
children
declarations
node
astNode
AST vs ASG
15
AST vs ASG
15
Gráfmintaillesztés
16
VariableDeclarator
BindingIdentifier
name = `foo`
BinaryExpression
operator = `Div`
LNExpression
value = 1.0
LNExpression
value = 0.0
Gráfmintaillesztés
– Gráfminta
– Deklaratív,
– gráfszerű formalizmus
– feltételek kifejezésére.
16
VariableDeclarator
BindingIdentifier
name = `foo`
BinaryExpression
operator = `Div`
LNExpression
value = 1.0
LNExpression
value = 0.0
Gráfmintaillesztés
– Gráfminta
– Deklaratív,
– gráfszerű formalizmus
– feltételek kifejezésére.
16
VariableDeclarator
BindingIdentifier
name = `foo`
BinaryExpression
operator = `Div`
LNExpression
value = 1.0
LNExpression
value = 0.0
binding be
right
Gráfmintaillesztés
– Gráfminta
– Deklaratív,
– gráfszerű formalizmus
– feltételek kifejezésére.
16
VariableDeclarator
BindingIdentifier
name = `foo`
BinaryExpression
operator = `Div`
LNExpression
value = 1.0
LNExpression
value = 0.0
binding be
right
Gráfmintaillesztés
– Gráfminta
– Deklaratív,
– gráfszerű formalizmus
– feltételek kifejezésére.
16
BindingIdentifier
name = `foo`
Gráfmintalekérdezés
Cyphernyelven
nullávaltörténőosztás
keresésére
binding
Mintaillesztés
eredménye
Folyamat áttekintés
17
Folyamat áttekintés
17
központi
verziókezelő
rendszer
fejlesztői
munkaállomás
Git,VisualStudioCode
Folyamat áttekintés
17
központi
verziókezelő
rendszer
fejlesztői
munkaállomás
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Git,VisualStudioCode ShapeSecurityShift
Folyamat áttekintés
17
központi
verziókezelő
rendszer
transzformáció
fejlesztői
munkaállomás
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
Git,VisualStudioCode ShapeSecurityShift Java,Cypher
Folyamat áttekintés
17
központi
verziókezelő
rendszer
transzformáció
fejlesztői
munkaállomás
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
gráf
adatbázis
Git,VisualStudioCode ShapeSecurityShift Java,Cypher Neo4j
Folyamat áttekintés
17
központi
verziókezelő
rendszer
transzformáció
fejlesztői
munkaállomás
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
feldolgozás
gráf
adatbázis
Git,VisualStudioCode ShapeSecurityShift Java,Cypher Neo4j
Folyamat áttekintés
17
központi
verziókezelő
rendszer
transzformáció
fejlesztői
munkaállomás
tokenizer
forráskód
tokenek
AST
ASG
parser
scope analyzer
feldolgozás
gráf
adatbázis
Git,VisualStudioCode ShapeSecurityShift Java,Cypher Neo4j
Felhasználás statikus analízis
– Lokális hibaminták keresése
(linter hibák)
– nélküli
keresése
– Többször változtatott
– Nem használt változó
– Globális lekérdezések
– Elérhetetlen kódrészlet
– Keretrendszer
– Tetszőlegesen bővíthető
– Cégszintű szabályok
– Egyszerűbben használható
(nem visitor mintás megoldás)
18
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
if
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
if feltétel
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
utasítás utasítás
if feltétel
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
utasítás utasítás
if
utasítás
feltétel
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
utasítás utasítás
hiba
if
utasítás
feltétel
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
utasítás utasítás
utasítás
hiba
if
utasítás
feltétel
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
utasítás utasítás
utasítás
hiba
if
utasítás
feltétel
Felhasználás transzformáció
Control Flow Graph (CFG)
– A program futása során
– elérhető összes
utasítássorozat
– gráf reprezentációja.
19
utasítás
utasítás
utasítás utasítás
utasítás
hiba
if
kész
utasítás
feltétel
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
hiba
Felhasználás tesztgenerálás
– Lefutási esetek vizsgálata
– Megadott feltételek mellett
– elérhető az adott utasítás?
– Melyik a legrövidebb út oda?
– Teszt paraméterek előállítása
20
utasítás
utasítás
utasítás utasítás
utasítás
if
kész
feltétel
utasítás
Felhasználás típusanalízis
– Dinamikus nyelvek támogatása
– Python
– JavaScript / ECMAScript
21
Felhasználás típusanalízis
– Dinamikus nyelvek támogatása
– Python
– JavaScript / ECMAScript
21
http://marijnhaverbeke.nl/blog/tern.html
Felhasználás impakt analízis
– A folytonos integrációhoz igazodva
– Különböző branch-ek kezelése
– Branch-en belüli változások követése
– Fájlszintű inkrementális kiértékelés
– Fejlesztők számára differenciális visszajelzés
22
Miért Neo4j?
+++
– Gyors prototipizálás
– Tranzakciók támogatása
– Fejlett tooling
--
– Nem skálázható
– Csak diszk-alapú működés
23
Észrevételek MERGE
– MATCH or CREATE
– Kényelmi szempontból
nagyszerű
– Cserébe drága
– Lehetséges megoldások:
– MERGE-ök ritkítása
– Lekérdezések szétszedése
– Létrehozás, ha még nincs
– MERGE helyett MATCH
– Megelőzés
– Adatok felvételekor előkészítés
24
Észrevételek MERGE
25
3 1
Észrevételek if-then-else
– Nincs rá Cypher nyelvi elem
– Trükközéssel oldható meg
– Naggggggyon lassú
– Megoldás:
– Két kisebb, diszjunkt eset
26
Észrevételek if-then-else
– Nincs rá Cypher nyelvi elem
– Trükközéssel oldható meg
– Naggggggyon lassú
– Megoldás:
– Két kisebb, diszjunkt eset
26
Észrevételek if-then-else
27
Észrevételek if-then-else
28
∞ vs 15 sec
Észrevételek if-then-else
28
∞ vs 15 sec
Észrevételek elérhetőség
– A korlátozás nélküli tranzitív
lezárt nem gyors
– A mintázatra illeszkedő
tranzitív lezárt trükközéssel
megoldható
29
A B
*
Észrevételek elérhetőség
– A korlátozás nélküli tranzitív
lezárt nem gyors
– A mintázatra illeszkedő
tranzitív lezárt trükközéssel
megoldható
29
A B
*
Észrevételek elérhetőség
– A korlátozás nélküli tranzitív
lezárt nem gyors
– A mintázatra illeszkedő
tranzitív lezárt trükközéssel
megoldható
29
A B
*
Összefoglalás
– Forráskódelemző
keretrendszer
– Globális hibaminták keresése
– Közel valós idejű visszajelzés
– Típusanalízis
– Tesztgenerálás
– Megközelítés dinamikus és
nem dinamikus nyelvekhez
– Neo4j-t használva
– Tárolás
– Transzformáció
– Verziókezelés
– Mintaillesztés
– Metaadat-tár
30
Köszönetnyilvánítás
– Dr. Ráth István Zoltán
– Ujhelyi Zoltán
– Izsó Benedek
MTA-BME Lendület
Kiberfizikiai Rendszerek
Kutatócsoport
31

Contenu connexe

Similaire à Forráskódtárak gráfalapú statikus analízise

Funkcionális tesztelés támogatása UFT tesztautomatizálással
Funkcionális tesztelés támogatása UFT tesztautomatizálássalFunkcionális tesztelés támogatása UFT tesztautomatizálással
Funkcionális tesztelés támogatása UFT tesztautomatizálással
Gergő Hencz
 
Webalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaWebalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálása
Ferenc Kovács
 
Continous Integration and Deployment
Continous Integration and DeploymentContinous Integration and Deployment
Continous Integration and Deployment
Károly Nagy
 
8 Bauer Tamas Gal Gyorgy Portal Alkalmazasok Jogosultsag Kezelese
8 Bauer Tamas   Gal Gyorgy   Portal Alkalmazasok Jogosultsag Kezelese8 Bauer Tamas   Gal Gyorgy   Portal Alkalmazasok Jogosultsag Kezelese
8 Bauer Tamas Gal Gyorgy Portal Alkalmazasok Jogosultsag Kezelese
POLYGON Informatikai Kft.
 

Similaire à Forráskódtárak gráfalapú statikus analízise (20)

Hogyan optimalizáljunk C/C++ kódokat!
Hogyan optimalizáljunk C/C++ kódokat!Hogyan optimalizáljunk C/C++ kódokat!
Hogyan optimalizáljunk C/C++ kódokat!
 
JavaScript forráskódtárak gráfalapú statikus analízise
JavaScript forráskódtárak gráfalapú statikus analíziseJavaScript forráskódtárak gráfalapú statikus analízise
JavaScript forráskódtárak gráfalapú statikus analízise
 
Valos ideju megoldasok realtime ods és database in memory tapasztalatok
Valos ideju megoldasok realtime ods és database in memory tapasztalatokValos ideju megoldasok realtime ods és database in memory tapasztalatok
Valos ideju megoldasok realtime ods és database in memory tapasztalatok
 
Alumni Release Process
Alumni Release ProcessAlumni Release Process
Alumni Release Process
 
Agile, Ésszerűen
Agile, ÉsszerűenAgile, Ésszerűen
Agile, Ésszerűen
 
Funkcionális tesztelés támogatása UFT tesztautomatizálással
Funkcionális tesztelés támogatása UFT tesztautomatizálássalFunkcionális tesztelés támogatása UFT tesztautomatizálással
Funkcionális tesztelés támogatása UFT tesztautomatizálással
 
Webalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálásaWebalkalmazások teljesítményoptimalizálása
Webalkalmazások teljesítményoptimalizálása
 
Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelvenSzerver oldali fejlesztés korszerű módszerekkel C# nyelven
Szerver oldali fejlesztés korszerű módszerekkel C# nyelven
 
Információbiztonság: Napló
Információbiztonság: NaplóInformációbiztonság: Napló
Információbiztonság: Napló
 
Budapest.rb 201010
Budapest.rb 201010Budapest.rb 201010
Budapest.rb 201010
 
KRL Kuka Robot Language - Timotei István Erdei - Timotei-Robotics
KRL Kuka Robot Language - Timotei István Erdei - Timotei-RoboticsKRL Kuka Robot Language - Timotei István Erdei - Timotei-Robotics
KRL Kuka Robot Language - Timotei István Erdei - Timotei-Robotics
 
Szoftver tesztelés
Szoftver tesztelésSzoftver tesztelés
Szoftver tesztelés
 
Continous Integration and Deployment
Continous Integration and DeploymentContinous Integration and Deployment
Continous Integration and Deployment
 
Linux Kernel - Bevezetes
Linux Kernel - BevezetesLinux Kernel - Bevezetes
Linux Kernel - Bevezetes
 
Teszt alapú fejlesztés
Teszt alapú fejlesztésTeszt alapú fejlesztés
Teszt alapú fejlesztés
 
Virtualizáció az EGISben
Virtualizáció az EGISbenVirtualizáció az EGISben
Virtualizáció az EGISben
 
Virtuális Platformváltás validált környezetben
Virtuális Platformváltás validált környezetbenVirtuális Platformváltás validált környezetben
Virtuális Platformváltás validált környezetben
 
8 Bauer Tamas Gal Gyorgy Portal Alkalmazasok Jogosultsag Kezelese
8 Bauer Tamas   Gal Gyorgy   Portal Alkalmazasok Jogosultsag Kezelese8 Bauer Tamas   Gal Gyorgy   Portal Alkalmazasok Jogosultsag Kezelese
8 Bauer Tamas Gal Gyorgy Portal Alkalmazasok Jogosultsag Kezelese
 
Testing the system: ethical hacking and penetration testing (in Hungarian)
Testing the system: ethical hacking and penetration testing (in Hungarian)Testing the system: ethical hacking and penetration testing (in Hungarian)
Testing the system: ethical hacking and penetration testing (in Hungarian)
 
GN4-UP2U update - Moodlemoot19
GN4-UP2U update - Moodlemoot19GN4-UP2U update - Moodlemoot19
GN4-UP2U update - Moodlemoot19
 

Forráskódtárak gráfalapú statikus analízise