2008-05-14 11:12:46 +00:00
|
|
|
|
|
|
|
|
2008-04-02 13:46:28 +00:00
|
|
|
open OclLibrary
|
|
|
|
open WFCPOG
|
|
|
|
open WFCPOG_Registry
|
|
|
|
open WFCPOG_TestSuite
|
|
|
|
|
2008-04-07 09:46:39 +00:00
|
|
|
|
|
|
|
structure RFM_Data = WFCPOG_Refine_Constraint.WFCPOG_RFM_Data
|
|
|
|
structure TAX_Data = WFCPOG_Taxonomy_Constraint.WFCPOG_TAX_Data
|
|
|
|
|
2008-04-29 18:48:45 +00:00
|
|
|
|
2008-04-28 12:44:57 +00:00
|
|
|
(** ################# **)
|
|
|
|
(** WELLFORMED-CHECKS **)
|
|
|
|
(** ################# **)
|
2008-04-07 09:46:39 +00:00
|
|
|
|
2008-04-28 12:44:57 +00:00
|
|
|
(** INTERFACE CONSTRAINT **)
|
2008-05-07 16:00:56 +00:00
|
|
|
val wfc_inf_nameclashes = get_wfpo supported_wfs "wfc_inf_nameclashes"
|
|
|
|
val wfc_inf_stereotypes = get_wfpo supported_wfs "wfc_inf_stereotypes"
|
|
|
|
val wfc_inf_all = get_wfpo supported_wfs "wfc_inf_all"
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. interface constraint loaded ...\n")
|
2008-04-07 09:46:39 +00:00
|
|
|
|
2008-04-28 12:44:57 +00:00
|
|
|
(** VISIBILITY CONSTRAINT **)
|
2008-05-06 19:24:08 +00:00
|
|
|
val wfc_vis_class = get_wfpo supported_wfs "wfc_vis_class"
|
|
|
|
val wfc_vis_inheritance = get_wfpo supported_wfs "wfc_vis_inheritance"
|
|
|
|
val wfc_vis_runtime = get_wfpo supported_wfs "wfc_vis_runtime"
|
2008-05-06 20:11:36 +00:00
|
|
|
val wfc_vis_design_by_contract = get_wfpo supported_wfs "wfc_vis_design_by_contract"
|
2008-05-12 09:35:16 +00:00
|
|
|
val wfc_vis_all = get_wfpo supported_wfs "wfc_vis_all"
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. visibility constraint loaded ...\n")
|
2008-04-07 09:46:39 +00:00
|
|
|
|
2008-04-28 12:44:57 +00:00
|
|
|
(* TAXONOMY CONSTRAINT *)
|
|
|
|
val wfc_tax = get_wfpo supported_wfs "wfc_tax"
|
2008-05-02 14:30:29 +00:00
|
|
|
val wfc_tax_5 = rename_wfpo "wfc_tax_5" (TAX_Data.put ({key=2,max_depth=5}) wfc_tax)
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. taxonomy constraint loaded ...\n")
|
2008-05-02 14:30:29 +00:00
|
|
|
|
2008-04-28 12:44:57 +00:00
|
|
|
(** REFINEMENT CONSTRAINT **)
|
|
|
|
val wfc_rfm = get_wfpo supported_wfs "wfc_rfm"
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. refinement constraints loaded ...\n")
|
2008-05-08 17:26:00 +00:00
|
|
|
val wfc_rfm_SC = rename_wfpo "wfc_rfm_SC" (RFM_Data.put ({key=10,rfm_tuple=(["AbstractSimpleChair04"],["ConcreteSimpleChair02"])}) wfc_rfm)
|
|
|
|
val wfc_rfm_SR= rename_wfpo "wfc_rfm_SR" (RFM_Data.put ({key=10,rfm_tuple=(["AbstractOverriding"],["ConcreteOverriding"])}) wfc_rfm)
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. refine wfc constraint loaded ...\n")
|
2008-04-02 13:46:28 +00:00
|
|
|
|
2008-05-12 09:35:16 +00:00
|
|
|
(** QUERY CONSISTENCY **)
|
|
|
|
val wfc_quy_strong = get_wfpo supported_wfs "wfc_quy_strong"
|
|
|
|
val wfc_quy_weak = get_wfpo supported_wfs "wfc_quy_weak"
|
2008-04-24 19:37:02 +00:00
|
|
|
|
|
|
|
|
2008-04-28 12:44:57 +00:00
|
|
|
(** ################# **)
|
|
|
|
(** PROOF OBLIGATIONS **)
|
|
|
|
(** ################# **)
|
|
|
|
|
|
|
|
(** LISKOV CONSTRAINT **)
|
2008-05-07 10:30:02 +00:00
|
|
|
val po_lsk_pre = get_wfpo supported_pos "po_lsk_pre"
|
|
|
|
val po_lsk_post = get_wfpo supported_pos "po_lsk_post"
|
|
|
|
val po_lsk_inv = get_wfpo supported_pos "po_lsk_inv"
|
2008-05-12 09:35:16 +00:00
|
|
|
val po_lsk_all = get_wfpo supported_pos "po_lsk_all"
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. liskov constraint loaded ...\n")
|
2008-04-02 13:46:28 +00:00
|
|
|
|
|
|
|
(** DATA MODEL CONSTRAINT **)
|
2008-04-28 12:44:57 +00:00
|
|
|
val po_cm = get_wfpo supported_pos "po_class_model"
|
|
|
|
val po_sm = get_wfpo supported_pos "po_strong_model"
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. data model constraint loaded ...\n")
|
2008-04-02 13:46:28 +00:00
|
|
|
|
|
|
|
(** OPERATIONAL CONSTRAINT **)
|
2008-05-05 12:52:47 +00:00
|
|
|
val po_om = WFCPOG_Registry.get_wfpo WFCPOG_Registry.supported "po_oper_model"
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. operational constraint loaded ...\n")
|
2008-04-28 12:44:57 +00:00
|
|
|
|
|
|
|
(** CONSTRUCTOR CONSTRAINT **)
|
2008-05-09 00:19:36 +00:00
|
|
|
val po_cstr_post = get_wfpo supported_pos "po_cstr_post"
|
|
|
|
val po_cstr_attribute = get_wfpo supported_pos "po_cstr_attribute"
|
2008-05-12 09:35:16 +00:00
|
|
|
val po_cstr_all = get_wfpo supported_pos "po_cstr_all"
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. constructor constraints loaded ...\n")
|
2008-04-28 12:44:57 +00:00
|
|
|
|
2008-04-02 13:46:28 +00:00
|
|
|
(** COMMAND/QUERY CONSTRAINT **)
|
2008-05-12 09:35:16 +00:00
|
|
|
(*
|
|
|
|
val po_cmd = get_wfpo supported_pos "po_"
|
2008-04-28 12:44:57 +00:00
|
|
|
val po_quy = get_wfpo supported_pos "po_quy"
|
2008-05-12 09:35:16 +00:00
|
|
|
*)
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. command/query constraints loaded ...\n")
|
2008-04-02 13:46:28 +00:00
|
|
|
|
|
|
|
(** REFINEMENT CONSTRAINT **)
|
2008-04-28 12:44:57 +00:00
|
|
|
val po_rfm = get_wfpo supported_pos "po_rfm"
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. refinement constraints loaded ...\n")
|
2008-05-08 17:26:00 +00:00
|
|
|
val po_rfm_SC = rename_wfpo "po_rfm_SR" (RFM_Data.put ({key=10,rfm_tuple=(["AbstractSimpleChair04"],["ConcreteSimpleChair02"])}) po_rfm)
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. refine pog constraint loaded ...\n")
|
2008-05-08 17:26:00 +00:00
|
|
|
val po_rfm_SR = rename_wfpo "po_rfm_SR" (RFM_Data.put ({key=10,rfm_tuple=(["AbstractOverriding"],["ConcreteOverriding"])}) po_rfm)
|
2009-03-25 17:13:38 +00:00
|
|
|
val _ = Logger.info ("............. refine pog constraint loaded ...\n")
|
2008-05-05 08:32:12 +00:00
|
|
|
|
2008-05-14 12:15:34 +00:00
|
|
|
|
|
|
|
(* ALL CONSTRAINTS: *)
|
2008-05-14 13:21:30 +00:00
|
|
|
|
2008-05-09 00:19:36 +00:00
|
|
|
val wfc =
|
2008-05-14 12:15:34 +00:00
|
|
|
[wfc_inf_nameclashes,wfc_inf_stereotypes,wfc_inf_all,wfc_vis_class,wfc_vis_inheritance,wfc_vis_runtime,wfc_vis_design_by_contract,wfc_vis_all,wfc_tax]
|
2008-05-09 00:19:36 +00:00
|
|
|
val pos =
|
2008-05-14 12:15:34 +00:00
|
|
|
[po_lsk_pre,po_lsk_post,po_lsk_inv,po_cm,po_sm,po_om,po_cstr_post,po_cstr_attribute,po_cstr_all]
|
2008-05-14 11:12:46 +00:00
|
|
|
|
2008-05-14 12:15:34 +00:00
|
|
|
(*
|
2008-05-16 16:10:17 +00:00
|
|
|
val wfcs = [wfc_vis_runtime]
|
2008-05-14 11:12:46 +00:00
|
|
|
val pos = [po_lsk_inv]
|
2008-05-14 12:15:34 +00:00
|
|
|
*)
|