Frans Slothouber

Geboortedatum 11 november 1967
Opleidingen MTS Elektronica, HTS Computertechniek, TU Informatica
Afstudeerrichting Software Engineering
Samenvatting
Systeem ontwerper met tien jaar ervaring in de ICT. Actief in de open source beweging en met een brede interesse. Gedegen kennis van zowel OO als structured design. Ruime evaring in C, C++, en Perl. Goed in het reverse engineeren en oplappen van bestaande code, het automatiseren van het ontwikkel, test en documentatie proces, en het analyseren van grote hoeveelheden data.
Kennisoverzicht
Talen en formaten C, C++, Perl, Java, R, STL, XML/XSD, ASN1.
Ontwerp methoden en tools RUP, Ward en Mellor, Yellow-Book, SIL, Design Patterns, UML, CRC sessies, Rational Rose, System Architect.
Test methoden en tools Automatisch Testen, Unittest Framewerken, Rational Purify en Quantify, PCLint.
Documentatie methoden en tools ROBODoc, DocBook, LaTeX, DOD standaard.
Operating Systemen GNU/Linux, Unix, VMS, Windows.
Configuration Management CMS, CVS.
Toepassings gebieden Code generatie, Simulatie systemen, Automatisch testen, Transport automatisering, Data analyse, Troubleshooting.
Ervaringsoverzicht
2005 t/m heden Systeem Ontwerper Uitbreiden en testen van een spoorwegbeveiligingssysteem in Java, C++, C en Perl.
2004 t/m 2005 Senior Technisch Ontwerper Uitbreiden van een spoorwegsimulator in Pascal en Perl.
2002 t/m 2004 Senior Technisch Ontwerper Ontwerp, implementatie en testen van een spoorwegbeveiligingssysteem in Java, C++, C en Perl.
2000 t/m 2002 Technisch Ontwerper Het ontwerpen en ontwikkelen van een spoorwegsimulator in C++ met behulp van Rational Rose.
1995 t/m 1999 Scientific Staff Member Performance analyse van een optisch netwerk door middel van een zelf ontwikkelde netwerk simulator geschreven in C++. Ontwerp en bouw van een netwerkmanagement systeem in Java en C.
1993 t/m 1994 Stagair Het ontwerpen en implementeren van een Code Generatie systeem in een Lisp achtige taal met als doeltaal Fortran.
Open Source Projecten
1996 t/m heden Ontwerp en Implementatie van een play-by-email turn-based simulatiespel, GalaxyNG.
1995 t/m heden Ontwerp en implementatie van de software documentatie tool ROBODoc.
Publicaties
Automatic Code Generation for Parallel Finite Elements Solvers, Heijstek, J.J., Slothouber, F.N.C., Goldman, V.V. Proceeding of the Parallel Processing for Scientific Computing Conference, 1995
Performance Impact of Dynamic Wavelength Reconfiguration in (WDM) Access Networks, Slothouber, F.N.C., Heemstra-de Groot, S.M., Niemegeers, I.G.M.M., Proceedings of Optical Network Design and Modeling Conference, 1999.
Performance improvement by reconfiguring wavelengths in a hybrid WDM access network Slothouber, F.N.C., Heemstra-de Groot, S.M., Niemegeers, I.G.M.M. Proceedings of the Advanced Simulation Technologies Conference, 2000

Details

Opdrachtgever InTraffic
Eindproduct KBV, Spoorwegbeveiligings-vertaalsysteem
Tijdvak 10-2002 t/m 05-2004 en 05-2005 t/m heden
Functie Senior Technisch Ontwerper, Systeem Ontwerper

Omschrijving werkzaamheden

InTraffic ontwikkelt applicaties voor de Nederlandse Spoorwegen. Een van deze applicaties, procesleiding regelt de treinenloop in Nederland en is vergelijkbaar met een vluchtleidingssysteem. Het bestaat uit een groot aantal deel applicaties, een van deze is KBV. KBV verzorgt de vertaling van het berichtverkeer tussen de nieuwe generatie beveiligingssystemen en het procesleidingsysteem.

KBV is geschreven in C en draait op een VMS systeem; het bestaat uit een aantal afzonderlijke processen die via DMQ en TCP/IP communiceren. Om het systeem te kunnen testen is zijn er ook een aantal monitor applicaties geschreven in C++ en Java die het mogelijk maken data stromen in KBV run-time te bekijken en visualiseren.

KBV was al door een ander bedrijf geschreven, maar als te onstabiel en ononderhoudbaar bevonden. InTraffic werd gevraagt het hele systeem opnieuw te ontwerpen, implementeren, en testen. Dit voor een fixed prijs en met een boete clausule voor het overschrijden van de opleverdatum.

Met taken binnen de eerste fase van dit project waren:

Met taken binnen de tweede fase van dit project waren:

Met taken binnen de derde fase van dit project waren:

Hoewel het project door de boete clausule onder grote tijdsdruk stond is het op tijd opgeleverd en succesvol ingezet.

Toegepaste kennis: C, C++, Java, Perl, UML, XML, R, XSD, CMS, CVS, Make, PC Lint, Rational Purify, ASN1, System Architect, Windows NT, VMS, SIL, Yellow-Book.

Toegepaste Methoden: Ward en Mellor, Unittesting, Automatische Code Generatie.

Opdrachtgever InTraffic
Eindproduct ProTest, Spoorwegsimulator en Testsysteem
Tijdvak 05-2004 t/m 05-2005
Functie Senior Technisch Ontwerper

Omschrijving werkzaamheden

Het project ProTest heeft als doel het aanpassen van de huidige opleidings- en testhulpmiddelen zodat locatiespecifiek kan worden getest en opgeleid. Onderdeel hiervan is het aanpassen van PROSIM zodat het naast de NX’68 beveiliging ook een EBS1b beveiliging kan simuleren.

PROSIM is een onderdeel van PROSY welk een systeem is dat ondersteuning biedt aan de opleiding van RVL-medewerkers tot de functie van treindienstleider en het het testen van VPT-producten.

Het systeem heeft dezelfde functies en vertoont het gedrag als een procesleidingssysteem. PROSY biedt plaats aan een aantal cursisten die ieder een procesleidingswerkplek tot hun beschikking hebben. De cursisten bedienen een deel van het gesimuleerde procesleidingsgebied. De instructeur heeft voorzieningen (PROSIM) om de toestand van het gesimuleerde procesleidingsgebied en de gesimuleerde treinbewegingen te beïnvloeden en verstoringen te introduceren om daarmee realistische situaties voor de cursisten te creëren.

Mijn taken binnen het ProTest project zijn:

Toegepaste kennis: Perl, Pascal, System Architect

Toegepaste Methoden: Automatische Code Generatie.

Opdrachtgever InTraffic
Eindproduct CSBO - Spoorwegsimulator
Tijdvak 04-2000 t/m 10-2002
Functie Technisch Ontwerper

Omschrijving werkzaamheden

InTraffic ontwikkelt applicaties voor de nederlandse spoorwegen. Een van deze applicaties, procesleiding regelt de treinenloop in Nederland en is vergelijkbaar met een vluchtleidingssysteem. Het bestaat uit een groot aantal deel applicaties, één van deze is deelapplicties is ConflictSignalering en BeslissingsOndersteuning (CSBO).

CSBO maakt de treindienstleider attent op mogelijke conflicten in de treinenloop. Bijvoorbeeld wanneer twee treinen gelijktijdig van een stuk rails gebruik willen maken. Hiervoor simuleert het systeem de toekomstige treinbewegingen op basis van het procesplan (spoorboekje) en huidige situatie (vertragingen) van de treinen. CSBO bepaalt waar welke treinen zich in de toekomst zullen bevinden en zoekt dan naar conflicten. Zodra er een conflict wordt gesignaleerd, kan het systeem één of meerdere suggesties doen over hoe de treinenloop kan worden aangepast zodat het conflict vermeden kan worden.

Een eerste versie van dit systeem is door een derde partij ontwikkeld. Deze versie is echter slecht gedocumenteerd, moeilijk te doorgronden en onstabiel. Om te bepalen of deze versie kon dienen als basis voor een onderhoudbaar en stabiel systeem, heb ik in een team van vijf personen het systeem reverse ge-engineerd en uitgebreid.

Uit dit project en een fieldtrial bleek echter dat het zeer moeilijk was het systeem uit te breiden en stabiel te krijgen. De voornaamste reden hiervoor was de enorme verwevenheid van de orginele code. Er is daarom besloten om het systeem van de grond af aan opnieuw te bouwen. Voor het ontwerp hebben we een aantal CRC sessies gehouden om een eerste aanzet voor een nieuw model te vinden. Hierna heb ik een kostenschatting van het project gemaakt.

Met behulp van UML en Rational Rose heb ik samen met anderen het model uitgewerkt en in code omgezet. Hiervoor is het team uitgebreid tot negen man. Buiten het modelleren en coderen was een van mijn andere taken het coördineren van de technische werkzaamheden en het zijn van een vraagbaak op het gebied van OO en C++.

De ontwikkelomgeving draait onder NT, maar het target systeem en systeembeheerversie draait onder VMS. Voor de intergratie tussen deze systemen en het genereren van de makefiles heb ik een aantal tools geschreven in VB en Perl.

Maken van een codegenerator in Perl die gegeven de class definities zoals ze in het RationalRose model staan C++ code genereerd om object te serializeren en de-serializeren.

Om er voor te zorgen dat deze versie beter onderhoudbaar en stabieler is dan de vorige versie heb ik een C++ unittest framewerk geïntroduceerd en opgezet.

Toegepaste kennis: C, C++, Pascal, Perl, STL, UML, XML, CMS, Make, MS VC++ PC Lint, Rational Purify, Rational Rose, Windows NT, VMS.

Toegepaste Methoden: CRC-kaarten, Design Patterns, Object Oriented Design, Unittesting.

Opdrachtgever CTIT
Eindproduct Netwerk Simulator en Netwerk Management Systeem
Tijdvak 10-1995 t/m 10-1999
Functie Scientific Staff Member

Omschrijving werkzaamheden

Het CTIT houdt zich bezig met onderzoek naar data en telecommunicatie-applicaties en neemt deel aan Europese onderzoeksprojecten. Eén van deze projecten is TOBASCO, Towards Broadband Access Systems for CATV Optical Networks. Doel van het project, het upgraden van bestaande kabel-TV netwerken naar (Internet) access netwerken. Voor de benodigde bandbreedte wordt gebruik gemaakt van wavelength division multiplexing.

De duur van het project was drie jaar, met als doel een fieldtrial in het laatste jaar. Het project is een samenwerkingsverband met meerdere internationale bedrijven: Philips, Lucent, Corning, Norcontel, KPN en Bosch. Het CTIT was verantwoordelijk voor de ontwikkeling van het netwerk managementsysteem voor zowel de fysische als de netwerklaag.

Voor dit project heb ik een netwerk managementsysteem ontworpen en geïmplementeerd. Het TOBASCO netwerk is boomvormig; een aantal opticalnetwork units zijn verbonden met een headend. De architectuur van het managementsysteem is gelijksoortig. Ieder netwerkelement is voorzien van een 8051 microcontroller waarop een agent draait. De netwerkmanager draait op een Sun Workstation. Voor de besturing communiceert de manager met de agents die verspreid staan over de stad.

Gezien het beperkte hardwarebudget diende er een goedkope oplossing te komen voor multiple access en het communicatiemedium. Door gebruik te maken van een aantal onbenutte glasvezels en door microcontrollers bestuurde RS232 switches in de knooppunten kon een tweede boomvormig overlaynetwerk gerealiseerd worden. Dit hebben we samen met Lucent ontwikkeld. De software voor de agents en de manager is geschreven in C. Waarbij de manager gebruik maakt van een OO library om het netwerk als een netwerk van objecten te representeren. Daar de field trail in België plaatsvond en de verschillende partners in het project over Europa verspreid zijn, heb ik een remote userinterface gebruikt. Deze is geschreven in Java en communiceert met de manager via TCP/IP. Dit maakte het mogelijk het netwerk vanuit elke plaats via een webbrowser te controleren. Het project was aan een strak tijdsplan gebonden, en voor het project heb ik een aantal voortgangsrapportages geschreven.

Een van de eigenschappen van het TOBASCO netwerk is dat er gebruik wordt gemaakt van wavelength division multiplexing. Meerdere datastromen worden via verschillende golflengten over dezelfde glasvezel vervoerd. Niet alleen kan hierdoor meer bandbreedte aangeboden worden aan de gebruikers, maar het netwerk kan zich ook aanpassen aan de verkeersbelasting. Door een dynamische herindeling van golflengtes en datastromen kunnen onderbelaste golflengtes excesverkeer van overbelaste golflengtes opvangen. Dit principe heet dynamic wavelength reconfiguration.

Belangrijk was om na te gaan in welke gevallen dit principe effectief is. Hiervoor heb ik een performance analyse uitgevoerd met behulp van een netwerksimulator en theoretische modellen. De simulator is geschreven in C++. De simulaties zijn zeer rekenintensief. Ik heb daarom veel tijd besteed aan de optimalisatie van de simulator en aan een code om de simulaties te distribueren over een netwerk van computers. Verder heb ik een aantal Tcl/Tk scripts geschreven voor de verwerking en visualisatie van de simulatiegegevens. Ik heb drie publicaties over dit onderwerp geschreven en gepresenteerd op internationale conferenties in Parijs, San Diego, en Santa Margherita Ligure. De simulator wordt nog steeds gebruikt voor onderzoek.

Toegepaste kennis: C, C++, Java, Tcl/Tk, Unix shell scripts, CVS, DDD, gnuplot, LaTeX, Xfig, Linux, Windows NT.

Opdrachtgever NLR
Eindproduct Parasol, Code Generator
Tijdvak 10-1993 t/m 06-1994
Functie Stagair / Afstudeerder

Omschrijving werkzaamheden

Binnen het NLR houdt men zich bezig met het ontwikkelen van numerieke programma's voor het analyseren van onderdelen voor vlieg- en ruimtevaartuigen.

Het uitgangspunt is een high-level specificatie in de vorm van een differentiaalvergelijking en een eindige-elementen grid die het gedrag en de vorm van het onderdeel beschrijven. Deze specificatie wordt dan omgezet naar een matrix-vectorvergelijking en een programma dat deze vergelijking oplost. De omzetting vergt een groot aantal mathematische bewerkingen die moeilijk te vinden fouten kunnen introduceren. Hetzelfde geldt voor het aanpassen van het programma aan een nieuwe oplossingsmethode, computerarchitectuur of programmeertaal.

Mijn taak was dit proces te automatiseren en zo een foutenbron te elimineren. Hiervoor heb ik een programma-generator geschreven. Deze genereert, gegeven een high-level specificatie van het probleem (ongeveer twee Kbyte LISP code), een drietal programma's:

De programma-generator is geïmplementeerd met behulp van het computer-algebra systeem REDUCE en het vertaalpakket GENTRAN. Het genereert programma's in een versie FORTAN 77 die is uitgebreid met multiprocessor commando's. Hierdoor kon optimaal gebruik gemaakt worden van de NEC SX3/22 supercomputer waarop de programma's draaien. Over de gebruikte technieken heb ik in San Francisco een publicatie gepresenteerd.

Toegepaste kennis: C, Fortran, Lisp, LaTeX, Make, Unix.

Opdrachtgever Open Source Project
Eindproduct GalaxyNG, Multiplayer Simulatie Spel
Tijdvak 01-1996 t/m heden
Functie Ontwikkelaar en Ontwerper

Omschrijving werkzaamheden

GalaxyNG is een play-by-email turn-based simulatiespel voor meerdere spelers. Het betreft een gevecht en economische simulatie gesitueerd in een universum. Iedere speler krijgt controle over een natie die een klein deel van het universum bezit. Het doel is een zo groot mogelijk deel van een universum te veroveren en koloniseren. Het spel is een client-server systeem.

Iedere speler heeft een client die een grafische representatie geeft van zijn natie. Met de client kunnen ook orders geschreven worden die aangeven wat de natie de volgende turn moet doen. Orders worden via email naar de server gestuurd. Deze controleert de orders en stuurt een email met de eventuele fouten in de orders en een verwachting van de situatie in de volgende turn. Meerdere malen per week gebruikt de server de ingestuurde orders om de nieuwe spelsituatie (turn) te berekenen. De spelers krijgen een turnreport in ASCII of XML formaat toe gestuurd.

Dit is een project dat in teamverband is ontwikkeld. Verschillende mensen hebben clients (turn viewers) ontwikkeld. Ik heb samen met anderen de server ontwikkeld. De server bestaat uit ongeveer 400 kbyte C source en een aantal shell scripts.

Toegepaste kennis: C, Tcl/Tk, Procmail, Unix shell scripts, DDD, Make.

Opdrachtgever Open Source Project
Eindproduct ROBODoc
Tijdvak 05-1995 t/m heden
Functie Ontwikkelaar, Ontwerper, Manager

Omschrijving werkzaamheden

Documentatie van programma's is belangrijk. Het is echter lastig zowel de documentatie als de source code van een programma in-sync en up-to-date te houden.

ROBODoc is een oplossing voor dit probleem. Het is vergelijkbaar met JavaDoc, maar het is te gebruiken voor iedere willekeurige programmeertaal. De source code en documentatie vormen een document. De documentatie bestaat uit speciaal geformatteerde remark headers. ROBODoc scant de source file en zoekt naar deze speciaal geformateerde headers. De informatie in de headers wordt dan geformateerd in HTML, ASCII, LaTeX, XML, of RTF. Dit compleet met hyperlinks en een index met alle klassen, functies, constanten, variabelen. Dit programma heb ik in teamverband via het internet ontwikkeld. Het is onder andere in het KBV project ingezet.

Toegepaste kennis: C, Perl, Unix shell scripts, XML, CVS, DDD, Autoconfig, LaTeX, Linux, DocBook.