La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Guía general interface Inter {m1, m2,... mn}

Presentaciones similares


Presentación del tema: "Guía general interface Inter {m1, m2,... mn}"— Transcripción de la presentación:

1 Guía general interface Inter {m1, m2,... mn}
class InterSem extends Inter { //El estado necesario para guardar los valores en el preestado ... Inter obj; //El objeto decorado con contrato semántico int nestingLevel; //Semántica transaccional InterSem(Inter obj) { this.obj = obj; nestingLevel = 0; init(); // Condiciones iniciales }

2 Guía general ... mi (params) { // El método decorador
if (nestingLevel == 0) pre$mi (params) //Evaluar y guardar el preestado del método mi nestingLevel++; obj.mi (params); nestingLevel--; if (nestingLevel == 0) { post$mi (params); inter$inv(params); } Si el método devuelve un valor tendríamos que capturarlo en la llamada al método decorado “obj.mi (params);” y devolverlo al final: mi$output = obj.mi (params);” Si es necesario hacer uso de ese resultado para evaluar la postcondición tendríamos que pasar como parámetro ese valor a la poscondición: post$mi (params, mi$output);

3 Guía general post$mi(params) { ... pre$mi(params) {
//Evaluar la pre del método mi } post$mi(params) { //Evaluar la post del método mi Para cada método de la interfaz

4 Guía general ... inter$inv() {
//el código para implementar la invariante } inter$init() { //el código para implementar las condiciones iniciales


Descargar ppt "Guía general interface Inter {m1, m2,... mn}"

Presentaciones similares


Anuncios Google