diff --git a/2.-Software-Architecture-Specification.md b/2.-Software-Architecture-Specification.md index 4b0d206..ff284c7 100644 --- a/2.-Software-Architecture-Specification.md +++ b/2.-Software-Architecture-Specification.md @@ -150,7 +150,7 @@ Based on the criteria just defined and the guidelines developed, the graphic int Code quality is one of the most important aspects when it comes to software that is being developed further and may come from different developers. For this reason, we have made it our mission to address and improve the problem of code quality. To maintain a certain standard, we have agreed on certain conventions: - Commenting on sections of code that are not clearly understandable in order to explain the implemented idea to others -- Programming paradigms and programming principles that make the code easy to understand +- Programming paradigms and programming principles that make the code easy to understand, such as one main function per file and a sensible folder structure. This means that the code is indented uniformly to improve readability and comprehension. Furthermore, the program is divided into modules that can then be imported and used. Otherwise, you run the risk of having to write duplicate code. In addition, it is our responsibility to write documentation that records which ideas have been implemented and how, so that the existing functions are easier to understand for future developments and can be built upon. @@ -161,18 +161,20 @@ This means that the code is indented uniformly to improve readability and compre

MVC Model

+Figure 1 - MVC Architecture [2] -The application was designed and developed according to a Model-View-Control (MVC) architecture pattern that resembles a cycle. The user can use the plugin by accessing the GUI. However, the actions he performs in the GUI are not processed in the GUI but in the controller and its subclasses. The controller executes the changes in the background, these are also called manipulations. Afterwards, the changes are updated on the user interface so that the user thinks that the changes were made directly in the GUI (cf. Figure 1). +The application was designed and developed according to a Model-View-Control (MVC) architecture pattern that resembles a cycle. The user can use the application by accessing the GUI. However, the actions he performs in the GUI are not processed in the GUI but in the controller and its subclasses. The controller executes the changes in the background, these are also called manipulations. Afterwards, the changes are updated on the user interface so that the user thinks that the changes were made directly in the GUI (cf. Figure 1). Almost all the logic is contained in the controller, which thus forms the centre of the entire system architecture and contains the functionalities. There is basically only one layer that is accessible to the user, the GUI. -The controller is the main control unit. It is responsible for communicating with the user interface and the external systems that are added for conversions. This interface is the heart of the entire application and is responsible for the functionalities, but also for the integration of additional functions such as saving or loading AMLX packages from the AutomationML Engine. Thus, the concept builds on that of the plug-in, making it easier to adapt functions and ideas. +The controller is the main control unit. It is responsible for communicating with the user interface and the external systems that are added for conversions. This interface is the heart of the entire application and is responsible for the functionalities, but also for the integration of additional functions such as saving or loading AMLX packages from the AutomationML Engine. Thus, the concept builds on that of the plug-in, making it easier to adapt functions and ideas. The change is that it will be a standalone application. This is ensured by integrating the AutomationML engine and the plug-in into a new programme via an import. The plugin is then started in its own view, so that the old code of the plugin is retained. -

+

-

+Figure 1 - MVC Architecture [2]
+
-The architecture design in Figure 2 is the design created by the first development team when the application was first implemented. However, as the project developed further, the architecture became more and more unstructured and complex. As a result, MVC is no longer used as intended. +In the figure above, you can see the new architecture design that depicts the structure of the standalone application (cf. Figure 2). As you can see in the illustration, the user only interacts with the graphical user interface. This then passes the input from the user to the controller and the controller displays the information in the GUI. The controller processes the requests with the help of the AutomationML engine, but not all functions were mapped for this because there would be too many. For example, it can be used to save and load models in AML format. To be able to process IODD and GSD model formats, the programme needs converters. These work with two interfaces and return an AutomationML file. # 5. System Design @@ -180,7 +182,7 @@ The architecture design in Figure 2 is the design created by the first developme System

-This figure is showing the complete software structure design. +This figure is showing the complete software structure design. There was actually no change here, as the concept of the plug-in was taken over from the [old project](https://github.com/DekaAthlos/TINF19C-ModellingWizard).