iarm ui configuration
TRANSCRIPT
![Page 2: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/2.jpg)
2
Outline
• De opdracht
• Ontwikkelmethode
• Vooronderzoek
• Product analyse
• Product ontwerp
• Product realisatie/testen
• Toekomst
![Page 3: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/3.jpg)
De opdracht
Vanuit ED:
Applicatie voor configuratie van de IO-moduleHet inventariseren van eisen en wensen voor, en het ontwerpen, ontwikkelen en
testen van een Microsoft Windows applicatie waarmee de IO-module geconfigureerd
kan worden voor gebruik met de nieuwe en bestaande invoerapparaten.
Met deze applicatie moet de gebruiker o.a. keypad-, éénknopsbediening- en
joystickmenu's kunnen indelen, door per toets of windrichting aan te geven welke
functionaliteit gekoppeld dient te worden aan de betreffende toets, en welke
symbolen er op het iARM display dienen te verschijnen bij ieder menu of
gebruikersinvoer.
3
![Page 4: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/4.jpg)
De opdracht
Bijgesteld:
“Ontwerp en ontwikkel een applicatie waarmee de user-interface van de iARM, centraal en op een intuïtieve manier geconfigureerd kan worden. Verander of breid tevens het huidige systeem softwarematig uit als dat nodig is om de oplossing voor het probleem te realiseren.“
4
![Page 5: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/5.jpg)
De opdracht
Hierbij moet er voldaan worden aan de volgende deelvragen:
1. Onderzoek welke gebruikers de user-interface van de iARM moeten kunnen configureren.
2. Inventariseer wat de wensen en eisen zijn die worden gesteld aan de oplossing.
3. Onderzoek welke alternatieve oplossingen er mogelijk zijn en vergelijk deze met de oplossing van Exact Dynamics.
4. Ontwerp de oplossing zo dat softwareontwikkelaars van Exact Dynamics deze met zo minmogelijk inspanning kunnen onderhouden en uitbreiden.
5. Realiseer en test de oplossing en controleer daarbij dat deze voldoet aan de gestelde eisen en kwaliteit.
5
![Page 6: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/6.jpg)
De opdracht
6
![Page 7: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/7.jpg)
De opdracht
7
![Page 8: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/8.jpg)
De opdracht
8
![Page 9: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/9.jpg)
De opdracht
9
![Page 10: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/10.jpg)
Ontwikkelmethode
Het kiezen van een ontwikkelmethode
10
![Page 11: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/11.jpg)
Ontwikkelmethode
Gekeken naar:
•Watervalmethode
•Scrum
•eXtreme Programming (XP)
•Rational Unified Process (RUP/openUP)
•Dynamic Systems Development Method (DSDM)
11
![Page 12: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/12.jpg)
Ontwikkelmethode
Watervalmethode
12
![Page 13: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/13.jpg)
Ontwikkelmethode
13
Watervalmethode
![Page 14: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/14.jpg)
ontwikkelmethode
14
Agile methode
![Page 15: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/15.jpg)
ontwikkelmethode
15
•Scrum
•eXtreme Programming (XP)
•Rational Unified Process (RUP/openUP)
•Dynamic Systems Development Method (DSDM)
![Page 16: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/16.jpg)
ontwikkelmethode
16
![Page 17: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/17.jpg)
ontwikkelmethode
17
Iteratie 1In deze iteratie zal de basis gelegd worden voor de GUI en de communicatie met het systeem zal geïmplementeerd worden.
Iteratie 2In deze iteratie zal het onderdeel waarmee de I/O module te configureren is ontwikkeld worden.
Iteratie 3In deze iteratie wordt het deel van de applicatie ontwikkeld dat de visualisatie van de menustructuren mogelijk maakt en het tekenen van de iconen.
Iteratie 4In deze iteratie zullen de overige onderdelen van het systeem voor het aanpassen van de menustructuren en de bijbehorende acties gerealiseerd worden. Tevens is er in deze iteratie ruimte om te beginnen met de LUA scripteditor.
![Page 18: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/18.jpg)
Het vooronderzoek
18
![Page 19: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/19.jpg)
Vooronderzoek
• Doelgroep analyse
• Mogelijke oplossingen
• Programmeertaal
• CAN protocol
• Normen en richtlijnen
19
![Page 20: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/20.jpg)
Vooronderzoek (doelgroep)
• Waarom?
• Verschillende gebruikers
• Welke invoerapparaten
• Besturingsystemen
• Wensen van de dealer
20
![Page 21: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/21.jpg)
Vooronderzoek (doelgroep)
Gebruikers:
• Technici van ED
• Dealers
• Universiteiten
• Overige gebruikers (primaire functie appl)
21
![Page 22: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/22.jpg)
Vooronderzoek (doelgroep)
• Waarom?
• Verschillende gebruikers
• Welke invoerapparaten
• Besturingsystemen
• Wensen van de dealer
22
![Page 23: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/23.jpg)
Vooronderzoek (doelgroep)
Wensen van de dealer:
• Analoge bediening
• Handeling bij storing
• Default configuratie
23
![Page 24: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/24.jpg)
Vooronderzoek (oplossingen)
• Oplossing voor configuratie iARM
• Oplossing voor configuratie IO module
24
![Page 25: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/25.jpg)
Vooronderzoek (oplossingen)
iARM oplossing 1:
25
![Page 26: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/26.jpg)
Vooronderzoek (oplossingen)
iARM oplossing 2 en 3:
26
![Page 27: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/27.jpg)
Vooronderzoek (oplossingen)
IO module Oplossing 1, 2 en 3:
27
USB – OTGD-SUB 9 + schakelaar
D-SUB 9
![Page 28: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/28.jpg)
Vooronderzoek (oplossingen)
conclusie
28
![Page 29: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/29.jpg)
Vooronderzoek (programmeertaal)
• Java
• C++ (unmanaged)
• C++ .NET (managed)
• C# .NET
• J# .NET
29
![Page 30: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/30.jpg)
Vooronderzoek (programmeertaal)
30
Java C++ C++ .NET C# .NET J# .NETPlatform Een
gecompileerde applicatie werkt op elk platform.
Een applicatie werkt alleen op het platform Waarvoor het gecompileerd is.
Een gecompileerde applicatie werkt op elk Windows platform en op Linux via Mono.
Een gecompileerde applicatie werkt op elk Windows platform en op Linux via Mono.
Een gecompileerde applicatie werkt op elk Windows platform en op Linux via Mono.
Hardware (CAN-connector)
Wordt niet ondersteund. Op te lossen door JNA of JNI te gebruiken.
Wordt ondersteund.
Wordt ondersteund.
Wordt ondersteund.
Wordt ondersteund.
Leercurve en ervaring
Meeste ervaring hiermee, GUI techniek heeft redelijke leercurve.
Klein beetje ervaring, GUI heeft redelijke leercurve.
Klein beetje ervaring, GUI heeft redelijke leercurve.
Geen ervaring maar syntax lijkt erg op Java, GUI heeft redelijke leercurve.
Geen ervaring maar syntax is het zelfde als Java, GUI heeft redelijke leercurve.
ondersteuning Veel Veel Matig Veel WeinigGUI AWT, Swing,
JdesktopWin32 API, Qt etc.
Winform, drawing en WPF.
Winform, drawing en WPF.
Winform, drawing en WPF.
Belangrijkste IDE Eclipse Visual studio C++
Visual studio C++
Visual studio C# Visual studio J#
Test-framework Junit Cput, veel anderen
Mbunit, Nunit, veel anderen
Mbunit, Nunit, veel anderen
Mbunit, Nunit, veel anderen
![Page 31: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/31.jpg)
Vooronderzoek (normen)
• ISO vs. Agile (IEEE Computer Society’ publicatie 9001)
• Medical Device Directive’ (class 1, 2 en 3)
• ISO 14971 (Application of risk management to medical devices)
• IEC 62304 (Medial divice software)
31
![Page 32: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/32.jpg)
Product analyse
32
![Page 33: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/33.jpg)
Product analyse
• Requirements
• Use-cases en SSD’s
• Domeinmodel
• Deploymentdiagram
• Communicatie protocol
33
![Page 34: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/34.jpg)
Product analyse (Requirements)
• FURPS+ en MoSCoW
FR8 (M) De gebruiker moet een displayicoon van een menuonderdeel kunnen veranderen of instellen.
34
ID Prioriteit EisFR1 M De configuratieapplicatie moet met het iARM-systeem communiceren op
basis van het CAN‐protocol over een CAN‐bus. Het moet zowel CANberichten kunnen ontvangen als versturen.
FR2 M De applicatie moet de I/O module in configuratiemodus kunnen zetten.FR3 M Het type invoerapparaat dat aangesloten is op de I/O module moet
geselecteerd kunnen worden voor de twee afzonderlijke poorten(inputport 1 en 2). Hiervoor moet de applicatie de mogelijke typeinvoerapparaten tonen waarna de gebruiker er één van deze kan kiezen.
FR4 M De gebruiker moet invoerapparaten kunnen configureren. Dit houdt in datvoor een bepaalde knop of windrichting aangegeven moet kunnen wordenwat voor knop of windrichting het is, hieraan moet door de applicatie eenCAN-bericht gekoppeld worden.
FR4.1 M Het identificeren/instellen van een knop of windrichting moet kunnengebeuren door een knop in te drukken waarna het bijbehorende bitpatroonverstuurd wordt naar de applicatie.
FR4.2 M De applicatie moet na het configureren van een invoerapparaatcontroleren of er consequenties zijn voor de menustructuren en zo ja, danmoet de gebruiker gevraagd worden af hij deze wil (her)configureren.
FR4.3 M De gebruiker moet bestaande (bij het systeem bekende) configuraties vaninvoerapparaten kunnen wijzigen.
FR4.4 M De applicatie moet de huidige configuratie van een bestaandinvoerapparaat kunnen tonen.
FR4.5 M De gebruiker moet een nieuw invoerapparaat kunnen configureren.FR4.6 M De applicatie moet voor dat de instellingen naar de I/O module geupload
worden controleren of er een correcte bijpassende menuconfiguratie is enzo niet, dan moet de gebruiker deze eerst configureren voordat ergeupload kan worden.
FR5 M De gebruiker moet menustructuren en de bijbehorende acties kunnenconfigureren.
FR5.1 M De gebruiker moet bestaande menustructuren kunnen aanpassen.FR5.2 M De applicatie moet de huidige menuconfiguraties kunnen laten zien.FR5.3 M De gebruiker moet menuonderdelen kunnen in/uitschakelen.FR5.4 M De gebruiker moet in een bepaald menu de acties van knoppen of
windrichtingen kunnen aanpassen.FR5.5 M De gebruiker moet nieuwe menustructuren kunnen opstellen.FR5.6 M De gebruiker moet een bepaalde menustructuur kunnen koppelen aan een
bepaald invoerapparaat.FR6 M De applicatie moet opgestelde configuraties kunnen versturen naar het
systeem.FR6.1 M De applicatie moet de gekozen of opgestelde configuraties laten bevestigen
door de gebruiker.FR6.2 M De applicatie moet wachten op een bevestiging van het systeem dat de
nieuwe instellingen zijn weggeschreven en moet hier een melding vangeven.
FR7 M De gebruiker moet de aangepaste of opgestelde configuraties een naamkunnen geven.
FR8 M De gebruiker moet een displayicoon van een menuonderdeel kunnenveranderen of instellen.
FR9 W De gebruiker moet zelf iconen kunnen tekenen.FR10 S De gebruiker moet menustructuren kunnen printen.FR11 S De gebruiker moet configuratie van een invoerapparaat kunnen printen.FR12 W Met de applicatie moet de technisch gebruiker LUA scripts kunnen
schrijven.FR12.1 W De applicatie moet de LUA scripts op syntax controleren.FR12.2 W De applicatie moet de mogelijke LUA API instructies kunnen tonen.FR12.3 W De applicatie moet een LUA script in een bepaald menu aan een
invoerknop kunnen koppelen.FR13 S De gebruiker moet als hij begonnen is met het opstellen van nieuwe
configuraties dit kunnen opslaan om later verder te werken.
![Page 35: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/35.jpg)
Product analyse (Usecases + SSD)
35
![Page 36: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/36.jpg)
Product analyse (Usecases + SSD)
36
![Page 37: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/37.jpg)
Product analyse (Usecases + SSD)
37
![Page 38: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/38.jpg)
Product analyse (Usecases + SSD)
38
![Page 39: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/39.jpg)
Product analyse (domein + deploy)
39
HTML versie van ontwerp omgeving
![Page 40: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/40.jpg)
40
Product ontwerp
![Page 41: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/41.jpg)
Product ontwerp
41
• Model-View-ViewModel
• Designclass diagram en SD’s
• Observer/observable
• Het ontvangen van CAN berichten
![Page 42: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/42.jpg)
42
Product ontwerp
![Page 43: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/43.jpg)
Product ontwerp (MVVM)
43
• Geen logica in de view.
• Eenvoudig meerder views te maken.
• Duidelijke scheiding.
• Binding mechamisme.
• Viewmodel kent de view niet.
• Model kent view en viewmodel niet.
![Page 44: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/44.jpg)
Product ontwerp (classdiagram, SD)
44
HTML versie van ontwerp omgeving
![Page 45: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/45.jpg)
Product ontwerp (observer)
45
![Page 46: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/46.jpg)
Product ontwerp (CANcontroller)
46
![Page 47: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/47.jpg)
Product realisatie(testen)
47
TestClasses Summary Description
UnitTests.CANControllerTests This is testing the CAN controller.
UnitTests.MainWindowViewModelTests This is testing the open and close procedure of workspaces.
UnitTests.ViewModelBaseTests This is testing the propertychanged event.
UnitTests.CANMessageTests This is testing the creation and modification of a CAN message.
UnitTests.CANmonitorViewModelTests This is testing the CAN monitor filter.
![Page 48: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/48.jpg)
Product realisatie(testen)
48
UnitTests.CANControllerTests
TestAttachSubscriber V00:00:00.1426802
TestDetachSubscriber V00:00:00.0019320
TestNotifySubscribers V00:00:01.0032771
TestDetachAllSubscriber V00:00:00.0013500
UnitTests.MainWindowViewModelTests
TestCloseConfigIOmoduleWorkspace V00:00:00.0109113
TestConfigIOmoduleWorkspace V00:00:00.3519264
TestConfigIarmWorkspace V00:00:00.0044724
TestCloseCANmonitorWorkspace V00:00:00.0159435
TestCloseConfigIarmWorkspace V00:00:00.0032400
TestOpenCANmonitorWorkspace V00:00:00.0045850
UnitTests.ViewModelBaseTests
TestPropertyChangedIsRaisedCorrectly V00:00:00.0024845
TestExceptionIsThrownOnInvalidPropertyNameV00:00:00.0095467
UnitTests.CANMessageTests
TestChangeCANmessage V00:00:00.0009852
TestCreateCANmessage V00:00:00.0024509
UnitTests.CANmonitorViewModelTests
TestSetValidFilter V00:00:00.0044659
![Page 49: iARM UI configuration](https://reader035.vdocuments.pub/reader035/viewer/2022081512/589b29751a28ab2d4c8b59df/html5/thumbnails/49.jpg)
49
Any Questions?