Zum Inhalt springen

„Feature Oriented Programming“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Antisteo (Diskussion | Beiträge)
Artikel strukturiert, Belege hinzugefügt, Quellen-Vermerk entfernt
K Revert auf Version von Benutzer:TheRandomIP (15:59 Uhr, 21. Februar 2017). Grund: bitte mit WP:Belegen; siehe auch Benutzerdiskussionsseite
Zeile 1: Zeile 1:
{{Belege fehlen|2=Dieser Artikel|1=Bitte die [[Wikipedia:Belege#Was_sind_zuverl.C3.A4ssige_Informationsquellen.3F|Anforderungen für geeigneten Quellen]] beachten. <small>(Februar 2017)</small>}}

'''Feature-orientierte Programmierung''' ('''FOP''', engl. ''feature-oriented programming'') ist ein Programmierparadigma zur Entwicklung von [[Produktlinie (Software)|Software-Produktlinien]].
'''Feature-orientierte Programmierung''' ('''FOP''', engl. ''feature-oriented programming'') ist ein Programmierparadigma zur Entwicklung von [[Produktlinie (Software)|Software-Produktlinien]].


Grundlage der Feature-orientieren Programmierung sind Softwaremerkmale (Features), die bei Design und Implementierung als Elemente erster Ebene berücksichtigt werden. Features stellen Erweiterungen von Programmfunktionalität dar. Dabei unterscheiden sich Features von [[Cross-Cutting Concern]]s dahingehend, dass sie Anforderungen von Programmnutzern direkt widerspiegeln. Von Modul-Systemen unterscheidet sich FOP, dass Features feingranularer in das Programm einwirken, während Module einer Kapselung unterliegen.<ref>{{Internetquelle|url=https://launix.de/launix/feature-oriented-programming2/|titel=Feature Oriented Programming {{!}} LAUNIX|sprache=de-DE|zugriff=2017-05-05}}</ref>
Grundlage der Feature-orientieren Programmierung sind Softwaremerkmale (Features), die bei Design und Implementierung als Elemente erster Ebene berücksichtigt werden. Features stellen Erweiterungen von Programmfunktionalität dar. Dabei unterscheiden sich Features von [[Cross-Cutting Concern]]s dahingehend, dass sie Anforderungen von Programmnutzern direkt widerspiegeln.


==Vereinfachung der Erstellung Produktreihen==
==Vereinfachung der Erstellung Produktreihen==
Der Nutzen von FOP ist die Vereinfachung der Erstellung von Produktreihen. Wird immer dasselbe Produkt (z.B. ein CRM) mit jedes mal abweichenden Anforderungen benötigt, erlaubt FOP das Programmieren der kompletten Produktreihe in einem einheitlichen [[Quellcode]]. Ein kundenspezifisches Produkt kann dann anhand einer Parameterisierung der Produktreihe durch Auswählen von Features aus dem FOP-Code generiert werden. Dies ermöglicht, komplexe Software wie [[CRM]]- und [[ERP]]-Systeme zusammensetzen können, bei denen ein hoher Individualisierungsbedarf bei gleichzeitigem Kostendruck existiert.
Der Nutzen von FOP ist die Vereinfachung der Erstellung von Produktreihen. Wird immer dasselbe Produkt (z.B. ein CRM) mit jedes mal abweichenden Anforderungen benötigt, erlaubt FOP das Programmieren der kompletten Produktreihe in einem einheitlichen [[Quellcode]]. Ein kundenspezifisches Produkt kann dann anhand einer Parameterisierung der Produktreihe durch Auswählen von Features aus dem FOP-Code generiert werden.

==Umsetzungsformen==
Heutige Ansätze arbeiten meist mit Template-Systemen, die komplexe Software wie [[CRM]]- und [[ERP]]-Systeme zusammensetzen können. Feature Oriented Programming unterscheidet sich von normalen Modul-Systemen dadurch, dass die Ansteuerung der Features feingranularer möglich ist, sowie Features auch Modul-übergreifend sein können.


Zur Repräsentation der Features einer Software gibt es sowohl grafische Systeme<ref>Vorlesung Softwaretechnologie, Uwe Aßmann</ref>, die über Checkboxen arbeiten und eine Software mittels einer GUI zusammenstellen lassen, als auch Systeme, die auf der Basis von [[Beschreibungslogik|Beschreibungslogiken]] arbeiten.
==Zusammensetzung==
Ein System, das das FOP-Paradigma umsetzt, besteht aus zwei Teilen: Einem Beschreibungs-System, sowie einem Code-Generator. Als Beschreibungssysteme kommen zum Einsatz:
* Makefiles<ref name=":0">{{Internetquelle|url=https://www.researchgate.net/publication/229066926_Feature-Oriented_Programming_and_Context-Oriented_Programming_Comparing_Paradigm_Characteristics_by_Example_Implementations|titel=Academic paper: Feature-Oriented Programming and Context-Oriented Programming: Comparing Paradigm Characteristics by Example Implementations|sprache=en|zugriff=2017-05-05}}</ref>
* XML
* [[Beschreibungslogik|Beschreibungslogiken]] (eine Unterart der [[Prädikatenlogik]])<ref>{{Internetquelle|url=https://launix.de/launix/beschreibungslogik-beschert-ihnen-die-perfekte-datenbank-software/|titel=Beschreibungslogik beschert Ihnen die perfekte Datenbank-Software {{!}} LAUNIX|sprache=de-DE|zugriff=2017-05-05}}</ref>
* Grafische Systeme<ref>Vorlesung Softwaretechnologie, Uwe Aßmann</ref>, die über Checkboxen arbeiten und eine Software mittels einer GUI zusammenstellen lassen
Zur Code-Generierung wird meist ein Template-Systemen benutzt, um die Features zusammenzusetzen:
* Mit Annotationen wie #ifdef können in C++ Features an- und ausgeschaltet werden<ref name=":0" />
* Diverse [[Aspektorientierte Programmierung|AOP]]-Frameworks können so benutzt werden, dass sie das FOP-Paradigma umsetzen
* Handgeschriebener Code kann das spezialisierte Programm generieren


==Siehe auch==
==Siehe auch==

Version vom 7. Mai 2017, 14:33 Uhr

Feature-orientierte Programmierung (FOP, engl. feature-oriented programming) ist ein Programmierparadigma zur Entwicklung von Software-Produktlinien.

Grundlage der Feature-orientieren Programmierung sind Softwaremerkmale (Features), die bei Design und Implementierung als Elemente erster Ebene berücksichtigt werden. Features stellen Erweiterungen von Programmfunktionalität dar. Dabei unterscheiden sich Features von Cross-Cutting Concerns dahingehend, dass sie Anforderungen von Programmnutzern direkt widerspiegeln.

Vereinfachung der Erstellung Produktreihen

Der Nutzen von FOP ist die Vereinfachung der Erstellung von Produktreihen. Wird immer dasselbe Produkt (z.B. ein CRM) mit jedes mal abweichenden Anforderungen benötigt, erlaubt FOP das Programmieren der kompletten Produktreihe in einem einheitlichen Quellcode. Ein kundenspezifisches Produkt kann dann anhand einer Parameterisierung der Produktreihe durch Auswählen von Features aus dem FOP-Code generiert werden.

Umsetzungsformen

Heutige Ansätze arbeiten meist mit Template-Systemen, die komplexe Software wie CRM- und ERP-Systeme zusammensetzen können. Feature Oriented Programming unterscheidet sich von normalen Modul-Systemen dadurch, dass die Ansteuerung der Features feingranularer möglich ist, sowie Features auch Modul-übergreifend sein können.

Zur Repräsentation der Features einer Software gibt es sowohl grafische Systeme[1], die über Checkboxen arbeiten und eine Software mittels einer GUI zusammenstellen lassen, als auch Systeme, die auf der Basis von Beschreibungslogiken arbeiten.

Siehe auch

Einzelnachweise

  1. Vorlesung Softwaretechnologie, Uwe Aßmann