parent nodes: WikiOtros

Apuntes de Diseño del Software

Válidos para cualquier lenguaje orientado a objetos

Author: César TM
Date: 07/11/2011
Source: Internet


MVC


Desacoplamiento

Contenido

Descomposición

Diseño descendente "top down" (Este sistema fracasa rotundamente)

Una estrategia mejor

Relaciones de dependencia

Diagrama de casos de uso

(...) ver documento lecture-02.pdf

¿Qué podemos hacer con los diagramas de casos de uso?

Problema

Hay que encontrar todas las partes que puedan alcanzarse o bien alcanzar una parte.
En un sistema grande son muchas partes y cada vez crece más

La relación básica que sustenta a los usos es transitiva: Si A se ve afectada por B, y B se ve afectada por C, entonces A se ve afectada por C.

Sería mucho mejor si argumentar sobre una parte, por ejemplo, exigiese examinar sólo las partes a las que ésta se refiere.

Dependencias y especificaciones

(...)

Especificaciones de procedimientos

Estructura de la especificación

La especificación de un método consta de:
  1. Una precondición (requires)
  2. Una poscondición (effects)
  3. Una condición estructural (modifies)

Especificaciones declarativas

Indican las propiedades del resultado final en relación con el estado inicial del método.
No indican los pasos de dentro del método
Son preferibles a las especificaciones operativas pues son más cortas

Precondición

Una obligación que se debe satisfacer al llamar al método.
Es una condición sobre el estado en que se invoca al método.
Si no se cumple: no terminar la ejecución, devolver un valor arbitrario, lanzar una excepción, hacer modificaciones arbitrarias, etc.
Si se omite la precondición se presupone el valor true es decir cualquier estado del sistema al llamar al método sastisface la precondición. No hay que comprobar nada al inicio, se llama total en contra los métodos con precondición que reciben el nombre parcial pues sólo funcionan en algunos casos.

La precondición no implica una comprobación, sino que requiere una propiedad precisa, porque la comprobación resultaría complicada o costosa (aumenta la complejidad).
Las precondiciones -> métodos que no siempre funcionan -> métodos que no gustan a los desarrolladores.
Las precondiciones se pueden comprobar mediante Asserts para que no afecten a la ejecución real y puedan detectarse en la depuración.

Poscondición

Es una obligación del implementador del método.
Si se cumple la precondición en el momento de la llamada al método, tiene que cumplirse la poscondición.
No se puede omitir la poscondición, el método siempre debe hacer alguna cosa.


Condición estructural

Está relacionada con la poscondición pues la amplía de forma más detallada.
Indica todos los objetos que pueden o no cambiar en la ejecución del método
Si se omite la condición estructural, el valor por defecto es modifies nothing indicando que el método no realiza cambios en ningún objeto.

Especificaciones operativas

Indican todos los pasos uno a uno, por ejemplo, pseudocódigo.





_________________________________________________________________________________________________________
WikiOtros [camelCaseWordsEnabled: false]