Yet, despite various attempts, none of the two disciplines has been successful in establishing unified solutions addressing both problems at the same time – mainly due to the isolation of both communities and due to the absence of realistic and widely accepted requirements on how to evaluate the effectiveness In summary, SCM and SPLE are two widely established, yet actively researched software engineering disciplines offering a variety of concepts to deal with software versions and variants. While the whole platform can be versioned, ideally, versioning at the level of features should be supported. Third, the granularity of tracking versions of variants is still unclear. Second, evolving product-line platforms is substantially more complex than evolving single variants, mainly since developers need to work on all variants at the same time. While this strategy is simple, it does not scale with the number of variants, and then requires evolving (i.e., re-engineering) cloned variants into a product-line platform. In fact, organizations rarely adopt product line engineering from scratch, but rather use readily available version control systems with their branching and forking facilities – a strategy known as clone&own. First, while version control systems are well-integrated into development processes, product-line engineering requires investment into additional tooling and different processes that are difficult to adopt. The Linux kernel is exemplary for many large-scale, variant-rich, and rapidly evolving software systems in industry, especially in the domains of embedded, cyber-physical, automotive, and avionics control systems.ĭespite decades of research in both fields, the effective evolution of variant-rich systems is still an open problem. Variant management in the Linux kernel relies on techniques known from the field of software product line engineering (SPLE), such as an integrated software platform, a variant-aware build system, an interactive configurator tool, and a model-based representation of all kernel features. Version management relies on a version control system (Git) and sophisticated workflows – concepts that have been developed for decades in the field of software configuration management (SCM). Yet, software versions – resulting from evolution in time – and variants – resulting from evolution in space – are managed radically differently. At the same time, the Linux kernel frequently boasts new versions, managed by thousands of developers. Each variant addresses different requirements, such as runtime environments ranging from Android phones to large super-computers and server farms. Consider the Linux kernel with its uncountable number of variants. Modern software systems evolve rapidly and often need to exist in many variants.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |