Anexo 1 Breve descripción de uml anexo 1: Breve Descripción de uml



Descargar 0,63 Mb.
Página6/18
Fecha de conversión12.01.2017
Tamaño0,63 Mb.
1   2   3   4   5   6   7   8   9   ...   18

Relaciones entre actores

Los actores sólo pueden tener entre ellos relaciones de generalización. Se pueden definir categorías generales de actores y especializarlos mediante relaciones de especialización.


La relación de generalización entre actores se representa igual que la generalización entre clases y entre casos de uso, con una línea continua con la punta de flecha vacía.



Diagrama de clases

Un diagrama de clases muestra las clases que componen el sistema y las relaciones que existen entre ellos. Este diagrama se utiliza para modelar la vista de diseño estructural de un sistema. Los diagramas de clases además, pueden contener paquetes.



Clases

Una clase es la definición de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.


Las clases se representan gráficamente con una caja dividida en tres zonas: en la zona superior se escribe el nombre de la clase, en la zona central los atributos y en la inferior las operaciones. En algunas ocasiones, para simplificar el diagrama, las clases se representan con una caja que contiene sólo el nombre.



Para especificar que una clase es abstracta, es decir que contiene al menos una operación abstracta, se escribe el nombre de la clase en cursiva.
El número de instancias que pueden crearse de una clase es su multiplicidad. Generalmente la multiplicidad de una clase es ilimitada, en un sistema suele haber muchas instancias u objetos de una clase ejecutándose. Sin embargo, a veces es necesario restringir a un número determinado el número de instancias de una clase. En estos casos, la multiplicidad se escribe en la esquina superior derecha de la clase.
UML permite especificar dos características importantes de los elementos (atributos y operaciones) de una clase: la visibilidad y el alcance.


  • Visibilidad: los elementos de una clase pueden ser públicos, protegidos o privados.




  • Los elementos públicos son visibles para los objetos de todas las clases del sistema. Un elemento público va precedido del signo +.

  • Los elementos protegidos sólo son visibles dentro de la clase y de las clases hijas. Un elemento protegido va precedido del signo #.

  • Los elementos privados solamente son visibles dentro de la clase. Un elemento privado va precedido del signo -.




  • Alcance: se pueden especificar dos niveles de alcance:




  • Instancia: cada instancia de la clase tiene su propio valor del elemento.

  • Clase: sólo hay un valor del elemento para todas las instancias de la clase. (El alcance de clase es equivalente al uso de “static” en C++ y Java). Para indicar que un elemento tiene alcance de clase se subraya.



Atributos

La sintaxis de un atributo en UML es:


[visibilidad] nombre [multiplicidad] [:tipo] [= valor inicial] [{propiedades}]
La visibilidad, como se explicó anteriormente, indica si el atributo es público, protegido o privado.
La multiplicidad de un atributo es el número de instancias del atributo que se pueden crear. Se especifica mediante una expresión encerrada entre corchetes. Por ejemplo:
impresora [1..5]: Impresora
indica que pueden existir de 1 a 5 instancias del atributo impresora. La multiplicidad suele utilizarse para especificar vectores de atributos.
Las propiedades predefinidas para los atributos son:


  • changeable: no hay restricciones para cambiar el valor del atributo.

  • addOnly: esta propiedad sólo se aplica a los atributos de multiplicidad mayor que uno. Indica que, un valor asignado no se puede borrar ni modificar, sólo se permite añadir nuevos valores al atributo.

  • frozen: no se puede modificar el valor del atributo.



Operaciones

La sintaxis de una operación en UML es:


[visibilidad] nombre [(lista de parámetros)] [:tipo de retorno] [{propiedades}]
La visibilidad indica si la operación es pública, protegida o privada.
Para especificar que una operación es abstracta se escribe el nombre en cursiva. Una operación abstracta no tiene implementación, sólo tiene cabecera. La implementación la proporcionan las clases hijas redefiniendo la operación.
La sintaxis de un parámetro es:
[dirección] nombre [:tipo] [= valor por omisión]
La dirección de un parámetro puede tomar tres valores:


  • in: parámetro de entrada.

  • out: parámetro de salida.

  • in/out: parámetro de entrada y salida.

Las propiedades predefinidas para una operación son:




  • leaf: la operación no puede ser redefinida en las clases hijas.

  • isQuery: la ejecución de la operación no modifica el estado del sistema.

  • sequential: la semántica y la integridad del objeto no se pueden garantizar en presencia de múltiples flujos de control. Los objetos invocadores de la operación deben coordinarse para que en el objeto sólo haya un único flujo al mismo tiempo.

  • guarded: la operación tiene guardas. La semántica e integridad del objeto se garantizan en presencia de múltiples flujos de control, tratando secuencialmente todas las llamadas a las operaciones con guardas del objeto.

  • concurrent: la semántica y la integridad del objeto se garantizan en presencia de múltiples flujos tratando la operación como atómica.

Las propiedades sequential, guarded y concurrent sólo se emplean cuando existe concurrencia, en presencia de objetos activos, procesos o hilos.



1   2   3   4   5   6   7   8   9   ...   18


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal