Rapid Application DevelopmentModerne Bausteine der Softwareentwicklung
Ein Gastbeitrag von
Dr. Veikko Krypczyk
9 min Lesedauer
In der modernen Softwareentwicklung wird ein Anwendungssystem aus vielen Einzelkomponenten zusammengesetzt. Die Verarbeitung erfolgt idealerweise in der integrierten Entwicklungsumgebung. Im Artikel blicken wir auf Komponenten-basierte Softwareentwicklung und stellen heraus, was zu beachten ist.
Komponenten kapseln eine bestimmte Funktionalität und stellen diese über definierte Schnittstellen den Anwendungen zur Verfügung.
Komponenten spielen eine wichtige Rolle bei der Entwicklung von Software. Es sind Bausteine, aus welchen die Anwendungssysteme zusammengesetzt werden. Die Komponenten kapseln eine bestimmte Funktionalität und stellen diese über definierte Schnittstellen den Anwendungen zur Verfügung.
Arten und Rolle von Softwarekomponenten bei der Erstellung von Anwendungssystemen.
(Bild: Dr. Krypczyk)
Das Prinzip gilt weitgehend unabhängig davon, welche Art von Software (Desktop, Mobile, Web) und mit welchen Werkzeugen, Framework und Programmiersprachen diese entwickelt wird. Ein Anwendungssystem besteht i.d.R. aus mehreren Arten von Softwarekomponenten, wie vorne zu sehen-.
Zum einem handelt es sich um Standardkomponenten, das sind zum Beispiel Komponenten für die Gestaltung des User Interfaces. Hierunter fallen Komponenten, welche in den Applikationen immer wieder zum Einsatz kommen, wie Buttons, Texteingabefelder, Labels usw. Von diesen Komponenten können weitere Komponenten durch Vererbung abgeleitet werden. Dabei wird vorhandene Funktionalität übernommen, angepasst und erweitert.
Ebenso können für bestimmte Programmfunktionen eigene Komponenten – mit dem Ziel der mehrfachen Verwendung – erstellt und eingesetzt werden. Auf diese Weise entstehen komplette Bibliotheken von Softwarebausteinen, aus welchen bei Bedarf ausgewählt werden kann. Die Komponenten werden mit weiteren individuellen Softwarebestandteilen kombiniert und zu einer neuen Anwendung zusammengefügt.
Eine Komponente ist somit ein Teil der Software, welche eine sinnvolle Funktionalität bietet, mit eindeutig definierten Schnittstellen ausgestattet ist und mit anderen Komponenten kombiniert werden kann. Typische Anforderungen an eine Komponente sind in der folgenden Tabelle zusammengefasst.
Wiederverwendung: Die Komponente soll so gestaltet sein, dass man diese universell einsetzen kann. Man möchte sie in den unterschiedlichsten Anwendungen und Nutzerszenarien verwenden.
Konfigurierbar: Komponenten sollen gut an unterschiedliche Aufgaben angepasst werden können, ohne dass man in die Komponente selbst eingreifen muss. Die Konfiguration der Komponente erfolgt über Parameter der Schnittstelle.
Zweck: Eine Komponente soll auf eine bestimmte Aufgabe abzielen und einem definierten Zweck dienen. Dabei sollte der Funktionsumfang auf die Aufgabe beschränkt und spezialisiert sein.
Robust: Die Komponente soll robust sein und zuverlässig funktionieren. Umfangreiche und sorgfältige Tests sind Voraussetzung dafür. Meist kann man keine Änderungen an fertigen Komponenten vornehmen, da man nicht über den Quellcode der Komponente verfügt.
Universelle Nutzung: Die Rahmenbedingungen, wie Programmiersprache, Plattform und Entwicklungsumgebung sollten beim Komponenteneinsatz möglichst keine Rolle spielen. Die relevanten Merkmale einer Komponente sollen in der Schnittstelle definiert werden.
Dokumentation: Eine Komponente sollte vollständig dokumentiert werden. Anhand von Beispielen sollte deren Verwendung in typischen Szenarien gezeigt werden.
Die Möglichkeit der Wiederverwendbarkeit ist entscheidend bei der Nutzung von Komponenten. Die Ziele sind eine Reduktion des Aufwands und der Kosten der Entwicklung. Dadurch kann die Entwicklungszeit des Gesamtsystems i.d.R. deutlich verkürzt werden. Der Einsatz von vielfältig genutzten Komponenten führt meist auch zu einer Steigerung der Qualität des Anwendungssystems. Fehler können vermieden werden und die Wartung der Komponente übernimmt der Hersteller.
Bei der Nutzung von Komponenten als Bausteine zur Gestaltung des User Interfaces kommt es darauf an, dass man ein einheitliches Design erreicht, daher sollten dafür Komponenten mit einem identischen Designansatz verwendet werden. Die Entwicklung von Komponenten mit einer möglichst universellen Nutzbarkeit führt zunächst zu einem höheren Aufwand, zum Beispiel durch die Implementierung einer generisch zu verwendenden Schnittstelle, das Erstellen einer Dokumentation und einem größeren Aufwand beim Testen. Wird die Komponente jedoch mehrfach eingesetzt, dann wird sich diese Investition schnell rentieren.
Anhand der Wiederverwendungsform können Komponenten in drei Modelle aufgeteilt werden:
Blackbox: Die Komponente stellt eine in sich abgeschlossene Einheit dar. Sie wird in das System aufgenommen und kann nicht verändert werden. Die Verwendung erfolgt über eine definierte Schnittstelle. Über den Aufbau und die innere Funktionsweise kann keine Aussage gemacht werden. Fehler in der Komponente schließen deren Verwendung aus, da die innere Codierung nicht bekannt und auch nicht angepasst werden kann.
Whitebox: Diese Form von Komponenten sind als offene Einheit zu betrachten. Der Quellcode ist zugänglich und kann beliebig entsprechend den neuen Anforderungen modifiziert werden. Der interne Aufbau ist einsehbar und anpassbar.
Greybox: Es handelt sich um eine Zwischenform von Black- und Whitebox, d.h. im Regelfall wird die Komponente so eingesetzt, wie diese vorliegt. Erfordert jedoch ein besonderes Nutzungsszenario eine individuelle Anpassung, dann ist diese möglich. Man kann beispielsweise den Quellcode der Komponente zusätzlich erwerben.
Die meisten Komponenten – welche man von Drittanbietern erwirbt – liegen in Form einer Blackbox vor. Der Einsatzzweck, zum Beispiel für den Aufbau einer Benutzeroberfläche, ist genau umschrieben. Eine weitere Anpassung der Komponente ist i.d.R. jedoch nicht vorgesehen.
Der Quellcode der Komponente gehört auch nicht zum Lieferumfang, d.h. man erwirbt nur ein Nutzungsrecht. Funktionalität und Verhalten einer Komponente müssen klar definiert sein. Beispielhaft betrachten wir den Einsatz von Komponenten in der Entwicklungsumgebung RAD Studio, bestehend aus den Einzelprodukten Delphi und C++ Builder.
Komponenten in Delphi
RAD Studio ist eine integrierte Entwicklungsumgebung, welche das Erstellen von Anwendungen für die unterschiedlichen Systeme erlaubt. Dabei kann zwischen den Programmiersprachen Delphi und C++ gewählt werden. Beiden gemeinsam ist der Einsatz von Komponenten. Es wird zwischen visuellen und nicht visuellen Komponenten unterschieden.
Visuelle Komponenten werden zum Erstellen der Benutzeroberfläche im grafischen Designer der Entwicklungsumgebung genutzt. Nicht visuelle Komponenten stellen weitere häufig benötigte Funktionalität bereit. In Bezug auf das verwendete Grafikframework von RAD Studio können wir folgende Arten von visuellen Komponenten unterscheiden:
Komponenten für die Visual Component Library (VCL): Diese können in Applikationen für das Betriebssystem Windows eingesetzt werden.
Komponenten für FireMonkey (FMX): Sie finden Verwendung in geräteübergreifenden Anwendungen für die Systeme Windows, macOS, Linux (Desktop) bzw. iOS und Android (Mobile).
Basiskomponenten von RAD Studio. aus der IDE.
(Screenshot : Dr. Krypczyk)
Neben den Basiskomponenten hat der Entwickler die Möglichkeit Komponenten von Drittanbietern einzusetzen. Die Basiskomponenten decken dabei bereits einen Großteil der typischen Anforderungen einer Applikation ab. Für RAD Studio sind es beispielsweise grundlegende Komponenten für die Gestaltung der Benutzeroberfläche, nicht visuelle Komponenten für den Zugriff auf Datenbanken oder weitere visuelle Komponenten für das Design der Anwendung (Effekte).
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Komponenten von Drittanbietern erweitern zum einem die Funktionen der Basiskomponenten bzw. sie stellen weitere häufig genutzte Funktionen bereit. Hier gibt es je nach Entwicklungssystem eine große Vielfalt. Das Angebot reicht von einzelnen, als Open Source, angebotenen Komponenten mit Quellcode, bis hin zu umfassenden kommerziellen Komponentensuiten der bekannten Hersteller. Bei der Auswahl einer oder mehrere Komponenten sind die folgenden Kriterien von Relevanz:
Funktionalität: Das ist das entscheidende Kriterium. Die ausgesuchte Komponente muss die gewünschte Funktion in den geforderten Umfang unterstützen. Dabei gilt jedoch auch, dass ein „Overload“ an Funktionsvielfalt nicht wünschenswert ist, denn dann steigt die Komplexität.
Kompatibilität: Die Komponente muss mit dem Programmiersystem in allen Belangen, beispielsweise zur Version der Programmiersprache und der Entwicklungsumgebung kompatibel sein.
Lizenz: Einige Komponenten stehen als Open Source zur Verfügung. Bei Komponenten von kommerziellen Anbietern ist neben den Kosten auf die weiteren Leistungen zu achten, zum Beispiel das Lizenzmodell, Support, Pflege, Dokumentation, Zugriff auf Quellcode usw.
Weiterentwicklung: Es ist wichtig, dass die Komponente stetig weiterentwickelt wird, beispielsweise an Systemaktualisierungen angepasst wird.
Dokumentation: Eine Komponente wird i.d.R. als Blackbox eingesetzt. Nutzung und Datenaustausch erfolgen über die Schnittstellen der Komponente. Dazu müssen diese vollständig, ausführlich und am besten mit Hilfe von Beispielen dokumentiert sein. Eine gute Dokumentation umfasst Hinweise zur Installation bzw. Setup der Komponente; der Einsatz wird anhand von typischen Beispielen gezeigt; es gibt eine Beschreibung aller Features und Konfigurationsmöglichkeiten und eine Auflistung von typischen Fragen, Antworten und Best Practice.
Case Studies: Wie gut eine Komponente einsetzbar ist, zeigt sich bei der Verwendung in der Produktion sich befindenden Projekten. Ein typisches Beispiel ist die erreichte Performance bei einer datengetriebenen Komponente. In einem Testprogramm mit wenigen Datensätzen gibt es i.d.R. keine Probleme mit der Geschwindigkeit. Doch wie verhält es sich, wenn mehr als 10.000 Datensätze über die Komponente angezeigt werden sollen? Ist das Scrolling flüssig? Arbeitet die Komponente mit einer internen Anzeige-Virtualisierung? Vertrauen bezüglich der Eignung der Komponente schaffen Berichte über den Einsatz in der Praxis.
Support: Bietet der Anbieter einen Support bei Problemen bzw. bei konkreten Fragen der Verwendung? Unterstützung kann beispielsweise bei durch Releasewechsel hervorgerufenen Problemen notwendig sein. Ein guter Support zeichnet sich durch eine direkte Kommunikation mit der Entwicklungsabteilung der Komponentenbibliothek aus.
Quellcode: Es gibt Szenarien, da ist ein Rückgriff auf den Quellcode notwendig. Das kann beispielsweise der Fall sein, wenn dringende Anpassungen notwendig sind, zum Beispiel auf Grund eines Updates des Systems. Ebenfalls können Applikationen in sicherheitskritischen Bereichen ein Review des Quellcodes (Inspektion) für Zwecke der Qualitätssicherung erfordern.
Businessdiagramme mit Hilfe der Chart-Komponente von TMS Software.
Betrachten wir beispielhaft einige Komponentensammlungen für die Verwendung in der integrierten Entwicklungsumgebung RAD Studio. Von dem Unternehmen TMS Software werden sowohl eine große Anzahl von visuellen Komponenten (VCL, FMX), als auch rein funktionale Komponenten angeboten. Ein Beispiel ist die im vorangestellten Bild gezeigte Komponente TMS FNC Chart, mit welcher sich grafisch reichhaltige Businessdiagramme erstellen lassen.
Kartendarstellungen (OpenStreetMap) mit Hilfe der Komponente VCL Map Control von DevExpress.
Weitere Komponenten stammen beispielsweise von DevExpress zu den Bereichen Office, Daten Editoren, Layout, Analytics, Navigation, Dialoge und für weitere Funktionen. Ein Beispiel ist hier die Komponente VCL Map Control, welche es ermöglicht Unternehmensdaten in Karten darzustellen. Über Layer können einzelne Ebenen eingeblendet werden. Es können Routen oder andere Daten in der Karte angezeigt werden. Ebenso können typische Anforderungen aus dem Bereich Business Itelligence realisiert werden.
Die Unternehmensdaten (Produktverkäufe, Umsätze usw.) stammen aus der Datenbank der betriebswirtschaftlichen Anwendung und werden mit Hilfe von Geodaten kombiniert und dann in Karten visuell abgebildet. Ebenfalls für die visuelle Präsentation von Daten sind die Komponenten von Steema geeignet. Sie bieten umfassende Darstellungsvarianten (Charts) für Daten in Kombination mit mathematischen, statistischen und finanzmathematischen Operationen.
Um Daten für wiederkehrende Auswertungen aufzubereiten, nutzt man i.d.R. so genannte Report Builder. Die Daten stammen aus einer relationalen Datenbank und werden über SQL-Abfragen extrahiert. Dabei werden für typische und zyklische Anfragen standardisierte Reports erstellt, zum Beispiel für die Monatsauswertung der Verkaufszahlen einer Filiale und aller Produktgruppen.
Um in einer Business-Applikation ein solches Feature zur Verfügung zu stellen, verwendet man i.d.R. auch fertige Softwarebausteine. Beispiele sind die Softwarekomponenten Report Builder des Unternehmens Digital Metaphors und FastReport VCL des Unternehmens Fast Report. Neben sehr universell eingesetzten Komponenten umfasst das Angebot der Softwareindustrie auch Komponenten für spezialisierte Aufgabenbereiche.
Fazit
Softwarekomponenten sind ein wichtiger Bestandteil, um ein komplexes Anwendungssystem zu modularisieren und damit die Komplexität zur reduzieren. In nahezu allen Entwicklungsansätzen kommen Softwarekomponenten zum Einsatz. Das Spektrum ist weitreichend und umfasst Bausteine für den Aufbau von grafischen Benutzeroberflächen und auch vielfältige weitere Funktionen. Dabei können Komponenten für eine Wiederverwendung selbst erstellt werden oder man kann diese von Drittanbietern käuflich erwerben.
Hier gibt es besonders für die Gestaltung von grafischen Benutzeroberflächen eine große Auswahl an Komponenten, wie der kompakte Marktüberblick für die integrierte Entwicklungsumgebung RAD Studio (Delphi, C++ Builder) gezeigt hat. Für andere Entwicklungsansätze und Systeme ergibt sich ein ähnliches Bild.
Zusammenfassend kann man daher sagen: Eine sorgfältige Recherche, ob es bereits eine Komponente für eine konkrete Anforderung des Entwicklungsvorhabens gibt, kann den Weg zur Lösung deutlich verkürzen, vereinfachen und letztendlich auch Kosten einsparen. In vielen Fällen ermöglicht die Verwendung von Komponenten auch die Nutzung von Funktionen, deren eigene Entwicklung sehr aufwändig oder in Eigenregie auch kaum zu bewerkstelligen wäre.