SlideShare a Scribd company logo
1 of 49
Exact Dynamics B.V.
08 april 2010
Richard Holleman
mail@rholleman.nl
iARM UI configuration
2
Outline
• De opdracht
• Ontwikkelmethode
• Vooronderzoek
• Product analyse
• Product ontwerp
• Product realisatie/testen
• Toekomst
De opdracht
Vanuit ED:
Applicatie voor configuratie van de IO-module
Het 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
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
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
De opdracht
6
De opdracht
7
De opdracht
8
De opdracht
9
Ontwikkelmethode
Het kiezen van een
ontwikkelmethode
10
Ontwikkelmethode
Gekeken naar:
•Watervalmethode
•Scrum
•eXtreme Programming (XP)
•Rational Unified Process (RUP/openUP)
•Dynamic Systems Development Method (DSDM)
11
Ontwikkelmethode
Watervalmethode
12
Ontwikkelmethode
13
Watervalmethode
ontwikkelmethode
14
Agile methode
ontwikkelmethode
15
•Scrum
•eXtreme Programming (XP)
•Rational Unified Process (RUP/openUP)
•Dynamic Systems Development Method (DSDM)
ontwikkelmethode
16
ontwikkelmethode
17
Iteratie 1
In deze iteratie zal de basis gelegd worden voor de GUI en de communicatie met het
systeem zal geïmplementeerd worden.
Iteratie 2
In deze iteratie zal het onderdeel waarmee de I/O module te configureren is
ontwikkeld worden.
Iteratie 3
In deze iteratie wordt het deel van de applicatie ontwikkeld dat de visualisatie van de
menustructuren mogelijk maakt en het tekenen van de iconen.
Iteratie 4
In 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.
Het vooronderzoek
18
Vooronderzoek
• Doelgroep analyse
• Mogelijke oplossingen
• Programmeertaal
• CAN protocol
• Normen en richtlijnen
19
Vooronderzoek (doelgroep)
• Waarom?
• Verschillende gebruikers
• Welke invoerapparaten
• Besturingsystemen
• Wensen van de dealer
20
Vooronderzoek (doelgroep)
Gebruikers:
• Technici van ED
• Dealers
• Universiteiten
• Overige gebruikers (primaire functie appl)
21
Vooronderzoek (doelgroep)
• Waarom?
• Verschillende gebruikers
• Welke invoerapparaten
• Besturingsystemen
• Wensen van de dealer
22
Vooronderzoek (doelgroep)
Wensen van de dealer:
• Analoge bediening
• Handeling bij storing
• Default configuratie
23
Vooronderzoek (oplossingen)
• Oplossing voor configuratie iARM
• Oplossing voor configuratie IO module
24
Vooronderzoek (oplossingen)
iARM oplossing 1:
25
Vooronderzoek (oplossingen)
iARM oplossing 2 en 3:
26
Vooronderzoek (oplossingen)
IO module Oplossing 1, 2 en 3:
27
USB – OTGD-SUB 9 +
schakelaar
D-SUB 9
Vooronderzoek (oplossingen)
conclusie
28
Vooronderzoek (programmeertaal)
• Java
• C++ (unmanaged)
• C++ .NET (managed)
• C# .NET
• J# .NET
29
Vooronderzoek (programmeertaal)
30
Java C++ C++ .NET C# .NET J# .NET
Platform 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 Weinig
GUI AWT, Swing,
Jdesktop
Win32 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
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
Product analyse
32
Product analyse
• Requirements
• Use-cases en SSD’s
• Domeinmodel
• Deploymentdiagram
• Communicatie protocol
33
Product analyse (Requirements)
• FURPS+ en MoSCoW
FR8 (M) De gebruiker moet een displayicoon van een
menuonderdeel kunnen veranderen of instellen.
34
ID Prioriteit Eis
FR1 M De configuratieapplicatie moet met het iARM-systeem communiceren op
basis van het CAN‐protocol over een CAN‐bus. Het moet zowel CAN
berichten kunnen ontvangen als versturen.
FR2 M De applicatiemoet 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 type
invoerapparaten tonen waarna de gebruiker er één van deze kan kiezen.
FR4 M De gebruiker moet invoerapparaten kunnen configureren. Dit houdt in dat
voor een bepaalde knop of windrichting aangegeven moet kunnen worden
wat voor knop of windrichting het is, hieraan moet door de applicatie een
CAN-bericht gekoppeld worden.
FR4.1 M Het identificeren/instellen van een knop of windrichting moet kunnen
gebeuren door een knop in te drukken waarna het bijbehorende bitpatroon
verstuurd wordt naar de applicatie.
FR4.2 M De applicatie moet na het configureren van een invoerapparaat
controleren of er consequenties zijn voor de menustructuren en zo ja, dan
moet de gebruiker gevraagd worden af hij deze wil (her)configureren.
FR4.3 M De gebruiker moet bestaande (bij het systeem bekende) configuraties van
invoerapparaten kunnen wijzigen.
FR4.4 M De applicatie moet de huidige configuratie van een bestaand
invoerapparaatkunnen tonen.
FR4.5 M De gebruiker moet een nieuw invoerapparaatkunnen 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 en
zo niet, dan moet de gebruiker deze eerst configureren voordat er
geupload kan worden.
FR5 M De gebruiker moet menustructuren en de bijbehorende acties kunnen
configureren.
FR5.1 M De gebruiker moet bestaande menustructurenkunnen aanpassen.
FR5.2 M De applicatiemoet 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 van
geven.
FR7 M De gebruiker moet de aangepaste of opgestelde configuraties een naam
kunnen geven.
FR8 M De gebruiker moet een displayicoon van een menuonderdeel kunnen
veranderen 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 invoerapparaatkunnen printen.
FR12 W Met de applicatie moet de technisch gebruiker LUA scripts kunnen
schrijven.
FR12.1 W De applicatiemoet de LUA scripts op syntax controleren.
FR12.2 W De applicatiemoet 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.
Product analyse (Usecases + SSD)
35
Product analyse (Usecases + SSD)
36
Product analyse (Usecases + SSD)
37
Product analyse (Usecases + SSD)
38
Product analyse (domein + deploy)
39
HTML versie van ontwerp omgeving
40
Product ontwerp
Product ontwerp
41
• Model-View-ViewModel
• Designclass diagram en SD’s
• Observer/observable
• Het ontvangen van CAN berichten
42
Product ontwerp
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.
Product ontwerp (classdiagram, SD)
44
HTML versie van ontwerp omgeving
Product ontwerp (observer)
45
Product ontwerp (CANcontroller)
46
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.
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
TestExceptionIsThrownOnInvalidPropertyName
V00:00:00.0095467
UnitTests.CANMessageTests
TestChangeCANmessage
V00:00:00.0009852
TestCreateCANmessage
V00:00:00.0024509
UnitTests.CANmonitorViewModelTests
TestSetValidFilter
V00:00:00.0044659
49
Any Questions?

More Related Content

Viewers also liked

JAFN proyecto itinerario 15.16 1ª eval
JAFN proyecto itinerario 15.16 1ª evalJAFN proyecto itinerario 15.16 1ª eval
JAFN proyecto itinerario 15.16 1ª evaloscarpesainz
 
united nations salaries
united nations salariesunited nations salaries
united nations salariesOsama Thabet
 
BIS4430 - Endorse Me Back
BIS4430 - Endorse Me BackBIS4430 - Endorse Me Back
BIS4430 - Endorse Me BackAdam Lalani
 
Feminist Film Analysis
Feminist Film AnalysisFeminist Film Analysis
Feminist Film AnalysisChetna Sethia
 
Powerpoint comboboxen en gatenteksten
Powerpoint comboboxen en gatentekstenPowerpoint comboboxen en gatenteksten
Powerpoint comboboxen en gatentekstenDRPMarijke
 
Soil contamination and remediation
Soil contamination and remediationSoil contamination and remediation
Soil contamination and remediationShoaib Iqbal
 
Tabla periódica ficha aplicacion
Tabla periódica ficha aplicacionTabla periódica ficha aplicacion
Tabla periódica ficha aplicacionJacqueline08
 
Pertsona deskribapena idazten pausoka
Pertsona deskribapena idazten pausokaPertsona deskribapena idazten pausoka
Pertsona deskribapena idazten pausokaidoialariz
 

Viewers also liked (11)

JAFN proyecto itinerario 15.16 1ª eval
JAFN proyecto itinerario 15.16 1ª evalJAFN proyecto itinerario 15.16 1ª eval
JAFN proyecto itinerario 15.16 1ª eval
 
united nations salaries
united nations salariesunited nations salaries
united nations salaries
 
BIS4430 - Endorse Me Back
BIS4430 - Endorse Me BackBIS4430 - Endorse Me Back
BIS4430 - Endorse Me Back
 
Presentación 1.0 (1)
Presentación 1.0 (1)Presentación 1.0 (1)
Presentación 1.0 (1)
 
Feminist Film Analysis
Feminist Film AnalysisFeminist Film Analysis
Feminist Film Analysis
 
ROAM
ROAMROAM
ROAM
 
Powerpoint comboboxen en gatenteksten
Powerpoint comboboxen en gatentekstenPowerpoint comboboxen en gatenteksten
Powerpoint comboboxen en gatenteksten
 
Soil contamination and remediation
Soil contamination and remediationSoil contamination and remediation
Soil contamination and remediation
 
Tabla periódica ficha aplicacion
Tabla periódica ficha aplicacionTabla periódica ficha aplicacion
Tabla periódica ficha aplicacion
 
Pertsona deskribapena idazten pausoka
Pertsona deskribapena idazten pausokaPertsona deskribapena idazten pausoka
Pertsona deskribapena idazten pausoka
 
Taller de aplicación
Taller de aplicaciónTaller de aplicación
Taller de aplicación
 

Similar to iARM UI configuration

Didax Beheerhandboek v300
Didax Beheerhandboek v300Didax Beheerhandboek v300
Didax Beheerhandboek v300Marten Boven
 
Infosessie Smals Research - Application platform as a Service - 12/2013
Infosessie Smals Research - Application platform as a Service - 12/2013Infosessie Smals Research - Application platform as a Service - 12/2013
Infosessie Smals Research - Application platform as a Service - 12/2013Smals
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages IntroductieRob Bontekoe
 
Relatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
Relatie Tussen Gebruiksvriendelijkheid En SysteemarchitectuurRelatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
Relatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuuremanueldhondt
 
Relatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
Relatie Tussen Gebruiksvriendelijkheid En SysteemarchitectuurRelatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
Relatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuuremanueldhondt
 
Lemon clean course
Lemon clean courseLemon clean course
Lemon clean courseFilip Smet
 
Nieuwe einstruction workspace en response software en nieuwe digiborden q4 2011
Nieuwe einstruction workspace en response software en nieuwe digiborden q4 2011Nieuwe einstruction workspace en response software en nieuwe digiborden q4 2011
Nieuwe einstruction workspace en response software en nieuwe digiborden q4 2011Transcontinenta BV
 
IT2IT Software metering feature - lab lucas
IT2IT Software metering feature - lab lucasIT2IT Software metering feature - lab lucas
IT2IT Software metering feature - lab lucasIT2IT
 
Dev Days Windows Installer Technology Final
Dev Days Windows Installer Technology FinalDev Days Windows Installer Technology Final
Dev Days Windows Installer Technology FinalJeroen Braak
 
Presa XPages Lotusphere Comes To 17/03/2011
Presa XPages Lotusphere Comes To 17/03/2011Presa XPages Lotusphere Comes To 17/03/2011
Presa XPages Lotusphere Comes To 17/03/2011Frank van der Linden
 
Presa XPages lotusphere Comes To You 2011
Presa XPages lotusphere Comes To You 2011Presa XPages lotusphere Comes To You 2011
Presa XPages lotusphere Comes To You 2011e-office bv
 
Apps met verschillende maten
Apps met verschillende matenApps met verschillende maten
Apps met verschillende matenDave Smits
 
Versiebeheer van database changes
Versiebeheer van database changesVersiebeheer van database changes
Versiebeheer van database changesArjen van Vliet
 
Cordis artikel Het Ondernemersbelang
Cordis artikel Het OndernemersbelangCordis artikel Het Ondernemersbelang
Cordis artikel Het Ondernemersbelangswaipnew
 
Rapport 201012 xmpp_federatie_ocs_implementatiehandleiding
Rapport 201012 xmpp_federatie_ocs_implementatiehandleidingRapport 201012 xmpp_federatie_ocs_implementatiehandleiding
Rapport 201012 xmpp_federatie_ocs_implementatiehandleidingsig-uc
 
[Ht] human computer interaction 5
[Ht] human computer interaction 5[Ht] human computer interaction 5
[Ht] human computer interaction 5Klaas Jan Mollema
 
Powerpoint de schil
Powerpoint de schilPowerpoint de schil
Powerpoint de schilDRPMarijke
 

Similar to iARM UI configuration (20)

Isw Programmeren
Isw ProgrammerenIsw Programmeren
Isw Programmeren
 
Didax Beheerhandboek v300
Didax Beheerhandboek v300Didax Beheerhandboek v300
Didax Beheerhandboek v300
 
Infosessie Smals Research - Application platform as a Service - 12/2013
Infosessie Smals Research - Application platform as a Service - 12/2013Infosessie Smals Research - Application platform as a Service - 12/2013
Infosessie Smals Research - Application platform as a Service - 12/2013
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages Introductie
 
Relatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
Relatie Tussen Gebruiksvriendelijkheid En SysteemarchitectuurRelatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
Relatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
 
Relatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
Relatie Tussen Gebruiksvriendelijkheid En SysteemarchitectuurRelatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
Relatie Tussen Gebruiksvriendelijkheid En Systeemarchitectuur
 
Lemon clean course
Lemon clean courseLemon clean course
Lemon clean course
 
NFR Gebruiksvriendelijkheid
NFR GebruiksvriendelijkheidNFR Gebruiksvriendelijkheid
NFR Gebruiksvriendelijkheid
 
Nieuwe einstruction workspace en response software en nieuwe digiborden q4 2011
Nieuwe einstruction workspace en response software en nieuwe digiborden q4 2011Nieuwe einstruction workspace en response software en nieuwe digiborden q4 2011
Nieuwe einstruction workspace en response software en nieuwe digiborden q4 2011
 
IT2IT Software metering feature - lab lucas
IT2IT Software metering feature - lab lucasIT2IT Software metering feature - lab lucas
IT2IT Software metering feature - lab lucas
 
Dev Days Windows Installer Technology Final
Dev Days Windows Installer Technology FinalDev Days Windows Installer Technology Final
Dev Days Windows Installer Technology Final
 
Presa XPages Lotusphere Comes To 17/03/2011
Presa XPages Lotusphere Comes To 17/03/2011Presa XPages Lotusphere Comes To 17/03/2011
Presa XPages Lotusphere Comes To 17/03/2011
 
Presa XPages lotusphere Comes To You 2011
Presa XPages lotusphere Comes To You 2011Presa XPages lotusphere Comes To You 2011
Presa XPages lotusphere Comes To You 2011
 
Bs 2 les 20110328
Bs 2   les 20110328Bs 2   les 20110328
Bs 2 les 20110328
 
Apps met verschillende maten
Apps met verschillende matenApps met verschillende maten
Apps met verschillende maten
 
Versiebeheer van database changes
Versiebeheer van database changesVersiebeheer van database changes
Versiebeheer van database changes
 
Cordis artikel Het Ondernemersbelang
Cordis artikel Het OndernemersbelangCordis artikel Het Ondernemersbelang
Cordis artikel Het Ondernemersbelang
 
Rapport 201012 xmpp_federatie_ocs_implementatiehandleiding
Rapport 201012 xmpp_federatie_ocs_implementatiehandleidingRapport 201012 xmpp_federatie_ocs_implementatiehandleiding
Rapport 201012 xmpp_federatie_ocs_implementatiehandleiding
 
[Ht] human computer interaction 5
[Ht] human computer interaction 5[Ht] human computer interaction 5
[Ht] human computer interaction 5
 
Powerpoint de schil
Powerpoint de schilPowerpoint de schil
Powerpoint de schil
 

iARM UI configuration