abschlussvortrag masterarbeit: operationalizing ... · jenkins É continuous ... workflow mit...

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

Upload: phambao

Post on 04-Jun-2018

217 views

Category:

Documents


0 download

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

Arsenij E.Solovjev

EinleitungArchitektur

Das Problem

Mein Ansatz:konstruktiveQual-itätssicherung

Integrationin dasProzess

Archnemesis

ArchitectureComplianceChecking

Fazit

Vielen Dank für ihre Aufmerksamkeit!

,33