Modelamiento formal de Sistemas en eventB Abstracción

Anuncio
Cali
Primer Parcial
Febrero 24 de 2011
Desarrollo formal de software
Cali
El examen es absolutamente individual. No se permite ninguna interacción con sus
compañeros, por mı́nima que sea. Cualquier infracción a este requisito será penalizado con la máxima sanción prevista en el reglamento.
Puede consultar textos y notas de clase, pero no puede usar computador.
La claridad es fundamental. Respuestas que no lo sean no tendrán puntos, independientemente de que sean o no correctas.
Soluciones que no sigan estrictamente la metodologı́a del curso, tampoco
tendrán valor. Tiempo disponible para el examen: dos horas
Nombre:
Pregunta
1
2
3
4
5
6
7
8
9
Total
Puntos
7
12
16
8
7
10
20
10
10
100
Cal.
Modelamiento formal de Sistemas en eventB
Hay un terminal de buses con personas que entran y salen. Dentro del terminal hay distintas
ventanillas de atención. Cada ventanilla vende tiquetes para una compañı́a de buses. Algunas
personas compran tiquetes en alguna ventanilla. Hay adicionalmente un espacio en el terminal con
salas de espera. Para cada compañı́a de buses hay una sala de espera. Solamente las personas que
han comprado un tiquete pueden entrar al espacio de salas de espera. Cualquier persona puede salir
de la sala de espera y volver a entrar, si quiere hacerlo. En la parte de afuera de cada sala de espera
hay un sitio en el que se parquea un bus de la compañı́a de esa sala. Se observa que cuando hay un
bus parqueado las personas pueden entrar en él, siempre y cuando tengan un tiquete y el tiqueta
sea de la compañı́a del bus en el que entran. Cada compañı́a tiene buses de cierto tamaño. Todos
los buses de una compañı́a son del mismo tamaño. No puede haber en el bus más personas que el
cupo del bus. Se observa que los buses entran vacı́os y salen con personas. Se desea observar las
personas en el terminal, las que hayan comprado un tiquete, las que estén en cada sala de espera
y las que se hayan montado en el bus si éste todavı́a no ha salido. Un bus no sale si todavı́a hay
personas con tiquetes para ese bus y el bus tiene cupo disponible. Nunca sale vacı́o. Si un bus sale y
habı́a personas con tiquete que no pudieron viajar, esas personas tienen prelación para el siguiente
bus.
Usted debe diseñar un modelo para este sistema. Su diseño debe separar la especificación en dos
máquinas, una abstracción y un refinamiento. Es muy importante que su abstracción sea simple y
solamente incluya aspectos fundamentales. El refinamiento debe completar un diseño que satisfaga
todos los requerimientos. La abstracción debe incluir un evento “entrar a sala de espera”.
Abstracción
Página 1 de 2
Desarrollo formal de software
Primer Parcial
1
(7 Puntos)
Escriba cuidadosamente los requerimientos de la abstracción.
2
(12 Puntos)
Especifique el contexto. Explique sus conjuntos, constantes y axiomas
3
(16 Puntos)
Escriba las variables y explique su significado. Escriba el invariante y justifı́quelo
4
(8 Puntos)
Escriba completamente los eventos (no olvide la inicialización).
5
(7 Puntos)
Escriba las obligaciones de prueba de consistencia del evento “comprar tiquete”. Justifique que
se cumplen
Refinamiento
6
(10 Puntos)
Escriba cuidadosamente los requerimientos del refinamiento. Especifique el contexto nuevo (si
lo hay). Explique el significado de cada componente y de sus propiedades (axiomas)
7
(20 Puntos)
Escriba las variables nuevas (si las hay) y explique su significado. Escriba el invariante de
encadenamiento y justifı́quelo
8
(10 Puntos)
Escriba completamente los eventos. Incluya la inicialización.
9
(10 Puntos)
Escriba las obligaciones de prueba de consistencia (o sea, la prueba de invariante de encadenamiento) del evento refinado “entrar a sala de espera”. Justifique que estas se cumplen
Página 2 de 2
Descargar