09. – 14. Januar 2011, Dagstuhl Seminar 11021
Feature-Oriented Software Development (FOSD)
Auskunft zu diesem Dagstuhl Seminar erteilt
Feature orientation is an emerging paradigm of software development. It supports partially or completely automated generation of software systems in a domain based on features---units of functionality covering the domain. The key idea of feature orientation is to emphasize the similarities of a family of software systems for a given application domain (e.g., database systems, banking software, and text processing systems) by treating features as first-class entities throughout the entire development lifecycle and across all the software artifacts, with the goal of reusing software artifacts among the family members. For example, features of a database system could be transaction management, query optimization, and multi-user operation, and those of a text processing system could be printing, spell checking, and document format conversions.
A key software engineering challenge is that a feature does not necessarily map cleanly to an isolated module of code. Rather, it may affect (``cut across'') many components of a modular software system. For example, the feature transaction management would affect many parts of a database system, e.g., query processing, logical and physical optimization, and buffer and storage management.
The concept of feature orientation is still in its infancy. However, a growing community of researchers have been working on it for years, and there are related, well-known concepts of software engineering with well-populated research communities, e.g., software product lines, aspect-oriented software development, service-oriented architecture, and model-driven engineering. The main goal of the Dagstuhl seminar on FOSD was to gather researchers and practitioners who are active in these different communities to discuss the roots, state of the art, and future directions of FOSD research and practice and to strengthen the identity of the feature orientation community. We think that this seminar met this goal. A overview of the seminar organization and a summary of results are given below.
As a warm-up for the seminar we conducted a survey on FOSD. The idea was to ask the emerging community what they think FOSD was about. We asked the following seven questions:
- What do you think are the distinguishing concepts and ideas of FOSD?
- What do you think are the major challenges in FOSD?
- Which success stories of FOSD do you know?
- What is missing in FOSD to adopt it in industry?
- Is FOSD sufficiently visible in the software engineering community?
- What do you expect to get out of the week?
- What format and what kind of activities are you interested in (tutorials, demos, talks, breakout groups, brainstorming, social events, etc.)?
Based on the responses of 27 participants (available at the seminar's website), we prepared an introductory presentation on FOSD that aimed at ``synchronizing'' the participants, which is especially important in a field that is still in its infancy. After the self-introductions of all of the 49 participants and the introductory presentation, we allocated slots for the ``hot'' topics in the field of FOSD. On Monday, we had a discussion session of feature modularity. Tuesday was dedicated entirely to feature interactions. On Thursday, we had a mix of discussions sessions on industry adoption, the relation of FOSD to other development paradigms, as well as automatic product generation based on FOSD. On Tuesday and Thursday, we had demo sessions in the evening; on Wednesday, we had breakout sessions and a social event. Finally, on Friday, we had two wrap-up sessions, one concluding the individual discussions of the breakout groups and one summarizing the seminar and discussing results and further action items.
From the organizers' perspective, the seminar was successful, although the large number of participants pushed the Dagstuhl concept to its limits. The topic attracted a lot of interest (the seminar was fully booked), and during the seminar there were many very lively and sometimes quite controversial discussions. Many participants contributed actively by organizing mini-tutorials, discussion sessions, and breakout groups. The results of the discussion sessions and the breakout groups are available at the seminar's website.
The participants used the seminar as an opportunity to learn about each others work and to establish collaborations, which will bear fruit in the years to come. As a first tangible outcome, we would like to point out the list of resources that the seminar's participants developed in a team effort:
- Key FOSD papers
- Annotated bibliographies in the portal researchr.org
- A suite of benchmark problems
- Teaching material on FOSD
The details of this list are described on the seminar's website. Further discussion points were how to promote FOSD in the future, how to further strengthen the community, and how to collaborate in an efficient manner. In summary, we conclude that the seminar was constructive and largely met its goals. Dagstuhl provided a productive and interactive atmosphere. It was certainly a key event in the maturation of the FOSD community.
The editors would like to thank Kacper Bak for his help in collecting the summary material from the participants and compiling this report.
Related Dagstuhl Seminar
- 14281: "Feature Interactions: The Next Generation" (2014)
- Programming Languages
- Program Generation
- Software Engineering
- Software product lines
- Domain engineering
- Software composition
- Program synthesis
- Generative programming
- Feature modeling
- Feature-oriented programming
- Separation of concerns
- Feature modularity
- Feature interaction
- Software specification
- Software verification