Modeling interactions in feature oriented software designs. Featureoriented programming fop feature oriented programming fop 45 is a paradigm for software modularization by considering features as a major abstraction. Concordia university, 2006 this thesis addresses three problems of framework development and evolution. Jacobson, objectoriented software engineering, addison wesley, reading, ma 1992. Featureoriented software development is a paradigm for the construction, customization, and synthesis of largescale and variable software systems, focusing on structure, reuse and variation. Looking at the evolution of pl methods in relation to each other, one could extract the picture shown in. The past, present, and future of software evolution. Their laws of software evolution are based on a study of the evolution of ibm 360 mainframe os and led, over a period of 20 years, to the formulation of eight laws of software evolution. The process of software evolution is driven by requests for changes and includes change impact analysis, release planning and change implementation. These changes will require new laws and theories to be created and justified. A solution, called the cascaded refactoring methodology, is. A feature interaction occurs when one or more features modify or influence other features 14. That is, the system develops a characteristic average increment of. Kaindl, the missing link in requirements engineering, acm sigsoft software engineering notes 18 2, pp.
Regarding software changes, in the last years more and more approaches were made in featureoriented software evolution and changes. The goal of fosd is to decompose a software system in terms of the features it provides and to create many different software products that share common features and differ in other. Over the past decades the laws have been revised and extended several times context. Pdf requirementsdriven software evolution researchgate. In software engineering, the laws of software evolution refer to a series of laws that lehman and belady formulated starting in 1974 with respect to software evolution. Again, the literature on software evolution rarely touches the sos aspect. Featureoriented software development semantic scholar. Lehmans laws, such as the notion that change is continuous, describe a number of insights derived from longterm studies of system evolution. Faculty of computer science, institute of software and. 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.
Introduction featureoriented modeling 17, rstly coined by kang et al. Software evolution can be fully manual based on changes by software. Diversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. The evolution life cycles, types of software maintenance. An overview of featureoriented software development. This work relies on ahead 12,14, which is an approach to support fop based on stepwise refinements. Pdf an overview of featureoriented software development. M programs, life cycles, and laws of software evolution. Cost estimation, prediction of changes, impact analysis. Featurebased approach to bridge the information technology and business gap phd thesis fayez eid alazemi this thesis is submitted in partial ful lment of the requirements for the degree of doctor of philosophy. Software evolution involves making reliable changes to legacy software to add new functionality and quality of service. Information on feature oriented programming fop also known as feature oriented software development fosd can be found here fosd on wikipedia.
Evolution to support the featureoriented evolution of product lines 28, 34. German summary in this brief paper, we honour the contributions of the late prof. In the other direction, in systems of systems engineering, however, the aspect of evolution is discussed as one of the challenges. Featureoriented software evolution chair of software engineering. In order to understand the concept of software evolution, one should back up a moment and recall that the purpose of software. In computer programming, featureoriented programming fop or featureoriented software development fosd is a programming paradigm for program generation in software product lines spls and for incremental development of programs. Research that addresses practical means of mitigating the risks involved when changing software, reducing the complexity of mature software systems, and. With the launch of futuristic, featurerich tools and applications every now and then, every facet of the business is being refined for making it more productive and efficient. A piece of software is said to be featurerich when it has many options and functional capabilities available to the user. 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. Analyzing trends in software product lines evolution using. Many splrelated paradigms have been proposed, among which featureoriented software development fosd is an approach that structures the design and code of a software system using the concept of a feature. Featureoriented development, software evolution, traceabil ity, analysis.
Ieee, 1980 todays paper came highly recommended by kevlin henney and nat pryce in a twitter thread last week, thank you both. I think applying our approach to track the evolution of laws for instance could yield some interesting results. Great effort has been made to deal with the software product line evolution. How to stay on course and avoid the cliffs of modularity drift. This paper presents a preliminary study on our software development methodology, the contextoriented software engineering cose, which is a usecasedriven software development methodology that guides us to a specification of contextdependent requirements and design. In this paper, we develop a vision of software evolution based on a feature oriented perspective. In this tutorial, we provide a gentle introduction to software product lines, feature oriented programming, virtual separation of concerns, and variability. Schlich 1998, requirements engineering in small and medium enterprises, requirements. To keep up with new business opportunities, the need to change software on a constant basis with major enhancements within a short timescale puts critical demands on the software systems. In our previous works, we carried out a classification of these. Programs, life cycles, and laws of software evolution, lehman, proc. Software evolution basics of software evolution laws of software evolution requirements growth software aging basics of change management baselines, change requests and configuration management software families the product line approach requirements traceability importance of traceability traceability tools. Designing software product lines with uml is an invaluable resource for all designers and developers in this growing field. On the use of featureoriented programming for evolving.
The purpose of modeling a domain is to facilitate knowledge reuse. The software is modified to adapt it to changing customer and market. Aspectoriented software development aosd, in addition to separating the. Featureoriented software evolution proceedings of the seventh. An overview of featureoriented software development sven apel, department of informatics and mathematics, university of passau, germany christian k astner, school of computer science, university of magdeburg, germany featureoriented software development fosd is a. A software product line is a complex system the aim of which is to provide a platform dedicated to large reuse. The basic idea of fosd is to decompose a software system in terms of the features it provides. Index terms evolution, product lines, feature model evolution, variability, survivability, cost of reparation. Lehmans laws of software evolution and the stagedmodel. Progressive disclosure is a technique applied to reduce the potential confusion caused by displaying a wealth of features at once sometimes if a piece of software is very featurerich, that can be seen as a bad thing see feature creep and software bloat. The information, technology, and case studies presented here show how to harness the promise of software product lines and the practicality of the uml to take software design, quality, and efficiency to the next level.
The people registered for the tutorial will be contacted via email. He is among the pioneers of featureoriented software productlines, and has given many tutorials on this topic at premier conferences over the last 15 years. Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. Featureoriented software development fosd is a paradigm for the construc. Siam journal on numerical analysis siam society for. Programs, life cycles, and laws of software evolution. This space shows interesting commuting properties that allow i to. Featureoriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems.
For ex ample, automotive embedded software undergoes continuous evolution due to new regulations e. This web site is used for distribution of tools, models, and publications developed within. We illustrate these ideas using an automotive example and raise research questions for the community. 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. Software maintenance is one of the most crucial aspects of software development. Fomdd combines feature oriented programming and model driven development together where a new synthesis design space appears. Software engineering researchers must develop practical solutions to handle the challenges presented in maintaining mature software systems. Thus, its ability to cope with customers everchanging requirements is among its key success factors. The laws describe a balance between forces driving new developments on one hand, and forces that slow down progress on the other hand. The footnotes show that the manuscript for this paper was submitted almost exactly 40 years ago on the 27th february 1980. Technology is progressing fast and so is the way of doing business. Configuration and change management, refactoring, aspectoriented programming, feature oriented programming, program transformations. Meir lehman in his work programs, life cycles, and laws of software evolution 1980.
Duplication detection when evolving feature models. In this paper, we are focusing on requirements that cause. Feature interactions are a key issue in featureoriented designs. Connection between layer stacks and transformation compositions. Faculty of computer science, institute of software and multimediatechnology, chair for software technology. Software maintenance and evolution linkedin slideshare. We formulate this trend as the law of scale invariance of data management. It has long been recognized that, for longlived industrial software, the largest part of lifecycle costs is concerned with the evolution of software to meet changing requirements.
Usecases are often found in the software product line engineering sple community, where fosd is one emerging field of implementation techniques whitepapers and tutorials on practical. We do so by means of a kind of evolutionary case study. Cascaded refactoring for framework development and evolution lugang xu, ph. Diversity has an impact on all phases of the software development process. Featureoriented software evolution generative software. Contents parti software product lines 1 softwareproduct lines 3 1. The result of such a decomposition is a software product line that allows us to. The software is modified to adapt it to changing customer and market requirement. The first version of the laws of software evolution was based on a single case. This change involves risks that include unexpected or undetected consequences, degradation of. The term software evolution stems for a series of works, commonly referred to today as lehmans laws, that were first proposed by dr.
From software evolution point of view, 12 described how and when the software evolution laws, and the software evolution field, evolved, and also addressed the current state of affairs about the. The network for the engineering of complex softwareintensive systems for automotive systems necsis is a research network established to tackle the obstacles and develop new mde capabilities that lead to the development of the next generation of mde methods and tools. 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. Featureoriented development of software product lines. Laws of software evolution development of software in time key argument for quality assurance.
611 892 979 1248 590 831 871 66 452 707 1534 1457 49 611 1042 1251 722 841 1538 137 643 544 346 1504 1381 645 600 141 1480 679 682 261 1356 1004 240 1331 939