From 5c505333ec21e6f75b3143304aa47ba5ec9ebb95 Mon Sep 17 00:00:00 2001 From: Cyber-Luke <75857685+Cyber-Luke@users.noreply.github.com> Date: Sat, 23 Apr 2022 15:54:39 +0200 Subject: [PATCH] Updated 2. Software Architecture Specification (markdown) --- 2.-Software-Architecture-Specification.md | 39 +++++++---------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/2.-Software-Architecture-Specification.md b/2.-Software-Architecture-Specification.md index dcd9411..c59b23f 100644 --- a/2.-Software-Architecture-Specification.md +++ b/2.-Software-Architecture-Specification.md @@ -41,7 +41,7 @@ *** # 1. Introduction -The aim of this project is to program a standalone application for Windows based on a plugin for the AutomationML editor. The graphical user interface should be improved and support the modelling of sensors according to IEC 60947-5 should be offered. Furthermore, it should be possible to create devices, add device interfaces and file attachments. It should also be feasible to create a device manually, but also by reading in existing device description files with the aid of the DD2AML converter. The output should be an AutomationML package that complies with the rules for AML component models (AML-DDs). +The aim of this project is to program a standalone application for Windows based on a plugin for the AutomationML editor. The graphical user interface should be improved and support the modelling of sensors according to IEC 60947-5 should be offered. Furthermore, it should be possible to create devices, add device interfaces and file attachments. It should also be feasible to create a device manually, but also by reading in existing device description files with the aid of the DD2AML converter. The output should be an AutomationML package that complies with the rules for AML component models (AML-DDs). The programme is aimed at an industrial user group, as it is suitable for creating models, which should help in the design of systems. ## 1.1 Glossary @@ -87,7 +87,7 @@ As the targets have been set relatively precisely, attention should be paid to t #### 2.3.1.3 Performance -The problem with programmes that have been developed many times and then by different teams is that they often have poor code quality and therefore a high RAM and memory load. On technically older systems, this can lead to problems such as crashes or slow feedback. +The problem with programmes that have been developed many times and then by different teams is that they often have poor code quality and therefore a high RAM and memory load. On technically older systems, this can lead to problems such as crashes or slow feedback. You can find more information about this in the section "Code Quality". #### 2.3.1.4 Security @@ -99,7 +99,7 @@ The programme and its code will be available on GitHub on a public repository. T #### 2.3.1.5 Interoperability -By complying with the applicable technical standards, this feature is given, with no restrictions. No proprietary or unknown file formats are used. It is possible to open created models directly in other programs, for example the AutomationML editor. +This is important because it must be ensured that users are not firmly bound to this standard or programme. After all, the main users will come from the industry and therefore place a lot of value on a uniform standard. More information can be found in the "Technical Concept". ### 2.3.2 Non-Runtime quality attributes @@ -115,7 +115,7 @@ Attention is paid to transferability to later projects, through the involvement #### 2.3.1.1 Testability -This is probably the second most important point after usability, care must be taken to ensure that the code is testable. On the one hand directly in the code, but also testing the binary is important. For this purpose, various test cases are described and worked through on the "Systemtestplan" page. Thereby, to keep quality high, errors that cause undesirable behavior or even fatal errors must be eliminated. +This is probably the second most important point after usability, care must be taken to ensure that the code is testable. On the one hand directly in the code, but also testing the binary is important. For this purpose, various test cases are described and worked through on the "Systemtestplan" page. Also check the "Systemtesreport" to learn more about the test results. The AML Component Checker should be validating all created AML files. Thereby, to keep quality high, errors that cause undesirable behavior or even fatal errors must be eliminated. # 3. Quality Concept @@ -229,23 +229,19 @@ Still the MVC pattern is a small part of the whole system design. In this case t ## 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. - -## 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. - -## 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. +By using the publicly available "AMLX" package standard, the system becomes persistent. This means that created or edited models can be reopened and edited in the AutomationML Editor. This function is particularly important in an international and industrial environment. Therefore, "IODD" and "GSD" files can also be converted. ## 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. +The plug-in already had the problem that it was dependent on external programmes. Thus, "IODD" and "GSD" programme types had to be converted in order to be able to use them. The goal will now be to implement these programmes or converters directly in the standalone application. The advantage of this is that the user does not have to install external dependencies that may also cause errors. This means that, in the best case, there would only be interaction with the file system. This model can also be seen in the "Architectural Model". ## 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. +To make changes to the application, "Visual Studio 2019" must first be installed. In "Visual Studio 2019", the file "Application.sln" from the "Application" folder must then be opened. + +The application and the plug-in (ModellingWizard) are then visible in the Solution view. + +In order to be able to compile the application, the "AML.Engine" package in version 1.5.8 may have to be installed via the "NuGet" package manager. ## 7.6 Data validation @@ -253,24 +249,13 @@ All data checks are running in the background, invisible for the user. The contr ## 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. +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. This way, the user is informed about what did not work and he/she may be able to fix the problem or at least report it to the developers ## 7.8 Internationalization 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. -## 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. - -## 7.10 Availability - -The program is only available on Github and furthermore Github is the only possible source. - ## -## - - # 8. References | Reference | Source |