Overslaan en naar de inhoud gaan

Softwaregenerator alternatief voor offshoring

Software is meer en meer gemeengoed geworden en manifesteert zich in allerlei gedaantes: in mobiele telefoons, navigatiesystemen, televisies, spellen, internetbankieren, belastingaangiften en dergelijke. De samenleving is volledig afhankelijk geworden van ICT. Software bestuurt niet alleen de administratieve processen in een organisatie, maar ook complexe logistieke processen en productieprocessen. De informatisering van onze samenleving heeft grote sociale en culturele gevolgen.
Maatschappij
Shutterstock
Shutterstock

Deze informatisering heeft ook consequenties voor de manier waarop software wordt ontwikkeld en in de toekomst ontwikkeld zal worden. De software-industrie heeft in de laatste jaren ook een turbulente ontwikkeling doorgemaakt. Veel bedrijven en instellingen zijn van bedrijfsspecifieke oplossingen gemigreerd naar ERP-systemen en zijn nu bezig met Software as a Service (SaaS). Bedrijven als ASML, NXP, Philips en Océ zijn bezig met de ontwikkeling van betrouwbare (embedded) software; bedrijven als DAF Trucks en VanderLande Industries staan aan de vooravond van ‘de software-uitdaging’. De laatst genoemde bedrijven komen voort uit de werktuigbouw. Zij zien dat steeds meer traditionele mechanische processen worden aangestuurd door software. Het uitgangspunt bij deze bedrijven is het ontwikkelen van modellen voor het beschrijven van zowel hard- als software. Deze manier van werken wordt aangeduid met model-driven engineering, modelgestuurd ontwikkelen (zie kader).Modellen nemen een centrale plaats in in de moderne softwareontwikkeling. De manier waarop software wordt ontwikkeld heeft in de afgelopen jaren een groot aantal veranderingen ondergaan. De uitdaging door de jaren heen is het verhogen van het abstractieniveau waarop software wordt ontwikkeld. Momenteel wordt veel software ontwikkeld op basis van domeinspecifieke talen of op basis van Unified Modeling Language (UML). De ontwikkeling van hoogniveauprogrammeertalen heeft verschillende effecten gehad: het ontwikkelen van software werd eenvoudiger, de productiviteit van de programmeur ging omhoog en de kwaliteit van de software werd beter. De omvang en complexiteit van de software groeide echter harder dan de uitdrukkingskracht van de programmeertalen.Softwaregeneratoren (zie kader) vergroten de efficiency van het ontwikkelen van kwalitatief hoogwaardige software. ‘Model Driven Architecture’ is een initiatief waarbij UML als specificatietaal wordt gebruikt voor softwaregeneratie. Vanuit een hoogniveauspecificatie in UML wordt via transformaties een meer concreet model in UML afgeleid. Dit concretere model dient vervolgens als basis voor het genereren van de code voor een specifiek platform. De softwaregeneratie beperkt zich vaak tot de statische aspecten gespecificeerd in het zogenaamde klassendiagram van UML. Het dynamische gedrag moet in bijvoorbeeld Java geprogrammeerd worden, waarbij natuurlijk wel gebruik gemaakt kan worden van de gegenereerde code.De vergaande integratie van software in onze samenleving stelt niet alleen hoge eisen aan de betrouwbaarheid van deze software maar ook aan de snelheid waarmee wij deze software kunnen ontwikkelen en onderhouden. Als oplossing voor de ontwikkelsnelheid en het terugdringen van de ontwikkelingskosten maken steeds meer bedrijven gebruik van offshoring. Het gebruik van model-driven engineering speelt eveneens een belangrijke rol bij offshoring. Het gebruik van (formele) modellen en softwaregeneratoren zou een alternatief voor offshoring kunnen zijn. De modellen kunnen als uitgangspunt dienen bij onder meer het realiseren van een implementatie, het genereren van testgevallen en prototypes et cetera, maar ook bij het genereren van de productiecode als de modellen volledig genoeg zijn. Deze laatste ontwikkeling leidt ertoe dat (software)engineers niet alleen modellen moeten ontwikkelen en onderhouden maar ook de bijbehorende softwaregeneratoren, zeker als men kiest voor domeinspecificieke modelleringstalen.Prof.dr. Mark van den Brand is als hoogleraar ‘software engineering en technology’ verbonden aan de Technische Universiteit Eindhoven. Dit artikel is gebaseerd op zijn intreerede ‘Consistentie tussen model en code’, die hij 3 juli heeft gehouden.

Lees dit PRO artikel gratis

Maak een gratis account aan en geniet van alle voordelen:

  • Toegang tot 3 PRO artikelen per maand
  • Inclusief CTO interviews, podcasts, digitale specials en whitepapers
  • Blijf up-to-date over de laatste ontwikkelingen in en rond tech

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in