In this third blog post about the DevOpsThoughts Project, I would like to present the Architecture and the Project Layers Structure used in the project. As visualization is the best way to understand DevOpsThoughts architecture, I will present below a set of useful diagrams to explain the philosophy behind their usage.
An architecture diagram is a graphical representation of system components and how they are grouped together. The UML Architecture Diagram gives use a general overview of the system principles and how it works.
The architecture diagrams are usually presented on two levels:
- High-level Design, that gives an overall overview of the system, describing major components and showing how they interact with each other in order to meet specific requirements.
- Design Patterns, representing a certain approach to achieve a goal.
Visual Studio 2015 has a tool allowing you to create architectural diagram models in Visual Studio as a part of application or system’s structure. The Architectural tool was unfortunately removed from Visual Studio 2017, but it is still accessible with Visual Studio 2015 and is readable with Visual Studio 2017.
So, I could say that Architecture diagram is some kind of a high-perspective plan or a map clarifying and communicating the ideas about the system structure and furthermore, explaining which user requirements must be supported by the system.
Below is the Architecture diagram we have used in DevOpsThoughts.
Use Case Diagram
Use Case Diagram is a UML Diagram used to represent different interactions with the system. Usually, they are also referred to as a behavior diagrams as they are explaining the set of use cases, which will be performed together with external system or actor. Basically, they are capturing the dynamic or operating behavior of the system.
In DevOpsThoughts we have used the Use Case Diagram also as an input for making PBI’s and User Stories.
Below is the Use Case Diagram we have in DevOps Thoughts.
Project Layers are usually used to present or develop the software design from the high-level perspective, in order to demonstrate how the software is structured into technical components. They also show how the functional components of the system are linked to the technical components and how the data is being treated.
Below is a screenshot from Microsoft Visual Studio’s Solution Explorer for the different layers used in DevOpsThoughts.
Diagrams are in general a very good representation of the components and information with visualization technique. For this reason, I decided also to present the architecture of the project DevOpsThoughts, as it shows in a good visualized way the connections and interactions between different components.