Sei sulla pagina 1di 24

Propuesta framework de herramientas para el desarrollo de aplicaciones en un modelo colaborativo

Ricardo Borillo Domenech borillo@uji.es

ndice

Introduccin y objetivos Arquitectura bsica del sistema Entorno de desarrollo Conclusiones

Introduccin y objetivos

Conclusiones derivadas de la experiencia de la Universitat Jaume I:

Modelo inicial centrado en dar servicio al usuario La evolucin de estos ltimos 20 aos supone un cambio Autocrtica y evolucin hacia un modelo ms profesional La calidad y la reutilizacin son los nuevos objetivos Motor del cambio para el rediseo de las TI

Introduccin y objetivos
Para conseguir todo esto es necesario:

La definicin de una nueva arquitectura Un nuevo framework tecnolgico que guie el desarrollo Cambio de paradigma. Adopcin de metodologas giles Evaluacin y adopcin de herramientas abiertas que cubran las nuevas necesidades que aparecern Implantacin de un entorno de desarrollo, pre-produccin y produccin automatizados Definicin de mtricas de calidad del software, buenas prcticas de desarrollo y un entorno que garantize la integracin y mejora contnua
4

ndice

Introduccin y objetivos Arquitectura bsica del sistema Entorno de desarrollo Conclusiones

Arquitectura bsica del sistema

Arquitectura bsica del sistema


Aspectos a tener en cuenta a la hora de definir la arquitectura del sistema:

Interoperabilidad. Tanto a nivel de formatos como de comunicacin entre aplicaciones. Cumplimiento de estndares. Garanta de unicidad y no replicacin de datos. Garantizar una excelente experiencia de usuario. Aplicaciones para mltiples dispositivos y despliegues. Evitar ser dependientes de una nica tecnologa Tender a soluciones sencilla y escalables
7

Arquitectura bsica del sistema


Simplicidad

Arquitectura bsica del sistema


Arquitecturas ligeras orientadas a servicios:

Capa ligera de comunicacin REST Soporte para mltiples formatos: JSON, ATOM, OData, RDF Facilita la integracin desde cualquier origen

Arquitectura bsica del sistema


Este tipo de arquitectura permite:

Volcar el conocimiento del negocio en la capa del modelo Exponer este modelo en forma de API orientada a servicios Cada integrador puede desarrollar un UI alternativo Creacin de interfaces altamente usables: Cliente rico

10

Arquitectura bsica del sistema


Buenas prcticas en la parte del servidor:

Gestin integral de la configuracin Despliegue automatizado Patrones de diseo Aplicaciones modulares, independientes y distribuibles Testing de aplicaciones a todos los niveles

Frameworks como Spring pueden ayudar a reducir la complejidad de este tipo de desarrollos:

11

Arquitectura bsica del sistema


Buenas prcticas en la parte del cliente:

Buscar una mejor experiencia de usuario. Homogeneizar interfaces mediante unas pautas bsicas de diseo y usabilidad Generar aplicaciones ms dinmicas y flexibles

12

Arquitectura bsica del sistema

Gran cantidad de componentes grficos de gran potencia Soporte independiente del navegador Integracin con REST Diponibilidad de herramientas de diseo visual Soporte para internacionalizacin
13

ndice

Introduccin y objetivos Arquitectura bsica del sistema Entorno de desarrollo Conclusiones

14

Entorno de desarrollo
Elementos del ecosistema de desarrollo gil:

Gestin de proyectos e incidencias Herramientas de documentacin y gestin del conocimiento Sistema de control de versiones Herramientas de construccin Integracin contnua Repositorio de artefactos Herramientas de anlisis esttico del cdigo IDE para el desarrollo y generadores de cdigo
15

Entorno de desarrollo
Gestin de proyectos e incidencias

Bugs, tareas y mejoras. Definicin de los productos. Versionado de los distintos productos. Planificacin de iteraciones y soporte a las metodologas empleadas. Propuesta: Atlassian JIRA

16

Entorno de desarrollo
Sistema de control de versiones

Repositorio unificado. Versionado de los proyectos. Herramientas de acceso, gestin, revisin, comparacin y trazabilidad de cambios. Propuesta: Subversion / Git

17

Entorno de desarrollo
Herramientas de construccin

Evitar proceso manual para evitar errores. Facilitar el despliegue por cualquiera. Mantener la independencia del IDE. Gestionar de forma automtica las dependencias. Integracin de herramientas auxiliares (despliegue, documentacin, anlisis esttico del cdigo, tests unitarios, etc). Propuesta: Maven
18

Entorno de desarrollo
Integracin contnua

Requisitos:

Construccin, revisin e integracin contnua de los mdulos desarrollados. Independiente del lenguaje de programacin. Existencia de plugins que permitan adaptarse a cualquier requisito de despliegue. Punto nico de generacin de artefactos, documentacin, informes de test, despliegues de pre-produccin, etc.

Herramienta propuesta:

Jenkins: http://jenkins-ci.org/
19

Entorno de desarrollo
Resumen de herramientas seleccionadas:

JIRA: Gestin de proyectos e incidencias. Confluence: Documentacin y gestin del conocimiento. Subversion: Control de versiones. Maven: Herramienta de construccin. Jenkins: Herramienta de integracin continua. jUnit: Pruebas unitarias. Nexus: Repositorio de artefactos. Sonar: Anlisis esttico del cdigo. ExtJS Designer: Creacin de interfaces de forma visual. Eclipse (SpringSource Tool Suite): Herramienta integradora.

20

ndice

Introduccin y objetivos Metodologa Arquitectura bsica del sistema Entorno de desarrollo Conclusiones

21

Conclusiones

Entorno altamente integrado y cohesionado Ecosistema propuesto basado en herramientas de alta adopcin en la industria Todos los productos son gratuitos para proyectos de cdigo abierto Modelo probado: Colaboracin UJI Ministerio de Presidencia para el cliente @firma

22

Conclusiones

Aunque el ecosistema de herramientas puede ser el inicio, quedan muchos interrogantes:


Dnde y cmo coordinar el trabajo en la forja? Bajo qu licencias publicar los trabajos? Interoperabiliad Qu formatos y estndares utilizar? Es posible hacer uso de PaaS? Cloud Foundry, Amazon Elastic Beanstalk, DotCloud, Heroku, Podra dar servicios en este entorno RedIris?
23

Gracias

Preguntas?

24

Potrebbero piacerti anche