Another change and link testing

Florian Kellermann 2021-11-05 10:09:06 +01:00
parent da69b755b5
commit 542303b6ec

@ -37,12 +37,11 @@
***
# 1.1 Introduction <a name="I"/>
# Introduction <a name="I"/>
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 for 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.
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.
1.
## Glosar
## 1.1 Glossary <a name="G"/>
**AML** Automation mark-up language is an open standard data format for storing and exchanging plant planning data
@ -62,24 +61,24 @@ The aim of this project is to program a standalone application for Windows based
1.
## System Environment
The standalone application can only be accessed via Windows, as this operating system is used as the platform. The application can be installed and the graphical user interface can be used via this platform. In contrast to the plug-in, the editor no longer has to be used.
The standalone application can only be accessed via Windows, as this operating system is used as the platform. The application can be installed and the graphical user interface can be used via this platform. In contrast to the plug-in, the editor no longer needs to be used.
Among others the IODD and GSD converter are used as neighbouring systems.
1.
## Software Environment
For the standalone application to work, you need at least version 4.5 of the .Net framework, as C# was developed using it. This version of the framework is available from the &quot;Windows Vista&quot; operating system variant. You do not need any further software, as this is a standalone application.
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 &quot;Windows Vista&quot; operating system variant onwards. You do not need any further software, as this is a standalone application.
1.
## Quality Goals
In order to achieve the quality goals, different criteria are considered. These include:
In order to achieve the quality goals, different criteria are considered.
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, because this is the only way the application can successfully simplify work steps. (more information in the usability concept)
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
@ -102,27 +101,27 @@ The criteria for good usability are:
**Recognition value** : This means that similar functions should be realized with the same sequences. This makes it easier for the user to find his way around the functions and increases user friendliness.
**Color scheme** : A good coloration can be created by an attractive choice of colors and their coordinated contrasts.
**Colour scheme** : A good colouration can be created by an attractive choice of colours and their coordinated contrasts.
Implementation guideline:
After conducting the usability test, guidelines were developed on the basis of which the GUI improvements will be made. Therefore, the GUI must meet the following guidelines:
- A consistent colour palette should be used, where elements with the same events have the same colours for recognition. Matte and colour-coordinated palettes should be used here.
- Contrasts, borders as well as roundings should be used to emphasise inputs or interaction fields. Blank areas should be created to give an attractive and uncluttered design. Another advantage is that the user will then find his way around more easily. The layout of the GUI should say goodbye to the style of the AML editor, as this is no longer up to date.
- Contrasts, borders as well as roundings should be used to emphasise inputs or interaction fields. Blank areas should be created to give an attractive and uncluttered design. Another advantage is that the user will then find his way around more easily. The layout of the GUI should be independent from the style of the AML editor, as this is no longer up to date.
- The design and layout should be self-explanatory and reinforce the previous point to allow intuitive use.
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.
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
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. In order to maintain a certain standard, we have agreed on certain conventions:
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
This means that the code is indented uniformly to improve readability and comprehension. Furthermore, the programme 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.
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
@ -130,24 +129,24 @@ This means that the code is indented uniformly to improve readability and compre
1.
## Architectural Model
![](RackMultipart20211105-4-1334yiq_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).
![](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).
Almost all the logic is contained in the controller, which thus forms the center of the entire system architecture and contains the functionalities. There is basically only one layer that is accessible to the user, the GUI.
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.
![](RackMultipart20211105-4-1334yiq_html_c572f91cfdd3da55.png)
![](RackMultipart20211105-4-tbt2na_html_c572f91cfdd3da55.png)
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 by the use of a Microsoft Forms application.
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
![](RackMultipart20211105-4-1334yiq_html_34bab3433846f0d9.png)
![](RackMultipart20211105-4-tbt2na_html_34bab3433846f0d9.png)
This figure is showing the complete software design.
This figure is showing the complete software structure design.
![](RackMultipart20211105-4-1334yiq_html_6cedf9e7fcc19487.png)
![](RackMultipart20211105-4-tbt2na_html_6cedf9e7fcc19487.png)
Still the MVC pattern is a small part of the whole system design. In this case the InputFromUser is obviously the user input. DeviceDesc (standing for Device Description), due to its two different C# program files, once maps the GUI and once the controller. DataMW is the class that takes care of the data management and creates an object of the type MWData, which can then export, store and process through the controller.
@ -184,7 +183,7 @@ Still the MVC pattern is a small part of the whole system design. In this case t
| **\&lt;MOD.002\&gt;** | **Controller** |
| --- | --- |
| System requirements covered: | /NF100/, /F30/, /F40/, /F50/, /F80/, /BUG60/, /BUG70/, /BUG80/, /BUG110/, /BUG120/, /BUG130/ |
| 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. |
| Interfaces: | Interface for IODD to AutomationML, Interface for GSD to AutomationML and Interface of AMLX packages. For export/import of amlx files there is another class referenced: SOURCE/MWData.cs |
| External Data: | --- |
@ -200,11 +199,11 @@ By using a package format, the system is persistent. In the plugin and later als
## User Interface
This is the chapter 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.
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
As said in 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.
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
@ -236,6 +235,8 @@ The program is only available on Github and furthermore Github is the only possi
##
##
# 8. References <a name="R"/>
| Reference | Source |