martes, 3 de julio de 2012

SISTEMA PARA LA ANOTACIÓN DE JUEGOS DE BÉISBOL


SISTEMA PARA LA ANOTACIÓN DE JUEGOS DE
BÉISBOL
ANNOTATION SYSTEM FOR BASEBALL GAME
Ing. Daniel Eduardo Guerrero Ramírez, dguerrero@grm.uci.cu
Facultad Regional de Granma de la Universidad de las Ciencias Informáticas
Ing. Ramón Ernesto Stevenson Borrell, restevenson@hab.uci.cu
Facultad Regional de Artemisa de la Universidad de las Ciencias Informáticas
Ministerio de la Informática y las Comunicaciones
Manzanillo, Granma
Julio de 2011
“Año 53 de la Revolución”Resumen
2
RESUMEN
En Cuba existe actualmente un sistema de anotación de juegos de béisbol, sin embargo
el mismo no cumple con las necesidades y exigencias actuales de este deporte a nivel
internacional. Con el objetivo de mejorar la calidad, eficiencia y precisión en la anotación
de los juegos de béisbol desarrollados en Cuba, surge la idea de crear un sistema que
cumpla con los requisitos necesarios para realizar esta tarea de una forma más eficiente y
amena.
El nuevo sistema cuenta con nuevas funcionalidades y una interfaz de usuario amigable
permitiendo una mejor interacción entre el operador y el sistema, además de cumple con
los requisitos y exigencias planteadas por los usuarios a los cuales va dirigido el mismo.
Este trabajo constituye todo el proceso de desarrollo de software realizado para la
obtención de un producto final, y en él se justifica y argumenta la elección y utilización de
cada una de las herramientas y técnicas de desarrollo utilizadas durante la concepción del
mismo.
Palabras Clave: Sistema, anotación, requisitos, operador, software.
ABSTRACT
In Cuba there is now a baseball games scoring system, but it does not meets the current
needs and demands of the sport internationally. With the aim of improve quality, efficiency
and accuracy in recording baseball games developed in Cuba, comes abroad the idea of
creating a system that meets the requirements necessary to perform this task in a more
efficient and enjoyable way.
The new system includes  new functionality and a friendly user interface allowing better
interaction between the operator and the system, and meets the requirements and
demands raised by users to whom it is addressed.
This work constitutes the entire software development process undertaken to obtain a final
product, also in this product are justified and argued the choice and use of each of the
tools and development techniques used for the design of it.
KeyWords: System, annotation, requirements, operator, software.Índice
3
ÍNDICE
INTRODUCCIÓN ........................................................................................................................ 4
DESARROLLO............................................................................................................................ 6
Análisis del sistema actual ..................................................................................................... 6
Descripción General del Problema ........................................................................................ 7
Argumentación del problema a resolver............................................................................ 7
Metodologías ........................................................................................................................... 9
Proceso Unificado de Software (RUP), como metodología utilizada en el desarrollo
del trabajo. ........................................................................................................................... 9
Plataforma .NET.................................................................................................................... 11
Plataforma .NET y Mono................................................................................................... 11
XML..................................................................................................................................... 13
Herramientas utilizadas ........................................................................................................ 14
Lenguaje de programación................................................................................................... 15
Problema y situación problémica ......................................................................................... 17
Propuesta del sistema .......................................................................................................... 18
CONCLUSIONES ..................................................................................................................... 19
REFERENCIAS BIBLIOGRÁFICAS........................................................................................ 20
BIBLIOGRAFÍA.......................................................................................................................... 20
ANEXOS.................................................................................................................................... 21Introducción
4
INTRODUCCIÓN
En Cuba el béisbol es pasión, pues es el deporte nacional. A lo largo de los años se han
obtenido muchísimos logros en este deporte, lo que ha llevado a reconocer a Cuba como
una de las principales potencias del béisbol amateur en el mundo, a pesar de ser un país
con poco desarrollo económico. El Instituto Nacional de Educación Física y Recreación
(INDER) y la Federación Cubana de Béisbol Amateur (FCBA) han sido protagonistas de
los logros alcanzados por este deporte. La FCBA es la encargada de realizar numerosos
procesos y tareas que se cumplen durante un juego de béisbol. La anotación de los
juegos es uno de estos procesos.
Desde el año 1977 la FCBA puso en práctica un sistema de anotación de juegos de
béisbol denominado “Béisbol”, el cual resulta de gran importancia, pues en él se recopilan
una serie de datos y estadísticas necesarias para el desarrollo de este deporte. Sin
embargo, con el desarrollo de las nuevas tecnologías surge también la necesidad de crear
nuevos sistemas que sean capaces de recopilar una mayor cantidad de datos e
información, que puedan ser almacenados para su posterior utilización, deviniendo en un
uso óptimo de la información generada ya que permite brindar un grupo de estadísticas
del juego en tiempo real y disponibles en cualquier momento.
De esta manera surge la idea de crear un sistema, que aparte de cumplir con todas las
funcionalidades requeridas por la FCBA sea multiplataforma, debido a la tendencia actual
que tiene el país hacia la migración al Software Libre, puesto que no está sujeto a las
leyes del bloqueo económico impuesto por los Estados Unidos.
El objetivo general del trabajo es realizar la implementación de un sistema de anotación
de juegos para el béisbol en Cuba. Se cuenta además con varios objetivos específicos los
que permitirán darle cumplimiento al objetivo general, estos son los siguientes:
Investigar otros sistemas de anotación existentes en Cuba y en otros países del
mundo.
Identificar las características positivas de cada una de las aplicaciones estudiadas
para tenerlas en cuenta a la hora de desarrollar el sistema.
Realizar un estudio sobre las posibles herramientas a utilizar.
Caracterizar las herramientas de desarrollo a utilizar, teniendo en cuenta las
ventajas y desventajas de las mismas, así como su influencia en el desarrollo de la
aplicación.Introducción
5
Realizar análisis y diseño del sistema.
Como se conoce, Cuba es un país que no posee un amplio desarrollo económico, y para
estar a la altura de los países que si poseen una gran economía y dedican millones de
dólares al desarrollo de este deporte, es necesario realizar diferentes inversiones en la
automatización de las aplicaciones que se utilizan con estos fines. La solución propuesta
reduce al país las inversiones en softwares de este tipo y en su lugar se podría invertir en
otras necesidades del deporte.Desarrollo
6
DESARROLLO
Para el desarrollo del béisbol es importante que se lleven a cabo una serie de procesos, y
que estos procesos se puedan efectuar con un alto nivel de calidad. Dentro de estos
procesos se encuentra la anotación de los juegos. De la eficacia del proceso de anotación
depende la veracidad de las  estadísticas de este deporte. Para ello es importante
automatizar la mayoría de estos procesos de forma tal que los mismos se ejecuten con
rapidez y eficiencia.
Análisis del sistema actual
En Cuba se utiliza actualmente un sistema que lleva por nombre Béisbol, el cual permite
optimizar un poco el proceso de anotación, que hasta el momento de su creación se
desarrollaba sobre un papel y era un poco más engorroso. Ahora se cuenta con toda la
información del partido jugada por jugada de manera digital, la cual se puede obtener en
tres formatos diferentes: en .htm, para página web, en .doc, para imprimir sobre papel y
en .list, para el trabajo con ficheros .bei, los cuales son compilados posteriormente.
Este sistema fue desarrollado por integrantes del Instituto de Educación Física y
Recreación (INDER), en el año 1977 sobre MS-DOS ya que en Cuba la tecnología con
que se contaba era muy pobre.
Sin embargo este sistema no tiene una interfaz de usuario amigable y resulta difícil el
manejo del mismo para el anotador. Con el desarrollo tecnológico y la aparición de
Windows con un sistema de ventanas muy fácil de usar que brinda una serie de
facilidades para el manejo de un sistema como este, es necesaria la realización de una
versión actualizada de la aplicación la cual hasta el momento no se ha realizado. Se hizo
una actualización en 1994 pero fue para corregir algunos problemas y agregar algunas
funcionalidades sobre la misma plataforma de MS-DOS.
Existe una copia de la aplicación en cada uno de los estadios del país. Durante el
desarrollo de un juego se llevan todas las jugadas del encuentro a la misma y se envían
mediante ficheros .bei al estadio Latinoamericano donde se procesa toda la información y
se genera una página .htm que se muestra en un sitio web para que los aficionados
puedan seguir el juego mientras se efectúa. Este proceso es lento y muchas veces no se
tiene información del partido hasta que no se termina el inning en desarrollo o durante
varios inning. Cuando se termina el juego se compilan todos los  ficheros que se Desarrollo
7
obtuvieron en el estadio Latinoamericano y se envían de nuevo a cada uno de los
estadios para actualizar la aplicación de forma independiente.
Muchos datos estadísticos se pierden, pues la información de cada lanzamiento no es
registrada, debido a que la inserción de información estadística como se ha expresado en
varias ocasiones solo ocurre cuando se completa una jugada.
Descripción General del Problema
Para llevar a cabo el proceso de anotación en los partidos de béisbol, en Cuba se utiliza
un sistema de anotación y gestión de juegos de béisbol denominado “Béisbol”, concebido
en 1977 y desarrollado en MS-DOS. Está provisto de una interfaz gráfica por consola
dificultando así la interacción del anotador con el sistema, pero en el momento de su
creación constituyó un proyecto innovador de gran ayuda para las tareas de gestión y
anotación de los juegos de béisbol, que se realiza en papel y dificulta el trabajo de los
anotadores y la gestión de las estadísticas que se generan a partir de la información
recogida en cada partido. La anotación de los juegos como se explica anteriormente es en
papel, el anotador debe tener un amplio conocimiento del Sistema Codificado de
Anotación Cubano para desempeñar su tarea y paralelamente insertar en el sistema
“Béisbol” cada jugada durante el encuentro, por lo que se realiza el mismo trabajo en dos
ocasiones. Este sistema introdujo la posibilidad de guardar estadísticas en formato digital,
sin embargo se pierden algunas estadísticas del juego pues los lanzamientos no se
registran en el mismo.
Argumentación del problema a resolver
El sistema actual de anotación de juegos de béisbol en Cuba corre sobre MS-DOS, lo que
trae consigo que se deriven una serie de dificultades con el uso del mismo por la interfaz
que  posee, además es necesario que el anotador conozca el sistema de codificación
cubano, pues las jugadas se insertan en la aplicación mediante un código. Todos los
datos del encuentro que se vayan a recoger están codificados, el nombre de los
jugadores, los  árbitros, anotadores oficiales, comisarios técnicos y las jugadas que
pueden ocurrir en un partido.
Una vez comenzado el juego, cuando comparece al bate cada jugador, aparece una
pantalla que recrea una serie de acciones posibles a la ofensiva y defensiva  que Desarrollo
8
describen una jugada. A continuación se muestra el proceso por el que transcurre la
anotación. Se muestra una pantalla que contiene 7 casillas:
En la casilla número 1 se pone el número del jugador que está consumiendo su turno al
bate.
En la casilla número 2 la acción ofensiva del bateador.
En la casilla número 3 posiciones defensivas que intervienen en la acción ofensiva del
bateador.
En la casilla número 4 las acciones defensivas ocurridas sobre la acción ofensiva del
bateador.
En la casilla número 5 el avance del corredor a primera base.
En la casilla número 6 el avance del corredor a segunda base.
En la casilla número 7 el avance del corredor a tercera base.
Todas las acciones descritas anteriormente son insertadas en el sistema mediante un
código equivalente a cada una de ellas, por lo que las combinaciones de números a tener
en cuenta por el anotador para llevar a cabo la anotación de cada jugada en el partido
pueden ser relativamente complejas y debe consultar el Sistema Codificado de Anotación
o conocer a la perfección el mismo. Los lanzamientos que lleva a cabo cada pitcher en el
encuentro no son tomados en cuenta por el sistema, lo que imposibilita almacenar una
serie de estadísticas sobre los pitcher que intervienen en el partido.
La aplicación  cuenta con grandes limitaciones tecnológicas y debido al desarrollo
progresivo de los sistemas informáticos no se hace un buen uso de todas las
potencialidades que brindaría un sistema de anotación de este tipo, pues de él se
derivaría la posibilidad de contar con otra serie de servicios, como por ejemplo un sistema
para mostrar las incidencias del juego en tiempo real, del cual el sistema de anotación
seria la base para su funcionamiento.
Actualmente se llevan los juegos en vivo a través de un sitio web, pero por la complejidad
del sistema y del funcionamiento del mismo, en ocasiones no se conoce lo que está
sucediendo en tiempo real, pues los usuarios deben esperar a que transcurra un inning
completo, para saber lo que sucede, y a veces hasta varios inning pues el sistema no
envía los datos en tiempo real.Desarrollo
9
Metodologías
Existen varias metodologías de desarrollo que se aplican a la hora de desarrollar algunos
sistemas y aplicaciones. A continuación se relacionan algunas características de la
metodología escogida que permitieron la realización de la aplicación de una mejor forma.
Proceso Unificado de Software (RUP), como metodología utilizada en
el desarrollo del trabajo.
El Proceso Unificado de Desarrollo de Software (RUP) constituye un proceso de
desarrollo de software que junto al Lenguaje Unificado de Modelado (UML) conforman la
Metodología más utilizada en la actualidad para el análisis, implementación y
documentación de Sistemas Orientados a Objetos. Esta metodología puede ser adaptable
al contexto de  cada problema en particular, por lo tanto constituye una herramienta
flexible, configurable y aplicable para la solución de numerosos sistemas.
Como RUP constituye un proceso, en su modelación define como sus principales
elementos a los Trabajadores, Actividades, Artefactos y El Flujo de Actividades.
Trabajadores: especifica el comportamiento y responsabilidades de cada individuo, grupo
de individuos, sistema automatizado o máquina que trabajan en conjunto.
Actividades: es una tarea que tiene un propósito definido, ejecutada por un trabajador y
manipula elementos.
Artefactos: son el resultado de la culminación de las actividades, también pueden ser
modificados y usados por estas. Pueden ser modelos, elementos de modelado,
ejecutables y código fuente.
Flujo de Actividades: son una secuencia de actividades llevadas a cabo por los
trabajadores y que produce un resultado de valor.
RUP esta basado en 5 principios de desarrollo, estos son:
Adaptar el proceso: el proceso debe adaptarse a las características particulares del
proyecto, el tamaño del mismo, así como las regulaciones que condicionan su
funcionamiento ya que estas influirán en su diseño específico.
Balancear propiedades: puesto que los requerimientos de los participantes en el
proyecto pueden ser diferentes o contradictorios, se debe encontrar un balance que
satisfaga de alguna manera los deseos de todos los integrantes.Desarrollo
10
Demostrar valor iterativamente: la entrega del proyecto, aunque sea de un modo
interno, se realiza en etapas iteradas. En cada una de las iteraciones se analizan las
opiniones de inversores, la estabilidad y calidad del producto para poder refinar la
dirección del proyecto e identificar riesgos.
Elevar el nivel de abstracción: este principio dominante motiva el uso de conceptos
reutilizables tales como el patrón de software. Esto evita que los ingenieros de software
vayan directo de los requisitos a la codificación, sin saber con certeza qué codificar, para
satisfacer de la mejor manera los requerimientos pensando en la reutilización de código.
Enfocarse en la calidad: el control de la calidad en el proyecto no debe realizarse al final
de cada iteración, sino en todos los aspectos de la producción. El aseguramiento de la
calidad forma parte del proceso de desarrollo y no de un grupo independiente.
El ciclo de vida de RUP
La vida de un sistema transcurre a través de ciclos de desarrollo, desde su nacimiento
hasta su muerte, en cada ciclo se repite el proceso unificado de desarrollo, Cada ciclo
consta de cuatro fases: Inicio, elaboración, construcción y transición. Cada ciclo concluye
con una versión del producto.
Dirigido por casos de uso: Los casos de uso reflejan lo que los usuarios futuros
necesitan y desean, lo cual se capta cuando se modela el negocio y se representa a
través de los requerimientos. A partir de aquí los casos de uso guían el proceso de
desarrollo ya que los modelos que se obtienen, como resultado de los diferentes flujos de
trabajo, representan la realización de los casos de uso (cómo se llevan a cabo).
Centrado en la arquitectura: La arquitectura muestra la visión común del sistema
completo en la que el equipo de proyecto y los usuarios deben estar de acuerdo, por lo
que describe los elementos del modelo que son más importantes para su construcción,
los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo
y producirlo económicamente.
Iterativo e Incremental: RUP propone que cada fase se desarrolle en iteraciones. Una
iteración involucra actividades de todos los flujos de trabajo, aunque desarrolla
fundamentalmente algunos más que otros.
Por ejemplo, una iteración de elaboración centra su atención en el análisis y diseño,
aunque refina los requerimientos y obtiene un producto con un determinado nivel, pero
que irá creciendo incrementalmente en cada iteración. Es práctico dividir el trabajo en
partes más pequeñas o mini proyectos. Cada mini proyecto es una iteración que resulta
en un incremento. Las iteraciones hacen referencia a pasos en los flujos de trabajo, y los Desarrollo
11
incrementos, al crecimiento del producto. Cada iteración se realiza de forma planificada es
por eso que se dice que son mini proyectos.
Con la implantación de RUP como metodología para el desarrollo del trabajo en cuestión
se obtiene una mayor organización en la concepción de elementos pues provee un marco
de trabajo que facilita la aplicación de esta metodología a muchos de los problemas que
se presentan en la vida real, ya que puede ser adaptable a las condiciones de cada
problema en particular. [1]
Plataforma .NET
.NET es un proyecto de Microsoft para crear una nueva plataforma de desarrollo de
software con énfasis en transparencia de redes, con independencia de plataforma de
hardware y que permita un rápido desarrollo de aplicaciones. Su objetivo es simplificar el
desarrollo de aplicaciones Web. Provee las herramientas y tecnologías para transformar a
Internet en una plataforma de computación distribuida en gran escala. Esta plataforma
además soporta los estándares sobre los cuales se basan los servicios Web y utiliza
tecnologías existentes, productos modificados para su uso dentro de la plataforma y
elementos nuevos.
Plataforma .NET y Mono
.NET puede considerarse en ciertos aspectos como la respuesta de Microsoft a Java,
aunque tiene bastantes diferencias. Reúne en una misma plataforma un conjunto
interesante de características, como independencia de plataforma, independencia de
lenguaje, soporte de bases de datos, soporte para XML, servicios Web y aplicaciones
Web, entre otras. De entre todas estas, quizás una de las más importantes sean las dos
primeras, referentes a la independencia tanto del lenguaje como de la plataforma.
Independencia del lenguaje
Se pueden desarrollar aplicaciones en múltiples lenguajes dentro de la plataforma .NET,
pero lo más interesante, es que una aplicación  puede tener diferentes partes
desarrolladas en diferentes lenguajes, y todas estas pueden comunicarse entre sí,
transparentemente, sin tener que utilizar ningún tipo de capa intermedia que posibilite esta
comunicación. Esto permite a su vez una gran reutilización de código, ya que las clases Desarrollo
12
desarrolladas para un proyecto en un lenguaje concreto, podrán ser reutilizadas en un
nuevo proyecto, independientemente del lenguaje en el que se desarrolle éste.
Independencia de plataforma
Al igual que en Java, el código .NET no se compila a código máquina, sino a un código en
un formato intermedio, independiente de la plataforma. Esto permite llevar los binarios
producidos de una plataforma a otra, tal como sucede en Java. En la plataforma .NET
existe el Common Language Runtime (CLR), que se encarga de ejecutar el código
intermedio o Common Intermediate Language (CIL).
Proyecto Mono
Mono es un proyecto de implementación del Framework .NET de Microsoft utilizando
código libre (open source), gestionado por Ximian y basado en las especificaciones
definidas en ECMA.
Mono es una implementación del Framework .NET, pero de nada más relacionado con
.NET, como pasaporte o software como servicios.
Los objetivos iniciales del proyecto Mono eran implementar en un entorno de software
libre para el mundo Unix la especificaciones ECMA, para lo cual se incluye un compilador
para C#, un entorno de ejecución CLR y un conjunto de librerías de clase que incluyen las
FCL (Framework Class Library), así como otras añadidas.
El compilador de Mono es el Mono Runtime, que sería el equivalente al Common
Language Runtime o entorno virtual de ejecución en la plataforma .NET.  Implementa un
compilador en tiempo de ejecución Just In Time (JIT) para el CIL de la máquina virtual, un
compilador antes del tiempo de ejecución Ahead-of-Time (AOT), un cargador de clases,
un recolector de basura, el sistema de thereadings y las librerías de acceso a los
metadatos.
El entorno de ejecución se puede utilizar también embebido dentro de otra aplicación, de
forma que se pueden extender aplicaciones C y C++ mediante C#.
En comparación con la solución ofrecida por Microsoft, Mono incluye un intérprete y la
opción de utilizar el runtime de forma embebida en una aplicación, además funciona sobre
diversos sistemas operativos:
Linux, MacOS X, BSD, SUN SOLARIS y Microsoft Windows. Aparte el intérprete puede
ejecutarse sobre otras plataformas como HP-UX.Desarrollo
13
Mono constituye una opción para la portabilidad de aplicaciones desarrolladas en C #,
puesto que brinda la posibilidad de hacer funcionar estas aplicaciones en una amplia
variedad de sistemas operativos incrementando el alcance de las mismas.
Mono contiene una serie de elementos útiles para la construcción de un software:
Un lenguaje común de infraestructura (CLI) máquina virtual que contiene un
cargador de clases, justo a tiempo de compilación, recolección de basura y un
tiempo de ejecución.
Una biblioteca de clases que puede trabajar con cualquier lenguaje que trabaja en
el CLR. Mono y .NET compatibles con las bibliotecas de clases.
Un compilador para el lenguaje C #.
El CLR y el Sistema de Tipo Común (CTS) permiten que las aplicaciones y bibliotecas que
se escriben en una colección de diferentes lenguajes se centren en el código de bytes.
Esto significa por ejemplo que si se define una clase para hacer la manipulación
algebraica en C #, esa clase puede ser reutilizada por cualquier otro lenguaje que apoye
el CLI. Usted podría crear una clase en C #, subclase en C + + y crear una instancia en un
programa Eiffel. Un solo sistema objeto, sistema de hilos, bibliotecas de clases, y sistema
de recolección de basura, pueden ser compartidos a través de todos estos lenguajes. [2]
XML
XML (eXtensible Markup Language) es un lenguaje orientado a identificar estructuras de
datos en un documento. La especificación XML define la manera estándar de cómo hay
que realizar el marcado de expresiones en un documento no estructurado, para que con
dicho marcado se defina una determinada estructura de datos.
La especificación XML no define el contenido de las estructuras de datos, son los
expertos de cada dominio y las entidades reguladoras, los agentes que pueden utilizar el
estándar XML para consensuar un lenguaje común que permita transformar los
documentos no estructurados en estructuras procesables por un sistema.
Cuando hablamos de un documento nos referimos no solo al concepto tradicional de
documento en papel o soporte electrónico sino a todos los tipos de documentos actuales:
páginas Web, correo electrónico, gráficos vectoriales, transacciones de comercio
electrónico, etc. Un documento XML es un documento que puede ser leído y entendido Desarrollo
14
por una persona "human readable system" y a la vez puede ser procesado por un sistema
para extraer información "machine readable system". [3]
Ventajas
Es extensible: Después de diseñado y puesto en producción, es posible extender
XML con la adición de nuevas etiquetas, de modo que se pueda continuar
utilizando sin complicación alguna.
El analizador es un componente estándar, no es necesario crear un analizador
específico para cada versión de lenguaje XML. Esto posibilita el empleo de
cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se
acelera el desarrollo de aplicaciones.
Si un tercero decide usar un documento creado en XML, es sencillo entender su
estructura y procesarla. Mejora la compatibilidad entre aplicaciones.
Herramientas utilizadas
Para el desarrollo de un software es necesario utilizar algunas herramientas que permiten
la creación de este y que suelen hacer el trabajo más fácil.
Visual Studio 2005
Microsoft Visual Studio es un entorno de desarrollo integrado (IDE) que provee un
conjunto de herramientas de desarrollo diseñadas para ayudar a los desarrolladores de
software (tanto si son principiantes como profesionales con experiencia) a enfrentarse a
los desafíos complejos y crear soluciones innovadoras. Cada día, los desarrolladores de
software se abren camino a través de duros problemas para crear software que suponga
una diferencia en la vida de los demás. La función de Visual Studio es mejorar el proceso
de desarrollo para hacer que el trabajo de lograr esos adelantos sea más fácil y
satisfactorio.
Soporta varios lenguajes de programación tales como Visual C++, Visual C#, Visual J#,
ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones
necesarias para muchos otros.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web,
así como servicios web en cualquier entorno que soporte la plataforma .NET. Así se Desarrollo
15
pueden crear aplicaciones que se intercomuniquen entre estaciones de trabajo, páginas
web y dispositivos móviles. [4]
Los desarrolladores de este trabajo escogieron esta herramienta porque:
Aumenta la productividad y la calidad gracias a herramientas integradas y
conocidas.
Implementa y protege la infraestructura y las aplicaciones web críticas, así como
ofrece compatibilidad entre ellas.
Reduce los costos mediante una mejor visibilidad del proceso de desarrollo.
Ofrece mejor capacidad de predicción y planeación mediante la compatibilidad
integrada con procesos y metodologías.
Tienen un conocimiento previo de la misma y tienen experiencia en el manejo de
esta.
Lenguaje de programación
C Sharp (C#)
Microsoft Visual C# 2005 es un lenguaje de programación diseñado para crear una amplia
gama de aplicaciones que se ejecutan en .NET Framework. C# es simple, eficaz, con
seguridad de tipos y orientado a objetos. Con sus diversas innovaciones, C# permite
desarrollar aplicaciones rápidamente y mantiene la expresividad y elegancia de los
lenguajes de tipo C. [5]
Visual Studio admite Visual C# con un editor de código completo, plantillas de proyecto,
diseñadores, asistentes para código, un depurador eficaz y fácil de usar, además de otras
herramientas. La biblioteca de clases .NET Framework ofrece acceso a una amplia gama
de servicios de sistema operativo y a otras clases útiles y adecuadamente diseñadas que
aceleran el ciclo de desarrollo de manera significativa.
En la actualidad existen los siguientes compiladores para el lenguaje C#:
Microsoft.NET framework SDK incluye un compilador de C#, pero no un IDE.
Microsoft Visual Studio .NET, IDE por excelencia de este lenguaje, versión 2002,
2003, 2005 y 2008.
#develop, es un IDE libre para C# bajo licencia LGPL, muy similar a Microsoft
Visual C#.Desarrollo
16
Mono, es una implementación GPL de todo el entorno .NET desarrollado por
Novell. Como parte de esta implementación se incluye un compilador de C#.
Delphi 2006, de Borland Software Corporation.
dotGNU Portable.NET, de la Free Software Foundation
Se escoge como lenguaje de programación por las ventajas que ofrece, las cuales se
enuncian a continuación:
Declaraciones en el espacio de nombres: al empezar a programar algo, se puede
definir una o más clases dentro de un mismo espacio de nombres.
Tipos de datos: en C# existe un rango más amplio y definido de tipos de datos que
los que se encuentran en C, C++ o Java.
Atributos: cada miembro de una clase tiene un atributo de acceso, que puede ser
de tipo público, protegido, interno, interno protegido y privado.
Pase de parámetros: aquí se puede declarar a los métodos para que acepten un
número variable de parámetros. De forma predeterminada, el pase de parámetros
es por valor, a menos que se use la palabra reservada ref, la cual indica que el
pase es por referencia.
Métodos virtuales y redefiniciones: antes de que un método pueda ser redefinido
en una clase base, debe declararse como virtual. El método redefinido en la
subclase debe ser declarado con la palabra override.
Propiedades: un objeto tiene intrínsecamente propiedades, y debido a que las
clases en C# pueden ser utilizadas como objetos, C# permite la declaración de
propiedades dentro de cualquier clase.
Inicializador: un inicializador es como una propiedad, con la diferencia de que en
lugar de un nombre de propiedad, un valor de índice entre corchetes se utiliza en
forma anónima para hacer referencia al miembro de una clase.
Control de versiones: C# permite mantener múltiples versiones de clases en forma
binaria, colocándolas en diferentes espacios de nombres. Esto permite que
versiones nuevas y anteriores de software puedan ejecutarse en forma simultánea.Desarrollo
17
Aunque tiene muchas ventajas también tiene sus desventajas, entre ellas se encuentran:
Se tiene que conseguir una versión reciente de Visual Studio .NET.
Se debe contar con algunos requerimientos mínimos del sistema para poder
trabajar adecuadamente tales como: contar con Windows NT 4 o superior, tener
alrededor de 4 gigas de espacio libre para la pura instalación, etc.
Además para quien no está familiarizado con ningún lenguaje de programación, le
costará más trabajo iniciarse en su uso, y si se quiere consultar algún tutorial más
explícito sobre la programación en C# se tendría que contar además con una
conexión a Internet. [6]
Problema y situación problémica
La Federación Cubana de Béisbol Amateur lleva a cabo una serie de procesos vinculados
al béisbol. La anotación de estos juegos es uno de los procesos mas importantes que se
desarrollan, pues es la base de la recopilación de estadísticas  que son un aspecto
fundamental para este deporte. La aplicación actual que se utiliza para realizar la
anotación no cumple con las necesidades actuales del béisbol en Cuba, lo que forma
parte de la situación problémica del trabajo
El sistema actual que se encarga de la anotación de juegos de béisbol está desarrollado
en MS-DOS, porque en el momento en que se realizó, en Cuba no existía un desarrollo
tecnológico como el que existe en la actualidad. Es necesario mejorar la interfaz que
posee esta aplicación para permitir que los usuarios del mismo se sientan atraídos y le
sea más fácil cumplir con su trabajo.
Es importante también permitir que los juegos se anoten lanzamiento por lanzamiento, lo
que lograría recopilar mayor cantidad de información estadística acerca de los lanzadores
del encuentro, algo que actualmente no se hace, pues solamente se insertan datos en la
aplicación cuando se completa una jugada. Además es necesario que el anotador pueda
hacer su trabajo de una forma más rápida y eficiente, esto se lograría eliminando la forma
en que los anotadores insertan una jugada en el sistema.
Actualmente lo hacen mediante un código, lo que provoca que su trabajo sea más
engorroso y los obliga a conocer profundamente el Sistema Codificado de Anotación
Cubano.Desarrollo
18
Propuesta del sistema
Para dar solución a la problemática planteada será implementado un sistema de
anotación que contará con un conjunto de características que optimizarán las
funcionalidades de la aplicación existente. Dentro de las nuevas mejoras se encuentra la
implementación de una interfaz de usuario amigable, facilitando la interacción del usuario
con la aplicación, ya que el sistema anterior estaba desarrollado en MS-DOS y restringía
de forma considerable el uso de la misma. También se incorpora la funcionalidad de
anotar lanzamiento por lanzamiento y no jugada por jugada como se anotaba
anteriormente; esta nueva funcionalidad permite obtener un conjunto de estadísticas,
como: conocer la cantidad de lanzamientos que efectúa un pitcher, los tipos de
lanzamientos que realiza, la velocidad y la zona donde cayó cada lanzamiento realizado
durante el encuentro. La anotación de las jugadas ocurridas durante el encuentro será
mostrada al anotador de forma descriptiva, el anotador escoge la jugada correcta y  el
sistema se encarga de codificar y guardar la información, por lo que se logra una mayor
eficiencia y veracidad en la recopilación de los datos estadísticos.
El sistema debe ser desplegado en cada estadio del país con el propósito de anotar todos
los partidos que se lleven a cabo en cada jornada de juegos. Debe contar con una
conexión de red para poder acceder al servidor central mediante un Servicio Web,
incorpora así la funcionalidad de salvar todos los datos estadísticos recopilados durante el
juego en un fichero .XML, que posteriormente será enviado al servidor.
El proceso de envío del fichero es realizado automáticamente por la aplicación mientras
se desarrolle el partido, actualizando la información que se encuentra en el servidor. En
caso de no haber conexión en un momento dado, los datos se seguirán guardando en el
fichero .XML y se continuará haciendo peticiones de conexión al servidor, y en cuanto se
restablezca la conexión se envía el fichero y se actualiza la información en el servidor.
Esta nueva funcionalidad abre paso a la posibilidad de crear una aplicación Web de
seguimiento de juego en tiempo real mejorando así las prestaciones del nuevo sistema de
anotación.Conclusiones
19
CONCLUSIONES
Con el desarrollo del trabajo en cuestión se han cumplido los objetivos planteados en el
mismo. Como resultado, se ha obtenido el Sistema de Anotación de Juegos de Béisbol
que ayudará de manera ostensible la labor de anotación que lleva a cabo la FCBA en
todos los juegos desarrollados en la Serie Nacional y otros eventos que tienen lugar en
Cuba. Para la concepción de la aplicación fue necesario realizar todo un Proceso de
Desarrollo de Software que condujo a la obtención de un producto que cumple las
expectativas de la FCBA.
El uso del sistema en cuestión permite a los anotadores desarrollar su trabajo de una
forma más amena y eficiente, sin la necesidad de conocer el código de anotación
profundamente. Provee la nueva posibilidad de anotar lanzamiento por lanzamiento y las
jugadas se insertan mediante una descripción lógica de los sucesos ocurridos durante el
desarrollo de las mismas. La codificación es realizada automáticamente por la propia
aplicación, minimizando la posibilidad de la existencia de errores a la hora de anotar las
jugadas.
El sistema cuenta con las siguientes facilidades:
Muestra las estadísticas de los jugadores que participan o participaron durante el
juego.
Permite anotar lanzamiento por lanzamiento.
El usuario debe autenticarse antes de usar el sistema por lo que impide que
personal ajeno a la FCBA pueda acceder a la misma.
Lleva el conteo de los lanzamientos realizados por cada pitcher que participa en el
juego.
Muestra un marcador en tiempo real que visualiza el resultado parcial del
encuentro.
Todas las ventajas anteriormente descritas hacen del sistema implementado una solución
factible que favorece al proceso de anotación de juegos de béisbol, constituyendo una
herramienta de trabajo para los anotadores, la cual facilita su desempeño profesional y es
el reflejo de una nueva generación de aplicaciones que fomentan el desarrollo del béisbol
en Cuba.Bibliografía
20
REFERENCIAS BIBLIOGRÁFICAS
1. Innova, Grupo Soluciones. GSInnova. 2007; http://www.rational.com.ar.
2. Echarte, Francisco. eslomas.com. EsLoMas. 2008; http://www.eslomas.com.
3. vico open modeling, s.l. Vico.org: Open Modeling. Vico.org. 2008; http://www.vico.org.
4. Corporation, Microsoft. msdn. msdn. 2008; http://msdn.microsoft.com.
5. Corporation, Microsoft. msdn. msdn. 2009; http://msdn.microsoft.com.
6. LWP. LWP. 2009; http://www.lawebdelprogramador.com.
BIBLIOGRAFÍA
Pérez Julien, José y Mendez Rodríguez, Efrain. Reglas Oficiales de Béisbol 2008.
Ciudad de la Habana: s.n., 2008.
González Valnuerdi, Eduardo. Sistema Codificado de Anotación Béisbol. Manual.
Ciudad de la Habana: CINID-INDER, 1992.
Merelo, J. J. Geneura. [En línea] http://geneura.ugr.es/~jmerelo/tutoriales/csharp/.
Echarte, Francisco. eslomas.com. EsLoMas. [En línea] 2008. http://www.eslomas.com.
W3C. World Wide Web Consortium. [En línea]
http://www.w3c.es/divulgacion/guiasbreves/tecnologiasXML.
LWP. La Web del Programador. [En línea] http://www.lawebdelprogramador.com/.
djk. Devjoker. [En línea] http://www.devjoker.com/contenidos/Articulos/280/DesencriptarTexto-y-variables-con-NET-VB-y-C-(segunda-parte).asp

No hay comentarios:

Publicar un comentario