Está en la página 1de 19

Tipos

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

Crculo -radio -centro +getRadio() +getCentro()

Dibujo Cuadrado VistaElemento #dibujar() -listaDeElementos -listaDeConjuntos +dibujar()

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

dibujar() contiene(Elemento) Booleano dibujar(Dibujo, Elemento) getTipo() Tipo <Cuadrado> dibujar(Dibujo)

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

Diagrama de clases (Versin 2.0)


Conjunto -Nombre +new() +unir(Conjunto) +intersectar(Conjunto) +restar(Conjunto) +contiene(Conjunto) +agregar(Elemento) +cardinalidad()

Elemento #getTipo()

0..*

0..*

Cadena

Crculo -radio -centro +getRadio() +getCentro()

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.

Las especicaciones evolucionan. Mantener control de versiones.

Vernica E. Arriola-Rios

Especicaciones

También podría gustarte