Flexibility in modeling languages and tools: a call to arms

In model-based development, the software development effort is centered around a formal description of the proposed software system; a description that can be subjected to various types of analysis and code generation. Based on years of experience with model-based development and formal modeling we believe that the following conjectures describe fundamental obstacles to wide adoption of formal modeling and the potential for automation that comes with it; (1) no single modeling notation will suit all, or even most, modeling needs, (2) no analysis tool will fit all, or even most, analysis tasks, and (3) flexible and stable tools must be made available for realistic evaluations and technology transfer. These conjectures form the basis for the call to arms outlined in this report. To make automated software engineering techniques more useful for more types of developers and allow us to move forward as a community it is crucial that we develop the foundation for building extensible and flexible modeling language processing tools. New common- infrastructure-based approaches are needed as traditional approaches based on file-based processing of intermediate language representations are not adequate. In this report we outline and illustrate the problem and discuss a possible solution. To initiate the discussions in the community, we hypothesize that languages and tools built using higher-order attribute grammars with forwarding can serve as a basis for such flexible language processing tools; tools that will allow us to unify our efforts and help bring our collective work to a broader audience.

[1]  S. Doaitse Swierstra,et al.  Higher order attribute grammars , 1989, PLDI '89.

[2]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[3]  P. Caspi,et al.  A methodology for proving control systems with Lustre and PVS , 1999, Dependable Computing for Critical Applications 7.

[4]  Fausto Giunchiglia,et al.  NUSMV: A New Symbolic Model Verifier , 1999, CAV.

[5]  K. Lundqvist,et al.  Investigating the readability of state-based formal requirements specification languages , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[6]  Mats Per Erik Heimdahl,et al.  Requirements Capture and Evaluation in Nimbus: The Light-Control Case Study , 2000, J. Univers. Comput. Sci..

[7]  Daniel Weise,et al.  Programmable syntax macros , 1993, PLDI '93.

[8]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[9]  Leszek Holenderski,et al.  On the Combination of Synchronous Languages , 1997, COMPOS.

[10]  Jeffrey M. Thompson,et al.  Structuring Formal Control Systems Specifications for Reuse: Surviving Hardware Changes , 2000 .

[11]  Robert Giegerich,et al.  Attribute coupled grammars , 1984, SIGPLAN '84.

[12]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[13]  Angelo Gargantini,et al.  Using model checking to generate tests from requirements specifications , 1999, ESEC/FSE-7.

[14]  Nancy G. Leveson,et al.  Requirements Specification for Process-Control Systems , 1994, IEEE Trans. Software Eng..

[15]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[16]  Görel Hedin,et al.  An Object-Oriented Notation for Attribute Grammars , 1989, European Conference on Object-Oriented Programming.

[17]  Torbjörn Ekman,et al.  The jastadd extensible java compiler , 2007, OOPSLA.

[18]  Eric Van Wyk,et al.  Forwarding in Attribute Grammars for Modular Language Design , 2002, CC.

[19]  Thomas E. Cheatham,et al.  The introduction of definitional facilities into higher level programming languages , 1966, AFIPS '66 (Fall).

[20]  Yannis Smaragdakis,et al.  JTS: tools for implementing domain-specific languages , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[21]  Eric Van Wyk,et al.  Flexible and Extensible Notations for Modeling Languages , 2007, FASE.

[22]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[23]  Stephen R. Adams Modular grammars for programming language prototyping , 1991 .

[24]  Ivar Jacobson,et al.  Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series) , 2005 .

[25]  Jukka Paakki,et al.  Attribute grammar paradigms—a high-level methodology in language implementation , 1995, CSUR.

[26]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.

[27]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[28]  S.P. Miller,et al.  Mode confusion analysis of a flight guidance system using formal methods , 2003, Digital Avionics Systems Conference, 2003. DASC '03. The 22nd.

[29]  Daan Leijen,et al.  Domain specific embedded compilers , 1999, DSL '99.

[30]  Jonathan Rees,et al.  Macros that work , 1991, POPL '91.

[31]  MeijerErik,et al.  Domain specific embedded compilers , 1999 .

[32]  César Muñoz,et al.  An Overview of SAL , 2000 .

[33]  Charles Simonyi The Future is Intentional , 1999, Computer.

[34]  Sanjai Rayadurgam,et al.  Coverage based test-case generation using model checkers , 2001, Proceedings. Eighth Annual IEEE International Conference and Workshop On the Engineering of Computer-Based Systems-ECBS 2001.

[35]  Harald Ganzinger Increasing Modularity and Language-Independency in Automatically Generated Compilers , 1983, Sci. Comput. Program..

[36]  Sanjai Rayadurgam,et al.  Using PVS to Prove Properties of Systems Modelled in a Synchronous Dataflow Language , 2003, ICFEM.

[37]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[38]  Nancy G. Leveson,et al.  Designing specification languages for process control systems: lessons learned and steps to the future , 1999, ESEC/FSE-7.

[39]  Shaoying Liu,et al.  Criteria for generating specification-based tests , 1999, Proceedings Fifth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'99) (Cat. No.PR00434).

[40]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, [1988] Proceedings. The Third Israel Conference on Computer Systems and Software Engineering.

[41]  Burt M. Leavenworth,et al.  Syntax macros and extended translation , 1966, CACM.

[42]  Tim Teitelbaum,et al.  Higher-order attribute grammars and editing environments , 1990, PLDI '90.

[43]  Torbjörn Ekman,et al.  The JastAdd system - modular extensible compiler construction , 2007, Sci. Comput. Program..

[44]  Stephan Merz,et al.  Model Checking , 2000 .

[45]  GanzingerHarald,et al.  Attribute coupled grammars , 1984 .

[46]  R. E. Kurt Stirewalt,et al.  Inference Graphs: A Computational Structure Supporting Generation of Customizable and Correct Analysis Components , 2003, IEEE Trans. Software Eng..

[47]  Uwe Aßmann,et al.  Reference Attribute Grammars for Metamodel Semantics , 2010, SLE.

[48]  Eric Van Wyk,et al.  Silver: an Extensible Attribute Grammar System , 2008, Electron. Notes Theor. Comput. Sci..

[49]  HeitmeyerConstance,et al.  Using model checking to generate tests from requirements specifications , 1999 .

[50]  Torbjörn Ekman,et al.  Pluggable checking and inferencing of nonnull types for Java , 2007, J. Object Technol..

[51]  Robert Giegerich,et al.  Composition and evaluation of attribute coupled grammars , 1988, Acta Informatica.

[52]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.

[53]  Gordon V. Cormack,et al.  Modular Attribute Grammars , 1990, Comput. J..

[54]  Torbjörn Ekman,et al.  Rewritable Reference Attributed Grammars , 2004, ECOOP.

[55]  Eric Van Wyk,et al.  Attribute Grammar-Based Language Extensions for Java , 2007, ECOOP.

[56]  WeiseDaniel,et al.  Programmable syntax macros , 1993 .

[57]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[58]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[59]  Joseph Sifakis,et al.  IF: An intermediate representation for SDL and its applications , 1999, SDL Forum.

[60]  Mats Per Erik Heimdahl,et al.  Deviation analysis through model checking , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[61]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[62]  Kathryn L. Heninger Specifying Software Requirements for Complex Systems: New Techniques and Their Application , 2001, IEEE Transactions on Software Engineering.

[63]  Matthias Felleisen,et al.  Hygienic macro expansion , 1986, LFP '86.

[64]  John Tang Boyland,et al.  Remote attribute grammars , 2005, JACM.

[65]  Steve Sims,et al.  TAME: A PVS Interface to Simplify Proofs for Automata Models , 1998 .

[66]  Mats Per Erik Heimdahl,et al.  Model checking RSML/sup -e/ requirements , 2002, 7th IEEE International Symposium on High Assurance Systems Engineering, 2002. Proceedings..

[67]  Nancy G. Leveson,et al.  Completeness and Consistency in Hierarchical State-Based Requirements , 1996, IEEE Trans. Software Eng..

[68]  Nicolas Halbwachs,et al.  Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE , 1992, IEEE Trans. Software Eng..

[69]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[70]  Constance L. Heitmeyer,et al.  SCR: a toolset for specifying and analyzing requirements , 1995, COMPASS '95 Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security'.

[71]  Didier Parigot,et al.  Specification and Implementation of Grammar Couplings using Attribute Grammars , 1993, PLILP.

[72]  Nancy A. Day,et al.  Template Semantics for Model-Based Notations , 2003, IEEE Trans. Software Eng..

[73]  Wilson C. Hsieh,et al.  Maya: multiple-dispatch syntax extension in Java , 2002, PLDI '02.

[74]  Mats Per Erik Heimdahl,et al.  Proving the shalls , 2003, International Journal on Software Tools for Technology Transfer.

[75]  Mats Per Erik Heimdahl,et al.  Specification-based prototyping for embedded systems , 1999, ESEC/FSE-7.

[76]  Daniel M. Yellin,et al.  Composable attribute grammars: support for modularity in translator design and implementation , 1992, POPL '92.

[77]  William M. Waite,et al.  Modularity and reusability in attribute grammars , 1994, Acta Informatica.