Published Sep 3, 2019

Episode 173: Feature-Oriented Software Development with Sven Apel – Pt 2

Explore the transformative power of Feature-Oriented Software Development with Sven Apel as he delves into the tools like FeatureIDE, addresses modularization challenges, and discusses the dynamic research community that drives innovation and collaboration in software development.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Granularity

    Granularity issues in feature-oriented software development present significant challenges. explains that while modularizing features is ideal, there are limits due to granularity. At a coarse level, software systems are seen as packages and classes, but at a fine level, they involve statements and expressions. This complexity can hinder the separation of features, especially when legacy code is involved 1. Apel notes that the difficulty arises because statements lack names, making it hard to decompose code effectively:

    The reason is that statements don't have names.

    ---

    This limitation highlights the need for improved modularization mechanisms beyond traditional interfaces and mixins.

       

    Refactoring

    Refactoring legacy systems to incorporate feature modules involves a strategic approach. discusses the use of preprocessing techniques and modularization to manage complex codebases. He mentions the site tool, which allows for step-by-step annotation and transformation of code into modular implementations, enhancing maintainability and evolution 2. This method is particularly useful in product line engineering, where gradual adoption of feature modules can lead to better software properties. Apel emphasizes the importance of educating future developers in these methodologies, noting that courses on feature-oriented software development are spreading across universities 3.

    One way to do it is not to convince the old guys, but to educate the new guys.

    ---

    This educational focus ensures that new developers are equipped with the skills to handle modern software challenges.

Related Episodes