Top Banner
Abschlussvortrag Masterarbeit: Operationalizing Architecture in an agile Software Projec Arsenij E. Solovjev Freie Universität Berlin, Institut für Informatik February 2, 2015
33

Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Jun 04, 2018

Download

Documents

phambao
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Abschlussvortrag Masterarbeit:Operationalizing Architecture in an agile Software Project

Arsenij E. SolovjevFreie Universität Berlin, Institut für Informatik

February 2, 2015

Page 2: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 3: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 4: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 5: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 6: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 7: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 8: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 9: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 10: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Arsenij E.Solovjev

EinleitungArchitektur

Das Problem

Mein Ansatz:konstruktiveQual-itätssicherung

Integrationin dasProzess

Archnemesis

ArchitectureComplianceChecking

Fazit

Das Versuchskaninchen: Saros

,10

Page 11: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 12: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Arsenij E.Solovjev

EinleitungArchitektur

Das Problem

Mein Ansatz:konstruktiveQual-itätssicherung

Integrationin dasProzess

Archnemesis

ArchitectureComplianceChecking

Fazit

Alter Workflow

,12

Page 13: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Arsenij E.Solovjev

EinleitungArchitektur

Das Problem

Mein Ansatz:konstruktiveQual-itätssicherung

Integrationin dasProzess

Archnemesis

ArchitectureComplianceChecking

Fazit

Workflow mit Sonarqube

,13

Page 14: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 15: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 16: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 17: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 18: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 19: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 20: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 21: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 22: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Arsenij E.Solovjev

EinleitungArchitektur

Das Problem

Mein Ansatz:konstruktiveQual-itätssicherung

Integrationin dasProzess

Archnemesis

ArchitectureComplianceChecking

Fazit

Die Grammatik

,22

Page 23: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 24: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Arsenij E.Solovjev

EinleitungArchitektur

Das Problem

Mein Ansatz:konstruktiveQual-itätssicherung

Integrationin dasProzess

Archnemesis

ArchitectureComplianceChecking

Fazit

Die Beschreibung

,24

Page 25: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 26: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 27: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 28: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 29: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Arsenij E.Solovjev

EinleitungArchitektur

Das Problem

Mein Ansatz:konstruktiveQual-itätssicherung

Integrationin dasProzess

Archnemesis

ArchitectureComplianceChecking

Fazit

AST

,29

Page 30: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 31: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 32: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

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

Page 33: Abschlussvortrag Masterarbeit: Operationalizing ... · Jenkins É Continuous ... Workflow mit Sonarqube, 13. Arsenij E. Solovjev Einleitung Architektur Das Problem Mein Ansatz: konstruktive

Arsenij E.Solovjev

EinleitungArchitektur

Das Problem

Mein Ansatz:konstruktiveQual-itätssicherung

Integrationin dasProzess

Archnemesis

ArchitectureComplianceChecking

Fazit

Vielen Dank für ihre Aufmerksamkeit!

,33