Handbuch zur komponentenbasierten Softwareentwicklung

Größe: px
Ab Seite anzeigen:

Download "Handbuch zur komponentenbasierten Softwareentwicklung"

Transkript

1 IESE Fraunhofer Institut Experimentelles Software Engineering Handbuch zur komponentenbasierten Softwareentwicklung Autoren: Colin Atkinson Holger Bär Joachim Bayer Christian Bunse Jean-Francois Girard Hans-Gerhard Gross Stefan Kettemann Ronny Kolb Thomas Kühne Tim Romberg Olaf Seng Peter Sody Enno Tolzmann Das diesem Bericht zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministerium für Wirtschaft und Technologie unter den Förderkennzeichen 16IN0047 und 16IN0048 gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt bei den Autoren. Version Januar 2003 Eine Publikation des Fraunhofer IESE und des FZI

2

3 Inhaltsverzeichnis Einleitung 1 I. Komponentenbasierte Softwareentwicklung 3 Komponentenmodellfür Web-Anwendungen 7 Colin Atkinson; Christian Bunse; Jean-Francois Girard; Thomas Kühne Architektur Stratifikation bei der SIEDA GmbH 51 Joachim Bayer; Christian Bunse; Peter Sody; Enno Tolzmann Komponentenimplementierung 67 Stefan Kettemann Qualitätsorientierter Entwurf von Software Architekturen 97 Ronny Kolb II. Methoden zur Komponentenintegration 129 Wiederverwendung und Integration re-enginierter Komponenten 135 Joachim Bayer Adaptionstechniken zur Wiederverwendung von Komponenten 157 Olaf Seng Protokollprüfung in komponentenorientierten Systemen 179 Holger Bär BIT-Komponenten 223 Hans-Gerhard Gross III. Herstellerübergreifende Komponentenwiederverwendung 251 Herstellerübergreifende Wiederverwendung von Komponenten 253 Tim Romberg iii

4 iv

5 Einleitung Ziel dieses Handbuchs ist es, dem Softwarepraktiker Methoden und Konzepte an die Hand zu geben, die ihm helfen, Web-Anwendungen aus Komponenten (selbst entwickelten, fremden, wiederverwendeten, wiedergewonnenen/reengineerten) zu bauen. Das hier vorgestellte Handbuch deckt mit einer umfangreichen Methodensammlung die wichtigsten Aspekte für die komponentenorientierte Entwicklung von Webanwendungen ab. Dazu gehören neben einführenden Grundlagenthemen insbesondere die Behandlung von Problemfeldern und zugehörigen Lösungsansätzen. Wie der Titel Komponentenhandbuch schon andeutet, spielt bei allen Beiträgen die Komponentenorientierung eine zentrale Rolle. Sie bietet sowohl nach wissenschaftlicher Erkenntnis als auch nach dem Stand der Praxis die momentan vielversrpechendsten Lösungsansätze für die Herausforderungen, die sich im Bereich App2web stellen. Das vorliegende Handbuch ist in drei Teile gegliedert: I. Komponentenbasierte Softwareentwicklung Dieser Teil bietet eine Einführung in die komponentenorientierte Entwicklung von Webanwendungen mit folgenden Themen: Komponentenmodell für Web-Anwendungen: ein speziell auf die webzentrierte Anwendungsentwicklung ausgerichtetes Komponentenmodell. Architektur Stratifikation: Technik zur Beschreibung der Komponenteninteraktionen von Systemen auf unterschiedlichen Abstraktionsebenen. Eignet sich besonders zur Darstellung der jeweiligen Sichtweisen & Abstraktionsgrade verschiedener Nutzergruppen. Komponentenimplementierung: Eine Methodik zur systematischen und (semi-) automatischen Überführung von technologieunabhängigen Komponentenmodellen in technologiespezifische Komponentenmodelle und Implementierungen. Qualitätsorientierter Entwurf von Software-Architekturen: ein Ansatz mit dessen Hilfe relevante Qualitätsattribute der zu erstellenden Software bereits beim Design der Architektur mitberücksichtigt werden. II. Methoden zur Komponentenintegration 1

6 Diser Teil befasst sich mit den spezifischen Problemen und entsprechenden Lösungen, die typischerweise beim Zusammenbau eines Gesamtsystem aus einzelnen Komponenten auftreten. Dabei stehen die Themen Komponentenwiederverwendung und korrekte Komponenteninterkation im Vordergrund. Es werden die folgenden Einzelthemen behandelt: Wiederverwendung und Integration re-engineerter Komponenten: ein systematischer Ansatz zur gezielten Komponentenwiederverwendung, insbesondere durch geeignete Massnahmen zur Identifikation und Integration von Softwarebausteinen. Adaptionstechniken zur Wiederverwendung von Komponenten: Massnahmen auf Code-Ebene, mit denen sich Anpassungsprobleme bei der Integration in neue Zielsysteme & Verwendungskontexte lösen lassen. Protokollprüfung in komponentenorientierten Systemen: ein speziell auf komponentenorientierte Systeme ausgerichtetes statisches Verfahren zur Überprüfung der korrekten Komponenteninteraktion. BIT-Komponenten: Built-In Testing basiert auf dem dynamischen Selbsttest von Komponenten beim deployment im Zielsystem und stellt damit ein ein dynamisches Verfahren zur Überprüfung der korrekten Komponenteninteraktion dar. III. Herstellerübergreifende Komponentenwiederverwendung Während in Teil II systematische Techniken zur Integration von Komponenten in ein Gesamtsystem dargestellt werden, untersucht Teil III die aktuelle Sitatution bzgl. der tatsächlich stattfindenden herstellerübergreifenden Komponentenwiederverwendung. Er nimmt damit den Blickwinkel einer globalen Bestandsaufnahme ein. Den Ausgangspunkt bildet die Feststellung, dass die Realität der herstellerübergreifenden Wiederverwendung von Softwarekomponenten noch hinter den Erwartungen bzw. den gesetzten Zielen des Komponentenparadigmas zurückbleibt. Der Bericht analysiert die Ursachen hierfür und zeigt zugehörige Lösungen auf. Als Lösungsmöglichkeiten werden insbesondere Standardisierungsstrategien und Kompositionstechniken diskutiert. 2

7 I. Komponentenbasierte Softwareentwicklung Dieser Teil des Komponentenhandbuchs befasst sich mit den Grundlagen der komponentenbasierten Softwareentwicklung für Web-Anwendungen. Folgende 4 einführende Themen werden behandelt: Komponentenmodell für Webanwendungen Stratifikation Komponentenimplementierung Qualitätsorientierter Entwurf von Software Architekturen Komponentenmodell für Web-Anwendungen Dieser Beitrag präsentiert und erläutert die Kernkonzepte des komponentenbasierten Entwurfs im Kontext von Webanwendungen. Ausgangspunkt der Überlegungen ist der Umstand, dass die webzentrierte Anwendungsentwicklung durch einen besonders hohen technischen und wirtschaftlichen Entwicklungsdruck gekennzeichnet ist. Zur Überwindung dieser Herausforderungen sind neue Entwicklungskonzepte erforderlich, die vor allem eine schnellere time-to-market und eine höhere Produktivität ermöglichen. Aktuell gibt es hierzu drei neue Entwicklungsparadigmen : komponentenbasierte Entwicklung (CBD), Produktlinien-Engineering (PLE) und modellgetriebene Architekturen (MDA). Aufbauend auf diesen Erkenntnissen wird ein Komponentenmodell entwikkelt, welches die wesentlichen Aspekte der genannten Entwicklungsparadigmen in sich vereint. Schliesslich wird die praktische Anwendung dieses Modells im Detail anhand der Modellierung eines Teilsystems aus dem Bankenbereich erläutert. Architektur Stratifikation Stratifikation ist ein komponentenorientierter Ansatz zur separaten Beschreibung verschiedener Systemaspekte einer Softwarearchitektur. Dabei werden die Interaktionen zwischen den Komponenten eines Softwaresystems und seinen Nutzern auf unterschiedlichen Abstraktionsebenen dargestellt. Jede Ebene (Stratum) beinhaltet dabei eine vollständige Beschreibung des Systems und repräsentiert die Verfeinerung der darüberliegenden Schicht. 3

8 Die Methode eignet sich besonders zur Erstellung von Systembeschreibungen, die von verschiedenen Nutzergruppen benötigt werden (etwa Architekten, Manager oder Kunden). Denn die Unterteilung in verschiedene Abstraktionsgrade trägt dem Umstand Rechnung, dass jede Nutzergruppe typischerweise eine spezifische Abstraktionsebene einnimmt. Der Beitrag präsentiert die Ergebnisse eines bei der Firma SIEDA durchgeführten Projekts zur Architekturdokumentation mittels Stratifikation. Komponentenimplementierung Ausgangspunkt der komponentenorientierten Implementierung ist eine abstrakte, technologieunabhängige komponentenbasierte Architektur, die z.b. gemäss der Methoden des Beitrags zum Komponentenmodell (siehe oben) entworfen wird. Bei der Implementierung ist nun diese Architektur mittels einer spezifischen Komponententechnologie wie COM oder EJB in eine technologiespezifische Softwarearchitektur zu überführen. Die einzelnen Technologien unterscheiden sich aber stark voneinander in der Art und Weise wie sie die abstrakten Konzepte der Komponentenorientierung umsetzen. Traditionelle Implementierungsansätze bieten hier wenig systematische Unterstützung an. Dadurch kann es zu Ineffizienzen bei der Implementierung und zu Bruchstellen (Inkonsistenzen) zwischen abstrakter und technologischer Architektur kommen. Dieser Beitrag stellt einen Ansatz zur Überwindung dieser Schwierigkeiten vor. Die Grundüberlegung ist dabei, dass der Implementierungsschritt weitgehend systematisiert und automatisiert werden kann. Dadurch wird der Übergang zu einer jeweiligen Komponententechnologie kontrollierbar, reproduzierbar und vor allem effizient durchführbar. Dieser Ansatz deckt sich auch mit aktuellen Entwicklungsparadigmen wie MDA (Model Driven Architecture), die ebenfalls eine konsequente Trennung von Geschäftslogik und Technologie sowie einen hohen Automatisierungsgrad favorisieren. Nur so ist es nämlich möglich, flexibel und effizient auf Technologieänderungen zu reagieren. Qualitätsorientierter Entwurf von Software Architekturen In den letzten Jahren haben sowohl der Entwurf als auch die Dokumentation von Softwarearchitekturen zunehmend an Bedeutung gewonnen. Darüberhinaus wird der Einfluss von Softwarearchitekturen auf die Realisierung von Qualitätsattributen allgemein anerkannt. Tatsächlich sind viele Qualitätsattribute eines Systems von dessen Softwarearchitektur abhängig und Entscheidungen, die während des Architekturentwurfs getroffen werden, haben meist einen großen Einfluss auf die Qualität des resultierenden Systems. Insofern ist bereits während des Entwurfs einer Softwarearchitektur sicherzustellen, dass Qualitätsanforderungen durch geeignete Entscheidungen und die Wahl von Architekturstilen erfüllt werden. 4

9 Der Beitrag beschreibt einen systematischen Ansatz um basierend auf Qualitätsanforderungen Softwarearchitekturen für komponentenbasierte Webanwendungen zu entwerfen. Dazu wird zunächst die am Software Engineering Institute der Carnegie Mellon Universität entwickelte Attribute Driven Design (ADD) Methode als ein Beispiel einer qualitätsorientierten Architekturentwurfsmethode vorgestellt. Die Kombination von ADD mit einer komponentenbasierten Entwurfsmethode liefert einen integrativen Ansatz für den Entwurf von qualitätsorientierten komponentenbasierten Webanwendungen. Zusätzlich werden die für Webanwendungen typischen Qualitätsanforderungen aufgeführt und die diesbezüglich geeigneten Architekturstile angegeben. 5

10 6

11 Komponentenmodell für Web-Anwendungen Autoren: Colin Atkinson; Christian Bunse; Jean-Francois Girard; Thomas Kühne Inhalt Vorwort 9 1 Einleitung Komponentenbasierte Entwicklung (CBD) Kommerzielle Off-the-Shelf-Komponenten Modellgetriebene Architekturen (MDA) Unabhängigkeit von Plattformen Produktlinien-Engineering (PLE) Frameworks Der App2Web-Ansatz Charakteristika 15 2 Schwerpunkte Containment Abstraktion Generizität 22 3 Das Komponentenmodell Komponenten Komponentenbeziehungen Laufzeitbeziehungen 28 7

12 3.2.2 Entwicklungszeitbeziehungen Document Object Model 30 4 Komponentenmodellierung Bankkontext Strukturmodell Aktivitätsmodell Interaktionsmodell Bank Spezifikation Strukturmodell Funktionales Modell Verhaltensmodell Hilfsartefakte Realisierung Strukturmodell Interaktionsmodell Aktivitätsmodell Hilfsartefakte Teller Strukturmodell Funktionales Modell Verhaltensmodell Realisierung 43 5 Schluss 44 Glossar 44 Literaturverzeichnis 49 8

13 Vorwort Dieser Bericht beschreibt das Komponentenmodell von App2Web zur Unterstützung der modellgetriebenen Entwicklung komponentenbasierter Webapplikationen. Das erste Kapitel erläutert die Motivation für diesen Ansatz und stellt die drei Hauptentwicklungsparadigmen vor, die die Grundlage für App2Web bilden. In Kapitel 2 wird dann detaillierter erklärt, wie diese integriert wurden, und es werden die Hauptentwicklungsdimensionen innerhalb eines App2Web-Projektes beschrieben. Kapitel 3 beschreibt anschließend das Gesamtmodell der Komponen-ten und Webapplikationen von App2Web, während Kapitel 4 illustriert, wie die Eigenschaften komponentenbasierter Architekturen in App2Web mit UML-Diagrammen modelliert werden können. Kapitel 5 bringt schließlich eine Zusammenfassung des Modells und eine Vorschau darauf, wie es mit größtmöglicher Wirkung bei der Entwicklung von Webapplikationen eingesetzt werden kann. 9

14 Einleitung 1 Einleitung Der Trend zur Automatisierung von Geschäften (e-business) hat dazu geführt, dass Unternehmen gezwungen sind, ihre primären Software- Systeme ins Internet zu verlagern, insbesondere ins World Wide Web [Con99]. Jedoch ist die Aktualisierung von Legacy-Software-Applikationen für das Web eine mit Kosten und Risiken verbundene Herausforderung [Rob97]. Die Webdomäne ist nicht nur mit mehr Technologien und Plattformen vollgestopft als jeder andere Bereich in der Software-Entwicklung, sondern sie ist auch die Domäne, in der sich Technologie am schnellsten entwickelt. Deshalb ist der technische und wirtschaftliche Druck in der webzentrierten Anwendungsentwicklung stärker als in fast allen anderen Bereichen des Software Engineering. Aus diesem Grunde erfordert die Anpassung, Entwicklung und Wartung von Software-Systemen für das Web neue Ansätze, die in der Lage sind, Investitionen in Software-Technologien zu schützen, während gleichzeitig Produktivität und Time-to-Market verbessert werden. Drei neue Entwicklungsparadigmen erscheinen aus dieser Sicht besonders erfolgversprechend - 1 komponentenbasierte Entwicklung (CBD) [Szy99] 2 Produktlinien-Engineering (PLE) [WL99] 3 modellgetriebene Architekturen (MDA) [OMG01] Was diese Ansätze gemeinsam haben, ist, dass ihnen allen das gleiche Ziel zugrunde liegt, nämlich mit Hilfe der Philosophie "einmal schreiben, oft verwenden" die Wiederverwendung zu fördern. Die Grundidee liegt darin, dass sich eine Investition in die Qualität kritischer Software-Artefakte dann vielfach bezahlt macht, wenn das Artefakt zur Produktion neuer Applikationen verwendet wird. Jedoch unterstützt jedes Paradigma diesen Ansatz in Form unterschiedlicher Arten von Artefakten und unterschiedlicher Schwerpunkte. 1.1 Komponentenbasierte Entwicklung (CBD) CBD trachtet danach, das Software "Return on Investment (ROI)" durch das Konzept wiederverwendbarer Komponenten zu verbessern [FHA00]. Durch Konsolidierung von Software-Entwicklungsinvestitionen im Rahmen von wiederverwendbaren Komponenten sollen Entwicklungsunternehmen immer wieder von den Vorteilen dieser Investition profitieren können, und zwar jedes Mal dann, wenn die Komponente in einer neuen Applikation wie- 10

15 Einleitung derverwendet wird. Ferner modularisiert CBD Software-Architekturen in Bezug auf Objekte und maximiert die Entkopplung dieser Module, so dass sie unabhängig voneinander entwickelt, eingesetzt und ersetzt werden können [Szy99]. In den letzten Jahren gab es beträchtliche Fortschritte im Reifegrad kommerzieller Komponententechnologien. CORBA [Sie99], Enterprise Java Beans (EJB) [MS00] und COM+ [Tap00] gehören zu den bekannten und weit verbreiteten Technologien zur Aufbereitung von Objekten in wiederverwendbare, einsatzbereite Software. Weiterhin bieten assoziierte Middleware-Technologien wie CORBAs ORBs, J2EE und.net assoziierte Plattformen, um solche Komponenten in die Software-Systeme von Unternehmen zu integrieren. Leider wenden sich diese Technologien jedoch nur an einen Teil der Komponententechnologie. Sie leisten gute Arbeit bezüglich der Unterstützung der Konzepte von Komponenten in den Phasen der Implementierung und Anwendung des Software-Lebenszyklus, aber sie wenden sich kaum der Rolle von Komponenten in früheren Phasen des Lebenszyklus zu. Insbesondere gab es bis vor kurzem wenig systematische Unterstützung für die Anwendung der MDA-Strategie im Rahmen des komponentenbasierten Produktlinien-Engineerings. Dies ist jedoch wichtig, um die Assets eines Unternehmens vor der rapiden Veränderungsgeschwindigkeit in Implementierungs- und Middleware-Technologien zu schützen [OMG01] Kommerzielle Off-the-Shelf-Komponenten Eine weitere wichtige Motivation für CBD liegt in dem, was kommerzielle Offthe-Shelf- (COTS) Komponenten versprechen. Jede Domäne hat einen Kernsatz an Komponenten, der in der einen oder anderen Form in den meisten Applikationen innerhalb dieser Domäne auftaucht. In dem Maße, in dem die Industrie sich in Richtung Komponententechnologie bewegt, rentiert es sich wirtschaftlich gesehen immer mehr, diese als allgemein wiederverwendbare Komponenten zur Verfügung zu stellen. Dies wird zu Szenarien führen, wo die Zusammensetzung neuer Applikationen aus gekauften Drittkomponenten (Portalen, etc.) eher die Regel als die Ausnahme ist. Ferner wird dies für Entwickler webzentrierter Applikationen zu einer beträchtlichen Zunahme der Produktivität und einer Abnahme der Time-to-Market führen. 1.2 Modellgetriebene Architekturen (MDA) Model-Driven Architecture (MDA) [OMG01] trachtet danach, das Return on Investment (ROI) der Software durch das Konzept plattformunabhängiger Modelle zu verbessern. Durch die Konsolidierung von Software-Entwicklungsinvestitionen in wiederverwendbaren Modellen sollen Entwicklungsor- 11

16 Einleitung ganisationen in die Lage versetzt werden, die Vorteile dieser Investition jedes Mal dann genießen zu können, wenn die Modelle in neue Implementierungen verfeinert werden. MDA entkoppelt nicht nur die Software-Assets eines Unternehmens von Plattformeigenarten, sondern erfasst auch die Schlüsselkonzepte der Architektur so, dass sie von Benutzern und Entwicklern sowie in der Wartung gleichermaßen einfach genutzt werden können. Die zunehmende Bedeutung des MDA-Ansatzes zeigt sich darin, dass er vor kurzem von der OMG als größere strategische Initiative übernommen wurde. Mit dem Schwerpunkt auf UML plant die OMG, ihre gesamte zukünftige Arbeit im Bereich Standardisierung im Rahmen des MDA-Paradigmas zu organisieren. Man muss sich jedoch darüber im Klaren sein, dass, obwohl OMGs Vision von MDA sich an graphischen Modellen (in der UML) orientiert, dies für MDA nicht wesentlich ist. MDA erfordert lediglich, dass die Kerneigenschaften der Architektur eines Systems plattformunabhängig erfasst werden. Ob die dafür verwendete Notation graphisch oder textuell ist, ist uninteressant. Die Trennung der Kernkonzepte der Architektur von plattformspezifischen Details ist ein bedeutender Schritt zur Vereinfachung der Architektur eines Systems, aber sie erklärt nicht, wie die Information über die Architektur selbst organisiert werden sollte. Dies stellt für große Architekturen ein größeres Problem dar. Die besten Strategien dafür sind die CBD- und PLE-Ansätze [BFK99]. Die Integration der MDA-Sicht mit CBD und PLE ist deshalb ein wichtiger Schritt nach vorn zur Unterstützung der MDA selbst Unabhängigkeit von Plattformen Das MDA-Konzept beruht darauf, dass abstrakte Beschreibungen kosteneffektiv und verlässlich auf konkrete, ausführbare Beschreibungen abbildbar sind. Jedoch ist die Technik dafür momentan noch unreif. Heutige Modelle werden entweder von Hand, mehr oder weniger ad hoc, auf ausführbare Formen abgebildet, oder auf formale, kontextunabhängige Art, die die genauen Erfordernisse der betreffenden Applikation oder Technik nicht berücksichtigt. Wichtig sind deshalb wiederverwendbare Abbildungen bzw. Techniken zur Transformation von Modellen in funktionsfähige Applikationen. Die Hauptidee besteht darin, dass zu einer MDA die Definition von Modellen gehört, die in konkretere Repräsentationen verfeinert werden müssen, um ausführbare Applikationen zu schaffen. 12

17 Einleitung 1.3 Produktlinien-Engineering (PLE) PLE trachtet danach, das Software "Return on Investment (ROI)" durch das Kon-zept wiederverwendbarer Frameworks zu verbessern. Durch die Konsolidierung von Software-Entwicklungsinvestitionen innerhalb eines wiederverwendbaren Frameworks sollen Entwicklungsorganisationen in die Lage versetzt werden, die Vorteile dieser Investition jedes Mal von Neuem zu genießen, wenn ein Frame-work zur Schaffung einer neuen Applikation instantiiert wird [WL99, BFK99]. PLE basiert auf der Beobachtung, dass Software-Entwicklungsorganisationen selten, wenn überhaupt, nur eine einzige Version eines Systems oder einer Kom-ponente entwickeln. Ganz im Gegenteil: erfolgreiche Software- Produkte müssen in verstärktem Maße in verschiedenen Versionen verkauft werden, von denen jede auf die Bedürfnisse eines bestimmten Kunden oder Marktsegmentes zuge-schnitten ist. Ein gutes Beispiel dafür sind E-Commerce-Systeme, die auf der gleichen Technik basieren, aber unterschiedliches Verhalten oder unterschiedli-che Features für verschiedene Firmen bieten. Die Produktlinienmetapher ist zu einem beliebten Weg geworden, eine solch familienorientierte Sicht von Software-Entwicklung zu unterstützen. Die Kernidee des Produktlinienansatzes ist es, die gemeinsamen und die variablen Teile einer Familie zu identifizieren und explizit zu beschreiben Frameworks Das wiederverwendbare Artefakt im PLE wird gemeinhin als Framework oder als Referenzarchitektur bezeichnet [BFK99]. Ein Framework umschließt die Artefakte, die der Produktfamilie gemeinsam sind, und zwar auf allen Granularitäts- und Ge-nerizitätsebenen, und ferner in gewissem Maße auch Informationen über die vari-ablen Teile. In einfachster Form kann die Berücksichtigung der Variabilitäten in der Definition von Erweiterungspunkten oder Hotspots bestehen, deren Ziel die Vereinfachung des Adaptionsprozesses ist. In allgemeinster Form kann die Be-rücksichtigung der Variabilitäten in einer kompletten Beschreibung aller variablen Features der Produktfamilie und der Feature-Auswahl für bestimmte Mitglieder der Familie bestehen. In allen Fällen besteht die Grundidee darin, dass ein Framework generische Arte-fakte enthält, die für bestimmte Applikationen instantiiert werden müssen. 1.4 Der App2Web-Ansatz Software-Entwicklungsorganisationen, die Software auf einem wettbewerbsinten-siven Markt entwickeln, haben alle die gleichen drei Wünsche - 13

18 Einleitung sie wollen Soft-ware schneller entwickeln, sie wollen Software billiger entwikkeln und sie wollen Software von höherer Qualität entwickeln. Natürlich sind diese drei Variablen eng miteinander verwandt. Verbesserung bei einer oder sogar zwei von ihnen lässt sich zwar auf Kosten der anderen erreichen. Das eigentliche Ziel besteht aber darin, bei allen drei Variablen gleichzeitig eine Verbesserung zu erzielen. Der App2Web-Methode für die Entwicklung webzentrierter Software-Applikationen gelingt dies durch die Integration der drei State-of-the-Art Entwicklungsparadig-men, die im vorhergehenden Kapitel vorgestellt wurden: nämlich CBD, MDA und PLE. Außerdem bietet sie eine systematische und skalierbare Strategie zur Verbreitung der Vorteile dieser Paradigmen für die webbasierte Entwicklung. Das bedeutet, dass die Ideen sowohl auf kleine als auch auf große Systeme gleicher-maßen anwendbar sind, und zwar in einfacher oder fortgeschrittener Art und Wei-se. Schnellere Time-To-Market: Wenn eine Organisation einmal entsprechend in wiederverwendbare Artefakte investiert hat, seien es nun Kom-ponenten, Modelle oder Frameworks, dann wird damit die zur Schaffung neuer Applikationen erforderliche Zeit erheblich reduziert. Oft kann dies durch Anpassung oder Kapselung eines existierenden (Legacy) Software-Systems oder durch den Kauf von Fremdkomponenten (COTS) erreicht werden. Höhere Produktivität: Im Laufe der Zeit reduziert die Eigenschaft des App2Web-Ansatzes, nämlich "einmal schreiben, oft verwenden", den zur Entwicklung neuer Applikationen auf vorgegebenem Qualitätsniveau und mit vorgegebener Geschwindigkeit erforderlichen Aufwand erheblich. Dies entspricht höherer Produktivität bezüglich der mit Software Enginee-ring verbrachten Gesamtzeit und deshalb letztendlich niedrigeren Kosten. Die Gewinne bezüglich der Produktivität sind dann besonders groß, wenn eine vorgegebene logische Applikation auf multiplen Plattformen unter-stützt wird. Der App2Web-Ansatz reduziert deshalb die bei der Aufrecht-erhaltung industrieller Standards entstehenden Kosten ganz erheblich. Qualität: Dadurch, dass man den Entwicklungsaufwand auf einige weni-ge Software-Assets konzentriert, statt ihn gleichmäßig über alle Artefakte zu verteilen, kann man auch den Aufwand für die Qualitätskontrolle bün-deln. In der Tat ist dies sogar eher eine Notwendigkeit als eine Möglich-keit. Die Strategie des "einmal schreiben, oft verwenden" ist bestimmt nicht hilfreich, wenn nicht sogar vollkommen katastrophal, wenn die wie-derverwendeten Kernartefakte von geringer Qualität sind. Jedes Mal, wenn das Asset wieder verwendet wird, wird die geringe Qualität verteilt, was notwendigerweise später zu größerem Aufwand bei der Beseitigung der Probleme führt. Aus dem gleichen Grund macht 14

19 Einleitung sich jedoch die Inves-tition in die Schaffung von wiederverwendbaren Artefakten mit hoher Qualität wirklich bezahlt, wenn diese Qualität automatisch in neue Appli-kationen eingebettet wird, und zwar fast ohne jeglichen Aufwand Charakteristika Die von CBD, MDA und PLE verkörperten Ideen sind nicht neu. Neu ist die Art und Weise, in der diese im App2Web-Ansatz integriert und aufbereitet wurden, einer Art und Weise mit folgenden Eigenschaften - Systematisch: Die Methode bietet systematische und präskriptive Anlei-tungen zur Optimierung der Vorteile dieser Möglichkeiten bei der Produk-tion und Wartung webbasierter Applikationen. Alle Engineering- Artefakte werden unabhängig von den zu ihrer Schaffung empfohlenen Prozessen definiert, wodurch Organisationen in die Lage versetzt werden, ihre eige-ne Variante des Prozesses anzuwenden. Skalierbar: Die Methode ist sowohl bezüglich der Komplexität als auch bezüglich der Größe skalierbar. Skalierbarkeit bezüglich der Komplexität bedeutet, dass sie auf einfache "leichtgewichtige" Art wie auch auf eine fortgeschrittenere "schwergewichtige" Art angewandt werden kann. Wei-terhin sind die verschiedenen Konzepte orthogonal definiert, wodurch sie schrittweise eingeführt werden können, wenn der Reifegrad der Organisa-tion zunimmt. In ihrer "leichtgewichtigen" Form ist die Methode so einfach wie nur praktisch möglich. Standardisierung: Soweit wie möglich entspricht die Methode den rele-vanten Standards. Im Besonderen ist die Methode kompatibel mit allen wichtigen Webstandards (DOM, XML), Komponentenstandards (COM, EJB, CORBA), Middleware-Standards (.NET, J2EE, CORBA) und mit der UML. 15

20 Schwerpunkte 2 Schwerpunkte Wie bereits im vorhergehenden Kapitel erläutert, hat App2Web zum Ziel, die Effizienz und Zuverlässigkeit weborientierter Entwicklung durch die Verbindung komponentenbasierter Entwicklung mit modellgetriebenen Architekturen und Paradigmen aus dem Produktlinien-Engineering zu verbessern. Dieses Kapitel zeigt auf, wie dies in App2Web erreicht wird. Ziel des Kapitels ist nicht, die Methode per se darzustellen, sondern vielmehr die verschiedenen Schwerpunkte in einem App2Web-Projekt und deren Verwandtschaft zueinander zu beschreiben. Die Kapitel 3 und 4 liefern weitere Einzelheiten über die von App2Web identifizierten Engineering-Artefakte (d.h. das Produkt). Die Strategie von App2Web bezüglich der Integration der CBD-, MDA- und PLE-Paradigmen basiert auf dem KobrA-Ansatz [Atk01]. Dessen grundlegende Idee ist es, dass CBD, MDA und PLE jeweils mit einem separaten, orthogonalen Schwerpunkt assoziiert sind. Die Containment-Dimension befasst sich mit CBD und beschreibt, wie große Komponenten aus kleineren Komponenten zusammengesetzt sind. Die Abstraktionsdimension befasst sich mit MDA und beschreibt, wie abstrakte Modelle der Architektur eines Systems in konkrete, ausführbare Versionen abgebildet werden. Die Generizitätsdimension befasst sich mit PLE und beschreibt, wie generische Artefakte in konkrete Artefakte instantiiert werden. In seiner allgemeinsten Form beginnt ein App2Web-Entwicklungsprojekt mit einer generischen, abstrakten Black-Box-Beschreibung des zu entwickelnden Systems. Sie ist generisch, weil sie eventuell Varianteneigenschaften (d.h. Parameter) hat, sie ist abstrakt, weil sie hauptsächlich aus UML-Modellen auf Ebene von Analyse und Entwurf besteht, und sie ist eine Black Box, weil sie nur die äußerlich sichtbaren Eigenschaften des Systems beschreibt, wenn man sie als ein Ganzes betrachtet. Um eine ausführbare Version dieses Systems zu schaffen, muss man: 1 eine Instanz des Systems schaffen, die die Bedürfnisse einer bestimmten Applikation erfüllt, indem sie die Generizität entfernt (Instantiierung) 2 das System in feinkörnigere Teile zerlegen, um einen Baum ineinander geschachtelter Komponenten zu erhalten (Dekomposition) 3 das Abstraktionsniveau reduzieren und die Repräsentation verändern, um eine ausführbare Repräsentation des Systems und seiner Teile zu schaffen (Embodiment) 16

21 Schwerpunkte Die Durchführung aller drei Aktivitäten erzeugt ein System, das aus feinkörnigeren Komponenten mit geringerer Generizität (d.h. keiner) und einer konkreten (d.h. ausführbaren) Repräsentation besteht. Die Trennung dieser Schwerpunkte bedeutet nicht, dass sie sequentiell behandelt werden. Im Gegenteil, da sie in App2Web wirklich orthogonal sind, können sie in unterschiedlicher Reihenfolge behandelt werden, und sogar willkürlich miteinander verbunden werden, je nach den genauen Umständen in einem bestimmten Projekt. Die einzige Bedingung für eine strenge Trennung besteht darin, dass der Entwickler an jedem beliebigen Punkt des Entwicklungsprozesses genau weiß, an welchem Schwerpunkt er/sie gerade arbeitet. Vor einer genaueren Betrachtung der einzelnen Schwerpunkte ist es von Nutzen, die allgemeine Beschreibung der Komponente in App2Web mit allen möglichen Modellen in Betracht zu ziehen (d.h., der Gebrauch aller Modelle ist nur bei dem schwergewichtigen Ansatz erforderlich, für die verschiedenen leichtgewichtigen Varianten des Ansatzes wird nur eine Untermenge dieser Modelle verwendet). In der schwergewichtigen Version von App2Web werden die Eigenschaften einer Komponente mittels einer Menge verwandter UML-Modelle beschrieben. Nach dem Prinzip der Kapselung werden diese Modelle getrennt nach "Spezifikation" (beschreibt, was eine Komponente macht) und "Realisierung" (beschreibt, wie sie es macht). Die Spezifikation einer Komponente beschreibt die Anforderungen, sowohl funktionale wie auch nicht-funktionale, die die Komponente erfüllen soll, und die Erwartungen, die die Komponente an ihre Umgebung stellt. Die Realisierung hingegen beschreibt den Entwurf, mit dem die Komponente diese Anforderungen erfüllt, zum Teil mit Hilfe von Server-Komponenten. Eine Komponente besitzt genau eine Spezifikation und höchstens eine Realisierung. 17

22 Schwerpunkte Abbildung 1: Komponentenmodelle. Spezifikation Funktional ( Operation Verhalten (UM statechart Komponente Strukturell (UML Klasse/Objekt Interaktion (UML Kollaboration Strukturell (UML Klasse/Objekt Ausführung (UML Aktivität Realisierung 2.1 Containment Die Containment-Dimension beschäftigt sich mit der Dekomposition des Systems in Komponenten (d.h. Subsysteme). Diese Komponenten wiederum können in kleinere Komponenten zerlegt werden, bis eine Hierarchie ineinander geschachtelter Komponenten erreicht ist. Die Modelle, die einzelne Komponenten beschreiben, sind hierarchisch aufgebaut, siehe Abb. 2, um die Schachtelung von Komponenten zu erfassen. Die Modelle für eine bestimmte Komponente sind nach strikten Konsistenzregeln mit denen ihrer Subkomponente verwandt [ATK01]. 18

23 Schwerpunkte Abbildung 2: Komponentenbasierte, modellgetriebene Architektur U Clientship + Containment rules Containment rules Clientship + Containment rules Clientship rules V X Cliensthip W rules Clientship + Containment rules Clientship rules Z 2.2 Abstraktion Die Abstraktionsdimension ist für die Verwirklichung der MDA-Aspekte des App2Web-Ansatzes verantwortlich. Es ist die Dimension, in der abstrakte Modelle der Systemarchitektur auf konkrete, ausführbare Formen abgebildet werden. Im Sinne von KobrA [Atk01] wird der Prozess der Erstellung einer ausführbaren Version einer logischen Komponente in App2Web als Embodiment bezeichnet. Wenn keine geeignete, bereits existierende Komponente gefunden und wiederverwendet werden kann, dann besteht Komponenten-Embodiment letztendlich daraus, es nach den entwickelten Modellen neu zu implementieren. Diese Implementierung entspricht dem Quellkode oder anderen Artefakten wie z.b. HTML-Dokumenten. Da die Komponentenmodellierung eine abstrakte Beschreibung der Komponenten und ihrer Beziehungen zueinander, auf Analyse- und Entwurfsebene, liefert, können diese in praktisch allen üblichen Implementierungstechniken implementiert werden, inklusive physikalischer Komponententechnologien wie JavaBeans, Enterprise JavaBeans, CORBA und DCOM. 19

24 Schwerpunkte Die meisten Methoden geben dem Benutzer nur eine Menge von Modellen und eine Menge von Richtlinien an die Hand, die spezifizieren, wie jedes abstrakte Modellierungsfeature auf ein Set von äquivalenten Programmierungssprachenkonzepten abgebildet werden kann. Solche Richtlinien zielen deshalb in erster Linie darauf ab, Implementierungsdetails und die Änderung der Repräsentation in einem einzigen großen Schritt darzustellen, wie durch die diagonale Linie von der Realisierung (d.h. Entwurf) zum Quellkode in Abb. 3 kenntlich gemacht wird. Jedoch steigert das nicht nur die Komplexität der Transformation, was potentiell zu reduzierter Qualität führen kann, sondern es verringert auch die Möglichkeiten zur Wiederverwendung. Abbildung 3: Direkte Transformation von Modellen Abstraktionsebene Realisierung Automatisierte Transformation (z.b. Kompiler, IDL-Prozessoren, etc.) Quellkode Implementierungsebene UML-Modelle Quellkode (z.b. C++) Binärkode Binär Repräsentationsform Im Gegensatz dazu trennt App2Web den Transformationsprozess streng in verschiedene Verfeinerungs- und Übersetzungsschritte. Wie in Abb. 4 dargestellt, geht es bei der Verfeinerung um die Beschreibung von Modellelementen auf einer tieferen Abstraktionsebene, aber mit der gleichen Notation, während es bei der Übersetzung um die Abbildung von Modellelementen auf Programmelemente geht. Diese Trennung vereinfacht nicht nur die einzelnen Transformationsschritte, sondern erlaubt auch die Wiederverwendung von Richtlinien zu zahlreichen Sprach- und Implementierungstechnologien. 20

25 Schwerpunkte Abbildung 4: Trennung von Verfeinerung und Übersetzung Abstraktionsebene Realisierung Verfeinerung Automatisierte Transformation (z.b. Kompiler, IDL-Prozessoren, etc.) Übersetzung Implementierungsmodelle Quellkode Implementierungsebene UML Modelle Quellkode (z.b. CC+) Binärkode Binär Repräsentationsform Folgt man diesem Ansatz, so erhält man eine UML-Repräsentation des Quellkodes, jedoch mit Modellelementen auf Implementierungsebene. Ein solches "Implementierungs-" Modell ergänzt den Quellkode und wird unter Verwendung eines speziell definierten Implementierungsprofils der UML konstruiert. Eine der Schlüsselfragen, die bei der Implementierung von Komponenten gelöst werden müssen, ist, wie logische Komponenten auf physikalische Komponenten abgebildet werden sollen. Eine physikalische Komponente repräsentiert eine Software-Einheit, die separat einsetzbar und ersetzbar ist. Die Komponenten traditioneller Komponententechnologien stellen deshalb physikalische Komponenten dar, aber ganz allgemein wird in App2Web jede separat ausführbare Software-Einheit, wie ein Hauptprogramm oder ein Applet, etc. auch als physikalische Komponente betrachtet. Im Allgemeinen kann eine Komponente in einem Containment Tree auf verschiedene Arten durch physikalische Komponenten "realisiert" werden. Auf der einen Seite kann der ganze Baum auf eine einzige physikalische Komponente abgebildet werden, während auf der anderen Seite jede einzelne logische Komponente auf eine separate physikalische Komponente abgebildet werden kann. Die Wahl ist abhängig von der Beschaffenheit der Zielumgebung, von den Leistungsanforderungen und vom gewünschten Grad an Auswechselbarkeit zur Laufzeit. 21

26 Schwerpunkte 2.3 Generizität Die Generizitätsdimension befasst sich mit der Definition und Verwendung generischer Komponenten zur Erfassung der variablen Eigenschaften einer Produktlinie (oder eines konfigurierbaren Sets von Produkten). Wird sie zur Unterstützung einer Produktlinie verallgemeinert, so kann man sich vorstellen, dass jede Komponente im Containment Tree eine Familie von Systemen definiert - von denen jedes Mitglied eine andere Variante repräsentiert. Eine Komponente, die eine Familie von Systemen (oder Komponenten) statt nur einem darstellt, wird als generische Komponente bezeichnet, und die Artefakte, aus denen sie zusammengesetzt ist, werden als generische Artefakte bezeichnet. Nicht jede Komponente in einem Framework muss generisch sein. Es ist sogar so, dass im Extremfall keine der Komponenten in einem Framework generisch sein muss. Jedoch stellt ein solches Framework eine Situation dar, in der eine Produktlinie nur ein Mitglied hat. Sobald mehr Mitglieder identifiziert werden, muss eine oder mehrere der Komponenten in dem Framework generisch sein. Eine generische Komponente unterscheidet sich von einer spezifischen Komponente hauptsächlich auf zwei Arten: Die regulären Artefakte, die die Komponente beschreiben, erfassen alle Features für alle Mitglieder der durch die Komponente repräsentierten Familie. Zusätzlich verwenden sie den Stereotyp <<Variante>>, um Features hervorzuheben, die nicht allen Mitgliedern der Familie gemeinsam sind (d.h. Features, die Variabilitäten zwischen Familienmitgliedern darstellen). Das ermöglicht die UML-konforme Modellierung generischer Komponenten. Ein weiteres, unter dem Namen Entscheidungsmodell bekanntes Artefakt, ist definiert, das die Variabilitäten in der Familie zu äußerlich sichtbaren Wahlmöglichkeiten in Beziehung setzt, die zusammen ein bestimmtes Mitglied der Familie identifizieren. Dies bezieht sich sowohl auf die Spezifikation als auch auf die Realisierung einer Komponente. Mit anderen Worten haben die Spezifikation und die Realisierung einer Komponente beide ihre eigenen Entscheidungsmodelle, die die in ihren jeweiligen Modellen erfassten variablen Features in Beziehung zueinander setzen. Das ist wichtig, da dadurch Variabilitäten in Komponentenrealisierungen separat von Variabilitäten in Komponentenspezifikationen behandelt werden können. Tatsächlich sollten die Variabilitäten in der Realisierung einer Komponente von der Definition her verwandt sein mit den Variabilitäten in ihrer nicht-funktionalen Anforderungsspezifikation (innerhalb ihrer Spezifikation), da unterschiedliche Realisierungen nur Änderungen in 22

27 Schwerpunkte der Art hervorrufen sollten, "wie gut" eine Realisierung nicht-funktionale Anforderungen unterstützt. Generische Frameworks umfassen eine Reihe von Anwendungen. Um eine spezifische Anwendung aus einem solchen Framework abzuleiten, muss die Generizität aus dem Framework entfernt werden, um es spezifisch zu machen. Das nennt man Anwendungsengineering. Der Zweck des Anwendungsengineerings ist es, eine spezifische Menge von Artefakten zu generieren, die die Bedürfnisse eines bestimmten Systems erfüllt. Im Rahmen einer Produktlinie tut es dies durch Instantiierung des Frameworks, das innerhalb des Framework Engineerings entstanden ist. Ein Framework wird instantiiert, indem man systematisch alle Entscheidungsmodelle auflöst und die generischen Framework-Artefakte in konkrete Anwendungsartefakte umwandelt. Aus praktischer Sicht besteht der einzige Unterschied zwischen einer generischen Komponente in einem Framework und einer spezifischen Komponente in einer Applikation darin, ob sie ein Entscheidungsmodell hat oder ein Entscheidungslösungsmodell. Spezifische Komponenten haben Entscheidungslösungsmodelle, die aufzeichnen, wie die Entscheidungen in dem Entscheidungsmodell für die betreffende Komponente gelöst wurden. 23

28 Das Komponentenmodell 3 Das Komponentenmodell Dieses Kapitel erläutert App2Webs Sicht von Komponenten und deren Rolle bei der Beschreibung von Webapplikationen. Das App2Web-Komponentenmodell basiert auf dem KobrA-Modell [Atk01], angereichert mit Möglichkeiten zur Unterstützung der Konzepte, die Webapplikationen eigen sind. Dieses Komponentenmodell wurde mit zwei grundlegenden Zielsetzungen entwikkelt. Das erste Ziel war die Unterstützung eines modellgetriebenen Ansatzes zur komponentenbasierten Software-Entwicklung, in dem Komponenten im Brennpunkt von Analyse und Entwurf wie auch der Implementierung stehen können. Dies erfordert ein Modell der Komponenten und ihrer Beziehungen, das mit Hilfe graphischer Diagramme wie der der UML erfasst werden kann. Der Vorteil, Komponenten und komponentenbasierte Architekturen auf hoher Abstraktionsebene vergleichbar zu Analyse und Entwurf zu beschreiben, liegt darin, dass die Kernarchitektur eines Systems unabhängig von spezifischen Implementierungsplattformen erfasst werden kann. Dies wiederum macht die Architektur viel stabiler in Bezug auf Veränderungen. Das zweite Ziel bestand darin, ein rekursives Modell zu liefern, in dem Komponenten bis in beliebige Tiefen geschachtelt werden können, und wo die Zusammensetzung von Komponenten als Schaffung von Komponenten auf höherer Ebene angesehen werden kann. Unter anderem erfordert dies, dass ein System als Ganzes als Komponente betrachtet und genauso behandelt wird wie jede andere Komponente auch, gleich an welcher Stelle der Hierarchie sie sich befinden mag. Der Vorteil eines rekursiven Komponentenmodells ist, dass die selben grundlegenden Modellierungsgrundsätze und Entwicklungsaktivitäten (einschließlich eingebauter Testprinzipien) gleichmäßig angewendet werden können, unanhängig von der Größe einer Komponente oder ihrer Stellung in der Kompositionshierarchie. 3.1 Komponenten Eine präzise und wasserdichte Definition von Komponenten zu geben war schon immer eine sehr heikle Sache. Eine der bekanntesten Definitionen ist die bei der European Conference on Object-Oriented Programming 1996 [Szy99] formulierte: "A software component is a unit of composition with contractually specified interfaces and context dependencies only. A software component 24

29 Das Komponentenmodell can be deployed separately and is subject to composition by third parties." Dies vermittelt die Kernaussagen, dass nämlich eine Komponente eine eigenständige Software ist, mit wohldefinierten Interaktionspunkten und - modi, und dass sie mit anderen Komponenten zu größeren Software-Gebilden verbunden werden soll. Die gleiche Kernaussage wird auch von der Definition der UML vermittelt [OMG00]. Daher übernimmt auch App2Web diese Arbeitsdefinition. Obwohl dies ein guter Ausgangspunkt ist, bleiben doch viele Fragen offen. Es sind insbesondere keine konkreten Aussagen darüber enthalten, welchen Bezug das Konzept der Komponenten zu Entwicklungszeit- und Laufzeitaspekten des Software-Lebenszyklus hat. Dabei geht es besonders darum, ob eine Komponente als ein Typ (Entwicklungszeit) angesehen werden soll oder als eine Instanz eines Typs (Laufzeit). Im Allgemeinen kann das Konzept der Komponenten sowohl eine Laufzeit- als auch eine Entwicklungszeitinkarnation haben [Szy99]. Verschiedene Komponententechnologien gehen unterschiedlich mit diesen verschiedenen Inkarnationen (oder Facetten) um. Einige, wie COM, ignorieren die Entwicklungszeitfacette und sehen eine Komponente nur als eine Laufzeitentität. Andere, wie die UML, ignorieren die Laufzeitfacette und sehen eine Komponente nur als Entwicklungszeitartefakt. Wieder andere, wie JavaBeans, verwenden den Begriff Komponente (bzw. sein Synonym Bean) für beide. Anders ausgedrückt, bedeutet der Begriff Bean manchmal einen Komponententyp (Entwicklungszeit) und ein anderes Mal eine Komponenteninstanz (Laufzeit). Um potentielle Verwirrung so gering wie möglich zu halten, befolgen wir in App2Web den UML-Ansatz und gebrauchen ausdrücklich den Begriff "Komponenteninstanz" für die Laufzeitversion von Komponenten. Damit bezieht sich der Begriff "Komponente" eindeutig auf die Entwicklungszeitversion von Komponenten: das heißt, auf einen instantiierbaren Typ. Eine weitere wichtige Wahl, die in Bezug auf das Konzept der Komponenten zu treffen ist, besteht darin, ob man sich Komponenten als Entitäten vorstellen soll, die auf Grund ihres Inhalts Services zur Verfügung stellen, oder als Entitäten, die auf Grund ihrer eigenen Verhaltenseigenschaften Fähigkeiten zur Verfügung stellen. Dieser Unterschied kann charakterisiert werden als Unterschied zwischen einem Modul (d.h. einem Container) und einer Klasse. Wie bei der vorhergehenden Wahl gibt es auch hier wieder drei grundlegende Ansätze: 1 Einige Komponentenmodelle, wie die UML und JavaBeans, nehmen den Modul- (Container) Ansatz. In ihrer Sicht haben Komponenten nur als Folge der anderen Entitäten, die sie beinhalten (z.b. Operationen, Objekte, etc.), ein Verhalten. 25

30 Das Komponentenmodell 2 In der Sicht anderer Komponentenmodelle, wie COM und CORBA, haben sie selbst Verhaltenseigenschaften. 3 App2Web verfolgt einen Hybridansatz, in dessen Sicht Komponenten beide Ansichten integrieren. Mit anderen Worten: eine Komponente wird als ein Hybrid von Klassen- und Modulkonzept angesehen. In App2Web hat eine Komponente modulähnliche Eigenschaften (d.h. paketähnliche Eigenschaften in der UML), da sie einen Namensraum repräsentiert und Inhalte besitzt, aber sie hat auch klassenähnliche Eigenschaften, da sie Operationen und Attribute besitzt, die anderen Komponenten dienen. In diesem Sinn ähnelt eine App2Web-Komponente mehr einem UML-Subsystem als einer UML-Komponente. Anders als bei UML-Subsystemen haben App2Web-Komponenten jedoch ihre eigenen Features. Zusammenfassend lässt sich sagen, dass in App2Web eine Komponenteninstanz als ein Objekt betrachtet wird, das anderen Objekten eine Reihe von Services in Form einer Reihe von Operationen liefert, und das ähnliche Services von anderen Objekten nutzt. Der Begriff "Komponente" bezieht sich andererseits auf einen Typ, von dem aus Komponenteninstanzen instantiiert werden können. Eine Komponente verbindet die Eigenschaften eines Moduls (dadurch, dass sie einen Namensraum mit Inhalten repräsentiert) mit den Eigenschaften einer Klasse (dadurch, dass sie die Operationen und Attribute ihrer Instanzen definiert). Abbildung 5: SIB Komponenteninstanzen. :Client <<acquires> :Bank << acquires :Converter <<creates> << creates :Teller << acquires :Dictionary Abb. 5 ist ein UML-Objektdiagramm, das eine Menge von Laufzeitkomponenten zeigt, die Teil eines kleinen Systems namens Simple International Banking (SIB) System sind. Dieses System bietet seinen Benutzern einfache Kontoführung und Währungsumrechnung. Wie aus der Abbildung zu entnehmen ist, stellt eine einzige Bank-Komponenteninstanz zahlreichen Clients ihre Dienste zur Verfügung. Der <<acquires>> Stereotyp auf diesem und anderen Links zeigt an, dass Sichtbarkeit zur Laufzeit erlangt wird. Die Cli- 26

31 Das Komponentenmodell ents erhalten also dynamisch Sichtbarkeit zur Bank. Die Abbildung zeigt auch, dass die Bank eine Converter-Komponenteninstanz erwerben muss, und sie enthält ihre eigenen Teller- und Dictionary-Komponenteninstanzen. Abbildung 6:SIB Komponenten. BankContext <<creates> <<creates> <<creates> «komponent» Client <<acquires> «komponent» Bank << acquires «komponent» Converter <<creates> <<creates> «komponent» Teller << acquires >> «komponent» Dictionary Abb. 6 ist ein UML-Paketdiagramm, das die Entwicklungszeitkomponententypen (d.h. Komponenten) darstellt, aus denen die Komponenteninstanzen in Abb. 5 generiert werden. Dieses Diagramm betont die Paketfacette von Komponenten, während Abb. 3-1 indirekt die Klassenfacette zeigt, indem es die Komponenteninstanzen zeigt. Der Ansatz von App2Web zur expliziten Beschreibung der Klassenfacette wird in Kapitel 4 beschrieben. Die <<acquires>> und <<creates>> Beziehungen zwischen Komponenteninstanzen zur Laufzeit (Abb. 5) können auch auf ihren Typen gezeigt werden (Abb. 6). Obwohl man Komponenteninstanzen als Objekte betrachten kann, und Komponenten als Klassen, ist es wichtig, sich darüber bewusst zu sein, dass diese nicht nur in einem System verwendete Objekte und Klassen sind. Andere "reguläre" Klassen und Objekte spielen ebenfalls eine wichtige Rolle in einem System. Ganz allgemein formuliert stellen Komponenten die strukturellen Einheiten eines Systems dar, das den größten Teil der komplexen Funktionalität kapselt. Dies bedeutet, dass es normalerweise nur einige wenige Instanzen in einem System gibt (in der Tat handelt es sich oft um Singletons). Einfache Klassen dagegen stellen normalerweise informationsübertragende Einheiten eines Systems dar und kapseln nur begrenzte Funktiona- 27

32 Das Komponentenmodell lität, welche direkt mit Datenzugriffsfunktionen zu tun hat. Das bedeutet, dass es oft viele Instanzen von ihnen in einem System gibt. 3.2 Komponentenbeziehungen Die nächste große Frage, die sich in Bezug auf das Konzept der Komponenten stellt, ist, "Wie werden Komponenten zusammengefügt, um nützliche Systeme zu schaffen?" Einmal mehr ist die Unterscheidung zwischen den Laufzeit- und den Entwicklungszeitfacetten eines Systems ungeheuer wichtig, um diese Frage konkret beantworten zu können Laufzeitbeziehungen Zur Laufzeit sind zwei grundlegende Arten von Beziehungen von Komponenten untereinander wichtig - 1 Komposition 2 Clientship Basierend auf dem gleichnamigen UML-Konzept ist Komposition die Vorstellung, dass eine Komponente ein privater Teil einer anderen Komponente ist und mit dieser bezüglich ihrer Identität und Lebenszeit eng verbunden ist. Komposition ist deshalb eine Laufzeitbeziehung zwischen Komponenteninstanzen, die die Grundidee widerspiegelt, dass etwas eine Komponente von etwas anderem ist. In Abb. 3-1 wird die Tatsache, dass die Teller- und Dictionary-Komponenten-instanzen Teile der Bankinstanz sind, durch die Kompositionsbeziehungen zwischen ihnen (d.h. die schwarzen Rauten) gekennzeichnet. Komposition ist jedoch nicht wirklich ein wichtiges Element komponentenorientierter Systeme. Eine noch grundlegendere Beziehung, die wichtiger Bestandteil von Komponentenorientierung ist, ist die Clientship-Beziehung. Das ist die Grundbeziehung zwischen Komponenten, die mittels Operations- (Methoden-) Aufrufen interagieren. Bei jeder Interaktion ist der Aufrufer einer Operation (Methode) der Client, während der Besitzer der Operation der Server ist. Basierend auf der schon lange bestehenden Semantik objektorientierter Sprachen ist die Clientship-Beziehung asymmetrisch, d.h. der Client kennt die Identität seiner Server, aber die Server kennen normalerweise die Identität ihrer Clients nicht. Die Kompositions- und Clientship-Beziehungen haben von einem strukturellen Standpunkt her gesehen ganz unterschiedliche Eigenschaften. Im Allgemeinen stellt sich Komposition durch einen Baum von Objekten dar, während 28

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

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

Mehr

Speicher in der Cloud

Speicher in der Cloud Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG

Mehr

1 Mathematische Grundlagen

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

Mehr

Was sind Jahres- und Zielvereinbarungsgespräche?

Was sind Jahres- und Zielvereinbarungsgespräche? 6 Was sind Jahres- und Zielvereinbarungsgespräche? Mit dem Jahresgespräch und der Zielvereinbarung stehen Ihnen zwei sehr wirkungsvolle Instrumente zur Verfügung, um Ihre Mitarbeiter zu führen und zu motivieren

Mehr

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

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

Mehr

Insiderwissen 2013. Hintergrund

Insiderwissen 2013. Hintergrund Insiderwissen 213 XING EVENTS mit der Eventmanagement-Software für Online Eventregistrierung &Ticketing amiando, hat es sich erneut zur Aufgabe gemacht zu analysieren, wie Eventveranstalter ihre Veranstaltungen

Mehr

Die wichtigsten Werkzeuge, um UNTERNEHMENSKULTUR BEWUSST zu gestalten.

Die wichtigsten Werkzeuge, um UNTERNEHMENSKULTUR BEWUSST zu gestalten. 3 Die wichtigsten Werkzeuge, um UNTERNEHMENSKULTUR BEWUSST zu gestalten. Rasante Marktverände-rungen und eine ständig wachsende Komplexität beeinflussen heute die Unternehmensentwicklung mehr denn je zuvor.

Mehr

Grundlagen Software Engineering

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

Mehr

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG von Urs Schaffer Copyright by Urs Schaffer Schaffer Consulting GmbH Basel www.schaffer-consulting.ch Info@schaffer-consulting.ch Haben Sie gewusst dass... >

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

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

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

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

Mobile Intranet in Unternehmen

Mobile Intranet in Unternehmen Mobile Intranet in Unternehmen Ergebnisse einer Umfrage unter Intranet Verantwortlichen aexea GmbH - communication. content. consulting Augustenstraße 15 70178 Stuttgart Tel: 0711 87035490 Mobile Intranet

Mehr

Leseprobe. Thomas Konert, Achim Schmidt. Design for Six Sigma umsetzen ISBN: 978-3-446-41230-9. Weitere Informationen oder Bestellungen unter

Leseprobe. Thomas Konert, Achim Schmidt. Design for Six Sigma umsetzen ISBN: 978-3-446-41230-9. Weitere Informationen oder Bestellungen unter Leseprobe Thomas Konert, Achim Schmidt Design for Six Sigma umsetzen ISBN: 978-3-446-41230-9 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41230-9 sowie im Buchhandel. Carl

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

Softwaretechnik (Allgemeine Informatik) Überblick

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

Mehr

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

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

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.

Mehr

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler? FAQ Spielvorbereitung Startspieler: Wer ist Startspieler? In der gedruckten Version der Spielregeln steht: der Startspieler ist der Spieler, dessen Arena unmittelbar links neben dem Kaiser steht [im Uhrzeigersinn].

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

4 Architektur-Perspektiven (WO)

4 Architektur-Perspektiven (WO) 4 Architektur-Perspektiven (WO) Abb. 4-1: Positionierung des Kapitels im Ordnungsrahmen. Dieses Kapitel befasst sich mit der WO-Dimension des architektonischen Ordnungsrahmens. Es erläutert, auf welchen

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

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

Mehr

Leseprobe. Bruno Augustoni. Professionell präsentieren. ISBN (Buch): 978-3-446-44285-6. ISBN (E-Book): 978-3-446-44335-8

Leseprobe. Bruno Augustoni. Professionell präsentieren. ISBN (Buch): 978-3-446-44285-6. ISBN (E-Book): 978-3-446-44335-8 Leseprobe Bruno Augustoni Professionell präsentieren ISBN (Buch): 978-3-446-44285-6 ISBN (E-Book): 978-3-446-44335-8 Weitere Informationen oder Bestellungen unter http://wwwhanser-fachbuchde/978-3-446-44285-6

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

GEVITAS Farben-Reaktionstest

GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

10 Erweiterung und Portierung

10 Erweiterung und Portierung 10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Persönlichkeit und Persönlichkeitsunterschiede

Persönlichkeit und Persönlichkeitsunterschiede 9 Persönlichkeit und Persönlichkeitsunterschiede 1 Inhalt Die Beschäftigung mit der menschlichen Persönlichkeit spielt in unserem Alltag eine zentrale Rolle. Wir greifen auf das globale Konzept Persönlichkeit

Mehr

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung 1 Einleitung 1.1 Motivation und Zielsetzung der Untersuchung Obgleich Tourenplanungsprobleme zu den am häufigsten untersuchten Problemstellungen des Operations Research zählen, konzentriert sich der Großteil

Mehr

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003 Nicht kopieren Der neue Report von: Stefan Ploberger 1. Ausgabe 2003 Herausgeber: Verlag Ploberger & Partner 2003 by: Stefan Ploberger Verlag Ploberger & Partner, Postfach 11 46, D-82065 Baierbrunn Tel.

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

IMS - Learning Design

IMS - Learning Design IMS - Learning Design Ein Vortrag zum Thema Learning Design von Maayan Weiss Inhalt Was ist IMS Learning Design? Kurzer Einblick Welche Lücken gibt es im e-learning? Was hat IMS-LD zu bieten. Wie sieht

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank

Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank Turning visions into business Oktober 2010 Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank David Croome Warum Assessments? Ein strategisches Ziel des IT-Bereichs der Großbank

Mehr

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

ONLINE-AKADEMIE. Diplomierter NLP Anwender für Schule und Unterricht Ziele ONLINE-AKADEMIE Ziele Wenn man von Menschen hört, die etwas Großartiges in ihrem Leben geleistet haben, erfahren wir oft, dass diese ihr Ziel über Jahre verfolgt haben oder diesen Wunsch schon bereits

Mehr

Um Ihre Ziele durchzusetzen! Um Beziehungen zu knüpfen und zu pflegen! Um in Begegnungen mit anderen Ihre Selbstachtung zu wahren!

Um Ihre Ziele durchzusetzen! Um Beziehungen zu knüpfen und zu pflegen! Um in Begegnungen mit anderen Ihre Selbstachtung zu wahren! Handout 19 Interpersonelle Grundfertigkeiten Einführung Wozu brauchen Sie zwischenmenschliche Skills? Um Ihre Ziele durchzusetzen! Um Beziehungen zu knüpfen und zu pflegen! Um in Begegnungen mit anderen

Mehr

Workshop-Unterlagen Leitbildentwicklung

Workshop-Unterlagen Leitbildentwicklung Workshop-Unterlagen Leitbildentwicklung Ein partizipativer Entwicklungsprozess mit Hilfe der Fotolangage Dr. Kurt Aeberhard aeberhard@innopool.ch Dr. Michèle Etienne etienne@innopool.ch Schüpfen, November

Mehr

Wie Sie mit Mastern arbeiten

Wie Sie mit Mastern arbeiten Wie Sie mit Mastern arbeiten Was ist ein Master? Einer der großen Vorteile von EDV besteht darin, dass Ihnen der Rechner Arbeit abnimmt. Diesen Vorteil sollten sie nutzen, wo immer es geht. In PowerPoint

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999 Mind Mapping am PC für Präsentationen, Vorträge, Selbstmanagement von Isolde Kommer, Helmut Reinke 1. Auflage Hanser München 1999 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21222 0 schnell

Mehr

Was ist Sozial-Raum-Orientierung?

Was ist Sozial-Raum-Orientierung? Was ist Sozial-Raum-Orientierung? Dr. Wolfgang Hinte Universität Duisburg-Essen Institut für Stadt-Entwicklung und Sozial-Raum-Orientierte Arbeit Das ist eine Zusammen-Fassung des Vortrages: Sozialräume

Mehr

Komplexität und der Dreischritt zur Einfachheit Dieter Brandes und Nils Brandes, Institut für Einfachheit

Komplexität und der Dreischritt zur Einfachheit Dieter Brandes und Nils Brandes, Institut für Einfachheit Komplexität und der Dreischritt zur Einfachheit Dieter Brandes und Nils Brandes, Institut für Einfachheit Im Jahr 2002 hat Dieter Brandes erstmals den Dreischritt zur Einfachheit veröffentlicht. Wir geben

Mehr

Menü auf zwei Module verteilt (Joomla 3.4.0)

Menü auf zwei Module verteilt (Joomla 3.4.0) Menü auf zwei Module verteilt (Joomla 3.4.0) Oft wird bei Joomla das Menü in einem Modul dargestellt, wenn Sie aber z.b. ein horizontales Hauptmenü mit einem vertikalen Untermenü machen möchten, dann finden

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Die vorliegende Arbeitshilfe befasst sich mit den Anforderungen an qualitätsrelevante

Die vorliegende Arbeitshilfe befasst sich mit den Anforderungen an qualitätsrelevante ISO 9001:2015 Die vorliegende Arbeitshilfe befasst sich mit den Anforderungen an qualitätsrelevante Prozesse. Die ISO 9001 wurde grundlegend überarbeitet und modernisiert. Die neue Fassung ist seit dem

Mehr

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

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

DIE ANWENDUNG VON KENNZAHLEN IN DER PRAXIS: WEBMARK SEILBAHNEN IM EINSATZ

DIE ANWENDUNG VON KENNZAHLEN IN DER PRAXIS: WEBMARK SEILBAHNEN IM EINSATZ Kurzfassung DIE ANWENDUNG VON KENNZAHLEN IN DER PRAXIS: WEBMARK SEILBAHNEN IM EINSATZ Mag. Klaus Grabler 9. Oktober 2002 OITAF Seminar 2002 Kongresshaus Innsbruck K ennzahlen sind ein wesentliches Instrument

Mehr

agitat Werkzeuge kann man brauchen und missbrauchen - vom Einsatz von NLP in der Führung

agitat Werkzeuge kann man brauchen und missbrauchen - vom Einsatz von NLP in der Führung agitat Werkzeuge kann man brauchen und missbrauchen - vom Einsatz von NLP in der Führung Der Inhalt dieses Vortrages Moderne Führungskräfte stehen vor der Herausforderung, ihr Unternehmen, ihre Mitarbeiter

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Lineare Differentialgleichungen erster Ordnung erkennen

Lineare Differentialgleichungen erster Ordnung erkennen Lineare Differentialgleichungen erster Ordnung In diesem Kapitel... Erkennen, wie Differentialgleichungen erster Ordnung aussehen en für Differentialgleichungen erster Ordnung und ohne -Terme finden Die

Mehr

Erfolg im Verkauf durch Persönlichkeit! Potenzialanalyse, Training & Entwicklung für Vertriebsmitarbeiter!

Erfolg im Verkauf durch Persönlichkeit! Potenzialanalyse, Training & Entwicklung für Vertriebsmitarbeiter! Wer in Kontakt ist verkauft! Wie reden Sie mit mir? Erfolg im Verkauf durch Persönlichkeit! Potenzialanalyse, Training & Entwicklung für Vertriebsmitarbeiter! www.sizeprozess.at Fritz Zehetner Persönlichkeit

Mehr

Wo sind meine Anforderungen?

Wo sind meine Anforderungen? Whitepaper Telekommunikation Wo sind meine Anforderungen? Eine effektive Lösung auf Basis von Confluence und JIRA 2011 SYRACOM AG 1 Einleitung Erfahrene Projektmitarbeiter sehen sich oftmals im Projektalltag

Mehr

2.1 Präsentieren wozu eigentlich?

2.1 Präsentieren wozu eigentlich? 2.1 Präsentieren wozu eigentlich? Gute Ideen verkaufen sich in den seltensten Fällen von allein. Es ist heute mehr denn je notwendig, sich und seine Leistungen, Produkte etc. gut zu präsentieren, d. h.

Mehr

Einleitung. Für wen ist dieses Buch

Einleitung. Für wen ist dieses Buch i Willkommen! Dieses Buch aus der Reihe Schritt für Schritt wurde so konzipiert, dass Sie mit dem Buch leicht und einfach die wesentlichen Aspekte beim Einsatz von vier der Microsoft Office 2016- Apps

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Staatssekretär Dr. Günther Horzetzky

Staatssekretär Dr. Günther Horzetzky #upj15 #upj15 Staatssekretär Dr. Günther Horzetzky Ministerium für Wirtschaft, Energie, Industrie, Mittelstand und Handwerk des Landes Nordrhein-Westfalen Ministerium für Wirtschaft, Energie, Industrie,

Mehr

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Einführung Mit welchen Erwartungen gehen Jugendliche eigentlich in ihre Ausbildung? Wir haben zu dieser Frage einmal die Meinungen von Auszubildenden

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

Anwendungshinweise zur Anwendung der Soziometrie

Anwendungshinweise zur Anwendung der Soziometrie Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing Outsourcing und Offshoring Comelio und Offshoring/Outsourcing INHALT Outsourcing und Offshoring... 3 Comelio und Offshoring/Outsourcing... 4 Beauftragungsmodelle... 4 Projektleitung vor Ort und Software-Entwicklung

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! 9 TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE! An den SeniorNETclub 50+ Währinger Str. 57/7 1090 Wien Und zwar gleich in doppelter Hinsicht:!"Beantworten Sie die folgenden Fragen und vertiefen Sie damit Ihr

Mehr

Änderung des IFRS 2 Anteilsbasierte Vergütung

Änderung des IFRS 2 Anteilsbasierte Vergütung Änderung IFRS 2 Änderung des IFRS 2 Anteilsbasierte Vergütung Anwendungsbereich Paragraph 2 wird geändert, Paragraph 3 gestrichen und Paragraph 3A angefügt. 2 Dieser IFRS ist bei der Bilanzierung aller

Mehr

MuP-Arbeitshilfen. Kreativität organisieren Der innovative Prozess. Problem-Phase

MuP-Arbeitshilfen. Kreativität organisieren Der innovative Prozess. Problem-Phase MuP-Arbeitshilfen Kreativität organisieren Der innovative Prozess Kreativität und Organisation erscheinen zunächst als Gegensatz. Gerade die Verbindung aus einem eher sprunghaften, emotionalen und einem

Mehr

Gutes Leben was ist das?

Gutes Leben was ist das? Lukas Bayer Jahrgangsstufe 12 Im Hirschgarten 1 67435 Neustadt Kurfürst-Ruprecht-Gymnasium Landwehrstraße22 67433 Neustadt a. d. Weinstraße Gutes Leben was ist das? Gutes Leben für alle was genau ist das

Mehr

Arbeitsblätter. Sinnvolle Finanzberichte. Seite 19

Arbeitsblätter. Sinnvolle Finanzberichte. Seite 19 Seite 19 Arbeitsblätter Seite 20 Dieses Arbeitsblatt wird Sie Schritt für Schritt durch das Verfahren von Finanzanalysen geleiten. Sie gehen von Ihren Finanzberichten aus egal wie einfach oder hoch entwickelt

Mehr

Produktskizze. 28. November 2005 Projektgruppe Syspect

Produktskizze. 28. November 2005 Projektgruppe Syspect 28. November 2005 Carl von Ossietzky Universität Oldenburg Fakultät II Department für Informatik Abteilung Entwicklung korrekter Systeme Inhaltsverzeichnis 1 Einleitung 3 2 Die graphische Oberfläche der

Mehr

Java Enterprise Architekturen Willkommen in der Realität

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

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Informatik Kurs Simulation. Hilfe für den Consideo Modeler Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke

Mehr

Newsletter Immobilienrecht Nr. 10 September 2012

Newsletter Immobilienrecht Nr. 10 September 2012 Newsletter Immobilienrecht Nr. 10 September 2012 Maßgeblicher Zeitpunkt für die Kenntnis des Käufers von einem Mangel der Kaufsache bei getrennt beurkundetem Grundstückskaufvertrag Einführung Grundstückskaufverträge

Mehr

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch. Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert https://www.sws.bfh.ch/studium/cas/swe-fs13/protected/re/re_buch.pdf 2 Nach derbefragung aller Stakeholder und der Dokumentation

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Mehr Transparenz für optimalen Durchblick. Mit dem TÜV Rheinland Prüfzeichen.

Mehr Transparenz für optimalen Durchblick. Mit dem TÜV Rheinland Prüfzeichen. Mehr Transparenz für optimalen Durchblick. Mit dem TÜV Rheinland Prüfzeichen. Immer schon ein gutes Zeichen. Das TÜV Rheinland Prüfzeichen. Es steht für Sicherheit und Qualität. Bei Herstellern, Handel

Mehr

http://train-the-trainer.fh-joanneum.at IINFO Storyboard

http://train-the-trainer.fh-joanneum.at IINFO Storyboard IINFO Storyboard Allgemeine Bemerkungen und Richtlinien zur Handhabung. Das Storyboard besteht aus einem Web, d.h. einer vernetzten Struktur von HTML-Seiten welche später von den Programmieren direkt als

Mehr

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH 01 INDIVIDUELLE SOFTWARELÖSUNGEN 02 05 02 GUMMERSBACH MEHRWERT DURCH KOMPETENZ ERIC BARTELS Softwarearchitekt/ Anwendungsentwickler M_+49 (0) 173-30 54 146 F _+49 (0) 22 61-96 96 91 E _eric.bartels@customsoft.de

Mehr

ALLGEMEINE INFORMATIONEN

ALLGEMEINE INFORMATIONEN Webexposee ALLGEMEINE INFORMATIONEN Mit den Webexposee Produkten können Sie Ihre in der Imago Immobiliendatenbank gespeicherten Immobilien schnell und unkompliziert in Ihre eigene Homepage integrieren

Mehr

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.»

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.» «PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.» www.pse-solutions.ch ANTOINE DE SAINT-EXUPÉRY 1 PROJECT SYSTEM ENGINEERING

Mehr

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen. Bildergalerie einfügen Wenn Sie eine Vielzahl an Bildern zu einem Thema auf Ihre Homepage stellen möchten, steht Ihnen bei Schmetterling Quadra das Modul Bildergalerie zur Verfügung. Ihre Kunden können

Mehr

Fotobedingungen. Bedingungen für Lieferanten zum Anhängen von Produktfotos bei PlantConnect.nl

Fotobedingungen. Bedingungen für Lieferanten zum Anhängen von Produktfotos bei PlantConnect.nl Fotobedingungen Bedingungen für Lieferanten zum Anhängen von Produktfotos bei PlantConnect.nl Wollen Lieferanten Produktfotos an die Partie-Informationen anhängen, gelten folgende Bestimmungen: Das Foto

Mehr

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

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

Mehr

1 Informationelle Systeme begriffliche Abgrenzung

1 Informationelle Systeme begriffliche Abgrenzung 1 Informationelle Systeme begriffliche Abgrenzung Im Titel dieses Buches wurde das Wort Softwaresystem an den Anfang gestellt. Dies ist kein Zufall, denn es soll einen Hinweis darauf geben, dass dieser

Mehr

Was taugt der Wertpapierprospekt für die Anlegerinformation?

Was taugt der Wertpapierprospekt für die Anlegerinformation? Was taugt der Wertpapierprospekt für die Anlegerinformation? Panel 1 Rahmenbedingungen für Anlegerinformation und Anlegerschutz beim Wertpapiererwerb Verhältnis zu Beratung, Informationsblatt und Investorenpräsentation

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Selbsttest Prozessmanagement

Selbsttest Prozessmanagement Selbsttest Prozessmanagement Zur Feststellung des aktuellen Status des Prozessmanagements in Ihrem Unternehmen steht Ihnen dieser kurze Test mit zehn Fragen zur Verfügung. Der Test dient Ihrer persönlichen

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon

Mehr