17 Komponentenbasiertes Software-Engineering



Ähnliche Dokumente
Komponentenbasierte Softwareentwicklung

SE2-10-Entwurfsmuster-2 15

16.4 Wiederverwendung von COTS-Produkten

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

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

SDD System Design Document

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

4D Server v12 64-bit Version BETA VERSION

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

16 Architekturentwurf Einführung und Überblick

Qualitätsmanagement im Projekt

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

Tutorial Windows XP SP2 verteilen

Internet Explorer Version 6

Software-Engineering

ObjectBridge Java Edition

Java Einführung Packages

HMS. Statistiken mit SAS ins Internet. HMS Analytical Software GmbH - Johannes Lang

Microsoft SharePoint 2013 Designer

CORBA. Systemprogrammierung WS

Neue Funktionen in Innovator 11 R5

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

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

Softwareentwicklung mit Enterprise JAVA Beans

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Anlegen eines virtuellen http Server unter Exchange 2003 mittels HOSTNAME

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Der Schutz von Patientendaten

Workflow, Business Process Management, 4.Teil

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Vortrag von: Ilias Agorakis & Robert Roginer

FORGE2015 HDC Session 4. Nachhaltige Infrastruktur als technologische Herausforderung. Tibor Kálmán Tim Hasler Sven Bingert

SEP 114. Design by Contract

Vorkurs C++ Programmierung

Der Support für Windows Server 2003 endet endgültig alles was Ihnen dann noch bleibt ist diese Broschüre.

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

Medizintechnik und Informationstechnologie im Krankenhaus. Dr. Andreas Zimolong

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Übungsklausur vom 7. Dez. 2007

3. Stored Procedures und PL/SQL

Workshop für ZGV-Mitglieder zum Thema Software as a Service bzw. SOFLEX Software flexibel mieten

ArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung

Jürgen Schwab, debis Systemhaus

Robot Karol für Delphi

Allgemeine und technische Bedingungen für die Bereitstellung von Messwertimpulsen aus Messeinrichtungen

Übungen zur Softwaretechnik

Tutorial Microsoft Office 2003 verteilen

Objektorientierte Programmierung OOP

ASV-Betrieb für die Coburger Schulen. Einbindung externer Schulen via RemoteApp

ISA Einrichtung einer DFUE VErbindung - von Marc Grote

Lastenheft. Inhaltsverzeichnis. Gruppe: swp09-5. Projektleiterin: Anne Vogler am: 28. April Zielbestimmungen 2. 2 Produkteinsatz 2

Java und XML 2. Java und XML

Kurzfassung der Studienarbeit

Systeme 1. Kapitel 10. Virtualisierung

Projektmanagementsoftware: Standard vs. Individual

CONTINIA DOCUMENT CAPTURE PREISLISTE

Informationssicherheit als Outsourcing Kandidat

Komponentenbasierter Taschenrechner mit CORBA

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Software-Lizenzierung und Aktivierung: Verteilen von Software mit Apple Remote Desktop

Softwaretechnik (Allgemeine Informatik) Überblick

Man liest sich: POP3/IMAP

AS/point, Ihr Partner die nächsten 10 und mehr Jahre -

Wiederholung: Beginn

Vorlesung Donnerstags, bis Uhr, HS12 Übung Dienstags, bis Uhr 4-5 ÜbungsbläMer (Programmieraufgaben)

1. Einführung. 2. Weitere Konten anlegen

Java Enterprise Architekturen Willkommen in der Realität

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

EIDAMO Webshop-Lösung - White Paper

Skript Pilotphase für Arbeitsgelegenheiten

Mobile-Szenario in der Integrationskomponente einrichten

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

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

Release-Informationen

Release-Informationen

Programmieren in Java

Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Client/Server-Systeme

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

NEVARIS Umstellen der Lizenz bei Allplan BCM Serviceplus Kunden von der NEVARIS SP Edition auf NEVARIS Standard/Professional

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

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

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Supportkonzept. Datum: Inhaltsverzeichnis: 1. Verwendungszweck Anforderungen 3

Software Engineering. Dokumentation! Kapitel 21

Sabotage in Scrum. dem Prozess erfolglos ins Knie schiessen. Andreas Leidig (andrena objects ag) Vortrag bei den XP Days 2007

Treuhand Dialogik Cloud

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

FUTURE NETWORK REQUIREMENTS ENGINEERING

Tag des Datenschutzes

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Step by Step Webserver unter Windows Server von Christian Bartl

Transkript:

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 17.2 Prozesse des komponentenbasierten SE Engineering für Wiederverwendung Engineering mit Wiederverwendung 17.3 Komposition von Komponenten Arten der Komposition Stand: 16.04.13 Folie 17.1 17.0 Lernziele mit dem Konzept des komponentenbasierten Software- Engineerings vertraut sein wissen, was unter den Begriffen Komponente und Komponentenmodell zu verstehen ist die wichtigsten Schritte des komponentenbasierten Entwicklungsprozesses kennen wissen, warum bei den Anforderungen an wiederverwendbare Komponenten Kompromisse eingegangen werden müssen Schwierigkeiten und Probleme bei der Zusammenstellung von Komponenten kennen lernen Stand: 16.04.13 Folie 17.2

17.0 CBSE Component-Based Software Engineering CBSE Komponentenbasiertes Software-Engineering seit den späten 1990er Jahren Wiederverwendung von Software-Komponenten mangelnde Unterstützung der Wiederverwendung durch objektorientierte Entwicklung einzelne Objektklassen zu detailliert und spezifisch genaue Kenntnis erforderlich (Quelltext) Komponenten als höhere Abstraktionen unabhängige Anbieter von Diensten definiert durch Schnittstellen lose gekoppelt Stand: 16.04.13 Folie 17.3 17.0 Grundlagen des CBSE Unabhängige Komponenten vollständig spezifiziert über Schnittstellen klare Trennung von Schnittstelle und Implementation Komponentenstandards zur Vereinfachung der Integration Komponentenmodelle zur Definition der Schnittstellen Middleware zur Unterstützung der Integration ermöglicht Kommunikation der Komponenten Entwicklungsprozess für Wiederverwendung Zusammenspiel von Anforderungen und Funktionalität der Komponenten Stand: 16.04.13 Folie 17.4

17.0 Entwurfsprinzipien bei CBSE Verständliche und wartungsfreundliche Software durch Komponenten auch sinnvoll, wenn noch keine wiederverwendbaren Komponenten vorhanden sind Unabhängigkeit der Komponenten verhindert gegenseitige Beeinträchtigung Verbergung der Implementation änderbar ohne Auswirkung auf andere Komponenten Kommunikation über klar definierte Schnittstellen erleichtert Erweiterung der Funktionalität Nutzung von Komponenteninfrastruktur reduziert neu zu entwickelnden Code Stand: 16.04.13 Folie 17.5 17.0 Standards für Komponenten nötig für Kommunikation und Zusammenarbeit verteilte Systeme ohne Kopien Aufrufe entfernter Prozeduren (remote procedure calls) Entwicklung unterschiedlicher Standards Sun: Enterprise Java Beans (EJB) Microsoft: COM und.net CORBA: CCM Erschwerung des CBSE keine Interaktion zwischen Komponenten verschiedener Standards mangelnde Akzeptanz wegen hoher Komplexität Stand: 16.04.13 Folie 17.6

17.0 CBSE und serviceorientiertes SE Komponente als Service unabhängig vom Ausführungsort unabhängig von der Programmiersprache Eigenständigkeit extern: keine Einbindung in das Programm keine Standards für Interaktion erforderlich Zusammenarbeit vollständig über Aufruf von Schnittstellen Stand: 16.04.13 Folie 17.7 17.0 Probleme des CBSE Vertrauenswürdigkeit der Komponenten Quellcode nicht verfügbar Komponentenzertifizierung keine übergeordnete Qualitätssicherung Vorhersage von Komponenteneigenschaften überraschende zu Tage tretende Eigenschaften Anforderungskompromisse Ausgleich zwischen den Eigenschaften zweier Komponenten Stand: 16.04.13 Folie 17.8

17.1 Definition: Komponente Councill und Heineman (2001) A software component is a software element that conforms to a component model and can be independently deployed and composed without modification according to a composition standard. Szyperski (2002) A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third-parties. Stand: 16.04.13 Folie 17.9 17.1 Eigenschaften von Komponenten báöéåëåü~ñí ëí~åç~êçáëáéêí ìå~äü åöáö âçãéçåáéêä~ê ÉáåëÉíòÄ~ê ÇçâìãÉåíáÉêí bêä ìíéêìåöéå ÑçäÖí=ÉáåÉã=pí~åÇ~êÇâçãéçåÉåíÉåãçÇÉää=ãáí=sçêÖ~ÄÉå=òK_K=ÑΩê= hçãéçåéåíéåëåüåáííëíéääéåi=jéí~ç~íéåi=açâìãéåí~íáçåéåi= hçãéçëáíáçåë~êí=ìåç=_éêéáíëíéääìåö â~åå=òìë~ããéåöéëíéääí=ìåç=éáåöéëéíòí=ïéêçéå=çüåé=~ìñ=~åçéêé= hçãéçåéåíéå=~åöéïáéëéå=òì=ëéáå=e~ì Éê=Éñéäáòáí=áå=ÉáåÉê= ł_éå íáöí JpÅÜåáííëíÉääÉ ÖÉå~ååíÉ=pÉêîáÅÉëF ~ääé=fåíéê~âíáçåéå=ωäéê= ÑÑÉåíäáÅÜ=ÇÉÑáåáÉêíÉ=pÅÜåáííëíÉääÉå=ìåÇ= ÉñíÉêåÉê=wìÖêáÑÑ=~ìÑ=ÉáÖÉåÉ=fåÑçêã~íáçåÉå=~äë=sçê~ìëëÉíòìåÖ=ÑΩê= hçãéçëáíáçå ÉáÖÉåëí åçáöé=båíáí í=~ìñ=éáåéê=çéã=hçãéçåéåíéåãççéää= ÖÉÜçêÅÜÉåÇÉå=hçãéçåÉåíÉåéä~ííÑçêã îçääëí åçáöé=açâìãéåí~íáçå=ãáí=póåí~ñ=ìåç=péã~åíáâ=~ääéê= hçãéçåéåíéåëåüåáííëíéääéå=òìê=_éìêíéáäìåö=çéê=séêïéåçä~êâéáí Stand: 16.04.13 Folie 17.10

17.1 Komponenten als Dienstanbieter unabhängige ausführbare Entität Quellcode nicht erforderlich Einbindung ins Programm oder externer Service angebotene Dienste über Schnittstelle verfügbar alle Interaktionen über die Schnittstelle parametrisierte Operationen innerer Zustand nicht sichtbar Stand: 16.04.13 Folie 17.11 17.1 Schnittstellen von Komponenten Stellt bereit -Schnittstelle (provides interface) definiert die von der Komponente angebotenen Dienste Methoden, die von Benutzern der Komponente aufgerufen werden können bildet die Programmierschnittstelle (API) Benötigt -Schnittstelle (requires interface) definiert die für die Funktion der Komponente erforderlichen und durch andere Komponenten bereitzustellenden Dienste wahrt die Unabhängigkeit der Komponente, weil nur das Was und nicht das Wie festgelegt wird Stand: 16.04.13 Folie 17.12

17.1 Schnittstellen von Komponenten Benötigt -Schnittstelle definiert die Dienste, die benötigt werden und von anderen Komponenten bereitgestellt werden sollen Komponente Stellt bereit -Schnittstelle definiert die Dienste, die diese Komponente für andere Komponenten bereitstellt Stand: 16.04.13 Folie 17.13 17.1 Komponentenmodell Definition von Standards für Komponenten Implementierung Dokumentation Bereitstellung Festlegung, wie Schnittstellen definiert werden sollen notwendige Bestandteile der Schnittstellendefinition Sicherstellung der Zusammenarbeit von Komponenten für Komponentenentwickler für Infrastrukturentwickler konkurrierende Modellvorschläge WebServices-Modell EJB-Modell.NET-Modell Stand: 16.04.13 Folie 17.14

17.1 Elemente eines Komponentenmodells Komposition Namenskonventionen Anpassung Dokumentation Schnittstellendefinition spezifische Schnittstellen Metadatenzugriff Paketierung Unterstützung für Evolution Schnittstellen Nutzungsinformation Komponentenmodell Bereitstellung und Verwendung Stand: 16.04.13 Folie 17.15 17.1 Komponentenmodell: Schnittstellen Spezifikation der Schnittstelle definiert Komponente Elemente der Spezifikation Operationsbezeichnungen Parameter Ausnahmen Sprache der Spezifikation WebServices: Web Service Description Language WSDL EJB: Java.NET: Common Intermediate Language CIL ggf. Vorgabe spezieller Schnittstellen für Infrastruktur Stand: 16.04.13 Folie 17.16

17.1 Komponentenmodell: Nutzungsinformation Namenskonventionen global eindeutig für Fernzugriff z.b. EJB: hierarchischer Name nach Internetdomänen Uniform Resource Identifier URI für Services Komponenten-Metadaten Auskunft über Schnittstellen und Attribute Auskunft über benötigte und bereitgestellte Dienste z.b. Java: Zugriff auf Metadaten über Reflection Angaben zu Konfigurationsmöglichkeiten Anpassung an Installationsumgebung Stand: 16.04.13 Folie 17.17 17.1 Komponentenmodell: Bereitstellung Spezifikation zur Bereitstellung unabhängig ausführbar in der gegebenen Infrastruktur Paket mit aller Software für die Ausführung Information zur Organisation eines binären Pakets Regeln zur Veränderung / Ersetzung von Komponenten Ermöglichung der Weiterentwicklung Regeln zur Dokumentation wichtig zur Auswahl von Komponenten Stand: 16.04.13 Folie 17.18

17.1 Infrastruktur für Komponenten Middleware Dienste für die Ausführung von Komponenten nötig bei Komponenten als Programmeinheiten Hilfsdienste Nebenläufigkeit Persistenz Komponentenverwaltung Transaktionsverwaltung Resourcenverwaltung Informationssicherheit Plattformdienste Adressierung Schnittstellendefiniton Ausnahmenverwaltung Komponentenkommunikation Stand: 16.04.13 Folie 17.19 17.1 Infrastruktur für Komponenten Plattformdienste Kommunikation von verteilten Komponenten Zusammenarbeit von verteilten Komponenten Hilfsdienste Dienste, die von vielen Komponenten benötigt werden reduziert Kosten der Komponentenentwicklung Komponentencontainer Schnittstellen zur Infrastruktur Zugriff der Komponente auf unterstützende Dienste Zugriff des Containers auf Komponentenschnittstelle kein direkter Zugriff einer Komponente auf die Schnittstellen einer anderen Komponente Stand: 16.04.13 Folie 17.20

17.2 Prozesse des CBSE Entwicklung für Wiederverwendung Entwicklung von Komponenten zur Wiederverwendung in anderen Anwendungen häufig Verallgemeinerung von bestehenden Komponenten Arbeit an einzelnen Komponenten Quellcode vorhanden Entwicklung mit Wiederverwendung Erstellung einer Anwendung unter Verwendung bestehender Komponenten und Services Suche nach geeigneten Komponenten effiziente Nutzung der Komponenten in der Anwendung meist kein Quellcode vorhanden Stand: 16.04.13 Folie 17.21 17.2 Hilfsprozesse für CBSE Komponentenerwerb Komponenten zur Wiederverwendung Komponenten zur Entwicklung in eine wiederverwendbare Komponente suchen und besorgen intern und extern Komponentenverwaltung katalogisieren speichern zur Verfügung stellen Komponentenzertifizierung prüfen bestätigen der Erfüllung der Spezifikation Stand: 16.04.13 Folie 17.22

17.2 Prozesse beim CBSE Domänenanalyst Entwickler Implementierer Betreiber Marktanalyst Komponentenbasiertes Software-Engineering für Wiederverwendung Komponentenbasiertes Software-Engineering mit Wiederverwendung Komponentenerwerb Spezifizierer Entwickler Integrator Betreiber Bibliothekar Verkäufer Makler lokaler oder externer Zertifizierer Komponentenarchiv Komponentenzertifizierung Komponentenverwaltung Bibliothekar externe Quelle Stand: 16.04.13 Folie 17.23