Komponentenbasierte Software-Entwicklung

Größe: px
Ab Seite anzeigen:

Download "Komponentenbasierte Software-Entwicklung"

Transkript

1 Komponentenbasierte Software-Entwicklung Marc Monecke Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D Siegen 20. Mai 2003 Zusammenfassung In der komponentenbasierten Software-Entwicklung dienen Software-Komponenten zur Strukturierung komplexer Systeme. Komponenten sind auch wiederverwendbare Einheiten, die einmal entwickelt und mit geringem Aufwand in unterschiedlichen Systemen eingesetzt werden sollen. In diesem Lehrmodul gehen wir zunächst kurz auf die Wiederverwendung ein und betrachten dann die Ziele und Merkmale von Software-Komponenten genauer. Anschließend werden einige Komponentenmodelle kurz vorgestellt und Anmerkungen zum Einsatz der Komponententechnologie bei der Software-Produktion gemacht. Inhaltsverzeichnis 1 Einleitung und Motivation Wiederverwendung Ziele der Wiederverwendung Unterschiede zwischen den verschiedenen Wiederverwendungsarten White-box- und black-box-wiederverwendung: Komponenten-Begriff Einige Definitionen für Komponenten Zentrale Begriffe Angestrebte Eigenschaften von Komponenten Granularität Schnittstellen Semantik Komponentenmodelle Elemente eines Komponentenmodells Beispiele i

2 3.2.1 JavaBeans CORBA ActiveX/(D)COM Enterprise JavaBeans Einsatz von Komponententechnologie Vorgehen und Prozesse Komponenten und die Software-Industrie Zusammenfassung 10 ii

3 1 Einleitung und Motivation Software-Entwickler müssen häufig Lösungen für Probleme erarbeiten, die sie selbst oder andere Software-Entwickler bereits gelöst haben Ziel: Wiederverwendung dieser Lösungen Software-System in Software-Komponenten aufteilen Komposition des Systems aus Komponenten jede Komponente stellt Dienste bereit, die andere Komponenten nutzen können Komponenten kommunizieren miteinander Vorbild: Hardware-Branche Software-IC 1.1 Wiederverwendung Wiederverwendbar sind unterschiedliche Dinge: Ideen : was ähnliches haben wir schonmal gemacht... Vorgehensweisen : Kochbuch-Ansatz Bildschirm-Layouts, Bedienkonzepte und -abstraktionen: dadurch können verschiedene Programme unter einer graphischen Benutzeroberfläche ähnlich bedient werden Entwürfe, Architekturen, Entwurfsmuster (design reuse): mehr oder weniger abstrakte Beschreibung der Problemlösung einzelne Funktionen, Klassen: letztere mit der Möglichkeit zur Erweiterung Quelltext-Ausschnitte: copy & paste ganze Programme oder Bibliotheken: bequem, sofern sie zum Problem passen. Gutes Beispiel ist die Unix toolbox. Komponenten : intuitiv klar als (beliebiger) Baustein. Hier greift die Lego-Stein- Metapher [3]. Allgemein formuliert [1]: Wiederverwendung von Software ist das erneute Anwenden von bei der Entwicklung eines Softwaresystems entstandenen Artefakten und angesammeltem Wissen bei der Entwicklung eines neuen Softwaresystems, um den Aufwand zur Erstellung und Pflege dieses neuen Systems zu reduzieren. Maßstab Analog zum programming-in-the-small und programming-in-the-large werden auch bei der Wiederverwendung zwei Stufen unterschieden: reuse-in-the-small: Routinen, Klassen, Pakete, Bibliotheken; meist sprach- oder plattformspezifisch hoher Integrationsaufwand reuse-in-the-large: Sub-, Komplettsysteme hoher Anpassungsaufwand 1

4 1.1.1 Ziele der Wiederverwendung Aufwand und Kosten reduzieren: Je häufiger ein Baustein verwendet wird, desto geringer fällt der initiale Aufwand für seine Entwicklung ins Gewicht. Qualität erhöhen: Je häufiger ein Baustein verwendet wird, desto weniger Fehler wird er enthalten. Wartung erleichtern: Werden die gleichen Komponenten mehrfach im gleichen oder in verschiedenen Systemen verwendet, muß sich ein Entwickler nur einmal mit ihrer Funktionsweise auseinandersetzen, um die Funktion des Systems zu verstehen. Andererseits wirkt sich die Änderung, Korrektur oder Erweiterung einer zentralen Komponente (hoffentlich positiv) an vielen Stellen des Systems aus. Einheitliches Verhalten und Aussehen erreichen: Gleiche Komponenten, etwa im GUI, sehen an verschiedenen Stellen im System gleich aus und verhalten sich gleich. Dadurch wird die Bedienung für den Benutzer erleichtert. Auch ist das Systemverhalten in einer bestimmten Situation so leichter zu verstehen Unterschiede zwischen den verschiedenen Wiederverwendungsarten Anpaßbarkeit: z.b. Parametrisierbarkeit, Konfigurierbarkeit, Änderbarkeit der wiederverwendeten Lösung Flexibilität: z.b. Plattform(un)abhängigkeit erforderlicher Arbeitsaufwand: ein Programm kann direkt eingesetzt werden, ein Entwurf muß zuerst implementiert werden Abstraktionsstufe: ein Quelltext-Ausschnitt löst das Problem in einem ganz bestimmten Kontext und unter ganz bestimmten Annahmen; ein Entwurfsmuster beschreibt den Lösungsansatz für eine Klasse ähnlicher Probleme Zeitpunkt: Analyse, Entwurf, Implementierung oder Laufzeit des Systems White-box- und black-box-wiederverwendung: Wiederverwendung kann auch danach klassifiziert werden, welche Informationen der Nutzer eines Bausteins über diesen Baustein benötigt: Bei der white-box-wiederverwendung ist die innere Struktur und Funktionsweise des wiederverwendeten Bausteins bekannt und kann bei der Anpassung und beim Einsatz des Bausteins berücksichtigt werden. Bei der black-box-wiederverwendung ist die innere Struktur nicht bekannt. Der Baustein präsentiert sich als schwarzer Kasten, von dem nur die Schnittstelle bekannt ist. 2 Komponenten-Begriff Software-Komponenten tauchen in vielen Situationen auf. Weit verbreitet sind Komponenten, aus denen graphische Benutzungsschnittstellen (graphical user interface, GUI) zusammengesetzt werden. Diese Komponenten sind direkt manipulierbar, können also an der gewünschten Stelle plaziert und in Größe, Farbe und weiteren Eigenschaften angepaßt werden. 2

5 haben beim Entwurf die gleiche Repräsentation und zum Teil das gleiche Verhalten wie zur Laufzeit des resultierenden Systems. haben eine intuitiv klare Bedeutung. Beim Zusammensetzen eines GUI werden Entwurfswerkzeuge (GUI builder) verwendet und die Komponenten oft direkt aus einer Palette ausgewählt und an die gewünschte Position gezogen. Am anderen Ende des Spektrums liegen Komponenten, die komplexe Aufgaben in Geschäftsanwendungen übernehmen. Diese Komponenten haben oft eine direkte Entsprechung in der Geschäftswelt (etwa Kunde, Lieferung, Vertrag) und bilden deren Eigenschaften, Verhalten und Interaktionen ab. 2.1 Einige Definitionen für Komponenten Allgemein sind Komponenten Bausteine, aus denen Software-Systeme zusammengesetzt werden. Es gibt zahlreiche Definitionen zum Begriff der Software-Komponente, die unterschiedliche Aspekte in den Vordergrund stellen [1, 3]: Flexibler Einsatz: Components are software units that are context-independent both in the conceptual and the technical domain. Kapselung der Funktionalität und Zugriff über Schnittstellen: A component denotes a self-contained entity (black box) that exports functionality to its environment and may also import functionality from its environment using well-defined and open interfaces. In this context, an interface defines the syntax and semantics of the functionality it comprises (i.e., it defines a contract between the environment and the component). Components may support their integration into the surrounding environment by providing mechanics such as introspection and configuration functionality. Schnittstellen und Verträge: Eine Softwarekomponente ist ein Baustein mit ausdrücklichen Kontextabhängigkeiten und vertraglich spezifizierten Schnittstellen. Eine Softwarekomponente kann unabhängig verwendet werden und leicht mit anderen Komponenten integriert werden.[2] Granularität von Komponenten und ihre Kooperation im System: Eine Komponente ist ein Stück Software, das klein genug ist, um es in einem Stück erzeugen und pflegen zu können, groß genug, um eine sinnvolle Funktionalität zu bieten und eine individuelle Unterstützung zu rechtfertigen, sowie mit standardisierten Schnittstellen ausgestattet ist, um mit anderen Komponenten zusammenzuarbeiten. Die letzte Definition soll als Basis für die folgenden Ausführungen betrachtet werden. 2.2 Zentrale Begriffe Abbildung 1 enthält einige zentrale Begriffe und ihre Beziehungen [3]. 3

6 bietet an Schnittstelle 1..n 0..n 1 enthält 0..n Operation Komponente 1 0..n Instanz von Komponenten instanz implementiert von 0..n 0..n Klasse 1 0..n Objekt Instanz von Abbildung 1: Zentrale Begriffe und ihre Beziehungen 2.3 Angestrebte Eigenschaften von Komponenten Mit dem Komponentenbegriff sind eine Reihe von Anforderungen verbunden. Erst wenn diese Anforderungen erfüllt werden, können Komponenten ihre wahren Vorteile ausspielen [2]: Wohldefinierter Zweck: Eine Komponente soll einem wohldefinierten Zweck dienen. Sie ist also auf eine bestimmte Aufgabe spezialisiert, stellt aber keine eigenständige Anwendung dar. Statt dessen wird die Komponente in den Anwendungskontext eingebettet. Wiederverwendbarkeit, Konfigurierbarkeit, Anpaßbarkeit: Komponenten sollten in ihrem Anwendungskontext leicht wiederverwendbar sein. Der Anwendungskontext variiert abhängig von der Spezialisierung der Komponenten etwa von der einfachen GUI-Komponente zur Komponente, die bestimmte Aufgaben in einer Geschäftsanwendung übernimmt. Voraussetzung für eine Problemlose Wiederverwendung ist die Möglichkeit, eine Komponente an die jeweiligen Anforderungen anzupassen, ohne ihre Implementierung ändern zu müssen (customizing). Kontextunabhängigkeit: Rahmenbedingungen wie Programmiersprache, Plattform und Entwicklungsumgebung sollten beim Komponenteneinsatz keine Rolle spielen. Alle relevanten Merkmale der Komponente sollen in ihrer Schnittstelle definiert sein. Portabilität und Programmiersprachen-Unabhängigkeit: Komponenten sollten in beliebigen Sprachen (objektorientiert, prozedural, funktional, logisch) entwickelt werden können. Die resultierende übersetzte Komponente sollte plattformunabhängig einsetzbar sein und mit beliebigen anderen Komponenten interagieren können. Ortstransparenz: Das Verhalten der Komponente soll unabhängig davon sein, wo die Komponente ausgeführt wird. Der Kontext, in dem sich die Komponente befindet (Netzwerkknoten, Prozeß) ist also für den Nutzer der Komponente transparent. Trennung von Schnittstelle und Implementierung, Selbstbeschreibungsfähigkeit: Die Dienste, die eine Komponente anbietet, und die Schnittstellen, über die diese Dienste aufgerufen werden, sollen unabhängig von der Implementierung der Komponente spezifiziert werden. Die Implementierung der Komponente ist also für den Benutzer transparent; interne Details werden explizit verborgen. Komponenten sollen die Schnittstelle einer Komponente abfragen können, um so Informationen über die angebotenen Dienste zu erhalten und eine lose und späte Koppelung 4

7 zwischen Komponenten zu ermöglichen. Integrations- und Kompositionsfähigkeit, Plug & Play: Komponenten sollten dynamisch zur Laufzeit zu größeren Komponenten zusammengefaßt werden können also nicht nur zur Entwurfszeit. Die hierzu nötigen Basisdienste werden von der zugrundeliegenden Infrastruktur bereitgestellt. Eine Komponente soll sich selbst in einer solche Infrastruktur installieren und die nötigen Initialisierungen und Registrierungen ausführen. Dadurch ist eine Komponente ohne weiteren Aufwand für den Nutzer sofort einsetzbar (plug & play). Bewährtheit: Komponenten sollen zuverlässig und robust funktionieren. Voraussetzung sind umfangreiche und sorgfältige Tests. Qualitätssicherungsmaßnahmen sind die Voraussetzung dafür, aus einer Menge von Klassen eine Komponente machen zu können. Binärcode-Verfügbarkeit: Komponenten liegen in übersetzter Form vor, können also direkt (auf der passenden Plattform) eingesetzt werden. Der Quelltext ist meist nicht verfügbar. Existieren Varianten für verschiedene Plattformen, funktionieren die Komponenten auf allen Plattformen gleich Granularität Bei der Verwendung von Komponenten stellt sich die Frage, welche Granularität diese haben sollen, also aus Sicht der Komponente: Welchen Umfang soll die Komponente haben? Welche Funktionen soll sie enthalten, welche Dienste anbieten? Wie soll die Schnittstelle aussehen? aus Sicht des Systems: Wie soll die Funktionalität des Systems auf die verschiedenen Komponenten verteilt werden? Also wie sieht die Zerlegung des Systems in Komponenten aus, welche Komponenten müssen dazu gekauft oder entwickelt werden? Werden Dinge aus dem Anwendungskontext als Komponenten repräsentiert, ergeben sich diese meist von selbst etwa Rechnung, Produkt, Report, Zeichenfläche, Menü. Bei abstrakteren Dingen (Prozeßmaschine, Datenbankkern) ist die Zerlegung meist willkürlich. Maße für den Umfang Dabei ist die Größe oder der Umfang einer Komponente schwierig zu bestimmen. Folgende Maße sind sinnvoll. Relevanz für den Anwendungsbereich, Anteil an der Semantik und Funktionalität des Gesamtsystems Umfang der Schnittstelle, also Zahl der angebotenen Dienste Code-Größe, kann beim Übertragen von Komponenten relevant sein Drei Granularitätsstufen Trotz der genannten Schwierigkeiten bei der Gewichtung von Komponenten kann man grob drei Granularitätsstufen unterscheiden (Tabelle 1). 5

8 feinkörnig mittelkörnig grobkörnig eher passiv z.b. Versandanschrift, die gedruckt, angehängt und gelesen werden kann leicht wiederverwendbar, einfache Schnittstelle, aber hoher Integrationsaufwand aktiv, enthalten meist Interaktionen z.b. Einkaufskorb, Zahlungsabwicklung ermöglichen Wiederverwendung komplexerer Funktionen aktiv, übergreifend, kontrollierend/steuernd z.b. Lagerverwaltung direkte Wiederverwendung komplexer Funktionen, aber komplizierte Schnittstelle, aufwendige Parametrisierung, also schwierige Verwendung 2.4 Schnittstellen Tabelle 1: Granularität von Software-Komponenten stellen die Grenze einer Komponente dar bestimmen, wie das Gesamtsystem aus Komponenten zusammengesetzt werden kann und wie die Komponenten miteinander interagieren legt die Abstraktion fest, die die Komponente anbietet kann auch als Vertrag betrachtet werden nach außen angebotene Dienste, unabhängig von ihrer Implementierung ist es möglich, für eine Komponente mehrere Schnittstellen zu definieren, können Sichten definiert und darin Operationen zusammengefaßt werden Darstellung der Schnittstelle graphisch, z.b. mit UML Programmiersprachen-unabhängig mit Interface Definition Language (IDL), z.b. CORBA IDL Bei der Implementierung wird die Programmiersprachen-unabhängige Spezifikation auf die jeweilige Zielsprache abgebildet. Programmiersprachen-abhängig, also direkt in einer Programmiersprache wie Java Hier werden Schnittstellen auf einer geringeren Abstraktionsstufe spezifiziert. selbstbeschreibend, die Schnittstelle kann also dynamisch von Werkzeugen oder anderen Komponenten abgefragt werden. 2.5 Semantik Funktionalität und Verhalten von Komponenten muß klar definiert sein Spezifikation verbale Spezifikationen lassen Interpretationsspielraum ungenau mathematische Formalismen zu aufwendig Protokoll beschreibt korrekte Folgen von Operationsaufrufen 6

9 bei Verwendung der Komponente korrekte Nutzung überwachbar daraus Semantik teilweise ableitbar mögliche Darstellungen: Zustandsautomat zu aufwendig Vor-/Nachbedingungen, Zusicherungen 3 Komponentenmodelle Komponentenmodelle definieren den Rahmen sowohl für die Entwicklung als auch für die Ausführung von Komponenten. Sie bestimmen wie Komponenten zusammengesetzt und verknüpft werden können wie Komponenten miteinander kommunizieren und zusammenarbeiten können welche Mechanismen und Dienste den Komponenten von einer Infrastruktur zur Verfügung gestellt werden etwa für Verteilung, Persistenz und Sicherheit In Abbildung 2 ist die Einbettung von Komponentenmodellen in die komponentenorientierte Software-Entwicklung dargestellt [3]. Komponenten modell Grundlage für konkrete Komponenten zusammen gesetzt zu Komponentenbasierte Anwendung kompatibel zur Entwicklung von betrieben in Framework Entwicklungs werkzeuge Middleware Abbildung 2: Komponentenmodelle und ihre Beziehungen zu anderen Konzepten 3.1 Elemente eines Komponentenmodells Ein Komponentenmodell legt folgende Aspekte der Entwicklung und Benutzung von Komponenten fest [4]: Schnittstellen: Eigenschaften und Verhalten von Komponenten, Sprachen zur Schnittstellen-Spezifikation (IDL) Namen: Global eindeutige Namen für Schnittstellen und Komponenten Meta-Daten: Informationen über Komponenten und Schnittstellen; Dienste für den Zugriff auf diese Informationen Interoperabilität: Kommunikation und Datenaustausch zwischen Komponenten (heterogen, verschiedene Hersteller) Konfiguration: Dienste zur Anpassung und Konfiguration von Komponenten (customization) werden von Konfigurations- und Administrationswerkzeugen genutzt 7

10 Komposition: Schnittstellen und Regeln für das Zusammensetzen von Komponenten zu größeren Strukturen Evolution: Dienste und Regeln für den Austausch von Komponenten gegen neuere Versionen Zusammenpacken und ausliefern: Zusammenfassen der Implementierung und aller benötigten Ressourcen einer Komponente, so daß sie ausgeliefert, installiert und konfiguriert werden kann 3.2 Beispiele Einige bekannte Komponentenmodelle sind: JavaBeans visuell manipulierbare Java-Komponenten Bean jeweils durch Java-Klasse implementiert Schnittstelle gemäß Vorgaben gestalten hauptsächlich für mittelkörnige GUI-Elemente Verteilung, Verbunddokumente nicht direkt unterstützt CORBA Common Object Request Broker Architecture Bestandteil der Object Management Architecture (OMA) von OMG spezifiziert (ABM-Herstellerkonsortium: Anyone but Microsoft) für verteilte, heterogene Systeme Objektmodell und Object Request Broker (ORB), der Infrastruktur implementiert (Middleware) Schnittstellenbeschreibung Programmiersprachen-unabhängig in CORBA-IDL ActiveX/(D)COM (Distributed) Component Object Model eher zufällig entstanden bei der Wartung und Weiterentwicklung der Microsoft-Produkte daher Konzepte und Begriffe eher unsauber, vielfach geändert Grenze zwischen Betriebssystem und Komponentenmodell nicht klar (z.b. registry des Betriebssystems zum Auffinden von Komponenten genutzt) genutzt für Verbunddokumente in denen spezialisierte Komponenten für die Darstellung, Manipulation und automatische Aktualisierung unterschiedlicher Dokument- Bestandteile zuständig sind etwa Text, Grafik, Tabellen Enterprise JavaBeans Komponentenmodell für serverseitige Komponenten in Geschäftsanwendungen 8

11 plattformunabhängig, verteilt Java-spezifisch; über CORBA auch heterogene Komponenten möglich Spezifikation enthält Basisdienste u.a. für Kommunikation, Persistenz, Sicherheit s. auch Lehrmodul aus DBS II 4 Einsatz von Komponententechnologie 4.1 Vorgehen und Prozesse Die Nutzung von Komponententechnologien muß auch bei der Gestaltung des Software- Entwicklungsprozesses berücksichtigt werden. Oft geht mit der Umstellung auf komponentenbasierte Software-Entwicklung auch ein weitergehender Technologiewechsel einher, der die verwendete Programmiersprachen, Methoden und Werkzeuge betrifft. Solche Änderungen können zu weitgehenden Konsequenzen innerhalb eines Unternehmens führen. Grundsätzlich besteht das Vorgehensmodell aus folgenden Schritten: 1. Analyse & Definition: Hier werden wie üblich die Anforderungen an das System festgelegt. 2. Entwurf: Das Gesamtsystem wird auf Basis des gewählten Komponentenmodells in einzelne Komponenten zerlegt und es werden die Anforderungen an das Gesamtsystem auf diese Komponenten verteilt. Dabei müssen die Dienste festgelegt werden, die jede Komponente anbietet, und es muß die Interaktion der Komponenten untereinander bestimmt werden. Die ermittelten Komponenten können nun auf dem Komponentenmarkt eingekauft oder entwickelt werden (make-or-buy-entscheidung). 3. Komponenten-Entwicklung: Die Komponenten können weitgehend unabhängig voneinander entwickelt werden. Ziel des komponentenbasierten Ansatzes ist es ja, Funktionen innerhalb von Komponenten zu kapseln und nach außen über eine wohldefinierte Schnittstelle anzubieten. Prinzipiell kann also für jede Komponente ein separater Entwicklungsprozeß instantiiert werden. 4. Integration: Die entwickelten oder gekauften Komponenten werden zum Gesamtsystem zusammengesetzt. Hier muß sichergestellt werden, daß die Summe der Komponentenfunktionen die Funktion des Gesamtsystems ergibt. Bei der Integration müssen die Komponenten passend konfiguriert und so an die konkreten Anforderungen angepaßt werden. 4.2 Komponenten und die Software-Industrie Die konsequente Nutzung von Komponenten würde sich auch auf Software-Unternehmen auswirken, die als Hersteller und als Nutzer von Komponenten auftreten können. Zwar sind einige Auswirkungen auch heute schon erkennbar vom Software-IC ist die Software- Industrie aber noch weit entfernt. Zukauf von Komponenten und ihre Integration in eine bestehende Software- Landschaft: Voraussetzung dafür sind klar definierte Schnittstellen, über die neue Komponenten mit dem vorhandenen System kommunizieren können, und die Möglichkeit zur Anpassung der Komponenten an die konkrete Situation. 9

12 Verkauf von eigenentwickelten Komponenten, die von anderen Entwicklern in anderen Kontexten erneut eingesetzt werden können: Nicht jede (Menge von) Klasse(n), die für eine bestimmte Anwendung entwickelt wurden, kann sinnvoll als Komponente angeboten werden. Voraussetzungen sind die hohe Qualität, Konfigurierbarkeit und eine hinreichende Allgemeingültigkeit (s. auch Abschnitt 2.3). Ein allgemeiner Komponentenmarkt, auf dem Software-Komponenten wie elektronische Bauteile gehandelt werden, existiert aber zur Zeit noch nicht. Arbeitsteilung zwischen Komponentenentwickler und dem eigentlichen Anwendungsentwickler: Insbesondere muß sich letzterer nicht mehr um Aufgaben kümmern, die außerhalb der Anwendungsdomäne liegen, wie etwa die Bereitstellung von Basisdiensten zur Datenverwaltung, für GUI oder Sicherheit. 5 Zusammenfassung Mit Komponenten können komplexe Software-System strukturiert werden Komponenten sind wiederverwendbare Bausteine, die theoretisch auf einem Komponentenmarkt ähnlich wie elektronische Bauteile gehandelt werden können Ein umfassender Einsatz der Komponententechnologie wirkt sich auf die Software- Industrie und die verwendeten Entwicklunsprozesse aus Mögliche Vorteile sind: geringere Kosten, schnellere Entwicklung höhere Qualität bessere Wartbarkeit bessere Erweiterbarkeit und Anpaßbarkeit Komponentenmodelle definieren den Rahmen, in dem Komponenten entwickelt und ausgeführt werden Literatur [1] F. Griffel. Componentware Konzepte und Techniken eines Softwareparadigmas. dpunkt Verlag für digitale Technologie, Heidelberg, [2] V. Gruhn and M. Schneider. EJB 2.0 Anwendungen. Addison-Wesley, [3] V. Gruhn and A. Thiel. Komponentenmodelle. Addison-Wesley, (zu EJB Version 1.1). [4] G. T. Heinemann and W. T. Councill, editors. Component-Based Software Engineering. Addison-Wesley, New York,

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013 Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 7. Februar 2013 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion

Mehr

Jürgen Schwab, debis Systemhaus

Jürgen Schwab, debis Systemhaus Jürgen Schwab, debis Systemhaus 1 Komponenten - Markt VAA - Referenzmodell: eine komponentenorientierte Anwendungsarchitektur März 99 99 2 Die Voraussetzungen für einen Komponentenmarkt sind so gut wie

Mehr

Modul Software Komponenten 01 Komponenten

Modul Software Komponenten 01 Komponenten Modul Software Komponenten 01 Komponenten Martin Jud Inhalt 1. Begriff 2. Bedeutung 3. Nutzen 4. Entwurf mit Komponenten HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 2 1. Begriff Definition

Mehr

Vorlesung Software aus Komponenten

Vorlesung Software aus Komponenten Vorlesung Software aus Komponenten 1. Komponenten Markt - Standards Prof. Dr. Hans-Gert Gräbe Wintersemester 2006/07 1 1.3. Komponenten Eigenschaften 4 Haupteigenschaften von Komponenten: eine funktional

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

Marc Monecke Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D Siegen

Marc Monecke Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D Siegen Aufwandsschätzung Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 2. Juli 2003 Inhaltsverzeichnis 1 Einleitung

Mehr

Entwurfsmuster. Marc Monecke

Entwurfsmuster. Marc Monecke Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen

Mehr

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert Motivation UML 2.0 nicht als ADL im Sinne von Taylor/Medvidovic entworfen. Warum UML als ADL? weit

Mehr

MDA-Praktikum, Einführung

MDA-Praktikum, Einführung MDA-Praktikum, Einführung Prof. Dr. Peter Thiemann Universität Freiburg 02.11.2005 Was ist MDA? MDA = Model-Driven Architecture Initiative der OMG Object Management Group: CORBA, UML,... offenes Firmenkonsortium

Mehr

Spezifikation von Fachkomponenten mit UML 2.0

Spezifikation von Fachkomponenten mit UML 2.0 Spezifikation von Fachkomponenten mit UML 2.0 Jörg Ackermann Universität Augsburg Jörg Ackermann: Spezifikation von Fachkomponenten mit UML 2.0. WMSFK4 2003 / 1 Einleitung UML 2.0 bietet deutlich bessere

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

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

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

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Entwurfsmuster Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Information über Entwurfsmuster Die heutige Vorlesung: Einführung in die Thematik Die Vorlesung am 12.01:

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

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015 Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 11. Februar 2015 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion

Mehr

17 Komponentenbasiertes Software-Engineering

17 Komponentenbasiertes Software-Engineering 17 Komponentenbasiertes Software-Engineering 17.0 Einführung Lernziele Grundlagen, Prinzipien und Probleme des CBSE 17.1 Komponenten und Komponentenmodelle Komponenten und ihre Eigenschaften Komponentenmodelle

Mehr

Einführung in das Eclipse Modeling Framework (EMF)

Einführung in das Eclipse Modeling Framework (EMF) 1 / 14 Einführung in das Eclipse Modeling Framework (EMF) Maik Schmidt Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 21. April 2009 Was ist EMF? Eclipse Modeling

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

Mehr

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES 2016 Software AG. All rights reserved. For internal use only DIGITAL BUSINESS APPLICATIONS DRIVE THE DIGITAL BUSINESS Partner Lieferanten Kunden SaaS

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Model Driven Development im Überblick

Model Driven Development im Überblick Model Driven Development im Überblick Arif Chughtai Diplom-Informatiker (FH) www.digicomp-academy, Seite 1 September 05 Inhalt Motivation Überblick MDA Kleines Beispiel Werkzeuge www.digicomp-academy,

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

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen 1 / 30 Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen Zwischenvortrag zur Diplomarbeit Steffen Conrad (235183) Research Group Software Construction RWTH Aachen

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Requirements Engineering I

Requirements Engineering I Martin Glinz Requirements Engineering I Kapitel 9 UML Unified Modeling Language Universität Zürich Institut für Informatik 2006, 2009 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für

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

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

Notationen zur Prozessmodellierung

Notationen zur Prozessmodellierung Notationen zur Prozessmodellierung August 2014 Inhalt (erweiterte) ereignisgesteuerte Prozesskette (eepk) 3 Wertschöpfungskettendiagramm (WKD) 5 Business Process Model and Notation (BPMN) 7 Unified Modeling

Mehr

Entwurfsmuster (Design Patterns)

Entwurfsmuster (Design Patterns) Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder

Mehr

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge Einführung. Vorbemerkungen und Überblick. Die elektronischen e des Fahrzeugs. Prozesse in der Fahrzeugentwicklung im Überblick,.4 Grundlagen. Steuerungs- und regelungstechnische e (Prof. Schumacher). Diskrete

Mehr

Von UML 1.x nach UML 2.0

Von UML 1.x nach UML 2.0 Zürich Soft Summer 2005 Fortgeschrittene Aspekte der Software Technologie Von UML 1.x nach UML 2.0 Prof. Dr. Martin Glinz www.ifi.unizh.ch/req Ergänzendes Material zur Vorlesung Spezifikation und Entwurf

Mehr

Komponentenbasierte Softwareentwicklung

Komponentenbasierte Softwareentwicklung Seminar WS04 Komponentenbasierte Softwareentwicklung Karl Pauls Software-Komponente A software component is a unit of composition with contractually specified interfaces and explicit context dependencies

Mehr

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks Eine Untersuchung der Funktionen des Apache Wicket Webframeworks Seminararbeit von Olaf Matticzk 1 15.01.2016 (c) by synaix 2016 synaix...your business as a service. Agenda 1. Einleitung 2. Webanwendungen

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

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? Großer Beleg Christian Wurbs Zwischenbericht http://www.inf.tu-dresden.de/~cw6 cw6@inf.tu-dresden.de Überblick 2 Aufgabenstellung CORBA

Mehr

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA Hauptseminar Management von Softwaresystemen Techniken der System-Integration EAI, Middleware, SOA, CORBA Betreuerin: Referent: Ulrike Hammerschall Alexey Krivoborodov Agenda Motivation Arten der Verteilung

Mehr

Die OSGi Service Plattform

Die OSGi Service Plattform Die OSGi Service Plattform Seminarvortrag Bernhard Cleven Gliederung 1 Einleitung 2 Das Framework 3 Bundles 4 Services 5 Beispiel 6 Fazit Seite 1/ 17 Einleitung Warum OSGi? Durch Modularisierung flexible

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider Wissenschaftliche Vertiefung Web Services Esslingen, 22. Januar 2016 Agenda 1. Einführung 2. Serviceorientierte Architektur 3. SOAP Web Service 4. Standards und Protokolle von SOAP Web Services 5. Bewertung

Mehr

Kommunikation. Björn und Georg

Kommunikation. Björn und Georg Kommunikation Björn und Georg CORBA CORBA (Common Object Request Broker Architecture) Entwicklung der OMG ( Object Management Group) Zusammenschluss von 800 Firmen Hardware- und Progammiersprachen-unabhängiges

Mehr

Einführung in das Eclipse Modeling Framework (EMF)

Einführung in das Eclipse Modeling Framework (EMF) 1 / 14 Einführung in das Eclipse Modeling Framework (EMF) Timo Kehrer Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 04. November 2008 Was ist EMF? Eclipse Modeling

Mehr

Schnittstellen und. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Schnittstellen und. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda Schnittstellen und Abstrakte Klassen 1 Hauptziel der objektorientierten Programmiertechniken ist es, die Flexibilität leichte Anpassbarkeit und Wiederverwendbarkeit von Software zu vereinfachen. 2 Kapselung

Mehr

Objektorientierte und Funktionale Programmierung SS 2014

Objektorientierte und Funktionale Programmierung SS 2014 Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi Projektgruppe Thomas Kühne Komponentenbasiertes Software Engineering mit OSGi Anforderungen der PG IDSE an ein Komponenten- Client Nativer Client Web Client Alternativen IDSE Nutzer Szenario Pipe IDSE

Mehr

Ziele und Tätigkeiten von Architekten

Ziele und Tätigkeiten von Architekten Ziele und Tätigkeiten von Architekten Definition Software Architektur o A software architecture provides a model of a whole software system that is composed of internal behavioral units (i.e. components)

Mehr

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

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

Mehr

Software Design basierend auf dem Plug-In Konzept

Software Design basierend auf dem Plug-In Konzept Software Design basierend auf dem Plug-In Konzept Michael Antes Seminar Simulation und Bildanalyse mit Java, WS2003 Universität Ulm Software-Design basierend auf dem Plug-In-Konzept Inhalt: Einführung:

Mehr

Eclipse Modeling Framework

Eclipse Modeling Framework 1 / 14 Eclipse Modeling Framework Stefan Berlik Fachgruppe Praktische Informatik FB 12, Elektrotechnik und Informatik Universität Siegen 14. November 2007 Was ist das Eclipse Modeling Framework (EMF)?

Mehr

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Feature Modelle und ihre Anwendung Feature Modelle und ihre Anwendungen 22.07.2010 1 Software-Produktlinien Zusammenfassung mehrerer verwandter Softwaresysteme zu einer Domäne (Anwendungsgebiet) Softwaresysteme

Mehr

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme 6. Weitere Strukturdiagramme Objektdiagramm Komponentendiagramm Paketdiagramm 1 6.1 Objekte Ausprägungsspezifikation von Klassen und Assoziationen 2 Definition Das Objektdiagramm zeigt eine bestimmte Sicht

Mehr

MDRE die nächste Generation des Requirements Engineerings

MDRE die nächste Generation des Requirements Engineerings MDRE die nächste Generation des Requirements Engineerings Tom Krauß, GEBIT Solutions GmbH Copyright 2007 GEBIT Solutions Agenda Requirements Engineering heute eine Bestandsaufnahme Modell-Driven Requirements

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

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

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

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 Inhalt: Anforderungen an ein Schema Design eines Schemas Schrittweises Vorgehen Strukturierung und Design der Daten in DOORS Voraussetzung für

Mehr

Inhaltsverzeichnis. Zusammenfassung CORBA

Inhaltsverzeichnis. Zusammenfassung CORBA Inhaltsverzeichnis 1 Was und wofür ist CORBA?... 2 1.1 Problematik in Verteilten Systemen... 2 1.2 Entwurfszeile... 2 2 Zweck und Ziele von OMG?... 2 3 Was ist eine Schnittstellenarchitektur?... 2 3.1

Mehr

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

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können. Seite: 1 / 10 Designentwurf 1 Allgemeines 1.1 Kurzcharakterisierung Die Glossarverwaltung soll eine einheitliche Terminologie zwischen allen Beteiligten sicherstellen, hier zwischen den Mitarbeitern der

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. Modellgetriebene Softwareentwicklung in der BA SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA

Mehr

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken 1 Java ist... gut erlernbar wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax objektorientiert Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken robust keine Adressen,

Mehr

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg Institut für Simulation und Graphik Lisa-Weiterbildung -

Mehr

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen

Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen Zwischenbericht Diplomarbeit Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen Brit Engel Überblick Beschreibung Aufgabenstellung Entwurf der Komponenten Verwaltung Funktionsbereiche

Mehr

ORACLE Business Components for Java (BC4J) Marco Grawunder

ORACLE Business Components for Java (BC4J) Marco Grawunder ORACLE Business Components for Java (BC4J) Marco Grawunder Gliederung 2 Probleme von J2EE/EJB J2EE-Pattern Lösungsansatz: BC4J Architektur einer BC4J-Anwendung Komponenten Entity Objects View Objects Application

Mehr

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff Design Patterns II Der Design Muster Katalog Prof. Dr. Nikolaus Wulff Wiederverwendung Wiederverwendung ist das Schlagwort von OOP zur Erhöhung der Produktivität. Es gibt im Prinzip drei Methoden hierzu:

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der

Mehr

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07, Web Services Vision: Web of Services Applikationen und Services Ralf Günther Compaq Computer GmbH, Köln Ralf.Guenther@compaq.com DECUS Symposium 2002, Vortrag 1K07, 16.04.2002 Web Services in the News

Mehr

Requirements Engineering I

Requirements Engineering I Martin Glinz Requirements Engineering I Kapitel 9 UML Unified Modeling Language Universität Zürich Institut für Informatik 2006, 2008 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe sind

Mehr

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8 Literatur Martin Fowler and Kendall Scott: UML Distilled: Applying the Standard Object Modeling Language. Addison-Wesley 1997. James Rumbaugh, Ivar Jacobson, and Grady Booch: The Unified Language Reference

Mehr

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an

Mehr

Internetanwendungstechnik (Übung)

Internetanwendungstechnik (Übung) Internetanwendungstechnik (Übung) JacORB S. Bissell, G. Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr. EN6,

Mehr

COPE COuPled Evolution of metamodels and models

COPE COuPled Evolution of metamodels and models COPE COuPled Evolution of metamodels and models Diplomarbeit in Zusammenarbeit mit der BMW Car IT (Betreuer: Elmar Jürgens, Sebastian Benz) Markus Herrmannsdörfer 7. November 2007 Perlen der Informatik

Mehr

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was

Mehr

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik Entwurfsmuster - Design Patterns HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik 27. November 2009 Gliederung 1 Einführung 2 Strategie-Muster 3 Beobachter-Muster

Mehr

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5 Implementierung einer Datenbank Prof. Dr. Andreas Schmietendorf 1 Aufgabenbeschreibung Prof. Dr. Andreas Schmietendorf 2 Zielstellung Nachdem innerhalb der Übung 4 das konzeptionelle Modell einer späteren

Mehr

Komponentenbasierter

Komponentenbasierter Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten

Mehr

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Grundlagen von MOF. Alexander Gepting 1

Grundlagen von MOF. Alexander Gepting 1 Grundlagen von MOF Alexander Gepting 1 Kurzfassung Meta-Object Facility (MOF) ist ein Standard der OMG der im Rahmen der Standardisierung von Modellierungstechniken für verteilte Architekturen und Softwaresysteme

Mehr

Einführung in die Informatik I (autip)

Einführung in die Informatik I (autip) Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis

Mehr

Multi-Tool Testlandschaft mit DDS

Multi-Tool Testlandschaft mit DDS Multi-Tool Testlandschaft mit DDS MATLAB UND SIMULINK ALS ENABLER FÜR RAPID TOOL PROTOTYPING SEBASTIAN BEWERSDORFF ASSYSTEM GERMANY MATLAB EXPO 2017 MÜNCHEN 27.06.2017 EINFÜHRUNG Tools in Unternehmensprozessen

Mehr

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

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.21 Themenübersicht Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte

Mehr

Kontinuierliche Architekturanalyse. in 3D

Kontinuierliche Architekturanalyse. in 3D Kontinuierliche Architekturanalyse in 3D Stefan Rinderle Bachelor an der HS Karlsruhe Master "Software Engineering" in München / Augsburg Seit 2013 bei Payback 2 Software-Visualisierung Visualisierung

Mehr

Verbundtests von Mobilgeräten und Backend-Systemen. Andreas Bartsch, exept Software AG

Verbundtests von Mobilgeräten und Backend-Systemen. Andreas Bartsch, exept Software AG Verbundtests von Mobilgeräten und Backend-Systemen Andreas Bartsch, exept Software AG Andreas Bartsch COO exept Software AG Vor 30 Jahren als Consultant im Software Entwicklungsbereich gestartet Große

Mehr

Software Engineering

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

Mehr

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

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen Soll ich Modellieren oder Programmieren? sowohl als auch!!! Produktivitäts-Steigerung

Mehr

Web Modeler W3L AG Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur

Web Modeler W3L AG Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur 1 Web Modeler Ein webbasiertes Modellierungswerkzeugs mit integrierter Plugin-Architektur W3L AG info@w3l.de 04.2008 2 Inhaltsverzeichnis Motivation Modellierungswerkzeug Techniken Architektur Datenhaltung

Mehr

FL SNMP OPC SERVER V3

FL SNMP OPC SERVER V3 FL SNMP OPC SERVER V3 Industrielle Automation und IT wachsen zusammen OPC SNMP Produktübersicht Heutzutage sind moderne Automatisierungslösungen, mehr als je zuvor, auf ein zuverlässiges Kommunikations-Netzwerk

Mehr

Inhaltsverzeichnis. Teil I Grundlagen 1

Inhaltsverzeichnis. Teil I Grundlagen 1 xv Teil I Grundlagen 1 1 Modelle und Modellierung 3 1.1 Modelle, die uns umgeben.................................. 3 1.2 Modelltheorie........................................... 5 1.3 Ziele beim Einsatz

Mehr

Technische Richtlinie XML-Datenaustauschformat für hoheitliche Dokumente (TR XhD) 1 Rahmenwerk

Technische Richtlinie XML-Datenaustauschformat für hoheitliche Dokumente (TR XhD) 1 Rahmenwerk Technische Richtlinie XML-Datenaustauschformat für hoheitliche Dokumente (TR XhD) 1 Rahmenwerk Version 1.4 18.11.2013 BSI TR-03123-1 Bundesamt für Sicherheit in der Informationstechnik Postfach 20 03 63

Mehr

Informationswirtschaft II Rational Unified Process (RUP)

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

Mehr

Informationswirtschaft II

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

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools MOF Meta Object Facility Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools Überblick Object Management Group (OMG) Model Driven Architecture (MDA) Exkurs: Modelle, Metamodelle MOF Architektur

Mehr

Informationssystemanalyse Use Cases 11 1

Informationssystemanalyse Use Cases 11 1 Informationssystemanalyse Use Cases 11 1 Use Cases Slide 1 Als ein populäres Mittel um Anforderungen zu erfassen und Systeme zu beschreiben, werden Use Cases benutzt. Sie bilden die Basis für eine umfassendere

Mehr

Programmiermethodik Vorlesung und Praktikum SS 2001

Programmiermethodik Vorlesung und Praktikum SS 2001 Vorlesung und Praktikum SS 2001 Prof. Dr. W. Effelsberg, G. Kühne, Ch. Kuhmünch Universität Mannheim 1. Einführung 1-1 Inhalt 1. Einführung, Vorstellung der Programmieraufgabe 2. Der Software-Entwicklungszyklus

Mehr