[TOC]
Importance of Data Modeling in System Design:
- Clarity and Consistency;
- Efficiency;
- Scalability;
- Data Integrity;
- Alignment with Business Requirements;
- Design Guidance.
Data models are classified into various types based on their level of abstraction, scope, and the modeling techniques used:
It is a high-level, abstract representation of the entities, relationships, and attributes in a system, independent of any specific implementation details.
It is a detailed representation of the data structures, relationships, and constraints within a system, specifying how data will be organized and stored in a database.
It is a concrete representation of the database schema, specifying the physical storage structures, file organization, indexing mechanisms, and other implementation details.
Organizes data in a hierarchical structure, where each data element has a parent-child relationship with other elements, forming a tree-like hierarchy.
It represents data using object-oriented concepts such as classes, objects, inheritance, encapsulation, and polymorphism.
The data modeling notation is basically the graphical representation of data models.
ERDs employ entities, attributes, and relationships as visual tools for portraying how the physical structure of a data model consists of its essential elements and their interconnections.
UML, class diagrams is another notation which is used in data modeling, especially the object-oriented design, to depict the classes, attributes, methods, and the which goes on between the objects:
- Association
- Composition and Aggregation
- Inheritance
To create an executable sub-set of UML, the number of model types has therefore been dramatically reduced to three key model types:
- Domain models identify the principal concerns in the system. These are defined using UML class diagrams that include objects, attributes, and associations.
- Class models, in which classes are defined, along with their attributes and operations.
- State models, in which a state diagram is associated with each class and is used to describe the lifecycle of the class.
Behavioral models are models of the dynamic behavior of the system as it is executing. They show what happens or what is supposed to happen when a system responds to a stimulus from its environment. You can think of these stimuli as being of two types:
DataSome data arrives that has to be processed by the system.EventsSome event happens that triggers system processing. Events may have associated data but this is not always the case.
The MDA(model-driven architecture) method recommends that three types of abstract system models should be produced:
- A computation-independent model (CIM) that models the important domain abstractions used in the system.
- A platform-independent model (PIM) that models the operation of the system without reference to its implementation.
- Platform-specific models (PSM) which are transformations of the platform-independent model, with a separate PSM for each application platform.
Multiple platform-specific models
[1] Ian Sommerville. SOFTWARE ENGINEERING . 9th Edition


