Browse Source

Add architecture metamodel and model

Yentl Van Tendeloo 8 years ago
parent
commit
ff23177f0e
2 changed files with 120 additions and 0 deletions
  1. 24 0
      models/architecture.mvc
  2. 96 0
      models/architecture_model.mvc

+ 24 - 0
models/architecture.mvc

@@ -0,0 +1,24 @@
+include "primitives.alh"
+
+SimpleClassDiagram Architecture{
+    SimpleAttribute String{
+        constraint = $
+            String function constraint(model : Element, name : String):
+                if (is_physical_string(model["model"][name])):
+                    return "OK"!
+                else:
+                    return "String has non-string value"!
+            $
+    }
+
+    Class Group {
+        name : String
+    }
+
+    Class Port {
+        name : String
+    }
+
+    Association Connects (Port, Port) {}
+    Association Contains (Group, Port) {}
+}

+ 96 - 0
models/architecture_model.mvc

@@ -0,0 +1,96 @@
+Architecture arch{
+    Group {
+        name = "environment"
+
+        Port env_no_objPresent {
+            name = "no_objPresent"
+        }
+        Port env_objPresent {
+            name = "objPresent"
+        }
+        Port env_cmdDown {
+            name = "cmdDown"
+        }
+        Port env_cmdNeutral {
+            name = "cmdNeutral"
+        }
+        Port env_cmdUp {
+            name = "cmdUp"
+        }
+    }
+
+    Group {
+        name = "plant"
+
+        Port plant_up {
+            name = "up"
+        }
+        Port plant_neutral {
+            name = "neutral"
+        }
+        Port plant_down {
+            name = "down"
+        }
+        Port plant_interrupt {
+            name = "interrupt"
+        }
+        Port plant_objPresent {
+            name = "objPresent"
+        }
+        Port plant_no_objPresent {
+            name = "no_objPresent"
+        }
+        Port plant_objDetected {
+            name = "objDetected"
+        }
+        Port plant_no_objDetected {
+            name = "no_objDetected"
+        }
+    }
+
+    Group {
+        name = "control"
+
+        Port plant_cmdDown {
+            name = "cmdDown"
+        }
+        Port plant_cmdNeutral {
+            name = "cmdNeutral"
+        }
+        Port plant_cmdUp {
+            name = "cmdUp"
+        }
+        Port plant_up {
+            name = "up"
+        }
+        Port plant_down {
+            name = "down"
+        }
+        Port plant_neutral {
+            name = "neutral"
+        }
+        Port plant_interrupt {
+            name = "interrupt"
+        }
+        Port plant_objDetected {
+            name = "objDetected"
+        }
+        Port plant_no_objDetected {
+            name = "no_objDetected"
+        }
+    }
+
+    Connects (env_no_objPresent, plant_no_objPresent) {}
+    Connects (env_objPresent, plant_objPresent) {}
+    Connects (env_cmdDown, control_cmdDown) {}
+    Connects (env_cmdNeutral, control_cmdNeutral) {}
+    Connects (env_cmdUp, control_cmdUp) {}
+
+    Connects (plant_objDetected, control_objDetected) {}
+    Connects (plant_no_objDetected, control_no_objDetected) {}
+    Connects (plant_interrupt, control_interrupt) {}
+
+    Connects (control_up, plant_up) {}
+    Connects (controL_neutral, plant_neutral) {}
+    Connects (control_down, plant_down) {}
+}