Prof. Dr.-Ing. Dagmar Meyer Software Engineering 3 ARCHITEKTURENTWURF
|
|
- Henriette Langenberg
- vor 8 Jahren
- Abrufe
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
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
MehrKlassenentwurf. 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
MehrDesign 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
MehrObjektorientierter 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
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrSoftwaretechnik (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
MehrInformationswirtschaft 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
MehrInformationswirtschaft 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
MehrWas 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 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement
MehrCode 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
Mehr6 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
MehrSome 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
MehrFachdidaktik 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,
MehrDiplomarbeit. 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
MehrUse 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
Mehr17 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
MehrObjektorientiertes 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
MehrSoftwareentwicklungspraktikum Sommersemester 2007. Grobentwurf
Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig
MehrFragebogen 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
MehrAutorisierung. 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
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
MehrSharePoint 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
MehrArchitektur 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
Mehr09.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)
MehrVorlesung 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)
MehrKapitel 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
MehrJava 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
MehrInformationssystemanalyse 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
MehrHochschule 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
MehrDr. 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??
MehrSystemanalyse 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
MehrUse 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
MehrSoftware-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
MehrSupport-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
MehrGrundlagen 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
MehrAcceptor-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
MehrUnified 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
MehrSEP 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
MehrObjektorientierte 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
MehrNeues 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
MehrInformationssystemanalyse 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
MehrSoftware 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
MehrAgiles 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
Mehrpro4controlling - 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
MehrSDD 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
MehrArchitekturmuster. Ü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
MehrMicrosoft 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
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrAgile 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
MehrOOD. 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
MehrSoftware 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,
MehrProbeklausur. 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
Mehrarlanis 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
MehrDer 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
MehrZENITY - 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
MehrSoftware 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
MehrEinleitung: 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
MehrLook 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
MehrSoftware-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
MehrSEQUENZDIAGRAMM. 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
MehrMSXFORUM - 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
MehrKonsolidierung 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
MehrFassade. 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
MehrBPM 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
MehrInhaltsverzeichnis: 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
MehrLocal 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
MehrEin 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
MehrSoftware-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
MehrModellierung 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.
Mehrextreme 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?
MehrSoftwareanforderungsanalyse
Softwareanforderungsanalyse Evolution von Anforderungen Burkhardt Renz Institut für SoftwareArchitektur der Technischen Hochschule Mittelhessen Wintersemester 2015/16 Evolution von Anforderungen Anforderungen
MehrEine 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
MehrReengineering 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?
MehrEinfü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.
MehrFUTURE 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
MehrWorkflow, 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
MehrIntegration 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
MehrDaniel 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
MehrSoftware 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
MehrDesign 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
MehrSoftware 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)
MehrEin 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++,
MehrSoftware 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
MehrUniversitä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
MehrDas 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
MehrGeneratives Programmieren
Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare
Mehr16.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
MehrRequirements 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
MehrEINFÜ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
MehrGernot 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.
MehrTeamSphere. 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.
MehrREQUIREMENTS 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
MehrDrei-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
MehrSoftwaretechnik. 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
MehrSecurity 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
MehrSoftware-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
MehrData 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
MehrProjektmodell 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:
Mehr1 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