Component Based Software Engineering

Component Based Software Engineering

In der angewandten Informatik ist die Komponentenbasierte Entwicklung (engl.: Component Based Development - CBD oder auch Component Based Software Engineering - CBSE) ein aus früheren Ansätzen entwickeltes und um deren Schwachstellen bereinigtes Paradigma. Grundlage dieses Konzeptes sind Software-Komponenten, die die Wiederverwendbarkeit von Software-Artefakten verbessern sollen.

Diagramm über die Entwicklung von Programmierparadigmen bis zur Komponentenbasierten Entwicklung

Über die Funktion, bzw. Prozedur in der Prozeduralen Programmierung, das Objekt in der Objektorientierten Programmierung und das CORBA Objekt beim Distributed Object Computing bis hin zur Komponente in der Komponentenbasierten Programmierung werden die zentralen Elemente immer komplexer und mächtiger. Objektorientierte Programmierung stellt dabei die Grundlage der Komponentenbasierten Programmierung dar.

Der Grundgedanke komponentenbasierter Entwicklung ist die Unterteilung von Anwendungen in wiederverwendbare Komponenten, um möglichst wenig Code neu programmieren zu müssen. Mit der Zeit kann so ein "Komponentenmarktplatz" entstehen, aus dem heraus Anwendungen nach dem Baukastenprinzip zusammengestellt werden. Zusätzliche Komponenten müssen nur für Funktionalität entwickelt werden, für die es bisher keine Implementierung gibt.

Vorteile sind neben einer Zeitersparnis bei der Entwicklung auch eine erhöhte Qualität der Komponenten durch eine große Nutzeranzahl und verschiedene Anwendungsszenarien, die automatisch als Testszenarien dienen. In einem Softwaresystem werden in der Regel Annahmen über einen Kontext impliziert, in dem das System funktioniert. Die CBSE verlangt, dass alle diese Annahmen explizit definiert werden, damit das System in verschiedenen Kontexten (von Dritten) wiederverwendet werden kann.

In der Praxis verschiedener Komponentenmodelle wie z.B. CORBA, DCOM, CCA, JavaBeans, wird eine Trennung von Implementierung und Schnittstelle vorausgesetzt, was allerdings nur einer syntaktischen Kontextspezifikation entspricht. Der Begriff des Kontrakts fordert dagegen eine explizite Kontextspezifikation, die über die rein syntaktische Spezifikation hinausgeht.

Die semantische Kontextbeschreibung z.B. durch die Spezifikation von legalen Reihenfolgen von Methodenaufruf einer Komponente, werden von der Theorie vorausgesetzt, haben den Weg in die breite Praxis aber noch nicht gefunden. In der Praxis wird aus diesem Grund der Begriff der Softwarekomponente häufig auf zustandslose Dienste beschränkt, da für diese eine solche semantische Spezifikation technisch nicht unbedingt notwendig ist (siehe Service Oriented Architecture).


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Component-based software engineering — A simple example of two components expressed in UML 2.0. The checkout component, responsible for facilitating the customer s order, requires the card processing component to charge the customer s credit/debit card (functionality that the latter… …   Wikipedia

  • Component-based usability testing — (CBUT) is a testing approach which aims at empirically testing the usability of an interaction component. The latter is defined as an elementary unit of an interactive system, on which behaviour based evaluation is possible. For this, a component …   Wikipedia

  • Component-based Scalable Logical Architecture — (CSLA) is a software framework created by Rockford Lhotka that provides a standard way to create robust object oriented programs using business objects. Business objects are objects that abstract business entities in an object oriented program.… …   Wikipedia

  • Software engineering — (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1] It is the… …   Wikipedia

  • Frame Technology (software engineering) — Frame Technology is a language neutral, models to code system that manufactures custom software [Software is emphasized here; but given the appropriate frames, FT can assemble any kind of documents: technical and end user manuals, UML models,… …   Wikipedia

  • Component — may refer to: Usage Component may refer to: System components, the constituents of a system Electronic components, the constituents of electronic circuits Component ingredient, the main ingredient in a dish Component video, a type of analog video …   Wikipedia

  • Component Library for Cross Platform — (CLX) (pronounced clicks), is a cross platform visual component based framework for developing Microsoft Windows and Linux applications. It is developed by Borland for use in its Kylix, Delphi, and C++ Builder software development environment.… …   Wikipedia

  • Component repository management — is a field of configuration management that seeks to ensure the safe storage of different components of a software product and all its versions. This topic includes product model, revision control, and software configuration management. Contents… …   Wikipedia

  • Component diagram — of an Insurance Policy Administration System UML diagrams Structural UML diagra …   Wikipedia

  • Component Pascal — Paradigm(s) imperative, structured, modular, object oriented Appeared in 1991 Designed by Oberon Microsystems Typing discipline strong, static Influenced by …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”