Prof. Dr.-Ing. Dagmar Meyer Software Engineering 3 ARCHITEKTURENTWURF

Größe: px
Ab Seite anzeigen:

Download "Prof. Dr.-Ing. Dagmar Meyer Software Engineering 3 ARCHITEKTURENTWURF"

Transkript

1 3 ARCHITEKTURENTWURF

2 Hausbau - so? 2

3 oder so? 3

4 ... oder doch lieber so? 4

5 Dumme Frage! Wenn es um das Bauen von Häusern geht, besteht überhaupt kein Zweifel: ein guter Architekt muss her ohne Baupläne (Architektur) fängt kein Bauarbeiter mit seiner Arbeit an wie sollte er auch? nur gut durchdachte Baupläne garantieren ein ansprechendes Ergebnis Fehler bei der Erstellung der Pläne und der Statik, die nicht bemerkt werden, können im schlimmsten Fall zum Einsturz des Gebäudes führen Und wie sieht es mit dem Entwickeln von Software aus? 5

6 Eigentlich nichts Neues I am more convinced than ever. Conceptual integrity is central to product quality. Having a system architect is the most important single step toward conceptual integrity... After teaching a software engineering laboratory more than 20 times, I came to insist that student teams as small as four people choose a manager, and a separate architect. oder doch? Brooks, Frederick: The Mythical Man-Month (20th Anniversary Edition, 1995) Softwarearchitektur spielt eine zentrale Rolle für die erfolgreiche Erstellung, die Pflege und Wartbarkeit der Software. Die Möglichkeit der Wiederverwendung und der Wissensaufbau bzgl. Software im Unternehmen hängt davon ab. Die Softwarearchitektur ist Ihre Garantie für den Schutz Ihrer Investitionen in Softwareentwicklung. M. Broy et al: Manifest. Strategische Bedeutung des in Deutschland. In: Informatik Spektrum. Springer Verlag. Band 29, Heft 3, Juni

7 Klassische Architektur Die Architektur von Gebäuden wird beschrieben durch mehrere Sichten: Außenansicht, Grundrisse, Leitungspläne,... Architekturstile: romanisch, gotisch,... Stil und Engineering: Wie beeinflusst die Wahl des Baustils die Konstruktion des Gebäudes? Stil und Baumaterialien: Wie beeinflusst die Wahl des Baustils die verwendeten Baumaterialien? Diese Konzepte finden sich auch in SW-Systemen: es gibt Sichten: Kontrollfluss, Datenfluss, Modulstruktur, Verhaltensanforderungen,... Stile: Streams und Filter, objektorientiert, prozedural,... Engineering: Module, Filter, Nachrichten, Ereignisse,... Materialien: Kontrollstrukturen, Datenstrukturen,... 7

8 SW-Architektur oder Big Ball of Mud? Statt eine saubere Softwarearchitektur umzusetzen enden viele Softwaresysteme in einem Big Ball of Mud Mögliche Ursachen: Unterschätzung der Komplexität des Systems Fehlende Methodenkenntnis Mangelndes Durchsetzungsvermögen des Architekten Viele Köche verderben den Brei Abhilfe: Rolle des Architekten im Projekt fest verankern Methodenkenntnis + Erfahrung + Persönlichkeit sind der Schlüssel zum Erfolg 8

9 Warum Softwarearchitektur? Abhängigkeit der Gesellschaft von Software Software als Schlüssel für die Funktionsfähigkeit von Produkten Software wird zum marktunterscheidenden Element Wettbewerbsfähigkeit In vielen Branchen liegt ein Großteil der Wertschöpfung in den elektronischen und durch Software bestimmten Systemen Auch in Unternehmen des klassischen Maschinenbaus (Automobil, Werkzeugmaschinen, Anlagenbau, ) Softwaresysteme werden zunehmend komplexer Fehler können weitreichende Auswirkungen haben Online-Bank, deren Webportal ausfällt, hat plötzlich alle Filialen geschlossen Fehler im Flugsicherungssystem kann viele Menschenleben kosten Ausfall des Warenwirtschaftssystems kann ein Unternehmen Milliarden kosten (keine Bestellungen, kein Verkauf, ) 9

10 Architektur = Bauplan 10

11 Aussage von Bauplänen? Die Architektur beschreibt, Was gebaut werden soll Wie die Konstruktion im Groben aussieht Welche Materialien verwendet werden Wofür Fertigteile verwendet werden Die Architektur beschreibt nicht Wie der Maurer die Steine aufeinander schichten und miteinander verbinden soll In welcher Reihenfolge z. B. die Fenster eingesetzt werden müssen Von welchem Hersteller die Badewanne bezogen wird. Softwarearchitektur lässt dem Entwickler beim Design "seiner" Komponenten Freiräume Softwarearchitektur ist keine "Verfahrensanweisung" 11

12 Definition nach ANSI/IEE-Standard ANSI/IEE-Standard Recommended Practice for Architectural Description of Software-Intensive Systems Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. 12

13 Eine Definition in Kurzform Die Softwarearchitektur eines Programms oder Softwaresystems ist die Struktur oder sind die Strukturen des Systems, die Software-Komponenten die nach außen sichtbaren Eigenschaften dieser Komponenten und deren Beziehungen untereinander umfassen. Bass, L.; Clements, P.; Kazman, R.: Software Architecture in Practice. Addison-Wesley, Boston,

14 Komponenten: Beispiel Hafenrichter, B.: Die Struktursicht der Architektur. Vorlesungsskript, Hochschule Regensburg. Mögliche Komponenten einer Web-Anwendung 14

15 Bewertung einer Architektur? Die vorgestellte Definition lässt offen, ob eine Architektur gut oder schlecht ist. "Trial and Error" ist kein gangbarer Weg zur Auswahl einer geeigneten Architektur für ein System. Beliebige Architektur auswählen? System aufbauend auf dieser Architektur entwickeln? Hoffen, dass die Anforderungen erfüllt werden? Notwendigkeit der Entwicklung einer Architektur (Designprozess: Softwarearchitekturdesign) setzt Methodenwissen und Erfahrung(!) voraus 15

16 Eine gute Softwarearchitektur Ermöglicht dem System die Erfüllung seiner Qualitäts-, Lebenszyklus- und Verhaltensanforderungen Qualitätsmodell ISO

17 Detaillierungsgrad und Risiko Existieren kritische, anspruchsvolle Qualitätsanforderungen, muss Softwarearchitekturdesign in eine beachtliche Detailtiefe gehen, um kritische Teile des Systems zu betrachten. Der Detaillierungsgrad muss nicht für die gesamte Architektur gleich sein, sondern kann je nach Risiko für einzelne Bereiche variieren. Posch, T. et al: Basiswissen Softwarearchitektur. Verstehen, entwerfen, wiederverwenden. dpunkt.verlag, Heidelberg,

18 Zeitliche Einordnung in den Entwicklungsprozess Anforderungen Implementierung Strukturen und Beziehungen Definition der Anforderungen Software- Architektur Feindesign Implementierung Integration Test Reale SW-Entwicklung ist ein inkrementeller Prozess mit mehreren Iterationen 18

19 Zusammenfassung Softwarearchitektur ist die Zerlegung des Systems in seine Hauptbestandteile auf der obersten Ebene. Sie definiert die Architekturbausteine, deren Verantwortlichkeiten, Instanzen, Schnittstellen und wie diese miteinander interagieren. Softwarearchitekturdesign ist der zugehörige Designprozess. Softwarearchitektur manifestiert somit die frühesten und wichtigsten Designentscheidungen für das Softwaresystem. Posch, T. et al: Basiswissen Softwarearchitektur. Verstehen, entwerfen, wiederverwenden. dpunkt.verlag, Heidelberg,

20 Komponenten im Sinne der UML Komponente im Sinne der UML Bausteine, die eine bestimmte Funktionalität zum Beispiel die Kapselung der Zugriffe auf eine Datenbank bereitstellen Kommunikation mit anderen Bausteinen über eine definierte Schnittstelle Schnittstellenspezifikation bezieht sich auf statische Informationen (Signatur der erlaubten Operationen) und auf dynamische Informationen (Sequenz der erlaubten Aufrufe). Schnittstellenspezifikation legt fest: nach außen bereitgestellten Funktionalitäten bereitgestellte (engl. provided) Schnittstellen von der Umgebung geforderte Funktionalitäten benötigte (engl. required) Schnittstellen. 20

21 Komponentendiagramm Komponentendiagramm als Kontextsicht für eine Wetterstation Posch, T. et al: Basiswissen Softwarearchitektur. Verstehen, entwerfen, wiederverwenden. dpunkt.verlag, Heidelberg,

22 Elemente des Komponentendiagramms Komponente Port repräsentiert ein komplettes System bzw. einzelne Architekturbausteine. Bei der Betrachtung des Systemkontexts werden Komponenten sowohl zur Darstellung für das zu erstellende System als auch für die Nachbarsysteme verwendet. definiert einen namentlichen Interaktionspunkt einer Komponente, dem bereitgestellte und benötigte Schnittstellen zugeordnet werden können. Eine Komponente kann mehrere Ports mit gleichen Schnittstellen besitzen, d. h., die gleiche Operation kann über verschiedene Ports aufgerufen werden und wird somit intern von der Komponente unterschiedlich behandelt. Schnittstelle beschreibt die möglichen Typisierungen von Ports und damit die erlaubten Eingangs- und Ausgangsnachrichten. Schnittstellen werden benannt und in bereitgestellte und benötigte Schnittstellen unterschieden. Konnektor (engl. connector) Kommunikationskanal zwischen Komponenten. 22

23 Ausführliche Schnittstellenbeschreibung Beschreibung der Schnittstelle "Temperatur" Posch, T. et al: Basiswissen Softwarearchitektur. Verstehen, entwerfen, wiederverwenden. dpunkt.verlag, Heidelberg,

24 Verteilungsdiagramm Beschreibung eines über Kommunikationskanäle verbundenen Systems aus verteilt angeordneten Bausteinen Beschreibung der Infrastruktur für Softwaresysteme Knoten (nodes) und Verbindungen Ausführungseinheiten (z. B. Prozessoren) Geräte (devices) wie z. B. Sensoren oder Aktuatoren Softwarekomponenten können innerhalb der Knoten dargestellt werden Zusammenhang zwischen Infrastruktur und Software verdeutlichen Artefakte spezifizieren physikalische Realisierungen der Komponenten DLLs Quelldateien 24

25 Verteilungsdiagramm: Beispiel Posch, T. et al: Basiswissen Softwarearchitektur. Verstehen, entwerfen, wiederverwenden. dpunkt.verlag, Heidelberg,

26 Elemente des Verteilungsdiagramms Knoten physikalische Verteilungseinheit mit anderen Einheiten über Kommunikationsbeziehungen verbunden Kommunikationsbeziehung Kommunikationskanal zwischen zwei Knoten, beispielsweise eine serielle Leitung, einen CAN-Bus oder TCP/IP Verteilungsbeziehung Zuordnungsbeziehung zwischen einem Knoten und einem auf diesem Knoten ablaufenden Artefakt. Artefakt physikalische Realisierung eines Bausteins 26

27 "The amateur software engineer is always in search of magic, some sensational method or tools whose application promises to render software development trivial." Grady Booch, 1994 "The process of object-oriented analysis and design cannot be described in a cookbook." Grady Booch,

28 Fundamentale Entwurfsprinzipien Fähigkeit des Menschen im Umgang mit Komplexität ist begrenzt Gleichzeitige Verarbeitung auf max. 7 ± 2 Informationen eingeschränkt 5 s für die Aufnahme einer neuen Informationseinheit Bewältigung komplexer Systeme nur durch Erhöhung des semantischen 1 Gehaltes jeder Information möglich Übernahme wichtiger Prinzipien aus dem objektorientierten Entwurf, der genau diese Ziele verfolgt 1 bedeutungsmäßig 28

29 Grundprinzipien: Abstraktion Abstraktion = idealisiertes, vereinfachtes Modell eines realen Objekts Abstraktion hilft, Gemeinsamkeiten zu erkennen Abstraktion in der Softwarearchitektur Beurteilung von Bausteinen grob nach Schnittstellen und Verantwortlichkeiten Hilfsmittel zur Bewältigung der Komplexität der Aufgabe Hilfsmittel für Abstraktion und Generalisierung sind Modelle und Sichten Elemente einer Modellierungssprache stellen Abstraktionen dar Abstraktion geschieht bei ihrer Verwendung bereits implizit Eine Abstraktion ist abhängig von der Sicht des Betrachters Grady Booch: Object-oriented Analysis and Desgin with Applications, Addison-Wesley Longman, Menlo Park,

30 Grundprinzipien: Kapselung Ursprung: Geheimnisprinzip (information hiding) Verstecken von Daten und ihren Zusammenhängen im Inneren eines Bausteins Objektorientierung kapselt zusätzlich das Verhalten des Objekts Kapselung in der Architektur Fundamentales Grundprinzip für die Einteilung eines Systems in Komponenten mit definierten Verantwortlichkeiten und Schnittstellen Grundlage für viele Architekturstile Beispiel Schichtenarchitektur Grundlegende Funktionalität zur Implementierung eines Bausteins wird in der darunter liegenden Schicht gekapselt z. B. Socket-Funktionalität beim TCP/IP- Protokoll Kapselung versteckt die Details der Implementierung eines Objektes Grady Booch: Object-oriented Analysis and Desgin with Applications, Addison-Wesley Longman, Menlo Park,

31 Grundprinzipien: Modularität Modularität = Eigenschaft eines Systems, das in eine Menge von in sich geschlossenen und lose gekoppelten Modulen zerlegt wurde Elemente innerhalb eines Moduls sollten eng, Module untereinander lose gekoppelt sein Modularität ermöglicht Arbeitsteilung während des gesamten Entwicklungsprozesses Softwarearchitekt muss modulare Strukturen definieren und manipulieren Modulare Operatoren Aufteilung eines Entwurfs in Module Ersetzen eines modularen Entwurfs durch einen Alternativentwurf Hinzufügen eines neuen Moduls zu einem bestehenden System Entfernen eines Moduls aus einem System Invertieren der Hierarchie eines modularen Systems Portierung eines Moduls Modularität fasst Abstraktionen zu diskreten Einheiten zusammen Grady Booch: Object-oriented Analysis and Desgin with Applications, Addison-Wesley Longman, Menlo Park,

32 Grundprinzipien: Hierarchiebildung Arten von Hierarchien Enthalten-in- bzw. Besteht-aus-Hierarchien (Struktur) Ist-ein-Hierarchien (Generalisierung, z. B. Vererbung) Substitutionsprinzip bei Vererbungshierarchien Ein abstraktes Element sollte jederzeit durch eine seiner Spezialisierungen ersetzt werden können! Hierarchie in der Architektur Komponentenzentrierter Ansatz Strukturelle Hierarchie verschachtelter Komponenten Generalisierung und Spezialisierung ist vielseitig anwendbar auf Anforderungen, Architekturen, Verantwortlichkeiten von Bausteinen, Schnittstellen Abstraktionen bilden eine Hierarchie Grady Booch: Object-oriented Analysis and Desgin with Applications, Addison-Wesley Longman, Menlo Park,

33 Grundprinzipien: Konzeptuelle Integrität "I will contend that conceptual integrity is the most important consideration in system design." Konzeptuelle Integrität bedeutet Frederick Brooks die durchgängige Anwendung von Entwurfsentscheidungen im gesamten System und damit die Vermeidung von Speziallösungen bzw. Verwässerung der originalen Konzepte. Voraussetzung Trennung von Architekturdesign und Implementierung Ein Architekt bzw. kleines Architekturteam Folge: Erhöhung des semantischen Gehalts von Informationen Entwurfsentscheidungen (z. B. interne Kommunikationsmechanismen) gelten für das gesamte System Übergreifender Informationsgehalt System wird leichter verständlich 33

34 Kopplung Kopplung: Beziehungen unter den Bausteinen einer Softwarearchitektur Kopplung charakterisiert die Interaktionen der Bausteine Einfache Metrik: Anzahl der Beziehungen eines Bausteins zu anderen Bausteinen Arten der Kopplung am Beispiel zweier Klassen mit Zugriff auf gemeinsame Daten Gegenseitiger Zugriff auf die gemeinsamen Daten keine der Klassen kann ohne Betrachtung der anderen geändert werden Kommunikation über eine globale Datenstruktur weniger starke Kopplung, aber Änderungen der globalen Datenstruktur betreffen alle Klassen, die damit arbeiten Kommunikation über Methodenaufrufe und entsprechende Parameter Geringere Kopplung, meist nur lokale Änderungen notwendig Metrik zur Laufzeit Objekt hat hohe Kopplung zu einem anderen, wenn es dessen Methoden häufig aufruft Begriff kann auf alle Arten von Architekturbausteinen abgebildet werden 34

35 Prinzip der losen Kopplung Ziel: Komplexität von Strukturen gering halten Geringe Kopplung zwischen Bausteinen ermöglicht Verständnis eines Bausteins ohne viele andere Bausteine verstehen zu müssen Erhöhung der Änderbarkeit der Architektur lose Kopplung ermöglicht Änderungen oder Austausch eines Bausteins ohne nennenswerte Rückwirkungen auf die übrigen Bausteine Gesetz von Demeter Ein Systembaustein sollte nur eng verwandte Bausteine benutzen ("Sprich nicht mit Fremden") 35

36 Prinzip der hohen Kohäsion Kohäsion 1 : Abhängigkeiten innerhalb eines Systembausteins Köhäsion innerhalb eines Bausteins soll möglichst hoch sein Beispiel: Anzahl der Methodenaufrufe innerhalb einer Klasse Anzahl der Methodenaufrufe zwischen Klassen, die zusammen einen Baustein bilden lokale Änderbarkeit einzelner Systembausteine wird verbessert Wechselbeziehung zwischen Kopplung und Kohäsion Je höher die Kohäsion individueller Bausteine ist, desto geringer ist die Kopplung zwischen den Bausteinen Elemente mit hohem Kommunikationsbedarf (z. B. Datenaustausch) sollten daher in einem Architekturbaustein zusammengefasst werden Geringe Kohäsion führt zu starker Kopplung 1 lat. cohaerere zusammenhängen Hohe Kohäsion führt zu loser Kopplung 36

37 Prinzip des Entwurfs für Veränderung Idee: Architektonische Vorausplanung vorhersehbarer Änderungen Wahrscheinliche Änderungen Erhebung und Beachtung weiter gehender Anforderungen Unklarheiten in der Anforderungsspezifikation können auf weiter gehene Funktionalitätsanforderungen hindeuten Geplante Weiterentwicklungen Erfahrungen aus dem Entwurf ähnlicher Architekturen Umgang mit diesen Änderungen setzt Erfahrung des Architekten voraus! Unerwartete Änderungen Vorsicht! Generelle Vorausplanung ist problematisch, weiter gehender Entwurf kann Zeit und erhöhten Implementierungsaufwand bedeuten Nachteile hoch flexibler Architekturen: höherer Ressourcenverbrauch Lose Kopplung Entwurf für Veränderung Einsatz vorzugsweise an "Hot Spots" Stellen, wo schon oft Änderungen aufgetreten sind Stellen, wo viele verschiedene Aspekte einer Architektur zusammenkommen 37

38 Separation-of-Concerns-Prinzip Trennung verschiedener Aspekte eines Problems und separate Behandlung jedes dieser Teilprobleme Zerlegung eines Softwaresystems in eine Struktur von Systembausteinen Separation-of-Concerns-Prinzip unterstützt die Modularisierung Dekompositionskriterien Funktionalität oder Wiederverwendung Trennung von fachlichen und technischen Teilen Trennung der fachlichen Abstraktion von ihrer konkreten technischen Umsetzung Negativbeispiel: Steuerung für CNC-Maschinen Monolithische Software Keine Trennung zwischen Algorithmen für die Bewegungsführung, Kommunikation mit dem GUI, Bearbeitung der CNC-Programme,... Portierung auf geänderte Systemplattform nahezu unmöglich Arbeitsteilung bei der Portierung nicht möglich keine Wiederverwendung von Systemteilen möglich 38

39 Geheimnisprinzip (Information-Hiding-Prinzip) Fundamentales Prinzip zum Verstehen komplexer Systeme Zeige einem Klienten nur das, was er für seine Aufgabe benötigt Anwendung des Prinzips z. B. in der Modularisierung Kapselung von Entwurfsentscheidungen in einem Systembaustein Bekanntgabe durch wohl definierte Schnittstellen Konzept der Sichtbarkeit in Objekt- und Komponentenkonzepten (public vs. private) Data Hiding Umsetzung durch Objektorientierung, Datenbankschnittstellen und Abfragesprachen Konzepte / Beispiele zur Umsetzung Information Hiding mittels Facade (Fassade) Information Hiding durch Schichtenbildung 39

40 Information Hiding Beispiele Information Hiding mittels Facade Information Hiding durch Schichtenbildung Software-Architektur. Grundlagen - Konzepte - Praxis. Spektrum Akademischer Verlag, Heidelberg,

41 Abstraktionsprinzipien für Schnittstellen Explizite Schnittstellen Anhand eines Systembausteins soll direkt erkennbar sein, mit welchen anderen er kommuniziert Explizite Bekanntgabe von Schnittstellen Entwurf der Softwarearchitektur soll auf Basis der Schnittstellen erfolgen Trennung von Schnittstelle und Implementierung Beschreibung der Schnittstellen separat von der Implementierung Klient kann sich ohne Kenntnis der Implementierungsdetails auf die Schnittstelle verlassen Ermöglicht z. B. parallele Verwendung unterschiedlicher Versionen eines Systembausteins ohne Änderung des Klienten Liskov-Substitutions-Prinzip Bei Vererbungsabstraktionen sollen erbende Klassen von Klienten durch die Schnittstelle der vererbenden Klasse aufrufbar sein. Klient kann sich darauf verlassen, dass alle Objekte eines Typs (also auch ererbte) die gleiche Schnittstelle unterstützen Schnittstellen-Segregations-Prinzip Ein Klient sollte nie auf einer Schnittstelle basieren, die er nicht benutzt Aufteilen (segregieren) komplexer Schnittstellen, auf denen mehrere Klienttypen basieren, in mehrere einzelne Schnittstellen 41

42 Rückverfolgbarkeits- und Selbstdokumentationsprinzip Rückverfolgbarkeit (traceability) Zuordnung von Anforderungen zu Systembausteinen Zuordnung von Umsetzung architektonischer Strukturen im Code zu Entwurfsmodell, Architekturbeschreibung etc. Abbildbarkeit verschiedener Entwurfssichten aufeinander Annotationen im Code konsequente Verwendung der gleichen Bezeichnungen Selbstdokumentationsprinzip Jede Information über einen Systembaustein sollte Teil des Bausteins sein Generierung von API-Beschreibungen möglich (z. B. JavaDoc, Doxygen) Erleichtert die Rückverfolgbarkeit 42

43 Weitere Architekturprinzipien Bezug zu Anwendungsfällen Architektur soll sich im Entwurf an relevanten Anwendungsfällen orientieren Architektur schießt nicht über das angestrebte und gewünschte Ziel des Systems hinaus Vermeidung überflüssiger Komplexität Unnötig komplexe Architekturen sind meist fehleranfällig und werden nur unzureichend verstanden. Konsistenz Durchgängiger, einheitlicher Satz von Regeln bezüglich Namensgebung, Kommunikation der Systembausteine, Struktur der Schnittstellen, Aufbau der Dokumentation Konventionen statt Konfigurationen Sinnvolle Standardannahmen treffen Nur notwenige Anpassungen müssen konfiguriert werden 43

44 Architekturstile Architekturarten, die häufig angewendet werden Globale Strukturierungs- bzw. Organisationsprinzipien für Softwarearchitekten Vermischung von Architekturstilen auf einer Abstraktionsebene sollte vermieden werden Verwendung unterschiedlicher Stile auf unterschiedlichen Abstraktionsebenen ist unproblematisch, verletzt aber das Prinzip der konzeptionellen Integrität des Entwurfs Wichtige Architekturstile Schichten (Layers ) Verbindungen und Filter (Pipes and Filters) Objektorientierung Impliziter Aufruf (Implicit Invocation) 44

45 Schichten (Layers) Horizontale Schichten Jede Schicht repräsentiert eine bestimmte Abstraktionsebene Verwendung von Operationen der darunter liegenden Schicht Bietet der darüber liegenden Schicht komplexere Operationen an Strikte Schichtenarchitekturen Vorteile Jede Schicht greift nur auf Operationen der darunter liegenden Schicht zu Verschiedene Abstraktionsebenen Portierung beschränkt sich auf Portierung der untersten Schicht Betriebssicherheit und Schutz von Einbrüchen in das System, weil Überwachungsschichten leicht eingezogen werden können Nachteile Mehrbedarf an Rechenzeit Risiko bezüglich der Performance Bei strikter Schichtenarchitektur viele Indirektionen layer bridging 45

46 Verbindungen und Filter (Pipes and Filters) Beschreibung Zusammenarbeit von Bausteinen in Form eines Datenflussgraphen Jeder Baustein hat Ein- und Ausgänge, über die ein Datenstrom durch den Baustein fließt und verarbeitet wird Pipes Verbindungen zwischen den Bausteinen Einsatz und Vorteile Sinnvoll bei Verarbeitung von kontinuierlichen Datenströmen Filterbausteine arbeiten asynchron und voneinander unabhängig Einfache Verteilung auf mehrere Entwickler Umkonfigurierung und Wiederverwendung der Bausteine leicht möglich Nachteile Leistung durch Umkopieren und Transport aller Daten Wartbarkeit, weil geänderte Anforderungen mehrere Bausteine beeinflussen Zuverlässigkeit : gesamte Kette ist genauso schwach wie ihr schwächstes Glied 46

47 Beispiele: Compiler und Unix-Shell B. Anzeletti, W. Keller, R. Lewandowski, K. Messner: Vorlesung für große Informationssysteme, Technische Universität Wien, SS

48 Objektorientierung Zusammensetzung von Architekturen aus kooperierenden Objekten Objekte, die Daten kapseln Objekte, die als Manager und Controller agieren Komponenten verwalten ihre Daten und bündeln Verantwortung für Daten und Funktionalität Vorteile Trennung Implementierung Verwendung erleichtert Austauschbarkeit Wiederverwendbarkeit, etwa Klassenbibliotheken Nachteile Verwender müssen Objektidentität kennen Zerfaserung von Funktionalität auf viele Objekte 48

49 Impliziter Aufruf (Implicit Invocation) Bausteine versenden Ereignisse (events) Empfang und Bearbeitung durch ihnen unbekannte Bausteine Ereignisse sind asynchron, Ausführung empfangenden Baustein blockiert Sender des Ereignisses nicht Vorteile Nachteile Entkopplung von Bausteinen Wartbarkeit, Flexibilität Einsatz in verteiltem System möglich Overhead durch Kommunikationssystem Leistung Zusätzliche Strukturen zum Verständnis nötig (z. B. Protokolle) Beispiele Grafische Benutzeroberflächen (die Kontrollelemente wie Buttons, Slider etc. senden die Ereignisse) Eingebettete Systeme (Empfang interner und externer Ereignisse, Abarbeitung häufig in Echtzeit) 49

50 Architekturmuster Architekturstil = globales Strukturierungsprinzip für eine Softwarearchitektur Darüber hinaus: Querschnittsaspekte Nebenläufigkeit Persistenz Verteilung Betreffen die gesamte Architektur Sind unabhängig von der Wahl des Architekturstils Anwendung von Architekturmustern Architekturmuster betreffen technische Aspekte von Softwaresystemen Infrastrukturthemen Architekturmuster sind prinzipiell sprachneutral und plattformunabhängig. Konkrete Ausprägungen sind an ein bestimmtes OS oder eine Sprache gebunden, z. B. EJB oder.net. 50

51 Beispiel: Model View Controller Bei diesem Architekturmuster werden interaktive Applikationen aus drei Grundbausteinen zusammengesetzt. Die Kernfunktionalität und die Datenbasis werden im Modell (engl. model) zusammengefasst. Ansichten (engl. views) und Steuerungskomponenten (engl. controller) bilden die Benutzerschnittstelle. Dabei werden die Daten durch die Ansichten präsentiert und Eingaben durch die Steuerungskomponenten verarbeitet. Ein Notifikationsmechanismus ermöglicht die Konsistenz von Ansichten und Modell. 51

52 Heuristiken und Tipps für die Praxis (1) Heuristiken aus dem Projektumfeld Hinterfragen Sie Anforderungen! Betrachten Sie Use Cases! Nutzen Sie andere Systeme als Inspiration! Suchen Sie Feedback! Heuristiken für den Entwurf So einfach wie möglich! Bleiben Sie auf der richtigen Detailebene! Modellieren Sie angemessen komplex! Denken Sie in Verantwortlichkeiten! Nicht übergeneralisieren! Konzentrieren Sie sich auf die Schnittstellen! Entwerfen Sie so lokal wie möglich! 52

53 Heuristiken und Tipps für die Praxis (2) Heuristiken zur Beherrschung von Komplexität Teile und herrsche! Verstecken Sie Details! Kapseln Sie Risiken! Trennen Sie Funktionalität und Kontrolle! Trennen Sie Fachlogik und Infrastruktur! Heuristiken zur Arbeitsmethodik Beginnen Sie mit den schwierigsten Teilen! Verwenden Sie Prototypen! Werfen Sie Prototypen weg! Dokumentieren Sie Entscheidungen! 53

16 Architekturentwurf Einführung und Überblick

16 Architekturentwurf Einführung und Überblick Teil III: Software-Architekturentwurf 16 Architekturentwurf Einführung und Überblick 16.1 Software entwerfen Warum? Beim Arbeiten im Kleinen nicht oder nur ansatzweise (Detailentwurf) Größere Software

Mehr

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

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II Rational Unified Process (RUP) Informationswirtschaft II Rational Unified Process (RUP) Wolfgang H. Janko, Michael Hahsler und Stefan Koch Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe Das

Mehr

Informationswirtschaft II

Informationswirtschaft II Rational Unified Process (RUP) Informationswirtschaft II Wolfgang H. Janko, Michael Hahsler und Stefan Koch Seite 1 Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe

Mehr

Was ist Software-Architektur?

Was ist Software-Architektur? Was ist Software-Architektur? Stephan Schulze Martin Knobloch 28.04.2004 Seminar: Software-Architektur Humboldt Universität zu Berlin sschulze knobloch@informatik.hu-berlin.de Gliederung Begriffsbestimmung

Mehr

Übungsklausur vom 7. Dez. 2007

Übungsklausur vom 7. Dez. 2007 Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement

Mehr

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum

Mehr

6 Architektur-Mittel (WOMIT)

6 Architektur-Mittel (WOMIT) 6 Architektur-Mittel (WOMIT) Abb. 6-1: Positionierung des Kapitels im Ordnungsrahmen. Dieses Kapitel befasst sich mit der WOMIT-Dimension des architektonischen Ordnungsrahmens, indem es grundlegende Konzepte

Mehr

Some Software Engineering Principles

Some Software Engineering Principles David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1 Problemstellung Software Engineering Multi-Personen

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

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

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004 Use Cases Die Sicht des Nutzers Fortgeschrittenenpraktikum SS 2004 Gunar Fiedler Lehrstuhl für Technologie der Informationssysteme Kontakt: fiedler@is.informatik.uni-kiel.de Use Cases 2 Was ist ein Use

Mehr

17 Architekturentwurf Vorgehen und Dokumentation

17 Architekturentwurf Vorgehen und Dokumentation 17 Architekturentwurf Vorgehen und Dokumentation 17.1 Einbettung Aber Erster Schritt der Lösung Wenn Anforderungsspezifikation vorliegt Vorgabe für Codierung Hierarchische Verzahnung von Anforderungen

Mehr

Objektorientiertes Software-Engineering

Objektorientiertes Software-Engineering Objektorientiertes Software-Engineering Vorlesung VIII Inhalt der Vorlesung Wiederholung Vorlesung VII Factory Method Observer s Übung Vorstellung des (Gruppe Jukebox) Folie 2 Definiert ein Objekt zur

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Fragebogen ISONORM 9241/110-S

Fragebogen ISONORM 9241/110-S Fragebogen ISONORM 9241/110-S Beurteilung von Software auf Grundlage der Internationalen Ergonomie-Norm DIN EN ISO 9241-110 von Prof. Dr. Jochen Prümper www.seikumu.de Fragebogen ISONORM 9241/110-S Seite

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Architektur und Qualität. Tjard Köbberling

Architektur und Qualität. Tjard Köbberling Architektur und Qualität Tjard Köbberling Gliederung Überblick Architektur und Qualität? Architekturentwurf Anforderungsanalyse Strukturierung Architekturbeschreibungen - Sichten Fallbeispiel 2 Architektur

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Kapitel 2: Der Software-Entwicklungsprozess

Kapitel 2: Der Software-Entwicklungsprozess Wie konstruiert man Software? Kapitel 2: Der Software-Entwicklungsprozess SoPra 2008 Kap. 2: Der Software-Entwicklungsprozess (1/10) Der Software-Entwicklungs-Prozess Historisches 1960JJ adhoc Techniken

Mehr

Java Enterprise Architekturen Willkommen in der Realität

Java Enterprise Architekturen Willkommen in der Realität Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen

Mehr

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

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: Informationssystemanalyse Problemstellung 2 1 Problemstellung Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: große Software-Systeme werden im Schnitt ein Jahr zu spät

Mehr

Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur

Hochschule Darmstadt Fachbereich Informatik. Softwaretechnik II. 4.1 Darstellung der Architektur Hochschule Darmstadt Fachbereich Informatik Softwaretechnik II 4.1 Darstellung der Architektur Darstellung der Architektur Was macht ein Architekt? Viele Pläne! Endkunde Elektro Bauarbeiter Sanitär Softwaretechnik

Mehr

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

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

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

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski Die Phase Design Design Entwerfen der Benutzeroberfläche, des Bedienablaufs und der Softwarearchitektur Umsetzen des fachlichen Modells auf technische Möglichkeiten; Spezifikation der Systemkomponenten

Mehr

Use Cases. Use Cases

Use Cases. Use Cases Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben

Mehr

Software-Engineering

Software-Engineering FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 2: Grundbegriffe und Prinzipien FH Wedel Prof. Dr. Sebastian Iwanowski SWE2 Folie 2 Grundbegriffe

Mehr

Support-Tipp Mai 2010 - Release Management in Altium Designer

Support-Tipp Mai 2010 - Release Management in Altium Designer Support-Tipp Mai 2010 - Release Management in Altium Designer Mai 2010 Frage: Welche Aufgaben hat das Release Management und wie unterstützt Altium Designer diesen Prozess? Zusammenfassung: Das Glück eines

Mehr

Grundlagen Software Engineering

Grundlagen Software Engineering Grundlagen Software Engineering Rational Unified Process () GSE: Prof. Dr. Liggesmeyer, 1 Rational Unified Process () Software Entwicklungsprozess Anpassbares und erweiterbares Grundgerüst Sprache der

Mehr

Acceptor-Connector. Acceptor-Connector

Acceptor-Connector. Acceptor-Connector Acceptor-Connector Das Acceptor-Connector Pattern trennt den Verbindungsaufbau zwischen zwei Peer-Services und der Verarbeitung, welche bei bestehender Verbindung durchgeführt wird. Kontext Ein Netzwerksystem

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Neues Modul für individuelle Anlagen. Änderung bei den Postleitzahl-Mutationen

Neues Modul für individuelle Anlagen. Änderung bei den Postleitzahl-Mutationen NEWSLETTER APRIL 2015 Neues Modul für individuelle Anlagen Die LESS Informatik hat in Zusammenarbeit mit einem Kunden die Umsetzung des neuen Moduls 1e für die Anwendung von individuelle Anlagen in Angriff

Mehr

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen: Informationssystemanalyse Lebenszyklusmodelle 3 1 Aufgaben von Lebenszyklusmodellen Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen: Definition der Tätigkeiten im Entwicklungsprojekt Zusicherung

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de Agiles Design Dr.-Ing. Uwe Doetzkies Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de startupcamp berlin 15.3.2013 Regionalgruppe Berlin/Brandenburg Arbeitskreis Freiberufler

Mehr

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9 1 Allgemeine Beschreibung "Was war geplant, wo stehen Sie jetzt und wie könnte es noch werden?" Das sind die typischen Fragen, mit denen viele Unternehmer

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

Architekturmuster. Übung MSE, 04.11.2014

Architekturmuster. Übung MSE, 04.11.2014 Architekturmuster Übung MSE, 04.11.2014 Architekturmuster Schichtenarchitektur Kontext Dekomposition großer Systeme Probleme Abhängigkeit zwischen High- und Low-Level-Funktionalität Austauschbare Komponenten

Mehr

Microsoft SharePoint 2013 Designer

Microsoft SharePoint 2013 Designer Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

OOD. Objektorientiertes Design. Peter Coad und Edward Yourdon. Prentice Hall Verlag

OOD. Objektorientiertes Design. Peter Coad und Edward Yourdon. Prentice Hall Verlag OOD Objektorientiertes Design Peter Coad und Edward Yourdon Prentice Hall Verlag New York, London, Toronto, Sidney, Tokio, Singapur, München, Mexiko Vorwort 9 Vorwort der Übersetzer 11 Danksagungen 13

Mehr

Software Engineering

Software Engineering Literatur Gliederung Software Engineering Herbert Kuchen Universität Münster Di+Fr 14:15-15:45, M2 Wintersemester 2009/2010 1 Literatur Gliederung Basis-Literatur H. Balzert: Lehrbuch der Software-Technik,

Mehr

Probeklausur. Lenz Belzner. January 26, 2015. Lenz Belzner Probeklausur January 26, 2015 1 / 16

Probeklausur. Lenz Belzner. January 26, 2015. Lenz Belzner Probeklausur January 26, 2015 1 / 16 Probeklausur Lenz Belzner January 26, 2015 Lenz Belzner Probeklausur January 26, 2015 1 / 16 Definieren Sie Software Engineering in Abgrenzung zu Individual Programming. Ingenieursdisziplin professionelle

Mehr

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering andreas.holubek@arlanis.com arlanis Software AG, D-14467 Potsdam 2009, arlanis

Mehr

Der Schutz von Patientendaten

Der Schutz von Patientendaten Der Schutz von Patientendaten bei (vernetzten) Software-Medizinprodukten aus Herstellersicht 18.09.2014 Gerald Spyra, LL.M. Kanzlei Spyra Vorstellung meiner Person Gerald Spyra, LL.M. Rechtsanwalt Spezialisiert

Mehr

ZENITY - Die Software für Ihre Unternehmens-Releaseplanung

ZENITY - Die Software für Ihre Unternehmens-Releaseplanung ZENITY - Die Software für Ihre Unternehmens-Releaseplanung RELEASEPLANUNG HEUTE Heutige Anwendungen in in Grossunternehmen sind sind keine keine alleinstehenden alleinstehenden Insel-Applikationen Insel-Applikationen

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Inhalt Nachlese Aufgaben Literatur Software Engineering in der Praxis Praktische Übungen Inhalt Nachlese Aufgaben Literatur Marc Spisländer Dirk Wischermann Lehrstuhl für Software Engineering Friedrich-Alexander-Universität

Mehr

Einleitung: Frontend Backend

Einleitung: Frontend Backend Die Internetseite des LSW Deutschland e.v. hat ein neues Gesicht bekommen. Ab dem 01.01.2012 ist sie in Form eines Content Management Systems (CMS) im Netz. Einleitung: Die Grundlage für die Neuprogrammierung

Mehr

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M. Building Information Modeling Look Inside: desite modellorientiertes Arbeiten im Bauwesen. B.I.M. desite MD unterstützt Sie bei der täg lichen Arbeit mit Gebäudemodellen und ermöglicht den Zugang zu den

Mehr

Software-Engineering

Software-Engineering SWE5 Slide 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 5: Systementwurf SWE5 Slide 2 Systemanalyse vs. Softwareentwurf Systemanalyse beschreibt das System der Anwendung, für das eine Aufgabe

Mehr

SEQUENZDIAGRAMM. Christoph Süsens

SEQUENZDIAGRAMM. Christoph Süsens SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von

Mehr

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003 Page 1 of 8 SMTP Konfiguration von Exchange 2003 Kategorie : Exchange Server 2003 Veröffentlicht von webmaster am 25.02.2005 SMTP steht für Simple Mail Transport Protocol, welches ein Protokoll ist, womit

Mehr

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

Konsolidierung und Neuimplementierung von VIT. Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt Konsolidierung und Neuimplementierung von VIT Aufgabenbeschreibung für das Software Engineering Praktikum an der TU Darmstadt Inhaltsverzeichnis 1 Was ist der Kontext?... 1 2 VIT: Ein sehr erfolgreiches

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress BPM im Kontext von Unternehmensarchitekturen Konstantin Gress Agenda 1 Worum geht s BPM, EA und SOA im Überblick 2 Link zwischen EA und BPM 3 Link zwischen SOA und BPM 4 Wie spielt das zusammen? 5 Q&A

Mehr

Inhaltsverzeichnis: Definitionen Informationssysteme als Kommunikationssystem Problemlösende Perspektiven Allgemeine System Annäherung Fazit

Inhaltsverzeichnis: Definitionen Informationssysteme als Kommunikationssystem Problemlösende Perspektiven Allgemeine System Annäherung Fazit Informationssysteme Inhaltsverzeichnis: Definitionen Informationssysteme als Kommunikationssystem Problemlösende Perspektiven Allgemeine System Annäherung Fazit Definitionen: Informationen Informationssysteme

Mehr

Local Control Network Technische Dokumentation

Local Control Network Technische Dokumentation Steuerung von Hifi-Anlagen mit der LCN-GVS Häufig wird der Wunsch geäußert, eine Hi-Fi-Anlage in die Steuerung der LCN-GVS einzubinden. Auch das ist realisierbar. Für die hier gezeigte Lösung müssen wenige

Mehr

Ein wichtiges Konzept der Software-Architektur

Ein wichtiges Konzept der Software-Architektur Ein wichtiges Konzept der Software-Architektur Dr. Peer Kröger, Arthur Zimek Ludwig-Maximilians-Universität München, Institut für Informatik, LFE Datenbanksysteme Programmierpraktikum Wintersemester 2007/08

Mehr

Software-Architektur. Spektrum k_/takademischht VERLAG

Software-Architektur. Spektrum k_/takademischht VERLAG Oliver Vogel / Ingo Arnold /Arif Chughtai / Edmund Ihler/Uwe Mehlig/Thomas Neumann/ Markus Völter/Uwe Zdun Software-Architektur Grundlagen - Konzepte - Praxis ELSEVIER SPEKTRUM AKADEMISCHER VERLAG Spektrum

Mehr

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P.

Mehr

extreme Programming (XP) Hermann Götz Sergij Paholchak Agenda Was ist XP? Grundprinzipien Der Entwicklungsprozess Die Projektplanung Praktiken Vorteile und Nachteile Wann macht XP Sinn für ein Projekt?

Mehr

Softwareanforderungsanalyse

Softwareanforderungsanalyse Softwareanforderungsanalyse Evolution von Anforderungen Burkhardt Renz Institut für SoftwareArchitektur der Technischen Hochschule Mittelhessen Wintersemester 2015/16 Evolution von Anforderungen Anforderungen

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen

Mehr

Reengineering und Refactoring von Softwarearchitekturen

Reengineering und Refactoring von Softwarearchitekturen Methodische und Praktische Grundlagen der Informatik 3 Reengineering und Refactoring von Softwarearchitekturen Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik WS 2008/2009 Lernziele?

Mehr

Einführung und Motivation

Einführung und Motivation Einführung und Motivation iks-thementag: Requirements Engineering 16.11.2010 Autor Carsten Schädel Motto Definiere oder Du wirst definiert. Seite 3 / 51 These Im Privatleben definiert jeder (seine) Anforderungen.

Mehr

FUTURE NETWORK 20.11.2013 REQUIREMENTS ENGINEERING

FUTURE NETWORK 20.11.2013 REQUIREMENTS ENGINEERING 18/11/13 Requirements Engineering 21 November 2013 DIE GRUNDFRAGEN Wie erhält der Kunde den größten Nutzen? Wie kann der Kunde am besten spezifizieren, was er haben will? Welchen Detailierungsgrad braucht

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage. Integration mit Die Integration der AristaFlow Business Process Management Suite (BPM) mit dem Enterprise Information Management System FILERO (EIMS) bildet die optimale Basis für flexible Optimierung

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Meitner, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1 / 16 Objektorientiertes Design Matthias Meitner Marc Spisländer Lehrstuhl für

Mehr

Design Patterns 2. Model-View-Controller in der Praxis

Design Patterns 2. Model-View-Controller in der Praxis Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

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

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

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

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich. Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Softwaretechnik I Wintersemester 2015 / 2016 www.ias.uni-stuttgart.de/st1 st1@ias.uni-stuttgart.de

Mehr

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert. Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt

Mehr

Generatives Programmieren

Generatives Programmieren Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare

Mehr

16.4 Wiederverwendung von COTS-Produkten

16.4 Wiederverwendung von COTS-Produkten 16.4 Wiederverwendung von COTS-Produkten COTS = commercial of the shelf im Handel erhältliche Software-Produkte Anpassung für Kunden ohne Änderung am Quellcode Quellcode in der Regel nicht einsehbar (Ausnahme

Mehr

Requirements Engineering I

Requirements Engineering I Norbert Seyff Requirements Engineering I UML Unified Modeling Language! 2006-2012 Martin Glinz und Norbert Seyff. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Gernot Starke. Effektive Softwarearchitekturen. Ein praktischer Leitfaden ISBN: 978-3-446-42728-0. Weitere Informationen oder Bestellungen unter

Gernot Starke. Effektive Softwarearchitekturen. Ein praktischer Leitfaden ISBN: 978-3-446-42728-0. Weitere Informationen oder Bestellungen unter Gernot Starke Effektive Softwarearchitekturen Ein praktischer Leitfaden ISBN: 978-3-446-42728-0 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42728-0 sowie im Buchhandel.

Mehr

TeamSphere. Die Geo-Wissensdatenbank. Entwickelt von

TeamSphere. Die Geo-Wissensdatenbank. Entwickelt von Entwickelt von Erhöhung der Beratungsqualität Die zentrale Verwaltung des Wissens aller Mitarbeiter und der schnelle Zugriff während des Kundengespräches ermöglicht eine neue Dimension in der Beratung.

Mehr

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1 REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1 QUALITÄT FÜR SIE Qualität zeigt sich in Ergebnissen und Erfolgen. Sie hängt von der jeweiligen Problemstellung ab, deshalb sehen wir

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Softwaretechnik. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12 WS 2011/12 Inhalt Projektvorstellung Übung 1 Wiederholung zusammengefasst Planungsphase Lernziele Ziele und Inhalt der Planungsphase Anlass und Aufgabestellung(Was ist dabei erförderlich) Requirement Engineering

Mehr

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08 Security Patterns Benny Clauss Sicherheit in der Softwareentwicklung WS 07/08 Gliederung Pattern Was ist das? Warum Security Pattern? Security Pattern Aufbau Security Pattern Alternative Beispiel Patternsysteme

Mehr

Software-Evolution im Staged Lifecycle Model

Software-Evolution im Staged Lifecycle Model Unterstützung evolutionärer Softwareentwicklung durch Merkmalmodelle und Traceability-Links Matthias Riebisch Technische Universität Ilmenau, matthias.riebisch@tu-ilmenau.de Arbeitsgruppe Software-Wartung

Mehr

Data Mining-Projekte

Data Mining-Projekte Data Mining-Projekte Data Mining-Projekte Data Mining stellt normalerweise kein ei nmaliges Projekt dar, welches Erkenntnisse liefert, die dann nur einmal verwendet werden, sondern es soll gewöhnlich ein

Mehr

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar: KLIPS 2.0 Dozent: Prof. Dr. Thaller Referent:

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr