12/22/2006

El Software Factory y la Investigacion


Muchas empresas hoy en día, quieren construir un software factory (fabrica de software) que les permita ser más competitivos y eficientes en la construcción de artefactos de software y cumplir con las tres variables: tiempo, costos y esfuerzo de forma óptima, y todo esto sin encarecer la calidad de sus productos.
Una vía para lograr estos objetivos gerenciales es contar con estándares, modelos de implementación, y productos generados a través de una profunda y constante línea de investigación. La investigación es muy necesaria, debido al dinamismo y el desarrollo constante de la ingeniería de software. Cada día surgen tecnologías, arquitecturas, estándares, especificaciones, componentes que mejoran y disminuyen en conjunto el número de líneas de código y el esfuerzo.

Las organizaciones deben adaptarse, y los arquitectos deben asumir su rol: mantenerse en constante vigilia tecnológica y permear esos conocimientos a todos los estratos tecnológicos.

La realidad, es que no todos los clientes están dispuestos a pagar la investigación. Ese es el gran problema, la mayoría de las empresas por lo general tienen métodos de desarrollo de software de muy bajo nivel comparado con las empresas que ven en la investigación un mecanismo para decrementar sus costos y proteger su inversion.
Hace poco, nuestro grupo desarrollo, creo un framework llamado Jerano, cuyo objetivo era implementar nuestro primer software factory. Hoy quiero hablar sobre nuestra experiencia en su realización y todos los inconvenientes que tuvimos que enfrentar.
En primer lugar tuvimos que seleccionar cuales eran las tecnologías Open Source que deberían ser parte de nuestro framework, quisimos seleccionar las tecnologías con mayor presencia en el area y una madurez comprobada.
Para armar un software factory, es importante en primer lugar establecer lineamientos de arquitectura de software, por ejemplo cuales son las capas que serán utilizadas y que tecnología debe implementar un servicio especifico. Decidimos utilizar spring como framework para la inyección de dependencias, el madurísimo Struts para el control de las capas de presentación, negocio y modelo (MVC). Unos de los problemas a los cuales nos enfrentamos en sobre el tema de seguridad. Acegi fue definitivamente el framework con mayores características y funcionalidades, además ya viene integrado con spring.
En la capa de presentación, utilizamos tecnologías Web 2.0 ajax, a traves de un framework llamado prototype.

Próximamente incluiré un marco de arquitectura mas detallado para contribuir con la comunidad.
Saludos Mijanautas!!!!.