La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SISTEMAS II TECNICATURA UNIVERSITARIA EN INFORMATICA Unidad N° 2

Presentaciones similares


Presentación del tema: "SISTEMAS II TECNICATURA UNIVERSITARIA EN INFORMATICA Unidad N° 2"— Transcripción de la presentación:

1 SISTEMAS II TECNICATURA UNIVERSITARIA EN INFORMATICA Unidad N° 2
DIAGRAMA DE ESTRUCTURA ESTATICA

2 El modelo de objetos DIAGRAMA DE ESTRUCTURA ESTÁTICA
Muestra el conjunto de clases y objetos importantes que hacen parte de un sistema, junto con las relaciones existentes entre estas clases y objetos. Muestra de una manera estática la estructura de información del sistema y la visibilidad que tiene cada una de las clases, dada por sus relaciones con las demás en el modelo El modelo de objetos Permite describir objetos y las relaciones que intervienen en el marco de la problemática. Esta descripción es doble: Una descripción de la estructura de los objetos y sus características; Una descripción de las asociaciones existentes entre los diferentes objetos.

3 DIAGRAMA ESTRUCTURA ESTATICA

4 OBJETO: Es una abstracción de un conjunto de cosas del mundo real que tiene sentido en el problema aplicación. CLASE Una clase es una definición simplificada de las características comunes de un conjunto de objetos semejante. (comparten el mismo comportamiento) . Los objetos con la misma estructura de datos (atributos) y comportamiento (operación) son agrupados en CLASES.

5 • Clases Abstractas: Una clase abstracta es una clase que no tiene instancias directas, pero cuyas clases descendientes poseen instancias directas. Una clase abstracta es una clase que no permite crear instancias. No da lugar a objetos, sino que sirve de especificación más general. Su función es factorizar un cierto número de características con el objeto de especializarla posteriormente • Clase Concreta: Una clase concreta es una clase instanciable, es decir, que puede tener instancias directas. Las clases concretas pueden poseer subclases abstractas (pero deben tener descendientes concretos)

6 Atributos Un atributo es una propiedad de los objetos de una clase. Es un valor de dato de los objetos de una clase. No debemos confundir los identificadores internos con los atributos del mundo real. Los identificadores internos son puramente una conveniencia de implementación y no tienen significado en el dominio del problema. Sintaxis de un atributo: « estereotipo » visibilidad nombre multiplicidad : tipo opc : valor inicial opc {cadena de propiedades }opc

7 Donde la visibilidad es una enumeración cuyo valor (pública, protegida o privada) denota si el elemento del modelo al que alude se puede o no ver fuera del espacio de nombres que lo contienen. • Hace el elemento visible a todos los clientes de la clase. Son variables cuya visibilidad es más amplia del objeto en el cual fueron definidos. Cualquier clase que vea la clase ve también sus atributos. • Hace el elemento visible a las subclases de la clase. Puede ser accedido desde el objeto en el cual fue declarado y desde todos sus descendientes. • Hace el elemento visible sólo para la clase u objeto en el fue declarado.

8 Donde el nombre se representa mediante un identificador tipo cadena.
El tipo es el tipo del atributo con nombre name. Se representa mediante una expresión tipo cadena que denota un clasificador. La sintaxis adicional del tipo depende del lenguaje de la expresión. La multiplicidad se representa mediante una expresión de multiplicidad encerrada entre corchetes y situada después del nombre del atributo. Si la multiplicidad es exactamente uno (1) se puede omitir la expresión, incluyendo los corchetes. Esto indica que cada objeto tiene exactamente una ranura para guardar un valor del tipo especificado. Si no es así se debe mostrar la multiplicidad. Ej: colores [ 3 ]: saturación . => un array de tres saturaciones. puntos [2...*]: punto . => un array de 2 o más puntos. Nombre [0..1]: string => si no tiene nombre es un valor nulo

9 Valor inicial: se representa mediante una cadena.
Variabilidad: el valor de la modificación se representa mediante una palabra clave que representa el valor elegido. Si no se elige ningún valor se toma por defecto changeable. Valor etiquetado: un atributo puede tener cero o más valores etiquetados. Alcance: si no está subrayado el atributo tiene alcance de instancia. Ejs: +tamaño: area=(100,100) => público, valor inicial #visibilidad :boolean=invisible => protegido, valor inicial +tamaño-por-defecto rectángulo => público tamaño-máximo: rectángulo =>alcance de clase -xptr:xwindowptr{requisito=4.3 j => privado, valor etiquetado

10 Operación El conjunto de operaciones describe el comportamiento de los objetos de una clase. Sintaxis: «estereotipoOTK>> visibilidadopo nombre (lista-parámetros) : tipo-proporcionado {cadena-de-propiedadesOTK.} Visibilidad: idem a los atributos. nombre: es una cadena que denota el nombre de la operación (sin incluir los parámetros). Lista de parámetros: cada declaración de parámetros consta de una dirección, un nombre y un tipo, separados por comas y entre paréntesis. Tipo de retorno: es una cadena de los clasificadores (clases, tipos de datos e interfaces). La cadena va después del signo dos puntos (:) que sigue a la lista de parámetros.

11 Métodos: Las operaciones y los métodos se declaran con la misma sintaxis: Cuerpo del método: se puede mostrar el cuerpo de un método como una cadena situada dentro de una nota asociada a la declaración de una operación. Especificación: describe los efectos de llevar a cabo la operación. Se muestra mediante una cadena de restricción situada dentro de una nota asociada a la operación de entrada. Consulta: cadena de propiedades de la forma isquery=true o isquery=false. Polimorfismo: Cadena de propiedades de la forma ispolymorphic=true (anulable) o bien ispolimorphic=false (no anulable)

12 Los nombres de las operaciones comienzan con letra minúscula
Alcance: las operaciones que tienen alcance de instancia se denotan dejando sin subrayar la cadena de operación. Con alcance de clase se subraya el nombre. Concurrencia: concurrencia =valor. Valor puede ser: secuencial, guarda o concurrente. Señales: si se quiere indicar que una clase admite una señal, se antepone la palabra reservada <<signal>> delante de la declaración de operación. Reglas de estilo: Los nombres de las operaciones comienzan con letra minúscula Los nombres de las operaciones se muestran con letra normal Las operaciones abstractas se muestran en letra cursiva. Ejemplos: +visualizar():localizaci6n +ocultar <<constructor»+crear() – asociar VentanaX(venX:ventanaX*)

13 ¿Clase u Objeto? Una clase sirve para instanciar objetos que pueden representarse en nuestro modelo de objetos. La representación de un objeto es parecida a la de la clase. La cabecera del rectángulo contiene el nombre del objeto, seguido del nombre de su clase, todo ello subrayado para marcar claramente la diferencia con la clase. En la región inferior del rectángulo pueden colocarse los diferentes atributos con sus valores. La relación de instanciación se evidencia por una flecha punteada que va de la clase hacia la instancia. Muchas veces lleva el estereotipo <<refine>>.

14 ASOCIACIÓN Una asociación en general es una línea que une dos o más símbolos. Es una relación entre dos o más clasificadores que describe conexiones entre sus instancias. Pueden tener varios tipos de adornos, que definen su semántica y características. Cada asociación puede presentar algunos elementos adicionales que dan detalle a la relación:

15 Rol: Identificado como nombres en los extremos de la línea, describe la semántica de la relación en el sentido indicado. Por ejemplo, la asociación de composición entre Maquina e Ingrediente recibe el nombre de existencias, como rol en ese sentido Flecha de dirección de la lectura: nos indica cómo debe leerse la asociación. A menudo se excluye . Multiplicidad: Describe la cardinalidad de la relación, es decir, el número de instancias que participan de la relación. 1 uno y solo uno 0..1 cero o uno m..n de m a n (enteros naturales) * de cero a varios 0..* de cero a varios 1..* de uno a varios

16 Calificador Una relación calificada relaciona dos clases de objetos y un calificador. Un calificador es un atributo especial que reduce la multiplicidad efectiva de una relación. Las relaciones 1:n y n:m pueden ser calificadas. El calificador distingue uno o más objetos entre un conjunto de objetos en el final “n” de una relación.

17 (banco, n° de cuenta #) => 0 o 1 persona Persona => muchos (banco, n° de cuenta)
TIPOS DE ASOCIACIONES: Los tipos de asociaciones entre clases presentes en un diagrama estático son: Asociación binaria Asociación unaria Asociación n-aria Agregación y Composición Generalización Refinamiento

18 1- Asociación o relación binaría
Una Asociación o Relación es una conexión física o conceptual entre instancias de objetos entre dos clases. Un enlace es una instancia en la relación. Una RELACIÓN describe un grupo de enluces con estructura y semántica común. Todos los enlaces en una relación conectan objetos de las mismas clases. Las relaciones y enlaces a menudo aparecen como verbos en una sentencia del problema. Una relación describe un conjunto de enlaces. Las relaciones son bidireccionales en el modelamiento pero no en la implementación. En la práctica la mayoría de las relaciones son binarias o calificadas. Sintaxis: Se identifica como una línea sólida que une dos clases. Representa una relación de algún tipo entre las dos clases, no muy fuerte (es decir, no se exige dependencia existencial ni encapsulamiento). En este caso la relación recibe el nombre genérico Trabaja Para, la compañía tiene uno o más instancias de la clase Persona denominadas empleado y cada empleado conoce su empleador (en este caso único).

19 2- Asociación Unaria Es posible asociar una instancia de una clase con una instancia de la misma clase. En este caso es importante indicar claramente las funciones de la asociación para eliminar toda ambigüedad de lectura 3- Asociación n-aria Es una forma de expresar una relación entre tres o más clases. Se representa como un diamante del cual salen líneas de asociación a las clases.

20 4- Agregación La agregación declara que un objeto llamado agregado o superparte está compuesto por subpartes o componentes. La agregación es una relación " es parte de", en la cual los objetos representan las componentes de algo que está asociados con un objeto que es la unión entera. Propiedades de la agregación La propiedad más significativa de la agregación es la transitividad, es decir: si A es parte de B y B es parte de C, luego A es parte de C. La agregación es también " antisimétrica", es decir, si A es parte de B, luego B no es parte de A. Las propiedades de la parte agregada se propagan a sus componentes posiblemente con algunas modificaciones. A menos que existan propiedades comunes de componentes que pueden ser unidas a la parte agregada como un todo, no siempre es conveniente un agregación. En caso de duda es mejor utilizar una relación común.

21

22 TIPOS DE AGREGACIÓN FIJA:
Cuando el agregado o superparte tiene una estructura fija y el tipo y número de sus componentes son predefinidos. VARIABLE: Cuando el agregado tiene un número finito de niveles, pero el número de componentes puede variar.

23 RECURSIVA: Cuando el agregado contiene directa o indirectamente, la instancia de la misma clase de agregado; el número de niveles potenciales es ilimitado Propagación de operaciones La propagación es una aplicación automática de una operación o un conjunto de objetos cuando la operación es aplicada a alguno de estos objetos. La propagación de operaciones a las partes es un buen indicador de agregación. Las operaciones no se propagan en dirección inversa.

24 Composición Es un caso particular de agregación realizada por una restricción sobre el valor de la multiplicidad en el lado del agregado: solo puede tomar el valor 1. El valor cero en el lado del componente corresponde a un atributo no explícito, la composición implica tres cosas: Dependencia existencia!. El elemento dependiente desaparece al destruirse el que lo contiene y, si es de cardinalidad 1, es creado al mismo tiempo Hay una pertenencia fuerte. Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene. Los objetos contenidos no son compartidos, esto es, no forman parte del estado de otro objeto. Sintaxis: Se denota dibujando un rombo relleno del lado de la clase que contiene a la otra en la relación

25 Generalización UML emplea el término generalización para designar la relación de clasificación entre un elemento más general y un elemento más específico. La generalización es una relación entre una clase y una o más versiones refinadas de ella. Cada subclase hereda las características de su superclase. Los atributos y operaciones comunes a un grupo de subclases son ligadas a la superclase y compartidas por cada subclase. Una especialización hereda las relaciones de su generalización. La generalización y herencia son transitivas a través de un número arbitrario de niveles. Una instancia de una subclase es simultáneamente una instancia de todas sus superclases. Cada subclase no sólo hereda todas las características de sus superclases, sino que agrega sus propios atributos específicos y operaciones.

26 La herencia es un poderoso mecanismo de reusabilidad, pues permite que las clases compartan atributos y operaciones basados en la generalización. La reusabilidad se da debido a que: • La subclase comparte la estructura de datos definida en su superclase. La subclase comparte métodos definidos en sus superclases. La subclase puede agregar sus características a las estructuras de datos. La subclase puede agregar o extender sus métodos a los ya heredados.

27 Refinamiento Dependencia
Es una relación o asociación entre dos descripciones de la misma cosa pero a diferentes niveles de abstracción. Dependencia Denota una relación semántica entre dos elementos (clases o paquetes, por el momento) del modelo. Indica que cambiar el elemento independiente puede requerir cambios en los dependientes. Se muestra como una línea punteada direccional, indicando el sentido de la dependencia. Puede tener por medio de estereotipos una explicación del tipo de dependencia presentada.

28 Nota Es un comentario dentro de un diagrama. Puede estar relacionado con uno o más elementos en el diagrama mediante líneas punteadas. Pueden representar aclaraciones al diagrama o restricciones sobre los elementos relacionados. Se representa mediante un rectángulo con su borde superior derecho doblado. Clase paramétrica Una clase paramétrica representa el concepto de clase genérica en los conceptos básicos OO o de témplate en C++. Permiten construir colecciones universales, con tipos de parámetros efectivos. Se dibuja como una clase acompañada de un rectángulo en la esquina superior derecha, con los parámetros del caso.

29 Paquete Un paquete es una forma de agrupar clases (u otros elementos en otro tipo de diagramas) en modelos grandes. Pueden tener asociaciones de dependencia o de generalización entre ellos.

30 Paquete Un paquete puede componer varios tipos de entidades (clases, asociaciones, otros paquetes): Aquellas que pertenecen al paquete. Aquí es donde se definen; Aquellas que son referenciadas por el paquete. Éstas no forman parte propiamente del paquete, sino que se representan para mostrar sus relaciones con los elementos que pertenecen al paquete. Puede representarse de dos formas: 1. Puede describir explícitamente su contenido, es decir, el conjunto de las entidades poseídas y referenciadas. Esta vista permite describir cuáles son los actores de una funcionalidad; 2. Puede representarse simplemente con un rectángulo y una pestaña que contiene su nombre. Generalmente, se representa con otros paquetes con los que guarda interacciones. Esta vista permite comprender la organización funcional del modelo de objetos.

31 Estereotipo Las clases (y demás elementos notacionales en los diagramas) pueden estar clasificados de acuerdo a varios criterios, como por ejemplo su objetivo dentro de un programa. Esta clasificación adicional se expresa mediante un estereotipo Los estereotipos cumplen dos funciones: Clasifican elementos del modelo. Por ello permiten crear familias de elementos asociados a un mismo estereotipo; Modifican la semántica de los elementos asociados y permiten la creación de nuevos conceptos propios de una aplicación.

32 Navegación Los enlaces pueden ser vistos como canales de navegación entre los objetos. Estos canales permiten desplazarse en el modelo y realizar las formas de colaboración que corresponden a los diferentes escenarios. En principio las asociaciones son navegables en ambas direcciones. En ciertos casos sólo es útil una dirección de navegación. Interfaz Una interfaz es una clase particular que sólo contiene operaciones.

33 Asociación or En algunas ocasiones es necesario describir que una clase esta relacionada con un objeto de una u otra clase. Esto se denota por medio de una relación or exclusiva Clase de asociación Algunas veces es útil modelar una relación como una clase. Cada enlace se convierte en una instancia de la clase. Es una asociación que también es una clase. Tiene propiedades, tanto de las clases como de las asociaciones. Sus instancias son enlaces que tiene valores de atributos a la vez que referencian a otros objetos

34 Clase de asociación Una asociación puede representarse por una clase para añadir, por ejemplo, atributos y operaciones a la asociación. Una clase de este tipo es como las otras y por lo tanto puede participar en otras relaciones en el modelo. Una clase de asociación es información de detalle. Permite encapsular datos y comportamientos que tienen razón de ser en el marco de la asociación.

35 Diagrama de clases


Descargar ppt "SISTEMAS II TECNICATURA UNIVERSITARIA EN INFORMATICA Unidad N° 2"

Presentaciones similares


Anuncios Google