Fachkomponente
# Fachkomponente

Eine Fachkomponente ist in der Softwaretechnik eine Softwarekomponente, die eine bestimmte Menge von Diensten in einem betrieblichen Anwendungsbereich (der Anwendungsdomäne) anbietet.

## Definition

Eine Komponente im Kontext der Softwareentwicklung besteht aus verschiedenartigen (Software-)Artefakten. Sie ist wiederverwendbar, abgeschlossen und vermarktbar, stellt Dienste über wohldefinierte Schnittstellen zur Verfügung, verbirgt ihre Realisierung und kann in Kombination mit anderen Komponenten eingesetzt werden, die zur Zeit der Entwicklung nicht unbedingt vorhersehbar ist.

Ausgehend von dieser Komponentendefinition differenzieren Turowski et al. explizit zwischen System- und Fachkomponenten. Als Systemkomponenten gelten generische Komponenten, welche ausschließlich der Realisierung softwaretechnischer Funktionen dienen und keinen unmittelbaren Bezug zu betrieblichen Funktionen besitzen. Dagegen wird eine Komponente dann als Fachkomponente bezeichnet, wenn sie eine bestimmte Menge von Diensten einer betrieblichen Anwendungsdomäne anbietet.

Als betriebliche Anwendungsdomäne wird hierbei eine Menge charakteristischer Konzepte und Technologien in einem eingegrenzten betrieblichen Bereich angesehen. Typische betriebliche Anwendungsdomänen in diesem Sinne sind beispielsweise Produktionsplanung, Lagerverwaltung oder Finanzbuchhaltung. Zu den Artefakten zählen Turowski et al. den ausführbaren Programmcode, die den initialen Zustand der Komponente beschreibenden Daten, die Dokumentation, Tests sowie die Spezifikation. Für letztere wird ein ausführlicher methodischer Standard in Form eines Memorandums vorgeschlagen, das die zur Spezifikation von Fachkomponenten einzusetzenden Notationen und einen in sieben Ebenen organisierten Rahmen der zu spezifizierenden Sachverhalte festschreibt.

## Spezifikation von Fachkomponenten

Unter der Spezifikation einer Fachkomponente wird dabei die vollständige, widerspruchsfreie und eindeutige Beschreibung ihrer Außensicht verstanden. Diese zeigt auf, welche Dienste eine Fachkomponente in welchem Bedingungsrahmen bereitstellt, aber nicht, wie diese von der Komponente intern realisiert werden. Eine von Peter Fettke und Peter Loos durchgeführte Fallstudie zeigt jedoch, dass der im Memorandum vorgeschlagene Standard, insbesondere der Spezifikation, für den innerbetrieblichen Einsatz nicht praktikabel ist. Bereits einfache Verhaltensmerkmale einer Fachkomponente sind schwer spezifizierbar, da die Spezifikation zu umfangreich wird und aus praktischer Sicht zu viele Forderungen an Formalismen gestellt werden.

Der Aufwand für eine vollständig formale Spezifikation ist wirtschaftlich nicht umsetzbar, zudem wird die Spezifikation im Verhältnis zum Gehalt der getroffenen Aussagen unangemessen komplex und von anderen Begutachtern nur schwer nachvollziehbar. Etablierte Vorgehensmodelle für die Softwareentwicklung gehen iterativ und inkrementell vor. Eine vollständige Spezifikation wird üblicherweise erst am Ende der Entwicklung erreicht. Zu diesem Zeitpunkt ist diese in der geforderten Komplexität und formalisierten Form jedoch nicht mehr erforderlich und dient dann nur noch dem Selbstzweck.

