In this third blog post about DevOpsThoughts Project, I’ll present the Architecture and the Project Layers Structure used in the project. As the visualization is the best way to understand DevOpsThoughts architecture, I will present below a list of useful diagrams to explain the philosophy for their usage.
Architecture diagram is a graphical representation of System components and how they’re (components) are grouped together. The UML Architecture Diagram gives use a general overview of how the system works and its principles.
The architecture diagrams are usually presented on two levels:
- High-level Desing, which gives the overall overview, with the description of the major components and it is showing the interaction between one another, in order to meet each requirement.
- Desing Patterns, which are representing a certain approach to achieve a goal.
For anyone, working with Visual Studio, the Architectural tool was unfortunately removed from Visual Studio 2017, but it can be still accessible with Visual Studio 2015 and even still readable with Visual Studio 2017. So, if you are still using Visual Studio 2015, the tool allows you to create Architecture diagram models also in Visual Studio as a part of application or system’s structure.
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 is 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 DevOpsThoughts.
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. Furthermore, they show also how the functional components of the system are linked to the technical components and how the data is being treated.
Below 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.