MDA mit AndroMDA Praxiserfahrungen Torsten Lunze, Communardo Software GmbH
Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><l...
Motivation <ul><li>Welchen Vorteil bringt uns eine MDA Lösung? </li></ul><ul><li>Anforderungen  </li></ul><ul><ul><li>Aufw...
Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><l...
Einstieg in AndroMDA <ul><li>Java Sourceforge Projekt  </li></ul><ul><ul><li>Version 3.2 im weiteren verwendet </li></ul><...
Cartridges <ul><li>Vorgefertige Cartridges: </li></ul><ul><ul><li>(N)Hibernate </li></ul></ul><ul><ul><li>EJB3 </li></ul><...
Andromda Generationsprozess © Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de F...
Andromda Standardarchitektur © Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de ...
© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie  => Modelliert Generiert
Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><l...
Einsatz im Projekt <ul><li>Setup des Projektes </li></ul><ul><li>Buildmanagement </li></ul><ul><li>Teamwork </li></ul><ul>...
Setup von AndroMDA <ul><li>Verwendung von AndroMDA 3.2 mit Cartridges </li></ul><ul><ul><li>Hibernate </li></ul></ul><ul><...
Buildmanagement <ul><li>Integration der Generierung in Maven 2 </li></ul><ul><li>Kleine Änderung im Modell </li></ul><ul><...
Versionierung <ul><li>Problem: XML Format eines Modells komplex </li></ul><ul><ul><li>Mergen nahezu unmöglich </li></ul></...
Releasemanagement <ul><li>Neues Release 2 wird entwickelt. </li></ul><ul><li>Das Modell für Release 2 wird umfangreich ang...
Probleme <ul><li>Konfliktlösung in Modellierung falls Entwickler gleichzeitig ein Modell bearbeitet haben </li></ul><ul><l...
Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><l...
Einfluss auf Softwareprozess <ul><li>Learning Curve: „Lernen statt Arbeiten“ </li></ul><ul><ul><li>Lernaufwand höher: Zu v...
Verbreitung im Unternehmen <ul><li>Einstieg in AndroMDA für Softwareentwickler erleichtern </li></ul><ul><ul><li>Vorträge ...
Andromda - Vorteile <ul><li>Vorgefertige Cartridges (Hibernate, Spring) sind Out Of The Box verwendbar  </li></ul><ul><li>...
Andromda - Nachteile <ul><li>Muss mit den vorgefertigten generierten Konzept der 3-Schichten-Architektur leben </li></ul><...
Vorteile MDA <ul><li>Langfristige/Kurzfristige Vorteile (je nach Dauer des Projekts von Bedeutung): </li></ul><ul><li>Fehl...
Open issues <ul><li>Stabilität des Datenmodells </li></ul><ul><ul><li>Auswirkungen auf Datenbank </li></ul></ul><ul><li>En...
Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><l...
Fazit <ul><li>Templates / Cartridges in AndroMDA können direkt gentutzt werden </li></ul><ul><li>Ohne Anpassung von Genera...
Vielen Dank <ul><li>www.humannetworkcompetence.de </li></ul><ul><li>www.communardo.de </li></ul><ul><li>www.xing.com/profi...
Nächste SlideShare
Wird geladen in …5
×

MDA mit AndroMDA

2.324 Aufrufe

Veröffentlicht am

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.324
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
22
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

MDA mit AndroMDA

  1. 1. MDA mit AndroMDA Praxiserfahrungen Torsten Lunze, Communardo Software GmbH
  2. 2. Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><li>Erfahrungen aus dem Projekteinsatz </li></ul><ul><li>Fazit </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  3. 3. Motivation <ul><li>Welchen Vorteil bringt uns eine MDA Lösung? </li></ul><ul><li>Anforderungen </li></ul><ul><ul><li>Aufwand für Einarbeitung und Einrichtung im Verhältnis stehend zum Nutzen (Return of Investment) </li></ul></ul><ul><ul><li>Einfach handhabbar auch für neue Entwickler </li></ul></ul><ul><ul><li>Die Generierung und der Buildprozess muss stabil funktionieren </li></ul></ul><ul><ul><li>Das Modellierungstool muss bezahlbar bleiben </li></ul></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  4. 4. Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><li>Erfahrungen aus dem Projekteinsatz </li></ul><ul><li>Fazit </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  5. 5. Einstieg in AndroMDA <ul><li>Java Sourceforge Projekt </li></ul><ul><ul><li>Version 3.2 im weiteren verwendet </li></ul></ul><ul><li>Modellierung erfolgt über UML </li></ul><ul><ul><li>Anpassungen durch UML Profile (Stereotypen und Tagged Values) </li></ul></ul><ul><li>Generierung anhand von Velocity Templates </li></ul><ul><li>Bündelung von Templates und Konfigurationen in Cartridges </li></ul><ul><li>Anpassung an generierten Code durch </li></ul><ul><ul><li>Vererbung </li></ul></ul><ul><ul><li>Mergemappings </li></ul></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  6. 6. Cartridges <ul><li>Vorgefertige Cartridges: </li></ul><ul><ul><li>(N)Hibernate </li></ul></ul><ul><ul><li>EJB3 </li></ul></ul><ul><ul><li>Spring </li></ul></ul><ul><ul><li>Webservices (AXIS, Xfire) </li></ul></ul><ul><ul><li>Struts </li></ul></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie AndroMDA und Cartridges können direkt verwendet werden ohne Generator oder Templates anzupassen oder zu erstellen.
  7. 7. Andromda Generationsprozess © Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  8. 8. Andromda Standardarchitektur © Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  9. 9. © Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie => Modelliert Generiert
  10. 10. Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><li>Erfahrungen aus dem Projekteinsatz </li></ul><ul><li>Fazit </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  11. 11. Einsatz im Projekt <ul><li>Setup des Projektes </li></ul><ul><li>Buildmanagement </li></ul><ul><li>Teamwork </li></ul><ul><li>Versionskontrolle </li></ul><ul><li>Releasemanagement </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  12. 12. Setup von AndroMDA <ul><li>Verwendung von AndroMDA 3.2 mit Cartridges </li></ul><ul><ul><li>Hibernate </li></ul></ul><ul><ul><li>Spring </li></ul></ul><ul><ul><li>BPM4Struts </li></ul></ul><ul><li>Modellierung mit MagicDraw 9.5 </li></ul><ul><li>AndroMDA bietet einen Projektgenerator für Maven 2 </li></ul><ul><li>Cartridges müssen ebenfalls versioniert werden </li></ul><ul><li>Initiale geringe Anpassungen </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  13. 13. Buildmanagement <ul><li>Integration der Generierung in Maven 2 </li></ul><ul><li>Kleine Änderung im Modell </li></ul><ul><ul><li>Ziel: Nur die Dateien neu generieren, die davon betroffen sind </li></ul></ul><ul><ul><li>Lösung: </li></ul></ul><ul><ul><li> Generierung nur eines bestimmten Packages </li></ul></ul><ul><ul><li> Generierung nur durch ausgewählte Cartridges </li></ul></ul><ul><ul><li>Die Festlegung was neu generiert werden soll, wird nicht automatisch sondern muss vom Entwickler getroffen werden. </li></ul></ul>
  14. 14. Versionierung <ul><li>Problem: XML Format eines Modells komplex </li></ul><ul><ul><li>Mergen nahezu unmöglich </li></ul></ul><ul><li>Lösung: </li></ul><ul><ul><li>Aufsplitten der Modelle in Schichten (FE/Service/Backend) und Komponenten (User/Evaluation/Security…) </li></ul></ul><ul><ul><li>Mehrere Modelldateien </li></ul></ul><ul><ul><li>Nutzen von Locks in Versionskontrollen </li></ul></ul><ul><li>Alternativ: </li></ul><ul><ul><li>Teamworkserver (Checkin/Checkout über MagicDraw) </li></ul></ul><ul><li>Generierte Dateien nicht in Versionskontrolle </li></ul>
  15. 15. Releasemanagement <ul><li>Neues Release 2 wird entwickelt. </li></ul><ul><li>Das Modell für Release 2 wird umfangreich angepasst. </li></ul><ul><li>Es tritt ein Bug im Release 1 auf. </li></ul><ul><li>Der Bugfix benötigt eine Änderung des Modells für Release 1. </li></ul><ul><li>Die Änderung muss auch in Release 2 nachgezogen werden… </li></ul><ul><li>Automatismus? </li></ul>
  16. 16. Probleme <ul><li>Konfliktlösung in Modellierung falls Entwickler gleichzeitig ein Modell bearbeitet haben </li></ul><ul><li>BPM4Struts Cartridge zu unübersichtlich verwendbar </li></ul><ul><ul><li>Modellierung zu umständlich mit MagicDraw </li></ul></ul><ul><ul><li>Zusätzlich hoher Lernaufwand um Cartridge zu verstehen </li></ul></ul><ul><li>Bugs die durch Cartridge / Generator erzeugt werden sind schwieriger zu beheben </li></ul><ul><li>Lösungen die an Standardarchitektur vorbeigehen: </li></ul><ul><ul><li>Erstellung von nichtgenerierten Klassen </li></ul></ul><ul><ul><li>Keine Modellierung im Modell </li></ul></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  17. 17. Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><li>Erfahrungen aus dem Projekteinsatz </li></ul><ul><li>Fazit </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  18. 18. Einfluss auf Softwareprozess <ul><li>Learning Curve: „Lernen statt Arbeiten“ </li></ul><ul><ul><li>Lernaufwand höher: Zu verstehen was wird wie wo generiert </li></ul></ul><ul><ul><li>Dafür Einsparung von Arbeit: Kleine Anpassung im Modell  Große Änderung im Code (anstatt per Hand) </li></ul></ul><ul><li>Bei der Konfiguration des Projektes: </li></ul><ul><ul><li>Auswahl der zu nutzenden Cartridges </li></ul></ul><ul><ul><li>Anpassung, Erweiterung an Architekturforderungen </li></ul></ul><ul><li>Während des Projektes: </li></ul><ul><ul><li>Fehlerbehebung und Anpassung der Cartridges </li></ul></ul><ul><ul><li>Zu entscheiden: Passe ich die Implementierung an oder suche ich eine generische Lösung durch Veränderung der Cartridges? </li></ul></ul><ul><li>Nachdem Projekt: </li></ul><ul><ul><li>Einfluss der Erfahrungen </li></ul></ul><ul><ul><li>Wiederverwendung in neuen Projekten </li></ul></ul>
  19. 19. Verbreitung im Unternehmen <ul><li>Einstieg in AndroMDA für Softwareentwickler erleichtern </li></ul><ul><ul><li>Vorträge </li></ul></ul><ul><ul><li>Workshops </li></ul></ul><ul><li>Einsatz von AndroMDA in neuen Java Projekten </li></ul><ul><ul><li> Durch ähnliche Architektur von AndroMDA Projekten ist die Einarbeitung in ein anderes AndroMDA Projekt deutlich einfacher </li></ul></ul><ul><li>Erstellung und Nutzung einer Cartridge für Coremedia (CMS System) </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  20. 20. Andromda - Vorteile <ul><li>Vorgefertige Cartridges (Hibernate, Spring) sind Out Of The Box verwendbar </li></ul><ul><li>Müssen in anderen System i. d. R. erst von Hand geschrieben werden </li></ul><ul><ul><li>Sehr aufwändig </li></ul></ul><ul><li>Anpassbarkeit gegeben </li></ul><ul><li>Schnelles Entwickeln: Modell Code (abgesehen von Setup Aufwand) </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  21. 21. Andromda - Nachteile <ul><li>Muss mit den vorgefertigten generierten Konzept der 3-Schichten-Architektur leben </li></ul><ul><li>Trennung des Plattformspezifisches Modell nicht gegeben (für Andromda 4 geplant) </li></ul><ul><li>Verknüpfung von mehreren AndroMDA Projekten nur durch Anpassung von Cartridges </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  22. 22. Vorteile MDA <ul><li>Langfristige/Kurzfristige Vorteile (je nach Dauer des Projekts von Bedeutung): </li></ul><ul><li>Fehleranfälligkeit und Code-Qualität  Ja </li></ul><ul><li>Integration und Interoperabilität  Nicht relevant </li></ul><ul><li>Portabilität  Praktisch schwierig </li></ul><ul><li>Konsistenz zwischen Code und Modellen  Ja </li></ul><ul><li>Aufwand vs. Kosten </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  23. 23. Open issues <ul><li>Stabilität des Datenmodells </li></ul><ul><ul><li>Auswirkungen auf Datenbank </li></ul></ul><ul><li>Entfremdung des Entwicklers vom Code </li></ul><ul><li>Herstellerabhängigkeit durch Verwendung der Tools </li></ul><ul><li>Modellierung im Team </li></ul><ul><li>Releasemanagement </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  24. 24. Inhalt <ul><li>Motivation </li></ul><ul><li>Kurzeinstieg in AndroMDA </li></ul><ul><li>Einsatz im Projekt </li></ul><ul><li>Erfahrungen aus dem Projekteinsatz </li></ul><ul><li>Fazit </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  25. 25. Fazit <ul><li>Templates / Cartridges in AndroMDA können direkt gentutzt werden </li></ul><ul><li>Ohne Anpassung von Generation möglich Webanwendungen zu generieren </li></ul><ul><li>Ansatz in kurz- und mittelfristigen Projekten sinnvoll </li></ul><ul><li>Bei großen Projekten führen die Open Issues (insb. Teamwork und Releasemanagement) zu Problemen </li></ul>© Communardo Software GmbH · Fon +49 (0) 351 833820 · info@communardo.de · www.communardo.de Folie
  26. 26. Vielen Dank <ul><li>www.humannetworkcompetence.de </li></ul><ul><li>www.communardo.de </li></ul><ul><li>www.xing.com/profile/torsten_lunze </li></ul>

×