In this paper, we develop a vision of software evolution based on a feature oriented perspective. Programs, life cycles, and laws of software evolution, lehman, proc. 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. This change involves risks that include unexpected or undetected consequences, degradation of.
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. 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. An algebra for featureoriented software development. Pdf the evolution of the laws of software evolution. Configuration and change management, refactoring, aspectoriented programming, feature oriented programming, program transformations. 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. Featureoriented software development semantic scholar. Feature interactions are a key issue in featureoriented designs. Featureoriented software evolution chair of software engineering. Diversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. 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.
A software product line is a complex system the aim of which is to provide a platform dedicated to large reuse. Featureoriented software development is a paradigm for the construction, customization, and synthesis of largescale and variable software systems, focusing on structure, reuse and variation. The result of such a decomposition is a software product line that allows us to. The footnotes show that the manuscript for this paper was submitted almost exactly 40 years ago on the 27th february 1980. 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.
This work relies on ahead 12,14, which is an approach to support fop based on stepwise refinements. An approach for decision support on the uncertainty in. 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. The first version of software system which is lacking some features will be. Duplication detection when evolving feature models. The software is modified to adapt it to changing customer and market. Over the past decades the laws have been revised and extended several times context. We illustrate these ideas using an automotive example and raise research questions for the community. Jacobson, objectoriented software engineering, addison wesley, reading, ma 1992. Concordia university, 2006 this thesis addresses three problems of framework development and evolution. These changes will require new laws and theories to be created and justified. Featureoriented development, software evolution, traceabil ity, analysis.
Fomdd combines feature oriented programming and model driven development together where a new synthesis design space appears. 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. 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. In our previous works, we carried out a classification of these. 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. In this paper, we are focusing on requirements that cause. Featureoriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. Aspectoriented software development aosd, in addition to separating the. Cost estimation, prediction of changes, impact analysis. Diversity has an impact on all phases of the software development process. Cascaded refactoring for framework development and evolution lugang xu, ph. Designing software product lines with uml is an invaluable resource for all designers and developers in this growing field. Contents parti software product lines 1 softwareproduct lines 3 1.
Featureoriented development of software product lines. Technology is progressing fast and so is the way of doing business. We formulate this trend as the law of scale invariance of data management. This web site is used for distribution of tools, models, and publications developed within. Featureoriented software development fosd is a paradigm for the construc. I think applying our approach to track the evolution of laws for instance could yield some interesting results. Schlich 1998, requirements engineering in small and medium enterprises, requirements. The software is modified to adapt it to changing customer and market requirement.
Software maintenance and evolution linkedin slideshare. In order to understand the concept of software evolution, one should back up a moment and recall that the purpose of software. 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. Software engineering researchers must develop practical solutions to handle the challenges presented in maintaining mature software systems.
Programs, life cycles, and laws of software evolution. 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. The basic idea of fosd is to decompose a software system in terms of the features it provides. 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. A feature interaction occurs when one or more features modify or influence other features 14. German summary in this brief paper, we honour the contributions of the late prof. Lehmans laws, such as the notion that change is continuous, describe a number of insights derived from longterm studies of system evolution. Pdf an overview of featureoriented software development.
A solution, called the cascaded refactoring methodology, is. On the use of featureoriented programming for evolving. In this tutorial, we provide a gentle introduction to software product lines, feature oriented programming, virtual separation of concerns, and variability. This space shows interesting commuting properties that allow i to. How to stay on course and avoid the cliffs of modularity drift. We do so by means of a kind of evolutionary case study. 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. 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 purpose of modeling a domain is to facilitate knowledge reuse. Featureoriented software evolution proceedings of the seventh. Research that addresses practical means of mitigating the risks involved when changing software, reducing the complexity of mature software systems, and.
Software evolution involves making reliable changes to legacy software to add new functionality and quality of service. Siam journal on numerical analysis siam society for. Great effort has been made to deal with the software product line evolution. Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. Faculty of computer science, institute of software and. Software evolution can be fully manual based on changes by software. Lehmans laws of software evolution and the stagedmodel. Index terms evolution, product lines, feature model evolution, variability, survivability, cost of reparation. Ieee, 1980 todays paper came highly recommended by kevlin henney and nat pryce in a twitter thread last week, thank you both. The evolution life cycles, types of software maintenance. In the other direction, in systems of systems engineering, however, the aspect of evolution is discussed as one of the challenges. 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. Kaindl, the missing link in requirements engineering, acm sigsoft software engineering notes 18 2, pp. Pdf requirementsdriven software evolution researchgate.
Analyzing trends in software product lines evolution using. Software maintenance is one of the most crucial aspects of software development. The past, present, and future of software evolution. 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. Regarding software changes, in the last years more and more approaches were made in featureoriented software evolution and changes. 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. The process of software evolution is driven by requests for changes and includes change impact analysis, release planning and change implementation.
An overview of featureoriented software development. Faculty of computer science, institute of software and multimediatechnology, chair for software technology. Connection between layer stacks and transformation compositions. Thus, its ability to cope with customers everchanging requirements is among its key success factors.
The first version of the laws of software evolution was based on a single case. The term software evolution stems for a series of works, commonly referred to today as lehmans laws, that were first proposed by dr. M programs, life cycles, and laws of software evolution. 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. Introduction featureoriented modeling 17, rstly coined by kang et al. 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. Modeling interactions in feature oriented software designs. 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. The laws describe a balance between forces driving new developments on one hand, and forces that slow down progress on the other hand. That is, the system develops a characteristic average increment of. Information on feature oriented programming fop also known as feature oriented software development fosd can be found here fosd on wikipedia. Again, the literature on software evolution rarely touches the sos aspect. Featureoriented software evolution generative software. Evolution to support the featureoriented evolution of product lines 28, 34.
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. Nicolas dintzner software engineering research group will obtain his phd on friday july 7 th with his thesis titled featureoriented evolution of variantrich software systems. Featureoriented programming fop feature oriented programming fop 45 is a paradigm for software modularization by considering features as a major abstraction. 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 people registered for the tutorial will be contacted via email. A piece of software is said to be featurerich when it has many options and functional capabilities available to the user.
Laws of software evolution development of software in time key argument for quality assurance. Looking at the evolution of pl methods in relation to each other, one could extract the picture shown in. For ex ample, automotive embedded software undergoes continuous evolution due to new regulations e. Meir lehman in his work programs, life cycles, and laws of software evolution 1980.
89 1218 322 111 333 769 367 997 835 539 1186 521 72 259 1086 450 512 542 1514 393 207 116 523 783 767 753 45 1208 453 796 425 1119 290 1411 686 1497 1142 675 491 1387 1019 1418 780 536 1153 319 706 239