Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vorstellen DSL erklären (Domain Specific Language)

Ähnliche Präsentationen


Präsentation zum Thema: "Vorstellen DSL erklären (Domain Specific Language)"—  Präsentation transkript:

1 Vorstellen DSL erklären (Domain Specific Language)

2 00:34 Alle Punkte nennen

3 Das Unternehmen Kurz AO Private Krankenversicherung 250 Mitarbeiter
Vechta 20 EDV -> Eigenentwicklung Das Unternehmen

4 Mich vorstellen Die Abteilung

5 00:55

6 Projektbeschreibung - Täglich Post von Maklern + Versicherten
Anträge, Leistungsabrechnungen -> An zuständige Mitarbeiter/Abteilungen Projektbeschreibung

7 Beschlagworten Routen Erkennen Prüfen Leisten BREPL
BREPL -> Zentrum Routen mein Part, gibt’s schon wird ersetzt

8 BREPL smartFix PAM Smartfix öffnen, scannen, digitalisieren
BREPL stempeln PAM archivieren PAM

9 Lastenheft erstellen 02:10

10 Erstellen einer DSL zur Beschreibung von Routingregeln
Projektziel

11 Alte System C# Projektbegründung

12 if (beschlagwortung.DokumentenKlasse.Equals("ABRECH") &&
beschlagwortung.DokumentnTyp.Equals("RECHNUNG")) { foreach (var gruppe in this.gruppen) { if (HatPamSperreBeiGruppe(vorgang.Status, gruppe)) { zuweisung = new ZuweisungGruppe("PAM-GP_{0}“+gruppe)) } if (vorgang.BasisKennzeichen.Equals(Versis.KENNZEICHEN_BASISTARIF)) { zuweisung = new ZuweisungBenutzer(„MUSTERMANN"); if (vorgang.BasisKennzeichen.Equals(Versis.KENNZEICHEN_STANDARDTARIF)) { var name = vorgang.Name; if (NameIstImBereich(name, 'A', 'M')) { zuweisung = new ZuweisungBenutzer(„MUSTERFRAU"); if (Name.IstImBereich(name, 'N', 'Z')) { zuweisung = null; 5 Regeln Insgesamt ~140 Regeln

13 !AUSSCHNITT! CRUD Versionieren

14 Methodik Agil -> Feedback, Inkrementell, Iterativ, Kommunkation CI
TDD Methodik

15 Entwurf Einführung Implementierung Analyse 11 5 9

16 Projektkosten Vorgang Gesamtkosten Entwicklungskosten 1750,00 €
Fachgespräch 315,00 € Code-Review 160,00 € Abnahme 80,00 € Summe 2.305,00 € Entwicklungskosten -> Ich

17 Einsparungen Vorgang Anzahl Vorgänge pro Quartal
Zeitersparnis pro Quartal Routing anpassen 8 280 Minuten Routing nachvollziehen 4 92 Minuten Auswertung erstellen - 12 Minuten Zeiteinsparung pro Quartal 360 Minuten

18 Amortisation

19 Pflichtenheft erstellen
06:16

20 140 bestehende Regeln extrahiert, abstrahiert und Grammatik erstellt

21 Container für vererbte Bedingungen
Regelwerk _NAME_ { Unternehmen: _UNTERNEHMEN_ Stapelkategorie: _STAPELKATEGORIE_ Clearing: _CLEARINGZUWEISUNG_ Klammer _KLAMMERNAME_ _BEDINGUNGEN_ Regel _BESCHREIBUNG_ => _ZUWEISUNG_ _WERTÄNDERUNG_ } Container Container für vererbte Bedingungen Regel

22 Braucht man nicht sehen
CI Swimlanes

23 Schnittstelle

24 Frameworks nennen! 09:05

25 Xtext

26 'Unternehmen:' unternehmen=Unternehmen
Regelwerk: 'Regelwerk' name=ID '{' 'Unternehmen:' unternehmen=Unternehmen 'Stapelkategorie:' stapelkategorie=Stapelkategorie 'Clearing:' clearingzuweisung=STRING regelwerkElemente+=RegelwerkElement* '}'; Oberste Element Hochkomma Schlüsselwörter Zuweisungen = Attribute wohinter andere Elemente hängen

27 if (beschlagwortung.DokumentenKlasse.Equals("ABRECH") &&
beschlagwortung.DokumentnTyp.Equals("RECHNUNG")) { foreach (var gruppe in this.gruppen) { if (HatPamSperreBeiGruppe(vorgang.Status, gruppe)) { zuweisung = new ZuweisungGruppe("PAM-GP_{0}“+gruppe)) } if (vorgang.BasisKennzeichen.Equals(Versis.KENNZEICHEN_BASISTARIF)) { zuweisung = new ZuweisungBenutzer(„MUSTERMANN"); if (vorgang.BasisKennzeichen.Equals(Versis.KENNZEICHEN_STANDARDTARIF)) { var name = vorgang.Name; if (NameIstImBereich(name, 'A', 'M')) { zuweisung = new ZuweisungBenutzer(„MUSTERFRAU"); if (Name.IstImBereich(name, 'N', 'Z')) { zuweisung = null;

28 Klammer "Kennzeichen Standardtarif" { BasisKennzeichen = "S"
Regel "Name A bis M" => Benutzer „Musterfrau" Name zwischen "A" und "M" } Regel "Name N bis Z" => Benutzer „Mustermann" Name zwischen "N" und "Z" Regel "Pam-Sperre Gruppe TA" => Gruppe „Mustergruppe" { DokumentenKlasse = "ABRECH" DokumentenTyp = "RECHNUNG" HatPamSperreBeiGruppe "TA" } Regel "Pam-Sperre Gruppe Pflege" => Gruppe „Andere Gruppe" HatPamSperreBeiGruppe "Pflege" Regel "Kennzeichen Basistarif" => Benutzer „Mustermann" BasisKennzeichen = "B" Klammer "Kennzeichen Standardtarif" BasisKennzeichen = "S" Regel "Name A bis M" => Benutzer „Musterfrau" Name zwischen "A" und "M" Regel "Name N bis Z" => Benutzer „Mustermann" Name zwischen "N" und "Z" Hab ich gemacht Fachbereich kann verstehen

29 Klammer "Kennzeichen Standardtarif" { BasisKennzeichen = "S"
Regel "Name A bis M" => Benutzer „Musterfrau" Name zwischen "A" und "M" } Regel "Name N bis Z" => Benutzer „Mustermann" Name zwischen "N" und "Z" Pur DSL

30 Darstellung Darstellung und Entwicklung der DSL

31 Codeformatierung Templates Darstellung

32 Ich habe gemacht!

33

34 Codegenerator Herz des Projektes DSL eingießen C# erhalten
In Xtend programmiert Codegenerator

35 Regel1.cs Regel2.cs Regel3.cs Regel4.cs Regel5.cs
Regel "Pam-Sperre Gruppe TA" => Gruppe „Mustergruppe" { DokumentenKlasse = "ABRECH" DokumentenTyp = "RECHNUNG" HatPamSperreBeiGruppe "TA" } Regel "Pam-Sperre Gruppe Pflege" => Gruppe „Andere Gruppe" HatPamSperreBeiGruppe "Pflege" Regel "Kennzeichen Basistarif" => Benutzer „Mustermann" BasisKennzeichen = "B" Klammer "Kennzeichen Standardtarif" BasisKennzeichen = "S" Regel "Name A bis M" => Benutzer „Musterfrau" Name zwischen "A" und "M" Regel "Name N bis Z" => Benutzer „Mustermann" Name zwischen "N" und "Z" Regel1.cs Regel2.cs Regel3.cs 5 Regeln =5 Dateien Priorisierung Regel4.cs Regel5.cs

36 Generierte Unittests, Doku

37 !TDD!

38 Generierte Unittests

39 % Kommentare Durchschnittliche Komplexität % Durchschnittliche Kommentare Durchschnittliche Tiefe Methoden pro Klasse Maximale Tiefe 7 3 Maximale Komplexität 35 2

40

41 13:44

42 Ziel erreicht? Produktion Zielerreichung

43


Herunterladen ppt "Vorstellen DSL erklären (Domain Specific Language)"

Ähnliche Präsentationen


Google-Anzeigen