sábado, 10 de octubre de 2015

DIAGRAMA DE CLASES -








DIAGRAMA DE  CLASES
 RESUMEN  ELABORADO POR :  JOSSEY ALGUERO
Definir:

  La función  de este diagrama es la  visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso.

 Está  compuesta  por los siguientes elementos:

Clase: atributos, métodos y visibilidad.

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

Definición de los elementos:

Clases: es la unidad  básica  donde  se encapsula toda la información  de un objeto (un objeto es una instancia de una clase).En UML, una clase es  representada  por unos rectángulos que posee tres divisiones:

Superior: contiene el nombre  de la Clase u objeto

Intermedio: contienes  los  atributos  esta  puede ser  privada, publica, protegido.

Inferior: contiene métodos  u  operaciones  esta  indica  la forma  en que se relacionan pueden ser privada, publica, protegido.

Atributos y Métodos:
Atributos:
Los atributos o características de una Clase 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 accsesible 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 derive.
. Métodos:
Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características:
Public (+): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accsesible 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).
Dentro de  los  diagramas de  clases  las cardinalidades  representa el grado de  de relación  o dependencia  que  existe entre clases  o objeto. Esta  cardinalidades pueden  ser  las siguientes:
  • uno o muchos: 1..* (1..n)
  • 0 o muchos: 0..* (0..n)
  • número fijo: m (m denota el número).
Relaciones
1. Herencia (Especialización/Generalización): Indica que una subclase hereda los métodos y atributos especificados por una Súper Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Súper Clase (public y protected). y se  identifica.
Agregación: Para modelar objetos complejos, n bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres
Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido está 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).
Asociación: La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre sí. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
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
  EJERCICIO 1
Una biblioteca tiene copias de libros. Estos últimos se caracterizan por su nombre, tipo (novela, teatro, poesía, ensayo), editorial, año y autor.

  • Los autores se caracterizan por su nombre, nacionalidad y fecha de nacimiento.
  • Cada copia tiene un identificador, y puede estar en la biblioteca, prestada, con retraso o en reparación.
  • Los lectores pueden tener un máximo de 3 libros en préstamo.
  • Cada libro se presta un máximo de 30 días, por cada día de retraso, se impone una “multa” de dos días sin posibilidad de coger un nuevo libro.
  • Realiza un diagrama de clases y añade los métodos necesarios para realizar el préstamo y devolución de libros.


  • EJERCICIO 2

    Realiza el diseño de una aplicación para la gestión de pedidos. La aplicación deberá:
    • manejar clientes (se guarda su nombre, dirección, teléfono y e-mail), que pueden realizar pedidos de productos, de los cuales se anota la cantidad en stock. Un cliente puede tener una o varias cuentas para el pago de los pedidos. Cada cuenta está asociada a una tarjeta de crédito, y tiene una cierta cantidad disponible de dinero, que el cliente debe aumentar periódicamente para poder realizar nuevos pedidos.
    • Un cliente puede empezar a realizar un pedido sólo si tiene alguna cuenta con dinero disponible. Al realizar un pedido, un cliente puede agruparlos en pedidos simples o compuestos. Los pedidos simples están asociados a una sola cuenta de pago y (por restricciones en la distribución) contienen un máximo de 20 unidades del mismo o distinto tipo de producto. A su vez, un pedido compuesto contiene dos o más pedidos, que pueden ser simples o compuestos. Como es de esperar, el sistema debe garantizar que todos los pedidos simples que componen un pedido compuesto se paguen con cuentas del mismo cliente. Además, sólo es posible realizar peticiones de productos en stock.
    • Existe una clase (de la cual debe haber una única instancia en la aplicación) responsable del cobro, orden de distribución y confirmación de los pedidos. El cobro de los pedidos se hace una vez al día, y el proceso consiste en comprobar  todos los pedidos pendientes de cobro, y cobrarlos de la cuenta de pago correspondiente. Si una cuenta no tiene suficiente dinero, el pedido se rechaza (si es parte de un pedido compuesto, se rechaza el pedido entero). Una vez que el pedido está listo para servirse, se ordena su distribución, y una vez entregado, pasa a estar confirmado.

    9 comentarios:

    1. Este comentario ha sido eliminado por un administrador del blog.

      ResponderEliminar
    2. Este comentario ha sido eliminado por un administrador del blog.

      ResponderEliminar
    3. Este comentario ha sido eliminado por un administrador del blog.

      ResponderEliminar
    4. Quien podría hacer eso en el lenguaje de programación en java

      ResponderEliminar
    5. Tendrías de casualidad el código

      ResponderEliminar
    6. Buenas tardes JOSSEY
      Te escribo desde Colombia y tengo una pregunta sobre el ejercicio 2 y tiene que ver con el lenguaje utilizado, no tengo idea en que país escribieron el ejercicio y allí hay dos temas que me gustaría identificar uno es los "pedidos servidos" y otro que son "pedidos simples o compuestos" no logro entender que representan hoy dí, todo lo anterior ya que nos pasaron ese ejercicio para resolverlo.
      Muchas gracias
      un saludo especial desde Colombia.

      ResponderEliminar