Fuente Digital

Acquire Wisdom and Live with Passion

Archive for the ‘UAGRM’ Category

04 Principio de Segregación de Interfaces – SOLID

leave a comment »

Saludos.

Después  de mucho tiempo de ausencia en el Blog, hoy continuamos con los principios SOLID. En esta oportunidad quiere recordarle la importancia del Principio de Segregación de Interfaces. Fué introducido por el propio Robert Martin, veamos su definición:

Clients should not be forced to depend upon interfaces that they do not use.

Clientes no deben ser forzados a depender de interfaces que no usen.

Para una mejor comprensión se muestra a continuación un diagrama en el cual se tiene el problema del 4to principio SOLID.

11-07-2013 23-41-10

Problema que rompe el 4to principio SOLID

 

Problema: Como podemos ver en el diagrama de clases. Se tiene una interfaz IProceso que define las firmas: Iniciar, Suspender, Reiniciar, Finalizar para todo proceso. Así mismo tenemos una clase ProcesoManual y ProcesoAutomatizado que implementa la interfaz IProceso. Aquí vemos claramente como se rompe el 4to principio SOLID, ya que no debería existir implementacion de los métodos Reiniciar y Finalizar de la clase ProcesoAutomatizado ya que todo proceso automatizado no se reinicia ni finaliza su actividad. Entonces rompemos la regla: Clientes no deben ser forzados a depender de interfaces que no usen.

Para esto se debería aplicar la siguiente solución.

12-07-2013 0-05-48

Solución Aplicando el 4to Principio SOLID

 

La clase ProcesoAutomatizado solo implementa la interfaz IProceso, ya que mencionamos anteriormente no debería conocer ni implementar las firmas de la interfaz IManual, siendo que esta interfaz solo va ser implementada por ProcesoManual.

Con esto vemos que las clases cliente no implementa interfaz o firmas de la interfaz que no sean necesarias para su implemetación.

Que sea de ayuda para ti.

Saludos.

 

Written by Luis Alberto

12/07/2013 at 12:21 AM

Calculator Engine – Sample TDD

with one comment

Buenas amigos.

Hacia ya bastante tiempo que no publicaba, hoy estamos de regreso.

Recordando…! Hace un par de meses atrás había comenzado la lectura del libro Diseño Ägil con TDD de Carlos Blé Jurado. He escrito mi primera aplicación, comenzando desde el análisis, diseño e implementación y las formas de iteraccion. Incialmente se comenzo por escuchar al cliente, identificar los requerimientos y requisitos, luego se formuló los criterios de aceptación ATDD (Test de Aceptación), que no son mas que frases cortas y precisas de lo que el cliente quiere.

Los test de aceptación son el punto de partida para todo desarrollo por TDD. A partir de ahí, se presentan los test de desarrollo que no son mas que los hijos* de los ATDD, y estos pueden convertirse en Test Unitarios o Test de Integración.

Muy divertido. Los invito a leer el libro y comenzar el desarrollo de los ejemplos! La implementación y los ejemplos estan en C# y Python.

Aquí puedes descargar la Calculadora desarrollada con TDD. 

A practicar se ha dicho!

Saludos!

 

Written by Luis Alberto

24/08/2012 at 12:04 AM

Publicado en Programación, TDD, UAGRM, Variado

PAPS – Plan de Administración de Proyecto de Software

with 2 comments

Saludos.

Para mis amigos de la Universidad les comparto el siguiente documento desarrollado durante los cursos de diplomado.

Caso de Estudio: FarmaCorp. El presente documento constituye un Plan de Administración de Proyecto de Software para la Gestión y Administración de las diferentes actividades realizadas por la cadena de Farmacias FarmaCorp. El documento constituye una Guía para elaborar un PAPS – Plan de Administración de Proyecto de Software.

PAPS – Plan de Administración de Proyecto de Software.

View this document on Scribd

 

Que les sea de utilidad.

 

Saludos.

Written by Luis Alberto

27/03/2012 at 11:23 PM

Publicado en UAGRM

Informe Sistema de Gestión de Compra y Venta

with 4 comments

Saludos mis amigos.

En esta oportunidad y aprovechando las buenas noticias sobre nuestra Facultad de Ciencias de la Computación les comparto un pequeño informe de proyecto presentado en la materia de Arquitectura de Software en la Universidad Autónoma Gabriel René Moreno – Gestión 1 – 2011.

Docente: Ing. Josué Obed Veizaga Gonzáles

Caso de Estudio: Desarrollar una Aplicación para la Compra y Venta de Productos Genéricos.

El trabajo consistía en desarrollar la misma Aplicación pero aplicando la Arquitectura 3 Capas (Datos, Negocio y Presentación) y MVC (Modelo Vista Controlador), además que se pueda hacer uso de 2 Sistemas Gestores de Bases de Datos.

En ese momento estaba terminando de desarrollar un  proyecto en .NET es así que me decidí en primer instancia hacer uso de esta plataforma con C# sobre Base de Datos en SQL Server 2005 y MySQL.

Al final de cada unos de los documentos se adjunta los enlaces de descarga para cada una de las Plataformas (.NET y JAVA).

Informe de un Sistema de Compra y Venta de Productos  Arquitectura 3 Capas. 

View this document on Scribd

 

Puedes descargar el proyecto pulsando en el siguiente enlace de descarga.

Descargar Proyecto Sistema de Compra y Venta Arquitectura 3 Capas en .NET

Informe de un Sistema de Compra y Venta de Productos Arquitectura 3 Capas con Hibernate. 

View this document on Scribd

 

Puedes descargar el proyecto pulsando en el siguiente enlace de descarga.

Descargar Proyecto Sistema de Compra y Venta Arquitectura 3 Capas con Hibernate en JAVA

Informe de un Sistema de Compra y Venta de Productos Arquitectura MVC con Hibernate. 

View this document on Scribd

 

Puedes descargar el proyecto pulsando en el siguiente enlace de descarga.

Descargar Proyecto Sistema de Compra y Venta Arquitectura MVC con Hibernate en JAVA

 

Espero les sea de mucha utilidad.

 

Hasta pronto.

 

 

Written by Luis Alberto

27/03/2012 at 11:16 PM

Publicado en Artículos, Microsoft, UAGRM

Portal Ingeniería Informática – Proyecto Tecnología Web

with 5 comments

Saludos amigos.

Con el fin de aportar con un granito de arena a los compañeros de Tecnología Web  les comparto el proyecto realizado en la materia durante el semestre 2/2010. El proyecto consistía en realizar el portal web para la carrera de Ingeniería en Informática, no es un proyecto estrella que digamos, pero me sirvió inicialmente para introducirme en la programación Web haciendo uso del lenguaje de programación PHP, y el cuál más adelante me sirvió como base para trabajar en mi proyecto de taller de grado: Social CRM.

A continuación les presento algunas capturas de pantalla:

Portada Principal

Portal Web Ingeniería Informática - UAGRM

Portada Principal Portal Web Ingeniería Informática - UAGRM

Página Módulo de Docentes

Módulo de Docente - Portal Web Ingeniería Informática - UAGRM

Módulo de Docente - Portal Web Ingeniería Informática - UAGRM

Ver más capturas de pantalla

Detalles del Proyecto

Nombre: Portal Web de la carrera Ingeniería en Informática

Lenguaje de Programación: PHP

Librerias: Smarty (Presentación), AdoDB (Datos)

Equipo de Desarrollo:

  1. Ariel Albarado Balderrama
  2. Miguel Angel Avalos
  3. Luis Alberto Baigorria Rodas.
Link de descarga:

Descargar Portal Web de Ingeniería en Informática

Password: UIBASOFT

Que les sea de mucha utilidad.

Hasta pronto!

Written by Luis Alberto

08/11/2011 at 11:02 PM

Publicado en Software Libre, UAGRM, UIBASOFT

Informe Final del Proyecto Social CRM

with one comment

Saludos.

A solicitud de algunas personas,  a continuación les comparto la documentación final del proyecto Social CRM.

View this document on Scribd

Que les sea de utilidad.

Hasta pronto!

Written by Luis Alberto

12/09/2011 at 12:37 AM

Publicado en Software Libre, UAGRM

BitBucket: Servicio de alojamiento de proyectos basado en Web

leave a comment »

Saludos.

Hace unas semanas en el curso de diplomado, el docente mostró la importancia de manejar y administrar los proyectos de Software mediante un Sistema de Control de Versiones. La facilidad para compartir el codigo y controlar las diferentes versiones con el equipo de desarrollo es de mucha importancia durante el proceso de desarrollo de Software. Si bien, para algunos era un termino nuevo, todos comenzaron a aprender y a investigar.

No hace mucho que vengo explorando Google Code, la integración que tiene con muchos Sistemas de Control de Versiones hace de éste un lugar ideal para compartir repositorios. Sin embargo, existen otras alternativas más específicas el cual seria interesante ir conociendo y explorando.

BitBucket, es un servicio de alojamiento basado en web, para los proyectos que utilizan el sistema de control de versiones Mercurial. El servicio está escrito en Python.

GitHub es una forja para alojar proyectos utilizando el sistema de control de versiones Git. Está escrito utilizando el framework Ruby on Rails por GitHub, Inc. (anteriormente conocida como Logical Awesome).

Recientemente estoy probando BitBucket. La gran comunidad de usuarios y su amplia lista de repositorios me ha llevado a registrarme y compartir algunos proyectos académicos desarrollados en la universidad:

Mi lista de repositorios

uisocialcrm:

El proyecto “uisocialcrm” trata de un Sistema de Información Web para gestionar envíos de campañas publicitarias para pequeñas y medianas empresas desde un enfoque de Social CRM (Customer Relationship Management), presentado en la Universidad en la materia de Taller de Grado I. El sistema está desarrollado en PHP con MySQL, con librerias Smarty, jquery, ajax, ADOdb, haciendo uso de API’s para publicar contenidos en Twitter por medio del protocolo abierto OAuth. El proyecto no está finalizado en su totalidad, dejo abierto a la comunidad para futuros cambios. Para ingresar al sistema: Usuario: uialberto Password: 12345

Documentación: http://goo.gl/PqjnL

uiecompras:

El proyecto “uiecompras” trata de un pequeño y sencillo ejemplo de una tienda virtual, fué presentado en la Universidad en la materia de Sistemas Distribuidos. El propósito del proyecto fué aprender RMI en Java y Remoting en .NET, de tal manera que el cliente pueda efectuar compras al crédito por medio de objetos remotos implementados en diferentes tecnologías, la instanciación de los objetos sería en .NET utilizando (ActiveX) y en Java (Applets). El sistema está desarrollado en PHP con MySQL, con librerias Smarty y ADOdb. El IDE utilizado es NetBeans! Se ha adjuntado el script de la base de datos. Todos los usuarios del sistema ingresan con el password: 12345.

uicalculadora:

El proyecto “uiCalculadora” es un Evaluador de Expresiones Aritméticas, permite evaluar expresiones aritméticas básicas en una sola línea, respetando prioridad de operadores. Este trabajo fué presentado en la Universidad para la materia de Estructuras de Datos II. Para la resolución del problema se utilizó un árbol de expresión. Desarrollado en el lenguaje Java bajo la plataforma J2SE – IDE Netbeans 6.8.

Que les sea de utilidad.

Hasta pronto.

 

Written by Luis Alberto

04/09/2011 at 11:55 PM

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 493 seguidores

%d personas les gusta esto: