viernes, 28 de agosto de 2015

LENGUAJES DE PATRONES DE ARQUITECTURA DE SOFTWARE

Como siempre en cada entrada de este blog, lo que trato es de compartir temas relacionados con la clase y en esta ocasión encontré un articulo de la universidad de Pereira algo interesante, el cual hablan un poco de la arquitectura de software visto como una herramienta de ayuda y su vez resaltando el arte que esta contiene, profundizando hasta el tema de lenguajes de patrones de arquitectura de software. Lo que intentare en esta entrada sera de resaltar las características mas importantes que considero encontrados en este articulo.



Como primera medida me parece importante dar una referencia de la definición de arquitectura de software, que de manera general, se define como un nuevo paradigma o nueva forma de ver un sistema de información desde un punto de vista holístico, donde cada componente afecta los requerimientos fundamentales, ya sean funcionales o no funcionales. Esta disciplina aborda estos requerimientos rigurosamente y garantiza un buen diseño de la aplicación final, lo que redunda en mejor calidad, un mayor retorno de inversión de los proyectos y garantiza una mejor mantenibilidad de los sistemas de información construidos. Otra definición es la de George Fairbanks quien define la Arquitectura de Software como: La ciencia que trata el diseño de un sistema de información y del impacto de sus cualidades como: desempeño, seguridad, modificabilidad entre otras.

De forma histórica y evolutiva, el articulo muestra el cambio que se tuvo de la ingeniería de software a la arquitectura de software.

La Ingeniería de Software tuvo sus inicios en la década de los sesenta y a partir de allí a evolucionado de forma constante a través de las últimas seis décadas. En los años cincuenta se inició con el intentó imitar la ingeniería de hardware y se pensó en ese entonces que la utilización del método científico brindaría un soporte investigativo suficiente para obtener un proceso técnico coherente. Finalizando el siglo XX la ingeniería evolucionó como un área de estudio más estructurada y con fundamentos teóricos fuertes. Desde entonces la voluntad de los ingenieros fue de mejorar la calidad del software construido y de dar herramientas que facilitaran el trabajo a diseñadores e implementadores de sistemas de información en general.



Dominios específicos de aplicación


Los lenguajes de patrones han ocupado un lugar muy importante en los diseños de Arquitectura de Software. Se aplican tanto en proyectos de investigación y como en proyectos comerciales de desarrollo de software.

Una ejemplo de cómo los lenguajes de patrones pueden ser usados en dominios específicos se puede observar en el proyecto realizado por IBM donde se define un lenguaje de patrones para aplicaciones eBusiness. Este lenguaje divide los patrones de arquitectura en cuatro categorías: Patrones de negocios, patrones de integración, patrones de aplicación y patrones de ejecución, los cuales parten la arquitectura completa en tres capas principales como se sigue: Capa de negocios, capa de integración y Middleware o Capa de infraestructura. A continuación se define cada uno de las categorías que conformaron el lenguaje propuesto.

Patrones de negocio: mapea las interacciones entre los actores del negocio y las funcionalidades del sistema en particular. Patrones de Integración: Estos se definen como ortogonales a la capa de negocios, creando soluciones particulares que al integrarse soportan las funcionalidades de un sistema en particular.
Patrones de Aplicación: Estos patrones refinan los patrones de negocio e integración subdividiendo los subsistemas en componentes que proveen interfaces claras de implementación de funcionalidades del sistema a diseñar.
Patrones de Ejecución: Refinan los componentes del patrón de aplicación descomponiéndolos en componentes más pequeños sobre la infraestructura o middleware. Ya en este lenguaje los patrones intervienen directamente en la capa física de la aplicación con infraestructura y tecnología.

Esta subdivisión de patrones permite una variedad de soluciones de diseño reusables por diversas aplicaciones en este dominio en particular.

Los Lenguajes de Patrones citados anteriormente han sido utilizados por la industria, y estos se originaron de proyectos de investigación. Otras universidades e investigadores han desarrollado diversos Lenguajes los cuales hoy en día se han convertido en estándares de facto. A continuación se mencionan algunos estos.



http://200.21.217.140/index.php/revistaciencia/article/view/8595

domingo, 23 de agosto de 2015

PLANEANDO UN SISTEMA DE INFORMACION


A través de los años, se han evaluado numerosos intentos de modernizar sistemas de información; se han encontrado grandes problemas como altos costos, largos retrasos en el desarrollo y sistemas que no satisfacen las necesidades del usuario.


En muchos casos, estos defectos en el desarrollo ocurrieron por una inadecuada planeación detallada para identificar necesidades futuras y actuales de los usuarios y una prematura decisión a un específico diseño que no consideró alternativas de solución o que tan bien satisficieran las necesidades de los usuarios. 

Tiendo este preámbulo, podemos ver que gran parte del éxito de un sistema de información, comprende su planeación y es allí que buscando alguna información sobre esto, encontré un artículo en donde plantean una ideas del cómo se puede llegar a realizar esta planeación para que el sistema de información vaya a acorde con los principios de la organización y pueda cumplir con éxito los objetivos por los cuales se está creando. 



La planificación de Sistemas de Información (PSI) tiene como objetivo la obtención de un marco de referencia para el desarrollo de sistemas de información que responda a los objetivos estratégicos de la organización. Este marco de referencia consta de:
  • Una descripción de la situación actual, que constituirá el punto de partida del Plan de Sistemas de Información. Dicha descripción incluirá un análisis técnico de puntos fuertes y riesgos, así como el análisis de servicio a los objetivos de la organización.
  • Un conjunto de modelos que constituya la arquitectura de información. 
  • Una propuesta de proyectos a desarrollar en los próximos años, así como la prioridad de realización de cada proyecto. 
  • Una propuesta de calendario para la ejecución de dichos proyectos. 
  • La evaluación de los recursos necesarios para los proyectos a desarrollar en el próximo año, con el objetivo de tenerlos en cuenta en los presupuestos. Para el resto de proyectos, bastará con una estimación de alto nivel. 
  • Un plan de seguimiento y cumplimiento de todo lo propuesto mediante unos mecanismos de evaluación adecuados. 
La perspectiva del plan debe ser estratégica y operativa, no tecnológica. Es fundamental que la alta dirección de la organización tome parte activa en la decisión del Plan de Sistemas de Información con el fin de posibilitar su éxito. La dirección debe convencer a sus colaboradores más directos de la necesidad de realización del plan; de su apoyo de forma constructiva, mentalizándose de que la ejecución del mismo requerirá la utilización de unos recursos de los cuales son responsables.

La presentación del Plan de Sistemas de Información y la constitución del equipo supone el arranque del proyecto y es fundamental que las más altas instancias de la organización estén implicadas en ambos, dando el apoyo necesario y aportando todo tipo de medios. 

Explicar el plan a las personas de la organización y a las unidades organizativas afectadas sobre las que recaerá el Plan, el apoyo de los altos directivos y la cualificación de los recursos de las distintas unidades implicadas, serán factores críticos de éxito del Plan de Sistemas de Información.

El nivel de detalle con el que se hará el estudio de la situación actual dependerá de la existencia de documentación actual, de si hay personas que conozcan dicha documentación y de la predisposición a una sustitución total o parcial por sistemas de información nuevos. En cualquier caso, como paso previo para detectar aspectos importantes que puedan afectar a la organización, es necesario investigar sus puntos fuertes, áreas de mejora, riesgos y amenazas posibles y hacer un diagnóstico de los mismos.

Para la elaboración del Plan de Sistemas de Información se estudian las necesidades de información de los procesos de la organización afectados por el Plan, con el fin de definir los requisitos generales y obtener modelos conceptuales de información. Por otra parte se evalúan las opciones tecnológicas y se propone un entorno. Tras analizar las prioridades relacionadas con las distintas variables que afectan a los sistemas de información, se elabora un calendario de proyectos con una planificación lo más detallada posible de los más inmediatos. Además, se propone una sistemática para mantener actualizado el Plan de Sistemas de Información para incluir en él todos los cambios necesarios, garantizando el cumplimiento adecuado del mismo.


http://www.bocc.ubi.pt/pag/urrutia-amaia-planificacion.pdf
http://manuel.cillero.es/doc/metrica-3/procesos-principales/psi