universidad para la cooperacion internacional … · erp: enterprise resource planning ......

153
UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL (UCI) METODOLOGÍA PARA LA CREACIÓN DE SERVICIOS SOA EN LA DIVISIÓN DE SERVICIOS TECNOLÓGICOS DEL BANCO CENTRAL DE COSTA RICA LUIS CARLOS GARCÍA MORA PROYECTO FINAL DE GRADUACION PRESENTADO COMO REQUISITO PARCIAL PARA OPTAR POR EL TITULO DE MASTER EN ADMINISTRACIÓN DE PROYECTOS San José, Costa Rica Julio, 2008

Upload: others

Post on 09-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL(UCI)

METODOLOGÍA PARA LA CREACIÓN DE SERVICIOS SOA EN LA DIVISIÓN DE SERVICIOS TECNOLÓGICOS DEL BANCO CENTRAL DE COSTA RICA

LUIS CARLOS GARCÍA MORA

PROYECTO FINAL DE GRADUACION PRESENTADO COMO REQUISITOPARCIAL PARA OPTAR POR EL TITULO DE MASTER EN

ADMINISTRACIÓN DE PROYECTOS

San José, Costa Rica

Julio, 2008

Page 2: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL(UCI)

Este Proyecto Final de Graduación fue aprobado por la Universidad comoRequisito parcial para optar al grado de Máster en Administración de Proyectos

__________________________Ing. Alejandro Rubinstein B., M.B.A.

PROFESOR TUTOR

_________________________Lic. Yorlenny Hidalgo Romero, M.A.P.

LECTOR No.1

__________________________Víctor Noguera Durán

LECTOR No.2

________________________Ing. Luis Carlos García M., M.C.I.

SUSTENTANTE

ii

Page 3: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

BANCO CENTRAL DE COSTA RICA(BCCR)

Este Proyecto Final de Graduación fue recibido por el Área de Implementación del Departamento de Ingeniería de Software Institucional de la División de

Servicios Tecnológicos del BCCR.

__________________________M.C.I.. Hazel Umaña Morales.

ELECUTIVA DE ÁREABCCR

________________________Ing. Luis Carlos García M., M.C.I.

SUSTENTANTE

iii

Page 4: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

DEDICATORIA

A DIOS, POR TANTAS BENDICIONES RECIBIDAS,

A MIS PADRES, POR SER SIEMPRE CONSEJEROS Y GUÍA,

A MI HERMANA POR TANTO APOYO RECIBIDO,

A MI ESPOSA, POR SER LA PERSONA MÁS ESPECIAL DEL

MUNDO,

A LOS COMPAÑEROS DE TRABAJO QUE HICIERON VALIOSOS

APORTES PARA CREAR ESTA METODOLOGÍA

iv

Page 5: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

INDICE DE CONTENIDO

1. INTRODUCCIÓN.....................................................................................................................................1

1.1. Antecedentes...........................................................................................................................................1

1.2. Organigrama...........................................................................................................................................2

1.3. Problemática...........................................................................................................................................2

1.4. Justificación 3

1.5. Objetivos 4

2. MARCO TEÓRICO..................................................................................................................................6

2.1. Marco Institucional.................................................................................................................................6

2.2. Teoría de TI y SOA................................................................................................................................8

2.3. Relación con la administración de proyectos.......................................................................................17

2.3.1. Modelos aplicados.............................................................................................................................17

2.3.2. Proyectos 19

2.3.3. PMI 20

2.3.4. Alcance 23

2.3.5. Tiempo 24

2.3.6. Calidad 25

2.3.7. Integración.........................................................................................................................................27

2.3.8. Programas 28

2.3.9. Estructuras organizativas para proyectos...........................................................................................29

2.4. Herramientas relacionadas....................................................................................................................32

3. MARCO METODOLÓGICO.................................................................................................................34

3.1. Investigaciones comunes......................................................................................................................34

3.2. Revisión de software.............................................................................................................................36

3.3. EDT y cronograma...............................................................................................................................36

3.4. Estándares 37

3.5. Control y seguimiento...........................................................................................................................38

3.6. Documentación.....................................................................................................................................39

3.7. Buenas prácticas para SOA..................................................................................................................40

3.8. Validación 41

4. PLANEACIÓN DEL PROYECTO.........................................................................................................44

4.1. Tareas para crear un servicio SOA.......................................................................................................44

4.2. Secuenciación de tareas........................................................................................................................47

4.3. Organización por paquetes de trabajo...................................................................................................48

4.4. Estructura de desglose de trabajo (EDT)..............................................................................................49

4.5. Cronograma 59

v

Page 6: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

5. ESTÁNDAR DE INTERFAZ E IMPLEMENTACIÓN.........................................................................61

5.1. Componentes de software.....................................................................................................................61

5.2. Estándar de implementación.................................................................................................................62

5.3. Estándar de interfaz y organización de componentes...........................................................................74

5.4. Estándar de documentación interna......................................................................................................77

6. MECANISMOS DE CONTROL PARA EL PROYECTO.....................................................................81

6.1. Flujos de trabajo y roles........................................................................................................................81

6.2. Hitos de control.....................................................................................................................................85

6.3. Mecanismos de control.........................................................................................................................87

7. GUÍA DE BUENAS PRÁCTICAS.........................................................................................................90

8. VALIDACIÓN DE LA METODOLOGÍA.............................................................................................95

8.1. Revisión primaria..................................................................................................................................95

8.2. Aspectos a validar y resultados esperados............................................................................................98

8.3. Mecanismos de validación y retroalimentación.................................................................................102

9. CONCLUSIONES.................................................................................................................................105

10. RECOMENDACIONES......................................................................................................................108

11. BIBLIOGRAFÍA.................................................................................................................................110

12. ANEXOS.............................................................................................................................................112

12.1. Charter del proyecto.........................................................................................................................113

12.2. Declaración de alcance ....................................................................................................................116

12.3. EDT del Servicio SOA.....................................................................................................................118

12.4. Cronograma del Servicio SOA.........................................................................................................119

12.5. Plantilla de Caso de Uso...................................................................................................................120

12.6. Plantilla para Diseño.........................................................................................................................121

12.7. Plantilla de revisión de calidad para Diseño.....................................................................................122

12.8. Plantilla para Base de Datos............................................................................................................123

12.9. Plantilla de revisión para Base de Datos...........................................................................................124

12.10. Plantilla para Componentes de Software.......................................................................................125

12.11. Plantilla de revisión para componentes de Software......................................................................126

12.12. Plantilla para documentación externa e integración......................................................................127

12.13. Plantilla para documento de validación..........................................................................................128

12.14. Plantilla para seguimiento de reuniones.........................................................................................131

12.15. Plantilla para solicitudes de cambio a productos ...........................................................................132

12.16. Plan de Implementación.................................................................................................................133

12.17. Análisis Costo-Beneficio................................................................................................................137

12.18. Áreas de conocimiento relacionadas..............................................................................................140

vi

Page 7: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

INDICE DE ILUSTRACIONES

Figura 1: Organigrama del BCCR.................................................................................................................2

Figura 2: Interacción entre servicios (Pijanowsky, 2007)...........................................................................10

Figura 3: Niveles de SOA (Arsanaji 2004)..................................................................................................12

Figura 4: Objetivo de madurez de organizaciones según OPM3 (Eiipe, 2007)..........................................18

Figura 5: Modelo de arquitectura de capas (Blázquez 2005)......................................................................44

Figura 6: Ejemplo de clases y capas............................................................................................................74

Figura 7: Flujo de trabajo para crear un servicio SOA................................................................................83

vii

Page 8: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

INDICE DE CUADROSCuadro 1: Tareas por rol (Arsanaji 2004)....................................................................................................14

Cuadro 2: Grupo de procesos......................................................................................................................21

Cuadro 3. Áreas de conocimiento................................................................................................................21

Cuadro 4: Diferencias entre proyecto y programa (Thiry, 2002)................................................................29

Cuadro 5: Tipos y ambientes de bases de datos .........................................................................................63

Cuadro 6: Nomenclatura para los DLL.......................................................................................................76

Cuadro 7: Lista de hitos del proyecto..........................................................................................................86

Cuadro 8: Lista de funcionarios que validaron metodología.......................................................................96

viii

Page 9: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

INDICE DE ABREVIACIONES

BCCR: Banco Central de Costa Rica.

BD: Base de datos

BE: Business Entity

(Entidad de negocio)

BS: Business Service

(Servicio de negocios)

CRM.: Custom Relationship Management

(Administradores de relaciones con los clientes).

DBA: DataBase Administrador

Administrador de Base de Datos

DLL: Dynamic Linking Library

Librería de Enlace Dinámico.

DS: Data Service

(Servicios de datos)

DST.: División de Servicios Tecnológicos

EDT: Estructura de desglose de trabajo

ER: Modelo Entidad-Relación

ERP: Enterprise Resource Planning

(Sistemas de planificación de recursos empresariales)

IS: Interface Service

(Interfaz de servicios)

LINQ: .Net Language Integrated Query

Lenguaje de Consultas integradas para .Net

OPM3 : Organizational Project Management Maturity Model

(Modelo de gestión de madurez organizacional de proyectos)

PMI: Proyect Management Institute

(Instituto de administración de proyectos)

PMMM: Program Management Maturity Model

ix

Page 10: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

(Modelo de programa de gestión de evolución)

RUP: Rational Unified Process

(Proceso Unificado de Rational)

SOA: Service Oriented Architechture

(Arquitectura orientada a servicios).

TI.: Tecnología de Información

XML: Extended Markup Language

(Lenguaje extendido de etiquetas)

x

Page 11: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

RESUMEN EJECUTIVO

El BCCR (Banco Central de Costa Rica) es una sólida institución pública, fundada hace alrededor de 60 años, al empezar Costa Rica a comercializar sus productos con otras naciones y recibir divisas. En aquel tiempo, era necesario regular el naciente Sistema Bancario Nacional, pues el gobierno no tenía un ente que fiscalizara el manejo de los dineros que entraban al país.

Con los años, el BCCR ha ido evolucionando y ampliando su horizonte de acción. Actualmente se encarga de regular las fluctuaciones del tipo de cambio del colón, la política monetaria para controlar la inflación y los precios, la administración de las reservas monetarias internacionales y la administración del sistema nacional de pagos.

La tecnología ha llegado a ser un punto de apoyo base para cualquier negocio. El BCCR no es la excepción. Gran parte de sus tareas y obligaciones se fundamentan en una sólida plataforma tecnológica que incluye desde aplicaciones de software hasta redes de fibra óptica. En el caso de esta metodología, se trata el tema del desarrollo de aplicaciones de software.

Esta organización tiene muchos tipos distintos de aplicaciones de software, algunos modernos pero otros viejos y obsoletos. Hay mucho trabajo para migrar esos sistemas viejos a nueva tecnología, a la vez que se deben complementar los sistemas nuevos con mayor funcionalidad. Debido a esto, es necesario contar con una metodología que se pueda utilizar para crear todo este nuevo software (en general) que se necesita.

El paradigma de programación SOA (“Service Oriented Architechture” ó Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras de software, a través de herramientas y estándares que permiten crear servicios funcionales, flexibles y de mantenimiento sencillo, para construir plataformas de software robustas. Debido a esto, el BCCR ha adquirido las herramientas para desarrollar estos servicios y encaminar sus aplicaciones hacia esta tendencia. Parte del conocimiento que hace falta madurar está en los resultados de esta investigación.

El objetivo principal de este proyecto es dotar al BCCR de una metodología efectiva para construir servicios SOA, y así poder montar su plataforma aplicativa de sistemas sobre estos servicios, mejorando la calidad del trabajo. Esto se logrará aplicando algunas herramientas de administración de proyectos. Entre los principales objetivos específicos se tienen la creación de estándares para el desarrollo de componentes e interfaces entre ellos, la descripción de estándares para documentación interna y externa, la definición de los mecanismos de control y la validación de la metodología por parte de los analistas y desarrolladores de software, todo esto amparado bajo la aplicación de algunas áreas de conocimiento de la teoría de administración de proyectos.

xi

Page 12: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

Para desarrollar esta metodología, se da un gran impulso a la investigación web y bibliográfica. Se utilizan motores de búsqueda y manuales técnicos para buscar propuestas de estándares para desarrollos de servicios SOA, mejores prácticas, formas de documentación y herramientas tecnológicas que ayuden en alguno de los pasos de la construcción de un servicio. También se hicieron entrevistas a los expertos encargados del mantenimiento de los sistemas actuales, para conocer las carencias actuales en cuando a análisis, diseño y desarrollo de componentes.

Para el control y seguimiento de los procesos de la metodología, se crearon una serie de formularios de validación que se utilizan en ciertos hitos del proyecto, para verificar el avance y el apego a los estándares. En cuanto a validación, se utiliza un par de proyectos piloto y se documenta toda la retroalimentación obtenida para incorporar cambios y mejoras a la metodología.

Al final se logró crear una metodología que cubre todo el proceso de desarrollo de software: desde el análisis de los requerimientos de los usuarios hasta las pruebas de integración del servicio SOA con respecto a la plataforma tecnológica. Dicha metodología se apoya mucho en el trabajo de equipo de miembros de distintas áreas especializadas, la calidad y el control del proyecto.

Si bien es cierto no se trata de una metodología exhaustiva, pues se busca dar un razonable grado de flexibilidad para aprovechar la creatividad de los profesionales en sistemas de programación, sí se establecen los lineamientos claros y de mayor nivel que constituyen aportes a la consistencia de los componentes.

También, se establece la importancia de algunos procesos de investigación, seguimiento y mejora continua sobre la metodología aplicada, para obtener información de primera mano que pueda ser útil para mejorar el trabajo, que al final es lo más importante.

Completan la metodología los estándares de programación, documentación y las plantillas para el control de los hitos.

Como recomendaciones finales, complementarias a la guía de desarrollo y los procesos asociados, están el mantenimiento de una investigación constante sobre nuevas técnicas y herramientas tecnológicas que ayuden en el desarrollo de software, la creación de un estándar de interfaz de usuario final para ponerle “cara” a los servicios y las consideraciones respectivas de seguridad de información y auditoría.

xii

Page 13: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

1

1. INTRODUCCIÓN

1.1.Antecedentes

El Banco Central de Costa Rica es una institución pública fundada en 1950,

con la idea de que fiscalizara y regulara el accionar de los bancos emisores de

la época (Banco Central de Costa Rica [BCCR], 2007). Con el tiempo, sus

funciones han evolucionado hacia el establecimiento y control de políticas

monetarias, el manejo de la fluctuación del tipo de cambio y la administración

de las reservas monetarias internacionales del país.

Como toda organización moderna, en la actualidad la mayor parte del apoyo

que se ofrece a los distintos procesos del negocio se refleja en herramientas

tecnológicas tales como redes de fibra óptica, telefonía IP y por supuesto,

sistemas de información que ayudan en el trabajo diario de las distintas

dependencias.

Es en este último campo en el cual se presentan distintas tendencias sobre

sistemas y aplicaciones, paradigmas y herramientas, que ofrecen una gran

gama de posibilidades para su aprovechamiento. Grandes empresas que

comercializan tecnología han marcado la pauta en los últimos años.

Una de las principales empresas de tecnología a nivel mundial es Microsoft.

También es la de mayor arraigo en el BCCR y Costa Rica en general.

Microsoft ha creado una serie de herramientas y metodologías de creación de

sistemas y se ha encargado de fomentar su uso. Uno de estos esfuerzos lo ha

constituido la arquitectura basada en servicios SOA.

Page 14: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

2

1.2.Organigrama

El organigrama del BCCR se muestra en la Figura 1:

Figura 1: Organigrama del BCCR.

1.3.Problemática

En instituciones como el BCCR, con gran cantidad de empleados, sistemas,

datos y procesos de negocio, la creación y el mantenimiento de sistemas de

información es un proceso delicado e importante, pues estos componentes

llegan a ser las primeras herramientas de apoyo al trabajo. Sin embargo, no

todos los sistemas cumplen con los requerimientos mínimos que se esperaría

Page 15: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

3

tuvieran: algunos están desarrollados en herramientas obsoletas, otros están

operando sobre equipos obsoletos o incluso algunos han sido excluidos de los

procesos de mantenimiento que deberían tener regularmente, principalmente

por falta de personal o de tiempo.

1.4.Justificación

Por esto, se ha buscado alguna de las tendencias tecnológicas actuales para

desarrollar los nuevos sistemas que se van a construir, o bien migrar los de

tecnología obsoleta, de manera que se facilite el desarrollo, mantenimiento, uso

de herramientas y aplicación de estándares que garanticen calidad.

La tecnología SOA de Microsoft ofrece esto, además de otras ventajas en lo

que se refiere a escalabilidad de aplicaciones y reutilización de funcionalidad,

según (Roch, 2006). Es todo un nuevo paradigma con el cual se puede crear

una gran plataforma que soporte la operación del BCCR, e incluso que permita

una evolución futura hacia nuevas herramientas que sea más transparente.

Este proyecto pretende crear una metodología para desarrollar servicios SOA y

de esta forma lograr que los sistemas de información del BCCR tengan

documentación, estilos de programación, interfaz con otros componentes y en

general un conjunto de buenas prácticas, todo bajo un marco de trabajo

conocido y aplicadas por todos los analistas y desarrolladores de sistemas.

La idea de utilizar una metodología es porque los profesionales en informática

están acostumbrados a trabajar con este esquema, ya que es una herramienta

flexible donde puede ser flexible y rígida donde debe ser rígida. Una

metodología permite una sencilla difusión y asimilación por parte de las

personas que la van a poner en práctica. Además, admite cambios que

introducen mejoras en todos los procesos, al momento que sean requeridos.

Page 16: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

4

En algunos casos, sobre todo para los sistemas obsoletos que todavía se

tienen en funcionamiento, la migración hacia una arquitectura de servicios no

es un proceso trivial. Sin embargo, una metodología de este tipo puede ayudar

a cuantificar y calificar el trabajo por hacer y que al final de cuentas, el proceso

en general se simplifique por tener lineamientos a los cuales ajustarse.

En términos generales, todas estas metodologías que corresponden a nuevas

tendencias de desarrollo de sistemas vienen soportadas por herramientas que

hacen que el trabajo quede mejor. No siempre se puede decir que es más fácil

(o difícil), sino lo importante es que queda mejor. Esa es la llave para abrir las

puertas de las organizaciones a estas tecnologías.

El Anexo 12.17 presenta un análisis Costo-Beneficio de la aplicación de esta

metodología en el BCCR.

1.5.Objetivos

El objetivo general es el siguiente:

“Dotar a la División de Servicios Tecnológicos del Banco Central de Costa Rica

de una metodología que le permita crear de manera eficiente y estandarizada

los servicios SOA que serán la base para construir una plataforma de software

robusto y flexible.”

Los objetivos específicos son:

• Identificar las tareas básicas que se requieren en un proceso de creación de

un servicio SOA y la forma en la que cada tarea debe ser efectuada, para

delimitar el alcance de cada producto.

• Estandarizar las interfaces e implementaciones de los servicios para todas

las aplicaciones nuevas que se solicitan por parte del negocio, para

Page 17: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

5

mantener uniformidad en los componentes que faciliten el entender el uso y

el trabajo de mantenimiento.

• Definir los mecanismos de control que van a permitir concluir exitosamente

cada uno de los servicios que se construyan bajo esta metodología.

• Definir la documentación interna y externa que va a cumplir cada uno de los

servicios para contribuir con la calidad del producto y facilitar la consulta y

reutilización de funcionalidad.

• Definir un conjunto de buenas prácticas que aplique para el proceso de

diseño y construcción de los servicios, a lo largo de todo el ciclo, para

facilitar el mantenimiento posterior.

• Validar parcialmente la metodología, haciendo como mínimo una revisión

del documento con los compañeros de las áreas involucradas en proyectos

de este tipo, para verificar la aplicabilidad de la guía.

Page 18: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

6

2. MARCO TEÓRICO

2.1.Marco Institucional

El BCCR fue creado a principios de la década de los años 50, en un momento

en el cual el país veía como el comercio con otras naciones empezaba a

florecer y las divisas generadas empezaban a engrosar las arcas de las

instituciones financieras rudimentarias de la época.

El gobierno vio la necesidad de fundar alguna institución independiente y con

una nueva misión: fundar las bases para la creación de un nuevo sistema

bancario costarricense (BCCR, 2007). Entonces, se promulgó la Ley 1130 el 28

de Enero de 1950 (Asamblea Legislativa, 1950) con el cual nació el Banco

Central de Costa Rica.

Con el paso de los años, esta institución ha ido diversificando sus funciones, de

manera que siempre ha sido el eje del Sistema Financiero Nacional. Ha habido

cambios significativos, pero siempre se mantienen los principios básicos con

los cuales la institución fue fundada: regular las distintas entidades financieras,

mantener estable el tipo de cambio, administrar las reservas financieras de la

nación y ser la base del sistema financiero nacional.

La misión del BCCR es la siguiente (BCCR, 2007):

“Contribuir al desarrollo de la economía costarricense procurando la estabilidad de precios.”

Este principio es sencillo, pero si se estudia a fondo, engloba de manera

implícita una gran cantidad de funciones en distintos campos de la economía,

Page 19: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

7

finanzas, administración, estadística y, como apoyo a todos estos campos de

negocio, la tecnología.

La visión de la organización se define de la siguiente manera (BCCR, 2007):

“Ser un banco central reconocido por la sociedad costarricense y la comunidad

internacional por su eficiencia, transparencia, credibilidad y capacidad para

mantener una inflación baja y estable.”

Gracias a que la sociedad costarricense siempre ha reconocido al BCCR como

una institución pública de renombre, seria y al servicio del país, se ha admitido

el nombre de la institución como uno más de una serie de organizaciones en la

región que son líderes en sus campos de negocio, toda vez que este buen

nombre a nivel internacional da prestigio al país. En comparación con otras

instituciones públicas del país, el BCCR ha tenido y mantiene uno de los

mejores conceptos en el público desde su creación.

Como objetivos de la institución, aparte de mantener la estabilidad interna y

externa de la moneda nacional, se detallan también los siguientes (BCCR,

2007):

• Promover el ordenado desarrollo de la economía costarricense.

• Velar por el buen uso de las reservas monetarias internacionales.

• Promover la eficiencia del sistema de pagos internos y externos.

• Promover un sistema de intermediación financiera estable, eficiente y

competitivo.

La estructura orgánica del BCCR está conformada por los siguientes niveles

jerárquicos (BCCR, 2007):

Page 20: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

8

• Nivel superior: Es el nivel ejecutivo. Tiene un alto grado de autoridad para

tomar las acciones que ayuden a alcanzar los objetivos institucionales.

• Nivel divisional: Es el responsable de la ejecución de las funciones para

alcanzar los objetivos institucionales. Cada división tiene asignado un

director. Actualmente, existen 8 divisiones.

• Nivel departamental: Ejecuta labores de tipo sustantivo y también algunas

administrativas. Cada departamento tiene asignado un director. El número

de departamentos por división es variable.

• Nivel Seccional: Se limita a funciones de apoyo técnico. Cada sección está

a cargo de un ejecutivo de área.

El BCCR es, sin duda, una organización consolidada y de buena proyección

hacia el futuro No existe en la actualidad ninguna institución de esta

envergadura que no tenga que apoyarse en herramientas tecnológicas e

informáticas, para cumplir con su labor.

La inversión tecnológica siempre ha sido una constante en el BCCR Gracias a

eso se ha logrado consolidar una plataforma fuerte, tanto a nivel de

infraestructura como de software, lo que redunda en buenos resultados para el

negocio. Claro que hay puntos por mejorar, algunos más prioritarios que otros,

pero es algo inherente a la evolución que tienen día a día los avances

tecnológicos.

2.2.Teoría de TI y SOA

La Tecnología de Información (TI) viene a ser una tendencia que empezó a

gestarse un par de décadas atrás, a partir de las matemáticas aplicadas y la

ingeniería. Los avances tecnológicos y la madurez de las organizaciones para

buscar mejorar sus negocios, hicieron que el valor de la información llegara a

ser el principal activo en muchos de los casos.

Page 21: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

9

Actualmente, TI está extendido a diversos campos, con resultados significativos

para las organizaciones. Se puede citar campos tan diversos como

matemáticas, estadística, física, química, ingenierías, arquitectura, y otras.

Simples puntos de venta como supermercados o comercios de bienes, tienen

como base medular sistemas de información que les facturan, controlan

planillas, pagan a proveedores, mantienen inventarios, etc.

Evidentemente, no todos los negocios son iguales. De hecho, son tan

heterogéneos entre si que un sistema de información hecho para un negocio no

funciona en otro, sin antes hacer una actualización (que podría ser grande y

costosa). Por este motivo, durante los últimos años se han creado

metodologías de construcción y puesta en marcha de sistemas de información

y herramientas que apoyan estos procesos, que tienen la particularidad de que

son flexibles y permiten una gran versatilidad. El que atañe en esta

investigación es SOA.

SOA viene a ser un estilo arquitectónico para que los distintos negocios puedan

contar con una plataforma tecnológica que se ajuste 100% a su negocio, en

cuanto a eficiencia, eficacia y oportunidades. La diferencia de SOA con

respecto a otras metodologías es que se gestan componentes de software a

partir de coyunturas del negocio reales, identificadas y especificadas por

expertos. Todo lo que se construya, mantenga o cambie, va dirigido por los

principales interesados: los expertos de negocio.

Anteriormente, los profesionales de informática acostumbraban obviar el criterio

del negocio a la hora de diseñar los sistemas de software. Por lo general,

asumían algunas cosas que no se sabían. Similarmente, los conocedores del

negocio (economistas, ingenieros, administradores, supervisores, etc) nunca

tenían tiempo ni disposición para formar parte de los equipos de diseño y

desarrollo de sus propias aplicaciones. El resultado de este divorcio eran

sistemas poco útiles, incompletos, inexactos y difíciles de mantener.

Page 22: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

10

Con alternativas como SOA, la alineación entre las unidades de negocio y TI se

vuelve más definida. Además, la infraestructura es más oportuna y con

mayores posibilidades de crecimiento. En general, todos los procesos se

simplifican y el resultado final es más efectivo para el negocio (el principal

objetivo de TI).

Un estilo de arquitectura de software es al final de cuentas un conjunto de

componentes y sus relaciones entre sí; también las restricciones y la forma en

la que cada una pueda ser combinada para lograr componentes más complejos

(Shaw & Garland, 1996).

La figura 2 ilustra la relación que se da entre servicios:

Figura 2: Interacción entre servicios (Pijanowsky, 2007)

En el caso particular de SOA, la definición más comúnmente aceptada es la

siguiente: “un estilo de arquitectura que promueve el concepto de servicios

alineados al negocio como una unidad fundamental de diseño, construcción y

composición de soluciones de negocio; múltiples patrones de diseño,

implementación y puesta en marcha completan el estilo”. (Lublinsky, 2007).

Page 23: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

11

Cuando no se tiene una participación clara del negocio en los procesos de

diseño y elaboración de sistemas, tal y como sucedía hasta hace algunos años,

se corre el riesgo de crear “islas de información” (Arsanjani, 2004). Una isla de

información constituye un sistema (con sus datos) que tiene un propósito

específico y que es independiente de todo el resto de la organización.

Por ejemplo, una organización podría tener varias islas de información:

facturación, pagos, planillas, ventas, compras. Cada uno es independiente de

los demás, lo cual hace que el mantenimiento sea sumamente complicado

porque todos tienen componentes repetidos y su concepción podría ser distinta

dependiendo del sistema.

Algunas veces, para hacer un cambio de mantenimiento que afecta un sistema,

hay que ir a otros componentes de otros sistemas a efectuar el mismo ajuste,

lo cual es problemático y siempre acarrea consecuencias negativas.

Suponiendo que los sistemas del ejemplo anterior manejan el concepto de “tipo

de cambio”, si se desea cambiar la fórmula para el cálculo, es necesario ir a

cada uno de los sistemas que lo utiliza, buscar la fórmula y actualizarla.

SOA ha sido pensado para combatir este tipo de problemas. Con este estilo de

diseño y construcción de sistemas, lo que se haría es construir un único

componente de software llamado “tipo de cambio”, con toda la funcionalidad

necesaria para operar en todos los servicios que sea requerido, y se haría que

cada uno de los sistemas utilizara este componente. Entonces, con el caso del

ejemplo anterior, no es necesario ir a cada sistema para actualizar una fórmula

de cálculo, sino que se hace solamente una vez en el componente respectivo, y

así todos los sistemas reciben la actualización de manera transparente. Este es

el principio fundamental de SOA.

El concepto SOA, en su perfil más puro, se puede definir gráficamente por

niveles, como se muestra en la figura 3:

Page 24: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

12

Figura 3: Niveles de SOA (Arsanaji 2004)

Cada nivel tiene sus propias características (Roch, 2006):

1. Nivel de sistemas base: Contiene las aplicaciones ya en funcionamiento,

los sistemas legados, paquetes CRP ó ERP (“Enterprise Resource

Planning” ó Sistema de Planificación de Recursos Empresariales), los

cuales se incorporan en la metodología a través de técnicas de integración

orientadas a servicios.

2. Nivel de componentes: Contiene los componentes responsables por la

funcionalidad y el mantenimiento, que cuentan prácticamente como activos

administrados de la organización. Típicamente se utilizan tecnologías

basadas en contenedores, servidores de aplicaciones y administradores de

cargas de trabajo y disponibilidad.

3. Nivel de servicios: Contiene los servicios que fundamentan la lógica de

negocio. Se rige por interfaces entre componentes, cada una con una

descripción bien clara para facilitar el uso entre componentes. Los servicios

Page 25: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

13

pueden trabajar aisladamente, pero su mayor valor se obtiene cuando se

combinan.

4. Nivel de coreografía de procesos de negocio u orquestación: Contiene

una serie de reglas para que los servicios del nivel 3 tengan una operación

consistente, oportuna y eficaz. Formalmente, se crean workflows para

facilitar la administración de los servicios, así se logra que actúen como si

fueran una sola aplicación. Los procesos de negocio se especifican a este

nivel.

5. Nivel de presentación o acceso: Contiene los puntos de acceso para el

resto de los niveles. Es importante por los estándares que se empiezan a

gestar a este nivel.

El modelado orientado a servicios tiene técnicas, herramientas y

procedimientos para trabajar en cada uno de los niveles, de esta forma se ligan

todos los componentes para poder crear una única solución para el negocio.

Por ser una metodología voluminosa y que abarca varias áreas del desarrollo,

SOA tiene varios roles. La mayoría son técnicos. Sin embargo, a nivel más

general, existe una clasificación de roles que suele ser la más utilizada cuando

se explica la metodología. Estos roles se llaman Proveedor y Consumidor.

Como lo muestra el cuadro 1, la mayoría de las tareas de SOA (al menos las

de mayor valor para el negocio) se pueden agrupar en alguno de estos dos

roles.

Page 26: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

14

Cuadro 1: Tareas por rol (Arsanaji 2004)

Generalmente, las tareas del Proveedor suelen ser un subconjunto de las

tareas del Consumidor. Básicamente el Consumidor especifica los servicios,

mientras que el Proveedor identifica y especifica los componentes necesarios

para soportar la funcionalidad que los servicios requieren. Es una agrupación

lógica, pero funciona bien para entender el alcance de lo que se desea nombrar

(Trowbridge, 2003).

Las principales características que diferencian a SOA de otros paradigmas son

propiedades de la arquitectura de sistemas distribuidos. Las siguientes son

algunas de las principales (Lublinsky, 2007):

• Vista lógica: Un servicio SOA es una abstracción lógica de un sistema,

aplicación o base de datos que se tiene actualmente, pero desde el punto

de vista de la funcionalidad que tiene para el negocio.

• Orientación a mensajes: El servicio es definido formalmente por los

mensajes que se intercambian Proveedor y Consumidor, no por las

propiedades de cada uno. La estructura interna de los servicios es

Page 27: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

15

completamente abstracta (invisible desde afuera del mismo servicio). Las

capas de interfaz y comunicación están separadas.

• Descripción de la orientación: Un servicio está descrito por una definición

de patrones (“metadata”) compilados (traducidos a código binario de

computadora).

• Granularidad: El servicio tiende a utilizar un pequeño número de

operaciones con mensajes relativamente largos y complejos.

• Orientación a redes de datos: El servicio tiende a ser diseñado y utilizado

sobre redes de datos, aunque no es un requerimiento indispensable.

• Plataforma neutral: Los mensajes son enviados en formatos estándar

independientes de la plataforma. XML (“Extended Markup Language” ó

Lenguaje extendido de etiquetas) es el utilizado por excelencia.

Es importante aclarar que en la literatura sobre servicios en el desarrollo de

componentes de software, pueden existir algunas definiciones sobre “servicios”

que pueden ser utilizadas indistintamente, aunque en el fondo se refieren a

cosas distintas. Por ejemplo (Trowbridge, 2003):

• Servicios de negocio: componentes que efectúan alguna tarea de valor

para el negocio.

• Servicios de integración: componentes que permiten el trabajo conjunto

de componentes de negocio.

• Servicios de infraestructura: componentes que ayudan para el soporte a

la infraestructura.

Para esta metodología, se toman en cuenta los dos primeros tipos de

“servicios”, que son los más relacionados con el desarrollo y puesta en marcha

de sistemas.

Dado que los procesos de creación de servicios se pueden definir como

secuencias de pasos específicos y claros, se ha desarrollado por parte de

Page 28: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

16

algunas empresas una serie de lineamientos que asisten en algunas de las

etapas de construcción de tareas. Estos procedimientos se llaman patrones.

Los patrones son formas de describir las mejores prácticas, mejores diseños y

mejores experiencias pasadas de manera que se puedan reutilizar en procesos

futuros de creación de servicios. Al final, no son más que guías de consulta

rápida que asisten en contextos conocidos, para evitar “redescubrir el agua

tibia”.

Existen diversos patrones que pueden ayudar para crear servicios SOA

Algunos de los principales son, por ejemplo:

• Patrones de acceso a servicios e infraestructura.

• Patrones de composición de servicios.

• Patrones de definición de servicios e implementación.

• Patrones de administración de versiones.

• Patrones de seguridad.

• Patrones de acceso a datos.

Estos patrones no son verdades absolutas. Podrían utilizarse puros o con

algunas variaciones específicas en cada paso o incluso no utilizarse del todo.

Si la organización encuentra algún valor en la utilización de estas guías, puede

ser de valor, principalmente cuando se va a empezar a utilizar esta tecnología.

Generalmente, suelen usarse parcialmente en los procesos más estándar, por

ejemplo el acceso a datos.

Una vez explicado el concepto de servicios SOA, se procede a definir la teoría

de administración de proyectos que permite crear la metodología que el BCCR

necesita.

Page 29: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

17

2.3.Relación con la administración de proyectos

2.3.1.Modelos aplicados

Existen actualmente muchas metodologías ó modelos de administración de

proyectos. Algunas tratan de establecer un estándar como para que se puedan

utilizar de manera similar en distintas organizaciones de diversos países. Otras

han sido hechas a la medida de la organización patrocinadora, con tantas

particularidades como sea requerido. En todos los casos, hay una gran mayoría

de casos de éxito.

Entre los modelos más conocidos a nivel mundial, están la guía del PMI

(“Proyect Management Institute” ó Instituto de Administración de Proyectos),

PMMM (“Program Management Maturity Model” ó Modelo de programa de

gestión de evolución), OPM3 (“Organizational Project Management Maturity

Model” ó Modelo de Madurez para la Administración de Proyectos

Organizacionales) y PM Solutions. Todas tienen similitudes en cuanto a sus

planteamientos base y búsqueda un alto nivel de madurez en la organización.

Por madurez, se entiende el nivel que tienen las organizaciones para

conceptualizar, definir y aplicar procesos que apoyan directamente su negocio

y que aportan beneficios cualitativos y cuantitativos. Estos procesos se aplican

en los distintos departamentos o unidades de negocio por parte de las

personas involucradas en procesos productivos, con la idea de aportar

estándares y buenas prácticas. Las organizaciones de mayor nivel de madurez

incluso tienen procesos por medio de los cuales transforman información

retroalimentada en acciones para el mejoramiento continuo, de una manera

formal.

Al final de cuentas, todos estos modelos buscan que la organización sea más

estructurada, más eficiente y productiva. La figura 4 muestra la ruta ideal que

Page 30: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

18

sigue una organización en su camino a obtener madurez (Eiipe, 2007). Se

empieza por procesos en proyectos, luego se pasa a programas y portafolios

en lo que se refiere al dominio de acción. En cuanto a madurez, se empieza por

crear estándares y la idea es terminar con procedimientos de mejoramiento

continuo.

Figura 4: Objetivo de madurez de organizaciones según OPM3 (Eiipe, 2007)

Siendo pragmáticos, todas las personas han aplicado la teoría de proyectos

durante muchas actividades que se realizan día a día. Claro que si se tiene un

criterio amplio, se puede considerar que actividades como montar una obra

teatral, planear una boda o construir un centro comercial, corresponden a

proyectos (Gido & Clements, 2003).

Con un breve análisis de estas situaciones, se nota que todas estas tareas

tienen un objetivo principal claramente definido (por ejemplo, tener el centro

comercial). Similarmente, algunos otros objetivos secundarios que están

Page 31: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

19

directamente relacionados con el principal (por ejemplo, conseguir los

vestuarios para los actores de la obra de teatro).

Igualmente, todas las actividades deben tener un proceso de planeación

anterior al inicio mismo de las actividades; por ejemplo, para el centro

comercial deben hacerse planes o para la boda deben definirse quienes serán

los invitados. Esta planeación determina principalmente cuales serán las

actividades y su secuencia necesaria para conseguir el objetivo, además de las

personas encargadas de cada actividad; por ejemplo, las hermanas de la novia

organizan el Té de despedida de soltera.

Similarmente, todas las actividades tienen un presupuesto y todas también

tienen un periodo de tiempo para conseguirse; por ejemplo, la recepción de la

boda debe seguir a la ceremonia religiosa.

Finalmente, estas tres actividades de ejemplo requieren un control durante su

periodo de ejecución, para garantizar que las actividades van conforme a lo

planeado; por ejemplo, un atraso en la estructura de techos del centro

comercial puede atrasar los acabados internos del edificio.

Desde este punto de vista, se nota que todas las actividades, que a primera

vista aparentan ser diversas, en realidad mantienen una serie de similitudes,

las cuales hacen que todas se puedan catalogar como proyectos.

2.3.2.Proyectos

Un proyecto se define como un conjunto de esfuerzos temporales, dirigidos a

generar un producto o servicio único (Chamoun, 2002). Los tres ejemplos

anteriores cumplen con esta definición. También lo cumplen el preparar una

cena para los amigos, atender a un herido de un accidente ó estudiar un

Page 32: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

20

postgrado. En resumen, casi cualquier situación que se enfrenta todos los días

tiene algunas características de proyectos.

En proyectos, la planeación y la comunicación son básicas para poder lograr el

objetivo planteado. Ambos tópicos ayudan a reducir conflictos, a ser más

oportunos para actuar en el desarrollo y para hacer diagnósticos más acertados

durante la ejecución de las actividades.

Es fundamental definir claramente los objetivos y que estos sean concisos y

conocidos por todos los involucrados. Hay un presupuesto que limita y un

grupo de recursos, humanos y materiales, que se encarga de las actividades y

son responsables por ellas. También hay un periodo o fecha de finalización

para entregar resultados, por eso es tan importante la planeación de las

actividades, para no exceder el tiempo, presupuesto o recursos disponibles. La

filosofía convencional indica que estas actividades deben conducir a los

objetivos de manera gradual (Project Management Institute [PMI], 2004).

Igual de importante es el control que se ejerce sobre las actividades de un

proyecto. La idea es detectar desviaciones en el proceder normal de las tareas

del proyecto tan pronto como sea posible, para tomar las medidas correctivas

lo antes posible de manera que el impacto negativo que se pudiera tener, sea

menor.

2.3.3.PMI

El PMI, organismo reconocido a nivel internacional que por excelencia ha

impulsado la gestión por proyectos de las organizaciones, define en su última

actualización cinco grupos de procesos y nueve áreas de conocimiento para

agrupar todas las actividades que requiere un proyecto.

Page 33: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

21

Los grupos de procesos son los que se muestran en el cuadro 2 (PMI, 2004):

Cuadro 2: Grupo de procesos

Grupo de procesos DescripciónIniciación Define y autoriza el proyecto o una fase del

mismo.Planificación Define los objetivos, planifica el curso de

acción requerido para lograrlos y limita el alcance del proyecto

Ejecución Integra los recursos (personales y materiales) para llevar a cabo el plan de gestión del proyecto.

Seguimiento y Control Mide y supervisa el avance, para tomar medidas correctivas oportunas.

Cierre Formaliza la aceptación del producto ó servicio y termina de manera ordenada el proyecto o la fase.

Las áreas de conocimiento son las del cuadro 3 (PMI, 2004):

Cuadro 3. Áreas de conocimiento

Área de conocimiento DescripciónGestión de la Integración Incluye procesos y actividades necesarias

para identificar, definir, combinar, unificar y coordina los distintos procesos y actividades.

Gestión de Alcance Incluye procesos para asegurarse que el proyecto incluya todo el trabajo requerido y nada más allá de eso.

Gestión de Tiempo Incluye los procesos para lograr la conclusión del proyecto a tiempo

Gestión de Costos Incluye los procesos de planificación, estimación, preparación de presupuesto y control de costos para lograr la conclusión del proyecto dentro del presupuesto

Gestión de Calidad Incluye todas las actividades de la organización ejecutante del proyecto que determinan las políticas, objetivos y responsabilidades relativos a la calidad, de modo que se satisfagan las necesidades con las que se emprendió.

Gestión de Recursos Humanos Incluye los procesos que organizan y dirigen el equipo de proyecto (personas con roles y responsabilidades).

Gestión de Comunicaciones Incluye los procesos necesarios para

Page 34: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

22

asegurar la generación, recogida, distribución, almacenamiento, recuperación y destino final de la información del proyecto, en tiempo y forma

Gestión de Riesgos Incluye los procesos relacionados con la planificación de la gestión de riesgos, su identificación, análisis, respuesta, control y seguimiento.

Gestión de Adquisiciones Incluye los procesos para comprar o adquirir los productos o servicios necesarios (fuera del equipo de proyecto) para realizar el trabajo.

Cada área de conocimiento se compone de procesos. Estos se agrupan dentro

de los grupos y así es como se determinan las fases que componen al

proyecto.

Todos los proyectos requieren de los grupos de procesos. Sin embargo, no

todos requieren utilizar todas las áreas de conocimiento. Algunos pueden

omitir específicas áreas por su naturaleza. En el caso de la metodología para

crear los servicios SOA, se van a utilizar procesos principalmente de las

siguientes áreas de conocimiento:

• Alcance

• Tiempo

• Calidad

• Integración

Hay que considerar que también se consideran implícitamente otras áreas. El

Anexo 12.18 contiene un mapeo detallado entre las áreas de conocimiento y la

metodología. Acá se explica la relación que existe con las áreas más explicitas,

consideradas como parte del proceso.

Page 35: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

23

2.3.4.Alcance

Los objetivos del área de conocimiento de alcance es asegurar que se incluya

todo el trabajo requerido y solo el trabajo requerido para terminar el proyecto

exitosamente (Chamoun, 2002).

Hay cinco procesos para la gestión de alcance de un proyecto (PMI, 2004).

Estos son:

• Planificación del alcance: Se crea un plan que indica cómo se define,

verifica y controla el alcance de un proyecto y la EDT (Estructura de

Desglose de Trabajo)

• Definición del alcance: Se desarrolla un enunciado de alcance detallado.

• Crear EDT: Se subdivide los principales entregables del proyecto en

componentes más pequeños y sencillos de manejar.

• Verificación de alcance: Se formaliza la aceptación de los productos

entregados.

• Control de alcance: Se controla los cambios al proyecto.

Hay principalmente dos productos de esta área de conocimiento que son los

más importantes para la metodología de creación de servicios SOA: el

enunciado de alcance y la EDT En el primer caso, el enunciado de la

metodología tiene el alcance del servicio, algo importante para definir el tamaño

del trabajo. En el caso de la EDT, la metodología tiene una definición de una

EDT con todo el listado de los componentes de software que componen el

servicio, agrupando lógicamente las tareas necesarias para obtenerlos.

Tradicionalmente, la EDT se ha considerado como la estructura medular del

proyecto, pues a partir de él se establece la estimación de costos, el

presupuesto, el cronograma, los roles y funciones, los riesgos, etc.

Page 36: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

24

Una declaración de alcance que haya sido publicada no significa que no se

pueda cambiar. Como se sabe, en proyectos los cambios están a la orden del

día. Sin embargo, cuando se cambia el alcance de los entregables, hay que ser

claro en tener la autorización de todas las partes involucradas, pues es un

hecho que se afectará el tiempo y el costo que se tenían programados.

2.3.5.Tiempo

En cuanto al área de conocimiento de tiempo, es otra de las que se consideran

básicas y siempre está presente en un proyecto. De hecho, es tan básica que

siempre resulta ser el primer tema que recibe el impacto de cualquier evento

que suceda en un proyecto.

Su concepción a nivel de procesos es básica, pero no por eso menos

importante (PMI 2004):

• Definición de las actividades: Se identifican las actividades específicas

del cronograma que conducen a los productos entregables.

• Establecimiento de secuencia de actividades: Se identifican y

documentan las dependencias (precedencias) entre las actividades

identificadas.

• Estimación de recursos: Se estima el tipo y las cantidades de recursos

para cada actividad.

• Estimación de la duración de las actividades: Se estima la cantidad de

periodos laborales que se necesitan para cumplir con el 100% de cada

actividad.

• Desarrollo del cronograma: Se analiza la secuencia de las actividades, su

duración, los requisitos de recursos y las restricciones, para crear un mapa

en el tiempo de las actividades.

Page 37: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

25

• Control del cronograma: Se controlan los cambios del cronograma del

proyecto.

En palabras sencillas, esto es definir las actividades, el orden que deben llevar,

los recursos que ocupa cada una y montar un cronograma con todo eso.

Para el caso de los servicios SOA, se requiere una especie de plantilla de

cronograma que pueda servir como punto de partida para ser utilizado en un

proyecto de elaboración de un servicio. Para esta plantilla, se utiliza la EDT,

que ya tiene las actividades con un orden preestablecido. Entonces, el

desarrollador debe preocuparse más por los recursos y duraciones y no tanto

por las tareas o su secuencia (claro, salvo casos particulares de cada servicio).

Esta plantilla de cronograma tendrá su propio Diagrama de Gantt, para que sea

más sencillo montar el cronograma del proyecto y darse una idea rápida de la

duración del mismo, para tomar decisiones sobre el tiempo lo antes posible.

Esto es posible porque como ya la base del proyecto viene preestablecida, la

ruta crítica se obtiene fácilmente.

Vale la pena recalcar que algunos servicios SOA son pequeños, en el sentido

que tienen pocas actividades y que no son complejas. Para estos casos,

algunos de los procesos se pueden tratar de manera combinada entre sí, pues

no se amerita una definición formal de las actividades.

2.3.6.Calidad

Un área de conocimiento que no siempre se tiene en cuenta, pero que acá en

la metodología es trascendental, es la de calidad. No es solamente un asunto

Page 38: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

26

de metodología, sino que va más allá. Llega incluso a ser una filosofía

institucional del BCCR

Para una metodología, los aspectos de calidad deberían ser un punto

primordial, pues es una serie de pasos que se repetirán una y otra vez. Es

indispensable asegurar que se efectúen de la mejor manera posible.

El área de conocimiento de calidad tiene solamente tres procesos que la

componen (PMI 2004):

• Planificación de la calidad: Se identifican las normas de calidad que son

relevantes para el proyecto.

• Aseguramiento de la calidad: Se aplican las actividades planificadas y

sistemáticas relativas a la calidad, para asegurar que el proyecto utilice

todos los procesos necesarios para cumplir con los requisitos.

• Control de la calidad: Se supervisan los resultados específicos del

proyecto, para determinar si cumplen las normas relevantes y si se están

eliminando las causas de rendimiento insatisfactorio.

En el mundo del software, la calidad es un requisito básico. Hay un sinnúmero

de justificaciones para esto. Las más importantes son las facilidades de

mantenimiento y la homogeneidad en los estilos de diseño e implementación.

Muchas instituciones no acostumbran darle la importancia que se merece a la

calidad en los desarrollos que hacen, sino que solamente se interesan en el

tiempo y el costo.

La metodología de creación de servicios SOA tiene estándares y buenas

prácticas que deben ser seguidas cuando se trabaja en un servicio. Con esto,

se logra que los procesos se sincronicen lo más posible. Además, la

metodología tiene formularios para hacer auditorias de calidad para cada

entregable.

Page 39: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

27

Como responsable final de la calidad del proyecto, se considera a los

encargados de verificación y pruebas. Ellos deben recabar los formularios de

documentación y pruebas para cada componente y procurar tener todo ese

material a mano.

2.3.7.Integración

Finalmente, está el área de conocimiento de integración. Estos procesos

procuran que todos los diferentes elementos del proyecto trabajen de manera

coordinada. Comprende principalmente tres áreas: el desarrollo del plan de

proyecto, el sistema de control de cambios y las lecciones aprendidas

(Chamoun, 2002).

Los procesos de esta área son los siguientes (PMI, 2004):

• Desarrollar el acta de constitución del proyecto: Se autoriza

formalmente un proyecto o una fase del mismo.

• Desarrollar el enunciado del alcance del proyecto: Se ofrece una

descripción del alcance a alto nivel.

• Desarrollar el plan de gestión de proyecto: Se documentan las acciones

necesarias para definir, preparar, integrar y coordinar todos los planes

subsidiarios en uno solo.

• Dirigir y gestionar la ejecución del proyecto: Se ejecuta el trabajo

definido en el plan de gestión de proyecto para lograr los requisitos.

• Supervisar y controlar el trabajo del proyecto: Se supervisan y controlan

los procesos requeridos para iniciar, planificar, ejecutar y cerrar un proyecto.

• Control integrado de cambios: Se revisan todas las solicitudes de cambio,

se aprueban y controlan los cambios a productos entregables y activos de

procesos.

Page 40: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

28

• Cerrar proyecto: Se finalizan todas las actividades de manera formal, para

un proyecto o una fase.

La metodología de creación de servicios va a tener un plan de proyecto, a partir

de un machote. Ahí se detalla el problema a ser resuelto, el diseño propuesto y

una descripción de todos los componentes necesarios para cumplir con la

necesidad.

También una especificación de los pasos a seguir para construir el componente

y un resumen de los hitos principales del cronograma, para que el desarrollador

pueda guiarse en el horizonte de tiempo que tiene para cada actividad.

Otro aspecto importante que toma en cuenta la metodología es el proceso para

revisión de solicitudes de cambio a los productos, a través de un formulario

descrito en el Anexo 12.15. Este proceso de aplicar los cambios en sí ya es

mantenimiento de software y se sale del alcance de la metodología, pero lo que

si se incluye es el formulario para que se puedan solicitar y evaluar los

cambios.

También, al cierre del proyecto, la metodología contempla la documentación de

lecciones aprendidas, tanto buenas como malas, para crear conocimiento que

pueda ser útil en cada uno de los proyectos futuros que se vayan a iniciar.

2.3.8.Programas

Constantemente, se relacionan estrechamente los términos “proyecto” y

“programa”. A nivel teórico, existe una sutil diferencia entre ambos. Un

programa viene a ser una colección de proyectos relacionados hacia un

objetivo común (Thiry, 2002).

Page 41: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

29

La administración de un programa es en realidad la administración de los

proyectos que lo componen. Evidentemente que la complejidad operacional

aumenta, pues hay que coordinar varios proyectos simultáneamente, pero los

principios se mantienen. La administración de programas suele ser llevada por

equipos multidisciplinarios de dirección.

El cuadro 4 define algunas de las diferencias principales entre un proyecto y

un programa:

Cuadro 4: Diferencias entre proyecto y programa (Thiry, 2002)

Proyecto ProgramaDuración fija Duración indeterminadaObjetivos predefinidos Objetivos negociadosEnfocado en tareas Enfocado en metasCiclo de vida de procesos Ciclo de vida de productos

2.3.9.Estructuras organizativas para proyectos

No todas las organizaciones tienen la misma predisposición para trabajar bajo

metodologías de proyectos. Factores como el tipo de negocio, la cultura de las

personas o la madurez de la empresa, afectan la buena gestión de los

procesos y las actividades.

El principal factor que tiene su efecto en el éxito o fracaso de los proyectos es

la estructura organizativa. Existen diversos tipos, algunos de los cuales se

prestan más para el desarrollo del trabajo por proyectos y otros en los que es

sumamente difícil lograrlo.

Page 42: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

30

Los principales tipos de estructura organizativa que existen son los siguientes

(Vega, 2006):

• Organización tradicional: Las líneas de producción y organizaciones

burocráticas son de este tipo. Suelen tener gerencias, subgerencias,

departamentos y áreas. Desde el punto de vista de proyectos, tienden a ser

lentas y poco flexibles. No permiten el flujo horizontal de las actividades, tan

necesario en proyectos.

• Organización funcional: Es eficiente para diseñar y construir proyectos

que involucran una sola especialidad, pero cuando se mezclan ramas, se

puede volver difícil el manejo del proyecto. Por ejemplo, una compañía de

electricidad con una distribución jerárquica por Subestaciones,

Transmisiones, Distribución, Operaciones, etc.

• Organización por especialidad: Los especialistas comparten conocimiento

y experiencia técnica. Suele enfocarse hacia las operaciones internas de

cada departamento, no tanto a las relaciones externas y el trabajo en

proyectos. Los canales de comunicación tienen a ser verticales, lo cual

tampoco favorece el trabajo a nivel de proyectos. Es eficiente si tiene

proyectos cortos y pequeños.

• Organización matricial: Incrementan el valor de la coordinación. Los

especialistas se mantienen en sus departamentos acumulando experiencia

y conocimiento, mientras que al mismo tiempo se crea una estructura en

paralelo de proyectos responsable de la gestión. Nadie trabaja para nadie,

todos trabajan para el proyecto. El compromiso y respeto por parte de las

personas que componen la organización son básicos. Es el tipo de

organización preferido para gestión por proyectos.

La organización matricial no es algo nuevo. Organizaciones de este tipo existen

desde hace más de 30 años, en industrias tan variadas como la ingeniería

aeroespacial, investigación y desarrollo, mercadeo, finanzas, proveedores de

servicios de salud, etc.

Page 43: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

31

Cuando vino la teoría de proyectos y su aplicación práctica, se notó que las

organizaciones de este tipo eran las que mejores resultados obtenían, en

buena medida superiores a instituciones burocráticas y rígidas. Investigaciones

posteriores revelaron las razones de estos resultados.

Básicamente, una organización matricial contiene la tradicional estructura

jerárquica vertical y además, una estructura horizontal paralela que sobrescribe

la vertical en los casos de los proyectos. Las islas funcionales (jerarquía

vertical) “prestan” a sus expertos a los proyectos (jerarquía horizontal) para que

estos últimos puedan formar equipos de trabajo comprometidos con un

proyecto (Ford & Randolph, 1992).

Bien llevada, esta sinergia de las organizaciones puede traer grandes

beneficios para la organización: reducción de costos, aumento de ventas,

aumento de clientes, mejora de procesos, etc. No siempre es un trabajo

sencillo, pero las organizaciones maduras saben que es un costo inicial que les

puede dar beneficios posteriores.

El desarrollo de este tipo de estructura organizacional persigue la fusión de las

principales ventajas de todos los otros modelos, toda vez que minimiza algunas

de las desventajas. Por un lado, en una estructura funcional pura, los expertos

se mantienen actualizados y con un nivel similar de conocimientos y uso de

herramientas. Sin embargo, se torna difícil la coordinación con otras áreas.

En una organización por especialidad (también conocida como “enfocada a

producto”), los expertos pueden perder rápidamente el hilo de sus áreas de

experticia, a la vez me mantienen altos niveles de comunicación y

coordinación.

Page 44: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

32

Una organización matricial se puede considerar un punto intermedio entre

estos extremos. Busca lograr un balance que permita maximizar ventajas de

modelos y minimizar desventajas.

La madurez que tenga la organización es vital para la buena gestión de

proyectos.

2.4.Herramientas relacionadas

Por ser esta metodología un producto aplicado directamente al desarrollo de

software, es de esperar que exista una serie de herramientas preestablecidas

desarrolladas por terceros que se puedan aprovechar en alguna de las etapas

del desarrollo propuestas en este documento.

Por ejemplo, el VBCommenter es una herramienta de tipo utilitario desarrollada

por empresas asociadas a Microsoft, que permite estandarizar la

documentación interna del código fuente en aplicaciones de Visual Studio

.NET. Esta herramienta introduce etiquetas dentro del código y luego, por

medio de un proceso aparte, permite recolectar todo el texto de la

documentación para crear un solo archivo que se puede imprimir o publicar en

Internet. La gran ventaja de utilizar una aplicación que ayude en la

documentación interna de sistemas es que facilita mucho la estandarización de

los manuales técnicos que se construyan sobre el software.

Otra herramienta, también de Microsoft, que se puede utilizar para

complementar la metodología es el MS Sharepoint Portal Server. Esta

herramienta tiene la función de integrar información y contenido en un

repositorio único que se puede publicar para el libre acceso de un grupo de

trabajo. Esta herramienta es lo que se utilizaría para publicar esta metodología

y todos los productos que se deriven de ella, como por ejemplo las plantillas.

Page 45: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

33

Finalmente, también se cuenta con herramientas que ayudan a obtener y

clasificar requerimientos. Por ejemplo, el Caso de uso. Un documento de

especificación de caso de uso no es más que un formulario por medio del cual

el analista programador y el usuario final de la aplicación logran llegar a un

acuerdo sobre cierta funcionalidad que debe ser desarrollada y como debe ser

desarrollada. Este documento puede ser entendido por ambas partes y

constituye un detalle del trabajo por desarrollar.

Los casos de uso son parte de una metodología de análisis y diseño de

componentes de software orientado a objetos llamado RUP (Rational Unified

Process), el cual es muy grande y complejo y se escapa del alcance de esta

metodología. Sin embargo, esta porción de la RUP se ajustaba a lo que se

requería en los servicios SOA, así que se adoptó.

Page 46: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

34

3. MARCO METODOLÓGICO

3.1.Investigaciones comunes

A nivel general, muchas de las tareas necesarias para llevar a cabo este

proyecto, requieren en alguna medida de ejecutar acciones comunes, cada una

enfocada a su área de aplicación. El ejemplo más claro son las investigaciones

web, investigaciones bibliográficas y las revisiones de sistemas internas en la

organización. Si bien es cierto que se utilizan en varias tareas, todas guardan

similitudes desde el punto de vista del tratamiento metodológico que se les da.

En el caso de las investigaciones web, la idea es utilizar un navegador

consolidado como Internet Explorer y el motor de búsqueda Google, que es

uno de los más utilizados de los que existen actualmente. Además, ofrece

mucha información sobre todo lo que sea Microsoft. En cada uno de los temas,

se va a definir una lista de las palabras o frases clave que se van a utilizar

como tópicos de búsqueda. Se ingresan cada una de esas palabras o frases y

se revisan los primeros 10 ó 12 links que aparecen. Aquellos que contengan

información relevante para el tema estudiado, se imprimirán y se guardará el

link como “favorito”, para futuras referencias. Cada documento impreso se va a

revisar detalladamente, subrayando la información importante que puede ser

útil para la investigación.

Las investigaciones bibliográficas se harán sobre los libros y manuales técnicos

que posee el BCCR. La mayoría versa sobre herramientas y tecnología en

general de Microsoft. Suelen ser libros técnicos, pero sus contenidos se ajustan

a las distintas necesidades que tiene el proyecto: ejemplos de implementación,

estándares y buenas prácticas para guiar el proceso. Similar que con las

referencias web, se seleccionar los mejores capítulos o apartados y se

Page 47: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

35

fotocopian para poder subrayar la información más relevante. Eventualmente,

podría ser necesario buscar bibliografía adicional o más especializada en los

temas de los casos de estudio, depende de la cantidad de datos obtenida.

Para las revisiones internas de la organización, se va a buscar a cada uno de

los 2 ingenieros informáticos encargados de los mantenimientos de sistemas,

para solicitarles información y documentación general sobre los mismos. Estos

sistemas no son creados bajo la concepción de SOA, sino que son más

rudimentarios, algunos incluso hechos con tecnología que ya está obsoleta. Se

va a estudiar la arquitectura, el diseño y el modo de operación. También, los

problemas que tenga actualmente a nivel de diseño y arquitectura. Con esta

información, se documenta una lista de oportunidades de mejora y se calza con

las características de SOA.

Paralelo a la tarea anterior, se efectúan al menos 2 entrevistas a los

encargados de los sistemas en lo que se refiere a mantenimiento de las

aplicaciones, para escuchar las sugerencias sobre mejoras a la metodología de

desarrollo que les permitiera hacer más eficiente y sencillo el mantenimiento,

dado que son ellos quienes mejor conocen las carencias técnicas de los

sistemas.

En los cuatro casos anteriores (investigación web, investigación bibliográfica,

revisión de sistemas y entrevistas a encargados de mantenimiento), toda la

información recabada se analiza desde el punto de vista del proyecto, creando

resúmenes de lo más importante y obteniendo los cuadros o gráficos que se

puedan utilizar como referencias en la metodología de SOA. Inicialmente, no se

busca información específica, sino más que todo de corte general, que ayude a

dimensionar el problema actual y la oportunidad de utilizar una metodología

como SOA.

Page 48: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

36

Con esta información, se le dará contenido a las distintas tareas de la

metodología, creando conocimiento que permita desarrollar cada entregable

acorde con SOA y adaptado para el BCCR. La mayor parte de los estándares,

buenas prácticas o formularios de revisión de calidad van a ser elaborados con

información de estas fuentes primarias. Los métodos de investigación utilizados

hasta este punto serán, principalmente, el analítico-sintético y el de

observación por entrevista, aparte de la siempre presente investigación

documental.

3.2.Revisión de software

La revisión de sistemas construidos con SOA es distinta a las anteriores. La

idea es buscar en web no tanto documentación, sino fragmentos de código

fuente de componentes construidos con SOA, en distintos casos de aplicación.

Estos fragmentos se bajan y se utilizan como una especie de plantilla para

crear componentes base, que sirven como ejemplo a la hora de construir un

componente propio. En esta labor ayuda la información obtenida sobre mejores

prácticas y estándares de negocio, aparte de los mencionados ejemplos.

3.3.EDT y cronograma

Entre los objetivos específicos se tiene la identificación, secuenciación y

documentación de cada una de las distintas tareas que debe ser realizada para

la creación de un servicio SOA Evidentemente no todos los servicios son

iguales ni requieren lo mismo; pueden variar en complejidad, requerimientos o

funcionalidad. Sin embargo, la idea acá es montar una especie de EDT y

cronograma que sirva como base (plantilla) para hacer la planeación del

proceso de creación de uno de estos servicios. Claro que habrá cosas

específicas en cada caso, pero en general la mayoría de servicios comparten

las mismas tareas.

Page 49: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

37

Entonces, se monta una lista de tareas genérica, con todo lo que es necesario

hacer para crear un servicio SOA. Estas tareas se ordenan cronológicamente

como deberían realizarse y se organizan en paquetes de trabajo afines. Esta

información se mantiene en un formato similar a una EDT, para que cada vez

que se va a iniciar un proyecto para crear un servicio SOA, la persona

encargada sepa que es lo mínimo que tiene que hacer.

Una vez que se tiene esta plantilla de EDT para el servicio SOA, se construye

también, a partir de esa información, otra plantilla para un cronograma de la

creación del servicio. En este cronograma se va a llevar el control del avance

del proyecto, los atrasos, desviaciones y problemas encontrados. Es

prácticamente la principal herramienta para la gestión del proyecto.

Con la EDT, ya se tienen las tareas organizadas por paquetes de trabajo,

entonces, en el cronograma el único trabajo pendiente es estimar los tiempos

que va a tomar cada actividad, verificar las precedencias y asignar los

recursos. Esto simplifica el trabajo, pues el esquema de cómo se organiza el

proyecto, ya viene dado.

3.4.Estándares

Otro objetivo consiste en investigar y proponer un estándar para el desarrollo

de los componentes y sus interfaces entre sí. Esta tarea es de suma

importancia porque si todos los desarrolladores utilizan un estilo de desarrollo

similar, se facilita el mantenimiento posterior de las aplicaciones, reduciendo

tiempo y costo empleado en estas labores. Las interfaces estándar son básicas

porque uno de los principios fundamentales de los servicios SOA es que se

puedan comunicar entre sí, para reutilizar funcionalidad.

Page 50: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

38

Ambos estándares son tratados de manera igual metodológicamente hablando.

Con toda la información investigada, los sistemas revisados, las necesidades y

carencias identificadas y la teoría sobre servicios SOA, se procede a establecer

lineamientos generales para todas las actividades previamente identificadas. El

estándar cubre desde nomenclatura de componentes hasta especificaciones de

forma. Se utilizan ejemplos para ilustrar todos los lineamientos que se

especifican, pues así es más sencillo que se pueda entender efectivamente.

Estructuralmente, estos estándares se agrupan por paquetes de trabajo en el

proyecto. Por ejemplo, estándares para construcción de componentes de base

de datos, estándares para componentes de lógica, estándares para establecer

y aplicar pruebas, estándares para documentación, etc. Estos documentos

pueden ir evolucionando con el tiempo y también son la base para que se

puedan aplicar mecanismos de control de calidad que verifiquen que se están

cumpliendo.

A nivel de forma, estos estándares son solamente prosa. Sin embargo, la idea

es que haya herramientas para asegurar que se están aplicando

adecuadamente. También, dado el enfoque que se quiere dar al proceso de

creación de servicios SOA, es indispensable contar con mecanismos de control

a lo largo del proceso, para así asegurar que los pasos se han estado

efectuando de la forma en la que fueron planeados y que al final el producto

tendrá un mínimo aceptable de funcionalidad y calidad. Por esto, el objetivo de

definir los mecanismos de control es importante desde el punto de vista de

control y seguimiento del proyecto y la calidad esperada.

3.5.Control y seguimiento

En el caso del control del proyecto como tal, una vez definidas las fases (casi

una relación 1 a 1 con entregables en la EDT), se definen los flujos de trabajo

Page 51: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

39

de las actividades y, a partir de esto, los hitos de control del proyecto.

Entonces, en cada uno de esos hitos se establece un procedimiento formal de

revisión con la idea de verificar que todo se haya efectuado como debería y

que todos los productos se tienen, con los estándares y calidad esperados. Al

final de cada fase, se procura que se tengan todos los insumos necesarios y

con el nivel esperado, para poder empezar la siguiente.

Para lograr este control, se utilizarán formularios tipo “check list” y con espacio

para comentarios por parte de la persona que realiza la revisión.

Con respecto a la calidad, en los hitos de control del proyecto, se va a utilizar

otro formulario que va a tener todos los aspectos referentes a los estándares

que deberían tener aplicados los componentes. Como parte de la misma

finalización de una fase, se verifica que el nivel de calidad esté en el mínimo

requerido.

En ambos casos, la información obtenida en estas revisiones, a través de los

formularios para cada caso, se documenta y se utiliza para llevar una bitácora

del proyecto. En dicha bitácora se registra lo bueno y también las

oportunidades de mejora, las fechas de las revisiones, hallazgos y

notificaciones. Son documentos de acceso público.

3.6.Documentación

También es un objetivo importante la documentación. Es común que la

documentación de sistemas de información en general sea escasa, incompleta

y no actualizada. Esto genera múltiples problemas como el no dar adecuado

mantenimiento, asignar trabajo a personas nuevas que no conocen las

aplicaciones o que los usuarios finales puedan disponer de ayuda para utilizar

las aplicaciones.

Page 52: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

40

Al poner en los estándares el trabajo de documentación interna (dentro del

código de los componentes) y externa (manuales de usuario, guías de

instalación, diccionarios de datos), se obliga al hecho de documentar,

atenuando en gran parte los problemas acarreados por la casi perenne falta de

información en momentos que es tan necesaria. Nunca es recomendable una

documentación exhaustiva y menos que no la exista, pero sí es indispensable

lograr una identificación de los puntos clave que se necesitan documentar y

garantizar que se haga de la mejor manera.

La idea es investigar sobre herramientas tecnológicas como VbCommenter o

MS Sharepoint Portal Server que ayuden a documentar y publicar la

información. Antes de utilizar las herramientas, se debe revisar los estándares

actuales por medio de investigaciones Web. Alternativamente, se pueden

obtener en Internet algunos ejemplos que ilustren la forma en la que se debe

documentar. Estos documentos sirven como base para definir los

requerimientos necesarios de documentación interna y externa. Estos

requerimientos se detallan claramente y se relacionan con las posibilidades que

ofrecen las herramientas de apoyo. Con toda esta información, se puede

proceder a redactar el estándar para cada caso.

Es importante hacer notar que las revisiones de calidad van a tomar en cuenta

todos los aspectos de documentación que indique el estándar. En otras

palabras, se considerarán puntos a mejorar si la documentación no existe o si

está distinta a lo que diga el estándar.

3.7.Buenas prácticas para SOA

Este paradigma de SOA, por ser parte de adelantos tecnológicos en la industria

del software, no está “escrito en piedra”. Similarmente, las herramientas que se

Page 53: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

41

utilizan para análisis, diseño, construcción, pruebas, documentación, control de

calidad, y otras, no se pueden considerar únicas ni las mejores. Siempre hay

posibilidad de mejorar todo aspecto, más con la competencia por adoptar

mercado de las grandes compañías comercializadoras de software.

Esto significa que se debe mantener un conjunto de buenas prácticas para

utilizar en las distintas etapas del proceso, sin que esto implique que no se

pueda cambiar esas prácticas cuando surjan mejores opciones. De la misma

manera es con las herramientas y estándares. Lo que se utilice hoy, no

necesariamente será lo mismo que se utilice mañana.

Este documento es como una especie de apéndice a la metodología. La

mayoría de las buenas prácticas han sido incorporadas como parte del

estándar, pero hay algunas otras que son más recomendaciones generales. El

estándar detalla más éstas últimas. La idea es realizar investigaciones web en

foros y en documentación recomendada por los impulsores de tecnología SOA.

3.8.Validación

Un paso indispensable para cualquier metodología es la validación de la

misma. Esto significa que parte del proceso de implantación requiere la

selección de proyectos piloto para utilizar esta metodología de la forma más

completa posible, y así obtener retroalimentación de casos reales de

aplicación, que permita ver si en realidad se está llenando la expectativa

esperada o si es necesario eliminar, agregar, actualizar o detallar más las

distintas etapas del proceso.

Una metodología no validada podría quedar solamente en el papel, sin llegar a

tener un verdadero impacto en la forma de hacer el trabajo en la organización.

Sin embargo, para esta metodología y por cuestiones de tiempo, es imposible

Page 54: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

42

realizar la validación completa tal y como se describe en los párrafos

siguientes. Entonces, lo que se va a hacer es una validación parcial, acorde

con el tiempo disponible.

Una vez listo el documento de la metodología, se va a organizar una pequeña

reunión con los analistas/desarrolladores del departamento de implementación

(15 personas), para hacerles una presentación general sobre el objetivo y

características principales de la metodología. Posterior a esto se va a entregar

el documento a todos para que lo puedan leer detenidamente y se dará un par

de semanas para que puedan presentar las solicitudes de mejora o

aclaraciones. Se pretende aprovechar los juicios expertos de cada uno.

Todos estos comentarios se van a analizar y tener en cuenta para incorporar

mejoras que enriquecen al documento. Esta será la validación que se va a

efectuar. Los pasos de validación que por cuestiones de tiempo y oportunidad

se tendrán que dejar de lado son los explicados en los párrafos siguientes de

esta misma sección. Solamente se dejan planteados.

Una vez seleccionados los proyectos piloto que van a ser usados para probar

la metodología, se determina los hitos principales de esos servicios que

necesitan ser creados y se define un formulario para que se pueda hacer una

revisión, en cada etapa, de la forma en la que está siendo aplicada la

metodología. Dicho formulario se limita a aspectos meramente metodológicos,

o sea, no tiene que ver con la funcionalidad del servicio como tal sino con la

forma en que se está construyendo. Lo que se desea conocer es el nivel de

apego a la metodología y los aspectos que por una u otra razón no se están

utilizando o se utilizan distinto a como debería ser.

Como parte de esta validación, debe existir un conjunto de resultados mínimos

esperados para la aplicación de esta metodología en los proyectos piloto. De

no cumplirse con esos resultados, no se podría asegurar que la validación es

Page 55: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

43

significativa. Estos resultados se indican en el mismo formulario de validación,

para identificar rápidamente las áreas más sensibles a problemas.

También es importante ir documentando, luego de cada revisión de validación,

los casos que puedan aportar conocimiento aprovechable en el futuro, tanto

para validaciones posteriores como para mejorar la metodología en sí. Cada

formulario de revisión tiene un espacio para comentarios generales sobre

retroalimentación que se puede aprovechar oportunamente.

Page 56: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

44

4. PLANEACIÓN DEL PROYECTO

4.1.Tareas para crear un servicio SOA

Los servicios SOA son una evolución directa del esquema de capas de

aplicaciones, tradicional en los años 90. De hecho, los componentes de un

servicio SOA siguen siendo parte de alguna de las capas del modelo para

efectos de su diseño y construcción.

El modelo de capas (o N-Capas), presenta una arquitectura como en la figura

5:

Figura 5: Modelo de arquitectura de capas (Blázquez 2005)

Page 57: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

45

Desde hace mucho tiempo, se viene escuchando de componentes de acceso a

datos, componentes de lógica de negocio o componentes de interfaz. SOA no

contradice estos principios, al contrario, aprovecha el conocimiento que ya

tienen diseñadores y programadores trabajando con esto, solamente que con

otra perspectiva del uso. La diferencia entre SOA y las aplicaciones por capas

radica en el uso que tienen los componentes, no en la naturaleza de los

mismos.

Entonces, para establecer un listado de las tareas necesarias para crear un

servicio SOA, se puede analizar en detalle la figura anterior y extraer de ahí los

componentes de software que son necesarios de desarrollar.

En primer lugar, los más importantes son los componentes de lógica de

negocio. Estos contienen el peso de todos los procesos, rutinas o

procedimientos que hacen las aplicaciones. Obtienen información, ya sea de un

repositorio de base de datos, de la interfaz de usuario o de otro componente y

procesan todo de acuerdo a reglas que establecen los expertos del negocio y

que los programadores llevan a líneas de código. Hace 10 ó 15 años, en

modelos de desarrollo obsoletos, estos componentes eran complejos y poco

entendibles. Con SOA, la idea es que sean más focalizados.

También están los componentes de acceso a datos. De lo que se tenía en

modelos hace unos 10 años a lo que se tiene ahora, se puede considerar que

estos son los que menos cambios han sufrido. Prácticamente se mantienen

igual a como fueron concebidos. Sus funciones principales son proveer a la

capa de lógica con datos para procesar y mantener actualizada la base de

datos. Algunos autores llaman también a estos componentes como

“componentes de recursos”, para hacer una definición más general de la fuente

de datos.

Page 58: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

46

Un tipo de componentes que sí son más utilizados en SOA son las entidades

de negocio. Una entidad de negocio es una estructura de datos que mantiene

la información relevante para un objeto. Por ejemplo, una factura tiene un

número, un nombre, un monto, una razón social. Entonces, una entidad de

negocio “Factura” podría definirse con todas esas propiedades y otras tantas

como aplique en cada caso.

Otro tipo de componentes que se utiliza específicamente en SOA es el de la

interfaz de servicios. Estos deben proveer los medios para hacer que un

usuario u otro servicio puedan hacer uso de la funcionalidad especificada en la

lógica de negocio, sin dar detalles específicos de cómo esta ha sido

desarrollada. La función de esta capa es exponer la funcionalidad sin dar

detalles de la implementación.

Finalmente, los componentes de interfaz de usuario, que son los que permiten

a los usuarios interactuar con las aplicaciones. En SOA se mantienen en

algunos casos, pero por lo general se delega esta función a otras herramientas

informáticas. No es tan común que usuarios utilicen servicios, sino es más

común que otros servicios sean los “usuarios”. Este proceso se llama

orquestación de componentes.

Básicamente, estos son los principales tipos de componentes que se requieren

para crear un servicio SOA. Hay algunos otros que se utilizan en casos

específicos y otros que no aplican para el caso del BCCR.

Con todos estos tipos de componentes, se deduce que las tareas necesarias

para crear un servicio en realidad son tareas para crear esos componentes,

más otras adicionales que son parte de la metodología.

Esta metodología tomará en cuenta los componentes que se utilizan de manera

más generalizada en el desarrollo de sistemas del BCCR. Algunos

Page 59: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

47

componentes no son parte de esto, por lo cual no se provee su uso a corto

plazo. Eventualmente, podría ampliarse la metodología para que fuera más

amplia y abarcara más áreas, pero de momento, para lo que es funcional, no

todo se está utilizando.

4.2.Secuenciación de tareas

Según la teoría de capas para desarrollo de software, existen dos formas de

llevar un proceso de creación de un servicio: top-down ó botton-up

(Oppenheimer, 2004). Esto aplica tanto para el diseño como para la

implementación de los componentes y ambos tipos tienen sus ventajas y

desventajas.

Para esta metodología, se va a utilizar una combinación de ambos en distintas

etapas del desarrollo. De esta forma, se aprovechan mejor las bondades de

cada uno.

Para el diseño del componente SOA, se va a utilizar la metodología top-down.

La idea es empezar a diseñar por lo más general, viendo componentes y

funcionalidad general, para que así se pueda delimitar bien el alcance que se

busca. Con esto, se logra que el servicio SOA cumpla más fácilmente con la

funcionalidad requerida y que pueda ser verificado en la etapa de diseño.

Posterior a esta etapa, se va a diseñando cada componente interno del servicio

más en detalle, así como las relaciones entre sí.

En lo que se refiere a construcción de los componentes, lo más recomendable

es empezar desde abajo, desde las capas inferiores, hacia las superiores

(bottom-up). Por ejemplo, empezar desarrollando los componentes de base de

datos (tablas, procedimientos almacenados, índices). Luego, se crean los

componentes de acceso a datos y estos se pueden probar porque los

componentes de las capas inferiores ya existen, y así sucesivamente. El criterio

que impera para el desarrollo es poder formular una prueba unitaria sobre los

Page 60: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

48

componentes utilizando aquellos que se encuentran en capas inferiores. En la

medida en que se puedan entregar componentes de software ya probados, se

reduce el tiempo de mantenimiento y depuración posterior a su liberación.

Al igual que con la definición de tareas, su secuenciación en realidad consiste

en ordenar las tareas de acuerdo a un criterio para crear los componentes que

conforman cada capa. Lo importante de resaltar acá es que siempre deben ir

primero las tareas de diseño, luego las de construcción y por último, pruebas,

dentro de pequeños ciclos en cada capa. Otras tareas como documentación

están implícitas a lo largo de todo el proceso.

4.3.Organización por paquetes de trabajo

Existen casos en los cuales se cuenta con distintas personas para el desarrollo

de un solo servicio. No es lo usual, pero algunos servicios son tan grandes o la

premura de tiempo es tanta, que se vuelve necesario contar con varias

personas trabajando al mismo tiempo en distintos componentes de un mismo

servicio.

Esta situación algunas veces se torna problemática. Las herramientas de

control de la configuración ayudan un poco, pero no pueden evitar que muchas

veces dos personas lleguen a sobrescribirse mutuamente el código fuente, o

bien que alguno elimine código que ha sido incluido por el otro. También se

presenta el caso donde dos personas requieren modificar un mismo

componente en el mismo momento.

Lo recomendable en este caso, que será lo que se aplique al estándar de la

metodología, es que se creen paquetes de trabajo y que cada persona

asignada al proyecto trabaje en solamente uno de esos paquetes en un

momento específico del tiempo. Según las practicas más comunes, lo más

Page 61: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

49

sencillo es que cada capa del modelo en la Figura 4 constituya un paquete de

trabajo que pueda asumir una persona.

Por lo general, las aplicaciones se trabajan por capa. La idea de utilizar SOA es

que las aplicaciones a gran escala se puedan estructurar a partir de una

colección de servicios SOA trabajando de manera coordinada. La estrategia

para crear esos servicios SOA también es abarcarlos por capas.

Según la secuenciación de tareas previamente expuesta, se debería

seleccionar los paquetes de inferior nivel en el modelo, para que las bases del

servicio vayan quedando primero, antes que su interfaz. De esta forma, 2 ó 3

personas podrían trabajar en un servicio sin interferir entre sí en el trabajo

porque cada uno se encarga de su paquete (o capa).

Un punto a destacar es que, la agrupación de tareas por paquetes de trabajo

es conveniente hacerlo siempre, no solo en los casos que sean varios

recursos. Aunque fuera uno solo el que va a desarrollar el servicio, esta

organización permite llevar un control y seguimiento más cercano pues cada

paquete al final se puede considerar un hito del proyecto. En caso de atraso, es

más sencillo asignar a alguien nuevo y que esa persona ingrese de una vez

con un nuevo paquete disponible.

4.4.Estructura de desglose de trabajo (EDT)

En el Anexo 12.2, se presenta una EDT completa de las tareas necesarias que

constituyen un proyecto de creación de un servicio SOA, para la DST (División

de Servicios Tecnológicos) del BCCR.

Acá se detalla el diccionario de EDT, agrupado por cada fase ó paquete de

trabajo.

Page 62: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

50

En la fase de análisis, el diseñador y el usuario experto se reúnen para definir

la especificación del trabajo que es requerido. El usuario aporta las

necesidades y las pautas que deben ser seguidas, en caso que se requiera. El

analista debe tomar esa información y plasmarla en un “Documento de caso

de uso” como el que se encuentra en el Anexo 12.4. Este documento viene a

ser como una especie de contrato entre ambas partes, con el acuerdo del

trabajo que debe ser realizado. Las tareas de análisis son las siguientes:

• Especificación del caso de uso: El analista/diseñador elabora un

documento con la especificación técnica del servicio que se requiere. Se

detalla una descripción, precondiciones, pos condiciones, restricciones,

relación con otros componentes, alcance, etc. El usuario debe proveer los

lineamientos de negocio necesarios, en caso de ser requerido.

• Especificación de requerimientos funcionales: Una vez definida la

especificación del servicio, el analista/desarrollador debe enumerar un

listado de requerimientos funcionales mínimos que debe cumplir el servicio.

Durante la fase de diseño, el insumo principal es el documento de caso de uso

y los requerimientos funcionales. La idea es determinar, a nivel de

componentes de software, cuáles y cuántos son necesarios para implementar

el servicio SOA requerido, como se relacionan entre sí y como se va a probar el

servicio una vez desarrollado. Toda esta información queda registrada en un

documento de diseño para cada componente. Las tareas de esta fase son las

siguientes:

• Definición de capas necesarias: Un servicio SOA podría prescindir de

algunas de las capas del modelo de datos. Esto sucede sobretodo con las

capas superiores, como interfaz de usuario, que no siempre son necesarias

en todos los casos. En esta tarea se hace un análisis detallado de las capas

que aplican para el servicio en cuestión.

Page 63: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

51

• Definición de componentes por capa: Para las capas que abarque el

servicio SOA, se determinan en cada una los componentes de software que

están en cada una. Se documenta la funcionalidad de cada componente, su

relación con otros, su alcance y cualquier particularidad, restricción o

característica importante que se deba resaltar.

• Definición de relaciones entre componentes: Una vez documentados

todos los componentes, se determinan las relaciones que existen entre

ellos. El fin de esto es verificar que todos los componentes especificados

están siendo parte que la solución que brinda el servicio. También

determinar la interacción vía mensajes de todos estos componentes, para

tener clara la arquitectura y el modo de operación del componente.

• Documento de diseño: Con toda la información de capas, componentes y

relaciones entre sí, se elabora un documento de diseño que explique

detalladamente todo esto. Los desarrolladores que trabajen en el servicio

tendrán como herramienta principal este documento de diseño. En el Anexo

12.5 se detalla el documento respectivo para el diseño. Este documento

siempre está abierto a mejoras.

• Documento de plan de pruebas general: Una vez especificado el

documento de diseño, se cuenta con información suficiente para planear

como se va a probar el servicio. Es recomendable especificar las pruebas a

este nivel para evitar sesgos posteriores asociados con la implementación.

El plan de pruebas en la etapa de diseño suele ser más objetivo y completo.

Esta especificación de pruebas es parte del documento de diseño.

• Revisión de calidad: Por medio de un formulario de revisión de diseño del

Anexo 12.6, se verifica al final de la fase que se haya cumplido con los

documentos necesarios y con el contenido de todos estos. Esto asegura

que los desarrolladores podrán contar con un documento completo y sólido

para entrar a la fase de implementación.

Como se indicó, para el desarrollo se va a utilizar una metodología bottom-up.

Esto significa que se empieza de la capa inferior hacia arriba, para facilitar las

Page 64: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

52

pruebas unitarias de los componentes. El nivel inferior en todo modelo de

capas es la base de datos. Las tareas necesarias en este punto son las

siguientes:

• Diseño general de la base de datos: Se analiza la necesidad de datos del

servicio SOA y se hace un bosquejo general del modelo de datos que se

necesitaría para cumplir con la funcionalidad que se requiere. Es

recomendable utilizar alguna herramienta gráfica para entender mas

sencillamente cuales son las entidades de datos y sus relaciones. Por

ejemplo, está el Power Designer, herramienta que permite crear modelos de

manera gráfica y luego generar scripts con la definición de la base de datos.

• Definición de tablas: Una vez definido el alcance de la base de datos, se

procede a definir las tablas necesarias, con sus columnas, tipos, índices,

fórmulas y relaciones. Se hace un script para crear físicamente todos estos

objetos. Es importante apegarse al estándar de nomenclatura.

• Diccionario de datos: Con las tablas y todas sus columnas asociadas, se

documenta la funcionalidad de cada tabla y estas columnas. Esta

información queda en el documento de base de datos del Anexo 12.7.

• Construcción de procedimientos almacenados: Se crean scripts con

código de procedimientos almacenados para agregar, actualizar y eliminar

datos de las tablas. También para realizar funciones específicas sobre las

tablas como hacer listados de registros u obtener datos específicos.

También procedimientos que calculen fórmulas o que hagan algún

procesamiento previamente identificado como necesario en el servicio SOA.

Es importante apegarse al estándar de nomenclatura.

• Documentación interna: Para cada procedimiento almacenado, se

documenta internamente (en el script), con la información técnica más

importante que se requiere para entender que hace la rutina.

• Documento de base de datos: Con toda la información anterior se elabora

un documento de base de datos para el servicio, con toda la información

relevante a esta capa. Por ser la capa más básica, es también la que debe

Page 65: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

53

ser más sólida, pues todo el componente descansa sobre ella. En el Anexo

12.7 se encuentra el documento que debe ser llenado. Este documento

puede tener cambios durante el proceso de desarrollo o mantenimiento,

siempre está abierto a mejoras.

• Elaboración de pruebas unitarias: Para cada procedimiento almacenado,

se crea un script de pruebas que le ingrese datos preestablecidos y espere

resultados específicos. Esto probará que el procedimiento almacenado

funciona como se espera y permite que cada vez que se le haga un cambio,

se pueda probar con este mismo script.

• Aplicación de pruebas unitarias: Se ejecutan todos los scripts de pruebas

y monitorean los resultados. Si las pruebas no son satisfactorias, entonces

se aplican cambios a los procedimientos almacenados.

• Revisión de calidad: Una vez llegado a este punto, se verifica que los

documentos estén completos y que existan todos los scripts requeridos. Se

utiliza un formulario para calidad de la base de datos del Anexo 12.8.

Cuando ya se tienen los objetos de base de datos identificados, construidos,

probados y documentados, la capa inmediatamente superior ya concierne a

software y es la de componentes de acceso a datos. Para mayor facilidad,

estos componentes se llamarán en lo sucesivo “DS” (“Data Service” ó Servicio

de Datos). Las tareas a este nivel son las siguientes:

• Diseño detallado del componente: Se detalla el diseño general que se

hizo en la fase de diseño del servicio, especificando los procesos que se

van a abarcar con la creación de este DS.

• Identificación de métodos: Se identifican todos los métodos (por lo

general públicos) que se van a implementar en el componente, cada uno

con su nombre, sus parámetros y sus valores de retorno. Además, una

descripción clara de lo que hace cada uno y como lo hace. Esta información

se registra en el “Documento de componentes de software” del Anexo 12.9.

Page 66: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

54

• Validación de funcionalidad: Antes de iniciar la implementación, se toman

los requerimientos funcionales del documento “Caso de Uso” y se cotejan

contra los métodos que se tienen identificados, con el fin de determinar si

toda la funcionalidad requerida está dentro del alcance del DS. Es claro que

algunos requerimientos funcionales son más procesos de negocio y no

necesariamente mapean métodos en la capa de acceso a datos, sin

embargo, otros como mantenimientos de catálogos sí deberían tener sus

correspondencias a este nivel.

• Construcción del componente: Con el MS Visual Studio se construye el

componente DS con las clases y métodos especificadas en el diseño del

componente. Es indispensable adecuarse a los estándares de nomenclatura

y estilos de esta metodología.

• Documentación interna: Una vez terminados los componentes, se

documentan internamente de acuerdo al estándar.

• Documento de componentes (DS): Se completa el documento de

componentes del Anexo 12.9, con la información del diseño, métodos y

encabezados de la documentación interna.

• Elaboración de pruebas unitarias: Con el diseño y los componentes, se

elaboran los componentes de pruebas unitarias, acordes al estándar. Por

cada clase DS, se hace otra clase de pruebas que la certifique. Se puede

hacer uso de los procedimientos almacenados que ya fueron probados en la

capa de base de datos.

• Aplicación de pruebas unitarias: Se ejecutan las pruebas unitarias con

datos de prueba preestablecidos y se verifican los resultados obtenidos

versus los esperados. Se hacen correcciones en el componente de ser

necesario, hasta que se pueda obtener el resultado correcto.

• Revisión de calidad: Una vez llegado a este punto, se verifica que los

documentos estén completos y que existan todos los componentes

diseñados con los métodos indicados. Se utiliza un formulario para calidad

de componentes de software del Anexo 12.10.

Page 67: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

55

El siguiente paso, luego de los componentes de acceso a datos son los

componentes de entidad de negocio. Se conocen como BE (“Business Entity” ó

Entidad de Negocio). En general, suelen ser pequeños y poco complejos, pues

se conforman principalmente de propiedades, no tanto de métodos, pero su

uso es de capital importancia en los servicios SOA. Las tareas para lograr esto

son las siguientes:

• Diseño detallado del componente: Se detallan los componentes de la

capa BE, el alcance de cada uno, sus interacciones entre sí y la interfaz que

van a mostrar para poder ser utilizados.

• Identificación de propiedades: Se detallan, para cada clase de SW, sus

propiedades internas y externas. Es importante tener en cuenta el estándar

de nomenclatura para las propiedades.

• Construcción del componente: Se construyen las clases de entidades de

negocio.

• Documentación interna: Se documentan internamente todas las

propiedades, como se utilizan, que parámetros reciben, etc.

• Documento de componentes (BE): Con el diseño de las entidades de

negocio, sus propiedades e interfaz de uso, se completa el documento de

componentes de software (BE) del Anexo 12.9.

• Revisión de calidad: Una vez finalizada la implementación y

documentación de las entidades de negocio, se hace la revisión de calidad

con el formulario del Anexo 12.10 para revisión de calidad.

Con el DS y BE listos y documentados, empieza la parte que siempre presenta

mayor complejidad y suele tomar más tiempo de todas: la creación de

componentes de lógica de negocio BS (“business service” ó Servicios de

negocio). Los procesos pesados del servicio SOA están en esta capa. Por lo

general, el mayor procesamiento de los volúmenes de información debe estar

muy bien diseñado para que la implementación de los componentes de BS sea

óptima. Entre más robustos sean los DS, BE y componentes de base de datos,

Page 68: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

56

se facilita la implementación y pruebas del BS. Las tareas necesarias para

construir BS son estas:

• Diseño detallado del componente: Se detallan las clases que forman

parte del componente, su funcionalidad básica, su interacción con otras

clases y su interfaz para mensajes.

• Identificación de métodos: Se detallan los métodos, tanto públicos como

privados, que van a conformar cada una de las clases, así como los

parámetros y tipos en cada caso. Es importante seguir los estándares y

tratar de minimizar la cantidad de métodos utilizando mucho la sobrecarga

de funciones y el polimorfismo.

• Identificación de relaciones entre componentes: Cuando ya se tienen

los métodos en las clases, se determina como se relacionan unos con otros,

sobre todo en lo que se refiere al pase de parámetros o información de otro

tipo, entre componentes especializados, para optimizar el procesamiento

que va a realizar el servicio SOA.

• Validación de la funcionalidad: Cuando se identificaron las clases, sus

métodos y las relaciones entre sí, se validan los requerimientos funcionales

del “Documento de caso de uso” versus la funcionalidad que se planea

ofrezca el BS. En este caso, casi se debería mapear 100% los

requerimientos funcionales dentro del componente, como para dar por

aceptado el diseño del mismo.

• Construcción del componente: Cuando se validó la información de los

requerimientos funcionales, se procede a construir las clases y métodos, tal

y como se diseñaron.

• Documentación interna: Cuando ya se tienen los componentes, se

documentan internamente, tanto a nivel de método como a nivel de

encabezados y procesos. Hay que seguir el estándar de documentación.

• Documento de componentes: Una vez concluido todo lo anterior, se

registra todo el resultado del diseño y construcción en el documento de

componentes (Anexo 12.9).

Page 69: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

57

• Elaboración de pruebas unitarias: Se procede a construir las clases de

pruebas que van a certificar que los componentes de lógica funcionan como

es debido de acuerdo a los requerimientos funcionales del servicio SOA.

Estos componentes de pruebas deben dejar al azar lo mínimo posible de

casos, no importa cuál sea la complejidad de construirlos o el tiempo que

tome. Se debe seguir el estándar de pruebas unitarias.

• Aplicación de pruebas unitarias: Se ejecutan los componentes de

pruebas para el BS, con datos preestablecidos y se comparan los

resultados obtenidos contra los esperados. Si hay diferencias, se ajustan los

componentes del BS hasta alcanzar los resultados esperados.

• Revisión de calidad: Una vez concluidos todos los procesos de diseño,

construcción, documentación y pruebas, se aplica el formulario de revisión

de calidad para componentes de software (Anexo 12.10), el cual certifica

que se ha contemplado todo lo necesario en el ciclo de vida del componente

de manera correcta.

Pasado el BS (al menos en su primera versión), sigue el componente que hace

que el BS pueda ser utilizado por otros servicios o por el servidor Biztalk: el

componente de interfaz de servicios (SI: Service Interface). Esta capa abstrae

toda la funcionalidad del BS, siendo el único canal de comunicación con toda la

lógica que ofrece el servicio. Las tareas en este caso son las siguientes:

• Identificación de relaciones: El primer paso es determinar que otros

servicios de software tendrán interacción con el actual y de qué manera se

va a dar esa relación.

• Diseño detallado del componente: Una vez determinado el alcance del

SI, se debe diseñar el componente, principalmente a nivel de métodos y

parámetros.

• Validación de la funcionalidad: Cuando se ha diseñado el componente,

se valida que la funcionalidad ofrecida soporte todo lo que se esperaba. Hay

que tener muy en cuenta que este es el punto de acceso a todo el servicio

Page 70: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

58

SOA. Si no se toma en cuenta a este nivel alguna función ó método que

exponga funcionalidad, podría suceder que algunas piezas del servicio no

puedan ser utilizadas

• Construcción del componente: A este punto se puede construir el

componente, siguiendo los estándares de programación especificados.

• Documentación interna: Cuando ya se tienen los componentes, se

documentan internamente de acuerdo al estándar respectivo.

• Documentación de componentes (IS): Una vez finalizado el diseño, la

construcción y documentación interna, se registra la documentación externa

respectiva en el documento de componentes (Anexo 12.9).

• Revisión de calidad: A este punto, se aplica el formulario de revisión de

calidad del Anexo 12.10, para dar por terminado el IS (“Interface Service” ó

Interfaz de Servicios).

Finalmente, la fase de integración es la que toma todos los componentes

anteriormente generados y los prueba de manera integral dentro, dentro de un

ambiente controlado que semeja el ambiente real en el cual se va a utilizar el

servicio SOA. La idea es probar todo el conjunto en condiciones lo más reales

posibles: Las tareas en este caso son estas:

• Aplicación de plan de pruebas general: Estas pruebas fueron

especificadas en la fase de diseño. Acá se aplican para verificar que todo el

componente trabaja de manera íntegra como se espera. Se ingresan datos

de entrada preestablecidos y los resultados obtenidos se comparan con los

esperados. Hay que recordar que todos los componentes del servicio ya

debieron ser probados unitariamente, por lo cual no es de esperar que haya

errores muy básicos en el software.

• Documentar el proceso de integración: En el documento de integración

del Anexo 12.11, se registra el procedimiento para la integración de los

componentes dentro del servicio y a su vez la integración del servicio dentro

de la plataforma de software del BCCR.

Page 71: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

59

• Documentar ayuda en línea del servicio: Se completa la información para

la ayuda en línea que va a tener el servicio SOA. Principalmente, se

detallan las funciones públicas del IS.

• Actualización de estándares: En caso de ser necesario, se actualiza algún

estándar que lo requiera. En cada implementación se puede encontrar

detalles que pueden ser incluidos para mejorar los procesos de la

metodología. Esto es parte del proceso de mejoramiento continuo.

• Actualización de buenas prácticas: En caso de ser necesario, se

actualiza la guía de buenas prácticas. En cada implementación, pueden

descubrirse detalles que contribuyen a hacer la guía más completa. Esto

también es parte del mejoramiento continuo.

Todas estas tareas, ejecutadas de manera completa y en orden, garantizan un

servicio SOA con la metodología de desarrollo para el BCCR. Existen casos

específicos donde se podrían eliminar algunos de los pasos, y otros donde más

bien es necesario incluir otras tareas no contempladas acá. Sin embargo, como

base y punto de partida, este grupo de tareas es el mínimo requerido para

contar con componentes de software sólidos y estándares, que faciliten el

desarrollo y mantenimiento.

Todas estas tareas se incluyen en un cronograma específico para cada servicio

SOA, que al final de cuentas es una herramienta básica que utilizan analistas,

desarrolladores y encargados de pruebas.

4.5.Cronograma

En el Anexo 12.3 se muestra el cronograma correspondiente a la metodología

para crear los servicios SOA propuestos. En su estructura, el cronograma es

bastante similar a la EDT, algo típico en los proyectos de corte informático.

Page 72: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

60

La principal particularidad que tiene esta plantilla de cronograma es que

presenta ciclos que deben ser repetidos para tantos objetos como se vayan a

crear en cada proyecto específico. En estos casos, cada proyecto adecúa su

cronograma con la cantidad de ciclos que necesite.

Page 73: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

61

5. ESTÁNDAR DE INTERFAZ E IMPLEMENTACIÓN

5.1.Componentes de software

Los componentes de software que aplican para esta metodología pueden ser

de dos tipos básicamente: componentes de base de datos o componentes de

aplicación. Ambos tipos se complementan entre sí para crear sólida

funcionalidad para las aplicaciones de servicios.

Los componentes de base de datos tienen una amplia gama de objetos

posibles de estructurar para trabajar de manera conjunta. Por ejemplo, la base

de todo es una tabla, conformada por columnas, tipos y restricciones. También

hay procedimientos almacenados, triggers, e índices.

Existen distintos motores de base de datos. Para el caso del BCCR, el estándar

es trabajar con tecnología Microsoft, por lo cual se busca que todas las

aplicaciones utilicen la versión más reciente del MS SQL Server. Las versiones

van evolucionando con el tiempo, actualmente la que se está utilizando es la

MS SQL Server Management Studio, también conocida como MS SQL Server

2005.

Los componentes de aplicación pueden ser desarrollados en muchas

herramientas de programación. Algunas son mejores que otras para los

distintos tipos de sistemas que se requieren u organizaciones que las utilizan.

Como se ha mencionado, dado que el BCCR se apoya principalmente en las

herramientas Microsoft, se ha establecido que se utilice MS Visual Studio 2005,

concretamente con el lenguaje Visual Basic.

Para efectos del estándar, los objetos de las distintas capas (DS, BS, BE, etc)

siguen reglas similares, pues todos son componentes de aplicación.

Page 74: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

62

Los componentes de interfaz con un subconjunto de los componentes de

aplicación. Se crean con las mismas herramientas y aplican las mismas reglas,

pero tienen la particularidad de que deben ser diseñados para funcionar como

puente entre el servicio SOA en cuestión y el mundo externo donde este

servicio va a ser utilizado. Hay reglas específicas que deben ser claramente

detalladas para estos componentes, dada la importancia que tienen.

Tanto los componentes de base de datos como los de aplicación deben ser

adecuadamente documentados, tanto interna como externamente. En el

apartado de la EDT, hay tareas para documentar estos componentes, al igual

que en los formularios de revisión de calidad hay chequeos que indican si la

documentación está presente antes de dar por finalizado un trabajo.

5.2.Estándar de implementación

Empezando por los componentes de base de datos, los datos más básicos son

la definición de los acrónimos para sistemas y módulos.

En el caso de los sistemas, estos deben tener como mínimo 4 caracteres y

como máximo 6, conformados por solamente números y letras. Por ejemplo,

SDDE (Sistema de Divulgación de Datos Económicos) ó SINPE (Sistema

Nacional de Pagos Electrónicos). Deben ser únicos para toda la institución.

Los módulos siguen las mismas reglas, pero limitadas a 3 caracteres. Por

ejemplo, PBL (Publicaciones) ó ACS (Administración de Cuentas SINPE).

El nombre de la base de datos debe tener la siguiente sintaxis:

<Código del sistema>+”-”+<Tipo de la BD>+”-”+<Ambiente de la BD>

Los posibles tipos de bases de datos y ambientes aparecen en el cuadro 5:

Page 75: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

63

Cuadro 5: Tipos y ambientes de bases de datos

Tipos de base de datos Ambiente de base de datosPRO: Producción DES: DesarrolloREP: Repositorio PRU: PruebasRPT: Reportes PRO: ProducciónAUD: AuditoríaHST: HistóricoDWH: DataWareHouseBIT: Bitácoras

Algunos ejemplos de nombres de base de datos pueden ser los siguientes:

• SINPE-PRO-PRO

• SDDE-REP-DES

• SINPE-DWH-PRU

Los roles para usuarios siguen esta sintaxis:

<Código de sistema>+”-”+<Código de Módulo>+”-”+<Descripción del rol>.

Por ejemplo: SINPE-AES-AdministradorSeguridad. En algunos casos, podría

ser que no exista un código de módulo asociado. En ese caso, se omite.

Uno de los tipos de objetos más importantes de la base de datos son las tablas.

Suelen ser las más utilizadas, pues contienen los datos y las restricciones

sobre estos. Para nombrar tablas, se utiliza el siguiente formato:

<Código de módulo>+”-”+<Nombre de la tabla>+”-”+<Tabla relacionada

(opc.l)>

En algunos casos, puede que el código de módulo no exista. Esto puede ocurrir

para sistemas pequeños, que no son separados en módulos. En estos casos,

se sustituye el código del módulo por el del sistema. El nombre de la tabla

siempre debe ser en singular y debe denotar el tipo de información que

Page 76: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

64

mantiene. El dato de la tabla relacionada es opcional, solamente para tablas

que mantienen relaciones directas. Algunos ejemplos son:

• ACS-Encaje

• NBS-Entidad

• TFT-Transferencia-NBSEntidad

Todas las tablas deben siempre tener una llave primaria y tantas llaves

foráneas como sea requerido, sobre todo para las que son relaciones con otras

tablas.

Las tablas están conformadas por campos o columnas. Cada tabla puede tener

desde 1 hasta N columnas, cada una con un tipo y destinada a almacenar un

valor específico. La unión de todos esos valores conforma un registro y una

serie de registros da la información que mantiene la tabla.

Algunas columnas específicas de la tabla deben tener un prefijo para indicar su

tipo. Por ejemplo, las siguientes:

• Llaves primarias: deben llevar el prefijo “Cod”. Ej. CodCuenta. Por lo

general su tipo es integer o varchar.

• Identidades: deben llevar el prefijo “Id”. Ej. IdCuenta. Su tipo debe ser

identity, tipo propietario de SQLServer.

• Descripciones: deben llevar el prefijo “Des”. Ej. DesCuenta. Su tipo debe

ser varchar(60).

• Fechas: Deben llevar el prefijo “Fec”. Ej. FecCuenta. Su tipo debe ser

datetime.

• Montos: Deben llevar el prefijo “Mto”. Ej. MtoCuenta. Su tipo debe ser

money (en algunos sistemas se utiliza numeric ó decimal).

Page 77: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

65

Los otros campos, no contemplados acá, pueden ser especificados de manera

descriptiva, sin mayor restricción más que evitar el uso de caracteres que no

sean letras ó números. Algunos ejemplos de campos pueden ser:

PrimerApellido, NombreCompleto, PorcentajeDescuento, etc.

Muy relacionados con tablas y columnas, están las llaves primarias y los

índices. Una llave primaria es el subconjunto de columnas que define, de

manera única, cada uno de los registros que están en cada tabla. Un índice es

un ordenamiento lógico de los registros de la tabla para poder hacer búsquedas

más eficientes.

La sintaxis para una llave primaria y para un índice son las siguientes,

respectivamente:

“PK-”+<Nombre de la tabla>+<Nombre de las columnas separadas por “-”>

“IX-”+<Nombre de la tabla>+<Nombre de las columnas separadas por “-”>.

Por ejemplo:

• PK-ACSCuenta-CodCuenta

• IX-ACSCuenta-CodCuenta

El otro gran conjunto de objetos de base de datos es el de los procedimientos

almacenados. Estas rutinas se encargan de ingresar, modificar, eliminar,

validar, sumarizar, mostrar, etc toda la información que se encuentra en la base

de datos. Algunos pueden ser sencillos, mientras que otros pueden ser grandes

y sumamente complejos.

La sintaxis para nombrar procedimientos almacenados es la siguiente:

“PA-”+<Código de Módulo>+”-”+<Acción>+”-”+<Descripción>.

Page 78: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

66

Entre las posibles acciones están como principales: “Agregar”, “Actualizar”,

“Eliminar”, “Consultar”, “Listar”, “Procesar”. Podría haber más, dependiendo de

lo que se requiera hacer, la única restricción es que debe ser un verbo en

infinitivo. Algunos ejemplos son:

• PA-ACS-Agregar-CuentaSINPE

• PA-TFT-Listar-MovimientosConciliados

• PA-AVS-Procesar-CierreDiario

Los procedimientos almacenados reciben parámetros y opcionalmente

devuelven resultados. Las reglas de sintaxis para los parámetros aplican igual

que para la definición de las columnas internas de una tabla. Igualmente, las

variables que se utilicen dentro de cada procedimiento almacenado deben igual

regirse por este estándar.

Toda esta información de tablas, columnas, tipos, llaves y procedimientos

almacenados debe ser especificada gráficamente en un modelo Entidad-

Relación (ER) previo a la construcción. También deben ser documentados los

componentes con el diccionario de datos. Para referencias, se puede buscar el

anexo 12.7 de Plantilla de Base de datos.

En lo que se refiere a componentes de software, los objetos que se tienen son

clases, propiedades, variables y métodos. Para los distintos componentes de

las capas (DS, BS, BE), las reglas de estándar son similares pues todos se

trabajan con la misma herramienta de programación. Existen sus

particularidades en cada caso, pero mucho del estándar es el mismo para

todos.

Las clases que componen cada componente deben tener la siguiente sintaxis:

“c”+<Descripción de la clase>+<Iniciales de la capa a la que pertenece>. Por

ejemplo, cCuentasDS.

Page 79: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

67

No importa si su tipo de acceso es público o privado, en ambos casos siguen el

mismo estándar. También es importante resaltar que cada una de las clases

debe ser ubicada físicamente en un archivo extensión vb de Visual Studio

separado.

El que una clase sea pública o privada depende de la capa en que se defina y

el uso para el que fue creada. Posteriormente se ahondará más en esto,

cuando se detallen las particularidades de los componentes.

Además, todas las clases deben tener activa la directiva de compilación

#Region, la cual permite agrupar funciones de acuerdo a un criterio. Esto no

afecta la funcionalidad, pero si el orden dentro del componente. Las regiones

que se deben definir y dentro de los cuales se debe poner cada uno de los

miembros son las siguientes:

• Variables internas

• Métodos o funciones públicos

• Métodos o funciones privados

• Métodos o funciones compartidos

• Interfaces

Las variables internas que se declaren dentro de las clases deben ser privadas

y solamente expuestas (las que deban serlo) a través de propiedades publicas

read/write. El estándar no contempla el uso de variables públicas dentro de las

clases.

Estas variables deben tener el prefijo “m” y sus nombres deben denotar los

tipos de datos, similar a como se nombran las columnas de las tablas en la

base de datos.

Page 80: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

68

Las propiedades que exponen esas variables deben tener el mismo nombre

que la variable, excepto por la “m” del prefijo. Otras propiedades que hagan

validaciones u operaciones, solamente se les pone un nombre que sea

descriptivo.

Las variables y propiedades van principalmente en los componentes de entidad

de negocio (BE). Su uso es poco frecuente en BS y prácticamente no utilizado

en DS.

Un ejemplo de declaración de variable interna puede ser:

Private mCodCuenta As String,

La propiedad correspondiente a esta variable puede ser definida así:

Public Property CodCuenta() As String

Get

Return mCodCuenta

End Get

Set(ByVal Value As String)

mCodCuenta = Value

End Set

End Property

Otro componente de las clases, principalmente DS y BS, son los métodos o

funciones. La diferencia entre estos miembros de una clase (en Visual

Studio .NET definidos como “sub” y “function” respectivamente) es si se retorna

un valor resultado o no. Para efectos de este estándar, se recomienda

solamente utilizar funciones y que si no se tiene un valor que retornar, se

retorne un código 1 ó 0 para indicar si hubo un error o no.

Page 81: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

69

Todas las funciones, sean públicas o privadas deben tener manejo

estructurado de errores. Esto es, bloques Try…Catch que permitan detectar

errores en tiempo de ejecución para tomar acciones al respecto. Un ejemplo de

un bloque sería así:

Try

<Implementación de la función>

Catch ex As Exception

<Manejo del error>

End Try

Una función debe tener un nombre que denote una acción. Esto se logra por

medio de un verbo en infinitivo. No existe una sintaxis específica para los

nombres de las funciones, solamente se debe procurar que sea bien

descriptivo. Algunos ejemplos de nombres de funciones son:

“ListarCuentasInversionista” ó “Actualizar”.

Todas las funciones tienen parámetros. Estos pueden ser de entrada,

entrada/salida o salida. El tipo de cada uno depende mucho de cómo se haga

la implementación de cada método. La única restricción en este caso es fijar

bien el tipo que se va a utilizar para no caer en excesos de definiciones que

provoquen “overhead”.

El estándar para la nomenclatura de los parámetros es el mismo que para

variables y que para columnas de una tabla. O sea, está muy relacionado con

su tipo. También, para los parámetros se utiliza el estándar “camelCase” para

mayúsculas y minúsculas.

Los siguientes son ejemplos de la definición de funciones en una clase, con

todo y sus parámetros:

Page 82: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

70

• Public Function ListarCuentasInversionista (ByVal codEntidadPropietaria As

Short, ByVal codMoneda As Byte) As DataSet

• Public Function Actualizar (ByVal codCuenta As String, ByVal nomCuenta

As String, ByVal Justificacion As String, ByVal fecActivacion As Date, ByVal

Estado As Byte, ByVal estadoAdministracion As Integer) as Int

Las funciones pueden ser públicas, privadas ó compartidas. Los dos primeros

tipos de acceso son los más utilizados. Su uso depende de la capa en la que

se encuentre la clase a la que pertenece y también de la razón por la cual se

ha creado el método. Es similar al trato que se le da a las clases.

Específicamente, en lo que respecta al DS, el estándar recomienda crear dos

clases para cada uno de los componentes.

La primera de ellas debe ser privada (o sea, no se puede acceder desde fuera

del componente DS) y contiene la implementación de las funciones para el

mantenimiento y consulta de los datos.

Esto es, debe tener funciones para Agregar, Actualizar, Eliminar, Consultar y

Listar datos, todo directamente en la base de datos. La diferencia entre

Consultar y Listar radica en que Consultar retorna un solo registro, mientras

que Listar retorna muchos registros en un conjunto. Estos métodos son los que

proveen la implementación del componente.

Esta clase debe ser implementada con lenguaje LINQ (“.Net Language

Integrated Query” ó Lenguaje de Consultas Integradas para .NET) y sus

funciones deben ser declaradas como públicas para que se puedan utilizar

dentro del mismo componente. No se requiere la definición de variables

globales, propiedades ni funciones o métodos aparte de los especificados. Hay

que procurar que sea 100% pegada al diseño de la base de datos y a las tablas

que confirman el componente.

Page 83: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

71

La segunda clase del DS debe ser pública. Esta clase debe tener una instancia

de la clase privada y sus métodos deben referenciar, en relación 1 a 1, a los de

la clase privada para que se pueda acceder a la funcionalidad del DS. Los

nombres de los métodos deben ser los mismos en ambas clases.

La implementación de estos métodos en la clase pública debe solamente

configurar los parámetros recibidos en formato de base de datos, y pasarlos

convertidos a la clase privada, quien realiza las funciones respectivas. La idea

es que esta clase pública del DS sirva como un puente entre la lógica de la

aplicación (BS) y el componente que hace las tareas de base de datos. Se

utiliza para que se haga una separación lógica entre la aplicación y la base de

datos (representada por la clase privada).

La aplicación solamente se comunica con la capa de acceso a datos (DS) a

través de las funciones de la clase pública.

Siempre relacionado con lo anterior, una vez construidas la clase pública y

privada del DS, el siguiente paso es crear una clase de pruebas unitarias, que

implemente una serie de pruebas sobre las funciones del DS. Esta clase debe

ser privada y debe contener al menos una función de prueba para cada uno de

los métodos de la clase pública.

Cada prueba es independiente de las otras. Esto significa que cada una de las

funciones de prueba puede ingresar directamente en la base de datos los datos

que necesite u obtener directamente los datos almacenados, con tal de validad

que las funciones de la clase pública estén cumpliendo con su función.

La idea con esta clase de pruebas es que se pueda estar ejecutando cada vez

que se hace algún cambio en el componente, para verificar que todo sigue

funcionando como se espera, antes de dar por finalizado el cambio o la mejora

Page 84: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

72

en el componente. Tanto La clase como cada uno de los métodos deben

llamarse igual que en la clase pública, solamente que se les agregue el prefijo

“p”.

En lo que se refiere al BS, su estructura de clases puede ser un poco más

compleja. Como mínimo, se requieren 2 clases públicas: una para consultas de

la base de datos y la otra para el mantenimiento de información ahí mismo. La

idea es que una maneje transacciones y el otro solo haga consultas. La sintaxis

para los nombres debe ser, respectivamente:

“c”+<Descripción de la clase>+<Iniciales de la capa>

“c”+<Descripción de la clase>+<Iniciales de la capa>+”Tx”

Las funciones deben seguir el mismo estándar de nomenclatura que en el DS.

Igualmente con los parámetros, tipos de datos y manejo de errores. Sin

embargo, estas deben ser mucho más voluminosas en funcionalidad que las de

su capa inferior, pues llevan la implementación de todo lo que hace el servicio

SOA y la forma como lo hace.

Dada la complejidad de un BS, pueden existir tanto funciones públicas como

privadas en las clases. De hecho, puede incluso haber un número ilimitado de

clases privadas dentro del componente. Es importante hacer notar que el

componente debe mantenerse lo más específico posible para la funcionalidad

del servicio. La idea es que no crezca mucho, sino que se mantenga tan

pequeño como sea posible. Pero, eso no significa que se puedan tener tantas

clases como sea necesario, siempre y cuando se mantengan dentro del

contexto funcional.

Algunos conceptos como herencia de clases pueden ser muy útiles en el BS.

Se puede trabajar en base a clases madre que tengan funcionalidad básica y

clases heredadas que se especialicen en su funcionalidad. Es una buena

práctica de programación. También se puede utilizar la sobrecarga de

Page 85: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

73

funciones. Esto es, utilizar el mismo nombre para distintas funciones que hacen

la misma actividad. Por ejemplo, una clase podría tener 3 funciones llamadas

agregar, que se diferenciarían entre sí por los parámetros.

Internamente, un BS puede tener tantas relaciones entre las clases como la

funcionalidad del componente lo requiera. Lo que no puede ocurrir, según a

teoría de programación orientada a objetos, es que estas clases accedan a

componentes de base de datos directamente, o bien a componentes de acceso

a datos que no sean el que pertenece a este componente. Tampoco pueden

instanciar directamente otro componente de otra capa superior, sino que

solamente puede interactuar con otras clases BS.

Al igual que en el DS, las pruebas unitarias se realizan a través de una clase

especializada en crear escenarios distintos para cada uno de las funciones

públicas de la clase de consulta y la clase de transacciones. Esta clase puede

utilizar directamente los métodos públicos de la capa de acceso a datos (la

capa inferior al DS).

Un ejemplo de clases ubicadas en su respectiva capa se muestra en la figura 6:

Page 86: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

74

Figura 6: Ejemplo de clases y capas

5.3.Estándar de interfaz y organización de componentes

La interfaz es un punto clave en la arquitectura del componente. De su diseño y

organización depende que el componente sea tan accesible y útil como se

espera. Una interfaz debe proveer la mínima cantidad de funciones o métodos

que permitan la maximización del uso de un servicio.

En términos muy simples, una interfaz es una capa de software con clases

públicas y métodos públicos que son el único punto de acceso la capa de

reglas de negocio de un componente. Esta clase no tiene mayor código fuente

o funcionalidad más allá que servir de puente entre la lógica del BS

(prácticamente lo que le da vida al servicio) y un mundo exterior en el cual

puede haber múltiples aplicaciones, procesos u otros servicios necesitados de

la funcionalidad del servicio SOA.

Page 87: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

75

Para empezar, es de esperar que cada método público del las clases de

consulta y transacciones del BS tenga un método correspondiente en la

interfaz, con su mismo nombre, sus mismos parámetros (en orden y tipo) y una

misma concepción para cualquiera que vaya a utilizar el servicio. Posterior a

esto, se puede tener alguna función adicional sobrecargada, que simplifique

algunos parámetros, que utiliza valores por defecto en algunos casos o que

haga llamados de tipo asincrónico al BS.

Para esta capa, la particularidad principal (y que le da sentido a su

diferenciación) es que debe ser definida como un servicio web ó webservice. Al

ser de este tipo, se garantiza que tiene implícita una gran gama de funciones

propietarias de .NET para facilitar la conexión del servicio con todo el que lo

necesite, a través de un protocolo de comunicación flexible y estándar.

Los webservice pueden ser instanciados prácticamente desde cualquier capa,

proceso, servicio o aplicación. De hecho, los estos servicios conforman una

capa implícita, que algunos autores llaman “agente de servicios” (Roch, 2006).

Si todos los servicios se pueden acceder a través de webservice, se garantiza

una alta disponibilidad de servicios en la capa superior al IS, que

potencialmente podría ser cualquier cosa.

Ligado a la interfaz, se debe especificar la arquitectura de archivos físicos de la

aplicación. Hasta este punto, los distintos componentes de software residen

juntos en un servidor de aplicaciones. Este servidor contiene los DS, BS, BE, IS

y está “cerca” del servidor de base de datos.

Cada una de las capas, al final de cuentas se va a mapear en un archivo

extensión DLL (“Dynamic Linking Library” ó Librería de Enlace Dinámico). Esto

va a simplificar la implementación de las aplicaciones y su posterior migración y

Page 88: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

76

mantenimiento. Todos estos DLL se crean a partir de solucoines de Visual

Studio .NET, ligadas entre sí por medio de referencias.

Según este estándar, los nombres de estas soluciones (y que se extienden a

los DLL que se generan cuando se compila), se detallan en el cuadro 6 para el

servicio SOA llamado CuentaSINPE:

Cuadro 6: Nomenclatura para los DLL

Capa Nombre del DLLDS BCCR-<Descripción>DS.DLL

Ej. BCCR-CuentaSINPEDS.dllBS BCCR-<Descripción>BS.DLL

Ej. BCCR-CuentaSINPEBS.dllBE BCCR-<Descripción>BE.DLL

Ej. BCCR-CuentaSINPEBE.dllIS BCCR-<Descripción>WS.DLL

Ej. BCCR-CuentaSINPEWS.dll

Cada una de las soluciones debería poder ser desarrollada y compilada por

aparte. Evidentemente que cada capa se apoya en las inferiores para poder ser

desarrollada, pero en casos de mantenimiento, cada uno debería poder ser

tratado independientemente de los otros.

Cada solución debe contener dos proyectos. El principal contiene todos los

componentes (clases) antes descritas, así como las plantillas XML, paquetes,

módulos, reportes o bien cualquier otro objeto de Visual Studio necesario para

que funcione el componente en esa capa. El nombre de este proyecto debe ser

el mismo que el del servicio con el sufijo de la capa correspondiente.

El otro proyecto debe llamarse igual que el anterior, solamente que con el

prefijo “p” y debe agrupar las clases de prueba creadas para todos los

componentes.

Page 89: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

77

5.4.Estándar de documentación interna

Para que un componente de software se pueda considerar completo, este debe

tener un cierto nivel de documentación interna, adicional al código fuente. Por

documentación interna se entiende una serie de comentarios en prosa que

clarifican la función del código fuente. Estos comentarios van incrustados en el

código fuente para que cualquier programador que tome un componente y vaya

a trabajar con él, pueda rápidamente leer estos comentarios y ubicarse dentro

del código para facilitar los cambios o la depuración.

Es importante hacer notar que la documentación descrita en este estándar no

es exhaustiva. Se trata de normar un mínimo de documentación, pero entre

más completa quede, es mayor la calidad del producto.

Empezando con los componentes de base de datos, la documentación interna

debe ser tanto para tablas como para procedimientos almacenados. Con las

tablas, el MS SQLServer Management Studio permite que cada tabla y cada

columna dentro de la tabla se les puedan agregar un comentario ó descripción

sobre su razón de ser. El estándar de documentación establece que todos

estos campos deben ser completados.

Los procedimientos almacenados son rutinas independientes que residen en el

servidor de base de datos. Su documentación consiste en:

• Una descripción del procedimiento: El procedimiento almacenado, en su

encabezado, lleva un comentario con el siguiente formato:

--

===========================================================

-- Autor: Juan Rodríguez Soto

Page 90: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

78

-- Fecha/creación: 27/Abril/2006

-- Descripción: Genera los componentes del encaje para una

cuenta

--

===========================================================

• Una descripción de los parámetros: El encabezado del procedimiento

contiene los parámetros de entrada o salida. Entonces, el estándar indica

que cada parámetro se pone en una fila distinta y, a la derecha de cada

uno, se especifica una breve descripción. Por ejemplo:

CREATE PROCEDURE [dbo].[ACSCrearConceptos]

@CuentaSINPE VARCHAR(17), -- Código de la cuenta

@FechaInicial DATETIME, -- Fecha de inicio

@FechaFinal DATETIME, -- Fecha de finalización

@SaldoDisponible MONEY OUTPUT, -- Saldo disponible al momento

@MontoRetenido MONEY OUTPUT, -- Monto retenido al momento

@Error nvarchar(4000) OUTPUT -- Código del error resultante

AS

• Una descripción de los bloques de código más significativos: Aunque

un bloque de código documentable podría ser un concepto muy subjetivo,

hay algunas reglas básicas que podrían facilitar la tarea de poner

comentarios en el procedimiento almacenado. Por ejemplo, cuando se

declaran las variables al inicio del procedimiento, se puede poner un

comentario como:

-- ========================================================

-- DECLARACION DE VARIABLES --

-- ========================================================

Page 91: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

79

Igualmente para los ciclos For o While, la invocación a otros SP o funciones de

base de datos, una secuencia de instrucciones que efectúen una tarea

específica, etc. Hay que recordar que entre más acertada sea la

documentación interna, mayor calidad tiene el producto final.

En lo referente a los componentes de software, las clases, sus métodos y

propiedades también deben tener su respectiva documentación interna. La

herramienta de desarrollo Visual Studio .NET también permite la inclusión de

comentarios dentro del código fuente, lo cual es muy útil porque como ya se

mencionó, permite guiar al programador dentro de los componentes.

Tanto para DS. BS, BE e IS, aplican las mismas reglas para documentar clases

y funciones. Cada clase debe tener en su encabezado, un bloque de

documentación así:

' --------------------------------------------------------------------------------------------------------

'Proyecto : BCCR-CuentaSINPEBS

'Clase : cCuentaSINPEBS

' --------------------------------------------------------------------------------------------------------

'Resumen : Clase para la consultas de Cuentas SINPE

‘Autor : Luis Carlos García Mora

'Histórico

' Luis Carlos G.M. 18/Enero/2006 Creación

‘ Juan Rodríguez 29/Enero/2006 Método Agregar nuevo

' --------------------------------------------------------------------------------------------------------

Similarmente, cada uno de los métodos de todas las clases debe tener un

encabezado con la siguiente sintaxis:

' --------------------------------------------------------------------------------------------------------

'Propósito: Función que retorna la lista completa de cuentas SINPE del sistema

Page 92: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

80

‘Autor: Luis Carlos G.M.

'Parámetros:

' CodCuenta: Código de la cuenta

‘ FecSaldo: Fecha solicitada para el saldo

' --------------------------------------------------------------------------------------------------------

Dentro de cada método, también es importante poner comentarios para cada

bloque de código o secuencia de instrucciones que efectúen alguna operación

específica. Algunos ejemplos de etiquetas de documentación para estos casos

pueden ser:

‘Declaración de variables

‘Ciclo que procesa transacciones

‘Se escribe en la bitácora del sistema el resultado de la operación

‘Invocación al método que totaliza el estado de cuenta.

Page 93: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

81

6. MECANISMOS DE CONTROL PARA EL PROYECTO

6.1.Flujos de trabajo y roles

Internamente, la División de Servicios Tecnológicos del BCCR se compone de

diversas áreas, las cuales interactúan entre sí por medio de la coordinación de

recursos y tareas, para cumplir los objetivos de los proyectos.

Por ejemplo, relacionadas con esta metodología, existen áreas para

administración y manejo de bases de datos, pruebas, desarrollo y

mantenimiento. Igualmente, hay otras que no forman parte directamente del

alcance de la metodología, tales como la administración de hardware o

telecomunicaciones.

Las áreas cuyas tareas y recursos tienen relación directa con la creación de

servicios SOA son las siguientes:

• Análisis y Diseño: Esta área concentra a los analistas y diseñadores de

software. Estas personas son las que se comunican con los expertos del

negocio y obtienen de ellos los requerimientos. Luego transforman esa

información en pautas técnicas que se plasman en un diseño de

componente, que al final de cuentas es un insumo para otras áreas.

• Bases de datos: Esta área concentra los DBA (“DataBase Administrators”

ó Administradores de Base de Datos). Son las personas encargadas de

velar por el buen uso y la disponibilidad de los servidores de base de datos,

punto crítico en las aplicaciones de sistemas de información. Ellos crean los

script de base de datos, diseños de entidades, procedimientos almacenados

y pruebas unitarias a nivel de datos.

• Desarrollo: Esta área concentra a los programadores de Visual Studio

.NET. Según los requerimientos funcionales y tomando los diseños y

Page 94: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

82

objetos de base de datos, crean los componentes de software (soluciones y

proyectos de Visual Studio) y los integran a las aplicaciones que los van a

utilizar. La fase de pruebas unitarias de las aplicaciones es un punto muy

importante de la etapa de desarrollo, pues integra mucho del trabajo de las

otras áreas. La fase de pruebas en el desarrollo debe ser la más exhaustiva

de todas.

• Verificación: Esta área concentra a los encargados de diseñar y aplicar las

pruebas para cada componente de software. La “bendición” de esta área

hacia un componente de software es indispensable a la hora de incorporarlo

a las aplicaciones del BCCR o ponerlo en producción. Dado que no existe

un área de aseguramiento de calidad propiamente dicha, las revisiones de

los procesos de calidad se asignan también a funcionarios de esta área.

Es notable que algunas de estas áreas tengan tareas que se asocian

directamente con etapas de la metodología. Esto implica que para realizar la

construcción de un servicio SOA, es probable que el equipo de proyecto esté

compuesto por una serie de personas provenientes de diversas de estas áreas.

Similarmente, hay otras consecuencias como por ejemplo que no todas las

personas ejecutan tareas al mismo tiempo (el encargado de pruebas no tiene

función asignada mientras se realiza el desarrollo) y que algunas veces, por

falta de recursos, hay tareas que podrían traslaparse de áreas (si no hay un

encargado de base de datos para construir lo procedimiento almacenados, es

probable que tenga que asumirlos el desarrollador).

En todo caso, lo importante acá es que se puede definir un flujo de trabajo

estándar para cada uno de los proyectos de creación de servicios SOA, que

permite llevar un orden en las tareas y gestionar recursos con mayor

oportunidad. Esto al final permite una administración más efectiva y una

programación más certera.

Page 95: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

83

El flujo de trabajo propuesto se muestra en la figura 7:

Figura 7: Flujo de trabajo para crear un servicio SOA

Evidentemente, hay una relación muy cercana entre la especificación de tareas

de la EDT, el cronograma y el flujo de trabajo. Las tareas en cada caso están

estrechamente ligadas, esto hace más sencillo el entendimiento del objetivo

final.

Según este flujo, las distintas etapas se pueden asignar a distintos

responsables de las áreas anteriormente descritas, de forma que se coordine el

trabajo de la manera más conveniente para todos los involucrados.

Primeramente, existe una gran participación del analista/diseñador, quien es el

encargado del levantamiento de requerimientos y diseño general del servicio.

Page 96: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

84

Una vez listo el diseño, el DBA inicia con la creación del script de base de

datos y los procedimientos almacenados. Por otro lado, el diseño es también

un insumo suficiente como para que el encargado de pruebas diseñe y

construya los escenarios para las pruebas globales del servicio.

Cuando el DBA ha concluido, el desarrollador inicia con la fase de construcción

de todos los componentes de software necesarios para cumplir con los

requerimientos.

Una vez finalizado todo lo anterior, se hace un chequeo de calidad por parte de

los encargados de pruebas para verificar que todas las fases anteriores hayan

cumplido con el compromiso de incorporar pruebas unitarias y registrar los

resultados obtenidos, así como de la aplicación de los formularios respectivos

en cada caso. Es muy importante hacer notar que cada persona encargada de

cada fase es responsable por la calidad de su trabajo, no es algo exclusivo de

la gente de pruebas. Para eso hay tareas en la EDT y en el cronograma que

deben ser ejecutadas en cada paso para garantizar que se están aplicando los

mecanismos correctos de aseguramiento y control de calidad.

Luego de esta revisión, se aplican las pruebas de integración especificadas por

los encargados de pruebas. Estas pruebas deben ser en ambientes

controlados y lo más parecidos a producción posible.

Finalmente, se documenta la base de conocimiento del proyecto con todas las

lecciones aprendidas sobre lo bueno y lo malo ocurrido. Esta tarea es exclusiva

del director del proyecto. El director de proyecto, evidentemente debe estar

presente en cada paso del mismo, supervisando, facilitando y controlando el

tiempo, el presupuesto y la calidad. El director de proyectos suele ser un

analista/diseñador o bien un desarrollador, pero lo importante es que tenga e

poder suficiente para controlar los recursos de las áreas que sea requerido.

Page 97: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

85

Es normal que en ciertos momentos haya escasez de recursos. Tal vez un área

no cuenta con suficientes personas como para poder apoyar a algún proyecto

en el tiempo que es requerido. En esos casos, es válido que se haga un

traslape de funciones para no atrasar la marcha del proyecto. El ejemplo más

típico es que los desarrolladores tengan que asumir parte de la construcción de

procedimientos almacenados o del diseño de entidades porque no hay un DBA

disponible que lo pueda hacer.

Lo más importante de todo en esto de los flujos de trabajo de los proyectos es

que todos los involucrados entiendan que, aunque cada uno tiene sus tareas

de las cuales es particularmente responsable, todos son responsables de la

consecución de los objetivos del proyecto. Esto significa que aunque hayan

terminado sus tareas, igualmente deben prestar todo el apoyo que sea

requerido para mantener la buena marcha del proyecto.

Por ejemplo, los diseñadores deben estar siempre dispuestos a recibir

consultas y admitir mejoras por parte de los desarrolladores que trabajan con

sus diseños. Es normal que quieres utilicen un diseño para construir algo

puedan encontrar detalles que mejorar. Igualmente, los encargados de pruebas

deben contar con el apoyo de los desarrolladores en caso de que haya algunos

resultados distintos a los esperados, para revisar procedimientos o cambiar

programación debido a errores.

6.2.Hitos de control

Teniendo la EDT y un flujo de trabajo que especifica los roles de los

encargados y las tareas macro, la identificación de los hitos de control es una

tarea relativamente sencilla.

Por hito de control, se entiende un punto específico en el cronograma en el cual

se puede dar por concluida una etapa del proyecto y sobre la cual se puede

tomar una métrica o hacer una revisión de objetivos. Por lo general los hitos de

Page 98: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

86

control se asocian a entregables o productos, aunque esto no necesariamente

siempre tiene que ser así.

El cuadro 7 especifica la lista de hitos para el proyecto de creación de un

servicio SOA:

Cuadro 7: Lista de hitos del proyecto

Hito DescripciónAnálisis del problema Se llega al hito cuando se tiene el documento

de Caso de Uso y se han listado los requerimientos funcionales.

Diseño general Se llega al hito cuando se ha especificado de manera completa el diseño del servicio SOA.

Componentes de BD (Base de datos)

Se llega al hito cuando se tiene el script que crea la base de datos (incluye tablas, columnas, procedimientos almacenados y pruebas unitarias). Incluye el formulario de revisión.

Construcción de DS Se llega al hito cuando se tienen los componentes de software del DS y sus pruebas unitarias. Incluye el formulario de revisión.

Construcción de BE Se llega al hito cuando se tienen los componentes de software del BE. Incluye el formulario de revisión.

Construcción de BS Se llega al hito cuando se tienen los componentes de software del BS y sus pruebas unitarias. Incluye el formulario de revisión.

Construcción de IS Se llega al hito cuando se tienen los componentes de software del IS. Incluye el formulario de revisión.

Diseño de pruebas Se llega al hito cuando se tiene la especificación de todas las pruebas de integración

Aplicación de pruebas Se llega al hito cuando se han aplicado todas las pruebas de integración y se han obtenido resultados satisfactorios.

Documentación final Se llega al hito cuando se han documentado lecciones aprendidas y otros resultados. Es la antesala del cierre del proyecto.

Page 99: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

87

6.3.Mecanismos de control

Analizando los hitos del proyecto, se nota que prácticamente todos tienen un

formulario asociado (ver plantillas de anexos). Cada una de esas plantillas

debe ser elaborada en paralelo a la construcción de los artefactos (documentos

de diseño, script de base de datos, componentes de software). Algunas partes

de esas plantillas se completan al final de las pruebas unitarias aplicadas en

cada caso.

Entonces, como mecanismo de control primario, esta metodología propone la

presentación de la plantilla completa junto con los artefactos respectivos sobre

la finalización de cada una de las fases. Es responsabilidad del encargado de

cada fase la completitud y exactitud de los datos de la plantilla, así como del

director del proyecto la revisión de cada uno de los documentos y su

verificación contra los entregables.

Las plantillas de revisión de calidad son herramientas que asisten en estas

labores y deben ser completadas por el director del proyecto, o bien una

persona que este designe para que se pueda encargar de la calidad del

proyecto.

Todos los documentos deben ser modificados con control de versiones y deben

ser de acceso público para todos los integrantes del proyecto o bien otras

personas interesadas en obtener datos para proyectos futuros. Es importante

mantener estos documentos bien actualizados, pues constituyen la primera

referencia por parte de personal técnico que da mantenimiento o construye

nuevas aplicaciones.

Page 100: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

88

Como segunda herramienta de control se propone efectuar reuniones

semanales entre el director del proyecto y los involucrados de las distintas

áreas que forman parte del equipo del proyecto. En el caso normal, a cada

reunión debe asistir un DBA del área de base de datos, un analista diseñador,

un encargado de pruebas y al menos un desarrollador que sería el que va a

trabajar en los componentes de software, además del director del proyecto (que

podría ser alguno de ellos).

Estas reuniones deben ser lo más ejecutivas posible. Algunos participantes que

hayan finalizado sus labores o bien que no hayan empezado, podrían

excusarse de algunas sesiones, aunque esto no constituye ninguna regla sino

que es un asunto de sentido común. En el Anexo 12.14 hay una plantilla para

las minutas de estas reuniones. Lo principal es registrar los acuerdos que se

tomen.

Cada participante debe haber actualizado el avance de las tareas antes de

llegar a esta reunión. La idea de esto es que el director del proyecto pueda

tener impreso el avance del proyecto actualizado al momento de la reunión,

para así poder analizar con todo el equipo las acciones a seguir en caso de

desviaciones de la línea base.

También se discute el trabajo para la semana siguiente y cualquier tema

administrativo que sea de interés para el proyecto. Es indispensable el tener

que hacer una minuta de la reunión. Por ser equipos de trabajo pequeños, se

puede mantener una comunicación oral muy abierta y activa entre todos los

miembros.

Dichas reuniones de seguimiento deberían tardar alrededor de media hora ó 45

minutos. Más de ese tiempo implica que no se está siendo lo puntual que

debería y solamente debería ocurrir en casos extraordinarios.

Page 101: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

89

El tercer mecanismo de control es quizás el más simple de todos, pero a la vez

es el más importante. Consiste en que los involucrados registren en la

herramienta de control de proyectos las horas invertidas en las distintas tareas

del proyecto cada día.

Este reporte de tareas diarias debe ser hecho cada día, idealmente. Si esto no

fuera posible, al menos debe estar registrado para la reunión semanal.

Lo más difícil de esta tarea es crear la cultura en las personas de que invertir

10 minutos al día actualizando las tareas puede traer muchos beneficios al

seguimiento del proyecto.

El objetivo final de esto es disponer de una bitácora en la cual se pueda hacer

consultas por persona, por proyecto, por tarea o por periodo de tiempo, y así

maximizar el control en todos los niveles.

La idea es utilizar el Microsoft Project Server para esta labor de registro de

horas trabajadas en las distintas tareas y también para el seguimiento del

avance.

Finalmente, el cuarto mecanismo de control es responsabilidad directa del

director del proyecto, quien debe mantener una documentación escrita de todos

los eventos, situaciones ó imprevistos externos que beneficien o perjudiquen la

marcha del proyecto.

Por externos, se entiende que no son parte de tareas o actividades del

proyecto, pero que afectan de alguna forma al cronograma. Cosas como por

ejemplo una epidemia de gripe en el departamento, un curso fuera del BCCR o

un trabajo de mantenimiento prioritario pueden atrasar cronogramas y se debe

tener muy claro cuáles fueron los motivos por los que hubo que hacer ajustes

sobre lo que se ha planeado.

Page 102: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

90

7. GUÍA DE BUENAS PRÁCTICAS

En esta metodología, las buenas prácticas para diseño ó desarrollo deben ser

suficientemente abiertas para permitir que las personas puedan tener un aporte

creativo amplio y provechoso para la plataforma tecnológica del BCCR.

Evidentemente, hay estándares que deben ser seguidos como un primer paso

hacia la consistencia y calidad de los artefactos, pero aparte de eso, no existen

tantas ataduras como para hacer que el trabajo se vuelva repetitivo o se aporte

poco a la mejora que debería dar la experiencia.

Para el análisis y diseño de las aplicaciones que dan vida a los servicios SOA,

algunas buenas prácticas pueden ser:

• Apoyarse en herramientas de diagramación para crear los modelos

conceptuales del servicio. Las capas, componentes y relaciones pueden ser

más fácilmente entendidas y desarrolladas a través de gráficos que con

solamente prosa.

• Mantener un registro de toda la información que proveen los usuarios

expertos del negocio. Esto puede ser documentos, formularios,

aclaraciones, comentarios, reglamentos, etc. Esta base de conocimiento

puede ser muy útil para eventuales consultas y como respaldo del trabajo

que efectúa el analista/diseñador.

• En el trabajo de análisis y diseño, es bien importante no asumir cosas sobre

el funcionamiento del negocio. Es preferible preguntar a los encargados del

negocio sobre todos los detalles del trabajo a realizar, antes que asumir

cosas que luego podrían desembocar en cambios costosos en etapas

posteriores.

Page 103: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

91

• El principio de claridad y simplicidad a la hora de hacer un diseño es lo que

debería prevalecer. Entre más sencillo el diseño, más fácil es una correcta

interpretación por parte de todos los involucrados y más sencillo es el

proceso de desarrollo y mantenimiento.

• El analista/diseñador es el primero que debe estar atento a cambios que

puedan afectar su trabajo. El problema con el diseño es que cualquier

cambio afecta a todo lo demás, por lo que los cambios introducidos sobre la

marcha deben de ser encontrados y aplicados lo antes posible en la

construcción o pruebas. Otra buena práctica es prestar oídos a los eventos

o situaciones que puedan afectar al diseño.

A nivel de base de datos, algunas buenas prácticas podrían ser:

• En el MS SQL Server, completar la propiedad DESCRIPTION para cada

columna, de manera que sirva de documentación sobre su uso. Esto se

puede hacer desde el script que genera la estructura de la base de datos.

• Mantener siempre como dueño de los objetos al dbo.

• Mantener solamente un sistema en cada una de las bases de datos.

• Utilizar herramientas de diagramación para construir el modelo de entidades

y relaciones, ya que esto facilita el entendimiento del servicio y la definición

del alcance.

• Para sentencias SQL complejas, se recomienda revisar detenidamente el

plan de ejecución para encontrar formar de optimización.

• En sentencias de tipo “LIKE”, no utilizar el comodín “%” al principio de la

sentencia porque se elimina el uso de índices. Similar con el uso de

funciones (CAST, CONVERT, +, -, *, /, etc) sobre columnas de la clausula

“where”.

• Utilizar EXISTS() en vez de IN() para encontrar datos en un conjunto de

valores.

Page 104: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

92

• Sustituir el uso común de cursores por tablas temporales u objetos tipo

tabla, que son mucho más eficientes.

• En general, completar toda la documentación de tablas y columnas, así

como de los encabezados de procedimientos almacenados.

Algunas de estas buenas prácticas son más importantes que otras. Hay las que

son solamente cuestiones de estilo mientras que otras sí afectan directamente

la eficiencia de la base de datos en momentos específicos. Lo importante es

siempre tenerlos en cuenta para que todos los programadores lo vayan

poniendo en práctica y así se vaya haciendo más común la aplicación.

Para los componentes de software de las aplicaciones, unas buenas prácticas

son:

• Procurar que todas las aplicaciones reciban como parámetro el nombre del

servidor, nombre de base de datos y otros parámetros de conexión. Esto

facilita las pruebas en distintos ambientes. Se puede utilizar el Registry de

la computadora o bien archivos de configuración.

• Procurar que las clases y su contenido se ajuste lo más posible al diseño

presentado. Esto facilitará los cambios posteriores y ofrecerá buena calidad

al producto final gracias a la consistencia.

• Las funciones de las clases deben mantenerse lo más simples posible.

Siempre es preferible declarar muchas funciones simples que unas pocas

muy complejas. Lo ideal es que cada función realice una sola tarea y se

apoye mucho en otras funciones para otras labores.

• Declarar como funciones públicas únicamente las estrictamente necesarias.

El resto debe ser privado al componente. Esto facilita la utilización de

interfaces entre componentes.

• Utilizar mucho la sobrecarga de funciones. Es una buena práctica que las

clases tengan nombres de métodos estándar, sobretodo en la interfaz

pública.

Page 105: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

93

• Utilizar en todas las funciones el manejo estructurado de errores. Siempre

procurar que se retorne un código de error en caso de presentarse algún

problema durante la ejecución.

• Documentar internamente los bloques de código que tengan alguna

funcionalidad significativa. No significa comentar cada línea de código ni

tampoco poner solo un comentario para toda una función. Acá la

metodología apela al juicio de cada encargado, como para hacer que los

códigos fuentes sean claros y entendibles. Los comentarios deben ser

cortos y concisos. No deben entenderse más allá de lo estrictamente

necesario.

• Declarar variables locales en cada función en un solo bloque al inicio de la

misma. Nótese que el estándar de nomenclatura de estas variables debe

ser similar a las columnas de las tablas de la BD y a los parámetros. Solo

aquellas variables que cumplan una función muy importante deben ser

comentadas de manera particular.

Una buena práctica que casi siempre se deja de lado es la documentación

externa. En teoría, cada nuevo servicio SOA que se crea debería ser publicado

e integrado en la plataforma de aplicaciones del BCCR. Sin embargo,

frecuentemente se olvida que también debe ser integrado dentro de la

documentación de las aplicaciones.

El tener una documentación (en general) bien actualizada permite que tanto

personal técnico como usuarios finales sepan toda la información sobre los

sistemas, sus funciones y alcance. Pueden detectarse fácilmente carencias ó

vacios de funcionalidad y además permite un aprovechamiento pleno de todas

las aplicaciones.

Debido a que esto siempre ha sido un punto débil (no solo en el BCCR), esta

metodología incluye un pequeño formulario para documentación externa. El

conjunto de formularios de todos los servicios permitirán hacer un mapa de

Page 106: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

94

aplicaciones que incluso puede ser publicado en una intranet, para uso

generalizado por los usuarios (información del negocio) y programadores

(información técnica).

También las buenas prácticas relacionadas con esta metodología pueden ser

mucho más generales. Por ejemplo, mantener siempre una investigación

constante sobre herramientas o procedimientos, que ayuden a mejorar o

complementar no solo la metodología, sino también el trabajo como tal.

Otra buena práctica es utilizar de manera adecuada todos los canales de

comunicación que existen dentro del proyecto. La comunicación oportuna entre

todos los involucrados es base para que los proyectos puedan llevar un buen

rumbo. Las carencias en este importante rubro suelen dar al traste con el

trabajo que se planea.

Actividades como respaldar diariamente los archivos sobre los que se trabaja,

comunicar con tiempo cuando hay atrasos en las tareas o notificar al director

del proyecto cuando un involucrado se ha quedado sin tareas asignadas, dan a

entender que las buenas prácticas en gestión de proyectos pueden ser tan

diversas como se requiera.

El objetivo debe ser procurar que todas las personas que colaboran de alguna

forma en un proyecto desarrollen una cultura de excelencia en todos los

campos posible. Claro que no todos los trabajos salen bien siempre ni todos

son fuertes en todas las áreas, pero dando lo mejor en cada oportunidad que

se tiene va a hacer que todo proyecto sea más productivo y de mayor calidad.

Page 107: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

95

8. VALIDACIÓN DE LA METODOLOGÍA

8.1.Revisión primaria

Toda metodología, por su naturaleza, debería ser sometida a una revisión

previa antes de entrar en vigencia, por parte de las personas que van a tener

que aplicarla. Esto es una práctica muy sana porque permite que esas

personas conozcan de antemano la metodología y las implicaciones que tiene.

También ofrece un espacio para que todos los involucrados en proyectos

puedan hacer valiosos aportes que complementen los procedimientos.

La primera etapa de una revisión primaria es convocar a una reunión en la cual

se presenta la metodología a un grupo de analistas, diseñadores,

desarrolladores y encargados de pruebas de la DST. Sería preferible que

estuvieran todos, sin embargo, de antemano se sabe que es difícil por asuntos

laborales. La idea es reunir a unas 15 personas como mínimo, eso sí de las

diversas áreas, para posteriormente tomarlos en cuenta para el plan piloto.

Esta reunión puede tomar como máximo unas 4 horas y lo que se espera es

mostrar las plantillas de EDT, cronograma, descripción de las tareas, plantillas

de documentación y control y buenas prácticas. Igualmente, se describe como

se hará el proceso de validación y se atenderán todas las consultas de los

involucrados.

Posterior a esta sesión magistral, todos los productos de la metodología

(documentos, plantillas y cronogramas) se publicarán para que estos

involucrados los tengan disponibles y puedan revisarlo detenidamente. Esta

tarea no debería exceder 2 semanas. Todas las personas que hagan la revisión

pueden hacer llegar sus comentarios y sugerencias de mejora.

Page 108: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

96

Es necesario hacer énfasis en que esta revisión de documentos se debe hacer

desde una perspectiva de los proyectos en los que cada persona está

trabajando. Esta es la mejor forma de analizar la metodología, tratando de

ubicarla dentro del contexto de lo que se hace actualmente o se ha hecho en

un pasado reciente en cuando a proyectos de desarrollo de componentes de

software.

La idea es tomar los aportes de todas las personas y analizar dentro de la

metodología esas ideas. Muchas pueden ser incluidas o bien pueden modificar

algo ya establecido. Otras podrían ser aportes para futuras versiones o bien

podrían ser incluidas a corto plazo.

Este paso también es bien importante porque involucra a todas las personas

que van a utilizar la metodología dentro del proceso de construcción,

permitiéndoles formar parte del proceso de maduración de esta herramienta y

haciendo que vayan interiorizándola de una vez.

Esta etapa de la validación se efectuó satisfactoriamente. Fue seleccionado un

grupo de funcionarios del la DST para explicarles en una sesión los principios

básicos de la metodología y además se les entregó los documentos (plantillas,

estándares, etc) para que procedieran a revisarlo y formular las observaciones.

El cuadro 8 muestra al grupo de funcionarios que colaboró en esta tarea:

Cuadro 8: Lista de funcionarios que validaron metodología

Funcionario LaboresMCI. Carlos Sánchez F. Ejecutivo a.i. del Área de Análisis y Diseño del

Departamento de Ingeniería de Software Institucional.

MCI. Yanina Barquero M. Analista programadora del Área de Implementación del Departamento de Ingeniería de Software Institucional. Encargada del Sistema de Reservas

Page 109: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

97

Monetarias Internacionales.MCI Roneld Matamoros C. Analista programador del Área de

Implementación del Departamento de Ingeniería de Software Institucional. Encargado de dirección de varios proyectos.

Lic. Johnny Castro G. Analista programador del Área de Implementación del Departamento de Ingeniería de Software Institucional. Encargado del desarrollo de proyectos web.

Lic. Lorenzo Garita O. Analista programador del Área de Implementación del Departamento de Ingeniería de Software Institucional. Encargado de dirección de varios proyectos.

Lic. William Solís J. Analista programador del Área de Implementación del Departamento de Ingeniería de Software Institucional. Encargado de proyectos de desarrollo internos.

Entre los resultados de la revisión, hubo sugerencias y comentarios de todo

tipo. Desde aspectos de forma y estilo hasta cuestiones de fondo sobre el

rumbo que debería seguir el uso de las herramientas que software que asisten

en las labores que se hacen diariamente.

Ninguna de las sugerencias implicaba cambios complejos en la metodología.

En general, todas las personas sintieron cómodo el nivel de esfuerzo que

implica el trabajo con esta metodología y lo vieron como un buen punto de

partida para aplicar en proyectos de desarrollo. Todos están conscientes que

con la aplicación se pueden ir descubriendo mejoras que pueden

complementar los estándares y reglas.

Lo más rescatable de esta revisión que hicieron los funcionarios de la DST es

que ellos ya tienen plena consciencia de que este tipo de labores aportan

buenos resultados al trabajo que se hace todos los días. Gracias a esto, la

cultura para laborar con esquemas así se ve favorecida y facilita todo lo demás.

Page 110: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

98

8.2.Aspectos a validar y resultados esperados

El primer paso para efectuar una validación completa es seleccionar el

proyecto (o proyectos) que van a servir como piloto para probar la metodología.

Lo ideal es que fueran un par de proyectos, no necesariamente concurrentes,

aunque por las cargas de trabajo de la DST, esto puede ser difícil de gestionar.

Es de esperar que solamente se pueda contar con 1 proyecto piloto.

Dicho proyecto debería ser corto. Esto significa que su alcance debería ser de

unos pocos meses para poder compilar los resultados y publicar la metodología

a un mediano plazo. No debería ser muy complejo para evitar que se extienda

mucho o que complique su finalización y no se pueda contar con la validación

completa. Otra característica del proyecto seleccionado es que debe contar con

todas las fases, para que la prueba sea integral. Esto significa que es preferible

que se construya todo desde 0. El proyecto piloto debe tener suficiente

trascendencia como para asegurar que no será pospuesto a medio camino,

sino que va a poder ser llevado hasta el final.

Existen varios objetivos importantes a la hora de validar la metodología. Sin

embargo, hay tres puntos clave que son claramente los criterios de éxito para

esta fase de validación y pruebas. Los aspectos claves a revisar durante esta

aplicación de la metodología piloto son los siguientes:

• Uso de plantillas de EDT y cronograma para planeamiento y control del

proyecto.

• Apego a estándares y buenas prácticas.

• Uso de plantillas para documentación y control.

La metodología es más específica, pero estos se pueden considerar las tres

grandes áreas sobre las cuales versa la mayor parte del trabajo. Poniendo

Page 111: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

99

cuidado y atención a estas actividades macro, se cubre la parte más importante

de todo el proceso.

La plantilla de EDT debe ser adecuada al proyecto piloto para todas las

actividades de desarrollo de productos. Es importante recordar que algunas

partes de la EDT tal vez no apliquen en todos los proyectos o bien que algunos

por su naturaleza requieran más tareas o más entregables. Todos estos casos

son válidos, siempre y cuando se mantenga la estructura básica de la EDT.

Similar a la EDT, el cronograma debe ser ajustado al inicio del proyecto para

quedar consistente con el diseño de las tareas por ejecutar. Además, el

cronograma debe ser la primera fuente de información para el control del

proyecto, de ahí la importancia de reportar diariamente las horas invertidas en

las tareas y su análisis durante las reuniones de seguimiento.

La parte más compleja de verificar corresponde a los estándares y buenas

prácticas. Si bien no es algo difícil, puede tornarse laborioso por la naturaleza

tan minuciosa de las reglas que deben ser seguidas en el cumplimiento de la

metodología.

Para una revisión de estándares completa es necesario entrar al código fuente

de las aplicaciones (o bien procedimientos almacenados de base de datos) y

chequear que todos los lineamientos están siendo seguidos tal y como se

indica en este documento. Tanto para las personas que hacen el trabajo como

para aquellas que lo revisan, es sumamente difícil el poder verificar

absolutamente todas las reglas en todas las funciones de todas las clases. Sin

embargo, resulta ya de por sí provechoso el hecho de formular revisiones

generales y seleccionar casos específicos para ver detalles. Esta puede ser

una buena alternativa para no hacer el trabajo muy tedioso innecesariamente.

Page 112: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

100

El punto más sencillo de revisar es la de las plantillas de documentación y

revisión de componentes. De antemano se conoce cuales documentos deben

ser presentados en cuales fases y así es más simple averiguar si hacen falta

algunos. Al igual que en los puntos anteriores, se debe revisar la completitud

de los documentos y su consistencia versus los productos entregados.

Ninguna metodología, por sencilla o concisa que sea, se puede interiorizar y

aplicar al 100% desde la primera vez que se ejecuta. Siempre hay un proceso

de asimilación por parte de las personas que van a trabajar con ella. Solo

practicando se puede lograr un buen resultado en una aplicación. Con el

tiempo, llegan a ser cosas muy naturales.

Esta metodología de creación de servicios SOA no es la excepción. Si bien es

cierto no es algo complejo, es de esperar que las primeras veces que se intente

utilizar en algún servicio SOA, se pueda presentar algún problema que no

permita lograr un 100% de apego. En particular, la validación de la metodología

por intermedio de un plan piloto es un proceso que no saldrá perfecto, sino que

se debe establecer un margen de error razonable para poder dar por exitosa la

validación. Es más, uno de los objetivos de la validación es justamente

encontrar algunos errores que ayuden a mejorar o complementar la

metodología, por lo cual se debe ser flexible la primera vez que se aplique el

contenido de este documento en un proyecto real.

Por ejemplo, es indiscutible que el proyecto piloto debe utilizar la plantilla para

la EDT y el cronograma. Esto es básico y cualquier proyecto que no cuente con

estos documentos, no puede ser bien administrado. Sin embargo, dado que la

plantilla de EDT puede sufrir ajustes específicos en el caso de cada aplicación

particular a un proyecto, se puede dar un pequeño margen a inconsistencias

entre la EDT y el cronograma, o bien entre el cronograma y las tareas reales

efectuadas. Igualmente, si el usuario de la metodología ubica tareas del

proyecto en ramas de la EDT donde no corresponde. Evidentemente, en un

Page 113: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

101

proyecto real, esto no se debería presentar pero para efectos de este proyecto

piloto, se consideran situaciones que se pueden presentar por la falta de

familiaridad en el uso.

Para lo que son estándares de programación, tanto para procedimientos como

para componentes de software, la flexibilidad estará en el rubro de lo que se

quiere verificar. En las cosas más generales no habrá flexibilidad, sino

solamente en aquellas que son muy detallistas.

Por ejemplo, en aspectos como nombres de clases, nombres de funciones en

esas clases ó encabezados de documentación para estos (clases o métodos),

no se considera que puedan ser sujetos a desviaciones de la metodología. Son

los más sencillos de detectar y aplicar. De la misma forma, cosas como

ausencia de manejo estructurado de errores es algo no aceptable, ya que se

sabe que todo debe llevarlo.

Entre las posibilidades que pueden ser incorrectamente aplicadas de la

metodología, está por ejemplo la nomenclatura para variables y/o parámetros.

Podrían existir tipos de datos utilizados no contemplados en el estándar, o bien

algunos que tengan derivaciones (herencia) cuyo uso no fue contemplado en

el estándar. Igualmente, los comentarios de los bloques significativos de código

siempre será siempre un elemento muy subjetivo de hacer y verificar.

Con respecto a las buenas prácticas, dado que es tan distinto para cada

persona, lo mejor durante el proyecto piloto es atender más las cuestiones de

estilo y forma, dejando de lado lo que incida directamente en el contenido de

los productos.

Por ejemplo, es mucho más sencillo verificar que en el diseño del servicio SOA

se elaboró un diagrama del alcance del servicio (capas, clases y relaciones)

que ponerse a ver si en todos los procedimientos almacenados se utilizan o no

Page 114: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

102

ciertas funciones ineficientes del motor de base de datos. Muchas de las

buenas prácticas sugeridas en esta metodología, o bien las que cambien o se

incluyan en un futuro, deberán ser asimiladas por medio de las aplicaciones

reales de la metodología.

Finalmente, queda como punto trascendental el uso de las plantillas, tanto para

diseño y documentación como para revisión.

Es inaceptable el obviar alguna plantilla durante el proyecto piloto. Todas

deben ser aplicadas en su fase respectiva (el proyecto piloto debe contar con

todas las fases de la metodología para un mejor aprovechamiento), de la

manera más consistente y completa posible. De hecho, es requisito para

finalizar una fase y comenzar la siguiente el tener las plantillas terminadas y

completas.

Lo que sí puede ocurrir es que algunas pruebas unitarias tal vez no se puedan

aplicar completamente o bien que no se cuenten con datos concretos como

para formularas, por lo cual estas partes de los documentos quedarían sin

llenar, pero por lo demás, las plantillas son un insumo importante para poder

dar por finalizado el proyecto como tal.

8.3.Mecanismos de validación y retroalimentación

Como se ha mencionado, el ejercicio de seleccionar al menos 1 proyecto piloto

para aplicar al 100% la metodología y obtener retroalimentación que ayude a

solidificar los lineamientos establecidos, es un proceso muy significativo para la

madurez del departamento.

Esta validación del proyecto piloto será un proceso muy constante y

meticuloso, con la idea de obtener la mayor cantidad de información posible. El

Anexo 12.12 presenta una plantilla para llenar con la validación de la

Page 115: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

103

metodología en el servicio SOA. Esta plantilla es una especie de resumen de

todas las plantillas anteriores (tanto de documentación como de revisión).

El objetivo principal es que esta plantilla sirva como base para la revisión de

todas las etapas de la metodología y sus productos. Al cierre de cada fase del

proyecto piloto, luego de llenar las plantillas de revisión respectivas, se toma

esta otra plantilla para verificar que todos los productos se hayan hecho y sean

consistentes entre sí. Como mínimo, se debería hacer en cada fase del piloto,

nunca más allá de ese periodo para no perder oportunidad.

Esta plantilla se aplica solamente para proyectos piloto, no es requerida para

aplicaciones reales de la metodología a proyectos. Eventualmente, la Auditoría

Interna podría aprovecharla también para efectos de su trabajo.

Toda la información registrada es la retroalimentación que puede ser revisada y

compilada en acciones concretas que pueden ser incorporadas a la

metodología para mejorarla. Siempre la mejor forma de probar algo como esto

es aplicándolo y analizando los resultados para obtener datos bien

provechosos.

En el caso normal de operación, las plantillas de documentación son llenadas

por el mismo profesional que realiza el trabajo, ya sea analista, DBA o

programador. Además, la plantilla para revisión de cada fase, debería ser

llenada por un supervisor técnico o al menos el encargado de pruebas del

sistema. Sin embargo, de antemano se sabe por disponibilidad de recursos, el

mismo encargado de crear los artefactos tendrá que realizar la revisión de su

trabajo.

Para la revisión de la validación, es altamente importante que se asigne a un

encargado independientemente del proyecto y la metodología. Debe ser una

persona con amplios conocimientos técnicos de los procesos de desarrollo de

Page 116: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

104

sistemas de software, y que además haya tenido suficiente tiempo de asimilar

la metodología. La razón de esto es que se puede aprovechar al máximo la

objetividad de una persona que no sea juez ni parte, sino que haga la

verificación lo más completa y que sus hallazgos no sean sesgados.

Incluso, si se pudiera tener 2 proyectos pilotos, esa persona se podría

mantener a lo largo de ellos para aprovechar la experiencia que va acumulando

en cada aplicación.

El anexo 12.16 muestra una propuesta de plan de implementación para esta

metodología. Este plan incluye aspectos como selección del piloto, del

personal y capacitación, ciclos de construcción de servicios SOA con la

metodología y análisis de resultados. Luego de esto, ya se puede considerar a

la metodología como apta para oficializarla.

Page 117: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

105

9. CONCLUSIONES

• Para la implementación de un proyecto de este tipo, es indispensable el

contar con el apoyo de las altas esferas y las instancias con poder de

decisión. Esto es un reto particularmente difícil porque las instituciones

como el BCCR están sujetas a presupuestos muy limitados para actividades

como estas, lo que siempre lleva a escases de tiempo y recursos.

• Las tareas iniciales para crear un servicio SOA son bastante similares entre

sí, independientemente del sistema o negocio en el que se esté trabajando.

Las particularidades normales de cada caso empiezan a surgir conforme el

proyecto avanza, sobretodo en la parte compleja de la implementación. Esta

metodología se enfoca más en las tareas de planeación y en las etapas

iniciales del desarrollo, pero con eso busca sentar las bases para un

producto sólido. En las etapas posteriores a esto, es necesario ejercer el

correspondiente control y seguimiento.

• Con el tiempo y la evolución normal de la tecnología, la especificación de

los pasos para efectuar cada tarea pueden cambiar. Esto no significa que la

metodología esté incompleta ni que le falte información, sino que hay que

poner mucha atención a la tendencia de las nuevas herramientas que están

surgiendo constantemente, para descubrir su nueva funcionalidad y así

aplicarlo de la mejor forma a esta metodología, y por ende, a los sistemas y

aplicaciones del BCCR. Eventualmente podrían surgir nuevas tareas en

cierta área o bien algunas que se fusionen entre sí o bien que se eliminen

del todo. Esto es algo inherente a la tecnología, está en una constante

evolución y se debe mantener una constante revisión de todos los procesos.

• Estandarizar todo es imposible. Además, aunque se tratara de estandarizar

a un nivel muy minucioso, la aplicación de las reglas sería poco factible y

Page 118: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

106

ágil, algo contrario a lo que espera de una metodología de desarrollo, pues

toma mucho tiempo y limita en mucho la creatividad de las personas. El

secreto está en encontrar el punto de equilibrio entre lo estándar y lo no

estándar, para así poder obtener el valor agregado de ambas partes.

Buscar estandarizar en las etapas iniciales del proyecto, para luego dar más

apertura es la estrategia propuesta en esta metodología.

• Es poco probable que todas las aplicaciones de una entidad, en este caso

el BCCR, se apeguen al mismo estándar. Algunos son sistemas legados

que fueron construidos con otras reglas y otras herramientas, mientras que

otros son comprados a terceros como “paquete” (o sea, no son

desarrollados en el BCCR), por lo cual no es esperable que se ajuste a este

estándar.

• Dado que para el desarrollo y mantenimiento de algunos sistemas el BCCR

subcontrata por outsourcing a empresas externas, es vital que esas

empresas se ajusten a estos estándares al igual que si fuera un desarrollo

interno por personal del BCCR.

• La calidad de las aplicaciones finales, para los usuarios de las áreas de

negocio, se verá afectada directamente de manera positiva. Las

herramientas de control de calidad propuestas van a tener una incidencia

muy positiva en los productos de software obtenidos, ya que los van a hacer

más íntegros, completos y robustos. Similar sucede con el control del

tiempo.

• En general, el enfoque de administración de proyectos dado al proceso de

creación de un servicio SOA encaja perfectamente en la naturaleza del

trabajo por realizar y la distribución de las tareas en el tiempo. El

complemento de las herramientas propuestas aporta mucha solidez en

Page 119: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

107

todos los aspectos, lo cual redunda en mejoras en todos los niveles del

trabajo.

• En términos generales, una metodología como esta, conocida por todos y

aplicada de manera correcta, ayudará a facilitar los procesos de creación y

mantenimiento de sistemas, lo cual reducirá costos y mejorará la calidad del

soporte que se le da al negocio.

Page 120: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

108

10.RECOMENDACIONES

• El trabajo de mantenimiento de sistemas es similar al desarrollo en algunas

características. Por ejemplo, cuando por mantenimiento hay que crear

nuevos componentes. Sin embargo, existe otra gran gama de tareas en

mantenimiento muy diversas y distintas a lo expuesto en este documento.

Es necesario establecer lineamientos paralelos a esta metodología para el

mantenimiento de sistemas.

• Mantener una constante investigación sobre nuevas herramientas y

técnicas de desarrollo de aplicaciones de software, sobre todo en lo

relacionado con el mundo Microsoft, para obtener información de primera

mano que pueda utilizarse para mejorar los procesos de construcción de

software en el BCCR.

• Como complemento a este estándar, debe ser analizado y promulgado un

estándar para la construcción de interfaces de usuario. Este estándar debe

considerar el diseño y características de pantallas de windows, formularios

web y reportes, para lograr homogeneidad en todos los sistemas, para

facilitar el uso por parte de los usuarios.

• Parte importante del diseño de aplicaciones es la seguridad. Paralelo a este

estándar se deben establecer reglas para incorporar esquemas de

autorización, autenticación, permisos, roles y privilegios para componentes

y aplicaciones.

• Esta metodología no considera aspectos de auditoría de sistemas.

Eventualmente, puede ser conveniente coordinar con los auditores de

sistemas computacionales para ver las necesidades que ellos tienen en su

Page 121: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

109

trabajo y considerar cualquier actualización que pueda tener esta guía para

facilitarles la labor.

• En la práctica, una metodología como esta nunca se termina de aplicar.

Más bien, es un proceso cíclico de mejora continua. Esto se presenta por la

naturaleza del desarrollo de software. Debe haber un esfuerzo general por

mantener actualizados todos los tópicos que conforman esta metodología.

• Los mecanismos de control propuestos (y los nuevos que se establezcan en

un futuro) deben ser vistos como herramientas para mejorar el trabajo. Es

claro que esto implica un cambio cultural entre las personas, pero es un

paso necesario que dar. Durante mucho tiempo ha sido común que se

llenen plantillas y nunca se aprovecha en nada la información ahí contenida.

Por lo general, suelen ser documentos poco actualizados y que no aportan

mucho conocimiento. La idea es cambiar esto.

• La documentación no debe ser solamente escribir hojas y hojas por

llenarlas. Similar al nivel de estandarización a aplicar, es vital encontrar el

punto exacto de tal manera que la información sea útil y que su elaboración

y administración sea ágil.

Page 122: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

110

11.BIBLIOGRAFÍA

Arsanjani, A. (2004). Service-oriented modeling and architecture. IBM Corporation. Extraído el 21 Octubre, 2007 de http://www-128.ibm.com/developerworks/webservices/library/ws-soa-design1/

Blázquez, M. (2005). La arquitectura N-Tier: Activo fundamental para el diseño de sistemas de información avanzados. Extraído el 19 Noviembre, 2007 de http://sirmijail.blogspot.com/2005/07/la-arquitectura-n-tier-i-activo.html

Banco Central de Costa Rica. (2007). (Página WEB principal). San José, Costa Rica. Extraído el 16 Octubre, 2007 de http://www.bccr.fi.cr/.

Chamoun, Y. (2002). Administración profesional de proyectos. Una guía práctica para programar el éxito de sus proyectos. México: McGraw Hill Interamericana.

Costa Rica, Asamblea Legislativa. (1950). Ley 1130. San José, Costa Rica

Eiipe, F. (2007) Asses and improve the capabilities of an organization for managing projects, programs and portfolios to achieve its strategic goals. Explanation of OPM3 of PMI. Extraído el 28 Octubre, 2007 de http://www.12manage.com/methods_pmi_opm3.html.

Ford, R. C. & Randolph, A. (1992) Cross-functional structures: a review and integration of matrix organization and project management. Journal of Management, June.

Gido, J. & Clements, J. (2003). Administración exitosa de proyectos. México: Internacional Thompson Editores S.A. Segunda edición.

Lublinsky, B. (2007) Defining SOA as an architectural style. Extraído el 21 Octubre, 2007 de http://www.ibm.com/developerworks/library/ar-soastyle/index.html.

Oppenheimer, P. (2004). Top-down network design. España: Cisco Systems. Segunda Edición.

Pijanowsky, K. (2007). Visibility and Control in a Service-Oriented Architecture. Microsoft Corporation. Extraído el 16 Noviembre, 2007 de http://msdn2.microsoft.com/en-us/architecture/bb507204.aspx

Project Management Institute. (2004). Guía de los fundamentos de la dirección de proyectos PMBok Guide. Pennsylvannia, Estados Unidos.

Page 123: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

111

Roch, E. (2006). SOA Design. Extraído el 20 Octubre, 2007 de http://blogs.ittoolbox.com/eai/business/archives/services-uml-uses-cases-for-soa-8980.

Shaw, M. & Garland, D. (1996). Software Architechture: Perspectives on a emerging discipline: A classical description of software architecture. Estados Unidos: Prentice-Hall.

Thiry, M. (2002). Project Management Pathways. United Kingdom: Association for Project Management.

Trowbridge, D. Mancini, D. Quick, D. Gregor, H. Newkirk, J. Lavigne, D. (2003) Enterprise solution patterns using Microsoft. NET. Estados Unidos: Microsoft Corporation.

Vega, O. (2006). Tipos de organizaciones. Ponencia presentada en el curso Introducción a la Administración de Proyectos. Universidad para la Cooperación Internacional. San José, Costa Rica.

Page 124: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

112

12.ANEXOS

Page 125: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

113

12.1.Charter del proyecto

ACTA (CHARTER) DEL PROYECTO

Información principal y autorización de proyecto

Fecha:9 de Octubre de 2007

Nombre de Proyecto:

Metodología para la creación de servicios SOA en la División de Servicios Tecnológicos del Banco Central de Costa Rica

Áreas de conocimiento / procesos:

Alcance, Tiempo y Calidad. Implícitamente está Integración

Área de aplicación (sector / actividad):

Sistemas de software bancarios (Banca y Finanzas)Sistemas de información

Fecha de inicio del proyecto:

8 de Octubre de 2007

Fecha tentativa de finalización del proyecto:

31 de Marzo de 2008

Objetivos del proyecto (general y específicos):

General:Dotar a la División de Servicios Tecnológicos del Banco Central de Costa Rica de una metodología que le permita crear de manera eficiente y estandarizada los servicios SOA que serán la base para construir una plataforma de software robusto y flexible

Específicos:• Identificar las tareas básicas que se requieren en un proceso de creación de un servicio SOA y la

forma en la que cada tarea debe ser efectuada, para delimitar el alcance de cada producto.• Estandarizar las interfaces e implementaciones de los servicios para todas las aplicaciones nuevas que

se solicitan por parte del negocio, para mantener uniformidad en los componentes que faciliten el entender su uso y el trabajo de mantenimiento.

• Definir los mecanismos de control que van a permitir concluir exitosamente cada uno de los servicios que se construyan bajo esta metodología.

• Definir la documentación interna y externa que va a cumplir cada uno de los servicios para contribuir con la calidad del producto y facilitar la consulta y reutilización de la funcionalidad.

• Definir un conjunto de buenas prácticas que aplique para el proceso de diseño y construcción de los servicios, a lo largo de todo el ciclo, para facilitar el mantenimiento posterior.

• Validar parcialmente la metodología, haciendo como mínimo una revisión del documento con los compañeros de las áreas involucradas en proyectos de este tipo, para verificar la aplicabilidad de la guía.

Descripción del producto y entregables (relacionados con el objetivo general y específicos respectivamente):

El producto final de este proyecto es un documento con una metodología que ayude en el desarrollo de servicios SOA. Dicha metodología debe detallar las tareas básicas que se requieren para crear un servicio y la forma en la que debe ser desarrollada cada una (ligados por lineamientos estándar). Además, debe especificar una plantilla con el cronograma estándar para cada desarrollo y todas las herramientas para el control de las actividades y el seguimiento de calidad. También debe de apoyarse en plantillas que favorezcan el seguimiento de las tareas de control y las labores de los distintos involucrados.Los entregables son una plantilla de EDT, junto con un cronograma ligado a esta plantilla, con la

Page 126: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

114

definición y secuencia de las tareas estándar para crear un servicio. La idea de este documento es que sea base cuando se empiece un proyecto de creación de un servicio. Además, un documento con el estándar para desarrollar componentes y sus interfaces, tanto a nivel de estilo, componentes, nomenclatura, herramientas y cualquier otro aspecto técnico.También, un entregable consiste en un listado de plantillas que documenten el control y seguimiento del proyecto, sobre todo en los hitos más importantes, para garantizar un desempeño adecuado. Similarmente, se proveerá un documento con el estándar de la documentación necesaria, tanto técnica como de usuario final. Otro entregable es un listado inicial de las buenas prácticas de diseño y programación que se deben aplicar en cada paso del proceso. Es entendible que un documento de este tipo varía constantemente, pues la tecnología mejora rápidamente. La idea es que sea un planteamiento inicial que vaya evolucionando.Finalmente, el último entregable es un formulario que recolecta información sobre la aplicación de la metodología a proyectos piloto. De este formulario se puede obtener importante retroalimentación que valida la metodología y permite que se pueda mejorar antes de su publicación oficial.

Necesidad del proyecto (lo que da origen):

La necesidad principal está ligada al avance tecnológico que toda organización actual debe tener para cumplir de manera concreta y eficiente en su negocio. SOA (Service-Oriented Architecture) es la nueva tendencia de Microsoft para la creación de grandes plataformas tecnológicas en las distintas organizaciones. Dado que el Banco Central de Costa Rica es una institución que se apoya en las herramientas de Microsoft para todas sus labores de negocios, y que todas estas herramientas se conciben enfocadas en arquitecturas como SOA, este tipo de servicios serán clave en el desarrollo de nuevas aplicaciones que cubran necesidades recientes, o bien que sean migradas de arquitecturas obsoletas a otras más nuevas.

Justificación de impacto (aporte y resultados esperados):

La utilización de servicios SOA presenta muchas ventajas para las organizaciones que tienen procesos de desarrollo de sistemas. Permiten una gran flexibilidad a la hora de crear aplicaciones y además son versátiles y sencillos de mantener.Contar con una metodología que asista en la creación de estos servicios será un paso importante para construir una infraestructura de software moderna y con buenas bases, pensando en las nuevas tendencias que se menciona van a predominar en el futuro. Dicha metodología tiene un estándar que garantiza un mínimo de funcionalidad esperable en cada servicio. Igualmente, dicho estándar aumenta las posibilidades de crecimiento gracias a la uniformidad de los servicios SOA, y así se puede aspirar a nuevas aplicaciones de una manera más sencilla por la reutilización de código. Finalmente, con esta metodología, el mantenimiento de los sistemas se facilita mucho por la encapsulación de la información y la independencia en las pruebas.Es de esperar que esta metodología sea el punto de partida para la creación de todos los servicios que van a formar parte de las aplicaciones actuales y futuras del BCCR, y que con esto, se obtengan ahorros en presupuesto de mantenimiento y en tiempos de desarrollo.

Restricciones / limitantes / factores críticos de éxito:

• Los proyectos relacionados al área informática tienen la particularidad de que a nivel de costos, el único aspecto que suele tener participación es la cantidad de horas hombre. Por su naturaleza, un proyecto informático, como en este caso la creación de un servicio SOA, no requiere de herramientas o materiales adicionales, sino que las computadoras y software ya se tienen en la organización. A nivel de costo, se resume a horas trabajadas por los miembros de los equipos. Debido a esto, el manejo del costo se simplifica mucho. Para efectos de esta metodología, no se toma en cuenta la administración de costos.

• La metodología no incluye herramientas o consideraciones adicionales para la auditoría interna del BCCR. De hecho, una vez creada la metodología y estando en funcionamiento, la auditoria se basa en

Page 127: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

115

ella para crear sus procedimientos. Antes de contar con la metodología es innecesario tener en cuenta a la auditoria pues no se sabe cómo van a proceder.

• La metodología se concentra en las tareas y procedimientos necesarios para crear un servicio nuevo, previamente inexistente y cuya necesidad no ha sido cubierta por algún otro componente de software o proceso manual. No se incluye en esta metodología los procesos que sean necesarios para dar mantenimiento a dicho servicio en caso de falla o actualización.

• La metodología no incluye elementos específicos para la seguridad de aplicaciones, certificados digitales, encripción de datos, validaciones de usuarios ni ningún otro aspecto relacionado.

• La metodología no incluye la creación de componentes de software para la interfaz de usuario final, sino solamente la interfaz de orquestación para servicios.

•Identificación de grupos de interés (stakeholders):Cliente(s) directo(s):

• Analistas/Diseñadores: Utilizan esta metodología activamente para sus labores diarias cuando es requerido analizar o diseñar un nuevo servicio. Por lo general, suelen participar activamente en todas las tareas, pero sobretodo en las primeras etapas del proyecto

• Desarrolladores: Utilizan esta metodología activamente para sus labores diarias, cuando están avocados a la construcción del servicio. Suelen participar más en las tareas finales del proyecto

• Encargados de pruebas: Utilizan esta metodología a la hora de establecer planes de pruebas y luego al aplicarlos sobre los componentes.

Clientes indirectos:

• Usuarios de negocio: Elaboran requerimientos y solicitudes de mejoras que dan pie a la creación de servicios SOA, y por lo tanto al inicio de proyectos de creación de componentes. Además, con sus comentarios o aclaraciones se obtiene valiosa información que puede ser usada para actualizar la metodología.

• Auditores: Confeccionan y aplican auditorias para comprobar que la metodología se está aplicando de la manera en la que se indicó que iba a ser utilizada.

Aprobado por: Firma:

Page 128: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

116

12.2.Declaración de alcance

Proyecto: Metodología para la creación de servicios SOA en el BCCR

Fecha: Junio 2008

Planteo del problema (necesidad, oportunidad) y justificación del proyecto:

Existe actualmente una gran diversidad de herramientas tecnológicas para el desarrollo de sistemas de software. Esto implica también la aparición de estándares, prácticas y convenciones para los componentes de software. Si una organización tan grande y compleja como el BCCR no adopta una metodología para desarrollar sistemas, corre el riesgo de que pueda llegar a tener una mezcla de aplicaciones base, lo cual haría que se dificulte el mantenimiento de los sistemas. El BCCR se apoya en su gran mayoría en tecnología Microsoft , lo cual es ampliamente flexible y escalable. Los servicios SOA son un tipo de componente de software que constituyen una sólida base para las aplicaciones de ambiente Windows ó Web actuales, y presentan muchas ventajas de reutilización y mantenimiento. Entonces, con una metodología para crear estos servicios, se tiene un paso importante para lograr una infraestructura de software sólida y moderna, con gran capacidad de crecer en el futuro y mantenerse siempre actualizada. Todo esto al final se verá reflejado en ahorros para el mantenimiento y desarrollo de sistemas en la organización.

Objetivo(s) del proyecto:

El objetivo general de este proyecto es dotar a la División de Servicios Tecnológicos del BCCR de una metodología para crear servicios de software tipo SOA de una manera eficiente y estándar, y que puedan servir como base de la plataforma de software. Esta metodología se apoya en herramientas para la gestión y control de proyectos.Los objetivos específicos son la identificación de tareas básicas requeridas para crear un servicio SOA, el establecimiento de un estándar para las interfaces entre componentes y su implementación, la oficialización de los mecanismos de control para cada proceso de creación de servicios, los estándares de documentación interna y externa, las buenas practicas que se puedan aplicar en las etapas del proceso y la validación parcial de la metodología.

Producto principal del proyecto:

El principal producto es el documento con la metodología que guía en el desarrollo de servicios SOA

Entregables del proyecto:

Aparte de del documento con la metodología, que incluye los estándares de programación y documentación, la descripción de tareas y su secuencia (una plantilla de EDT), otros entregables son la guía de buenas prácticas de programación, un machote de cronograma con la definición y secuenciación de las tareas para crear un servicio, las plantillas para

Page 129: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

117

documentación y control del proceso (a nivel de hitos). También, con entregable está el formulario para obtener retroalimentación de la validación.

Límites del proyectoEl proyecto no tiene consideraciones en cuanto a costos. Esto por cuanto en informática, la única variable relacionada en costos de proyectos es horas-hombre. No existen compras de materiales, equipos o subcontrataciones más allá de lo que ya tiene el BCCR.Otra limitante es con la Auditoría Interna del BCCR. Cuando se empiece a utilizar esta metodología y los auditores empiecen a validarla, se podrán aplicar ajustes concernientes a esta área. Inicialmente, no tiene sentido establecer lineamientos pues no se sabe que pueden pedir en un futuro.La metodología no toma en cuenta el proceso de mantenimiento, solamente la creación del servicio nuevo. Lo cierto es que si se aplica el procedimiento de creación, el mantenimiento se verá favorecido.Finalmente, no se toman consideraciones especiales con respecto a la seguridad de las aplicaciones. Dicho tema se maneja a otros niveles más generales, como servidores físicos ó bases de datos.

AsuncionesSe asume que ya el BCCR tiene compradas e instaladas todas las licencias y herramientas necesarias para aplicar esta metodología.Igualmente, se asume que todo el personal conoce dichas herramientas y las puede operar de la mejor manera.

RiesgosExiste un riesgo muy bajo de que Microsoft decida descontinuar las herramientas tipo SOA, lo cual obligaría a que se tenga que migrar todas las aplicaciones a un nuevo esquema.

Page 130: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

118

12.3.EDT del Servicio SOA

Page 131: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

119

12.4.Cronograma del Servicio SOA

Page 132: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

120

12.5.Plantilla de Caso de Uso

Propósito:<<Sección que detalla en prosa el propósito para el cual este servicio SOA sería creado. Explica la función o funciones principales del servicio y la ventaja que se va a obtener con esto.>>

Justificación:<<Sección que detalla en prosa una justificación desde el punto de vista del negocio o de la arquitectura de los sistemas, que sirve como respaldo a la propuesta de crear un proyecto nuevo con la creación de este servicio SOA.>>

Precondiciones:<<Sección que detalla con viñetas la lista de todas las condiciones que deben existir antes de que este servicio empiece como proyecto y entre en operación, para que pueda cumplir con su función. Por ejemplo, si este servicio va a utilizar otro existente para lograr un resultado, entonces una precondición es que debe haber una interfaz entre ambos. >>

Escenarios de uso:Necesidad Respuestas del servicio

<<Explicación de una necesidad>> <<Acciones que toma el servicio para cubrir esa necesidad>>

Poscondiciones:<<Sección que detalla con viñetas la lista de todas las condiciones de datos, componentes o funciones que quedan disponibles o cambiadas a partir del momento que el proyecto termina y el servicio entra en operación. Por ejemplo, una poscondición es que se automatiza una tarea que antes era manual o un cierto dato que se utilizaba en un formato ahora se utiliza en otro a raíz de un cambio hecho en el servicio.>>

Restricciones:<<Sección que detalla con viñetas las restricciones en cuanto a funcionalidad que no forman parte del alcance de este servicio SOA.>>

Requerimientos funcionales:<<Sección que detalla con viñetas la lista de los requerimientos funcionales específicos de este servicio SOA, derivados de toda la información anterior. >>

Metodología para Creación de Servicios SOAPlantilla: Documento de Caso de UsoVersión: 1.0Fecha de elaboración: _______________________Analista encargado: _______________________Departamento/Área: _______________________

Page 133: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

121

12.6.Plantilla para Diseño

Diseño gráfico del servicio:<<Sección que muestra un gráfico de capas, detallando las capas utilizadas, los principales componentes de software por capa y las relaciones entre estos. Se puede utilizar cualquier herramienta de graficación, siempre y cuando el detalle sea lo más claro posible>>

Componentes por capa:Capa Componente DescripciónDS <<Componente X del DS>> <<Descripción del componente X>>

<<Componente Y del DS>> <<Descripción del componente Y>>

BS <<Componente Z del BS>> <<Descripción del componente Z>>

BE <<Componente W del BE>> <<Descripción del componente W>>

Relaciones:<<Sección que detalla en prosa las distintas relaciones (interacciones) entre los diversos componentes del servicio. Aplica tanto entre capas como dentro de cada una. Es una especificación detallada del gráfico con el diseño del servicio >>

Escenarios de prueba:Escenario Prueba

<<Explicación del ambiente y funcionalidad que se desea probar. Incluye datos ó estados de entrada tan reales como sea posible.. También cualquier detalle de configuración o uso debe ser bien claro para que se pueda recrear el escenario una y otra vez en un ambiente controlado.>>

<<Descripción detallada de la prueba que se va a realizar en cada uno de los escenarios. Podría haber múltiples pruebas dentro de un mismo escenario. Deben ordenarse de las más sencillas a las más complejas. Incluye los resultados esperados (de acuerdo a los datos de entrada)>>

Metodología para Creación de Servicios SOAPlantilla: Documento de DiseñoVersión: 1.0Fecha de elaboración: _______________________Analista encargado: _______________________Departamento/Área: _______________________

Page 134: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

122

12.7.Plantilla de revisión de calidad para Diseño

Caso de Uso:¿Existe el documento? ¿Está completo? ¿Es íntegro? ¿Es consistente?¿Todos los escenarios están apegados al servicio?¿Hay restricciones que deberían ser tomadas dentro del alcance? ¿Cuáles y por qué?¿Hay actores que no se están considerando? ¿Hay actores que sobran? ¿Cuáles y por qué?

Diseño del componente:¿Todas las capas han sido consideradas? ¿Alguna no aplica? ¿Cuál y por qué?¿Hay componentes para todas las capas que aplican en el servicio?¿Hay relaciones entre todos los componentes?

Pruebas:¿Existe al menos un escenario de pruebas?¿Existe al menos una prueba dentro de cada uno de los escenarios?¿Están considerados todos los datos de entrada y resultados esperados?

Resultados de las pruebas:Prueba Resultado

<<Descripción de la prueba>> <<Descripción del resultado de la prueba>>

Acciones de mejora:<<Descripción de las acciones de mejora aparecidas en este diseño que pueden aplicarse a otros posteriores. También debilidades, oportunidades y fortalezas detectadas. >>

Metodología para Creación de Servicios SOAPlantilla: Revisión de DiseñoVersión: 1.0 Fecha de revisión: ___________Revisor: _______________________Analista: _______________________Departamento/Área: _______________________

Page 135: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

123

12.8.Plantilla para Base de Datos

Diseño gráfico de la base de datos:<<Sección que muestra un gráfico de entidades y relaciones de base de datos. Se puede utilizar cualquier herramienta que genere gráficos, pero lo más importante es que quede bien claro. Algunas entidades podrían ser creadas en este servicio y otras ya existen y pertenecen a otros servicios, pero acá se deben mostrar todas las involucradas. >>

Diccionario de datos:Tabla Columna Descripción

<<Tabla 1: Descripción>>

<<Columna 1>> <<Descripción de la columna 1>><<Columna 2>> <<Descripción de la columna 2>>

<<Tabla 2: Descripción>>

<<Columna 1>> <<Descripción de la columna 1>>

<<Tabla 3: Descripción>>

<<Columna 1>> <<Descripción de la columna 1>>

Procedimientos almacenados:Procedimiento Parámetro Descripción<<Proc 1: Descripción>>

<<Parámetro 1>> <<Descripción del parámetro 1>><<Parámetro 2>> <<Descripción del parámetro 2>>

<<Proc 2: Descripción>>

<<Parámetro 1>> <<Descripción del parámetro 1>>

<<Proc 3: Descripción>>

<<Parámetro 1>> <<Descripción del parámetro 1>>

Scripts de pruebas unitarias:Procedimiento Script de pruebas Descripción de las pruebas

<<Proc 1>> <<Script de pruebas Proc 1>> <<Descripción de las pruebas en el script>><<Proc 2>> <<Script de pruebas Proc 2>> <<Descripción de las pruebas en el script>><<Proc 3>> <<Script de pruebas Proc 3>> <<Descripción de las pruebas en el script>>

Metodología para Creación de Servicios SOAPlantilla: Base de datosVersión: 1.0Fecha de elaboración: _______________________Analista encargado: _______________________Departamento/Área: _______________________

Page 136: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

124

12.9.Plantilla de revisión para Base de Datos

Entidades:¿Existe al menos una entidad nueva? ¿Está justificada su creación? ¿Es consistente en el resto de la BD?¿Todas las entidades existentes cuentan con llave primaria?¿Los nombres de las entidades y sus respectivas columnas están acordes al estándar vigente? ¿Cuáles no y por qué?

Procedimientos almacenados:¿Los nombres de los procedimientos almacenados están acordes al estándar vigente? ¿Cuál no y por qué?¿Los parámetros de los procedimientos almacenados tienen tipos definidos y nombres dentro del estándar?¿Los tipos de datos retornados son tipos definidos?

Pruebas:¿Existe al menos un escenario de pruebas?¿Existe al menos una prueba dentro de cada uno de los escenarios?¿Están considerados todos los datos de entrada y resultados esperados?

Resultados de las pruebas:Prueba Resultado

<<Descripción de la prueba>> <<Descripción del resultado de la prueba>>

Acciones de mejora:<<Descripción de las acciones de mejora aparecidas en este diseño de base de datos que pueden aplicarse a otros posteriores. También debilidades, oportunidades y fortalezas detectadas. >>

Metodología para Creación de Servicios SOAPlantilla: Revisión de Base de DatosVersión: 1.0 Fecha de revisión: ___________Revisor: _______________________Analista: _______________________Departamento/Área: _______________________

Page 137: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

125

12.10.Plantilla para Componentes de Software

Capa: __________________Solución Visual Studio: __________________

Colección de clases:Clase Funciones Descripción de parámetros

<<Clase 1: Tipo de acceso>>

<<Función 1: Descrip.: Retorno>> <<Parámetro 1: Tipo : Descripción>><<Función 2 : Descrip.: Retorno>> <<Parámetro1: Tipo: Descripción>>

<<Clase 2: Tipo de acceso>>

<<Función 1: Descrip: Retorno>> <<Parámetro 1: Tipo: Descripción>>

<<Clase 3: Tipo de acceso>>

<<Función 1: Descrip.: Retorno>> <<Parámetro 1: Tipo: Descripción>>

Pruebas unitarias:Clase prueba Funciones prueba Descripción de pruebas unitarias

<<Clase pruebas 1>> <<Función pruebas 1: Descripción>>

<< Descripción del contenido de la función de la prueba unitaria>>

<<Función pruebas 2 : Descripción>>

<< Descripción del contenido de la función de la prueba unitaria>>

<<Clase pruebas 2>> <<Función pruebas 1: Descripción>>

<< Descripción del contenido de la función de la prueba unitaria>>

<<Clase pruebas 3 >>

<<Función pruebas 1: Descripción>>

<< Descripción del contenido de la función de la prueba unitaria>>

Metodología para Creación de Servicios SOAPlantilla: Componentes de SoftwareVersión: 1.0Fecha de elaboración: _______________________Analista encargado: _______________________Departamento/Área: _______________________

Page 138: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

126

12.11.Plantilla de revisión para componentes de Software

Capas:¿Se especifica claramente la capa a la que pertenece el componente?¿Se especifica claramente la solución a la que pertenece el componente?¿La solución tiene nombre estándar?

Clases:¿Existe al menos una clase declarada en el componente?¿Todas las clases tienen nombres acordes al estándar? ¿Todas tienen tipos de acceso claramente definidos?¿Existe al menos una función en cada una de las clases? ¿Las funciones o propiedades tienen nombres estándar? ¿Los parámetros de todas las funciones y los tipos de datos retornados están claramente definidos y están acordes con el estándar vigente?

Pruebas:¿Existe al menos un escenario de pruebas?¿Existe al menos una prueba dentro de cada uno de los escenarios?¿Están considerados todos los datos de entrada y resultados esperados?

Resultados de las pruebas:Prueba Resultado

<<Descripción de la prueba>> <<Descripción del resultado de la prueba>>

Acciones de mejora:<<Descripción de las acciones de mejora aparecidas en este componente que pueden aplicarse a otros posteriores. También debilidades, oportunidades y fortalezas detectadas. >>

Metodología para Creación de Servicios SOAPlantilla: Revisión de SoftwareVersión: 1.0 Fecha de revisión: ___________Revisor: _______________________Analista: _______________________Departamento/Área: _______________________

Page 139: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

127

12.12.Plantilla para documentación externa e integración

Nombre del servicio: ___________________________________________

Descripción: <<Descripción en prosa del servicio, lo más general posible. Concepción desde el punto de vista de la plataforma tecnológica y lo que va a aportar. Funcionalidad básica, restricciones y características principales, todo desde el punto de vista del negocio.>>

Interfaz pública:Funciones Descripción de parámetros Ejemplo de uso

<<Función 1: Descrip.: Retorno>>

<<Parámetro 1: Tipo : Descripción>> <<Ejemplo de uso para la función 1>>

<<Función 2 : Descrip.: Retorno>>

<<Parámetro1: Tipo: Descripción>> <<Ejemplo de uso para la función 2>>

<<Función 1: Descrip: Retorno>>

<<Parámetro 1: Tipo: Descripción>> <<Ejemplo de uso para la función 1>>

<<Función 1: Descrip.: Retorno>>

<<Parámetro 1: Tipo: Descripción>> <<Ejemplo de uso para la función 1>>

Integración técnica:<<Se detalla en prosa las consideraciones tecnológicas que se deben tomar para integrar este servicio SOA dentro de la plataforma. Por ejemplo, puede que este servicio venga a sustituir a otro u otros ya obsoletos que pueden ser eliminados>>

Integración de negocio:<<Se detalla en prosa las consideraciones a nivel de negocio que se deben tomar para incorporar este servicio a la plataforma de funciones disponibles. Aunque los usuarios no utilizarán directamente estos servicios (sino las aplicaciones que los consumen), en muchos casos el efecto indirecto de la nueva funcionalidad llega a ser percibida por el usuario final>>

Metodología para Creación de Servicios SOAPlantilla: Documentación Externa e IntegraciónVersión: 1.0Fecha de elaboración: _______________________Analista encargado: _______________________Departamento/Área: _______________________

Page 140: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

128

12.13.Plantilla para documento de validación

Caso de uso

¿Existe el documento de caso de uso del servicio SOA?¿Se detalla el propósito para el servicio SOA?¿Se detalla una justificación válida para el servicio SOA?¿Se detallan las precondiciones para la implementación del servicio SOA? ¿Son válidas?¿Se detallan las necesidades del servicio y las correspondientes acciones que se implementan para cubrir esas necesidades?¿Se detallan las poscondiciones para la implementación del servicio SOA?¿Se detallan las restricciones para la implementación del servicio SOA?¿Se detalla la lista de requerimientos funcionales?

Diseño

¿Existe el documento de diseño del servicio SOA?¿Existe una representación gráfica del diseño del servicio? ¿Dicha representación es consistente con la descripción de capas y componentes del sistema?¿Cada componente tiene la definición de todos sus componentes en las capas inferiores?¿Existen componentes por capa que no tengan descripción asociada en el diseño?¿Existen componentes que no tengan relaciones dentro del modelo? ¿Existen relaciones circulares o relaciones que no apunten a componentes?¿Existen relaciones que salten capas o que salgan del scope del servicio sin una interfaz adecuada?¿Cada escenario de prueba está asociado a una prueba correspondiente?¿Todos los escenarios tienen definidas sus características y datos de entrada, como mínimo?¿Las pruebas para cada escenario están ordenadas de lo más sencillo a lo más complejo?¿Todas las pruebas tienen la descripción de los resultados esperados?

Metodología para Creación de Servicios SOAPlantilla: Revisión de metodología (PILOTO)Versión: 1.0Fecha de elaboración: _______________________Analista encargado: _______________________Departamento/Área: _______________________

Page 141: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

129

¿Existe el documento de revisión del diseño para el servicio SOA?¿Se registran los resultados de la aplicación de pruebas? ¿Cuál no y por qué?¿Se detallan las acciones de mejora a ser seguidas? ¿Si no se detallan, por qué?

Base de datos

¿Existe el documento de base de datos?¿Existe una representación gráfica del diseño de la base de datos? ¿Esta representación es consistente con la definición de entidades y relaciones?¿Existe una descripción para todas las entidades (tablas) del servicio? ¿Cuál no y por qué??¿Existe una descripción para todas las columnas de todas las tablas del servicio? ¿Cuál no y por qué?¿Todos los nombres de las entidades están apegados al estándar?¿Existe una descripción para todos los procedimientos almacenados del servicio? ¿Cuál no y por qué?¿Existe una descripción para todos los parámetros de los procedimientos almacenados del servicio? ¿Cuál no y por qué?¿Todos los nombres de los procedimientos almacenados están apegados al estándar?¿Todos los procedimientos almacenados tienen al menos 1 scripts de pruebas asociado?¿Todos los script de pruebas tienen una descripción de la tarea que realizan?¿Existe el documento de revisión de la base de datos?¿Están registrados todos los resultados de las aplicaciones de script de pruebas? ¿Cuál no y por qué?¿Están registradas las acciones de mejora a ser seguidas? ¿Si no se detallan, por qué?

Componentes de software

¿Existe el documento de software?¿Se indica claramente la capa a la que pertenece el componente?¿Se indica claramente la solución de Visual Studio a la que pertenece el componente?¿Cada clase especifica su nombre y tipo de acceso?¿Todas las clases tienen nombres apegados al estándar? ¿Cuáles no y por qué?¿Todas las clases tienen al menos una función o propiedad definida?¿Todas las funciones tienen una descripción? ¿Cuál no y por qué?¿Los nombres de las funciones o propiedades están

Page 142: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

130

apegados al estándar?¿Todos los parámetros tienen nombres apegados al estándar? ¿Cuál no y por qué?¿Todos los parámetros tienen una descripción asociada?¿Existe una clase de prueba por cada uno de las clases de la colección del componente?¿Todas las clases de prueba tienen nombres apegados al estándar? ¿Cuál no y por qué?¿Todas las clases de prueba tienen al menos un método de pruebas definido?¿Todas las funciones de prueba tienen una descripción asociada?¿Todas las pruebas unitarias tienen una descripción asociada?¿Se registran los resultados de la aplicación de todas las pruebas unitarias? ¿Cuál no y por qué?Están registradas las acciones de mejora a ser seguidas? ¿Si no se detallan, por qué?

Documentación externa

¿Existe el documento de documentación externa?¿El servicio tiene nombre claramente especificado?¿Existe una descripción adecuada para el servicio?¿Existe una interfaz pública para el servicio?¿Todas las funciones tienen su descripción y valor de retorno? ¿Cuál no y por qué?¿Todos los parámetros tienen su tipo y descripción? ¿Cuál no y por qué?¿Todas las funciones de la interfaz pública tienen ejemplos de su uso?¿Existe una descripción para la integración técnica del servicio?¿Existe una descripción para la integración de negocio del servicio?

Page 143: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

131

12.14.Plantilla para seguimiento de reuniones

Participantes: Nombre Dependencia

<<Participante 1>> <<Dependencia participante 1>><<Participante 2>> <<Dependencia participante 2>>

Acuerdos:Acuerdo Responsable

<<Acuerdo 1>> <<Responsable acuerdo 1>><<Acuerdo 2>> <<Responsable acuerdo 2>>

Metodología para Creación de Servicios SOAPlantilla: Seguimiento de reunionesVersión: 1.0Fecha de reunión: _______________________Encargado: _______________________Departamento/Área: _______________________

Page 144: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

132

12.15.Plantilla para solicitudes de cambio a productos

Cambios: Cambio solicitado Justificación Responsable

<<Cambio 1>> <<Justificación cambio 1>> <<Responsable 1>><<Cambio2>> <<Justificación cambio 2>> <<Responsable 2>>

Artefactos:Artefacto a cambiar Descripción de cambios

<<Artefacto 1>> <<Descripción de cambios a artefacto 1>><<Artefacto 2>> <<Descripción de cambios a artefacto 2>>

Metodología para Creación de Servicios SOAPlantilla: Solicitudes de cambio a productosVersión: 1.0Fecha de solicitud: _______________________Solicitante: _______________________Departamento/Área: _______________________

Page 145: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

133

12.16.Plan de Implementación

Para la implementación de la metodología, es necesario considerar las

implicaciones que se tienen en cuanto a tiempo, costos y recursos, entre otros

aspectos. El siguiente cronograma detalla las tareas necesarias para lograr una

implementación eficaz de la metodología:

La primera parte de la implementación consiste en seleccionar un proyecto

piloto, el cual cumpla con ciertos requisitos para poder ser aplicar la

metodología y probarla. Entre los requisitos está que sea corto (en términos

relativos de desarrollo de software, esto puede ser 3 ó 4 meses como máximo)

y que no exista nada, sino que haya que empezarlo desde 0, para asegurar

que se cumplen todas las etapas de la metodología.

Page 146: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

134

Parte de esta selección del proyecto implica buscar algún área o departamento

que tenga pendiente el desarrollo de alguna aplicación y que esté dispuesta a

aceptar que ese proceso de desarrollo tome más tiempo de lo que usualmente

tomaría, por el periodo de aprendizaje y maduración, aparte de todas las tareas

adicionales que la primera aplicación de la metodología implica.

Luego viene la selección de los recursos. Como se ha indicado, hay 4 áreas de

la División de Servicios Tecnológicos que deben aportar recursos para un

proyecto de este tipo. A saber: Análisis y Diseño, Base de datos,

Implementación y Validación y Verificación.

Se debe hacer un análisis para seleccionar al personal idóneo. Por ejemplo,

que tengan una carga de trabajo adecuada como para asumir este trabajo,

ojalá a tiempo completo (aunque esto es difícil de conseguir). También, que

tengan una actitud crítica hacia la mejora del proceso y que estén dispuestos a

cumplir con las tareas tan apegadas a la metodología como sea posible. Es

definitivo que no todos los recursos son aptos para aplicar en un proyecto piloto

como este, sino que algunos tienen mejor disposición que otros. Es de esperar

que sean 1 ó 2 recursos de cada una de esas áreas quienes sean

seleccionados.

Sabiendo cuales son los funcionarios que van a formar parte de este proyecto

piloto, se puede pensar en la capacitación que se va a ofrecer a todos ellos.

Básicamente, hay un proceso de inducción general para todos y luego una

etapa en la cual cada involucrado hace un análisis bien detallado de la

metodología o como mínimo la parte de la cual será responsable cada uno.

Basado en esta revisión detallada, se puede identificar una serie de mejoras

puntuales que se incorporarían en el documento, o bien que se documentarían

para futuras versiones en caso de ser cambios más grandes.

Page 147: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

135

Paralelo a la capacitación, o seguido de esta en caso de contar con pocos

recursos disponibles, es necesario preparar el ambiente para que se pueda

aplicar adecuadamente toda la metodología al proyecto piloto. Acá hay

actividades como instalar equipos, verificar permisos en la red y en las bases

de datos, buscar espacio para el repositorio de documentos, etc.

Capacitados los recursos y configurado el ambiente, se puede empezar

propiamente con las labores de creación de los distintos servicios. En el

cronograma del plan de implementación, hay tres macro-tareas

correspondientes a tres aplicaciones del cronograma del Anexo 12.4. Esto

significa que la estimación del plan de implementación considera que se crearía

un sistema con tres servicios SOA (lógicamente esto es relativo y puede

cambiar).

Cada macro-tarea de esas se le asignó una duración de 30 días, un periodo

aceptable de tiempo para la creación de un servicio pequeño y poco complejo,

como se esperaría que fuera en el piloto. Sin embargo, este dato también es

relativo y se puede ajustar cuando se sepa la complejidad del proyecto piloto.

Para efectos prácticos, estas macro-tareas deberían ser sustituidas por

cronogramas similares al del Anexo 12.4, ya aplicados a servicios SOA

específicos. Por ser la primera ejecución de la metodología, tareas como la

revisión de plantillas y los ajustes correspondientes, tomarían más tiempo de lo

que tomaría en una ejecución posterior, cuando ya sea el único método de

trabajo y todos tengan mayor experiencia.

Finalmente, una vez construidos los servicios, hay una etapa de análisis de

resultados finales del piloto, que al final de cuentas van a ser los objetivos

principales que se persiguen con este ejercicio.

Page 148: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

136

Por ejemplo, se analizan los resultados del tiempo empleado propiamente en

implementación versus el tiempo empleado en documentación, y se compara

con los mismos indicadores pero sin metodología. Igualmente se comparan los

productos de software obtenidos con la metodología versus los que se

construyen sin ella, en cuanto a estilo, tamaño, complejidad, etc.

La retroalimentación por parte de los involucrados en el proceso es también

una parte importante de este análisis final. La idea es documentar la

experiencia, los puntos buenos y aquellos que se pueden mejorar con ajustes

al proceso o bien con más experiencia. Toda esta información se mantiene

vigente en el tiempo, para poder tenerla a mano en aquellas oportunidades de

mejorar el documento.

Una vez efectuadas todas estas tareas de implementación, simplemente es

cuestión de oficializar la metodología y empezar a utilizarla en los nuevos

desarrollos que se vayan considerando dentro de los planes de trabajo del

departamento. Ya se tendría el ambiente preparado y la documentación lista,

como para que los funcionarios trabajen con estas reglas

Este plan de implementación se esboza para un piloto compuesto para tres

servicios SOA. Todo el proceso tiene una duración de poco más de 5 meses,

periodo razonable para casos así. A lo sumo, en un mes adicional se

extendería todo el conocimiento al resto del personal de las 4 áreas, por lo que

en 6 meses a partir del visto bueno de la metodología, es de esperar que todos

logren aplicarla en los proyectos nuevos.

Lo ideal sería contar con al menos otro proyecto similar a este, que podría

hacerse concurrente o bien posterior, con el fin de depurar y optimizar lo más

posible toda la metodología de manera íntegra. Sin embargo, ya esta opción es

poco factible por los recursos que serían necesarios, aunque es claro que es el

caso ideal.

Page 149: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

137

12.17.Análisis Costo-Beneficio

Rubro Costo BeneficioPersonal Se debe seleccionar

algunos funcionarios de las distintas áreas involucradas, con disponibilidad para ser asignados a la capacitación y a los proyectos piloto, los cual consume tiempo.

Estos funcionarios producen aportes que mejoran la metodología y además obtienen experiencia en la aplicación para el momento en el cual se generalice su uso.

Proyectos Piloto Se debe negociar con algún área de negocio interesada en prestar 1 ó 2 proyectos para ser utilizados como piloto por esta metodología. Esto podría tener implicaciones de tiempo en la entrega final del producto, mientras se obtiene la experiencia necesaria entre todos los involucrados.

Si se obtienen sistemas completos y funcionales creados con esta metodología, es más sencillo lograr que se oficialice por parte de las esferas políticas del BCCR. Además, también se facilita el posterior presupuesto para extender la metodología e irla mejorando día con día.

Madurez de la metodología

Es improbable que en las primeras aplicaciones de la metodología se cubran todos los detalles necesarios para lograr una implementación 100% efectiva. Como muchas cosas en esta área de la tecnología, es necesario hacer pruebas y procesar la retroalimentación para lograr que se pueda considerar bien completa y correcta.

Asumiendo el costo de la madurez, se obtiene un producto más completo, más efectivo, más apto para la organización y más propenso a ser bien aplicado por los involucrados. Vale la pena invertir en el proceso de madurez de la metodología.

Retrabajo por resultados de revisiones

Durante las primeras aplicaciones de la metodología, es de esperar que haya funcionarios que no interpreten bien algún apartado de una plantilla,

El beneficio es similar al del rubro de la madurez de la tecnología y del personal. Eventualmente, estos costos de retrabajo se deberán ir disminuyendo

Page 150: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

138

algún apartado del estándar o bien que obvien tareas preestablecidas en su proceso de diseño. Esto implica que les va a demandar tiempo en regresar a corregir los componentes y/o documentos.

con el tiempo y con el aumento de uso de la metodología.

Capacitaciones al personal

Implican tiempo que se debe sacar al personal de sus labores habituales, en pro de capacitarlos adecuadamente en el uso y los demás detalles de la metodología.

Capacitando a todo el personal acorde a un plan establecido, homologa los conocimientos entre todos los involucrados y hará que todos entiendan mejor como hacer el trabajo, lo cual reduce que se produzcan errores y el retrabajo.

Migración a terceras plataformas

Ninguno El tener la plataforma de software de los sistemas acordes a un estándar de capas, facilita posteriores migraciones, pues ya es una arquitectura abierta. La metodología favorece la construcción de servicios bajo arquitectura de sencilla migración.

Inclusión de nuevas herramientas

Ninguno El tener un estándar que ayude a construir componentes y bases de datos con tecnología Microsoft abierta, facilita la inclusión de otras herramientas que podrían ser útiles. Por ejemplo, herramientas para control de versiones, para medir rendimiento de aplicaciones o herramientas para facilitar la documentación.

Menor tiempo de mantenimiento de los servicios

Ninguno Cuando se cuente con la plataforma de software formada por componentes de estilo similar, con

Page 151: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

139

estándares parecidos y con sólida documentación que respalda todos los procesos, será mucho más sencillo el asignar funcionarios al mantenimiento de las aplicaciones y su tiempo de trabajo será más efectivo.

Estandarización de metodología base de trabajo

Ninguno El contar con una sola forma de trabajo por parte de todos los funcionarios de tecnología, aporta muchas ventajas como facilidad de entendimiento, mejora en la disponibilidad de recursos y menor tiempo de atención de incidentes.

Facilidad de inducción a nuevos funcionarios

Ninguno Cuando haya nuevos funcionarios en las distintas áreas, será más sencillo capacitarlos en el uso de la metodología, pues ya se tiene el proceso bien definido y maduro.

Estandarización del código fuente de componentes

Ninguno El contar con código fuente estándar, al menos hasta cierto nivel, facilita las caminatas de código y el entendimiento por parte de personas diferentes a los que hicieron la construcción. Esta es una de las tareas más difíciles y laboriosas, lo cual se facilita con código estándar.

Facilidad de implementación de decisiones administrativas

Ninguno Se facilita asignar nuevo personal, verificar avances, cubrir ausencias y solicitar informes.

Page 152: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

140

12.18.Áreas de conocimiento relacionadas

Área de conocimiento Relación con la metodologíaGestión de Integración del Proyecto

Las herramientas que presenta esta metodología contribuyen principalmente a las labores de dirección y gestión de la ejecución del proyecto, así como a la supervisión del trabajo.

Gestión de Alcance del Proyecto La metodología incluye un machote de una EDT, con las tareas básicas para crear un servicio SOA. Esta herramienta limita el alcance de cada iteración de los ciclos de creación y facilita el proceso de verificación y control.

Gestión de Tiempo del Proyecto Dado que se tiene un machote para una EDT, fácilmente se puede derivar de ahí un machote de cronograma para que sirva como base en la creación de un servicio. Este cronograma base ya tiene secuencias entre las tareas y también permite obtener datos como ruta crítica, uso de recursos, etc. Además, esto facilita la asignación de recursos a los hitos especificados.

Gestión de Costos del Proyecto En proyectos de desarrollo de software, el único costo que se tiene es el de horas-hombre. Por lo tanto, esta área de conocimiento no es considerada dentro de la metodología, pues no es necesario hacer análisis complejos de costos.

Gestión de Calidad del Proyecto Uno de los mayores aportes de la metodología es a la calidad del software generado. Las plantillas de documentación (principalmente) ofrecen una herramienta que ayuda a verificar que los diseños sean eficientes, las pruebas oportunas y que no se dejen de lado detalles que eventualmente serán caros de corregir o que van a introducir errores en el producto final. Igualmente, la metodología abre un espacio para que se documenten errores encontrados y con ese conocimiento, se introduzcan cambios para mantener la

Page 153: UNIVERSIDAD PARA LA COOPERACION INTERNACIONAL … · ERP: Enterprise Resource Planning ... Arquitectura orientada a servicios) ha sido impulsado por grandes empresas comercializadoras

141

mejora continua a lo largo de toda la aplicación del proceso.

Gestión de Recursos Humanos del Proyecto

Reclutamiento y selección del personal no es parte de esta metodología. Esto sale del contexto desarrollado. Aspectos como formación, evaluación, informes de personal y responsabilidades no son parte de esta metodología.

Gestión de Comunicaciones del Proyecto

En ciclos de desarrollos de componentes SOA, tal y como los describe esta metodología, la comunicación es sencilla debido a los equipos pequeños de trabajo. En este aspecto no se requieren planes concretos y complejos que deban ser oficializados y puestos en marcha como si fueran proyectos grandes.

Gestión de Riesgos del Proyecto

La gestión de riesgos en esta metodología está directamente asociada a las plantillas, tanto de documentación como de revisión. Si el diseño de un servicio es completo y correcto, implícitamente se están mitigando muchos riesgos a la hora de implementar el proceso en el negocio, a la hora de dar mantenimiento a componentes que podría acarrear errores. También, se evita dejar por fuera funcionalidad que podría ser crucial. Similar sucede con las pruebas: si estas se definen y aplican bien, entonces se van a reducir errores posteriores que de otra forma, sería caro de solventar.

Gestión de Adquisiciones del Proyecto

Por la naturaleza de esta labor y la forma de administración de contrataciones del BCCR, este tema es totalmente ajeno a la metodología.