Maqueta de la Escuela Politécnica de la Universidad de Alcalá, en los pasillos de la Escuela.

Detalle de la biblioteca de la Escuela Politécnica de la Universidad de Alcalá.

Edificio de la Unidad de Investigación en Telemedicina y e-Salud del Instituto de Salud Carlos III. Campus de Chamartin.

Laboratorio en la Escuela Politécnica Superior de Informática. Universidad de Alcalá.

Detalle del patio interior de la Escula Politécnica Superior. Universidad de Alcalá.

domingo, 12 de junio de 2011

Frameworks MVC de desarrollo. Propuesta de adopción de tecnologías de desarrollo web en la UITeS

Con el fin de establecer una arquitectura de desarrollo en la Unidad de Investigación en Telemedicina y e-Salud que permita una mayor eficiencia en el desarrollo de las aplicaciones en las que está inmersa la Unidad, el pasado 8 de junio presentamos un trabajo titulado "Frameworks MVC de desarrollo. Propuesta de adopción de tecnologías de desarrollo web en la UITeS" donde se analizaron diferentes patrones de diseño acordándose la adopción de alguno de ellos como principio de desarrollo en la Unidad. De los varios patrones que vimos, centramos nuestra atención en el patrón Modelo-Vista-Controlador identificándose las ventajas que nos aportaría desarrollar con este patrón como podrían ser las siguientes:
  • Desarrollo rápido
  • Reutilización de software
  • Diseño uniforme
Dentro de los frameworks que implementan o facilitan la implementación de este patrón o arquitectura MVC, analizamos algunos de ellos clasificándolos en dos grandes grupos atendiendo a los lenguajes de programación planteados en la Unidad. En UITeS existen dos grupos de investigación, cada uno de ellos con un lenguaje de programación atendiendo a diferentes criterios, por un lado el grupo de desarrollo en Java y por otro el grupo de desarrollo en PHP. Creemos que la existencia de dos grupos que codifiquen en diferentes lenguajes de programación y con la proyección que tienen tanto Java como PHP es positivo para la Unidad, teniendo además en cuenta que las aplicaciones existentes utilizan el protocolo SOAP para realizar peticiones a los distintos webServices que tanto un grupo como otro tienen desarrollados y publicados para toda la Unidad.

Tendiendo en cuenta esta premisa, se presentaron diferentes frameworks para cada uno de los lenguajes presentes, por un lado se analizó el framework Symfony para el lenguaje PHP5. Este framework automatiza la mayoría de los elementos comunes de los proyectos web como la internacionalización, las plantillas y layouts, la validación, gestión de caché, etc.

Por otro lado, respecto al lenguaje Java, se analizaron distintos frameworks con el fin de hacer la elección final lo más acertada posible. En este sentido se analizaron frameworks como Struts, JSF o el framework Play. Este último aportaba diferencias substanciales con respecto a los anteriores como ser completamente stateless(es decir, sin estado) o su fundamentación en HTTP lo cual le hace muy aconsejable para los desarrollos de aplicaciones RESTfull, entre otras.

Finalmente y teniendo en cuenta la necesidad presente y sobre todo en un futuro cercano de realizar aplicaciones para dispositivos móviles se analizaron diferentes frameworks para el desarrollo de aplicaciones, siempre en un entorno web, para diferentes dispositivos móviles como son los basados en Android o bien los iPhone. En este sentido se analizaron framework como JQuery Mobile, Sencha Touch o DHTMLX Touch, siendo este último frameworks en el que se fijaron las miradas debido en gran parte a su simplicidad, basado en librerías de HTML5 y Javascript y en su entorno gratuito de programación visual, acordándose estudiar su uso con posterioridad.

miércoles, 8 de junio de 2011

Presentación del libro "Innovación TIC para las personas mayores"

El pasado 31 de mayo, en la Escuela Nacional de Sanidad, Pabellón 7 del Instituto de Salud Carlos III, tuvo lugar la presentación del estudio "Innovación TIC para las personas mayores, situación, requerimientos y soluciones en la atención integral de la cronicidad y la dependencia" dentro del marco del convenido de colaboración existente entre el Instituto de Salud Carlos III y la Fundación Vodafone España.

Este estudio, coordinado por el Dr. Carlos Hernández de la Unidad de Investigación en Telemedicina y e-Salud del Instituto de Salud Carlos III, ha contado con la participación de diversas Instituciones que abordan estudios e investigaciones sobre telemedicina y e-salud como son la Unidad de Bioingeniería y Telemedicina del Hospital Universitario Puerta de Hierro, o el Servicio de Informática del Sector Sanitario de Barbastro, entre otros.

En el estudio se recogen datos actuales que permiten afirmar que el 75% de los mayores de 65 años sufren de 2 o más patologías crónicas; hacia 2030 la incidencia de enfermedades crónicas en mayores de 65 años será el doble de la actual; el 80% de las consultas de los médicos de atención primaria estarán asociadas con alguna condición crónica; y más del 60% de las camas hospitalarias serán ocupadas por pacientes crónicos. Y se sabe que la comorbilidad (coexistencia de varias patologías) provoca aumentos de costes en múltiples aspectos: consultas, hospitalizaciones, gasto farmacéutico, etc.





En la imagen, de izquierda a derecha, el Dr. Carlos Hernández (coordinador del estudio), el Dr. José Jerónimo Navas Palacios (Director del Instituto de Salud Carlos III) y D. Santiago Moreno (Director General de la Fundación Vodafone España).

lunes, 9 de mayo de 2011

SCRUM: Metodología Ágil a utilizar

Analizando unas cuantas metodologías ágiles creo haber encontrado con la que mejor se adapta a todos los proyectos en los que he participado y en donde las metodologías ágiles de desarrollo han brillado por su ausencia. Desde mi punto de vista y basándome en más de 15 años como profesional en el desarrollo de aplicaciones tanto en entornos empresariales como gubernamentales, la calidad de los desarrollos ha tenido que ver mucho con las metodologías utilizadas que, sinceramente, no han sido muchas.

Es por esto que durante el desarrollo de esas aplicaciones, aparecen factores negativos como la desmotivación del equipo, la falta de liderazgo, la falta de una visión global de la aplicación, etc. Todo esto influye notablemente en la calidad y en la duración de estos proyectos. No es de extrañar que ciertos proyectos atractivos desde la misma concepción de la idea se hayan tenido que abandonar por falta de liderazgo en el grupo, o por cambios producidos en el grupo de desarrollo o lo que considero más grave todavía, por desidia de la misma dirección del Departamento, empresa o Servicio.

En esta ocasión presento la metodología Scrum, una estrategia de gestión donde se aplican de manera regular un conjunto de prácticas para mejorar el trabajo colaborativo y obtener el mejor resultado posible en la gestión de un proyecto software. Esta metodología permite la trazabilidad de los requerimientos que se establezcan pemitiendo identificar y registrar cada uno de ellos de forma que se pueda seguir su ciclo de vida tanto desde su origen hacia adelante como desde su entrega hacia atrás.

Scrum identifica 3 tipos de roles:

1. Product Owner: Propietario del producto
2. ScrumMaster: Responsable del correcto funcionamiento de Scrum en el proyecto
3. ScrumTeam: Equipo de desarrollo

Scrum divide el desarrollo global en una serie de hitos o Sprint que son reuniones en las que están presentes todos los roles establecidos y donde se acuerdan los requerimientos generales para esa parte del proyecto. De esta forma se puede modularizar el proyecto teniendo ya desde el primer Sprint una versión operativa del producto para que sea visualizado por el cliente. Este dato es muy importante si nos fijamos en el ROI (Retorno de inversión) que puede existir en un determinado desarrollo, pudiendo anticiparse al "time to market" del producto.

Sobre el intervalo entre cada Sprint algunos autores apuestan por los 60 días, en mi opinión esta frecuencia debe estar acorde con los objetivos que se marquen y aquí es donde el ScrumMaster debe hacer bien su trabajo, no hacer estimaciones vagas basadas en ningún dato objetivo, una posible solución durante los Sprint de un proyecto pueda ser la utilización de mecanismos para el cálculo de estimaciones como pueden ser los gráficos PERT para después, basándose en los datos obtenidos por los gráficos BurnDown hacer estimaciones basadas en el esfuerzo y logros del ScrumTeam, de este modo conseguimos un menor riesgo en la estimación de realización de tareas.

La siguiente presentación no tiene más de 30 diapositivas y creo que es muy interesante visualizar para adentrarse en esta metodología o estrategia de gestión de proyectos software.

Bye.

Introducción a la Metodología SCRUM

martes, 29 de marzo de 2011

La Web 2.0

Esta semana he impartido unas clases sobre la famosa Web 2.0, un término tan utilizado como desconocido para muchos. Hoy a todo se le coloca el 2.0 detrás para denotar novedad, pero eso no es así. En otras páginas y foros he sufrido daños en la vista al ver definiciones de web 2.0 como la evolución de las páginas web estáticas a dinámicas, o como páginas que utilizan hojas de estilo (css) para su diseño.

Una definición de Web 2.0 la podemos encontrar en la Wikipedia: "La web 2.0 se refiere a una serie de aplicaciones y páginas de Internet que utilizan la inteligencia colectiva para proporcionar servicios interactivos en red dando al usuario el control de sus datos". Es decir, podemos afirmar que la Web 2.0 es un conjunto de medios y recursos tecnológicos que hacen posible la interacción de los usuarios, es más bien una actitud con la que trabajar en Internet más que un tipo de tecnología, como algunos afirman.

Los inicios de la Web 2.0 se remontan a 2004 cuando Tim O'Reilly marcó una clara diferencia entre la web 1.0 entendida como tal la que había existido hasta entonces, un sistema de hipertexto estático que permitía tan solo la consulta de información, y la web 2.0 que debería tener entre otras las siguietnes características:
  • Los usuarios deben generar información tanto directa como indirectamente
  • El usuario puede tener su propio sitio en la web
  • El usuario ayuda a otros usuarios a buscar información
  • Esta web favorece la inteligencia colectiva
La Web 2.0 es un conjunto cada vez mayor de herramientas al servicio del usuario. Sirva esta imagen como ejemplo (pincha sobre ella para acceder al pdf con enlaces).

Podríamos finalmente dar una nueva definición para la Web 2.0 como un sitio donde la visita constituye una experiencia enriquecedora, donde se ofrecen servicios al usuario, fáciles de utilizar que permiten compartir y difundir información y donde el protagonista es el propio usuario.

Para más información puedes acceder a los siguiente contenidos:

 Fundación Orange
   
Web 2.0:

Contexto Sociotécnico, de Antonio Fumero
Contexto económico-empresarial, de Genís Roca
Contextualización sociotécnica de la web 2.0, de Fernando Sáez Vacas



Prólogo. La inflación lingüística llamada Web 2.0. Por Alejandro Piscitelli
Capítulo 1. Nociones básicas alrededor de la Web 2.0. Por Hugo Pardo Kuklinski
Capítulo 2. Intercreatividad y Web 2.0. La construcción de un cerebro digital planetario. Por Cristóbal Cobo Romaní
Capítulo 3. Mapa de aplicaciones. Una taxonomía comentada. Por Cristóbal Cobo Romaní
Capítulo 4. Un esbozo de ideas críticas sobre la Web 2.0. Por Hugo Pardo Kuklinski
Capítulo 5. Aprendizaje colaborativo. Nuevos modelos para usos educativos. Por Cristóbal Cobo Romaní
Capítulo 6.Mobile devices y aplicaciones Web 2.0. La Sociedad en red móvil. Por Hugo Pardo Kuklinski
Capítulo 7. El Cierre. Reflexiones hacia la Web semántica. Por Cristóbal Cobo Romaní y Hugo Pardo Kuklinski
Bibliografía.
Índice

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites