En la ingeniería de software, el análisis y diseño de sistemas se realiza mediante el uso de diversos modelos y notaciones, siendo UML uno de los más comunes. Este lenguaje permite definir los niveles de visibilidad de atributos y operaciones entre clases, estableciendo si pueden ser utilizados por otras clases o no, con niveles que van desde privado, protegido hasta público.
Los contratos incluyen 3 tipos de restricciones:
Una Invariante
Una Precondicion
Una posocondicion
Los contratos son restricciones sobre una clase que permiten que el liamador y el Ilamado
compartan las mismas suposiciones acerca de la clase I
Contratos: invariantes, precondiciones y poscondiciones
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.
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
El tipo de un atributo especifica el rango de valores
que puede tomar el atributo y las operaciones que pueden aplicarse al atributo.
Revisión de tipos, firmas y visibilidad
Durante el diseño de objetos se refinan los modelos de análisis y del diseño del sistema
Diseño de Objetos
Es la fuerza de dependencias dentro de un sistema
Coherencia
Es la fuerza de dependencias entre dos relaciones
Acoplamiento
Un subsistema se caracteriza por los servicios que proporciona a otros subsistema
Subsistemas, puede representarse como un directorio que contiene todos los archivos que implementan el susbsistema
Diseño de sistemas
Un diagrama de secuencia por cada caso de uso que muestra la secuencia de interacciones
Modelo de objetos que describe las entidades manipuladas por el sistema
Model de caso de uso que describe la funcionalidad del sistema desde el punto de vista de los actores
Un conjunto de requerimientos no funcionales y restricciones, como tiempo de respuesta máximo
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).
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í.