Article by Ayman Alheraki in October 28 2024 12:31 PM
Thirty-eight years ago, the study of computer science and programming heavily relied on creating flowcharts that expressed the program to be designed. Over time, this practice evolved into the use of UML (Unified Modeling Language), which provides a logical writing framework specialized in the flow and functioning of the program. However, I have not found much discussion on the importance of these tools in today’s world.
Although I have never used flowcharts or UML in my professional life, I have designed dozens of large and small programs. I never felt the need for them. Instead, I would write specifications and requirements for each part of the program, outline the steps to link the components, and then begin the design. After that, I would test each unit individually and then connect them together.
Flowcharts: Previously, flowcharts were used to illustrate the sequence of operations in a program. However, with the complexity of modern systems, these charts can become very large and difficult to understand.
UML: This is a more advanced tool used to design software systems. UML provides a set of symbols and meanings, making it possible to visualize the entire system more clearly. Its components include diagrams such as use case diagrams, sequence diagrams, and activity diagrams, each of which shows a different aspect of the system.
Not using these tools may mean missing out on some benefits they could offer:
Better Documentation: UML provides a means to document the design clearly, making it easier for other developers or even myself to understand the program after a long time.
System Analysis: Flowcharts and UML may facilitate system analysis and help identify weaknesses or areas needing improvement.
Facilitating Communication: These tools can enhance communication among team members, as everyone can understand the designs in a standardized manner.
If I had used flowcharts and UML, I could have added the following to my programs:
Holistic View: Having a clear view of the program design could help in identifying potential problems before starting the coding.
Easier Modifications: It might be easier to make changes or add new features in the future, as there would be clear reference documentation.
In today’s programming world, there are alternatives and modern tools that can replace flowcharts and UML, such as:
Visual Planning Tools: Tools like Lucidchart or Microsoft Visio, which allow for easy creation of flowcharts and UML diagrams.
Agile Development Methodologies: Such as Agile and Scrum, which focus on flexibility and adaptation, potentially reducing the need for detailed documentation.
Interactive Tools: Tools like Figma or Sketch, which assist in designing interfaces and providing an interactive visual representation of the system.
In conclusion, although I have not used flowcharts or UML, I recognize that these tools hold significant value in system design. It is important for developers to be aware of these tools and their potential benefits, even if they ultimately choose to use other methodologies or tools that suit their personal working style.