Hi again all~
Come again with some knowledge about diagram which often used for designing an IT project. As we know that before developing an IT project, it will be better if we can design the application using diagram first before developing the application directly. Why is it important? As we all know that most of IT applications meet many changes happening along the way when those applications are being built. Those changes actually are the cause of many projects being delayed in delivery, also the cause of many bugs happening along the way. Those changes are unavoidable, I know. But they can be minimized if we analyzed first what kind of application should we built. This analysis process will result in designing the application, in form of IT diagram. And why do the diagram have to do with the importance of building a project?
See, if when analyzing the application carefully, you’ll realize many other things related to the project which can cause issues later on, or you can also find something which maybe related to the project you build. These realizations will make you design a good, reliable, and extendable project without having much effort later on if many development happen. Nah, you can design the diagram using those IT diagrams, which are so many of them. I think I shouldn’t explain the detail of each diagram because I myself isn’t the expert. I’ll just share about which kind of diagram should be used in which kind of need. Let’s begin then~
I believe that many of you have already heard the term UML diagram, ER diagram, Business Process diagram, Flow Chart diagram, Data flow diagram, etc. What are the difference between them all? You know that an application always built by the system itself and the database as the storage of the data processing in the application. We can use UML diagram, Business Process diagram, Flow chart diagram as the diagram to design the system, while ER diagram and Data flow diagram are used to design the database. Let’s get to know the briefing of each diagram first then. Let’s go to the system diagram discussion first:
Business Process Diagram
This diagram depicts the flow of business rule in application. You design this diagram using flowchart, but you picture the thing in bigger process than usual flowchart. You also use the role which is related with the process. It kinds of similar with use case diagram of UML diagram, but you can see the flow well from this diagram. It’ll be hard to imagine my description above so I should give the example of simple business process diagram. Here it is:
Flow Chart Diagram
Flow chart diagram usually used to describe the simple process. For different process, usually flow chart will be divided into smaller part so the main flowchart can be kept simple to make people easier to understand the process. It usually also includes the validation happening in a process. People who reads flowchart usually can understand the process easily rather than reading it in a description paragraph type. The functionality of flow chart diagram is similar to UML diagram, but it is usually used for simpler application. People with procedural programming language type will use flow chart diagram to design
Here is the simple flowchart of login process:
UML Diagram
I believe that UML diagram is the most famous type of designing diagram for an IT project. It is used widely by many application. Usually project which is very large and expendable will use UML as the method to design the application. UML consists of many diagrams:
- Structure Diagrams include the Class Diagram, Object Diagram, Component Diagram, Composite Structure Diagram, Package Diagram, and Deployment Diagram.
- Behavior Diagrams include the Use Case Diagram (used by some methodologies during requirements gathering); Activity Diagram, and State Machine Diagram.
- Interaction Diagrams, all derived from the more general Behavior Diagram, include the Sequence Diagram, Communication Diagram, Timing Diagram, and Interaction Overview Diagram.
Each diagram above has different functionality to the system. For example, use case diagram can be used to describe the features available in a system, which features can be used by whom, which features dependent to each other, etc. This diagram is usually made first between the other diagrams. But in this diagram, we can’t get what kind of functionalities of a feature can be used for which role. What I mean is, role admin and officer both can access officer features, but which functionalities are restricted only for which roles can’t be described in a use case diagram. Class diagram can be used to design what kind of class will exist in a system, what relationship each class has with each other, what attributes and methods available in each class. While sequence diagram can be used to depicts the interaction happen between each class, what type of attributes and methods will be exchanged between classes, etc.
It’ll be too wide if UML diagram should be described here. I also don’t have enough confident about these diagrams anyway, so you should look for other resources about UML diagram. There are many of them too so it won’t be difficult for you to find some reliable resources about UML diagram.
The next is database diagram:
ER Diagram
ER diagram depicts the entity relationship diagram which is the database design diagram. It consists of available entities, available attributes in each entities, and relationship cardinality between each entities. In terms of concept, it kind of similar with class diagram from UML. The difference is that class diagram is used for the system, while ER diagram is used for the database.
Data Flow Diagram
Similar with ER diagram, data flow diagram is used to design the database. The difference between data flow diagram and ER diagram is usually, data flow diagram is used for simpler project which use procedural programming language method, while ER diagram is used for bigger project which use object-oriented programming language method. Data flow diagram depicts the flow of data in the system. Unlike ER diagram, it doesn’t capture the entity available in a project and the relationship exist between entities.
I think that’s it for now, my brain is divided into different part of my life right now so I can’t really concentrate on this topic. I’ll update this post as soon as possible by the way.. Thanks a lot for coming~