• Keine Ergebnisse gefunden

Softwareentwicklung mit Komponenten

N/A
N/A
Protected

Academic year: 2021

Aktie "Softwareentwicklung mit Komponenten"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Fachhochschule Gießen 20.10.1999

Dr. Burkhardt Renz

mit Komponenten

(2)

2

Gliederung

Wie funktioniert das?

– was sind unsere Ziele?

Was ist eine Komponente?

Beispiele, Charakteristika, Technologien

Ein konkretes Beispiel mit COM/ActiveX

Wiederverwendung und Komponenten

Softwaretechnik der Zukunft?

(3)

3

Komponententechnologie

Macintosh Extensions, Netscape Plug-ins – wir alle verwenden sie

Fahrscheinautomat von ASCOM

Software-Farm für wiederverwendbare Komponenten Funktionalität erweitern oder verändern

Verbunddokumente (Compound Documents) Sybase/Powersoft’s DataWindow

Herzstück in PowerBuilder, Java und C++

Exceltabelle im Word-Dokument

Elemente graphischer Oberflächen

die Erfolgsstory von Visual Basic und JavaBeans

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(4)

4

Komponenten

Kann und soll zusammengesetzt werden – wodurch sind sie charakterisiert?

Eigenständige Einheit eines Softwaresystems

hohe Kohäsion, geringe Kopplung

unterstützt Infrastruktur zur Komposition

Explizite Kontextabhängigkeit Klar spezifizierte Schnittstelle

Kontrakt zwischen Verwender und Komponente Umfeld der Komponente definiert

Implementierung änderbar, Schnittstelle fix Verwendung unabhängig von Entwicklung

Black Box, Sprach- und Plattformunabhängig Kapselung ohne den Verwender zu kennen

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(5)

5

Interfaces

– was gehört zum Kontrakt?

Signatur der Funktion

interface IWebBrowser : IDispatch {

HRESULT Navigate( [in] char* URL ) }

Vor- und Nachbedingungen

pre URL != NULL

post URL ist invariant

Ableitung von Interfaces

Ersetzbarkeit der Komponente

Polymorphismus, Typisierung von Interfaces IUnknown

IDispatch

IWebBrowser

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(6)

6

Technologien

– wie verbindet man Komponenten?

CORBA Common Object Request Broker Architecture

Standardisierung von Protokoll/Architektur

COM/DCOM Distributed Component Object Model

Binärstandard

JavaBeans, Enterprise JavaBeans

Standardisierte Java-Interfaces

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(7)

7

Alltag der Softwarewerkstatt I

Softwaretechnisches Umfeld – die Aufgabenstellung

Dokumentenaustausch zwischen Behörden

Standesamt meldet Geburt an Einwohnermeldeamt Dokument in XML, Programm mit MFC

Randbedingung Unsere Aufgabe

Anzeige des XML-Dokuments

sollte gestern schon fertig sein

Konzepte? Lösungen?

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(8)

8

Alltag der Softwarewerkstatt II

Verwendung der Komponente I

– Grundzüge der Implementierung

Die Komponente: Microsoft WebBrowser

Internet Explorer 5 kann XML

Ableitung von der Fensterklasse CWnd

class CWebBrowser : public CWnd { ... };

Verwendung der Komponente III Verwendung der Komponente II

WebBrowser erzeugen und auf URL navigieren Create( CLSID_WebBrowser );

Navigate( "giessen.intranet.standesamt" );

Reaktion auf Ereignisse einbauen OnDownloadBegin() { ... } OnDownloadComplete() { ... }

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(9)

9

Komponenten am Beispiel COM

Transparenz

– wie wird eine Methode aufgerufen?

Prinzip

ein Pointer auf eine Tabelle von Funktionspointern

In-Process Server (DLL), Local Server (EXE) oder Remote Server durch rpc

ClientPtr

m_pComponent

Ptr vtable

Code für Navigate Interface IWebBrowser

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(10)

10

Komponenten am Beispiel COM

– wie kommt eine Instanz zustande?

Prinzip

ClassID, Service Control Manager und Class Factory

COM

Service Control Manager Create( CLSID )

Registry Client

Server

Class Factory

erzeugt 1 Was ist eine

Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(11)

11

Formen der Wiederverwendung

Konzepte

– wo ordnen sich Komponenten ein?

Codestandards, Algorithmen, Entwurfsmuster, Architektur

Binärcode in Bibliotheken, Templates Quellcode

Cut&Paste, “Klonen”, Codegeneratoren

Funktionsbibliotheken, Klassenbibliotheken, STL

Komponenten Frameworks

Architektur als Klassenbibliothek

Infrastruktur austauschbarer, komplexer Teile

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(12)

12

Besonderheit von Komponenten I

Wirkungen auf die eigene Anwendung – aus Sicht des Verwenders

Neuer Stil des Programmierens

Visual Programming, Konzepte adaptieren

Standards, Muster der Interaktion, Corporate Design

Kosten und zeitlicher Aufwand Qualitätssicherung

keine Lebenszyklus-QS, Black Box, impliziter Massentest

Kompetenz in der Komponente verkörpert

Beispiel aus der Praxis

Ultimate Grid von Dundas – mit Sicherheitsnetz

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(13)

13

Besonderheit von Komponenten II

Umfeld für Wiederverwendung – aus Sicht des Herstellers

Allgemeinheit und Anpassbarkeit

Komponente muss für die Wiederverwendung konzipiert sein Dokumentation, Testumgebung, Tutorien

Was wiederverwendbar ist, wird spät entdeckt Qualitätssicherung

Stabilität der Schnittstelle und des Konzepts

je näher am Bedürfnis des Anwenders und doch in ähnlichem Kontext wiederverwendbar, desto ausgeklügelter muss die Komponente sein

1 Was ist eine Komponente?

2 Wie funktioniert das?

3 Wiederverwendung und Komponenten

(14)

14

Literatur

Frank Griffel: Componentware, Konzepte und Techniken eines Softwareparadigmas, dpunkt.verlag 1998

Clemens Szyperski: Component Software, Beyond Object-Oriented Programming, Addison-Wesley 1998

Don Box: Essential COM, Addison-Wesley 1998

David J. Kruglinski, George Shepherd, Scot Wingo:

Programming Microsoft Visual C++, Microsoft Press 1998

COM http://www.microsoft.com/com CORBA http://www.omg.org

Links

JavaBeans http://www.javasoft.com

Referenzen

ÄHNLICHE DOKUMENTE

Frauen reicht dieser Test jedoch nicht aus, sodass hier ein molekular- biologischer Nachweis der Mutation erfolgen muss. Eine möglichst frühe Diagnose der Erkrankung ist aus

Da allerdings nicht davon ausgegangen werden kann, dass sämtliche vegan lebende Menschen diese Lebensmittel auf täglicher Basis essen, kann es in Bezug auf Vitamin B 2

Als weiterer Grund für Fehldiagnosen aus der Dickdarmuntersuchung, die nicht auf die Wahl unzurei- chender Methoden zurückzuführen sind, findet sich häufig eine fal- sche

Das Reimwörterplakat kann dir auch helfen, dein Gedicht muss sich aber nicht reimen. Du musst nicht bis ans Ende der

Egal, ob hier Taschen und Rucksäcke für Schülergeräte zum Einsatz kommen sollen, mobile Koffer oder stationäre Notebookschränke für Ihre Notebooks angeschafft werden sollen -

Persönlichkeitsbildende Fortbildung, vor allem aber Coaching und eine durchgehend vernetzte Betreuung, um Hilfe zu bekommen, den Umgang mit Schülerproblemen

Verbindung Smartphones iPhone, iPad, Android (App: „VC View Pro“ - Live,Suche,Play,Push) Protokolle ONVIF (für IP-Kameras), RTSP. Kompatible IP-Kameras Bis 4MP, R-Serie, A-Serie,

Verbindung Smartphones iPhone, iPad, Android (App: VC View Pro - Live, Suche, Play, Push).