Exploratory Modelling toegepast

 
16 mei 2008

Sogyo heeft op een succesvolle manier Exploratory Modelling toegepast, ook wel geschreven als eXploratory Modeling of xM.
Exploratory Modelling is een term voor een aanpak waarmee op een speciale manier een business domein model tot stand komt. Het probleem is vaak dat een klant wel op abstractere business niveaus kan beschrijven wat hij wil, maar dat bij de vertaling naar de techniek grote problemen ontstaan die uiteindelijk leiden tot een onbevredigende of nog erger oplossing.
xM is een uitbreiding op, en een praktische toepassing van DDD. Voor ons een waardevolle aanvulling op de reeks van technieken die wij toepassen binnen projecten.
De toepassing van domeingedreven werken kan dit probleem gedeeltelijk oplossen doordat het poogt zoveel mogelijk technische aspecten buiten de discussie te houden. Toch moet het domein geïmplementeerd worden in een technische programmeertaal, en daar gaat dan toch weer vaak een groot gedeelte van de semantiek van het business domein verloren.
Enkele links naar meer informatie over xM:

  1. Exploratory Programming
  2. A note on exploratory modeling with SmallDEVS
  3. download the white paper from Cincom

Wat is er nu zo speciaal aan de manier waarop het business domein met xM tot stand komt?
Het voornaamste kenmerk is de interactieve manier van werken. Binnen een extreem toegankelijke omgeving waarin on-the-fly objecten kunnen worden gemaakt, veranderd, gekoppeld en bekeken, is het mogelijk samen met de business domein experts in korte tijd een domein model te maken. Omdat de omgeving niet alleen een model oplevert maar tegelijkertijd, zonder enige onderbreking of vertaling, een runtime gedrag, kan er in de elicitatiesessies geconcentreerd worden op het probleem domein met minimale afleiding door een ontwikkelomgeving waarin gemodelleerd/gebouwd wordt.
Er wordt dus niet alleen een model of class skeletons ontwikkeld, maar ook daadwerkelijk gedrag (code) en semantiek. Het model wordt uitgebreid terwijl het draait.
Na afloop wordt het model overgeheveld naar C# in VisualStudio, momenteel een enigszins ambachtelijk proces dat zich leent om meer geautomatiseerd te worden in de toekomst. We gebruiken hiervoor XMI, via een UML tool, dat dit weer omzet naar C# skeleton classes. De methode namen en associaties zijn in C# dan wel volledig ingevuld, maar de methode bodies niet. Hiervoor moet de ontwikkelaar de code die in commentaar is geplaatst, vertalen naar C# (of een andere taal, als we syncen met Eclipse bijvoorbeeld Java – in principe is de modelleerslag volledig taalonafhankelijk).
Dit is echter relatief simpel. Immers het denkwerk is al gedaan, de volledige structuur, wanneer eenmaal de method bodies zijn ingevuld, heeft bewezen al te doen wat het moet doen. En de methodes elk voor zich zijn zelden complex, zoals een goed OO design betaamd.
Voor het uitvoeren van een xM proces is een extreem flexibele omgeving vereist. Voor dit project hebben we dit gedaan in een Smalltalk omgeving, VisualWorks.

Een simpel demo van dit proces is door mij gegeven op JSpring 2008. De presentatie is hier te downloaden.


Werken met ?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Project- & procesmanagement, Development

Tags: , ,


Trackback & Pingback (1)

  1. Van Wat is het domein? | Software Innovators op 13 januari 2009 at 11:34

    […] wij tegen dit soort ambiguïteit aanliepen is bezig een plugin of hulpapplicatie te realiseren voor eXploratory Modelling of xM in VisualStudio. Bij xM zijn ontwerpers samen met de klant of domeinexpert bezig het domein te […]