Information systems often hold data of considerable value. Their continuing development or mainte... more Information systems often hold data of considerable value. Their continuing development or maintenance will often necessitate evolution of the system and migration of the data from one version to the next: a process that may be expensive, time-consuming, and prone to error. That such a process remains a source of challenges, is recognised by both academia and industry. In current practice, data migration is often considered only in the later stages of development, leaving critical data to be transformed and loaded by handwritten scripts, long after the design process has been completed. The advent of model-driven engineering offers an opportunity to consider the question of information system evolution and data migration earlier in the development process. A precise account of the proposed changes to an existing system model can be used to predict the consequences for existing data, and to generate the necessary data migration implementation. This dissertation shows how automatic data migration can be achieved by extending the definition of a data modeling language to include modellevel operations, each of which corresponds to the addition, modification, or deletion of a model component. Using the Unified Modeling Language (UML) notation as an example, we show how the specification of these operations may be translated into an abstract program in the Abstract Machine Notation (AMN), employed in the B-method, and then formally checked for consistency and applicability prior to translation into a concrete programming notation, such as Structured Query Language (SQL). Employee PersonalFile file employee Department employee department manages managedBy Figure 2.2: An ORM model diagram for a simplified Employee Information System the diagram does not explicitly state whether the employee works for the department, or the department works for the employee). Outside academia, Chen's notation seems to be rarely used nowadays. One important reason may be that there are so many ER notation versions, with no single standard. 2.1.2 Fact-Oriented modeling Object Role Modeling (ORM) is one of the most commonly cited Fact-Oriented modeling method [27]. It began in the early 1970s as a semantic modeling approach that views the world simply in terms of objects playing roles (taking parts in relationships). ORM has appeared in a variety of forms such as the natural-language information analysis method (NIAM) [74]. ORM includes various procedures to assist in the creation and transformation of data models. A key step in its design procedure is the verbalization of information examples relevant to the application, such as sample reports expected from the system. ORM sentence types (and constraints) may be specified either textually or graphically. Domain concepts are shown in ORM as named ellipses and must have a reference scheme, as an abbreviation of the relevant association (e.g., Employee has a name). In ORM, a role is a part played in a relationship or association. A relationship is shown as a named sequence of one or more role boxes, each connected to the object type that plays it.
This paper reports upon ten years of experience in the development and application of model-drive... more This paper reports upon ten years of experience in the development and application of model-driven technology. The technology in question was inspired by work on formal methods: in particular, by the B toolkit. It was used in the development of a number of information systems, all of which were successfully deployed in real world situations. The paper reports upon three systems: one that informed the design of the technology, one that was used by an internal customer, and one that is currently in use outside the development organisation. It records a number of lessons regarding the application of model-driven techniques.
Abstract This paper reports upon ten years of experience in the development and application of mo... more Abstract This paper reports upon ten years of experience in the development and application of model-driven technology. The technology in question was inspired by work on formal methods: in particular, by the B toolkit. It was used in the development of a number of information systems, all of which were successfully deployed in real world situations.
The automatic generation of components from abstract models greatly facilitates information syste... more The automatic generation of components from abstract models greatly facilitates information systems evolution, as changes to the model are easier to comprehend than changes to program code or service definitions. At each evolutionary step, however, any data already held in the system must be migrated to the new version, and to do this manually can be time-consuming and error-prone. This paper shows that it is possible to generate, automatically, an appropriate sequence of data transformations.
This paper introduces an approach to software development in which a series of working implemen-t... more This paper introduces an approach to software development in which a series of working implemen-tations are generated automatically from a series of formal specifications. The implementations are data stores, communicating through standard protocols. The specifications are ...
This paper shows how ideas from a combination of formal techniques can be used to enable the auto... more This paper shows how ideas from a combination of formal techniques can be used to enable the automatic generation of databases from precise object models. It explores how the specification of an object database design can be formalized in terms of method preconditions, method postconditions, and invariant properties - many of which will correspond to integrity constraints for the data representation. Individual method specifications can be completed to reflect constraints expressed elsewhere in the model, composed to specify transactions, and then translated into executable code, to produce a reliable data store with a programming interface. The process of completion, composition, and translation may be automated to produce a model-driven approach to the development of object databases
This paper introduces an approach to software development in which a series of working implemen- ... more This paper introduces an approach to software development in which a series of working implemen- tations are generated automatically from a series of formal specifications. The implementations are data stores, communicating through standard protocols. The specifications are precise object models, in which operations are described in terms of pre- and post-conditions. The approach is evolutionary, in the sense that the specification may evolve while the system is in use, in response to changes in requirements, and any changes to the specification are automatically reflected in the structure of the implementation, and in the representation of any data currently stored.
Information systems often hold data of considerable value. Their continuing development or mainte... more Information systems often hold data of considerable value. Their continuing development or maintenance will often necessitate evolution of the system and migration of the data from one version to the next: a process that may be expensive, time-consuming, and prone to error. That such a process remains a source of challenges, is recognised by both academia and industry. In current practice, data migration is often considered only in the later stages of development, leaving critical data to be transformed and loaded by handwritten scripts, long after the design process has been completed. The advent of model-driven engineering offers an opportunity to consider the question of information system evolution and data migration earlier in the development process. A precise account of the proposed changes to an existing system model can be used to predict the consequences for existing data, and to generate the necessary data migration implementation. This dissertation shows how automatic data migration can be achieved by extending the definition of a data modeling language to include modellevel operations, each of which corresponds to the addition, modification, or deletion of a model component. Using the Unified Modeling Language (UML) notation as an example, we show how the specification of these operations may be translated into an abstract program in the Abstract Machine Notation (AMN), employed in the B-method, and then formally checked for consistency and applicability prior to translation into a concrete programming notation, such as Structured Query Language (SQL). Employee PersonalFile file employee Department employee department manages managedBy Figure 2.2: An ORM model diagram for a simplified Employee Information System the diagram does not explicitly state whether the employee works for the department, or the department works for the employee). Outside academia, Chen's notation seems to be rarely used nowadays. One important reason may be that there are so many ER notation versions, with no single standard. 2.1.2 Fact-Oriented modeling Object Role Modeling (ORM) is one of the most commonly cited Fact-Oriented modeling method [27]. It began in the early 1970s as a semantic modeling approach that views the world simply in terms of objects playing roles (taking parts in relationships). ORM has appeared in a variety of forms such as the natural-language information analysis method (NIAM) [74]. ORM includes various procedures to assist in the creation and transformation of data models. A key step in its design procedure is the verbalization of information examples relevant to the application, such as sample reports expected from the system. ORM sentence types (and constraints) may be specified either textually or graphically. Domain concepts are shown in ORM as named ellipses and must have a reference scheme, as an abbreviation of the relevant association (e.g., Employee has a name). In ORM, a role is a part played in a relationship or association. A relationship is shown as a named sequence of one or more role boxes, each connected to the object type that plays it.
This paper reports upon ten years of experience in the development and application of model-drive... more This paper reports upon ten years of experience in the development and application of model-driven technology. The technology in question was inspired by work on formal methods: in particular, by the B toolkit. It was used in the development of a number of information systems, all of which were successfully deployed in real world situations. The paper reports upon three systems: one that informed the design of the technology, one that was used by an internal customer, and one that is currently in use outside the development organisation. It records a number of lessons regarding the application of model-driven techniques.
Abstract This paper reports upon ten years of experience in the development and application of mo... more Abstract This paper reports upon ten years of experience in the development and application of model-driven technology. The technology in question was inspired by work on formal methods: in particular, by the B toolkit. It was used in the development of a number of information systems, all of which were successfully deployed in real world situations.
The automatic generation of components from abstract models greatly facilitates information syste... more The automatic generation of components from abstract models greatly facilitates information systems evolution, as changes to the model are easier to comprehend than changes to program code or service definitions. At each evolutionary step, however, any data already held in the system must be migrated to the new version, and to do this manually can be time-consuming and error-prone. This paper shows that it is possible to generate, automatically, an appropriate sequence of data transformations.
This paper introduces an approach to software development in which a series of working implemen-t... more This paper introduces an approach to software development in which a series of working implemen-tations are generated automatically from a series of formal specifications. The implementations are data stores, communicating through standard protocols. The specifications are ...
This paper shows how ideas from a combination of formal techniques can be used to enable the auto... more This paper shows how ideas from a combination of formal techniques can be used to enable the automatic generation of databases from precise object models. It explores how the specification of an object database design can be formalized in terms of method preconditions, method postconditions, and invariant properties - many of which will correspond to integrity constraints for the data representation. Individual method specifications can be completed to reflect constraints expressed elsewhere in the model, composed to specify transactions, and then translated into executable code, to produce a reliable data store with a programming interface. The process of completion, composition, and translation may be automated to produce a model-driven approach to the development of object databases
This paper introduces an approach to software development in which a series of working implemen- ... more This paper introduces an approach to software development in which a series of working implemen- tations are generated automatically from a series of formal specifications. The implementations are data stores, communicating through standard protocols. The specifications are precise object models, in which operations are described in terms of pre- and post-conditions. The approach is evolutionary, in the sense that the specification may evolve while the system is in use, in response to changes in requirements, and any changes to the specification are automatically reflected in the structure of the implementation, and in the representation of any data currently stored.
Uploads
Papers by Edward Crichton