Desarrollo del Prototipo del nuevo Sistema de Control de Cajas, Mesas y Máquinas C2M.



Documentos relacionados
Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

Elementos requeridos para crearlos (ejemplo: el compilador)

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Capítulo 5. Cliente-Servidor.

Anexo 4 Documento de Arquitectura

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Workflows? Sí, cuántos quiere?

IDEA DE NEGOCIO EDUGER LOGISTIC GERMAN EDUARDO BALSERO MORALES PROFESOR: GERARDO ANDRES ARCOS CELIS

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Sistema PYMES Ventas e Inventarios H&S

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Unidad 1. Fundamentos en Gestión de Riesgos

Resumen General del Manual de Organización y Funciones

PROGRAMADOR VISUAL BASIC.NET

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

Durante la determinación del problema dentro de los procesos de mercadeo de R & S Training se pudo notar notables deficiencias en las relaciones con

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

PERFILES OCUPACIONALES

CREACIÓN DE UN DEPARTAMENTO DE RELACIONES PÚBLICAS PARA LOS ALMACENES EL CHOCHO Y EL CAMPEÓN

Novedades en Q-flow 3.02

DE VIDA PARA EL DESARROLLO DE SISTEMAS

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Planificación en Team Foundation Server 2010


6 Anexos: 6.1 Definición de Rup:

Visual Studio 2008 es el conjunto de herramientas de

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Metodología básica de gestión de proyectos. Octubre de 2003

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

ADMINISTRACION DE CENTROS DE COMPUTO

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

SISTEMAS DE PLANEACIÓN DE RECURSOS EMPRESARIALES 2008

Empresa Financiera Herramientas de SW Servicios


Figure 7-1: Phase A: Architecture Vision

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

<Generador de exámenes> Visión preliminar

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

App para realizar consultas al Sistema de Información Estadística de Castilla y León

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

Clasificación de los Sistemas de Información

Planeación del Proyecto de Software:

Servidores Donantonio

Desarrollo e Implementación de Herramienta para la Gestión de Mantenimiento de Activos.

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

Microsoft Access proporciona dos métodos para crear una Base de datos.

CAPÍTULO 3 VISUAL BASIC

MINING SOLUTIONS LIMITADA

UNIVERSIDAD DR. JOSE MATIAS DELGADO Facultad de Economía, Empresas y Negocios

Master Microsoft Visual Studio.NET Curso elearning tutorizado en castellano

Ingeniería de Software

Actividad 4. Justificación de la oportunidad y análisis de necesidades. Concreción de la propuesta

Visión General de GXportal. Última actualización: 2009

CASOS DE ÉXITO DIST-PLEX MODUART. PARTNER Team Solutions SAS Es una compañía con más de 10 años de experiencia en la implementación de soluciones de

Resumen General del Manual de Organización y Funciones

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

Introducción a las redes de computadores

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

SISTEMAS DE INFORMACIÓN II TEORÍA

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Propuesta Técnica. I. Diseño y análisis.

Acronis License Server. Guía del usuario

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler

Documento Técnico Gerardo Barcia Jonathan Trujillo María Alejandra Uribe

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Historia de revisiones

Gestión de Oportunidades

Metodologías de Desarrollo de Sistemas de Información

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

CAPITULO VI PLAN DE IMPLEMENTACIÓN DEL SISTEMA DE PRESUPUESTOS DE COSTOS DE TIEMPOS ESTÁNDARES DE CONFECCIÓN DE PRENDAS DE VESTIR DE TEJIDO DE PUNTO.

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Políticas para Asistencia Remota a Usuarios

2 EL DOCUMENTO DE ESPECIFICACIONES

GUÍA PARA LA INDUCCIÓN AL PUESTO DE TRABAJO

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Implantación de un Sistema de Control de Versiones de Software para los desarrollos de soluciones (Add-On) en SAP Bussiness One.

Syllabus.

RESUMEN. IV P á g i n a

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

Procedimiento de Sistemas de Información

Determinación del nivel de influencia

Instituto Tecnológico de Costa Rica

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Norma ISO 9001: Sistema de Gestión de la Calidad

CONSTRUCCIÓN DEL PROCESO ADMINISTRADOR DE PROYECTOS SEIS SIGMA Bizagi Process Modeler

INFORME TECNICO PARA LA ADQUISICIÓN DE LICENCIAS SOFTWARE OFIMÁTICO

APOLO GESTION INTEGRAL.

Entidad Formadora: Plan Local De Formación Convocatoria 2010

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

1.8 TECNOLOGÍA DE LA INFORMACIÓN

Transcripción:

UNIVERSIDAD SIMÓN BOLÍVAR INGENIERÍA DE LA COMPUTACIÓN Desarrollo del Prototipo del nuevo Sistema de Control de Cajas, Mesas y Máquinas C2M. por Ana Mariela Mora INFORME FINAL DE CURSOS DE COOPERACIÓN Presentado ante la Ilustre Universidad Simón Bolívar como Requisito Parcial para optar al Título de Ingeniero de la Computación Sartenejas, Junio de 2009

UNIVERSIDAD SIMÓN BOLÍVAR INGENIERÍA DE LA COMPUTACIÓN Desarrollo del Prototipo del nuevo Sistema de Control de Cajas, Mesas y Máquinas C2M. por Ana Mariela Mora Realizado con la asesoría de: Tutor Académico: Prof. Kenyer Domínguez Tutor Industrial: Ing. Alejandro Azcunes INFORME FINAL DE CURSOS DE COOPERACIÓN Presentado ante la Ilustre Universidad Simón Bolívar como Requisito Parcial para optar al Título de Ingeniero de la Computación Sartenejas, Junio de 2009

UNIVERSIDAD SIMÓN BOLÍVAR DECANATO DE ESTUDIOS PROFESIONALES INGENIERÍA DE LA COMPUTACIÓN ACTA FINAL PROYECTO DE PASANTÍA Desarrollo del Prototipo del nuevo Sistema de Control de Cajas, Mesas y Máquinas C2M Presentado por: Ana Mariela Mora Este proyecto de pasantía ha sido aprobado por el siguiente jurado examinador: Sartenejas, Junio de 2009

Desarrollo del Prototipo del nuevo Sistema de Control de Cajas, Mesas y Máquinas C2M Por Ana Mariela Mora Resumen Este trabajo describe todas las actividades ejecutadas en el desarrollo del Proyecto de Pasantía Larga realizado por la estudiante para la empresa Global Consultants Group (GCG) en el período comprendido entre Enero y Mayo de 2009. El proyecto consistió en la investigación, análisis y propuesta de las herramientas de desarrollo y la arquitectura a ser usadas para la implementación de la nueva versión del Sistema de Control de Cajas, Mesas y Máquinas (C2M). El C2M se ha encargado, desde el momento de su creación hace 8 años, de controlar y administrar los diferentes procesos y operaciones que se realizan en los establecimientos de bingos y casinos pertenecientes a la Corporación Nacional de Casinos. Es evidente que, con el paso del tiempo, las tecnologías con las que fue desarrollado han quedado obsoletas. De allí nace la necesidad de reconstruir la aplicación haciendo uso de nuevos lenguajes y herramientas que puedan darle perdurabilidad en el tiempo. Las tecnologías de desarrollo investigadas, aprobadas y utilizadas en la construcción del primer prototipo de la nueva versión del sistema estuvieron comprendidas por: Visual Studio 2008, SQL Server 2008 y las librerías de Telerik para Windows Forms. Como resultado de este proyecto de pasantía se logró proponer una arquitectura estable y acorde a las nuevas tendencias, que puede ser plenamente reutilizable para otros proyectos dentro de la empresa Global Consultants Group, y la creación de un prototipo del sistema C2M que incluyó funcionalidades de distinta complejidad, las cuales permitieron asegurar el adecuado desarrollo del resto del sistema usando las tecnologías y la arquitectura propuesta. iii

iv A mi maravillosa madre, por haber hecho de mí su proyecto de vida.

Agradecimientos Para comenzar me gustaría agradecer a todo el personal de la empresa Global Consultants Group por la guía, la colaboración, el apoyo y el compañerismo brindados durante todo el desarrollo del proyecto de pasantía. Supieron transmitirme la sensación de pertenencia al equipo y al producto que estaba forjando. Adicionalmente, en la elaboración de este proyecto contribuyeron muchas otras personas a quienes también quiero agradecer enormemente, A mi madre y familiares, por haberme enseñado grandes valores esenciales que me convirtieron en la persona que soy, y por todo el apoyo que siempre he recibido de ellos. Gracias por comprender y respaldar mis sacrificios y esfuerzos. Al profesor Kenyer Domínguez por ofrecer todos sus conocimientos y su ayuda en el desarrollo de este proyecto y por ser un gran ejemplo de dedicación y profesionalismo. A mi tutor industrial Alejandro Azcunes por su apoyo incondicional durante estas 20 semanas y por servir de orientación en cada uno de mis pasos en la empresa. A mi equipo de trabajo: Nathaly Chediak, Luis Enrique Molina y Antonio Carcia por su dedicación, tiempo y esfuerzo en cada una de las actividades que emprendí y por colaborar en la elaboración de este informe. A mi especial amigo e incansable compañero de carrera Edwind Becerra, gracias por tus palabras de aliento, por tu apoyo, y la amistad compartida durante tantos años. A la consultora Alicia Maita, por haberme acogido tan gratamente en la empresa y por ser mucho más que una compañera de trabajo, durante el proyecto de pasantía. A mis grandes amigos y compañeros de carrera: Erik Moreira, Ana Hernández, María Poó, Nathaly Peña, Ana Pérez, Gerardo León, Andrés Navia, Mauricio Herrera, Jenny Villalba y José Piñero, gracias por los momentos compartidos, por ser mis soportes y confidentes, por motivarme y por todo lo que para mi representan. Al profesor Jesús Ravelo, gracias por influir en mi formación académica como ejemplo de rectitud y por haber marcado el camino en los inicios de mi carrera. El que hoy esté aquí depende inmensamente de su apoyo. A todas aquellas personas que de una u otra manera, me brindaron su ayuda y su cariño de forma incondicional y porque seguro han influenciado en mi vida. Gracias! v

Índice General CAPÍTULO 1...1 INTRODUCCIÓN...1 CAPÍTULO 2...3 ENTORNO EMPRESARIAL...3 2.1 Estructura Organizacional de la Empresa... 4 CAPÍTULO 3...5 DEFINICIÓN DEL PROYECTO...5 3.1 Antecedentes... 5 3.2 Planteamiento del Problema... 6 3.3 Solución Propuesta... 7 3.4 Objetivos... 8 3.4.1 Objetivo General... 8 3.4.2 Objetivos Específicos... 8 3.5 Alcance... 8 CAPÍTULO 4...9 MARCO TEÓRICO...9 4.1 Gestión de Establecimientos de Entretenimiento... 9 4.1.1 Áreas / Entidades del Casino... 9 4.1.2 Operaciones del Casino... 11 4.2 Patrón Arquitectónico Model View Controller (MVC)... 12 4.3 Tecnología de Desarrollo... 12 4.4.NET Framework... 12 4.5 Clasificación del Sistema de Información... 13 vi

CAPÍTULO 5...14 MARCO METODOLÓGICO...14 5.1 Características y Estructura de RUP... 14 5.2 Fases de RUP... 15 5.3 Fases de RUP contempladas en la pasantía.... 17 CAPÍTULO 6...19 MARCO TECNOLÓGICO...19 6.1 Microsoft Visual Studio 2008 Professional Edition... 19 6.1.1 Lenguaje de Desarrollo... 20 6.1.2 Tecnologías de.net Framework.... 22 6.1.3 Librería Telerik para WinForms... 23 6.2 Manejador de la Base de Datos... 24 CAPÍTULO 7...26 DESARROLLO E IMPLEMENTACIÓN...26 7.1 Fase de Inicio... 26 7.1.1 Planificación de la Fase... 26 7.1.2 Visión del Sistema... 27 7.1.3 Stakeholders... 27 7.1.4 Levantamiento de Información... 28 7.1.5 Riesgos... 29 7.1.4 Usuarios... 29 7.1.5 Necesidades... 32 7.1.6 Capacidades... 33 7.1.7 Herramientas de Desarrollo... 33 7.1.8 Infraestructura de Desarrollo... 34 7.1.8.1 Hardware... 34 7.1.8.2 Software... 34 7.2 Fase de Elaboración... 35 7.2.1 Planificación de la Fase... 35 7.2.2 Arquitectura del Sistema... 36 7.2.2.1 Vista de Casos de Uso... 37 7.2.2.2 Vista Lógica... 37 7.2.2.3 Vista de Implementación... 41 7.2.2.4 Vista de Datos... 43 7.2.3 Requerimientos... 44 7.2.4 Migración de Datos... 45 7.2.5 Pruebas de Integración... 45 vii

7.3 Fase de Construcción... 46 7.3.1 Primera Iteración... 46 7.3.1.1 Planificación de la Iteración... 46 7.3.1.2 Herramientas de Apoyo Visual / Competencias de Windows Forms.... 46 7.3.1.3 Refinamiento de la Aplicación... 47 7.3.2 Segunda Iteración... 48 7.3.2.1 Planificación de la Iteración... 49 7.3.2.2 Implementación de los Casos de Uso... 49 7.3.3.3 Pruebas... 50 7.3.3 Tercera Iteración... 50 7.3.3.1 Planificación de la Iteración... 50 7.3.3.2 Implementación de los Casos de Uso... 51 7.3.3.3 Pruebas... 52 7.4 Dificultades presentadas en la implementación del sistema... 52 7.4.1 Dificultades presentadas durante las fases de inicio y elaboración... 53 7.4.2 Dificultades encontradas durante el proceso de implementación... 54 CAPÍTULO 8...55 CONCLUSIONES Y RECOMENDACIONES...55 REFERENCIAS...59 APÉNDICES...61 viii

Índice de Figuras y Tablas Índice de Figuras Figura 2.1 Estructura Organizacional de Global Consultants Group... 4 Figura 5.1. Diagrama del Ciclo de Vida del Proceso RUP... 15 Figura 6.1. Comparación del Uso de los Lenguajes.NET... 22 Figura 7.1. Diagrama de Paquetes de Casos de Uso del Sistema C2M.... 38 Figura 7.2. Capas del Sistema... 39 Figura 7.3. Diagrama de Clases del Sistema... 40 Figura 7.4 Diagrama de Clases para el Paquete de Administración de Máquinas 41 Figura 7.5. Paquetes de la Arquitectura del Sistema... 42 Figura 7.6. Imagen de la Pantalla Principal del Sistema y del Menú de Máquina 48 Figura 7.7. Resultados de las Pruebas del Sistema... 52 Índice de Tablas Tabla 6.1. Comparación entre Visual Basic.NET y Visual C#.NET... 21 Tabla 6.2. Capacidades de las tecnologías WinForms y WPF... 23 Tabla 6.3. Ventajas y Desventajas de Migraciones en versiones de SQL Server... 24 Tabla 7.1. Actividades Importantes realizadas en la Fase de Inicio... 26 Tabla 7.2. Stakeholders del Sistema C2M.... 27 Tabla 7.3. Lista de Riesgos... 29 Tabla 7.4. Descripción de los Roles que interactúan con el sistema C2M.... 29 Tabla 7.5. Necesidades del Sistema... 32 Tabla 7.6. Capacidades del Sistema... 33 Tabla 7.7. Actividades Importantes realizadas en la Fase de Elaboración... 35 Tabla 7.8. Requerimientos Funcionales del Proyecto de Pasantía... 44 Tabla 7.9. Requerimientos No Funcionales del Proyecto de Pasantía.... 44 Tabla 7.10. Actividades de la Primera Iteración... 46 Tabla 7.11. Actividades de la Segunda Iteración... 49 Tabla 7.12. Actividades de la Tercera Iteración... 51 ix

Lista de Símbolos y Abreviaturas AJAX BD C2M CASE CCM CLR CSS CU DAO DAS ERS GCG GDI IDE IP LINQ Asynchronous JavaScript And XML Base de Datos Sistema de Control de Cajas, Mesas y Máquinas Computer Aided Software Engineering Sistema de Control de Cajas y Mesas Common Language Runtime Cascading Style Sheets Caso de Uso Data Access Objects Documento de Arquitectura del Sistema Especificación de Requerimientos de Software Global Consultants Group Graphics Device Interface Integrated Development Environment Instrumento de Pago Language Integrated Query MD5 Message-Digest Algorithm 5 MDA MIS MSIL Model Driven Arquitecture Management Information System Microsoft Intermediate Language x

MVC RAM RUP SHA SI TPS UI UML VB WF WPF WWF XAML XML Model View Controller Random Access Memory Rational Unified Process Secure Hash Algorithm Sistema de Información Transaction Processing System User Interface Unified Modeling Language Visual Basic Windows Forms Windows Presentation Foundation Windows Workflow Foundation Extensible Application Markup Language Extensible Markup Language xi

Capítulo 1 Introducción Con el paso del tiempo los Sistemas de Información (SI) se han hecho cada vez más necesarios para apoyar y manejar los distintos procesos fundamentales del negocio de toda empresa u organización en el mundo. Los SI fungen como servicios que permiten el acceso, en todo momento, a la información actualizada y automatizan, en gran medida, muchos de los procesos que anteriormente se realizaban de forma manual. Existen muchas empresas que requieren de dichas facilidades para el manejo de sus procedimientos pues resultan vitales en el éxito o fracaso de su negocio. Tal es el caso de los establecimientos de entretenimiento, mayormente conocidos por los nombres de Bingos y Casinos; en estos sitios se manejan gran cantidad de clientes y operaciones, las cuales surgen en respuesta a las peticiones de los propios clientes y es de vital importancia la rapidez con la que sean atendidas. La empresa venezolana Global Consultants Group (GCG) fue la encargada de dar respuesta a los requerimientos de los establecimientos de entretenimiento pertenecientes a la Corporación Nacional de Casinos. Es así como en el año 2000 nace el Sistema de Control de Cajas, Mesas y Máquinas (C2M) el cual sirvió para dar solución y apoyo a los procesos más esenciales y significativos de su negocio: Cuánto dinero se recibió?, Cuánto dinero se ha entregado?, Quién y cuándo se realizó la operación?, Cuál ha sido la ganancia de la jornada?, Cuántos intentos de fraude se han tenido?, Cuál ha sido la pérdida de la jornada?, entre otras. Todo esto se logró atendiendo a tres áreas fundamentales que son: el proceso de administración de cajas, mesas y máquinas, el área de seguridad del establecimiento que incluye el monitoreo de operaciones y transacciones, y por último, los procedimientos de conteo y recaudación que totalizan las pérdidas y ganancias por jornadas. 1

En la actualidad, a pesar que GCG sigue brindando soporte técnico a los distintos casinos que hasta hoy han gozado de los beneficios del Sistema C2M, aún existe en ellos una preocupación: es sabido por todos que la informática y todas sus ramas avanzan a pasos agigantados, y no es extraño toparse hoy en día con SI que se encuentren desactualizados o sin soporte tecnológico. Estas inquietudes los llevaron a plantearse la necesidad de rehacer el sistema con nuevas tecnologías Microsoft que les permitieran a sus clientes seguir contando con un producto de la misma calidad que siempre han tenido y que además se ajustara a los nuevos requerimientos que han ido surgiendo a través de los años. El proyecto de pasantía fue definido como un proceso investigativo que arrojara como resultado un conjunto de posibles tecnologías de desarrollo, las cuales luego serían discutidas para, finalmente, tomar un rumbo claro y concreto en la nueva construcción del sistema, y además demostrara, mediante la creación de un pequeño y complejo prototipo, el correcto funcionamiento y acoplamiento de las tecnologías que fueran seleccionadas. El presente informe se estructura en 8 capítulos destinados a describir el proceso que fue seguido para la construcción y documentación del prototipo del Sistema de Control de Cajas, Mesas y Máquinas C2M. En el capítulo 2, con el fin de proveer una visión global del ambiente de trabajo, se describe el entorno empresarial. Seguidamente se presentan los antecedentes y objetivos del proyecto, en el capítulo 3. El marco teórico es expuesto en el capítulo 4 con el fin de definir los conceptos centrales del sistema C2M. En los capítulos 5 y 6 se describen la orientación metodológica y las herramientas utilizadas en el desarrollo del sistema respectivamente. Todas las decisiones de diseño e implementación se exponen debidamente en el capítulo 7, y las conclusiones y recomendaciones se encuentran en el capítulo 8. 2

Capítulo 2 Entorno Empresarial Global Consultants Group es una empresa que presta servicios de consultoría de proyectos en Tecnologías de Información y comunicaciones [Global Consultants Group, 2009]. GCG se diferencia de otras empresas de consultoría en que ha incursionado y ha orientado sus prácticas de negocio a dos industrias particulares: telecomunicaciones y entretenimiento. En el área de entretenimiento, específicamente para los establecimientos de bingos y casinos, GCG ha desarrollado e implantado una aplicación propia que actualmente se encuentra instalada en 4 casinos y un bingo en Venezuela. En la industria de telecomunicaciones GCG brinda servicios que abarcan soluciones como interconexión, mediación, facturación, aprovisionamiento e inteligencia de negocio, lo cual ha permitido extender sus servicios más allá de Venezuela y apoyar nuevos mercados tales como: Colombia, Curazao, España, Ecuador, República Dominicana, Perú y varios países de Centro América. Su misión es servir a nuestros clientes como facilitadores en el logro de soluciones tecnológicas que les permitan cubrir sus necesidades de negocios, a través de servicios de consultoría, brindando oportunidades de desarrollo profesional y económico a nuestro personal. La visión de GCG es convertirnos en aliados estratégicos de nuestros clientes, con miras a lograr el reconocimiento del mercado en la prestación de servicios de consultoría que responden a altos estándares de calidad. 3

2.1 Estructura Organizacional de la Empresa GCG se ha enfocado en dirigir sus recursos al área clave del negocio: la consultoría de proyectos. Reciben apoyo externo u outsourcing en las unidades de asesoramiento legal y contaduría. La ubicación del personal de GCG no es estática en una sola área de la estructura organizacional de la empresa. Un consultor puede ocuparse de la gerencia de un proyecto mientras que forma parte del grupo de desarrolladores para otro proyecto distinto, todo dependerá de las destrezas y aptitudes que posea el empleado. a) En la Figura 2.1 se ilustra la estructura organizacional de GCG. Durante el proyecto la pasante realizó sus actividades en el área de consultoría de proyectos, resaltada en la figura. Asamblea de Socios Directiva Recursos Humanos Asesoría Legal Administración Consultoría de Proyectos Mercadeo y R. R. P. P. Gerentes de Proyectos Unidad Administración Unidad de Contaduría Lideres de Proyectos Grupo de Consultores Pasantes Figura 2.1 Estructura Organizacional de Global Consultants Group 4

Capítulo 3 Definición del Proyecto Este capítulo presenta la definición del proyecto de pasantía. Se detalla el planteamiento del problema y las soluciones propuestas a dicho problema. Adicionalmente, se plantean los objetivos y el alcance del proyecto. 3.1 Antecedentes Global Consultants Group, desde el año 2000, ha brindado apoyo y servicios a un grupo de los establecimientos de entretenimiento legales en el país. Más concretamente GCG desarrolló una aplicación encargada de manejar y controlar los distintos procesos que se llevan a cabo dentro de un casino. De allí nace el Sistema de Control de Cajas, Mesas y Máquinas C2M que atiende las áreas críticas existentes en el negocio de estos establecimientos, a saber: la administración de cajas, mesas y máquinas, el área de seguridad y monitoreo de las transacciones y los procedimientos de conteo y recaudación. Existen además otras áreas a las que brinda apoyo como es el caso del proceso de auditoria y de consulta de reportes. Durante la construcción de dicha aplicación, GCG realizó grandes esfuerzos para manejar con mucha precisión los siguientes puntos: los distintos flujos de las operaciones cotidianas que ocurren en una jornada de juego, el seguimiento de la rotación de personal dentro de las instalaciones por fecha operacional y turno y la asignación de permisos a cada uno de los distintos usuarios del sistema. Todo esto les permitiría llevar un correcto seguimiento de las operaciones realizadas y brindaría un enorme apoyo a los procesos de monitoreo y auditoria del casino. 5

Luego de la instalación de la aplicación en los diferentes casinos del país, GCG continuó su labor de mantenimiento solucionando los pocos casos de soporte que eran registrados. A finales del año 2007 se realizó una actualización al sistema para que fuese capaz de manejar el cambio de moneda que ocurrió en Venezuela. De igual manera, desde la fecha de creación hasta la actualidad se han realizado algunos cambios que han permitido incorporar nuevas funcionalidades tanto a la aplicación como a los reportes del sistema. 3.2 Planteamiento del Problema Con el paso del tiempo la arquitectura que se utilizó para el desarrollo del sistema C2M se ha convertido en una arquitectura obsoleta. Los lenguajes y herramientas en los cuales se desarrolló el sistema han sufrido varias actualizaciones desde la fecha de realización del proyecto hasta ahora. Incluso existen herramientas que han perdido el soporte por parte de las empresas que las distribuyen, como es el caso de SQL Server 2000 con la cual Microsoft concluyó el servicio de soporte en Julio del año 2007. A todo esto se le suma el hecho que los procedimientos que fueron utilizados en su momento para implementar las funcionalidades del sistema y su interfaz han sufrido un importante cambio en el transcurso de los años, al punto que actualmente existen formas más eficientes y modernas de llevarlas a cabo. Continuar con la gestión del negocio de casinos utilizando la versión anterior del sistema C2M ocasionaba: Grandes dificultades para el desarrollo de nuevas funcionalidades más complejas. Un proceso de mantenimiento del sistema complicado. La posible pérdida de la aplicación, por parte de los clientes, en el caso que no puedan conseguir el software necesario para ejecutarla. Las nuevas funcionalidades desarrolladas sean poco eficientes o no utilicen correctamente los recursos. La aplicación se convierta en un software que no sea lo suficientemente competente para los clientes. La adquisición de nuevos sistemas de otras empresas consultoras, que respondan a los requerimientos del negocio actual de casinos. 6

3.3 Solución Propuesta El principal interés de GCG frente a esta situación fue poder seguir brindando una estructura sólida y ordenada que permitiera, a los distintos establecimientos de entretenimiento, tener reflejadas todas las operaciones del casino de forma inmediata y centralizada y que a la vez contaran con un sistema robusto y confiable. Con el paso del tiempo han ido surgiendo muchas innovaciones en el mundo tecnológico que permiten ofrecerle a los usuarios una versión del sistema más reciente y fresca que a la vez continúe llevando a cabo las mismas actividades de antes pero de manera renovada. Se planteó entonces la investigación, análisis y propuesta de una nueva arquitectura de desarrollo y de nuevas herramientas que apoyen dicho proceso como un proyecto viable de pasantía larga. Este proyecto incluyó además la construcción de un prototipo del sistema C2M que permite validar el buen acoplamiento de las herramientas y la arquitectura escogida así como también la capacidad de desarrollar las mismas funcionalidades de la aplicación anterior. De esta forma se puede ofrecer un producto nuevo que permita reafirmar los lazos existentes entre la empresa y los clientes y que además les permite a ambos beneficiarse de las nuevas bondades que ofrecen las arquitecturas más recientes que han invadido y conquistado al mundo computacional en los últimos años. Este nuevo sistema llevará el mismo nombre comercial de su predecesor C2M aunque internamente dentro de GCG se manejará el nombre de Proyecto Jackpot para denotar todo el proceso de desarrollo que sucederá al término del proyecto de pasantía. Concretamente el nuevo prototipo del sistema fue planificado para: Realizar las mismas funcionalidades anteriormente desarrolladas, de igual o mejor manera. Adaptar la interfaz del sistema a las últimas tendencias, y contemplar en su diseño la posibilidad de utilizar pantallas Touch Screen. 7

3.4 Objetivos A continuación se definen el objetivo general y los objetivos específicos que se plantearon para este proyecto. 3.4.1 Objetivo General Establecer una propuesta de funcionalidad, apariencia, programación y documentación y aplicar dicha propuesta a un módulo de la aplicación C2M. 3.4.2 Objetivos Específicos Crear un ambiente de programación estándar, confiable y productivo que facilite el desarrollo de soluciones informáticas basadas en tecnología Microsoft. Sentar las bases, en cuanto a la funcionalidad y apariencia de la aplicación, para el desarrollo de la siguiente versión de los sistemas C2M y CCM (Sistema de Control de Cajas y Mesas). Probar la propuesta en un módulo del sistema C2M. Desarrollar la aplicación utilizando la Metodología de Desarrollo de Software RUP (Rational Unified Process) usando herramientas de Microsoft. Elaborar los siguientes artefactos, propios de la metodología de desarrollo de software elegida: Documento de Visión, Especificación de Requerimientos del Sistema (ERS), Especificación de los Casos de Uso del Sistema y Documento de Arquitectura del Software (DAS). Cualquier otro documento adicional podrá ser agregado siempre y cuando la planificación y el tiempo lo permitan. 3.5 Alcance Por razones de tiempo se acotó el proyecto a un módulo del sistema C2M. De igual manera y por las mismas razones, no se contempló la fase de transición de la metodología RUP. 8

Capítulo 4 Marco Teórico Este capítulo presenta las bases teóricas que fundamentan el desarrollo del proyecto, haciendo inicialmente un enfoque en el negocio de los establecimientos de entretenimiento, que es el dominio en el cual gira el problema planteado en este informe, para posteriormente hacer énfasis en la arquitectura del software. Se define también la tecnología utilizada durante la implementación del sistema y el framework aplicado. 4.1 Gestión de Establecimientos de Entretenimiento Dentro de un establecimiento de entretenimiento, o casino, se realizan innumerables procesos que son vitales para la correcta operabilidad del mismo. Dichos procesos son el alma del Sistema de Control de Cajas, Mesas y Máquinas C2M; su misión ha sido, y seguirá siendo, la de velar por el buen funcionamiento de las distintas áreas del casino, para lo cual el sistema C2M debe manejar una serie de entidades, roles y flujos que serán brevemente descritos a continuación. 4.1.1 Áreas / Entidades del Casino Las principales áreas del casino, conocidas dentro del lenguaje propio del sistema como entidades, son: Área de Caja: Está encargada de manejar todas las operaciones asociadas a los instrumentos de pago que se manejan dentro del casino. La caja del casino es usualmente conocida como el Corazón del Casino, ya que provee en la operación diaria un sin número de funciones vitales, tales como: 9

Servir como depósito de la banca del casino. Ser el enlace vital de comunicación y servicio a los diferentes pits (agrupación de mesas) y áreas del Casino. Manejar todo tipo de transacciones con la clientela. Mantener, preparar y supervisar un sin número de formas requeridas para el funcionamiento adecuado de los procedimientos de control interno. La caja está conformada por las entidades Bóveda, Banca, Cajero Fill Bank (encargado de las fichas), Cajero de Efectivo, Cajero de Slot (o tokens) y Cajero Marker Bank (encargado de los demás instrumentos de pago). Los diferentes cargos que juegan los distintos roles dentro de la caja son: Gerente de Administración y Finanzas, Gerente de Turno, Jefe de Caja, Supervisor de Caja, Cajeros y Conformadores. Entre las operaciones que maneja la caja están: el registro de transacciones entre entidades, apertura y cierre de caja, venta y compra de tokens, cambio, reverso y recuperación de instrumentos de pago, creación de depósitos, manejo de abonos y retiros, registro de los rellenos de máquinas y mesas, devoluciones de fichas, entre otras. Conteo y Recaudación: Incluye dos procedimientos, realizados por cada jornada de juego del casino, denominados Soft Count y Hard Count. El primero registra la cantidad de billetes contenidos en los drop boxes de las mesas y en los stackers de las máquinas (ver definiciones en el Glosario - Apéndice G ) y el segundo la cantidad de tokens. Ambos procesos implican una transferencia del monto encontrado a la Bóveda y la realización de un reporte o relación de conteo. Surveillance: Se encarga de registrar a través de videos, e incluso en algunas ocasiones acompañado de audio, muchas de las operaciones efectuadas en el establecimiento de las que se tiene un especial interés en llevar un registro o seguimiento, el cual es guardado por algún tiempo, y luego es destruido. Administración: Incluye al área de auditoria cuya principal labor es la de realizar la auditoria de las operaciones ocurridas por jornada de juego en el casino para luego registrarlas en la contabilidad. Se encargan de determinar la ganancia o pérdida del casino. 10

4.1.2 Operaciones del Casino A continuación se definen los conceptos de las operaciones del casino inherentes al desarrollo del nuevo prototipo del sistema C2M. Configuración de Entidades Básicas: esta operación está representada por el registro de información de las entidades básicas del casino (mesas, máquinas, clientes, bancos, fichas, empleados, salas, juegos, entre otras) en el sistema. Esta operación es realizada por el configurador del sistema en cada casino. Hand Pay o Pago Manual: Cuando una máquina no puede dispensar el pago a un cliente, emite una señal de un Pago Manual, el cual es atendido por el Operador de Máquina, quien llena un formulario con la información del pago. El operador entrega la copia original (blanca) al cliente y envía la copia amarilla al cajero de Slot. Cuando un cliente llega a la Caja de Slot a hacer efectivo su pago, el cajero le solicita la copia original al cliente y ubica la copia amarilla (previamente enviada por el Operador de Máquina). Registra la operación del Pago Manual en el sistema y verifica que la información es correcta. De ser así, realiza el pago en efectivo al cliente siguiendo el protocolo de manejo de billetes propio del casino. Apertura y Cierre de Cajas: Al iniciar una jornada de juego el supervisor de caja debe realizar la creación de los turnos de cada una de las cajas que operarán en el casino. Los turnos serán creados con status creado para el turno diurno y con status stand by para el turno nocturno. Posteriormente a este paso se transferirá de la bóveda a la banca una cantidad inicial de bolívares para que ésta pueda surtir a la(s) caja(s) correspondiente(s) que requieran manejar dinero; por otra parte es necesaria la manipulación de tokens, los cuales no necesitan pasar por la banca para llegar a la(s) caja(s), sino que son transferidos directamente de la bóveda a su destino. Luego que se hayan surtido a cada una de las cajas con un monto mínimo de dinero su status pasará de creado a abierto. Rotación de Personal: Al inicio de cada jornada los supervisores de cada área del casino deben asignar el personal a cada entidad, perteneciente a su rango de competencia, que estará abierta. Esto permitirá luego controlar a los diferentes encargados de cada una de las acciones que se realicen dentro del casino. 11

4.2 Patrón Arquitectónico Model View Controller (MVC) Según Buschmann (1996) el patrón Model View Controller (MVC) es un patrón de arquitectura de software el cual divide una aplicación interactiva en tres componentes. El modelo (Model) contiene la información central y los datos. Las vistas (View) despliegan información al usuario. Los controladores (Controller) capturan la entrada del usuario. Esta separación trae como beneficio que aquellas modificaciones realizadas al componente de la vista tengan un mínimo impacto en el componente del modelo de datos de software. Adicionalmente, de acuerdo a Buschmann (1996) el patrón MVC propicia los atributos de calidad: Funcionalidad (habilidad del sistema para realizar el trabajo para el cual fue concebido [Kazman, 2001]) y Mantenibilidad (capacidad de someter a un sistema a reparaciones y evolución [Barbacci, 1995]). 4.3 Tecnología de Desarrollo Existen varios lenguajes de programación, y tecnologías que los soportan, utilizados para desarrollar aplicaciones de escritorio de tipo Cliente/Servidor. Cada tecnología presenta características propias, sin embargo todas ellas buscan diseñar sistemas integrales que puedan cumplir con los requerimientos más complejos de forma exitosa. Para el desarrollo de este proyecto se utilizó la plataforma.net bajo el lenguaje de programación C#. 4.4.NET Framework Un framework es una plataforma de desarrollo y ejecución de aplicaciones. Esto quiere decir que no sólo brinda todas las herramientas y servicios que se necesiten para desarrollar modernas aplicaciones empresariales, sino que también provee mecanismos robustos, seguros y eficientes para asegurar que la ejecución de las mismas sea óptima. El.NET Framework soporta múltiples lenguajes de programación - entre ellos C#, Visual Basic y C++, y tiene dos componentes claves que son el Common Language Runtime (CLR) y la biblioteca de clases que incluye ADO.NET, ASP.NET, formularios Windows Forms y Windows Presentation Foundation (WPF) [Microsoft, 2009a]. El CLR es el núcleo del Framework.NET, es el entorno de ejecución en el que se cargan las 12

aplicaciones desarrolladas en los distintos lenguajes que previamente fueron compilados a un código intermedio MSIL (Microsoft Intermediate Language). En el desarrollo del proyecto se utilizó el Microsoft.NET framework 3.5 el cual es un componente integral de Windows que admite la creación y la ejecución de la siguiente generación de aplicaciones y servicios web. Este framework proporciona un entorno de ejecución administrado, un desarrollo e implementación simplificados y la integración con una gran variedad de lenguajes de programación. Agrega nuevos compiladores para C++, Visual Basic y C# e incorpora tecnologías adicionales como LINQ. 4.5 Clasificación del Sistema de Información El sistema C2M puede ser definido, según el propósito con el cual fue, y es, desarrollado, de la siguiente manera [Wikipedia, 2009a]: Sistema de Procesamiento de Transacciones (Transaction Processing System TPS): son aquellos que logran la automatización de procesos operativos dentro de una organización. Recolecta, almacena, modifica y recupera toda la información generada por las transacciones producidas por una organización. Presentan las siguientes características: A través de ellos suelen lograrse ahorros significativos de mano de obra. Con frecuencia son el primer sistema de información que se implanta en las organizaciones. Son intensivos en entrada y salida de datos y tienen la propiedad de ser recolectores de información, es decir, a través de estos sistemas se cargan las grandes bases de datos para su posterior explotación. Son fáciles de justificar ante la dirección general, ya que sus beneficios son visibles y palpables. A pesar de que el sistema C2M es visiblemente un TPS, también presenta ciertas características de un Sistema de Información Gerencial (Management Information System - MIS) los cuales analizan información y con sus resultados apoyan a los mandos intermedios y a la alta administración en la toma de decisiones. 13

Capítulo 5 Marco Metodológico El presente capítulo tiene como objetivo dar a conocer los aspectos metodológicos en los que se basó la ejecución del proyecto de pasantía. A continuación se explicará en detalle la metodología de desarrollo de Software propuesta por Rational (Rational Unified Process RUP) [Letelier, 2009] la cual se define como un proceso iterativo de desarrollo de Software que no consta de pasos firmemente establecidos sino que por el contrario, se adapta al contexto y necesidades de cada organización. 5.1 Características y Estructura de RUP Los autores de RUP destacan que el proceso tiene 3 características esenciales: está dirigido por los Casos de Uso - ya que a partir de ellos se crean los modelos de análisis, diseño, implementación y pruebas -, está centrado en la arquitectura, puesto que ella ayuda a determinar cómo debe ser construido el sistema y en qué orden, además que su definición debe tomar en consideración elementos de calidad rendimiento, reutilización, capacidad de evolución por lo que debe ser flexible durante todo el desarrollo, y por último es iterativo e incremental. RUP consta de dos dimensiones (Figura 5.1), a saber: Dimensión Estática: describe el proceso en términos de componentes de proceso, disciplinas, flujos de trabajo, actividades, artefactos y roles de la metodología. Dimensión Dinámica: representa el tiempo e indica las características del ciclo de vida del proceso expresado en términos de fases, iteraciones e hitos. Consta de 4 fases: Inicio, Elaboración, Construcción y Transición. 14

Figura 5.1. Diagrama del Ciclo de Vida del Proceso RUP La Figura 5.1 presenta gráficamente la estructura de la metodología. El eje vertical está representado por la dimensión estática y el horizontal por la dimensión dinámica. 5.2 Fases de RUP RUP se conforma a través de ciclos los cuales constituyen la vida de un producto. Cada ciclo está representado por cuatro fases: Inicio, Elaboración, Construcción y Transición las cuales se detallarán brevemente a continuación. Cada fase presenta sus propios criterios de evaluación los cuales deben ser revisados inmediatamente después de su finalización, si los criterios no son satisfechos se debe abandonar el desarrollo o realizar una reestructuración del proyecto. 1. Fase de Inicio: es la primera fase del proceso de desarrollo. En ella se definen el modelo del negocio y el alcance del proyecto. Otros objetivos de esta fase son: Establecer los Casos de Uso críticos del sistema que definirán su funcionalidad. Mostrar una arquitectura candidata para los escenarios principales. Estimar el costo en recursos y tiempo de desarrollo de todo el proyecto. Determinar y estimar los riesgos que conllevará el proceso. Producir la primera versión del Documento de Visión - que incluya una visión general de los requerimientos del proyecto, sus características claves y principales restricciones -, así como también un glosario inicial y el Documento de Caso del Negocio. 15

Los criterios de evaluación en esta fase están representados por: existe coincidencia entre las definiciones y estimaciones del proyecto por parte del equipo de trabajo, hay un correcto entendimiento de los requerimientos, las estimaciones de costo, tiempo y riesgos son aceptables y creíbles, y por último se comprende el proyecto en su totalidad. 2. Fase de Elaboración: Su propósito es analizar el dominio del problema y definir la arquitectura base del proyecto. Entre sus objetivos se encuentran: Definir y validar la arquitectura base, y demostrar que la misma es capaz de soportar y satisfacer los requerimientos del sistema. Completar el Documento de Visión. Culminar la elaboración del Modelo de Casos de Uso del sistema. Abarcar todo el proyecto a una profundidad mínima. Establecer y probar el ambiente de desarrollo que soportará el proyecto. Definir los requerimientos que se implementarán en la primera iteración de la Fase de Construcción y realizar un plan de desarrollo. Los criterios de evaluación en esta fase están constituidos por: la arquitectura y visión del producto son estables, el plan de desarrollo es detallado y las estimaciones son factibles, los principales elementos de riesgos han sido abordados y controlados con la primera prueba del ambiente de desarrollo. 3. Fase de Construcción: Su objetivo principal es alcanzar la capacidad funcional del sistema de forma incremental, a través de iteraciones y refinamientos sucesivos. Otros objetivos contemplados en esta fase son: Minimizar los costos de desarrollo optimizando los recursos. Lograr la calidad esperada de forma rápida y práctica. Implementar versiones funcionales tan pronto como sea posible. Completar el análisis, diseño y desarrollo de las funcionalidades planificadas. Desarrollar de forma iterativa e incremental un producto que cumpla con los requerimientos y las expectativas planteadas al inicio. Los criterios de evaluación son: la finalización de la funcionalidad del sistema y la consecución de un nivel mínimo de pruebas. 16

4. Fase de Transición: es la última fase del proceso de desarrollo y tiene como principal función la de poner el producto en manos de los usuarios finales. Entre los objetivos de esta fase se pueden mencionar: Realizar pruebas de aceptación al producto final. Entregar un prototipo totalmente funcional. Ofrecer una descripción de la arquitectura completa y corregida. Entrenar a los usuarios finales y a los encargados del mantenimiento. Obtener la mayor satisfacción posible de parte del cliente. En este punto del desarrollo el criterio de evaluación es el grado de satisfacción que presenta el cliente. Es ahora cuando se debe decidir si se debe iniciar un nuevo ciclo de desarrollo. 5.3 Fases de RUP contempladas en la pasantía. En la planificación del proyecto de pasantía se contemplaron en su totalidad las primeras tres fases de RUP: Inicio, Elaboración y Construcción. La última fase de Transición no fue considerada debido a que el objetivo principal de la pasantía estuvo centrado en las actividades investigativas que se llevarían a cabo durante el inicio del proceso de desarrollo, y el producto final sería un pequeño prototipo, que demostrara el correcto funcionamiento y acoplamiento de la arquitectura propuesta, el cual podía ser obtenido, como una versión Alpha, luego de la primera iteración en la fase de Construcción de RUP. La fase de Inicio estuvo caracterizada por las labores de investigación realizadas con la finalidad de proponer una arquitectura Microsoft que sirviera para desarrollar la nueva versión del sistema C2M. Además se identificaron claramente las necesidades de la empresa y se definió un alcance inicial del prototipo planteado. Por petición de la empresa se desarrolló el documento de RUP denominado Evaluación de la Organización Objetivo cuya función central sería la de unificar toda la información referente a los establecimientos de entretenimiento que maneja GCG actualmente. Se determinaron los riesgos en una visión inicial del proyecto y se elaboró una primera versión del Modelo de Casos de Uso del sistema dividiéndolos en paquetes. Por último los diagramas de la vista de datos del sistema también fueron creados. 17

En la fase de Elaboración se realizó una prueba de la arquitectura propuesta con algunos casos de uso sencillos y fundamentales del sistema. El Modelo de Casos de Uso fue analizado y se establecieron los paquetes a ser implementados en la fase de Construcción, para los cuales se elaboró una planificación detallada que contemplaba el diseño, desarrollo y pruebas de cada uno de ellos, así como el seguimiento de las actividades relacionadas, que hasta los momentos se habían realizado o que aún no habían culminado. A la par de todo esto se fue desarrollando el Documento de Arquitectura del Sistema. Durante la fase de Construcción los esfuerzos estuvieron centrados en la implementación de cada uno de los casos de uso que estaban incluidos en los paquetes seleccionados como claves en la fase anterior. También se refinaron todos los documentos realizados hasta ese momento y se construyó y ejecutó el Documento de Plan de Pruebas. Es en esta fase cuando se obtiene el primer prototipo del nuevo sistema C2M. En el próximo capítulo se realiza una descripción de la orientación tecnológica utilizada durante la elaboración del proyecto, entendiéndose ésta como el conjunto de herramientas de Software utilizado durante la pasantía. Se presentará, además, la justificación del uso de las mismas al incluir parte de los resultados arrojados por la investigación realizada en la fase de Inicio del proceso de desarrollo. 18

Capítulo 6 Marco Tecnológico El sistema C2M fue desarrollado en el año 2000 bajo la filosofía Microsoft usando Visual Basic 6.0 y la base de datos fue elaborada en SQL Server 2000. En este capítulo se presentará la justificación del uso de las herramientas empleadas en el proceso de desarrollo del nuevo prototipo del sistema C2M. Aquellas que fueron seleccionadas por el equipo de trabajo, serán descritas en detalle y se mostrará una comparación entre ellas y las opciones competidoras más cercanas. 6.1 Microsoft Visual Studio 2008 Professional Edition En vísperas de mantener una evolución lógica en el proceso de desarrollo, se buscó al sucesor por excelencia de lo que fue Visual Basic 6.0 en su momento. Microsoft, desde el año 2000, ha creado varios entornos de desarrollo integrados (IDE por sus siglas en inglés) - entre esos se tienen las distintas versiones de Microsoft Visual Studio: 2002, 2003, 2005 y 2008 cada una en sus distintas ediciones -, los cuales permitieron continuar el desarrollo de aplicaciones de escritorio, así como fueron incluyendo los nuevos beneficios surgidos a través del tiempo. Específicamente para la versión 2008 las ediciones presentadas fueron: Standard, Professional, y el Team System que incluye las ediciones de arquitectura, desarrollo, base de datos y pruebas. En particular para nuestro desarrollo fue seleccionada la edición profesional de Microsoft Visual Studio 2008. Entre los beneficios que ofrece se pueden mencionar [Microsoft, 2009b]: 19

Construir aplicaciones para Windows Client, sistemas de Microsoft Office,.NET Framework, SQL Server, y Windows Mobile con diseñadores integrados de drag and drop. Desarrollar aplicaciones que se integren con SQL Server utilizando Microsoft Visual Basic o Microsoft Visual C#. Manejar y construir aplicaciones que utilizan distintas versiones de la plataforma.net. Simplificar el proceso de diseño, desarrollo y de depuración (debugging) con rasgos prácticos de los editores de código, como la función de IntelliSense (acción de autocompletar palabras mientras se desarrollan las líneas de código), entre otros. Construir aplicaciones WEB utilizando las últimas tecnologías las cuales soportan AJAX y controles WEB con la librería de Microsoft AJAX, el uso de hojas de estilo (CSS por sus siglas en inglés) y una vista dividida de código/diseño. 6.1.1 Lenguaje de Desarrollo Una vez seleccionado el IDE a ser utilizado en el desarrollo, el siguiente paso fue decidir el lenguaje de codificación. Las opciones planteadas fueron continuar utilizando Visual Basic o cambiar el lenguaje a Visual C#. Una de las principales preocupaciones era saber si con el uso de cualquiera de estos dos lenguajes se podrían desarrollar las distintas funcionalidades del sistema C2M: el módulo de reportes, las notificaciones al área de surveillance, la gran cantidad de pantallas complejas presentes, la correcta integración con el servidor de bases de datos, entre otras. Si bien el proyecto de pasantía incluyó el desarrollo de un prototipo que probara el buen acoplamiento y funcionamiento de las herramientas y la arquitectura propuesta, el proceso de selección de las herramientas es, sin duda, uno de sus objetivos principales. Luego de las actividades investigativas realizadas, se obtuvieron las siguientes premisas: El lenguaje Visual Basic.NET, reconocido como una evolución del antiguo Visual Basic, no es compatible hacia atrás con su predecesor e incluso difiere bastante en la forma de programación pues no existen reglas de equivalencia. Con cualquiera de los dos lenguajes propuestos se pueden llegar a implementar las mismas funcionalidades del actual sistema C2M pues ambos son considerados igual de poderosos [Guerrero, 2009]. 20

Se condensó la información obtenida [Wikipedia, 2009b] en la Tabla 6.1 para establecer las diferencias y ventajas de ambos lenguajes: Tabla 6.1. Comparación entre Visual Basic.NET y Visual C#.NET Visual Basic.Net Visual C#.Net Tiene acceso a opciones de plataforma como recolección de basura, herencia del lenguaje, manejo de excepciones y eliminación de fallos por depuración. Tiene opciones adicionales originadas en Visual Basic 6 como: nombre de espacio por default y algunos proyectos están ocultos, y contiene un espacio que guarda la mayoría de los comandos de acceso rápido de Visual Basic 6. Tiene la opción de compilar en background por medio de la cual el código es compilado mientras es escrito con el propósito de detectar errores sin requerir que la solución sea construida (built). El panel de Lista de Errores está sincronizado con la compilación en background. Tiene alta aceptación, buenas calificaciones por la comunidad desarrolladora, y tiene soporte completo por parte de Microsoft. De acuerdo con una revisión realizada por Visual Studio Magazine (la cual se autodeclara como una publicación centrada a VB) el 34% declaró usar VB. Como el target de VB. Net son los desarrolladores de VB ella incorpora muchos de los conceptos y constructores propios de VB como código case-insensitive, un compilador en background, la posibilidad de usar late binding, etc. Opciones de Visual Basic que no se encuentran en C# Tiene acceso a opciones de plataforma como recolección de basura, herencia del lenguaje, manejo de excepciones y eliminación de fallos por depuración. Los comandos de acceso rápido se pueden crear fácilmente utilizando Visual Studio 2008, y el IDE presenta los comandos de acceso rápido más usados como copiar, pegar, cortar, abrir, entre otros. El concepto de compilación en background es nuevo para el lenguaje Visual C# pero está disponible usando el Service Pack 1 para Visual Studio 2008 Standard Edition y superiores. El panel de Lista de Errores requiere que la solución sea reconstruida (rebuilt). Tiene alta aceptación, buenas calificaciones por la comunidad desarrolladora, y tiene soporte completo por parte de Microsoft. Sin embargo la comunidad en Internet tiene un nivel de actividad mucho mayor. De acuerdo con una revisión realizada por Visual Studio Magazine (la cual se autodeclara como una publicación centrada a VB) el 60% declaró usar C#. Como el target de VC#.Net son los desarrolladores de C++ la herramienta incorpora muchos conceptos y opciones familiares a C++ como código case-sensitive, sobrecarga de operadores, y más soporte para documentación inline, etc. Opciones de C# que no se encuentran en Visual Basic. Las variables pueden ser declaradas usando el constructor WithEvents. Tiene la sintaxis Handles para los eventos. Soporte para variables opcionales (está disponible para C# a partir de la versión 4.0) Se pueden asociar a una estructura múltiples acciones con el comando With End With. XML literales. Críticas a Visual Basic.Net Permite bloques de código no protegido por medio de la palabra clave unsafe. Métodos anónimos. Interfaces parciales (dividir código por pedazos). Iteradores y la palabra clave yield. Comentarios de múltiples líneas. Clases estáticas. Se pueden contextos checked y unchecked para controlar de mejor manera el chequeo de overflow/underflow. Críticas a Visual C# Conversiones de booleanos True a entero puede devolver 1, o, -1 dependiendo de la conversión usada. La asignación y la comparación de variables usan el mismo símbolo = mientras que C# usa diferentes símbolos, == para la comparación y = para la asignación. Por defecto las operaciones numéricas no son chequeadas. La suma y la concatenación de Strings usan el mismo símbolo (+) mientras que Visual Basic tiene símbolos distintos, + para la suma y & para la concatenación. En Visual Basic las propiedades de los métodos pueden tomar parámetros. En el Figura 6.1 se muestra la proporción de programadores de los lenguajes.net según una investigación realizada sobre los libros de la página web de O Reilly y la popularidad que han obtenido los lenguajes entre la comunidad computista. 21