@namespace(uri="", prefix="") package ; class ClassModel extends NamedElement { ref UMLClass[*] classes; ref Feature[*] features; } class UMLClass extends NamedElement { ref Feature[*] encapsulates; } class Attribute extends Feature { } class UMLMethod extends Feature { ref Attribute[*] dataDependency; ref UMLMethod[*] functionalDependency; } abstract class Feature extends NamedElement { ref UMLClass[0..1] isEncapsulatedBy; } abstract class NamedElement { attr String name; } class Math { } class GeneticAlgorithm { attr double maxfitness; attr int maxvalue; attr int maxpop; ref GAIndividual[*] population; ref GAIndividual[*] elite; ref GAIndividual[*] recombined; ref GAIndividual[*] mutated; } class GAIndividual { attr double fitnessval; ref GATrait[*] traits; } class GATrait { attr String item; attr int value; } class CreateClasses { } class Refactor { } class Cleanup { } class Measures { } class Preprocess { } class Evolve { } class Nextgeneration { } class Initialise { } class Postprocess { } class Ga { } class CreateClasses1 { }