Páginas

martes, 26 de enero de 2016

Curso de introducción a java challenge2

Buen día, en esta segunda entrada de los challenge que van saliendo del curso de lynda up and run java, ya con un poco más de contenido dado en el curso, ya indicaron la existencia de métodos, estructuras de control (bucles y condicionales), métodos y sobrecarga de métodos para jugar un poco más con lo que se puede hacer con lo dado y veamos que se puede hacer con el challenge al oopstyle

El reto en este caso no es más que llevar el costo de la estadía de los pacientes en un hospital, teniendo los siguientes datos

  1. datos de estadía
  2. hay que determinar si existen sobrecargos en la estadía
  3. cargos por medicamentos
  4. cargos por laboratorio
acá lo que se implemento del código


cualquier comentario, sugerencia critica es aceptada, saludos

lunes, 25 de enero de 2016

Challenge1 curso up and run java lynda

Buen día, en esta entrada estaré compartiendo un repositorio que he creado para los challege del curso de java que estoy realizando en lynda.com, el punto principal es mostrar el código de estos challenge como los va brindando el instructor de lynda, cabe destacar que es un curso introductorio a java, el primer challenge como no se ha llegado a la separación en objetos la gente de lynda lo hizo a la manera estructurada todo en el método main, pero por ir un poco más allá cree un paquete donde separe en objetos e hice el mismo programa al estilo POO.

El challenge trata acerca de calcular el área de pintura de una casa, quitando las ventanas y las puertas de la misma, la formula fue dada en el mismo curso, sin mas preambulo les dejo el repositorio con el código

Repositorio del Challenge1


Cabe destacar que no soy un experto en java, si consiguen detalles o piensan que hay una mejor manera de aplicar al código pueden dejarla en los comentarios serán bien recibidos, saludos y espero sea de su agrado

sábado, 23 de enero de 2016

Diseñando una aplicación desde un requerimiento (parte 1)

Buen día esta es la primera de varias entradas donde se diseñará y construirá una app partiendo desde un requerimiento, el mismo será el siguiente:
Se necesita una aplicación que permitirá a los gestores de una discográfica mantener su histórico de producciones, con la lista de los artistas que han participado en cada una. En particular, los usuarios deben poder:
1. Crear, modificar, borrar y listar (con todos los campos relacionados) álbumes
2. Crear, modificar, borrar y listar artistas
3. Añadir y quitar artistas de un álbum existente.
Notas adicionales:
• Un álbum tiene un título y una fecha de publicación.
• De los artistas se conoce el nombre y el instrumento o rol.
• Los artistas se presentarán en el orden en que han sido añadidos al álbum.
• La aplicación se ejecutará en un servidor accesible solo desde la oficina del promotor, y por lo tanto no necesita ningún tipo de control de acceso.
La idea principal es utilizar aplicar y compartir diferentes técnicas que utilizamos para el diseño y desarrollo de  una aplicación, sin más preámbulo comencemos con la primera fase (ya teniendo los requerimientos de la aplicación) la misma en nuestro caso será la identificación de entidades que participan dentro del sistema, viendo el requerimiento escrito buscaremos los sustantivos para hacer esta identificación, los cuales viendo el escrito muy simplemente se puede ver que estarán:

entities

Una vez identificadas las entidades pasamos a ver los atributos de las mismas de manera que podamos ir modelando la aplicación de manera correcta, los atributos los identificaremos en nuestros requerimientos como las características que describen a nuestras entidades, por lo que actualizando el diagrama de clases quedaría de la siguiente manera

entities-properties

Luego de tener las entidades con atributos pasaremos a verificar cuales serán las operaciones o métodos de las mismas, los métodos los reconoceremos por medio de verbos o acciones que según los requerimientos ejecutan las entidades, por lo que nuevamente actualizaremos el diagrama de clases el cual quedaría:

entities-operations

Ya tenemos nuestra primera instancia del diagrama de clases según lo descrito en el documento, una vez teniendo esto hacemos una revisión para ver que todo este correcto y de no ser así realizaremos un reactory para que el diseño quede acorde a lo que se pide en el requerimiento, entonces manos al diagrama.

Lo primero viendo los atributos de la clase Artista se puede observar que tenemos el atributo rol de tipo string (no lo especificaron pero es lo primero que se ocurre por la descripción de especifican del mismo, muy obviamente se nota que rol es una asociación a un artista por lo que tendremos que sacar una entidad de este tipo, agregaremos también el método para añadir y eliminar el rol a la asociación, también realizaremos la asociación de Album hacia Artista ya que en el requerimiento se nos indica que al Album se le añaden los artistas asociados al mismo, lo siguiente es que las acciones "Crear, modificar, borrar y listar" son lo que normalmente llamamos CRUD y serán realizadas por medio de un ORM que utilicemos (en siguiente entrada indicaremos cual en específico se utilizará) por lo que las sacaré a una entidad aparte que llamaré ORM, la misma tendrá las operaciones del CRUD, entonces nuestro diagrama de clase va quedando de la siguiente manera.


entities-refactory

Como podemos ver tenemos ya el diseño de lo que según el requerimiento de la aplicación necesitamos, si en algún momento se ve que se necesita algo más o hacer una modificación se realiza la refactorización del diagrama, aunque en general el mismo esta completo. Cualquier observación, sugerencia o modificación al diseño es bien recibida y/o debatida, saludos espero que la entrada sea de su interés y podamos debatir un poco sobre el proceso que se realizó