@InProceedings{AlShabibi:2003:POOS, author = "Ali Al-Shabibi and Didier Buchs and Mathieu Buffo and Stanislav Chachkov and Ang Chen and David Hurzeler", title = "Prototyping Object-Oriented Specifications", booktitle = "Proceedings of the International Conference on Theory and Application of Petri Nets, Eindhoven, Netherlands", keywords = "Conform", pages = "473--482", year = "2003", editor = "Wil M. P. van der Aalst and Eike Best", volume = "2679", series = "LNCS (Lecture Notes in Computer Science)", month = jun, publisher = "Springer Verlag", URL = "http://link.springer.de/link/service/series/0558/bibs/2679/26790473.htm", abstract = "CoopnBuilder is an integrated development environment (IDE) for Concurrent Object Oriented Petri Nets (COOPN). It comes with a complete set of tools enabling the user to view, edit, check, simulate and generate code from CO-OPN specifications. The Code Generation tool allows the user to develop applications in an open way: the produced code can be integrated in larger projects or use existing libraries. The code generation will be emphasized in this paper, and we will focus on ease-of-use and extensibility. CoopnBuilder is an open-source Java program and can be downloaded from http://cui.unige.ch/smv", } @TechReport{Baar:2003:DTCOLA, author = "Thomas Baar", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "IC/2003/37", title = "The Definition of Transitive Closure with {OCL}: Limitations and Applications", year = "2003", month = jun, URL = "http://lgl.epfl.ch/pub/Papers/baar-2003-dtcola.pdf", abstract = "The Object Constraint Language (OCL) is based on first-order logic and set theory. As the most well-known application, OCL is used to formulate well-formedness rules in the UML metamodel. Here, the transitive closure of a relationship is defined in terms of an OCL invariant, which seems to contradict classical results on the expressive power of first-order logic. In this paper, we give sufficient justification for the correctness of the definition of transitive closure. Our investigation reinforces some decisions made in the semantics of UML and OCL. Currently, there is a lively debate on the same issues in the semantics of the upcoming UML 2.0.", } @Article{Barbey93, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", journal = "SI-Information", month = sep, number = "40", pages = "21--23", title = "Ada: {Y}oung, {S}mart and {E}volving", year = "1993", keywords = "Paper, Ada", abstract = "The Ada language is now 10 years old, like SI and SI-Information. A free compiler, called GNAT, will soon be available from the Free Software Foundation (GNU). Ada is heavily used in high-tech applications. After 10 years, it was felt Ada should be revised. This revision is well on its way, and we describe here the structure of the revised language definition, as well as an overview of the object-oriented features of the language.", } @InProceedings{Barbey93a, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "TRI-Ada 1993 Tutorials Volume 2, Seattle, Washington, USA, September 18-23 1993", note = "Also available as Technical Report EPFL-DI No 93/30", pages = "945--984", publisher = "ACM Press", series = "Tutorial Notes", title = "Object-Oriented Programming and Reuse in {A}da 9{X}", year = "1993", abstract = "Ada 9X-the revised definition of the Ada programming language-provides support for object-oriented programming. This course examines the new, object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered, such as: extension, inheritance, and polymorphism. We then show how to integrate these mechanisms into good programming practice; topics include incremental programming, heterogeneous data structures, and mixin inheritance. The running theme is design for reuse.", keyword = "Tutorial, Ada", } @InProceedings{Barbey93b, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "OOPSLA'93, Washington DC, USA, September 26 - October 1 1993", number = "18", publisher = "ACM Press", series = "Tutorial Notes", title = "Object-Oriented Programming with {A}da 9{X}", year = "1993", keywords = "Tutorial, Ada", abstract = "Ada 9X-the revised definition of the Ada programming language-provides support for object-oriented programming. This course examines the new, object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered, such as: extension, inheritance, and polymorphism. We then show how to integrate these mechanisms into good programming practice; topics include incremental programming, heterogeneous data structures, mixin inheritance, and design for reuse.", } @Misc{Barbey93c, author = "St{\'e}phane Barbey", booktitle = "OOPSLA'93", howpublished = "Position paper for the workshop on {"}Testing Object-Oriented Software{"}", month = sep # " 26 -" # oct # " 1", note = "OOPSLA 1993, Conference on Object-Oriented Programming Systems, Languages and Applications, Washington, DC", publisher = "ACM Press", title = "Does object-orientedness simplify or hinder testing?", year = "1993", keywords = "Paper, Testing, Conform", } @Article{Barbey94, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", journal = "TSI (Techniques et Sciences Informatiques)", note = "Also available as Technical Report EPFL-DI No 94/73", number = "5", pages = "639--669", title = "Programmation par objets avec {A}da 9{X}", volume = "13", year = "1994", keywords = "Paper, Ada", URL = "http://lgl.epfl.ch/pub/Papers/barbey-TSI-POO-TR94-73.ps", abstract = "Ada 9X, la d finition r vis e du langage de programmation Ada, int gre la programmation par objets. Cet article examine les nouvelles caract ristiques du langage propres la programmation par objets, leur utilisation et leur int gration avec le typage fort de Ada. Nous couvrons les m canismes fondamentaux li s aux objets, tels que l'h ritage et le polymorphisme. Nous montrons ensuite comment combiner ces m canismes en de pr cieuses pratiques de programmation, comme la programmation par extension, les structures de donn es h t rog nes, et l'h ritage par mixin.

Ada 9X, the revised definition of the Ada programming language, supports object-oriented programming. This paper examines the new, object-oriented features of the language, their use, and how they fit into Ada's strong type system. Basic object-oriented mechanisms are covered, such as inheritance and polymorphism. We then show how to combine these mechanisms into valuable programming techniques; topics include programming by extension, heterogeneous data structures, and mixin inheritance.", } @InProceedings{Barbey94a, author = "St{\'e}phane Barbey and Alfred Strohmeier", booktitle = "{SQM}'94 Second Conference on Software Quality Management, Edinburgh, Scotland, UK, July 26-28 1994", editor = "M. Ross and C. A. Brebbia and G. Staples and J. Stapleton", pages = "411--426", title = "The Problematics of Testing Object-Oriented Software", volume = "2", year = "1994", keywords = "Paper, Testing, Conform", URL = "http://lgl.epfl.ch/pub/Papers/barbey-problematic_of_toos.ps", abstract = "Within object-oriented approaches, testing has almost been ignored in favor of analysis, design, and coding. However, object-orientedness does not solve the problem of testing by itself and may even induce new problems.

Most work in testing has been done with {"}procedure-oriented{"} software in mind. Traditional methods, despite their efficiency, cannot be applied without adaptation to object-oriented systems. In an object-oriented system, the basic unit of testing is a class instead of a subprogram; testing should hence focus on classes and objects. Moreover, it is not possible to test the operations of a class in isolation, as they interact with each other by modifying the state of the object they are applied to.

Sometimes testing object-oriented software can benefit from object-oriented technology, for instance, by capitalizing on the fact that a superclass has already been tested, and by decreasing the effort to test derived classes, which reduces the cost of testing in comparison with a flat class structure.

The object-oriented paradigm can also be a hindrance to testing, due to the nature of some aspects of its very nature: encapsulation, inheritance and polymorphism.

In the presence of encapsulation, the only way to observe the state of an object is through its operations; there is therefore a fundamental problem of observability. Inheritance opens the issue of re-testing. Should operations inherited from ancestor classes be re-tested in the context of the descendant class? A case analysis will show that there is no definite answer.

Polymorphic calls are difficult to test. A test suite must ensure that all possible cases of bindings are covered. Moreover, when extending a software by a new derived class (programming by extension), calls with possible bindings to operations of this new derived class must be re-tested.", } @InProceedings{Barbey94b, author = "St{\'e}phane Barbey and Didier Buchs", booktitle = "Eurospace Ada-Europe'94 Symposium Proceedings, Copenhagen, Danemark, September 26-30 1994", editor = "Marcel Toussaint", note = "Also available as Technical Report EPFL-DI No 94/75", volume = "887", pages = "76--89", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "Testing of {A}da Abstract Data Types using Formal Specifications", year = "1994", keywords = "Paper, Ada, Testing, Conform", URL = "http://lgl.epfl.ch/pub/Papers/barbey-testing_adt-TR95-75.ps", abstract = "The purpose of this paper is to present an experiment with formal methods for the black-box testing of reusable abstract data types (ADTs). We propose to test a family of software components by re-engineering a formal specification from an existing Ada implementation, using algebraic specifications. From this well-defined basis, we generate test sets automatically, by constructing an exhaustive set of formulae that prove the property preservations of a program with respect to its specifications, and by reducing this set to a finite size by applying reduction hypotheses. Once the selection of a finite test set has been performed, we show how to build the oracle, the decision procedure for the success or the failure of a test set. Finally, we discuss the advantages of test sets generated from the formal specification over those defined by a programmer, based on his intuitive understanding of the behavior of the ADT.", } @InProceedings{Barbey94c, author = "St{\'e}phane Barbey and Manuel Ammann and Alfred Strohmeier", booktitle = "ECSQ'94 (European Conference on Software Quality), Basel, Switzerland, October 17-20 1994", editor = "Karol Fr{\"u}hauf", note = "Also available as Technical Report EPFL-DI No 94/45", pages = "257--267", publisher = "vdf Hochschulverlag AG an der ETH Z{\"u}rich", title = "Open Issues in Testing Object-Oriented Software", year = "1994", keywords = "Paper, Testing, Conform", URL = "http://lgl.epfl.ch/pub/Papers/barbey-open_issues_in_toos-TR94-45.ps", abstract = "While the use of object-oriented development methods has increased the quality of software by leading to better, modular architectures, it does not provide correctness by itself. Thus, testing software remains an important task even in the presence of object-orientedness.

The traditional testing methods decompose software into procedures. However, the dimensions of object-oriented programming are such that this decomposition is ill-fitted for testing object-oriented programs. We address the problems of testing in the three dimensions of object-oriented software: classes, hierarchies, subsystems. The class forms a well-defined basic test unit; however its testing is impeded by encapsulation and inheritance issues. The class hierarchy concept introduces problems of undecidability due to polymorphism. Subsystems are the building blocks in integration testing.

We also study the use of traditional methods and the modifications that are needed to apply them to object-oriented software, e.g. complexity metrics.", } @InProceedings{Barbey94d, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "TOOLS Europe'94, Versailles, France, March 7-11 1994", series = "Tutorial Notes", title = "Ada 9{X} for Object-Oriented Programming", year = "1994", keywords = "Tutorial, Ada", abstract = "Ada 9X -the revised definition of the Ada programming language- provides support for object-oriented programming. This course examines the new, object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered, such as: extension, inheritance, and polymorphism. We then show how to integrate these mechanisms into good programming practices; topics will include incremental programming, heterogeneous data structures, mixin inheritance, and design for reuse. We will also compare standard object-oriented idioms as implemented in Ada vs. other object-oriented languages (e.g. C++, Eiffel).", } @InProceedings{Barbey94e, author = "St{\'e}phane Barbey", booktitle = "TRI-Ada'94 Conference, Baltimore, Maryland, USA, November 6-11 1994", editor = "Charles B. Engle Jr", note = "Also available as Technical Report EPFL-DI No 94/65", pages = "129--140", publisher = "ACM Press", title = "Working with {A}da 9{X} classes", year = "1994", keywords = "Paper, Ada", URL = "http://lgl.epfl.ch/pub/Papers/barbey-working_with_9X_classes-TR94-65.ps", abstract = "Ada 9X refines the Ada 83 concept of class and introduces class-wide types to support run-time polymorphism. We study how the Ada definition of class compares to other definitions of this term. We examine how run-time polymorphism is introduced in Ada 9X, how it relates to the different concepts of subtype, and how it compares with other forms of polymorphism. We also discuss the different uses of class-wide types, mainly as a means for dynamic binding (dispatching). However, since Ada 9X has adhered to the philosophy of building blocks, class-wide entities can be used for other purposes than dispatching. These uses are idioms that every programmer should be aware of. Some of these idioms are presented here. We also examine how classes are integrated with generics.", } @InProceedings{Barbey94g, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "Ada-Europe'94, Copenhagen (Denmark), September 16-30 1994", series = "Tutorial Notes", title = "Object-Oriented Programming with Ada 9{X}", year = "1994", keywords = "Tutorial, Ada", abstract = "Ada 9X -the revised definition of the Ada programming language- provides support for object-oriented programming. This course offers a comprehensive view of object-oriented programming with Ada; it is divided in three parts. First, we examine the object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered: extension, inheritance, and polymorphism. Second, we show how to integrate these mechanisms into good programming practices; topics include incremental programming, heterogeneous data structures, mixin and sibling inheritance. Finally, we compare standard object-oriented idioms in Ada vs. major object-oriented languages (C++, Smalltalk, Eiffel).", } @InProceedings{Barbey94h, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "OOPSLA'94 (Object-Oriented Programming, Systems, Languages and Applications), Portland, Oregon, USA, October 23-27 1994", number = "44", publisher = "ACM Press", series = "Tutorial Notes", title = "Object-Oriented Programming with Ada 9{X}", year = "1994", keywords = "Tutorial, Ada", abstract = "Ada 9X -the revised definition of the Ada programming language- provides support for object-oriented programming. This course offers a comprehensive view of object-oriented programming with Ada; it is divided in three parts. First, we examine the object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered: extension, inheritance, and polymorphism. Second, we show how to integrate these mechanisms into good programming practices; topics include incremental programming, heterogeneous data structures, mixin and sibling inheritance. Finally, we compare standard object-oriented idioms in Ada vs. major object-oriented languages (C++, Smalltalk, Eiffel).", } @InProceedings{Barbey95, author = "St{\'e}phane Barbey", booktitle = "Proceedings of Ada-Europe'95, Frankfurt, Germany, October 2-6 1995", editor = "M. Toussaint", note = "Also available as Technical Report EPFL-DI No 96/164", pages = "406--418", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", volume = "1031", title = "Testing {A}da 95 Object-Oriented Programs", year = "1995", keywords = "Paper, Ada, Testing, Conform", URL = "http://lgl.epfl.ch/pub/Papers/barbey-testing_ada95_oop.ps", abstract = "We show some of the specific problems for testing software introduced by the object-oriented features of Ada 95, and focus on specification-based testing, since this strategy is the key strategy for testing object-oriented software. We present a theory for testing software by refinement of an exhaustive test set into a finite test set using three reduction hypothesis. We also show how the Oracle problem can be partially solved using some particular features of Ada 95.

Slides: http://lgl.epfl.ch/pub/Papers/barbey-testing_ada95_oop-slides.ps", } @InProceedings{Barbey95a, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "Ada-Europe'95, Frankfurt (Germany), October 2-6 1995", note = "Also available as Technical Report EPFL-DI No 96/175", series = "Tutorial Notes", title = "Advanced Object-Oriented Programming with Ada 95", year = "1995", keywords = "Tutorial, Ada", abstract = "Ada 95 -the revised definition of the Ada programming language- provides support for object-oriented programming. This course offers a comprehensive view of object-oriented programming with Ada; it is divided in four parts. First, we examine the object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered: extension, inheritance, and polymorphism. Second, we show how to integrate these mechanisms into good programming practices; topics include incremental programming, heterogeneous data structures, mixin and sibling inheritance. We then demonstrate the proper use of these features in order to design for reuse, and to transition smoothly from Ada 83 to Ada 95. Finally, we compare standard object-oriented idioms in Ada vs. major object-oriented languages (e.g. C++, Smalltalk, Eiffel).", } @InProceedings{Barbey95b, author = "St{\'e}phane Barbey", booktitle = "Proceedings of TRI-Ada'95, Anaheim, California, November 5-10 1995", editor = "Charles B. {Engle, Jr.}", note = "Also available as Technical Report EPFL-DI No 96/165", pages = "212--225", publisher = "ACM Press", title = "Ada 95 as Implementation Language for Object-Oriented Designs", year = "1995", keywords = "Paper, Ada, OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/barbey-ada95_as_il_for_ood-revised.ps", abstract = "In this paper, we show how Ada 95 can be used as an implementation language for object-oriented designs. We present a strategy to map Fusion class descriptions into Ada specifications, considering the various kinds of qualifiers that can be applied to attributes, and the various ways methods can be mapped. We also discuss issues such as naming conventions, mapping of operations, use of mixins and of generics. Finally, we show how bidirectional associations, that usually end up in a mutual dependency, can be implemented in Ada 95.", } @InProceedings{Barbey95c, author = "St{\'e}phane {Barbey, moderator} and Brad Balfour and Bill Beckwith and David Weller", booktitle = "Proceedings of TRI-Ada'95, Anaheim, California, November 5-10 1995", editor = "Charles B. {Engle, Jr.}", pages = "194--199", publisher = "ACM Press", title = "Experiences in Object-Oriented Programming ({P}anel)", year = "1995", keywords = "Paper, Ada", URL = "http://lgl.epfl.ch/pub/Papers/barbey-experiences_in_oop.ps", abstract = "The goal of this panel is to renew this discussion, now that the language definition is complete, that more complete development environments have found their way to the programmer, and especially that we have more experience with its features. The panel will focus on all aspects of object-oriented programming with Ada 95. The discussion will cover expressivity, programming practices, the match with design methods, integration, and any issue related to Ada in object-oriented software development.", } @InProceedings{Barbey95d, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "Proceedings of TRI-Ada'95, Anaheim, California, November 5-10 1995", editor = "Charles B. {Engle, Jr.}", note = "Also available as Technical Report EPFL-DI No 96/175", publisher = "ACM Press", title = "Advanced Object-Oriented Programming with {A}da 95", year = "1995", keywords = "Tutorial, Ada", abstract = "Ada 95 -the revised definition of the Ada programming language- provides support for object-oriented programming. This course offers a comprehensive view of object-oriented programming with Ada; it is divided in four parts. First, we examine the object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered: extension, inheritance, and polymorphism. Second, we show how to integrate these mechanisms into good programming practices; topics include incremental programming, heterogeneous data structures, mixin and sibling inheritance. We then demonstrate the proper use of these features in order to design for reuse, and to transition smoothly from Ada 83 to Ada 95. Finally, we compare standard object-oriented idioms in Ada vs. major object-oriented languages (e.g. C++, Smalltalk, Eiffel).", } @InProceedings{Barbey95e, author = "St\'ephane Barbey", booktitle = "In the Proceedings of the TRI-Ada'95, Workshop on Design Guidelines for Ada 95, Anaheim, California, November 5-10 1995", publisher = "ACM Press", title = "Annotating Dispatching", year = "1995", keywords = "Paper, Ada", URL = "http://lgl.epfl.ch/pub/Papers/barbey-annotate_dispatching.ps", abstract = "Dispatching calls decrease the understandability of programs, and thus some extra annotations must be given some extra highlight by special annotation. We present and criticize several possibilities to annotate dispatching and re-dispatching calls.", } @InProceedings{Barbey95f, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "OOPSLA'95 (Object-Oriented Programming, Systems, Languages and Applications), Austin, Texas, USA, October 15 1995", publisher = "ACM Press", series = "Tutorial Notes", title = "Object-Oriented Programming with Ada 95", year = "1995", keywords = "Tutorial, Ada", abstract = "Ada 95 -the revised definition of the Ada programming language- provides support for object-oriented programming. This course offers a comprehensive view of object-oriented programming with Ada; it is divided in three parts. First, we examine the object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered: extension, inheritance, and polymorphism. Second, we show how to integrate these mechanisms into good programming practices; topics include incremental programming, heterogeneous data structures, mixin and sibling inheritance. Finally, we compare standard object-oriented idioms in Ada vs. major object-oriented languages (C++, Smalltalk, Eiffel).", } @InProceedings{Barbey96, author = "St{\'e}phane Barbey and Magnus Kempe and Alfred Strohmeier", booktitle = "Tutorial Proceedings of TRI-Ada'96, Philadelphia, Pennsylvania, December 3-7 1996", publisher = "ACM Press", title = "Object-Oriented Programming with {A}da 95", year = "1996", keywords = "Tutorial, Ada", abstract = "Ada 95 -the revised definition of the Ada programming language- provides support for object-oriented programming. This course offers a comprehensive view of object-oriented programming with Ada; it is divided in four parts. First, we examine the object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered: extension, inheritance, and polymorphism. Second, we show how to integrate these mechanisms into good programming practices; topics include incremental programming, heterogeneous data structures, mixin and sibling inheritance. We then demonstrate the proper use of these features in order to design for reuse, and to transition smoothly from Ada 83 to Ada 95. Finally, we compare standard object-oriented idioms in Ada vs. major object-oriented languages (e.g. C++, Smalltalk, Eiffel).", } @InProceedings{Barbey96a, author = "St{\'e}phane Barbey and Didier Buchs and C{\'e}cile P{\'e}raire", booktitle = "Proceedings of EDCC2 (European Dependable Computing Conference), Taormina, Italy, October 1996", institution = "EPFL-DI-LGL", note = "Also available as Technical Report EPFL-DI No 96/163, Published in DeVa first year report (December 96)", pages = "303--320", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", volume = "1150", title = "A Theory of Specification-Based Testing for Object-Oriented Software", year = "1996", keywords = "Paper, Testing, PeraireMain, Conform, peraire", URL = "http://lgl.epfl.ch/pub/Papers/barbey-edcc2-96.ps", abstract = "The current strategies for testing object-oriented software all lack the formal basis which is necessary to perform this task efficiently. We propose the adaptation to object-oriented software of an existing theory of testing for stateless ADTs, to find errors in a class by checking that its implementation meets its specification. We present shortly in an informal way an object-oriented language, CO-OPN/2, in which language we will write the specification. We introduce a notion of test that takes into account the possible and impossible sequences of call of class methods. We examine the black-box test procedure, and give techniques to select a finite and pertinent test set from an exhaustive test set, including all the possible behaviors of the class under test, by applying test reduction hypothesis. We also study the construction of an oracle, the procedure that analyses the results of the tests, adapted to object-oriented software.", } @InProceedings{Barbey96b, author = "St\'ephane Barbey and Didier Buchs and C\'ecile P\'eraire", booktitle = "Tagungsband {"}Qualit{\"a}tsmanagement der objektorientierten Software-Entwicklung{"}, Basel, October 24 1996", pages = "73--112", title = "Overview and Theory for Unit Testing of Object-Oriented Software", year = "1996", keywords = "Testing, Conform, OOMethod, peraire, Paper", URL = "http://lgl.epfl.ch/pub/Papers/barbey-saq96.ps", } @PhdThesis{Barbey97, author = "St{\'e}phane Barbey", address = "D{\'e}partement d'Informatique, 1015 Lausanne, Switzerland", school = "Ecole Polytechnique F{\'e}d{\'e}rale de Lausanne", number = "1753", title = "Test Selection for Specification-Based Testing of Object-Oriented Software Based on Formal Specifications", year = "1997", keywords = "OOMethod, Testing, Conform, PhD", URL = "http://lgl.epfl.ch/pub/Papers/barbey-thesis.pdf", abstract = "Traditional testing techniques cannot be directly applied to object-oriented software systems because of some features of this paradigm, namely history, encapsulation, inheritance and polymorphism. We propose a specification based strategy for test selection to verify the interactions of the methods of an object or of a cluster of objects. Its essence is to perform selection as a reduction process. The exhaustive test set which serves as reference of correctness is transformed into a practicable test set by applying hypotheses on the program under test. The number of cases that must be tested is reduced while preserving the integrity of the test set. The oracle is implemented as an observational equivalence, which allows disregarding the internal representation of objects.

Besides analyzing the problems induced by the object-oriented paradigm, the main contribution of the thesis is to present a set of hypotheses specific to object-oriented systems. Regularity hypotheses are m:n generalizations of the program behavior and allow specifying the shape of test cases. Uniformity hypotheses are 1:n generalizations of the program behavior. Used in conjunction with subdomain decomposition, they ensure a good coverage of the specification. Incrementallity hypotheses are applied to take advantage of the hierarchy relationships inside object models by reusing test cases already selected for parent classes to test subclasses. Other hypotheses are proposed to limit the impact of polymorphism by taking into account the properties of the subtyping relationships.

For further information, please go to my PhD home page.", } @TechReport{Barbey98, author = "St{\'e}phane Barbey and Didier Buchs and C{\'e}cile P{\'e}raire", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/98/298", title = "Modelling the Production Cell Case Study using the Fusion Method", year = "1998", keywords = "Paper, Fusion, peraire", URL = "http://lgl.epfl.ch/pub/Papers/Barbey98-298.ps.gz", abstract = "The purpose of this work is to evaluate, by means of a case study, our formal testing method for object-oriented software. For this purpose we propose the development of an object-oriented application of realistic size, addressing all the phases of the software life-cycle: requirements, analysis, design, formal description, implementation and testing. Analysis and design are performed with the Fusion method, formal description with the CO-OPN language, implementation with Ada 95 and test selection with our testing method. This report presents the description of the production cell case study and Fusion models. The formal description and testing phase are presented in technical report EPFL-DI 98/299.", } @TechReport{Barbey98a, author = "St\'ephane Barbey and Didier Buchs and C\'ecile P\'eraire and Alfred Strohmeier", address = "CH-1015 Lausanne. Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/99/303", title = "Incremental Test Selection for Specification-Based Unit Testing of Object-Oriented Software Based on Formal Specifications", year = "1998", keywords = "Testing, Conform, OOMethod, Paper, peraire", URL = "http://lgl.epfl.ch/pub/Papers/barbey-unpublished.ps", abstract = "We propose a test case selection methodology for object-oriented software. This methodology is based on formal specifications and is aimed at verifying the correctness of method interaction of an object or a cluster of objects. The essence of this methodology is to select test cases by a reduction process. The exhaustive test set, the reference for correctness, is transformed into a practicable test set by applying hypotheses to the objects. We present a set of hypotheses specific to object-oriented systems. Regularity hypotheses are m:n generalizations of the unit behaviour and provides for specifying the shape of test cases. Uniformity hypotheses are 1:n generalizations. Used in conjunction with subdomain decomposition, they guarantee a coverage of the specification. Incrementallity hypotheses take advantage of the subtyping and subclassing relationships to justify the reuse of test cases.", } @InProceedings{Barbey98b, author = "St{\'e}phane Barbey and Didier Buchs and Marie-Claude Gaudel and Bruno Marre and C{\'e}cile P{\'e}raire and Pascale Th{\'e}venod-Fosse and H{\'e}l{\`e}ne Waeselynck", booktitle = "Published in DeVa Third Year Report", month = dec, pages = "331--384", title = "From Requirements to Tests via Object-Oriented Design", year = "1998", keywords = "Paper, Testing, Conform, peraire, PeraireMain", URL = "http://lgl.epfl.ch/pub/Papers/barbey-DeVa98.ps", abstract = "This paper studies testing in an object-oriented (OO) development process. It is based on the production cell case study. A control program for the production cell has been developed using both the Fusion method, for OO analysis and design, and the formal notation CO-OPN, as an intermediate between the OO design and an implementation in Ada 95. The paper describes the application of a statistical testing method, developed at LAAS, where test inputs are derived from the OO analysis documents, and the application of a formal testing method, developed at EPFL, where test inputs are derived from CO-OPN descriptions. Then various problems which have appeared during the case study are reported. They mainly concern controllability and observability issues and caused some iteration and backtrack on OO analysis and design. The paper concludes by sketching a notion of OO design for testability.", } @InProceedings{Barbey:97:OOPA, author = "St{\'e}phane Barbey and Alfred Strohmeier", booktitle = "International Conference on Reliable Software Technologies, Ada-Europe'97, London, U.K, June 1-6 1997", series = "Tutorial Notes", title = "Object-Oriented Programming with Ada 95", year = "1997", keywords = "Tutorial, Ada", } @InProceedings{Bastide:97:MFMOODC, author = "Remi Bastide and Didier Buchs", booktitle = "Workshop Reader, ECOOP Conference 1997", editor = "Stuart Mitchell and Jan Bosch", pages = "221--255", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "Models, Formalisms and Methods for Object Oriented Distributed Computing", volume = "1357", year = "1997", keywords = "Conform", } @InProceedings{Beringer93, author = "Dorothea Beringer", booktitle = "Sonderausgabe OUTPUT - Objektorientierte Systeme, November 1993", title = "Der Weg zum Objektmodell", year = "1993", keywords = "OOMethod", abstract = "Das Objektmodell ist das Kernstueck der meisten objektorientierten Analyse- und Designmethoden. Die Unterschiede der verschiedenen Methoden liegen vor allem darin, wie das Objektmodell erstellt wird. Anhand der Methode Fusion wird gezeigt, wie die Erarbeitung des Objektmodells durch eine explizite Anforderungsdefinition erweitert werden kann.", } @InProceedings{Beringer94, author = "Dorothea Beringer", booktitle = "TOOLS Europe'94, Paris-Versailles, March 7-10 1994", note = "Also available as Technical Report EPFL-DI No 94/40", pages = "161--171", title = "Limits of Seamlessness in Object-Oriented Software Development", year = "1994", keywords = "OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/beringer-seamlessness.ps", abstract = "Seamlessness is a promise often used to promote object orientation, and the use of object orientation in the different domains and in the different stages of the software development process has brought great improvements in seamlessness.

Where can we find seamlessness? And are there different kinds of seamlessness? In this paper we look at seamlessness starting with the different models found in large software developments. To give a common base for the discussion a model architecture is presented and different aspects of seamlessness are defined. We then show on a general level, where object orientation has already brought some seamlessness, where it will hopefully bring a higher degree of seamlessness in the future and where it cannot bring seamlessness due to restrictions inherent to the model architecture. The emphasis of the discussion is not to present a complete theoretical treatment but rather to help software developers to judge the many claims about seamlessness.", } @InProceedings{Beringer95, author = "Dorothea Beringer", booktitle = "SQM'95 Third International Conference on Software Quality Management, Sevilla, Spain, 1995", editor = "M. Ross and C. A. Brebbia and G. Staples and J. Stapleton", note = "Also available as Technical Report EPFL-DI No 95/111", pages = "469--480", title = "The Model Architecture Frame: Quality Managment in a Multi Method Environment", volume = "1", year = "1995", keywords = "OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/beringer-SQM95submission.ps", abstract = "Most quality management systems (QMS) which integrate software development are based on a single software development method. This particular method is enforced on all projects. The resulting QMS has to fulfil the ISO 9000 standards [13] and enables the control of the projects and the improvement of the development process, supporting it with all necessary guidelines and providing one terminology for the whole company. However, using only one specific method is not necessarily the best solution for a company with very heterogeneous projects and products. Requirements of customers, existing experience and training in the teams, projects still using structured methods and newer ones using object-oriented methods, adaptation of methods for special circumstances, and evolving modelling techniques, all of these factors call for the coexistence of different modelling methods within one company. If a QMS is based on only a single method, many projects might run outside the quality management regulations, unless the QMS excludes the details of the software development process.

This problem can be overcome by the use of model architectures and model architecture frames. A model architecture describes the models that are developed within one specific method or project. All the different model architectures are derived from the generic model architecture frame. Such a frame, and not just one specific method, becomes the basis for the company wide regulations.

This paper describes reasons for having multiple methods and life cycle models within one QMS, explains the basic concepts of defining a QMS using model architectures and model architecture frames, and shows how this approach may be applied in a project.", } @TechReport{Beringer95a, author = "Dorothea Beringer", address = "Lausanne, Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/96/215", title = "Modelling Global Behaviour in Object-Oriented Analysis: Scenarios, Use Cases and Interaction Diagrams", year = "1996", keywords = "OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/beringer-overview_scenarios.ps.Z", abstract = "Most software development methods define notations for modelling global behaviour. Many of these notations use interaction diagrams to model possible sequences of interactions between a system and its environment, or between the objects of the system. Other methods use structured textual descriptions or regular expressions for specifying use cases or use scenarios. Although many methods use similar notations, there are often substantial differences in their underlying concepts and in the content expressed by the diagrams. On the other hand, completely different notations use sometime the same concepts and show the same aspects of the global behaviour of a system. In this document we investigate the characteristics of different notations. We show what their underlying concepts are and how they relate to each other. Finally, we give an overview of the techniques that are used by some of the current object-oriented analysis methods for modelling global behaviour.", } @InProceedings{Beringer95b, author = "Dorothea Beringer", booktitle = "Position Paper", month = jul, title = "An Enhanced Scenario Modelling Technique for Object-Oriented Analysis", year = "1995", keywords = "OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/beringer-position_paper_scenarios.ps", abstract = "During the last years, scenarios, use-cases and other techniques for modelling the global behaviour have been introduced into object-oriented analysis. However, aggregation and generalisation of scenarios as well as the integration of scenarios reflecting different abstraction levels are usually not supported. By integrating these concepts into an enhanced scenario modelling technique we could overcome some of the drawbacks of current approaches, e.g. their limitation to monolithic systems with fixed automation boundaries, their restriction to flat event structures, and their insufficient support of the transition from analysis to design.", } @TechReport{Beringer96a, author = "Dorothea Beringer", address = "Lausanne, Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/96/216", title = "The Goals of the Analysis Model", year = "1996", keywords = "OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/beringer-goals_analysis.ps.Z", abstract = "When developing an analysis model, the notation itself does not suffice for determining the content of the analysis model and the end of the analysis process. For this, the goals and intents of the analysis model are used, either implicitly or explicitly. In this report we take a look at various possibilities to define the term analysis and the goals of the analysis model. We start with considering the reference model of the problem solving cycle. We examine the definitions that refer to analysis as the {"}what{"} in opposite to the {"}how{"}, or as the problem definition phase of a problem solving cycle. We then continue with a discussion of various criteria (like technology independence, real word model, unambiguous or essential model) that are often used to specify the goals of an analysis model. Difficulties that arise with these criteria are that they cannot be combined arbitrarily and that some of them are very vague; we propose therefore also some more concrete formulations. In the last part of the report we take a closer look at some misconceptions and intent clashes that are due to a too idealistic model of the software development process. Objective real world models, analysis models that are stable after the analysis phase and analysis models that are equal to the high-level view of the final software system are often attempted, but are normally not realistic. This leads to intent clashes with the desire for a seamless and easy controllable development process. We explain these intent clashes and we also describe the three different approaches taken by software development methods to cope with these intent clashes.", } @PhdThesis{Beringer97, author = "Dorothea Beringer", address = "Departement d'Informatique, 1015 Lausanne, Switzerland", month = may, school = "Ecole Polytechnique Federale de Lausanne", number = "1655", title = "Modelling Global Behaviour with Scenarios in Object-Oriented Analysis", year = "1997", keywords = "OOMethod, Scenarios", URL = "http://lgl.epfl.ch/pub/Papers/beringer-thesis.ps.Z", abstract = "This thesis investigates the concepts commonly used for modelling global behaviour in object-oriented analysis methods (use cases, interaction diagrams, scenarios, scripts etc.). It describes some common drawbacks of current approaches (e.g. assumption of having a flat list of independant scenario types on exactly one abstraction level), discusses the reasons for these drawbacks and proposes an enhanced scenario modelling technique that offers e.g. hierarchies of services.

Full abstract of the thesis.", } @InProceedings{Berry94, author = "P.-M Berry and Didier Buchs and L. Friha", address = "Zaragoza, Espagne", booktitle = "15th International Conference on Application and Theory of Petri Nets, Workshop on Computer-Supported Cooperative Work, Petri Nets and Related Formalisms, June 21 1994", title = "Agent modelling using Structured Algebraic Petri Nets in {DISA}", year = "1994", keywords = "Conform", } @InProceedings{Besrour:02:COFNSR, author = "Adel Besrour and Didier Buchs", booktitle = "IEEE International conference on Systems, Man and Cybernetics", title = "Man-Machine Occupational Risk Modeling ({MORM})", month = mar, publisher = "IEEE Press", pages = "234--239", year = "2002", keywords = "Conform", } @InProceedings{Biberstein94, author = "Olivier Biberstein and Didier Buchs", booktitle = "IS-CORE Workshop (ESPRIT), Amsterdam, September 27-30 1994", note = "Also available as Technical Report EPFL-DI No 94/76", title = "An Object Oriented Specification Language based on Hierarchical Petri Nets", year = "1994", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/biber-iscore94coopn2.ps", abstract = "During the last few years there has been significant interest in combining the benefits of an object-oriented approach with Petri net formalism which is suitable to modelling and simulation of concurrent systems. Nevertheless, for modelling some system behaviour dynamic creation of new components is often needed. In this paper we introduce a formalism based on algebraic Petri nets using the object-orientation paradigm. Object classes are specified by means of algebraic Petri nets, synchronization expressions link the class instances and static as well as dynamic creation of objects is allowed. Inheritance and subtyping are considered as two different mechanisms. Inheritance is viewed as a duplication mechanism while subtyping is considered at a semantic level as a relation between models. The order-sorted algebras framework captures the subtyping notion between the objects which are identified by order-sorted values. Language semantics is defined through distributed transition systems over the models of algebraic specification.", } @TechReport{Biberstein95, author = "Olivier Biberstein and Didier Buchs and Mathieu Buffo and Christophe Buffard and Jacques Flumet and Jarle Hulaas and Giovanna di Marzo and Pascal Racloz", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/95/133", title = "{SANDS1}.5/{COOPN1}.5 An Overview of the Language and its Supporting Tools", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/biber-main.ps", abstract = "In this document we give an overview of the CO-OPN/1.5 (Concurrent Object-Oriented Petri Nets) specification language and describe the features of each tool provided in the SANDS/1.5 (Structured Algebraic Net Development System) development environment. The CO-OPN/1.5 language is a specification language devised to support the development of large concurrent systems. The underlying formalisms of the language are algebraic specifications and Petri nets in which tokens correspond to algebraic values. Furthermore, in order to deal with large specifications, some structuring principles have been introduced and in particular, object-orientation paradigm has been adopted for the Petri nets. This means that a CO-OPN/1.5 specification is a collection of objects which interact concurrently. Interaction between the objects is achieved by means of synchronization expressions which allow the designer to select the object interaction policies. The development system provides many different tools such as a syntax checker, a simulator, a property verifier based on temporal logic, a graphic editor, a transformation tool supporting the derivation of specifications, an Ada translator which allows to analyze Ada programs in the CO-OPN/1.5 framework, and a MIMD compiler.", } @InProceedings{Biberstein95a, author = "Olivier Biberstein and Didier Buchs", editor = "G. Agha and F. de Cindio", journal = "Workshop on Object-Oriented Programming and Models of Concurrency'95", note = "Turin", pages = "131--145", title = "Structured Algebraic Nets with Object-Orientation", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/biber-t1.ps", } @InProceedings{Biberstein95b, author = "Olivier Biberstein and Didier Buchs", booktitle = "IS-CORE Workshop, Evry, 1995", pages = "73--75", title = "Concurrency and Object-Orientation with Structured Algebraic Nets", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/biber-t2.ps", } @TechReport{Biberstein96, author = "{Olivier Biberstein, Didier Buchs} and Nicolas Guelfi", address = "Lausanne, Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/96/167", title = "{COOPN}/2 : {A} Specification Language for Distributed Systems Engineering", year = "1996", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/biber-TR96-167.ps", abstract = "In this article we present the concurrent object-oriented specification language COOPN/2 which extends the COOPN (Concurrent Object Oriented Petri Nets) formalism, destined to support the development of large heterogenous distributed systems. The development of distributed applications has recently been the subject of intensive research, due to potential benefits that can be expected to offer in increasing reliability and overall performance of computer processing. One way of improving the effectiveness of the distributed system construction is to adopt a rigorous approach for system development, based on structuring principles. The COOPN/2 approach proposes a specification language, based on the object-oriented paradigm, which includes a fine description of true concurrent behaviors.

This hybrid approach (model and property-oriented) allows for a description of the concurrent aspects through the use of a high-level Petri nets formalism which includes data structures expressed with the algebraic abstract data types and a synchronization mechanism for building hierarchies of abstraction. This latter notion is the concept which is used in structuring applications.

Interesting properties of COOPN, such as the progressive refinement of specifications, allow for the building of systems in an incremental manner.In this article, we introduce COOPN/2 informally, by means of a typical example of distributed systems, the transit node, in order to introduce each useful and innovative mechanism of the language. Then, in the context of distributed software engineering with COOPN/2, we present our current works done in order to provide formal methods for several steps of a life cycle model test, prototyping, analysis,....).

Keywords: software engineering, formal specification language, refinement, prototyping, distributed systems, object orientation, concurrency, Petri nets, algebraic specification.", } @InProceedings{Biberstein96a, author = "{Olivier Biberstein, Didier Buchs} and Nicolas Guelfi", booktitle = "IMACS-IEEE-SMC conference on Computational Engineering in Systems Application (CESA'96), Lille, France, 1996", note = "Also available as Technical Report EPFL-DI No 96/187", title = "Using the {COOPN}/2 Formal Method for Groupware Systems Engineering", year = "1996", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/biber-CESA_96.ps", abstract = "COOPN/2 (Concurrent Object Oriented Petri Nets) is an object-oriented specification formalism based on Petri Nets and algebraic specifications. It is fully adapted to the specification of complex concurrent systems because it inherits the advantages of algebraic specifications for the specification of abstract data types, from Petri nets to describe partially ordered events and from the object-oriented paradigm for the 'structuring' of the specification. All these features are especially useful when speaking about groupware systems, which are application which demand rich modeling capabilities on concurrency and structuring. This paper explains the major principles for the specification of groupware systems with COOPN/2. This is done by mapping groupware concepts into COOPN/2 concepts and is demonstrated by means of an example of shared distributed diaries. Furthermore, we present the work done on the methodological approach for the development of concurrent object-oriented systems with COOPN/2 which cover analysis, specification, design, prototyping and testing. groupware, replication, object-orientation, distributed systems, formal methods, Petri Nets, algebraic specification of abstract data types, software engineering.

Keywords : groupware, replication, object-orientation, distributed systems, formal methods, Petri Nets, algebraic specification of abstract data types, software engineering.", } @InProceedings{Biberstein96b, author = "Olivier Biberstein and Didier Buchs and Nicolas Guelfi", booktitle = "Workshop on Object-Oriented Programming and Models of Concurrency'96, Osaka, Japan, 1996", editor = "G. Agha and F. de Cindio", title = "Modeling of Cooperative Editors Using {COOPN}/2", year = "1996", keywords = "Conform, OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/biberOOPMC_96.ps", abstract = "In this paper we describe how to use the COOPN/2 (Concurrent Object-Oriented Petri Net) formalism, by developing a case study on groupware or, more specifically, on a cooperative editor of hierarchical diagrams. First of all, we present COOPN/2 and describe how some aspects specific to object orientation, such as the notions of class/object, of object reference and of the distinction between inheritance and sub-typing, are taken into account within the formalism. Afterwards, we show how these notions may be used for the modeling and the design of an editor of hierarchical Petri nets and discuss some points related to the concurrency. Finally, we show how flexible our modeling architecture is by giving some insight into to the design of other kinds of cooperative diagram editors.

Keywords: groupware, object-orientation, distributed systems, formal methods, Petri nets, algebraic specification, software engineering.", } @TechReport{Biberstein96c, author = "Olivier Biberstein and Didier Buchs and Nicolas Guelfi", address = "Lausanne, Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/96/184", title = "{COOPN}/2 Applied to the Modeling of Cooperative Structured Editors", year = "1996", keywords = "Conform, OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/biberTR96_184.ps", abstract = "In this paper we describe how to use the COOPN/2 (Concurrent Object-Oriented Petri Net) formalism, by developing a case study on groupware or, more specifically, on a cooperative editor of hierarchical diagrams. First of all, we present COOPN/2 and describe how some aspects specific to object orientation, such as the notions of class/object, of object reference and of the distinction between inheritance and sub-typing, are taken into account within the formalism. Afterwards, we show how these notions may be used for the modeling and the design of an editor of hierarchical Petri nets and discuss some points related to the concurrency. Finally, we show how flexible our modeling architecture is by giving some insight into to the design of other kinds of cooperative diagram editors.", } @PhdThesis{Biberstein:97:CAOOFSCS, author = "Olivier Biberstein", month = jul, school = "University of Geneva", title = "{CO}-{OPN}/2: An Object-Oriented Formalism for the Specification of Concurrent Systems", year = "1997", keywords = "formal specification, nets, concurrency, formal methods, subtyping", URL = "http://lgl.epfl.ch/pub/Papers/biberstein-thesis97.ps.gz", abstract = "In this thesis we formally define the syntactic and semantic aspects of the object-oriented formalism, called CO-OPN/2 (Concurrent Object-Oriented Petri Nets), which is devised for the specification and the modeling of large concurrent systems. Moreover, we propose a concrete specification language which supports the formalism and which is used in numerous examples. CO-OPN/2 belongs to the category of algebraic nets, i.e. a powerful combination of algebraic specifications and Petri nets. The former underlying formalism is used to describe the data structures and the functional aspects of a system, while the latter serves to model its operational and concurrent features. Our approach fully integrates the most important notions specific to object orientation: encapsulation, class of objects, dynamic creation/destruction, concurrency, subtyping, and inheritance. The original and innovative features of CO-OPN/2 are its sophisticated synchronization mechanism, the definition of subtyping based on bisimulation, and the explicit distinction between inheritance and subtyping. A static and a dynamic semantics of the formalism are provided. As for the dynamic semantics, it consists in a step semantics expressed in terms of transition systems and constructed by means of a set inference rules. These inference rules have been designed to deal differently with internal and external object events. In addition, special care has been directed to provide the maximal flexibility concerning the dynamic creation/destruction and the concurrency. Finally, in order to demonstrate the adequacy of our approach we adopted a common case study. This case study deals with the specification of a collaborative editor of structured diagrams.", } @InProceedings{Biberstein:97:CCOOF, author = "Olivier Biberstein and Didier Buchs and Nicolas Guelfi", booktitle = "Proc. Second IFIP Conf. on Formal Methods for Open Object-Based Distributed Systems (FMOODS), Canterbury, UK, July 21-23 1997", pages = "57--72", publisher = "Chapman and Hall, London", title = "{CO-OPN/2}: {A} Concurrent Object-Oriented Formalism", year = "1997", URL = "http://lgl.epfl.ch/pub/Papers/biber_fmoods97.ps.gz", } %% @INCOLLECTION{Biberstein:97:OONASCF, %% AUTHOR = {Olivier Biberstein and Didier Buchs and Nicolas Guelfi}, %% BOOKTITLE = {Advances in Petri Nets on Object-Orientation}, %% EDITOR = {G. Agha and F. De Cindio}, %% PUBLISHER = {Springer Verlag}, %% SERIES = {LNCS (Lecture Notes in Computer Science)}, %% VOLUME = {2001}, %% TITLE = {Object-Oriented Nets with Algebraic Specifications: The {CO-OPN/2} Formalism}, %% YEAR = {1997}, %% URL = {http://lgl.epfl.ch/pub/Papers/biber_lncs97.ps.gz}, %% } @InCollection{Biberstein:01:OONWASCF, author = "Olivier Biberstein and Didier Buchs and Nicolas Guelfi", booktitle = "Advances in Petri Nets on Object-Orientation", editor = "G. Agha and F. De Cindio and G. Rozenberg", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "Object-Oriented Nets with Algebraic Specifications: The {CO-OPN/2} Formalism", year = "2001", volume = "2001", pages = "70--127", month = may, URL = "http://lgl.epfl.ch/pub/Papers/biber_lncs97.ps.gz", note = "(the URL points to a preliminary version of the article)", ISBN = "3-540-41942-X", } @InProceedings{Binder:2004:ECOOP-CPUAccounting, author = "Walter Binder and Jarle Hulaas", title = "{Portable CPU Accounting in Java}", address = "Oslo, Norway", year = "2004", month = jun, booktitle = "10th ECOOP Workshop On Mobile Object Systems", URL = "http://cui.unige.ch/~ecoopws/", keywords = "ResMan, JRAF2, J-RAF2, Java", } @Article{Binder:2004:IEEEInternetComputing, author = "Walter Binder and Jarle Hulaas", title = "A Portable {CPU}-Management Framework for {J}ava", journal = "IEEE Internet Computing", year = "2004", month = sep # "/" # oct, volume = "8", number = "5", pages = "74--83", URL = "http://www.jraf2.org/", keywords = "ResMan, JRAF2, J-RAF2, Java", } @InProceedings{Binder:2004:JDKExtension, author = "Walter Binder and Jarle Hulaas", title = "Extending Standard {J}ava Runtime Systems for Resource Management", address = "Linz, Austria", year = "2004", month = sep, booktitle = "Software Engineering and Middleware (SEM 2004)", series = "LNCS", volume = "3437", pages = "154--169", URL = "http://www.jraf2.org/", keywords = "ResMan, JRAF2, J-RAF2, Java", } @InProceedings{Binder:2005:BytecodeTransformations, author = "Walter Binder and Jarle Hulaas", title = "Java Bytecode Transformations for Efficient, Portable {CPU} Accounting", booktitle = "Bytecode 2005 (the First Workshop on Bytecode Semantics, Verification, Analysis and Transformation)", address = "Edinburgh, Scotland", month = apr, year = "2005", series = "{ENTCS} (Electronic Notes in Theoretical Computer Science)", volume = "not yet available", keywords = "ResMan, JRAF2, J-RAF2, Java", URL = "http://www.jraf2.org/", } @InProceedings{Binder:2005:PortableMetrics, author = "Walter Binder and Jarle Hulaas", title = "Using Virtual Machine Instruction Counting as Portable {CPU} Consumption Metrics", booktitle = "QAPL'05 (3rd Workshop on Quantitative Aspects of Programming Languages)", address = "Edinburgh, Scotland", month = apr, year = "2005", series = "{ENTCS} (Electronic Notes in Theoretical Computer Science)", volume = "not yet available", keywords = "ResMan, JRAF2, J-RAF2, Java", URL = "http://www.jraf2.org/", } @TechReport{Binder:2005:ExactProfiling, author = "Walter Binder and Jarle Hulaas", title = "Exact and Portable Profiling for Java Using Bytecode Instruction Counting", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", type = "Technical Report", month = mar, year = "2005", number = "EPFL-IC-2005011", keywords = "ResMan, Java", } @InProceedings{Brunet94, author = "Denis Brunet and Didier Buchs and Daniel Monteiro and Fabrice Mourlin", booktitle = "FIP WG10.3 Working Conference on Programming Environments for Massively Parallel Distributed Systems, Monte Verita, Ascona, April 25-29 1994", title = "Parallel Distributed Algorithm Design through Specification Transformation: The Asynchronous Vision System", year = "1994", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/brunet-asynchronousvisionsystem.ps", abstract = "We present a constructive approach to the realization of a parallel system for the vision processing. This approach follows the classical software engineering principles: analysis, specification, design and implementation. The language CO-OPN (Concurrent Object Oriented Petri Net) is used to discribe the specification and the design of such system, while the implementation has been performed on a transputer machine. The writting of the CO-OPN specifications has been supported by the SANDS environement (Structured Algebraic Nets Development System) which also allow to simulate the behavior of the modelled system in an abstract way. A module, the main piece of the vision system, is presented that can be used for composing a computer vision architecture exploiting asynchronous data flows. This module is general enough to be duplicated and interconnected into a uniform graph. A module works by grouping asynchronous pieces of information coming through a channel, which delays them according to their relevance to the task of the module. The traditional separation between quantitative and symbolic processings vanishes since the module allows them to be implemented in a uniform way. The abstract specification of such principle is proposed, followed by a transformation refining this abstract specification into a concrete specification by introducing a distributed algorithm The concrete specification serves as the reference for the implementation on the distributed machine. We present a constructive approach to the realization of a parallel system for the vision processing. This approach follows the classical software engineering principles: analysis, specification, design and implementation. The language CO-OPN (Concurrent Object Oriented Petri Net) is used to discribe the specification and the design of such system, while the implementation has been performed on a transputer machine. The writting of the CO-OPN specifications has been supported by the SANDS environement (Structured Algebraic Nets Development System) which also allow to simulate the behavior of the modelled system in an abstract way. A module, the main piece of the vision system, is presented that can be used for composing a computer vision architecture exploiting asynchronous data flows. This module is general enough to be duplicated and interconnected into a uniform graph. A module works by grouping asynchronous pieces of information coming through a channel, which delays them according to their relevance to the task of the module. The traditional separation between quantitative and symbolic processings vanishes since the module allows them to be implemented in a uniform way. The abstract specification of such principle is proposed, followed by a transformation refining this abstract specification into a concrete specification by introducing a distributed algorithm The concrete specification serves as the reference for the implementation on the distributed machine.", } @InProceedings{Buch93a, author = "Didier Buchs and Fabrice Mourlin and Lorens Safavi", booktitle = "Software Engineering for Parallel Systems, Germany, September 20-24 1993", organization = "World Transputer Congress in Aachen", publisher = "IOS Press", title = "{CO}-{OPN} for specifying a distributed termination detection algorithm", volume = "3", year = "1993", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-distributedtermination.ps", abstract = "The SANDS environment along with the CO-OPN specification formalisms are presented. The latter permitting specification of data types and concurrency through the use of modular algebraic specifications and structured algebraic nets based upon an object oriented approach. System specification will be demonstrated through an ascending distributed termination detection algorithm. Major aspects of the environment and the CO-OPN formalism will be discussed.", } @InProceedings{Buch96c, author = "Didier Buchs", booktitle = "Neuvi\`eme journ\'ees internationales, Le g\'enie logiciel et ses applications, Revue g\'enie logiciel, November 18-21 1996", title = "{M}\'ethodes formelles pour le d\'eveloppement et la v\'erification de logiciels", year = "1996", keywords = "Testing, Conform, OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/buchs_cgl_96.ps", abstract = "Cet article pr\'esente les diff\'erents composants d'une m\'ethode de d\'eveloppement de logiciel int\'egr\'ee. Nous soulignerons la n\'ecessit\'e de fournir un cadre coh\'erent l'int\'egration des activit\'es de sp\'ecification, d'impl\'ementation et de v\'erification. L'usage de m\'ethodes formelles sera \'etudi\'e en montrant, l'importance de la s\'emantique dans la formalisation des techniques de d\'eveloppement ainsi que la n\'ecessit\'e de supporter un d\'eveloppement incr\'emental. L'incr\'ementalit\'e est situ\'ee au niveau de l'\'elaboration de la sp\'ecification et au niveau de la construction des programmes. Finalement nous pr\'esenterons une r\'ealisation concr\`ete de syst\`eme de d\'eveloppement bas\'e sur le formalisme CO-OPN que nous avons men\'e \`a l'EPFL, dont une partie est support\'ee par des outils int\'egr\'es dans l'environnement SANDS.", } @InProceedings{Buchs93, author = "Didier Buchs and Pascal Racloz", booktitle = "8th International Symposium on Computer and Information Sciences, Istambul, November 3-5 1993", pages = "189--196", title = "Symbolic Proof of {CTL} Formulae over Petri Nets", year = "1993", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-symbolicproofsoverpn.ps", abstract = "We present a method for proving properties of Petri nets expressed in the branching time temporal logic CTL. The framework of CTL formulae, viewed through the notions of predicates and predicate transformers in the context of Petri nets, is also presented. By overcoming the normal limitation of model checking which restricts its applicability to finite state systems this improvement will allow the use of symbolic model checking. The new concept of predicate structure, a symbolic representation of a set of markings of a Petri net, is defined together with a set of associated operations.", } @InProceedings{Buchs93b, author = "Didier Buchs and Jacques Flumet and Pascal Racloz", booktitle = "14th International Conference on Application and Theory of Petri Nets, Tool presentation abstracts, Chicago, USA, June 1993", editor = "Ugo Buy", pages = "25--29", title = "{SANDS}: Structured Algebraic Net Development System", year = "1993", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-ManualCO-OPN.ps", abstract = "SANDS is a development tool based on structured algebraic nets. The environment is composed of the following features:

- Algebraic nets allowing the definition and use of structured tokens by means of algebraic specifications. Apart from reducing the size of a model these nets are accurate in describing data transformations during the evolution of the system being modelled;

- Structured nets necessary for large system developments.

The latter two components form together the language used and understood by the environment.

The development environment provides the user with an application simulation tool. This component provides immediate views of any modifications brought to the system being modelled. The environment also permits modifications to the automatically generated code through manual insertions or deletions of C or Prolog instructions.

Model semantics possess a well formalized underlying theory. Connections with other theories are numerous and offer a large range of possibilities for describing and proving properties about systems. We can mention amongst other rewriting systems, bisimulation (behaviour comparison between two system models), refinement of objects, algebraic specifications and proof of temporal logic properties used as a more abstract specification language.

The user builds and structures his model as a set of algebraic nets called 'objects' representing either instances or classes depending on the context of the modelling. These objects are related to each other by synchronization links which determine and limit the way the objects can evolve concurrently. Algebraic specifications and objects can be used in three different ways: they can be generic, 'ground' or instantiated. The underlying model, namely CO-OPN (Concurrent Object-Oriented Petri Nets), is described in more depth in: 'CO-OPN: A Concurrent Object- Oriented Petri Nets' International Conference on Application and Theory of Petri Nets, Aarhus June 1991.

SANDS has two main components: the CO-OPN graphical editor and the simulation tool. Both parts are independent in the following sense: the user can develop his model inside the graphical editor and call the simulation tool from the editor, on the other hand he can use the CO-OPN specification language to describe his model in a textual way and then use the simulation tool after having verified the validity of the specification with the compiler. Moreover these possibilities can be mixed. The user can also modify the specifications by editing the file generated by the graphical editor (written in the CO-OPN language). The graphical tool can be avoided, if desired, through hand written specifications describing the model; a specification made in the CO-OPN language can also be loaded and then modified in the graphical environment. The specifications obtained can then be simulated once the compilation and linking phases have been successfully achieved. The compiling and linking can be performed through the grap The algebraic specification of data can be defined outside of the graphical editor environment. When this has been done the latter specifications can be imported in the graphical editor where their signatures are graphically represented. This set of algebraic specifications are used as a basis which support object specifications. There is no constraint on the way the user builds his specifications. He can adopt a top-down or a bottom-up methodology. Therefore the user can set the overall objects distribution in order to structure his model and then define the behaviour of each object. On the othe hand he can build his application on a set of objects already defined. However, these approaches can also be mixed.", } @InProceedings{Buchs93c, author = "Didier Buchs and Nicolas Guelfi", booktitle = "International Conference on Parallel Architectures and Languages Europe PARLE'93, Munich, 1993", volume = "694", pages = "353--366", series = "LNCS", title = "Formal Development of Actor Programs using Structured Algebraic Petri Nets", year = "1993", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchsPARLE_93.ps.gz", abstract = "This paper provides with an actor semantics using a formalism called CO-OPN (Concurrent Object Oriented Petri Nets) which is modular and incorporates both concurrency and data structuring features. Actor languages are the main model of concurrent object oriented languages, but they are rarely well formalized. CO-OPN is a structured extension of Petri nets and algebraic abstract data types. A CO-OPN specification is composed of a set of objects (algebraic abstract data types and Petri nets), and of a synchronous communication mechanism. These synchronisation mechanism are defined in order to keep object state encapsulation, allowing to specify independantly each object. The translation of an actor program into a CO-OPN specification is done by building objects for actors. The adequacy of CO-OPN to describe the semantics of concurrent object oriented languages is shown by this formal semantic description of actor languages. Some particular implementations are suggested, improving the concurrency of executions of actor programs.

Keywords : Specification and verification, Formal program development methodologies, modular specification, semantics, actor languages semantics, high level Petri nets, algebraic abstract data types.", } @InProceedings{Buchs94, author = "Mathieu Buffo and Didier Buchs and Jos{\'e} Rolim", booktitle = "IEEE/USP workshop on high performance computing - WHPC'94, Compilers and tools for parallel processing, Sao Paulo (Br{\'e}sil), March 28-30 1994", title = "Developping parallel programs based on rewriting techniques", year = "1994", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-developparallelprograms.ps", abstract = "Starting with a formal problem specification, we show how to progressively achieve a parallel distributed solution, using convenient transformations of specifications. In order to achieve a solution, we use rewriting techniques applied in the context of transformations. This paper explains the methodology, points out its advantages and its requests. We first, introduce the specification language CO-OPN used to express both abstract specification and implementation. CO-OPN is a structured version of algebraic specification and Petri nets in which adequate notions of equivalence can be formalized to handle the concept of correct transformations. Then we introduce the general technique of applying transformations to get specifications progressively closer to the implementation level. These transformations are classified into two levels, the high level transformation performing abstract modification of algorithm and the low level transformations which are applicable on the specification closer to the implementation. Finally, a concrete example will show how the simple {"}permutation sort{"} can be transformed quite automatically in a distributed implementation of a {"}quick sort{"} algorithm.", } @InProceedings{Buchs94a, author = "Didier Buchs and Mathieu Buffo and Jacques Flumet and Pascal Racloz and Erik Urland", booktitle = "Proceedings of CASE Tools Workshop of the World Transputer Congress 1994, Cernobbio, Italia, 1994", editor = "Innes Jelly and Ian Gorton", title = "{SANDS} Tools : an environment for deriving parallel programs", year = "1994", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-envdev.ps.gz", abstract = "This paper describes the techniques and the tools developed to construct CO-OPN specifications (Concurrent Object Oriented Petri Nets) and to derive parallel programs. CO-OPN is a specification language allowing to describe concurrent aspects and data-structure of computer programs in an abstract way. The concurrent part of the formalism is described with Petri nets while the data-structure are described with algebraic abstract data types. In the CO-OPN formalism, this association is structured by the notion of object. The environment developed around CO-OPN is SANDS (Structured Algebraic Nets Development System). The production of quality software needs the use of a complete development method based on a life cycle including specification and implementation phases. This method must provide techniques in order to derive implementation from specification and for verifying if the implementation is adequate. The development of software must be supported by tools such as editors, validation and verification processes. A tool for obtaining correct parallel programs from formally specified problems is presented. The technique we propose is based on the concept of transformations oriented into the context of parallelism. In addition we introduce a methodology for deriving correct parallel algorithms.", } @TechReport{Buchs94b, author = "Didier Buchs and Pascal Racloz", address = "Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", month = jan, number = "DI/94/42", title = "Symbolic Proofs of Temporal Properties", year = "1994", keywords = "Conform", } @TechReport{Buchs94c, author = "Didier Buchs and Daniel Monteiro and Fabrice Mourlin and Denis Brunet", address = "Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", month = oct, number = "DI/94/74", title = "Parallel Distributed Algorithm Design through Specification Transformation: The Asynchronous Vision System", year = "1994", keywords = "Conform", } @TechReport{Buchs94d, author = "Didier Buchs and Jose Rolim", address = "Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/94/80", title = "Methodology for Producing Parallel Probabilistic Algorithms from Specifications: Collection of Articles", year = "1994", keywords = "Conform", } @TechReport{Buchs94e, author = "Didier Buchs and Giovanna Di Marzo", address = "Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", month = nov, number = "DI/94/86", title = "{ACCESS} - Algebraic Concurrent Events for System Specification", year = "1994", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/dimarzo-TR94-86.ps", abstract = "Access is a new algebraic specification formalism, which focuses on the fine description of the ``true'' concurrency and on a high degree of expressivity. Systems are specified by a set of local states, whose value changes under the occurrence of events. Both events and data structure are specified by abstract data types. Static properties, i.e. global constraints over events and data structure, are described by first order formulae, while dynamic axioms, explaining the behavior of events, are given by causality rules. Concurrency can be described in different ways, it can be interleaving or true concurrency. Finally, expressivity is given by fine descriptions of both static and dynamic properties. Access has demonstrate to be a natural generalization of a great variety of Petri Nets (as for example -Algebraic, -Coloured, -With arc extensions Petri Nets). It is also able to capture concepts from other formalisms as Gamma language or CO-OPN. This report presents a complete description of Access syntax and semantics, together with an example of Access specification based on Petri Nets with Arc Extensions. This report also explains how specifications written in other languages as Petri Nets, Gamma, CO-OPN, are written in Access.", } @InProceedings{Buchs95, author = "Didier Buchs", booktitle = "Software Quality Management, Sevilla, Spain, April 1995", note = "(Also Available as Technical Report EPFL-DI No 95/101)", pages = "403--414", title = "Test Selection Method to Validate Concurrent Programs against their Specifications", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-testmethodSQM95.ps", } @InProceedings{Buchs95a, author = "Didier Buchs and Christophe Buffard and Pascal Racloz", booktitle = "Ada in Europe'95, Frankfurt, Germany, October 2-4 1995", editor = "Toussaint", organization = "Springer Verlag", pages = "284--297", series = "LNCS (Lecture Notes in Computer Science)", volume = "1031", title = "Modelling and validation of tasks with algebraic structured nets", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-article.ps", } @InProceedings{Buchs95c, author = "Didier Buchs and Jarle Hulaas", booktitle = "SIPAR workshop, Biel, Switzerland, October 1995", pages = "141--145", title = "Incremental Object Oriented Implementation of Concurrent Systems based on Prototyping of Formal Specifications", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-Sipar-OO-distr.abstract.ps", } @InProceedings{Buchs95d, author = "Didier Buchs and Jarle Hulaas and Pascal Racloz and Mathieu Buffo and Jacques Flumet and Erik Urland", journal = "16th International Conference on Application and Theory of Petri Nets, Turin, Italie", pages = "45--53", title = "{SANDS} Structured Algebraic Net Development System for {CO}-{OPN}", year = "1995", keywords = "Conform", } @Article{Buchs96, author = "Didier Buchs and Pascal Racloz and Mathieu Buffo and Jacques Flumet and Erik Urland", journal = "Transputer Communication Journal", number = "1", pages = "23--32", title = "Deriving Parallel Programs using {SANDS} tools", volume = "3", year = "1996", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-sands.ps", abstract = "This paper describes the techniques and the tools developped to construct CO-OPN specifications.", } @InCollection{Buchs96a, author = "Didier Buchs", address = "Lausanne", booktitle = "G{\'e}nie logiciel: principes, m{\'e}thodes et techniques", editor = "Alfred Strohmeier and Didier Buchs", pages = "137--158", publisher = "Presses Polytechniques et Universitaires Romandes", title = "Les sp{\'e}cifications alg{\'e}briques, un mod{\`e}le formel pour le d{\'e}veloppement de logiciels", year = "1996", ISBN = "2-88074-296-X", } @InProceedings{Buchs96b, author = "Didier Buchs and Jarle Hulaas", booktitle = "IEEE International Conference on Systems, Man and Cybernetics, Beijing, China, October 14-17 1996", pages = "3021--3026", title = "Evolutive Prototyping of Heterogeneous Distributed Systems Using Hierarchical Algebraic Petri Nets", year = "1996", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchsIEEE_96.ps", abstract = "This paper presents several extensions to a new evolutive prototyping process, called object-oriented mixed prototyping. Our application field is complex distributed systems modelled by the means of CO-OPN, a hierarchical algebraic Petri net language. CO-OPN being a strong synchronous language, we also show an original implementation scheme for its high-level communication model in heterogeneous wide-area networks.", } @InProceedings{Buchs97, author = "Didier Buchs and Jarle Hulaas and Pascal Racloz", booktitle = "Tool Presentations, International Conference on Application and Theory of Petri Nets ICATPN'97, Toulouse, France, 1997", pages = "34--43", title = "Exploiting Various Levels of Semantics in {CO}-{OPN} for the {SANDS} Environment Tools", year = "1997", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/buchs-ICATPNtools97.ps.Z", abstract = "This paper describes the techniques and tools developed to support the construction of CO-OPN specifications (Concurrent Object Oriented Petri Nets) [7] and the kind of semantics that are needed for each part of the environment. CO-OPN is a specification language which permits an abstract description of aspects of concurrent operations and data-structures of computer programs. The concurrent and operational part of the formalism is described by means of Petri nets, while the data-structures are described by means of algebraic abstract data types. In the CO-OPN formalism, these associations are structured with the notion of objects. CO-OPN specifications can be developed, analyzed and simulated in a dedicated environment called SANDS (Structured Algebraic Nets Development System [6]). Various semantics of CO-OPN are exploited: an abstract operational semantics is used for the logic programming simulator as well as for the test set generation tool, while a more concrete operational semantics based on transactions is necessary for prototyping on distributed systems. All these semantics are valid and partially complete on a subpart of the CO-OPN language with respect to its denotational semantics.", } @InProceedings{Buchs98, author = "D. Buchs and A. Diagne and F. Kordon", booktitle = "Proceedings of the 9th International Workshop on Rapid System Prototyping, Leuven, Belgium", month = jun, pages = "6--12", publisher = "{J. Becker Ed, IEEE Computer Society Press}", title = "{Testing Prototypes Validity to Enhance Code Reuse}", year = "1998", } @Article{Buchs:99:TOOS, author = "Didier Buchs and C{\'e}cile P{\'e}raire", journal = "Industry-{T}utorial on {F}ormal {M}ethods and {T}esting, {F}ormal {M}ethods 99, {T}oulouse {F}rance", month = sep, title = "Testing Object-Oriented Software", year = "1999", keywords = "Tutorial, Test", URL = "http://lgl.epfl.ch/pub/Papers/buchs99-toos.ps", abstract = "This tutorial describes the approach we develop for the formal testing of OO software. We also describe the operational techniques, that can be used, to select test cases.", } @InProceedings{Buchs:99:RPFMDS, author = "D. Buchs and M. Buffo", booktitle = "Proceedings of the Tenth International Workshop on Rapid System Prototyping (RSP'99)", editor = "Frances M. Titsworth", month = jun, publisher = "IEEE", title = "Rapid Prototyping of Formally Modelled Distributed Systems", year = "1999", keywords = "prototyping, ooMethod, concurrency, conform", URL = "http://lgl.epfl.ch/pub/Papers/Buchs:99:RPFMDS.ps.gz", ISBN = "0-7695-0246-6", abstract = "This paper presents various kinds of prototypes, used in the prototyping of formally modelled distributed systems. It presents the notions of prototyping techniques and prototype evolution, and shows how to relate them to the software life-cycle. It is illustrated through the use of the formal modelling language for distributed systems CO-OPN/2.", } @Article{Buchs:00:FSFOODS, author = "Didier Buchs and Nicolas Guelfi", title = "A Formal Specification Framework for Object-Oriented Distributed Systems", journal = "IEEE Transactions on Software Engineering", volume = "26", number = "7", pages = "635--652", month = jul, year = "2000", keywords = "Formal specification,CO-OPN, Distributed Systems,Conform", } @Article{Buchs:02:CBSMEV, author = "Didier Buchs and Sandro Costa and David Hurzeler", title = "Component Based System Modelling for Easier Verification", booktitle = "Concurrency in Dependable Computing", editor = "P. Ezhilchevan and A. Romanovsky", publisher = "Kluwer", pages = "61--86", year = "2002", keywords = "Petri Nets,Conform", } %% @techreport{Buchs:02:OSCA, %% AUTHOR = {Didier Buchs and Sandro Costa and David Hurzeler}, %% TITLE = {Observers for Substitutability: a CO-OPN/2 approach}, %% YEAR = {2002}, %% NUMBER = {IC/2002/43}, %% INSTITUTION = {Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences}, %% KEYWORDS = {Petri Nets,Conform}, %% } } @TechReport{Buchs:2002:FSRCOF, author = "Didier Buchs and Sandro Costa and David Hurzeler", title = "Flexible Subtyping Relations for Component-Oriented Formalisms", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", year = "2002", number = "IC/2002/43", month = jun, keywords = "Petri Nets,Conform", URL = "http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200243.pdf", abstract = "In the first part of this paper we present a new general component-oriented formalism, which has, among others, the following features: Concurrency, atomicity, synchronization between and inside components, and modularity. We give the inference rules which may be used to inductively build the semantics of composed components. The second part of the paper addresses the problem of substitutability and consists in the definition of a very general and flexible notion of subtyping; This notion of subtyping depends on a set of properties we are interested in preserving during the substitution and a special {"}observer{"} component which filters or adds behaviours to the components we are trying to substitute. The buffer example is used to illustrate the definitions.", } @InProceedings{Buchs:2003:MSMTSC, author = "Didier Buchs and Stanislav Chachkov and David Hurzeler", title = "Modelling a Secure, Mobile and Transactional System with {CO}-{OPN}", booktitle = "Proceedings of the International Conference on Application of Concurrency to System Design, Guimar{\~a}es, Portugal", keywords = "Conform", pages = "82--91", year = "2003", editor = "Johan Lilius and Felice Balarin and Ricard J. Machado", month = jun, publisher = "IEEE CS Press", note = "Also available as Technical Report IC/2003/14, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", URL = "http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200314.pdf", abstract = "Modelling complex concurrent systems is often difficult and error-prone, in particular when new concepts coming from advanced practical applications are considered. These new application domains include dynamicity, mobility, security, and localization dependent computing. In order to fully model and prototype such systems we propose to use several concepts introduced in our specification language CO-OPN, like context, dynamicity, mobility, subtyping and inheritance. CO-OPN (Concurrent Object Oriented Petri Net) is a formal specification language for modelling distributed systems; it is based on coordinated algebraic Petri nets. This paper focuses on the use of several basic mechanisms of CO-OPN for modelling mobile systems and the generation of corresponding Java code. A significant example of distributors accessible through mobile devices (for example, PDA with Bluetooth) is fully modelled and implemented with our technique.", } @InProceedings{Buffo94, author = "Mathieu Buffo and Erik Urland and Josi Rolim and Didier Buchs", booktitle = "Proceedings of the International Workshop on Parallel Processing'94, December 1994", organization = "IEEE, Bangalore", publisher = "McGraw Hill", title = "Progressive generation of parallel solutions for formally specified problems", year = "1994", keywords = "Conform", } @InProceedings{Buffo96, author = "Mathieu Buffo and Didier Buchs", booktitle = "X SBES Brazilian Symposium on Software Engineering, Brasil, 1996", editor = "Jose Carlos Maldonado and Paulo Cesar Masiero", pages = "341--356", title = "Contextual coordination between objects", year = "1996", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:96:CCO.ps.gz", abstract = "Notwithstanding the promises it provides for the future of software engineering,the object paradigm suffers from a lack of development methods focusing on the coordination between objects. The distinction of coordination and computation mechanisms is an important separation principle for increasing the management and understanding of the interactions among objects and the configurations of objects on the target systems. This paper shows that contextual coordination must be introduced during the object oriented analysis in order to early take into account the inevitable constraints of the concrete implementation. This contextual coordination leads to a hierarchical model composed of imbricated execution contexts of objects.", } @InProceedings{Buffo98:ECP, author = "Mathieu Buffo", journal = "Workshops proceedings of the International Conference on Database and Expert Systems Applications (DEXA'98)", month = aug, pages = "536--541", publisher = "IEEE Computer Society", title = "Experiences in Coordination Programming", year = "1998", keywords = "text, conference, coordination, oomethod, concurrency, conform", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:98:ECP.ps.gz", ISBN = "0-8186-8353-8", abstract = "The term coordination is now unavoidable when speaking about software systems composed of many computing entities. More and more coordination models and languages are available, but they are used mainly in toy examples. This paper relates concrete experiences in the field of coordination programming, starting with formal object-oriented specifications and ending with Java programs. It shows that suitable coordination model and language are actually fruitful whn used since the design phase of software development.", } @InProceedings{Buffo:99:DSIBCL, author = "M. Buffo and D. Buchs", booktitle = "Proceedings of the Third International Conference on Coordination Models and Languages (COORDINATION'99)", month = apr, number = "1594", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "A Distributed Semantics for a {IWIM}-Based Coordination Language", year = "1999", keywords = "coordination, ooMethod, concurrency, conform", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:99:DSIBCL.ps.gz", ISBN = "3-540-65836-X", abstract = "Coordination patterns are likely to be applied during the design phase of software development, provided the use of a suitable design-level coordination language, like COIL. This formal language is member of the IWIM family of coordination languages, but suffers up to now from a lack of distributed semantics. This paper defines a new, formal distributed semantics for COIL, taking into account problems like object migration and restrictions in non-local interactions. This new semantics opens the door to major improvements of COIL dealing with the dynamicity of coordination mechanisms, like migration of coordinated sub-systems, or dynamic re-configuration of coordinated sub-systems for instance. A discussion about the properties of this semantics is included.", } @InProceedings{Buffo:99:PMRMAPNC, author = "M. Buffo and D. Buchs", booktitle = "Proceedings of the Tools Presentation of th 20th International Confernce on Application and Theory of Petri Nets (ICATPN'99)", editor = "S. Donatelli and J. Kleijn", month = jun, title = "Polymorphism and Module-Reuse Mechanisms for Algebraic Petri Nets in CoopnTools", year = "1999", keywords = "petri net, ooMethod, concurrency, conform", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:99:PMRMAPNC.ps.gz", abstract = "This paper introduces CoopnTools, a tool set allowing the support of object-oriented specifications written by means of the language CO-OPN/2, based on synchronised algebraic Petri nets. In particular, this paper shows how concrete mechanisms dealing with polymorphism and module-reuse are implemented in CoopnTools.", } @TechReport{Buffo:94:PTSPP, author = "Mathieu Buffo and Erik Urland and Jos Rolim and Didier Buchs", address = "CUI, Universite de Geneve, {24, rue du General Dufour}, 1211 Geneve 4, Suisse", month = dec, number = "91", title = "Le projet {TSPP}", type = "Cahiers du CUI", year = "1994", keywords = "Text, Report, Concurrency, Transformation, Conform", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:94:PTSPP.ps.gz", } @InProceedings{Buffo:95:PGPSFSP, author = "Mathieu Buffo and Erik Urland and Jos Rolim and Didier Buchs", booktitle = "Proceedings of the International Workshop on Parallel Processing'94, New Dehli, India, January 1995", editor = "Viktor Prasanna and Vijay Bhatkar and Lalit Patnaik and Satish Tripathi", organization = "IEEE", pages = "89--93", publisher = "Tata McGraw-Hill", title = "Progressive generation of parallel solutions for formally specified problems", year = "1995", keywords = "Text, Paper, Concurrency, Transformation, Conform", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:95:PGPSFSP.ps.gz", abstract = "In this paper we show a progressive way for managing abstract algebraic specifications in order to obtain efficient parallel or distributed algorithms. Our approach is based on TSPP technique (Transformations de Sp cifications de probl mes orient es vers le Parall lisme et le Probabilisme). We claim that the process of transformation of specifications can be done, in many cases, automatically in direction from a high level of abstraction to concrete one using a sequence of derivation steps. The resulting specification, obtained by such a transformation process, is then well suited for execution on target parallel machine. Further we shortly describe the SANDS system (Structured Algebraic Nets Development System) and the TTool - transformation tool package which was developed for performing transformations on specifications. To illustrate the TSPP technique we present here an example developed in SANDS system environment by application of TTool. Finally we discuss the obtained speedup of execution such a derived specification on parallel machine with various number of processors.", } @InProceedings{Buffo:96:CCDO, author = "Mathieu Buffo", booktitle = "Proceedings of the 1996 SIPAR-Workshop on Parallel and Distributed Computing, Geneva, Switzerland, October 1996", editor = "C. A. H{\'e}ritier and B. Chopard", organization = "SIPAR", publisher = "CUI, Universit de Geneve", title = "Contextual Coordination for Distributed Objects", year = "1996", keywords = "Text, Conference, Coordination, OOMethod, Concurrency, Conform", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:96:CCDO.ps.gz", abstract = "This position paper explain why and how coordination may play a role in the development of distributed object applications.", } @PhdThesis{Buffo:97:CCCMDOS, author = "Mathieu Buffo", month = jul, school = "University of Geneva", title = "Contextual Coordination: a Coordination Model for Distributed Object Systems", year = "1997", keywords = "Text, Thesis, Coordination, OOMethod, Concurrency, Conform", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:97:CCCMDOS.ps.gz", abstract = "From a software engineer's point of view, refining object-oriented specifications in distributed software architectures seems to be a promising way for developing programmes. Unfortunately, the use of the most of current coordination models prevents a direct refinement; finding an appropriate coordination model is the aim of this thesis.", } @InProceedings{Buffo:97:CMDOS, author = "Mathieu Buffo and Didier Buchs", booktitle = "Proceedings of the Second International Conference on Coordination Models and Languages COORDINATION'97, September 1997", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "A Coordination Model for Distributed Object Systems", volume = "1282", year = "1997", keywords = "Text, Conference, Coordination, OOMethod, Concurrency, Conform", URL = "http://lgl.epfl.ch/pub/Papers/Buffo:97:CMDOS.ps.gz", abstract = "Distributed systems have strong similarities with object systems. However, coordination models for these systems have slightly different requirements. This paper presents a specific coordination model for distributed object systems, built on hierarchical execution contexts. This model allows to refine object-oriented specifications into distributed software architectures.", } @InProceedings{Buffo:00:CTSC, author = "Mathieu Buffo and Didier Buchs and Stanislav Chachkov", title = "CoopnTools a Toolkit for the support of {CO}-{OPN}", booktitle = "Proceedings of the Tools Demonstration of the 21th International Conference on Application and Theory of Petri Nets", month = jun, year = "2000", pages = "2--6", publisher = "Aarhus University", keywords = "Petri Nets, Tools,Conform", } @TechReport{Buffo:00:FCODLBDS, author = "Mathieu Buffo and Didier Buchs", title = "A Formal Component-Oriented Design Language for building Distributed System", type = "Technical Report", number = "DI/00/308", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", year = "2000", } @TechReport{Camesi:2004:Monitoring, author = "Andrea Camesi and Jarle Hulaas and Walter Binder", title = "Graphical Monitoring of {CPU} Resource Consumption in a Java-based Framework", type = "Technical Report", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "EPFL-IC-200473", month = sep, year = "2004", URL = "http://www.jraf2.org/", keywords = "ResMan, JRAF2, J-RAF2, Java", } @MastersThesis{Caron:2000:OOSS, author = "Xavier Caron", address = "D{\'e}partement d'Informatique, 1015 Lausanne, Switzerland", school = "Ecole Polytechnique F{\'e}d{\'e}rale de Lausanne", title = "Object-Oriented Stable Storage", year = "2000", URL = "http://lgl.epfl.ch/pub/Papers/caron-stable-storage.pdf", abstract = "This report is the result of a diploma thesis of Xavier Caron, a computer science student at the Software Engineering Lab (LGL), which is part of the Swiss Federal Institute of Technology in Lausanne (EPFL). The LGL is currently developing an object-oriented library providing transaction support for Ada programmers. Transactions are actions that have the well-known ACID properties (Atomicity, Consistency, Isolation, and Durability). Durability of objects can be achieved by saving their state to so-called {"}stable storage{"}. The goal of this project is to implement the two following forms of stable storage: 1) Stable storage using a technique called mirroring. The integrity of the stored data must be guaranteed even in the presence of crash failures. 2) Stable storage based on replication. Using the distributed programming facilities of Ada 95, a mechanism must be devised that allows to broadcast the information that has to be made durable to a group of collaborating machines for storage. Of course, it should also be possible to retrieve the data in a consistent manner. This report describes the system design and implementation in Ada 95.", } @InProceedings{Chachkov:01:FAOOMRUESC, author = "Stanislav Chachkov and Didier Buchs", title = "From an Abstract Object-Oriented Model to a Ready-to-Use Embedded System Controller", booktitle = "Rapid System Prototyping, Monterey, CA", publisher = "IEEE Computer Society Press", pages = "142--148", month = jun, year = "2001", abstract = "We present an example of a construction of an embedded software system-a controller-from the formal specification to executable code. The CO-OPN (Concurrent Object Oriented Petri Net) formal specification language is used for modelling the controller and the associated hardware system with the inherent limitation of its physical components. CO-OPN formal language is based on coordinated algebraic Petri nets. The CO-OPN model can be used to verify some properties of the controller in the concrete physical environment. This is achieved by constrained animation of the valid prototype produced by automatic code generation. The possibility to incrementally refine the generated code can be used to obtain a more efficient implementation.", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/chachkov-RSP2001.pdf", } @InProceedings{Chachkov:01:FFSRUSCCOOPNA, author = "Stanislav Chachkov and Didier Buchs", title = "From Formal Specifications to Ready-to-Use Software Components: The Concurrent Object-Oriented Petri Net Approach", booktitle = "International Conference on Application of Concurrency to System Design, Newcastle", pages = "99--110", publisher = "IEEE Computer Society Press", month = jun, year = "2001", abstract = "CO-OPN (Concurrent Object Oriented Petri Net) is a formal specification language for modelling distributed systems; it is based on coordinated algebraic Petri nets. In this paper we describe a method for generating an executable prototype from a CO-OPN specification. We focus our discussion on the generation of executable code for CO-OPN classes. CO-OPN classes are defined using Petri Nets. The main problems arise when implementing synchronization and non-determinism of CO-OPN classes in procedural languages. Our method proposes a solution to these problems. Another interesting aspect of our method is the easy integration of a generated prototype into any existing system. This paper focuses on the generation of Java code that fulfils the Java Beans component architecture, however our approach is also applicable to other object-oriented implementation languages with a component architecture.", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/chachkov-ICACSD2001.pdf", } @InProceedings{Chachkov:02:ISLNDP, author = "Stanislav Chachkov and Didier Buchs", title = "Interfacing Software Libraries from Non-deterministic Prototypes", booktitle = "Rapid System Prototyping, Darmstadt, Germany", publisher = "IEEE Computer Society Press", pages = "92--98", month = jul, year = "2002", keywords = "Conform", } @PhdThesis{Chachkov:2004:PHD, author = "Stanislav Chachkov", school = "School of Computer & Communications Sciences, Ecole Polytechnique F{\'e}d{\'e}rale de Lausanne (EPFL), Switzerland", number = "2924", title = "Generation of object-oriented programs from {CO}-{OPN} specifications", year = "2004", keywords = "OOMethod, Conform, PhD", } @InProceedings{Cifuentes:98:SSMI, author = "C. Cifuentes and S. Sendall", booktitle = "6th International Workshop on Program Comprehension - IWPC'98, Ischia, Italy, June 24-26 1998", pages = "126--133", publisher = "IEEE Computer Society", title = "Specifying the Semantics of Machine Instructions", year = "1998", keywords = "binary translation, retargetable, formal specification, CISC, RISC", URL = "http://lgl.epfl.ch/pub/Papers/sendall-spec_mach_instr_98.ps", abstract = "Computer architecture manuals describe the instruction set of the machine and the semantics of those instructions by a combination of natural language and ISP (Instruction Set Processor) descriptions. The syntax of the instructions in assembly is well define in the form of tables in the manual. However, the semantics is not so well specified and descriptions vary widely from one manual to another. When developing a retargetable binary translator, as much as possible needs to be specified in order to automatically generate code from specifications, hence separating machine-independent issues from the manual coding stage. The specification of the semantics of machine instructions is one such task, with the aim of generating suitable code for an intermediate representation that is to be used during the analysis stage. We describe the design process used to develop a semantic specification language, SSL, to integrate into a retargetable binary translation framework. The techniques described herein are suitable not just to binary translators but also to machine-code manipulation tools such as optimizing compilers, binary profilers, instrumentors, and binary debuggers.", } @InProceedings{crettaz:01:OOSSBMICAS, author = "Valentin Crettaz and Mohamed Mancona Kand{\'e} and Shane Sendall and Alfred Strohmeier", booktitle = "UML 2001 - The Unified Modeling Language: Modeling Languages, Concepts and Tools, Fourth International Conference, Toronto, Canada, October 1-5, Martin Gogolla (Ed.)", title = "Integrating the Concern{BASE} Approach with {SADL}", series = "LNCS (Lecture Notes in Computer Science)", volume = "2185", pages = "166--181", publisher = "Springer Verlag", year = "2001", note = "Also available as Technical Report EPFL-DI No 01/366", URL = "http://lgl.epfl.ch/pub/Papers/crettaz-2001-icas.pdf", abstract = "We describe ConcernBASE, a UML-based approach that is an instantiation of the IEEE's Conceptual Framework (Std 1471) for describing software architectures. We show how the approach supports advanced separation of concerns in software architecture by allowing one to identify and define multiple viewpoints, concern spaces and views of an architecture. Our work focuses on integrating the ConcernBASE approach with the Structural Architecture Description Language (SADL) in order to make the verification capabilities of SADL available to those who develop in UML. The result is a UML profile for structural description of software architecture. The paper also presents a prototype tool that supports this UML profile.", } @InProceedings{Currie97, author = "Currie Colket et alii (including Sergey Rybin and Alfred Strohmeier)", booktitle = "ACM Ada Letters, January 1997", number = "1", pages = "35--40", title = "Architecture of {ASIS}: {A} Tool to Support Code Analysis of Complex Systems", volume = "XVII", year = "1997", } @TechReport{Dimarzo:97:FDJP, author = "Giovanna Di Marzo Serugendo and Nicolas Guelfi", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/97/248", title = "Formal Development of Java Programs", year = "1997", URL = "http://lgl.epfl.ch/pub/Papers/dimarzo-TR97-248.ps.gz", abstract = "The Java object-oriented programming language has been the subject of an important involvement from programmers and industry. Especially for applications related to the Web. The problem of such rapid penetration of Java programs into commercial product is that software engineers does not have any methodology and have to develop complex parallel applications. In this paper, we present, using a real (http://lglsun.epfl.ch/Team/GDM/DSGamma.html) but simple Web parallel application, a possible formal development methodology based on the stepwise refinement of CO-OPN/2 formal specifications. The application chosen is based on the Gamma paradigm, in which additions are realized across distributed multisets of integers maintained by local Java applets. CO-OPN/2 is an object-oriented specification formalism allowing the formal specification of abstract data types based on algebraic specification and of concurrent objects using a Petri net like approach. An interesting feature of CO-OPN/2 is that it gives a coherent solution for the expression of complex properties combining inheritance, concurrency and synchronizations. The refinement of formal descriptions for building progressively the Java program is presented in several refinement steps. This refinement process focuses on the distribution of data and treatments, and validation and verification are studied through the refinement of system properties.", } @InProceedings{Dimarzo:98:FDJBWPA, author = "Giovanna Di Marzo Serugendo and Nicolas Guelfi", booktitle = "Proceedings of the Hawai International Conference on System Sciences, 1998", note = "Also available as Technical Report EPFL-DI No 97/248", title = "Formal Development of Java Based Web Parallel Applications", year = "1998", URL = "http://lgl.epfl.ch/pub/Papers/dimarzo-hicss98.ps.gz", abstract = "The Java object-oriented programming language has been the subject of an important involvement from programmers and the industry. Especially for applications related to the Web. The problem of such a rapid penetration of Java programs into commercial products is that software engineers do not have any methodology and have to develop complex parallel applications. Here, we present a formal development methodology based on the stepwise refinement of CO-OPN/2 formal specifications, using a real Web parallel application. Starting from a centralized view, we present the following refinement steps: data distribution, behavior distribution, communication layer, and Java program. During the whole refinement process, we study the evolution and the verification of one specific property.", } @TechReport{Dimarzo:98:FDVDSBCCAA, author = "G. Di Marzo Serugendo and N. Guelfi and A. Romanovsky and A. Zorzo", address = "Lausanne, Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/98/265", title = "Formal Development and Validation of the {DSG}amma System Based on {CO}-{OPN}/2 and Coordinated Atomic Actions", year = "1998", URL = "http://lgl.epfl.ch/pub/Papers/dimarzo-TR98-265.ps.gz", abstract = "The objectives of this research are twofold. On the first hand, it aims to show the interest of Coordinated Atomic actions (CA actions) as a design concept and, on the other hand it explains how the formal language \COOPNTWO\ can be used to express a CA action design. A real distributed application is developed according to a simple development life cycle: informal requirements, specification, design, implementation. The design phase is built according to the CA action concept. The \COOPNTWO\ language is used to express the specification, and design phase. The implementation is made in Java based on a library of generic classes adapted to CA action concepts. The validation phase is briefly addressed, in order to demonstrate the extent to which the development methodology followed in this paper can be useful for proving properties.", } @InProceedings{Dimarzo:98:UOOANREJPCS, author = "Giovanna Di Marzo Serugendo and Nicolas Guelfi", booktitle = "Proceedings of the International Conference on Application of Concurrency to System Design (CSD'98)", note = "Also available as Technical Report EPFL-DI No 98/267", pages = "166--176", publisher = "IEEE Computer Society Press", title = "Using Object-Oriented Algebraic Nets for the Reverse Engineering of Java Programs: {A} Case Study", year = "1998", URL = "http://lgl.epfl.ch/pub/Papers/dimarzo-csd98.ps.gz", abstract = "The problem addressed in this paper is the following: How to use high-level Petri nets for the reverse engineering of implemented distributed applications ?. We present a reverse engineering methodology applied on a real (simple) Java applet based client/server application. First, starting from the Java program, several abstraction steps are described using the \COOPNTWO\ formal specification language. Then, we present a brand new research that studies properties preservations during a refinement process.", } @InProceedings{Dimarzo:99:FDVJDDS, author = "G. Di Marzo Serugendo and N. Guelfi and A. Romanovsky and A. F. Zorzo", booktitle = "Fifth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'99)", publisher = "IEEE Computer Society Press", title = "Formal Development and Validation of {Java} Dependable Distributed Systems", year = "1999", URL = "http://lgl.epfl.ch/pub/Papers/dimarzo-iceccs99.ps.gz", abstract = "The rapid expansion of Java programs into software market is often not supported by a proper development methodology. Here, we present a formal development methodology well-suited for Java dependable distributed applications. It is based on the stepwise refinement of model-oriented formal spcifications, and enables validation of the obtained systme wrt the client's requirements. Three refinement steps have been identified in the case of fault-tolerant distributed applications: first, starting from informal requirements, an initial formal specification is derived. It does not depend on implementation constraints and provides a centralized solution; second, dependability and distribution constraints are integrated; third, the Java implementation is realised. The CO-OPN/2 language is used to express specifications formally; and the dependability and distribution design is based on the Coordinated Atomic action concept. The methodology and the three refinement steps are presented through a very simple fault-tolerant distributed Java application.", } @InProceedings{Dimarzo:99:FDVMSD, author = "G. Di Marzo Serugendo", booktitle = "Fifth International Conference on Information Systems Analysis and Synthesis (ISAS'99)", title = "A Formal Developement and Validation Methodology for System Design", year = "1999", URL = "http://lgl.epfl.ch/pub/Papers/dimarzo-isas99.ps.gz", abstract = "This paper presents first a formal development methodology that enables the validation of formal specifications as well as program codes wrt client's requirements. The methodology is based on the two languages framework: it advocates the joint use of a model-oriented specification and a logical language. Second, the paper describes development guidelines for system design within the proposed methodology. Guidelines, specific to each kind of system, can be defined. They enable the specifier to add progressively the complexity into the system desing. Two development processes are proposed: the first one leads to a traditional client/server desing; the second one enables to integrate fault-tolerance in the design. Both development processes have been applied on an example and produced a Java program.", } @PhdThesis{DiMarzo:99:SRFSBLF, author = "Giovanna Di Marzo Serugendo", address = "D{\'e}partement d'informatique, CH-1015, Lausanne, Suisse", school = "Ecole Polytechnique F{\'e}d{\'e}rale de Lausanne", number = "1931", title = "Stepwise Refinement of Formal Specifications Based on Logical Formulae: from {COOPN}/2 Specifications to Java Programs", year = "1999", URL = "http://lgl.epfl.ch/pub/Papers/dimarzo-thesis.pdf", abstract = "One of the steps making it possible to increase the quality and the reliability of the software executing on distributed systems consists of the use of methods of software engineering that are known as formal. The majority of the formal methods currently existing correspond in fact more to formal specifications languages than to methods themselves. This is due to the fact that the two fundamental aspects which are: the logic of use of the language and the coverage of the software life cycle are not, for the majority, defined. The development by stepwise refinement is one of the means making it possible to define these two aspects.

This thesis aims to the definition of the concepts of refinement and implementation of model-oriented formal specifications. It brings a methodological base making it possible to use such a specifications language during a development by stepwise refinements and during the implementation stage.

This thesis defines, initially, a theoretical framework for the refinement and the implementation of formal specifications. The main idea consists in associating a contract with each specification. A contract explicitly represents the whole of the properties of the specification which it is necessary to preserve at the time of a refinement of this specification. To show that a concrete specification refines some abstract specification, it is then a matter of showing that the contract of the concrete specification is sufficient to ensure the properties corresponding to the contract of the abstract specification.

The second part of this thesis consists in applying this theoretical framework in the context of the CO-OPN/2 language. CO-OPN/2 is an object-oriented formal specifications language founded on algebraic specifications and Petri nets. Thus, definitions of the concepts of contracts, refinement and implementation are proposed for this language. The contracts are expressed using the Hennessy-Milner temporal logic (HML). This logic is used in the theory of test provided with language CO-OPN/2. Thus, the verification of the contractual properties, as well as the verification of the stages of refinement are facilitated. Refinement and implementation are controlled semantically by the satisfaction of the contracts; syntactically, a renaming is authorised. We specifically study the implementation using the Java programming language. We show how to specify classes of the Java programming language using language CO-OPN/2, so that the last stage of the process of refinement leads to a specification entirely built using CO-OPN/2 components specifying Java classes. The stage of implementation in the Java language itself is thus facilitated.

The third part of this thesis shows how it is possible to practically verify that a CO-OPN/2 specification satisfies its own contract, that a stage of refinement is correctly carried out, and finally that the stage of implementation is correctly performed. These verifications are carried out using the theory of the test provided with language CO-OPN/2.

Finally, the last part of this thesis illustrates the cogency of this approach by applying it to a complete and detailed case study. A distributed Java application is developped according to the method introduced for the CO-OPN/2 language. Refinement is guided mainly by the satisfaction of functional requirements and by constraints of design integrating the concept of client/server architecture. Lastly, the stages chosen in the refinement process of this development make it possible to study aspects specific to distributed applications, and to propose generic schemas for the design of such applications.", } @TechReport{DiMarzo:00:ARTCSPN, author = "Giovanna Di Marzo Serugendo and Dino Mandrioli and Didier Buchs and Nicolas Guelfi", title = "Adding Real Time Constraints to Synchronised Petri Nets", year = "2000", number = "DI/00/341", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", keywords = "Petri Nets,Conform", } @InProceedings{DiMarzo:02:RTSPN, author = "Giovanna Di Marzo Serugendo and Dino Mandrioli and Didier Buchs and Nicolas Guelfi", booktitle = "International Conference on Theory and Application of Petri Nets, Adela{\"i}de, Australia", editor = "J. Esparza and Ch. Lakos", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", volume = "2360", title = "Real-Time Synchronized Petri Nets", pages = "142--162", year = "2002", keywords = "Conform", } @InProceedings{Ebel90, author = "Norbert Ebel and Christian Genillard", booktitle = "Ada Software Reuse, London, 1990", editor = "P. J. L. Wallis and R. J. Gautier", pages = "83--97", publisher = "Peter Peregrinus", title = "The Reusability of Ada Software Components", year = "1990", keywords = "Ada", } @InProceedings{Eckert93a, author = "Gabriel Eckert and Alfred Strohmeier", booktitle = "OOPSLA'93 Workshop on Specification of Behavioral Semantics in Object-Oriented Information Modeling, Washington (USA), 1993", pages = "147--150", publisher = "ACM Press", title = "Behavioral Specification Techniques", year = "1993", keywords = "OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/eckert-behavioral_specification_techniques.ps", abstract = "This position paper provides a quick overview of the various behavioral specification techniques, from decision tables, finite state machines, Petri nets, and program design languages, to formal specification languages. It contrasts property based behavioral models (and languages) with model-based ones.", } @Article{Eckert94, author = "Gabriel Eckert and Paul Golder", journal = "Information and Software Technology", note = "Also available as Technical Report EPFL-DI No 93/32", number = "2", pages = "67--86", title = "Improving Object-Oriented Analysis", volume = "36", year = "1994", keywords = "OOMethod", abstract = "This paper evaluates current object-oriented analysis methods and proposes some possible improvements. We start by describing software requirements definition activities and reviewing the concepts of data modeling and object-orientation. We then identify key principles of object-oriented analysis and judge a selection of emerging methods against these principles. Finally, a proposal is presented which attempts to avoid some of the identified shortcomings. The proposal provides a nested object-relationship-operation framework which is based on a consistent use of the object model, a strong notion of encapsulation and a clear distinction between the essential and the contingent properties of the modelled entities.", } @InProceedings{Eckert94a, author = "Gabriel Eckert", booktitle = "IEEE International Conference on Requirements Engineering, Colorado Springs (USA), April 1994", note = "Also available as Technical Report EPFL-DI No 93/33", pages = "32--39", title = "Types, Classes and Collections in Object-Oriented Analysis", year = "1994", keywords = "OOMethod", abstract = "This paper evaluates the classification support provided by current object-oriented analysis methods and proposes possible improvements. Concepts of object-orientation are briefly reviewed. Key principles for classification are identified and emerging object-oriented analysis methods are then judged against these principles. In an attempt to avoid some of the identified shortcomings, it is proposed that classification support during analysis should be based on two distinct constructs (types and collections) instead of a single class construct. This suggestion is based on a clear distinction between the essential and the contingent properties of the modelled objects.", } @Article{Eckert95, author = "Gabriel Eckert and Magnus Kempe", journal = "ROAD (Report on Object Analysis & Design)", note = "Also available as Technical Report EPFL-DI No 93/29", number = "5", pages = "20--27", title = "Modeling with Objects and Values: Issues and Perspectives", volume = "1", year = "1995", keywords = "OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/eckert-modeling_with_objects_and_values.ps", abstract = "The nature, purpose and assumptions of modeling are discussed. The concepts of {"}value{"} and {"}object{"} are assessed in this context. Their fundamental nature is compared and different uses are investigated. Various approaches are illustrated with comparative examples, and we indicate in what respect they may be reconciled beyond their (perceived) oppositions. The paper has the form of a Socratic dialogue.", } @InCollection{Eckert95a, author = "Gabriel Eckert", booktitle = "Object-Oriented Development at Work: Fusion in the Real World", chapter = "11", editor = "Ruth Malan {Derek Coleman, Reed Letsinger}", pages = "276--313", publisher = "Prentice-Hall", title = "Improving the Analysis Stage of the Fusion Method", year = "1995", keywords = "OOMethod", } @Misc{Eckert95b, author = "Gabriel Eckert", howpublished = "Cours postgrade en informatique - G{\'e}nie logiciel: principes, m{\'e}thodes et techniques", month = nov, title = "Enseignement de g{\'}enie logiciel au moyen de projets de groupe", year = "1995", keywords = "OOMethod", } @InCollection{Eckert96, author = "Gabriel Eckert", address = "Lausanne", booktitle = "G{\'e}nie logiciel: principes, m{\'e}thodes et techniques", editor = "Alfred Strohmeier and Didier Buchs", pages = "103--136", publisher = "Presses Polytechniques et Universitaires Romandes", title = "Langages purement fonctionnels modernes", year = "1996", ISBN = "2-88074-296-X", } @InProceedings{Fofanov97, author = "Vasiliy Fofanov and Sergey Rybin and Alfred Strohmeier", booktitle = "Proceedings of TRI-Ada'97, St. Louis, MO, USA, November 11-13 1997", editor = "Susan Carlson", note = "Also available as Technical Report EPFL-DI No 97/242", pages = "205--209", publisher = "ACM Press", title = "{ASIS}tint: An Interactive {ASIS} Interpreter", year = "1997", keywords = "Ada", URL = "http://lgl.epfl.ch/pub/Papers/fofanov97.ps", abstract = "ASIStint is an interactive ASIS interpreter with scripting facilities. It may be used for learning ASIS, i.e. the user may interactively try out the effects of the various ASIS queries. It might also be used as an assistant (sic!) when experimenting with ASIS queries, e.g. in order to discover a way of implementing a part of an ASIS application, or to correct it. Yet another use is debugging and testing an ASIS implementation. Input-output of a session may be recorded, and then be replayed.

Keywords: Ada, ASIS, Interpreter.

Contents:

1. Introduction

2. Example of an ASIStint script

3. ASIStint language description

4. The ASIStint execution environment

5. Implementation approach and limitations

6. Uses and benefits of ASIStint

6.1 Learning ASIS and experimenting with it

6.2. Testing an ASIS implementation

7. Conclusions

8. References", } @InProceedings{garcia:2000:ACRTPOG, author = "Tullio Vardanega and Rodrigo Garc{\'i}a and Juan Antonio de la Puente", booktitle = "6th International Conference on Reliable Software Technologies - Ada-Europe'2001, Leuven, Belgium, May 14 - 18, 2001", title = "An Application Case for Ravenscar Technology: Porting {OBOSS} to {GNAT}/{ORK}", editor = "Dirk Craeynest and Alfred Strohmeier", series = "LNCS (Lecture Notes in Computer Science)", volume = "2043", pages = "392--404", publisher = "Springer Verlag", year = "2001", } @Article{Garcia:2002:ERIEPTG, author = "Rodrigo Garc{\'i}a Garc{\'i}a and Alfred Strohmeier", title = "Experience Report on the Implementation of {EPT}s (Extensible Protected Types) for {GNAT}", publisher = "ACM Press", series = "Ada Letters", volume = "XXII", number = "4", pages = "22--27", year = "2002", month = dec, note = "Also available as Technical Report IC/2002/8, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", URL = "http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200208.pdf", abstract = "Extensible Protected Types were devised to integrate concurrent and object-oriented features of Ada 95. This paper reports on a feasibility study based on implementing Extensible Protected Types for the GNAT compiler.", } @InProceedings{garcia:2000:ACRTPOG, author = "Rodrigo Garc{\'i}a Garc{\'i}a and Esther Gelle and Alfred Strohmeier", booktitle = "Proceedings 7th IEEE International Enterprise Distributed Object Computing Conference, September 16-19, Brisbane, Australia", title = "A Software Architecture for Industrial Automation", pages = "315--320", publisher = "IEEE Computer Society Press", address = "Los Alamitos, California", year = "2003", note = "Also available as Technical Report EPFL IC/2003/28", URL = "http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200328.pdf", abstract = "The Aspect Integrator Platform (AIP) from ABB was designed to build the next generation of industrial automation applications. This platform is part of a set of products that provide the means to model, control and supervise continuous or discrete processes in various market domains, ranging from chemical and metal to paper and consumer industries. Each product works at a different level in the manufacture process, having distinct safety and real time requirements, but all of them rely on a common architecture for interoperability. The architecture proposes a set of components that can be reused in the different products. The current implementation of the architecture provides considerable flexibility in terms of modelling domain information and dynamically modifying it at run-time. On the one hand, this is a feature required by applications that must run 24 hours a day. On the other hand, this flexibility adds complexity to the maintenance of the installed application because dependencies among its components change dynamically. In this paper, we study the different kind of dependencies that can arise between components and show them in the context of an example from automotive industry. We then show how dependency tracking and consistency among components can be improved by representing them in XML, thanks to the structuring and validation properties of XML Schemas. Finally, we also outline the advantages that the use of XML would provide to future developments of the platform in the areas of data manipulation, transmission and storage.", } @TechReport{Garcia:2003:ASDSA, author = "Rodrigo Garc{\'i}a Garc{\'i}a and Alfred Strohmeier and Lukas Keller", title = "Automatic Serialization of Dynamic Structures in Ada", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", year = "2003", number = "IC/2003/63", month = oct, URL = "http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200363.pdf", abstract = "Serialization is the process that transforms the state of a software object into a sequence of bytes. Serialization is useful, for example, to store the value of an object in persistent memory or to send it through a network channel. Ada provides object serialization by means of the Streams package. However, default Ada serialization does not address the problem of serializing dynamic structures automatically. The streaming of an access variable in Ada flattens the value of the access variable itself and not the value of the object referenced by it. It is the responsibility of the programmer to write custom serialization routines for the lists, trees, stacks or any other dynamic structure requiring serialization. In this paper, we present an algorithm for the automatic generation of serialization subprograms for dynamic structures in Ada. We will use ASIS for analyzing the structure of the types to be serialized.", } @InProceedings{garcia:2004:IKS, author = "Rodrigo Garc{\'i}a Garc{\'i}a and Esther Gelle", booktitle = "Proceedings of the International Conference on Intelligent Knowledge Systems, Robotics and Automation, August 16-20, Assos, Turkey", title = "Modelling Industrial Plant Automation Systems Using {IEC} 61346", year = "2004", URL = "http://www.ikss.org/lecture_notes/index_lecture_note_iks-2004.htm", abstract = "The IEC 61346 standard establishes general principles for structuring the information of technical systems. This paper discusses the ideas shown in the Standard emphasizing the fact that some parts of it are ambiguous and can lead to different interpretations of the basic concepts. Consequently, we derive a concrete interpretation of the standard that tries to remove the ambiguities. By removing ambiguities the Standard can be used as the basis for developing an industrial Software platform. Automation applications built on the platform benefit from a consistent data model, which can be used to query the application and exchange data with other applications.", } @InProceedings{garcia:2004:SVG, author = "Rodrigo Garc{\'i}a Garc{\'i}a and Esther Gelle and Alfred Strohmeier", booktitle = "Proceedings of the 3rd Annual Conference on Scalable Vector Graphics, September 7-10, Tokyo, Japan", title = "{SVG} for {SCADA} Applications", year = "2004", URL = "http://www.svgopen.org/2004/papers/SVGforSCADA", abstract = "In this paper, we study the applicability of SVG to SCADA (Supervisory Control and Data Acquisition) systems. One of the main purposes of a SCADA application is to provide an operator with the graphical interface needed to monitor and control the production processes in an industrial plant. Currently, most SCADA systems are based on bitmap graphics or proprietary vector formats to build the operator's interface. We investigate here the advantages and some of the emerging technical challenges of using a web standard such as SVG for developing the graphical components of a SCADA system and how to connect these components to the data sources that determine their appearance.", } @Article{Gauthier92, author = "Michel Gauthier", journal = "SIGPLAN Notices", month = apr, number = "4", pages = "37--40", title = "Noised or filtered programming ? (about enumerated types)", volume = "27", year = "1992", } @Article{Gauthier92a, author = "Michel Gauthier", journal = "AdaUser", month = mar, number = "1", pages = "34--43", title = "Predefined types considered harmful", volume = "XIII", year = "1992", } @InProceedings{Genillard86, author = "Christian Genillard and Norbert Ebel", booktitle = "Ada, Managing the Transition", editor = "Wallis P. J. L.", pages = "125--135", publisher = "Cambridge University Press", title = "Reusability of Software Components in the building of Syntax-Driven Software Tools written in Ada", year = "1986", keywords = "Ada", } @InProceedings{Genillard88, author = "Christian Genillard and Alfred Strohmeier", booktitle = "SIGPLAN Notices", number = "10", pages = "103--122", title = "Gramol: {A} grammar Description Language for Lexical and Syntactic Parsers", volume = "23", year = "1988", keywords = "Ada", } @InProceedings{Genillard89, author = "Christian Genillard and Norbert Ebel and Alfred Strohmeier", booktitle = "AdaLetters", number = "2", pages = "62--71", title = "Rationale for the Design of Reusable Abstract Data Types implemented in Ada", volume = "9", year = "1989", keywords = "Ada", abstract = "Reusable abstract data types may be implemented in Ada as generic packages. First we will state some design goals, then outline our solution, address its rationale and show why alternatives have to be rejected. The presented design rules have already been applied successfully for implementing a rather wide set of abstract data types.", } @Article{Genillard91, author = "Christian Genillard", journal = "AdaLetters", month = feb, number = "1", pages = "52--69", title = "Syntax_Analyser_{G}: {A} Multi-Language Syntax Analysis Package", volume = "XI", year = "1991", keywords = "Ada", } @InProceedings{Grize84, author = "Fran{\,c}ois Grize and Alfred Strohmeier", booktitle = "Operational Research'84, North-Holland", pages = "891--900", title = "{SARTEX}: {A} Graph Manipulation Language", year = "1984", } @TechReport{Guelfi95, author = "Nicolas Guelfi", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", month = jan, number = "DI/95/99", title = "Hierarchical Algebraic Nets", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/guelfiReport95-99.ps.gz", abstract = "Hierarchical Algebraic Nets (HANs ) presented here introduce a new algebraic net class which inherits from a five years experience on algebraic nets corresponding to the work done on the specification formalism CO-OPN [BG 91a]. These works has led to a complete specification formalim supported by a software environnement called SANDS [BFR 93] but who makes obsolete the initial theoretical work done in [BG 91a]. The hierarchical algebraic nets are defined : to answer to the major critics which can be made on CO-OPN and to introduce a specification formalism as a new structured algebraic net class. New features such as the recursive calls of methods or the local association of the data structures specification are some of the major new concepts. The paper essentially defines the syntax and the semantics of the hierarchical algebraic nets in a similar way as it is done for hierachical algebraic specifications which simplify the whole complexity of the formalism. The last part shows how HANs can be used in order to cover the lack of formal semantics to SANDS specifications and what can be the possible evolutions or use of such formalism. For example, HANs have shown their semantical utility through their use to give a formal semantics to a purely Object Oriented evolution of CO-OPN [BB 94a].

Keywords : Higher-level net models, specification, structured specification, semantics, algebraic abstract data types.", } @InProceedings{Guelfi96, author = "Nicolas Guelfi and Fabrice Mourlin", booktitle = "Colloquium FORMAL METHODS FOR CONCURRENCY, Muenchen, Germany, July 5 1996", editor = "Gesellschaft fuer Informatik", organization = "Institut fuer Informatik, Ludwig-Maximilians-Universitaet", title = "Formal Treatment of Data Structures in Concurrency Models", year = "1996", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/guelfiFMFC_96.ps.gz", abstract = "The problem of real size system modelling with basic concurrency models like transition systems, Petri nets or process algebra is that there is no possibility to model easily the system data structures. Algebraic specification is a method well adapted to this last aspect and has been chosen to be mixed with the two major concurrency models which are process algebra and Petri nets. We present in this paper how the 'mixing' is done and what are the consequences concerning concurrency through the case of Lotos and Algebraic nets. Our approach is built on a simple case study which is given in several versions with both formalisms. The first one uses the basic models without algebraic specifications to highlight the data structures modelling problem. The second one is used to present how algebraic specifications are integrated in each concurrency model and the last one focuses on the concurrency aspects. Several propositions are then given in order to enhance the mixing of algebraic specifications and Petri nets or process algebra.

Keywords : Petri net, process algebra, data types, algebraic specification, algebraic net, Lotos.", } @Article{Guelfi:97:COOFM, author = "N. Guelfi and O. Biberstein and D. Buchs and E. Canver and M-C. Gaudel and F. von Henke and D. Schwier", address = "Department of Computing Science", booktitle = "Technical Report of the Esprit Long Term Research Project 20072 ``Design For Validation''", institution = "University of Newcastle Upon Tyne", title = "Comparison of Object-Oriented Formal Methods", year = "1997", URL = "http://lgl.epfl.ch/pub/Papers/guelfi_coofm.ps.gz", } @Article{Guelfi:97:HAN, author = "Nicolas Guelfi", journal = "IEEE International Conference on Systems, Man and Cybernetics", month = oct, note = "Orlando-Florida", pages = "1722--1728", title = "Hierarchical Algebraic Nets", year = "1997", URL = "http://lgl.epfl.ch/pub/Papers/guelfi-smc97.ps", abstract = "This paper presents a specifications formalism, Hierarchical Algebraic Nets (HAN), which allows the specification and design of heterogeneous concurrent distributed systems using hierarchical descriptions based on algebraic specifications and Petri nets. A simple example is firstly given in order to present the graphical representation associated to HAN, then the abstract syntax and formal semantics are described. The interesting aspects of HAN for reactive distributed systems development are listed and the link between the HAN model to the SANDS development environment is summarised.", } @InProceedings{Haden88, author = "Steven Haden", booktitle = "Conf{\'e}rence Internationale Francophone Ada, Bruxelles, December 13-14 1988", editor = "AFCET", pages = "1--9", title = "Lexical_Analyser_{G}: Un paquetage d'analyse lexicale multi-langages", year = "1988", keywords = "Ada", ISBN = "2-90367753-0", } @Article{Haden90, author = "Steven Haden", journal = "AdaLetters", month = feb, number = "1", pages = "131--139", title = "Lexical_Analyser_{G}: {A} Multi-Language Lexical Analysis Package", volume = "X", year = "1990", keywords = "Ada", } @InProceedings{Harbour:98:PAIR, author = "M. Gonz{\'a}lez Harbour and R. G{\'o}mez Somarriba and A. Strohmeier and J. Jacot", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'98, Uppsala, Sweden, June 2-8 1998", editor = "Lars Asplund", note = "Also available as Technical Report EPFL-DI No 98/269", pages = "151--162", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", volume = "1411", title = "{PINROB}: {A} Portable {API} for Industrial Robots", year = "1998", keywords = "Ada, Testing, ASISRobot, Manufacturing Cell, Production Cell, Robot", URL = "http://lgl.epfl.ch/pub/Papers/gonz-pinrob98.ps", abstract = "This paper describes a software architecture for industrial robots used in manufacturing equipment. In order to achieve software portability, the application software is dissociated from the low-level robot controller software. The interaction between these two pieces of software is achieved by a portable application programming interface (API) for industrial robots. We discuss the requirements for such an API, and propose a design called PINROB.", } @InProceedings{Harbour:98:PS, author = "M. Gonz{\'a}lez Harbour and A. Strohmeier", booktitle = "Internal report", month = feb, title = "{PINROB} Specification. Version 2.1", year = "1998", } @InProceedings{Harbour:98:RPAIR, author = "M. Gonz{\'a}lez Harbour and A. Strohmeier", booktitle = "Internal report", month = feb, title = "Requirements for a Portable {API} for Industrial Robots. Version 2.1", year = "1998", } %% @INPROCEEDINGS{Hurzeler:01:ECDSMEVCC, %% AUTHOR = {David Hurzeler and Didier Buchs}, %% TITLE = {An Example in COOPN of Dependable System Modelling for Easier Verification : The Crossroad Controller}, %% BOOKTITLE = {Intl. Workshop on Concurrency in Dependable Computing, Newcastle}, %% PAGES = {69 - 78}, %% MONTH = {June}, %% YEAR = {2001}, %% } } @InProceedings{Hurzeler:02:COFNSR, author = "David Hurzeler and Didier Buchs", booktitle = "Ph.D. Workshop at FMOODS (CD-ROM)", title = "A Component-Oriented Formalism for new Subtype Relations", month = mar, year = "2002", keywords = "Conform", } @PhdThesis{Hurzeler:04:PHD, author = "David Hurzeler", school = "School of Computer \& Communications Sciences, Ecole Polytechnique F{\'e}d{\'e}rale de Lausanne (EPFL), Switzerland", number = "3131", title = "Flexible subtyping relations for component-oriented formalisms and their verification", year = "2004", keywords = "OOMethod, Conform, PhD", } @TechReport{Hulaas95, author = "Jarle G. Hulaas", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/95/155", title = "Introduction to Object-Oriented Mixed Prototyping with Algebraic Specifications", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/hulaas-Intro-OOMP.ps", abstract = "Automatic implementations of abstract data types (ADT) from algebraic specifications are currently all done in either functional, logical or purely imperative languages. In this paper we show how object-oriented languages naturally facilitate this job, and why they provide better flexibility in the process of progressively replacing the automatically generated code by more efficient hand-written code, a process we call object-oriented mixed prototyping (OOMP).", } @InProceedings{Hulaas:01:FDMACAPN, author = "Jarle G. Hulaas and Alex Villaz{\'{o}}n and Didier Buchs", title = "Formal Development of Mobile Agents with Coordinated Algebraic Petri Nets", booktitle = "SCI'01 session on Formal Modeling of Agents, Orlando, Florida, USA", publisher = "IEEE Computer Society Press", pages = "3235--3247", month = jul, year = "2001", } @InProceedings{Hulaas:01:ECAPNFMMA, author = "Jarle G. Hulaas and Didier Buchs", title = "An Experiment with Coordinated Algebraic Petri Nets as Formalism for Modeling Mobile Agents", booktitle = "In Proceedings of the First Workshop on Modelling of Objects, Components, and Agents (MOCA'01), Aarhus, Denmark, August 27--28, 2001, Daniel Moldt (Ed.), DAIMI PB-553, Department of Computer Science, University of Aarhus", pages = "73--84", month = aug, year = "2001", ISSN = "0105-8517", } @InProceedings{Hulaas96a, author = "Jarle G. Hulaas", booktitle = "Modelling and Simulation 1996, Budapest, Hungary, June 2-6 1996", editor = "A. Javor and A. Lehmann and I. Molnar", organization = "10th European Simulation Multiconference ESM96", pages = "348--352", publisher = "Society for Computer Simulation International", title = "An Evolutive Distributed Algebraic Petri Nets Simulator", year = "1996", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/hulaas-ESM96.ps", abstract = "This paper presents a new prototyping methodology for large concurrent systems modelled by the means of hierarchical algebraic Petri nets. First, the source specifications are automatically translated into a main-stream object-oriented language, thus providing a portable and high-level initial implementation. The generated class hierarchy is designed so that the developer may then independantly derive new sub-classes in order to make the simulator more efficient or to add functionalities that could not be specified with Petri nets. This prototyping process is performed incrementally in order to safely validate the modifications against the semantics of the specification. The resulting simulator can finally be considered as the end-user implementation of the specified software system. The originality of our scheme is that we exploit object-oriented programming techniques in the implementation of formal specifications in order to gain flexibility in the development process, and simultaneously to harness this newly acquired freedom.", } @PhdThesis{Hulaas97, author = "Jarle G. Hulaas", address = "Departement d'Informatique, 1015 Lausanne, Switzerland", month = jun, school = "Ecole Polytechnique F\'ed\'erale de Lausanne", number = "1664", title = "An Incremental Prototyping Methodology for Distributed Systems Based on Formal Specifications", year = "1997", keywords = "Conform, OOMethod", URL = "http://lgl.epfl.ch/pub/Papers/hulaas-thesis.pdf", abstract = "This thesis presents a new incremental prototyping methodology for formally specified distributed systems. The objective of this methodology is to fill the gap which currently exists between the phase where a specification is simulated, generally using some sequential logical inference tool, and the phase where the modeled system has a reliable, efficient and maintainable distributed implementation in a main-stream object-oriented programming language. This objective is realized by application of a methodology we call Mixed Prototyping with Object-Orientation (in short, OOMP). This is an extension of an existing approach, namely Mixed Prototyping, that we have adapted to the object-oriented paradigm, of which we exploit the flexibility and inherent capability of modeling abstract entities.

The OOMP process proceeds as follows. First, the source specifications are automatically translated into a class-based object-oriented language, thus providing a portable and high-level initial implementation. The generated class hierarchy is designed so that the developer may independently derive new sub-classes in order to make the prototype more efficient or to add functionalities that could not be specified with the given formalism. This prototyping process is performed incrementally in order to safely validate the modifications against the semantics of the specification. The resulting prototype can finally be considered as the end-user implementation of the specified software.

The originality of our approach is that we exploit object-oriented programming techniques in the implementation of formal specifications in order to gain flexibility in the development process. Simultaneously, the object paradigm gives the means to harness this newly acquired freedom by allowing automatic generation of test routines which verify the conformance of the hand-written code with respect to the specifications.

We demonstrate the generality of our prototyping scheme by applying it to a distributed collaborative diary program within the frame of CO-OPN (Concurrent Object-Oriented Petri Nets), a very powerful specification formalism which allows expressing concurrent and non-deterministic behaviours, and which provides structuring facilities such as modularity, encapsulation and genericity.

An important effort has also been accomplished in the development or adaptation of distributed algorithms for cooperative symbolic resolution. These algorithms are used in the run-time support of the generated prototypes.", } @InProceedings{Hulaas:2003:HP, author = "Jarle G. Hulaas and Dimitri Kalas", booktitle = "HP OpenView University Association 10th Workshop, University of Geneva, Switzerland, July 6-9", year = "2003", title = "Monitoring of Resource Consumption in Java-based Application Servers", keywords = "ResMan, JRAF2, J-RAF2, Java", URL = "http://lgl.epfl.ch/pub/Papers/hulaas-hpovua2003.pdf", abstract = "To realize dependable and profitable information and communication systems, computing resources (CPU, memory, network bandwidth) should be taken into account to a much wider extent than they are today. E-commerce infrastructure, such as application servers, are especially concerned by this issue. This paper shows how an existing Java-based code transformation framework was extended to enable transparent monitoring of resource consumption within the open source Apache Tomcat servlet engine.", } @InProceedings{Hulaas:2004:PEPM, title = "Program Transformations for Portable {CPU} Accounting and Control in {Java}", author = "Jarle Hulaas and Walter Binder", booktitle = "Proceedings of PEPM'04 (2004 ACM SIGPLAN Symposium on Partial Evaluation \& Program Manipulation)", pages = "169--177", address = "Verona, Italy", year = "2004", month = aug # " 24--25", keywords = "ResMan, JRAF2, J-RAF2, Java", URL = "http://www.jraf2.org/", } @InProceedings{Hulaas:2004:GridSecurity, title = "Enhancing {J}ava Grid Computing Security with Resource Control", author = "Jarle Hulaas and Walter Binder and Giovanna Di Marzo Serugendo", booktitle = "International Conference on Grid Services Engineering and Management (GSEM 2004)", address = "Erfurt, Germany", year = "2004", month = sep, keywords = "ResMan, JRAF2, J-RAF2, Java", URL = "http://www.jraf2.org/", } @Article{Jean90, author = "Catherine Jean and Alfred Strohmeier", journal = "Software Engineering Notes", month = oct, number = "5", pages = "44--49", title = "An experience in teaching {OOD} for Ada Software", volume = "15", year = "1990", keywords = "Ada,OOMethod", abstract = "This report relates an experience in teaching an object-oriented method for designing software implemented in Ada.", } @InProceedings{Jean93, author = "Catherine Jean-Pousin and St{\'e}phane Barbey", booktitle = "Software Engineering & its Applications 1993, Paris, France, November 15-19 1993", note = "Also available as Technical Report EPFL-DI No 93/31", organization = "EC2", pages = "149--158", title = "Implementing Associations with {A}da", year = "1993", keywords = "Paper, Ada", URL = "http://lgl.epfl.ch/pub/Papers/jean-implementing_associations-TR93-31.ps", ISBN = "2-910085-00-7", abstract = "Object-oriented programming is a mechanism used to construct modular systems made of reusable components. These systems would be of little use if the objects were all unrelated. This is the reason why the relationships between the objects are one of the major factors in the development of software. Unfortunately, of all the relationships between the objects, the associations are often left aside. Therefore, we investigated a way to implement associations, using a language that does not provide a built-in construct for that purpose.

We first give a definition of the associations and then an implementation-oriented taxonomy of the different kinds of associations. Then, according to this taxonomy, we propose a way to implement the associations using Ada 83. We also show, for a particular case, how Ada 9X can be used. The solutions proposed allow to translate all the semantics attached to associations while preserving the integrity of the system to develop.", } @PhdThesis{Jean93a, author = "Catherine Jean-Pousin", month = jun, school = "Ecole polytechnique f{\'e}d{\'e}rale de Lausanne", number = "1154", title = "Contribution {\`a} une m{\'e}thode de conception par objets pour des logiciels Ada", year = "1993", keywords = "Ada,OOMethod", abstract = "This work proposes an object oriented design method for Ada software. The mehod is mainly intended for software engineers who are not experts in object oriented design, in the context of a course as well as in the context of a firm wanting to acquire experience in object oriented design. To meet this objective, the method is simple and easy to learn. It also minimizes the risks of errors and it is possible to use it without resorting to complex tools in order to easily develop a small application.

We will start by giving the basic concepts used in the method. Then we will describe the phases of the method. Finally, we will apply the method on a small example: a search tool for documents.

The first phase is the software requirements phase in which the functions offered by the software are analysed and described in a software requirements specification. The second phase is the architectural design in which the components of the architecture are identified. The components identified are the objects and classes of the application, their structures, the associations between them, their attributes and the services they export. These components are described in an architectural design document.

The third phase is the detailed design phase in which the components identified during the architectural design phase are described in detail. Among other things, the Ada mechanisms used to code the components are given. The results of this phase are a detailed design document and the Ada specifications of the objects and classes. Finally, the last phase is the implementation phase whose results are the listings of the code implementing objects and classes identified during the second phase.", } @Article{Jean95, author = "Catherine Jean and Fr{\'e}d{\'e}ric Pousin", journal = "Revue des Sciences et Techniques de la Conception - Journal of Design Sciences and Technology", number = "2", pages = "35--52", title = "Objets informatiques et conception architecturale", volume = "4", year = "1995", ISSN = "1270-0517", } @InProceedings{Kande:2000:TUPSA, author = "Mohamed Mancona Kand{\'e} and Alfred Strohmeier", booktitle = "{UML'2000} - The {U}nified {M}odeling {L}anguage: Advancing the Standard, Third International Conference, York, UK, October 2-6, 2000", editor = "Stuart Kent and Andy Evans", note = "Also available as Technical Report EPFL-DI No 00/332", volume = "1939", pages = "513--527", series = "LNCS (Lecture Notes in Computer Science)", title = "Towards a {UML} Profile for Software Architecture", year = "2000", URL = "http://lgl.epfl.ch/pub/Papers/kande-2000-tupsa.pdf", abstract = "To formally describe architectures of software systems, specific languages called Architecture Description Languages (ADLs) have been developed by academic institutions and research labs. However, more and more research and industrial projects are using the standard Unified Modeling Language (UML) for representing software architectures of systems. In this paper, we focus on how to extend the UML by incorporating some key abstractions found in current ADLs, such as connectors, components and configurations, and how the UML can be used for modeling architectural viewpoints. Our approach is demonstrated by the software architecture of a video surveillance system. It is therefore the purpose of the paper to show that a UML profile for software architecture is needed.", } @InProceedings{Kande:2000:ORMSCSA, author = "Mohamed Mancona Kand{\'e} and Alfred Strohmeier", title = "On The Role of Multi-Dimensional Separation of Concerns in Software Architecture", URL = "http://lgl.epfl.ch/pub/Papers/kande-2000-ormscsa.pdf", booktitle = "OOPSLA'2000 Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Minneapolis, Minnesota, USA, October 2000", note = "Also available as Technical Report EPFL-DI No 00/345", year = "2000", abstract = "In this paper we study the need for multidimensional separation of concerns in architecture representations, including architecture-centered software development. We present a case study of a simple video surveillance system, describe its software architecture using an ADL called Wright, and we discuss the pragmatics and problems in the use of ADLs in general, compared to a concern-based approach to software architecture description. Our position is that current ADLs provide architectural abstractions that need to be extended to achieve the major goals of software architecture. Furthermore, in order to cover all concerns of importance in a software architecture description, software architects must be able to separate various dimensions of concern and consider the system from multiple perspectives simultaneously.", } @InProceedings{Kande:2001:MCCUSC, author = "Mohamed Mancona Kand{\'e} and Alfred Strohmeier", title = "Modeling Crosscutting Concerns using Software Connectors", URL = "http://lgl.epfl.ch/pub/Papers/kande-2001-mccusc.pdf", booktitle = "OOPSLA'2001 Workshop on Advanced Separation of Concerns, Tampa, Florida, USA, October 2001", year = "2001", } @InProceedings{Kande:2002:FATUABUA, author = "Mohamed Mancona Kand{\'e} and J{\"o}rg Kienzle and Alfred Strohmeier", title = "From {AOP} to {UML} - {A} Bottom-Up Approach", URL = "http://lgl.epfl.ch/pub/Papers/kande-2002-fatu.pdf", booktitle = "AOSD'2002 Workshop on Aspect-Oriented Modeling with UML, Enschede, The Netherlands, April 2002", year = "2002", abstract = "This position paper takes a bottom-up approach that analyzes the suitability of UML for modeling aspect-oriented software, and compares it with the UML support for modeling object-oriented software. We first introduce the basic concepts of AspectJ, a state-of-the-art aspect-oriented programming language, and then take a na{\"i}ve approach using standard UML, as it is, for modeling these concepts. As the limitations of current UML become apparent, we propose some extensions to UML to overcome these limitations.", } @Article{Kande:2002:BGBIADLU, author = "Mohamed M. Kand{\'e} and Valentin Crettaz and Alfred Strohmeier and Shane Sendall", title = "Bridging the Gap between {IEEE} 1471, Architecture Description Languages and {UML}", journal = "Journal on Software and Systems Modeling", editor = "Robert France and Bernhard Rumpe", publisher = "Springer Verlag", volume = "1", number = "2", pages = "113--129", ISSN = "1619-1366 (Printed version)", year = "2002", note = "ISSN: 1619-1374 (Electronic version). Also available as Technical Report IC/2002/59, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", URL = "http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200259.pdf", } @InProceedings{Kande:2002:FATUTAOAMA, author = "Mohamed Mancona Kand{\'e} and J{\"o}rg Kienzle and Alfred Strohmeier", title = "From {AOP} to {UML}: Towards an Aspect-Oriented Architectural Modeling Approach", booktitle = "the Second International Workshop on Aspect-Oriented Modeling with UML, in conjunction with the Fifth International Conference on the Unified Modeling Language - the Language and its Applications (UML2002), September 30 - October 4, 2002, Dresden, Germany", year = "2002", note = "Also available as Technical Report IC/2002/58, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", URL = "http://ic2.epfl.ch/publications/documents/IC_TECH_REPORT_200258.pdf", abstract = "Capturing concerns that crosscut the boundaries of multiple components in software architecture descriptions is problematic. Standard description languages, such as UML, do not provide adequate means to understand and modularize such concerns, but aspect-oriented programming techniques do. This paper explores and analyzes the suitability of UML for aspect-oriented architectural modeling. It takes a bottom-up approach, starting from the code level to the level of software architecture description, via aspect-oriented design, using standard UML.", } @PhdThesis{Kande03, author = "Mohamed M. Kand{\'e}", school = "Ecole polytechnique f{\'e}d{\'e}rale de Lausanne", number = "2796", title = "A Concern-Oriented Approach to Software Architecture", year = "2003", URL = "http://lgl.epfl.ch/pub/Papers/kande-thesis.pdf", abstract = "A major cause of many complications in the field of software architectures is the lack of appropriate abstractions for separating, combining and encapsulating concerns of various kinds in architectural descriptions.

Architectures of most complex software-intensive systems involve concerns that inherently crosscut the natural boundaries of the elements composing the architecture descriptions. Crosscutting concerns intersect the common modularity of systems as prescribed by their architecture descriptions, by traversing both the components and connectors, i.e., the relationships among the components. Crosscutting concerns are critical aspects of many architectural problems. However, architectural descriptions written in special-purpose languages (ADLs) like Wright, Darwin, Rapide and Acme should support descriptions of multiple structures, which include diagrams, models and views, that intentionally address different kinds of concerns. ADLs should show how various concerns affect each other in architectural designs; they should also allow one to identify, analyze and elaborate architectural concerns that cut across several software components, such as transactions, security, load balancing, synchronization, reuse, customization, scalability, etc.; they should, but they do not.

This dissertation presents a new approach to software architecture that is suitable for supporting concern-oriented development and documentation of architectures for software-intensive systems. This approach allows for creating and documenting a multidimensional software structure that is referred to as concern-oriented software architecture; it provides new mechanisms for encapsulating individual concerns into independent architectural constructs. The ultimate goal of this new approach is to provide support for achieving design by concerns all through the development and description of software architectures. Moving towards this goal, we present a particular concern-oriented architectural framework called Perspectival Concern-Spaces (PCS). The PCS Framework offers a flexible and extensible means a) for supporting advanced separation of concerns in architectural design, and in the construction and evolution of software-intensive systems; and b) for filling the gap between architectural descriptions and modern software development artifacts.

To show the feasibility of the proposed approach, we provide new modeling techniques that are used to describe and apply an aspect-oriented architectural pattern, called the On-demand Remodularization pattern. We give several examples of how the PCS Framework can be used to integrate concern-oriented architectural documentations with mainstream software development artifacts.", } @InProceedings{Kempe94, author = "Magnus Kempe and St{\'e}phane Barbey and Alfred Strohmeier", booktitle = "TRI-Ada'94 Tutorials, Baltimore, Maryland, USA, 1994", note = "Also available as Technical Report EPFL-DI No 96/175", pages = "373--467", publisher = "ACM Press", title = "Advanced Object-Oriented Programming with {A}da 9{X}", year = "1994", keywords = "Tutorial, Ada", abstract = "Ada 9X -the revised definition of the Ada programming language- provides support for object-oriented programming. This course offers a comprehensive view of object-oriented programming with Ada; it is divided in four parts. First, we examine the object-oriented features of the language, their use, and how they fit into Ada's strong type system and genericity mechanisms. Basic object-oriented mechanisms are covered: extension, inheritance, and polymorphism. Second, we show how to integrate these mechanisms into good programming practices; topics include incremental programming, heterogeneous data structures, mixin and sibling inheritance. We then give a complete application to demonstrate the proper use of these features in order to design for reuse, and to transition smoothly from Ada 83 to Ada 9X. Finally, we compare standard object-oriented idioms in Ada vs. major object-oriented languages (e.g. C++, Smalltalk, Eiffel).", } @InProceedings{Kempe94a, author = "Magnus Kempe", booktitle = "TRI-Ada'94, Baltimore, Maryland, USA, 1994", editor = "B. Charles and Jr. Engle", note = "Also available as Technical Report EPFL-DI No 94/66", pages = "141--152", publisher = "ACM Press", title = "Abstract Data Types Are Under Full Control with Ada 9{X}", year = "1994", keywords = "Ada", URL = "http://lgl.epfl.ch/pub/Papers/kempe-ADT_Control-TR94-66.ps", abstract = "Ada 83 did not provide enough control on the creation, assignment, and destruction of objects of user-defined types. This lack of control restricted type composition and prevented the full exercise of information hiding on Abstract Data Types. Ada 9X brings new mechanisms supporting the full control of Abstract Data Types, powerful type composition, and more extensive information hiding. With better control of Abstract Data Types, Ada code will be easier to write, understand, and reuse. Thus, applications written in Ada 9X will be safer.

Keywords: Abstract data types, Information hiding, Ada 9X, Object initialization, User-defined Assignment, Object finalization, Memory Reclamation, Reference counting, Type composition.", } @InProceedings{Kempe94b, author = "Magnus Kempe", booktitle = "TRI-Ada'94 Tutorial {"}Advanced Object-Oriented Programming with Ada 9X{"}, Baltimore, Maryland, USA, 1994", publisher = "ACM Press", title = "A Framework for The Blackboard Model", year = "1994", keywords = "Ada", URL = "http://lgl.epfl.ch/pub/Papers/kempe-Blackboard-Overview.ps", abstract = "The blackboard model is a flexible problem-solving approach where the data and knowledge rules are strictly separated. The data generated during a problem resolution, from a problem statement to a solution through various stages of inferences, is centrally stored in many forms of objects. The knowledge rules are divided into independent experts; each expert contributes to the resolution with its knowledge of how to search for a (partial) solution of (parts of) the problem.

A blackboard system is composed of three main components: the blackboard, which is a database containing data and hypotheses; knowledge sources, which examine the state of the blackboard and create new data or hypotheses; and a control mechanism, which regulates the incremental hypothesizing and testing.

A blackboard application is a particular problem-solving system developed on top of a blackboard framework. A blackboard framework is an architecture, or skeleton, embodying a blackboard model. This paper describes the architecture of a blackboard framework (or {"}pattern{"}), in order to illustrate advanced object-oriented concepts in Ada 95.", } @InProceedings{Kempe95, author = "Magnus Kempe", booktitle = "TRI-Ada'95, Anaheim, California, USA, 1995", publisher = "ACM Press", title = "The Composition of Abstractions: Evolution of Software Component Design with Ada 95", year = "1995", keywords = "Ada", } @InProceedings{Kempe95a, author = "Magnus Kempe", booktitle = "Ada-Europe'95, Frankfurt, Germany, October 2-6 1995", editor = "Toussaint", pages = "71--80", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", volume = "1031", title = "Heterogeneous Data Structures and Cross-Classification of Objects with Ada 95", year = "1995", keywords = "Ada", } @PhdThesis{kienzle:2001:OMTTMOOP, author = "J{\"o}rg Kienzle", address = "Software Engineering Laboratory, Computer Science Departement, EPFL, 1015 Lausanne, Switzerland", school = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "2393", title = "Open Multithreaded Transactions: {A} Transaction Model for Concurrent Object-Oriented Programming", year = "2001", keywords = "Concurrency, Fault Tolerance, Exceptions, Optima, PhD", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-thesis.pdf", abstract = "To read the abstract, please go to my PhD home page.", keywords = "omtt, fault tolerance, exceptions, optima, framework, ada, auction", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-thesis.pdf", } @Article{Kienzle:02:FBDPPPOOPL, author = "J{\"o}rg Kienzle and Alexander Romanovsky and Alfred Strohmeier", title = "A Framework Based on Design Patterns for Providing Persistence in Object-Oriented Programming Languages", year = "2002", journal = "IEE Software Engineering Journal", volume = "149", number = "3", pages = "77--85", } @InProceedings{Rybin:2002:ADBPPA, author = "Sergey Rybin and Alfred Strohmeier", booktitle = "Reliable Software Technologies - Ada-Europe 2002", series = "LNCS (Lecture Notes in Computer Science)", volume = "2361", publisher = "Springer Verlag", pages = "257--268", editor = "Johann Blieberger and Alfred Strohmeier", year = "2002", title = "About the Difficulties of Building a Pretty-Printer for Ada", } @Article{Kienzle:99:IOOPPOA, author = "Andy J. Wellings and Bob Johnson and Bo Sanden and J{\"o}rg Kienzle and Thomas Wolf and Stephen Michell", title = "Integrating Object-Oriented Programming and Protected Objects in Ada 95", year = "2000", journal = "ACM Transactions On Programming Languages and Systems", publisher = "ACM Press", volume = "22", number = "3", pages = "506--539", note = "Also available as Technical Report EPFL-DI No 99/321", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-Toplas.pdf", abstract = "Integrating concurrent and object-oriented programming as been an active research topic since the late 1980s. There is now a plethora of methods for achieving this integration. The majority of approaches have taken a sequential object-oriented language and made it concurrent. A few approaches have taken a concurrent language and made it object-oriented. The most important of this latter case is the Ada 95 language which is an extension to the object-based concurrent programming language Ada 83. Arguably, Ada 95 does not fully integrate its models of concurrency and object-oriented programming. For example. neither tasks nor protected objects are extensible. This paper discusses ways in which protected objects can be made more extensible.", } @InProceedings{kienzle:2000:OMTKTEC, author = "J{\"o}rg Kienzle and Alexander Romanovsky and Alfred Strohmeier", booktitle = "6th International Workshop on Object-Oriented Real-Time Dependable Systems, Roma, Italy, 8 - 10 January, 2001", publisher = "IEEE Computer Society Press", pages = "197--205", address = "Los Alamitos, California, USA", year = "2001", title = "Open Multithreaded Transactions: Keeping Threads and Exceptions under Control", note = "Also available as Technical Report EPFL 2001/357", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-WORDS01.pdf", abstract = "Although transactional models have proved to be very useful for numerous applications, the development of new models to reflect the ever-increasing complexity and diversity of modern applications is a very active area of research. Analysis of the existing models of multithreaded transactions shows that they either give too much freedom to threads and do not control their participation in transactions, or unnecessarily restrict the computational model by assuming that only one thread can enter a transaction. Another important issue, which many models do not address properly, is providing adequate exception handling features. In this paper a new model of multithreaded transactions is proposed. Its detailed description is given, including rules of thread behaviour when transactions start, commit and abort, and rules of exception raising, propagation and handling. This model is supported by enhanced error detection techniques to allow for earlier error detection and for localised recovery. General approaches to implementing transaction support are discussed and a detailed description of an Ada implementation is given. Special attention is paid to outlining typical applications for which this model is suitable and to comparing it with several known approaches (Coordinated Atomic actions, CORBA, and Argus).", keywords = "omtt, fault tolerance, transactions, multithreaded, exceptions", } @InProceedings{kienzle:2002:AOPDIMS, author = "J{\"o}rg Kienzle and Rachid Guerraoui", booktitle = "Proceedings of the 16th European Conference on Object-Oriented Programming (ECOOP'2002), Malaga, Spain, June 10-14, 2002", title = "{AOP} - Does It Make Sense? The Case of Concurrency and Failures", editor = "Boris Magnusson", series = "LNCS (Lecture Notes in Computer Science)", volume = "2374", pages = "37--61", publisher = "Springer Verlag", year = "2002", note = "Also available as Technical Report IC/2002/16, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-ECOOP2002-aop.pdf", abstract = "Concurrency and failures are fundamental problems in distributed computing. One likes to think that the mechanisms needed to address these problems can be separated from the rest of the distributed application: in modern words, these mechanisms could be aspectized. Does this however make sense? This paper relates an experience that conveys our initial and indeed biased intuition that the answer is in general no. Except for simple academic examples, it is hard and even potentially dangerous to separate concurrency control and failure management from the actual application. We point out the very facts that (1) an aspect-oriented language can, pretty much like a macro language, be beneficial for code factorization (but should be reserved to experienced programmers), and (2) concurrency and failures are particularly hard to aspectize because they are usually part of the phenomenon that objects should simulate. They are in this sense different than other concerns, like for instance tracing, which might be easier to aspectize.", keywords = "omtt, aspect-orientation, transactions, concurrency, failures, optima", } @InProceedings{kienzle:2002:ASDUOMT, author = "J{\"o}rg Kienzle and Alexander Romanovsky and Alfred Strohmeier", booktitle = "Proceedings of the 7th International Workshop on Object-Oriented Real-Time Dependable Systems, San Diego, California, USA, January 7th - 9th, 2002", title = "Auction System Design Using Open Multithreaded Transactions", year = "2002", pages = "95--104", publisher = "IEEE Computer Society Press", address = "Los Alamitos, CA, USA", note = "Also available as Technical Report IC/2002/9, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-WORDS02.pdf", abstract = "Open Multithreaded Transactions form an advanced transaction model that provides features for controlling and structuring not only accesses to objects, as usual in transaction systems, but also threads taking part in transactions. The model allows several threads to enter the same transaction in order to perform a joint activity. It provides a flexible way of manipulating threads executing inside a transaction by allowing them to be forked and terminated, but it restricts their behavior in order to guarantee correctness of transaction nesting and isolation among transactions. In addition, transactions are exception handling contexts, and the model therefore provides forward and backward error recovery. In this paper we show that the model is indeed powerful, and that a complex application, i.e. an online auction system, can be designed and implemented in a very elegant way.", keywords = "omtt, auction, transactions, concurrency, failures", } @InProceedings{kienzle:2002:CCTD, author = "Marta Pati{\~n}o-Martinez and Ricardo Jim{\'e}nez-Peris and J{\"o}rg Kienzle and Sergio Ar{\'e}valo", booktitle = "7th International Conference on Reliable Software Technologies - Ada-Europe'2002, Vienna, Austria, June 17 - 21, 2002", title = "Concurrency Control for Transactional Drago", series = "LNCS (Lecture Notes in Computer Science)", publisher = "Springer Verlag", year = "2002", volume = "2361", pages = "309--320", abstract = "The granularity of concurrency control has a big impact on the performance of transactional systems. Concurrency control granu- larity and data granularity (data size) are usually the same. The e ect of this coupling is that if a coarse granularity is used, the overhead of data access (number of disk accesses) is reduced, but also the degree of concurrency. On the other hand, if a ne granularity is chosen to achieve a higher degree of concurrency (there are less con icts), the cost of data access is increased (each data item is accessed independently, which increases the number of disk accesses). There have been some pro- posals where data can be dynamically clustered/unclustered to increase either concurrency or data access depending on the application usage of data. However, concurrency control and data granularity remain tightly coupled. In Transactional Drago, a programming language for building distributed transactional applications, concurrency control has been un- coupled from data granularity, thus allowing to increase the degree of concurrency without degrading data access. This paper describes this approach and its implementation in Ada 95.", keywords = "transactions, locking, distributed systems, databases, omtt, optima", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-AdaEurope2002.pdf", } @InProceedings{kienzle:2001:AOEHCCCOOS, author = "Alexander Romanovksy and J{\"o}rg Kienzle", title = "Action-Oriented Exception Handling in Cooperative and Competitive Object-Oriented Systems", booktitle = "Advances in Exception Handling Techniques", editor = "A. Romanovsky and C. Dony and J. L. Knudsen and A. Tripathi", series = "LNCS (Lecture Notes in Computer Science)", volume = "2022", year = "2001", publisher = "Springer Verlag", pages = "147--164", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-Action-oriented.pdf", note = "Also available as Technical Report EPFL-DI No 00/346", abstract = "The chief aim of this survey is to discuss exception handling models which have been developed for concurrent object systems. In conducting this discussion we rely on the following fundamental principles: exception handling should be associated with structuring techniques; concurrent systems require exception handling which is different from that used in sequential systems; concurrent systems are best structured out of (nested) actions; atomicity of actions is crucial for developing complex systems. In this survey we adhere to the well-known classification of concurrent systems, developed in the 70s by C.A.R. Hoare, J.J. Horning and B. Randell, into cooperative, competitive and disjoint ones. Competitive systems are structured using atomic transactions. Atomic actions are used for structuring cooperative systems. Complex systems in which components can compete and cooperate are structured using Coordinated Atomic actions. The focus of the survey is on outlining models and schemes which combine these action-based structuring approaches with exception handling. In conclusion we emphasise that exception handling models should be adequate to the system development paradigm and structuring approaches used.", keywords = "transactions, multithreaded, concurrent, exceptions", } @InProceedings{kienzle:2000:TSA, author = "J{\"o}rg Kienzle and Ricardo Jim{\'e}nez-Peris and Alexander Romanovsky and Marta Pati{\~n}o-Martinez", booktitle = "6th International Conference on Reliable Software Technologies - Ada-Europe'2001, Leuven, Belgium, May 14 - 18, 2001", title = "Transaction Support for Ada", series = "LNCS (Lecture Notes in Computer Science)", volume = "2043", pages = "290--304", publisher = "Springer Verlag", year = "2001", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-AdaEurope2001.pdf", note = "Also available as Technical Report EPFL-DI No 00/348", abstract = "This paper describes the transaction support framework OPTIMA and its implementation for Ada 95. First, a transaction model that fits concurrent programming languages is presented. Then the design of the framework is given. Applications from many different domains can benefit from using transactions; it is therefore important to provide means to customize the framework depending on the application requirements. This flexibility is achieved by using design patterns. Class hierarchies with classes implementing standard transactional behavior are provided, but a programmer is free to extend the hierarchies by implementing application-specific functionalities. An interface for Ada programmers is presented and its use demonstrated via a simple example.", keywords = "omtt, transactions, fault tolerance, optima, framework", } @InProceedings{xcaron:2000:OOSSBM, author = "Xavier Caron and J{\"o}rg Kienzle and Alfred Strohmeier", booktitle = "6th International Conference on Reliable Software Technologies - Ada-Europe'2001, Leuven, Belgium, May 14 - 18, 2001", title = "Object-Oriented Stable Storage Based on Mirroring", series = "LNCS (Lecture Notes in Computer Science)", volume = "2043", pages = "278--289", publisher = "Springer Verlag", year = "2001", note = "Also available as Technical Report EPFL-DI No 00/340", URL = "http://lgl.epfl.ch/pub/Papers/caron-AdaEurope2001.pdf", abstract = "Stable storage can be seen as an ideal storage medium that, given a set of failure assumptions, protects user data from corruption or loss. The integrity of the stored data must be guaranteed even in the presence of crash failures. In this paper, we show how to realize stable storage using a technique called mirroring. The main idea is to write the data to two locations instead of one, in a sequential order. If one write operation fails, the technique ensures that the other copy is in a consistent state. It may be the state that was valid before the write operation, or it may already be the new one. Of course, there must be some mechanism to determine which one is correct. The purpose of the paper is therefore to describe the mirroring algorithm, and to present a state automaton covering all possible situations that can occur in the case of crash failures. Finally, an implementation in Ada 95 is presented.", } @InProceedings{Kienzle:2001:IEOMT, author = "J{\"o}rg Kienzle and Alexander Romanovsky", title = "Implementing Exceptions in Open Multithreaded Transactions", year = "2001", booktitle = "Workshop on Exception Handling for a 21st Century Programming Language, May 14, 2001, Leuven, Belgium", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-EHWorkshop.pdf", number = "XXI(3)", pages = "57--63", year = "2001", month = sep, publisher = "ACM Press", series = "Ada Letters", keywords = "omtt, exceptions, optima, ada, implementation", abstract = "This position paper shows how Ada 95 exceptions have been used in a prototype implementation of a transaction support in order to provide more elaborate exception handling. The paper summarizes the open multithreaded transaction model, which is a transaction model suitable for concurrent programming languages, and analyzes the exception mechanism provided by the Ada 95 programming language. Different interfaces to the transaction support for the application programmer are presented, and the problems encountered during implementation of the prototype with respect to exception handling are discussed.", } @InProceedings{kienzle:2000:PRSA, author = "J{\"o}rg Kienzle and Alexander Romanovsky", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'2000, Potsdam, Germany, June 26-30, 2000", series = "Lecture Notes in Computer Science", title = "On Persistent and Reliable Streaming in Ada", year = "2000", editor = "Hubert B. Keller and Erhard Pl{\"o}derer", note = "also available as Technical Report EPFL-DI No 99/323", volume = "1845", pages = "82--95", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-AdaEurope2000.pdf", abstract = "Saving internal program data for further use is one of the most useful ideas in programming. Developing general features to provide such data saving/restoring is a very active research area. There are two application areas for such features we believe to be crucial: system fault tolerance and data persistence. Our analysis shows that the features used in these areas have a lot in common: they are to flatten data of different types and save them in a store which can be used later on. The recent revision of the Ada language standard, Ada 95, introduces a new mechanism called streams that allows structured data to be flattened. Streams are sequences of elements comprising values from possibly different types. Ada 95 allows programmers to develop their streams following the standard abstract class interface. In this paper we show how to use the stream concept for developing new features to provide internal program data saving suitable for fault tolerance and persistence. A hierarchy of different storage types, useful in different application domains, is introduced. The standard stream interface is extended, making it possible for programmers to have a better control of the way streams work by separating storage medium control from the actual stream type using the design patterns. The convenience of this new interface is demonstrated by developing a generic package allowing any non-limited object to be written into a storage device. It can be used for providing data persistence and as a state restoration feature in schemes used for tolerating software design faults.", keywords = "Persistence, Stable Storage, Object-Oriented Framework, Design Patterns, Ada", } @InProceedings{kienzle:2000:OOPPOA, author = "Andy J. Wellings and Bob Johnson and Bo Sanden and J{\"o}rg Kienzle and Thomas Wolf and Stephen Michell", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'2000, Potsdam, Germany, June 26-30, 2000", series = "Lecture Notes in Computer Science", title = "Object-Oriented Programming and Protected Objects in Ada 95", year = "2000", editor = "Hubert B. Keller and Erhard Pl{\"o}derer", note = "extended version available as Technical Report EPFL-DI No 99/321", volume = "1845", pages = "16--28", keywords = "Concurrent Object-Oriented Programming, Inheritance Anomaly, Ada 95", } @InProceedings{kienzle:2000:CTTPOMTT, author = "J{\"o}rg Kienzle and Alexander Romanovsky", booktitle = "10th International Real-Time Ada Workshop, Castillo de Magalia, Las Navas del Marques, Avila, Spain, September 18 - 22, 2000", number = "XXI(1), March 2001", pages = "67--74", year = "2001", publisher = "ACM Press", series = "Ada Letters", title = "Combining Tasking and Transactions, Part {II}: Open Multithreaded Transactions", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-IRTAW10.pdf", note = "Also available as Technical Report EPFL-DI No 00/347", abstract = "This position paper is a follow-up paper of the one presented at the last IRTAW workshop. The paper describes a model for providing transaction support for concurrent programming languages such as Ada 95. In order to achieve smooth integration, the use of the concurrency features provided by the Ada language should not be restricted inside a transaction. A transaction model that meets this requirement is presented. Tasks inside such a transaction may spawn new tasks, but also external tasks are allowed to join an ongoing transaction. A blocking commit protocol ensures that no task leaves the transaction before its outcome has been determined. Exceptions are used to inform all participants in case a transaction aborts. The design of a library that provides support for the transaction model is presented, and possible interfaces for the Ada programmer are discussed.", keywords = "omtt, fault tolerance, transactions, multithreaded, exceptions, ada", } @InProceedings{Kienzle:99:SRO, author = "J{\"o}rg Kienzle and Alfred Strohmeier", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'99, Santander, Spain, June 7-11 1999", editor = "Michael Gonzalez Harbour and Juan A. de la Puente", note = "also available as Technical Report EPFL-DI No 99/306", volume = "1622", pages = "397--411", series = "LNCS (Lecture Notes in Computer Science)", title = "Shared Recoverable Objects", year = "1999", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-AdaEurope99.ps.gz", abstract = "This document describes an implementation of recoverable objects that can be accessed concurrently. After a brief description of the possible uses of recoverable objects and after reviewing some of the new features of Ada 95 used in the implementation, the design issues are discussed and the interface of the recoverable object class is presented. An example application using multitasking demonstrates its applicability.", } @InProceedings{Kienzle:99:CTT, author = "J{\"o}rg Kienzle", booktitle = "Proceedings of the 9th International Real-Time Ada Workshop, Wakulla Springs Lodge, Tallahassee FL, USA, March 1999", number = "XIX(2), June 1999", pages = "49--53", publisher = "ACM Press", series = "Ada Letters", type = "Position Paper", title = "Combining Tasking and Transactions", year = "1999", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-IRTAW9.ps.gz", abstract = "This position paper discusses the issues in design and development of a transaction support for Ada 95. Transactions and other fault tolerance mechanisms are reviewed, and their applicability in a concurrent programming language is analyzed. Possible ways of integration are presented and implementation problems are discussed.", } @InProceedings{Kienzle97, author = "J{\"o}rg Kienzle", booktitle = "Proceedings of TRI-Ada'97, St. Louis, MO, USA, November 1997", note = "Also available as Technical Report EPFL-DI 97/243", pages = "3--9", publisher = "ACM Press", title = "Network Applications in Ada 95", year = "1997", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-TriAda97.ps.gz", abstract = "This document describes an approach to support network applications, that is client-server applications with a dynamic number of short-lived clients, within the original Ada 95 distributed systems model. The conformance of this concept with the Ada Standard is verified. An implementation based on Glade, the implementation for the GNAT compiler of Annex E of the Ada Reference Manual, is presented, highlighting the necessary modifications to the configuration language and the run-time system.", } @InProceedings{Wolf96, author = "J{\"o}rg Kienzle and Thomas Wolf and Alfred Strohmeier", booktitle = "Reliable Software Technologies - Ada-Europe'96: proceedings, Ada-Europe International Conference on Reliable Software Technologies Montreux, Switzerland, June 10-14 1996", editor = "Alfred Strohmeier", note = "Also available as Technical Report EPFL-DI No 96/173", pages = "198--210", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "Secure Communication in Distributed Ada", volume = "1088", year = "1996", keywords = "FaultTolerance", URL = "http://lgl.epfl.ch/pub/Papers/wolf-AdaEurope96.ps", abstract = "This document describes an implementation of secure communication for distributed applications in Ada 95. It explains the basics of cryptography and introduces the problem of key exchange. After a brief description of distributed systems in Ada 95, the modular structure of the implementation and the way it handles key distribution is presented.", } @TechReport{kienzle:2000:FBDPPPOOP, author = "J{\"o}rg Kienzle and Alexander Romanovsky and Alfred Strohmeier", title = "A Framework Based on Design Patterns for Providing Persistence in Object-Oriented Programming Languages", number = "DI/00/335", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", year = "2000", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-JMLC2000-Persistence.pdf", abstract = "This paper describes an approach to providing object persistence in object-oriented programming languages without modifying the run-time system or the language itself. By successively applying design patterns such as the Serializer, Factory Method, and Strategy patterns we develop an object-oriented framework for providing object persistence. The advantages of object-orientation are highlighted: structured classification through class-hierarchies, extensibility and promotion of reuse. The framework clearly separates persistence control from storage control. A hierarchy of different storage types, useful in different application domains, is introduced. The framework does not rely on any kind of special programming language features. It only uses basic object-oriented programming techniques, and is therefore implementable in any object-oriented programming language. An experimental implementation in Ada 95 is presented.", keywords = "Ada, Persistence, Stable Storage, Object-Oriented Framework, Design Patterns", } @InProceedings{kienzle:2000:OPFBDP, author = "J{\"o}rg Kienzle and Alexander Romanovsky", title = "Object Persistence: {A} Framework Based On Design Patterns", booktitle = "Poster presented at ECOOP 2000, Sophia Antipolis, Cannes, France, June 12 - 16, 2000", year = "2000", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-ECOOP2000-Persistence-poster.pdf", abstract = "The poster presents a framework for providing object persistence in object-oriented programming languages without modifying the run-time system or the language itself. The framework does not rely on any kind of special programming language features. It only uses basic object-oriented programming techniques, and is therefore implementable in any object-oriented programming language.", keywords = "Persistence, Stable Storage, Object-Oriented Framework, Design Patterns", } @InProceedings{kienzle:2000:EHCCCOOS, author = "Alexander Romanovsky and J{\"o}rg Kienzle", year = "2000", title = "Exception Handling in Cooperative and Competitive Concurrent Object-Oriented Systems", booktitle = "Workshop on Exception Handling in Object-Oriented Systems at ECOOP 2000, Sophia Antipolis, Cannes, France, June 12 - 16", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-ECOOP2000-exception-concurrent.ps", keywords = "transactions, atomic actions, multithreaded, exceptions", } @InProceedings{kienzle:2000:EHOMTT, author = "J{\"o}rg Kienzle", year = "2000", title = "Exception Handling in Open Multithreaded Transactions", booktitle = "Workshop on Exception Handling in Object-Oriented Systems at ECOOP 2000, Sophia Antipolis, Cannes, France, June 12 - 16,", URL = "http://lgl.epfl.ch/pub/Papers/kienzle-ECOOP2000-exception-open.pdf", abstract = "This paper describes a model for providing transaction support for object-oriented concurrent programming languages. In order to achieve seamless integration, the use of the concurrency features provided by the programming language should not be restricted inside a transaction. A transaction model that meets this requirement is presented. Threads inside such a transaction may spawn new threads, but also external threads are allowed to join an ongoing transaction. A blocking commit protocol ensures that no thread leaves the transaction before its outcome has been determined. Exceptions are used to inform all participants in case a transaction aborts.", keywords = "omtt, fault tolerance, transactions, multithreaded, exceptions", } @Book{Kienzle:2003:OMTTMCOOP, author = "J{\"o}rg Kienzle", title = "Open Multithreaded Transactions - {A} Transaction Model for Concurrent Object-Oriented Programming", publisher = "Kluwer Academic Publishers", year = "2003", ISBN = "1-4020-1727-8", URL = "http://www.wkap.nl/prod/b/1-4020-1727-8", keywords = "omtt, fault tolerance, exceptions, optima, framework, ada, auction", } @PhdThesis{Messina96, author = "Silvia Messina", month = oct, school = "Ecole polytechnique f{\'e}d{\'e}rale de Lausanne", number = "1566", title = "Exceptions and Events in a Manufacturing Environment", year = "1996", URL = "http://lgl.epfl.ch/Team/SM/thesis-abstract.pdf", } @InProceedings{Pautet:97:TFSG, author = "Laurent Pautet and Thomas Wolf", booktitle = "Proceedings of TRI-Ada'97, St. Louis MO, USA, 1997", note = "Also available as Technical Report EPFL 97/241", pages = "11--19", publisher = "ACM Press", title = "Transparent Filtering of Streams in {GLADE}", year = "1997", } @InProceedings{Peraire95, author = "C{\'e}cile P{\'e}raire", booktitle = "Postgraduate in Software Engineering", month = nov, title = "Une {M}{\'e}thode de Tests Fonctionnelle {G}{\'e}n{\'e}rale", year = "1995", keywords = "Testing", URL = "http://lgl.epfl.ch/pub/Papers/peraire-PostGrade95.ps.gz", abstract = "Nous nous proposons de d{\'e}velopper une m{\'e}thode d'assistance {\`a} la s{\'e}lection de jeux de tests {\`a} partir de sp{\'e}cifications formelles. Nos objectifs {\'e}tant de d{\'e}boucher sur une m{\'e}thode de tests qui soit g{\'e}n{\'e}rale, c'est {\`a} dire qui ne soit pas d{\'e}pendante d'un type de sp{\'e}cification formelle particulier. La m{\'e}thode de tests qui nous int{\'e}resse est de type fonctionnel, ou {"}bo{\^i}te noire{"}, par opposition aux m{\'e}thodes classiques de type structurel, ou {"}bo{\^i}te blanche{"}. Il s'agit d'{\'e}valuer les fonctionnalit{\'e}s d'un programme, sans analyser les d{\'e}tails de son code, mais en confrontant les r{\'e}sultats obtenus par l'ex{\'e}cution de ce code {\`a} la sp{\'e}cification formelle de l'application. Contrairement au code d'un programme, sa sp{\'e}cification formelle n'a pas pour vocation d'{\^e}tre ex{\'e}cut{\'e}e, mais de d{\'e}crire les comportements de l'application {\`a} l'aide de formules exprim{\'e}es dans un langage logique sp{\'e}cialis{\'e}. La s{\'e}lection d'un jeu de tests judicieux pour chaque formule permet de couvrir toutes les fonctionnalit{\'e}s attendues du syst{\`e}me, et en particulier de tester les comportements critiques.", } @InProceedings{Peraire98, author = "C{\'e}cile P{\'e}raire and St{\'e}phane Barbey and Didier Buchs", booktitle = "IFIP Working Conference on Programming Concepts and Methods (PROCOMET'98), Shelter Island, New York, USA, June 1998", note = "Also available as Technical Report EPFL-DI No 97/252, Published in DeVa second year report (January 98)", pages = "385--403", publisher = "Chapman & Hall", title = "Test Selection for Object-Oriented Software Based on Formal Specifications", year = "1998", keywords = "Paper, Testing, PeraireMain, Conform, peraire", URL = "http://lgl.epfl.ch/pub/Papers/peraire-IFIP98.ps.gz", abstract = "We propose a method of test selection based on formal specifications, for functional testing of object-oriented software. This method is based on rigorous theoretical foundations. To limit the size of test sets, we present several hypotheses specific to object-oriented systems, used to reduce an exhaustive test set into a pertinent test set while preserving its qualities: regularity hypotheses are used to constrain the shape of tests while uniformities, with or without subdomain decomposition, are used to limit the values of the variables appearing in the tests. Care is taken to provide a method for which operational methods can be implemented.", } @PhdThesis{Peraire98a, author = "C{\'e}cile P{\'e}raire", address = "D{\'e}partement d'Informatique, 1015 Lausanne, Switzerland", school = "Ecole Polytechnique F{\'e}d{\'e}rale de Lausanne", number = "1904", title = "{F}ormal {T}esting of {O}bject-{O}riented {S}oftware: from the {M}ethod to the {T}ool", year = "1998", keywords = "Paper, Testing, PeraireMain, Conform, peraire", URL = "http://lgl.epfl.ch/pub/Papers/peraire-thesis.pdf", } @TechReport{Peraire98b, author = "C{\'e}cile P{\'e}raire and St{\'e}phane Barbey and Didier Buchs", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/98/299", title = "Testing the Production Cell Case Study from {CO}-{OPN} Specification", year = "1998", keywords = "Paper, Fusion, Testing, peraire", URL = "http://lgl.epfl.ch/pub/Papers/Peraire98-299.ps.gz", abstract = "The purpose of this work is to evaluate, by means of a case study, our formal testing method for object-oriented software. For this purpose we propose the development of an object-oriented application of realistic size, addressing all the phases of the software life-cycle: requirements, analysis, design, formal description, implementation and testing. Analysis and design are performed with the Fusion method, formal description with the CO-OPN language, implementation with Ada 95 and test selection with our testing method. The description of the production cell case study and Fusion models are presented in technical report EPFL-DI 98/298. This report presents the formal description and testing phase.", } @InProceedings{Peraire99, author = "C{\'e}cile P{\'e}raire and Robert A. Riemenschneider and Victoria Stavridou", booktitle = "OOPSLA'99 Workshop on Rigorous Modeling and Analysis with the UML: Challenges and Limitations, Denver, Colorado", title = "Integrating the Unified Modeling Language with an Architecture Description Language", year = "1999", month = nov, keywords = "peraire", URL = "http://lgl.epfl.ch/pub/Papers/peraire-oopsla99.ps", abstract = "These paper presents an approach for integrating UML with an ADL. The integration would encompass the advantages of both languages. It would give formal semantics to UML constructs and thus would provide UML with a theoretical foundation for architecture modeling. Furthermore, the integration would provide benefits for both ADL and UML users: it will enable ADL users to utilize general-purpose UML tools, and will enable UML users to utilize ADL validation capabilities. The result would be a rigorous software development process that is currently lacking.", } @Article{Racloz95, author = "Pascal Racloz", journal = "IEEE International Conference on Systems, Man and Cybernetics", note = "Vancouver-Canada", pages = "3475--3480", title = "A temporal specification checker for Petri nets", year = "1995", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/racloz-smc.ps", } @InCollection{Racloz96, author = "Pascal Racloz", address = "Lausanne", booktitle = "G{\'e}nie logiciel: principes, m{\'e}thodes et techniques", editor = "Alfred Strohmeier and Didier Buchs", pages = "207--240", publisher = "Presses Polytechniques et Universitaires Romandes", title = "Introduction aux r{\'e}seaux de Petri", year = "1996", ISBN = "2-88074-296-X", } @InProceedings{Rolim94, author = "Josi Rolim and Erik Urland and Mathieu Buffo and Didier Buchs", booktitle = "Proceedings of the SPP conference'94", editor = "J. M. Grossenbacher", organization = "SPP Zurich", publisher = "FNRS", title = "{TSPP} methodology for producing parallel probabilistic algorithms from specifications", year = "1994", keywords = "Conform", URL = "http://lgl.epfl.ch/pub/Papers/Rolim:94:TSPPMPPPAS.ps.gz", abstract = "The general aim of the project is to give a framework to a designer of parallel algorithms for defining abstractly a problem, finding a first parallel solution which may not be the most efficient one, and refining the solution by exploitingmassive parallelism and probabilistic features.", } @InProceedings{Rybin95, author = "Sergey Rybin and Alfred Strohmeier and Eugene Zueff", booktitle = "Proceedings of Ada-Europe'95, Frankfurt - Germany", editor = "Toussaint", note = "Also available as Technical Report EPFL-DI No 96/166", pages = "139--151", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", volume = "1031", title = "{ASIS} for {GNAT}: Goals, Problems and Implementation Strategy", year = "1995", keywords = "Ada", } @InProceedings{Rybin96, author = "Sergey Rybin and Alfred Strohmeier and A. Kuchumov and V. Fofanov", booktitle = "Reliable Software Technologies - Ada-Europe'96: proceedings, Ada-Europe International Conference on Reliable Software Technologies Montreux, Switzerland, June 10-14 1996", editor = "Alfred Strohmeier", note = "Also available as Technical Report EPFL-DI No 96/179", pages = "298--311", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "{ASIS} for {GNAT}: From the Prototype to the Full Implementation", volume = "1088", year = "1996", keywords = "Ada", URL = "http://lgl.epfl.ch/pub/Papers/rybin-asis-2.ps", } @InProceedings{Rybin96a, author = "Sergey Rybin and Alfred Strohmeier", booktitle = "Proceedings of TRI-Ada'96, Philadelphia, USA, 1996", note = "Also available as Technical Report EPFL-DI No 96/203", publisher = "ACM Press", title = "Ada and {ASIS}: Justification of Differences in Terminology and Mechanisms", year = "1996", URL = "http://lgl.epfl.ch/pub/Papers/rybin-tri-ada-96.ps", } @InProceedings{Rybin96b, author = "Sergey Rybin and Alfred Strohmeier and Eugene Zueff", booktitle = "In ACM Ada Letters, March 1996", number = "2", pages = "39--49", title = "{ASIS} for {GNAT}: Goals, Problems and Implementation Strategy", volume = "XVI", year = "1996", } @TechReport{Sendall:99:FADMSD, author = "Shane Sendall and Nicolas Guelfi and Alfred Strohmeier", address = "CH-1015 Lausanne / EPFL, Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/99/304", title = "Fusion Applied to Distributed Multimedia System Development: the Easy Meeting Case Study", year = "1999", keywords = "Fusion, Fondue, distributed systems", URL = "http://lgl.epfl.ch/pub/Papers/sendall99-304.ps", abstract = "The well-known Fusion object-oriented methodology is restricted to the development of sequential systems and certain restricted kinds of concurrency systems. Consequently, the development of distributed systems is only possible wiht additions and fixes to the method as it stands. In this paper, we discuss some problems encountered when analyzing a distributed system by way of a case study of a distributed multimedia application. We, thereby, propose enhancements to the Fusion analysis phase to solve some of these problems.", } @InProceedings{Sendall:99:UFA, author = "Shane Sendall and Alfred Strohmeier", booktitle = "{UML'99} - The {U}nified {M}odeling {L}anguage: Beyond the Standard, Second International Conference, Fort Collins, CO, USA, October 28-30, 1999", editor = "Robert France and Bernard Rumpe", note = "extended version also available as Technical Report EPFL-DI No 99/319", volume = "1723", pages = "278--291", series = "LNCS (Lecture Notes in Computer Science)", title = "{UML}-based Fusion Analysis", year = "1999", keywords = "Fusion, Fondue, UML, analysis, FondueMain", URL = "http://lgl.epfl.ch/pub/Papers/sendall99-319.ps", abstract = "In recent times, there has been an increased requirements for software to be distributed. The well-known Fusion development method, however, can only be used to develpp sequential reactive systems, and certain restricted kinds of concurrent systems. In contrast, the Unified Modeling Language (UML) provides a rich set of notations that can be used to model systems that are distributed. In addition, UML provides the ability to introduce rigor into diagrams through its constraint language OCL. In this paper, we present a UML-based Fusion analysis phase by way of a simple bank case study, and we discuss some enhancements that were made in additon to a mapping of notations; our proosal is the first step towards providing a Fusion-based analysis phase which supports high-level modeling of distributed systems.", } @InProceedings{Sendall:2000:FUCSOS, author = "Shane Sendall and Alfred Strohmeier", booktitle = "{UML'2000} - The {U}nified {M}odeling {L}anguage: Advancing the Standard, Third International Conference, York, UK, October 2-6, 2000", editor = "Stuart Kent and Andy Evans", volume = "1939", pages = "1--15", series = "LNCS (Lecture Notes in Computer Science)", title = "From Use Cases to System Operation Specifications", year = "2000", note = "Also available as Technical Report EPFL-DI No 00/333", keywords = "Fondue, UML, use cases, operation schemas, FondueMain, Schema", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2000-fucsos.pdf", abstract = "The purpose of this paper is to first showcase the concept of an operation schema - a precise form of system-level operation specification and secondly show how operation schemas enhance development when they are used as a supplement to use case descriptions. An operation schema declaratively describes the effects of a system operation by pre- and postconditions using the Object Constraint Language (OCL), as defined by the Unified Modeling Language (UML). In particular, the paper highlights techniques to map use cases to operation schemas and discusses the advantages of doing so in terms of clarifying the granularity and purpose of use cases and facilitating a more systematic transition to design.", } @TechReport{Sendall:2000:SSBU, author = "Shane Sendall and Alfred Strohmeier", number = "DI/00/343", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", title = "Specifying System Behavior in {UML}", year = "2000", keywords = "Fondue, UML, operation schemas", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2000-ssbu.pdf", abstract = "The purpose of the paper is to present our approach for specifying system behavior. Our approach is based on operation schemas and a system interface protocol (SIP). Operation schemas describe the functionality of system operations by pre- and post-conditions; they are written in the Object Constraint Language (OCL), as defined by the Unified Modeling Language (UML). A SIP describes the temporal ordering of the system operations by a UML protocol statemachine. Operation schemas are hybrids of formal specifications approaches such as Z and VDM : hybrid in the sense that they are based on their formal counterparts but are targeted to developers that are more comfortable with procedural programming languages rather than declarative languages. Our approach offers a middle ground between the informal descriptions of use cases and the solution-oriented models of object interaction in UML. We believe that declarative behavioral specification techniques, like the one proposed in this paper, lead to more confidence in the quality of the software because they allow one to reason about system properties.", } @TechReport{Sendall:2000:MEWA, author = "Shane Sendall and Alfred Strohmeier", number = "DI/00/344", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", title = "Modeling Enterprise Web Applications", year = "2000", keywords = "Fondue, UML, use cases", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2000-mewa.pdf", abstract = "The purpose of this paper is to provide an overview of our approach for modeling enterprise web applications (EWA), which is use case driven and uses UML as the modeling language. Our approach delivers a conceptual, logical model of the application, which consists of three packages. Packages were chosen to model three logical level concerns: presentation, business, and data management logic. Our approach uses the principle of separation of concerns, in that our package partition was made with the goal of isolating as many changes, which are commonly made in EWAs, as possible within a single package. In this paper, we focus on the business logic concern, and only give a brief overview of the preliminary techniques used to model the other two concerns. Also, we propose to model each concern with different views. Finally, we briefly discuss how our proposed logical model is mapped to process and deployment models to give a complete model of EWAs.", } @InProceedings{Sendall:2000:EOSPP, author = "Shane Sendall and Alfred Strohmeier", title = "Enhancing {OCL} for Specifying Pre- and Postconditions", booktitle = "UML 2.0 - The Future of the UML Object Constraint Language (OCL). Workshop of UML 2000 - The Unified Modeling Language: Advancing the Standard, Third International Conference, York, UK, October 2 - 6, 2000.", year = "2000", keywords = "OCL, UML, Fondue, operation schemas", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2000-eospp.pdf", note = "Also available as Technical Report EPFL-DI No 00/349", abstract = "This paper proposes a number of enhancements to UML's Object Constraint Language to improve its usability for specifying operations by pre- and postconditions. In particular, we propose notational shortcuts and semantic modifications to OCL so that it can be more effectively used by developers. Also, the paper discusses an approach for specifying, in OCL, events and exceptions which are output and raised by an operation.", } @InProceedings{Sendall:2001:UOUSSB, author = "Shane Sendall and Alfred Strohmeier", booktitle = "Object Modeling with the OCL, The Rationale behind the Object Constraint Language; Clark and Warmer (Eds.)", series = "LNCS (Lecture Notes in Computer Science)", volume = "2263", pages = "250--279", publisher = "Springer Verlag", year = "2002", title = "Using {OCL} and {UML} to Specify System Behavior", keywords = "Fondue, UML, OCL, operation schemas, use cases, FondueMain, Schema", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2001-uoussb.pdf", note = "Also available as Technical Report DI/01/359, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, 2001", abstract = "Use cases are an excellent tool for capturing behavioral requirements of software systems, but they are not an ideal work product for driving design activities. We believe that there is value from complementing use case descriptions with pre- and postcondition descriptions, not only to better support reasoning about system properties and a basis for testing and debugging, but also to better support a predictable decomposition level on which one can base a systematic transition to design. Nevertheless, we recognize that pre- and postcondition descriptions are not widely used in practice. We believe this is in part due to the formalism used. Either the formalism is too heavy to learn and use, or the formalism does not offer sufficient abstraction from the vocabulary of implementation. Via an example, the paper highlights our approach for specifying system behavior, which uses the Unified Modeling Language (UML) and its Object Constraint Language (OCL). We focus the paper on pre- and postconditions descriptions and in particular propose a number of enhancements and interpretations to OCL that we made while refining our approach. In particular, we describe a number of issues that cover areas such as the frame problem, incremental descriptions, structuring schemas, and events and exceptions.", } @InProceedings{Sendall:2001:MFGCGCBSU, author = "Shane Sendall and Alfred Strohmeier", title = "Merging Fine-Grained and Coarse-Grained Concurrent Behaviour Specifications in {UML}", year = "2001", booktitle = "Workshop on Concurrency Issues in UML. UML 2001 - The Unified Modeling Language: Modeling Languages, Concepts and Tools, 4th International Conference, Canada, 2001", } @InProceedings{Sendall:2001:SCSBTCUOU, author = "Shane Sendall and Alfred Strohmeier", booktitle = "UML 2001 - The Unified Modeling Language: Modeling Languages, Concepts and Tools, Fourth International Conference, Toronto, Canada, October 1-5, Martin Gogolla (Ed.)", series = "LNCS (Lecture Notes in Computer Science)", volume = "2185", pages = "391--405", publisher = "Springer Verlag", year = "2001", title = "Specifying Concurrent System Behavior and Timing Constraints Using {OCL} and {UML}", keywords = "Fondue, UML, OCL, operation schemas, FondueMain, Schema", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2001-scsbtcuou.pdf", note = "Also available as Technical Report IC/2001/367, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", abstract = "Despite advances in implementation technologies of distributed systems during the last few years, little progress has been made on specification techniques for describing distributed systems in software development practice. The contribution of this paper is a UML-based approach for specifying concurrent behavior and timing constraints--often inherent characteristics of distributed systems. We propose a novel approach for specifying concurrent behavior of reactive systems in OCL and several constructs for precisely describing timing constraints on UML statemachines. More precisely, we show how we enriched operation schemas--pre- and postcondition assertions of system operations written in OCL--by extending the current calculus with constructs for asserting synchronization on shared resources. Also, we describe how we use new and existing constructs for UML statemachines to specify timing constraints on the system interface protocol (SIP)--a restricted form of UML protocol statemachine. Finally, we discuss how both the extended system operation and SIP models are complementary.", } @PhdThesis{Sendall:2002:thesis, author = "Shane Sendall", address = "Software Engineering Laboratory, 1015 Lausanne, Switzerland", school = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "2588", title = "Specifying Reactive System Behavior", year = "2002", keywords = "UML, OCL, ANZAC, Sendall", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2002-thesis.pdf", abstract = "This thesis involved initially identifying a set of characteristics, which define desirable qualities for specifications to possess for the purposes of clearly communicating to the development team what they should build. As a result of analyzing the identified characteristics, two general kinds of specifications were distinguished and perceived to be necessary to address the requirements adequately; one that addresses the concerns of the designers, providing a precise description of the system responsibilities; and one that addresses the concerns of the stakeholders in general, providing an informal description of the goals that the stakeholders have against the system. The first specification is referred to as the Behavioral Design Contract and the second one is referred to as the Behavioral Stakeholders Contract. These two specifications were concretely realized as part of the ANZAC approach, which was the main contribution of this thesis.", } @InProceedings{Sendall:2002:GQETDP, author = "Shane Sendall", title = "Gauging the Quality of Examples for Teaching Design Patterns", booktitle = "Workshop on {"}Killer Examples{"} for Design Patterns and Objects First, at the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'2002), Seattle, USA, November 4", year = "2002", keywords = "Design Pattern", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2002-gqetdp.pdf", note = "Also available as Technical Report IC/2002/83, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", abstract = "What constitutes a good example in the context of teaching design patterns? How can instructors judge whether one example is better than another one for teaching a design pattern to students? How might an example be presented to best connect with students, equipping them with the necessary know-how? In this paper, I address these questions by offering a means to judge the quality of examples for teaching design patterns: a list of desirable characteristics. The proposed list can be used to gauge the quality of examples and/or it can be used to guide the development of examples.", } @InProceedings{Sendall:2003:SMTMTTVA, author = "S. Sendall and G. Perrouin and N. Guelfi and O. Biberstein", title = "Supporting Model-to-Model Transformations: The {VMT} Approach", booktitle = "Workshop on Model Driven Architecture: Foundations and Applications; Proceedings published in Technical Report TR-CTIT-03-27, University of Twente, 2003", year = "2003", keywords = "Methods", URL = "http://lgl.epfl.ch/pub/Papers/SendallPerrouinGuelfiBiberstein_VMT.pdf", note = "Also available as Technical Report IC/2003/51, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", } @Article{Sendall:2003:MTHSMDS, author = "S. Sendall and W. Kozaczynski", journal = "IEEE Software", month = sep # "/" # oct, volume = "20", number = "5", pages = "42--45", title = "Model Transformation - the Heart and Soul of Model-Driven Software Development", year = "2003", keywords = "Methods", note = "Also available as Techical Report IC/2003/52, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", URL = "http://lgl.epfl.ch/pub/Papers/sendall-tech-report-EPFL-model-trans.pdf", } @InProceedings{SilaghiS:2003:FIDJI:CEETM, author = "Raul Silaghi and Alfred Strohmeier", title = "Critical Evaluation of the {EJB} Transaction Model", booktitle = "Proceedings of the 2nd International Workshop on scientiFic engIneering of Distributed Java applIcations (FIDJI), Luxembourg-Kirchberg, Luxembourg, November 28-29, 2002", series = "LNCS (Lecture Notes in Computer Science)", volume = "2604", publisher = "Springer-Verlag", year = "2003", pages = "15--29", ISBN = "3-540-00679-6", note = "An extended version is also available as Technical Report IC/2002/69, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, September 2002", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200269", } @InProceedings{SilaghiS:2003:MAMAD:GCOMTMA, author = "Raul Silaghi and Alfred Strohmeier", title = "Generic Concern-Oriented Model Transformations Meet {AOP}", booktitle = "First International Workshop on Model-driven Approaches to Middleware Applications Development (MAMAD), held at the 4th ACM/IFIP/USENIX International Middleware Conference, Rio de Janeiro, Brazil, June 16-20, 2003", note = "An enhanced version is available as Technical Report IC/2003/79, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, December 2003", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200379", } @InProceedings{SilaghiS:2003:EDOC:ICSMASDM, author = "Raul Silaghi and Alfred Strohmeier", title = "Integrating {CBSE}, So{C}, {MDA}, and {AOP} in a Software Development Method", booktitle = "Proceedings of the 7th IEEE International Enterprise Distributed Object Computing Conference (EDOC), Brisbane, Queensland, Australia, September 16-19, 2003", publisher = "IEEE Computer Society", year = "2003", pages = "136--146", ISBN = "0-7695-1994-6", note = "Also available as Technical Report IC/2003/57, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, September 2003", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200357", } @InProceedings{SilaghiS:2003:GTiMDA:BGPGA, author = "Raul Silaghi and Alfred Strohmeier", title = "Better Generative Programming with Generic Aspects", booktitle = "Second International Workshop on Generative Techniques in the Context of MDA, held at the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Anaheim, CA, USA, October 26-30, 2003", note = "Available as Technical Report IC/2003/80, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, December 2003", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200380", } @InProceedings{SilaghiSK:2003:DOA:POTC, author = "Raul Silaghi and Alfred Strohmeier and J{\"o}rg Kienzle", title = "Porting {OMTT}s to {CORBA}", booktitle = "Proceedings of the 5th International Symposium on Distributed Objects and Applications (DOA), part of the On The Move to Meaningful Internet Systems, OTM Confederated International Conferences, CoopIS/DOA/ODBASE, Catania, Sicily, Italy, November 3-7, 2003", series = "LNCS (Lecture Notes in Computer Science)", volume = "2888", publisher = "Springer-Verlag", year = "2003", pages = "1521--1542", ISBN = "3-540-20498-9", note = "An extended version is also available as Technical Report IC/2003/58, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, September 2003", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200358", } @InProceedings{SilaghiFS:2005:MDAFA:WMMT, author = "Raul Silaghi and Fr{\'e}d{\'e}ric Fondement and Alfred Strohmeier", title = "'Weaving' {MTL} Model Transformations", booktitle = "Proceedings of the 2nd International Workshop on Model Driven Architecture, Foundations and Applications (MDAFA), Link{\"o}ping University, Sweden, June 10-11, 2004", series = "LNCS (Lecture Notes in Computer Science)", volume = "3599", publisher = "Springer-Verlag", year = "2005", note = "An extended version is available as Technical Report IC/2004/50, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, May 2004", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200450", } @InProceedings{SilaghiFS:2004:EDOC:TMOUPD, author = "Raul Silaghi and Fr{\'e}d{\'e}ric Fondement and Alfred Strohmeier", title = "Towards an {MDA}-Oriented {UML} Profile for Distribution", booktitle = "Proceedings of the 8th IEEE International Enterprise Distributed Object Computing Conference (EDOC), Monterey, CA, USA, September 20-24, 2004", publisher = "IEEE Computer Society", year = "2004", pages = "227--239", ISBN = "0-7695-2214-9", note = "Also available as Technical Report IC/2004/49, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, May 2004", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200449", } @InProceedings{SilaghiS:2005:UML:MDEMMDS, author = "Raul Silaghi and Alfred Strohmeier", title = "Model-Driven Engineering of Middleware-Mediated Distributed Systems", booktitle = "Proceedings of the Posters/Demos track at the 7th International Conference on the Unified Modeling Language (UML), Lisbon, Portugal, October 11-15, 2004, UML 2004 Satellite Activities", series = "LNCS (Lecture Notes in Computer Science)", volume = "3297", publisher = "Springer-Verlag", year = "2005", pages = "259--263", ISBN = "3-540-25081-6", note = "Poster and Demonstration", } @InProceedings{FondementS:2004:WiSME:DMDEP, author = "Fr{\'e}d{\'e}ric Fondement and Raul Silaghi", title = "Defining Model Driven Engineering Processes", booktitle = "Third International Workshop in Software Model Engineering (WiSME), held at the 7th International Conference on the Unified Modeling Language (UML), Lisbon, Portugal, October 11-15, 2004", note = "Available as Technical Report IC/2004/94, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, November 2004", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200494", } @InProceedings{Silaghi:2004:Middleware:MRMSCD, author = "Raul Silaghi", title = "{MDA} Refinements along Middleware-Specific Concern-Dimensions", booktitle = "Proceedings of the 1st Doctoral Symposium at the 5th ACM/IFIP/USENIX International Middleware Conference, Toronto, ON, Canada, October 18-22, 2004, Middleware 2004 Companion", publisher = "ACM Press", year = "2004", pages = "309--313", ISBN = "1-58113-948-9", note = "Poster included", } @InProceedings{Silaghi:2004:OOPSLA:RDMSCDDMLA, author = "Raul Silaghi", title = "Refining Designs along Middleware-Specific Concern-Dimensions at Different {MDA}-Levels of Abstraction", booktitle = "Proceedings of the Doctoral Symposium and ACM Student Research Competition at the 19th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Vancouver, BC, Canada, October 24-28, 2004, OOPSLA 2004 Companion", publisher = "ACM Press", year = "2004", pages = "60--61", pages = "318--319", ISBN = "1-58113-833-4", note = "Poster included", } @InProceedings{SilaghiS:2005:FIDJI:MBAICDS, author = "Raul Silaghi and Alfred Strohmeier", title = "An {MDA}-Based Approach for Inferring Concurrency in Distributed Systems", booktitle = "Proceedings of the 4th International Workshop on scientiFic engIneering of Distributed Java applIcations (FIDJI), Luxembourg-Kirchberg, Luxembourg, November 24-25, 2004", series = "LNCS (Lecture Notes in Computer Science)", volume = "3409", publisher = "Springer-Verlag", year = "2005", pages = "24--37", ISBN = "3-540-25053-0", note = "Also available as Technical Report IC/2004/83, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, November 2004", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200483", } @InProceedings{SilaghiS:2005:HICSS:PVDTPMP, author = "Raul Silaghi and Alfred Strohmeier", title = "Parallax, or Viewing Designs Through a Prism of Middleware Platforms", booktitle = "Proceedings of the 38th Annual Hawaii International Conference on System Sciences (HICSS), Hilton Waikoloa Village, Big Island of Hawaii, HI, USA, January 3-6, 2005, part of the Mini-track on Adaptive and Evolvable Software Systems (AESS)", publisher = "IEEE Computer Society (Digital Library)", year = "2005", note = "Also available as Technical Report IC/2004/69, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, August 2004", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=200469", } @InBook{SilaghiS:2005:MDSD:PAEFPBMRTM, author = "Raul Silaghi and Alfred Strohmeier", title = "Parallax - An Aspect-Enabled Framework for Plugin-Based {MDA} Refinements Towards Middleware", booktitle = "Book Chapter in {"}Model-Driven Software Development{"}, vol. II of {"}Research and Practice in Software Engineering{"}", editor = "Beydeda S. and Book M. and Gruhn V.", publisher = "Springer-Verlag", year = "2005", note = "Also available as Technical Report IC/2005/021, Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences, May 2005", URL = "http://ic2.epfl.ch/publications/abstract.php?ID=2005021", } @Article{Strohmeier84a, author = "Alfred Strohmeier", journal = "Polyrama", month = jun, number = "63", pages = "27--31", title = "Ordinateurs: La crise du logiciel", year = "1984", } @InProceedings{Strohmeier85, author = "Alfred Strohmeier and Pierre Breguet and Fran{\,c}ois Grize", booktitle = "SIGPLAN Notices, January 1985", number = "1", pages = "11--19", title = "{SARTEX}: {A} Programming Language for Graph Processing", volume = "20", year = "1985", } @InProceedings{Strohmeier85a, author = "Alfred Strohmeier", booktitle = "T.S.I.", number = "2", pages = "199--203", title = "Petit Br{\'e}viaire Ada", volume = "4", year = "1985", keywords = "Ada", } @InProceedings{Strohmeier85b, author = "Alfred Strohmeier", booktitle = "Pour une informatique consciente", editor = "P.-G. Fontolliet", pages = "3--10", publisher = "Presses Polytechniques Romandes", title = "Bases de l'informatique", year = "1985", } @InProceedings{Strohmeier85c, author = "Alfred Strohmeier", booktitle = "Technology and Science of Informatics, Ada Special", pages = "23--27", title = "A short Ada glossary", year = "1985", keywords = "Ada", } @Article{Strohmeier86, author = "Alfred Strohmeier", journal = "Output", number = "9", pages = "65--69", title = "Petit Br{\'e}viare Ada", year = "1986", keywords = "Ada", } @Article{Strohmeier87, author = "Alfred Strohmeier", journal = "Lettre Ada", month = nov, number = "9", pages = "3--4", title = "Ada & la programmation d'applications", year = "1987", keywords = "Ada", } @Article{Strohmeier87a, author = "Alfred Strohmeier", journal = "Output", number = "2", pages = "43--49", title = "Unit{\'e} de commande et microprogrammation", year = "1987", } @Article{Strohmeier87b, author = "Alfred Strohmeier", journal = "Output", number = "7", pages = "45--48", title = "Techniques d'enregistrement magn{\'e}tique", year = "1987", } @Article{Strohmeier88, author = "Alfred Strohmeier", journal = "Polyrama EPFL", month = nov, number = "80", pages = "3--6", title = "{L}'informatique: technique et science", year = "1988", } @Article{Strohmeier88a, author = "Alfred Strohmeier", journal = "Polyrama EPFL", month = nov, number = "80", pages = "24--26", title = "Sortir le logiciel de la crise", year = "1988", } @Article{Strohmeier88b, author = "Alfred Strohmeier", journal = "Scope Bull SA", month = jul, pages = "13--16", title = "Le g{\'e}nie logiciel: pourquoi? c'est quoi?", year = "1988", } @Article{Strohmeier88c, author = "Alfred Strohmeier", journal = "Scope Bull AG", month = jul, pages = "13--16", title = "Warum Software-Engineering?", year = "1988", } @Article{Strohmeier88d, author = "Alfred Strohmeier", journal = "Output", number = "12", pages = "43--47", title = "Les unit{\'e}s graphiques", year = "1988", } @Article{Strohmeier88e, author = "Alfred Strohmeier", journal = "Output", number = "3", pages = "57--61", title = "Les imprimantes", year = "1988", } @Article{Strohmeier89, author = "Alfred Strohmeier", journal = "Output", number = "1", pages = "65--66", title = "Sortir le logiciel de la crise", year = "1989", } @Article{Strohmeier89a, author = "Alfred Strohmeier", journal = "Output", number = "1", pages = "94--97", title = "{L}'informatique: technique et science", year = "1989", } @InProceedings{Strohmeier90, author = "Alfred Strohmeier and Christian Genillard and Mats Weber", booktitle = "AdaLetters, October 1990", month = oct, number = "7", pages = "70--84", title = "Ordering of Characters and Strings", volume = "X", year = "1990", abstract = "Arranging characters and strings in order of representation codes is not suitable for application programming. Even when character ordering is logical, the usual filing of words in dictionaries does not correspond with the mathematical lexicographic ordering of strings, but some equivalence relation on characters is involved. As a solution to this problem, we propose a generic package. The paper also explains the theory behind the solution. Some definitions of classical mathematics are recalled in the appendix.", } @InProceedings{Strohmeier90a, author = "Alfred Strohmeier and Christian Genillard and Mats Weber", booktitle = "AdaLetters, August 1990", number = "6", pages = "47--60", title = "Implementation of 8-bit Coded Character Sets in Ada", volume = "X", year = "1990", keywords = "Ada", abstract = "A general frame is proposed for implementing 8-bit coded character sets in Ada in conformance with current international standards. This frame is then applied to what is termed Latin alphabet No. 1 which covers Western European languages. Also shown is how the basic needs for text input-output can be satisfied by generalizing the predefined package TEXT_IO.", } @InProceedings{Strohmeier94, author = "Alfred Strohmeier", booktitle = "ACM/IEEE International Workshop on Software Education, Sorrento (Italie), 1994", editor = "A. Finkelstein and May 21 1994 B. Nuseibeh", pages = "319--326", title = "Use of a Software Component Library in Student Projects", year = "1994", } @InCollection{Strohmeier96a, author = "Alfred Strohmeier", address = "Lausanne", booktitle = "G{\'e}nie logiciel: principes, m{\'e}thodes et techniques", editor = "Alfred Strohmeier and Didier Buchs", pages = "1--28", publisher = "Presses Polytechniques et Universitaires Romandes", title = "Cycle de vie du logiciel", year = "1996", ISBN = "2-88074-296-X", } @InProceedings{Strohmeier97, author = "Alfred Strohmeier", booktitle = "TRI-Ada'97 Tutorial Notes, St. Louis, MO, USA, 1997", publisher = "ACM Press", title = "The Fusion Method, with Implementation in Ada 95", year = "1997", keywords = "Fusion, Ada", } @InProceedings{Strohmeier97a, author = "Alfred Strohmeier", booktitle = "Polyrama, November 1997", note = "{\'e}galement en traduction allemande", number = "107", pages = "32--34", publisher = "Ecole polytechnique f{\'e}d{\'e}rale de Lausanne", title = "La science n'a pas r{\'e}ponse {\`a} tout", year = "1997", } @InProceedings{Strohmeier:98:FMIA, author = "Alfred Strohmeier", address = "Washington, DC, USA", booktitle = "SIGAda'98 Tutorial Notes", publisher = "ACM Press", title = "The Fusion Method, with Implementation in Ada 95", year = "1998", } @InProceedings{Strohmeier:99:FMIA, author = "Alfred Strohmeier", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'99, Santander, Spain, June 7-11 1999", note = "Tutorial Notes", title = "Fusion: An Object-Oriented Development Method, with Mapping to Ada", year = "1999", } @InProceedings{Strohmeier:99:MOODA, author = "Alfred Strohmeier", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'99, Santander, Spain, June 7-11 1999", editor = "Michael Gonzalez Harbour and Juan A. de la Puente", note = "also available as Technical Report EPFL-DI No 99/310", volume = "1622", pages = "76--90", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "Mapping Object-Oriented Designs to Ada", year = "1999", } @InProceedings{Strohmeier:98:PTFA, author = "Alfred Strohmeier and Vasiliy Fofanov and Sergey Rybin and St{\'e}phane Barbey", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'98, Uppsala, Sweden, June 2-8 1998", editor = "Lars Asplund", note = "Also available as Technical Report EPFL-DI No 98/268", pages = "163--175", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "Quality-for-{ASIS}: {A} Portable Testing Facility for {ASIS}", year = "1998", keywords = "Ada, Testing, ASIS, Black-Box Testing, Specification-Based Testing", URL = "http://lgl.epfl.ch/pub/Papers/strohmeier-qualityasis98.ps", abstract = "This paper describes the project Quality-for-ASIS, aiming at the development of an extensive testing facility for ASIS implementations. First the specific problems and requirements are presented. After a section about the basic concepts of ASIS and after a short introduction to testing, the designs and implementations for testing important subsets of ASIS are described. Finally, adequacy coverage statistics for a test set based on the ACVC compiler validation suite are provided.", } @InProceedings{Strohmeier:99:EIA, author = "Alfred Strohmeier", booktitle = "Proceedings of the Annual Conference of the Korean Information Sciences Society, Mokpo, April 23-24", pages = "19--47", title = "Engineering the Information Age", year = "1999", } @TechReport{Strohmeier:2000:DOOOSU, author = "Alfred Strohmeier and Shane Sendall", address = "Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/00/326", year = "2000", title = "Descriptive Object-Oriented Operation Specification for {UML}", keywords = "Fondue, UML, OCL", URL = "http://lgl.epfl.ch/pub/Papers/strohmeier-FMSP-2000.pdf", abstract = "The purpose of this paper is to show how system operations can be specified by pre- and postconditions using the Object Constraint Language (OCL), as defined by the Unified Modeling Language (UML) specification, and how these system operation specifications relate to the analysis class model and other models of the analysis phasis. It is also shown how the communication between the system and actors by event sending can be modeled. The result is a system behavior model at a higher-level of abstraction than the one provided by collaboration diagrams, which concentrate on method invocations between objects.", } @InProceedings{strohmeier:2000:ARPE, author = "Sergey Rybin and Vasily Fofanov and Alfred Strohmeier and Alexei Kuchumov", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'2000, Potsdam, Germany, June 26-30, 2000", series = "Lecture Notes in Computer Science", title = "{ASIS}-for-{GNAT}: {A} Report of Practical Experiences", year = "2000", editor = "Hubert B. Keller and Erhard Pl{\"o}derer", volume = "1845", pages = "125--137", note = "Also available as Technical Report EPFL-DI No 00/329", URL = "http://lgl.epfl.ch/pub/Papers/strohmeier-AdaEurope2000.pdf", abstract = "What are the main difficulties met when implementing ASIS, what are the problems when using ASIS, are there any missing features in ASIS, e.g. when it comes to object-oriented programming, these are some of the topics dealt with in this experience report.", keywords = "ASIS, Ada, Programming Language, Programming Tool, Programming Environment", } @InProceedings{strohmeier:2000:OASLAOOAC, author = "Alexei Kuchumov and Sergey Rybin Alfred Strohmeier", booktitle = "6th International Conference on Reliable Software Technologies - Ada-Europe'2001, Leuven, Belgium, May 14 - 18, 2001", title = "{OASIS} - An {ASIS} Secondary Library for Analyzing Object-Oriented Ada Code", series = "LNCS (Lecture Notes in Computer Science)", volume = "2043", pages = "113--122", publisher = "Springer Verlag", year = "2001", URL = "http://lgl.epfl.ch/pub/Papers/strohmeier-AdaEurope2001.pdf", note = "Also available as Technical Report EPFL-DI No 00/342", abstract = "ASIS has proven to be an effective platform for developing various program analysis tools. However, in many cases ASIS, as defined in the ASIS ISO standard, appears to be at a very low-level of abstraction compared to the needs of the tool developer. Higher-level interfaces and common libraries for specific needs should therefore be developed. The paper describes a ASIS secondary library providing abstractions and queries for analyzing object-oriented Ada code.", } @Proceedings{strohmeier:2001:ADAEUROPE, editor = "Dirk Craeynest and Alfred Strohmeier", title = "International Conference on Reliable Software Technologies - Ada-Europe'2001, Leuven, Belgium, May 14 - 18, 2001", series = "LNCS (Lecture Notes in Computer Science)", volume = "2043", publisher = "Springer Verlag", year = "2001", month = may, } @InProceedings{Strohmeier:2001:SSCEHAJ, author = "Alfred Strohmeier and Stanislav Chachkov", title = "A Side-by-Side Comparison of Exception Handling in Ada and Java", year = "2001", booktitle = "Workshop on Exception Handling for a 21st Century Programming Language, May 14, 2001, Leuven, Belgium", URL = "http://lgl.epfl.ch/pub/Papers/strohmeier-Ada-Java.pdf", number = "XXI(3), September 2001", pages = "41--56", year = "2001", publisher = "ACM Press", series = "Ada Letters", note = "Also available as Technical Report EPFL-DI No 01/363", abstract = "The purpose of this paper is to compare the exception handling mechanisms of Ada and Java. In order to be intelligible and useful to both communities, we have tried not get into specific technical intricacies of the languages, perhaps sometimes at the cost of precision. On the other side, we decided to use the language-specific terminology whenever we write about it. We believe that the contrary would often lead to misunderstandings: the same term sometimes covers two different concepts, e.g. object, or when the concepts are basically the same, the features provided by the language are largely different, making any unification impossible, e.g. task in Ada and thread Java.", } @TechReport{Strohmeier:2001:OSO, author = "Alfred Strohmeier and Shane Sendall", number = "DI/01/358", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", title = "Operation Schemas and {OCL}", year = "2001", keywords = "Fondue, UML, OCL, FondueMain, Schema", URL = "http://lgl.epfl.ch/pub/Papers/sendall-2001-oso.pdf", abstract = "This report describes the syntax and usage of operation schemas and it also shows how we use UML’s object constraint language (OCL) in operation schemas.", } @Proceedings{Strohmeier:2001:EHCPL, editor = "Alexander Romanovsky and Alfred Strohmeier", title = "Workshop on Exception Handling for a 21st Century Programming Language, Leuven, Belgium, May 14, 2001", number = "XXI(3)", year = "2001", publisher = "ACM Press", series = "Ada Letters", month = sep, } @InProceedings{Strohmeier:2001:FOODMBUN, author = "Alfred Strohmeier", title = "Fondue: An Object-Oriented Development Method based on the {UML} Notation", booktitle = "Invited conference, text published in {"}X Jornada T{\'e}cnica de Ada-Spain, Documentaci{\'o}n, Lunes 12 de Noviembre 2001", year = "2001", address = "ETSI de Telecommunicaci{\'o}n, Universidad Polit{\'e}cnica de Madrid, Madrid, Spain", month = nov, } @InProceedings{Strohmeier:2001:IPUCFSO, author = "Alfred Strohmeier", title = "Improving Precision of Use Cases by Formally Specifying Operations", booktitle = "{"}Can Formal Methods Cope with Software-Intensive Systems{"}, Dagstuhl Seminar", year = "2001", address = "Dagstuhl, Germany", month = may # " 27 -- " # jun # " 1st", } @TechReport{Strohmeier:2003:AFSDVM, author = "Alfred Strohmeier and Thomas Baar and Shane Sendall", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "IC/2003/60", title = "Applying Fondue to Specify a Drink Vending Machine", year = "2003", month = sep, keywords = "Methods", URL = "http://lgl.epfl.ch/pub/Papers/strohmeier-2003-afsdvm.pdf", abstract = "The purpose of the paper is to present our approach for specifying system behavior during analysis, part of the Fondue software development method. The approach is exemplified on a case study, a Drink Vending Machine (DVM). It is based on Operation Schemas and a Protocol Model. The Protocol Model describes the temporal ordering of the system operations by an UML protocol statemachine. An Operation Schema describes the functionality of a system operation by pre- and postconditions; they are written in the Object Constraint Language (OCL), with a few amendments and extensions. Our approach offers a middle ground between the informal descriptions of Use Cases and the solution-oriented models of object interaction in UML. We believe that declarative behavioral specification techniques, like the one proposed in this paper, lead to more confidence in the quality of the software because they allow one to reason about system properties.", } @InProceedings{Sy:00:EATXRPNM, author = "Ousmane Sy and Mathieu Buffo and Didier Buchs", title = "An Experimental Approach Towards the {XML} Representation of Petri Net Models", booktitle = "Intl. Workshop on XML/SGML based Interchange Formats for Petri Nets", pages = "35--38", month = jun, year = "2000", publisher = "Aarhus University", keywords = "Petri Nets, XML, Conform", } @TechReport{Sy:2001:EATXRPM, author = "Ousmane Sy and Mathieu Buffo and Didier Buchs and Fabrice Kordon and R{\'e}mi Bastide", number = "DI/00/336", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", year = "2000", title = "An Experimental Approach towards the {XML} representation of Petri Net Models", keywords = "Conform, XML", } @InProceedings{Vachon:98:CFLCAA., author = "Julie Vachon and Didier Buchs and Mathieu Buffo and Giovanna Di Marzo Serugendo and Brian Randell and Sascha Romanovsky and Robert Stroud and J. Xu", booktitle = "DeVa Third Year Report, Deliverables: Part 2 (Papers)", month = dec, pages = "43--86", title = "{COALA} - {A} Formal Language for Coordinated Atomic Actions", year = "1998", URL = "http://lgl.epfl.ch/pub/Papers/vachonCOALA98.ps", abstract = "A Coordianted Atomic Action (CA Action) is a unified scheme for coordinating complex concurrent activities and supporting error recovery between multiple interacting objects in distributed object-oriented systems. They constitute a very interesting concept for the structured developement of fault-tolerant distributed applications. To formalize the design of CA actions, this paper introduces a new language called COALA (COordinateed Atomic actions LAnguage). COALA provides both a concrete syntax to write CA actions and a semantics which formally explains the concept. The semantics is given in the formal object-oriented specification language CO-OPN/2. COALA can thus benefit form the formal techniques developed around CO-OPN/2 and use them for the validation and the test of applications written with COALA CA actions.", } @TechReport{Vachon:99:CSNRC, author = "Julie Vachon and Didier Buchs", address = "Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "DI/98/297", title = "Towards a Complete Semantics with Negation Rules for {CO}-{OPN}/2", year = "1999", keywords = "Conform", } @TechReport{Vachon:99:SCC, author = "Julie Vachon", address = "CH-1015, Lausanne, Switzerland", institution = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", month = jun, number = "DI/98/300", title = "The Semantics of {COALA} in {CO}-{OPN}/2", year = "1999", URL = "http://lgl.epfl.ch/pub/Papers/vachon:98:SCC.ps.gz", abstract = "This report presents the formal semantics of COALA, a design language based on the concept of Coordinated Atomic Actions (CA actions). COALA has been developped with the intent of providing a concrete language to express CA actions and thus facilitate the desing of softwares whose structure relies on this concept. The semantics is expressed using the formal object-oriented specification language CO-OPN/2. The complete semantics is given in the appendix; specifications were checked (syntax and types) using the tools developped for CO-OPN/2.", } @InProceedings{Vachon:97:SSID, author = "Julie Vachon and Didier Buchs", booktitle = "Models, Formalisms and Methods for Object Oriented Distributed Computing in Workshop Reader, ECOOP Conference 1997", editor = "Remi Bastide and Didier Buchs", pages = "244--247", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "Subtyping as a Support for Incremental Development", volume = "1357", year = "1997", keywords = "Conform", } @Article{Vernez:2003:PUCPNRAAM, author = "David Vernez and Didier Buchs and Guillaume Pierrehumbert", title = "Perspectives in the Use of Coloured Petri Nets for Risk Analysis and Accident Modelling", journal = "Safety Sciences Journal", year = "2003", note = "To appear", } @TechReport{Veynachter:97:GLACAN, author = "F. Veynachter", address = "Universit{\'e} Nancy I, France", institution = "DESS informatique", title = "{G}{\'e}nie Logiciel et Applications Collaboratives", type = "Rapport de stage et annexes", year = "1997", URL = "http://lgl.epfl.ch/pub/Papers/veynachter_dess.ps.gz http://lgl.epfl.ch/pub/Papers/veynachter_dess_annexes.ps.gz", } @Article{Weber93, author = "Mats Weber", journal = "Ada Letters", month = feb, number = "1", pages = "63--75", title = "Elaboration Order Issues in Ada 9{X}", volume = "XIII", year = "1993", keywords = "Ada", } @PhdThesis{Weber94, author = "Mats Weber", school = "Ecole polytechnique f{\'e}d{\'e}rale de Lausanne", number = "1227", title = "Proposals for Enhancement for the Ada Programming Language: {A} Software Engineering Perspective", year = "1994", keywords = "Ada", URL = "http://lgl.epfl.ch/pub/Papers/weber-thesis.pdf", abstract = "For an abstract and an HTML version of the thesis, please visit http://lgl.epfl.ch/Team/MW/Ada-Extensions/Ada-Extensions.html", } @PhdThesis{Wolf:98:RNDO, author = "Thomas Wolf", month = nov, school = "Ecole Polytechnique F\'ed\'erale de Lausanne (EPFL), School of Computer and Communication Sciences", number = "1903", title = "Replication of Non-Deterministic Objects", year = "1998", URL = "http://lgl.epfl.ch/pub/Papers/wolf-thesis.pdf", } @InProceedings{Wolf:99:FTTRDA, author = "Thomas Wolf and Alfred Strohmeier", booktitle = "International Conference on Reliable Software Technologies - Ada-Europe'99, Santander, Spain, June 7-11 1999", editor = "Michael Gonzalez Harbour and Juan A. de la Puente", note = "also available as Technical Report EPFL-DI No 99/307", volume = "1622", pages = "412--424", publisher = "Springer Verlag", series = "LNCS (Lecture Notes in Computer Science)", title = "Fault Tolerance by Transparent Replication for Distributed Ada 95", year = "1999", URL = "http://lgl.epfl.ch/pub/Papers/wolf-AdaEurope99.ps.gz", abstract = "This paper presents the foundations of Rapids ({"}Replicated Ada Partitions In Distributed Systems{"}), an implementation of the Distributed Systems Annex E incorporating the transparent replication of partitions in distributed Ada 95 applications. Rapids is a replication manager for semi-active replication based on a piecewise deterministic computation model It guarantees replica consistency for arbitrary Ada 95 partitions despite the inherent non-determinism of multitasking, offering k-resilient partitions. The Rapids prototype is implemented for the GNAT compiler and evolved from its PCS, Garlic.", } @InProceedings{Wolf:99:TRFTDA, author = "Thomas Wolf", booktitle = "Proceedings of the 9th International Real-Time Ada Workshop, Wakulla Springs Lodge, Tallahassee FL, USA, March 1999", number = "XIX(2), June 1999", pages = "33--40", publisher = "ACM Press", series = "Ada Letters", type = "Position Paper", note = "Also Available as Technical Report EPFL-DI No 99/305", title = "Transparent Replication for Fault Tolerance in Distributed Ada 95", year = "1999", URL = "http://lgl.epfl.ch/pub/Papers/wolf-IRTAW9.ps.gz", abstract = "In this paper we present the foundations of Rapids ({"}Replicated Ada Partitions In Distributed Systems{"}), an implementaion of the PCS supporting the transparent replication of partitions in distributed Ada 95 using semi-active replication. The inherently non-deterministic executions of multi-tasked partitions are modeled as piecewise deterministic histories. I discuss the validity and correctness of this model of computation and show how it can be used for efficient semi-active replication. The Rapids prototype ensures that replicas of a partition all go through the same history and are hence consistent.", } @InProceedings{Wolf:97:FTDA, author = "Thomas Wolf", booktitle = "Proceedings of the 8th International Real-Time Ada Workshop, Ravenscar, April 1997", number = "XVII(5), Sept./Oct. 1997", pages = "106--110", publisher = "ACM Press", series = "Ada Letters", title = "Fault Tolerance in Distributed Ada 95", type = "Position Paper", year = "1997", URL = "http://lgl.epfl.ch/pub/Papers/wolf-IRTAW8.ps.gz", abstract = "In this paper we present a project to provide fault tolerance in distributed Ada 95 application by means of replication of partitions. Replication is intended to be largely transparent to an application. A group communication system is used for replica management. We examine some of the possibilities for implementing such a system and highlight some of the difficulties encountered in the context of the programming language Ada 95.", } @InProceedings{MullerDFH:04:WISME, author = "Pierre-Alain Muller and C{\'e}dric Dumoulin and Fr{\'e}d{\'e}ric Fondement and Michel Hassenforder", title = "The TopMod{L} Initiative.", booktitle = "3rd Workshop in Software Model Engineering (WISME @ UML 2004), 11 October 2004, Lisbon, Portugal, Proceedings of the UML Satellite Activities 2004, Lecture Notes in Computer Science, Volume 3297, Feb 2005", year = "2004", pages = "242--245", URL = "http://lgl.epfl.ch/pub/Papers/MullerDFH_04_WISME.pdf http://www.springerlink.com/index/0GW7R0TVR3D84PHB http://www.topmodl.org/", abstract = "We believe that there is a very strong need for an environment to support research and experiments on model-driven engineering. Therefore we have started the TopModL project, an open-source initiative, with the goal of building a development community to provide: (1) an executable environment for quick and easy experimentation, (2) a set of source files and a compilation tool chain, (3) a web portal to share artefacts developed by the community. The aim of TopModL is to help the model-engineering research community by providing the quickest path between a research idea and a running prototype. In addition, we also want to identify all the possible contributions, understand how to make it easy to integrate existing components, while maintaining architectural integrity. At the time of writing we have almost completed the bootstrap phase (known as Blackhole), which means that we can model TopModL and generate TopModL with TopModL. Beyond this first phase, it is now of paramount importance to gather the best possible description of the requirements of the community involved in model-driven engineering to further develop TopModL, and also to make sure that we are able to reuse or federate existing efforts or goodwill. This paper is more intended to set up a basis for a constructive discussion than to offer definitive answers and closed solutions.", } @Article{MullerSFBSoSym2005, author = "Pierre-Alain Muller and Philippe Studer and Fr{\'e}d{\'e}ric Fondement and Jean Bezivin", title = "Platform independent Web application modeling and development with Netsilon", journal = "Software and System Modeling", volume = "4", number = "4", pages = "??--??", year = "2005", publisher = "Springer", URL = "http://dx.doi.org/10.1007/s10270-005-0091-4 http://lgl.epfl.ch/pub/Papers/MullerSFBSoSym2005.pdf", abstract = "This paper discusses platform independent Web application modeling and development in the context of model-driven engineering. A specific metamodel (and associated notation) is introduced and motivated for the modeling of dynamic Web specific concerns. Web applications are represented via three independent but related models (business, hypertext and presentation). A kind of action language (based on OCL and Java) is used all over these models to write methods and actions, specify constraints and express conditions. The concepts described in the paper have been implemented in the Netsilon tool and operational model-driven Web information systems have been successfully deployed by translation from abstract models to platform specific models.", keywords = "MDA, PIMs, PSMs, Web application development", } @InProceedings{Markovic:2004:WRKUMLOMDE, author = "Slavisa Markovic", booktitle = "OCL and Model Driven Engineering, {UML} 2004 Conference Workshop, October 12, 2004, Lisbon, Portugal", editor = "Octavian Patrascoiu", pages = "45--59", publisher = "University of Kent", title = "Composition of {UML} Described Refactoring Rules", year = "2004", URL = "http://lgl.epfl.ch/pub/Papers/markovic-2004-coudrr.pdf", abstract = "Refactorings represent a powerful approach for improving the quality of software systems. A refactoring can be seen as a special kind of behavior preserving model transformation. The Object Constraint Language (OCL) together with the metamodel of Unified Modeling Language (UML) can be used for defining rules for refactoring UML models. This paper investigates descriptions of refactoring rules that can be checked, reused and composed. The main contribution of this paper is an algorithm to compute the description of sequentially composed transformations. This allows one to check if a sequence of transformations is successfully applicable for a given model before the transformations are executed on it. Furthermore, it facilitates the analysis of the effects of transformation chain and its usage in other compositions.", } @Article{ABS03, author = "Alfred Strohmeier and Thomas Baar and Shane Sendall", title = "Applying {Fondue} to Specify a Drink Vending Machine", journal = "Electronic Notes in Theoretical Computer Science, Proceedings of OCL 2.0 Workshop at UML'03", year = "2004", volume = "102", pages = "155--173", URL = "http://lgl.epfl.ch/pub/Papers/strohmeier-2003-OclWS.pdf", abstract = "The purpose of the paper is to present our approach for specifying system behavior during analysis, part of the Fondue software development method. The approach is exemplified on a case study, a Drink Vending Machine (DVM). It is based on Operation Schemas and a Protocol Model. The Protocol Model describes the temporal ordering of the system operations by an UML protocol statemachine. An Operation Schema describes the functionality of a system operation by pre- and postconditions; they are written in the Object Constraint Language (OCL), with a few amendments and extensions. Our approach offers a middle ground between the informal descriptions of Use Cases and the solution-oriented models of object interaction in UML. We believe that declarative behavioral specification techniques, like the one proposed in this paper, lead to more confidence in the quality of the software because they allow one to reason about system properties.", } @Article{KeYSoSym2005, author = "Wolfgang Ahrendt and Thomas Baar and Bernhard Beckert and Richard Bubel and Martin Giese and Reiner H{\"a}hnle and Wolfram Menzel and Wojciech Mostowski and Andreas Roth and Steffen Schlager and Peter H. Schmitt", title = "The {KeY} Tool", journal = "Software and System Modeling", volume = "4", number = "1", pages = "32--54", year = "2005", publisher = "Springer", URL = "http://lgl.epfl.ch/pub/Papers/baar-2005-sosymkey.pdf", abstract = "KeY is a tool that provides facilities for formal specification and verification of programs within a commercial platform for UML based software development. Using the KeY tool, formal methods and object-oriented development techniques are applied in an integrated manner. Formal specification is performed using the Object Constraint Language (OCL), which is part of the UML standard. KeY provides support for the authoring and formal analysis of OCL constraints. The target language of KeY based development is Java Card DL, a proper subset of Java for smart card applications and embedded systems. KeY uses a dynamic logic for Java Card DL to express proof obligations, and provides a state-of-the-art theorem prover for interactive and automated verification. Apart from its integration into UML based software development, a characteristic feature of KeY is that formal specification and verification can be introduced incrementally.", } @InProceedings{OCLWSSummary04, author = "Jean B{\'e}zivin and Thomas Baar and Tracy Gardner and Martin Gogolla and Reiner H{\"a}hnle and Heinrich Hussmann and Octavian Patrascoiu and Peter H. Schmitt and Jos Warmer", title = "{OCL} and Model Driven Engineering", booktitle = "UML Modeling Languages and Applications: 2004 Satellite Activities, Lisbon, Portugal, October 11-15, 2004, Revised Selected Papers", pages = "67--75", year = "2005", volume = "3297", series = "LNCS", publisher = "Springer", URL = "http://lgl.epfl.ch/pub/Papers/baar-2004-oclwssummary.pdf", abstract = "Precise modeling is essential to the success of the OMG's Model Driven Architecture initiative. At the modeling level (M1) OCL allows for the precision needed to write executable models. Can OCL be extended to become a full high-level executable language with side-effects? At the meta-level (M2), queries, views and transformations are subjects that will be vital to the success of the OMG's Model Driven Architecture initiative. Will OCL 2.0 become an essential part of the Queries/Views/Transformations standard and what will be its application areas in industry? Can the features of OCL 2.0 be used in the Model Driven Engineering (MDE) approach? This workshop aims at bringing together people from academia that are expected to report on inspiring ideas for innovative application scenarios and tools, and industrial practitioners, which are expected to provide statements on their view of the future of OCL in the context of MDE.", } @InProceedings{BaarSdl05, author = "Thomas Baar", title = "Non-deterministic Constructs in {OCL} -- What does any() Mean", booktitle = "Proc.\ 12th SDL Forum, Grimstad, Norway, June 2005", pages = "32--46", year = "2005", volume = "3530", series = "LNCS", publisher = "Springer", URL = "http://lgl.epfl.ch/pub/Papers/baar-2005-sdl.pdf", abstract = "The Object Constraint Language (OCL) offers so-called non-deterministic constructs which are often only poorly understood even by OCL experts. They are widely ignored in the OCL literature, their semantics given in the official language description of OCL is ill-defined, and none of today's OCL tools support them in a consistent way. The source of the poor understanding and ill-defined semantics is, as identified in this paper, OCL's attempt to adopt the concept of non-determinism from other specification languages with fundamentally different semantical foundations. While this insight helps to improve the understanding of non-deterministic constructs it also shows that there are some formidable obstacles for their integration into OCL. However, in some cases, non-deterministic constructs can be read as abbreviations for more complex deterministic constructs and can help to formulate a specification in a more understandable way. Thus, we suggest to integrate non-deterministic constructs in other specification languages such as Z, JML, Eiffel whose semantical foundations are similar to those of OCL.", } @InProceedings{MarkovicBaarModels05, author = "Slavi\v{s}a Markovi\'{c} and Thomas Baar", title = "Refactoring {OCL} Annotated {UML} Class Diagrams", booktitle = "Proc.\ ACM/IEEE 8th International Conference on Model Driven Engineering Languages and Systems (MoDELS)", pages = "280--294", year = "2005", editor = "Lionel Briand and Clay Williams", volume = "3713", series = "LNCS", publisher = "Springer", URL = "http://lgl.epfl.ch/pub/Papers/baar-2005-models.pdf", abstract = "Refactoring of UML class diagrams is an emerging research topic and heavily inspired by refactoring of program code written in object-oriented implementation languages. Current class diagram refactoring techniques concentrate on the diagrammatic part but neglect OCL constraints that might become syntactically incorrect by changing the underlying class diagram. This paper formalizes the most important refactoring rules for class diagrams and classifies them with respect to their impact on annotated OCL constraints. For refactoring rules, whose application on class diagrams could make attached OCL constraints incorrect, we formally describe how the OCL constraints have to be refactored to preserve their syntactical correctness. Our refactoring rules are defined in the graph-grammar based formalism proposed by the QVT Merge Group for the specification of model transformations.", } @PhdThesis{Baar03Diss, author = "Thomas Baar", title = "{\"{U}}ber die Semantikbeschreibung {OCL}-artiger Sprachen", school = "Fakult{\"{a}}t f{\"}r Informatik, Universit{\"{a}}t Karlsruhe", year = "2003", note = "ISBN 3-8325-0433-8, Logos Verlag, Berlin", URL = "http://www.logos-verlag.de/cgi-bin/engbuchmid?isbn=0433&lng=deu&id=", } @Proceedings{ProcUML04, title = "{UML} 2004 - The Unified Modeling Language: Modeling Languages and Applications", year = "2004", editor = "Thomas Baar and Alfred Strohmeier and Ana Moreira and Stephen J. Mellor", volume = "3273", series = "LNCS", publisher = "Springer", } @InProceedings{FondementBaarECMDA05, author = "Fr\'{e}d\'{e}ric Fondement and Thomas Baar", title = "Making Metamodels Aware of Concrete Syntax", booktitle = "Proc.\ European Conference on Model Driven Architecture (ECMDA)", year = "2005", publisher = "Springer", note = "Accepted for publication", URL = "http://lgl.epfl.ch/pub/Papers/baar-2005-ecmda.pdf", abstract = "Language-centric methodologies, triggered by the success of Domain Specific Languages, rely on precise specifications of modeling languages. While the definition of the abstract syntax is standardized by the 4-layer metamodel architecture of the OMG, most language specifications are held informally for the description of the semantics and the (graphical) concrete syntax. This paper is tackling the problem of specifying the concrete syntax of a language in a formal and non-ambiguous way. We propose to define the concrete syntax by an extension of the already existing metamodel of the abstract syntax, which describes the concepts of the language, with a second layer describing the graphical representation of concepts by visual elements. In addition, an intermediate layer defines how elements of both layers are related to each other. Unlike similar approaches that became the basis of some CASE tools, the intermediate layer is not a pure mapping from abstract to concrete syntax but connects both layers in a flexible, declarative way. We illustrate our approach with a simplified form of statecharts.", }