Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Construccin y uso
Revisin de especicaciones
Recomendaciones
Especicaciones
Vernica E. Arriola-Rios
Programacin II
18 de agosto de 2013
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Outline
Tipos de especicaciones Construccin y uso Especicaciones descriptivas Especicaciones operativas Revisin de especicaciones Recomendaciones
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Temas
Tipos de especicaciones Construccin y uso Especicaciones descriptivas Especicaciones operativas Revisin de especicaciones Recomendaciones
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Tipos de Especicaciones
Especicaciones operativas
Diagramas de ujo Mquinas de estados nitos Redes de Petri Diagramas de secuencia (UML) Diagrama de casos de uso (UML)
Especicaciones descriptivas
Diagramas entidad-relacin Especicaciones lgicas Especicaciones algebricas Diagrama de clases (UML) Diagrama de paquetes (UML)
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Temas
Tipos de especicaciones Construccin y uso Especicaciones descriptivas Especicaciones operativas Revisin de especicaciones Recomendaciones
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Problema ejemplo
Especicacin informal: Crear una clase Conjunto tal que pueda almacenar Elementos de diferentes tipos y realizar las operaciones de unin, interseccin y diferencia, determinar contencin y cardinalidad. Dado un grupo de conjuntos, dibujarlos en la pantalla mostrando elementos compartidos. Faltan detalles!
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Especicacin Algebraica
Algebra: EspecicacinConjunto componentes (sorts): Conjunto, Elemento, Booleano, Nmero, Dibujo operaciones: new: () Conjunto vaco: Conjunto Booleano unin: Conjunto, Conjunto Conjunto interseccin: Conjunto, Conjunto Conjunto diferencia: Conjunto, Conjunto Conjunto contencin: Conjunto, Conjunto Booleano agregar: Conjunto, Elemento Conjunto pertenece: Conjunto, Elemento Booleano cardinalidad: Conjunto Nmero dibujar: Conjunto Dibujo
Vernica E. Arriola-Rios Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
restricciones: new, vaco, unin, interseccin, diferencia, contencin, agregar, pertenece, cardinalidad son tales que para todo [c , c1 , c2 :Conjunto; e:Elemento] :
1 2 3 4
vaco(new()) = Verdadero vaco(agregar(c,e)) = Falso cardinalidad(new()) = 0 Si pertenece(c,e) entonces cardinalidad(agregar(c,e)) = cardinalidad(c) Si no pertenece(c,e) entonces cardinalidad(agregar(c,e)) = cardinalidad(c) + 1
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
5 6 7 8
agregar(c, new()) = c pertenece(agregar(c,e), e) = Verdadero unin(c, new()) = c pertenece(unin(c1 , c2 ), e) = pertenece(c1 , e) pertenece(c2 , e) ...
end
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Especicacin Lgica
Primero se requiere denir: cul es el objetivo del programa? Por ejemplo: Recibir del usuario una lista de elementos; los conjuntos a los que pertenecen para dibujarlos en pantalla. Entradas: <C1 ,C2 ,...,Cn ,e1 ,e2 ,...,em >, c Conjunto , e Elemento Precondicin: {j .(ei cj )} (Si no permitiramos elementos sin conjunto.) Programa: P Salidas: <D Dibujo > Postcondiciones: (ei .Dibujo (ei ) D ) (Ci .Dibujo (Ci ) D ) (ei .ei Cj Dentro (Dibujo (ei ), Dibujo (Cj )))
Vernica E. Arriola-Rios Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Tambin se pueden denir precondiciones y postcondiciones para funciones especcas: Por ejemplo: Funcin interseccin Precondicin: (No requerimos nada) procedimiento intersectar (C1 , C2 : in Conjunto; C3 : out Conjunto); Postcondicin: ei .(ei C3 ei C1 ei C2 ) ...hacer lo mismo para las dems operaciones.
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Diagrama entidad-relacin
Nombre
Elemento
pertenece
Conjunto
es-un
contiene
Cadena
Crculo
Cuadrado
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Diagrama de clases
Conjunto -Nombre +new() +unir(Conjunto) +intersectar(Conjunto) +restar(Conjunto) +contiene(Conjunto) +agregar(Elemento) +cardinalidad()
Elemento #getTipo()
0..*
0..*
Cadena
VistaCadena +dibujar()
VistaCirculo +dibujar()
VistaCuadrado +dibujar()
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Diagrama de Paquetes
Vista contiene Dibujo, VistaElemento, VistaCadena, VistaCirculo, VistaCuadrado Conjuntos contiene Conjunto, Elemento ElementosExternos se reere a Cadena, Crculo, Cuadrado
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Diagrama de secuencia
GUI
Dibujo
Conjunto
VistaElemento
Elemento
VistaCuadrado
Dibujo
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Temas
Tipos de especicaciones Construccin y uso Especicaciones descriptivas Especicaciones operativas Revisin de especicaciones Recomendaciones
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Elemento #getTipo()
0..*
0..*
Cadena
Cuadrado
VistaElemento #dibujar()
ConjuntoUniverso
Dibujo VistaCadena +dibujar() VistaCirculo +dibujar() VistaCuadrado +dibujar() -listaDeElementos -listaDeConjuntos +dibujar()
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Temas
Tipos de especicaciones Construccin y uso Especicaciones descriptivas Especicaciones operativas Revisin de especicaciones Recomendaciones
Vernica E. Arriola-Rios
Especicaciones
Tipos
Construccin y uso
Revisin de especicaciones
Recomendaciones
Recomendaciones
Cada tipo de especicacin tiene ventajas y desventajas: utilizar la ms adecuada para cada caso. Es vlido combinarlas. La experiencia ensea cul hace ms falta en cada caso. Por ejemplo:
Utilizar diagramas entidad-relacin para bases de datos. Diagramas de secuencia para interaccin entre el usuario y los datos. Especicaciones lgicas para determinar rangos de validez de algunas operaciones y casos de prueba.
Vernica E. Arriola-Rios
Especicaciones