SCCD.mvc 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. include "primitives.alh"
  2. include "object_operations.alh"
  3. include "modelling.alh"
  4. SimpleAttribute Action {}
  5. SimpleAttribute Boolean {}
  6. SimpleAttribute String {}
  7. SimpleAttribute Natural {}
  8. Class Diagram{
  9. name : String
  10. author : String
  11. description : String
  12. lower_cardinality = 1
  13. upper_cardinality = 1
  14. }
  15. Class Class{
  16. name : String
  17. constructor_body? : Action
  18. destructor? : Action
  19. default : Boolean
  20. external : Boolean
  21. }
  22. Association diagram_classes(Diagram, Class){
  23. target_lower_cardinality = 1
  24. }
  25. Class Attribute{
  26. name : String
  27. }
  28. Association class_attributes(Class, Attribute){}
  29. Class Method{
  30. name : String
  31. body : Action
  32. }
  33. Association association(Class, Class){
  34. name : String
  35. source_upper_cardinality = 1
  36. }
  37. Association inheritance(Class, Class){
  38. priority ?: Natural
  39. source_upper_cardinality = 1
  40. }
  41. Class State{
  42. name : String
  43. }
  44. Class BasicState : State{
  45. isInitial : Boolean
  46. onEntryScript? : Action
  47. onExitScript? : Action
  48. }
  49. Association onEntryRaise (BasicState, Raise) {}
  50. Association onExitRaise (BasicState, Raise) {}
  51. Association behaviour(Class, BasicState){
  52. target_lower_cardinality = 1
  53. target_upper_cardinality = 1
  54. }
  55. Class Raise{
  56. event : String
  57. scope? : String
  58. target? : String
  59. parameter? : Action
  60. }
  61. Association state_onentry_raises(BasicState, Raise){
  62. order : Natural
  63. }
  64. Association state_onexit_raises(BasicState, Raise){
  65. order : Natural
  66. }
  67. Class CompositeState : BasicState{}
  68. Association composite_children(CompositeState, State){
  69. source_upper_cardinality = 1
  70. }
  71. Class ParallelState : BasicState{}
  72. Association parallel_children(ParallelState, CompositeState){
  73. source_upper_cardinality = 1
  74. }
  75. Class HistoryState : State{}
  76. Association transition(State, State){
  77. name: String
  78. cond? : Action
  79. script? : Action
  80. after? : Action
  81. event? : String
  82. source_upper_cardinality = 1
  83. }
  84. Association transition_raises(transition, Raise){
  85. order : Natural
  86. }