Sie sind hier:
Lexikon/Glossar
Telefon (Mo-Fr 9-16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Start
Hauptseite
Angebote im Überblick
Kernkompetenzen
Softwareentwicklung
Beratung
Firmen-Schulungen
Offene Seminare
Online-Maßnahmen
Vorträge
Coaching
Support
Fachbücher
Fachartikel
Konditionen
Themen
Kernkompetenzen
Aktuelle Themen
Web & Cloud
Apps / Mobilplattformen
Benutzeroberflächen / User Experience
.NET
JavaScript / TypeScript
Java
Programmiersprachen
Entwicklungswerkzeuge
Scripting
Softwareengineering
Datenbanken / Reporting / BI
Betriebssysteme & Virtualisierung
Microsoft Server-Produkte
Windows & Office für Anwender
Soft Skills & IT-Recht
Beratung
Beratungsthemen
Coaching
Softwareentwicklung
Technischer Support
Unsere Top-Berater
Referenzkunden
Angebotsanfrage
Individuelle Schulungen
1026 Schulungsthemen
Agendakonfigurator
Weiterbildungsphilosophie
Didaktische Konzepte
Vor Ort oder online
Unsere Top-Trainer
Referenzkunden
Teilnehmerfeedback
Angebotsanfrage
Offene Seminare
.NET-Akademie
.NET/C#-Basisseminar
WPF
WinUI
.NET MAUI
Blazor
ASP.NET WebAPI & gRPC
Entity Framework Core
Unit Testing / TDD
PowerShell
Infotage
Wissen
Übersicht
Fachbücher
Fachartikel
Konferenzvorträge
Konferenzen/Events
Spickzettel
Lexikon/Glossar
Programmcodebibliothek
Versionshistorie
Weblog
Downloads
Newsletter
Community-/Leserportal
Registrierung
.NET/C#/Visual Studio
.NET 10.0
.NET 9.0
.NET 8.0
ASP.NET (Core)/Blazor
PowerShell
Über uns
Kontakt
Selbstdarstellung
Kernkompetenzen
Dr. Holger Schwichtenberg
Top-Experten
Leitung & Kundenteam
Referenzkunden
Kundenaussagen
Referenzprojekte
Partner
Konditionen
Stellenangebote
Weitere Websites
Impressum
Datenschutzerklärung, Haftung, Urheberrecht, Barrierefreiheit
Suche
Themenkatalog
Tag Cloud
Volltextsuche
Site Map
FAQs
Erklärung des Begriffs: Softwarekomponente
Zur Stichwortliste unseres Lexikons
Was ist
Softwarekomponente
?
Eine vielfach zitierte Definition von Komponenten (Softwarekomponenten) ist das Ergebnis des Workshop on Component-Oriented Programming im Rahmen der 10. European Conference on Object Oriented Programming (EC
OOP
'96): "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." [SzPf96].
Die Definition wird in vielen Veröffentlichungen allein Szyperski zugerechnet. Szyperski stellt aber in [Szy02, S. 41] fest, dass die Definition im Rahmen des Workshops und nicht von ihm allein geschaffen wurde.
Eine andere Definition ist: »Components repräsentieren speziell im Hinblick auf Wiederverwendung entworfene und implementierte Softwarebausteine. Ein Baustein stellt eine Menge von öffentlichen Diensten (engl. public services) zur Nutzung bereit.« ([EIC99], S. 363)
===
Granularität
Szyperski nennt verschiedene Aspekte der Ganularität von Softwarekomponenten [Szy02, S. 139ff.]. Komponenten sind Einheiten zur:
Abstraktion (abstraction)
Abrechnung (account)
Analyse (analysis)
Kompilierung (compilation)
Auslieferung (devlivery)
Konfiguration (deployment)
Diskussion (dispute)
Erweiterbarkeit (extension)
Fehlerbehandlung (fault contaiment)
Instanziierung (instantiation)
Installation (installation)
Laden (loading)
Lokalisierung
(locality)
Wartung (maintenance)
Systemmanagement (system management)
====
Komponenten im
.NET Framework
Gemäß dieser den üblichen Gepflogenheiten entsprechenden Definitionen ist jede .NET-
Assembly
eine Komponente, sofern sie öffentliche Klassen bereitstellt. Microsoft betreibt in .NET mit diesem Begriff wieder
MINFU
und definiert in einigen Fällen, das eine
.NET-Komponente
eine .NET-Klasse ist, die die Schnittstelle
System.ComponentModel
.
IComponent
implementiert. Diese Schnittstelle kann eine Klasse selbst implementieren oder von einer Oberklasse erben, z.B. von
System.ComponentModel
.Component oder
System.ComponentModel
.MarshalByValueComponent. Eine Klasse, die
IComponent
implementiert, hat den Vorteil, dass sie in einen visuellen
Container
aufgenommen werden kann. Ein
Container
kann ein
Steuerelement
sein (z.B. ein Webform oder ein Windows Form) oder auch nur zur Entwicklungszeit sichtbar sein (z.B. die Toolbox und die Designer in
Visual Studio .NET
).
Diese Verwendung des Begriffs Komponente ist auch deshalb ungünstig, weil in der Lehre der komponentenorientierten Softwareentwicklung und anderen
Komponentenarchitektur
en wie COM und
Java
Beans üblicherweise eine Komponente aus mehreren Klassen besteht. Zudem verwendet Microsoft selbst an anderer Stelle in der
.NET Framework
SDK
-Dokumentation den Begriff Komponente auch synonym zu
Assembly
. Auch dieses Buch hält sich an die allgemeine Definition, zumal der Namespace
System.ComponentModel
in diesem Buch nicht näher besprochen wird und es daher nicht zu Namenskonflikten kommt.
Weitere Ressoucen auf dieser Website
Der DOTNET-DOKTOR / Das .NET-Weblog auf www.heise.de
Querverweise zu anderen Begriffen im Lexikon
siehe
Komponente
Komponentenarchitektur
System.ComponentModel
Visual Studio .NET (VS.NET)
.NET-Komponente
.NET Framework
Lokalisierung
Steuerelement
IComponent
Container
Assembly
Java
Microsoft Nomenclature Foul-Up (MINFU)
Software Development Kit (SDK)
Objektorientiertes Programmieren (OOP)
Beratung & Support
Programmcodereview
Webtechniken, Web-Frameworks/-Bibliotheken und Web-Tools auswählen
Anfrage für Beratung/Consulting zu SOFTWAREKOMPONENTE
Gesamter Beratungsthemenkatalog
Technischer Support zum SOFTWAREKOMPONENTE
Schulungen
.NET-Aufbauwissen
.NET-Softwarearchitektur (Architektur von .NET-Anwendungen)
Azure DevOps Server / Azure DevOps Services (ADO) im Überblick
Java-.NET-Kopplung
Komponentenbasierte Softwareentwicklung (Component Based Development - CBD)
Komponentenorientiertes Entwickeln mit .NET / .NET Components
Moderne Softwarearchitekturen und Entwicklungstechniken im Überblick
Serviceorientierte Architekturen (SOA)
Visual Studio 2005 (Visual Studio 8.0 "Whidbey")
Visual Studio für Einsteiger
Windows PowerShell 5.0/5.1 für Umsteiger von Version 4.0
Anfrage für eine individuelle Schulung zum Thema SOFTWAREKOMPONENTE
Gesamter Schulungsthemenkatalog
Fachbücher
Blazor 10.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 10.0, C# 14.0 und Visual Studio 2026
C# 14.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 10.0
.NET 10.0 Update: Die Neuerungen in .NET 10.0 gegenüber .NET 9.0
Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
C# 13.0 Crashkurs
Cross-Plattform-Apps mit .NET MAUI entwickeln
Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
.NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
.NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
Concurrency with Modern C++: What every professional C++ programmer should know about concurrency
C++20: Get the Details
Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
C# 12.0 Crashkurs
App-Entwicklung für Mobile und Desktop: Software Engineering mit .NET MAUI und Comet für iOS, Android, Windows und macOS
Cross-Plattform-Apps mit .NET MAUI entwickeln
Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
C# 11.0 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
C++ Core Guidelines Explained: Best Practices for Modern C++
App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
Vue.js 3 Crashkurs
Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
C# 10.0 Crashkurs
Cross-Plattform-Apps mit Xamarin.Forms entwickeln
Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr