Skip to main content

A Modeling Language for Program Design and Synthesis

  • Chapter
Advances in Software Engineering

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5316))

  • 447 Accesses

Abstract

Software engineers define structures called programs and use tools to manipulate, transform, and analyze them. A modeling language is needed to express program design and synthesis as a computation, and elementary algebra fits the bill. I review recent results in automated software design, testing, and maintenance and use the language of elementary mathematics to explain and relate them. Doing so outlines a general and simple way to express and under stand the relationships between different topics in program synthesis.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. ASME web site, http://www.asmesolutions.org/Energy/Nuclear.cfm

  2. Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components, October 1992. ACM TOSEM, New York (1992)

    Google Scholar 

  3. Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: Tools for Implementing Domain-Specific Languages. In: ICSR 1998 (1998)

    Google Scholar 

  4. Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE TSE (2004)

    Google Scholar 

  5. Batory, D., Smith, D.: Finite Map Spaces and Quarks: Algebras of Program Structure. University of Texas at Austin, Dept. of Computer Sciences, TR-07-66 (2007)

    Google Scholar 

  6. Batory, D.: Program Refactorings, Program Synthesis, and Model-Driven Design. In: Krishnamurthi, S., Odersky, M. (eds.) CC 2007. LNCS, vol. 4420, pp. 156–171. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  7. Batory, D., Börger, E.: Modularizing Theorems for Software Product Lines: The Jbook Case Study. JUCS (to appear)

    Google Scholar 

  8. Baxter, I.D.: Design Maintenance Systems. In: CACM (April 1992)

    Google Scholar 

  9. Bracha, G., Cook, W.: Mixin-Based Inheritance. In: OOPSLA and ECOOP (1990)

    Google Scholar 

  10. Bravenboer, M., Kalleberg, K.T., Vermaas, R., Visser, E.: Stratego/XT 0.17. A Language and Toolset for Program Transformation. Sci. of Computer Programming (2008)

    Google Scholar 

  11. Chang, J., Richardson, D.J.: Structural Specification-Based Testing: Automated Support and Experimental Evaluation. ACM SIGSOFT/FSE, New York (1999)

    Google Scholar 

  12. Czarnecki, K., Eisenecker, U.: Generative Programming Methods, Tools, and Applications. Addison-Wesley, Boston (2000)

    Google Scholar 

  13. Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and Mixins. In: POPL (1998)

    Google Scholar 

  14. Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (2005)

    Google Scholar 

  15. Goodenough, J., Gerhart, S.: Toward a Theory of Test Data Selection, June. IEEE TSE (June 1975)

    Google Scholar 

  16. Jackson, D., Schechter, I., Shlyakhter, I.: ALCOA: The Alloy Constraint Analyzer. In: ICSE 2000 (2000)

    Google Scholar 

  17. Jackson, D.: Alloy: A Lightweight Object Modeling Notation. ACM TOSEM (April 2002)

    Google Scholar 

  18. Jackson, D.: Software Abstractions: Logic, Language and Analysis. The MIT Press, Cambridge (2006)

    Google Scholar 

  19. Kästner, C., Apel, S., Kuhlemann, M.: Granularity in Software Product Lines. In: ICSE 2008 (2008)

    Google Scholar 

  20. Kiczales, G., et al.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001, vol. 2072, p. 327. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  21. Kim, C.H.P., Kästner, C., Batory, D.: On the Modularity of Feature Interactions (submitted 2008)

    Google Scholar 

  22. Krishnamurthi, S., Fisler, K.: Modular Verification of Collaboration-Based Software Designs. In: Matsui, M. (ed.) FSE 2001, vol. 2355. Springer, Heidelberg (2002)

    Google Scholar 

  23. Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying Aspect Advice Modularly. ACM Press, New York (2004)

    Book  Google Scholar 

  24. Khurshid, S.: Generating Structurally Complex Tests from DeclarativeConstraints., Ph.D. Thesis, MIT EECS (2003)

    Google Scholar 

  25. Lopez-Herrejon, R., Batory, D., Lengauer, C.: A Disciplined Approach to Aspect Composition. In: PEPM 2006 (2006)

    Google Scholar 

  26. Lin, A., Bond, M., Clulow, J.: Modeling Partial Attacks With Alloy. In: Security Protocols Workshop (SPW) (April 2007)

    Google Scholar 

  27. Madsen, O.L., Møller-Pedersen, B.: Virtual Classes: A Powerful Mechanism in Object-Oriented Programming. In: OOPSLA 1989 (1989)

    Google Scholar 

  28. Marinov, D., Khurshid, S.: TestEra: A Novel Framework for Automated Testing of Java Programs. In: ASE (2001)

    Google Scholar 

  29. Murphy-Hill, E.R., Quitslund, P.J., Black, A.P.: Removing Duplication from java.io: A Case Study Using Traits. In: OOPSLA 2005 (2005)

    Google Scholar 

  30. Pavlovic, D., Smith, D.R.: Software Development by Refinement. In: Aichernig, B.K., Maibaum, T. (eds.) Formal Methods at the Crossroads. From Panacea to Foundational Support. LNCS, vol. 2757, pp. 267–286. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  31. Pierce, B.: Basic Category Theory for Computer Scientists. MIT Press, Cambridge (1991)

    MATH  Google Scholar 

  32. Selinger, P., Astrahan, M.M., Chamberlin, D.D., Lorie, R.A., Price, T.G.: Access Path Selection in a Relational Database System. In: ACM SIGMOD (1979)

    Google Scholar 

  33. Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. In: ACM TOSEM (April 2002)

    Google Scholar 

  34. Stahl, T., Voelter, M.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, Chichester (2006)

    Google Scholar 

  35. Sztipanovits, J.: Generative Programming for Embedded Systems. In: GCSE (2002)

    Google Scholar 

  36. Taghdiri, M.: Inferring Specifications to Detect Errors in Code. In: ASE (2004)

    Google Scholar 

  37. Torlak, E., Jackson, D.: Kodkod: A Relational Model Finder. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 632–647. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  38. Trujillo, S., Azanza, M., Diaz, O.: Generative Metaprogramming. In: GPCE 2007 (2007)

    Google Scholar 

  39. Trujillo, S., Batory, D., Diaz, O.: Feature Oriented Model Driven Development: A Case Study for Portlets. In: ICSE 2005 (2007)

    Google Scholar 

  40. Uzuncaova, E., Garcia, D., Khurshid, S., Batory, D.: A Specification-based Approach to Testing Software Product Lines. Poster Paper ACM SIGSOFT (2007)

    Google Scholar 

  41. Uzuncaova, E., Khurshid, S.: Constraint Prioritization for Efficient Analysis of Declarative Models. In: Symposium on Formal Methods, FM (May 2008)

    Google Scholar 

  42. Uzuncaova, E., Garcia, D., Khurshid, S., Batory, D.: Testing Software Product Lines Using Incremental Test Generation (submitted 2008)

    Google Scholar 

  43. Wikipedia, Multiobjective optimization, http://en.wikipedia.org/wiki/Multiobjective_optimization

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Batory, D. (2008). A Modeling Language for Program Design and Synthesis. In: Börger, E., Cisternino, A. (eds) Advances in Software Engineering. Lecture Notes in Computer Science, vol 5316. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89762-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89762-0_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89761-3

  • Online ISBN: 978-3-540-89762-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics