Updated 2. Software Architecture Specification (markdown)
parent
a8ae2a7647
commit
c09dd4ecd7
@ -156,7 +156,9 @@ This means that the code is indented uniformly to improve readability and compre
|
||||
|
||||
## 4.1 Architectural Model <a name="AC1"/>
|
||||
|
||||
![Couldn't Load Picture](https://user-images.githubusercontent.com/76038781/140762432-baca1fb5-f66b-41ab-9702-be7fc2cfcc0d.png)
|
||||
<p align="center">
|
||||
<img src="https://user-images.githubusercontent.com/76038781/140762432-baca1fb5-f66b-41ab-9702-be7fc2cfcc0d.png" alt="MVC Model" />
|
||||
</p>
|
||||
|
||||
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).
|
||||
|
||||
@ -164,34 +166,40 @@ Almost all the logic is contained in the controller, which thus forms the centre
|
||||
|
||||
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.
|
||||
|
||||
![Couldn't Load Picture](https://user-images.githubusercontent.com/76038781/140762427-8fb4c097-2c53-4c80-a07f-ed3f3d8c90d3.png)
|
||||
<p align="center">
|
||||
<img src="https://user-images.githubusercontent.com/76038781/140762427-8fb4c097-2c53-4c80-a07f-ed3f3d8c90d3.png" />
|
||||
</p>
|
||||
|
||||
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.
|
||||
|
||||
# 5. System Design <a name="SD"/>
|
||||
|
||||
![Couldn't Load Picture](https://user-images.githubusercontent.com/76038781/140761356-05e600c3-b11f-46a8-9bb2-355cdc1e82db.PNG)
|
||||
<p align="center">
|
||||
<img src="https://user-images.githubusercontent.com/76038781/140761356-05e600c3-b11f-46a8-9bb2-355cdc1e82db.PNG" />
|
||||
</p>
|
||||
|
||||
This figure is showing the complete software structure design.
|
||||
|
||||
![Couldn't Load Picture](https://user-images.githubusercontent.com/76038781/140761360-67adafbe-f4c9-4279-a80e-d0430b1b5cc9.png)
|
||||
<p align="center">
|
||||
<img src="https://user-images.githubusercontent.com/76038781/140761360-67adafbe-f4c9-4279-a80e-d0430b1b5cc9.png" />
|
||||
</p>
|
||||
|
||||
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.
|
||||
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. The source code is located in the "app-source-code" branch under the "Source" folder.
|
||||
|
||||
| **Classname** | **Storage location** |
|
||||
| --- | --- |
|
||||
| About | SOURCE/About.xaml.xs |
|
||||
| AnimationClass | SOURCE/Animationclass.cs |
|
||||
| AutomationMLDataTables | SOURCE/AutomationMLDataTables.cs |
|
||||
| ClassOfListFromReferenceFile | SOURCE/ClassOfListsFromReferencefile.cs |
|
||||
| DeviceDescription | GUI: SOURCE/DeviceDescription.Designer.csLogic: SOURCE/DeviceDescription.cs |
|
||||
| ModellingWizard | SOURCE/ModellingWizard.xaml.cs |
|
||||
| MWController | SOURCE/MWController.cs |
|
||||
| MWData | SOURCE/MWData.cs |
|
||||
| MWDevice | SOURCE/MWDevice.cs |
|
||||
| Resources | SOURCE/Resources/ |
|
||||
| SearchAMLComponentFile | SOURCE/SearchAMLComponentFile.cs |
|
||||
| SearchAMLLibraryFile | SOURCE/SearchAMLLibraryFile.cs |
|
||||
| About | SOURCE/Plugin/About.xaml.xs |
|
||||
| AnimationClass | SOURCE/Plugin/Animationclass.cs |
|
||||
| AutomationMLDataTables | SOURCE/Plugin/AutomationMLDataTables.cs |
|
||||
| ClassOfListFromReferenceFile | SOURCE/Plugin/ClassOfListsFromReferencefile.cs |
|
||||
| DeviceDescription | GUI: SOURCE/Plugin/DeviceDescription.Designer.cs Logic: SOURCE/Plugin/DeviceDescription.cs |
|
||||
| ModellingWizard | SOURCE/Plugin/ModellingWizard.xaml.cs |
|
||||
| MWController | SOURCE/Plugin/MWController.cs |
|
||||
| MWData | SOURCE/Plugin/MWData.cs |
|
||||
| MWDevice | SOURCE/Plugin/MWDevice.cs |
|
||||
| Resources | SOURCE/Plugin/Resources/ |
|
||||
| SearchAMLComponentFile | SOURCE/Plugin/SearchAMLComponentFile.cs |
|
||||
| SearchAMLLibraryFile | SOURCE/Plugin/SearchAMLLibraryFile.cs |
|
||||
|
||||
# 6. Subsystem specification <a name="SS"/>
|
||||
|
||||
@ -203,7 +211,7 @@ Still the MVC pattern is a small part of the whole system design. In this case t
|
||||
| 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 |
|
||||
| Storage Location: | SOURCE/Plugin/DeviceDescription.Designer.cs |
|
||||
| Modul documentation: | MOD.001: Graphical User Interface (GUI) |
|
||||
|
||||
## 6.2 MOD.002 Controller <a name="SS2"/>
|
||||
@ -214,7 +222,7 @@ Still the MVC pattern is a small part of the whole system design. In this case t
|
||||
| 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: | --- |
|
||||
| Storage location: | SOURCE/DeviceDescription.cs |
|
||||
| Storage location: | SOURCE/Plugin/DeviceDescription.cs |
|
||||
| Modul documentation: | MOD.002: Controller |
|
||||
|
||||
# 7. Technical Concepts <a name="TC"/>
|
||||
|
Loading…
Reference in New Issue
Block a user