(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!