Software Engineering
uml diagrams
Updated Wed, 10 Aug 2022 01:37:50 GMT

What diagrams, other than the class diagram and the workflow diagram, are useful for explaining how an application works?

I am working on a small Delphi project, composed of two units. One unit is for the GUI, and the other for data management, file parsing, list iterating and so on.. I've already made a class diagram, and my workflow looks like hell- it's too complex, even for anyone to read. I've considered making a dataflow diagram, but it would be even more complex. A use case diagram wouldn't be of use either. Am I missing some diagram type which could somehow represent the relationship between my two units?


If you want to show static relationships between your components, then UML Component Diagram should help you. If you want to show interactions between these components, then try to use UML Sequence Diagram. You should also remember about staying at the same level of abstraction, e.g. don't go into details (like pressing checkbox), when you're trying to describe the system on the component level ("gui" vs "other" unit). Your workflow diagram doesn't have much sense right now, as it should focus on a specific scenario (e.g. loading a report) rather than trying to show all possible scenarios on a single diagram.

Also I think that you have more serious problem underneath, as you "other unit" is just doing too much work, and is clearly breaking the Single Responsibility Principle. You could think about splitting the "other unit" into more components, each of them taking just a specific responsibility (e.g. parsing files, generating reports, sorting reports).

Comments (1)

  • +2 – Good answer. I totally agree about the SRP code smell, but it refactoring isn't an option at this point. I will try a sequence diagram for a single scenario. Thanks — Nov 10, 2012 at 16:51  

External Links

External links referenced by this document: