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