| |
Laborpraktikum FeatureIDE
|
Kontext
FeatureIDE ist eine Eclipse-basierte Entwicklungsumgebung fuer die
featureorientierte Softwareentwicklung. Dazu gibt es u.a. eine
Java-aehnliche Programmiersprache mit der man Feature implementieren
kann und ein Modellierungsansatz mit dem man Produktlinien in Baeumen
visualisiert.


Eine Grundversion der Entwicklungsumgebung existiert bereits mit
Funktionen wie Syntaxhighlighting und Integration eines Compilers. Eine
Uebersicht und downloadbare Version gibt es auf der Seite des
Projektes: FeatureIDE
Webseite, sowie in einem Paper zur IDE:
- Thomas Leich and Sven Apel and Laura Marnitz and Gunter
Saake. Tool Support for Feature-Oriented Software Development -
FeatureIDE: An Eclipse-Based Approach. In Proceedings of OOPSLA
Workshop on Eclipse Technology eXchange (ETX), San Diego, USA, October
2005. [PDF]
Software program families have a long tradition and will
gain momentum in the future. Today's research tries to
move software development to a new quality of industrial
production. Several solutions concerning different phases
of the software development process have been proposed in
order to cope with different problems of program family development.
A major problem of program family engineering
is still the missing tool support. The vision is an IDE that
brings all phases of the development process together consistently
and in a user-friendly manner. This paper focuses
on AHEAD, a prominent design methodology and architectural
model for feature-based program families. We present
our first results on developing an Eclipse-based IDE that
supports building program families following the AHEAD
architecture model. Starting from current weaknesses and
pitfalls in implementing program families we outline several
challenges of the feature-based development process. Thereupon,
we present our ideas to face these challenges and a
resulting integrated tool chain based on Eclipse.
Fuer ein Grundverstaendniss der featureorientierten Programmierung
empfehlen wir eins der folgenden Paper:
- D. Batory, J.N. Sarvela, and A. Rauschmayer. Scaling
Step-Wise Refinement, IEEE Transactions on Software Engineering
(IEEE TSE), June 2004. [PDF]
Step-wise refinement is a powerful paradigm for
developing a complex program from a simple program by adding features
incrementally. We present the AHEAD (Algebraic Hierarchical Equations
for Application Design) model that shows how step-wise refinement
scales to synthesize multiple programs and multiple noncode
representations. AHEAD shows that software can have an elegant,
hierarchical mathematical structure that is expressible as nested sets
of equations. We review a tool set that supports AHEAD. As a
demonstration of its viability, we have bootstrapped AHEAD tools from
equational specifications, refining Java and non-Java artifacts
automatically; a task that was accomplished only by ad hoc means
previously.
- D. Batory. A Tutorial on Feature Oriented Programming
and the AHEAD Tool Suite, Proc. Summer School on Generative and
Transformation Techniques in Software Engineering, Braga, Portugal, R.
Laemmel, J. Saraiva, and J. Visser, ed., Vol 4143, Lecture Notes in
Computer Science, Springer-Verlag, 2006. [PDF]
Feature oriented programming (FOP) is the study
of feature modularity and its use in program synthesis. AHEAD is a
theory of FOP that is based on a fundamental concept of generative
programming that functions map programs. This enables the design of
programs to be expressed compositionally as algebraic expressions,
which are suited for automated analysis, manipulation, and program
synthesis. This paper is a tutorial on FOP and AHEAD. We review AHEAD's
theory and the tool set that implements it.
Das Laborpraktikum bietet sich auch als Ergaenzung zur Vorlesung Erweiterte
Programmierkonzepte für maßgeschneiderte Datenhaltung an.
Aufgabenstellung
Im Rahmen des Laborpraktikums soll die bestehende Entwicklungsumgebung
erweitert werden. Im Vordergrund stehen vor allem Visualisierungen des
Projektes, es sind aber auch technischere Teilaufgaben moeglich. So
sollen beispielsweise Views implementiert werden, die darstellen welche
Methoden wo erweitert werden. Aehnlich sollen Navigationshilfen fuer
Entwickler bereitgestellt werden. Beispiele sind auch die Abbildungen 5
und 6 im oben zitierten Paper.
Zu Beginn des Projektes werden wir gemeinsam die Probleme erarbeiten
und die zu bearbeitenden Aufgaben definieren. Fuer die
Implementierungen koennen dann frei eigene Ideen zur Realisierung
verwirklicht werden. Es besteht viel Raum zum Experimentieren.
Technisches
Implementiert wird das Projekt komplett als Eclipse-Plugin.
Programmiersprache ist daher Java. Im Rahmen des Projektes werden die
Teilnehmer sich intensiv mit der Eclipsearchitektur beschaeftigen
(muessen), wozu aber vielfaeltige Dokumentationen verfuegbar sind.
Erfahrungen in der Programmierung sind sehr hilfreich. Erfahrungen mit
Eclipse als Benutzer sind auch nuetzlich.
Organisatorisches
Betreut wird das Praktikum von Christian
Kästner.
Ausgeschrieben ist es fuer das Sommersemester 08 und sollte auch bis
spaetestens zum 31.9.2008 beendet sein.
Mindestteilnehmerzahl ist 3, Aufwand 4 bis 8 SWS, je nach Studiengang.
Abgeschlossen wird es mit einem Schein.
Zudem erstellen die Teilnehmer eine Startpraesentation zu der die Ziele
fixiert werden und eine Endpraesentation bei der die Ergebnisse
vorgestellt werden.
Interessenten melden sich bitte per Email oder direkt im Buero
(G29-108), idealerweise schon als Gruppe.
|