new constraints added
git-svn-id: https://projects.brucker.ch/su4sml/svn/su4sml/trunk@7877 3260e6d1-4efc-4170-b0a7-36055960796d
This commit is contained in:
parent
57ada7dc96
commit
f2f54c7c48
|
@ -42,9 +42,34 @@
|
||||||
(** Implementation of the Liskov Substitiution Principle. *)
|
(** Implementation of the Liskov Substitiution Principle. *)
|
||||||
signature WFCPOG_VISIBILITY_CONSTRAINT =
|
signature WFCPOG_VISIBILITY_CONSTRAINT =
|
||||||
sig
|
sig
|
||||||
(** Checks if the pre- and postconditions of a given operation just
|
|
||||||
* access public classes/operations/attributes. *)
|
|
||||||
val are_conditions_visible : WFCPOG.wfpo -> Rep.Model -> bool
|
val are_conditions_visible : WFCPOG.wfpo -> Rep.Model -> bool
|
||||||
|
(*
|
||||||
|
(**
|
||||||
|
* Checks if the visibility of the class is at least as visible as
|
||||||
|
* as the most visible member.
|
||||||
|
*)
|
||||||
|
val model_class_consistency : WFCPOG.wfpo -> Rep.Model -> bool
|
||||||
|
(**
|
||||||
|
* Checks if the modificators of overriden features are maintained in the subclasses.
|
||||||
|
*)
|
||||||
|
val model_inheritence_consistency : WFCPOG.wfpo -> Rep.Model -> bool
|
||||||
|
(**
|
||||||
|
* Runtime checking/enforcement in mind:
|
||||||
|
* pre-condition, post-conditions, invariants are shall only contain
|
||||||
|
* calls to visible features (i.e., public features of other classes,
|
||||||
|
* package features of other classes within the same package,
|
||||||
|
* protected features of superclasses, and own private features).
|
||||||
|
* Checks the pre-,postconditions and invariants with respect to
|
||||||
|
*)
|
||||||
|
val constraint_check_by_runtime_consistency : WFCPOG.wfpo -> Rep.Model -> bool
|
||||||
|
(**
|
||||||
|
* Design by contract in mind:
|
||||||
|
* Here, clients (callers) should be able to check/establish the pre-condition of operations:
|
||||||
|
* pre-conditions should only contain feature calls that are at least as visible as
|
||||||
|
* the operation itself.
|
||||||
|
*)
|
||||||
|
val constraint_desing_by_contract_consistency : WFCPOG.wfpo -> Rep.Model -> bool
|
||||||
|
*)
|
||||||
end
|
end
|
||||||
structure WFCPOG_Visibility_Constraint:WFCPOG_VISIBILITY_CONSTRAINT =
|
structure WFCPOG_Visibility_Constraint:WFCPOG_VISIBILITY_CONSTRAINT =
|
||||||
struct
|
struct
|
||||||
|
@ -223,4 +248,13 @@ fun are_conditions_visible wfpo (model:Rep.Model as (clist,alist)) =
|
||||||
in
|
in
|
||||||
res
|
res
|
||||||
end
|
end
|
||||||
|
(*
|
||||||
|
fun model_class_consistency
|
||||||
|
|
||||||
|
fun model_inheritance_consistency
|
||||||
|
|
||||||
|
fun constraint_check_by_runtime_consistency
|
||||||
|
|
||||||
|
fun constratin_design_by_constract_consistency
|
||||||
|
*)
|
||||||
end;
|
end;
|
||||||
|
|
Loading…
Reference in New Issue