What is CIMap?

At first

Using diagrams is very effective when you make ideas, design something and so on, You might have used the following diagrams.

Mind MapVery flexible. You can expand or concentrate your ideas. It is effective on brain storming etc.
Data Flow DiagramNotation is very simple, so it is very easy to understand.
UMLIt is known as the standard of system design. In my opinion, it is very effective for design at programming level, but it is not so easy to use for the ordinary people because it is a little complex and strict.

What is CIMap?

CIMap is an abbrevation of "Component Interaction Map" which is my original modeling technique.

Elements of CIMap are very similar to ones of Data Flow Diagram. You can understand "Component & Interaction" on CIMap instead of "Process & Data Flow" on DFD.

on DFDon CIMap
Example using concrete values.
Process "+" receive "2" and "3" as inputs and output "5".

When you do an interaction "+3" to object has "2" as property, the property is changed to "5" or object reply "5" as response of the interaction.
Drawing on a diagram

CIMap modeling is based on the following basic concept of the object oriented approach.

"Objects which has capsular data send/receive messages (interaction) between themselves. A set of these objects does the adequate operation as a system.h

CIMap does not take care for "class" concept of the object oriented approach. In the other words, CIMap is the model of "Instance" objects and messages between them.

Elements of CIMap

The following four Elements are the elements of CIMap.

Component
Object(Instance) which you do analyse or design. This is a rounded rectangle. Components have a hierarchy structure, you can progress the design by breaking it down.
Each component has data in itself, and response to interactions from the other objects by changing or using the data. It might make a interaction for the other objects.
User
User interacts for components. This is an ellipse.
ExternalSystem
ExternalSystem interacts for components. This is a rectangle.
Interaction
Interaction between objects(Component/User/ExternalSystem). This is an arrow from service requester to service provider. And each interaction has data to submit and receive. For example, "Search" interaction has "Search key work"(submit) and "Search result"(receive).

"User" and "ExternalSystem" means that their internal process is out of your scope. If their internal process is in your scope, you should deal them as "Component".

CIMap Editor

We provide a primitive editor to create CIMap. How to use is hereB

A CIMap of this editor itself is provided as a sample.(sample1.cimap)BThe following diagram is a patr of it.

CIMap enables you to see from birds point of view

"Program" and "IT system" is provided as the sample of CIMap, but the subject of CIMap modeling is not limited to "IT". Workflow of people or organization, natural phenomina, social phenominon etc. might be the subject of CIMap

CIMap is like a geographical map. You can look over a whole area, but it does not indicate a specific route.
You need to draw it on a map for a route of a specific process. But you would not lose your way if you have a map.

As you move through the analysis, design etc., tend to become "not see the forest for the trees". It is important to be always aware of the hierarchical structure of the components. Icon of CIMap editor (3 rounded rectangle) represents the hierarchical structure of the component.