In eerste instantie wordt het vraagstuk en de functionaliteit beschreven die nodig is om het vraagstuk op te lossen. De elementen die dit beschrijven moeten aantoonbaar compleet zijn. Hiervoor moet het model het volgende bevatten:
Een element voor de oorspronkelijke vraag.
Elementen voor de condities (acceptatie criterium) waaraan een oplossing moet voldoen.
Voor elk element van de vraag bestaat tenminste een acceptatie criterium.
Voor elk element van de vraag bestaat tenminste een element dat het te bereiken doel beschrijft.
Voor elk element van de vraag bestaat tenminste een functie (feature) om het doel te bereiken.
Voor elk doel bestaat een actor (klant gebruiker) die baat heeft bij het doel.
Voor elke vraag bestaat een actor (epic owner) die bereid is het doel te bereiken.
Aantonen dat elementen aan regels voldoen
Aantonen dat aan deze regels wordt voldaan betekent dat het model compleet is. De elementen zijn van het volgende type:
Conditie als acceptatie criterium. Aan welke eis moet worden voldaan om de epic owner de oplossing te laten accepteren.
Epic elementen als vraagstuk. Een epic beschrijft de oorspronkelijke vraag.
Element als feature. Een feature beschrijft een functie die je nodig hebt om de oorspronkelijke vraag op te lossen.
Actor als Epic owner. De houder van het probleem die het probleem opgelost wil hebben en eigenaar is van een epic ook wel Epic owner genoemd.
Actor als gebruiker. De gebruiker van de oplosing. Voor wie wordt het probleem opgelost.
Om snel te kunnen vaststellen of het model aan deze eisen voldoet kan de generator een leesbare zin voor de epic genereren.
Voor een epic een epic statement genereren
Voor epic kan de generator ook een epic statement genereren. De epic statement is eveneens een leesbare zin.
In modelleringstalen als UML, ArchiMate en BPMN staat de vorm van een element en de relaties tussen elementen voor een specifieke betekenis. Het functionele model mag niet afhankelijk zijn van een modelleringstaal. De focus ligt op de functionaliteit die wordt beschreven zonder beperkt te worden door constructies die binnen een taal zijn toegestaan. De generator kijkt alleen naar elementen en de relaties van de elementen.
Het type van het element wordt aangegeven als "stereotype".
Wijzigen van het "stereotype" heeft soms op het gedrag van dat element. Een element van type "activity" krijgt een ander icoon in een diagram.
Je kunt in een element een instructie opnemen om het type te veranderen.
Modellen kun je maken in een modelleringstaal. Het advies om eenvoudige modellen te maken en het type elementen met een specifieke betekenis en beperkingen op de mogelijke relaties te vermijden.
Een eenvoudige relatie van het type "dependency" kun je altijd gebruiken.
De richting van de relaties voldoet aan de volgende eisen:
Het is duidelijk of een element afhankelijk is van het bestaan of de waarde van een ander element.
Het is duidelijk of een element invloed heeft op een ander element door zijn aanwezigheid of de waarde.
De relatie is altijd getekend met slechts een enkele pijl.
De pijl staat aan de kant van het element onder invloed staat.
De relatie heeft een naam. Als geen naam is gebruikt wordt de namen "source" en "target" toegekend. De richting is dan van de "source" naar de "target".
Dit geldt niet voor een generalisatie / specialisatie. Dit type relatie hoeft geen naam te hebben. De generator kent de namen "parent" en "child" toe.
Tussen twee elementen bestaat maximaal een relatie.