Universidad Nacional de San Agustin Facultad de Produccion y Servicios Escuela Profesional de Ingeniería de Sistemas ASPECTOS FORMALES DE VERIFICACIÓN Y ESPECIFICACIÓN Estudiante: Mejia Huayhua, Jose Carlos Grupo: D Septiembre de 2021 I. Ejercicios 1. Indique el resultado de los siguientes mappings de forma manual a. { i**2|-> i/2 |i in set {1,2,4,5} } En la parte de dominio, irían los números que tomara i pero elevados al cuadrado, ya que esa notación que parece doble multiplicación es potenciacion, y en el rango irían los valores de i divididos entre 2, lo cual nos quedaría: {(1^2,½),(2^2,2/2),(3^2,3/2),(4^2,4/2),(5^2,5/2)} resolviendo: {(1,0.5),(4,1),(9,1.5),(16,2),(25,2.5)} b. {i**2|-> i/2 |i in set {1,2,4,5} & i<1} Saldría un map vacío, ya que la restricción dice que el valor de i debe ser menor a 1, pero los valores que puede tomar i serán desde 1 a 5, así que no podría tomar ningún valor.. {} 2. Valide en el intérprete su respuesta a. { i**2|-> i/2 |i in set {1,2,4,5} } b. {i**2|-> i/2 |i in set {1,2,4,5} & i<1} 3. A usted se le dan dos tipos de mapping m1 y m2. a. Indique el tipo de dato de cada uno de ellos m1 : map PAIS to nat Tipo: Naturales 0, 1, 2, 3……… Type PAIS = <France> | <Denmark> | <SouthAfria> | <SaudiArabia> Tipo: Quote m2 : map nat to nat Tipo: Naturales 0, 1, 2, 3…….. b. Analice el comportamiento de las operaciones: dom, rng, m1 y ++ del tipo MAP Para analizar ese código procedió a ejecutarlo desde la consola de vdm, para validar las respuestas imprimiendo ambos maps Hallando dominio y rango del primer map: dom=dominio, rng=rango MUnión del primer map con otro (de un solo elemento):munion=unión de maps ++ del primer map con otro(de dos elementos):++=adicion de mapas Los resultados son los esperados. c. Indique el resultado de las siguientes operaciones i. dom {|->} II. ii. dom {3 |-> <Apple>, 4 |-> <Apple>} iii. rng {3 |-> <Apple>, 4 |-> <Apple>} iv. dom {3 |-> <Apple>} union rng {3 |->4} Actividades A. Dado el código(del laboratorio 4, Purse and System), analice el uso y comportamiento del tipo MAP 1. Identifique qué operaciones fueron utilizadas a) Se hizo uso del map en la clase System private Purses: map Purse'CardId to Purse; donde se utilizó la función obtener número de tarjeta para el dominio y la lista de purset para el rango, todo eso para instanciar la variable Purses. También encontramos las operaciones de dominio y rango típicas del map. public System: set of System(PurseSet) Purse ==> System == Purses := {p.GetCardNo() |-> p | p in set Purset} pre forall p,q in set PurseSet & p <> q => p.GetCardNo() <> q.GetCardNo(); 2. Proponga un diagrama de clases para el modelo dado.