Folien - Model-Driven Development and Product Lines
Transcription
Folien - Model-Driven Development and Product Lines
Thomas Bong otris software AG Königswall 21 44137 Dortmund www.otris.de MDD&PL Students Day 23.03.2009 MDD-Live Geschichte und Praxisbericht © copyright by otris software AG: Vervielfältigungen auch auszugsweise nur durch die schriftliche Genehmigung der otris software AG Inhalt Otris Wer ist otris Grundgedanken Ein paar Worte zu MDD und den Ursprüngen und wie Kaskadierung wirkt JANUS Wer oder was ist JANUS und wie funktioniert es Documents Welche Möglichkeiten ermöglicht Documents Beispiele z.B. Beschwerdemanagement oder Vertragsverwaltung otris software AG Spin Off der Ruhr-Uni Bochum JANUS-Projekt aktiv seit 1993 otris gegründet 1998 35 Mitarbeiter Ursprungsidee Softwarehaus für Softwarehäuser Konzentration auf Entwicklung und Support Umsatz 2006: 2,75 Mio. €; 2007: 3,5 Mio. € Installationen: > 2.000 Die Ursprünge der Grundlagen Coad/Yourdon-Notation Textuelle Spezifikation von Modellen in IDL (OMG) Quelle: oose.de Die aktuelle Kaskadierung JANUS: Die Idee Aus einem (statischen) UML-Modell eine grafische Oberfläche generieren Erste Implementierung 1993: Expertensystem Nexpert Object von Neuron Data generiert Dialogbeschreibungen An g e b o t AngebotsNr : Serial Erstellt am : Date = current Gültig bis : Date Freier Text : String<120> / Nettopreis : Currency / Mehrwertsteuer : Currency / Endpreis : Currency $ MwStSatz : UShort Drucken() JANUS: Die Idee Ausbau des Systems zu einem kompletten Anwendungsgenerator Umstellung auf C++ als Implementierungs- und Generierungssprache Generierung einer Datenbankschicht Generierung von Services Client/Server-Verteilung Der JANUS-Ansatz Modellieren eines fachlichen Modells JANUS-spezifische Informationen hinzufügen Generieren Eigenen Code hinzufügen Sehr inkrementell Ausführbare Anwendung von Anfang an Mit JANUS in wenigen Schritten zum Ziel Generierung Analyse Idee Modell Offer Customer CustomerNo : Serial Name : String<40> Address : String<100> ZipCode : String<7> 1 City : String<30> Contact : PersonT / W riteAc cess : Boolean OfferNo : Serial Valid from : Date = current Valid until : Date / Total : Currency / Value Added Tax : Currency 0.. n / Amount : Currenc y Remarks : Tex t $ VatRate : Unsigned Short = 16 / valid : Boolean Print() 1 1..n Ite m It emNo : Unsigned Short Quantity : Float = 1 / Cost per Quantity : Currenc y / Cost : Currenc y Product Produc t No : Serial Name : String<40> Unit of Quant it y : UnitOfQ uantit yKind = Piece Cost p er Quantity : Currency = 0 Spec ific ation : St ring<120> Length : Flo at W idth : Float Height : Float Capac it y : Float Licens eType : Lice nseTy peET = Node Locke d HourTy pe : HourTypeE T = Real (60 m in ) Pilotsystem Das Modell Pilotsystem auf Knopfdruck Entwickeln von Anwendungen mit JANUS 1 UMLUML-Modell Offer Customer Custom erNo : Seri al Name : Stri ng< 40> A ddress : Str ing< 100> ZipCode : S tring< 7> 1 City : S tring< 30> Contact : P er sonT OfferNo : S erial Valid from : Date = current Valid until : Date / Total : Currency / V alue A dded Tax : Currency 0..n / A mount : Currency Rem arks : Text $ VatRate : Unsigned S hort = 16 Print() < <S tructure> > PersonT Na me : Str ing<4 0> Telephone : Stri ng< 20> Fax : String< 20> E- Mail : St ri ng< 40> 1 1..n Item Item No : Unsigned Short Quantity : Float = 1 / Cost per Quantity : Currency / Cost : Currency 0.. n 1 < <E num erati on> > UnitOfQuantityKind Pi ece Sack Licen ce Hour Product Produc tNo : Serial Name : S tring< 40> Specification : S tring< 120> Unit of Quan tity : Unit OfQ uantityKind = P iece Cost per Quantit y : Cur ren cy = 0 4 Evaluieren 2 Spezifikation 3 Generieren JANUS-Entwicklung: Die ersten Jahre Architektur einer generierten Anwendung Schicht 1: Präsentation ODBC driver SSL Schicht 2: Fachkonzept Schicht 3: Datenhaltung XML client GUI client SSL JANUS server SSL Java API JANUS Laufzeitumgebung LDAP Server RDBMS Web client https Web Server JANUS – Der Weg Mit JANUS liegt eine ausgereifte Plattform vor mit mehr als 2.000 installierten Anwendungen Die Arbeit mit einem MDD-Werkzeug ist komplex und erfordert eine umfassende Ausbildung. Idee: MDD-Konzepte in die Problem Domain "Dokumenten-Management" übertragen Modellierung mit Hilfe speziell angepasster Domain Specific Languages: Grafische Modellierung von Workflows plus spezielle Programmiersprache zur Programmierung von Aktionen Documents oder JANUS – the next Generation Zielgruppe: Berater, auch ohne spez. Ausbildung Bewusster Verzicht auf komplexe Spezifikationen (z.B. UML) Flexibles webbasiertes Werkzeug Entwicklung vom DMS zu MDD Baukastenidee heute als Grundlage Step 1: Initial Development DMS- Architektur Step 1: Initial Development Betaversion Der erste Schritt Soviel Funktionalität wie möglich in den Generator aufnehmen Kleine Teams bringen enorme Vorteile Definierte Anforderungen Team 1: Stabile Version, Technische Änderungen Team 2: Neue Anforderungen Team 3: Benutzerfreundlichkeit Wichtig: Richtige Werkzeugunterstützung Kontrolle der gesamten Prozesskette der Entwicklung Step 2: Prozess und Workflowunterstützung Mit Erstellung der Basisversion von Documents kamen die Bedürfnisse nach neuen Funktionen Workflowunterstützung Flexibilität, Schnittstellen zu anderen Systemen Eine neue Entwicklungsrunde wurde gestartet Der Weg zu den ersten Installationen und Workflow Step 2: Todo der neuen Entwicklungsrunde Workflowengine entwicklen oder integrieren Entwicklung einer eigenen Definitionssprache und Auswahl eines geeigneten Editors für Workflows Integration in die Portalplattform Mehr Schnittstellen Step 2: Grafische Workflow-Definition Verwendung der Notation des UMLZustandsdiagramms Auswahl von MS-Visio als Editor Einfache Benutzung Hoher Bekanntheitsgrad Große Verbreitung Einfach nutzbares Interface Ergebnis Step 2 Ergebnis Step 2 Bestell-Workflow mit MS-Visio Start nicht OK (Serviceabteilung) Eingangsprüfung OK Ende (E-Mail) Kunden benachrichtigen nicht annehmen [Gesamtpreis > 500] (Prokurist) Bonität prüfen [else] annehmen (XML Export) Buchungssatz erzeugen [Vorkasse] Zahlungseingang [else] (Lager) Ware ausliefern (E-Mail) Versendebenachrichtigung Ergebnis Step 2 Die Hauptpunkte der zweiten Entwicklungsphase Betreung der schnell wachsenden Anwendergemeinde (über 200 Installationen im ersten Monat) Unterstützung der Kompatibilität zu früheren Versionen Teilung der Entwicklung Release-Version Feature-Version Step 3: Schaffung eines MDD Tool für DMS Die Benutzer/Partnern nahmen die Workflowfunktionalititäten seht schnell auf und forderten rasch weitere Funtkionaltitäten Partner: Wunsch nach dem Lösungsgedanken kam auf. Partner bauen mit dem Tool eigene Lösungen Benutzer: Glücklich über die einfache Nutzbarkeit. Wunsch nach größerer Flexibilität ohne die Komplexitität zu erhöhen Timeline Step 3: Todo der neuen Entwicklungsrunde Ergänzung einer Scripting Engine zum DMS Aufbau eines domain specific object model Wahl einer Scripting Engine Unterstützung der stetig wachsenden Nutzgemeinde Verbessern der Skalierbarkeit Architekturüberblick Ergebnis Step 3 Ergebnis Step 3 Schaffung des richtigen(!) object model war schwierig Integration der Scripting Engine war einfach Eine Anwendung die Modell und Programmiereigenschaften vereint, schafft ganz neue Lösungsansätze und -wege MDD – oder eine Produktfamilie – ist nicht nur für Programmierer wichtig, sondern auch für Benutzer. Step 4: Entwicklung von Software mit DOCUMENTS Nach Abschluß der bisherigen Entwicklung wurde praktisch ein MDD-Werkzeug geschaffen, welches in seinem Kern auf JANUS basiert Mit der Workflowunterstützung und Scripting wurden rasch Lösungen durch Partner und otris selbst erstellt Vertragsverwaltung CRM System Beschwerdemanegement (in verschiedenen Ausprägungen) Eingangsrechnungsverarbeitung Fonds-Verwaltung Plattform für den Immobilienverkauf Die aktuelle Entwicklungskette Beispiele aus dem Lösungsportfolio Einige aktuelle Beispiele Beschwerdemanagement Vertragsverwaltung Beschwerdemanagement Ausgangssitiuation Office Anforderungen Einfache Bedienung Schnelle Einführung Workflow- und Ticketfunktionalität Integrationsfähig Ausbaubarkeit und Flexibilität Lösung Generischer Ansatz mit DOCUMENTS Beschwerdemanagement Beschwerdemanagement Workflow Vertragsmanagement Ausgangssitiuation Papier Anforderungen Einfache Bedienung Zentrale Ablage Prozessunterstützung Integrationsfähig Ausbaubarkeit und Flexibilität Lösung Grundkonfiguration mit ind. Erweiterungsmöglichkeiten Übersicht CONTRACT LCM Vertragsmanagement CONTRACT LCM Konfiguration LCM Überblick LCM Fristüberwachung LCM Erweiterung Vielen Dank für Ihre Aufmerksamkeit! Thomas Bong [email protected] otris software AG Königswall 21 44137 Dortmund www.otris.de