“diagrama de clases”



Descargar 46.41 Kb.
Fecha de conversión14.03.2019
Tamaño46.41 Kb.

UNIVERSIDAD SALESIANA DE BOLIVIA

INGENIERIA DE SISTEMAS



“DIAGRAMA DE CLASES”




MATERIA : ANALISIS Y DISEÑO DE SISTEMAS II
DOCENTE : LIC. ELISA ARIZACA RAMIREZ
UNIVERSITARIOS : GONZALES QUISPE ETZEL MELVIN

SAILER SÁNCHEZ JUAN PABLO


GESTIÓN I - 2010

LA PAZ –BOLIVIA
DEFINICION

Un diagrama de clases es un tipo de diagrama estático en el que la estructura de clases del sistema se especifica mostrando sus clases, atributos, relaciones entre clases y estructuras de herencia. El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones.

Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro.

Los diagramas de clases representan un conjunto de elementos del modelo que son estáticos, como las clases y los tipos, sus contenidos y las relaciones que se establecen entre ellos.

Durante el análisis del sistema, el diagrama se desarrolla buscando una solución ideal. Durante el diseño, se usa el mismo diagrama, y se modifica para satisfacer los detalles de las implementaciones.

Es utilizado principalmente para modelar aspectos estáticos de un sistema



  • Realizar la abstracción de un dominio

  • Formalizar el análisis de conceptos

  • Definir una solución de diseño

  • Construir componentes de software

  • Son importantes no solo para visualizar especificaciones y documentación de modelos estructurales, sino también para construir sistemas ejecutables

Un diagrama de clase comparte las mismas propiedades como lo hacen todos los otros diagramas – un nombre y un contenido grafico

Además el diagrama de clases representa:



  • Requerimientos en entidades y actuaciones

  • La arquitectura conceptual de un dominio

  • Soluciones de diseño en una arquitectura

  • Componentes de software orientado a objetos

DEPENDENCIA

Artefactos de los que depende su construcción

El diagrama de clases se desarrolla a través de información obtenida en los Diagramas de Casos de Uso, Diagramas de Secuencia y Diagramas de Colaboración. Los objetos encontrados durante el análisis son modelados en términos de la clase a la que instancian, y las interacciones entre objetos son referenciados a relaciones entre las clases instanciadas.



Artefactos que generan a partir de los diagramas de clase

Mientras los diagramas de interacción y colaboración modelan secuencias dinámicas de acción entre grupos de objetos de un sistema, el diagrama de estado se usa para modelar el comportamiento dinámico de un objeto en partículas, o de una clase de objetos.

Un diagrama de estado se modela para todas las clases que se consideran con un comportamiento dinámico. En el, modelas la secuencia de estado que un objeto de la clase atraviesa durante su vida en respuesta a los estímulos recibidos, junto con sus propias respuestas y acciones

También generan los diagramas de implementación.

Los diagramas de implementación se usan para modelar solo componentes que existen como entidades en tiempos de ejecución; no se usan para modelar componentes solo de tiempo de compilación o de tiempo de enlazado.

NOTACION

Componentes:

Un diagrama de clases está compuesto por los siguientes elementos:



  • Clase: atributos, métodos y visibilidad.

  • Relaciones: Herencia, Composición, Agregación, Asociación y Uso.

  • Clase

Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).

Existen dos tipos de clase:



    • Clase Pasiva.

Principalmente almacena información y proporciona servicios a otras clases.

Normalmente no inician actividades de control a no ser que el control les sea otorgado a partir de una clase activa



    • Clase Activa.

Tienen una tarea de control. Una tarea es una ruta de ejecución o un control, esta tarea se ejecuta a través de un proceso

Pueden requerir servicios de otros objetos y clases

En UML, una clase es representada por un rectángulo que posee tres divisiones:

En donde:



    • Superior: Contiene el nombre de la Clase

    • Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser private, protected o public).

    • Inferior: Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).

Ejemplo:

Una Cuenta Corriente que posee como característica:



    • Balance

Puede realizar las operaciones de:

    • Depositar

    • Girar

    • Balance



  • Métodos:__Atributos:__También_llamados_Propiedades_o_características'>Atributos y Métodos:

    • Atributos:

También llamados Propiedades o características, son valores que corresponden a un objeto, como color, material, cantidad, ubicación. Generalmente se conoce como la información detallada del objeto pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:

      • public (+,): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

      • private (-,): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden accesar).

      • protected (#,): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (ver herencia).



    • Métodos:

Llamados también Operaciones son aquellas actividades o verbos que se pueden realizar con/para este objeto, como por ejemplo abrir, cerrar, buscar, cancelar, acreditar, cargar. El nombre de una operación se escribe con minúsculas si consta de una sola palabra. Si el nombre contiene más de una palabra, cada palabra será unida a la anterior y comenzará con una letra mayúscula, a excepción de la primera palabra que comenzará en minúscula. Por ejemplo: abrir Puerta, cerrar Puerta, buscar Puerta, etc. estos pueden tener las características:

      • public (+,): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

      • private (-,): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar).

      • protected (#,): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven (ver herencia).



  • Relaciones entre Clases:

Una vez definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o más clases (cada uno con características y objetivos diferentes).

Antes es necesario explicar el concepto de Cardinalidad de relaciones: En UML, la Cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relación y éstas pueden ser:



    • uno o muchos: 1..* (1..n)

    • 0 o muchos: 0..* (0..n)

    • número fijo: m (m denota el número).

  • Herencia (Especialización/Generalización):

Indica que una subclase hereda los métodos y atributos especificados por una Superclase (objeto padre), por ende la Subclase (objeto hijo) además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Superclase (public y protected), ejemplo:

En la figura se especifica que Auto y Camión heredan de Vehículo, es decir, Auto posee las Características de Vehículo (dueño, puertas, ruedas) además posee algo particular que es Descapotable, en cambio Camión también hereda las características de Vehículo (dueño, puertas, ruedas) pero posee como particularidad propia Acoplado, Tara y Carga.

Cabe destacar que fuera de este entorno, lo único "visible" es el método Características aplicable a instancias de Vehículo, Auto y Camión, pues tiene definición pública, en cambio atributos como Descapotable no son visibles por ser privados.


    • Agregación:

Para modelar objetos complejos, no bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades:

      • Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición (el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo").

      • Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación (el objeto base utiliza al incluido para su funcionamiento).

Ejemplo

En donde se destaca que:



      • Un Almacén posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).

      • Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.

      • La composición (por Valor) se destaca por un rombo relleno.

      • La agregación (por Referencia) se destaca por un rombo transparente.

La flecha en este tipo de relación indica la navegabilidad del objeto referenciado, es decir, que dado un objeto, se puede acceder fácil y directamente a los objetos del otro extremo. Cuando no existe este tipo de particularidad la flecha se elimina.

    • Asociación:

La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre si. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.

Ejemplo:



Un cliente puede tener asociadas muchas Órdenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.



  • Asociación OR

En algunas ocasiones es necesario describir que una clase está relacionada bien con un objeto de una o bien (exclusivo) con un objeto de otra. Este tipo de relación xor exclusiva se representa es una línea punteada que une dos asociaciones junto con la aclaración de la restricción que rige sobre ellas. En la figura 3.8 un automóvil puede tener como dueño una persona o una empresa, pero no ambos.

  


    • Dependencia o Instanciación (uso):

Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada.

El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación grafica que instancia una ventana (la creación del Objeto Ventana está condicionado a la instanciación proveniente desde el objeto Aplicación):



Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no se almacena dentro del objeto que lo crea (en este caso la Aplicación).



  • Casos Particulares:

    • Clase Abstracta:

Una clase abstracta se denota con el nombre de la clase y de los métodos con letra "itálica"(cursiva). Esto indica que la clase definida no puede ser instanciada pues posee métodos abstractos (aún no han sido definidos, es decir, sin implementación). La única forma de utilizarla es definiendo subclases, que implementan los métodos abstractos definidos.



    • Clase parametrizada:

Una clase parametrizada se denota con un subcuadro en el extremo superior de la clase, en donde se especifican los parámetros que deben ser pasados a la clase para que esta pueda ser instanciada. El ejemplo más típico es el caso de un Diccionario en donde una llave o palabra tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genéricos. La generalidad puede venir dada de un Témplate (como en el caso de C++) o bien de alguna estructura predefinida (especialización a través de clases).

En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependerán exclusivamente de la implementación que se le quiera dar.


  • Interfaces

Un interface es una especificación del conjunto de operaciones de una clase o paquete que son visibles desde otras clases o paquetes.

• Se representa mediante:

– Una caja con nombre, operaciones y el estereotipo

<>.

– O bien mediante un círculo pequeño, con el nombre de la interface.



Interfaces: dos notaciones



BIBLIOGRAFIA / WEB GRAFIA


  • Dosier de la materia de Análisis y Diseño de Sistemas II

Autor Lic. Elisa Arizaca

  • http:// www.Guía de Usuario de Enterprise Architect 7_0.com

  • http:// www.Diagrama de Clases.com

  • http:// www. UML_diagClases.com


TRES PREGUNTAS
1.- ¿Para que usamos un diagrama de clases?

R.- Lo usamos principalmente para modelar aspectos estáticos de un sistema.
2.- ¿Cuales son los componentes de un diagrama de clases?

R.- Un diagrama de clases está compuesto por dos elementos los cuáles son:

* CLASE.- Atributos, métodos y visibilidad.

* RELACIONES.- Herencia, composición, agregación asociación y uso.
3.- ¿En UML como está representada una clase?

R.- Está representada por un rectángulo que posee tres divisiones que son:

* La primera división contiene el nombre de la clase.

* La segunda clase contiene los atributos que caracterizan a la clase.

* La tercera división contiene los atributos u operaciones.

Compartir con tus amigos:


La base de datos está protegida por derechos de autor ©composi.info 2017
enviar mensaje

    Página principal