METODOLOGÍA PARA EL DESARROLLO DE … · universidad central del ecuador facultad de ingenierÍa...
Transcript of METODOLOGÍA PARA EL DESARROLLO DE … · universidad central del ecuador facultad de ingenierÍa...
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA EN CIENCIAS FÍSICAS Y MATEMÁTICA
INSTITUTO DE INVESTIGACIÓN Y POSGRADO (IIP)
METODOLOGÍA PARA EL DESARROLLO DE SOFTWARE ESCALABLE PARA EL DEPARTAMENTO DE PENSIONES DEL
IESS.
WILLIAM FERNANDO POZO ALMEIDA
TUTOR: JAIME OSWALDO SALVADOR MENESES
Trabajo presentado como requisito parcial para la obtención del grado de:
MAGÍSTER EN GESTIÓN INFORMÁTICA EMPRESARIAL
Quito – Ecuador
2015
ii
DEDICATORIA
Dedico está tesis a Dios, siempre se siente su incondicional apoyo, amor,
cariño y sus infinitas bendiciones sobre mi familia. Cuando uno llega a
ser padre llega a entender el sacrificio y esfuerzo de los padres, les
dedico a ellos ya que gracias a ellos he tenido las decisiones mas
atinadas en mi vida y sin el amor sincero y desinteresado de mi mamá
Teresa Almeida nunca hubiera llegado a ser el buen ser humano que soy
por esto este esfuerzo es solamente de ella.
Dedico también esta tesis a mi familia Angélica Figueroa y Camila Pozo
por su constante apoyo y amor, en los momentos difíciles ellas han
tenido las palabras precisas para brindar un aliento para poder continuar,
a mi hija Cammy te dedico esta tesis para te sirva de ejemplo para que el
llegues a ser mucho más de lo que nosotros como padres hemos logrado.
Fernando Pozo
iii
AGRADECIMIENTO
Siempre estaré agradecido a mi familia Angélica Figueroa y Camila pozo
por su total apoyo y comprensión sin su amor nunca podría haber
realizado esta tesis, quedo muy agradecido a mi esposa Ange por su
constante cariño y dulzura, me ha servido de apoyo incondicional para
poder concluir esta tesis.
Agradezco a mamá Teresa Almeida, quien siempre ha desvelado por mi
bienestar y educación, haciendo presente siempre su amor, gracias a mi
padre Luis Edmundo Pozo por tu ejemplo y trabajo constante que tuviste
no estas aquí pero siempre presente en nuestros corazones.
Gracias a Jaime Salvador por brindar sus conocimientos y dedicación que
ha brindado para la realización de esta tesis.
Tengo un grato agradecimiento a Jaime Salvador, Ramiro Pilaluisa y
Santiago Morales por sus conocimientos y ayuda que me ha brindado
para poder concluir este documento.
Fernando Pozo
iv
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL
Yo, WILLIAM FERNANDO POZO ALMEIDA en calidad de autor del
trabajo de investigación o tesis realizada sobre la METODOLOGÍA PARA EL DESARROLLO DE SOFTWARE ESCALABLES PARA EL DEPARTAMENTO DE PENSIONES DEL IESS, por la presente autorizo a
la UNIVERSIDAD CENTRAL DEL ECUADOR, hacer uso de todos los
contenidos que me pertenecen o de parte de los que contiene esta obra,
con fines estrictamente académicos o de investigación.
Los derechos que como autor me corresponden, con excepción de la
presente autorización, seguirán vigentes a mi favor, de conformidad con lo
establecido en los artículos 5, 6, 8, 19 y demás pertinentes de la Ley de
Propiedad Intelectual y su Reglamento.
Quito, 09 de Enero del 2015.
WILLIAM FERNANDO POZO ALMEIDA
C.C. 1715961692
v
CERTIFICADO
Certifico que el presente trabajo fue realizado en su totalidad WILLIAM FERNANDO POZO ALMEIDA como requisito parcial a la obtención del título de MAGISTER EN GESTIÓN INFORMÁTICA EMPRESARIAL.
Quito, 9 de Enero del 2015
JAIME OSWALDO SALVADOR MENESES
vi
CONTENIDO
DEDICATORIA ........................................................................................... ii
AGRADECIMIENTO ................................................................................... iii
AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL .................................. iv
CERTIFICADO ........................................................................................... v
CONTENIDO ............................................................................................. vi
LISTA DE FIGURAS ................................................................................. xiv
LISTA DE TABLAS ................................................................................... xv
RESUMEN ............................................................................................... xvii
ABSTRACT ............................................................................................. xviii
1 INTRODUCCIÓN .................................................................................. 1
1.1 INTRODUCCIÓN ............................................................................ 1
1.2 PLANTEAMIENTO DEL PROBLEMA ............................................ 2
1.3 OBJETIVO GENERAL .................................................................... 2
1.4 OBJETIVOS ESPECÍFICOS .......................................................... 3
1.5 JUSTIFICACIÓN ............................................................................ 3
1.6 HIPÓTESIS Y VARIABLES ............................................................ 3
1.6.1 HIPÓTESIS .............................................................................. 3
1.6.2 VARIABLES - INDICADORES ................................................. 3
1.7 METODOLOGÍA ............................................................................. 4
1.7.1 TIPOS DE ESTUDIO ............................................................... 4
1.7.2 DISEÑO DE ESTUDIO ............................................................ 4
1.7.3 POBLACIÓN, MUESTRA Y MUESTREO ................................ 5
vii
1.7.4 TÉCNICAS DE ANÁLISIS DE DATOS .................................... 5
2 MARCO TEÓRICO ............................................................................... 6
2.1 INTRODUCCIÓN ............................................................................ 6
2.2 TERMINOLOGÍA BÁSICA .............................................................. 6
2.2.1 UML ......................................................................................... 6
2.2.2 WORKFLOW ........................................................................... 7
2.2.3 SOA ......................................................................................... 7
2.2.4 BPM ......................................................................................... 8
2.2.5 BPMN ....................................................................................... 8
2.2.6 ESB .......................................................................................... 9
2.2.7 OOAD ...................................................................................... 9
2.2.8 CBM ......................................................................................... 9
2.2.9 ARTEFACTOS ....................................................................... 10
2.2.10 APLICACIONES DISTRIBUIDAS ........................................ 10
2.2.11 ARQUITECTURA EMPRESARIAL ...................................... 10
2.2.12 LDAP .................................................................................... 10
2.2.13 SOAP ................................................................................... 11
2.2.14 HTTP .................................................................................... 11
2.2.15 W3C ..................................................................................... 11
2.2.16 MODELO DE DOMINIO ....................................................... 11
2.2.17 KPI ....................................................................................... 11
2.3 METODOLOGÍA DE DESARROLLO DE SOFTWARE RUP ...... 12
2.3.1 DEFINICIÓN .......................................................................... 12
2.3.2 FASE DE INICIO .................................................................... 13
2.3.3 FASE DE ELABORACIÓN ..................................................... 14
2.3.4 FASE DE CONSTRUCCIÓN ................................................. 15
viii
2.3.5 FASE DE TRANSICIÓN ........................................................ 16
2.3.6 ROLES ................................................................................... 18
2.4 SOFTWARE ESCALABLES ......................................................... 19
2.5 ARQUITECTURA DE SOFTWARE BASADA EN SOA ................ 21
2.5.1 INTRODUCCIÓN ................................................................... 21
2.5.2 TERMINOLOGÍA BÁSICA SOA ............................................. 23
2.5.2.1 MENSAJE ....................................................................... 23
2.5.2.2 SERVICIOS SIN ESTADO .............................................. 23
2.5.2.3 ORQUESTACIÓN ........................................................... 24
2.5.2.4 BPEL ............................................................................... 24
2.5.2.5 BPM ................................................................................. 24
2.5.3 DEFINICIÓN DE SOA ............................................................ 25
2.5.4 OBJETIVO DE LA ARQUITECTURA SOA. ........................... 25
2.5.5 BENEFICIOS DE SOA ........................................................... 25
2.5.6 DESVENTAJAS DE SOA: ..................................................... 26
2.5.7 COMPONENTES DE SOA .................................................... 26
2.5.8 IMPLEMENTACIÓN DE SOA ................................................ 26
2.5.9 PLANIFICACIÓN DE DESARROLLO DE
APLICACIONES SOA ........................................................... 27
2.5.9.1.1 IDENTIFICACIÓN DE SERVICIOS .......................... 27
2.5.9.1.2 SERVICIOS EXISTENTES ....................................... 28
2.5.9.1.3 PROTOCOLOS DE COMUNICACIÓN DE
SERVICIOS ................................................................................ 30
2.5.9.1.4 ADMINISTRACIÓN DE LOS SERVICIOS ................ 32
2.5.9.2 COMUNICACIÓN ENTRE SERVICIOS .......................... 33
ix
2.6 SEGURIDAD EN SERVICIOS WEB ............................................ 34
2.6.1 WS-Security ........................................................................... 35
2.6.2 XML ENCRYPTION ............................................................... 36
2.6.3 XML SIGNATURE .................................................................. 36
2.6.4 XML CANONICALIZATION ................................................... 36
3 ANÁLISIS DE METODOLOGÍA ACTUAL DE DESARROLLO DE
SOFTWARE EN PENSIONES DEL IESS. ............................................... 37
3.1 INTRODUCCIÓN .......................................................................... 37
3.2 FASES DE LA METODOLOGÍA RUP PARA EL ÁREA DE
PENSIONES. ........................................................................................ 37
3.2.1 FASE DE FACTIBILIDAD ...................................................... 37
3.2.2 FASE DE ELABORACIÓN ..................................................... 43
3.2.3 FASE DE DESARROLLO ...................................................... 45
3.2.4 FASE DE IMPLANTACIÓN .................................................... 46
3.3 EQUIPO DE TRABAJO ................................................................ 48
3.3.1 PERFIL DE LOS RECURSOS ............................................... 48
3.3.1.1 GERENTE DE PROYECTO ............................................ 48
3.3.1.2 ADMINISTRADORA DE PROYECTOS .......................... 50
3.3.1.3 LÍDERES DE PROYECTOS ........................................... 51
3.3.1.4 DESARROLLADOR JAVA .............................................. 52
3.3.1.5 INGENIERO DE PRUEBAS ............................................ 53
3.3.1.6 ARQUITECTO DE SOFTWARE ..................................... 53
3.3.1.7 ARQUITECTURA DE DATOS ......................................... 54
3.3.1.8 ANALISTAS DE SISTEMAS ........................................... 55
3.3.1.9 ANALISTAS FUNCIONALES .......................................... 56
3.3.1.10 LÍDER DE ANALISTAS ................................................. 57
x
3.3.1.11 LÍDER DE PRUEBAS .................................................... 58
3.3.1.12 LÍDER DE DEPARTAMENTO DE ARQUITECTURA ... 59
3.4 ORGANIGRAMA DE GESTIÓN DE PROYECTOS DEL IESS .... 61
3.5 RECURSOS TECNOLÓGICOS ................................................... 62
3.5.1 RECURSOS DE HARDWARE ............................................... 62
3.5.2 RECURSO DE SOFTWARE .................................................. 62
3.5.2.1 SOFTWARE DE AMBIENTE DE DESARROLLO ........... 62
3.5.2.2 SOFTWARE DE AMBIENTE DE PRUEBAS /
PRODUCCIÓN .............................................................................. 63
3.5.3 ARQUITECTURA DE SOFTWARE DEL SOFTWARE DE
PENSIONES. ..................................................................................... 63
3.5.3.1 CAPA DE APLICACIÓN .................................................. 63
3.5.3.1.1 CAPA MEDIA ............................................................ 63
3.5.3.1.2 CAPA DE FACHADA ................................................ 64
3.5.3.2 SEGURIDAD DE APLICACIÓN ...................................... 65
3.5.4 CAMBIO DE AMBIENTE PARA PRODUCCIÓN ................... 65
3.6 CONCLUSIONES ......................................................................... 66
4 METODOLOGÍAS DE DESARROLLO PARA SOFTWARE
ESCALABLES .......................................................................................... 67
4.1 INTRODUCCIÓN .......................................................................... 67
4.2 CARACTERÍSTICAS DE LAS FASES DE ANÁLISIS Y DISEÑO
DE METODOLOGÍAS SOA. ................................................................. 68
4.2.1 ANÁLISIS SOA Y ESTRATEGIAS DE DISEÑO ................... 68
4.2.1.1 ENFOQUES DE SOA ...................................................... 68
4.2.2 ANÁLISIS SOA Y COBERTURA DE DISEÑO ...................... 70
4.2.3 ADOPCIÓN DE TÉCNICAS
EXISTENTES Y NOTACIONES ........................................... 71
xi
4.3 ANÁLISIS DE METODOLOGÍAS EXISTENTES SOA ................. 72
4.3.1 SOMA .................................................................................... 72
4.3.1.1 FASE DE IDENTIFICACIÓN ........................................... 74
4.3.1.2 FASE DE ESPECIFICACIÓN .......................................... 74
4.3.1.3 FASE DE REALIZACIÓN ................................................ 74
4.3.2 IBM RUP/SOMA .................................................................... 74
4.3.2.1 ANÁLISIS DE TRANSFORMACIÓN DE NEGOCIOS ..... 75
4.3.2.2 IDENTIFICACIÓN ........................................................... 75
4.3.2.3 ESPECIFICACIÓN .......................................................... 75
4.3.2.4 REALIZACIÓN DE SERVICIOS ...................................... 76
4.3.3 SOAF ..................................................................................... 76
4.3.3.1 DESCRIPCIÓN DE LA METODOLOGÍA ........................ 77
4.3.4 METODOLOGÍA DE PAPAZOGLOU .................................... 77
4.4 COMPARACIÓN ENTRE METODOLOGÍAS ............................... 78
5 PROPUESTA DE METODOLOGÍA DE SOFTWARE ESCALABLE
PARA EL IESS. ........................................................................................ 80
5.1 INTRODUCCIÓN .......................................................................... 80
5.2 ROLES DE IBM RUP SOMA ....................................................... 80
5.2.1 ARQUITECTO DE SEGURIDAD ........................................... 80
5.2.2 IMPLEMENTADOR ................................................................ 81
5.2.3 DISEÑADOR DE NEGOCIOS ............................................... 81
5.2.4 ANALISTA DE PROCESO DE NEGOCIO ............................. 81
5.2.5 DISEÑADOR DE BASE DE DATOS ...................................... 82
5.2.6 DISEÑADOR .......................................................................... 82
5.2.7 ARQUITECTO DE SOFTWARE ............................................ 83
5.2.8 ARQUITECTO DE NEGOCIO ............................................... 83
xii
5.3 TAREAS DE IBM RUP SOMA ...................................................... 84
5.3.1 TAREAS DE MODELAMIENTO DE NEGOCIOS .................. 84
5.3.1.1 IDENTIFICACIÓN DE METAS DE NEGOCIOS Y KPIs. . 84
5.3.1.2 ANÁLISIS DEL ÁREA FUNCIONAL ................................ 85
5.3.1.3 AFINAMIENTO DE CASOS DE USO DE NEGOCIO ..... 86
5.3.2 TAREAS DE ANÁLISIS Y DISEÑO ....................................... 87
5.3.2.1 IDENTIFICAR FACTORES
COMUNES Y VARIABILIDAD ........................................ 87
5.3.2.2 IDENTIFICAR PATRONES DE SEGURIDAD ................. 87
5.3.2.3 ESPECIFICACIÓN DE COMPONENTES (SOA) ............ 88
5.3.2.4 CONSTRUIR PRUEBA DE CONCEPTO
ARQUITECTÓNICO (SOA) ........................................................... 88
5.3.2.5 IDENTIFICA SERVICIOS ASOCIADOS A OBJETIVOS 89
5.3.2.6 ANÁLISIS DE PROCESOS EMPRESARIALES ............. 90
5.3.2.7 ANÁLISIS DE MODELO DE DATOS .............................. 90
5.3.2.8 ANÁLISIS DE ACTIVOS EXISTENTES .......................... 91
5.3.2.9 ANÁLISIS DE REGLAS DEL NEGOCIO ......................... 91
5.3.2.10 ANÁLISIS DE CASOS DE USO DE NEGOCIO (SOA) . 92
5.3.2.11 DISEÑO DE MENSAJE ................................................. 92
5.3.2.12 PRUEBAS SERVICIOS LITMUS .................................. 93
5.3.2.13 ESPECIFICACIÓN DE SERVICIO ................................ 94
5.3.2.14 DISEÑO SUB SISTEMAS (SOA) .................................. 95
5.3.3 TAREAS DE IMPLEMENTACIÓN ......................................... 96
5.3.3.1 DOCUMENTO DE DECISIONES DE REALIZACIÓN DE
SERVICIO ...................................................................................... 96
xiii
5.4 PROPUESTA DE METODOLOGÍA RUP ENFOCADO EN SOA
PARA EL DEPARTAMENTO DE PENSIONES DEL IESS. .................. 96
5.4.1 RECURSOS HUMANOS ....................................................... 97
5.4.2 RECURSOS TECNOLÓGICOS ............................................. 97
5.4.3 ADAPTACIONES DE LA METODOLOGÍA RUP CON IBM
RUP SOMA ....................................................................................... 97
5.4.3.1 FASE DE FACTIBILIDAD ................................................ 97
5.4.3.2 FASE DE ELABORACIÓN ............................................ 100
5.4.3.3 FASE DE CONSTRUCCIÓN ......................................... 104
5.4.3.4 FASE DE IMPLEMENTACIÓN ...................................... 107
5.4.4 PLANIFICACIÓN DE PROYECTOS .................................... 112
5.4.4.1 TAREAS ANTES DE INICIAR EL PROYECTO ............ 112
5.4.4.2 PLANIFICACIÓN FASE DE FACTIBILIDAD ................. 113
5.4.4.2.1 ESTIMACIÓN DE TIEMPOS .................................. 115
5.4.4.3 PLANIFICACIÓN FASE DE ELABORACIÓN ............... 119
5.4.4.3.1 ESTIMACIÓN DE TIEMPOS .................................. 120
6 CONCLUSIONES Y RECOMENDACIONES .................................... 125
6.1 INTRODUCCIÓN ........................................................................ 125
6.2 CONCLUSIONES ....................................................................... 125
6.3 RECOMENDACIONES .............................................................. 126
BIBLIOGRAFÍA ....................................................................................... 128
BIOGRAFÍA ............................................................................................ 131
xiv
LISTA DE FIGURAS Figura 2.1 Antes y después de SOA ........................................................ 22
Figura 2.2 Identificación de servicios ........................................................ 28
Figura 2.3 Modelo de un ESB ................................................................... 34
Figura 3.1 Organigrama DDI con departamento de Pensiones ................ 61
Figura 3.2 Diagrama de cambios de ambiente para producción .............. 65
Figura 4.1 Diagrama de SOMA ................................................................ 73
Figura 4.2 Gráfico de interacción entre fases SOMA ............................... 73
Figura 5.1 Descomposición de negocio .................................................... 85
Figura 5.2 Diagrama de actividades de líder en fase inicial ................... 113
xv
LISTA DE TABLAS Tabla 3.1 Fase de factibilidad RUP área de pensiones ............................ 38
Tabla 3.2 Fase de elaboración RUP área de pensiones .......................... 43
Tabla 3.3 Fase de desarrollo RUP área de pensiones ............................. 45
Tabla 3.4 Fase de implantación RUP área de pensiones ........................ 46
Tabla 3.5 Perfil gerente de proyectos área de pensiones ........................ 49
Tabla 3.6 Perfil administrador de proyectos área de pensiones ............... 50
Tabla 3.7 Perfil de líder de proyectos área de pensiones ........................ 51
Tabla 3.8 Perfil de desarrollador java área de pensiones ........................ 52
Tabla 3.9 Perfil ingeniero de pruebas área de pensiones ........................ 53
Tabla 3.10 Perfil arquitecto de software área de pensiones ..................... 54
Tabla 3.11 Perfil de arquitectura de datos área de pensiones ................. 55
Tabla 3.12 Perfil de analistas de sistemas ............................................... 56
Tabla 3.13 Perfil de analistas funcionales ................................................ 57
Tabla 3.14 Perfil de líder de analistas ...................................................... 57
Tabla 3.15 Perfil de líder de pruebas área de pensiones ......................... 58
Tabla 3.16 Perfil de líder de departamento de arquitectura área de
pensiones ................................................................................................. 59
Tabla 3.17 Recursos de hardware del área de pensiones ....................... 62
Tabla 3.18 Software de ambiente de desarrollo del área de pensiones ... 62
Tabla 3.19 Software de ambiente de pruebas / producción del área de
pensiones ................................................................................................. 63
Tabla 3.20 Capa media de arquitectura de software de pensiones ......... 64
Tabla 3.21 Capa de fachada de arquitectura de software de pensiones . 64
Tabla 4.1 Comparación entre metodologías de desarrollo de software
SOA .......................................................................................................... 79
Tabla 5.1 Entrada y salidas de identificación de metas ............................ 84
Tabla 5.2 Entrada y salida de análisis del área funcional ......................... 86
Tabla 5.3 Entrada y salida de casos de uso del negocio ......................... 86
Tabla 5.4 Entrada y salida de identificar factores comunes ..................... 87
Tabla 5.5 Entrada y salida de identificar patrones de seguridad .............. 88
xvi
Tabla 5.6 Entrada y salida de especificación de componentes SOA ....... 88
Tabla 5.7 Entrada y salida Prueba de concepto arquitectónico SOA ....... 89
Tabla 5.8 Entrada y salida de identificar servicios asociados a objetivos 89
Tabla 5.9 Entrada y salida de análisis de procesos empresariales .......... 90
Tabla 5.10 Entrada y salida de análisis de modelos de datos .................. 90
Tabla 5. 11 Entrada y salida análisis de activos existentes ...................... 91
Tabla 5.12 Entrada y salida de análisis de reglas de negocio ................. 92
Tabla 5.13 Entrada y salida de análisis de casos de uso
de negocio (SOA) ..................................................................................... 92
Tabla 5.14 Entrada y salida de diseño de mensaje .................................. 93
Tabla 5.15 Entrada y salida de especificación de servicio ....................... 94
Tabla 5.16 Entrada y salida de diseño sub sistemas (SOA) .................... 95
Tabla 5.17 Entrada y salida de documento de decisiones de realización de
servicio ...................................................................................................... 96
Tabla 5.18 Fase de factibilidad IBM RUP SOMA adaptado a RUP .......... 98
Tabla 5.19 Fase de elaboración IBM RUP SOMA adaptado a RUP ...... 100
Tabla 5.20 Fase de elaboración IBM RUP SOMA adaptado a RUP ...... 104
Tabla 5.21 Fase de implementación IBM RUP SOMA adaptado a RUP 107
Tabla 5.22 Artefactos a entregar en planificación de fase de
factibilidad ............................................................................................... 114
Tabla 5.23 Métricas de estimación de tiempos ...................................... 115
5.24 Listado de casos de uso identificados y categorizarlo. .................. 119
Tabla 5.25 Artefactos de entrega de planificación en fase de
elaboración ............................................................................................. 120
Tabla 5.26 Métrica de estimación de tiempos en fase de elaboración ... 121
xvii
RESUMEN
METODOLOGÍA PARA EL DESARROLLO DE SOFTWARE ESCALABLES PARA EL DEPARTAMENTO DE PENSIONES DEL IESS.
Este documento presenta una metodología de desarrollo de software
escalable al departamento de pensiones del IESS, la cual ha sido
adaptado a la metodología RUP (Rational Unified Process) acoplada para
el Instituto Ecuatoriano de Seguridad Social y en particular al área de
pensiones. Existen inconvenientes al momento de desarrollar software
escalable, no hay normativas, artefactos, métodos ni técnicas, lo que
afecta radicalmente a la planificación de los proyectos y esto involucra
retrasos en los proyectos y a la no realización de estos, para lograr un
entendimiento del problema en este documento se menciono las fases y
actividades de la metodología RUP y sus adaptaciones.
Presentamos las principales metodologías, se especifican sus fases y los
detalles para la realización de este tipo de software, así teniendo una
comparativa entre estas y teniendo el resultado de la mejor metodología
vista desde el punto de vista de las necesidades del área de pensiones
del IESS.
Se especifica la metodología RUP SOMA IBM como la ganadora,
mostrando las fases y los artefactos que involucra la metodología,
brindando criterios de planificación para facilitar a los líderes de proyectos
en la planificación de los mismos.
DESCRIPTORES: / DESARROLLO DE SOFTWARE SOA / GESTIÓN DE PROYECTOS CON ARQUITECTURA SOA / PLANIFICACIÓN DE PROYECTOS / METODOLOGÍA RUP / METODOLOGÍA DE DESARROLLO DE SOFTWARE CON ARQUITECTURA SOA / SOFTWARE ESCALABLES
xviii
ABSTRACT
METHODOLOGY FOR SCALABLE SOFTWARE DEVELOPMENT FOR THE DEPARTMENT OF PENSION FUND IESS. This document presents a methodology for development of scalable
software for the department of pension fund IESS, which has been
adapted to the RUP (Rational Unified Process) coupled to the Ecuadorian
Institute of Social Security and particularly the area of pension fund.
In the area of pensions fund there are some obstacles when developing
scalable software, no regulations, devices, methods and techniques,
which dramatically affects the planning of projects and this involves project
delays and non-realization of these. To achieve an understanding of the
problem this document mentions phases and activities of the RUP
methodology and adaptations that have the pension fund area IESS.
We Present the main methods for developing software scalable, phases
and details for the realization of such software are specified, and having a
comparison between these and taking the result of the better methodology
view from the perspective of the needs the area of pensions fund IESS.
The IBM RUP SOMA methodology is specified as the winner, showing the
phases and the artifacts methodology involves, providing planning criteria
to facilitate to project leaders the best planning of them.
DESCRIPTORS:
/ SOFTWARE DEVELOPMENT SOA / PROJECT MANAGEMENT ARCHITECTURE WITH SOA / PLANNING PROJECT / METHODOLOGY RUP / SOFTWARE DEVELOPMENT METHODOLOGY WITH ARCHITECTURE SOA / SCALABLE SOFTWARE
xix
CERTIFICACIÓN Yo, Angélica del Rocio Figueroa Hernández , con cédula de identidad
número 0401018585, con suficiencia en idioma inglés; certifico haber
realizado la traducción de la hoja del resumen del idioma español al
idioma inglés.
Quito, 22 de enero del 2015
_____________________
Angélica del Rocio Figueroa Hernández C.I.: 0401018585
1
1 INTRODUCCIÓN
1.1 INTRODUCCIÓN En el presente capitulo brindaremos los parámetros generales del
presente trabajo, así podrá entender el por qué la realización este
documento.
En el mundo cada vez se hace más importante el desarrollo de
tecnologías web ya que a los usuarios ha brindado una forma más
efectiva de satisfacer sus dudas o consultas que tengan sin tener la
necesidad de realizarlas presencialmente, así se ahorra tiempo y dinero.
El departamento de pensiones de IESS posee una infraestructura que
soporta las aplicaciones de pago de pensiones a jubilados, jubilación
ordinaria e invalidez, montepío, auxilio de funerales. Están desarrolladas
de una forma tradicional y alineadas con los requerimientos que exige el
negocio cabe mencionar que la institución es pública y estos
requerimientos son directamente vinculados con las leyes y normas
ecuatorianas las cuales son altamente cambiantes.
Los líderes de proyectos del departamento del IESS planifican y
coordinan actividades para solventar los cambios que se tienen que
realizar en la aplicación, esto ha repercutido en poseer una cantidad de
personal en el departamento de tecnología lo que involucra que tengan
conocimientos bien afianzados en el negocio y conozcan en un alto grado
el detalle de la construcción de la aplicación, por lo que la disposición de
este personal está limitado a la carga de trabajo que demanda.
La realización de aplicaciones web escalables hoy en día son necesarias
cuando se tiene como primicia que el negocio es altamente cambiante,
esto ayuda que el desarrollo de estas aplicaciones sea mucho mas rápido,
se tenga un mejor control de la aplicación pero a la vez es necesario que
2
el personal técnico posea un conocimiento más detallado del giro de
negocio de la empresa.
Las metodologías de software ayudan a organizar, planificar y controlar
actividades del personal y el resultado más fiel en la actualidad ha sido
poseer aplicaciones web con alta calidad. Con el cambio a aplicaciones
escalables se ha tenido la necesidad de cambiar la forma de gestionar.
1.2 PLANTEAMIENTO DEL PROBLEMA En el departamento de pensiones del Instituto Ecuatoriano de Seguridad
Social (IESS), la metodología de desarrollo de software está adaptada
exclusivamente a software web tradicional y esta no contempla el
desarrollo de software con tecnologías escalables, las cuales ayudan a
mantener el software de gestión del departamento en una manera rápida
y sencilla, así las definiciones que exige el negocio van de la mano con la
funcionalidad del software.
Al momento de desarrollar software escalable, siguiendo la metodología
actual del departamento de pensiones del IESS, se han tenido resultados
no satisfactorios, como el retraso en los hitos de los proyectos, esto es
como consecuencia de una planificación no adecuada debido a que la
presente metodología de software no contempla una serie de etapas, lo
que dificulta en la elaboración de un correcto presupuesto del proyecto y
en un adecuado plan de adquisiciones de software, para solucionar estos
graves inconvenientes se requiere incursionar en una metodología de
desarrollo de software para negocios con requerimientos altamente
cambiantes, es decir que exigen escalabilidad.
1.3 OBJETIVO GENERAL Establecer una metodología de desarrollo de software escalable que
ayude al gerente de proyecto en la planificación de desarrollo de sistemas.
3
1.4 OBJETIVOS ESPECÍFICOS • Identificar las fases y disciplinas que tiene inconvenientes en la
metodología actual.
• Enunciar las diferentes metodologías de desarrollo enfocado al
negocio existentes.
• Comparar las estrategias y métodos de las diferentes
metodologías.
• Establecer una metodología RUP enfocado al negocio en base a
las necesidades de la dirección de pensiones del IESS.
• Mejorar la planificación y control con la incorporación de una
metodología RUP enfocado al negocio.
1.5 JUSTIFICACIÓN El departamento de pensiones del IESS necesita la investigación de una
metodología de desarrollo de software escalable, esto permitirá a los
líderes de proyecto planificar, presupuestar, controlar, monitorear y
brindar el seguimiento necesario a los proyectos y así ayudar en la
optimización del tiempo y el recurso económico en la institución.
1.6 HIPÓTESIS Y VARIABLES
1.6.1 HIPÓTESIS ¿Se optimiza el tiempo y recurso económico al poseer una metodología
de desarrollo de software escalable?
1.6.2 VARIABLES - INDICADORES Las variables para la investigación son:
• Número de 1artefactos de la metodología por fases
1 “Artefactos es un producto tangible resultante del proceso del
desarrollo de software” tomado de Wikipedia
4
• Cumplimiento de los artefactos por fase
• Fecha fin de la fase
• Fecha inicio de la fase
• Fecha real del proyecto
• Fecha fin del proyecto
Los indicadores para la investigación son:
• %Cumplimiento de la fase = Sumatoria del cumplimiento de los
artefactos por fase / Número de artefactos por fase.
• Tiempo Empleado por fase = Fecha fin de la fase – Fecha inicio de
la fase
• %Cumplimiento del proyecto = (Fecha real del proyecto – Fecha
inicio del proyecto)*100/ (Fecha fin del proyecto – Fecha inicio del
proyecto)
1.7 METODOLOGÍA
1.7.1 TIPOS DE ESTUDIO La investigación tiene la necesidad de contribuir a la elaboración de una
metodología de desarrollo de negocio enfocado al negocio para el IESS.
Se utilizará el método inductivo ya que se recopilará información acerca
de la presente metodología de software para ser analizada y detallada en
los diferentes etapas y procesos, se realizará entrevistas con los
funcionarios expertos del IESS y se analizará la metodología de desarrollo
de software enfocado al negocio.
1.7.2 DISEÑO DE ESTUDIO El diseño de estudio se aplicará a un diseño no experimental descriptivo
comparativo ya que se debe comparar la metodología actual contra la que
será producto de la investigación
http://es.wikipedia.org/wiki/Artefacto_%28dise%C3%B1o_de_software%2
9
5
1.7.3 POBLACIÓN, MUESTRA Y MUESTREO La población serán el número de proyectos informáticos realizados para el
departamento de pensiones del IESS.
La muestra serán el número de proyectos de desarrollo y mantenimiento
de software realizado en los últimos 8 años, tiempo en el cual se tiene
automatizado el sistema actual de pensiones y debido a la calidad de los
proyectos, el muestreo se realizará de tipo probabilístico.
El método que se aplicará en la investigación será de tipo encuesta y se
realizará mediante entrevistas personales y material que nos brinden los
funcionarios del IESS, los instrumentos que utilizaremos serán
cuestionarios y guías de entrevistas; siendo recolectada la información en
tablas de indicadores y gráficos para analizar los datos.
1.7.4 TÉCNICAS DE ANÁLISIS DE DATOS Teniendo las tablas de indicadores y gráficos, el resultado sería aplicar
la metodología a investigar con respecto a la muestra y analizar los
resultados que brinda comparando los resultados para verificar si cumple
los objetivos.
6
2 MARCO TEÓRICO
2.1 INTRODUCCIÓN El presente capítulo nos brinda la terminología y conocimiento básico para
poder entender los siguientes capítulos del presente documento.
2.2 TERMINOLOGÍA BÁSICA
2.2.1 UML UML (Unified Modeling Language), que en español significa Lenguaje
Unificado de Modelado, es un lenguaje de modelado de sistemas de
software en la actualidad es el más conocido y se está volviendo en un
estándar. Es un lenguaje gráfico para visualizar, especificar, construir y
documentar un sistema.
Es importante remarcar que UML es un "lenguaje de modelado" para
especificar o para describir métodos o procesos. Se utiliza para definir un
sistema, para detallar los artefactos en el sistema y para documentar, en
otras palabras, es el lenguaje en el que está descrito el modelo.
Se puede aplicar en el desarrollo de software gran variedad de formas
para dar soporte a una metodología de desarrollo de software (tal como el
Proceso Unificado Racional o RUP), pero no especifica en sí mismo qué
metodología o proceso usar.
UML no puede compararse con la programación estructurada, no es una
programación de sistemas, lo que se trata de hacer es diagramar la
realidad del cómo se usa uno o varios requerimientos. Mientras que en
programación estructurada, es una forma de programar, como lo es la
orientación a objetos y esto es un perfecto complemento de UML.
7
2.2.2 WORKFLOW El workflow, que en español es flujo de trabajo, es el estudio de los
aspectos operacionales de una actividad de trabajo: cómo se estructuran
las tareas, cómo se realizan, cuál es su orden correlativo, cómo se
sincronizan, cómo fluye la información que soporta las tareas y cómo se le
hace seguimiento al cumplimiento de las tareas. Generalmente los
problemas de flujo de trabajo se modelan con redes de Petri.
Si bien el concepto de flujo de trabajo no es específico a la tecnología de
la información, una parte esencial del software para trabajo colaborativo
(groupware) es justamente el flujo de trabajo.
Una aplicación de flujos de trabajo automatiza la secuencia de acciones,
actividades o tareas utilizadas para la ejecución del proceso, incluyendo el
seguimiento del estado de cada una de sus etapas y la aportación de las
herramientas necesarias para gestionarlo.
Se pueden distinguir tres tipos de actividad:
• Actividades colaborativas: Es un grupo de usuarios que trabajan
sobre un mismo repositorio de datos para obtener un resultado
común.
• Actividades cooperativas: Es un grupo de usuarios que trabajan
sobre su propio conjunto particular, estableciendo los mecanismos
de cooperación entre ellos.
• Actividades de coordinación: Los workflow permiten automatizar
procesos, usualmente se usan en procesos de negocio, en general
permiten hacerlo con cualquier tipo de proceso que requiera
ejecutar una serie de pasos en un orden predeterminado.
2.2.3 SOA SOA (Service Oriented Architecture), que en español significa
Arquitectura Orientada a Servicios, es un término utilizado en arquitectura
8
de software, indica que el software utiliza servicios y esto permite la
creación de sistemas de información altamente escalables, lo cual facilita
la interacción entre diferentes sistemas propios o de terceros.
2.2.4 BPM BPM (Business Process Manager), que en español significa
Administración de Procesos de Negocio, se llama gestión o
administración por procesos de negocio y su objetivo es mejorar el
desempeño de la organización a través de la gestión de los procesos de
negocio. Los procesos se deben diseñar, modelar, organizar, documentar
y optimizar de forma continua.
BPM es el entendimiento, visibilidad y control de los procesos de negocio
de una organización. Un proceso de negocio representa una serie
discreta de actividades o pasos de tareas que pueden incluir personas,
aplicativos, eventos de negocio y organizaciones.
2.2.5 BPMN BPMN (Business Process Modeling Notation ), que en español significa
Notación para el Modelo de Procesos de Negocio, es una notación gráfica
estandarizada que permite el modelado de procesos de negocio, en un
formato de flujo (workflow). BPMN fue inicialmente desarrollada por la
organización Business Process Management Initiative (BPMI), y es
actualmente mantenida por el OMG (Object Management Group),
después de la fusión de las dos organizaciones en el año 2005. Su
versión actual, a abril de 2011, es la 2.0.
El principal objetivo de BPMN es proporcionar una notación estándar que
sea fácilmente legible y entendible por parte de todos los involucrados e
interesados del negocio (stakeholders). Entre estos interesados están los
analistas de negocio (quienes definen y redefinen los procesos), los
desarrolladores técnicos (responsables de implementar los procesos) y
9
los gerentes y administradores del negocio (quienes monitorizan y
gestionan los procesos). En síntesis, BPMN tiene la finalidad de servir
como lenguaje común para cerrar la brecha de comunicación que
frecuentemente se presenta entre el diseño de los procesos de negocio y
su implementación.
Actualmente hay una amplia variedad de lenguajes, herramientas y
metodologías para el modelado de procesos de negocio. La adopción
cada vez mayor de la notación BPMN como estándar ayudará a unificar la
expresión de conceptos básicos de procesos de negocio (por ejemplo
procesos públicos y privados, orquestación, coreografía, etc.) así como
conceptos avanzados de modelado (por ejemplo manejo de excepciones,
compensación de transacciones, entre otros).
2.2.6 ESB ESB (Enterprise Service Bus), que en español significa Bus de Servicios
Empresariales, es un mediador de los servicios en un entorno empresarial.
2.2.7 OOAD OOAD (Object Oriented Analysis and Design), que en español significa
Análisis y Diseño Orientado a Objetos, el objetivo es modelar y diseñar un
sistema como un grupo de interacciones entre objetos.
2.2.8 CBM CBM (Componente Business Modeling), que en español significa
Modelamiento de Componentes de Negocio, es una técnica desarrollada
por IBM para modelar y analizar una empresa. Es una representación
lógica o mapa de componentes de negocio o “buildings blocks “ es decir
bloques de construcción y pueden ser representados en una sola página.
10
2.2.9 ARTEFACTOS Un producto o artefactos es un trozo de información que es producido,
modificado o usado durante el proceso de desarrollo de software. Los
productos son los resultados tangibles del proyecto, las cosas que va
creando y usando hasta obtener el producto final.
Un artefacto puede ser cualquiera de los siguientes:
• Un documento, como el documento de la arquitectura de software
• Un modelo, como el modelo de casos de uso o el modelo de
diseño
• Un elemento del modelo, un elemento que pertenece a un modelo
como una clase, un caso de uso o un subsistema.
2.2.10 APLICACIONES DISTRIBUIDAS Una aplicación con distintos componentes que se ejecutan en entornos
separados, normalmente en diferentes plataformas conectadas a través
de una red. Las aplicaciones distribuidas tradicionales son de dos niveles
(cliente – servidor) tres niveles (Cliente – middleware-servidor) y multinivel.
2.2.11 ARQUITECTURA EMPRESARIAL La arquitectura empresarial identifica los componentes principales de la
organización y su relación para conseguir los objetivos.
2.2.12 LDAP LDAP (Lightweight Directory Access Protocol), que en español significa
Protocolo Ligero de Acceso a Directorios, es un protocolo a nivel de
aplicación, tiene acceso a una base de datos de un conjuntos de objetos,
organizados en una manera lógica y jerárquica, es decir permite la
administración de usuarios por cada grupo o área de la organización
dentro de una empresa.
11
2.2.13 SOAP SOAP (Single Object Access Protocol), que en español significa Protocolo
Simple de Acceso a Objetos, define cómo se puede comunicar dos
objetos por medio de XML.
2.2.14 HTTP HTTP (Hypertext Transfer Protocol), que en español significa Protocolo de
Transferencia de Hipertexto, se define como un protocolo usado por
internet WWW (World Wide Web).
2.2.15 W3C W3C (World Wide Web Consortium), son las siglas de una comunidad
internacional que trabajan para poder desarrollar estándares para el
desarrollo web. Es reconocido a nivel mundial por ser la organización
encargada de estandarizar el lenguaje HTML ( lenguaje de hipertexto) .
2.2.16 MODELO DE DOMINIO Un modelo de dominio es un modelo conceptual de todos los temas
relacionados con un problema específico. En él se describen las distintas
entidades, sus atributos, papeles y relaciones, además de las
restricciones que rigen el dominio del problema.
2.2.17 KPI KPI (Key Performance Indicator), que en español significa Indicadores de
Rendimiento que según Wikipedia http://es.wikipedia.org/wiki/KPI “Es una
medida del nivel del desempeño de un proceso; el valor del indicador está
directamente relacionado con un objetivo fijado de antemano.
Normalmente se expresa en porcentaje”, estos indicadores sirven para
mejorar el rendimiento en aplicaciones SOA.
12
2.3 METODOLOGÍA DE DESARROLLO DE SOFTWARE RUP
2.3.1 DEFINICIÓN RUP (Rational Unified Process) o Proceso Unificado, es una metodología
de desarrollo de software creado por Rational Software Corporation,
actualmente es propietario IBM, esta se ayuda con UML para poder
diagramar las diferentes etapas del desarrollo de software.
RUP contiene un conjunto de procesos iterativos e incrementales, obliga a
la asignación de tareas y responsabilidades en forma disciplinada en un
proyecto de software, es decir quién hace qué, cuándo y cómo.
Los procesos de RUP se basan en las mejores prácticas que se han
intentado y se han probado en el campo, se divide en cuatro fases:
• Inicio, define el alcance del proyecto
• Elaboración, definición, análisis y diseño
• Construcción, implementación
• Transición, fin del proyecto y puesta en producción.
En cada fase se concluye con un hito de toma de decisiones, cabe
destacar que planificar las fases involucra asignación de tiempos, hitos
principales, iteraciones por fases y plan de proyecto.
RUP define nueve disciplinas a realizar en cada fase del proyecto:
• Modelado del negocio
• Análisis de requisitos
• Análisis y diseño
• Implementación
• Pruebas
• Distribución
• Gestión de configuración y cambios
13
• Gestión del entorno
2.3.2 FASE DE INICIO Durante la fase de inicio se define el modelo de negocio y el alcance del
proyecto. Se identifican los actores y casos de uso, y se diseñan los
casos de uso más esenciales (aproximadamente el 20% del modelo
completo). Se desarrolla, un plan de negocio para determinar que
recursos deben ser asignados al proyecto.
Los objetivos de esta fase son:
• Establecer el ámbito del proyecto y sus límites.
• Encontrar los casos de uso críticos del sistema, los escenarios
básicos que definen la funcionalidad.
• Estimar el coste en recursos y tiempo de todo el proyecto.
• Estimar los riesgos, las fuentes de incertidumbre.
Los resultados de la fase de inicio deben ser:
• Documento de visión que indica una visión general de los
requerimientos del proyecto, características claves y restricciones
principales.
• Modelo inicial de casos de uso (10-20% completado).
• Glosario inicial de términos.
• Casos de uso de negocio.
• Listado de riesgos y plan de contingencia.
• Plan de proyecto, mostrando fases e iteraciones.
• Modelo de negocio, si es necesario.
• Prototipos de software, si es necesario
Al terminar la fase de inicio se deben comprobar los criterios de
evaluación para continuar:
• Los interesados en el proyecto coinciden en la definición del ámbito
del sistema y las estimaciones de agenda
14
• Entendimiento de los requisitos, como evidencia de fidelidad de los
casos de uso principales
• Las estimaciones de tiempo, coste y riesgo son creíbles
• Los gastos hasta el momento se asemejan a los planeados
Si el proyecto no pasa estos criterios hay que plantearse abandonarlo o
repensarlo profundamente.
2.3.3 FASE DE ELABORACIÓN El propósito de la fase de elaboración es analizar el dominio del problema,
establecer los cimientos de la arquitectura, desarrollar el plan del proyecto
y eliminar los mayores riesgos.
En esta fase se construye un prototipo de la arquitectura, que debe
evolucionar en iteraciones sucesivas hasta convertirse en el sistema final.
Este prototipo debe contener los casos de uso críticos identificados en la
fase de inicio. También debe demostrarse que se han evitado los riesgos
más graves.
Los objetivos de esta fase son:
• Definir, validar y cimentar la arquitectura.
• Completar la visión
• Crear un plan fiable de construcción. Este plan puede evolucionar
en sucesivas iteraciones. Debe incluir los costes si procede.
• Demostrar que la arquitectura propuesta soportará la visión con un
coste razonable y en un tiempo razonable.
Al terminar deben obtenerse los siguientes resultados:
• Un modelo de casos de uso completa al menos hasta el 80%,
todos los casos y actores identificados, la mayoría de los casos
desarrollados.
• Requisitos adicionales que capturan los requisitos no funcionales y
cualquier requisito no asociado con un caso de uso específico.
15
• Descripción de la arquitectura software
• Un prototipo ejecutable de la arquitectura
• Plan de desarrollo para el proyecto
• Un caso de desarrollo actualizado que especifica el proceso a
seguir
• Un manual de usuario preliminar (opcional)
En esta fase se debe tratar de abarcar todo el proyecto con la profundidad
mínima. Sólo se profundiza en los puntos críticos de la arquitectura o
riesgos importantes.
En la fase de elaboración se actualizan todos los productos de la fase de
inicio.
En esta fase se actualizarán todos los artefactos de la fase de inicio:
• La visión del producto es estable
• La arquitectura es estable
• Se ha demostrado mediante la ejecución del prototipo que los
principales elementos de riesgos han sido abordados y resueltos.
• El plan para la fase de construcción es detallado y preciso. Las
estimaciones son creíbles.
• Todos los interesados coinciden en que la visión actual será
alcanzada si se siguen los planes actuales en el contexto de la
arquitectura actual.
• Los gastos hasta ahora son aceptables, comparados con los
previstos.
Si no se superan los criterios de evaluación quizá sea necesario
abandonar el proyecto o replanteárselo considerablemente.
2.3.4 FASE DE CONSTRUCCIÓN La finalidad principal de esta fase es alcanzar la capacidad operacional
del producto de forma incremental a través de las sucesivas iteraciones.
16
Durante esta fase todos los componentes, características y requisitos
deben ser implementados, integrados y probados en su totalidad,
obteniendo una versión aceptable del producto.
Los objetivos concretos de esta fase son:
• Minimizar los costes de desarrollo mediante la optimización de
recursos y evitando el tener que rehacer un trabajo o incluso
desecharlo.
• Conseguir una calidad adecuada tan rápido como sea práctico
• Conseguir versiones funcionales (alfa, beta y otras versiones de
prueba) tan rápido como sea práctico.
Los resultados de la fase de construcción deben ser:
• Modelos completos ( casos de uso, análisis, diseño, despliegue e
implementación)
• Arquitectura íntegra ( mantenida y mínimamente actualizada)
• Riesgos presentados mitigados
• Plan de proyecto para la fase de transición
• Manual inicial de usuario (con suficiente detalle)
• Prototipo operacional – beta
• Caso del negocio actualizado
Los criterios de evaluación de esta fase son los siguientes:
• El producto es estable y maduro como para ser entregado a la
comunidad de usuario para ser probado.
• Todos los usuarios expertos están listos para la transición en la
comunidad de usuarios.
• Son aceptables los gastos actuales versus los gastos planeados.
2.3.5 FASE DE TRANSICIÓN La finalidad de la fase de transición es poner el producto en manos de los
usuarios finales, para lo que se requiere desarrollar nuevas versiones
actualizadas del producto, completar la documentación, entrenar al
17
usuario en el manejo del producto, y en general tareas relacionadas con
el ajuste, configuración, instalación y facilidad de uso del producto.
Algunas cosas que puede incluir esta fase:
• Prueba de la versión - beta para validar el nuevo sistema frente a
las expectativas de los usuarios
• Funcionamiento paralelo con los sistemas que están siendo
sustituidos por nuestro proyecto
• Conversión de las bases de datos operaciones.
• Entrenamiento de los usuarios y técnicos de mantenimiento
• Traspaso del producto a los equipos de marketing, distribución y
venta.
Los principales objetivos de esta fase son:
• Conseguir que el usuario se valga por sí mismo
• Un producto final que cumpla los requisitos esperados, que
funcione y satisfaga suficientemente al usuario.
Los resultados de la fase de transición son:
• Prototipo operacional
• Documentos legales
• Caso del negocio completo
• Línea de base del producto completa y corregida que incluye todos
los modelos del sistema
• Descripción de la arquitectura completa y corregida
• Las iteraciones de esta fase irán dirigidas normalmente a conseguir
una nueva versión
Los criterios de evaluación de esta fase son los siguientes:
• El usuario se encuentra satisfecho
• Son aceptables los gastos actuales versus los gastos planificados
18
2.3.6 ROLES Un rol define comportamiento y responsabilidades de un individuo, o de
un grupo de individuos trabajando juntos como un equipo. Una persona
puede desempeñar diversos roles, así como un mismo rol puede ser
representado por varias personas.
Las responsabilidades de un rol es tanto el llevar a cabo un conjunto de
actividades como el ser el dueño de un conjunto de artefactos.
Analistas:
• Analista de procesos de negocio
• Diseñador del negocio
• Analista de sistema
• Especificador de requisitos
Desarrolladores:
• Arquitecto de software
• Diseñador de interfaz de usuario
• Diseñador de base de datos
• Implementador
• Integrador
Gestores
• Jefe de proyecto
• Jefe de control de cambios
• Jefe de configuración
• Jefe de pruebas
• Jefe de despliegue
• Ingeniero de procesos
• Revisor de gestión del proyecto
• Gestor de pruebas
Apoyo
19
• Documento técnico
• Administrador de sistema
• Especialista en herramienta
• Desarrollador de cursos
• Artista gráfico
Especialista en pruebas:
• Especialista en pruebas
• Analista de pruebas
• Diseñador pruebas
Otros roles:
• Stakeholders
• Revisor
• Coordinación de revisiones
• Revisor técnico
• Cualquier rol
2.4 SOFTWARE ESCALABLES Software escalable, es la capacidad para responder rápidamente ante los
cambios y optimizar los procesos de negocio, son factores claves para la
competitividad y el crecimiento de las organizaciones, cuando un software
se puede adaptar y crecer junto con la empresa entonces se trata de un
software escalable, siempre con el objetivo claro de satisfacer las
necesidades que el negocio exige y manteniendo un rendimiento
adecuado.
La escalabilidad debe formar parte del proceso de diseño del desarrollo
de software porque no es una característica separada que se pueda
agregar después. Al igual que con otras funciones de aplicación, las
decisiones que se tomen durante las primeras fases de diseño y
codificación determinaran en gran medida la escalabilidad de la aplicación.
20
Las organizaciones se han dado cuenta que el objetivo final es la
automatización de los procesos de negocio (desarrollar aplicaciones que
darán soporte a todos y cada uno de los pasos de un proceso de negocio,
desde su comienzo hasta su finalización). La Arquitectura SOA es una
filosofía de diseño que permite un mejor alineamiento de las tecnologías
de información (IT) con las necesidades de negocio.
Se percibe cada vez con mayor claridad que los procesos de negocio no
son constantes y necesitan ser adaptados. Necesitan ser flexibles, por lo
tanto, IT también debe ser flexible.
Las empresas necesitan poder interconectar los procesos, personas e
información tanto con la propia organización como atravesando sus
fronteras con la subsidiaria y socios comerciales. La falta de integración e
interoperabilidad entre los componentes de sistemas, aplicaciones y datos,
hace difícil obtener una respuesta rápida y efectiva ante los cambios que
afectan de forma natural a los negocios. La inflexibilidad genera costos,
reduce la capacidad de respuesta ante los clientes, compromete el
cumplimiento de la normativa legal y afecta negativamente en el personal
de la empresa.
El software de gestión administrativa está estrechamente ligado a la
organización interna, procesos y modelos de negocio, durante todo el
tiempo existirán requisitos de este tipo de software, debido a el cambio
permanente en los mercados de negocio, la organización de la empresa y
sus objetivos de negocio, es por eso que el desarrollo de software
administrativo se hace realmente muy complejo.
Como resultado de la estrecha relación con la organización interna, los
procesos y modelos de negocio, un diseño de software debe cumplir con
requisitos muy diferentes que los tradicionales, para poder brindar agilidad
y eficiencia a un diseño de software de gestión, debe contemplar
características particulares como: simplicidad, flexibilidad y mantenimiento,
21
reusabilidad y por último poder desacoplar la funcionalidad y la tecnología
mediante la utilización de una arquitectura SOA.
2.5 ARQUITECTURA DE SOFTWARE BASADA EN SOA
2.5.1 INTRODUCCIÓN Una empresa es una entidad compleja compuesta por personas, procesos
y tecnología, que producen productos o servicios orientados a satisfacer
las necesidades de los clientes. La arquitectura empresarial actúa como
una fuerza integradora entre aspectos de planificación de negocios,
aspectos de operación de negocio y aspectos tecnológicos.
Con la implementación de SOA en las empresas se ha logrado alcanzar
un alto nivel de importancia y relevancia, gracias a que las necesidades
latentes que tienen las organizaciones se alinean al modelo de negocio
con los servicios tecnológicos, con el único objetivo de ser más
competitivos y poder brindar prontas respuestas a las exigencias del
mercado.
SOA corresponde a un estilo de arquitectura en el contexto de las
tecnologías de la información (TI), entendiéndose como la planeación y el
diseño de un sistema de información de acuerdo con un conjunto de guías
y lineamientos de manera que soporte las capacidades actuales y futuras
para las cuales fue diseñado.
Tradicionalmente, los modelos de gestión tecnológica en una
organización están relacionados con los modelos de negocio bajo este
enfoque, el diseño y construcción de las soluciones informáticas consiste
en tomar el conjunto de requerimientos que define el negocio, y a partir de
estos extraer un modelo de tecnología que de respuesta explícita a dichos
requerimientos.
22
Lo que se busca con SOA es tener una visión más abierta y estrecha con
el negocio, así como una nueva alternativa de pensamiento sobre la
orientación a servicios de los componentes tecnológicos que provee. La
adopción de un modelo de arquitectura orientado a servicios proporciona
los mecanismos que permiten definir contratos de prestación de servicios
que aseguren que la capa de negocio en una organización se encuentra
alineada con la capa de TI.
Figura 2.1 Antes y después de SOA
Fuente: Marcos Milanesio http://marcosmilanesio.blogspot.com/2010_04_01_archive.html
A través de SOA, los procesos de negocios se implementan mediante
servicios que ejecutan cada una de las unidades de trabajo mencionadas,
cada servicio es autónomo e independiente del resto, el cual al no
necesitar información de contexto puede reutilizarse indistintamente en
varios procesos es decir son stateless o sin estado.
La comunicación con el resto de componentes se realiza por medio de su
interfaz, que mientras no sea modificada, permite la mejora continua del
servicio disminuyendo la necesidad de realizar pruebas de procesos
23
completos continuamente. A esto se lo conoce como loose coupling o
bajo acoplamiento.
El proceso para transitar de un estado actual hacia un estado deseado, se
denomina GAP que significa brecha, SOA permite que se vaya
realizando un acercamiento hacia el modelo objetivo.
2.5.2 TERMINOLOGÍA BÁSICA SOA
2.5.2.1 MENSAJE Es una unidad independiente de comunicación, es simple y es solo una
estructura de datos. En el contexto de SOA, los consumidores y
servidores intercambian información libremente en base a los contratos y
políticas.
2.5.2.2 SERVICIOS SIN ESTADO Son métodos o procedimientos sin estado, que acepta unas llamadas y
devuelve respuestas. Los servicios pueden también ejecutar unidades
discretas de trabajo como serían editar y procesar una transacción.
Los servicios no dependen del estado de otras funciones o procesos.
Las características principales son las siguientes:
• Interoperabilidad, es decir la capacidad de intercambiar información
entre los sistemas de tecnologías de la información, comunicación,
y procesos empresariales.
• Flexibilidad, es decir la resolución de muchos obstáculos en la
puesta en producción e integración de las aplicaciones.
• Basados en protocolos HTTP (Hyper Typer Text Protocol), en
español protocolo de híper texto.
• Interfaz definida o contrato de servicio, especifica el consumo del
servicio, desde cualquier cliente, como puede ser otros servicios o
programas.
• Reutilizable y/o compatible con otros
24
• Desacoplado, lo que indica, que la funcionalidad del servicio, no
dependa de otro para poder ejecutarse.
Ejemplo:
• Consultar la hora
• Calcular monto
• Consultar clientes
2.5.2.3 ORQUESTACIÓN La orquestación o composición de servicios, es la unión de dos o más
servicios, con alguna lógica, para crear otro servicios más complejo, la
lógica depende de los procesos del negocio: simple o secuencial.
Estos servicios más complejos se pueden crear con lenguajes diferentes
a los servicios básicos, como BPEL.
La administración, metodología y estándares utilizados para estos
procesos se los conoce como BPM.
2.5.2.4 BPEL BPEL (Business Process Execution Language), que en español significa
Lenguaje de Ejecución de Procesos de Negocio, es un lenguaje
estandarizado para la composición de servicios web. Básicamente,
consiste en un lenguaje basado en XML diseñado para el control
centralizado de la invocación de diferentes servicios Web, con cierta
lógica de negocios añadida que ayuda a la programación en gran escala.
2.5.2.5 BPM BPM (Business Process Manager), que en español significa
Administración de Procesos de Negocio, es el enfoque de negocio de los
sistemas de información y también resulta ser una disciplina de gestión
por proceso de negocio apoyadas fuertemente por tecnologías de
25
información, así tratando de lograr que se construyan sistemas de
información de acuerdo a las necesidades del cliente.
2.5.3 DEFINICIÓN DE SOA SOA (Service Oriented Architecture), que en español es Arquitectura
Orientada a Servicios, es la organización fundamental de un sistema
descrita en servicios y la relación entre estos, está basada en estándares,
los servicios son autónomos y granulares.
2.5.4 OBJETIVO DE LA ARQUITECTURA SOA. El fin de una arquitectura SOA es conseguir combinar distintos módulos
funcionales para generar aplicaciones de carácter especifico, que
provienen de servicios existentes.
La arquitectura SOA se rige sobre un principio fundamental: la orientación
al servicio. En un entorno SOA los servicios pueden ser utilizados sin
conocimiento alguno de las características de la plataforma sobre la que
se despliegan.
2.5.5 BENEFICIOS DE SOA Los beneficios que puede obtener una organización que adopta SOA son:
• Mejora en los tiempos de realización de cambios en procesos.
• Facilidad para evolucionar a modelos de negocios basados en
tercerización.
• Facilidad para abordar modelos de negocios basados en
colaboración con otros entes (socios, proveedores).
• Poder para reemplazar elementos de la capa aplicativa SOA sin
disrupción en el proceso de negocio.
• Facilidad para la integración de tecnologías disímiles.
26
2.5.6 DESVENTAJAS DE SOA: Las desventajas que presenta SOA son:
• La velocidad de intercambio de información entre cada servicio es
más lenta comparada con una conexión directa.
• Requiere un cambio en las organizaciones, un alto esfuerzo. No
siendo sencillo, para la mayoría de las organizaciones adoptar
SOA.
• SOA demanda muchas horas de trabajo en el principio del proyecto.
2.5.7 COMPONENTES DE SOA Dentro de una implementación SOA se encuentran los siguientes
componentes tecnológicos:
• ESB (Enterprise Service Bus): Es un software especializado que
facilita la comunicación entre los servicios
• Herramientas de desarrollo: Ambiente integrado que permite el
diseño y construcción de la mediación/orquestación de los servicios
• Servicios de información: Funciones que administran datos y
contenido de diversas fuentes de una manera unificada.
• Servicios de acceso: Funciones que facilitan la interacción entre
las diferentes aplicaciones de negocio.
2.5.8 IMPLEMENTACIÓN DE SOA Existen tres fases para implementar exitosamente SOA, y se ejecutan de
manera consecutiva:
• Planificación.
• EAI (Integración de Aplicaciones Empresariales)
• BPM (Procesos de negocio)
27
2.5.9 PLANIFICACIÓN DE DESARROLLO DE APLICACIONES SOA
Antes de empezar tenemos que contestar a las siguientes preguntas :
• Qué servicios se requieren?
• Qué servicios se deben desarrollar?
• Cómo crear nuevos servicios?
• Cómo administrar los servicios?
• Cómo estandarizar los mensajes que van a intercambiar los
servicios?
2.5.9.1.1 IDENTIFICACIÓN DE SERVICIOS
¿Qué servicios necesitamos? Uno de los principales errores que se
pueden cometer al adoptar SOA es empezar a desarrollar nuevos
servicios o incluso exponer servicios existentes sin tener la seguridad de
que los vayamos a necesitar. Esto se debe a que ese proceso toma
tiempo y requiere de recursos especializados. Por lo tanto, para ser
exitosa, la adopción de SOA debe ser progresiva y basada en proyectos
reales de EAI o de BPM. Los servicios se deben crear o exponer a
medida que se requieren. Eso si, los servicios se deben planear para que
sean reutilizables y por lo tanto deben ser tan generales como sea posible.
Esto significa que si lo que se requiere es un servicio para dar de alta un
cliente en una región determinada, quizás sea mejor crear uno que
permita crear un cliente para cualquier región.
En general, lo más recomendable es dejar que los usuarios de negocios
definan los servicios, sin intervención de la gente de TI. Para lograrlo, lo
mejor es dejar que utilicen una herramienta de modelado de procesos, es
decir representar tanto sus procesos existentes, como los que desearían
implementar. Normalmente, de esos procesos se obtiene fácilmente los
servicios que se deben implementar. Para decidir en qué orden hacerlo
podemos ayudarnos de una pequeña matriz en la que un eje indicamos la
complejidad del desarrollo y en la otra su importancia. De esta manera
28
podemos empezar por los más importantes y sencillos y dejar los
complejos y menos críticos para más adelante.
Figura 2.2 Identificación de servicios
Fuente: tomado de Gustavo Francisco Guerra
http://es.slideshare.net/gustavofranciscoguerra/implemen
tacion-exitosa-soa
La mejor manera de detectar servicios es pidiendo a los usuarios de
negocio que modelen sus procesos.
2.5.9.1.2 SERVICIOS EXISTENTES
Qué servicios se deben desarrollar?, para cada servicio detectado es
necesario determinar si debe ser desarrollado desde cero o si es posible
exponer la funcionalidad que ya provee un sistema antiguo como un
servicio.
El desarrollo de nuevos servicios es un proceso muy similar al desarrollo
de una aplicación. Los primeros pasos consisten en levantar los
requerimientos, luego se crea una arquitectura que permita soportar la
aplicación con los niveles de servicio y otros requerimientos no
1
3 4
ALTA BAJA
ALT
A
BA
JA
Complejidad
Impo
rtan
cia
29
funcionales necesarios y finalmente se hace un análisis exhaustivo de la
aplicación. Al tratarse de componentes que ofrecen funcionalidad limitada,
la fase de desarrollo generalmente se puede completar en una sola
iteración.
Al igual que con cualquier tipo de desarrollo, el uso de una metodología
de desarrollo probada como RUP es altamente recomendado.
Figura 2.3 Metodología RUP
Fuente: IBM http://www.ibm.com/developerworks/library/ws-soa-term2/
Una de las características de los servicios web es que normalmente
realizan solo una función, por eso suelen ser muy fáciles de probar. Las
pruebas se deben hacer tanto para comprobar la funcionalidad del
servicio como su escalabilidad. Existen herramientas que automatizan las
pruebas unitarias de los servicios web.
Sin embargo, el desarrollo de nuevos componentes no es tan complicado
como la administración de cambios a los mismos. En efecto, una vez que
un servicio ha sido creado y es utilizado por múltiples procesos, realizar
cambios al mismo puede parecer imposible. Esto no significa que una vez
creado no sea posible realizar nunca cambios al mismo pero tampoco
significa tener que crear otros similares pero con la funcionalidad
30
específica que se requiere, porque eso tampoco es una opción. ¿Por
qué? Porque entonces, se da la proliferación de servicios de la que
hablábamos anteriormente la cual es nefasta, tanto para los
programadores responsable de mantener el código como para los
administradores del sistema. Por lo tanto, es necesario llevar un control
de las dependencias existentes así como una comprensión precisa del
impacto de los cambios. Esto es algo que se ha hecho desde hace años
en proyectos tradicionales, pero que se ha vuelto aún más importante en
un entorno de SOA.
2.5.9.1.3 PROTOCOLOS DE COMUNICACIÓN DE SERVICIOS
En los orígenes de los servicios web, lo importante era saber cómo
invocarlos. Para eso se creó el protocolo SOAP (Simple Object Access
Protocol). Simplificando, se trata básicamente de un documento XML que
se utiliza para transportar los parámetros de entrada y de salida entre una
aplicación cliente y un servicio web. Lo que no define es el protocolo de
transporte único como HTTP o SMTP. En lugar de eso, enumera una
serie de protocolos posibles y termina con puntos suspensivos indicando
que cualquier protocolo es aceptable, siempre y cuando el mensaje
cumpla con SOAP.
Inicialmente, la gente utilizó HTTP como protocolo de transporte para los
mensajes SOAP porque ofrece varias ventajas importantes, como bajo
costo, posibilidad de utilizarlo a través de firewalls y posibilidad de
utilizarlo con software de infraestructura existente.
Sin embargo, HTTP tiene muchas limitaciones para un uso empresarial.
La más importante es que HTTP no garantiza la entrega del mensaje ni la
recepción de una respuesta. Esto en muchos casos no es muy importante.
Por ejemplo, en EEUU, el gobierno facilita un servicio web público para
que los desarrolladores puedan incluir las predicciones del tiempo en su
página Web. Si este servicio se utiliza desde un portal como Yahoo! y el
31
servicio por algún motivo no contesta, no pasa nada. El usuario solo
necesita pulsar el botón “Recargar” y el problema queda resuelto.
Sin embargo, dentro de una empresa, para aplicaciones que tienen
sistemas de información implementados con ESB, no se puede usar el
botón “Recargar” que tiene los navegadores de internet, explicaremos con
un ejemplo, una aplicación de recursos humanos que se utilice para dar
de alta a nuevos empleados, cuando termina este proceso supongamos
que utiliza servicios web para conectarse con el sistema de activos fijos
para asignar una laptop a ese nuevo empleado, si la llamada al servicio
falla con HTTP no sabríamos si el servicio falló antes de asignar al equipo
o después, por lo tanto, no es posible simplemente “Recargar” la pagina
para volver a invocar el servicio porque corremos el riesgo de asignar
varios equipos a una misma persona. El mismo problema se presentaría
con una transferencia bancaria, necesitamos la garantía de que esa
transacción se va a realizar y de que sólo se va a realizar una vez, en
ese tipo de casos HTTP no es una opción.
Afortunadamente existe una alternativa que cumple con los
requerimientos que se han señalado, consiste en utilizar colas de
mensajes para servir como transporte seguro de los mensajes SOAP,
permite al emisor y al receptor que se encuentren inactivos, permite
comunicaciones persistentes asincrónicas, transferencia de mensajes que
duren minutos, dicho en otras palabras permite que el emisor y el
receptor del mensaje no necesiten interactuar con la cola del mensaje al
mismo tiempo.
Entonces, la pregunta obvia es ¿Qué protocolo debo usar? No existen
reglas estrictas al respecto, pero sí unas recetas que conviene adoptar:
AMQP ( Advanced Message Queuing Protocol), según Wikipedia
http://es.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol , es
“es un protocolo de estándar abierto en la capa de aplicaciones de un
sistema de comunicación. Las características que definen al protocolo
32
AMQP son la orientación a mensajes, encolamiento ("queuing"),
enrutamiento (tanto punto-a-punto como publicación-subscripción),
exactitud y seguridad”, siendo un protocolo para colas de mensajería.
Las situaciones donde se utilizaría colas de mensajes:
• Servicios asíncronos
• Servicios que representan procesos de negocios (tanto micro-flujos
BPEL como macro-flujos)
• Servicios transaccionales, en los que se requiere la garantía de
que se va a obtener una respuesta
Situaciones en las que se debe utilizar SOAP/HTTP:
• Cuando el lenguaje de programación utilizado por el servicio no
puede interactuar con colas de mensaje
• En las situaciones que se debe interactuar con un número alto o
desconocido de socios de negocios
• Consultas síncronas sencillas que afectan a un solo sistema
Como se puede observar, siguen existiendo zonas grises en las que
podría usar hipotéticamente ambas soluciones tecnológicas. Si bien es
posible y de hecho muy fácil exponer un mismo servicio tanto por
SOAP/JMS como por SOAP/HTTP, lo más recomendable es que en caso
de duda se adopte SOAP/JMS ya que para el área de operaciones es
mucho más sencillo monitorear una infraestructura de colas de mensajes
que una basada en HTTP donde los mensajes se mezclan con el tráfico
normal de acceso a Internet.
2.5.9.1.4 ADMINISTRACIÓN DE LOS SERVICIOS
Para la administración de los servicios se tiene que realizar una
normalización sintáctica, si se dispone de pocos servicios, es posible que
los desarrolladores sean quienes conserven las especificaciones de lo
servicios , si se cuenta con bastantes servicios es necesario contar con un
repositorio centralizado, en el que se publiquen todos los servicios
existentes.
33
Si la empresa tiene cientos o miles de servicios es necesario un directorio
avanzado que permita contestar, las siguientes preguntas:
• Quién es el responsable de cada servicios?
• Quién es el responsable de desarrollo de cada servicio?
• Quién es el responsable de la calidad de datos?
• Qué procesos se ven afectados si no funciona el servicio?
Cuando se trabaja con decenas de sistemas, es normal que no todos
manejen el mismo vocabulario, por ejemplo el objeto “Cliente“ se puede
representar de manera distinta.
Es importante que en el modelado de los procesos se intente normalizar
la estructura de los objetos de negocio para simplificar la integración de
sistemas y reducir la necesidad de realizar transformaciones en las que
se pueden perder datos, al interconectar diversos sistemas.
2.5.9.2 COMUNICACIÓN ENTRE SERVICIOS La comunicación entre servicios se lo puede realizar mediante un ESB,
para lo que es necesario considerar:
• Ruteo y transformación de mensajes
• Seguridad
• Monitoreo
• Calidad de Servicio
El ESB servirá de intermediario entre las aplicaciones existentes en un
entorno empresarial, sin importar su infraestructura o lenguaje de
programación, el objetivo es aprovechar las funcionales existentes para
un fin común.
34
Figura 2.3 Modelo de un ESB
Fuente: tomado de http://www.misbytes.com/wp/wp-
content/uploads/2006/10/esb3.jpg
La seguridad es muy importante en el contexto de los servicios web, es
posible encriptar los mensajes o el canal de comunicaciones, es más
sencillo encriptar el canal de comunicaciones que el mensaje así
brindando una flexibilidad a los desarrolladores.
La seguridad debe tomar en cuenta lo siguiente:
• La seguridad debe estar centralizada con el directorio LDAP
• La seguridad puede llegar a impactar seriamente al rendimiento de
la aplicación
2.6 SEGURIDAD EN SERVICIOS WEB Alguna de las características de los servicios web, como por ejemplo el
acceso e intercambio de la información no están acordes con los modelos
y controles tradicionales de la seguridad informática, esta situación a
35
generado desafíos para modificar los mecanismos de confidencialidad e
integridad de los datos que son transmitidos por los protocolos de
servicios web.
Los sistemas de seguridad como: Firewalls (software o hardware que
comprueba la información de internet o red) y/o Sistemas de Detección
de Intrusos no son adecuados para proteger arquitecturas basadas en
SOA, esto es debido que estas técnicas son dinámicas y son transmitidas
a través de HTTP; soluciones como TLS y SSL es decir tener canales
seguros no se adaptan totalmente porque trabajan asegurando canales
de aplicación punto a punto y no de aplicaciones.
Algunos estándares desarrollos por W3C pueden garantizar:
confidencialidad, integridad y disponibilidad de los servicios web, estos
proveen mecanismos para cifrar, firmar digitalmente, autenticar y certificar
documentos XML.
2.6.1 WS-Security WS-Security, que en español significa Seguridad Web Services, que
según Wikipedia http://es.wikipedia.org/wiki/WS-Security “Es un protocolo
de comunicaciones que suministra un medio para aplicar seguridad a los
Servicios Web”, define mecanismos para proteger la integridad y
confidencialidad en los mensajes.
WS-Security define como utilizar mecanismos existentes para
proporcionar autenticación, confidencialidad e integrar a los servicios web,
de esta forma resuelve que en vez de crear una autenticación desde cero,
se utilice alguna que ya este lista como: Kerbeos y Certificados X.509, se
cifra con el XML Encryption y se firma con la XML Signature tras preparar
los datos mediante el XML Canonicalization.
Una de las características del WS-Security, es que es un framework
( marco de trabajo) que integra otros estándares de mensajes de tipo
36
SOAP ( protocolo de especificación para intercambio de información
estructurada), se puede aplicar tanto a trozos del documento como a su
totalidad e independientemente de los protocolos de transporte.
2.6.2 XML ENCRYPTION Es una recomendación de W3C que según Wikipedia
http://es.wikipedia.org/wiki/XML_Encryption “Especifica un proceso para
cifrar datos (no únicamente documentos XML) y representar esa
información cifrada a su vez en XML para que viaje por los medios de
transmisión”
2.6.3 XML SIGNATURE XML Signature, que en español significa Firma XML, es una
recomendación de W3C que define una sintaxis para firmas digitales.
2.6.4 XML CANONICALIZATION XML Canonicalization, que es español significa canonicalización XML es
un termino que significa escoger la mejor URL para mostrar en un sitio
web. Permite relativamente comparar pares de documentos XML para la
equivalencia; para este propósito, la transformación canónica XML elimina
diferencias no significativas entre los documentos, cualquier documento
XML se puede convertir en XML canónica.
37
3 ANÁLISIS DE METODOLOGÍA ACTUAL DE
DESARROLLO DE SOFTWARE EN PENSIONES DEL
IESS.
3.1 INTRODUCCIÓN En el presente capitulo mostraremos como es la metodología de
desarrollo de software actual que posee el departamento de pensiones
del IESS.
La actual metodología del área de pensiones es la metodología RUP, la
misma que ha sido modificada para cumplir con los lineamientos de la
dirección informática del IESS (DDI), esta ha sido cumplida en cualquier
tipo de proyectos informáticos, tiene cuatro fases:
• Factibilidad
• Elaboración
• Desarrollo
• Implantación
Estas fases deben ser cumplidas a cabalidad y tal como la metodología lo
dicta, algunos artefactos no son obligatorios correspondiente al tipo de
proyecto que se tenga, esta metodología debe ser cumplida por los
proveedores del departamento del IESS, y así constaría en el contrato
del proyecto, a continuación se detalla las fases y artefactos.
3.2 FASES DE LA METODOLOGÍA RUP PARA EL ÁREA DE PENSIONES.
3.2.1 FASE DE FACTIBILIDAD La fase de factibilidad es la primera fase del proyecto y se pone un
énfasis en la elaboración de requerimientos.
38
Tabla 3.1 Fase de factibilidad RUP área de pensiones Disciplina Artefacto Observación
Arquitectura Documento de
arquitectura referencial
Generalmente ya se
cuenta con una
arquitectura definida
entonces el documento
ya se lo tiene realizado
Mecanismos de
Arquitectura
Referencial
Generalmente ya se
cuenta con una
arquitectura definida
entonces el documento
ya se lo tiene realizado
Acta de aceptación de
Líder IESS y Líder
Proveedor
Artefacto creado para
evidenciar que se
acepta esta disciplina
en esta fase y se
encuentra aceptada y
finalizada.
Modelo de Negocio por
Procesos.
Levantamiento y
optimización de
procesos
Proceso en el cual se
toma el proceso actual,
y con ayuda de los
usuarios funcionales
se lo optimiza
Acta de aceptación de
Líder IESS y Líder
Proveedor
Artefacto creado para
evidenciar que se
acepta esta disciplina
en esta fase y se
encuentra aceptada y
finalizada.
Continúa …
39
Continuación de la Tabla 3.1
Modelo de Negocios
por Casos de Uso de
Negocio
Visión del negocio
Modelo de casos de
uso del negocio
Especificación de
casos de uso del
negocio
Diagrama de
actividades
Diagramas de clase de
negocio
Diagrama de estados
de negocio
Glosario de términos
Acta de aceptación de
Líder IESS y Líder
Proveedor
Artefacto creado para
evidenciar que se
acepta esta disciplina
en esta fase y se
encuentra aceptada y
finalizada.
Administración de
requerimientos
Visión del Sistema
Modelo de casos de
uso del sistema
Especificación de
casos de uso del
sistema
Revisión de
especificaciones
suplementarias
Continúa ..
40
Continuación de la Tabla 3.1
Prueba de concepto
(opcional)
Este artefacto es
decisión del líder de
proyectos si cree
conveniente realizarlo
y que circunstancia
realizarlo
Acta de aceptación de
Líder IESS y Líder
Proveedor
Artefacto creado para
evidenciar que se
acepta esta disciplina
en esta fase y se
encuentra aceptada y
finalizada.
Gestión del proyecto Cronograma de
Factibilidad
Acta de negociación
Plan de comunicación
Especificaciones
suplementarias
Lista y matriz de
riesgos
Matriz inicial de
funcionalidades y
componentes
Plan de desarrollo de
software
Evidencia y lista de
control de control de
calidad
Continúa …
41
Continuación de la Tabla 3.1
Certificación control de
calidad
Informe lideres con
observaciones de
calidad
Evaluación niveles de
servicio
Acta de aceptación de
Líder IESS y Líder
Proveedor
Artefacto creado para
evidenciar que se
acepta esta disciplina
en esta fase y se
encuentra aceptada y
finalizada.
Fuente: Documentación de Metodología RUP para el IESS
La primera disciplina que se debe realizar es la de gestión del proyecto,
ya que coordinará a todos los elementos del proyecto en sus respectivas
disciplinas, en una etapa pre-inicial se realizará una propuesta del
proyecto, en la cual se incluirá únicamente la planificación de la fase de
factibilidad, lo primordial de esta disciplina en esta fase es coordinar la
comunicación entre los involucrados (stakeholders) mediante el artefacto
de plan de comunicación, es de gran relevancia realizar el artefacto de
especificaciones suplementarias para mirar los detalles que contemplan
los involucrados del proyecto, es de gran importancia detectar los
riesgos que podrían tener el proyecto con esto tratar de mitigarlos y tener
mecanismos de prevención y así poder garantizar el éxito del proyecto,
esta disciplina está terminada cuando está debidamente legalizada con un
acta entre los involucrados, que indiquen el fin de la fase de factibilidad.
En la disciplina de arquitectura en esta fase se trata de brindar los
lineamientos de la arquitectura del proyecto, para esto se tiene como
entrada los artefactos realizados en la disciplina de planificación, tomando
en cuenta en el departamento de pensiones del IESS, se cuenta con
42
una arquitectura pre-definida y este documento ya lo tienen realizado, por
lo que los líderes piden a los arquitectos de software difundan este
documento a los desarrolladores de software y que se firmen las actas
respectivas indicando que se realizó esta capacitación.
En la disciplina del modelado del negocio, el líder de proyecto puede
optar por dos vías de modelado: procesos de negocio y casos de uso del
negocio. La primera se lo realiza generalmente cuando se quiere
optimizar al proceso de negocio que el software posee y se quiere
adicionar requerimientos funcionales que son requeridos y que
impactarían crucialmente a el sistema, este modelado lo realiza el área
de procesos, primero detallan el proceso actual del negocio mediante un
flujo de trabajo y después con la ayuda de los usuarios expertos en el
negocio, optimizan el flujo realizado anteriormente con esto realizan un
documento que describe el flujo a optimizar. La segunda vía es el
modelamiento de casos de uso del negocio, el cual se lo realiza cuando
los usuarios funcionales no tienen claro de todos los requerimientos que
necesita adicionar o modificar en la aplicación, lo que hacen los analistas
es crear ó modificar el modelo de casos de uso del negocio para después
especificar cada caso de uso de negocio de una manera detallada, para
un mejor entendimiento se pueden usar diagramas de actividades, clases
y de estado de UML. El glosario de términos se debe realizar para aclarar
cualquier termino que tengan dudas los involucrados y no caer en
controversias, al momento de la lectura de cualquier artefacto del
modelado de negocio.
La disciplina de la administración de requerimientos se realiza tras
finalizada la etapa del modelado del negocio, y en caso de no haber
finalizado esta disciplina no debe iniciarse, lo principal de esta disciplina
es la especificación del caso de uso del sistema, se debe detallar todos
los requerimientos funcionales en su totalidad, ya que este define el
alcance del software. Para esto el analista de sistemas debe tener la
habilidad de obtener todos los requerimientos dictados por el negocio y
para un mejor entendimiento del caso de uso se puede complementar con
43
la creación de diagramas UML y prototipos de pantallas del sistema. La
especificación de casos del sistema es una parte fundamental para el
proyecto ya que en caso de controversia se remite a estos.
3.2.2 FASE DE ELABORACIÓN La fase de elaboración se realizará siempre y cuando el negocio vea
factible la realización de la solución, en caso que sea factible la
realización del proyecto se tiene que dictar una planificación detallada del
proyecto con todas sus fases y disciplinas, a continuación se describe
las disciplinas con los artefactos respectivos.
Tabla 3.2 Fase de elaboración RUP área de pensiones Disciplina Artefacto Observación
Arquitectura / Vista de
diseño
Diagrama de clases de
diseño
Diagrama de
secuencia de diseño
Arquitectura / Vista de
implementación
Diagrama de
componentes
Arquitectura / Vistas de
datos
Diseño de la base de
datos
Diccionario de datos
Gestión del Proyecto Evidencia y lista de
control de calidad
Certificación control
calidad
Informe lideres con
observación de calidad
Evaluación de niveles
de servicio
Matriz de
componentes afinada
Continúa …
44
Continuación de la Tabla 3.2
Matriz de lineamientos
Matriz de costos
SAD
Acta de aceptación de
Líder IESS y Líder
Proveedor
Artefacto creado para
evidenciar que se
acepta esta disciplina
en esta fase y se
encuentra aceptada y
finalizada.
Fuente: Documentación de Metodología RUP para el IESS
En esta fase de elaboración se puede complementar la especificación de
casos de uso con diagramas de clases y diagramas de secuencia para
que el desarrollador tenga más entendimiento sobre la programación que
tiene que realizar en la siguiente fase.
En esta fase es fundamental preparar todos los aspectos técnicos para
que el desarrollador tenga todos los aspectos claros y su trabajo lo realice
en el tiempo planificado, una parte importante es el diseño de la base de
datos ya que el arquitecto de software deberá tomar en cuenta lo
existente y empatar con lo que se va a implementar y de esto generar un
diccionario de datos.
En esta fase se elabora el documento SAD es decir el documento de
arquitectura, el objetivo es proporciona una descripción de la
arquitectura del sistema, haciendo uso de diversas visiones
arquitectónicas para representar diversos aspectos del sistema. Se realiza
con el fin de documentar las decisiones de arquitectura significativas que
se han tomado en el sistema definiendo de manera detallada la
distribución de los paquetes del sistema en las diversas capas que éste
presenta, así como una descripción de las capas a utilizar.
45
En esta fase de elaboración también se completan la matriz de
componentes y lineamientos para que se encuentren completas y esté
disponible para los desarrolladores.
3.2.3 FASE DE DESARROLLO Esta fase para ser iniciada, se tuvo que finalizar anteriormente la fase de
elaboración y el objetivo principal es el desarrollo del proyecto, a
continuación se detalla las disciplinas con sus artefactos respectivos.
Tabla 3.3 Fase de desarrollo RUP área de pensiones Disciplina Artefacto Observación
Implementación Código
Scripts de base de
datos
Evidencia de pruebas
unitarias
Evidencias de
sincronización de
código
Evidencia de pruebas
técnicas
Documento de menús
– roles y permisos
Gestión del Proyecto Evidencia y lista de
chequeos de control de
calidad
Certificación control de
calidad
Informe lideres con
observación de calidad
Evaluación de niveles
de servicio
Continúa …
46
Continuación Tabla 3.3
Acta de aceptación de
Líder IESS y Líder
Proveedor
Artefacto creado para
evidenciar que se
acepta esta disciplina
en esta fase y se
encuentra aceptada y
finalizada.
Fuente: Documentación de Metodología RUP para el IESS
En esta fase se construirá el sistema con las dos fases anteriores ya
realizadas, se tienen todos los instrumentos necesarios para culminar
esta fase, lo importante es desarrollar el proyecto con los estándares de
calidad establecidos, para esto se debe tener evidencia de pruebas
unitarias y técnicas, se acepta esta fase cuando el área de pruebas
certifica lo desarrollado.
3.2.4 FASE DE IMPLANTACIÓN En esta fase es importante mencionar que la fase de desarrollo se
encuentra cerrada, y el objetivo de esta fase es desplegar el sistema en el
ambiente de producción.
Tabla 3.4 Fase de implantación RUP área de pensiones Disciplina Artefacto Observación
Deployment y Pruebas
/ Deployment
Plan de despliegue
Deployment y Pruebas
/ Plan de pruebas
Funcionales
Rendimiento y carga
Ambiente e integración
Deployment y Pruebas
/ Evidencia de
pruebas
Funcionales
Rendimiento y de
carga
Continúa …
47
Continuación Tabla 3.4
Ambiente e integración
No funcionales
Informe de errores y
correcciones
Producción Reporte de
capacitación técnica
Plan de operaciones
Plan de soporte
Manual de usuario
Lecciones aprendidas
Gestión del Proyecto Evidencia y lista de
chequeos de control de
calidad
SAD actualizado
Lista de chequeos de
control de calidad
Evaluación de niveles
de servicio
Acta de cierre de
proyecto (finiquito)
Fuente: Documentación de Metodología RUP para el IESS
En esta fase el objetivo principal sería desplegar la solución en ambiente
de producción, se entrega el código fuente al departamento de pruebas
del IESS para el versionamiento respectivo, para luego realizar el plan de
despliegue y con esto documentar el cómo se realizará la instalación de la
solución propuesta en su ámbito de producción final, se debe realizar
pruebas funcionales y técnicas, cabe mencionar que para esto utilizan el
artefacto de especificación de casos de uso y las especificaciones
suplementarias realizadas en fases anteriores, después se debe
desplegar la aplicación en producción, es importante para cerrar la
actualización del documento SAD (Documento de Arquitectura de
48
Software) y realizar los planes de operaciones. Se debe indicar al área de
operaciones del IESS lo que hace la solución y el impacto que traerá a
ellos, lo mismo se realizará con el área de soporte del IESS, es
importante siempre tener lecciones aprendidas, ya que se puede afinar la
metodología y si el área de pruebas aprueba que la calidad es
satisfactoria de acuerdo a los estándares de calidad de esta área, se
procederá a realiza el finiquito o cierre del proyecto.
3.3 EQUIPO DE TRABAJO El área de pensiones sigue la metodología RUP dictada por la DDI del
IESS los cuales cuentan con un equipo de trabajo capaz para completar
todas las fases y disciplinas de esta metodología, como son los
siguientes:
• Gerente de proyectos
• Administrador de Proyectos
• Líderes de proyectos
• Desarrolladores Java
• Ingenieros de pruebas
• Arquitecto de Software
• Arquitecto de Datos
• Analistas de Sistemas
• Analistas Funcionales
• Líder de Analistas
• Líder de Pruebas
• Líder del departamento de arquitectura
3.3.1 PERFIL DE LOS RECURSOS
3.3.1.1 GERENTE DE PROYECTO Descripción general del cargo El perfil de la gerencia de proyectos es mirar las factibilidades de los
proyectos, manejar el presupuesto general de los proyectos, manejo de
los recursos, administración en general.
49
Tabla 3.5 Perfil gerente de proyectos área de pensiones Requerimiento / Habilidad
Detalle Tiempo
Estudios
Masterado en Business
Administration
Masterado en
Administración de
Negocios
Ingeniero informático Ingeniera informático o
sistemas o afines
PMP Curso en metodologías
PMP
RUP Curso de metodologías
RUP
Experiencia
Experiencia en cargos
similares de Gerencia
de Proyectos
Experiencia anterior en
gerencia de proyectos
informáticos y
administración en
negocios informáticos
8 años
Experiencia en
negociaciones
empresariales
Experiencia validada
en negocios
empresariales
3 años
Experiencia en
liderazgo de sistemas
financieros y
administrativos
Experiencia validada
en proyectos de
sistemas financieros y
administrativos
5 años
Experiencia en
metodologías RUP
Experiencia validada
en manejo de
metodologías RUP
3 años
Habilidades
ü Facilidad de negociación
ü Manejo de recursos humanos
ü Proactivo
Continúa …
50
Continuación de la Tabla 3.5
ü Facilidad de incentivo a empleados
ü Informes gerenciales
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.2 ADMINISTRADORA DE PROYECTOS Descripción general del cargo
El perfil de la administradora de proyectos es coordinar los proyectos
informáticos y recursos del proyecto.
Tabla 3.6 Perfil administrador de proyectos área de pensiones
Requerimiento / Habilidad
Detalle Tiempo
Estudios
Masterado en Gestión
informática
Masterado en gestión
informática
Ingeniero informático Ingeniera informático o
sistemas o afines
RUP Curso de en
metodologías RUP
Experiencia
Experiencia en cargos
similares de
administración de
proyectos informáticos
Experiencia anterior en
administración de
proyectos informáticos
5 años
Experiencia en
liderazgo de sistemas
financieros y
administrativos
Experiencia validada
en proyectos de
sistemas financieros y
administrativos
5 años
Experiencia en
metodologías RUP
Experiencia validada
en manejo de
metodologías RUP
3 años
Continúa …
51
Continuación de la Tabla 3.6
Habilidades
ü Manejo de recursos humanos
ü Proactivo
ü Liderazgo
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.3 LÍDERES DE PROYECTOS Descripción general del cargo
El perfil de líder de proyecto es la gestión de proyectos informáticos
mediante el uso de metodologías de proyectos y el dominio de manejo de
recursos, su principal objetivo es finalizar el proyecto acorde a lo pactado
inicialmente en el tiempo pedido y con el presupuesto asignado,
satisfaciendo al cliente en sus necesidades que lo impulsaron a realizar el
proyecto.
Tabla 3.7 Perfil de líder de proyectos área de pensiones Requerimiento / Habilidad
Detalle Tiempo
Estudios
Masterado en Gestión
informática
Masterado en gestión
informática
(deseable)
Ingeniero informático Ingeniera informático o sistemas
o afines
RUP Curso de en metodologías RUP
Experiencia
Experiencia en
liderazgo de sistemas
financieros y
administrativos
Experiencia validada en
proyectos de sistemas
financieros y administrativos
4 años
Experiencia en
metodologías RUP
Experiencia validada en manejo
de metodologías RUP
2 años
Continúa …
52
Continuación Tabla 3.7
Habilidades
ü Manejo de recursos humanos
ü Proactivo
ü Liderazgo
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.4 DESARROLLADOR JAVA Descripción general del cargo
El perfil de un desarrollador java es la programación en tecnologías java.
Tabla 3.8 Perfil de desarrollador java área de pensiones Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero informático Ingeniera informático o sistemas o
afines
Estudios en desarrollo
de software con java
Cursos de desarrollo en software
java
Experiencia
Experiencia en cargos
similares
Experiencia anterior en desarrollo
de software con Java
5 años
Experiencia en
desarrollo de software
financiero y/o
administrativo
Experiencia de desarrollo de
software con Java en negocios
financieros y/o administrativo
3 años
Experiencia en
metodologías RUP
Experiencia validada con
metodologías RUP
3 años
Habilidades
ü Desarrollo de Software con tecnología Web
ü IDE de programación eclipse
ü Programación con Oracle Data Base
ü Proactivo
Fuente: Documentación de Metodología RUP para el IESS
53
3.3.1.5 INGENIERO DE PRUEBAS Descripción general del cargo
El perfil de un ingeniero de pruebas es la verificación y validación de todo
el proceso de desarrollo de software.
Tabla 3.9 Perfil ingeniero de pruebas área de pensiones Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero informático Ingeniera informático o
sistemas o afines
RUP Curso de en
metodologías RUP
Experiencia
Experiencia en cargos
similares
Experiencia anterior
como ingeniero de
pruebas
5 años
Experiencia con
metodologías RUP
Experiencia validada
con metodologías RUP
3 años
Experiencia de pruebas
en negocios como
financieros y/o
financieros
Experiencia anterior
como ingeniero de
pruebas en
Habilidades
ü Proactivo
ü Manejo de herramientas de pruebas informáticas
ü Liderazgo
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.6 ARQUITECTO DE SOFTWARE Descripción general del cargo
El perfil de un arquitecto de software es orientar y guiar el mejor esquema
para una solución informática.
54
Tabla 3.10 Perfil arquitecto de software área de pensiones Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero informático Ingeniera informático o
sistemas o afines
Cursos en Java Estudios en
tecnologías Java
Curso en UML Estudios en
diagramación en UML
Experiencia
Experiencia en
desarrollo de sistemas
Experiencia anterior
como arquitecto de
software
10 años
Experiencia con
arquitecturas java
Experiencia con
arquitecturas java
5 años
Experiencia en
versionamiento de
sistemas
Experiencia en
versionamiento de
sistemas
8 años
Habilidades
ü Proactivo
ü Manejo de herramientas de modelamiento de arquitecturas
ü Liderazgo
ü Manejo de recursos técnicos
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.7 ARQUITECTURA DE DATOS Descripción general del cargo
El perfil de un arquitecto de datos es orientar y guiar el mejor esquema en
lo relacionado a la base de datos
55
Tabla 3.11 Perfil de arquitectura de datos área de pensiones Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero informático Ingeniera informático o
sistemas o afines
Cursos en
programación con
Oracle
Estudios en
programación con base
de datos Oracle
Curso de afinación de
base de datos Oracle
Estudios en afinación
de base de datos
Oracle
Experiencia
Experiencia en
programación de
sistemas con Oracle
Experiencia anterior
como programador
Oracle
10 años
Experiencia afinando
base de datos Oracle
Experiencia afinando
base de datos Oracle
5 años
Experiencia modelando
sistemas informáticos
Experiencia modelando
sistemas informáticos
8 años
Habilidades
ü Proactivo
ü Manejo de herramientas de modelamiento de base de datos Oracle
ü Liderazgo
ü Manejo de recursos técnicos
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.8 ANALISTAS DE SISTEMAS Descripción general del cargo
El perfil de un analistas de sistemas es plasmar de una manera óptima en
requerimientos técnicos lo que el negocio quiere implementar como
solución informática.
56
Tabla 3.12 Perfil de analistas de sistemas Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero informático Ingeniera informático o
sistemas o afines
Cursos en
metodologías RUP
Estudios en
metodologías RUP
Curso de
modelamiento con
UML
Estudios de
modelamiento UML
Experiencia
Experiencia en análisis
de sistemas
informáticos y
administrativos
Experiencia anterior
como analista en
sistemas informáticos y
administrativos
5 años
Experiencia en
modelamiento con
UML
Experiencia en
modelamiento con
UML
5 años
Habilidades
ü Proactivo
ü Manejo de herramientas de modelamiento UML
ü Liderazgo
ü Facilidad de palabra
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.9 ANALISTAS FUNCIONALES Descripción general del cargo
El perfil de analistas funcional es proporcionar todo la información acerca
del negocio que necesita el proyecto para realizar la solución.
57
Tabla 3.13 Perfil de analistas funcionales Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero en
administración de
empresas o afines
I Ingeniero en
administración de
empresas o afines
Experiencia
Experiencia en análisis
funcional de sistemas
informáticos y
administrativos
Experiencia anterior
como analista en
sistemas informáticos y
administrativos
5 años
Habilidades
ü Proactivo
ü Liderazgo
ü Facilidad de palabra
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.10 LÍDER DE ANALISTAS Descripción general del cargo
El perfil de líder de analistas es dar los lineamientos necesarios para la
realización de la disciplina de administración de requerimientos, manejo
del personal de analistas y también reuniones de pre factibilidad.
Tabla 3.14 Perfil de líder de analistas Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero informático Ingeniera informático
o sistemas o afines
Cursos en metodologías
RUP
Estudios en
metodologías RUP
Curso de modelamiento
con UML
Estudios de
modelamiento UML
Continúa …
58
Continuación de la Tabla 3.14
Experiencia
Experiencia en
análisis de
sistemas
informáticos y
administrativos
Experiencia anterior como
analista en sistemas
informáticos y
administrativos
8 años
Experiencia en
modelamiento con
UML
Experiencia en
modelamiento con UML
8 años
Experiencia como
analista de
sistemas en IESS
Experiencia anterior como
analista en el IESS
1 año
Habilidades
ü Proactivo
ü Manejo de herramientas de modelamiento UML
ü Liderazgo
ü Facilidad de palabra
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.11 LÍDER DE PRUEBAS Descripción general del cargo
El perfil de líder de pruebas es dar los lineamientos necesarios para la
realización del control de calidad de los proyectos, manejo del personal
de pruebas y también reuniones de pre factibilidad.
Tabla 3.15 Perfil de líder de pruebas área de pensiones Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero informático Ingeniera informático o sistemas
o afines
RUP Curso de en metodologías RUP
Continúa …
59
Continuación de la Tabla 3.15
Experiencia
Experiencia en
cargos similares
Experiencia anterior como
ingeniero de pruebas
8 años
Experiencia con
metodologías RUP
Experiencia validada con
metodologías RUP
5 años
Experiencia de
pruebas en negocios
como financieros y/o
financieros
Experiencia anterior como
ingeniero de pruebas en
5 años
Experiencia como
ingeniero de pruebas
en el IESS
Experiencia como ingeniero de
pruebas en el IESS
Mínimo de 1
año
Habilidades
ü Proactivo
ü Manejo de herramientas de pruebas informáticas
ü Liderazgo
Fuente: Documentación de Metodología RUP para el IESS
3.3.1.12 LÍDER DE DEPARTAMENTO DE ARQUITECTURA Descripción general del cargo
El perfil de líder de arquitectura es dar los lineamientos necesarios para
la realización de arquitectura de los diferentes proyectos, manejo del
personal de arquitectura y también reuniones de pre factibilidad.
Tabla 3.16 Perfil de líder de departamento de arquitectura área de pensiones
Requerimiento / Habilidad
Detalle Tiempo
Estudios
Ingeniero informático Ingeniera informático o
sistemas o afines
Continúa …
60
Continuación de la Tabla 3.16
Curso en Java Estudios en
tecnologías Java
Cursos en
programación con
Oracle
Estudios en
programación con
base de datos Oracle
Curso de afinación de
base de datos Oracle
Estudios en afinación
de base de datos
Oracle
Experiencia
Experiencia en
programación de
sistemas con Oracle
Experiencia anterior
como programador
Oracle
10 años
Experiencia afinando
base de datos Oracle
Experiencia afinando
base de datos Oracle
5 años
Experiencia modelando
sistemas informáticos
Experiencia
modelando sistemas
informáticos
8 años
Experiencia en Java Experiencia en
tecnologías Java
5 años
Experiencia como
arquitecto Java en
IESS
Experiencia en Java en
el IESS
Mínimo 2 años de
experiencia
Habilidades
ü Proactivo
ü Manejo de herramientas de modelamiento de base de datos Oracle
ü Manejo de herramientas de desarrollo
ü Liderazgo
ü Manejo de recursos técnicos
Fuente: Documentación de Metodología RUP para el IESS
61
3.4 ORGANIGRAMA DE GESTIÓN DE PROYECTOS DEL IESS
En la dirección de informática del IESS existe el equipo de trabajo antes
descrito, los cuales vamos a mostrar cómo funcionan con el área de
pensiones.
Figura 3.1 Organigrama DDI con departamento de Pensiones
Realizado por: POZO W., octubre 2013, tomado con entrevistas
realizadas al personal del departamento de pensiones del
IESS.
La DDI (Departamento de Dirección Informática) del IESS, como
observamos tiene recursos informáticos para los proyectos informáticos,
pero en particular el área de pensiones tiene sus propios líderes de
proyecto y desarrolladores debido que el negocio es tan complejo que
necesita especialistas de negocio.
Director informático DDI
Líder de analistas
Analistas
Lider de arquitectura
Arquitectura de Datos
Arquitectura de software
Arquitectura de infraestructura
Lider de pruebas
Ingeniero de pruebas
Desarrolladores
Desarrolladores Java
Desarrollladores Oracle
Pensiones
Lideres de proyecto departamento Pensiones
Desarrollador de pensiones
departamento Pensiones
Lider de proyecto
62
3.5 RECURSOS TECNOLÓGICOS
3.5.1 RECURSOS DE HARDWARE El departamento de pensiones posee su infraestructura propia debido a lo
que demanda el negocio.
Tabla 3.17 Recursos de hardware del área de pensiones Tecnología Ambiente Observaciones
Servidor de Base de
datos Oracle
Desarrollo
Servidor de Base de
datos Oracle
Pruebas
Servidor de Base de
datos Oracle
Producción
Servidor de
aplicaciones JBOSS 4.x
Pruebas
Servidor de
aplicaciones JBOSS 4.x
Producción
Fuente: Documentación de Metodología RUP para el IESS
3.5.2 RECURSO DE SOFTWARE
3.5.2.1 SOFTWARE DE AMBIENTE DE DESARROLLO El ambiente de desarrollo lo tienen configurado en cada máquina del
programador.
Tabla 3.18 Software de ambiente de desarrollo del área de pensiones Tecnología Observaciones
Java 1.6
JBoss 4.x Servidor de aplicaciones
Oracle 11 Gestor de Base de datos
Eclipse IDE de desarrollo
Fuente: Documentación de Metodología RUP para el IESS
63
3.5.2.2 SOFTWARE DE AMBIENTE DE PRUEBAS / PRODUCCIÓN El ambiente de pruebas y producción, son similares a continuación
detallamos el software
Tabla 3.19 Software de ambiente de pruebas / producción del área de pensiones
Tecnología Observaciones
Java 1.6
JBoss 4.x Servidor de aplicaciones
Oracle 11 Gestor de Base de datos
Fuente: Documentación de Metodología RUP para el IESS
3.5.3 ARQUITECTURA DE SOFTWARE DEL SOFTWARE DE PENSIONES.
La arquitectura de software esta realizada en 2 capas físicas:
• Base de Datos
• Aplicación
La Base de Datos es Oracle 10 G, y solo contiene objetos como tablas y
vistas, es decir no tiene procedimientos almacenados.
3.5.3.1 CAPA DE APLICACIÓN La capa de aplicación esta compuesta: Capa Medía y Fachada
3.5.3.1.1 CAPA MEDIA
La capa media está realizada en tecnología JAVA versión 1.6, es la que
gestiona la información con la base datos y esta a su vez contiene una
lógica de negocio para los componentes empresariales que necesita la
fachada para el usuario.
64
Tabla 3.20 Capa media de arquitectura de software de pensiones Componente Descripción Observación
JPA 1.X Persistencia de
Base de Datos
Regresa información que contiene
la base de datos, y actualiza la
información de los procesos
entiéndase como inserción,
actualización y borrado de
información.
EJB 2.X Componentes
empresariales
Contiene los procesos de negocio
y su objetivo es separar la lógica
del negocio con la fachada y para
el manejo con la base de datos
utiliza JPA
Fuente: Documentación de Arquitectura de Software del IESS
3.5.3.1.2 CAPA DE FACHADA
La capa de fachada está realizada en tecnología JAVA versión 1.6, es la
que se comunica con el usuario y con la capa media de esta forma
gestiona la información de la base de datos
Tabla 3.21 Capa de fachada de arquitectura de software de pensiones Componente Descripción Observación
JSF 1.X Tecnología para
ambientes web
de java
MVC Patrón de diseño
que hace el
Modelo Vista
Controlador
RICHFACES
3.X
Librería
necesaria para la
fachada
Esta librería es necesaria para el
diseño de la página web que va a
utilizar al base de datos
Fuente: Documentación de Arquitectura de Software del IESS
65
3.5.3.2 SEGURIDAD DE APLICACIÓN La seguridad la realizan con JAAS ( Java Authentication and Authorization
Services) , que en español significa Autenticación y Autorización Java y
cuyo fin es brindar un estándar para los procesos de autorización y
autenticación de usuarios.
3.5.4 CAMBIO DE AMBIENTE PARA PRODUCCIÓN En el desarrollo de software para desplegar en el ambiente de producción,
se debe realizar estos pasos.
Figura 3.2 Diagrama de cambios de ambiente para producción
Realizado por: POZO W., octubre 2013
En el ambiente de desarrollo de cada programador se encuentra en cada
computador del mismo y la base de datos se encuentra en otro servidor,
cuando se encuentra concluida esta fase se despliega en un ambiente de
pruebas el cual es similar al ambiente de producción y el objetivo de este
ambiente es eliminar los problemas que se hubieran tenido al momento
de desplegar en el ambiente de producción, por último el ambiente de
producción debería ser desplegado sin mayor impacto.
Desarrollo Pruebas Producción
66
3.6 CONCLUSIONES Hemos detallado la metodología RUP que utiliza el departamento de
pensiones de IESS, tenemos las siguientes conclusiones :
• La ventaja indiscutible de esta metodología es que todo se
encuentra documentado, y esto es sumamente ventajoso al
momento de una auditoría y para que no quede nada fuera.
• El departamento de pensiones del IESS tiene líderes de proyecto,
desarrolladores de sistemas y usuarios funcionales que son
especialistas en el área de pensiones, con esto se tiene la
capacidad de realizar los proyectos más rápido, ya que se tiene la
experiencia suficiente.
• Una desventaja que hemos analizado es la ausencia de arquitectos
de SOA con experiencia en productos Oracle.
• No existe artefactos que se adapten para desarrollar software
basados en sistemas escalables.
• Es muy claro con todo lo que hemos analizado que es necesario
modificar la metodología para adaptarla al desarrollo de sistemas
escalables.
67
4 METODOLOGÍAS DE DESARROLLO PARA
SOFTWARE ESCALABLES
4.1 INTRODUCCIÓN En el presente capitulo expondremos las principales metodologías de
desarrollo de software para SOA, que podrían usarse en el departamento
de pensiones del IESS.
La mayoría de veces empresas quien invertir en software escalable por
los beneficios que han sido mencionados, se piensa que el trabajo va ser
sencillo ya que se idean que es solamente conectar aplicaciones con
otras y lo último que toman en cuenta es el impacto que puede ocasionar,
como perdida de la continuidad del negocio y esto repercute en el
crecimiento financiero de la empresa.
Mudarse de un sistema de información tradicional a una que sea
escalable requiere implementar SOA (Arquitectura Orientada a Servicios)
generaría numerosos beneficios para las empresas como la disminución
de la brecha que tiene el software con el negocio de la empresa y de esta
manera obteniendo una agilidad constante de cambios en las soluciones.
La mayoría de metodologías SOA proponen dividir el ciclo de desarrollo
en seis fases: análisis orientada a servicios, diseño orientado a servicios,
desarrollo de los servicios, prueba de servicios, transacción despliegue de
servicios, administración de servicios. Las primeras dos fases son las más
importantes debido a que el éxito del desarrollo de software con SOA
depende de estos. Las tecnologías y estándares tales como BPM, BPEL,
WSDL, EA, OOAD son importantes para el desarrollo de SOA pero ha
sido ampliamente reconocido que ellos no son suficiente por sí solos.
Solamente por aplicar una capa de servicios web en las aplicaciones o
componentes no garantiza que sea cierto las propiedades de SOA como
alineamiento al negocio, flexibilidad, bajo acoplamiento y reusabilidad.
Existe algunas metodologías SOA tales como IBM RUP/SOMA, SOAF,
68
SOUP, metodología por Thomas Erl y metodología por Michael
Papazoglou han sido propuestas para garantizar el desarrollo de SOA con
éxito .
4.2 CARACTERÍSTICAS DE LAS FASES DE ANÁLISIS Y DISEÑO DE METODOLOGÍAS SOA.
4.2.1 ANÁLISIS SOA Y ESTRATEGIAS DE DISEÑO ü Tres estrategias existen en el desarrollo de SOA tales como: top-
down que en español significa de arriba hacia abajo, bottom – up
que en español es abajo hacia arriba y meet-in-the-middle que en
español sería encontrarse en el medio existente, cada uno de estos
difiere en la cantidad de análisis de dominios de negocio y de las
dependencias de sistemas heredados que se tengan ya realizados.
4.2.1.1 ENFOQUES DE SOA En SOA existen tres enfoques al momento de construir servicios , que son
los siguientes:
• Bottom – Up (Abajo hacia arriba), esta estrategia se enfoca para la
modernización de los sistemas antiguos o sistema que no son
SOA para ecosistemas SOA.
Las siguientes actividades están involucradas
ü Análisis de aplicaciones a nivel de empresa
ü Análisis de redundancia y refactorización de esfuerzo
ü Identificación de los servicios de granularidad gruesa y la
creación de interfaces / fachada por encima de las
funcionalidades antiguas
ü Habilitación de fachadas como servicios
69
Este enfoque no requiere necesariamente el enfoque de procesos
de negocio (identificación de procesos, modelarlos y luego utilizar
los servicios para implementar esos procesos)
• Top – Down ( De arriba hacía abajo), También conocido como
campo verde. Este enfoque es el más adecuado cuando se va a
implementar un nuevo sistema.
Las siguientes actividades están involucradas
ü Identificar grandes dominio de negocio y su relación
ü Identificar los procesos de negocio en marcha o requeridos
para ejecutar el sistema. También identifican otros procesos,
roles, etc.
ü Identificar los servicios de alto nivel necesarios para ejecutar
estos procesos basados en las actividades del proceso
ü Analizar cómo es el sistema para identificar los procesos
implementados para asignarlos con el sistema y los
procesos necesarios para saber espacio deseado
ü Hacer una estrategia para llenar los vacíos, permitiendo
procesos que faltan en el nuevo sistema
Beneficios de este enfoque
ü Ayuda en la definición del alcance
ü Captura de reglas de negocio en un alto nivel
ü Comprender mejor el contexto empresarial
ü Las dependencias pueden ser identificados antes del nivel
superior
ü Ayuda en las interacción entre los diversos actores
ü Complejidad dentro de la empresa en términos de patrones
de intercambio de mensajes se conoce antes.
• Meet in the middle (encontrarse en el medio), los dos enfoques
antes descritos tienen ventajas y desventajas. La verdadera
solución de qué enfoque elegir es hacer las dos cosas y no solo
una, eso es lo que se llama el término “Meet in the middle”.
70
El enfoque top-down es muy importante para alcanzar los objetivos
de negocio, y es muy importante utilizar las inversiones realizadas
en los sistemas actuales de los últimos años. Al combinar estos
dos enfoques se obtiene lo mejor de ambos mundos: la integración
con la infraestructura actual de la aplicación (en una forma
orientada a servicios) y la preparación para la funcionalidad, así
impulsando el proceso de desarrollo de software donde se
especifican las necesidades del negocio.
4.2.2 ANÁLISIS SOA Y COBERTURA DE DISEÑO El análisis orientados a servicios y las fases de diseño de metodologías
SOA pueden ser divididas en 5 actividades principales.
• Análisis de negocios de los objetivo de la organización, el
objetivo de este paso se identificará lo siguiente: objetivos
organizacionales, objetivos de negocio y KPI’s (Key Perfomance
Indicator es decir Indicadores de Rendimiento) para su realización,
así determinando lo siguiente:
ü Tecnología
ü Aplicaciones
ü Glosario de términos comunes de negocio
ü Reglas de negocio
ü Actores de negocio
ü Los principales Casos de Uso de Negocios
ü Modelo de Negocios “As-Is“ y “To-Be“ que en español
tendría un significado de ”Tal cual” y “A-Ser
• Planificación de proyectos SOA, el objetivo de esta etapa es
formular la visión y el alcance del proyecto SOA, seleccionamos la
estrategia de ejecución SOA ( creación de servicios desde cero,
creación de servicios desde componentes de software, compra de
71
servicios desde proveedores de tercero) , creación del plan del
proyecto y llevar acabo el análisis financiero.
• Identificación del servicio, lo principal de esta etapa es
seleccionar candidatos de servicios, y también identificar todos los
requerimientos funcionales y no funcionales de SOA, se realizará lo
siguiente:
o El Modelo de negocio “to-be“ se separará dentro de los
dominios de negocio
o Iniciar con las especificaciones de los candidatos de servicio,
la comunicación y las dependencias iniciales
o Se analizan las aplicaciones existentes en orden para
encontrar cuáles son los componentes de software pueden
ser reusados en el desarrollo con SOA.
• Análisis y especificación de servicios, el objetivo de esta etapa
es seleccionar cuáles de los candidatos de servicios van a ser
desarrollados. Los servicios son agrupados para estas
funcionalidades en: entidades de negocio, aplicaciones y servicios
de proceso de negocio. Las especificaciones de procesos de
negocio que agruparan los servicios son creadas.
• Decisiones de realización de servicio, el objetivo de esta etapa
es documentar las decisiones realizadas en los servicios, asignar
componentes de servicios a las capas y acoplar técnicamente la
exploración de factibilidad.
4.2.3 ADOPCIÓN DE TÉCNICAS EXISTENTES Y NOTACIONES
La mayoría de metodologías SOA son basadas en técnicas como OOAD,
CBM, BPM, Arquitecturas Empresariales y notaciones tales como UML y
BPMN, mientras otras técnicas no especifican claramente técnicas y
notaciones, estas técnicas permiten al usuario elegir qué técnica y
72
notación son apropiadas en una situación concreta, esto implica que las
metodologías son difíciles para entender y usar para usuarios sin
experiencia.
4.3 ANÁLISIS DE METODOLOGÍAS EXISTENTES SOA
4.3.1 SOMA SOMA (Service Oriented Modeling and Arquitecture), que en español
significa Modelamiento y Arquitectura Orientada a Servicios, es una
metodología para el modelamiento de aplicaciones SOA y diseño de
métodos que se extiende tradicionalmente a orientación de objetos y
análisis basado en componentes y diseño de métodos.
SOMA es un método extremo a extremo para la identificación,
especificación, realización e implementación de servicios (incluyendo
servicios de información) , componentes, flujos ( procesos / composición) .
SOMA se puede utilizar en tecnologías actuales, en áreas tales como
análisis de diseño, áreas funcionales de agrupación, análisis orientada a
variabilidad, modelamiento de procesos, desarrollo basado en
componentes, análisis y diseño orientado a objetos y modelamiento de
casos de uso. SOMA introduces nueva tecnologías tales como
modelamiento como meta de servicio, modelo creación de servicio y
análisis de activos existentes.
SOMA es basado en tres grandes fases:
• Identificación, descubren candidatos de servicios, componentes
empresariales y flujos.
• Especificación, toma de decisiones en exposición de servicios y
especifica los servicios y componentes empresariales a realizar
• Realización, capta las decisiones de realización
73
Las fases son usadas para modelar las tres principales elementos de
SOA:
• Servicios
• Componentes que implementan los servicios, que también son
conocidos como componentes de servicios
• Flujos que pueden ser usados para componer servicios necesarios
en una aplicación SOA.
Figura 4.1 Diagrama de SOMA
Fuente: tomado de IBM
http://www.ibmpressbooks.com/articles/article.asp?p=1194198&seq
Num=2
Los pasos SOMA se realizan de forma iterativa e incremental.
Figura 4.2 Gráfico de interacción entre fases SOMA
Fuente: tomado de IBM tomado de IBM
http://www.ibmpressbooks.com/articles/article.asp?p=1194198&seqNum
=2
74
4.3.1.1 FASE DE IDENTIFICACIÓN En esta fase identifica los candidatos de servicios. Todos los
requerimientos funcionales y no funcionales están contemplados, se
puede comenzar tanto de los modelos de negocio a través de la
descomposición de dominios que incluye el análisis de las áreas
funcionales y descomposición de procesos y sistemas existentes.
4.3.1.2 FASE DE ESPECIFICACIÓN En esta fase se trata de seleccionar cuales de los candidatos de servicios
serán desarrollados y se creará una especificación detallada de estos.
Estas especificaciones forman el modelo de servicio, una entrega clave
de SOMA es la que cubre la sintaxis y semántica de invocación de
servicios, así como temas operacionales transversales y otros, tales
como la propiedad de servicio, dependencias, control de versiones, y las
cuestiones de gobernanza.
4.3.1.3 FASE DE REALIZACIÓN La realización de servicios y componentes son usualmente construidos
como el negocio necesita y son vistos desde un punto de arquitectura de
aplicaciones, también se definen herramientas y técnicas tales como
patrones de diseño bien establecidos.
4.3.2 IBM RUP/SOMA Es una metodología integrada desarrollada por IBM, desea llevar
aspectos únicos de SOMA para RUP, ya que SOMA es una metodología
patentada por IBM.
La metodología consiste en cuatro fases:
• Análisis de transformación de negocios (opcional)
• Identificación
• Especificación
• Realización de servicios.
75
Las etapas de análisis y diseño de SOA son de gran importancia sin
embargo IBM RUP / SOMA no cubre las etapas de despliegue y
administración de servicios.
4.3.2.1 ANÁLISIS DE TRANSFORMACIÓN DE NEGOCIOS La primera etapa de análisis de transformación de negocios pueden ser
asignada como el comienzo de la fase de la metodología clásica RUP.
Esta fase es opcional y puede ser omitida si la organización tiene un
análisis completo del negocio y no quiere ser mejorado. El objetivo es
describir “tal cual es“ (más conocido en ingles como “as-in“) el proceso de
negocio de una organización para entender las áreas problemáticas y las
potenciales mejoras, así como cualquier información sobre temas
externos como competidores o tendencias en el mercado.
Esta fase comprende actividades como: evaluación de objetivos de la
organización y sus objetivos, identificación de metas de servicio.
4.3.2.2 IDENTIFICACIÓN Esta etapa puede ser asignada a la fase de elaboración de la clásica
metodología RUP y el objetivo es identificar candidatos de servicios. La
identificación de servicios comprende actividades como:
• Descomposición de dominio.
• Modelamiento de metas de servicio
• Análisis de activos existentes
4.3.2.3 ESPECIFICACIÓN Esta etapa puede ser asignada a la elaboración de la clásica metodología
RUP y se enfoca a la selección de candidatos de servicios que serán
desarrollados.
76
La etapa de especificación de servicio comprende actividades tales como:
• Especificación de servicios
• Análisis del subsistema
• Especificación de componentes
4.3.2.4 REALIZACIÓN DE SERVICIOS Esta fase puede ser asignada a la fase de construcción de la clásica
metodología RUP, enfocada a finalizar el diseño de los componentes y
con esto poder implementar los componentes. La realización de servicios
comprende actividades tales como:
• Documentación de decisiones de realización de servicios
• Asignación de servicios
• Componentes de capas
4.3.3 SOAF SOAF significa Service Oriented Architecture Framework que en español
significa Marco de Arquitectura Orientada a Servicios, esta metodología
consiste en cinco fases:
• Obtención de información
• Identificación de servicios
• Definición de servicios
• Realización de servicio
• Hoja de ruta y planificación
El objetivo de SOAF es aliviar la identificación de servicios, definición y
realización de actividades mediante la combinación de un modelado top-
down ( de arriba hacia abajo) de un proceso existente de negocio con un
análisis bottom-up (de abajo hacia arriba) de una aplicación existente.
77
4.3.3.1 DESCRIPCIÓN DE LA METODOLOGÍA SOAF parte de una etapa de obtención de información, lo clave de esto
es definir el alcance y restricciones de procesos de negocios existentes y
determinar la tecnología que utiliza la empresa. Se crea el modelo de
negocio “as-is“ (en español ”tal cual es”) y el modelo de negocio “to-
be“ (en español “a ser“) es definido, se identifican los candidatos de
servicios para contemplar lo que especifica el modelo de negocio “to-be“.
Requerimientos No Funcionales (NFRs) y Acuerdos de nivel de negocios
(BLAs) deben ser definidos, categorizados y priorizados. El Mapeo de
Procesos de Negocio es realizado con el objetivo de analizar los activos
de software existentes y poder descubrir funcionalidades candidatas de
aplicaciones SOA.
En la etapa de identificación de servicios, el objetivo es definir un
conjunto óptimo de servicios. La realización de servicios tiene por
objetivo definir estrategias de transformación que serán usadas para la
transición de la arquitectura de aplicaciones antiguas, para que en un
futuro la arquitectura de la aplicación empresarial se pueda reusar,
desarrollar y pueda estar en la capacidad de comprar servicios de
terceros. La hoja de ruta y la fase de planificación proporcionan un detalle
de la planificación de transformación e identificación de negocios y
riesgos técnicos.
4.3.4 METODOLOGÍA DE PAPAZOGLOU Es una metodología de desarrollo de SOA que cubre un ciclo de vida
SOA, se basa en estar bien establecido el desarrollo de aplicaciones
como RUP, desarrollo basado en componentes y BPM. La metodología se
basa en procesos iteractivos e incrementales y comprende una
preparatoria de planificación y ocho fases principales:
• Análisis de Servicios
• Diseño de Servicios
• Construcción de Servicios
78
• Prueba de Servicios
• Aprovisionamiento de Servicios
• Despliegue de Servicios
• Ejecución de Servicios
• Monitoreo de Servicios.
Hablar acerca de análisis y diseño SOA no se trata solamente de la
planificación, ya que el análisis y diseño de servicios son bastantes
importantes. La fase de planificación es una preparación al desarrollo del
proyecto de software, la etapa de análisis de negocios necesita la revisión
de tecnología que se impulsa en ese momento, se debe contemplar el
análisis financiero de los proyectos y una creación de un plan de
desarrollo de SOA. El objetivo de la fase de análisis orientada a servicios
es para obtener los requisitos para la aplicación SOA. La creación de
análisis de negocio como un modelo de procesos de negocio “as-is“ (Tal
como está, es decir como se encuentra actualmente) que permite a los
involucrados entender un portafolio de servicios disponibles y procesos de
negocios. El resultado de la fase es la creación del modelo de procesos
de negocio “to-be“ (es decir como debe ser) que será implementado en
soluciones SOA. La fase de análisis consiste en cuatro fases principales:
• Identificación de procesos
• Alcance de procesos
• Análisis de brecha (gap) de negocio
• Realización de proceso
4.4 COMPARACIÓN ENTRE METODOLOGÍAS A continuación se analizará las metodologías antes descritas con el
objetivo de determinar el mejor acoplamiento a la metodología RUP del
IESS.
79
Tabla 4.1 Comparación entre metodologías de desarrollo de software SOA
Factor Metodología
SOMA
IBM
RUP/SOM
A
SOAF
PAPAZO
GLOU
Alto acoplamiento con RUP Bajo Alto Bajo Alto
Posee estrategias de análisis y
diseño SOA
Medio Alto Alto Alto
La madures de la metodología SI SI SI SI
Puede manejar técnicas y
notaciones
SI SI SI SI
Tipo de enfoque que soporta Meet in
the
middle
Meet in
the middle
Meet in
the
middle
Meet in
the
middle
Permite hacer análisis de
negocio
Medio Alto Alto Alto
Todos los roles están claros SI SI SI SI
Soporta UML INFORM
ATIVO
SI SI NO
Ciclo de vida COMPL
ETO
COMPLE
TO
ANÁLI
SIS Y
PROYE
CTO
COMPL
ETO
Realizado por: POZO W., octubre 2013
Tomando en cuenta el alto acoplamiento a la metodología RUP quedarían
dos IBM / RUP SOMA y Papazoglou, el resto de factores son
exactamente lo mismo y el diferenciador sería el soporte con UML,
fundamental con la metodología RUP del IESS ya que se utiliza bastante,
quedaría como finalista IBM/ RUP SOMA.
80
5 PROPUESTA DE METODOLOGÍA DE SOFTWARE
ESCALABLE PARA EL IESS.
5.1 INTRODUCCIÓN Tras el análisis presentado en el capítulo anterior hemos determinado que
la metodología a adaptar es IBM / RUP SOMA, tenemos que realizar una
propuesta metodológica basada en RUP del IESS con la anterior
mencionada y realizar mediciones si es satisfactoria.
5.2 ROLES DE IBM RUP SOMA A continuación mostramos los roles que son necesarios:
• Arquitectura de seguridad
• Implementador
• Diseñador de negocios
• Analista de proceso de negocio
• Diseñador de base de datos
• Diseñador
• Arquitecto de software
• Arquitecto de negocio
5.2.1 ARQUITECTO DE SEGURIDAD Este rol lidera el desarrollo de la arquitectura de seguridad del sistema,
que incluye la selección de los patrones de seguridad para el diseño del
sistema, la documentación de la política técnica relativa a la aplicación de
seguridad y el apoyo a las decisiones técnicas clave que limitan la
implementación de seguridad global para el proyecto.
Una persona de este rol lidera a un grupo de desarrolladores en la tarea
del desarrollo de una arquitectura de seguridad. Una arquitectura de
seguridad es una representación de las mejores prácticas de la
comunidad de seguridad. A menudo incluye la selección de los patrones
de seguridad preferidas para el diseño del sistema (los patrones de
81
diseño de seguridad), la documentación de la política técnica (políticas de
patrones de diseño ) en relación con la implementación de seguridad
(patrones de implementación de seguridad) y los patrones de arquitectura
de seguridad reflejan las decisiones técnicas claves que limitan la
implementación del proyecto.
5.2.2 IMPLEMENTADOR Este rol desarrolla componentes de software y realiza pruebas de
desarrollo para la integración en subsistemas más grandes de acuerdo
con las normas adoptadas en el proyecto
El papel implementador es responsable de desarrollar y probar los
componentes, de conformidad con las normas adoptadas en el proyecto,
para su integración en subsistemas más grandes. Cuando los
componentes de prueba, como conductores o talones, se deben crear
para soportar las pruebas, el implementador también es responsable de
desarrollar y probar los componentes de prueba y los subsistemas
correspondientes.
5.2.3 DISEÑADOR DE NEGOCIOS Este papel detalla la especificación de una parte de la organización.
Esta función especifica el flujo de trabajo de los casos de uso del negocio
en términos de sistemas de negocios, trabajadores de empresas y
entidades empresariales. También distribuye el comportamiento de estos
sistemas de negocios, trabajadores de empresas y entidades
empresariales - la definición de sus responsabilidades, operaciones,
atributos y relaciones.
5.2.4 ANALISTA DE PROCESO DE NEGOCIO Este rol dirige y coordina los requerimientos del negocio para esbozar y
delimitar la organización que va a ser modelado, si se adopta un enfoque
82
de casos de uso del negocio el analista de proceso de negocio realizará lo
siguiente:
• Coordinar el modelado de casos de uso del negocio
• Establecer lineamientos y establecer el alcance del proyecto
• Establecer actores
• Realizar Casos de Uso del Negocio y la interacción entre estos.
5.2.5 DISEÑADOR DE BASE DE DATOS Este rol lleva el diseño de la estructura de base de datos persistente para
ser utilizado por el sistema.
Para la mayoría de los proyectos de desarrollo de aplicaciones, la
tecnología utilizada para la persistencia de datos es una base de datos
relacional. El diseñador de la base de datos se encarga de definir el
diseño de base de datos detallada, incluyendo tablas, índices, vistas,
restricciones, disparadores, procedimientos almacenados, y otros
constructos específicos de bases de datos necesarias para almacenar,
recuperar y borrar objetos. Esta información se mantiene en el Artefacto:
Modelo de Datos.
El alcance de las tareas realizadas por el papel de diseñador de la base
de datos varían dependiendo del tamaño y complejidad de las actividades
de desarrollo de aplicaciones y el tipo de mecanismos de almacenamiento
de datos persistentes utilizados para el proyecto.
5.2.6 DISEÑADOR Este rol lleva el diseño de una parte del sistema, dentro de las
limitaciones de los requisitos, la arquitectura, y el proceso de desarrollo
del proyecto.
El diseñador identifica y define las responsabilidades, operaciones,
atributos y relaciones de elementos de diseño. El diseñador asegura que
83
el diseño es compatible con la arquitectura de software, y es detallada a
un punto en el que la aplicación puede continuar.
5.2.7 ARQUITECTO DE SOFTWARE Este papel lidera el desarrollo de la arquitectura de software del sistema,
que incluye la promoción y creación de apoyo a las decisiones técnicas
clave que limitan el diseño e implementación general del proyecto.
El arquitecto de software tiene la responsabilidad general de la
conducción de las principales decisiones técnicas, expresado como la
arquitectura de software. Esto normalmente incluye la identificación y
documentación de los aspectos de gran importancia arquitectónica del
sistema, incluyendo los requisitos, diseño, implementación y despliegue
"vistas" del sistema.
El arquitecto también es responsable de establecer el fundamento de
estas decisiones, el equilibrio de los intereses de los diversos grupos de
interés, reduciendo los riesgos técnicos, y garantizar que las decisiones
se comunican efectivamente, validados y respetados.
5.2.8 ARQUITECTO DE NEGOCIO Este rol tiene la responsabilidad del negocio de la empresa, debe estar
involucrado en todas las decisiones importantes relativas a la estructura,
el comportamiento principal y su realización, las interfaces, las
limitaciones y compensaciones con la empresa.
El arquitecto de negocio identifica y documenta los aspectos de gran
importancia del negocio del sistema, que entra en el ámbito del ejercicio
de modelos de negocio.
La justificación de las principales decisiones de diseño de negocios tiene
que ser el resultado de encontrar el justo equilibrio entre los factores de la
84
competencia, incluyendo las preocupaciones de los grupos de interés
diversos, riesgos, limitaciones. Las decisiones deben ser acordados,
validados y comunicados a todas las partes interesadas.
5.3 TAREAS DE IBM RUP SOMA Se especifican las tareas RUP SOMA para los siguientes disciplinas:
• Modelamiento de negocios
• Análisis y diseño
• Implementación
5.3.1 TAREAS DE MODELAMIENTO DE NEGOCIOS
5.3.1.1 IDENTIFICACIÓN DE METAS DE NEGOCIOS Y KPIs. Esta tarea describe un enfoque combinado (top-down y bottom-up) para la
identificación de los objetivos de negocio y los indicadores clave de
rendimiento asociados.
Propósito
• Identificar los objetivos con los que la empresa puede planificar y
gestionar el uso de indicadores clave de rendimiento
• Asegurar el alineamiento entre los objetivos estratégicos a largo
plazo y las metas operacionales a corto plazo
• Traducir la estrategia de negocio en acción
• Proporcionar una base para medir y mejorar las actividades de la
empresa
Tabla 5.1 Entrada y salidas de identificación de metas Rol: Analista de Proceso de Negocio
Entrada: Visión del negocio
Salida: Meta de Negocio
Fuente: SOMA de RUP IBM
85
5.3.1.2 ANÁLISIS DEL ÁREA FUNCIONAL Esta tarea tiene ideas iniciales acerca del particionado del negocio (por
ejemplo, desde un enfoque de modelo de componentes de negocio) y los
refina basado en la identificación de los conjuntos de funciones de
negocio coherentes para el dominio de negocios, en áreas funcionales -
agregados de funcionalidad que se asignan a los sistemas de negocio.
Figura 5.1 Descomposición de negocio
Fuente: tomado de IBM, http://www.ibm.com/developerworks/library/ws-
designsoapart1/
Propósito
El propósito del análisis de área funcional es validar las ideas iniciales
acerca de la división de la empresa, en primer lugar dominios de negocio
(que lógicamente se agrupará en un conjunto de sistemas de negocios
que son de interés para el modelado de negocio), cabe señalar que esto
puede requerir una paso intermedio para identificar subdominios y así
limitar la parte de la empresa a estudiar para luego descubrir áreas
funcionales. Se puede decir que se trata de un enfoque complementario al
análisis arquitectónico de negocios y se puede utilizar en conjunto con
esa tarea.
86
Tabla 5.2 Entrada y salida de análisis del área funcional Rol: Arquitecto de negocio
Entrada: Dominio de negocio
Salidas: • Modelo de análisis de negocio
• Documento de arquitectura de negocio
Fuente: SOMA de RUP IBM
5.3.1.3 AFINAMIENTO DE CASOS DE USO DE NEGOCIO Esta tarea se realiza cuando el negocio requiere una definición de alto
nivel y deben ser afinado antes de su implementación.
Propósito
El propósito de esta tarea es tomar un caso de uso del negocio que se
define como de alto nivel para poder evidenciar la intención y el propósito
del negocio. Se debe tomar en cuenta que si no se afina este caso de
uso resultaría ser demasiado abstracto para poder implementarlo
inmediatamente, por lo que se debería afinarlo dentro de un conjunto de
casos de uso que representarían un proceso de negocio.
Tabla 5.3 Entrada y salida de casos de uso del negocio Rol: Analista de procesos de negocios
Entrada: • Actores de negocio
• Casos de uso del negocio
• Modelo de casos de uso de negocio
Salidas: • Actores de negocio
• Casos de uso del negocio
• Modelo de caso de uso de negocio
• Especificaciones suplementarias de
negocio
Fuente: SOMA de RUP IBM
87
5.3.2 TAREAS DE ANÁLISIS Y DISEÑO
5.3.2.1 IDENTIFICAR FACTORES COMUNES Y VARIABILIDAD Esta tarea se aplica a una serie de análisis y diseño de elementos donde
se verifican la variabilidad de estos elementos y saca los factores
comunes, esto hace que sea un resultado más robusto y flexible.
Propósito
Analizar los elementos de los modelo e identifica cuál de estos elementos
son comunes en diferentes aplicaciones y separarlos de aquellos
elementos que varían en diferentes aplicaciones, debe realizar una
documentación específica de este análisis.
Tabla 5.4 Entrada y salida de identificar factores comunes Rol: Diseñador
Entrada: • Ninguno
Salidas: • Modelo de análisis
• Modelo de diseño
• Modelo de servicio
Fuente: SOMA de RUP IBM
5.3.2.2 IDENTIFICAR PATRONES DE SEGURIDAD Durante la arquitectura inicial de un sistema, el arquitecto de seguridad
es responsable de la identificación y selección de patrones claves de
seguridad, así garantizando el nivel de seguridad requerido por el sistema.
Propósito
El objetivo de esta tarea es identificar los patrones de seguridad de alto
nivel, de esta manera unir los elementos arquitectónicos que responden a
exigencias y políticas de seguridad. Estos patrones son detallados a una
tecnología en particular y a una plataforma de diseño.
88
Tabla 5.5 Entrada y salida de identificar patrones de seguridad Rol: Arquitecto de seguridad
Entrada: • Documento de arquitectura de software
Salidas: • Documento de arquitectura de software
Fuente: SOMA de RUP IBM
5.3.2.3 ESPECIFICACIÓN DE COMPONENTES (SOA) Esta tarea especifica los detalles de los componentes de los servicios que
se dan cuenta de un Subsistema de Diseño.
Propósito
Elaborar uno o más artefactos de diseño de subsistemas los cuales están
descritos durante la tarea de diseño de subsistemas (SOA) y proveer
detalles de diseño de artefactos de componentes de servicio.
Tabla 5.6 Entrada y salida de especificación de componentes SOA Rol: Diseñador
Entrada: • Diseños de subsistemas
• Compontes de servicio
Salidas: • Componentes de servicio
Fuente: SOMA de RUP IBM
5.3.2.4 CONSTRUIR PRUEBA DE CONCEPTO ARQUITECTÓNICO (SOA)
Esta tarea define la forma de desarrollar una prueba de concepto de
arquitectura, de una solución SOA, basada en requisitos arquitectónicos
existentes y perfil de riesgo.
Propósito
Sintetizar una solución ejemplar que cumpla con los requisitos
arquitectónicos críticos, este ejemplar puede estar limitado de alguna
manera, como por ejemplo:
• La solución resultante puede ser simplemente conceptual
89
• La solución resultante sólo puede ilustrar algún aspecto crítico de los
requisitos generales
Tabla 5.7 Entrada y salida Prueba de concepto arquitectónico SOA Rol: Arquitecto de software
Entrada: • Modelo de despliegue
• Modelo de diseño
• Modelo de servicio
• Documento de Arquitectura de Software
Salidas: • Prueba de Concepto Arquitectónico
Fuente: SOMA de RUP IBM
5.3.2.5 IDENTIFICA SERVICIOS ASOCIADOS A OBJETIVOS Identifica servicios, mediante el análisis de los objetivos de la empresa o
de una unidad de negocio.
Propósito
Esta técnica comienza con declaraciones generalizadas de los objetivos
de negocio, con la posterior descomposición en sub objetivos para
cumplir con la meta del nivel superior. Esto a la larga conduce a un nivel
de descomposición que apoya a la identificación de los servicios
asociados a las sub metas. Durante este proceso, los KPIs se identifican y
se recoge junto con los indicadores que se utilizarán para medir,
monitorear y verificar el grado de éxito en la consecución de los objetivos
en realidad.
Tabla 5.8 Entrada y salida de identificar servicios asociados a objetivos
Rol: Diseñador
Entrada: • Meta de negocio
• Modelo de servicio
Salidas: • Modelo meta de servicio
Fuente: SOMA de RUP IBM
90
5.3.2.6 ANÁLISIS DE PROCESOS EMPRESARIALES Esta tarea identifica los elementos de diseño de una solución orientada a
servicios y documenta la especificación inicial de esos servicios.
Propósito
• Identificar los elementos de diseño de una solución orientada a
servicios
• Documentar la especificación inicial de los servicios
• Determinar las dependencias iniciales y la comunicación entre los
servicios.
Tabla 5.9 Entrada y salida de análisis de procesos empresariales Rol: Arquitecto de software
Entrada: • Modelo de análisis de negocio
• Modelo de Casos de Uso del Negocio
Salidas: • Modelo de servicio
Fuente: SOMA de RUP IBM
5.3.2.7 ANÁLISIS DE MODELO DE DATOS Esta tarea utiliza modelos de procesos de negocio como entrada e
identifica un conjunto de candidatos de servicios que se incluyen en la
cartera de servicios del proyecto. Estos candidatos de servicios todavía
pueden requerir refinamiento adicional, se puede tener como resultado
un conjunto inicial de especificaciones para el servicio
Tabla 5.10 Entrada y salida de análisis de modelos de datos Rol: Arquitecto de software
Entrada: • Modelo de servicio
• Modelo de Caso de Uso del Negocio
Salidas: • Modelo de servicio
Fuente: SOMA de RUP IBM
91
5.3.2.8 ANÁLISIS DE ACTIVOS EXISTENTES El análisis de activos existentes es el proceso de aprovechamiento de los
activos existentes (por ejemplo, sistemas existentes como aplicaciones
empaquetadas o personalizadas), así como de los estándares del sector,
los modelos y los activos para conseguir la ejecución de los servicios. Con
un enfoque de arriba a abajo, el análisis de activos existentes identifica y
valida servicios candidatos, componentes y flujos. Las limitaciones
técnicas relacionadas con los sistemas existentes deberían evaluarse tan
pronto como sea posible, con el fin de gestionar los riesgos. Esto conduce
a que la viabilidad técnica de las decisiones de realización de servicio se
ejecute a menudo tan pronto como sea posible después o durante el
análisis de activos existentes.
Propósito
• Identifica candidatos de servicio a partir de aplicaciones
personalizadas
• Identifica candidatos de servicio a partir de aplicaciones
empaquetadas
• Garantiza la documentación de los requisitos no funcionales
Tabla 5. 11 Entrada y salida análisis de activos existentes Rol: Arquitecto de software
Entrada: • Modelo de servicio
Salidas: • Modelo de servicio
Fuente: SOMA de RUP IBM
5.3.2.9 ANÁLISIS DE REGLAS DEL NEGOCIO Determinadas clases de soluciones tienden a depender enormemente del
uso de reglas de negocio para extraer la variabilidad de la solución y
poder externalizar estas reglas fuera de la lógica de aplicación. A partir de
un modelo de análisis empresarial que incluya entidades empresariales y
reglas empresariales, es posible definir servicios que encapsulen las
reglas empresariales, externalizándolas del resto de la lógica de la
92
solución. Las reglas también pueden adjuntarse a acciones o procesos y
a menudo se evalúan como condiciones previas o posteriores para la
acción.
Tabla 5.12 Entrada y salida de análisis de reglas de negocio Rol: Arquitecto de software
Entrada: • Modelo de servicio
Salidas: • Modelo de servicio
Fuente: SOMA de RUP IBM
5.3.2.10 ANÁLISIS DE CASOS DE USO DE NEGOCIO (SOA) Esta tarea utiliza el artefacto de realización de casos de uso del
negocio como entrada, e identifica un conjunto de candidatos de servicios
que se incluyen en la cartera de servicios del proyecto. Estos servicios
candidatos pueden necesitar todavía más ajustes; sin embargo, los pasos
aquí incluidos proporcionan una forma efectiva de producir un conjunto
inicial de artefactos de Especificación de servicio
Propósito
• Identifica candidatos de servicio a partir de casos de uso del negocio
• Ajusta especificaciones de servicios candidatos
Tabla 5.13 Entrada y salida de análisis de casos de uso de negocio (SOA)
Rol: Arquitecto de software
Entrada: • Modelo de análisis de negocio
Salidas: • Modelo de servicio
Fuente: SOMA de RUP IBM
5.3.2.11 DISEÑO DE MENSAJE Esta tarea describe las acciones necesarias para el desarrollo de un
modelo de diseño completo de mensajes (catálogo). Se analizan los
93
patrones de intercambio de mensajes y la relación del modelo de dominio
con el modelo de mensaje.
Propósito
La comunicación entre los mensajes de servicios y componentes, es una
parte crítica de SOA. Estos no incluyen solamente los mensajes de
entrada y salida de una invocación de un servicio dado, sino también el
formato de mensaje interno para ser utilizado dentro de la empresa como
el flujo de información pasa a través de las capas de la arquitectura de la
aplicación. En muchos casos, se recomienda un formato de mensaje
común.
La especificación de mensajes para el modelo de servicio debe tener en
cuenta los puntos de vista de la arquitectura empresarial / arquitectura de
aplicaciones, arquitectura de datos y arquitectura de integración. Esto
incluye:
• Normas de mensajes definidos a nivel empresarial o aplicación
• Meta apropiada o modelo de datos que son parte de una arquitectura
de datos
• Las normas de transformación de mensajes que forman parte de una
arquitectura de integración
Tabla 5.14 Entrada y salida de diseño de mensaje Rol: Diseñador
Entrada: • Modelo de servicio
Salidas: • Modelo de servicio
Fuente: SOMA de RUP IBM
5.3.2.12 PRUEBAS SERVICIOS LITMUS Esta tarea se describe como un requisito que debe cumplir los candidatos
de servicios para asegurar que aquellos que están desarrollándose en
realidad cumplen con las necesidades de la empresa.
94
Propósito
Una vez que los candidatos de servicios han sido seleccionados y
documentados en el portafolio de servicios, entonces necesitamos
determinar cuáles deben ser expuestos como servicios. Aunque, en teoría,
cualquier candidato de servicio podría ser expuesto mediante la
exportación de su interfaz como una descripción del servicio. En particular,
la decisión de exponer "todos los métodos de todas las clases" crea
enormes problemas de rendimiento y gestión de servicios, por no
mencionar el hecho de que podemos estar regalando el capital intelectual
de la empresa. Por otra parte, hay que recordar que hay un costo
asociado con cada servicio que elegimos para exponer: la financiación, la
gobernanza y la infraestructura (seguridad, rendimiento, gestión) del
servicio y los componentes.
5.3.2.13 ESPECIFICACIÓN DE SERVICIO Esta tarea define y especifica los servicios y la estructura de una solución
orientada a los servicios, en términos de la colaboración de elementos de
diseño de contenidos y subsistemas / interfaces externas.
Propósito
• Definir los servicios y la estructura de una solución orientada a
servicios
• Analizar el servicio de interés común y la variabilidad
• Documentar la especificación de servicios
• Determinar las dependencias y la comunicación entre los servicios
Tabla 5.15 Entrada y salida de especificación de servicio Rol: Diseñador
Entrada: • SAD (Documento de Arquitectura de
Software)
• Especificaciones suplementarias
• Modelo de diseño
Salidas: • Especificación de servicio
Fuente: SOMA de RUP IBM
95
5.3.2.14 DISEÑO SUB SISTEMAS (SOA) Esta tarea se extiende al diseño del subsistema RUP tradicional con
detalles específicos para una solución SOA, especialmente donde se
identificaron los subsistemas de modelos de análisis de negocio. Una vez
que hacemos la transición del dominio de negocio para el dominio de TI,
identificamos áreas funcionales definidas.
Propósito
Enlazar los modelos de negocios con sus contrapartes de TI de la
siguiente manera:
• Identificar la relación entre las áreas funcionales en el modelo de
análisis de negocio que corresponde diseño de sub sistemas
• Definir los comportamientos especificados en las interfaces de
subsistemas en cuanto a las colaboraciones de los elementos de
diseño y subsistemas contenidos / interfaces externas
• Documentar la estructura interna del subsistema, en términos de
componentes de servicio
• Definir realizaciones entre las interfaces del subsistema y contenía
componentes y clases
• Determinar las dependencias sobre otros subsistemas
Tabla 5.16 Entrada y salida de diseño sub sistemas (SOA) Rol: Diseñador
Entrada: • Modelo de análisis de negocio
• Diseño de subsistemas
• Interface
Salidas: • Encapsulamiento
• Diseño de clases
• Modelo de diseño
• Diseño de subsistemas
• Interface
Fuente: SOMA de RUP IBM
96
5.3.3 TAREAS DE IMPLEMENTACIÓN
5.3.3.1 DOCUMENTO DE DECISIONES DE REALIZACIÓN DE SERVICIO
Esta tarea se centra en la realización de un modelo de servicio en
términos de componentes de software para funcionar en entornos de
middleware existentes.
Propósito
El propósito de esta tarea es proporcionar un modelo de diseño de la
aplicación que puede ser utilizada por los desarrolladores para
implementar componentes de servicio para proporcionar los servicios
requeridos
Tabla 5.17 Entrada y salida de documento de decisiones de realización de servicio
Rol: Diseñador
Entrada: • Referencia de arquitectura
• Modelo de servicio
• Documento de arquitectura de servicio
Salidas: • Modelo de diseño
Fuente: SOMA de RUP IBM
5.4 PROPUESTA DE METODOLOGÍA RUP ENFOCADO EN SOA PARA EL DEPARTAMENTO
DE PENSIONES DEL IESS. Hemos mostrado como se encuentra la actual metodología que posee el
departamento de pensiones del IESS y también hemos analizado la
propuesta de la metodología IBM RUP SOMA y existen algunos aspectos
que debemos contemplar.
97
5.4.1 RECURSOS HUMANOS El departamento de pensiones del IESS no posee personal para construir
sistemas de información enfocados al negocio, se debe incorporar los
siguientes recursos:
• Arquitectos de software SOA
• Arquitectos de negocios
• Analista de procesos de negocios
• Implementadores SOA
• Programadores SOA
Con respecto a los arquitectos de negocio del IESS poseen la experiencia
necesaria en el negocio de pensiones, pero no poseen la habilidad del
modelado del negocio sobre herramientas SOA y no tienen conocimiento
sobre metodologías de desarrollo con SOA, pero por otra parte no existe
personal técnico en el departamento de pensiones del IESS.
5.4.2 RECURSOS TECNOLÓGICOS El departamento de pensiones del IESS no posee las herramientas
necesarias para realizar un desarrollo de software con SOA, sugerimos
instalar las siguientes herramientas de IBM que se acoplan directamente
con la metodología actual:
• Rational Rose
• Rational RequisitePro
5.4.3 ADAPTACIONES DE LA METODOLOGÍA RUP CON IBM RUP SOMA
En la metodología RUP para el departamento de pensiones del IESS se
orientará exclusivamente a procesos de negocios.
5.4.3.1 FASE DE FACTIBILIDAD Esta fase es la inicial y trata de buscar la factibilidad del proyecto, se
incrementaron tareas para cumplir con los objetivos de soluciones SOA.
98
Tabla 5.18 Fase de factibilidad IBM RUP SOMA adaptado a RUP
Disciplina
No.
Tarea
Rol
Artefacto
Modelado
del
negocio
1
Visión de
negocios
Analista de
proceso de
negocio
Documento de
visión de negocio
2
Construcció
n de
glosario de
términos
comunes
de negocio
Analista de
proceso de
negocio
Documento de
glosario de términos
comunes de
negocio
3
Especificaci
ones
suplementa
rias
Analista de
proceso de
negocio
Documento de
especificaciones
suplementarias
4
Levantamie
nto y
optimizació
n de
procesos
de
negocios
Analista de
proceso de
negocio
• Modelo de
procesos de
negocio “As In“
• Modelo de
procesos de
negocio “To Be“
• Documento de
especificaciones
de modelos de
negocio
5
Casos de
Uso del
Negocio
Analista de
proceso de
negocio
• Modelo de casos
de uso del
negocio
• Especificación
de casos de uso
del negocio
Continúa …
99
Continuación de la Tabla 5.18
6
Identificació
n de metas
de negocio
y KPIs
Analista de
proceso de
negocio
Registro de
actividades en
herramientas
Rational y
RequisitePro
7
Mantener
reglas de
negocio
Analista de
proceso de
negocio
Registro de
actividades en
herramientas
Rational y
RequisitePro
Análisis
de
requisitos
8 Glosario de
términos
Analista de
Sistemas
• Documentos de
glosario de
términos
9 Buscar
actores y
guiones de
uso
Analista de
Sistemas
• Actores
• Atributos de
requisitos
• Casos de uso y
Modelo de casos
de uso
10 Visión del
Sistema
Analista de
Sistemas • Documento de
visión del
sistema
11 Especificaci
ones
suplementa
rias
Analista de
Sistemas
• Documento de
especificaciones
suplementarias
Análisis y
diseño
12 Elaboración
de SAD
Arquitecto de
Software
• Documento de
arquitectura de
solución
Fuente: SOMA de RUP IBM
100
En esta fase de factibilidad se espera lo siguiente:
• Crear la documentación del proyecto el mismo que servirá para mirar
la factibilidad tras la finalización de esta etapa
• Se trata de especificar todo el negocio posible a través de diagrama de
casos de uso del negocio, especificación de casos de uso de negocio,
diagramas de modelo de procesos de negocios y especificaciones de
los modelos.
• Se tiene que realizar diagramas de casos de uso del sistema y sus
especificaciones de casos de uso el cual pretende especificar los
requerimientos del sistema pedidos por el negocio
5.4.3.2 FASE DE ELABORACIÓN Esta fase de elaboración es un preámbulo para la fase de construcción es
decir la construcción del sistema.
Tabla 5.19 Fase de elaboración IBM RUP SOMA adaptado a RUP Disciplina
No.
Tarea
Rol
Artefacto
Diseño 1 Desarrollar
un guión de
desarrollo
Desarrollad
ores SOA
• Documento de
guión de
desarrollo
Diseño 2 Preparar
directrices
para el
proyecto
Desarrollad
ores SOA
• Documentación
de directrices
específicas de
proyectos
Diseño 3 Desarrollar la
guía de estilo
del manual
Desarrollad
ores SOA • Guía de estilo de
manuales
Diseño 4 Preparar
plantillas para
el proyecto
Desarrollad
ores SOA • Plantillas
específicas del
proyecto
Continúa …
101
Continuación de la Tabla 5.19
Diseño 5 Inicio proceso
de desarrollo
Desarrollad
ores SOA
Diseño 6 Configurar
herramientas
de desarrollo
Desarrollad
ores SOA
Diseño 7 Verificar la
instalación y
configuración
de
herramientas
Pruebas
Diseño 8 Definir el
contexto del
sistema
Analista de
sistemas
• Modelo de
análisis
• Afinación de
modelo de casos
de uso
• Documento de
operación
Diseño 9 Análisis de la
arquitectura
Arquitecto
SOA
• Afinación de
documento de
arquitectura de
software
• Afinación de
modelo de
análisis
• Modelo de
despliegue
• Modelo de
despliegue
Continúa …
102
Continuación de la Tabla 5.19
Diseño 10 Análisis de
operación
Arquitecto
SOA • Modelo de
análisis
• Modelo de casos
de uso
• Documento de
operación
• Realización de
una operación
Diseño 11 Identificar
patrones de
seguridad
Arquitecto
SOA • Documento de
arquitectura de
software
Diseño 12 Identificar
mecanismos
de diseño
Arquitecto
SOA
• Documento de
arquitectura de
software
• Modelo de diseño
• Modelo de
servicio
Diseño 13 Identificar
elementos de
diseño
Arquitecto
SOA • Modelo de diseño
• Modelo de
servicio
Diseño 14 Análisis de
operación
Arquitecto
SOA • Modelo de
análisis
• Modelo de casos
de uso
• Documento de
operación
• Realización de
una operación
Continuación …
103
Continuación de la Tabla 5.19
Diseño 15 Incorporar
elementos de
diseño
existentes
Arquitecto
SOA • Documento de
arquitectura de
software
• Modelo de diseño
• Modelo de
servicio
Diseño 16 Estructurar el
modelo de
implementaci
ón
Arquitecto
SOA • Documento de
arquitectura de
software
• Modelo de
implementación
Diseño 17 Describir la
arquitectura
de tiempo de
ejecución
Arquitecto
SOA • Especificaciones
suplementarias
• Modelo de diseño
Diseño 18 Describir la
distribución
Arquitecto
SOA • Documento de
arquitectura de
software
• Modelo de
despliegue
Diseño 19 Revisión de
arquitectura
Pruebas
Diseño 20 Desarrollo de
componentes
Arquitecto
SOA
Pruebas 21 Integración y
pruebas
Pruebas
Fuente: SOMA de RUP IBM
104
5.4.3.3 FASE DE CONSTRUCCIÓN En esta fase de construcción se desarrollaran los sistemas enfocados en
SOA.
Tabla 5.20 Fase de elaboración IBM RUP SOMA adaptado a RUP Disciplina
No.
Tarea
Rol
Artefacto
Implementa
ción
1 Desarrollar un
guión o
conjunto de
instrucciones
(script) para
los
desarrolladore
s
Desarrollador
SOA • Guión o
conjunto de
instrucciones
(script) para
los
desarrolladore
s
Implementa
ción
2 Preparar
directrices
para el
proyecto
Desarrollador
SOA • Directrices
especificas
del proyecto
Implementa
ción
3 Desarrollar la
guía de estilo
del manual
Desarrollador
SOA • Guía de estilo
de manuales
Implementa
ción
4 Preparar
plantillas para
el proyecto
Desarrollador
SOA • Plantillas
especificas
del proyecto
Implementa
ción
5 Configurar las
herramientas
Desarrollador
SOA
Implementa
ción
6 Verificar la
instalación y
configurar de
herramientas
Pruebas
Continúa ….
105
Continuación de la Tabla 5.20
Implementa
ción
7 Desarrollo de
componentes
Arquitecto
SOA
Implementa
ción
7.1 Analizar el
comportamient
o
Arquitecto
SOA
Implementa
ción
7.2 Identificación
de servicio
Arquitecto
SOA
Implementa
ción
7.3 Componente
de diseño
Arquitecto
SOA
Implementa
ción
7.3.1 Diseño de
casos de uso
Arquitecto
SOA
Implementa
ción
7.3.2 Diseño de
subsistema
Arquitecto
SOA
Implementa
ción
7.3.3 Diseño de la
operación
Arquitecto
SOA
Implementa
ción
7.3.4 Diseño de
clase
Arquitecto
SOA
Implementa
ción
7.3.5 Definir los
elementos de
comprobabilid
ad
Arquitecto
SOA
Implementa
ción
7.3.6 Diseñar los
elementos de
comprobabilid
ad
Arquitecto
SOA
Implementa
ción
7.3.7 Diseño de la
capsula
Arquitecto
SOA
Implementa
ción
7.3.8 Revisar el
diseño
Pruebas
Implementa
ción
7.4 Diseñar la
base de datos
Arquitecto de
Software
Continúa …
106
Continuación de la Tabla 5.20
Implementa
ción
7.4.1 Diseño de
clases
Arquitecto de
Software
Implementa
ción
7.4.2 Especificar la
migración de
datos
Arquitecto de
Software
Implementa
ción
7.4.3 Diseño de
base de datos
Arquitecto de
Software
Implementa
ción
7.4.4 Revisar el
diseño
Arquitecto de
Software
Implementa
ción
7.5 Especificación
de servicios
Arquitecto
SOA
Implementa
ción
7.5.1 Realizar
especificacion
es de servicio
Arquitecto
SOA
Implementa
ción
7.5.2 Realizar
análisis de
subsistemas
Arquitecto
SOA
Implementa
ción
7.5.3 Especificación
de
componentes
Arquitecto
SOA
Implementa
ción
7.6 Realización de
servicios
Arquitecto
SOA
Implementa
ción
7.7 Implementar
componentes
Arquitecto
SOA
Prueba 8 Integrar y
Probar
Pruebas
Prueba 8.1 Verificar el
enfoque de
prueba
Pruebas
Prueba 8.2 Prueba y
evaluación
Pruebas
Fuente: SOMA de RUP IBM
107
5.4.3.4 FASE DE IMPLEMENTACIÓN En esta fase el objetivo principal es garantizar que el software estará listo
para que el cliente lo pueda usar según las necesidades del mismo.
Tabla 5.21 Fase de implementación IBM RUP SOMA adaptado a RUP Disciplina
No.
Tarea
Rol
Artefacto
Gestión de
Cambios y
Configuraci
ón
1 Gestión y
soporte
continuos
Implementador
Gestión de
Cambios y
Configuraci
ón
1.1 Supervisar la
iteración
Implementador
Gestión de
Cambios y
Configuraci
ón
1.2 Supervisar y
controlar el
proyecto
Implementador
Gestión de
Cambios y
Configuraci
ón
1.3 Gestionar
cambios de
requisitos
Implementador
Gestión de
Cambios y
Configuraci
ón
1.4 Gestionar
solicitudes de
cambios
Implementador
Gestión de
Cambios y
Configuraci
ón
1.5 Soporte en la
iteración
Implementador
Continúa ….
108
Continuación de la Tabla 5.21
Gestión de
Cambios y
Configuraci
ón
1.6 Cambiar y
entregar
elementos de
configuración
Implementador
Gestión de
Cambios y
Configuraci
ón
1.7 Gestionar
líneas bases y
releases
Implementador
Gestión de
Cambios y
Configuraci
ón
1.8 Supervisar y
notificar el
estado de la
configuración
Implementador
Gestión de
proyectos
2 Planificación
de despliegue
Líder de
proyecto
Gestión de
proyectos
2.1 Desarrollar el
plan de
despliegue
Líder de
proyectos
Gestión de
proyectos
2.2 Definir la lista
de materiales
Líder de
proyectos
Gestión de
Cambios y
Configuraci
ón
3 Arreglar los
defectos de los
componentes
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
3.1 Planificar la
integración del
subsistema
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
3.2 Implementar
elementos de
diseño
Desarrollador
SOA
Continúa ….
109
Continuación de la Tabla 5.21
Gestión de
Cambios y
Configuraci
ón
3.3 Analizar el
comportamient
o en tiempo de
ejecución
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
3.4 Implementar
los elementos
de
comprobabilid
ad
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
3.5 Implementar la
prueba de
desarrollador
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
3.6 Ejecutar
pruebas del
desarrollador
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
3.7 Revisar el
código
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
4 Desarrollar los
componentes
restantes
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
4.1 Analizar el
comportamient
o
Desarrollador
SOA
Continúa
110
Continuación de la Tabla 5.21
Gestión de
Cambios y
Configuraci
ón
4.2 Identificación
de servicio
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
4.3 Componentes
de diseño
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
4.4 Diseñar la
base de datos
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
4.5 Especificación
de servicios
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
4.6 Realización de
servicios
Desarrollador
SOA
Gestión de
Cambios y
Configuraci
ón
4.7 Implementar
componentes
Desarrollador
SOA
Pruebas 5 Integración y
pruebas
Pruebas
Pruebas 5.1 Verificar el
enfoque de
pruebas
Pruebas
Pruebas 5.2 Validar la
compilación
Pruebas
Continúa …
111
Continuación de la Tabla 5.21
Pruebas 5.3 Pruebas y
evaluación
Pruebas
Despliegue 6 Desarrollar el
material de
soporte
restante
Implementador
Despliegue 6.1 Desarrollar
material de
soporte
Implementador
Despliegue 6.2 Probar y
evaluar
Implementador
Despliegue 7 Gestionar la
prueba de
aceptación
Implementador
Despliegue 7.1 Gestionar la
prueba de
aceptación
Implementador
Despliegue 7.2 Dar soporte al
desarrollo
Implementador Infraestructura
de desarrollo
Despliegue 7.3 Ejecutar el
conjunto de
aplicaciones
de prueba
Implementador Registro de
prueba
Despliegue 8 Gestionar la
prueba de
versión beta
Implementador Solicitud de
cambio
Despliegue 9 Crear el
producto para
el release
Implementador
Continúa
112
Continuación de la Tabla 5.21
Despliegue 9.1 Producir la
unidad de
despliegue
Implementador
Despliegue 9.2 Empaquetar el
producto
Implementador
Despliegue 9.3 Proporcionar
acceso a un
sitio de
descarga
Implementador
Fuente: SOMA de RUP IBM
5.4.4 PLANIFICACIÓN DE PROYECTOS Hemos detallado las fases, actividades y artefactos que se deben realizar
durante un proyecto de software escalable del departamento de
pensiones del IESS, ahora vamos a detallar cómo se debería planificar
con estas variaciones.
Vamos asumir que para la realización de software escalables, en el
departamento de pensiones del IESS existe el personal técnico y expertos
en el negocios lo suficientemente capacitados para realizar cualquier
implementación, adaptación o mejora que se necesite según lo indicado
anteriormente.
Antes de la realización del proyecto debe existir una concepción del
proyecto el cual tiene que dirigir el líder de proyectos
5.4.4.1 TAREAS ANTES DE INICIAR EL PROYECTO Antes de que se inicie el proyecto es necesario completar una serie de
tareas previas que influirán decisivamente en la finalización exitosa de un
proyecto, se incluyen actividades tales como: determinación del ámbito
del proyecto, estudio de viabilidad, análisis de riesgos, estimación del
113
costo del proyecto, planificación temporal y la asignación de recursos a
las distintas etapas del proyecto.
Las tareas más criticas son las de las de fase de factibilidad y elaboración,
ya de que estas se establecen unas bases sólidas para el proyecto.
5.4.4.2 PLANIFICACIÓN FASE DE FACTIBILIDAD El líder de proyectos en esta etapa debería actuar de la siguiente manera
Figura 5.2 Diagrama de actividades de líder en fase inicial
Fuente: tomado de IBM http://www.ibm.com/developerworks/ssa/library/l-
greenit/
114
Los artefactos que deberían entregar serían los siguientes:
Tabla 5.22 Artefactos a entregar en planificación de fase de factibilidad
Tarea Artefacto
Generar lista de riesgos Lista de riesgos
Desarrollar caso de
negocio
Caso de negocio
Desarrollar plan de
software
Plan de software
Definir planes de
proyecto • Plan de medidas
• Plan de gestión de
riesgos
• Plan de aceptación
del producto
• Plan de resolución
de problemas
• Plan de garantía de
calidad
• Organización y el
personal del
proyecto
Planificar y asignar
trabajo • Solicitud de cambio
• Pedido de trabajo
• Plan de iteración
Supervisar el estado del
proyecto • Lista de problemas
• Lista de riesgos
Fuente: SOMA de RUP IBM
115
5.4.4.2.1 ESTIMACIÓN DE TIEMPOS
A continuación mostraremos cómo se podría estimar los tiempos para la
fase de gestión de proyectos, la métrica que se toma para la tarea de
supervisión y control es el 30% del tiempo de la planificación estimada.
A continuación mostramos algunas métricas para poder estimar tiempos,
se debe categorizar el proyecto como Bajo, Medio y Alto, con esto se
puede tener un tiempo más acertado, cabe recalcar que los tiempos
serían de carácter normal es decir ni tan optimista ni pesimista
Tabla 5.23 Métricas de estimación de tiempos Disciplina
Tarea
Artefacto
Estimación de tiempo
Modelado
del negocio
Visión de
negocios
Documento de
visión de
negocio
Si el proyecto es:
• Bajo, 8 horas
• Medio, 12 horas
• Alto, 16 horas
Construcción de
glosario de
términos
comunes de
negocio
Documento de
glosario de
términos
comunes de
negocio
Si el proyecto es:
• Bajo, 3 horas
• Medio, 6 horas
• Alto, 8 horas
Especificaciones
suplementarias
Documento de
especificacion
es
suplementaria
s
Si el proyecto es:
• Bajo, 3 horas
• Medio, 6 horas
Alto, 9 horas
Continúa
116
Continuación de la Tabla 5.23
Levantamiento y
optimización de
procesos de
negocios
• Modelo de
procesos
de negocio
“As In“
• Modelo de
procesos
de negocio
“To Be“
• Documento
de
especificaci
ones de
modelos de
negocio
En base a la
complejidad del
negocio, número de
procesos a modelar
por cada área
Se saca una lista de
todos los posibles
procesos a
optimizar por área y
se categoriza, por
bajo, medio y alto,
con esto se puede
ayudar con el
arquitecto de
negocio.
Tiempo por proceso
de cada categoría.
• Bajo, 2 días
• Medio, 4 días
• Alto, 5 días
Incluye ambos
modelos mas la
especificación del
modelo
Total del tiempo es
igual a la sumatoria
de los tiempos por
proceso de cada
categoría
Continúa
117
Continuación de la Tabla 5.23
Casos de Uso del
Negocio • Modelo de
casos de
uso del
negocio
• Especificac
ión de
casos de
uso del
negocio
Si el proyecto es:
• Bajo, 3 días
• Medio, 5 días
• Alto, 8 días
Identificación de
metas de negocio
y KPIs
Registro de
actividades en
herramientas
Rational y
RequisitePro
Si el proyecto es:
• Bajo, 1 días
• Medio, 2 días
• Alto, 4 días
Mantener reglas
de negocio
Registro de
actividades en
herramientas
Rational y
RequisitePro
Si el proyecto es:
• Bajo, 1 días
• Medio, 2 días
• Alto, 4 días
Análisis de
requisitos
Glosario de
términos
• Documento
s de
glosario de
términos
Si el proyecto es:
• Bajo, 1 días
• Medio, 2 días
• Alto, 4 días
Continúa ….
118
Continuación de la Tabla 5.23
Buscar actores y
guiones de uso • Actores
• Atributos
de
requisitos
• Casos de
uso
• Modelo de
casos de
uso
Si el proyecto es:
• Bajo, 2 días
• Medio, 4 días
• Alto, 8 días
Aquí lo principal es
detectar los casos
de uso y en cada
uno de estos
especificar los
requerimientos que
debería tener.
Visión del
Sistema • Documento
de visión
del sistema
Si el proyecto es:
• Bajo, 4 horas
• Medio, 8 horas
• Alto, 16 horas
Especificaciones
suplementarias • Documento
de
especificaci
ones
suplementa
rias
Si el proyecto es:
• Bajo, 4 horas
• Medio, 8 horas
• Alto, 16 horas
Análisis y
diseño
Elaboración del
documento de
arquitectura de
solución
• Documento
de
arquitectur
a de
solución
Si el proyecto es:
• Bajo, 12 horas
• Medio, 16 horas
• Alto, 20 horas
Realizado por: POZO W., octubre 2013
Al finalizar esta etapa se debe consultar con el negocio si efectivamente
se logró especificar todos los requerimientos pedidos, en caso que la
respuesta haya sido negativa se debería realizar una nueva iteración y
119
volver a planificar para afinar los artefactos necesarios, para los casos de
uso en una segunda iteración se debería realizar de la siguiente manera.
Tabla 5.24 Listado de casos de uso identificados y categorizarlo. Caso de Uso Factor de Categoría Porcentaje
completado
Tiempo
Caso de Uso Bajo / Medio / Alto 70% = Factor de
Categoría +
Estimado para
contemplar
Total
= Suma de todos
los tiempos
Realizado por: POZO W., octubre 2013
5.4.4.3 PLANIFICACIÓN FASE DE ELABORACIÓN En esta etapa entendemos que es factible el proyecto y se puede seguir
desarrollando el proyecto.
Las tareas que realiza el líder de proyectos son las siguientes:
Figura 5.3 Diagrama de actividades de líder en fase inicial
Fuente: tomado de IBM http://www.ibm.com/developerworks/ssa/library/l-
greenit/
120
Los artefactos que deberían entregar serían los siguientes:
Tabla 5.25 Artefactos de entrega de planificación en fase de elaboración
Tarea Artefacto
Planificar el proyecto • Plan de medidas
• Plan de gestión de proyectos
• Plan de aceptación de proyectos
• Plan de resolución de problemas
• Plan de garantía de calidad
• Organización y el personal del
proyecto
Planificar la
configuración del
proyecto y el control de
cambios
• Plan de gestión de la
configuración
• Proceso de control de cambios
Planificar la integración • Planificar la integración del
sistema
Planear el despliegue • Plan de despliegue
Fuente: SOMA de RUP IBM
5.4.4.3.1 ESTIMACIÓN DE TIEMPOS
En la fase de elaboración mostraremos como se podría estimar los
tiempos, para llevar acabo esto se categorizará dependiente el tipo de
proyecto como Bajo, Medio y Alto.
121
Tabla 5.26 Métrica de estimación de tiempos en fase de elaboración Disciplina
Tarea
Artefacto Estimación de tiempo
Diseño Desarrollar un
guión de desarrollo • Documento de
guión de
desarrollo
Si el proyecto es :
• Bajo, 2 días
• Medio, 3 días
• Alto, 4 días
Diseño Preparar
directrices para el
proyecto
• Documentación
de directrices
específicas de
proyectos
Si el proyecto es :
• Bajo, 1 días
• Medio, 2 días
• Alto, 3 días
Diseño Desarrollar la guía
de estilo del
manual
• Guía de estilo
de manuales
Estimación
indicada por el
área técnica
Diseño Preparar plantillas
para el proyecto • Plantillas
específicas del
proyecto
Diseño Inicio proceso de
desarrollo
Diseño Configurar
herramientas de
desarrollo
Diseño Verificar la
instalación y
configuración de
herramientas
Continúa …
122
Continuación de la Tabla 5.26
Diseño Definir el contexto del
sistema • Modelo de
análisis
• Afinación de
modelo de
casos de uso
• Documento de
operación
Diseño Análisis de la
arquitectura • Afinación de
documento de
arquitectura de
software
• Afinación de
modelo de
análisis
• Modelo de
despliegue
• Modelo de
despliegue
Diseño Análisis de operación • Modelo de
análisis
• Modelo de
casos de uso
• Documento de
operación
• Realización de
una operación
Diseño Identificar patrones de
seguridad
• Documento de
arquitectura de
software
Continúa …
123
Continuación de la Tabla 5.26
Diseño Identificar mecanismos
de diseño • Documento de
arquitectura de
software
• Modelo de
diseño
• Modelo de
servicio
•
Diseño Identificar elementos
de diseño • Modelo de
diseño
• Modelo de
servicio
Diseño Análisis de operación • Modelo de
análisis
• Modelo de
casos de uso
• Documento de
operación
• Realización de
una operación
Diseño Incorporar elementos
de diseño existentes • Documento de
arquitectura de
software
• Modelo de
diseño
• Modelo de
servicio
Continúa …
124
Continuación de la Tabla 5.26
Diseño Estructurar el modelo
de implementación • Documento de
arquitectura de
software
• Modelo de
implementación
•
Diseño Describir la
arquitectura de
tiempo de ejecución
• Especificaciones
suplementarias
• Modelo de
diseño
Diseño Describir la
distribución • Documento de
arquitectura de
software
• Modelo de
despliegue
Diseño Revisión de
arquitectura
Diseño Desarrollo de
componentes
Pruebas Integración y pruebas
Realizado por: POZO W., octubre 2013
125
6 CONCLUSIONES Y RECOMENDACIONES
6.1 INTRODUCCIÓN En el presente capitulo mostraremos las conclusiones y recomendaciones
del presente documento.
6.2 CONCLUSIONES • Se estableció una metodología de desarrollo de software escalables
para el departamento de pensiones, la cual servirá de una gran ayuda
a los gerentes de proyectos en la planificación de desarrollo de
software escalables.
• Se identifico que las fases de factibilidad y elaboración son las que
tienen inconvenientes al momento de realizar software escalables con
una metodología RUP clásica, debido que no se posee los suficientes
artefactos para realizar software escalables y esto repercute al
momento de realizar estos tipos de software.
• Se identifico las mejores metodologías de desarrollo de software
escalables que se tiene al momento, brindando una explicación
detallada y brindando las ventajas y desventajas correspondientes.
• Se realizo una comparación entre las metodologías de desarrollo
escalables, dando un ganador a la de IBM RUP SOMA por sus
características especificas y por su acoplamiento a la actual que posee
el departamento de pensiones del IESS.
• Mediante la incorporación de algunos artefactos característicos de la
metodología IBM RUP SOMA y una sugerencia de estimación de
tiempos sugerida, se mejora la planificación y control de software
escalables.
126
• El negocio de pensiones es muy cambiante debido a que su medio
ambiente esta en medio del gobierno central y de las leyes que rigen
debe de recordad el histórico de reglas de negocio y las que regirán en
un instante de tiempo, por esto es necesario el desarrollo de software
escalable para el departamento de pensiones
• Como hemos enunciado, la debilidad actual es la falta de conocimiento
sobre SOA tanto en metodologías de desarrollo de SOA y
herramientas, lo que suele suceder que el personal técnico del IESS
no construya el software pedido bajo las especificaciones del cliente y
esto ocasiona a que los proyectos queden inconclusos o si finalizan
se encuentran bastante desfasados, hemos mostrado todas las pautas
necesarias para desarrollar software con SOA.
6.3 RECOMENDACIONES • Al departamento de pensiones del IESS, le va a beneficiar la
adaptación de esta metodología de desarrollo de aplicaciones
escalables es decir SOA, para ser posible esto, se tendrá que
realizar lo siguiente:
o Incorporación de personal técnica en herramientas SOA
o Incorporación de personal experto en la parte de negocios y
esto implica a reducir la rotación de personal
o Evangelización de la adaptación a la nueva metodología
o Necesario incorporar herramientas de gestión como las que
ofrece IBM para automatizar la realización de los proyectos
• El software escalable debe ser adaptado al software antiguo, hasta
que en un momento se migre progresivamente a la arquitectura
SOA.
• Se debe tomar en cuenta al momento de realizar casos de uso del
sistema, las reglas del negocio ya que de esta manera queda por
127
fuera las reglas del negocio del flujo del sistema, y esto resulta ser
uno de los principales inconvenientes que tiene el departamento de
pensiones en la actualidad.
• La realización del modelo de dominio del negocio es clave ya que
con esto se podrá capturar y expresar el entendimiento ganado en
el negocio y servirá como paso previo al diseño de un sistema.
• Las primera vez que se quiera implementar software escalables es
muy recomendable que se contrate consultores externos, de esta
se podrá evitar una alta curva de aprendizaje en el desenvolviendo
de las herramientas SOA.
• El personal de seguridad del IESS deberá capacitarse en la
infraestructura de las herramientas SOA, debido a que la gran
cantidad de información que maneja el departamento del IESS es
muy critica y de alto impacto a los proceso.
• Se deben de tener personal especialista en el negocio de
pensiones, debido a que la dimensión del negocio de pensiones es
cada vez más grande
• Lo que se debe realizar primero es la contratación del personal
adecuado para estos roles:
o Analista de Sistemas SOA
o Desarrolladores de Sistemas SOA
o Arquitectos de proyectos SOA
El personal debería tener el suficiente conocimiento y experiencia
en desarrollo de software SOA
128
BIBLIOGRAFÍA 1. Juan Pablo Gómez Gallego (2007). Fundamentos de la metodología
RUP. Colombia, 9p.
2. Kurose J. (2004). REDES DE COMPUTADORES Un enfoque
descendente basado en Internet. España, 192p.
3. Grossman, B. and J. Naumann (2004). ACORD & XBRL US-XML
Standards and the Insurance. Estados Unidos, 40p.
4. Deblaere M. et al (2002). IBM Insurance Application Architecture (IAA).
Estados Unidos. 49p.
5. Jaramillo Ruiz y Pedro Alonso (2012). Diseño de un modelo de
interoperabilidad tecnológica basado en la arquitectura SOA para las
municipalidades de lima metropolitana orientado a maximizar la
satisfacción del ciudadano. Perú, 60p.
6. M. P. Papazoglou (2006). Service-Oriented Design and Development
Methodology. Estados Unidos, 2010p.
7. T. Erl (2012). Service-Oriented Architecture: Conceptos, Technology
and Design. Prentice Hall PTR. Estados Unidos 189p.
8. T. ERL (2008). SOA Principles of Services Design. Prentice Hall PTR.
Estados Unidos, 145p.
9. Michael Richardson (2012). Introduction to RUP, IBM Corp. Estados
Unidos, 239p
10. A. Erradi, S. Anand, and N. Kulkarni. SOAF: an architectural
framework for services definition and realization. In: IEEE International
Conference on Services Computing. Estados Unidos 150p.
129
11. Wikipedia, IBM Rational Unified Process. 2012 [Fecha de consulta: 16
de Noviembre 2012]. Disponible en:
http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process
12. Wikipedia, LDAP. 2014 [Fecha de consulta: 5 de Noviembre del 2014 ].
Disponible en:
http://es.wikipedia.org/wiki/LDAP
13. Wikipedia, Lenguaje Unificado de Modelado. 2012 [Fecha de
consulta: 16 de Noviembre 2012]. Disponible en:
http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado
14. Wikipedia, Arquitectura orientada a servicios. 2012 [Fecha de
consulta: 16 de Noviembre 2012]. Disponible en:
http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
15. Wikipedia, Gestión o administración por procesos de negocio. 2012
[Fecha de consulta: 16 de Noviembre 2012]. Disponible en:
http://es.wikipedia.org/wiki/Gestion_de_procesos_de_negocio
16. Metodología Rational Unified Process (RUP). 2012 [Fecha de
consulta: 19 de Noviembre 2012]. Disponible en:
http://www.usmp.edu.ec/publicaciones/boletin/fia/info49/articulos/RUP
%20vs%20XP.pdf
17. Conceptos de RUP.2012 [Fecha de consulta: 19 de Noviembre 2012].
Disponible en: http://es.scribd.com/doc/7844685/CONCEPTOS-DE-
RUP
18. Información general sobre escalabilidad. 2012 [Fecha de consulta: 21
de Noviembre 2012]. Disponible en:
http://es.scribd.com/9644975/Como-Hacer-Que-Un-Sistema-Sea-
Escalable-JM
130
19. Aplicación Distribuida. 2012 [Fecha de consulta: 21 de Noviembre
2012]. Disponible en:
http://es.wikipedia.org/wiki/aplicaci%C3%B3n_distribuida
20. Arquitectura orientada a servicios en el contexto de la arquitectura
empresarial. 2010 [Fecha de consulta: 28 de Noviembre 2012].
Disponible en:
http://www2.unalmed.edu.co/~pruebasminas/index.php?option=com_d
ocman&task=doc_vie&gid=1635&tmpl=component&format=raw&Itemid
=285
21. Aplicación orientada a servicios. 2012 [Fecha de consulta: 28 de
Noviembre 2012]. Disponible en:
http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
22. Componentes de SOA. 2012 [Fecha de consulta: 28 de Noviembre
2012]. Disponible en: http://soaction.sisorg.com.mx/componentes.html
23. Arquitectura SOA orientada a servicios. 2012 [Fecha de consulta: 26
de Junio del 2013]. Disponible en:
http://oposicionestic.blogspot.com/2012/08/arquitectura-soa-orientada-
servicios.html
24. Adopción de mejores prácticas y lecciones aprendidas de SOA [ Fecha
de consulta: 28 de Mayo del 2014] . Disponible en:
http://www.ibm.com/developerworks/ssa/library/ws-SOAbestpractices/
25. SOA Approaches - Top down vs Bottom up [ Fecha de consulta: 12 de
Agosto del 2014] . Disponible en:
http://completesoa.blogspot.com/2009/05/soa-approaches-top-down-
vs-bottom-up.html
131
BIOGRAFÍA
Mi nombre es William Fernando Pozo, nací el 7 de Mayo del 1980 en la
ciudad de Quito, hijo de Teresa Almeida y Luis Edmundo Pozo quienes
toda mi vida he respetado y admirado, tengo 3 hermanos, siendo el último
hijo.
Me gradué de bachiller de Físico - Matemático de la “Unidad Educativa
Cardenal Spellman” en Quito – Ecuador, la educación es salesiana por lo
que agradezco a mis padres esta educación ya que gracias a esto he
adquirido los mejores valores para mi vida profesional y personal.
Siempre he tenido una pasión por los juegos de video y las matemáticas,
cuando tenía que decidir en mi carrera profesional me decidí en seguir
ingeniería informática en la “Universidad Central del Ecuador” ya que
poseía el mix entre informática y matemática, durante mis estudios tome a
la programación como los juegos que sabía jugar durante mi niñez y de
ahí nació mi inclinación por el desarrollo de software, me gradué a los 24
años para después iniciarme en mis primeros retos profesionales ya como
programador de sistemas.
A lo largo de mi vida profesional he aprendido los retos y experiencias que
involucra el desarrollo de sistemas, me he especializado en software libre
como software privativo, manejo herramientas como java, .net, algunas
bases de datos, he realizado proyectos para el sector financiero, privado y
publico, gracias el trabajo constante logre ser líder de proyectos en una
empresa multinacional y manejando software de alto impacto, también he
tenido la oportunidad de ser consultor independiente en otros países
como Panamá, Estados Unidos, Japón y Puerto Rico, con ayuda de las
empresas que aporte con mi trabajo, viví casi 1 año en otro país como
Panamá y dejando muy en alto al Ecuador, demostrando que somos
gente de trabajo y con excelentes resultados.