spezifikation großer informationssysteme - teil 2 ... · vorlesung „software engineering für...

35
Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reserved Technische Universität Wien, SS2002 1 Spezifikation großer Informationssysteme - Teil 2: Benutzungsoberflächen Vorlesung: Software-Engineering für große Informationssysteme TU-Wien, Sommersemester 2002 Wolfgang Keller

Upload: others

Post on 20-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

1

Spezifikation großer Informationssysteme - Teil 2:

Benutzungsoberflächen

Vorlesung: Software-Engineering für große Informationssysteme

TU-Wien, Sommersemester 2002Wolfgang Keller

Page 2: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

2

Überblick (1)• Abgrenzung

• Ergonomie versus das was heute vorgestellt wird ...• Arten von Oberflächen

• Formbasiert, MVC, MDI, direkt manipulativ, objektorientiert, Werzeug-Material-Metapher, menüorientiert, ..

• Oberflächen für „große Geschäftsinformationssysteme“• Was ist das typische Problem• CRUD• Spezifikation eines „formularbasierten Dialoges“

Page 3: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

3

Überblick (2)• Spezifikation auch graphischer Oberflächen• Spezifikation für Nebenläufige Dialoge

• Petrinetze, zu hoher Aufwand!• Generische Oberflächen aus dem Objektmodell

• CRUD pro Objekt• Objektaktionen (Methoden)• Behandlung von Beziehungen (Aggregation, 1:n, n:m)• Das Janus System der UniDo

Page 4: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

4

Abgrenzung: Ergonomie versus das was heute vorgestellt wird ...• Dialogspezifikation

• Wie baue ich Dialoge softwaretechnisch auf?• Wie komme ich von einer Spezifikation zum fertigen Dialog

• Software-Ergonomie• Was ist ein guter Dialog?• Wie sollte er nicht aussehen?

Achtung: Wir reden nicht darüber

was „gute Dialoge“ sind

Das ist Software -Ergonomie

Page 5: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

5

NormenDIN EN 2 9241/10: Grundsätze der Dialoggestaltung

• Aufgabenangemessenheit

• Selbstbeschreibungsfähigkeit

• Steuerbarkeit

• Erwartungskonformität

• Fehlerrobustheit

• Individualisierbarkeit

• Lernförderlichkeit

Eigenschaften für eine

gute Handhabbarkeit

Achtung: Wir reden nicht darüber

was „gute Dialoge“ sind

Das ist Software -Ergonomie

Page 6: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

6

Arten von OberflächenFormularbasiert

Page 7: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

7

Arten von OberflächenMVC

Model

Controller View

change view

get data

model changedchange controller

change model

Page 8: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

8

Arten von OberflächenWerkzeug/Material Metapher

Materialienhaben Aspekte

„ist druckbar“

Behälter

Werkzeuge

Page 9: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

9

Arten von OberflächenMDI – Multi Document Interface

MyWordFile Edit View Help

Doc1

Doc1

Page 10: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

10

Arten von Oberflächendirekt manipulativ

Page 11: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

11

Arten von Oberflächenmeüorientiert

Page 12: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

12

ZusammenfassungArten von Oberflächen• die meisten Oberflächen kombinieren die vorne

gezeigten Stile• Einer kann so gut wie nicht in Reinform vorkommen• nur sollte man sie kennen ...

Page 13: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

13

Oberflächen für große Geschäftsinformationssysteme

Page 14: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

14

Was ist das typische Problem?• Sie haben so 50 – 80 Geschäftsobjekte

(Sachbearbeiter)• Für jedes benötigen Sie mehrere Dialoge und

mindestens die CRUD Funktionalität• Sie bringen es dann schnell auf 200 oder mehr Panels• die sollten ähnlich aussehen, sich ähnlich verhalten, mit

möglichst geringem Aufwand zu erstellen sein und Wartungsfreundlich sein

• Daraus folgt: Generieren statt Programmieren!• Zu Generieren muß man jedoch zunächst spezifizieren

Page 15: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

15

CRUD – Was ist das?• C reate• R ead• U pdate• D elete

• Zum Beispiel einen Kunden kann man anlegen, lesen, ändern, löschen ..

• Grundfunktionen auf einer Datenbank

Page 16: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

16

Idee• Spezifiziere Dialogtypen als Automaten (IADs)• schaffe von jedem Typen viele Instanzen

Z1

Z2

(Rest-)Preis anzeigen

Initialzustand

Fahrkarte wählen

Geldeinwurf

(Rest-)Preis berechnen

Fahrkarte drucken

Geld zurückgeben

Abbruch

Fehler

Betragerreicht

Bild, Quelle sd&m AG

Page 17: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

17

DialogspezifikationElemente eines IADs

Start

EndeZustand

Aktion

Subdialog

Zustandsübergangmit Ereignis

ok

Page 18: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

18

Beispiel IAD für einen CRUD Dialog

NichtsAusgewählt

VorAnzeigen VorÄndernVorAnlegen VorLöschen

Anzeigen Anlegen Ändern Löschen

NachAnzeigen NachAnlegen NachÄndern NachLöschen

EvOK

EvAnzeigen

NOKNOK NOK NOK

EvLöschen

EvAnlegen EvÄndern

NOK NOK NOK

EvAbbruch EvAbbruch EvAbbruch

EvOK EvOKEvAbbruch

OK OK OK OK

EvBeenden

<Schlüssel-auswahl-Dialog>

<Schlüssel-auswahl-Dialog>

<Schlüssel-auswahl-Dialog>

<Schlüssel-auswahl-Dialog>

EvOK

OK OK OK OK

Page 19: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

19

Konzept der virtuellen Taste

Kunde

a = Anlegenb = Betrachtenae = Ändernl = Löschen

Eingabe

Löschen

2 verschiedene Eingabenein und dasselbe Ziel? Konzept virtueller Tasten

Spart Code!

Page 20: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

20

Dialog - Interpreterschleife

Ermittle Virtuelle Taste

Eingabe der MAP

Wenn Taste = „Löschen“ ...

Wenn Taste = „Anlegen“ ...

Page 21: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

21

Spezifikation eines formular-basierten Dialoges besteht aus• dem durch das IAD festgelegten Automaten• aus den Masken zu jeden Dialozustand

• der Bildschirmbeschreibung• den Ein/Ausgabe-Feldern• dern virtuellen Tasten und ihrer Beschreibung

• der Beschreibung der Aktionen

• das ganze aufgeschrieben in „irgendeiner“ formalisierten Sprache ...

Page 22: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

22

Dialog und Dialogtyp• bei Massendialogen spezifiziert man logischerweise

Dialogtypen für zum Beispiel• Kunde• Auftrag• Zahlung ...

• Ein Dialog ist dann zum Beispiel eine Instanz des Dialogtyps „Einzelsatzverarbeitung“

Page 23: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

23

siehe auch Unterlage• Artikel „Spezifikation von Massendialogen mit Toledo“

verteilen, • gemeinsam durchgehen ..

Page 24: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

24

Warum ist das „gut“ für große Systeme ..• jedem Feld wird ein Datentyp zugewiesen mit einer

Methode „checkInput“• Man kann in OO Sprachen wirklich so arbeiten, dass

man zu einem Dialog-Template-Dialog nur einen zu bearbeitenden fachlichen Typ angibt

• Man ändert nur den Typ und alle Dialoge ändern sich konsistent

Page 25: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

25

Spezifikation für GUIs• GUI Oberflächen sind meist als

Bäume von Objekte implementiert• Events werden über eine Chain of

Responsibility weitergereicht• Wenn man „Pech“ hat sind die

Oberflächen auch noch „nicht-modal“ – also es leben gleichzeitig mehrere Panels, die sich „kräftig“ gegenseitig beeinflussen

• Man kann aber trotzdem jedes Element selbst wieder als „Baum“ spezifizieren

• Man erhält hierarchische Automaten

Textbaustein-Editor KIS/Rechnung/3=KundeAEG

Textbaustein Bearbeiten Ansicht Fenster Hilfe

Textbausteinvariante

VariantenTextbausteine

OKAbbrechen

Öffnen

MahnungRechnungReisekosten

sd&m-StandardNiederlassung HamburgKunde AEGKunde SiemensKunde MAN

Anwendung

1 2 3 4 5

KIS/Rechnung/Kunde_AEG

Page 26: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

26

Jedes Element ist wieder ein Automat ..

NothingSelected

ITVUnchanged

ITVInEdit

EvOpenITV

EvDeleteITV

EvCloseITVEvDeleteITV

EvClose

EvClose

EvSaveAsITVEvOpenITVEvStoreITVEvOpenHeadInfoEvCloseHeadInfo

EvOpenLayoutEvOpenProperties

EvOpenITV

EvCloseITVEvDeleteITV

EvStoreITVEvSaveAsITVEvOpenLayoutEvCloseLayoutEvOpenPropertiesEvClosePropertiesEvOpenHeadInfoEvCloseHeadInfo

EvClose

Zustandsmodell Textbausteineditor

Page 27: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

27

siehe auch Unterlage• Online – Artikel verteilen, • gemeinsam durchgehen ..

Page 28: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

28

GUIs können typisch nebenläufig sein Petrinetze

Suchen (1), Kriterien verändert, Anz(Objekte)<=x

Suche DB, in Auswahl eintragen, Neu, OK freigeben,

Suchen sperrenAuswahl

Objekt

Details...

OK (1), Objekt selektiert

Abbrechen (1)

Objekt-Pflege

AbfrageObjekt auswählen

in Ausgewählt anzeigen, OK freigeben

Suchen (2), Kriterien verändert, Anz(Objekte) >x

Suche DB, Auswahl leeren, Suchen, OK sperren

Meldung Menge

OK (4)

Beenden (1), neuer Schlüssel

Suche DB, Auswahl aktualisieren

OK (2), Query , Anz(Objekte)<=x

DB Suche, Auswahl aktualisieren, Abfrage füllen

Neu

Start

Auswahl füllen, falls Selektion ohne Suche

Objekt deselektieren

OK sperren, Ausgewählt leeren

OK (3), Query, Anz(Objekte) >x

DB Suche, Query in Auswahl eintragen

Kriterien editieren

Suchen freigeben

man kann sie dann immernoch spezifizieren

Allerdings benötigt man Petrinetze

Das verstehen nicht malmehr „normale“Informatiker

also läßt man es besser

Page 29: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

29

Generierung generischer Oberflächen aus Objektmodellen• basiert auf Arbeiten von Prof. Balzert, Uni Dortmund• Idee: Vollgenerierung von CRUD – 08/15 Oberflächen

aus einem Objektmodell

Page 30: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

30

Janus Schritt 1: Objektmodell

Bild, Quelle otris Software AG

Page 31: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

31

Janus Schritt 3: Generierter Prototyp

Bild, Quelle otris Software AG

Page 32: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

32

CRUD pro Objekt

Auswahldialog

Objekt1Objekt2Objekt3....

Dialogbox pro Einzelobjekt

Attribute....

Schlüsselinfos

Delete

Doppelklick

OK

rechte Maustaste -

Createsave

changes => update

read trivialkeine

Änderungen

Page 33: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

33

Aktionen pro Objekt• Methoden des Objektes können als

Aktionen angeboten werden• Problem dabei lediglich – woher

bekommt man die Parameter • Idee: Dialogbox aufmachen ...• Strings etc. eingeben• Objekte: auswählen lassen

Dialogbox pro Einzelobjekt

Attribute....

Schlüsselinfos

OK

Page 34: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

34

Behandlung von Beziehungen1:n, n:m, 1:1 (alles analog)

Customer

Orders

Customer

Order1Order2Order3...

Order

Position1Position2Position3...

Doppelklick

Page 35: Spezifikation großer Informationssysteme - Teil 2 ... · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org, allrights

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

35

Aggregation• kann man als Beziehung betrachten• es passiert nur etwas anderes in der Datenbank

• Cascading Delete