• Save
MDA mit AndroMDA
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

MDA mit AndroMDA

on

  • 3,074 views

 

Statistics

Views

Total Views
3,074
Views on SlideShare
3,069
Embed Views
5

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 5

http://www.slideshare.net 4
http://www.software-saxony.de 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MDA mit AndroMDA Presentation Transcript

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