Kapitel 5: Das Design



Ähnliche Dokumente
Kapitel 3: Statische Analyse mit FUSION

Kapitel 4: Dynamische Analyse mit FUSION. SoPra 2008 Kap. 4: Dynamische Analyse mit FUSION (1/30)

Kapitel 2: Der Software-Entwicklungsprozess

Software- /Systemarchitektur

Softwaretechnik 2015/2016

Alternative Architekturkonzepte

Das eintegrationsportal -

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.

Software Engineering. 5. Architektur

Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar

Datenbanksysteme. Donald Kossmann TU München

Softwaretechnik (WS 11/12)

Inhaltsverzeichnis Einleitung Imperative Sprachkonzepte Objektorientierte Sprachkonzepte

Inhalt. Einleitung Liebe Leserin, lieber Leser, Wer dieses Buch aus welchem Grund lesen sollte Ihre Meinung ist uns sehr wichtig.

Lehrbuch der Objektmodellierung

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

17 Architekturentwurf Vorgehen und Dokumentation

7. Objektorientierung. Informatik II für Verkehrsingenieure

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Client/Server-Programmierung

Softwareprojekt. Kapitel 0 : Organisatorisches. Kurt Stenzel, Hella Seeebach

Objektorientierte Analyse (OOA) OOA-Pattern

Klausur zum BM Einführung in die Wirtschaftsinformatik SS 2014 Schriftlicher Teil

MVC Ein wichtiges Konzept der Software-Architektur

Abschnitt 20: Ein Grundprinzip der Software-Architektur

Objektorientierte Systementwicklung

Datenbanken. Teil 2: Informationen. Kapitel 7: Objektorientierte Sicht. UML-Diagramme. Vorstellung der unterschiedlichen UML-Diagramme

Objektorientiertes Design

Entwurfsmuster (Design Patterns)

3-Tier-Architecture und J2EE

Trainingsmanagement Gutschein Management. Beschreibung

SWE1 - Übung 1 Projektbeschreibung: Chat

11. Komponenten Grundlagen der Programmierung 1 (Java)

Profil Volker Riecken

Datenmanagement in Android-Apps. 16. Mai 2013

IT-Projekt-Management

Architekturen. DB-Anwendungen: Aufgaben. Aufteilung der Funktionen. ƒ Datenbankanwendungen

Bekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

<Insert Picture Here> BI Publisher Berichte in eigene Anwendungen integrieren

Archivierung in DBMS

Kapitel 1 Grundlagen. Skript zur Vorlesung: Datenbanksysteme II Sommersemester Vorlesung: PD Dr. Peer Kröger

SAP Open Catalog Interface WyRu Online-Shop

Objektorientierte Programmierung (OOP)

Software Engineering

Objektorientierte Programmierung Studiengang Medieninformatik

1.5 User Interface Developer (Nutzerschnittstellenentwickler/in)

Objektorientierte und Funktionale Programmierung SS 2014

systems landscape engineering - übung -

8.4 Überblick und Vergleich weiterer ERP-Systeme. G Oracle Applications 11 G PeopleSoft 7 G J.D. Edwards One World G BaanERP

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Webbasierte Informationssysteme

Software Engineering in der Praxis

SWARCO TRAFFIC SYSTEMS GMBH. PRIMOS SMART Zentrale Software Systembeschreibung. PRIMOS_Smart_BD_00

Prozessunterstützung durch BPR-, BPM- und Workflow-Systeme

11/2009 Bernhard Gangl. Steuerungen mit OOP entwickeln 11 / Themenübersicht. Übersicht und Begriffsklärung: Objektorientierte Programmierung

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Arbeitsblätter zu Teil I des Praktikums

Design im Softwareentwicklungsprozess. Stand der Dinge & Designziel. fachliche & technische Architektur. generelles Vorgehen bei Grob-Design

Eine technische Plattform für Smart-Client-Systeme. Alexander Ziegler

Kapitel 4 - Die Implementierungsphase

Einführung: Verteilte Systeme - Remote Method Invocation -

Erläuterungen zu Darstellung des DLQ-Datenportals

Objektorientierter Entwurf. Grundlagen des Software Engineerings

Programmierung im Grossen

Vorlesung Informatik II

Vorlesung Informatik II

Programmierung von Java- Webanwendungen. paluno

Unified Modelling Language

Transformation von nicht linear rekursiven Funktionen in iterative Funktionen

Analyse und Design mituml2.1

Einführung in die Programmierung

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Inhaltsverzeichnis. Einleitung Zielsetzung und Inhalt Didaktisches Konzept Voraussetzungen Literaturquellen...

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

Über mich. Daniel Bälz. Softwareentwickler (inovex GmbH) github.com/dbaelz

Design des Konzeptuellen Modells

Software Engineering in der Praxis

Javaprogrammierung unter Notes

PowerDesigner Frühstück

Robert Seibt. Jahrgang: System- und Anwendungsentwicklung im OO- Bereich (OOA, OOD, UML, C++, Java) Schwerpunkt:

Das UML Benutzerhandbuch

Development auf der Plattform SAP HANA

[Hier klicken und Text eingeben] [Hier klicken und Text eingeben] Auftragsnummer: [Hier klicken und Text eingeben] Auftragnehmer:

Transkript:

Nach der Analyse kommt... Kapitel 5: Das Design SoPra 2008 Kap. 5: Das Design (1/20)

Kapitel 5.1: Überblick Was ist Design? Ergebnis der Analyse: abstrakte Definitionen Objektmodell: Klassen, Assoziationen, Attribute Information im System Beziehungen dazwischen Interaktionsmodell, Operationsmodell: von außen sichtbare Operationen Aufgabe des Designs festlegen, wie die in der Analyse beschriebene Funktionalität realisiert wird Ergebnis des Designs objektorientierte Software-Struktur Sammlung interagierender Objekte noch unabhängig von der Programmiersprache SoPra 2008 Kap. 5.1: Das Design Überblick (2/20)

Aufgaben 1. Festlegung der Systemarchitektur 2. GUI-Design ( Schnittstellenmodell) 3. Design der Anwendungslogik 4. Datenbank-Entwurf 5. Zusammenspiel der Systemkomponenten SoPra 2008 Kap. 5.1: Das Design Überblick (3/20)

Design in FUSION light Zu erstellende Dokumente Objektinteraktionsgraphen (OIGs) Interaktion der Objekte zur Laufzeit Realisierung der im Operationsmodell spezifizierten Funktionalität Klassenbeschreibungen spezifiziert Schnittstelle einer Klasse, d. h. Attribute und Methoden beschreibt, wie Assoziationen implementiert werden besonders wichtig für neue (im Design eingeführte) Klassen SoPra 2008 Kap. 5.1: Das Design Überblick (4/20)

Kapitel 5.2: Systemarchitektur Klassische 3-Schichtenarchitektur: 1. User Interface (GUI, Präsentationsschicht ) 2. System (Business Logic, Anwendungslogik) 3. Datenschicht (Datenbank, Persistenzschicht) untere Schichten greifen nie auf höhere Schichten zu GUI auswechselbar controller bildet die Systemschnittstelle sauberes Interface für Systemoperationen GUI controller Anwendung Daten SoPra 2008 Kap. 5.2: Das Design Systemarchitektur (5/20)

Client-Server Architektur Thick-Client Client 1 Client N C# Programm C# Programm GUI controller Anwendung... GUI controller Anwendung Systemgrenze nach Fusion Persistenzschicht Persistenzschicht Server Kommunikation (SQL, übers Netz) DB SoPra 2008 Kap. 5.2: Das Design Systemarchitektur (6/20)

Client-Server Architektur Thin-Client WebBrowser Client 1 HTML Seite... WebBrowser Client N HTML Seite Kommunikation (HTTP) Session Thread 1 GUI controller Anwendung Persistenzschicht... C# Programm Server GUI controller Anwendung Persistenzschicht Session Thread N Systemgrenze nach Fusion Kommunikation (SQL) DB SoPra 2008 Kap. 5.2: Das Design Systemarchitektur (7/20)

Client-Server Architektur Thin-Client (Variante) WebBrowser Client 1 HTML/javascript... WebBrowser Client N HTML/javascript Kommunikation (HTTP) Session Thread 1 GUI controller Anwendung Persistenzschicht... Server GUI controller Anwendung Persistenzschicht Session Thread N Systemgrenze nach Fusion Kommunikation (SQL) DB SoPra 2008 Kap. 5.2: Das Design Systemarchitektur (8/20)

Für s Auge... Kapitel 5.3: die GUI Das Graphical User Interface die GUI Relevanz Warum? Die Grundregel Wie? Integration in FUSION Entwurf SoPra 2008 Kap. 5.3: Das Design die GUI (9/20)

Relevanz Warum ist die GUI wichtig? Ergonomie schlechte GUI unproduktive Nutzung Die GUI ist das Aushängeschild einer Software Kunde sieht das Innenleben womöglich gar nicht oft wird eine Anwendung nur an ihrer GUI bewertet erster Eindruck zählt: Anwender nicht abschrecken SoPra 2008 Kap. 5.3: Das Design die GUI (10/20)

Relevanz eine schlechte GUI kann Software unbrauchbar machen umständlich zu bedienen verwirrend... SoPra 2008 Kap. 5.3: Das Design die GUI (11/20)

Grundregel Der Nutzer steht im Mittelpunkt! den menschlichen Arbeitsablauf unterstützen den Nutzer führen Kontext anbieten Begriffswelt des Nutzers verwenden keine Systeminterna in der Oberfläche keine Bezeichner aus der Implementierung, sondern verständliche Begriffe Das System soll sich dem Nutzer anpassen nicht umgekehrt! SoPra 2008 Kap. 5.3: Das Design die GUI (12/20)

Integration in FUSION Die GUI realisiert einen Teil der Systemschnittstelle. Dialogführung orientiert sich an den Lebenszyklen GUI kommuniziert mit dem Systemkern über Systemoperationen Controller als Schnittstelle zwischen GUI und Systemklassen Nutzer-Eingaben werden Parameter für Systemoperationen Anbindung durch und an Systemoperationen GUI beschafft sich Informationen über das System Systemoperationen stellen diese zur Verfügung präsentiert diese dem Nutzer Nutzer macht Eingaben und löst Aktionen aus entsprechend parametrisierte Systemoperationen werden angestoßen SoPra 2008 Kap. 5.3: Das Design die GUI (13/20)

Integration in FUSION Unabhängigkeit vom Systemkern Mehrere Fenster realisieren zusammen einen Lebenszyklus. Wie kommt die GUI an ihre Daten? Kommunikation nur über Systemoperationen ggf. fehlende Operationen ergänzen Oberfläche darf nur dokumentierte Operationen nutzen kein eigenständiger Zugriff auf Interna GUI und eigentliches System sollten getrennt bleiben GUI unabhängig von Implementierungsdetails Datenaustausch nur über die spezifizierte Schnittstelle modulare, austauschbare GUI SoPra 2008 Kap. 5.3: Das Design die GUI (14/20)

Entwurf Die GUI sollte nicht alleine vom Software-Entwickler entworfen werden enge Zusammenarbeit mit dem Kunden Mitarbeit von Psychologen (in großen Projekten) Designern Entwicklung anhand von Prototypen Evaluation durch Fragebögen Statistiken (meist genutzte Funktion, etc.) iterativer Prozess SoPra 2008 Kap. 5.3: Das Design die GUI (15/20)

Entwurf Vorgehen Wie kommt man zu einem GUI-Entwurf? 1. Drehbuch der Dialogabfolge aus den Lebenszyklen 2. Welche Informationen sollen dargestellt werden? Woher kommen diese Informationen? Gegebenenfalls fehlende (System-)Operationen ergänzen. 3. Eingabefelder für Nutzer vorsehen lösen oft Systemoperationen aus, in das Drehbuch integrieren SoPra 2008 Kap. 5.3: Das Design die GUI (16/20)

Entwurf Vorgehen (2) 4. Layout der einzelnen Dialoge ergonomische Kriterien beachten den Nutzer führen, nicht verwirren sinnvolle Namen und verständliche Meldungen Dialoge klar strukturieren, nicht überladen zusammen gehörende Dinge gruppieren nach Möglichkeit selbsterklärende Dialoge 5. Aufruf einer Systemoperation Vor Aufruf die Parameter aus den Nutzereingaben zusammenstellen 6. Rückmeldung an den Nutzer Statuszeile, Message-Area, Popup-Fenster,... 7. Iterativer Prozess: 1. 6. wiederholen bis gute GUI entsteht SoPra 2008 Kap. 5.3: Das Design die GUI (17/20)

Beispiel: Einzelbuchung anlegen Lebenszyklus und Dialogabfolge WUNSCHEINGABE ::= machevorschläge(b.wunsch).#set(b.vorschlag). VORSCHLÄGE machevorschläge(b.wunsch).#error. WUNSCHEINGABE MAIN VORSCHLÄGE ::= legebuchungan(b.vorschlag,startzeit,titel).#ok. MAIN WUNSCHEINGABE SoPra 2008 Kap. 5.3: Das Design die GUI (18/20)

Beispiel: Einzelbuchung anlegen Lebenszyklus und Dialogabfolge WUNSCHEINGABE ::= machevorschläge(b.wunsch).#set(b.vorschlag). VORSCHLÄGE machevorschläge(b.wunsch).#error. WUNSCHEINGABE MAIN VORSCHLÄGE ::= legebuchungan(b.vorschlag,startzeit,titel).#ok. MAIN WUNSCHEINGABE Raumwunsch Größe Gebäude Ausstattung Abbruch 25 Weiter von bis Terminwunsch Dauer Zurück 8:00 20:00 2h Weiter Buchungsvorschläge Raum 1001P, von 10:00 12:00 Raum 1002P, von 8:00 10:00 Raum 1005, von 15:00 17:00 Raum 1009, von 10:00 12:00 Raum H1, von 18:00 20:00 Raum1010J, von 14:30 16:30 Titel Beschreibung Zurück Klausur SWT Lst. Reif Buchen! Buchungswunsch leider nicht erfüllbar. OK Buchung erfolgreich! SoPra 2008 Kap. 5.3: Das Design die GUI (18/20)

Beispiel: Einzelbuchung anlegen Dialogabfolge und Systemoperationen (1) WUNSCHEINGABE ::= machevorschläge(b.wunsch).#set(b.vorschlag). VORSCHLÄGE machevorschläge(b.wunsch).#error. WUNSCHEINGABE MAIN VORSCHLÄGE ::= legebuchungan(b.vorschlag,startzeit,titel).#ok. MAIN WUNSCHEINGABE Raumwunsch Größe Gebäude Ausstattung Abbruch 25 Weiter von bis Terminwunsch Dauer WUNSCHEINGABE Zurück 8:00 20:00 2h Weiter #set(b.vorschlag) machevorschläge #error VORSCHLÄGE Buchungsvorschläge Raum 1001P, von 10:00 12:00 Raum 1002P, von 8:00 10:00 Raum 1005, von 15:00 17:00 Raum 1009, von 10:00 12:00 Raum H1, von 18:00 20:00 Raum1010J, von 14:30 16:30 Titel Beschreibung Zurück Klausur SWT Lst. Reif Buchen! Buchungswunsch leider nicht erfüllbar. OK Buchung erfolgreich! OK legebuchungan.#ok MAIN SoPra 2008 Kap. 5.3: Das Design die GUI (19/20)

Beispiel: Einzelbuchung anlegen Dialogabfolge und Systemoperationen (2) WUNSCHEINGABE ::= machevorschläge(b.wunsch).#set(b.vorschlag). VORSCHLÄGE machevorschläge(b.wunsch).#error. WUNSCHEINGABE MAIN VORSCHLÄGE ::= legebuchungan(b.vorschlag,startzeit,titel).#ok. MAIN WUNSCHEINGABE Raumwunsch Größe Gebäude Ausstattung Abbruch 25 Weiter von bis Terminwunsch Dauer WUNSCHEINGABE Zurück 8:00 20:00 2h Weiter #set(b.vorschlag) machevorschläge #error VORSCHLÄGE Buchungsvorschläge Raum 1001P, von 10:00 12:00 Raum 1002P, von 8:00 10:00 Raum 1005, von 15:00 17:00 Raum 1009, von 10:00 12:00 Raum H1, von 18:00 20:00 Raum1010J, von 14:30 16:30 Titel Beschreibung Zurück Klausur SWT Lst. Reif Buchen! Buchungswunsch leider nicht erfüllbar. OK legebuchungan.#ok Buchung erfolgreich! MAIN SoPra 2008 Kap. 5.3: Das Design die GUI (20/20)