A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
The Object-Z specification language
The Object-Z specification language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Toward automatic program synthesis
Communications of the ACM
A Method of Programming
How to Reconcile Formal Specifications and Automatic Programming: The Descartes System
APSEC '98 Proceedings of the Fifth Asia Pacific Software Engineering Conference
MDA Explained: The Model Driven Architecture: Practice and Promise
MDA Explained: The Model Driven Architecture: Practice and Promise
The Object Constraint Language: Getting Your Models Ready for MDA
The Object Constraint Language: Getting Your Models Ready for MDA
Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
Automatic Maintenance of Association Invariants
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Formality, Evolution, and Model-driven Software Engineering
Electronic Notes in Theoretical Computer Science (ENTCS)
Behavioural specifications from class models
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
A step towards merging xUML and CSP || B
Rigorous Methods for Software Construction and Analysis
An overview of the SystemB collaborative project
FACS-FMI'07 Proceedings of the 2007th internatioanal conference on Formal Methods in Industry
Translation of Z specifications to executable code: Application to the database domain
Information and Software Technology
Hi-index | 0.01 |
This paper explains how a declarative method language, based upon the formal notations of Z and B, can be used as a basis for automatic code generation. The language is used to describe the intended effect of operations, or methods, upon the components of an object model; each method is defined by a pair of predicates: a precondition, and a post-condition. Following the automatic incorporation of model invariants, including those arising from class associations, these predicates are extended-again, automatically-to address issues of consistency, definition, and dependency, before being translated into imperative programs. The result is a formal method for transforming object models into complete, working systems.