architektonische herausforderungen in software-ecosystemen filearchitektonische herausforderungen in...

24
Architektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit¨ at Erlangen-N¨ urnberg 22. November 2012 M.Strotz (FAU) SECO-Arch 22. November 2012 1 / 22

Upload: others

Post on 19-Oct-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Architektonische Herausforderungen inSoftware-Ecosystemen

Michael Strotz

Friedrich-Alexander-Universitat Erlangen-Nurnberg

22. November 2012

M.Strotz (FAU) SECO-Arch 22. November 2012 1 / 22

Page 2: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

1 Perspektive auf das Software Ecosystem (SECO)

2 Erstellung und Weiterentwicklung der SECO-ArchitekturPlattformanalyseOffnung der Plattformarchitektur vorbereitenTransparenz und Modularitat ausbalancieren

Transparenz und ModularitatSchnittstelleninstablitatSchnittstellenkomplexitatAktivitatsbewusstseinSchnittstellentransluzenz

Weiterentwicklung der Architektur

3 Zusammenfassung

M.Strotz (FAU) SECO-Arch 22. November 2012 2 / 22

Page 3: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Perspektive auf das SECO

Abbildung :”Software Ecosystem Perspectives“ [5]

Organisation ←Software-Liefernetz (SSN) ←Software-Ecosystem (SECO)

Architektur ←geschaftliche Dimension

soziale DimensionM.Strotz (FAU) SECO-Arch 22. November 2012 3 / 22

Page 4: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

1 Perspektive auf das Software Ecosystem (SECO)

2 Erstellung und Weiterentwicklung der SECO-ArchitekturPlattformanalyseOffnung der Plattformarchitektur vorbereitenTransparenz und Modularitat ausbalancieren

Transparenz und ModularitatSchnittstelleninstablitatSchnittstellenkomplexitatAktivitatsbewusstseinSchnittstellentransluzenz

Weiterentwicklung der Architektur

3 Zusammenfassung

M.Strotz (FAU) SECO-Arch 22. November 2012 4 / 22

Page 5: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Erstellung und Weiterentwicklung der SECO-Architektur

Umbau einer Plattform zum SECO

Umgang mit den Herausforderungen eines SECO

Erstellung der Architektur in drei Schritten (nach [2])I PlattformanalyseI Offnung der Plattformarchitektur vorbereitenI Transparenz und Modularitat ausbalancieren

Weiterentwicklung der Plattform

M.Strotz (FAU) SECO-Arch 22. November 2012 5 / 22

Page 6: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Plattformanalyse

Rollen identifizierenI Hubs

F KeystonesF Dominators

I Niche PlayersF InfluencerF HedgerF Disciple

Vitalitat analysierenI ProduktivitatI StabilitatI Nischenschopfung

M.Strotz (FAU) SECO-Arch 22. November 2012 6 / 22

Page 7: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Offnung der Plattformarchitektur vorbereiten

entspricht Design-Phase

Vorgehen:I Abstraktionsebenen festlegenI Integrationsstufen festlegenI Rechte und Pflichten definieren

Herausforderungen:I Integration (fremder Komponenten)I Sicherheit und Verlasslichkeit

M.Strotz (FAU) SECO-Arch 22. November 2012 7 / 22

Page 8: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Abstraktionsebenen festlegen

Module und Abstraktionsebenen identifizieren

Beispiel:

Abbildung :”Architectural Openness Model for Mobile Software Platforms“ [3]

M.Strotz (FAU) SECO-Arch 22. November 2012 8 / 22

Page 9: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Integrationsstufen festlegen

Zugriffsmoglichkeiten auf verschiedene Ebenen explizit festlegen

Integrationsstufen (Beispiel):I

”integrate“: Kann vorhandene Komponenten der Ebene aufrufen

I”extend“: Kann sich in Komponenten der Ebene integrieren

I”modify“: Kann Komponenten der Ebene ersetzen oder modifizieren

M.Strotz (FAU) SECO-Arch 22. November 2012 9 / 22

Page 10: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Rechte und Pflichten definierenAktoren durch Rechte und Pflichen steuernZertifizierungsprozesse definierenAbhangig von:

I EbeneI Integrationsstufe

Beispiel:

Abbildung : nach [3]M.Strotz (FAU) SECO-Arch 22. November 2012 10 / 22

Page 11: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

1 Perspektive auf das Software Ecosystem (SECO)

2 Erstellung und Weiterentwicklung der SECO-ArchitekturPlattformanalyseOffnung der Plattformarchitektur vorbereitenTransparenz und Modularitat ausbalancieren

Transparenz und ModularitatSchnittstelleninstablitatSchnittstellenkomplexitatAktivitatsbewusstseinSchnittstellentransluzenz

Weiterentwicklung der Architektur

3 Zusammenfassung

M.Strotz (FAU) SECO-Arch 22. November 2012 11 / 22

Page 12: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Transparenz und Modularitat

TransparenzI erlaubt Entwicklern die Plattform besser zu verstehenI kann externe Entwickler uberfordernI beschrankt durch Sicherheit und Schutz geistigen Eigentums

ModularitatI erleichtert ArbeitsteilungI schlechte Unterstutzung unerwarteter querschneidender BelangeI Entwicklern bleiben nutzliche Informationen verborgen

⇒ Transparenz und Kapselung abgewagen

M.Strotz (FAU) SECO-Arch 22. November 2012 12 / 22

Page 13: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Schnittstelleninstablitat

unerwartete Anderungen senken die Vitalitat des SECO

Besipiel [6]:I

”The sample code, in the tutorial, gives me too many errors. So I am

not sure, if I build the code properly or some thing is wrong with thetutorial.“

I”Read a lot of source code. Clang is a moving target. If you are writing

tools based on clang, then you need to recognize that clang is addingand fixing features daily [...] read a lot of code!“

M.Strotz (FAU) SECO-Arch 22. November 2012 13 / 22

Page 14: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Schnittstelleninstablitat

⇒ Wahrscheinlichkeit einer Schnittstellenanderung kommunizierenI moglichst fruhzeitigI Entwickler konnen sich vorbereiten

Bewertung der Wahrscheinlichkeit:I Erfahrung der ArchitektenI performance-kritische KomponentenI Projekthistorie

M.Strotz (FAU) SECO-Arch 22. November 2012 14 / 22

Page 15: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Schnittstellenkomplexitat

komplexe Schnittstellen...I verhindern eine StandardisierungI schrecken neue Entwickler abI verursachen Benutzungsfehler

Beispiel:

int futex(int *uaddr, int op, int val, const struct timespec *timeout, int *uaddr2, int val3);

vsint pthread_mutex_lock(pthread_mutex_t *mutex);int pthread_mutex_unlock(pthread_mutex_t *mutex);

M.Strotz (FAU) SECO-Arch 22. November 2012 15 / 22

Page 16: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Schnittstellenkomplexitat

Komplexitat kommunizieren

auf alternative Schnittstellen verweisen

Bewertung der Komplexitat:I Signatur (Typen, Anzahl der Parameter)I Contraints (Pre-/Post-Conditions)

M.Strotz (FAU) SECO-Arch 22. November 2012 16 / 22

Page 17: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Aktivitatsbewusstsein (”Activity Awareness“ [4])

interne Designentscheidungen einer Komponente konnen andereKomponenten beinflussen

⇒ wichtige Designentscheidungen kommunizieren⇒ Evolution der Komponente dokumentieren

Beispiele:I Contraints (Pre-/Post-Conditions)I verwendete RessourcenI verwendete KommunikationsmechanismenI evtl. Algorithmen/Komplexitat

M.Strotz (FAU) SECO-Arch 22. November 2012 17 / 22

Page 18: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Schnittstellentransluzenz (”Interface Translucence“ [4])

vereint Vorteile von Transparenz und ModularitatTransparenz bestimmter Schlusselinformationen

I Schnittstelleninstabilitat (”Uncertainty“)

I Schnittstellenkomplexitat (”Complexity“)

I Aktivitatsbewusstsein (”Activity Awareness“)

/* * Foo: performs some operation * @param p1* @uncertainty URI_to_computation * ‘some assessment of the uncertainty of the foo() API’ * @complexity URI_to_computation * ‘some assessment of the complexity of the foo() API’ * @labormetric URI_to_computation * ‘some assessment of the development activity in the* implementation of the foo() API’ */Void foo(int p1) {

// implementation of the API }

Abbildung :”javadoc-style implementation of Interface Translucence“ [4]

M.Strotz (FAU) SECO-Arch 22. November 2012 18 / 22

Page 19: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

1 Perspektive auf das Software Ecosystem (SECO)

2 Erstellung und Weiterentwicklung der SECO-ArchitekturPlattformanalyseOffnung der Plattformarchitektur vorbereitenTransparenz und Modularitat ausbalancieren

Transparenz und ModularitatSchnittstelleninstablitatSchnittstellenkomplexitatAktivitatsbewusstseinSchnittstellentransluzenz

Weiterentwicklung der Architektur

3 Zusammenfassung

M.Strotz (FAU) SECO-Arch 22. November 2012 19 / 22

Page 20: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Weiterentwicklung der Plattform

neue Funktionalitat einbindenI Anwendungsbereich der Plattform ausweitenI neue Schnittstellen fruhzeigtig bekannt geben

Plattform entschlackenI gesteigerte Komplexitat senkt ProduktivitatI Anwendungsbereich eingrenzenI Veralteten Code entfernen

Schritte zur Erstellung der Architektur wiederholen

Schnittstellen zu Industriestandards entwickeln

M.Strotz (FAU) SECO-Arch 22. November 2012 20 / 22

Page 21: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

1 Perspektive auf das Software Ecosystem (SECO)

2 Erstellung und Weiterentwicklung der SECO-ArchitekturPlattformanalyseOffnung der Plattformarchitektur vorbereitenTransparenz und Modularitat ausbalancieren

Transparenz und ModularitatSchnittstelleninstablitatSchnittstellenkomplexitatAktivitatsbewusstseinSchnittstellentransluzenz

Weiterentwicklung der Architektur

3 Zusammenfassung

M.Strotz (FAU) SECO-Arch 22. November 2012 21 / 22

Page 22: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

Zusammenfassung

Software-Engineering-Prozess Herausforderungen

Schnittstellenstabilität

Integration

Sicherheit

Evolution

Abstraktionsebenen festlegen

Integrationsstufe festlegen

Schnittstelleninstabilität

Schnittstellenkomplexität Schnittstellenkomplexität

Aktivitätsbewusstsein

Rechte & Pflichten definieren

Öffnung der Plattform vorbereiten

Schnittstellentransluzenz

Weiterentwicklung d. Plattform

M.Strotz (FAU) SECO-Arch 22. November 2012 22 / 22

Page 23: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

J. Bosch,”Architecture challenges for software ecosystems“ in

Proceedings of the Fourth European Conference on SoftwareArchitecture Companion Volume - ECSA ’10, 2010, p. 93

R. Pereira, C. Maria, and L. Werner,”A Proposal for Software

Ecosystems Engineering“ in Proceedings of the Workshop on SoftwareEcosystems 2011, 2011, pp. 40-51.

M. Anvaari and S. Jansen,”Evaluating Architectural Openness in

Mobile Software Platforms“ in Proceedings of the Fourth EuropeanConference on Software Architecture Companion Volume - ECSA ’10,2010, p. 85.

M. Cataldo and J. D. Herbsleb,”Architecting in Software Ecosystems:

Interface Translucence as an Enabler for Scalable Collaboration“ inProceedings of the Fourth European Conference on SoftwareArchitecture Companion Volume - ECSA ’10, 2010, p. 65.

S. Jansen, A. Finkelstein, and S. Brinkkemper,”A sense of

community: A research agenda for software ecosystems“ in 2009 31st

M.Strotz (FAU) SECO-Arch 22. November 2012 22 / 22

Page 24: Architektonische Herausforderungen in Software-Ecosystemen fileArchitektonische Herausforderungen in Software-Ecosystemen Michael Strotz Friedrich-Alexander-Universit at Erlangen-N

International Conference on Software Engineering - CompanionVolume, 2009, pp. 187-190.

http://stackoverflow.com/questions/5130695/how-to-make-use-of-clangs-ast (Abgerufen: 21.11.2012-19:32,Erstellt: 27.02.2011)

M.Strotz (FAU) SECO-Arch 22. November 2012 22 / 22