FTG_generate.py 2.2 KB

1234567891011121314151617181920212223242526272829303132
  1. import shutil
  2. import sys
  3. import os
  4. sys.path.append("wrappers")
  5. from modelverse import *
  6. init()
  7. login("admin", "admin")
  8. model_add("formalisms/ReachabilityGraph", "formalisms/SimpleClassDiagrams", open("models/ReachabilityGraph/metamodels/reachability_graph.mvc", "r").read())
  9. model_add("formalisms/PetriNet", "formalisms/SimpleClassDiagrams", open("models/PetriNets/metamodels/PetriNets.mvc", 'r').read())
  10. model_add("formalisms/Encapsulated_PetriNet", "formalisms/SimpleClassDiagrams", open("models/EncapsulatedPetriNets/metamodels/epn.mvc", 'r').read())
  11. model_add("formalisms/PW_Plant", "formalisms/SimpleClassDiagrams", open("models/PowerWindow/metamodels/plant.mvc", 'r').read())
  12. model_add("formalisms/PW_Environment", "formalisms/SimpleClassDiagrams", open("models/PowerWindow/metamodels/environment.mvc", 'r').read())
  13. model_add("formalisms/PW_Control", "formalisms/SimpleClassDiagrams", open("models/PowerWindow/metamodels/control.mvc", 'r').read())
  14. model_add("formalisms/Requirements", "formalisms/SimpleClassDiagrams", open("models/PowerWindow/metamodels/requirements.mvc", 'r').read())
  15. model_add("formalisms/Query", "formalisms/SimpleClassDiagrams", open("models/SafetyQuery/metamodels/query.mvc", 'r').read())
  16. model_add("formalisms/Architecture", "formalisms/SimpleClassDiagrams", open("models/PowerWindow/metamodels/architecture.mvc", 'r').read())
  17. model_add("models/pm_powerwindow", "formalisms/ProcessModel", open("models/PowerWindow/PM_analyze.mvc", 'r').read())
  18. model_add("formalisms/FormalismTransformationGraph", "formalisms/SimpleClassDiagrams", open("models/FTGPM/metamodels/FTG_MM.mvc", 'r').read())
  19. def add_traceability(model):
  20. instantiate(model, "Association", edge=("PM/Exec", "FTG/Activity"), ID="activity_link")
  21. instantiate(model, "Association", edge=("PM/Data", "FTG/Formalism"), ID="formalism_link")
  22. transformation_add_AL({"PM": "formalisms/ProcessModel"}, {"FTG": "formalisms/FormalismTransformationGraph"}, "models/generate_FTG", open("models/FTGPM/transformations/PM_to_FTG.alc", 'r').read(), add_traceability)
  23. transformation_execute_AL("models/generate_FTG", {"PM": "models/pm_powerwindow"}, {"FTG": "models/ftg_powerwindow"})
  24. for i in element_list_nice("models/ftg_powerwindow"):
  25. print(i)