9. Design-Phase Software Engineering



Ähnliche Dokumente
7. Analyse-Phase: Datenmodellierung Software Engineering

6. Design-Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Klausur Software Engineering für WI (EuI)

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Festigkeit von FDM-3D-Druckteilen

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

6. Analyse-Phase: Geschäftsprozesse Software Engineering

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Arbeiten mit UMLed und Delphi

Teamentwicklung. Psychologische Unternehmensberatung Volker Rudat

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Wie Sie mit Mastern arbeiten

Was versteht man unter Softwaredokumentation?

Installation OMNIKEY 3121 USB

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

EPK Ereignisgesteuerte Prozesskette

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Es war einmal... "StudyING: Welten bewegen - Welten gestalten"

Abschnitt 16: Objektorientiertes Design

Anleitung über den Umgang mit Schildern

ÜBUNG. Einführung in das IT- Projektmanagement WS 2012/13. Dr. The Anh Vuong

Wenn Russland kein Gas mehr liefert

4. AuD Tafelübung T-C3

teischl.com Software Design & Services e.u. office@teischl.com

Some Software Engineering Principles

Projektmanagement in der Spieleentwicklung

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Definition und Begriffe

Erfahrungen mit Hartz IV- Empfängern

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Software Release Notes

Musterfragen ALLGEMEINE Systemlehre

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

SharePoint 2010 Mobile Access

Grundlagen Software Engineering

FAQ 04/2015. Auswirkung der ISO auf 3SE53/3SF13 Positionsschalter.

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Objektorientierte Programmierung

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

miditech 4merge 4-fach MIDI Merger mit :

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

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Requirements Engineering WS 11/12

B12-TOUCH VERSION 3.5

Organisation des Qualitätsmanagements

Artenkataster. Hinweise zur Datenbereitstellung. Freie und Hansestadt Hamburg. IT Solutions GmbH. V e r s i o n

Kapitel 1 Applikations-Architektur VI

Grundbegriffe der Wirtschaftsinformatik Informationssystem I

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Requirements Engineering für IT Systeme

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Usability Engineering als Innovationsmethodik

Handbuch Amos Ersteller: EWERK MUS GmbH Erstellungsdatum:

Konzentration auf das. Wesentliche.

IT Einkauf ohne Reue. Ralf Bussick

Übungsklausur vom 7. Dez. 2007

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Grüne Außenräume zwischen Haus und Himmel. Terrassendächer Carports Solarzellen

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Nutzung von GiS BasePac 8 im Netzwerk

K o n v e n t i o n enh a n d b u c h P r o z e s s m a n a g e m e n t

Serienbrief mit Word erstellen

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

Wien = Menschlich. freigeist.photography

Enterprise Applikation Integration und Service-orientierte Architekturen. Semesteraufgabe

Inbetriebnahme Profinet mit Engineer. Inhaltsverzeichnis. Verwendete Komponenten im Beispiel:

Geld Verdienen im Internet leicht gemacht

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Kapiteltests zum Leitprogramm Binäre Suchbäume

Zentrales Verfahren: Dokumentationspflichten für die zentrale Stelle und für die beteiligten Stellen

Daten sammeln, darstellen, auswerten

Gussnummern-Lesesystem

DIE SICHERE ENTSCHEIDUNG!

Kommunikation als kreativer Prozess: Im Dialog mit dem Kunden

Transparente SOA Governance mit Modellierung. OOP 2010 München, 28. Januar 2010, 12:30 Uhr Modeling Day

SwissSupplyChain Musterprüfung

Was ist Sozial-Raum-Orientierung?

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

1 Belastung. 1.1 Standortbestimmung 1.2 Belastungsvorhersage 1.3 Favoriten

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

TopKontor Handwerk. sirados - Kalkulationsdaten importieren - so einfach geht s! einfach sicher schnell

Dokumentenverwaltung im Internet

Ihre Bearbeitung kann sein: Sie wird durch eine Benutzerdokumentation (nicht: Anwenderdokumentation, Programmdokumentation) ergänzt.

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt

1 Mathematische Grundlagen

mit attraktiven visuellen Inhalten

FACHHOCHSCHULE MANNHEIM

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Wie ist das Wissen von Jugendlichen über Verhütungsmethoden?

SWOT Analyse zur Unterstützung des Projektmonitorings

LimeSurvey Fragetypen

FUTURE NETWORK REQUIREMENTS ENGINEERING

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Pelletofen mit WLAN Modul für einfaches Heizen von zuhause aus oder von unterwegs!

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

Transkript:

9. Design-Phase Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 1. Dezember 2005

Einordnung in den Kontext der Vorlesung 1. Einführung 2. Projektmodell 3. Vorgehensmodelle 4./5. Unified Modeling Language (UML) 6. Analyse-Phase: Geschäftsprozesse 7. Analyse-Phase: Datenmodellierung 9. Design-Phase 10. Design-Phase: Architektur im Großen 11. Programmierungs-Phase 12. Test- / Integrations-Phase, Einführung 13. Projektmanagement 14. Qualitätsmanagement 8. Analyse-Phase: Dialoge 1.12.2005, Seite 2

Agenda Agenda Übersicht Komponenten Schnittstellen IT-Architektur im Großen Kontrollfragen 1.12.2005, Seite 3

Übersicht Design: Die Königsdisziplin des Software Engineering Analyse WAS Design WIE 1.12.2005, Seite 4

Übersicht Grundprobleme des Design Wie setzt das System am besten insbes. Nicht-funktionale Anforderungen um? Wie kann das System beschrieben werden, damit es alle Stakeholder verstehen? System Wie kommuniziert das System am besten mit seiner Umwelt? Wie wird das System am besten in im Team implementierbare Komponenten zerlegt? 1.12.2005, Seite 5

Übersicht Wichtigste Aufgaben der Design-Phase Fachliche (Anwendungs-)Konstruktion Zerlegung (Dekomposition) des Systems in Komponenten (z.b. in Vertragsverwaltung, Kundenverwaltung ) Festlegung der Außenschnittstellen Technische Konstruktion (parallel zur Spez. durchführbar) Festlegung der technischen Infrastruktur (GUI-Toolkit, Datenbanksystem, App. Server, Frameworks, Hardware, ) Festlegung der Entwicklungsumgebung (SEU) (Programmiersprache, Umgebung, Build-Tool, Bugtracker, ) Festlegung der Grobstruktur des Systems (Schichten, Tiers, Standard-Architektur, ) Festlegung der (Programmier-)richtlinien (Coding Conventions, Verzeichnisstruktur, Nutzungskonzepte für Tools, ) Stadtplan MVV + Strom + Wassernetze + 1.12.2005, Seite 6

Übersicht Abhängigkeitsgraph im OO-Betriebssystem Taligent Wo ist hier die Architektur? Erich Gamma, "100 OO Frameworks, Pitfalls and Lessons Learned", 1997 1.12.2005, Seite 7

Agenda Agenda Übersicht Komponenten Schnittstellen IT-Architektur im Großen Kontrollfragen 1.12.2005, Seite 8

Komponenten Komponenten: die wesentlichen Einheiten des Design und der Implementierung 1.12.2005, Seite 9

Komponenten Finden von Komponenten Idee: Partitionierung des Datenmodells Planung Materialverleih Teilnehmerverwaltung Skilehrerverwaltung Idee: Entitätstypen zusammenstellen, die fachlich zusammenpassen Häufig gemeinsam verwendet werden Hilfsmittel Anwendungsfälle Dialoge prüfen Ziel: möglichst wenig und selten verwendete Verbindungen zwischen Komponenten 1.12.2005, Seite 10

Komponenten Beispiel für die Entwurfsregel D.L. Parnas We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such decision from the others. D.L Parnas: On the Criteria to be Used in Decomposing Systems into Modules, CACM 1972 1.12.2005, Seite 11

Komponenten Schneide Komponenten so, dass gilt: Strong Cohesion Loose Coupling Hohe Kohäsion Kohäsion = Zusammenhalt Inhaltlich zusammengehörende Elemente kommen in eine Komponente/Modul/Subsystem Klar definierter, präziser Zuständigkeitsbereich Lose Koppelung Koppelung = Abhängigkeiten Inhaltlich unabhängige Einheiten möglichst stark entkoppelt Je weniger Abhängigkeit desto besser (z.b. durch Schmale Schnittstellen, Wenig Imports, ) Ed Yourdon 1.12.2005, Seite 12

Komponenten Regeln zum Finden von Komponenten Schneide die Applikation nach den Abteilungsgrenzen (für jede Abteilung ein Subsystem, z.b. Rechnungswesen vs. Inkasso) Verleiher Ski- Verleih Skikursbetrieb Skischule und -verleih Skilehrer nach Grenzen von Geschäftsprozessen nach Änderungshäufigkeit 1.12.2005, Seite 13

Agenda Agenda Übersicht Komponenten Schnittstellen IT-Architektur im Großen Kontrollfragen 1.12.2005, Seite 14

Schnittstellen Schnittstellen (Interfaces) beschreiben Eigenschaften von Komponenten IPatient Katze IHaustier class Katze implements IPatient, IHaustier { } Meine Katze ist auch objektorientiert [Roger King] 1.12.2005, Seite 15

Schnittstellen Schnittstellen verbinden Komponenten Beispiel: Mehrere Datenquellen für die Bildverarbeitung Bildquellen Bildverarbeitung Problem: Verschiedene (Bild-) Datenformate Verantwortlichkeit: Bilddaten erzeugen Verantwortlichkeit: Bilder darstellen und verarbeiten Hohes Änderungsrisiko 1.12.2005, Seite 16

Schnittstellen Schlechtes Design: Der Monolith Verantwortlichkeit: Siemens, GE, HP + Bildverarbeitung Daten im Siemens Format Bildquellen Bildverarbeitung Siemens Daten Import GE-Daten Import HP-Daten Import Effekt: Bei jeder Änderung einer Bildquelle, z.b. neuer UltraSchall, MR, CT, Änderung der Bildverarbeitung!!! Daten im GE Format 1.12.2005, Seite 17

Gutes Design: Verantwortlichkeiten trennen und Schnittstellen spezifizieren Schnittstellen Bildverarbeitung Verantwortlichkeit: Daten von Siemens auf allg. Format konvertieren IBildquelle Siemens- MR-Treiber Siemens- CT-Treiber Bildquellen + open() + getbild() + close() Verantwortlichkeit: Bilder darstellen und verarbeiten GE- Treiber 1.12.2005, Seite 18

Schnittstellen Allgemeine Regeln KISS = Keep it simple and stupid (If you can t explain it in five minutes, ether you don t understand it or it doesn t work) Entwerfe nach Verantwortlichkeiten / Zuständigkeiten Mehr als eine Zuständigkeit ist schlecht Vermeide verteilte Zuständigkeiten Dokumentiere Zuständigkeiten (Was ist das Geheimnis?) Denken in Schnittstellen Erst / Nur Schnittstelle entwerfen und dokumentieren (!) Diese exakt spezifizieren: Syntax, (Verhalten), (Fehlerverhalten) Danach ggf. das Innenleben 1.12.2005, Seite 19

Agenda Agenda Übersicht Komponenten Schnittstellen IT-Architektur im im Großen Kontrollfragen 1.12.2005, Seite 20

Anwendungslandschaften gestalten heißt: Komplexität beherrschen 1.12.2005, Seite 21

Agenda Agenda Übersicht Komponenten Schnittstellen IT-Architektur im Großen Kontrollfragen 1.12.2005, Seite 22

Kontrollfragen Kontrollfragen Wie unterscheiden sich die Phasen Analyse und Design? Was sind die wichtigsten Aufgaben der Design-Phase? Was sind Komponenten? Nennen Sie Beispiele Wie findet man Komponenten? Was ist eine Schnittstelle? 1.12.2005, Seite 23