Applying design by contract to feature-oriented programming software

Featureoriented programming fop is an extension of ob ject oriented programming to support software variability by refining existing classes and. Software design is a process to conceptualize the software requirements into software implementation. Towards assessing the complexity of object migration in. Applying design by contract to featureoriented program. Applying design by contract to featureoriented program ming is beneficial to. The journal of systems and software 152 2019 83107 featureoriented software development. In section 9, we sketch how to transfer our results to these other domains. User inputs are critical for the security, safety, and reliability of software systems. Experience from initial service oriented architecture soa implementation projects suggest that existing development processes and notations such as object oriented analysis and design ooad, enterprise architecture ea frameworks, and business process modeling bpm only cover part of what is required to support the architectural patterns currently emerging under the soa umbrella. Currently, there is a multitude of different methods, languages, and tools for fosd that despite their common aim.

To be adopted in a safetycritical environment it must handle quality requirements and offer mechanisms to ensure the reliability level of the components and the system. Modeldriven techniques to enhance architectural languages interoperability. Christiankastner1 andsvenapel2 1 philippsuniversitymarburg,germany 2 universityofpassau,germany abstract. This methodology is called featureoriented software developmentfosd. Fomdd combines feature oriented programming and model driven development together where a new synthesis design space appears. Applying cmmi, software architecture principles, and process improvement in a dod acquisition. Featureoriented contract composition sciencedirect. Applying featureoriented software development in saas systems. Thomas thum, ina schaefer, martin kuhlemann, sven apel, and gunter saake. Applying design by contract to feature oriented programming.

Design by contract dbc, also known as contract programming, programming by contract and designbycontract programming, is an approach for designing software. The week before last neno loje and i did a workshop at the computer science department of the university of hamburg, germany, to verify a couple of our ideas on software development. While both design by contract and feature oriented programming have been hot research topics for more than two decades, their combination was rarely been explored. Usecases are often found in the software product line engineering sple community, where fosd is one emerging field of implementation techniques. Sven apel, publications chair of software engineering. Information on feature oriented programming fop also known as feature oriented software development fosd can be found here fosd on wikipedia. Feature oriented programming fop is an extension of object oriented programming to support software variability by refining existing classes and methods. Others apply design by contract to aspectoriented programming.

Productline verification with featureoriented contracts. A key question is how to define and compose contracts when applying featureoriented method refinements. European joint conferences on theory and practice of software, etaps central web site. Feature oriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. Applying featureoriented software development in saas. Featureoriented programming fop is an extension of objectoriented programming to support software variability by refining existing classes and methods. For specifying features in featureoriented programs, we focus on the designbycontract paradigm meyer, 1988. Design patternlike protocols and aspect interfaces, proceedings of the fifth aosd workshop on aspects, components, and patterns for infrastructure software, 2006, pp. Applying design by contract chair of software engineering. Others apply design by contract to aspect oriented programming. For the purpose of the example, features are implemented in c, in terms of feature modules, and composed by means of superimposition, as illustrated in fig. Eiffel software applied for trademark registration for design by contract in. The eiffel programming language directly implements the design by contract methodology 42.

Featureoriented programming fop is an extension of ob jectoriented programming to support software variability by refiningexisting classes and methods. Figure 5 from a contractual specification of functional. Information on feature oriented programming fop also known as feature oriented software development fosd can be found here. Adapting the psp to incorporate verified design by contract.

A key question is how to define and compose contracts when applying feature oriented method refinements. Applying design by contract computer acm digital library. It would be easier to develop software if its features would be explicit in design and code and if software could be generated solely by composing features. Modeling interactions in feature oriented software designs. The approach generates test cases from an input contract integrated with graph. Featureoriented programming with behavioral feature interfaces. A feature is a semantically cohesive unit of behavior of a software system.

Science of computer programming special issue on featureoriented software development, 773. Feature oriented software design and software product lines approaches may have a significant impact on software engineering. The paradigm forces software professionals to think in terms of designing sets of related systems as opposed to individual applications. The main idea of dbc is to view the relationship between two components as a formal contract that expresses components rights and obligations. In this process, two major types of decisions must be addressed. Sandro schulze, thomas thum, martin kuhlemann, and gunter saake. A contractual specification of functional and nonfunctional. The pivotal part ii covers a wide variety of implementation techniques including design patterns, frameworks, components, featureoriented programming, and aspectoriented programming, as well as toolbased approaches including preprocessors, build systems, versioncontrol systems, and virtual separation of concerns.

Fase 2012 accepted papers european joint conferences on. Three of the software cells work in cs fashion, because they run in a lan. With featureoriented software product lines, software products can be generated automatically based on a selection of features ce00, abks. Figure 5 from a contractual specification of functional and. For illustration, we use the running example of a simple, featureoriented email client, inspired by hall, including optional support for message encryption and forwarding. An overview of feature oriented software development. Reliability is a key concern in the current state of software industry. 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. In order to increase the reliability of all implemented program variants, we integrate design by contract dbc with fop.

Saakeapplying design by contract to featureoriented programming proceedings of the international conference on fundamental approaches to software engineering fase, lncs, vol. 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. Applying design by contract to featureoriented programming tt, is, mk, sa, gs, pp. Pdf aspect composition applying the design by contract. While both design by contract and featureoriented programming have been hot research topics for more than two decades, their combination was rarely been explored. This book constitutes the refereed proceedings of the 15th international conference on fundamental approaches to software engineering, fase 2012, held in tallinn, estonia, in marchapril 2012, as part of etaps 2012, the european joint conferences on theory and practice of software. Aug 11, 2017 in this paper, we investigate the use of design by contract to improve the robustness of existing autosar software components.

Featureoriented programming fop is an extension of ob jectoriented programming to support software variability by refining existing classes and. The journal of systems and software 152 2019 83107. Add open access links from to the list of external document links if available. In this paper, we investigate the use of design by contract to improve the robustness of existing autosar software components. In software product line engineering, the design of assets for reuse and the derivation of software products entails lowlevel and highlevel decision making. Input contract testing of graphical user interfaces. Applying design by contract to featureoriented programming thomas thum, ina schaefer, martin kuhlemann, sven apel, gunter saake. Home conferences issta proceedings issta 20 productline verification with featureoriented contracts. 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. Towards assessing the complexity of object migration in dynamic, featureoriented software product lines. Thomas thum, ina schaefer, martin kuhlemann, sven apel, gunter saake, applying design by contract to featureoriented programming, proc.

While both design by contract and featureoriented program ming have been hot. Wampler, contract4j for design by contract in java. In proceedings of the international conference on fundamental approaches to software engineering fase, volume 7212 of lncs, pages 255269. Featureoriented programming fop is an extension of objectoriented programming to support software variability by re ning existing classes and methods. A class invariant is a property that applies to all instances of the class, tran.

Design by contract introduction eiffel software the home of. While the software is being conceptualized, a plan is chalked out to find the best possible design for implementing the intended solution. Featureinteraction detection based on featurebased. Feature oriented programming fop is an extension of object oriented programming to support software variability by re ning existing classes and methods. In computer programming, feature oriented programming fop or feature oriented software development fosd is a programming paradigm for program generation in software product lines spls and for incremental development of programs. A better understanding of the objectoriented method and, more generally, of software construction. Applying design by contract to featureoriented programming. Eiffel analysis, design, and programming language and of the supporting libraries. Instead of having an individual deployment of the system for each customer, in the saas model. In proceedings of the international conference on fundamental approaches to software engineering fase, volume 7212 of lncs, pages 255269, berlin, heidelberg, new york, london, march 2012.

The papers are organized in topical sections on software architecture and components, services, verification and monitoring, intermodelling and model transformations, modelling and adaptation, product lines and feature oriented programming, development process, verification and synthesis, testing and maintenance, and slicing and refactoring. Based on these insights, in future work, we hope to devise appropriate designbycontract techniques 28 and variants of fopspeci. An overview of featureoriented software development sven apel, department of informatics and mathematics, university of passau, germany christian k. Dbc is an approach to build reliable objectoriented software by specifying methods with contracts. Delivering software as a service saas has become a major trend in the last years.

Connection between layer stacks and transformation compositions. This is a similar approach taken in many manufacturing. Ahead algebraic hierarchical equations for application design is a unique formulation of fop that integrates stepwise development, generative programming, and algebras 25. The journal of systems and software tu braunschweig. Featureoriented software development a short tutorial on featureoriented programming, virtual separation of concerns, and variabilityaware analysis. Fase 2012 accepted papers davide di ruscio, ivano malavolta, henry muccini, patrizio pelliccione and alfonso pierantonio. This paper proposes a new concept called user input contracts, which is an integral part of a designbycontract supplemented development process, and a modelbased testing approach to detect violations of user input contracts. Dbc is an approach to build reliable object oriented soft. Features are used for the specification of commonalities and variabilities of software systems. Dbc is an approach to build reliable objectoriented soft. Featureoriented programming fop is an extension of ob jectoriented programming to support software variability by refining existing classes and methods.

While both design by contract and featureoriented program ming have been hot research topics for more than two decades, their combination was rarely been explored. Feature orientedsoftwaredevelopment isaparadigmforthe. Application of featureoriented domain analysis to the army movement control domain and appendices ai. Unlike traditional software engineering that aims to satisfy the requirements of a single system, domainspecific componentbased engineering focuses on providing reusable solution for a family of systems.

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. We offered this workshop to the university for free, to give students of unfortunately notoriously underfinanced public educational institutions a chance to get in touch with the real world. Preconditions and postconditions apply to individual routines. The pivotal part ii covers a wide variety of implementation techniques including design patterns, frameworks, components, feature oriented programming, and aspect oriented programming, as well as toolbased approaches including preprocessors, build systems, versioncontrol systems, and virtual separation of concerns. Fundamental approaches to software engineering 2012, pp. Improving robustness of autosar software components with. Feature oriented programming fop is an extension of ob ject oriented programming to support software variability by refining existing classes and methods.

Proceedings of the eighth international workshop on variability modelling of softwareintensive systems towards assessing the complexity of object migration in dynamic, featureoriented software product lines. An overview of featureoriented software development. Featureoriented software development fosd is a paradigm for the construction, customization, and synthesis of largescale software systems. Methodological guidelines for objectoriented software construction that improve.

1144 439 1001 27 96 580 1350 639 195 991 774 13 286 449 1518 64 647 107 1570 341 1453 139 1301 646 669 1182 719 223 95 635 26