Es un enfoque de análisis en ingeniería de software que modela un sistema como un grupo de objetos que interactúan entre sí.
En este método de análisis y diseño se crea un conjunto de modelos utilizando una notación acordada como, por ejemplo, el lenguaje unificado de modelado (UML).
Un conjunto de requerimientos no funcionales y restricciones, como tiempo de respuesta máximo
Model de caso de uso que describe la funcionalidad del sistema desde el punto de vista de los actores
Modelo de objetos que describe las entidades manipuladas por el sistema
Un diagrama de secuencia por cada caso de uso que muestra la secuencia de interacciones
Diseño de sistemas
Subsistemas, puede representarse como un directorio que contiene todos los archivos que implementan el susbsistema
Un subsistema se caracteriza por los servicios que proporciona a otros subsistema
Acoplamiento
Es la fuerza de dependencias entre dos relaciones
Coherencia
Es la fuerza de dependencias dentro de un sistema
Diseño de Objetos
Durante el diseño de objetos se refinan los modelos de análisis y del diseño del sistema
Revisión de tipos, firmas y visibilidad
El tipo de un atributo especifica el rango de valores que puede tomar el atributo y las operaciones que pueden aplicarse al atributo.
Para toda operación, a! tuplo compuesto por los tipos de sus parámetros y el tipo de valor de retorno se le llama firma de la operación
La visibilidad de un atributo o una operación especifica si puede ser usada por otras clases o no. UML define tres niveles de visibilidad que es privado, protegido y publico.
Contratos: invariantes, precondiciones y poscondiciones
Los contratos son restricciones sobre una clase que permiten que el liamador y el Ilamado compartan las mismas suposiciones acerca de la clase I
Los contratos incluyen 3 tipos de restricciones: Una Invariante Una Precondicion Una posocondicion