によって David Sebastián Román Amariles 4年前.
306
もっと見る
Como referencias durante pruebas
Patrón Fuente
Separa la interfaz de un objeto de su implementación.
Patrón Singleton
Una clase de la que solo puede existir una instancia.
Coherencia
Fuerza de las dependencias dentro de un subsistema. Una propiedad deseable de una descomposición en subsistemas es que conduzca a subsistemas con coherencia alta.
Si un subsistema contiene varios objetos que no están relacionados, su coherencia es baja.
Si un subsistema contiene muchos objetos que están relacionados entre si y realizan tareas similares, su coherencia es alta.
Interfaces
La interfaz de un subsistema
Se lo CONOCE también como interfaz de programación de aplicaciones (API, por sus siglas en inglés), incluye el nombre de las operaciones, sus parámetros, sus tipos y sus valores de retorno.
Es el conjunto de operaciones de un subsistema que está disponible para otros subsistemas forma la interfaz del subsistema.
Capas y particiones
El objetivo del diseño del sistema es manejar la complejidad dividiendo el sistema en partes más manejables.
Esto puede lograrse mediante un enfoque de dividir y conquistar.
en donde
Dividimos las partes en forma reiterada hasta que son bastante simples para ser manejadas por una persona o un equipo.
Acoplamiento
Es la
La fuerza de las dependencias entre dos subsistemas. Si dos subsistemas están poco acoplados son relativamente independientes.
Las modificaciones a uno de los subsistemas tendrá poco impacto en el otro.
Servicios
El servicio de un subsistema
Un servicio es un conjunto de operaciones relacionadas que comparten un propósito comün.
Se caracteriza por los servicios que proporciona a otros subsistemas.
Subsistemas y clases
En otros lenguajes, como c o c++, los subsistemas no están modelados en forma explicita y, en ese caso, los desarrolladores usan convenciones para el agrupamiento de clases (por ejemplo, un subsistema puede representarse como un directorio que contiene todos los archivos que implementan el subsistema).
Para reducir la complejidad del dominio de aplicación identificamos partes más pequeñas, llamadas clases, y las organizamos en paquetes.
Contratos
Especifica restricciones que debe satisfacer el llamador antes de usar la clase, así como las restricciones que asegura cumplir el llamado cuando se le usa.
Los contratos incluyen tres tipos de restricciones.
Poscondición
Es un predicado que debe ser cierto después de que se llama a una operación. Las poscondiciones están asociadas con una operación especifica. Las poscondiciones se usan para especificar restricciones que el objeto debe asegurar después de la invocación de la operación.
El resultado de un factorial es siempre un entero mayor o igual que 1.
De este modo
Un método que calcula el factorial de un número dado tendría como postcondiciones que el resultado debe ser un entero y que éste debe ser mayor o igual que 1.
Precondición
Es un predicado que debe ser cierto antes de que se llame a una operación. Las precondiciones están asociadas con una operación especifica. Las precondiciones se usan para especificar restricciones que debe satisfacer el llamador antes de llamar a una operación.
El factorial de un número sólo está definido para valores positivos (o cero).
Por lo tanto
Un método que calcule el factorial de un número exigirá que dicho número sea mayor o igual que cero.
Invariantes
Son restricciones asociadas con clases o interfaces. Los invariantes se usan para especificar restricciones de consistencia entre atributos de clase.
Sí en la clase Persona tenemos un atributo denominado "edad", entonces, su restricción invariante sería, que la edad NUNCA puede tomar un valor menor o igual a cero.
Visibilidad
La visibilidad de un atributo o una operación especifica si puede ser usada por otras clases o no.
Tipos de niveles de visibilidad
Público
Cualquier clase puede tener acceso a un atributo u operación püblico.
Protegido
La clase en la que están definidos y cualquier descendiente de la clase pueden tener acceso a un atributo u operación protegidos.
Privado
Solo puede tener acceso a un atributo privado la clase en la que está definido.
Firma
Los tipos de cada parámetro y el tipo de valor de retorno se le llama firma de la operación.
El método put() de la clase TablaHash toma dos parámetros de tipo Object y no tiene valor de retorno.
El tipo de firma para la operación put() es entonces:
(Object, Object) : void.
Tipo
El tipo de un atributo especifica el rango de valores que puede tomar el atributo y las operaciones que pueden aplicarse al atributo.
Ejemplo
Sí tuviéramos una clase llamada TableHash y un atributo denominado "numElementos", esto representa el número actual de entradas en una TablaHash dada.
Su tipo es int, indicando que es un número entero.
El tipo del atributo "numElementos" también indica las operaciones que pueden aplicarse a este atributo:
Podemos sumar o restar otros enteros a "numElementos".
Objetos de solución
Representan componentes de apoyo que no tienen una contraparte en el dominio de aplicación, como los almacenes de datos persistentes o los objetos de interfaz de usuario.
Objetos de aplicación
Representa conceptos del dominio que manipula el sistema.