Monday, January 9, 2012

Data Flow Diagrams & Data Models

In the engineering, technology and system development world, a model is anything used in any way to represent something. Some models are physical objects.  For instance, a toy model which may be assembled, and may even be made to work like the object it represents. Other models are conceptual models, and are used to represent concepts and/or processes which are part of a system. Each of these types of model is used to help us know and understand the subject matter we are trying to represent.

There are a number of visual and descriptive techniques used by software engineers and business analysts to model the “as is” and “to be” nature of the system they are analyzing. An earlier post of mine discussed two such models: scenarios and use cases.  In this post I'd like to discusses two other popular modeling technique: data flow diagrams & data modeling.

Data Flow Diagrams provide visual representations of how information moves through a system.  They are used as part of an overall structured analysis approach for converting business requirements into design specifications, and are typically used as a prerequisite activity to data modeling.  Data flow diagrams give the business analyst and software programmers a better understanding of the actors and processes involved in a system by showing:
  • The external entities that provide data to, or receive data from, a system
  • The processes of a system that transform the data
  • The data stores in which data is collected
  • The data flows by which data moves between each of the 3 items above


A data model is used to describe the concepts relevant to a domain, the relationships between those concepts and the information associated with them.  It usually takes the form of a diagram supported by textual descriptions, used to visually represent the types of people, places and things that are important to the system.  While the data flow diagram describes how the data & information flows within a system, the data model is used to better describe the actual data within that system.  Logical data models describe the information relevant to the organization, while physical data models descirbe how data is stored and managed in a software application (i.e. the data store). 

Below is the visual representation of a simple data model that could be used to store demographic information about people living in a city:


No comments:

Post a Comment