core_formalism.mvc 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import models/SimpleClassDiagrams as SimpleClassDiagrams
  2. include "primitives.alh"
  3. SimpleClassDiagrams CoreFormalism {
  4. Class String {
  5. $
  6. if (bool_not(is_physical_string(self))):
  7. return "String has no string value"!
  8. else:
  9. return "OK"!
  10. $
  11. }
  12. Class Permissions {
  13. $
  14. if (bool_not(is_physical_string(self))):
  15. return "Permissions has no string value"!
  16. else:
  17. return "OK"!
  18. $
  19. }
  20. Class Boolean {
  21. $
  22. if (bool_not(is_physical_boolean(self))):
  23. return "Boolean has no bool value"!
  24. else:
  25. return "OK"!
  26. $
  27. }
  28. Class Natural {
  29. $
  30. if (bool_not(is_physical_int(self))):
  31. return "Natural has no integer value"!
  32. elif (integer_lt(self, 0)):
  33. return "Natural has negative value"!
  34. else:
  35. return "OK"!
  36. $
  37. }
  38. Class User {
  39. name : String
  40. admin : Boolean
  41. nr_logins : Natural
  42. }
  43. Class Group {
  44. name : String
  45. }
  46. Association ownedBy (Group, User) {}
  47. Association belongsTo (User, Group) {}
  48. Class Model {
  49. name : String
  50. location : String
  51. permissions : Permissions
  52. }
  53. Association instanceOf (Model, Model) {}
  54. Association owner (Model, User) {
  55. target_lower_cardinality = 1
  56. target_upper_cardinality = 1
  57. }
  58. Association group (Model, Group) {
  59. target_lower_cardinality = 1
  60. target_upper_cardinality = 1
  61. }
  62. Class Transformation : Model {
  63. name : String
  64. location : String
  65. }
  66. Class ModelTransformation : Transformation {}
  67. Class ActionLanguage : Transformation {}
  68. Association transformInput (Model, Transformation) {
  69. name : String
  70. }
  71. Association transformOutput (Transformation, Model) {
  72. name : String
  73. }
  74. Association tracability (Model, Model) {
  75. type : String
  76. }
  77. }
  78. export CoreFormalism to models/CoreFormalism