Yokogawa

ROL: Lead Software engineer, software ontwikkelaar

TOOLS:  Java, JNI, C, ISAM, IntelliJ IDEA, SCADA, Object Oriented Programming

BRANCHE: Process engineering

Projectomschrijving

Amersfoort, 2012

Als lead engineer ben ik binnen een internationaal ontwikkelteam verantwoordelijk voor het ontwikkelen van een grootschalige extensie aan de PROCESS/FAST module van FAST/TOOLS. FAST/TOOLS is een gedistribueerd SCADA (Supervisory Control And Data Acquisition) applicatie die door Yokogawa is ontwikkeld. De applicatie is modulair opgebouwd waarbij de verschillende modules met elkaar communiceren via BUS/FAST, een data bus module. Een van deze modules is PROCESS/FAST. 

De PROCESS/FAST module is een object georiënteerde engineering tool waarmee verschillende door de gebruiker gedefinieerde functies geïmplementeerd kunnen worden die binnen FAST/TOOLS worden uitgevoerd. De taal waarmee deze functies geschreven worden is een Yokogawa eigen scripting taal. Deze taal, genaamd PROCESS/FAST Language, bied helaas geen voldoende flexibiliteit, onderhoudbaarheid en een volledige set van programmeer functies zoals integrale object oriëntatie, lussen en diverse libraries. Om de gebruiker te kunnen voorzien van een modernere en flexibelere ontwikkel omgeving is PROCESS/FAST uitgebreid met Java als ontwikkeltaal. 

In mijn rol als lead engineer heb ik een team van drie software engineers aangestuurd waarbij ik tevens verantwoordelijk was voor de technische design en ontwikkeling van de Java extensie. Dit houd in het ontwerpen en implementeren van een Java framework waarmee het mogelijk wordt om binnen FAST/TOOLS Java classes te compileren, deze te managen en de gegenereerde Java objecten uit te voeren. Tijdens de ontwikkeling heb ik verschillende specialistische Java modules moeten implementeren zoals javax embedded compiler interface implementatie, custom classloader ontwikkeling, Java object code beheer, dynamisch laden en beheren van objecten op één Virtual Machine, ISAM (Indexed Sequential Access Method) structuur implementatie en het ontwikkelen van verschillende JNI (Java Native Interface) modules in de programmeertaal C. Bij dit project waren de volgende taken relevant:

  • Projectmatig werken in een internationaal team;
  • Lead engineering, begeleiden engineers, project bewaking, rapporteren en kwaliteitsbeheer;
  • Implementeren technisch Software design;
  • Software implementatie in Java en C;
  • Testen en Software module integratie.