SCCD.mvc 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. include "primitives.alh"
  2. include "object_operations.alh"
  3. include "modelling.alh"
  4. SimpleAttribute Action {
  5. name = "Action"
  6. }
  7. SimpleAttribute Boolean {
  8. name = "Boolean"
  9. }
  10. SimpleAttribute String {
  11. name = "String"
  12. }
  13. SimpleAttribute Natural {
  14. name = "Natural"
  15. }
  16. Class Diagram{
  17. name = "Diagram"
  18. name : String
  19. author : String
  20. description : String
  21. lower_cardinality = 1
  22. upper_cardinality = 1
  23. }
  24. Class Class{
  25. name = "Class"
  26. name : String
  27. constructor_body? : Action
  28. destructor? : Action
  29. default : Boolean
  30. external : Boolean
  31. }
  32. Association diagram_classes(Diagram, Class){
  33. name = "diagram_classes"
  34. target_lower_cardinality = 1
  35. }
  36. Class Attribute{
  37. name = "Attribute"
  38. name : String
  39. }
  40. Association class_attributes(Class, Attribute){
  41. name = "class_attributes"
  42. }
  43. Class Method{
  44. name = "Method"
  45. name : String
  46. body : Action
  47. }
  48. Association association(Class, Class){
  49. name = "association"
  50. name : String
  51. source_upper_cardinality = 1
  52. }
  53. Association inheritance(Class, Class){
  54. name = "inheritance"
  55. priority ?: Natural
  56. source_upper_cardinality = 1
  57. }
  58. Class State{
  59. name = "State"
  60. name : String
  61. }
  62. Class BasicState : State{
  63. name = "BasicState"
  64. isInitial : Boolean
  65. onEntryScript? : Action
  66. onExitScript? : Action
  67. }
  68. Class Raise{
  69. name = "Raise"
  70. event : String
  71. scope? : String
  72. target? : String
  73. parameter? : Action
  74. }
  75. Association onEntryRaise (BasicState, Raise) {
  76. name = "onEntryRaise"
  77. }
  78. Association onExitRaise (BasicState, Raise) {
  79. name = "onExitRaise"
  80. }
  81. Association behaviour(Class, BasicState){
  82. name = "behaviour"
  83. target_lower_cardinality = 1
  84. target_upper_cardinality = 1
  85. }
  86. Association state_onentry_raises(BasicState, Raise){
  87. name = "state_onentry_raises"
  88. order : Natural
  89. }
  90. Association state_onexit_raises(BasicState, Raise){
  91. name = "state_onexit_raises"
  92. order : Natural
  93. }
  94. Class CompositeState : BasicState{
  95. name = "CompositeState"
  96. }
  97. Association composite_children(CompositeState, State){
  98. name = "composite_children"
  99. source_upper_cardinality = 1
  100. }
  101. Class ParallelState : BasicState{
  102. name = "ParallelState"
  103. }
  104. Association parallel_children(ParallelState, CompositeState){
  105. name = "parallel_children"
  106. source_upper_cardinality = 1
  107. }
  108. Class HistoryState : State{
  109. name = "HistoryState"
  110. }
  111. Association transition(State, State){
  112. name = "transition"
  113. name: String
  114. cond? : Action
  115. script? : Action
  116. after? : Action
  117. event? : String
  118. source_upper_cardinality = 1
  119. }
  120. Association transition_raises(transition, Raise){
  121. name = "transition_raises"
  122. order : Natural
  123. }