abschlussvortrag masterarbeit: operationalizing ... · jenkins É continuous ... workflow mit...
TRANSCRIPT
Abschlussvortrag Masterarbeit:Operationalizing Architecture in an agile Software Project
Arsenij E. SolovjevFreie Universität Berlin, Institut für Informatik
February 2, 2015
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Übersicht
EinleitungArchitekturDas Problem
Mein Ansatz: konstruktive Qualitätssicherung
Integration in das Prozess
Archnemesis
Architecture Compliance Checking
Fazit
,2
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Was ist Softwarearchitektur?
Softwarearchitekturgeht über die konkreten Algorithmen undDatenstrukturen hinaus und befasst sich mit derGesamtstruktur eines Systems.
befasst sich mit:É Globale KontrolstrukturenÉ Protokolle für Kommunikation, Synchronization
und DatenzugriffÉ Zuweisung von Funktionalität zu
EntwurfselementenÉ Komposition von EntwurfselementenÉ physische Verteilung d. Systems usw.
[frei nach [Garland and Shaw, 1993]],
3
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Architektur und agile Prozesse
“Emergent Architecture”É keine explizite PlanungÉ Architektur entsteht durch zeitgerechte
RefaktorisierungÉ braucht Gewissenhaftigkeit vom Entwickler
,4
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Das Problem: Architektur und agileProzesse
Agile Entwicklung wertet das Reagieren aufÄnderungen höher als das Befolgen eines PlanesE zu traditionellen architekturellen Praktiken,
welche viel Planung im Voraus brauchen
,5
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Das Problem: architekturelle Erosion
Architekturelle Erosionbezeichnet den wachsenden Spalt zwischengeplanter und tatsächlicher Architektur
Folgen⇓ Wartbarkeit⇓ Erweiterbarkeit⇓ Wiederverwendbarkeit⇓ Evolvierbarkeit
[frei nach [Terra, 2012]]
,6
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Ansatz
É Entwicklung einer DSL für ArchitekturenÉ Modellierung der ArchitekturÉ Implementirung von Architecture ComplianceChecking
É nahtloses Einführen in den Prozess
,7
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Ansatz
“Operationalisierung”Die Architektur wird selbst zum Artefakt derEntwicklung. Das Modell wird wie Quellcodebehandelt, d.h. es wird unter Versionsverwaltungstehen, Änderungen daran werden durchgesichtet,und Änderungen daran haben konkreteAuswirkungen.
,8
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Ansatz
É nahtloses Einführen in den ProzessÉ Entwicklung einer DSL für ArchitekturenÉ Modellierung der ArchitekturÉ Implementirung von Architecture ComplianceChecking
,9
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Das Versuchskaninchen: Saros
,10
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Jenkins & Gerrit
JenkinsÉ Continuous IntegrationÉ Kompiliert und testet Patches
GerritÉ Code ReviewÉ Erlaubt das Submitten eines Patches in die
produktive Codebasis
,11
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Alter Workflow
,12
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Workflow mit Sonarqube
,13
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Sonarqube
“open platform to manage code quality”É statische und dynamische Analyse von ProjektenÉ Management der entdeckten “Issues”É Erweiterbar und OpenSource (LGPLv3)
,14
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Implementierung der Integration
“nahtlose” IntegrationÉ keine Installation von neuen WerkzeugenÉ kein zusätzlicher Aufwand um den Feedback von
Sonarqube einzusehenÉ schneller Feedback
,15
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Implementierung der Integration
Erweiterung der Jenkins KonfigurationÉ Nach jedem Build für ein Patch werden pro
Projekt Sonarqube Analysen sowie die Unittestsdurchgeführt
É Verified[+1, -1]
,16
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Implementierung der Integration
Scala Skript welchesÉ sammelt die Issues von der AnalyseÉ postet sie als Kommentare in das Gerrit-Review
,17
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Evaluation
É informell, da kleiner Kreis an aktiven EntwicklernÉ positives FeedbackÉ im Groben wurde das Ziel der “Nahtlosigkeit”
erreicht
,18
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Ansatz
É nahtloses Einführen in den ProzessÉ Entwicklung einer DSL für ArchitekturenÉ Modellierung der ArchitekturÉ Implementirung von Architecture ComplianceChecking
,19
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Architecture Description Languages
ADLformelle Notation zur Modelierung von Architekturen.
übliche ElementeÉ ComponentsÉ ConnectorsÉ ConstraintsÉ Rationale
,20
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Xtext
É Sprache für GrammatikenÉ generiert Parser (wichtig für Architecture
Compliance Checking)É generiert Eclipse-Editor
,21
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Die Grammatik
,22
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Figure : Patrick Schlott: Analyse und Verbesserung derArchitektur eines nebenläufigen und verteiltenSoftwaresystems
,23
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Die Beschreibung
,24
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Literate DSL
Literate ProgrammingProgramme in diesem Stil bestehen aus zweiElementen.É EssayÉ “tangling” Code
,25
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Evaluation
É Evaluation fand im Reviewprozess auf Gerritstatt.
É schneller Feedbackzyklus
,26
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Ansatz
É nahtloses Einführen in den ProzessÉ Entwicklung einer DSL für ArchitekturenÉ Modellierung der ArchitekturÉ Implementirung von Architecture ComplianceChecking
,27
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Sonarqube Plugin
É Erste Version als Erweiterung von demPMD-Plugin
É Zweite Version als Erweiterung einer SonarqubeJava Rule
É Beide analysieren auf Ebene des abstraktenSyntaxbaumes
,28
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
AST
,29
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Ergebnisse im Überblick
SoftwareÉ DSL zur Beschreibung von Architekturena
É Eclipse Editor für die DSLb
É Sonarqube Plugin für Architecture ComplianceChecks c
É Integration zwischen Issue Reports vonSonarqube und Gerrit
ahttps://github.com/saros-project/archnemesisbEclipse Update Site:
http://saros-build.imp.fu-berlin.de/update-archnemesis/chttps://github.com/saros-project/archnemesis-sonar-rule
Prozess von SarosÉ zusätzliches Feedback von FindBugs, Squid etc.É operationailisierte Beschreibung der Architektur ,
30
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Ausblick
Es gibt noch offene StellenÉ Schnittstellen könnten besser modelliert werdenÉ Sonarqube hat immer noch gelegentlich das
“Read Timed out” ProblemÉ Das weitere Vorgehen um Constraints ist nicht
ganz klarÉ Man kann die Gerrit-Historie nach weiteren
Architektur-Eigenschaften von Sarosdurchforsten, und diese in der DSL ausdrücken
,31
Arsenij E.Solovjev
EinleitungArchitektur
Das Problem
Mein Ansatz:konstruktiveQual-itätssicherung
Integrationin dasProzess
Archnemesis
ArchitectureComplianceChecking
Fazit
Bibliographie
Ricardo Terra and Marco Tulio Valente andKrzysztof Czarnecki and Roberto S. BigonhaRecommending Refactorings to ReverseSoftware Architecture Erosion.16th European Conference on SoftwareMaintenance and Reengineering, 2012.
Garlan, D. & Shaw, MAn Introduction to Software Architecture,Advances in Software Engineering andKnowledge Engineering Vol. 1, 1993.
,32