Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

MDA mit AndroMDA

2.421 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

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

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>

×