Diseño de Casos de Uso y Modelado de Clases en Ingeniería de Software
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 9,34 KB
Asunciones: En el contrato se acuerda nunca invocar a un CDU si no se han cumplido todas las condiciones. Las asunciones describen el estado en que debe estar el sistema, antes que se pueda invocar un CDU.
Pre-condiciones: A diferencia de las asunciones, las pre-condiciones deben ser verificadas por el CDU antes de hacer nada. Si las pre-condiciones no se cumplen, se niega el acceso al actor. Ej: validación de parámetros de entrada dentro de una función.
Iniciación del CDU
Un CDU debe tener algún tipo de inicio. Por ej: lo invoca un actor [opción de menú], es iniciado por un cronómetro, un DCU actuando como un objeto espera un punto en el tiempo, puede ser iniciado por un evento en el sistema [condición de error], o iniciado por una señal recibida desde un dispositivo. Distintos mecanismos de iniciación para un CDU pueden conducir a un alto acoplamiento y una baja cohesión (independencia)
Proceso o Diálogo
Implica una descripción paso a paso de la conversación entre el CDU (sistema) y el usuario (actor u otro CDU). En este punto es útil un diagrama de actividad.
Terminación del CDU
Aunque usualmente existe un solo evento iniciador para un CDU, hay muchas formas de terminación. Cada mecanismo de terminación se debe establecer en el diálogo.
Post-condiciones: Describe el estado en que debe quedar el sistema, una vez que el CDU finaliza. Se trata de garantizar que el sistema quede en un estado estable después que finaliza el CDU.
Identificación de los Escenarios de CDUs
Un escenario es una secuencia de pasos que describe una interacción determinada entre un usuario y el sistema. Luego para un mismo CDU pueden existir varios escenarios.
Describiendo los Escenarios de los CDUs
Para describir los escenarios de un CDU, se puede trabajar con la narrativa del CDU o mejor aún, en base a lógica del CDU expresada en un Diagrama de Actividad. La importancia de los escenarios, es que permiten establecer verificaciones del sistema desde el inicio del proyecto de desarrollo.
La narrativa de CDU explica en detalle cómo los usuarios esperan interactuar con el sistema, cuando invocan el CDU.
Los escenarios desglosan la narrativa para proveer un examen detallado de cada posible resultado del CDU.
Modelado de la Visión Estática - El Diagrama de Clases
El diagrama de clases es la fuente para generar código. Debido a esto, el resto de los diagramas sirven como una guía para armar el diagrama de clases.
El Modelo de Objetos
El modelo de objetos es un conjunto de diagramas usados para modelar objetos, a saber, el diagrama de clases y el diagrama de objetos. El diagrama de clases es el más reconocido y utilizado de los dos. El diagrama de objetos generalmente se implementa dentro del diagrama de clases, no como un diagrama separado.
El Diagrama de Clases
Representa las clases, sus partes componentes, y la forma en que las clases de objetos se relacionan con otras. Una clase es una definición para un tipo de objeto. Los diagramas de clases incluyen:
- Atributos: Describe la apariencia y el conocimiento de una clase de objetos.
- Operaciones: Define el comportamiento que una clase de objetos puede manifestar.
- Estereotipos: Ayudan a entender un tipo de objetos, en el contexto de otras clases de objetos con roles similares dentro del diseño de un sistema.
- Propiedades: Provee un medio para rastrear la mantención y el estado de una definición de clase.
- Asociaciones: Tipo de relación en que puede participar una clase: simple, agregada, compuesta, calificada y reflexiva.
- Herencia: Permite organizar las definiciones de clases para simplificar y facilitar su implementación.
El símbolo de clase tiene tres componentes
- Nombre: Identifica unívocamente a una clase.
- Atributos: Contiene todas las definiciones de la clase.
- Operaciones: Contiene una definición por cada comportamiento que puede tener la clase.
Modelando un Atributo
A cada atributo se le debe asignar un nombre y un tipo de información o tipo de dato, ya sea un tipo de datos soportado por algún lenguaje de programación, o un tipo abstracto.
Visibilidad de Atributo
Visibilidad Pública, privada, protegida y de paquete.
Notación para la Definición de Atributos
Visibilidad / Nombre_Atributo: Tipo_de_dato = Valor_por_defecto {Restricciones}
Modelando una Operación
UML hace una distinción entre operación y método.
- Una operación es la declaración de una interfaz, es decir, la información mínima necesaria para invocar el comportamiento de un objeto.
- Un método es la implementación de una operación y se debe ajustar a la interfaz de la operación que implementa.
Elementos de una Especificación de Operación
Visibilidad Nombre_Operación (argumento: tipo_de_dato {Restricciones}, … ): tipo_de_dato_de_retorno {Restricciones}
Modelando los Compartimientos de Clase
Ahora es necesario juntar todo en un símbolo de clase. Es decir, atributos (Ocupa la sección central del símbolo de clase, Lista las especificaciones de atributos para la clase), operaciones (Ocupa la sección inferior del símbolo de clase) y el nombre (El compartimiento del nombre contiene el nombre de clase, un estereotipo opcional y propiedades opcionales) de la clase.
El Diagrama de Clases - Asociaciones
Las asociaciones entre objetos son similares a las asociaciones entre personas.
Es necesario saber porqué estamos asociados para aclarar porqué participamos o no, en ciertos tipos de comunicaciones.
Notación para el Modelamiento de Asociaciones Básicas
- Nombre de la Asociación: El propósito de una asociación puede expresarse en un nombre, verbo, o frase que describe cómo los objetos de un tipo (clase) se relacionan con objetos de otro tipo (clase).
- Multiplicidad de Asociación: La multiplicidad es un término UML que define la cantidad de objetos participantes en una asociación.
- Restricción de Asociación: Se puede agregar información de restricciones al modelo, mediante el uso de un par de paréntesis de llave {} conteniendo el texto que describe una regla obligatoria.
Notaciones para el Modelamiento de Asociaciones Extendidas
- Clase de Asociación: Una clase de asociación encapsula información acerca de una asociación. Por ejemplo, un cliente ordena productos; pero. . .¿cuándo ordenó los productos? ¿cuántos productos ordenó?
- Asociación Reflexiva: Indica que distintos objetos de una misma clase pueden estar relacionados entre sí.
- Asociación Calificada: Una asociación calificada provee aproximadamente la misma funcionalidad de un índice de base de datos.
Agregación
Unión de 2 o + entidades dependientes de sus similitudes.
Generalización
Unión de 2 o + entidades dependientes de sus diferencias.
Resumen
Las asociaciones identifican el hecho que distintos tipos de objetos pueden trabajar juntos. Dos formas especializadas de asociación, la agregación y la composición, dictan las reglas mediante las cuales los objetos pueden trabajar juntos. La agregación modela el ensamble o configuración de objetos. La composición es una forma de agregación, que dice que un objeto miembro no puede existir fuera de la configuración o ensamble. La generalización NO es una forma de asociación. Permite desglosar una definición de clase de acuerdo a las similitudes y diferencias entre los objetos representados por la clase. Una superclase contienen propiedades compartidas, comunes a muchos tipos de objetos dentro de la misma clase. Una subclase sólo contiene propiedades únicas en UN tipo de objeto dentro de la clase. Las clases abstractas no pueden crear objetos porque carecen de un método para al menos una operación. Las clases concretas pueden crear objetos porque tienen acceso a un método para cada operación. El discriminador describe los atributos o reglas usadas para conformar las subclases.