(1) The Application Design Gap

The reality in application development (see also)

"Most significant applications involve a conceptual design phase early in the application development lifecycle.

  • The conceptual data model is captured in a database design tool
  • It has little or no connection with the code and the relational schema.
  • The database design diagrams created in the early phases .. usually stay “pinned to a wall”
  • grow increasingly disjoint from the reality of the application implementation"

The inevitable consequence:

  • Modeling helps to limited extend in initial development
  • It does not help in the most expensive phase - maintenance and extension
  • Databases are disjoint from the model and even worse are disjoint from the users
  • Users resort to "Shadow IT" to resolve their problems
(2) Manage Data Modeling with Metasafe
  • to describe and document the relevant information
  • to establish a common language for all stakeholders
    - users, designers, developers, operations
  • Use the Metasafe metaModeler to develop and document data models.more...
  • Data models are stored in the Metasafe repository.
(3) Manage Instance (Test) Data
  • Load / edit  instance test data into the repository
  • Import Excel sheets (metaEXL) or XML-Files with Metasafe
  • Edit instance data useing the Metasafe - metaEditor.
  • The test data are used to test the validity of the data model.
  • Without a thorough test data models degenerate to mere pictures and get lost.
(4) Test and improve the Data Model
  • Test data and queries are used to test the data model.
  • The data requirements of the business use cases are described with the erSQL-query language to perform also a dynamic test of the model.
  • erSQL-queries relate directly to the data model: They are clear and understandable descriptions of the data access.
(5) Continuous Improvement of the Model

The tests derived from the use cases determine

  • whether the model contains all relevant data
  • whether the granularity is correct
  • whether the necessary relationships are established
  • whether the data types are correct

Whenever one of these tests fail -> improve the data model!