Feature-oriented software evolution theory

November ecsa european conference on software architecture deadline. The choice calculus is a simple metalanguage and associated theory that has been successfully applied to several problems of interest to the feature oriented software development community. Communications in computer and information science. An exploratory study, authordaniela rabiser and florian angerer and paul gr\unbacher and herbert pr\ahofer, journal2014 40th euromicro conference on. Combining featureoriented and aspectoriented programming to support software evolution. Fosd meeting 2015 christian doppler laboratory monitoring. Citeseerx document details isaac councill, lee giles, pradeep teregowda. Regarding software changes, in the last years more and more approaches were made in feature oriented software evolution and changes. Assuming that the hypothesis holds, we argue that featureoriented software evolution relying on automatic traceability, analyses, and recommendations reduces existing challenges in understanding and managing evolution. The key idea of featureoriented software development fosd is to explicitly represent similarities and differences of a family of software systems for a given application domain e. Software evolution in an industrial automation ecosystem. Higherorder delta modeling for software product line evolution.

Integrated modelbased testing of continuously evolving software product lines 2 imotep 2 since 2016. The choice calculus is a simple metalanguage and associated theory that has been successfully applied to several problems of interest to the featureoriented software development community. International workshop on featureoriented software development fosd11, munich, germany, august 2122, 2011. Featureoriented software development fosd is a paradigm for the construc. The key idea of feature oriented software development fosd is to emphasize the similarities of a family of software systems for a given application domain e. Software maintenance and evolution linkedin slideshare. Coevolution of variability models and related software. However, there is no empirical evidence to support this claim. Design for future managed software evolution part project.

A tool for causality analysis between source code metrics and bugs. An exploratory study, authordaniela rabiser and florian angerer and paul gr\unbacher and herbert pr\ahofer, journal2014 40th euromicro conference on software. It is often assumed that the use of featureoriented programming is better than other variability mechanisms for implementing software product lines spls. Theory and practice cbsoft in sao carlos, sp, brazil. The key idea of featureoriented software development fosd is to emphasize the similarities of a family of software systems for a given application domain e. The growing need for maintaining and evolving software systems is a major challenge in modern software engineering. Variantrich software systems offer a large degree of customization, allowing users to configure the target system according to their preferences and needs. Theory and practice cbsoft, tools demonstration track, pages 16, 20. International workshop on featureoriented software. Fosd 2016 proceedings of the 7th international workshop on. Partially safe evolution of software product lines. In theory, a software product line with n independent optional features can. Featureoriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. Evolution is of key importance for software services as they need to satisfy everchanging customer requirements under open and dynamic operating environment.

Featureoriented development, software evolution, traceabil ity, analysis. Methods and tools for empirical and featureoriented software engineering. It draws attention, inter alia, to the spe program classification, a principle of software uncertainty and laws of software evolution. The theory also enables the concept of slicing to be applied to nondeterministic programs. In this paper, we develop a vision of software evolution based on a featureoriented perspective. Feature oriented refactoring of legacy applications. To overcome this tension we propose the integration of. Features are a fundamental notion in modern software engineering. The formal presentation of the choice calculus essentially restricts variation points, called choices, to vary based on the inclusion or not of a single. Widely considered one of the best practical guides to programming, steve mcconnells original code complete has been helping developers write better software for more than a decade. An overview of featureoriented software development sven apel, department of informatics and mathematics, university of passau, germany christian k. Featureoriented software development fosd is a paradigm for the. Version management relies on a version control system git and sophisticated workflowsconcepts that have been developed for decades in the field of software configuration management scm 12, 24. Bridging gaps between developers and testers in globallydistributed software development.

How to stay on course and avoid the cliffs of modularity drift. A growing trend in software construction advocates a change in system modularity. It supports the automatic generation of largescale software systems from a set of units of functionality, called features. Hong mei, wei zhang, fang gu, a featureoriented approach to modeling and reusing requirements and software product lines, proceedings of the 27th annual internatioanl computer software and applications conference compsac 2003, pp. Two executions are said to be diverging if the observable. The first international workshop on unanticipated software evolution workshop report for the first int. Siam journal on numerical analysis society for industrial. This is basically the same as iterative incremental software development, but the term stresses the fact that a software system is never completely finished, and that it continues to evolve after it.

Pdf classification of tools for featureoriented software. It is often assumed that the use of feature oriented programming is better than other variability mechanisms for implementing software product lines spls. While traditional modules permit easy reconfiguration of a system to support different actors, these new modules encapsulate features. The fifth workshop on software visualization, maintenance, and evolution vem 2017 aims at bringing together the research communities interested in topics related to software visualization, software evolution, and software maintenance to share and discuss ideas, reflecting on alternatives to perform visualization, evolution, and maintenance of. Note that theory is not a distinct phase box at the bottom of. Hong mei, wei zhang, fang gu, a feature oriented approach to modeling and reusing requirements and software product lines, proceedings of the 27th annual internatioanl computer software and applications conference compsac 2003, pp. Feature oriented refactoring for is the process of decomposinga program into features, where a feature is an increment in programfunctionality. Combining featureoriented and aspectoriented programming. Featureoriented software evolution chair of software engineering. Combining feature oriented and aspect oriented programming to support software evolution. Feature oriented programming fop is a programming technique based on composition mechanisms, called refinements. Using featureoriented analysis to recover legacy software design for software evolution. To handle evolution scenarios such as the one illustrated in the motivating example, we introduce a partial refinement theory that formalises our notion of partially safe evolution of product lines.

Starting from the advantages of using featureoriented programming fop and program families to support software evolution, this paper discusses the drawbacks of current fop techniques. Introduction to software evolution 27 costs of maintenance usually greater than development costs 2 times to 100 times depending on the application affected by both technical and nontechnical factors increases as software is maintained maintenance corrupts the software structure, making further maintenance more difficult ageing software can have high support costs. These transformations are implemented in the industrystrength fermat transformation system. An overview of featureoriented software development. Fosd 2015 is organized with support from the province of upper austria and the christian doppler laboratory mevss. In this survey, we give an overview and a personal perspective on the roots of fosd, connections to other software development paradigms, and recent developments in this field. A feature is a unit of functionality of a software system that satisfies a requirement, represents a design decision, and provides a potential configuration option. A feature is a semantically cohesive unit of behavior of a software system. Yet, software versionsresulting from evolution in timeand variantsresulting from evolution in spaceare managed radically differently. We illustrate these ideas using an automotive example and raise research questions for the community. Bibliographic content of empirical software engineering, volume 24.

Change impact analysis for maintenance and evolution of variable software systems. The 7th workshop on software visualization, evolution and maintenance vem 2019 builds upon the success of the first four editions of vem, which in turn followed after two editions of the brazilian workshop on software visualization wbvs and ten editions of the brazilian workshop on software maintenance wmswm. On the use of featureoriented programming for evolving. Principal investigator pi of the 2nd funding phase of dfg priority programme spp 1593.

Methods and tools for empirical and feature oriented software engineering. Marketdriven approach based on markov decision theory for. Deadline extension to august 15 12pm aoe even if you havent handed in your abstract yet submission system now open. Features are used for the specification of commonalities and variabilities of software systems. Theory and practice cbsoft, tools demonstration track, pages 1. Feature interactions are a key issue in feature oriented designs. Requirementsdriven software service evolution springerlink.

Modeling interactions in feature oriented software designs. In this paper, we develop a vision of software evolution based on a feature oriented perspective. International workshop on featureoriented software development. Features distinguish di erent members of the family.

Featureoriented software evolution generative software. The majority of current research on service evolution is focused on maintaining the compatibility between evolved service and existing clients, while few works look into its root cause. Featureoriented software evolution proceedings of the seventh. Software modelling and evolution some we use mainstream modelling languages and methods uml or bpmn and mathematical models such as automata, term and graph rewriting, process calculi, logics and semantic web languages and use their theory, techniques and tools, as well as transformations and mappings between them, to address software. Towards dynamic evolution of runtime variability based on. Fosd15 group picture the 7th meeting on featureoriented software development attracted 48 people from brazil, canada, denmark, germany, france, norway, spain, sweden, usa, and austria. We develop a theory of for that relates code refactoring to algebraic factoring. Nevertheless, software evolution spawns also research disciplines that are devoted to the topic of migrating or reengineering legacy software systems by applying a specific software development paradigm to facilitate software evolution, e.

Detecting regression bugs in software evolution, analyzing sidechannels in programs and evaluating robustness in deep neural networks dnns can all be seen as instances of differential software analysis, where the goal is to generate diverging executions of program paths. October caise conference on advanced information systems engineering deadline. The key idea of feature oriented software development fosd is to explicitly represent similarities and differences of a family of software systems for a given application domain e. For example, if requirements change during the course of a software development activity, it may be necessary to reschedule development activities so that the new requirements can be addressed in a timely manner.

Regarding software changes, in the last years more and more approaches were made in featureoriented software evolution and changes. Feature oriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. Publications applied software engineering research group. A novel technique of encoding operational semantics within a denotational semantics allows the framework to handle operational slicing. He has continued on this path, advancing the theory and designing languages. Saner international conference on software analysis, evolution, and reengineering deadline. Workshop on featureoriented software development fosd, acm, 2016, 4957 abstract, pdf, code the choice calculus is a simple metalanguage and associated theory that has been successfully applied to several problems of interest to the featureoriented software development community.

Conference paper pdf available january 2005 with 60 reads how we measure reads. Ds profile on linkedin, the worlds largest professional community. Facing high degrees of variability, these systems often employ variability models to explicitly capture userconfigurable features e. International workshop on feature oriented software development fosd11, munich, germany, august 2122, 2011. Theory and practice of model transformations ebook by. Using featureoriented analysis to recover legacy software.

Feature interactions are a key issue in featureoriented designs. Featureoriented software development fosd is a paradigm for the construction. Recent studies have led to refinement of earlier conclusions and provided a basis for formation of a theory of software evolution. Now this classic selection from code complete, second edition book.

Cesar couto, pedro pires, marco tulio valente, roberto bigonha, andre hora, and nicolas anquetil. Featureoriented programming fop is a programming technique based on composition mechanisms, called refinements. Read theory and practice of model transformations 9th international conference, icmt 2016, held as part of staf 2016, vienna, austria, july 45, 2016, proceedings by available from rakuten kobo. November etaps european joint conferences on theory and practice of software deadline. International journal of computer sciences and engineering vol.

Software engineering terminology software languages lab. A feature interaction occurs when one or more features modify or influence other features 14. Moreover, we present properties and analyse how refinement and partial refinement operations can be interleaved, which might be often necessary in. The software is modified to adapt it to changing customer and market requirement. This book constitutes the refereed proceedings of the 9th international conference on model transforma. Saake, featureoriented software product lines concepts and implementation springer, 20. Feature orientation is an emerging paradigm of software development. Changes in requirements may have a severe impact on development processes.

From the fact that features provide a common ground to all stakeholders, we derive a hypothesis that changes can be effectively managed in a featureoriented manner. In 2018, vem will be colocated with the 9th brazilian conference on software. A parallel framework of combining satisfiability modulo. Proceedings of the first international work shop on feature. Volume 24, number 5, october 2019 includes special sections on special section on software maintenance and evolution, special section on source code analysis and manipulation and special section on predictive models and data analytics in software engineering.

1408 1021 58 1012 103 1042 302 711 737 341 735 1116 161 480 641 1059 283 1421 801 66 1533 1556 976 595 1387 681 301 60 147 1221 905 1157 1470 1410 1387 1420 1300 70