Top 30 Best IDEs and Compilers for C/C++

Top 30 Best IDEs and Compilers for C/C++

If you’re interested in learning to program in C/C++ you’ll find this list of C/C++ Compilers handy. Here I have list of Top 30 Best IDEs and Compilers for C / C++. Most of these compilers do C++ and C. Just rename the files to have .c for C Programs and .cpp for C++ programs extensions. Below is the list of some best and free C/C++ compilers and IDEs for Computer Programmers.

Read more

Data Flow Diagrams (DFD) – Concept, Symbols and Examples

Data flow diagrams (DFD) are graphical representation of the “flow” of data through an information system, modeling its process aspects. A Data Flow Diagram is often used as a preliminary step to create an overview of the system, which can later be elaborated.

Data flow diagram is a popular way to visualize the major steps and data involved in software system processes. This is not same as business process modeling; DFDs were usually used to show data flows in computer systems, although in theory be applied to business process modeling. DFDs are useful to document the major data flow or to explore a new high-level design in terms of data flow.

Understanding the Concepts of Data Flow Diagrams

Concept of Data Flow Diagrams (abbreviated as DFDs) was introduced by De-Marco in 1978 and also by Gane and Sarnon in 1979. DFD is an important tool used by system analyst. In simple, DFD gives an outline modeling of the system to be built and also can be designed to study the data flow of already existing system in a graphical interface.

As an Architect who draws sketches of the house that is to be built, he does it after gathering the requirements of house buyer and then translates it into a blueprint that gathers all engineering requirement for the house. Misinterpretation may take place when an architect talks to the house buyer about the model of house with his words, surely house buyer won’t understand all his ideas. Once a wise man said that people understand 100% of what they see but only 50% of what they listen. So, to describe his model to house buyer architect can use drawings and models.

In a similar way, a system analyst compared to an architect and user to house buyer. A meeting between these two parties to get an output of usually two types; a business requirement outline and prototype of the way the system will function, and a schematic represented by modeling tools for programmers. This meeting can be taken as the requirement gathering session of System Development Life Cycle (SDLC).

Data Flow Diagrams - Work of Architect
Data Flow Diagrams – Work of Architect

Figure 1 – The interfaces required to design and build a house

Data Flow Diagram - Work of Analyst
Data Flow Diagram – Work of Analyst

Figure 2 – The interfaces required to design and build a system

So, a DFD models a system by using external entities from which data flows to a process which transforms the data and creates output data flows which go to other processes or external entities or data stored. Similarly, stored data may also flow to processes as inputs. DFD is perfect and simple way of modeling a system for ease of understanding and at the same time is very flexible too. Designing of DFD is easy and simple because it uses only four symbols. Least number of symbols used in DFD makes it look neat and is easy to understand.


Symbols used in Data Flow Diagrams (DFDs)

So far, we discussed about the concept of Data Flow Diagrams, now it’s time to learn some symbols used in it. Designing of model using concept of DFDs is an easy way because it uses not more than 4 simple notations. Using less number of notations makes it look simple and easily understandable. DFD consists of four notations for four different functions. Functions are processes, data flows (inputs or outputs), external entities and definitely data store. So, let’s explore the symbols used in Data Flow Diagrams.

Processes in Data Flow Diagram:

Data Flow Diagram - Symbol for Process Flow
Data Flow Diagrams – Symbol for Process Flow

circle is used to represent a process. Processes are directed by inputs and outputs with the notation of line with arrow heads. Processes are named and when are in two or more numbers they are also numbered with numbering technique. The term bubble is also sometimes used instead of circle. Somewhere we can also use a notation for Process that is rectangle. As these notations are not in-bounded by any universal standard so, you can find either of these two notations in two different books you refer.

Data flows in Data Flow Diagram:

Data flows are represented by a line with an arrow head to show the direction of flow of data. These data flows are labeled with the name of data. A data flow shows both inputs and outputs. When data flow is directed to process then the data is taken as inputs and when data flow is directed to external entities or data store then the data is taken as output. If data flow consists of arrow head in both directions then it indicates that the data is taken as both input and output. For symbol of data flow refer Figure1-2.

External entities in Data Flow Diagram:

Data Flow Diagram - Symbol for External Entities
Data Flow Diagrams – Symbol for External Entities

External entities are represented by rectangles. External entities can be vendors, accountant, customers, and managers and so on. Logically they are outside the system; it means system designer has no control over them. They either supply or consume data. Entities supplying data are known as sources and those that consume data are called sinks.

Data store in Data Flow Diagram:

Data Flow Diagram - Data Store Symbol
Data Flow Diagrams – Data Store Symbol

Data store are represented by two parallel lines. Simply, they are used store data outgoing form processes. Processes can also retrieve data from data store. The storing and retrieving of data from data store is indicated by data flow lines and there arrow heads. If both arrows are there, it indicates that one may write in or read from the store. An alternate notation is also used for data store (rectangle with one open breadth) as shown is figure.


Data flow can take place between

  1. two different processes
  2. a data store and a process
  3. a process and a data store
  4. an external entity and a process
  5. a process and external entities.
    But data flows cannot take place between two data stores or between two external entities.


How do we begin to construct Data Flow Diagrams (DFDs)?

Before we begin, little knowledge of UML tools like Microsoft Visio, Dia, Umbrello would be very handy.

So lets begin with the top-down process to construct draw DFD (data flow diagrams) in a easy way:

Read more