32
Vortrag beim DOAG-Regionaltreffen am 16. Mai 2013 in Stuttgart von Tobias Schweiker In der Beunde 29 71155 Altdorf 07031 / 78 83 990 01525 / 31 50 563 [email protected] www.Schweiker-RE.de Präsentation: http://prezi.com/n4qafh1yudpu/modellunterstutzes-refactoring/

Vortrag beim DOAG-Regionaltreffen am 16. Mai 2013 in … · – Zustandsautomat ... – Analyse von Struktur und Funktionalität der abzulösenden ... Vereinfacht die Herleitung von

Embed Size (px)

Citation preview

Vortrag beim DOAG-Regionaltreffenam 16. Mai 2013

in Stuttgart

von

Tobias Schweiker

In der Beunde 2971155 Altdorf

07031 / 78 83 99001525 / 31 50 563

[email protected]

Präsentation: http://prezi.com/n4qafh1yudpu/modellunterstutzes-refactoring/

Zu diesem Vortrag undzu diesem Thema stellen sich einige Fragen

Wer hält diesen Vortrag,und wie kommt er dazu, zu diesem Thema etwas zu sagen?

Ingenieur der Elektrotechnik:• wissenschaftliches Studium: den Dingen auf den Grund gehen• fragen, wie kann das Produkt dem Anwender von Nutzen sein

Datenbankanwendungsentwickler:• früh gemerkt: Es reicht nicht, eine Programmiersprache zu beherrschen, es ist auch

wichtig, mit den Anwender besprechen zu können, was diese brauchen.• verschiedene Möglichkeiten ausprobiert, wie man die Anforderungen besser

erfragen und definieren kann, Dabie festgestellt, dass grafische Modellierung hier sehr hilfreich ist

Daraus ergab sich dann die Fortbildung (in mehreren Stufen) zumRequirements Engineer.

Wozu wird Modellierung genutzt?

(in erster Linie zur)Dokumentation von Anforderungen

• oft präziser als Text• nichtlineare Darstellung möglich• kann Platz sparen (ein Bild sagt mehr als tausend Worte)

Analyse (Anforderungen, Gegebenheiten)• obiges gilt auch hier, darüber hinaus:• Diskussion über Zeichnung ist einfacher als über Text• Protokollwerkzeug: zeichnen geht schneller als schreiben

Diskussion auf abstrakter Ebene• aktuell nicht wichtiges wird ausgeblendet• Konzentration auf's Wesentliche

Wann ist es sinnvoll, Modellierung einzusetzen?

(hauptsächlich)Während der Anforderungsdefinition / Konzeptionierung

• Modellierung hilft, Anforderungen zu verstehen, weil bei der Modellierung Fragen auftauchen können, auf die man ohne Modellierung nicht kommen würde

• Modellierung hilft, Anforderungen genauer zu definierenWenn sich Sachverhalte verbal schwer darstellen lassen

• parallele Abläufe• komplexe Zusammenhänge

Das ist ein Modell:

Elemente eines Modells in der Softwareanwendungsentwicklung

Modell ist in diesem Zusammenhang eine grafische Darstellung.Dazu gibt es verschiedene Arten von Diagrammen. Diese dienen jeweils zur Darstellung eines bestimmten Sachverhalts und enthalten die dazu passenden Elemente.Es gibt verschiedene Systeme zur Modellierung von Softwaresysteme, z.B. UML, ARIS, Mockup Screens, Datenbankdatenmodellierung, …Da ich selbst mit Diagrammen aus mehreren dieser Systeme arbeite, gruppiere ich diese Diagramme hier nach Ihrem Verwendungszweck. Die folgende Auflistung enthält nicht alle möglichen Diagramme.

Zweckmodellierung

Was möchte der Anwender mit der Applikation tun?– Use-Case - Diagramm:

Akteure und Anwendungsfälle

(Software)Strukturmodellierung

Wie sehen die Zusammenhänge aus?Daten:

– Klassendiagramm:Innere (Attribute) und äußere (Beziehungen) Zusammenhänge von Informationen

– E-R-Diagramm:Zusammenhänge von Daten

– Datenmodell:Darstellung von Tabellen, Spalten und Schlüsseln

Softwareteile:– Paketdiagramm

Gliederung in Teile und deren Beziehungen– Komponentendiagramm

Gliederung, andere Darstellung

Verhaltensmodellierung

Wie funktioniert die Anwendung?– Zustandsautomat– Aktivitätsdiagramm– Sequenzdiagramm– EPK (Ereignisgesteuerte Prozessketten)– BPML (Business Process Modelling Language)

(Hardware)Strukturmodellierung

Was treibt die Anwendung an?– Komponentendiagramm:

(Hardware)Struktur– Verteilungsdiagramm:

Verteilung der Artefakte auf Hardware-Einheiten

Oberflächenmodellierung

Wie sieht die Benutzeroberfläche aus?– Mockup Screens

In Modellierungstools lassen sich neben dem Aussehen auch die Navigation (Buttons, Menüs) modellieren.

Anwendung der Modellierung im ProjektModellierung muss verständlich sein-> einhalten von Standards (UML etc.) nur soweit sinnvoll. Falls etwas durch abweichen vom Standard besser dargestellt werden kann, wird dies getan.Pragmatischer Ansatz

Ich möchte im folgenden zeigen, wie die Modellierung im Projekt genutzt werden kann.Kein Anspruch auf Vollständigkeit.

Formsanwendung zur Bestellung von Fondsanteilen zur Anlage von Beiträgen von Lebensversicherungen

Anteile werden den Verträgen mit Kurs vom Monatsersten (bzw. vertraglich festgelegtem Stichtag) gutgeschrieben. Die Ausführung der Bestellung dauert aber einige Tage, wodurch sich Kursrisiken ergeben. Deshalb werden die Fonds bereits vor dem Stichtag bestellt, auf Basis des letzten bekannten Kurses. (Differenzen werden im Nachgang ausgeglichen)

-> Prognoseberechnung der zu bestellenden Anteile, auch hinsichtlich des zum Kauf zur Verfügung stehenden Geldbetrags.

Diese Berechnung dient als Vorschlag, die tatsächliche Bestellung wird von einem Sachbearbeiter auf Basis diese Vorschlags erstellt. Für diese Bestellung muss der Vorschlag und die Daten der Bestellung protokolliert werden

Bisher: Über mehrere Jahre gewachsene Formsapplikation, alle Berechnungen erfolgten in Forms.Ziel: Ablösung von Forms durch Verschiebung der Berechnungsfunktionalität in die Datenbank und Neuerstellung eines einfachen Userinterface zur Anzeige und Dateneingabe mit Java. Dabei sollte auch die Berechnung und das Datenmodell konsolidiert werden.

Hauptaufgaben– Analyse von Struktur und Funktionalität der abzulösenden Applikation– Konsolidierung innerhalb der bestehenden Funktionalität– Konsolidierung mit den aktuellen Anforderungen

Dies erfolgte, wie auch die im Folgenden detailierter dargestellten Tätigkeiten, nicht nacheinander, sonder parallel und auch rekursiv.

Ich möchte hier darstellen, wie man die Modellierung nutzen kann, ohne näher auf die formellen Definitionen der Darstellung einzugehen.

Durchführung

Analyse der Berechnungen

Mit Aktivitätsdiagrammen.– Wie, in welchen Schritten, erfolgt die Berechnung aktuell?– Auf welche Daten wird zugegriffen?– Wohin werden Ergebnisse (zwischen)gespeichert?

Analyse Bestellgründe

Es gibt verschiedene Gründe, warum Fonds bestellt werden müssen. Bei einer konkreten Bestellung werden jeweils nur bestimmte dieser Gründe berücksichtigt.

Mit Anwendungsfalldiagramm.– Aus welchen Gründen müssen Fonds bestellt werden?– Wodurch (Akteur) wird das angestoßen?

BegriffsmodellUm eine Übersicht über die Begriffe zu bekommenKlärung von ZusammenhängenDaraus konnten weitere Anforderungen abgeleitet werden.

Zunächst Ermittlung von Begrifflichkeiten der Bestellung und deren Beziehung.

Dann Detailierung der verschiedenen Bereiche.

Hier sind zwei sich überlappende Bereiche dargestellt, wobei im 2. Diagramm die aus dem ersten stammenden Klassen farblich gekennzeichnet sind.

Insgesamt sieht das Begriffsmodell so aus:

Analyse der Struktur

Zeichnung muss nicht unbedingt im Computer geschehen, sondern kann auch auf Papier oder einem Whiteboard durchgeführt werden. Das ist insbesondere sinnvoll, wenn ein Modell (bzw. Teile davon) mit mehreren Beteiligten erstellt und diskutiert wird

StrukturmodellierungAbleitung aus vorigemZunächst grobe Strukturmodell

auch zur Abgrenzung. (Orderapplikation ist nicht Bestandteil des Projekts)

Detailiertere Darstellung

Zeigt Funktion und Datenspeicher.Auch dieses Diagramm trug dazu bei, ein zur Problemstellung passendes Datenmodell zu erstellen.

Zum Vergleich nochmal die bisherige Struktur:

Datenmodellierungabgeleitet aus dem Begriffsmodell und dem StrukturmodellIntegration in bestehendes System (was kann wiederverwendet werden?)Zunächst 2 Beispiele als Klassendiagramm.

Und hier ein Beispiel, dass sich im Laufe der Modellierung die Darstellung ändern kann, ohne dass ein Widerspruch entsteht:

Im Datenmodell ist die im Klassendiagramm nicht dargestellte Historisierung aufgelöst.

FunktionsmodellierungWurde nicht graphisch modelliert, sondern textuell beschrieben.Hinsichtlich der Berechnungen hat es sich herausgestellt, dass diese recht einfach sind und deshalb auch als Text gut darstellbar sind.Die Interaktion der Anwender wurden nur für Spezialfälle modelliert.

Nutzen der Modellierungverbesserte Übersicht bei der FunktionsanalyseKlärung von BegriffenErkennen weitere Anforderungen, die im Gespräch und der Analyse nicht genannt wurden.Vereinfacht die Herleitung von Anforderungen aus Gegebenheiten (z.B. Datenmodell anhand der Struktur)

Anforderungsdefinition und Modellierung ähnelt einem Würfel:Es gibt verschiedene Ansichten des Gegenstandes:

Und wenn man die Ansichten kombiniert, entdeckt man manchmal ganz neue Dinge:

Noch Fragen?

Ich hoffe, dass ich viele Ihrer Fragen zum Thema Modellierung beantworten konnte und Ihr Interesse am Einsatz von Modellierung wecken konnte.

Und wenn Sie noch skeptisch sind:Probieren Sie's einfach aus.