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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
ASME web site, http://www.asmesolutions.org/Energy/Nuclear.cfm
Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components, October 1992. ACM TOSEM, New York (1992)
Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: Tools for Implementing Domain-Specific Languages. In: ICSR 1998 (1998)
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE TSE (2004)
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)
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)
Batory, D., Börger, E.: Modularizing Theorems for Software Product Lines: The Jbook Case Study. JUCS (to appear)
Baxter, I.D.: Design Maintenance Systems. In: CACM (April 1992)
Bracha, G., Cook, W.: Mixin-Based Inheritance. In: OOPSLA and ECOOP (1990)
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)
Chang, J., Richardson, D.J.: Structural Specification-Based Testing: Automated Support and Experimental Evaluation. ACM SIGSOFT/FSE, New York (1999)
Czarnecki, K., Eisenecker, U.: Generative Programming Methods, Tools, and Applications. Addison-Wesley, Boston (2000)
Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and Mixins. In: POPL (1998)
Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (2005)
Goodenough, J., Gerhart, S.: Toward a Theory of Test Data Selection, June. IEEE TSE (June 1975)
Jackson, D., Schechter, I., Shlyakhter, I.: ALCOA: The Alloy Constraint Analyzer. In: ICSE 2000 (2000)
Jackson, D.: Alloy: A Lightweight Object Modeling Notation. ACM TOSEM (April 2002)
Jackson, D.: Software Abstractions: Logic, Language and Analysis. The MIT Press, Cambridge (2006)
Kästner, C., Apel, S., Kuhlemann, M.: Granularity in Software Product Lines. In: ICSE 2008 (2008)
Kiczales, G., et al.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001, vol. 2072, p. 327. Springer, Heidelberg (2001)
Kim, C.H.P., Kästner, C., Batory, D.: On the Modularity of Feature Interactions (submitted 2008)
Krishnamurthi, S., Fisler, K.: Modular Verification of Collaboration-Based Software Designs. In: Matsui, M. (ed.) FSE 2001, vol. 2355. Springer, Heidelberg (2002)
Krishnamurthi, S., Fisler, K., Greenberg, M.: Verifying Aspect Advice Modularly. ACM Press, New York (2004)
Khurshid, S.: Generating Structurally Complex Tests from DeclarativeConstraints., Ph.D. Thesis, MIT EECS (2003)
Lopez-Herrejon, R., Batory, D., Lengauer, C.: A Disciplined Approach to Aspect Composition. In: PEPM 2006 (2006)
Lin, A., Bond, M., Clulow, J.: Modeling Partial Attacks With Alloy. In: Security Protocols Workshop (SPW) (April 2007)
Madsen, O.L., Møller-Pedersen, B.: Virtual Classes: A Powerful Mechanism in Object-Oriented Programming. In: OOPSLA 1989 (1989)
Marinov, D., Khurshid, S.: TestEra: A Novel Framework for Automated Testing of Java Programs. In: ASE (2001)
Murphy-Hill, E.R., Quitslund, P.J., Black, A.P.: Removing Duplication from java.io: A Case Study Using Traits. In: OOPSLA 2005 (2005)
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)
Pierce, B.: Basic Category Theory for Computer Scientists. MIT Press, Cambridge (1991)
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)
Smaragdakis, Y., Batory, D.: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. In: ACM TOSEM (April 2002)
Stahl, T., Voelter, M.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, Chichester (2006)
Sztipanovits, J.: Generative Programming for Embedded Systems. In: GCSE (2002)
Taghdiri, M.: Inferring Specifications to Detect Errors in Code. In: ASE (2004)
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)
Trujillo, S., Azanza, M., Diaz, O.: Generative Metaprogramming. In: GPCE 2007 (2007)
Trujillo, S., Batory, D., Diaz, O.: Feature Oriented Model Driven Development: A Case Study for Portlets. In: ICSE 2005 (2007)
Uzuncaova, E., Garcia, D., Khurshid, S., Batory, D.: A Specification-based Approach to Testing Software Product Lines. Poster Paper ACM SIGSOFT (2007)
Uzuncaova, E., Khurshid, S.: Constraint Prioritization for Efficient Analysis of Declarative Models. In: Symposium on Formal Methods, FM (May 2008)
Uzuncaova, E., Garcia, D., Khurshid, S., Batory, D.: Testing Software Product Lines Using Incremental Test Generation (submitted 2008)
Wikipedia, Multiobjective optimization, http://en.wikipedia.org/wiki/Multiobjective_optimization
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)