Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Software Architecture DiscoveryWie können bestehende verteilte Systeme (IoT / Cloud)
analysiert werden?
Edgar Toll
9. Mai 2017
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Motivation
2 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Motivation
2 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Motivation
WPS - Workplace Solutions GmbH
3 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Motivation
I Eigentlich läuft doch schon ’ne ganze Menge
„There’s a way to do it better – find it.“— Thomas A. Edison
4 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Übersicht
Architektur Analyse
AnsätzestatischdynamischhybridGraphdatenbanken
Konferenzen
Fazit
5 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Was ist die Basis?Arbeiten mit dem realen System
6 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Wie verläuft eine Architektur Analysegenerell?
I Was will ich wissen?I Wie stelle ich die Ergebnisse dar?I Wie kriege ich das raus?
?Human.class
Pet.class
0
10
20
30
40
50
42
7 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Wie verläuft eine Architektur Analysegenerell?
I Was will ich wissen?I Wie stelle ich die Ergebnisse dar?I Wie kriege ich das raus?
?Human.class
Pet.class
0
10
20
30
40
50
42
7 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Was will ich wissen?Architektur Bewertungskriterien
Austauschbarkeit
Konformität
Installierbarkeit
Anpassbarkeit
Prüfbarkeit
Stabilität
Modifizierbarkeit
Analysierbarkeit
Verbrauchsverhalten
Zeitverhalten
Bedienbarkeit
Erlernbarkeit
Verständlichkeit
Wiederherstellbarkeit
Fehlertoleranz
Reife
Sicherheit
Ordnungsmäßigkeit
Interoperabilität
Richtigkeit
Angemessenheit
Übertragbarkeit
Änderbarkeit(Wartbarkeit)
Effizienz
Benutzbarkeit
Zuverlässigkeit
Funktionalität
Qualität
SE1 Vorlesung, Dai [ISO91]
8 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Wie stelle ich die Ergebnisse dar?Darstellen von Metriken
I PsychologieI Data ScienceI . . .
I ModularitätI MustertreueI Geordnetheit
Komplexität von Softwarearchitekturen, Stile und Strategien, CarolaLilienthal [Lil08]
9 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Wie kriege ich das raus?Messungen/ Tooling
I Statische Quellcode AnalyseI Dynamische AnalyseI Hybride AnalyseI Graphdatenbanken
10 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Statische AnalyseTooling
CodeCity
Structure101
Sonargraph
Lattix1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$root
org.apache.to
ols
ant.ta
skdefs
ant
UTIL
launcher
cvslib
optional
rmic
compilers
*
condition
loader
attribute
listener
dispatch
helper
input
filters
property
types
util
*
org.apache.tools.tar20
org.apache.tools.mail21
org.apache.tools.zip22
org.apache.tools.bzip223
launch
er
1
cvslib2
optio
nal
3
rmic
4
compile
rs5
*6
conditio
n7
8
loader
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1%
1
2
4
10
1%
5
1
9
8
20%
90
7
1
2
150
64
227
1%
10
9
5
11
2%
18
2
18
9
19
2
1
2
4
18%
20
1
1
7
8
5
389
146
369
4
14
4
5
4%
16
11
54
2
0.9%
6
3
10
1
0.3%
1
3
0.8%
10
3
0.9%
6
17
1
0.4%
4
0.8%
3
5
35
1
1
0.9%
3
5
1
3%
2
26
16
15
1%
8
2
3
1
19
21%
79
180
4
5
2
1
2
1
37
11%
57
7
5
1
1
3
2
4
8
23
35
7%
1
0.9%
7
0.5%
4%
0.6%
und weitere. . .
HintergrundI Metasprachen
Quellen:hello2morrow.com/products/sonargraph,structure101.com,lattix.com
11 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Statische AnalyseCode City
I Farbe: LoCI Höhe: MethodenI Fläche: Attribute
CodeCity [WL08], Richard Wettel, 2008
12 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Statische AnalyseSonargraph
Sonargraph, hello2morrow
13 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Statische AnalyseSonargraph
p u b l i c c lass Human {p u b l i c Pet [ ] Pets ;
}
p u b l i c c lass Pet {p u b l i c Human getOwner ( ) ;
}
I Bogen links: Abhängigkeit runterI Bogen rechts: Abhängigkeit hoch (Zyklus!)
Sonargraph, hello2morrow14 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Dynamische AnalyseNachrichtenanalyse
Idee: Decentralized Software Architecture Discovery in Distributed Systems,Technical Report, George Mason University [PMG16]Bilder: gotrace, Ivan Danyliuk
15 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Dynamische AnalyseNachrichtenanalyse
Idee: Decentralized Software Architecture Discovery in Distributed Systems,Technical Report, George Mason University [PMG16]Bilder: gotrace, Ivan Danyliuk
16 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Dynamische AnalyseNachrichtenanalyse
Idee: Decentralized Software Architecture Discovery in Distributed Systems,Technical Report, George Mason University [PMG16]Bilder: gotrace, Ivan Danyliuk
17 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Dynamische AnalyseNachrichtenanalyse
Idee: Decentralized Software Architecture Discovery in Distributed Systems,Technical Report, George Mason University [PMG16]Bilder: gotrace, Ivan Danyliuk
18 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Hybride Analyse (statisch &dynamisch)Kieker
I KomponentenI Operationen (Methodenaufrufe)I Container (Server)I Call TreesI Sequenz Diagramme
Kieker Framework [vHWH12], Uni Kiel, Uni Stuttgart
19 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Analyse mit GraphdatenbankenFrappéentwickelt für Linux Kernel Analyse
foo.hi n t bar ( i n t ) ;
foo.c# inc lude " foo . h "i n t bar ( i n t i npu t ) {r e t u r n i npu t ;
}
main.c# inc lude " foo . h "i n t main ( i n t argc ,
char ∗∗argv ) {r e t u r n bar ( argc ) ;
}
Frappé [HBC15], Oracle
20 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Analyse mit GraphdatenbankenJoerg Analysis Platform
I Gedacht für Bug Suche in C/C++I Buffer OverflowsI Memory Mapping BugsI . . .
I Speichern und Suchen in Graphdatenbankenjoerg [YGAR14], Uni Göttingen
21 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Konferenzen
generell Software Engineering &Programmiersprachen Konferenzen
I SATURN, Denver, 1-4 Mai 2017I SANER, Klagenfurt / Österreich, 20-24 Februar
2017I QCon, unter anderem:
I New York, 26-30 Juni 2017I London, 5-9 Mai 2018
I JAX, Mainz, 8-12 Mai 2017I „Qualität von Softwarearchitekturen“ von Carola
Lilienthal 22. Mai 14:15 in BT7 10.01
22 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Fazit
I Selten Architektur Pattern, häufig in Verbindungmit Programmiersprachen
I Viel Java/ C#, wenig C/ C++I Nur Graphdatenbanken Programmiersprachen
übergreifendI Niesche zwischen großen Themen
GrundprojektI Software in Graphdatenbanken
Betreuer: Prof. Thomas Lehmann
23 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Fragen?
24 / 25
Software Architecture Discovery
Vielen Dankfür die
Aufmerksamkeit!
Edgar Toll
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Paper I
Nathan Hawes, Ben Barham, and CristinaCifuentes.FrappÉ: Querying the linux kernel dependencygraph.In Proceedings of the GRADES’15, GRADES’15,pages 4:1–4:6, New York, NY, USA, 2015. ACM.
ISO.Software enginnering – product quality.ISO 9126:1991, International Organization forStandardization, 1991.
26 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Paper II
Carola Lilienthal.Komplexität von Softwarearchitekturen, Stile undStrategien.PhD thesis, Universität Hamburg,Von-Melle-Park 3, 20146 Hamburg, 2008.
Jason Porter, Daniel A. Menasce, and HassanGomaa.Decentralized software architecture discovery indistributed systems.Technical Report GMU-CS-TR-2016-02,Department of Computer Science, GeorgeMason University, 4400 University Drive MS4A5, Fairfax, VA 22030-4444 USA, 2016.
27 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Paper III
André van Hoorn, Jan Waller, and WilhelmHasselbring.Kieker: A framework for application performancemonitoring and dynamic software analysis.In Proceedings of the 3rd ACM/SPECInternational Conference on PerformanceEngineering, ICPE ’12, pages 247–248, NewYork, NY, USA, 2012. ACM.
Richard Wettel and Michele Lanza.Codecity: 3d visualization of large-scalesoftware.In Companion of the 30th InternationalConference on Software Engineering, ICSE
28 / 25
SoftwareArchitectureDiscovery
Edgar Toll
Motivation
Übersicht
ArchitekturAnalyse
Ansätzestatisch
dynamisch
hybrid
Graphdatenbanken
Konferenzen
Fazit
Fragen?
Paper IV
Companion ’08, pages 921–922, New York, NY,USA, 2008. ACM.
Fabian Yamaguchi, Nico Golde, Daniel Arp, andKonrad Rieck.Modeling and discovering vulnerabilities withcode property graphs.In Proc. of IEEE Symposium on Security andPrivacy (S&P), 2014.
29 / 25