Modellgetriebene Softwareentwicklung



Ähnliche Dokumente
Vortrag von: Ilias Agorakis & Robert Roginer

Model Driven Development im Überblick

SEA. Modellgetriebene Softwareentwicklung in der BA

Einführung in modellgetriebene Softwareentwicklung. 24. Oktober 2012

Model Driven Architecture Praxisbeispiel

Model Driven SOA Modellgetriebene Entwicklung von SOA Anwendungen. OOP München,

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

INNOVATOR im Entwicklungsprozess

b+m Informatik AG Langlebige und zukunftsfähige modellgetriebene Softwaresysteme? Thomas Stahl b+m Informatik AG

Festpreisprojekte in Time und in Budget

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Die MID ModellierungsMethodik M³ ein Baukasten für Produktlinien. Andreas Ditze, MDD & PL 2009, Leipzig,

Neue Funktionen in Innovator 11 R5

Model Driven Architecture (MDA)

Systemdenken und Gestaltungsmethodik System-Modellierung

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Generatives Programmieren

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Comparing Software Factories and Software Product Lines

Model Driven Architecture

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

Christian Kühnel, BMW Group AGILE ENTWICKLUNG VON FAHRERASSISTENZSOFTWARE. AGILE CARS 2014.

Modellgetriebene Service-Entwicklung

Software Systems Engineering

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

UML-DSLs effizient eingesetzt. Insight 07, Klaus Weber

Einführungsstrategien komplexer IT-Lösungen

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

Eine Logikschaltung zur Addition zweier Zahlen

Model Driven SOA. < J Springer. Anwendungsorientierte Methodik und Vorgehen in der Praxis. Gerhard Rempp Mark Akermann Martin Löffler Jens Lehmann

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Aktuelle Abschlussarbeiten

Softwareentwicklung aus Sicht des Gehirns

itestra Software Tuning Mehr Leistung. Weniger Kosten. Software Productivity

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Inhalt. Motivation Techniken des MDE. Fallbeispiele

Übungen zur Softwaretechnik

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Microsoft Office Visio 2007 Infotag SemTalk Thema: Prozessmodellierung

Geschäftsprozessimplementierung mit BPMN, ADF und WebCenter

Der Kopf ist rund, damit das Denken die Richtung

Model-Driven Development in Scrum-Projekten

Faktor-IPS. Modellgetriebene Softwareentwicklung mit Faktor-IPS. Faktor Zehn AG. Seite 1

Eclipse Plugins für die komfortablere Verwendung von ibatis SQLMaps

Software-Qualität im Rahmen modellgetriebener Softwareentwicklung

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt

Aktuelle Fortschritte von MDAbasierten Entwicklungsansätzen im Bereich Fahrerassistenzsysteme

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Grundlagen Software Engineering

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Übungsklausur vom 7. Dez. 2007

Präsentation Von Laura Baake und Janina Schwemer

Requirements-Traceability in der industriellen Praxis Ziele und Einsatz

A Domain Specific Language for Project Execution Models

Soft Skills als Erfolgsfaktoren im anforderungsorientierten, agilen Projektmanagement am Beispiel der IT- Softwareentwicklung

Einreichung zum Call for Papers

Dr. Klaus Körmeier BlueBridge Technologies AG

Educase. Release Notes 1.7: Neue Funktionen und Verbesserungen. Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee

Institut für Computational Engineering ICE. N ä h e r d ra n a m S ys t e m d e r Te c h n i k d e r Z u ku n f t. w w w. n t b.


AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

IT-Projekte effektiv steuern durch Integration von Modellierung und ALM bzw. Änderungsmanagement

Xesar. Die vielfältige Sicherheitslösung

Vorgestellt von Hans-Dieter Stubben

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Kapitel 2: Der Software-Entwicklungsprozess

Was versteht man unter Softwaredokumentation?

Modellbasierte Softwareentwicklung

Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind. Albert Einstein BERATUNG

Andreas Lux Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Einführung in die Informatik II

Lösungen zum Test objektorientierter Software

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Quality is our Passion!

Anbindung Borland CaliberRM

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik.

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Agile Unternehmen durch Business Rules

Neu erstellen!!! Wenigstens das Deckblatt erscheint fehlerfrei IT-Sicherheitsbeauftragter

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Der frühe Tester fängt den Bug

Einführung in Eclipse und Java

Agile Softwareentwicklung

Transkript:

Modellgetriebene Softwareentwicklung 30.10.2008 Dr. Georg Pietrek, itemis AG

Inhalt Wer ist itemis? Modellgetriebene Entwicklung Ein Praxis-Beispiel Fazit 2

Vorstellung IT-Dienstleister Software-Entwicklung Schulung/Coaching Vorgehensmodelle (agile Verfahren) Toolkette/Toolentwicklung Software-Architektur Projektmanagement Mitarbeit im Projekt Auftragsentwicklung 3

Vorstellung Anwendungsgebiete Unternehmensanwendungen Eingebettete Systeme Expertise/Schwerpunkt: Modellgetriebene Entwicklung 4

Vorstellung Standorte Lünen (Hauptsitz) Kiel Leipzig Bonn Pforzheim Toulouse bald: Schweiz, Nordamerika Mitarbeiter über 130 5

Ausgewählte Kunden und Projekte ThyssenKrupp Steel Ablösung der Hostsysteme in der Verkehrswirtschaft durch J2EE Systeme Deutsche Post Optimierung der MDA Entwicklung, SOA Einführung Mailing Factory, Gesundheitskarte, Plusbrief Individuell Bertelsmann Projekte für Lufthansa Miles & More, Maggi, Riester Rente PricewaterhouseCoopers Benchmarking Platform, zentrales Kernprojekt, strategische Partnerschaft Bosch Toolkette Modellgetriebene Softwareentwicklung für Automobil-Steuergeräte 6

Innovationsfähigkeit 4+1 Arbeitszeitmodell Open Source Engagement Werkzeuge für Modellgetriebene Entwicklung Strategisches Mitglied der Eclipse Foundation Forschungsprojekte Veröffentlichungen Bücher Zeitschriftenbeiträge Konferenzen 7

Inhalt Wer ist itemis? Modellgetriebene Entwicklung Ein Praxis-Beispiel Fazit 8

Modellgetriebene Entwicklung Was ist Modellgetriebene Entwicklung? Vielfalt von Begriffen: MDA (Model Driven Architecture) MDSD (Model Driven Software Development) MBD (Model Based development) DSL (Domain Specific Language) Gemeinsamkeit: maschinelle Verarbeitung von Modellen daraus: Erzeugung von Modellen, Quelltext, Testfällen, Dokumentation, Konfigurationsdateien, 9

MDA Was ist Model Driven Architecture (MDA)? Definiert von der OMG Generierung von Software aus UML-Modellen drei Stufen Platform Independent Model (PIM) Platform Specific Model (PSM) Quelltext Wird in dieser theoretischen Reinform in der Praxis fast nie angewandt 10

MDA Geschäftsprozesse Anforderungen Computational Independent Model (CIM) Model-Model Transformation* Analyse/Design CORBA-Model J2EE-Model XML-Model Platform Independent Model (PIM) Model-Model Transformation* Platform Specific Models (PSM) Model-Code Transformation* CORBA-Code J2EE-Code XML Implementierung * Transformationen sind i.d.r. Tool-gestützt 11

MDA Was ist MDA wirklich? MDA ist keine Architektur (im Sinne einer Software-Architektur) MDA ist Architektur-neutral beliebige Architekturen lassen sich mit MDA umsetzen MDA ist ein Ansatz, einen bestimmten Teil des Softwareentwicklungsprozesses zu automatisieren 12

MDSD pragmatische Sicht: Model Driven Software Development (MDSD) Modellierung in geeigneter Darstellungsform (UML, DSL, Visio, Excel-Datei) grafisch textuell Generierung von Quelltext-Rahmen (oder anderen Artefakten) Ergänzen des Rahmens mit handprogrammiertem Code (100%-Generierung kein sinnvolles Ziel!) 13

MDSD Model 2 Text Simulation/Visualization Model 2 Model M2 MDSD Models Validation/Verification Editors 14

MDSD Entwicklungsprozess und Erzeugnisse Analyse OOA-Modell Design OOD-Modell Implementierung Quelltext MDSD automatisiert einen Teil des Schrittes vom OOD-Modell zum Quelltext 15

MDSD Objektorientierte Software-Entwicklung (ohne MDSD) Analyse Design Implementierung Anforderungen Analyse-Modell (OOA) Design-Modell (OOD) Quelltext (OOP) 16

MDSD Vorgehen mit MDSD Analyse Design Generierung Anforderungen Analyse-Modell (OOA) Design-Modell (OOD) Implementierung (Ergänzung) generierter Quelltext Quelltext (OOP) 17

MDSD Vorgehensmodell für MDSD-Etablierung: Definition der Architektur Entwicklung eines Architektur-Prototypen Identifizierung generierbarer Anteile Definition einer Modellierungssprache Ableitung der Templates aus dem Prototyp-Quelltext Verifizierung der Templates durch Rückwärts-Vergleich der Generate mit dem Prototyp-Quelltext Einsatz der Templates Modellierung Generierung Ergänzung des Quelltextes 18

Inhalt Wer ist itemis? Modellgetriebene Entwicklung Ein Praxis-Beispiel Fazit 19

Inhalt Wer ist itemis? Modellgetriebene Entwicklung Ein Praxis-Beispiel Fazit 20

Praxis-Erfahrungen Zwei parallele Entwicklungsstränge gleichzeitige Weiterentwicklung an Architektur/Framework/Generator Fachanwendung auf den erste Blick: macht das Leben schwieriger Koordination der Releases funktionierende Rückkopplung von der Fachanwendungsentwicklung zur Architektur ist unabdingbar 21

Praxis-Erfahrungen Zwei parallele Entwicklungsstränge tatsächlich: einziger in der Praxis funktionierender Weg (Alternative Wasserfall funktioniert nicht) Architektur-Tätigkeit wird konstruktiv (keine Elfenbeinturm-Architektur!) Architektur entwickelt sich auf der Grundlage der Anforderungen der Fachanwendung (Architektur dient der Anwendungsentwicklung) 22

Praxis-Erfahrungen Spezialisierung der Entwickler Aufteilung in zwei Rollen Framework-/Generator-Entwickler Konzentration auf Technik Wissen Generator-Entwicklung nötig Wissen über technische Plattform nötig (EJB, Swing,...) Fachanwendungs-Entwickler Konzentration auf fachliche Aspekte Wissen Generator-Anwendung nötig wie wird modelliert? wo wird handgeschriebener Code zugefügt? kein Plattform-Wissen nötig 23

Praxis-Erfahrungen Spezialisierung der Entwickler zweifacher Vorteil Arbeit kann besser verteilt werden (Herausforderung Großprojekt: wie verteilt man die Aufgaben so, dass 100 Entwickler gleichzeitig arbeiten können?) Konzentration des Entwicklers auf sein Spezialgebiet (es muss nicht mehr jeder alles können) 24

Praxis-Erfahrungen Auswirkungen auf Software-Architektur ein großer Teil der Architektur-Vorgaben kann automatisiert umgesetzt werden garantierte Einhaltung der Architektur-Vorgaben automatisierte Umstellung bei Änderungen möglich (bis hin zum Wechsel auf andere Technik-Plattform) 25

MDSD: Pros und Cons Nachteile: initiale Kosten (für Erst-Erstellung der Generator-Templates) eventuell höhere Anforderungen an Qualifikation der Entwickler (Modellierungs-Kenntnisse) Vorteile: Realisierung konzentriert sich auf fachliche Aspekte mittel-/langfristig niedrigere Kosten langfristige Wartbarkeit Flexibilität Architektur-Änderungen durch Template-Anpassung bis hin zum Wechsel der technischen Plattform garantierte (da automatisierte) Architektur-Konformität höheres Qualitätsniveau der Ergebnisse 26

MDSD: Pros und Cons Größter Nutzen Höheres Qualitätsniveau der Ergebnisse: Vervielfachung von hochwertigem und getestetem Code Erstellung hochwertiger Templates ist rentabel, da diese vielfach genutzt werden keine Flüchtigkeitsfehler (keine Copy&Paste-Programmierung) Konzeption des Systems auf passendem Abstraktionsniveau (Modell, nicht Code) oft angestrebt, aber die Realität sieht meist so aus: einmaliges Erstellen eines Modells danach Pflege im Code Modell ist nach wenigen Monaten historisch bei MDA-Vorgehen automatisch erfüllt 27

Fazit Es lohnt sich! Grosse Teile einer Anwendung generierbar für jede Architektur machbar (vorgestellte Architektur diente hier nur als Beispiel) an beliebige Plattform anpassbar GUI: Struts, JSF, Swing, SWT, Server: EJB, Spring,.NET, Programmiersprache: Java, C#, Groovy, Cobol, 28