Vorstellen DSL erklären (Domain Specific Language)

Slides:



Advertisements
Ähnliche Präsentationen
Submodell Softwareentwicklung (SE)
Advertisements

Prüfungspläne Bachelor-Thesis
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.2- LM 8 - LO 9 Definitionen zu LM 8.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Konstruktoren.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Programmiermethodik Übung 12 Best practices. Musterlösung Übung 10.
DVG Klassen und Objekte
Informatikunterricht mit Java
Jetzt lernen wir.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Formular- und Dokumentenarchivierung
Java für Fortgeschrittene
Wasserfallmodell und Einzelbegriffe
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Optimale Ursprungsgerade
cs108 Programmier-Projekt Präsentation Meilenstein 3
Arrays und ArrayLists In JAVA.
Starten der Entwicklungsumgebung (IDE)
Arrays und ArrayLists In JAVA.
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Kurze Rekapitulation aus der Einführungsvorlesung Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 20. Oktober 2011.
Test-Driven Development
Java-Kurs Übung Besprechung der Hausaufgabe
Erstellen eines E&G-MC- Webs Ziel Jede Projektgruppe hat ein Web Projektname WS06_Projekt Projekt aus mehreren.
Maya Kindler 6c. Tabellen erstellen  Tabellen erstellen (Primärschlüssel = ID)  Speichern  Formular anklicken  Formularsansicht  Jetzt das Formular.
SCRUM Informatik IF1 A. Neck.
Organisation und Führung
SICH VORSTELLEN
Übertragungswertverarbeitung
Herzlich willkommen zur «Stolperfallensafari»
Einige Ideen für Module
Abschlusspräsentation Tobias Vogel
CS108 Programmierprojekt Präsentation Meilenstein 1
Einführung und Workshop
Das IT - Informationssystem
Sozialreport erstellen
[Name des Projektes] Post-Mortem
OOP II.
„Blickwechsel – Ein Jahr in Deutschland“ Der perfekte Tag
Dr. BABOR GmbH & Co. KG BABOR ist ein international ausgerichtetes Unternehmen mit familiärer Tradition und eine der führenden Marken in der Institutskosmetik.
Erarbeitung Fallstudien
Projektantrag (1) Projektbasisdaten Projekttitel Geplanter
Datenakquisition in einem ‚Serious Game‘
Die Struktur einer Java-Klasse
Webbasiertes Tool zur Anzeige von Beitragsdaten
Fachbereich Wirtschaftswissenschaften
Design Studio Zurbel Zwickauer Str Chemnitz
Power BI Für Ihr Unternehmen.
Ruby Refactoring Plug-In für Eclipse
4.1 Umsetzung nach Außen: Marktpositionierung
Thema 4: Klassenbibliothek
Open Text Network Gründertreffen 22. Oktober, 2014 Ich heisse…
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
Implementieren von Klassen
Felder in der Informatik
Gegenüberstellung klassisches und agiles Projektmanagement
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
1. Die rekursive Datenstruktur Liste 1
Produktivitätspotenzial
Informatik Softwareentwicklung – 4.2 Diagramme
Gruppenarbeit 12: Fact Sheet - Projekt in der Praxisphase
Implementierung von Anwendungssystemen
 Präsentation transkript:

Vorstellen DSL erklären (Domain Specific Language)

00:34 Alle Punkte nennen

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

Mich vorstellen Die Abteilung

00:55

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

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

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

Lastenheft erstellen 02:10

Erstellen einer DSL zur Beschreibung von Routingregeln Projektziel

Alte System C# Projektbegründung

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

!AUSSCHNITT! CRUD Versionieren

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

Entwurf Einführung Implementierung Analyse 11 5 9

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

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

Amortisation

Pflichtenheft erstellen 06:16

140 bestehende Regeln extrahiert, abstrahiert und Grammatik erstellt

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

Braucht man nicht sehen CI Swimlanes

Schnittstelle

Frameworks nennen! 09:05

Xtext

'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

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;

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

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

Darstellung Darstellung und Entwicklung der DSL

Codeformatierung Templates Darstellung

Ich habe gemacht!

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

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

Generierte Unittests, Doku

!TDD!

Generierte Unittests

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

13:44

Ziel erreicht? Produktion Zielerreichung