5. Design: Architektur-Grundlagen Softwaretechnik (CNAM) Wintersemester 2011 / 2012 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Größe: px
Ab Seite anzeigen:

Download "5. Design: Architektur-Grundlagen Softwaretechnik (CNAM) Wintersemester 2011 / 2012 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik"

Transkript

1 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM) Wintersemester 2011 / 2012 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

2 Einordnung in den gesamten Kurs 1. Einführung 2. Analyse: Anforderungen und Anwendungsfälle 3. Analyse: Datenmodell 4. Analyse: Dialoge 5. Design: Architektur-Grundlagen 6. Design: Referenzarchitektur betriebliche Informationssysteme 7. Design: Querschnittsthemen und Muster 8. Programmierung 9. Test, Einführung, Qualitätsmanagement 10. Projektmanagement 11. Vorgehensmodelle 2 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

3 Agenda Motivation Architektur-Sichten Software-Kategorien Komponenten & Schnittstellen Regeln für den Komponentenschnitt Spezifikation von Schnittstellen Literatur, Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

4 Design: Die Königsdisziplin des Software Engineering Analyse WAS? Design WIE? 4 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

5 Architektur: Verteidigen Quelle: 5 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

6 Architektur: Beeindrucken Quelle: 6 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

7 Architektur: Verkehrsfluss Quelle: 7 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

8 Architektur: Erweitern Quelle: 8 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

9 Architektur: Mobilität Quelle: 9 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

10 Architektur: Grundriss 10 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

11 Architektur: Aufriss 11 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

12 Architektur: Elektriker-Sicht 12 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

13 Architektur: Sanitär-Installateur-Sicht 13 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

14 Softwaresysteme gehören zu den komplexesten Dingen, die Menschen je gemacht haben 14 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

15 und brauchen daher eine gute Architektur Wo ist hier die Architektur? Übersicht Quelle: Erich Gamma, "100 OO Frameworks, Pitfalls and Lessons Learned", Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

16 Übersicht Wichtigste Aufgaben der Design-Phase Fachliches (Anwendungs-)Design Zerlegung (Dekomposition) des Systems in Komponenten (z.b. in Vertragsverwaltung, Kundenverwaltung ) Festlegung der Schnittstellen (Operationen) Technisches Design (parallel zur Analysephase durchführbar) Festlegung der technischen Infrastruktur (GUI-Toolkit, Datenbanksystem, App. Server, Frameworks, Hardware, ) Festlegung der Entwicklungsumgebung (SEU) (Programmiersprache, Umgebung, Build-Tool, Bugtracker, ) Festlegung der Grobstruktur des Systems (Schichten, Tiers, Standard-Architektur, ) Festlegung der (Programmier-)richtlinien (Coding Conventions, Verzeichnisstruktur, Nutzungskonzepte für Tools, ) 16 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

17 Agenda Motivation Architektur-Sichten Software-Kategorien Komponenten & Schnittstellen Regeln für den Komponentenschnitt Spezifikation von Schnittstellen Literatur, Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

18 Architektur- Sichten A-Architektur (fachliche Anwendungsarchitektur) frei von technischen, produktbezogenen Sachzwängen wird für jedes Projekt neu entwickelt strukturiert die Software aus der Sicht der Anwendung enthält fachliche Klassen wie Mitarbeiter oder Konto. T-Architektur (Technikarchitektur) verbindet A- und TI- Architektur; beschreibt die virtuelle Maschine, auf der die mit der A-Architektur entworfene Software läuft. TI-Architektur (Architektur der technischen Infrastruktur) beschreibt die physischen Geräte (Rechner, Netzleitung, etc.), die darauf installierte Systemsoftware (Betriebssystem, Application-Server, etc.), das Zusammenspiel von Hardware und Systemsoftware sowie die verwendeten Programmiersprachen. 18 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

19 Beispiel-Projekt für Logistik-Dienstleister Kunde: großer Logistik-Dienstleister Projekt: Auftragsmanagement Volumen Stufe 1: > 30 BJ Zeit: April 2003 Januar Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

20 Beispiel für A-Architektur Master Applikation Informationsanforderung Benutzerverwaltung Frontend Internes Informationsservice und Clearing Portal Informationsservice und Clearing Benutzerverwaltung Stammdatenverwaltung Clients ESI-Frontend Benutzerverwaltung Stammdatenverwaltung SA- Frontend SA- Batch- Scanner SA- Online- Scanner NVE- Drucker NVE- Drucker NVE- Drucker Backend Auftragsverwaltung Produktionsauftragsverwaltung Annahme/Importer Auftragsüberwachung ESi-Backend SA-Backend Konvertierung Disposition Auftragsüberwachung T&T-Verwaltung Auftragsverwalter Auftragsabrechnung Disposition Nummerverwaltung Inform.service u. Clearing Auftragsverwalter Stammdatenverwaltung Informationsservice und Clearing Nummernverwaltung Stammdatenverwaltung Auftragsverwaltung Produktion Entgeltsicherung Tracking & Tracing Querschnitt Benutzerverwaltung 20 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

21 Beispiel für T-Architektur Clients nutzen Services zur Kommunikation mit den Applikationen Die publizierten und genutzten Services werden mit Hilfe von Adaptern und Proxies von den Use-Cases entkoppelt Strikte Trennung von fachlichen und technischen Programmteilen Anwendungskern kann wiederverwendet werden (z.b. im Offline-Client) 21 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

22 Beispiel für TI-Architektur PC Web-Browser Java-Applet IDMS Nachbarsysteme z/os USS CICS/TSO http IBM-Webserver Bridge (GWAPI) EXCI Anwendungskern AKS-Shell CICS Nachbarsysteme CICS-DPL CICS/UNIX Nachbarsysteme TCP/IP MQSeries Nachbarsysteme DB2 22 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

23 Entwicklung der Architektur-Sichten im Projekt-Ablauf A-Architektur T-Architektur TI-Architektur Referenzarchitektur A-Architektur grob Anforderungen Teilsysteme Nachbarsysteme Spezifikation Anwendungsfälle Entitätenmodell Dialogspezifikation etc. Schichten Komponenten Klassen/Module Auswahl einer geeigneten Technologie logische Rechner, Netze, Trägersysteme technische Produkte Teilsysteme, Komponenten, Schnittstellen, Klassen/Module Pakete, DLLs, Programmiersprachendateien Pakete, DLLs, Programmiersprachendateien Programmierung von Basiskomponenten (0/T-Software) Zeit Programmierung der Anwendung 23 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

24 Agenda Motivation Architektur-Sichten Software-Kategorien Komponenten & Schnittstellen Regeln für den Komponentenschnitt Spezifikation von Schnittstellen Literatur, Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

25 Idee der Softwarekategorien Software, die sich unterschiedlich schnell ändert, wird in unterschiedliche Module aufgeteilt. David Parnas, Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

26 Beispiel Gehaltssoftware IBM AS/400 Fachliche Änderungen Neues Entwicklungspfadeund Entlohnungsmodell technische Änderungen Neue CORBA-Version Neue Beitragssätze zur Sozialvericherung 26 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

27 Softwarekategorien: Trenne Zuständigkeiten Kategorien A-Software T-Software 0-Software AT-Software R-Software C-Software Kombinationen A + 0 = A T + 0 = T A + T = AT Das heißt bestimmt durch die fachliche Anwendung; unabhängig von Technik; Meist der größte Teil des Systems; Beispiel: Mitarbeiter, Buchung unabhängig von der fachlichen Anwendung; wiederverwendbar bei Einsatz derselben technischen Komponente; Beispiel: Zugriffsschicht auf Datenbank unabhängig von Anwendung und Technik; ideal wiederverwendbar; Beispiel: Klassenbibliothek für Strings und Behälter befasst sich mit Technik und Anwendung; schwer zu warten; widersetzt sich Änderungen; Wiederverwendung = 6er im Lotto! reine Transformation; Beispiel: Bildschirmformat in XML Konfiguration: Bringt die verschiedenen Kategorien zusammen (main) Quelle: J. Siedersleben: Moderne Softwarearchitektur 27 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

28 Software-Kategorien als Maß für Softwarequalität Anteil von AT-Software Wiederverwendbarkeit der technischen Komponenten Wartbarkeit Fehlerfreiheit Stabile Komponenten... Der Anteil an AT-Software ist antiproportional zu der Qualität eines Software- Systems! 28 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

29 Agenda Motivation Architektur-Sichten Software-Kategorien Komponenten & & Schnittstellen Regeln für den Komponentenschnitt Spezifikation von Schnittstellen Literatur, Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

30 Komponenten-Orientierung am Beispiel Auto Außensicht (Schnittstelle) des Fahrers: möglichst einfach Innensicht: komplex Außensicht (Schnittstelle) der Werkstatt: möglichst einfach 30 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

31 Komponenten-Orientierung in der Software Beispiel: Berechtigungskomponente Außensicht (Nutzungssicht): operative Schnittstelle des Anwendungsprogrammierers (möglichst einfach) operative Schnittstelle B Berechtigungskomponente Berechtigungskern Admin- Schnittstelle A Berechtigung GUI Außensicht (Nutzungssicht): Schnittstelle des Administrators (möglichst einfach) R S RACF- Adapter DB-Zugriff R JDBC RACF Oracle Innensicht: komplex 31 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

32 UML-Notation Schnittstelle ist Stereotyp von Klasse. Enthält nur Operationen, keine Attribute Alternative Darstellung der Schnittstelle als Ball ( Lollypop ) Angebotene Schnittstellen Komponente als Stereotyp von Klasse mit Komponentensymbol cmp Komponenten & Schnittstellen «interface» Interface Interface ProvidedInterface1 ProvidedInterface2 Angeforderte Schnittstelle (Socket- Symbol, neu in UML 2) Class Class Component RequiredInterface 32 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

33 Was ist eine Komponente Definition Komponente: 6 Merkmale Eine Komponente Johannes Siedersleben definiert ihre angebotenen Dienste. Dazu gehört insbesondere die genaue Semantik der Schnittstellen. definiert die Abhängigkeiten von angeforderten Diensten anderer Komponenten. versteckt die Implementierung und kann daher durch eine andere Komponente ersetzt werden, die dieselbe Schnittstelle exportiert. ist geeignet als Einheit der Wiederverwendung. kann andere Komponenten enthalten. ist neben der Schnittstelle die wesentliche Einheit des Entwurfs, der Implementierung und der Planung. Komponente k t1 t2 k exportiert (implementiert) t1 und t2 Austauschbare Implementierung von k K Impl s1 k importiert (benutzt) s1 und s2 s2 33 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

34 Sichten auf eine Komponente Nutzer (Anwendungsentwickler Client oder Nachbarkomponente): operative Außensicht Komponente Entwickler (Anwendungsentwickler Komponente): Innensicht Integrator: Integrationssicht (technische Konfiguration) Administrator: Administrationssicht (fachliche Konfiguration) Betreiber (Rechenzentrum): Außensicht Betrieb 34 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

35 Application components Außensicht (Anwendungsentwickler Client oder Nachbarkomponente) gets reference to OrderingFactory OrderingFactory Ordering Client Komponente: GUI, Nachbar-Komponente, Test-Treiber <<uses>> <<uses>> Ordering interface OrderingFactory { Ordering getorderingusecase(); } interface Ordering { OrderRecord placeorder( String customerid, String articleid); } Außensicht: So einfach und stabil wie möglich 35 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

36 Application components Innensicht (Anwendungsentwickler der Komponente) Innensicht: die Komponente implementieren Ordering OrderManager public interface OrderManager { Order neworder (Customer customer Article article); } OrderingFactory Ordering FactoryImpl Order public interface Order { String getid(); } Ordering OrderingImpl <<creates>> CustomerManager Customer public interface CustomerManager { Customer newcustomer (String name, String address); Customer findcustomerbyid (String id); } public interface Customer { String getname(); } 36 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

37 Application components Integrationssicht OrderingFactory orderingfactory = getorderingfactory(); Ordering orderingusecase = orderingfactory.getorderingusecase(): ClientComponent c = new ClientComponent(orderingUseCase); Entscheidung für eine konkrete Implementierung und Zusammenbringen von Schnittstelle und Implementierung <<creates>> <<creates>> OrderingFactory OrderingFactory Client- Komponente Ordering Komponente SAP Adapter Ordering Ordering 37 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

38 Administrationssicht settaxvalues, configureprices, configurereductions, OrderingFactory Ordering Komponente Administration Ordering 38 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

39 Betriebssicht Komponente hoch- und herunterfahren, Gesundheitszustand abfragen OrderingFactory Ordering Komponente SystemsManagement Systems Management (z.b. Tivoli) Ordering 39 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

40 Rückblick Grundlagen der Programmierung I Schnittstellen (Interfaces) beschreiben Eigenschaften von Komponenten aus Sicht der Benutzer Patient Katze Haustier class Katze implements Patient, Haustier { } Quelle: Roger King 40 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

41 Analogie Mensch Jeder Mensch hat viele Eigenschaften. Aber für bestimmte Personengruppen sind nur bestimmte Eigenschaften wichtig: Verkehrspolizist: Führerschein Arbeitgeber: Lebenslauf, Aufgaben, Einkommen Bibliothek: Leihausweis Familie: jede Menge anderer Eigenschaften Eine Klasse, zum Beispiel Customer, kann viele Eigenschaften haben. Aber für bestimmte Collaborations sind nur bestimmte Eigenschaften wichtig: Kundenverwaltung: fachliche Attribute und Funktionen SortedSet: Comparable Client-Server Kommunikation: Serializable 41 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

42 Definition Schnittstelle und Operation Eine Schnittstelle (Interface) fasst Operationen zusammen. Sie wird spezifiziert durch: (1) Einen eindeutigen Namen, (2) Die Menge der zugehörigen Operationen (3) Ein Schnittstellen-Protokoll im Sinne von Reihenfolgen und Restriktionen beim Aufruf der Operationen. Operationen (Operations) beschreiben das Verhalten von Komponenten. Sie werden spezifiziert durch: (1) Signatur: Name der Operation, Parameter und Rückgabewerte und deren Typen, Ausnahmen (2) Semantik: Verhalten der Operation (3) Nichtfunktionale Eigenschaften: z.b. Performanz, Verfügbarkeit, Kosten etc. 42 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

43 Komponenten und Schnittstellen Verschiedene Sichten / Schnittstellen für unterschiedliche Nutzer Entwickler Admin-Client des Admin-Clients Entwickler Operational interface B Authorization kernel administration interface A Authorization GUI A-GUI Anwendungsprogrammierer (viele) R' S Administrator RACF-Adapter DB Access RACF-Experte R DB-Experte RACF Datenbank 43 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

44 Wer definiert Schnittstellen? Konvention für diese Vorlesung: Verwendung des Socket-Symbols nur für angeforderte Schnittstellen, die von der Komponente selbst definiert und exportiert werden angebotene Schnittstelle Nutzer z.b. Oracle Call Interface S Anbieter Standard-Schnittstelle z.b. JDBC Nutzer S Anbieter Nutzer Call-back SS, z.b. Observer z.b. SAP Adapter angeforderte Schnittstelle S Anbieter angeforderte Schnittstelle angebotene Schnittstelle Nutzer S Adapter S Anbieter 44 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

45 Beispiel: Observer Muster addobserver, deleteobserver, <<uses>> Nutzer (Observer) <<implements>> Observable Anbieter (Observable) Observer Update (call-back) Prinzip Inversion of Control (Umkehr der Abhängigkeit) Der Anbieter (Observable) exportiert sowohl die angebotene als auch das angeforderte Schnittstelle Obwohl Aufrufe in beide Richtungen erfolgen, ist die Abhängigkeit unidirektional und damit zyklenfrei (Observer Observable) 45 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

46 Komponenten und Schnittstellen Angeforderte Schnittstellen: Komponenten entkoppeln Konfiguration t1 k s1 a1 s1 h1 und das h1 t2 s2 a2 s2 h2 Das alles gehört k Komponente k definiert die erwarteten Dienste mit Hilfe von Schnittstellen s1 und s2 Diese Schnittstellen, auch angeforderte Schnittstellen genannt, gehören der importierenden Komponente Die Dienstanbieter-Komponenten h1, h2 exportieren die Schnittstellen s1 bzw. s2, welche i.d.r. nicht identisch zu s1 und s2 sind Adapter a1, a2 bilden die angeforderten Schnittstellen auf die konkreten Schnittstellen von h1, h2 ab. Das Komponenten-Binding erfolgt über die Konfiguration und das h2 46 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

47 Agenda Motivation Architektur-Sichten Software-Kategorien Komponenten & Schnittstellen Regeln Regeln für den für den Komponentenschnitt Spezifikation von Schnittstellen Literatur, Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

48 Regel 1: Zusammengehörige Fachlichkeit Komponenten sollen zusammengehörige Fachlichkeit zusammenfassen Kriterien: Geschäftslogik für unterschiedliche (Haupt-)Geschäftsprozesse soll getrennt werden Geschäftslogik für unterschiedliche (Haupt-)Geschäftsobjekte soll getrennt werden, insbesondere sollen Stamm- von Bewegungsdaten getrennt werden ( Partitionierung des Datenmodells) Geschäftslogik, die sich unterschiedlich häufig ändert, soll getrennt werden Beispiele: Hauptbuchhaltung, Nebenbuchhaltung Kundenverwaltung, Auftragsverwaltung Vertrieb, Produktion Gegenbeispiele: Host-Anwendungen, Java-Anwendungen 48 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

49 Regel 2: Kategorienreine Komponenten Komponenten sollen eindeutig einer Software-Kategorie zugeordnet werden können: A-Komponenten: implementieren nur Fachlichkeit T-Komponenten: stellen technische Dienste bereit Möglichst keine AT-Software auf Komponentenebene Beispiele A-Komponenten: Kundenverwaltung Buchhaltung Auftragsverwaltung Beispiele T-Komponenten: Datenbank O/R Mapper Middleware 49 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

50 Regel 3: Datenabstraktion Der Zugriff auf Anwendungsdaten soll ausschließlich über Komponentenschnittstellen erfolgen. Schreibende Zugriffe über create- / modify-methoden Lesende Zugriffe über find-methoden Direktzugriff auf Datenbank nur in Ausnahmefällen (Performance) und nur für lesende Zugriffe erlaubt Auftragsverwaltung Kundenverwaltung Kunden-DB 50 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

51 Regel 4: Enger Zusammenhalt, geringe Kopplung Komponenten sollen so geschnitten sein, dass sie intern einen engen Zusammenhang haben und untereinander gering gekoppelt sind. 51 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

52 Regel 5: Azyklische Abhängigkeiten Komponenten sollen so geschnitten sein, dass sie keine zyklischen Abhängigkeiten haben d.h. Abhängigkeitsgraph = DAG (Directed Acyclic Graph) 52 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

53 Regel 6: Handhabbare Komponentengröße Komponenten sollen eine handhabbare Größe haben Weder 100 Klassen noch 1 Klasse, weder noch 10 Zeilen Code 53 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

54 Zuordnung der Regeln zu Qualitätszielen nach ISO/IEC 9126 R1: zusammengehörige Fachlichkeit R2: kategorienrein R3: Datenabstraktion R4: enger Zusammenhalt, geringe Kopplung Angemessenheit (Funktionalität) Benutzbarkeit Änderbarkeit, Austauschbarkeit R5: zyklenfrei R6: handhabbare Größe 54 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

55 Agenda Motivation Architektur-Sichten Software-Kategorien Komponenten & Schnittstellen Regeln für den Komponentenschnitt Spezifikation von von Schnittstellen Literatur, Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

56 Spezifikation von Schnittstellen Schnittstelle Name public interface OrderManager { Schnittstellenname Operationen Signatur Semantik } Rückgabetyp Operationsname Eingabeparameter und -typ Order placeorder (Customer customer, Article article) throws NotAvailableException; Prosa, Vorbedingungen, Nachbedingungen, etc. Ausnahme Nicht-funktionale Eigenschaften Prosa Protokoll Prosa, Sequenzdiagramme etc. 56 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

57 Vorbedingungen und Nachbedingungen Vorbedingungen (pre-conditions) Bedingungen, die vor Ausführung der Operation erfüllt sein müssen, z.b. Eigenschaften der Parameter muss der Nutzer der Operation zusichern der Anbieter darf die Arbeit einstellen, wenn die Vorbedingung verletzt ist (Zusätzliche Prüfung erhöht die Sicherheit: bei Verletzung Abbruch mit Ausnahme) Beispiel: Artikel muss verfügbar sein, wenn er bestellt wird Nachbedingungen (post-conditions) Bedingungen, die nach Ausführung der Operation erfüllt sein müssen, z.b. Eigenschaften des Ergebnisses Muss der Anbieter der Operation zusichern Nutzer der Operation kann davon ausgehen (Zusätzliche Prüfung erhöht die Sicherheit: bei Verletzung Abbruch mit Ausnahme) Beispiel: Nach erfolgreicher Bestellung ist Rechnung erzeugt 57 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

58 Agenda Motivation Architektur-Sichten Software-Kategorien Komponenten & Schnittstellen Regeln für den Komponentenschnitt Spezifikation von Schnittstellen Literatur, Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

59 Literatur Johannes Siedersleben: Moderne Softwarearchitektur. dpunkt- Verlag 2004 Johannes Siederlseben (Hrsg.): Quasar: Die sd&m Standardarchitektur (Download von meiner Hompage) Martin Haft, Bernhard Humm, Johannes Siedersleben: The Architect s Dilemma Will Reference Architectures Help? (Download von meiner Hompage) 59 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

60 Kontrollfragen Was sind die wichtigsten Aufgaben der Disziplin Design? Welche Architektursichten unterscheiden wir? Was bedeuten die einzelnen Sichten? Wie werden die einzelnen Sichten im Projektablauf entworfen? Erklären Sie die Software-Kategorien Was sind Komponenten? Nennen Sie Beispiele Welche Sichten auf Komponenten existieren? Nennen Sie wichtige Regeln für den Komponentenschnitt Was sind Schnittstellen? Nennen Sie Beispiele Wie werden Schnittstellen spezifiziert? 60 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

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

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

Mehr

7. Komponenten Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

7. Komponenten Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 7. Komponenten Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Advanced

Mehr

6. Design: Architektur-Grundlagen Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

6. Design: Architektur-Grundlagen Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 6. Design: Architektur-Grundlagen Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

2. Programmieren gegen Schnittstellen Advanced Programming Techniques

2. Programmieren gegen Schnittstellen Advanced Programming Techniques 2. Programmieren gegen Schnittstellen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Sommersemester 2011 1 Einordnung in den gesamten Kurs 2 1. Einführung 2.

Mehr

11. Komponenten Grundlagen der Programmierung 1 (Java)

11. Komponenten Grundlagen der Programmierung 1 (Java) 11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung

Mehr

5. Dokumentieren und Testen Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

5. Dokumentieren und Testen Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 5. Dokumentieren und Testen Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Schnittstellen Was bedeutet Orthogonalität / Separation of Concerns?

Mehr

9. Design-Phase Software Engineering

9. Design-Phase Software Engineering 9. Design-Phase Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 1. Dezember 2005 Einordnung in den Kontext der Vorlesung 1. Einführung

Mehr

3. Analysephase Anforderungen, Anwendungsfälle Softwaretechnik (CNAM)

3. Analysephase Anforderungen, Anwendungsfälle Softwaretechnik (CNAM) 3. Analysephase Anforderungen, Anwendungsfälle Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt,

Mehr

Moderne Softwarearchitektur

Moderne Softwarearchitektur Johannes Siedersieben Moderne Softwarearchitektur Umsichtig planen, robust bauen mit Quasar dpunkt.verlag 1 Softwarearchitektur als Herausforderung 1 1.1 Was ist Softwarearchitektur? 3 1.2 Quasar: Qualitätssoftwarearchitektur

Mehr

2. A reference architecture for business information systems Reference Architectures and Patterns

2. A reference architecture for business information systems Reference Architectures and Patterns 2. A reference architecture for business information systems Reference Architectures and Patterns Winter Semester 2007 / 2008 Prof. Dr. Bernhard Humm Darmstadt University of Applied Sciences Department

Mehr

2. A reference architecture for business information systems Reference Architectures and Patterns

2. A reference architecture for business information systems Reference Architectures and Patterns 2. A reference architecture for business information systems Reference Architectures and Patterns Winter Semester 2008 / 2009 Prof. Dr. Bernhard Humm Darmstadt University of Applied Sciences Department

Mehr

7. Design-Phase Querschnittsthemen und Muster Softwaretechnik (CNAM)

7. Design-Phase Querschnittsthemen und Muster Softwaretechnik (CNAM) 7. Design-Phase Querschnittsthemen und Muster Softwaretechnik (CNAM) Wintersemester 2011 / 2012 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt,

Mehr

7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung

Mehr

Quasar. Seminar "Beiträge zum Software Engineering" Freie Universität t Berlin. von Tichomir Jabarski

Quasar. Seminar Beiträge zum Software Engineering Freie Universität t Berlin. von Tichomir Jabarski Quasar von Tichomir Jabarski Seminar "Beiträge zum Software Engineering" Freie Universität t Berlin 1 Inhaltsverzeichnis Quasar Schnittstellen Komponenten Softwarekategorien Zusammenfassung 2 1.Quasar

Mehr

Vorlesung am Systemkonstruktion. Dr. F. Sarre Wintersemester 2008 / Folie 57

Vorlesung am Systemkonstruktion. Dr. F. Sarre Wintersemester 2008 / Folie 57 Vorlesung am 28.10.2008 Systemkonstruktion Folie 57 Übergang vom Fachkonzept zum DV-Konzept Aufgabenstellung Entwickler Geschäftsvorfall Java-Klassen Fachliches Objekt Nicht funktionale Anforderungen...?

Mehr

7. Design-Phase: Referenzarchitektur betriebliche Informationssysteme Softwaretechnik (CNAM)

7. Design-Phase: Referenzarchitektur betriebliche Informationssysteme Softwaretechnik (CNAM) 7. Design-Phase: Referenzarchitektur betriebliche Informationssysteme Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard

Mehr

1. Einführung Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006

1. Einführung Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 1. Einführung Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Agenda Agenda Organisation Rückblick Grundlagen der

Mehr

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

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

8. Design-Phase Querschnittsthemen und Muster Softwaretechnik (CNAM)

8. Design-Phase Querschnittsthemen und Muster Softwaretechnik (CNAM) 8. Design-Phase Querschnittsthemen und Muster Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt,

Mehr

1. Programmieren gegen Schnittstellen Advanced Programming Techniques

1. Programmieren gegen Schnittstellen Advanced Programming Techniques 1. Programmieren gegen Schnittstellen Advanced Programming Techniques Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB

Mehr

3-Tier-Architecture und J2EE

3-Tier-Architecture und J2EE 3-Tier-Architecture und J2EE Oliver Müller Seminar Software-Entwurf WS 2004/05 3-Tier, was war das noch gleich? NEIN, das nicht!!! 2 Die Lage - Applikationen laufen

Mehr

Softwarearchitektur mit dem Quasar- Architekturstil

Softwarearchitektur mit dem Quasar- Architekturstil Softwarearchitektur mit dem Quasar- Architekturstil Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie http://www-st.inf.tu-dresden.de

Mehr

Eine Normalform für Services Serviceorientierte Architektur konkret

Eine Normalform für Services Serviceorientierte Architektur konkret Eine Normalform für Services Serviceorientierte Architektur konkret Prof. Dr. Bernhard Humm, Oliver Juwig Software Engineering 2006 Leipzig, 30. März 2006 Serviceorientierte Architektur (SOA) erfolgreich

Mehr

7. Analyse-Phase: Datenmodellierung Software Engineering

7. Analyse-Phase: Datenmodellierung Software Engineering 7. Analyse-Phase: Datenmodellierung Software Engineering Hochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm Hochschule Darmstadt, 20. November 2006 Einordnung in den Kontext

Mehr

Software Engineering. 5. Architektur

Software Engineering. 5. Architektur Software Engineering 5. Architektur Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung Konfigurationsmanagement

Mehr

46 Softwarearchitektur mit dem Quasar-Architekturstil

46 Softwarearchitektur mit dem Quasar-Architekturstil 46 Softwarearchitektur mit dem Quasar-Architekturstil Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie http://st.inf.tu-dresden.de

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

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

Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar Zweck des Entwurfs Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar Überspitztes Beispiel: Wenn eine Klas mit einer Methode, die 10.000 Zeilen lang ist, die geforderte

Mehr

10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java)

10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java) 10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 11. Funktionale Programmierung Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Design Patterns Wozu werden Design Patterns verwendet? Wann

Mehr

Kapitel 5: Das Design

Kapitel 5: Das Design Nach der Analyse kommt... Kapitel 5: Das Design SoPra 2008 Kap. 5: Das Design (1/20) Kapitel 5.1: Überblick Was ist Design? Ergebnis der Analyse: abstrakte Definitionen Objektmodell: Klassen, Assoziationen,

Mehr

Alternative Architekturkonzepte

Alternative Architekturkonzepte Alternative Architekturkonzepte Motivation: Suche nach einer Gesamtstruktur meistens: dominante nichtfunktionale Eigenschaften legen Architektur fest Antrieb: Architekturziel Ziel: globale Betrachtung

Mehr

<Insert Picture Here> Einführung in SOA

<Insert Picture Here> Einführung in SOA Einführung in SOA Markus Lohn Senior Principal Consultant SOA? - Ideen Selling Oracle To All SAP On ABAP Increasing Sales Of Applications 3 Agenda Motivation SOA-Definition SOA-Konzepte

Mehr

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) 4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG SODA Die Datenbank als Document Store Rainer Willems Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG vs No Anforderungskonflikte Agile Entwicklung Häufige Schema-Änderungen Relationales

Mehr

Datenbanksysteme. Donald Kossmann TU München

Datenbanksysteme. Donald Kossmann TU München Datenbanksysteme Donald Kossmann TU München Übersicht Wie benutze ich ein Datenbanksystem? Datenmodellierung (ER, UML, Theorie) Datenbankprogrammierung (SQL) Wie baue ich ein Datenbanksystem? Anfrageoptimierung

Mehr

10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 10. Modellgetriebene Entwicklung Softwaretechnik (CNAM) Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

Übung Einführung in die Softwaretechnik

Übung Einführung in die Softwaretechnik Lehrstuhl für Informatik 3 RWTH Aachen Übung Einführung in die Softwaretechnik Lösungshinweise zum Übungsblatt 12 Aufgabe 28 Sichtbarkeits-Symbol UML Java + public # protected private (default) Sichtbar

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

systems landscape engineering - übung -

systems landscape engineering - übung - systems landscape engineering - übung - Wintersemester 2010 /2011 Arbeitsgruppe Wirtschaftsinformatik - Managementinformationssysteme - Dipl. Wirt.-Inform. Sven Gerber Arbeitsgruppe Wirtschaftsinformatik

Mehr

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java Software-Architektur basierend auf dem Plug-in-Konzept Aufteilung: Probleme mit normaler/alter Software Ziele des Software Engineerings Die

Mehr

Übungsklausur Programmieren / Algorithmen und Datenstrukturen 1

Übungsklausur Programmieren / Algorithmen und Datenstrukturen 1 Programmieren / Algorithmen und Datenstrukturen 1 Autor: Prof. Dr. Bernhard Humm, FB Informatik, Hochschule Darmstadt Datum: 28. Juni 2010 Übungsklausur Programmieren / Algorithmen und Datenstrukturen

Mehr

Komponentenbasierte Client-Architektur. Bernd Olleck, IT Beratung Olleck Dr. Martin Haft, sd&m AG München,

Komponentenbasierte Client-Architektur. Bernd Olleck, IT Beratung Olleck Dr. Martin Haft, sd&m AG München, Komponentenbasierte Client-Architektur Bernd Olleck, IT Beratung Olleck Dr. Martin Haft, sd&m AG München, 5.5.2008 Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche

Mehr

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

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

Mehr

Software- /Systemarchitektur

Software- /Systemarchitektur Software- /Systemarchitektur Agenda: Definition von Softwarearchitektur Voraussetzungen Was bedeutet Objektorientierung? Wie speichert man Daten persistent? Client-Server-Architektur Schichtenarchitektur

Mehr

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte

Mehr

Software- und Systementwicklung

Software- und Systementwicklung Software- und Systementwicklung Seminar: Designing for Privacy 11.11.2009 Moritz Vossenberg Inhalt Vorgehensmodelle Wasserfallmodell V-Modell Phasen (Pflichtenheft) UML Klassendiagramm Sequenzdiagramm

Mehr

7. GUI Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006

7. GUI Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 7. GUI Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung II Einordnung in den

Mehr

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS

Mehr

Architekturprinzipien betrieblicher Informationssysteme

Architekturprinzipien betrieblicher Informationssysteme Architekturprinzipien betrieblicher Informationssysteme 1 Studium der Wirtschaftsinformatik an der HFU Furtwangen und der Southeastern Louisiana University 2006 2012: bei sd&m als Software-Ingenieur Chefarchitekt

Mehr

Vgl. Oestereich Kap 2.4 Seiten

Vgl. Oestereich Kap 2.4 Seiten Vgl. Oestereich Kap 2.4 Seiten 99-110 1 Vgl. Oestereich Kap 2.41 Seiten 99ff 2 Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß

Mehr

Sotograph im Einsatz bei der FIDUCIA IT AG. Harald Doderer, Technische Architektur

Sotograph im Einsatz bei der FIDUCIA IT AG. Harald Doderer, Technische Architektur Sotograph im Einsatz bei der FIDUCIA IT AG Harald Doderer, Technische Architektur 30.05.08 Agenda Die FIDUCIA IT AG Statische Code-Analyse Das Sotograph-Umfeld Die Ergebnisse Sotograph im Einsatz bei der

Mehr

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

Mehr

SOLID für.net und JavaScript

SOLID für.net und JavaScript SOLID für.net und JavaScript www.binarygears.de Stefan Dirschnabel Twitter: @StefanDirschnab #dncgn SOFTWARE ENTWICKLUNG BERATUNG SCHULUNG 5 Prinzipien für das Design von Software Wartbarer Code Leicht

Mehr

Projektarbeit Java. 4-Gewinnt. Berner Fachhochschule. 2004, Labor für Technische Informatik

Projektarbeit Java. 4-Gewinnt. Berner Fachhochschule. 2004, Labor für Technische Informatik Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Informatik Labor für technische Informatik Projektarbeit Java 4-Gewinnt 2004, Labor für Technische Informatik Dateiname:

Mehr

Ziele. Kapitel 15: Systemarchitektur und Packages. Grundprinzipien der Systemarchitektur. Grundprinzipien der Systemarchitektur (2)

Ziele. Kapitel 15: Systemarchitektur und Packages. Grundprinzipien der Systemarchitektur. Grundprinzipien der Systemarchitektur (2) Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Ziele Kapitel 15: Systemarchitektur und Packages Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische

Mehr

Erläuterungen zu Darstellung des DLQ-Datenportals

Erläuterungen zu Darstellung des DLQ-Datenportals Erläuterungen zu Darstellung des DLQ-Datenportals Definition zum Datenportal Das DLQ-Datenportal (DP) definiert fachliche Schnittstellen für den Datenaustausch zwischen verschiedenen Kommunikationspartnern.

Mehr

Programmierung im Grossen

Programmierung im Grossen 1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 4: Abstrakte Daten-Typen Übungen 3 Passe die vorhergehende Spezifikation von Stacks (LIFO, Last-In First-Out

Mehr

Konzeption und Implementierung von SOA Composed Services in der Praxis

Konzeption und Implementierung von SOA Composed Services in der Praxis Konzeption und Implementierung von SOA Composed Services in der Praxis Markus Trenkle, Lyubomir Yordanov InterFace AG, Yordanov Consulting Nürnberg Schlüsselworte Systemarchitektur, Composed Services,

Mehr

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

Zukunft der Oracle Applikationsentwicklung: BC4J & XML 2 Jahre Niederlassung in München Trivadis GmbH Zukunft der Oracle Applikationsentwicklung: BC4J & XML Markus Heinisch 1 Agenda Tägliches Brot BC4J DEMO Applikation BC4J XML DEMO Applikation XML Fazit 2

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Software EMEA Performance Tour Berlin, Germany June

Software EMEA Performance Tour Berlin, Germany June Software EMEA Performance Tour 2013 Berlin, Germany 17-19 June HP Service Virtualization Virtuelle Services im Software Entwicklungs-Lebenszyklus Udo Blank Bernd Schindelasch 19. Juni, 2013 Presales Consultant

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Hauptseminar Management von Softwaresystemen

Hauptseminar Management von Softwaresystemen Hauptseminar Management von Softwaresystemen Technische Universität München WS 2005/06 Autor : Ceren Alkis Thema: Standardarchitekturen am Beispiel von QUASAR Datum: 29.11.2005 [1] Inhaltsverzeichnis:

Mehr

10. Programmierungs-Phase: Objektorientierung Software Engineering

10. Programmierungs-Phase: Objektorientierung Software Engineering 10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Architekturleitfaden. Definieren Sie fachliche Komponenten und implementieren Sie Ihre Aufgaben in technischen Schichten

Architekturleitfaden. Definieren Sie fachliche Komponenten und implementieren Sie Ihre Aufgaben in technischen Schichten Architekturleitfaden Definieren Sie fachliche und implementieren Sie Ihre Aufgaben in technischen Schichten Illustration: Designed by Freepik.com Zwei Architektursichten prägen den Bau von Software-Systemen

Mehr

Die Magie von MBeans und JMX. DOAG 2014 Andreas Chatziantoniou - Foxglove-IT BV

Die Magie von MBeans und JMX. DOAG 2014 Andreas Chatziantoniou - Foxglove-IT BV Die Magie von MBeans und JMX DOAG 2014 Andreas Chatziantoniou - Foxglove-IT BV Bio Andreas Chatziantoniou Freelance Oracle Fusion Middleware Consultant 16 Jahre Oracle Erfahrung/26 Jahre IT (Unix/C) Oracle

Mehr

Logo in neuer Logosystematik einfügen: Bewertung der Softwarequalität eines bestehenden Softwaresystems an Hand von

Logo in neuer Logosystematik einfügen: Bewertung der Softwarequalität eines bestehenden Softwaresystems an Hand von Bewertung der Softwarequalität eines bestehenden Softwaresystems an Hand von Software Engineering Grundsätzen und Identifikation von Maßnahmen zur Verbesserung Axel Sommer Inhalt Motivation und Ziele Software

Mehr

Individuelles Auditing von vielen Datenbanken

Individuelles Auditing von vielen Datenbanken Individuelles Auditing von vielen Datenbanken Agenda Einführung Audit-Ansätze Sicherheitsvorfälle Spinnennetz Lessons Learned Einführung Im Zuge eines großen Auditing-Projektes stellte sich die Frage:

Mehr

7. Zusammenfassung (1)

7. Zusammenfassung (1) Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Integration im Enterprise Umfeld

Integration im Enterprise Umfeld Integration im Enterprise Umfeld Sven Tissot pdv Technische Automation + Systeme GmbH Hamburg DOAG 2007 pdv Technische Automation + Systeme GmbH, 2007 1 Eckdaten Individual-Software Client/Server- und

Mehr

1. Einführung Advanced Programming Techniques. Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

1. Einführung Advanced Programming Techniques. Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1. Einführung Advanced Programming Techniques Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Advanced

Mehr

Der sd&m-ansatz für serviceorientierte Architektur Quasar Enterprise

Der sd&m-ansatz für serviceorientierte Architektur Quasar Enterprise Der sd&m-ansatz für serviceorientierte Architektur Quasar Enterprise A Company of Prof. Dr. Bernhard Humm OOP 2006 sd&m Developer Day München, 18. Januar 2006 sd&m AG, 18.1.2006, Seite 1 Anwendungslandschaften

Mehr

Enterprise Content Management für Hochschulen

Enterprise Content Management für Hochschulen Enterprise Content Management für Hochschulen Eine Infrastuktur zur Implementierung integrierter Archiv-, Dokumentenund Content-Managementservices für die Hochschulen des Landes Nordrhein Westfalen Management

Mehr

Container als Immutable Infrastructure. John M. Hutchison

Container als Immutable Infrastructure. John M. Hutchison Container als Immutable Infrastructure John M. Hutchison Container als Immutable Infrastructure 1. Context 2. Anwendungsbereiche 3. Demo 4. Erkenntnisse Präsentationstitel 06.03.2017 2 Container Verschiedene

Mehr

16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2

16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Motivation Fehlerbehandlung

Mehr

Herzlich willkommen DevDay 2016 Performance Profiling mit JProfiler

Herzlich willkommen DevDay 2016 Performance Profiling mit JProfiler Herzlich willkommen DevDay 2016 Performance Profiling mit JProfiler 1 2 Referent Björn Reber Software-Entwickler und Trainer Java-Technologie OpenSource und SAP 3 Inhalt Motivation Tool-Übersicht Profiling

Mehr

Kostenoptimierte Cloud-Administration mit Solaris Container Technologie

Kostenoptimierte Cloud-Administration mit Solaris Container Technologie Kostenoptimierte Cloud-Administration mit Solaris Container Technologie Joachim M. Dietsch Principal Sales Consultant Global Elite Accounts Agenda Virtualisierungs-Technologien System

Mehr

Technische Open Source Komponenten implementieren die Referenzarchitektur Quasar ISOS 2004

Technische Open Source Komponenten implementieren die Referenzarchitektur Quasar ISOS 2004 Technische Open Source Komponenten implementieren die Referenzarchitektur Quasar ISOS 2004 A Company of Dr. Bernhard Humm, sd&m Research Bremen, 17. September 2004 Abhängigkeitsgraph im OO-Betriebssystem

Mehr

Identity & Access Management in Extranet Portal Projekten

Identity & Access Management in Extranet Portal Projekten Identity & Access Management in Extranet Portal Projekten November 2007 Kontakt: Udo Hochstein CGI GROUP INC. All rights reserved _experience the commitment TM Agenda Einleitung Referenzszenario Referenzarchitektur

Mehr

Comparing Software Factories and Software Product Lines

Comparing Software Factories and Software Product Lines Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich

Mehr

S O F T W A R E H Y G I E N E X P D A Y S S T U T T G A R T

S O F T W A R E H Y G I E N E X P D A Y S S T U T T G A R T SOFTWARE HYGIENE XPDAYS STUTTGART 2017 oder was man von Blutgruppen über die Strukturierung von Software lernen kann sven bange jens himmelreich NEULAND - BÜRO FÜR INFORMATIK AGILE ARCHITEKTUR DER EINSAME

Mehr

Workflowsysteme. Anforderungen, Erfahrungen und Referenzarchitektur

Workflowsysteme. Anforderungen, Erfahrungen und Referenzarchitektur Workflowsysteme Anforderungen, Erfahrungen und Referenzarchitektur Kontakt Dr. Markus Trenkle Software Architekt Telefon: +49 (0)89 61049-0 Fax: +49 (0)89 61049-85 E-mail: markus.trenkle@interface-ag.com

Mehr

2. Analyse: Anforderungen und Anwendungsfälle Softwaretechnik (CNAM)

2. Analyse: Anforderungen und Anwendungsfälle Softwaretechnik (CNAM) 2. Analyse: Anforderungen und Anwendungsfälle Softwaretechnik (CNAM) Wintersemester 2011 / 2012 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Einordnung in den gesamten Kurs 1. Einführung

Mehr

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

Bekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen Michael Saecker Bekannte Lösungen für bekannte Probleme benutzen Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen Gemeinsames Vokabular für Designer 2 http://www.clickpix.de/sommer/architektur.jpg

Mehr

Überblick über die Roblet -Technik

Überblick über die Roblet -Technik Überblick über die Roblet -Technik Hagen Stanek gefördert durch Agenda Teil 1: Motivation, Einführung Teil 2: Beispiel-Vorführung Teil 3: Anwendungen, Zusammenfassung 2 Teil 1 Motivation, Einführung 3

Mehr

SOFTWARE ENGINEERING 2

SOFTWARE ENGINEERING 2 Fakultät Informatik/Mathematik Lehrstuhl für Softwaretechnologie Vorlesungsmitschrift SOFTWARE ENGINEERING 2 Mitschrift von Falk-Jonatan Strube Vorlesung von Prof. Dr. Anna Sabine Hauptmann 27. März 2018

Mehr

VAADIN, SPRING BOOT & REST

VAADIN, SPRING BOOT & REST VAADIN, SPRING BOOT & REST Ein Einstieg für Domino Entwickler Stephan Kopp 1 STEPHAN KOPP Software & Solutions Development Tel.: +49 6182 7869420 Mobil: +49 173 3089806 E-Mail: stephan.kopp@axians.de 2

Mehr

Erfahrungsbericht Eine Architektur für ausfallsichere Systeme in standortübergreifenden Multiserver-Umgebungen

Erfahrungsbericht Eine Architektur für ausfallsichere Systeme in standortübergreifenden Multiserver-Umgebungen Erfahrungsbericht Eine Architektur für ausfallsichere Systeme in standortübergreifenden Multiserver-Umgebungen Hamburg, 30. März 2007 Andree de Boer 1.0 Agendafolie Überblick Anforderungen Verfügbarkeit

Mehr

Wahlpflichtfach Design Pattern

Wahlpflichtfach Design Pattern Wahlpflichtfach Design Pattern Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik miwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Softwaretechnik 3. Klausurnachbesprechung. 09.05.2008, Phillip Ghadir

Softwaretechnik 3. Klausurnachbesprechung. 09.05.2008, Phillip Ghadir Softwaretechnik 3 Klausurnachbesprechung 09.05.2008, Phillip Ghadir Benotungsschema Fest vorgegeben Volle Punktzahl und Negativliste Positivliste Bestehen ab 40 Punkte Aufgabenarten Abfrage von auswendig

Mehr