Feature-oriented contract composition

被引:5
|
作者
Thuem, Thomas [1 ]
Knueppel, Alexander [1 ]
Krueger, Stefan [2 ]
Bolle, Stefanie [1 ]
Schaefer, Ina [1 ]
机构
[1] TU Braunschweig, Braunschweig, Germany
[2] Paderborn Univ, Paderborn, Germany
关键词
Feature-oriented programming; Software product lines; Design by contract; Deductive verification; Formal methods; SOFTWARE PRODUCT LINES; SPECIFICATION; DESIGN;
D O I
10.1016/j.jss.2019.01.044
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A software product line comprises a set of products that share a common code base, but vary in specific characteristics called features. Ideally, features of a product line are developed in isolation and composed subsequently. Product lines are increasingly used for safety-critical software, for which quality assurance becomes indispensable. While the verification of product lines gained considerable interest in research over the last decade, the subject of how to specify product lines is only covered rudimentarily. A challenge to overcome is composition; similar to inheritance in object-oriented programming, features of a product line may refine other features along with their specifications. To investigate how refinement and composition of specifications can be established, we derive a notion of feature-oriented contracts comprising preconditions, postconditions, and framing conditions of a method. We discuss six mechanisms to perform contract composition between original and refining contracts. Moreover, we identify and discuss desired properties for contract composition and evaluate which properties are established by which mechanism. Our three main insights are that (a) contract refinement is seldom but crucial, (b) the Liskov principle does not apply to features, and (c) it is sufficient to accommodate techniques from object-orientation in the contract-composition mechanisms for handling frame refinements. (C) 2019 Elsevier Inc. All rights reserved.
引用
收藏
页码:83 / 107
页数:25
相关论文
共 50 条
  • [1] Feature-Oriented Contract Composition
    Thuem, Thomas
    Knueppel, Alexander
    Krueger, Stefan
    Bolle, Stefanie
    Schaefer, Ina
    [J]. SPLC'19: PROCEEDINGS OF THE 23RD INTERNATIONAL SYSTEMS AND SOFTWARE PRODUCT LINE CONFERENCE, VOL A, 2020, : 25 - 25
  • [2] Applying Design by Contract to Feature-Oriented Programmingq
    Thuem, Thomas
    Schaefer, Ina
    Kuhlemann, Martin
    Apel, Sven
    Saake, Gunter
    [J]. FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2012, 2012, 7212 : 255 - 269
  • [3] A Multilevel Contract Model for Dependable Feature-Oriented Components
    Rhanoui, Maryem
    El Asri, Bouchra
    [J]. 2014 9TH INTERNATIONAL CONFERENCE ON INTELLIGENT SYSTEMS: THEORIES AND APPLICATIONS (SITA'14), 2014,
  • [4] Feature-oriented programming: A new way of object composition
    Prehofer, C
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2001, 13 (06): : 465 - 501
  • [5] FEATURE-ORIENTED DESIGN
    CHAHARBAGHI, H
    [J]. FOURTH INTERNATIONAL CONFERENCE ON COMPUTER-AIDED PRODUCTION ENGINEERING, 1988, : 363 - 366
  • [6] Metrics for Feature-Oriented Programming
    Abilio, Ramon
    Vale, Gustavo
    Figueiredo, Eduardo
    Costa, Heitor
    [J]. PROCEEDINGS OF 2016 IEEE/ACM 7TH INTERNATIONAL WORKSHOP ON EMERGING TRENDS IN SOFTWARE METRICS (WETSOM), 2016, : 36 - 42
  • [7] Feature-oriented Runtime Adaptation
    Pukall, Mario
    Siegmund, Norbert
    Cazzola, Walter
    [J]. SINTER 09, 2009, : 33 - 36
  • [8] Feature-Oriented Control Programming
    Fors, Niklas
    Theorin, Alfred
    Robertz, Sven Gestegard
    Hedin, Gorel
    [J]. 2020 25TH IEEE INTERNATIONAL CONFERENCE ON EMERGING TECHNOLOGIES AND FACTORY AUTOMATION (ETFA), 2020, : 1043 - 1046
  • [9] Comparing the influence of using feature-oriented programming and conditional compilation on comprehending feature-oriented software
    Santos, Alcemir Rodrigues
    Machado, Ivan do Carmo
    de Almeida, Eduardo Santana
    Siegmund, Janet
    Apel, Sven
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2019, 24 (03) : 1226 - 1258
  • [10] Compositional Feature-Oriented Systems
    Dubslaff, Clemens
    [J]. SOFTWARE ENGINEERING AND FORMAL METHODS (SEFM 2019), 2019, 11724 : 162 - 180