A declarative approach for software modeling
Pages 18 - 32
Abstract
In this paper we describe a method for encoding software models as Prolog programs, and how to use these programs to support incremental development. Requirements, alternative designs, and implementation patterns are encoded as predicates in the program, and define a search routine, the solutions of which are possible implementations of the requirements. Under default operation, this routine validates that a given parsed code is compatible with one of these solutions. Additionally, the same search routine can be executed by special interpreters that provide traceability and code generation as well. Code generation may be complete or partial, allowing the user to combine hand-written and generated code. By customizing the interpreter, the user can generate an outline of the design or a tasks list, instead of code. We demonstrate these techniques using Java and SQL, but our approach is applicable to other programming languages and paradigms as well.
References
[1]
Abrial, J.: The B-book: assigning programs to meanings. Cambridge University Press (1996)
[2]
Blaha, M., Premerlani, W.: Object-oriented modeling and design for database applications. Prentice-Hall, Inc., Upper Saddle River (1997)
[3]
Clarke, J., Dolado, J., Harman, M., Hierons, R., Jones, B., Lumkin, M., Mitchell, B., Mancoridis, S., Rees, K., Roper, M., Shepperd, M.: Reformulating software engineering as a search problem. IEEE Software 150(3), 161-175 (2003)
[4]
Favre, J. M.: Towards a basic theory to model model driven engineering. In: 3rd Workshop in Software Model Engineering, WiSME (2004)
[5]
Fowler, M.: Analysis patterns: reusable objects models. Addison-Wesley Longman Publishing Co., Inc., Boston (1997)
[6]
Goldberg, M., Wiener, G.: Round-Trip Modeling using OPM/PL. In: International Conference on Software Science, Technology and Engineering, SwSTE (2010)
[7]
Harman, M., Clark, J.: Metrics are fitness functions too. In: 10th International Symposium on Software Metrics, pp. 58-69 (2004)
[8]
Kang, K.: Feature-oriented domain analysis (FODA) feasibility study. Technical report, Carnegie-Mellon University, Pittsburgh PA, USA (1990)
[9]
Kniesel, G., Hannemann, J., Rho, T.: A comparison of logic-based infrastructures for concern detection and extraction. In: 3rd Workshop on Linking Aspect Technology and Evolution, p. 6. ACM (2007)
[10]
Object Management Group: Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification (2008), http://www.omg.org/spec/QVT/1.0/
[11]
ROOTS Group: The JTransformer project web page, http://sewiki.iai.uni-bonn.de/research/jtransformer/
[12]
Schmidt, D.: Guest editor's introduction: Model-driven engineering. Computer 39(2), 25-31 (2006)
[13]
Sefika, M., Sane, A., Campbell, R.: Monitoring compliance of a software system with its high-level design models. In: 18th International Conference for Software Engineering, ICSE, vol. 18, pp. 387-396 (1996)
[14]
Shoham, Y.: Artificial Intelligence Techniques in PROLOG. Morgan Kaufmann Publishers Inc., San Francisco (1993)
[15]
Soley, R.: The OMG Staff Strategy Group: Model-Driven Architecture. White paper (November 2000), http://www.omg.org/cgi-bin/doc?omg/00-11-05
[16]
Sterling, L., Shapiro, E.: The art of Prolog. MIT Press, Cambridge (1994)
[17]
Stevens, P.: Bidirectional model transformations in QVT: Semantic issues and open questions. Software and Systems Modeling 9(1), 7-20 (2010)
[18]
Wiener, G.: Heuristic partial evaluator source code, http://www.cs.bgu.ac.il/~gwiener/software/hpe/
[19]
Wiener, G.: Persistent Semantic Information. PhD thesis, Ben-Gurion University (March 2011) (to be published)
[20]
Winkler, S., Pilgrim, J.: A survey of traceability in requirements engineering and model-driven development. Software and System Modeling 9, 529-565 (2010)
- A declarative approach for software modeling
Recommendations
Declarative Software Development: Distilled Tutorial
PPDP '14: Proceedings of the 16th International Symposium on Principles and Practice of Declarative ProgrammingSoftware development could be said to be declarative, if declarative programming languages were used significantly in the development of a software system. Software development could also be said to be declarative, if lightweight or heavyweight formal ...
Comments
Please enable JavaScript to view thecomments powered by Disqus.Information & Contributors
Information
Published In
Sponsors
- The Association for Logic Programming: The Association for Logic Programming
- Microsoft Research, Cambridge, UK
In-Cooperation
Publisher
Springer-Verlag
Berlin, Heidelberg
Publication History
Published: 23 January 2012
Check for updates
Qualifiers
- Article
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 0Total Downloads
- Downloads (Last 12 months)0
- Downloads (Last 6 weeks)0
Reflects downloads up to 12 Nov 2024