Effective Software Architecture for Command Line Tools

Software projects often need command line tools that automate specific tasks, such as code generation, evaluations, packaging, etc. All too frequently, these tools are developed ad hoc and unstructured, implemented, quickly finished, and then forgotten. Unfortunately, this makes them difficult to understand and maintenance-intensive later on. Good software documentation can help circumvent this problem. This article proposes a supplementary measure: a simple software architecture for command line tools, designed to facilitate understanding and further development of the same. ...

June 3, 2023 · 7 min · 1455 words · Christian Gröling

The Bridge Between UML and C++: Relationships in Class Diagrams and Their Implementation

A UML class diagram visualizes the different classes of a system, their attributes, operations, and relationships to one another. When applied correctly, UML illustrates exactly how class diagrams can be translated into code. The core problem - and often the most difficult part - is interpreting the diverse class relationships correctly. In the following, I explain the most important relationship types in UML class diagrams. Each relationship is briefly explained, an everyday example illustrates it, and a section with a C++ code example concludes the section. ...

May 20, 2023 · 6 min · 1080 words · Christian Gröling