W3LJ2-Framework

Werbung
1
W3LJ2-Framework
Rapid Application Development Framework zur modellgetrieben Entwicklung von
kaufmännisch-administrativen Anwendungen
W3L AG
[email protected]
2013
2
Agenda
Einführung MDA
Domänen- und Anwendungsengineering
Vorgehen
Geschäftsanwendungen auf Basis des W3LJ2-Frameworks
Bestandteile des W3LJ2-Frameworks
Definition des ViewModels
Deklaratives Binding
Einsatzmöglichkeiten
Rollenbezogener Einsatz
Fazit
zurück
3
Buzz Word oder »heiliger Gral« der Softwareentwicklung?
EINFÜHRUNG MODELL DRIVEN
ARCHITECTURE
4
Model Driven Architecture
5
Model Driven Architecture
Domänen- und Anwendungsengineering
Domänenengineering
DomänenWissen
Domänen-Analyse
Domänen-Entwurf
Anforderungen
Konzepte &
ReferenzArchitektur
Applikations-Analyse
Applikations-Entwurf
Produkt-spezifische
Anforderungen
Anwendungsengineering
DomänenImplementierung
Komponenten,
Frameworks &
Generatoren
ApplikationsImplementierung
6
Probleme bei der Softwareentwicklung
Die zwei Ebenen der Softwareentwicklung
Analyse-/Definitionsphase
(fachlich, konzeptionell)
Entwurfs-/Implementierungsphase
(technisch, plattformspezifisch)
Lösung
des
fachlichen
Problems
Lösung
des techn.
Problems
Das Verstehen des fachlichen Problems ist elementar (Business Analyst)
7
Model Driven Architecture
Produktivitätssteigerung durch Automation und Wiederverwendung
Manuelle Erstellung durch den
Systemanalytiker (1. Ebene)
Generierung der
Anwendungsumgebung (2. Ebene)
(vgl. JANUS / Otris Software AG)
8
Model Driven Architecture
Beispiel Kundenverwaltung (fachlich)
9
Model Driven Architecture
Beispiel Kundenverwaltung (technisch)
Quelle: Lehrbuch der Softwaretechnik, Prof. Dr. Helmut Balzert
10
Model Driven Architecture
Beispiel Kundenverwaltung (Einzelplatzanwendung)
Quelle: Lehrbuch der Softwaretechnik, Prof. Dr. Helmut Balzert
11
Model Driven Architecture
Beispiel Kundenverwaltung (Mehrplatzanwendung)
Quelle: Lehrbuch der Softwaretechnik, Prof. Dr. Helmut Balzert
12
Model Driven Architecture
Ökonomische Vorteile
Quelle: Code Generation 2010 Introduction Model-Drivien Software Delevlopment
13
Model Driven Architecture
Generator erzeugt aus einem fachlichem Modell eine Rahmenanwendung
Vorteile
Trennung von Funktionalität und Technik
Entwickler können sich auf domänenspezifische Probleme konzentrieren
Wiederholende Komponenten (Persistenzschicht, Benutzerverwaltung,
Erfassungsdialoge) müssen nicht ständig neu entwickelt werden
Steigerung der Entwicklungsgeschwindigkeit
Entwickler müssen keine Experten in mehreren Disziplinen sein
Vorgehen
Fachliches Modell entwerfen
Modell mit Meta-Informationen versehen
Anwendung generieren
User-Code entwickeln
Anwendung ausführen
14
Übersicht – Model Driven Architecture
Lösung: Metadaten
Standardfunktionen
• Alle Stundensätze einsehen
• Erfassungsdialoge
• Verbindungen herstellen
• Benutzer- und Zugriffsrechte
• Letzte Änderung/erstellt von
• Journalisierung
Probleme
• Pluralbezeichner für Stundensatz
• „Name“ anderes Textfeld als „Beschreibung“
• Stundensatz besitzt eventuell Maximal-/Minimalwert
• ...
 Keine Modellierungsmöglichkeit in UML
15
Übersicht – Model Driven Architecture
Metadaten
16
Übersicht – Model Driven Architecture
Generator
Metadaten
Produktgrundgerüst
17
Übersicht – Model Driven Architecture
Produktgrundgerüst
User-Code
Compiler
Bibliothek
18
Übersicht – Model Driven Architecture
Bibliothek
Framework /
Laufzeitumgebung
Anwendung
19
GESCHÄFTSANWENDUNGEN AUF
BASIS DES W3LJ2-FRAMEWORKS
20
Model Driven Architecture
Domänen- und Anwendungsengineering
Domänenengineering
DomänenWissen
Domänen-Analyse
Domänen-Entwurf
Anforderungen
Konzepte &
ReferenzArchitektur
Applikations-Analyse
Applikations-Entwurf
Produkt-spezifische
Anforderungen
Anwendungsengineering
DomänenImplementierung
Komponenten,
Frameworks &
Generatoren
ApplikationsImplementierung
21
Technische Infrastruktur
W3LJ2-Framework
Dynamische
Assoziationen
Customizing
Anpassbarkeit
Standard Enterprise
Funktionalität
DomänenprojekteServercode
Historisierung /
Journalisierung
Modularisierung
UI-Engine
DomänenprojektModelle
DomänenprojekteGUI-Erweiterungen
Sitzungsverwaltung
/ SSO
Generatoren
Benutzer- und
Rechteverwaltung
Metadaten
Persistenzschicht
MySQL
MS SQL
Oracle
PostgresSQL
22
Erstellung des Anwendungsmodells
Neues Projekt anlegen (Class diagramm)
Stereotype unter Properties auf <<application>> setzen
Gewünschten Sachverhalt mithilfe der UML als Klassendiagramm
modellieren
Klassen, Attribute, Operationen,
Assoziationen modellieren
Kardinalitäten und Rollennamen angeben
23
Modellierung von Meta-Informationen
W3LJ2-Specifie aufrufen
Meta-Daten der verschiedenen Klassen bearbeiten
Evtl. ExtensionViews definieren (Klasse wählen  Layout 
ViewExtension)
Projekt-Einstellungen im Specifier festlegen (Hauptprojekt  Reiter
Application Settings)
24
Anwendung generieren
Mit
lässt sich die gesamte Anwendung im angegebenen
Verzeichnis generieren
Eigene Implementierungen sollten nur in den User-Code Klassen erzeugt
werden
Bei erneuter Generierung wird der bereits vorhandene User-Code nicht
überschrieben!
Durch Annotationen und den Einsatz von Hibernate ist die gesamte
Anwendung persistent in einem DB-Schema vorhanden
25
Implementierung von User-Code
Partial Class-Konzept zur Verteilung von generiertem und manuell
erstelltem Programmcode.
Neben jeder erstellten Klasse gibt es zusätzlich jeweils eine User-Code Klasse,
welche der Anwender nutzen kann, um eigenständigen Code zu implementieren.
Dies ist vor allem bei vorher definierten Operationen notwendig!
26
Ausführen der Anwendung
Beim Starten der Anwendung per
Bereich aufgerufen werden.
oder F5 sollte zunächst der Admin-
Hier kann nun das Datenbankschema und das Framework erstellt, sowie
das eigene Projekt deployed werden
DB-Schema erstellen
Framework erstellen
Anwendung deployen
27
Anmeldung
Mit einem Klick auf Startup RAD-Application lässt sich die Anwendung
starten
Im folgenden Dialog wird man gebeten, sich anzumelden
Benutzername: sysadmin
Passwort: sysadmin
28
Motivierendes Beispiel
29
W3LJ2-Framework
Komponenten des W3LJ2-Frameworks
W3L.Specifier / RAD-Generator
MDA-Plugin für den Enterprise Architect
RAD-Environment
Zuständig für die Realsierung der Erweiterungsarchitektur
Plattform für Erweiterungseinheiten / Geschäftsmodule
RAD-Foundation
Spezielle Klassenbibliothek, welche von Erweiterungseinheiten und von dem RADEnvironment verwendet wird.
RAD-Presentation
Eine generische und über Metadaten anpassbare sowie webbasierte
Benutzerschnittstelle
30
W3LJ2-Framework
Landschaft einer W3LJ2-Framework-Anwendung
31
Technische Infrastruktur
W3LJ2-Framework
Dynamische
Assoziationen
Customizing
Anpassbarkeit
Standard Enterprise
Funktionalität
DomänenprojekteServercode
Historisierung /
Journalisierung
Modularisierung
UI-Engine
DomänenprojektModelle
DomänenprojekteGUI-Erweiterungen
Sitzungsverwaltung
/ SSO
Generatoren
Benutzer- und
Rechteverwaltung
Metadaten
Persistenzschicht
MySQL
MS SQL
Oracle
PostgresSQL
32
Generische Objektverwaltung
Es wird zwischen Listenansichten und Detailansichten unterschieden
Listenansichten dienen zur Auflistung von Objektmengen
Listet alle Objekte einer Klasse und von Unterklassen dieser Klasse auf
Vorhandene Funktionen
Paging, Filter, Sortieren, Öffnen und Löschen
Export der Liste in einer CSV- oder XSL-Datei
Aufrufen von statischen parameterlosen Methoden
Detailansichten dienen zum Bearbeiten einzelner Objekte
Listet alle Attribute eines Objekts auf
Vorhandene Funktionen
Aufrufen von Member-Methoden
Bearbeiten von Assoziationen
Öffnen von assoziierten Objekten
Validierung von Eingaben (Unique; Required; Contraints; eigene Validierungsregeln)
33
Generische Objektverwaltung
Anpassbarkeit der Listenansichten
Spalten können ein- und ausgeblendet werden
Die Standardsortierung kann festgelegt werden
Eine zusammenfassende Übersichtsseite kann eingeblendet werden
34
Generische Objektverwaltung
Anpassbarkeit der Detailansichten
Layout-Strategien können verändert werden
Einspalten- oder Zweispalten-Layout; Flow-Layout
Attribute können gruppiert werden (Expander/Tab)
Gruppierungen können geschachtelt werden
Verschiedene Eingabekomponenten können ausgewählt werden
TextBox; RichTextBox; MultilineTextBox; DatePicker; Calendar; TimePicker;
DateTimePicker; EnumDropDown; FileUpload; CheckBox; PasswordBox;
CurrencyTextBox; MLStringBox
Verschiedene Assoziationskomponenten können ausgewählt werden
To-Many: Grid; CheckBox; Autocomplete
To-One: Box; Dropdown; Autocomplete
35
Generische Objektverwaltung
Anpassbarkeit der Detailansichten
36
Technische Infrastruktur
W3LJ2-Framework
Dynamische
Assoziationen
Customizing
Anpassbarkeit
Standard Enterprise
Funktionalität
DomänenprojekteServercode
Historisierung /
Journalisierung
Modularisierung
UI-Engine
DomänenprojektModelle
DomänenprojekteGUI-Erweiterungen
Sitzungsverwaltung
/ SSO
Generatoren
Benutzer- und
Rechteverwaltung
Metadaten
Persistenzschicht
MySQL
MS SQL
Oracle
PostgresSQL
37
Benutzer- und Rechtesystem
Mehrbenutzerfähigkeit
Benutzerverwaltung
Das RAD-Framework kann Benutzer und Benutzergruppen verwalten
Benutzergruppen können geschaltet werden
Ein Benutzer kann mehren Benutzergruppe zugeordnet werden
 Optional kann dieses Mitgliedschaft nur innerhalb eines
bestimmten Mandanten gültig sein
 Mitgliedschaften können generell zeitlich begrenzt werden
Für den Import von Benutzerprofilen aus einem „Active Directory“ oder einer anderen
LDAP-Quelle existiert ein Import-Werkzeug
Verschiedene Authentifizierungsarten
Standard-Login über User-Credentials (Benutername und Passwort)
Einmalanmeldung über ein Single-Sign-On-Verfahren
 Unterstützung von Kerberos und NTLM
38
Benutzer- und Rechtesystem
Mehrbenutzerfähigkeit
Die Anwendung kann von mehreren Benutzern gleichzeitig verwendet werden
Zur Synchronisation von kritischen Vorgängen liegen verschieden
Sperrmechanismen vor
Optimistisch: Gleichzeitige Bearbeitung von Datensätzen ist möglich
 Im Konfliktfall wird die letzte Speicherung übernommen
Pessimistisch: Exklusive Bearbeitung von Datensätzen
 Ein Datensatz wird exklusiv gesperrt, wenn er bearbeitet wird
 Ein zweiter Benutzer bekommt nur ein lesendes Recht
39
Benutzer- und Rechtesystem
Klassische Enterprise Plattformen (EJB, COM+) besitzen lediglich ein
rudimentäres Rechtesystem auf Basis von programmierbaren
Erweiterungspunkten (Callbacks) und einfachen rollenbasierten Rechten
Nachteil
In jeder Anwendung müssen Callback-Funktionen implementiert werden.
Im Modell müssen Rollen oder Gruppen definiert werden.
Vorteil
Leichtgewichtig, erweiterbar und anpassbar.
Ein Rechtesystem und die Zugriffsüberprüfung sind Standard-Anforderungen
von Unternehmenslösungen
Rollenbasiertes Rechtesystem
Vergabe von Rechten auf Typ- und Datensatz-Ebene
Typ: Zugriff auf alle Elemente eines Typs (Kontrolle, Risiko)
Datensatz: Zugriff auf bestimmte einzelne Datensätze
Feingranulare Rechte auf Assoziationen, Attribute und Funktionen
40
Benutzer- und Rechtesystem
Rollenbasierte Rechtevergabe
Wer darf was mit welchem Element?
Dies lässt sich über eine Matrix definieren
Typ | Rolle
Administrator
Standard-Benutzer
Kontrolle
C, D, R, W, E
C, D, R, W, E
Prozess
C, D, R, W, E
C, D, R, W, E
Risiko
C, D, R, W, E
C, D, R, W, E
Ziel
C, D, R, W, E
C, D, R, W, E
Maßname
C, D, R, W, E
C, D, R, W, E
Test
C, D, R, W, E
C, D, R, W, E
Testanweisung
C, D, R, W, E
C, D, R, W, E
Testplan
C, D, R, W, E
Ø
Benutzer
C, D, R, W, E
Ø
Mandant
C, D, R, W, E
Ø
41
Benutzer- und Rechtesystem
Probleme mit rollenbasierten Rechten auf die einzelnen Typen in einer
Anwendung
Vergleich Beispiel aus letzter Folie
Dem Standard-Benutzer immer das C, D, R, W, E-Recht auf alle Datensätze eines Typs
(Kontrolle, Ziel, Risiko) vergeben.
Granularität nicht ausreichend!
Eine Verfeinerung dieses Rechtesystems erlaubt die Vergabe von Rechte
auf einzelne Datensätze
Vorteile
Anstatt einer Rolle oder einem Benutzer ein Recht auf alle Datensätze zu vergeben, kann
das Recht auf einen einzelnen Datensatz bezogen werden!
Nachteil
Granularität nicht ausreichend!
42
Benutzer- und Rechtesystem
Schließlich ist die Vergabe von Lese- und Schreib-Rechten auf der Ebene
von Typen oder einzelnen Datensätzen manchmal nicht ausreichend.
Beispiel
Ein Mitarbeiter hat mehrere Attribute (Alter, Name, Vorname, Position und Gehalt)
Während ein Teamleiter auf alle Felder zugriff hat, könnte der Wunsch bestehen, für
Projektleiter das Attribut Gehalt auszublenden bzw. das Lese- und Schreib-Recht für die
Rolle Projektleiter nicht zu vergeben!
Vorteil
Fein granulares Rechtekonzept auf Basis von Typen, Datensätzen und Attributen,
Assoziationen und Operationen!
43
Benutzer- und Rechtesystem
W3LJ2-Rechtesystem
Basis für die Rechtevergabe
Rechte für Benutzergruppen
Individuelle Rechte für einzelne Benutzer
Rechtegranularität
Erzeugen, Löschen, Lesen, Schreiben, Ausführen, Delegieren
Ebenen der Rechtevergabe
Klassen, Objekte, Attribute
Spezifikation von Rechten
Benutzergruppen und Rechte
können zur Entwurfszeit
mit dem W3L-Specfier
modelliert werden
44
Benutzer- und Rechtesystem
Mehrbenutzerfähigkeit
Rechte auf erreichbare Objekte (Dynamische Rechte)
Über Assoziationen können verschiedene Objekte von einem Benutzer aus
erreicht werden
Beispiel
Ein Benutzer hat kein generelles Leserecht auf die Klasse „Beförderung“
Die Benutzerklasse „Mitarbeiter“ ist mit der Klasse „Beförderung“ verbunden und hat
ein dynamisches Leserecht auf die Assoziation „Beförderungen“
Ergebnis: In diesem Fall kann der konkrete Benutzer „M1“ auf seine Beförderungen „B1“
und „B2“ lesend zugreifen. Alle anderen Beförderungen sind für ihn nicht sichtbar.
45
Benutzer- und Rechtesystem
46
Technische Infrastruktur
W3LJ2-Framework
Dynamische
Assoziationen
Customizing
Anpassbarkeit
Standard EnterpriseFunktionalität
DomänenprojekteServercode
Historisierung /
Journalisierung
Modularisierung
UI-Engine
DomänenprojektModelle
DomänenprojekteGUI-Erweiterungen
Sitzungsverwaltung
/ SSO
Generatoren
Benutzer- und
Rechteverwaltung
Metadaten
Persistenzschicht
MySQL
MS SQL
Oracle
PostgresSQL
47
Standard Enterprise-Funktionalität
Mandantenfähigkeit
Eine Installation des RAD-Frameworks kann beispielsweise verschiedene Kunden
oder Unternehmensbereiche eines Kunden bedienen
Mandanten können hierarchisch geschachtelt werden
Benutzer können für mehrere Mandanten freigeschaltet werden
Unterschieden wird hierbei zwischen globalen und
mandantenspezifischen Objektklassen
Globale Objektklassen – Diese Objekte werden in allen Mandanten angezeigt
Mandantenspezifische Objektklassen – Diese Objekte werden nur im Rahmen des
zugehörigen Mandanten angezeigt
 Ausnahme: Obermandanten einschließen
48
Standard Enterprise-Funktionalität
Business-Datentypen
Das RAD-Framework verfügt über ein Währungssystem mit Wechselkursen
Der Datentyp „CurrencyT“ wird zur Speicherung verwendet
Die Speicherung in der Datenbank erfolgt in Millicent (1 Euro entspricht also 100000)
Hohe Rechengenauigkeit
128-Bit-Datentyp „Decimal“
 Wertebereich: ±7,9 × 1028 Millicent ≙ ±7,9 × 1023 €
o ± 790.000.000.000.000.000.000.000 € = siebenhundertneuzig Trilliarden Euro
Die Anzahl der Nachkommastellen ist konfigurierbar
Unterwährungen
Währungen können als Unterwährung
mit einem Faktor auf eine
Basiswährung angelegt werden
49
Standard Enterprise-Funktionalität
Business-Datentypen
Eingabefeld für Währungen mit Wechselkurs-Funktion
Die Standardvorbelegung kann system- und mandantenweit konfiguriert werden
50
Standard Enterprise-Funktionalität
Business-Datentypen
Wechselkurse
Geben den Kurs zwischen einer Quell- und Ziel-Währung an
Verfügen über eine Gültigkeit und eine Herkunftsquelle
Das Framework verwendet immer den Wechselkurs mit der jüngsten Gültigkeit
51
Standard Enterprise-Funktionalität
Business-Datentypen
Eindeutige Referenznummern/Seriennummern/NummernkreiseSerial
Konfigurierbares Format
Basis, Steuerzeichen, Auffüllende Nullen
Beispiel: „2013-AB-000001“, „2013-AB-000002“, usw.
Multilingualer Text - MLString
Ermöglicht das Erfassen von mehreren Übersetzungen
Dokumente - PDEmbeddedMedium
Beliebige Dateiformate können gespeichert werden
Die Ablage der Dateien erfolgt in Form von Datenbank-Blobs
52
Standard Enterprise-Funktionalität
Geplante Aufgaben („Cron-Jobs“)
Das RAD-Framework verfügt über einen eigenen Scheduler zur Jobausführung
Ausgeführt wird eine beliebige Operation aus dem Domänenmodell
Bei nicht statischen Operation ist ein Objektbezug notwendig
Konfigurationsmöglichkeiten
Wiederholungsmuster
Startzeitpunkt und Endzeitpunkt
Protokollierung
Mailbenachrichtigungen
53
Standard Enterprise-Funktionalität
Mehrsprachigkeit
Sprachspezifische Formate
Währungsformat, z. B.: #.###,##
Zeitformat: HH:mm
Datumsformat: dd.MM.yyyy
Bezeichner und Hinweismeldung
Alle Texte sind über ein „ResourceItem“
pro Sprache erfasst
54
Standard Enterprise-Funktionalität
55
Standard Enterprise-Funktionalität
Workflows
Statische Sicht auf eine Anwendung
Software-Architekt entwirft fachliches Modell
Generator/Framework erzeugen fertige Anwendung mit Persistenzschicht,
Erfassungsmasken, Benutzerverwaltung, Zugriffsschnittstellen etc.
Probleme
Statische, objektbasierte Erfassungsmasken reichen in bestimmten Situationen nicht aus
bzw. sind nicht optimal
z.B. Logik von Geschäftsprozessen muss abgebildet werden
Verbesserungspotential
Generator und erzeugte Anwendung müssen Workflows unterstützen
… und die in Workflows hinterlegte Logik in Programmcode umsetzen
Trennung zwischen den Rollen Software-Architekt und Prozessanalytiker – jeder sollte
möglichst in „seiner Welt“ bleiben können
56
Standard Enterprise-Funktionalität
Warum Prozesse nicht direkt mit Usercode realisieren?
Entwickler müssen „Standardsituationen“ wie Verzweigungen, Ereignisse,
Aktivitäten selber implementieren
Keine Änderung zur Laufzeit möglich
Hoher Anpassungsaufwand bei Änderungswünschen seitens des Kunden
Hohe Fehleranfälligkeit bei komplexen, parallelen Prozessen
Prozesse sind schwer „wiederzuerkennen“, da in Code überführt
Vorteile einer Workflow-Engine
Einmalige Entwicklung einer komplexen, erweiterbaren, soliden Infrastruktur
ermöglicht schnelle Entwicklung von Prozessen
Prozesse können für Anwender verständlich gemacht werden
Prozesse können überwacht werden (Controlling)
Prozesse sind wiederverwendbar, da unabhängig vom Code
Prozesse können zur Laufzeit hinzugefügt, entfernt und sogar geändert werden
57
Standard Enterprise-Funktionalität
Fachabteilung vs. IT-Abteilung
Fachabteilung: Prozessanalytiker definieren Prozesse/Workflows
Niedrigere formale Anforderungen
Höheres Abstraktionsniveau
IT-Abteilung: Geschäftsprozesse werden ausführbar
Hohe formale Anforderungen
Abstraktionen müssen aufgelöst werden
Prozessanalytiker
Workflow-Diagramme
Fachabteilung
Software-Entwickler
Technische Diagramme
IT-Abteilung
Implementierun
g
58
Standard Enterprise-Funktionalität
Software-Architekt
Specifier
Prozessanalytiker
Programm-Spezifikation
Generator
Modul
59
Standard Enterprise-Funktionalität
Beispiel Workflow
60
Standard Enterprise-Funktionalität
61
Specifier
62
Standard Enterprise-Funktionalität
Roundtrip
BPMN- und UML-Diagramme werden in EA-Projekt angelegt
Beide Diagramme können Elemente untereinander referenzieren (z.B. Service Call oder
Ein-/Ausgabe-Daten für Aktivitäten)
Specifier ermöglicht die Spezifikation der Metadaten für Workflow-Elemente
(analog zu Klassendiagrammen)
Generator exportiert Worfklow-Diagramme in .NET-Projektmappe als
eingebettete Ressource
DLL-Modul-Dateien beinhalten die Diagramme
Diagramme werden vom Domain-Generator ausgelesen und initial ins
Framework überführt
Framework kann Instanzen von Geschäftsprozessen starten und Elemente
untereinander verlinken
BPMN-Diagramme können auch zur Laufzeit verändert werden
63
Standard Enterprise-Funktionalität
Aufgaben und Geschäftsprozesse
automatisierte
Aufgabe
interaktive
Aufgabe
Geschäftsprozess
Dialogablauf
Interaktive
Aufgabe
Dialog
Komponente
Dialog
Firewall
ESB
Anwendungsdomäne
Anwendungsdomäne
Anwendungsdomäne
Anwendungsdomäne
64
Standard Enterprise-Funktionalität
Controlling- und Editier-Ansicht
65
Standard Enterprise-Funktionalität
66
Standard Enterprise-Funktionalität
Integration in das W3LJ2-Framework
+ParticipatedWorkflowInstances
PDWorkflow Meta
«Property»
+ Definition :string
+
+
Historizable
«Property»
0..* - Active :bool
- Finished :DateTime
- Started :DateTime
1
CreateInstance() :string
Initialize() :string
+WorkflowInstance
+ParticipatedWorkflowStates
0..*
+Followers
0..*
+StateExecutors 0..*
Workflow Instance
0..*
1
GRCFramework::
0..*
UserBase
1
+WorkflowExecutors
1
0..*
0..*
0..*
PDWorkflow StateMeta
Historizable
GRCFramework::
PDObject
Workflow Variable
«Property»
- CheckIn :DateTime
- CheckOut :DateTime
1
+ Name :string
-
Name :string
0..*
0..1
«Property»
+ /IsHistoric :bool
1
Workflow Participant
+Predecessor
0..*
0..*
0..*
«Property»
- Active :bool
0..* - Locked :bool
0..*
0..*
"Darstellung" einer
Variable in einem
Workflow-Zustand
+HiddenAssoziations
0..*
+HiddenOperations 0..*
PDMemberMeta
GRCFramew ork::
PDOperationMeta
+HiddenProperties
0..*
PDMemberMeta
GRCFramew ork::
PDPropertyMeta
«Property»
+ Name :String
PDMemberMeta
GRCFramew ork::PDAssoziationMeta
«Property»
+ Cardinality :PDAssoziationCardinalityET
+ EnableJournaling :bool
+ OrderedList :bool
+ UniqueObjectList :bool
Eine Variable ist in
einer gesamten
Workflow-Instanz gültig
67
Technische Infrastruktur
W3LJ2-Framework
Dynamische
Assoziationen
Customizing
Anpassbarkeit
Standard Enterprise
Funktionalität
DomänenprojekteServercode
Historisierung /
Journalisierung
Modularisierung
UI-Engine
DomänenprojektModelle
DomänenprojekteGUI-Erweiterungen
Sitzungsverwaltung
/ SSO
Generatoren
Benutzer- und
Rechteverwaltung
Metadaten
Persistenzschicht
MySQL
MS SQL
Oracle
PostgresSQL
68
Modularisierung von Anwendungen
Definition: Modularisierbarkeit
Die Gesamtanwendung (Suite) entsteht durch die Installation
von einzelnen Modulen
Separierung von Funktionalitäten
Module können über Submodule erweitert werden (Feature-Lizenzierung)
Modulweiser Vertrieb möglich
Beispiel
W3L-ERP-Core
Facility-Management
Warenwirtschaft
Lizenzverwaltung
Vertragsverwaltung
69
Modularisierung von Anwendungen
Modularisierbarkeit
Verbindung mehrerer Module
Mit Hilfe von modulübergreifenden Assoziationen können Module verbunden werden.
Beispiel: Eine Beförderung aus der Vertragsverwaltung kann mit einem Mitarbeiter aus
dem Core-Modul verbunden werden.
Core-Modul
Vertragsverwaltung
70
Modularisierung von Anwendungen
Modularisierbarkeit
Verbindung mehrerer Module mit dynamischen Assoziationen
71
Modularisierung von Anwendungen
Das „Ober-Modul“ muss zuerst angelegt werden
Es wird wie gewohnt ein Projekt im Enterprise Architect angelegt, im Beispiel
„Core_Modul“
Dem neuen Projekt wird über „Add View“ ein neues Package (Class View)
hinzugefügt
72
Modularisierung von Anwendungen
Eigenschaften des Moduls aufrufen
Stereotyp „referable“ angeben
73
Modularisierung von Anwendungen
Dem Core-Modul wird ein Klassendiagramm und eine Klasse „CoreClass“
hinzugefügt
„Package Control“-Dialog aufrufen
„Control Package“ aktivieren, Pfad für „XMI-Filename“ bestimmen
74
Modularisierung von Anwendungen
Modul exportieren
75
Modularisierung von Anwendungen
Neuen Projekt anlegen, im Beispiel „Sub_Modul“
Neues Paket anlegen (siehe Folie 2)
Eigenschaften-Dialog des Pakets aufrufen (siehe Folie 3)
Stereotyp „application“ angeben
76
Modularisierung von Anwendungen
„Import package from XMI file…“ aufrufen
77
Modularisierung von Anwendungen
Pfad zur zuvor abgelegten Export-Datei des Core-Moduls angeben und
Modul importieren
78
Modularisierung von Anwendungen
Der Project Browser zeigt nun das importierte Paket an
Ein Klassendiagramm und eine Testklasse „SubClass“ werden angelegt
Herstellen eine Assoziation zwischen „SubClass“ und „CoreClass“ (aus
dem Core_Modul): CoreClass aus dem Project Browser in das
Klassendiagramm ziehen („as Simple Link“)
79
Modularisierung von Anwendungen
Herstellen einer Assoziation immer vom referenzierenden Modul zum
referenzierten Modul, im Beispiel also von SubClass zu CoreClass
Elemente-Baum im W3LJ2-Specifier
80
Modularisierung von Anwendungen
81
Technische Infrastruktur
W3LJ2-Framework
Dynamische
Assoziationen
Customizing
Anpassbarkeit
Standard Enterprise
Funktionalität
DomänenprojekteServercode
Historisierung /
Journalisierung
Modularisierung
UI-Engine
DomänenprojektModelle
DomänenprojekteGUI-Erweiterungen
Sitzungsverwaltung
/ SSO
Generatoren
Benutzer- und
Rechteverwaltung
Metadaten
Persistenzschicht
MySQL
MS SQL
Oracle
PostgresSQL
82
Historisierung und Journalisierung
Revisionssicherheit
Das RAD-Framework bietet verschiede Funktionen zur revisionssicheren
Archivierung der Datenbestände
Journalisierung
Die Journalisierung stellt ein Änderungslogbuch dar
Hier werden alle Änderungen protokolliert
 „Wer hat was wann geändert und auf welchen Wert?“
Historisierung
Bei der Historisierung wird der Zustand aller Objekte zu einem Zeitpunkt archiviert
Dieses Archiv kann im Nachhinein betrachtet werden
Änderungen sind nicht mehr möglich
83
Historisierung und Journalisierung
Revisionssicherheit
Funktionsweise der Historisierungsfunktion
Der Historisierungsfokus bestimmt, welche Objekte historisiert werden
Der Fokus kann sich dabei über zwei Dimensionen erstrecken
W3L-Mandant
Core-Modul
Vertrags-Modul
84
Historisierung und Journalisierung
Revisionssicherheit
Funktionsweise der Historisierungsfunktion
85
Technische Infrastruktur
W3LJ2-Framework
Dynamische
Assoziationen
Customizing
Anpassbarkeit
Standard Enterprise
Funktionalität
DomänenprojekteServercode
Historisierung /
Journalisierung
Modularisierung
UI-Engine
DomänenprojektModelle
DomänenprojekteGUI-Erweiterungen
Sitzungsverwaltung
/ SSO
Generatoren
Benutzer- und
Rechteverwaltung
Metadaten
Persistenzschicht
MySQL
MS SQL
Oracle
PostgresSQL
86
Technische Infrastruktur
Administrationsbereich
Domänenmodule verwalten
Zusätzliche Module können dem System hinzugefügt werden
Backup-Funktion
Import und Export der Anwendungsdaten in ein XML-Format
Ereignisprotokollierung
Webbasierter Logviewer
Log4Net
Benchmark-Funktion
Berechnung einer Punktzahl ähnlich dem Windows-Leistungsindex
Lastüberwachung
Speicher
CPU-Auslastung
Offene Sessions
Anfragen
87
Technische Infrastruktur
88
Technische Infrastruktur
Austauschbare Designs („Theming“)
Anpassung des Look & Feel der Anwendung: Schriften, Farbgebung
Umsetzung des Corporate Identity: Firmenlogo
89
Technische Infrastruktur
Mechanismen für Versionsupdates
Konflikterkennung
Veränderungen in der Datenbankstruktur werden beim Systemupdate berücksichtigt
Konflikte werden erkannt, protokolliert und automatisch behandelt
Domänen-Objekte werden übernommen
 Datentypen werden bei einem gültigen Wertebereich konvertiert
Customizing-Informationen werden in festdefiniertem Rahmen übernommen
Versionsvergleiche
Vergleich zwischen unterschiedlichen Anwendungsversionen
 Per Weboberfläche oder mit externem Merge-Tool
Unterschiede im Domänenmodell werden deutlich
Auswirkungen eines Versionsupdates können abgeschätzt werden
90
Technische Infrastruktur
Funktionsweise der Konflikterkennung
1. Ein Major-Export der Anwendung erzeugen
Export der Objekte
Export der Systembeschreibung
2. Installation der neuen Anwendung
Update der IIS-Anwendung und des Anwendungsverzeichnisses
3. Einspielen des Major-Exports
Nach diesem Vorgang ist das neue System mit den alten Datensätze betriebsbereit
Konfigurationen und Customizing-Einstellungen bleiben zum größten Teil erhalten
 Bei Konflikten hat die Konfiguration der neuen Anwendung Vorrang
Import-Protokoll
 Falls Datensätze von Konflikten betroffen waren, wird eine menschenlesbare
Beschreibung des Szenarios ausgegeben
91
Technische Funktionen
Software-Lizenzierungsmodelle
Lizenz-Dateien werden über den
RAD-License-Manager erzeugt
Signiertes XML-Format
Mögliche Lizenzbegrenzungen
Zeitliche Nutzung
Anzahl der aktiven Benutzer
Objektanzahl
Wenn eine Lizenz ungültig oder
abgelaufen ist, kann nur noch
lesend auf die Anwendung
zugegriffen werden
92
Technische Infrastruktur
Persistenz
Automatische Generierung
des Datenbank-Schemas
Automatisches OR-Mapping
NHibernate
Datenbank-unabhängige
Import-/Export-Funktion
93
Wie kann ich damit arbeiten?
ROLLENBEZOGENER EINSATZ DES
W3LJ2-FRAMEWORKS
94
Einsatz des W3LJ2-Frameworks
Laufzeitumgebung des W3LJ2-Frameworks ist unabhängig vom Generator
Anzahl der generierten Artefakte ist sehr gering
Keine GUI
Keine komplizierte Infrastruktur
Vorteil
Entwickler können manuell gegen das W3LJ2-Framework programmieren
Keine Kenntnisse von UML notwendig!
Plugins für Visual Studio 2010 und 2012 sind denkbar.
95
Einsatz des W3LJ2-Frameworks
Rollenbasierter Einsatz des W3LJ2-Frameworks
Business Analysten oder Systemanalytiker
Arbeiten auf konzeptioneller Ebene unter Enterprise Architect
Modellieren das Fachkonzept
Überprüfen das generierte Ergebnisse bzw. das Produkt
Entwickler
Arbeiten auf technischer Ebene unter Enterprise Architect oder direkt mit VS 2010
Entwickeln User-Code oder Domänen-Klassen
Vorteil
Hemmschwelle UML und EA bei .NET-Entwicklern ist groß
Durch das leichtgewichtige Programmiermodell ist der Einsatz von EA und UML
aber nicht notwendig und kann vermieden werden!
96
Fazit
Vorteile
Time-To-Market
Kosteneinsparung durch Wiederverwendung
Vererbte Qualität durch Automation
Rapid Prototyping
Kommunikationsmittel zwischen Fach- und Entwicklungsabteilung
Nachteile
Quelle: Code Generation 2010 Introduction Model-Drivien Software Delevlopment
97
Vielen Dank für
Ihre Aufmerksamkeit!
Inhouse-Schulungen
W3L-Akademie
Flexibel online lernen und studieren!
Wir bieten Inhouse-Schulungen
und Beratung durch unsere
IT-Experten und –Berater.
In Zusammenarbeit mit der
Fachhochschule Dortmund
bieten wir
Schulungsthemen
zwei Online-Studiengänge
Softwarearchitektur (OOD)
Requirements Engineering (OOA)
Nebenläufige & verteilte
Programmierung
Gerne konzipieren wir auch eine individuelle Schulung
zu Ihren Fragestellungen.
Sprechen Sie uns an!
Tel. 0231/61 804-0, [email protected]
B.Sc. Web- und Medieninformatik
B.Sc. Wirtschaftsinformatik
und 7 Weiterbildungen im
IT-Bereich an.
Besuchen Sie unsere Akademie!
http://Akademie.W3L.de
Herunterladen