Desarrollo Formal de programas Examen 2 19 de noviembre de 2005 Por favor tengan en cuenta que el examen es estrictamente individual. No se permite ninguna consulta o comentario con otras personas. Puede consultar textos y notas de clase. 1. Problema: Especificación de Máquinas Se trata de modelar mediante máquinas un sistema de votación. Para votar, antes de las elecciones, cada persona se inscribe en una cierta mesa de votación. En el momento de votar, cada persona lo debe hacer en la mesa de votación en la que estaba inscrita. Hay jurados de votación que se preasignan a las mesas. Hay siempre más de un jurado por mesa. Los jurados no votan en las mesas en las que estaban inscritos, sino en la mesa de la cual son jurados. Esta es la única excepción a la regla que exige votar en la mesa en la que se está inscrito. Pregunta 1: Modele mediante una máquina este sistema. Su modelo debe ubicarse en el nivel de abstracción adecuado. Especifique claramente qué significa cada elemento (conjuntos, constantes, variables) y por qué es necesario en el modelo. Su invariante debe expresar todas las condiciones del sistema. En el invariante NO deben aparecer cuantificadores. La máquina debe tener operaciones para inscribirse, para votar y para consultar si todos los inscritos en una mesa han votado. No hay una operación para ser jurado. 2. Problema: refinamiento de máquinas Considere la siguiente máquina y su refinamiento 1 REFINEMENT MisteR REFINES Misterio VARIABLES trap INVARIANT trap ⊆ escobas INITIALIZATION ANY t WHERE t ⊆ ESCOBA ∧ 1 ≤ card(t) ≤ 5 OPERATIONS agregar(ee) = ANY cc WHERE cc ∈ trap THEN trap := (trap − {cc}) ∪ {ee} END mm ← barrer = ANY ee WHERE card(trap) > 1 ∧ ee ∈ trap THEN mm, trap := ee, trap − {ee} END MACHINE Misterio SETS ESCOBA VARIABLES escobas INVARIANT escobas ⊆ ESCOBA ∧ escobas 6= ∅ INITIALIZATION escoba :∈ P1 (ESCOBA) OPERATIONS agregar(ee) = PRE ee ∈ ESCOBA THEN escobas := escobas ∪ {ee} END mm ← barrer = ANY ee WHERE card(escobas) > 1 ∧ ee ∈ escobas THEN mm, escobas := ee, escobas − {ee} END pregunta: Es M isteR un refinamiento válido de M isterio?. Debe explicar claramente. Resouestas sin explicación no tienen valor. Entre más clara, rigurosa y formal la explicación, más valor tendrá. 2