From ea6fb2757399d3406b03c5ccc95f644f566e968d Mon Sep 17 00:00:00 2001 From: NormalParameter Date: Fri, 5 Nov 2021 12:14:26 +0100 Subject: [PATCH] Updated MarkUp, pictures still missing --- 2.-Software-Architecture-Specification.md | 63 ++++++++++------------- 1 file changed, 26 insertions(+), 37 deletions(-) diff --git a/2.-Software-Architecture-Specification.md b/2.-Software-Architecture-Specification.md index 27a01bc..71e6a39 100644 --- a/2.-Software-Architecture-Specification.md +++ b/2.-Software-Architecture-Specification.md @@ -67,28 +67,23 @@ Among others the IODD and GSD converter are used as neighbouring systems. For the standalone application to work, you need at least version 4.5 of the .Net framework, as C# was used developing it. This version of the framework is available from the "Windows Vista" operating system variant onwards. You do not need any further software, as this is a standalone application. - 1. -## Quality Goals +## 2.3 Quality Goals In order to achieve the quality goals, different criteria are considered. - 1. -### Usability +### 2.3.1 Usability Usability is the most important aspect of the project besides the standalone application. To this end, a graphical user interface was created that allows the user to use it as easily as possible. Intuitive operation is very important, but an appealing design is also necessary to create the best possible user experience. This is the only way the application can successfully simplify work processes. (More information in the usability concept) - 1. -### Bug fixing +### 2.3.2 Bug fixing Another milestone to keep quality high is the elimination of errors that cause undesired behaviour or even fatal errors. -1. -# Quality Concept +# 3. Quality Concept This part of the software architecture specification explains and breaks down the problems that usually arise during the further development of software. This includes concepts for dealing with these problems and thus improving the quality of the final product. - 1. -## Usability Concept +## 3.1 Usability Concept The criteria for good usability are: @@ -110,8 +105,7 @@ After conducting the usability test, guidelines were developed on the basis of w Based on the criteria just defined and the guidelines developed, the graphic interface is adapted and optimised. Functionality is very important but should not negatively affect usability. Nevertheless, compromises have to be made in terms of feasibility, as the basic concept of AutomationML should be presupposed. - 1. -## Code Quality +## 3.2 Code Quality 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: @@ -120,11 +114,9 @@ Code quality is one of the most important aspects when it comes to software that 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. -1. -# Architectural Concept +# 4. Architectural Concept - 1. -## Architectural Model +## 4.1 Architectural Model ![](RackMultipart20211105-4-tbt2na_html_e124a15acc23e9b1.png)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). @@ -136,8 +128,7 @@ The controller is the main control unit. It is responsible for communicating wit 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. This was further complicated using a Microsoft Forms application. -1. -# System Design +# 5. System Design ![](RackMultipart20211105-4-tbt2na_html_34bab3433846f0d9.png) @@ -162,23 +153,22 @@ Still the MVC pattern is a small part of the whole system design. In this case t | SearchAMLComponentFile | SOURCE/SearchAMLComponentFile.cs | | SearchAMLLibraryFile | SOURCE/SearchAMLLibraryFile.cs | -1. -# Subsystem specification +# 6. Subsystem specification -## MOD.001: Graphical User Interface (GUI) +## 6.1 MOD.001: Graphical User Interface (GUI) -| **\<MOD.001\>** | **Graphical User Interface** | +| **** | **Graphical User Interface** | | --- | --- | -| System requirements covered: | /NF10/, /NF20/, /NF30/, /NF40/, /NF50/, /NF60/, /NF70/, /NF80/, /NF90/, /NF100/, /F10/, /F20/, /F60/, /F70/, /BUG10/, /BUG20/, /BUG30/, /BUG40/, /BUG50/, /BUG90/, /BUG100/ | +| System requirements covered: | /NF10/, /NF20/, /NF30/, /NF40/, /NF50/, /NF60/, /NF70/, /NF80/, /NF90/, /NF100/, /F10/, /F20/, /F60/, /F70/| | Services: | The graphical user interface is taking input from the user and sending it to the controller by calling event functions. | | Interfaces: | --- | | External Data: | --- | | Storage Location: | SOURCE/DeviceDescription.Designer.cs | | Modul documentation: | MOD.001: Graphical User Interface (GUI) | -## MOD.002 Controller +## 6.2 MOD.002 Controller -| **\<MOD.002\>** | **Controller** | +| **** | **Controller** | | --- | --- | | System requirements covered: | /NF100/, /F30/, /F40/, /F50/, /F80/ | | Services: | Logic distribution is handled by the controller. It is reacting to the events triggered by the GUI and takes care of creating the respective objects. Also the input and output functions are implemented in the controller. | @@ -187,46 +177,45 @@ Still the MVC pattern is a small part of the whole system design. In this case t | Storage location: | SOURCE/DeviceDescription.cs | | Modul documentation: | MOD.002: Controller | -1. -# Technical Concepts +# 7. Technical Concepts -## Persistence +## 7.1 Persistence By using a package format, the system is persistent. In the plugin and later also in the stand-alone application AMLX packages can be edited and created. Since AutomationML is using the same format, it is possible to open these AMLX packages and use them in the editor. This functionality shall be kept when moving to a stand-alone application. -## User Interface +## 7.2 User Interface This is the section with the biggest changes in the project. The Graphical User Interface (or so-called GUI) is the connector between user and software. Like that the user can operate the AutomationML editor using the plugin and later the stand-alone application. It is crucial that the GUI is as simple as possible so that even a person with limited professional knowledge can handle the program and understand most of its functionality. -## Ergonomics +## 7.3 Ergonomics As said in 7.2, it is crucial for an ergonomic user interface to be intuitive, meaning that even a not so experienced user is able to understand and control most of the functionality of the program quiet easily. To allow this there are a few simple rules existent that are making sure the user finds the interface appealing and can navigate through it with ease. -## Communication with other IT-Systems +## 7.4 Communication with other IT-Systems Some of the AutomationML editor plugin use cases require external converter systems to be integrated. Two of these for example being the IODD and the GSD converter for AutomationML. These plugins enable for users to convert IODD and GSD files into AML type files for using the functionalities of the plugin. This must also be considered when changing to a standalone program. -## Deployment +## 7.5 Deployment At this point it is a plugin that must be used in combination with AutomationML. The plugin must be installed in the editor by using the plugin manager of the software to install the .dll file. During the process of the project the program shall be made usable as a standalone software application so there is no longer the need to use the AutomationML plugin manager. -## Data validation +## 7.6 Data validation All data checks are running in the background, invisible for the user. The controller is checking for missing information and incorrect entries, that must be specified as mandatory information. -## Exception handling +## 7.7 Exception handling Exception handling is necessary to prevent errors caused by the user while using the program. So called "try-catch" blocks are used to 'catch' these and prevent unwanted or incorrect behavior of the software. -## Internationalization +## 7.8Internationalization The whole system layout can be used for international purposes since the user manual and over all GUI is written in English and English is defined to be the international traffic language. On the other hand, there is no way to change the language so English is a mandatory knowledge for using the program. -## Testability +## 7.9 Testability View the System Test Plan to get further information on how the program can be tested. Also check the System Test Reports to learn more about the test results. The AML Component Checker should be validating all created AML files. -## Availability +## 7.10 Availability The program is only available on Github and furthermore Github is the only possible source.