Specifications are not (necessarily) executable
Software Engineering Journal
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
The Z notation: a reference manual
The Z notation: a reference manual
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Specification in B: An Introduction Using the B Toolkit
Specification in B: An Introduction Using the B Toolkit
A Discipline of Programming
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Borland Delphi 6: Developer's Guide
Borland Delphi 6: Developer's Guide
From Play-In Scenarios to Code: An Achievable Dream
FASE '00 Proceedings of the Third Internationsl Conference on Fundamental Approaches to Software Engineering: Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 2000
ZUM '97 Proceedings of the 10th International Conference of Z Users on The Z Formal Specification Notation
More Powerful Z Data Refinement: Pushing the State of the Art in Industrial Refinement
ZUM '98 Proceedings of the 11th International Conference of Z Users on The Z Formal Specification Notation
A Formal Semantics for Z and the Link between Z and the Relational Algebra
VDM '90 Proceedings of the Third International Symposium of VDM Europe on VDM and Z - Formal Methods in Software Development
On the Derivation of Executable Database Programs from Formal Specifications
FME '93 Proceedings of the First International Symposium of Formal Methods Europe on Industrial-Strength Formal Methods
Validation of UML Models Thanks to Z and Lustre
FME '01 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods for Increasing Software Productivity
A Translation of Statecharts to Esterel
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II
Introducing software engineering by means of Extreme Programming
Proceedings of the 25th International Conference on Software Engineering
A Translation of Statecharts into Signal Approach of Time, Interoperability
CSD '98 Proceedings of the 1998 International Conference on Application of Concurrency to System Design
An Introduction to Database Systems
An Introduction to Database Systems
Generalising the Z Schema Calculus: Database Schemas and Beyond
APSEC '03 Proceedings of the Tenth Asia-Pacific Software Engineering Conference Software Engineering Conference
An Approach to Animating Z Specifications
COMPSAC '95 Proceedings of the 19th International Computer Software and Applications Conference
A Formal Approach to Requirements-Based Programming
ECBS '05 Proceedings of the 12th IEEE International Conference and Workshops on Engineering of Computer-Based Systems
Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications
Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Generating Java Skeletal Code with Design Contracts from Specifications in a Subset of Object Z
ICIS-COMSAR '06 Proceedings of the 5th IEEE/ACIS International Conference on Computer and Information Science and 1st IEEE/ACIS International Workshop on Component-Based Software Engineering,Software Architecture and Reuse
Intelligent Systems and Formal Methods in Software Engineering
IEEE Intelligent Systems
ICECCS '07 Proceedings of the 12th IEEE International Conference on Engineering Complex Computer Systems
From Predicates to Programs: The Semantics of a Method Language
Electronic Notes in Theoretical Computer Science (ENTCS)
VDMTools: advances in support for formal modeling in VDM
ACM SIGPLAN Notices
Z2SAL - Building a Model Checker for Z
ABZ '08 Proceedings of the 1st international conference on Abstract State Machines, B and Z
Alchemy: transmuting base alloy specifications into implementations
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Refinement and verification in component-based model-driven design
Science of Computer Programming
From a B formal specification to an executable code: application to the relational database domain
Information and Software Technology
Beyond assertions: advanced specification and verification with JML and ESC/Java2
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Realising the benefits of formal methods
ICFEM'05 Proceedings of the 7th international conference on Formal Methods and Software Engineering
Strategic term rewriting and its application to a VDM-SL to SQL conversion
FM'05 Proceedings of the 2005 international conference on Formal Methods
Automatic translation from Circus to Java
FM'06 Proceedings of the 14th international conference on Formal Methods
Automatic translation from combined B and CSP specification to java programs
B'07 Proceedings of the 7th international conference on Formal Specification and Development in B
A concurrent language for refinement
IW-FM'01 Proceedings of the 5th Irish conference on Formal Methods
3FACS'98 Proceedings of the 3rd BCS-FACS conference on Northern Formal Methods
Hi-index | 0.00 |
Context: It is well-known that the use of formal methods in the software development process results in high-quality software products. Having specified the software requirements in a formal notation, the question is how they can be transformed into an implementation. There is typically a mismatch between the specification and the implementation, known as the specification-implementation gap. Objective: This paper introduces a set of translation functions to fill the specification-implementation gap in the domain of database applications. We only present the formal definition, not the implementation, of the translation functions. Method: We chose Z, SQL and Delphi languages to illustrate our methodology. Because the mathematical foundation of Z has many properties in common with SQL, the translation functions from Z to SQL are derived easily. For the translation of Z to Delphi, we extend Delphi libraries to support Z mathematical structures such as sets and tuples. Then, based on these libraries, we derive the translation functions from Z to Delphi. Therefore, we establish a formal relationship between Z specifications and Delphi/SQL code. To prove the soundness of the translation from a Z abstract schema to the Delphi/SQL code, we define a Z design-level schema. We investigate the consistency of the Z abstract schema with the Z design-level schema by using Z refinement rules. Then, by the use of the laws of Morgan refinement calculus, we prove that the Delphi/SQL code refines the Z design-level schema. Results: The proposed approach can be used to build the correct prototype of a database application from its specification. This prototype can be evolved, or may be used to validate the software requirements specification against user requirements. Conclusion: Therefore, the work presented in this paper reduces the overall cost of the development of database applications because early validation reveals requirement errors sooner in the software development cycle.