8 research outputs found

    Towards correct-by-construction product variants of a software product line: GFML, a formal language for feature modules

    Full text link
    Software Product Line Engineering (SPLE) is a software engineering paradigm that focuses on reuse and variability. Although feature-oriented programming (FOP) can implement software product line efficiently, we still need a method to generate and prove correctness of all product variants more efficiently and automatically. In this context, we propose to manipulate feature modules which contain three kinds of artifacts: specification, code and correctness proof. We depict a methodology and a platform that help the user to automatically produce correct-by-construction product variants from the related feature modules. As a first step of this project, we begin by proposing a language, GFML, allowing the developer to write such feature modules. This language is designed so that the artifacts can be easily reused and composed. GFML files contain the different artifacts mentioned above.The idea is to compile them into FoCaLiZe, a language for specification, implementation and formal proof with some object-oriented flavor. In this paper, we define and illustrate this language. We also introduce a way to compose the feature modules on some examples.Comment: In Proceedings FMSPLE 2015, arXiv:1504.0301

    Feature-interaction detection based on feature-based specifications

    Get PDF
    A Gd3+-coordinated polymerizable analogue of the MRI contrast agent Gd-DOTA was used to prepare amphiphilic block copolymers, with hydrophilic blocks composed entirely of the polymerized contrast agent. The resulting amphiphilic block copolymers assemble into nanoparticles (NPs) of spherical- or fibril-shape, each demonstrating enhanced relaxivity over Gd-DOTA. As an initial examination of their behavior in vivo, intraperitoneal (IP) injection of NPs into live mice was performed, showing long IP residence times, observed by MRI. Extended residence times for particles of well-defined morphology may represent a valuable design paradigm for treatment or diagnosis of peritoneal malignances

    Delta-based Verification of Software Product Families

    Get PDF
    The quest for feature- and family-oriented deductive verification of software product lines resulted in several proposals. In this paper we look at delta-oriented modeling of product lines and combine two new ideas: first, we extend Hähnle & Schaefer’s delta-oriented version of Liskov’s substitution principle for behavioral subtyping to work also for overridden behavior in benign cases. For this to succeed, programs need to be in a certain normal form. The required normal form turns out to be achievable in many cases by a set of program transformations, whose correctness is ensured by the recent technique of abstract execution. This is a generalization of symbolic execution that permits reasoning about abstract code elements. It is needed, because code deltas contain partially unknown code contexts in terms of “original” calls. Second, we devise a modular verification procedure for deltas based on abstract execution, representing deltas as abstract programs calling into unknown contexts. The result is a “delta-based” verification approach, where each modification of a method in a code delta is verified in isolation, but which overcomes the strict limitations of behavioral subtyping and works for many practical programs. The latter claim is substantiated with case studies and benchmarks

    Proof composition for deductive verification of software product lines

    No full text
    Abstract—Software product line engineering aims at the efficient development of program variants that share a common set of features and that differ in other features. Product lines can be efficiently developed using feature-oriented programming. Given a feature selection and the code artifacts for each feature, program variants can be generated automatically. The quality of the program variants can be rigorously ensured by formal verification. However, verification of all program variants can be expensive and include redundant verification tasks. We introduce a classification of existing software product line verification approaches and propose proof composition as a novel approach. Proof composition generates correctness proofs of each program variant based on partial proofs of each feature. We present a case study to evaluate proof composition and demonstrate that it reduces the effort for verification. Keywords-Software product lines, proof composition, featurebased verification, JML. I

    Feature-orientiertes Framing fĂĽr die Verifikation von Software-Produktlinien: Masterarbeit

    Get PDF
    Software-Produktlinien sind Softwareprodukte, die eine gemeinsame Codebasis besitzen und sich in ausgewählten Features unterscheiden. Mit Feature-orientierter Programmierung wird eine Möglichkeit zur Realisierung von Produktlinien geboten. Durch den häufigen Einsatz von Produktlinien in sicherheitskritischen Systemen erweist sich die Verifikation als besonders wichtig, damit keine schwerwiegenden Fehler auftreten. Die Verifikation gestaltet sich jedoch schwierig, da jedes Produkt verifiziert und spezifiziert werden muss. Für die Spezifikation haben sich Kontrakte bewährt, wobei in der Feature-orientierten Programmierung die Komposition von den Kontrakten der Features definiert werden muss. Die Komposition von Kontrakten wurde bereits umgesetzt, aber es wurden noch nicht alle Bestandteile von Kontrakten berücksichtigt, insbesondere wird das Framing, das essentiell für die Verifikation mit Kontrakten ist, noch nicht untersucht. In der Arbeit beschäftigen wir uns damit, wie sich die Komposition von Kontrakten sinnvoll mit Framing erweitern lassen. Dazu betrachten wir Framing-Techniken in anderen Bereichen und analysieren, ob sie sich für Feature-orientiertes Framing eignen. Abschließend werden die Techniken für Feature-orientiertes Framing bezüglich ihrer Anwendbarkeit und ihres Nutzens für die Verifikation von Produktlinien evaluiert
    corecore