cobol en la vida del profesionista informático - Biblioteca, FES-C

Anuncio
UNIVERSIDAD NACIONAL AUTÓNOMA DE
MÉXICO
FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN
LA APLICACIÓN DEL LENGUAJE COBOL EN LA INSTITUCIÓN
FINANCIERA DENOMINADA BANCOMER:
TRABAJO PROFESIONAL
QUE PARA OBTENER EL TÍTULO DE:
LICENCIADO EN INFORMÁTICA
P R E S E N T A:
ROCÍO MAGDALENA GIL RAMÍREZ
ASESOR: L. D. IMELDA MÁRQUEZ ALVARADO
CUAUTITLÁN IZCALLI, ESTADO DE MÉXICO
2014
1
AGRADECIMIENTOS
“Somos todos esclavos de nuestro personaje, creado primeramente por la familia,
segundo por la sociedad y tercero por la cultura. El camino de la transformación es liberarse
de la esclavitud. Detrás de mis mil máscaras soy auténtico.” – Alejandro Jodorowsky.
Mi vida se ha colmado de personas inmensamente especiales, sería una pena no
nombrarlos a todos, sin embargo si alguien me hace falta mencionar sabe que de corazón
agradezco su apoyo y cariño.
Primero que nada a mi Madre, mujer de carácter fuerte y con ánimo de lucha, ella es
quién me ha dado las bases para salir adelante, combatir y jamás rendirme. Gracias a ti
Magdalena Ramírez por tus consejos, tus regaños, tus experiencias compartidas, tus sacrificios
y valores, pero ante todo por cada día de motivación que me has regalado para poder
convertirme en la mujer que soy ahora. Estaré eternamente agradecida con la vida por tenerte a
ti siempre. Te amo Mami.
A mi Padre, siempre conté con tu apoyo para poder continuar mi educación. Gracias
por ser un ejemplo de arduo trabajo y responsabilidad.
A mis hermanos: Juanito, Erick y David, ustedes son el pilar de mi vida. Gracias por
cuidarme, regañarme y darme como ejemplo cada una de sus experiencias para enriquecer mi
existencia. Gracias gordo por ser un ejemplo de que todo en esta vida se puede mientras tengas
la dedicación y el coraje de hacerlo. Gracias Negro porque a pesar de tener el papel de
hermano mayor siempre has sido un amigo para mí y un mayor ejemplo de virtudes y
endereza, de que bajo cualquier circunstancia se puede salir adelante. Gracias David, eres un
ejemplo de que la familia siempre estará ahí no importando el escenario.
2
A mis amigos de vida: Esmeralda y Griselda incluso en la lejanía siempre estuvieron
cerca. Carlos, Vlad, Andrés, Alejandra, David, Mary, Sakui, Karen y José Luís, por cada
momento, cada sonrisa, cada consejo, cada celebración, pero ante todo por seguir conmigo en
este camino de aprendizaje y felicidad. Erik, Alejandro, Jesús y Laura amigos de trabajo no
solo laboral sino vivencial, agradezco todo lo que me han compartido y deseo poder continuar
en su vida para sembrar y cosechar mejores experiencias. Naye y Lali han sido para mí un
gran ejemplo de mujeres trabajadoras, inteligentes y amorosas, gracias.
A mis jefes: Mirelle y Agustina, por brindarme la oportunidad de crecimiento y
desarrollo profesional que sin duda fue el despunte para una vida de grandes logros, ¡Gracias
Jefas! A Softtek por confiar en mí y enseñarme. Agustín, Miguel y Enrique Medina, por la
confianza y apoyo que en tan poco tiempo me han motivado a querer dar más de mí
profesional y personalmente.
A todos mis profesores, quienes con su dedicación y vocación me transmitieron no sólo
sus conocimientos sino también valores y virtudes para ser mejor persona cada día.
Particularmente agradezco a la L. D. Imelda Márquez por apoyarme en la realización de este
trabajo profesional.
Y por último, a ese ser supremo que me ha permitido estar en este lugar y quien me
sigue permitiendo vivir y disfrutar de cada uno de ustedes.
¡Gracias Vida!
3
ÍNDICE GENERAL
Introducción
9
Objetivo
10
Capitulo 1. Marco de referencia
11
LAS TIC
11
INFORMÁTICA
12
ANALISIS DE SISTEMAS
12
PROCESO DE DESARROLLO DE SOFTWARE
12
LENGUAJE DE PROGRAMACIÓN
14
ENTIDAD FINANCIERA
15
TARJETA DE CRÉDITO
16
SERVICIOS DE CONSULTORÍA (OUTSOURCING)
16
Capítulo 2. El lenguaje cobol
18
Reseña histórica
18
IMPORTANCIA
21
CARACTERÍSTICAS
23
ESTANDARES
25
DESARROLLO DE UN PROGRAMA COBOL
25
Divisiones de un programa cobol
28
Tipos de datos
33
Instrucciones imperativas y condicionales
39
Temas relacionados al uso del lenguaje cobol
4
48
48
PROGRAMACIÓN ESTRUCTURADA
Técnicas de la programación estructurada
JCL (JOB CONTROL LANGUAGE)
48
54
Conceptos generales
55
Sintaxis general de un jcl
55
Utilerías jcl
64
Tipos de archivos
67
DB2 (DATA BASE II)
70
Características de DB2
70
Tablas
70
SQL (LENGUAJE DE CONSULTA ESTRUCTURADO)
72
Componentes del SQL
73
Uso de sql en un programa COBOL
77
Estándares de programación SQL
79
Capítulo 3. Outsourcing e institución financiera
81
Valores corporativos Softtek S. A. de C. V.
81
RESEÑA HISTÓRICA
81
DESARROLLO DEL CAPITAL HUMANO
82
CAPACITACIÓN
82
FABRICA DE SOFTWARE
84
SERVICIOS QUE OFRECE
86
PRINCIPALES COMPETIDORES
87
Desarrollo de actividades en la entidad bancaria
5
90
90
ÁREA DE DISEÑO Y DESARROLLO
Organigrama del área de diseño y desarrollo
91
MEDIOS DE PAGO
91
Organigrama
92
Funciones como D&D
93
Conclusiones
97
Referencias
100
DIGITALES
100
BIBLIOGRAFICAS
101
Glosario
102
6
ÍNDICE DE IMAGENES
Imagen 1. Ejemplo de áreas de codificación.
27
Imagen 2. Ejemplo de áreas de codificación (continuación).
28
Imagen 3. Ejemplo de la estructura de la Procedure Division.
33
Imagen 4. Ejemplo de campos compuestos.
36
Imagen 5. Definición PERFORM.
45
Imagen 6. Definición sentencia UNTIL.
45
Imagen 7. SEQUENCE
49
Imagen 8. IF THEN ELSE
49
Imagen 9. CASE
50
Imagen 10. WHILE DO
50
Imagen 11. SALIDA ANORMAL
50
Imagen 12. Ejemplo de árbol de módulos.
52
Imagen 13. Ejemplo de definición de archivo.
60
Imagen 14. Uso de parametros de la sentencia DISP
62
Imagen 15. Relación DB2, SQL y Terminal
73
Imagen 16. Modelo de relación entre FSW e Institución Bancaria.
85
Imagen 17. La gráfica representa el porcentaje de empresas que contratarían
consultoría en el año.
87
Imagen 18. Dentro del mismo estudio se definió el top de las 3 mejores consultoras, y
este fue el resultado.
89
7
INDICE DE TABLAS
Tabla 1. Codificación del verbo READ y definición de archivos de entrada.
42
Tabla 2.Codificación del verbo WRITE y definición de archivos de salida.
42
Tabla 3. Ejemplos de uso del verbo MOVE.
43
Tabla 4. Definición de verbos aritméticos
44
Tabla 5. Manejo de sentencia PARM
59
Tabla 6. Ejemplo de versiones de un archivo GDG
68
Tabla 7.Comandos DLL
73
Tabla 8. Comandos DML.
74
Tabla 9. Cláusulas de SQL.
74
Tabla 10. Operadores lógicos.
75
Tabla 11. Operadores de comparación.
75
Tabla 12. Funciones SQL de agregado.
76
Tabla 13. Ejemplo de comunicación entre COBOL y SQL por medio de variables
HOST.
78
Tabla 14. Relación entre variables host y campos de una tabla.
8
78
INTRODUCCIÓN
Hoy en día existen gran cantidad de lenguajes de programación, unos orientados a
objetos, otros más orientados a Bases de Datos, y otros tantos dirigidos al desarrollo web, los
cuales dan la apariencia de haber descontinuado por completo el uso de uno de los lenguajes
más antiguos que existe COBOL; Sin embargo la nobleza de dicho lenguaje brinda una gran
cantidad de ventajas al ser utilizado, ventajas que le permiten seguir compitiendo como una de
las mejores opciones para el manejo de la información por lotes en diversas instituciones y
empresas.
A su vez, a la fecha las Entidades Educativas, dedicadas a la enseñanza de las
denominadas TICS “Tecnologías de la Información y Comunicación”; retoman como mera
historia lo relativo al lenguaje que nos ocupa, en forma vaga e imprecisa, haciendo denotar
que el mismo ha quedado, como ya se ha mencionado en las líneas que anteceden, obsoleto.
Sin embargo habrá que acotar que existen hoy en día empresas de consultoría
dedicadas a brindar capacitación para aprender el lenguaje COBOL, lo que deja visualizar que
hoy por hoy dicho lenguaje sigue siendo un instrumento que integra parte de las TICS,
abriendo un sendero dentro de la gran gama de oportunidades de crecimiento laboral y
profesional.
9
OBJETIVO
El presente trabajo tiene como objetivo mejorar la visión que se tiene hoy en día en
relación al aprendizaje del lenguaje COBOL, sirviendo como manual para que las nuevas
generaciones de la Licenciatura en informática conozcan su funcionamiento y a su vez darles
una opción más de oferta laboral, el dedicarse a ser desarrolladores en COBOL.
10
CAPITULO 1. MARCO DE REFERENCIA
LAS TIC
Las tecnologías de la información y la comunicación (TIC), a veces denominadas
nuevas tecnologías de la información y la comunicación (NTIC) son un concepto muy
asociado al de informática.
«Las tecnologías de la información y la comunicación no son ningún remedio ni
fórmula mágica, pero pueden mejorar la vida de todos los habitantes del planeta. Se dispone
de herramientas para llegar a los Objetivos de Desarrollo del Milenio, de instrumentos que
harán avanzar la causa de la libertad y la democracia y de los medios necesarios para propagar
los conocimientos y facilitar la comprensión mutua1».
Las TIC conforman el conjunto de recursos necesarios para manipular la información:
los ordenadores, los programas informáticos y las redes necesarias para convertirla,
almacenarla, administrarla, transmitirla y encontrarla.
Se pueden clasificar las TIC en: las redes, los terminales y los servicios.
En general como concepto podemos decir que las tecnologías de la información y la
comunicación, también conocidas como TIC, son el conjunto de tecnologías desarrolladas
para gestionar información y enviarla de un lugar a otro. Abarcan un abanico de soluciones
muy amplio. Incluyen las tecnologías para almacenar información y recuperarla después,
enviar y recibir información de un sitio a otro, o procesar información para poder calcular
resultados y elaborar informes.
1
Kofi Annan, Secretario general de la Organización de las Naciones Unidas, discurso inaugural de la primera fase
de la WSIS, Ginebra 2003.
11
INFORMÁTICA
El Diccionario de la real Academia Española, la define como el conjunto de
conocimientos científico y técnico, que hacen posible el tratamiento automático de la
información por medio de ordenadores.
Así mismo como desarrollar sistemas de información para agilizar la toma de
decisiones y proponer alternativas que ayuden a impulsar el desarrollo global del área2.
ANALISIS DE SISTEMAS
El análisis de sistemas se puede definir más directamente como la aplicación del
método científico a problemas relacionados con sistemas complejos. Es un conjunto de teorías
y técnicas que sirve para estudiar, describir y hacer predicciones acerca de sistemas complejos,
y que frecuentemente hace uso de la matemática avanzada, procedimientos estadísticos y
computadoras.3
PROCESO DE DESARROLLO DE SOFTWARE
Es también denominado ciclo de vida del desarrollo de software es una estructura
aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el
establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe
un enfoque diferente para diferentes actividades que tienen lugar durante el proceso. Algunos
autores consideran un modelo de ciclo de vida un término más general que un determinado
proceso para el desarrollo de software.
Para entenderlo mejor se mencionan diferentes conceptos:
2
Mejía, María Elaine, Arqhys Arquitectura, 2013, http://www.arqhys.com/general/concepto-deinformatica.html.
3
Docencia UAM, Capítulo 2. Conceptos Básicos del análisis de sistemas y simulación. 2014.
12
“Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación
y el mantenimiento del software4”.
“Un marco de referencia que contiene los procesos, las actividades y las tareas
involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software,
abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su
uso”5.
En resumen El ciclo de vida del software es una sucesión de estados o fases por los
cuales pasa un software a lo largo de su "vida". Crear un ciclo de vida permite detectar errores
más rápido, mejorar la calidad del software, estimar los plazos de implementación y sus
costos, etc.
Básicamente las bases a seguir son:
1.- Definición o desarrollo del concepto: lo que el software hará
2.- Desarrollo técnico: creación del software
3.- Uso u operación: uso del software
4.- Evolución: mantenimiento y evolución del software
Esta clasificación no es estricta, puede haber más o menos etapas de acuerdo al nivel
de detalle conceptual que se desee. Además las etapas no necesariamente se realizan en ese
orden ni de forma serial.
4
C.C. Alberto Rozenfarb, Ciclo de Vida del SW y el BI,
http://www.uai.edu.ar/ciiti/2007/rosario/ponencias/Bloque2/Rosario_Businiess%2520Intelligence_Rozenfarb.p
pt, Concepto definido por IEEE 1074.
5
C.C. Alberto Rozenfarb, Ciclo de Vida del SW y el BI,
http://www.uai.edu.ar/ciiti/2007/rosario/ponencias/Bloque2/Rosario_Businiess%2520Intelligence_Rozenfarb.p
pt, Concepto definido por ISO 12207-1.
13
LENGUAJE DE PROGRAMACIÓN
Un lenguaje de programación es aquel elemento dentro de la informática que nos
permite crear programas mediante un conjunto de instrucciones, operadores y reglas de
sintaxis; que pone a disposición del programador para que este pueda comunicarse con los
dispositivos hardware y software existentes.6
Los lenguajes de programación se pueden clasificar atendiendo a varios criterios:

Según su nivel de abstracción.
o
Lenguajes Maquina: están escritos en lenguajes directamente
inteligibles por la maquina (computadora), ya que sus instrucciones son
cadenas binarias (0 y 1).
o
Lenguajes de bajo nivel: son lenguajes de programación que se
acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel
por excelencia es el código máquina.
o
Lenguajes de alto nivel: son normalmente fáciles de aprender
porque están formados por elementos de lenguajes naturales, como el inglés.

Según la forma de ejecución.
o
Lenguajes compilados: naturalmente, un programa que se escribe
en un lenguaje de alto nivel también tiene que traducirse a un código que pueda
utilizar la máquina.
o
Lenguajes interpretados: se puede también utilizar una
alternativa diferente de los compiladores para traducir lenguajes de alto nivel.
En vez de traducir el programa fuente y grabar en forma permanente el código
objeto que se produce durante la compilación para utilizarlo en una ejecución
6
M.C Luis Arvizu Amezcua, Tecnologías para desarrollo de aplicaciones web. Un caso de uso. 2013
14
futura, el programador sólo carga el programa fuente en la computadora junto
con los datos que se van a procesar.

Según el paradigma de programación: un paradigma de programación
representa un enfoque particular o filosofía para la construcción del software. No es
mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la
situación un paradigma resulta más apropiado que otro.
o
El paradigma imperativo o por procedimientos es considerado el
más común y está representado, por ejemplo, por el C o por BASIC.
o
El paradigma funcional está representado por la familia de
lenguajes LISP (en particular Scheme), ML o Haskell.
o
El paradigma lógico, un ejemplo es PROLOG.
o
El paradigma orientado a objetos. Un lenguaje completamente
orientado a objetos es Smalltalk.
ENTIDAD FINANCIERA7
En general, cualquier entidad que ofrece servicios financieros, sea cual sea la
modalidad, a su clientela. Esos servicios financieros van desde la intermediación pura a
labores de mediación, pasando por el traslado de órdenes a los diferentes mercados (no hay
que olvidar que los inversores no pueden acceder directamente a los mercados sino a través de
los mediadores especializados) o servicios de asesoramiento, de seguros u otros. En definitiva,
las entidades que operan en los sistemas financieros, en cualquiera de las tres grandes áreas en
las que éstos se dividen: Área de Banca; Área de Valores y Área de Seguros.
7
López Domínguez, Ignacio, Concepto de Entidad Financiera Diccionario Económico, 2014.
15
Las entidades financieras, con una mayor o menor especialización vocacional o
normativa, intermedian la gran mayoría de los fondos generados por los sectores
empresariales, economías domésticas y administraciones públicas, cualquiera que sea su
destino (pagos, inversiones, ahorro, cobertura) y situación de las contrapartes (transacciones
domésticas y transfronterizas). Los grandes volúmenes de recursos e inversiones de numerosas
de estas entidades y la globalización de sus actividades a nivel mundial exigen cada día más
normas prudenciales de vigilancia de su solvencia y riesgos, así como la disposición de una
muy elevada calidad profesional y técnica en su gestión.
TARJETA DE CRÉDITO
Es un rectángulo de plástico numerado, que presenta una banda magnética o un
microchip, y que permite realizar compras que se pagan a futuro. Para solicitar una tarjeta de
este tipo, es necesario dirigirse a una institución financiera o entidad bancaria, la cual
solicitará al interesado una serie de documentos y garantías para asegurarse de que se trata de
una persona solvente y capaz de cumplir con sus potenciales obligaciones de pago. 8
SERVICIOS DE CONSULTORÍA (OUTSOURCING)
El Outsourcing podría definirse como: “La gestión externa de determinados servicios o
la ejecución de una obra para una empresa, mediante la celebración de un contrato entre la
empresa cliente o usuaria y una empresa auxiliar”.
Otra definición sería: “Herramienta de gestión, por la cual una organización opta por
concentrarse únicamente en su core business y no tomar parte en procesos importantes pero no
8
Definicion.de, Definición de Tarjeta de Crédito, 2014. http://definicion.de/tarjeta-de-credito/.
16
inherentes a sus actividades distintivas, para las cuales contratará a un proveedor de servicios
especializado y eficiente que, a la larga, se convertirá en un valioso socio de negocios.”9
9
Dr. Javier, Dolorier Torres, El outsourcing y el derecho laboral en el Perú. 2014.
17
CAPÍTULO 2. EL LENGUAJE COBOL
RESEÑA HISTORICA
El lenguaje COBOL nació de la colaboración conjunta de los fabricantes de
ordenadores y de los usuarios, en cooperación con el Departamento de los Estados Unidos.
Este lenguaje se describió por primera vez en un informe dirigido a la Conferencia sobre
lenguajes de Sistemas de Proceso de Datos (CODASYL: Conference of Date Systems
Languages), publicado por el Departamento de Imprenta del Gobierno de los Estados Unidos
en Abril de 1960.
Un extracto de dicho informe se presenta a continuación: “Toda aquella empresa y
organismo al que interese reproducir en su totalidad o por partes el informe y las
especificaciones COBOL iniciales, haciendo uso de ideas extraídas de este informe o
utilizándolo como base para la creación de un manual de instrucción, o con cualquier otro fin,
queda expresamente autorizada para hacerlo así. No obstante, se requiere a las referidas
empresas u organismos para que reproduzcan en el prólogo de su manual el contenido de esta
sección. Sin embargo, aquellas que solamente utilicen un breve pasaje de dichas
especificaciones, como en el caso de una reseña bibliográfica, sólo estarán obligadas a
mencionar la palabra COBOL como reconocimiento e identificación de su origen, pero sin que
sea preciso reproducir esta sección en su totalidad”.
COBOL es un lenguaje industrial y no es propiedad de ninguna sociedad o grupo de
sociedades, ni de ningún organismo o grupo de organismos.
Hablando más en concreto de la historia del leguaje COBOL es necesario saber que
hace poco más de 50 años cada ordenador era concebido y creado con su propio sistema
operativo y de programación. COBOL nació por el deseo de desarrollar un lenguaje de
18
programación que fuera aceptado por cualquier marca de ordenador. Fue así como, en Mayo
de 1959, en Estados Unidos se reunió una comisión denominada CODASYL (Conference On
Data System Languages), compuesta por fabricantes de ordenadores, usuarios y el
Departamento de Defensa de Estados Unidos como ya ha sido mencionado; donde se dieron
las primeras ideas de COBOL (Common Business Oriented Language).
El primer nombre que se le dio fue: COBOL-60 por ser ese el año en que vio la luz. A
partir de aquí, su evolución no paró, en 1968 salió la primera versión ANSI y posteriormente
en 1989 se ampliaron sus funciones matemáticas, finalizando el estándar actual más usado,
conocido como COBOL-ANSI. Hasta llegar a la versión COBOL ENTERPRISE lanzada en
1991, usada en sistemas HOST.
Durante más de 5 décadas COBOL ha dominado el campo de diseño de aplicaciones
para negocios. A través de todo este tiempo se ha visto nacer nuevos lenguajes como: PL1,
PASCAL, C++; que han querido, sin éxito, desplazar a COBOL. En la actualidad existen solo
2 lenguajes que se han convertido en serios rivales: JAVA y Visual Basic.
COBOL no fue concebido para cálculos complejos matemáticos o científicos (de hecho
solo dispone de comandos para realizar los cálculos más elementales) como otros lenguajes de
programación, aunque si posee un elevado grado de precisión y velocidad del cálculo
numérico, pudiendo manejar hasta 30 posiciones decimales. Su empleo es más apropiado para
el proceso de datos en aplicaciones comerciales y la utilización de grandes cantidades de ellos.
Aun cuando no es el único lenguaje orientado para éste propósito, si ha sido el más utilizado
en toda la historia.
Si prestamos atención en el significado del nombre, "lenguaje común orientado a los
negocios", podemos darnos cuenta de que el principal objetivo de éste lenguaje es utilizarlo
para la gestión y administración de las empresas.
19
Al principio, los mainframes eran los tipos de ordenador que las grandes empresas
elegían, sobre todo las del sector financiero, con sus propios sistemas operativos y sus propios
compiladores de COBOL. Estos fueron consolidando a este como un lenguaje perfecto para
conseguir sus propósitos por su robustez, su fiabilidad y su perfecta adaptación a las
necesidades de gestión.
COBOL, es un lenguaje independiente de la plataforma en la que se ejecute, por lo
tanto es posible ejecutar el mismo programa sin modificar nada en cientos de sistemas
diferentes como Windows, Unix, MS-Dos, Linux, Solaris, entre muchos más. Es un lenguaje
que puede comunicarse a la perfección con cualquier base de datos existente en el mercado. Se
puede adaptar a la tecnología cliente-servidor y puede estar presente en la web. En definitiva,
se trata de un lenguaje capaz de todo.
Cuando los sistemas operativos empezaron a independizarse de las máquinas, fue
entonces cuando los fabricantes de compiladores COBOL comenzaron su expansión.
Empresas como: Liant, Acucorp, Merant, Fujitsu, Nigsun, IBM o Computer
Associates, fueron quienes permitieron a los programadores seguir programando con éste
lenguaje.
La expansión mundial de COBOL ha sido seguida por el grupo Gartner Group:
•
En 1997, estimaron que existían aproximadamente unos 300 billones de líneas
de código en todo el mundo, de las cuales el 80% estaban escritas en COBOL y el 20%
restante en todos los otros lenguajes.
•
En 1999 informaron de que el 50% de las nuevas aplicaciones importantes de
misión crítica seguían estando diseñadas en COBOL.
20
•
Para 2002 previeron que existieran dos millones de programadores de COBOL
a lo largo de todo el mundo comparados con el millón de programadores de Java, o el millón
de programadores de C++.
•
En ese entonces se calculó que en 2004/2005 aún el 15% de las aplicaciones
importantes estén diseñadas en COBOL, y que el 80% del total tengan extensiones a librerías
u otros recursos diseñados en COBOL.
La mayoría se sorprende cuando se da cuenta de que las cifras se inclinan claramente a
favor de COBOL en el dominio del mercado. Hay quien en el entorno de algunos lenguajes
trataría de convencernos de que la mayoría de la producción en el mundo se realiza en Java, C,
C++ o Visual Basic y que solo un pequeño porcentaje está hecho en COBOL, pero la realidad
es muy diferente.
IMPORTANCIA
El lenguaje de programación COBOL está orientado hacia la resolución de problemas
de gestión. Su propia evolución y la de las empresas, ha ampliado su campo de acción y su
aplicación se ha extendido desde la simple utilización para resolver cualquier problema de
facturación, hasta cualquier tipo de problema de gestión de una empresa (gestión de personal,
gestión de aprovisionamientos, etc.).
La característica fundamental de los problemas de gestión radica en el tratamiento de
grandes volúmenes de datos a los que se les aplican operaciones aritméticas, generalmente
sencillas, para obtener los resultados deseados.
En contraposición, los problemas matemático-científicos se caracterizan por tratar poco
volumen de datos que deber ser sometidos a complejos cálculos. Es obvio decir que existen
21
problemas mixtos o intermedios. Ni bajo ni elevado número de datos. Ni sencillos ni
complicados cálculos.
El COBOL está orientado fundamentalmente al primero y tercero de los tres tipos de
problemas expuestos, y puede resolver algunos tipos particulares del segundo, aunque existen
otros lenguajes más adecuados para estos fines, como FORTRAN.
COBOL es un lenguaje de programación que es común a la mayoría de los
ordenadores. Es decir, la mayoría de los fabricantes de ordenadores han diseñado sus
máquinas para aceptar un compilador de COBOL de forma tal que un mismo programa
COBOL puede ser compilado de una ordenador IBM sistema 4341 o en un ordenador
UNIVAC serie 1100, o en un ordenador Siemens 7700, o en un H W-B serie 600, o en muchos
otros, con algunas pequeñas variaciones de uno a otro.
La universidad del COBOL permite, por consiguiente, a los usuarios de ordenadores
una gran flexibilidad, un detalle que es conveniente resaltar para enfatizar en la importancia
del tema en cuestión.
El COBOL es un lenguaje similar al inglés. Todas sus instrucciones se codifican
utilizando palabras inglesas en lugar de códigos más o menos complejos. Para sumar números,
por ejemplo, se utiliza la palabra ADD. También las reglas de programación en COBOL son
análogas a muchas reglas de escritura del inglés, lo que hace que sea un lenguaje de muy fácil
aprendizaje, otra característica de gran importancia.
Por otro lado, la prueba y puesta a punto de los programas COBOL se requiere mucho
menos tiempo que en la de los programas escritos en otros lenguajes.
La semejanza del COBOL con el inglés, aparte de facilitar su escritura, hace muy fácil
su lectura, de tal forma que algunos programas pueden ser fácilmente comprendidos por
personas profanas en proceso de datos.
22
Sencillamente COBOL está diseñado para desarrollar aplicaciones de Negocio, es por
ello que es el lenguaje más utilizado en el sistema financiero mexicano, de ello se hablará más
adelante.
En resumen, en COBOL se puede, como ocurre con cualquier lenguaje, expresar una
misma idea o resolver un mismo problema en formas muy diferentes, dependiendo del estilo
gramatical utilizado por el programador, además de ser lo suficientemente flexible para
facilitar su aprendizaje.
CARACTERÍSTICAS
COBOL es un lenguaje independiente de la plataforma donde se ejecute, además puede
comunicarse con cualquier base de datos que exista, se adapta a la tecnología cliente-servidor,
a la tecnología de eventos e inclusive puede estar en la web.
Posee un elevado grado de precisión y velocidad de cálculo numérico, con la capacidad
de manejar hasta 30 posiciones decimales.
Se emplea en aplicaciones comerciales y para el manejo de grandes cantidades de
datos. Como dato histórico es el lenguaje más utilizado en toda la historia para este propósito.
COBOL cuenta con aproximadamente 300 palabras reservadas.
COBOL tiene características principales únicas las cuales serán analizadas a
continuación.
ES UN LENGUAJE AUTODOCUMENTADO
Uno de los objetivos de COBOL es que le sea posible a cualquier individuo, no
programador, poder revisar el código y entenderlo sin conocer el lenguaje. COBOL contiene
muchos elementos estructurales ingleses, como verbos, instrucciones, secciones y divisiones.
Aunque, éste objetivo no ha sido cubierto en su totalidad; los administradores y los usuarios
23
no leen programas en COBOL, dado que son demasiado complejos para ser entendidos por
mucha gente de negocios, a pesar de la familiaridad de los elementos sintácticos. Pero el
intento ha tenido un efecto relativo, y es que COBOL es actualmente el lenguaje
autodocumentado más fácil de entender.
ES SIMPLE
No tiene punteros ni funciones o tipos definidos por el usuario, con un campo limitado
de funcionalidad. Curiosamente y a pesar de sus limitaciones, COBOL ha demostrado estar
muy bien dotado para el dominio de las aplicaciones para las que se creó (informática de
negocios). La mayoría de los programas en COBOL operan en un dominio en que la
complejidad reside más en la codificación de las reglas de los negocios a los que se destina
que en la sofisticación de las estructuras de datos o algoritmos requeridos. Y en estos casos,
COBOL resuelve los problemas con instrucciones como SORT y SEARCH.
ES PORTABLE
El estándar COBOL no pertenece a ninguna marca concreta. El Comité ANSI COBOL
legisla estándares de semántica y sintaxis que no son específicos de una marca. COBOL es
virtualmente portable a cualquier tipo de máquina, desde Windows hasta UNIX pasando por
VSE, OS/2, VMS, Unisys, DG, VM y MVS.
ES MANTENIBLE
Tiene una carrera de más de 30 años de mantenimiento de software, habilitación y
producción de soporte a nivel de empresa. Los informes del problema del año 2000 revelaron
que las aplicaciones en COBOL eran mucho más baratas de reparar que la gran mayoría de los
otros lenguajes.
24
ESTANDARES
En 1968, el Instituto Nacional de Normalización Estadounidense, en un intento de
eliminar la incompatibilidad entre diferentes versiones de COBOL, creó un estándar para el
lenguaje. Conocida como el Estándar Nacional Estadounidense COBOL, o COBOL ANS (por
sus siglas en inglés), la norma pasó por varias mejoras, incluyendo las de 1974, 1985, 1997 y
2002. Otros lenguajes similares de alto nivel incluyen los lenguajes de programación Pascal, el
BASIC (Código de Instrucción Simbólica para Todo Propósito para Principiantes) y el Ada.
El grupo de trabajo de la ANSI encargada de establecer los estándares para COBOL,
llamado J4 aprobó en Julio de 2002 el estándar COBOL ANS 2002, entre sus cosas más
resaltables está la inclusión de la programación orientada a objetos, esto pone a COBOL
nuevamente en el estado del arte de la programación.
DESARROLLO DE UN PROGRAMA COBOL
Para llevar a cabo el desarrollo de un programa COBOL existen ciertas reglas o
indicaciones que debemos seguir, en el presente capítulo se describirán dichas indicaciones
sobre los elementos, áreas de codificación y la estructura de un programa en lenguaje COBOL.
Debemos tomar en cuenta que dentro de un programa COBOL se manejan caracteres,
tales como:
•
Alfabéticos [A, …, Z]
•
Numéricos [0, …, 9].
•
Aritméticos [suma (+), resta (-), multiplicación (*), división (/)]
•
De relación [mayor que (>), menor que (<), igual a (=)]
•
De inserción [signo de pesos ($), punto decimal (.), coma (,), dejar
espacios (B)]
25
•
Para formateo [Z, 9]
•
Para Identificadores [guión (-)]
Entiéndase que un carácter es una unidad de información que corresponde
aproximadamente con una unidad o símbolo parecido, como los de un alfabeto o silabario de
la forma escrita de un lenguaje natural.
A su vez COBOL cuenta, como cualquier lenguaje de programación, con palabras
reservadas y palabras definidas por el usuario, ejemplo de ello son:
 Palabras Reservadas:
•
ACCEPT, AND, AUTHOR, CLOSE, DISPLAY, DIVISION, MOVE,
PROCEDURE, WRITE, REDEFINES, STOP, RUN, entre otras.
 Palabras definidas por el usuario.
•
Se definen combinando caracteres alfabéticos, numéricos y guiones
•
Deben comenzar con un carácter alfabético, excepto las combinaciones
usadas para los párrafos
•
No pueden iniciar ni finalizar con un guión.
•
No pueden excederse de más de 30 caracteres.
•
No pueden ser los mismos que las Palabras Reservadas
•
LINEA-DE-DETALLE, TOTAL-SALARIO, FIN-DE-ARCHIVO, etc.
COBOL cuenta con 4 áreas de codificación las cuales se describen a continuación y se
muestran en las Imágenes 1 y 2. “Ejemplo de Áreas de Codificación”:

De la posición 1 a la 6. Se pueden utilizar para los números de secuencia que permiten
ordenar rápidamente el programa.
26

Posición 7 – Área Indicadora. Se utiliza para indicar con un guión (-) la continuación
de un literal alfanumérico cuando su longitud excede más de una línea. También se
utiliza para indicar el comienzo de un comentario con el carácter especial (*).

De la posición 8 a la 11 – Margen A. Se utiliza para cabeceras de división, cabeceras
de sección, cabeceras de párrafos (inicio y fin), descripciones de nivel, nivel 01.

De la posición 12 a la 72. Se utiliza para codificar Instrucciones, Sentencias, nivel 05
en adelante.

De la posición 73 a la 80. Esta área no se utiliza para los programas COBOL, en
algunos casos sirven para escribir comentarios
Imagen 1. Ejemplo de áreas de codificación.
27
Imagen 2. Ejemplo de áreas de codificación (continuación).
DIVISIONES DE UN PROGRAMA COBOL
Para estructurar un programa COBOL se desarrolla dentro de las 4 divisiones
siguientes: Identification Division, Environment Division, Data Division y la Procedure
Division, que a su vez se dividen en secciones.
IDENTIFICATION DIVISION. Dentro de esta división se especifican los datos
generales del programa como:
PROGRAM -ID.
AUTHOR.
Nombre del programa.
Nombre del autor.
DATE-WRITTEN. Fecha en la que fue escrito.
DATE-COMPILED. Fecha en la que fue compilado. (Generalmente no se informa)
28
ENVIRONMENT DIVISION. En esta división se describen las características físicas
en donde correrá el programa, así como los archivos de entrada y salida del mismo (lógicos)
con los correspondientes archivos externos (físicos). En ella existen dos secciones:
CONFIGURATION SECTION. Identifica las computadoras en donde el programa
fuente se compilará y en donde el programa objeto correrá:
•
SOURCE-COMPUTER.
Dónde se desarrolla.
•
OBJECT-COMPUTER.
Dónde se ejecuta.
INPUT-OUTPUT SECTION. Describe las características de cada uno de los archivos
que serán usados por el programa tanto de entrada como de salida. Esto es definido en la sub
sección File Control:
•
FILE-CONTROL. Vincula a cada uno de los archivos usados en el programa
(lógicos) con los archivos externos.
Ejemplo:
SELECT nombre-interno-archivo
ASSIGN TO nombre-externo
FILE STATUS IS FS-nombre.
DATA DIVISION. Describe detalladamente los datos usados, de entrada y de salida,
reservando el espacio de memoria. Está compuesta de varias secciones que tienen una función
lógica específica. Cada una de estas secciones se puede omitir cuando no se necesita en el
programa (son opcionales).
En caso de utilizarse estas secciones, deben codificarse en el orden siguiente:
FILE SECTION. En esta sección se define la estructura de los archivos de entrada y
salida.
29
•
FD. File Description. Proporciona información acerca de la estructura
física y la identificación de cada archivo, así como el nombre del registro vinculado al
archivo.
Ejemplo:
FD nombre-interno-archivo
LABEL RECORDS ARE tipo-dispositivo [STANDARD, OMITTED]
BLOCK CONTAINS n RECORDS
[n, 0]
DATA RECORD IS REG-NAME.
01 REG-NAME
o
PIC X(longitud).
LABEL RECORDS ARE [STANDARD, OMITTED]. Es usada
para indicar si se tratan de discos ó cintas (STANDARD), o bien, si el archivo
será impreso (OMITTED).
o
BLOCK CONTAINS n RECORDS. Indica el número de
registros que pueden ser leídos con un espacio entre cada registro (no
bloqueados), o bien, en grupos con un espacio entre cada número determinado
de registros (bloqueado).

Esta definición puede ser omitida, ya que sólo puede ser
indicada para archivos bloqueados.

Se asigna 0 para que sea asignado por la maquina en el
momento de la ejecución.

o
Para archivos que serán impresos se omite.
DATA RECORD IS REG-NAME. Indica el nombre del registro
asociado al archivo, puede ser opcional.
30

La definición de este registro se encuentra en la Working-
Storage Section, en la parte de Record Layout.
WORKING-STORAGE SECTION. En esta sección se definen los registros de datos
que no son parte de los archivos pero que son utilizados y procesados dentro del programa.
En esta sección se pueden definir:

Record Layout. Estructura de cada uno de los campos que
forman los registros de los archivos tratados en el programa.

Líneas y encabezados de reporte. Definición de constantes y
variables que integran cada una de las líneas que corresponden a los títulos,
cabeceras, líneas de detalle, totales, etc., de un reporte.

Flags/Switches. Elementos de datos condicionales que indican
verdadero o falso.

Contadores/Acumuladores. Se refieren a una variable usada para
guardar el contenido del conteo o adición de elementos.

Constantes y literales. Son variables que contienen un valor fijo,
el cual no cambiará durante el proceso del programa. Por ejemplo: títulos,
etiquetas de columnas, etc.

Variables de trabajo. Son variables que se encuentran
involucradas en cálculos intermedios o en el proceso del programa. Por
ejemplo: Una variable en la que en cada cambio de registro se vaya guardando
el resultado de una operación.
31
Los datos son definidos con la cláusula PIC seguida del tipo de dato y la longitud de
este. Por ejemplo:
05
WS-NUMERO
PIC
9(25).
05
WS-NOMBRE
PIC
X(25).
05
WS-NOMBRE
PIC
A(25).
LINKAGE SECTION.
En esta sección se describen ítems de datos que estarán
para otros programas. Estos ítems de datos proporcionan nombres y descripción de los
mismos. La memoria dentro de un programa solo se reserva en el programa principal.
PROCEDURE DIVISION. En esta división se tienen los procedimientos, secciones,
párrafos, declarativas, sentencias e instrucciones que permiten realizar una función de
procesamiento de datos.
Como parte de los estándares de programación en lenguaje COBOL esta sección es
dividida en párrafos, los cuales son descritos a continuación y pueden verse más claramente en
la imagen 3.
PRINCIPAL. Se le asigna, por lo general, el número 1000. Este párrafo tiene la
función de guardar el orden de ejecución de los siguientes 3 párrafos, los cuales son los
procesos principales. A su vez se encarga del manejo y control del programa principal, paso y
recepción del control de otros programas, así como la finalización (stop-run) de los mismos.
INICIO. En la mayoría de los casos se le asigna el número de párrafo 2000. En este
párrafo generalmente se realiza la inicialización de variables de trabajo (acumuladores,
contadores, etc). También se puede realizar la apertura de archivos de entrada y salida.
32
PROCESO. Para este párrafo el número asignado debería ser el 3000. En este párrafo
se realiza el procesamiento principal del programa.
FIN. Habitualmente se le coloca el número de párrafo 8000, En él se realiza el cierre de
archivos de entrada y salida y el envío de cifras de control.
Imagen 3. Ejemplo de la estructura de la Procedure Division.
TIPOS DE DATOS
Un tipo de dato informático es un atributo de una parte de los datos que indica al
ordenador (y/o al programador) algo sobre la clase de datos que se va a procesar. Esto incluye
imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se
pueden realizar. En un sentido amplio, un tipo de datos define un conjunto de valores y las
operaciones sobre estos valores. En COBOL los datos se organizan en campos los cuales
pueden ser:
- INDEPENDIENTES. Se definen en la WORKING-STORAGE y no son parte de la
descripción de los archivos.
Formato. [número de nivel] [nombre de dato] [PICTURE] [especificación del dato]
Ejemplo: 01 NUM-BANCO
PIC X(04).
33

Para el número de nivel se utilizan múltiplos de 5, es decir, el nivel más alto será 01, el
que le siga será 05, el siguiente 10 y así sucesivamente.

El nombre del dato nos permite hacer referencia del contenido del campo dentro del
programa.

La especificación del dato se refiere al tipo y a la longitud del campo.

La cláusula PICTURE define la información que puede almacenarse en el campo y
determina el tipo de operaciones que pueden realizarse con él. Se puede abreviar con
PIC. Ejemplos de su uso:
 PIC XXXX = PIC X(04). El carácter X especifica cualquier carácter
alfanumérico.
 PIC AAAA = PIC A(04). El carácter A especifica cualquier carácter alfabético.
 PIC 999999 = PIC 9(06), El carácter 9 especifica cualquier dígito del 0 al 9.
 PIC 99V99 = PIC 9(02)V99. El carácter V especifica un punto decimal.
 PIC S99 ó PIC S9V999. El carácter S especifica el signo.
 El carácter Z permite sustituir los ceros que no son significativos por espacios
en blanco.
Ejemplo: 01 WC-LINE-1
PIC Z,ZZZ,ZZ9
 El carácter ‘.’ indica la posición del punto decimal.
Ejemplo: 01 WS-IMPORTE-1
PIC -ZZZ,ZZ9.99
 El carácter ‘,’ indica la posición de la coma como separador de miles.
 El carácter + al colocarse al extremo izquierdo o derecho permite la aparición
del signo. Si es Positivo = +, si es Negativo = -.
34
 El carácter - al colocarse al extremo izquierdo o derecho permite la aparición
del signo. Si es Positivo = un espacio en blanco, si es Negativo = -.
La cláusula VALUE. Permite inicializar el valor de un campo independiente.
Formato.
Literales numéricas
VALUE IS
Constantes figurativas o
Literales no numéricas.
Algunos ejemplos:
01
01
CONSTANTES.
05 CT-UNO
PIC 9(01) VALUE 1.
05 CT-SALARIO-T
PIC 9(06) VALUE 002000.
05 CT-CERO
PIC 9(01) VALUE IS ZERO.
05 CT-CEROS
PIC 9(05) VALUE IS ZEROES.
05 CT-OPEN
PIC X(04) VALUE 'OPEN'.
05 CT-CLOSE
PIC X(05) VALUE 'CLOSE'.
05 CT-ESPACIOS
PIC X(40) VALUE IS SPACES.
SW-FINDEARCH
88 SW-FIN-SI
PIC XX VALUE ‘NO’.
VALUE ‘SI’.
Para dicha cláusula se pueden utilizar las sentencias: ZERO, ZEROS, ZEROES,
SPACE, SPACES, QUOTE, QUOTES, HIGH-VALUE, HIGH-VALUES, LOW-VALUE,
LOW-VALUES.
- COMPUESTOS. Pueden definirse en la WORKING-STORAGE y es obligado
su uso para describir archivos ya que se pueden subdividir. Se pueden encontrar
bajo el nombre de registros.
35
Imagen 4. Ejemplo de campos compuestos.
Características:
o Empiezan en el nivel 01, en el Margen A, su nombre y los siguientes niveles
deberán codificarse en el Margen B.
o Los números de nivel no siempre son consecutivos.
o Primero se coloca el número de nivel y posteriormente el nombre del dato.
o Para mejor presentación y entendimiento se deberá intercalar con 4 posiciones
entre cada subnivel.
o Posterior a la clausula PICTURE o PIC se debe especificar el tipo y longitud de
cada dato.
o Los nombres de cada uno de los datos deberán ser únicos.
o En caso de que el nombre del dato no se utilice para ser referenciado se puede
utilizar la palabra reservada FILLER.
36
- TABLAS. Es un conjunto de campos que tienen la misma especificación del dato
(tipo y longitud) que se nombran igual y que se distinguen con un subíndice que
indicará la entrada en particular. Se definen en la WORKING-STORAGE.
Ejemplo: se quiere tener la información del número de bajas por mes de los empleados
de una fábrica. Para esto definiríamos 12 campos o variables en donde guardaríamos la
información de cada mes de la siguiente forma:
MOVE 12
TO ENE
MOVE
8
TO FEB
MOVE 16
TO MAR
MOVE 10
TO ABR
MOVE
2
TO MAY
MOVE
0
TO JUN
MOVE
6
TO JUL
MOVE 11
TO AGOS
MOVE
3
TO SEPT
MOVE
1
TO OCT
MOVE
4
TO NOV
MOVE
1
TO DIC
Y definiríamos las variables como sigue:
01 ENE
PIC 999.
01 FEB
PIC 999.
01 MAR
PIC 999.
01 ABR
PIC 999.
01 MAY
PIC 999.
01 JUN
PIC 999.
37
01 JUL
PIC 999.
01 AGOS
PIC 999.
01 SEPT
PIC 999.
01 OCT
PIC 999.
01 NOV
PIC 999.
01 DIC
PIC 999.
Con el uso de tablas la información se asignaría de la siguiente manera:
Al ser del mismo tipo, numéricas, y tener la misma longitud (3 dígitos) se puede crear
una tabla definida de la siguiente manera:
01 MESES.
05 BAJAS
PIC 9(3) OCCURS 12 TIMES.
Con esta definición tendremos un campo en donde guardar la información, BAJAS, la
información se asignaría de la siguiente manera:
MOVE 12
TO BAJAS(1)
MOVE
8
TO BAJAS(2)
MOVE 16
TO BAJAS(3)
MOVE 10
TO BAJAS(4)
MOVE
2
TO BAJAS(5)
MOVE
0
TO BAJAS(6)
MOVE
6
TO BAJAS(7)
MOVE 11
TO BAJAS(8)
MOVE
3
TO BAJAS(9)
MOVE
1
TO BAJAS(10)
MOVE
4
TO BAJAS(11)
MOVE
1
TO BAJAS(12)
38
El subíndice es el que nos permite hacer referencia a cada elemento de la tabla. El
resultado final aparentemente es el mismo, con la diferencia de que solo se ha declarado una
variable. El subíndice puede ser también una variable.
VERBO INITIALIZE
Para inicializar un campo o dato de cualquier tipo: independiente, compuesto o tabla,
se utiliza el verbo INITIALIZE, en tal caso los campos de tipo alfanuméricos serán
inicializados con espacios y los numéricos con ceros.
Sintaxis: INITIALIZE nombre-campo
05 WS-CLIENTE.
INITIALIZE
10
WS-CODIGO
PIC 9(5).
10
WS-NOMBRE
PIC X(30).
WS-CLIENTE.
ó
INITIALIZE WS-CODIGO
WS-NOMBRE.
INSTRUCCIONES IMPERATIVAS Y CONDICIONALES
En el lenguaje COBOL se tienen 2 tipos de instrucciones, las imperativas y las
condicionales. En el primer caso hablamos de un verbo que realizará una acción y los
operandos apropiados que están vinculados a esa acción. En el caso de las instrucciones
condicionales nos permiten comprobar la veracidad o falsedad de condiciones.
Los verbos imperativos son:

Entrada / Salida
o ACCEPT, DISPLAY, OPEN, READ, WRITE, CLOSE

Transferencia de Datos
o MOVE

Aritméticos
39
o ADD, SUBTRACT, MULTUPLY, DIVIDE, COMPUTE

Control
o PERFORM, STOP
El verbo ACCEPT nos permite obtener por medio de un SYSIN o del sistema datos
utilizados en el programa. Los formatos para el uso de este verbo son:

ACCEPT identificador [FROM nombre-nemónico]

ACCEPT identificador [FROM DAY, DATE, TIME]
Ejemplos:
ACCEPT NOMBRE
ACCEPT FECHA FROM DATE
ACCEPT DIA FROM DAY
ACCEPT HORA FROM TIME
El verbo DISPLAY nos permite desplegar en pantalla o consola (spool) de salida
información.
Su formato es:

DISPLAY – Identificador 1 o Literal 1 - , - Identificador 2 o Literal 2
Ejemplos:
DISPLAY '* ERROR AL ABRIR
EL ARCHIVO DE ENTRADA*'
DISPLAY '* ESTATUS DE ARCHIVO ' FS-ENTRADA
40
El verbo OPEN permite abrir los archivos que requiere un programa además de indicar
al sistema cuáles son los archivos que serán accedidos por el programa e identificar cuáles
archivos serán usados para entrada de datos y cuáles serán archivos de salida de datos.
Generalmente es codificada al inicio del programa.
Su sintaxis es:

Archivos de lectura OPEN INPUT

Archivos de escritura OPEN OUTPUT nombre-archivo
nombre-archivo
Ejemplos:
OPEN INPUT ENTRADA1
OPEN INPUT ENTRADA2
OPEN OUTPUT SALIDA3
El verbo READ permite leer los registros de un archivo.
Su sintaxis:
READ nombre-archivo INTO nombre-registro
AT END
SET END-OF-FILE TO TRUE.
Ejemplo:
READ ENTRADA1 INTO REG-ENTRADA1
AT END
SET FS-ENTRADA1-FIN TO TRUE
END-READ.
El verbo READ lee el registro del archivo especificado cuyo nombre es el mismo que
el asignado en la sección de FD. Los datos del registro son transferidos a través de la sentencia
INTO en la definición del registro que ha sido definido en la WS para el archivo. Para
41
controlar el fin de archivo en base a una condición es utilizada la cláusula
AT-END. Esto
se puede visualizar con mayor detalle en la siguiente tabla.
READ ENTRADA1 INTO DATOS-E1
AT END
SET ENT1-FIN TO TRUE.
DATA DIVISION.
FILE SECTION.
**************************************
*
ARCHIVO DE ENTRADA1
*
**************************************
FD
ENTRADA1
LABEL RECORD ARE STANDARD
BLOCK CONTAINS 0 RECORDS
DATA RECORD IS REG-ENTRADA1.
01 REG-ENTRADA1
PIC X(16).
WORKING-STORAGE SECTION.
01 ENTRADA-AREA.
**************************************
*
RECORD LAYOUT
*
**************************************
05 DATOS-E1.
10 E1-CAMPOA
PIC X(06).
10 E1-CAMPOB
PIC X(10).
Tabla 1. Codificación del verbo READ y definición de archivos de entrada.
El verbo WRITE permite escribir el contenido de la memoria a un dispositivo de
salida (archivo, cinta, etc.). Su forma de codificación del verbo se muestra en la siguiente
imagen.
Sintaxis: WRITE OUTPUT-REC FROM REC-DATA
Ejemplo:
WRITE REG-SALIDA INTO DATOS-SAL
DATA DIVISION.
FILE SECTION.
**************************************
*
ARCHIVO DE SALIDA
*
**************************************
FD
SALIDA
LABEL RECORD ARE OMITTED
BLOCK CONTAINS 16 RECORDS
DATA RECORD IS REG-SALIDA.
01 REG-SALIDA
PIC X(16).
WORKING-STORAGE SECTION.
01 SALIDA-AREA.
**************************************
*
REPORTE SALIDA
*
**************************************
05 DATOS-SAL.
10 SAL-CAMPOA
PIC X(06).
10 SAL-CAMPOB
PIC X(10).
Tabla 2.Codificación del verbo WRITE y definición de archivos de salida.
42
El verbo CLOSE permite cerrar los archivos de entrada y salida usados durante el
proceso del programa.
Sintaxis: CLOSE file-name1
Ejemplo: CLOSE INPUT-FILE / OUTPUT-FILE
El verbo MOVE coloca una copia del dato contenido en un campo-1 a un campo-2.
Sintaxis: MOVE campo-1
TO
campo-2
Ejemplo:
CAMPOS ELEMENTALES
CAMPOS A NIVEL GRUPO
MOVE CAMPO-1 TO CAMPO-2
MOVE GRUPO-1
TO GRUPO-2.
CAMPO-3
CAMPO-4.
Tabla 3. Ejemplos de uso del verbo MOVE.
VERBOS ARITMÉTICOS
La siguiente Tabla describe claramente el uso de los verbos aritméticos en COBOL.
VERBO
DESCRIPCIÓN
EJEMPLO DE USO
ADD campo-1 campo-2 campo-N
TO
campo-z
SUBTRACT campo-1 campo-2
campo-N FROM
campo-z
ADD
Adición de valores.
SUBSTRACT
Sustracción de valores.
MULTIPLY
Multiplicación de valores. El
resultado es almacenado en los
campos especificados por la
instrucción BY.
DIVIDE
División de valores.
GIVING
Asigna el valor de la operación
al campo especificado.
43
MULTIPLY campo-1 BY factor-1
factor-2 factor-N
-DIVIDE dividendo BY divisor
GIVING cociente.
-DIVIDE divisor INTO
dividendo-1 dividendo-2.
-DIVIDE divisor INTO
dividendo GIVING cociente
REMAINDER residuo.
-ADD campo-1 TO
campo-z
GIVING
campo-suma.
-SUBTRACT campo-1
FROM
campo-z GIVING campo-
ROUNDED
Redondea el valor del cálculo de
la operación. El valor es
redondeado al siguiente superior
cuando el valor truncado es
mayor o igual a 5.
resta.
-MULTIPLY campo-1 BY
factor-1
GIVING campomult.
-DIVIDE dividendo
BY
divisor
GIVING cociente.
-DIVIDE divisor
INTO
dividendo
GIVING cociente
REMAINDER residuo.
ADD campo-1
TO
campo-z ROUNDED
SUBTRACT campo-X FROM
campo-z ROUNDED
MULTIPLY campo-1
BY
fator
GIVING campostore ROUNDED
Tabla 4. Definición de verbos aritméticos
El verbo COMPUTE y el uso de operadores aritméticos simbólicos permiten escribir
instrucciones aritméticas compactas. Al utilizar paréntesis, las operaciones aritméticas que
están dentro de ellos se efectúan primero, las más internas son las que tienen prioridad, de
izquierda a derecha se ejecutan de acuerdo al siguiente orden:
1. Elevar a una potencia.
2. Multiplicación y División.
3. Suma y Resta
Ejemplos.
-
COMPUTE A = A + B + C
-
COMPUTE A = (B*(C - D))
44
El verbo PERFORM tiene como función pasar el control a un párrafo específico.
Después de ejecutar las instrucciones de aquel párrafo, el control es devuelto al párrafo que
realizó la llamada. En caso de que sea la última sentencia de un párrafo se utilizará UN
PUNTO en una línea nueva, en la columna 12 como se muestra en la imagen 5.
1234567890123456
IF [condición]
[instrucción ó sentencia]
END-IF
PERFORM nombre-parrafo
.
Imagen 5. Definición PERFORM.
La cláusula UNTIL es utilizada por el verbo PERFORM para indicar que el párrafo
debe ser ejecutado hasta cumplir una determinada condición. Ejemplo de ello se visualiza en
la imagen 6.
PERFORM nombre-parrafo
UNTIL condicion.
Ejemplo:
PERFORM 2100-INIT-TABLE
UNTIL WS-CONTADOR EQUAL TO CTE-CINCO.
Imagen 6. Definición sentencia UNTIL.
Las instrucciones Condicionales se clasifican en:

Condiciones de Relación. Estas condiciones tienen que ver con las
comparaciones entre dos ítems mediante los operadores de relación ó
relacionales.
45
o Operadores Relacionales: indican la clase de comparación y se pueden
usar con símbolos o palabras.
=
EQUAL TO
>
GREATER THAN
<
LESS THAN
>=
GREATER THAN OR EQUAL TO
<=
LESS THAN OR EQUAL TO
o Se puede usar el NOT para realizar la negación de la expresión
condicional sin embargo no es muy recomendable.

Condiciones Anidadas. Son condiciones de relación que se anidan una dentro
de otra. Esquemáticamente este tipo de relaciones se pueden entender de la
siguiente manera:
Ejemplo:
IF [expresión condicional]
[instrucciones o sentencias]
ELSE
IF [expresión condicional]
[instrucciones o sentencias]
ELSE
[instrucciones o sentencias]
END-IF
END-IF
46
Las condiciones anidadas se pueden entender como una manera de estructura
CASE. El verbo EVALUATE es otra manera de implementar la estructura
CASE.
Ejemplo:
EVALUATE [identificador o TRUE]
WHEN [condición-1]
[instrucciones o sentencias]
WHEN [condición-2]
[instrucciones o sentencias]
WHEN [condición-n]
[instrucciones o sentencias]
WHEN OTHER[cuando la condición sea <> 1, 2 ó n]
[instrucciones o sentencias]
END-EVALUATE
 Condiciones con Nombre. Permiten determinar validar si la condición es
verdadera o falsa. En este tipo de condiciones se usan los switches definidos en
el nivel 88.
Definiendo un switch. Para aprovechar de una mejor manera las condiciones
con switch existe el verbo SET.
Formato:
•
SET {nombre-de-condición-1} TO TRUE
SET SW-FIN-SI
TO TRUE
…
IF SW-FIN-SI
PERFORM CIFRAS-DE-CONTROL
END-IF
47
TEMAS RELACIONADOS AL USO DEL LENGUAJE COBOL
PROGRAMACIÓN ESTRUCTURADA
Lo que la programación estructurada intenta lograr es que, como su nombre lo dice, la
Estructura Interna del programa o componente contemple las siguientes características:
-
Sencilla. Debe ser fácil de programar.
-
Comprensible. Que cualquier persona comprenda el flujo del programa
desarrollado.
-
Verificable. Se debe poder comprobar que el programa lleva a cabo el proceso
correctamente para el cual fue desarrollado.
-
Apropiada a la estructura del problema. Debe resolver el problema para el que fue
creado.
En síntesis, lograr que la estructura del programa modele la estructura natural del
problema.
TÉCNICAS DE LA PROGRAMACIÓN ESTRUCTURADA
ESTRUCTURAS DE CONTROL
Las Estructuras de Control determinan el flujo de la información durante la ejecución
del programa. Dicho flujo debe ser simple y visible, es decir, que se tenga una sola entrada y
una sola salida.
48
SEQUENCE
Es la ejecución de dos o más procesos en forma consecutiva. Tomando en cuenta que
un proceso es una instrucción o conjunto de instrucciones ligadas entre sí con estructuras de
control.
PROCESO - A
PROCESO -B
Imagen 7. SEQUENCE
IF-THEN-ELSE
Se refiere a la ejecución de uno de dos procesos dependiendo de alguna condición. El
único proceso que pudiera estar vacío es el que está situado a la izquierda de la condición.
SI
CONDICI
ÓN
PROCESO - C
PROCESO - D
Imagen 8. IF THEN ELSE
CASE
Es la ejecución de uno o varios procesos dependiendo de alguna condición. Uno o
varios procesos pueden estar vacíos.
49
CONDICION 1
CONDICION 3
CONDICION 2
PROCESO 2
PROCESO 1
PROCESO 3
Imagen 9. CASE
WHILE - DO
Se refiere a la ejecución de un proceso varias veces mientras se cumpla una condición.
Hágase notar que el proceso puede no ser ejecutado cuando al inicio la condición no se
cumple.
NO
CONDICI
ÓN
PROCESO - E
Imagen 10. WHILE DO
SALIDA ANORMAL
Termina la ejecución de un programa cuando se detecta una condición anormal. Actúa
como ‘fusible’ del programa y su funcionamiento es completamente transparente al objetivo
del mismo.
CONDICI
ÓN
SI
MENSAJ
E
Imagen 11. SALIDA ANORMAL
50
ABORTA
MODULARIDAD
La modularidad consiste en dividir el programa en varios grupos de instrucciones
llamados módulos/párrafos. Un módulo consta de varias instrucciones, algunas de las cuales
pueden ser ‘Ejecuta Módulo’. El programa comienza su ejecución al momento en que se
ejecuta el primer módulo ‘Controlar programa’. Cualquier módulo puede ser llamado a
ejecución desde uno o varios módulos.
Para saber si estamos llevando a cabo un modularidad de forma correcta debemos
tomar en cuenta que cada módulo debe tener una sola función (cada módulo genera un solo
resultado o efecto identificable) dicha función debe estar completa dentro del mismo módulo,
además la división en módulos debe ser de acuerdo a la estructura lógica del problema a
resolver y aislar los efectos de las posibles modificaciones al programa. También un módulo
debe tener un tamaño que sea ‘fácil de comprender’. Si la función es muy extensa, se
subdivide en subfunciones y la función del módulo original no se altera. Sé debe tener un
módulo que controle a los módulos generados. La comunicación entre módulos debe ser
mínima, clara y bien definida, es decir, se debe contar con un mínimo acoplamiento entre los
módulos. Conjuntamente, un módulo debe tener su propia área de trabajo (No se debe
compartir) y el nombre de cada uno de ellos debe estar compuesto por un verbo/acción
aplicado sobre un sustantivo/objeto claramente identificado.
Como ejemplo: Leer-Archivo-Empleados, Conectar-BaseDatos, Imprimir-Totales.
Finalmente, cada definición de un módulo debe especificar claramente lo siguiente:
-
Nombre del Módulo.
-
¿Cuál es la función que realizará el módulo?
-
¿Cuál es su interfaz externa con otros módulos?
51
Se descompone en Entrada (parámetros de entrada y precondiciones) y Salida
(parámetros de salida y post-condiciones).
Ejemplo:
-
Módulo: validar Fecha
- Función: verifica que una fecha sea válida.
-
Entrada: fecha en formato estándar. - Salida: indicador de fecha válida o inválida.
ÁRBOL DE MÓDULOS
Es un diagrama para representar la jerarquía de los módulos. Cada módulo se
representa como un rectángulo y tiene conectados hacia abajo los módulos que serán llamados
sólo por él. En la parte inferior se representan, sin estar conectados hacia arriba, los módulos
compartidos los cuales no son más que módulos que pueden ser ejecutados por cualquiera de
los módulos superiores. La representación de un árbol de módulos se puede observar en la
imagen 12.
CONTROLAR
PROGRAMA
000
INICIAR
PROGRAMA
PROCESAR
PÓLIZAS
TERMINAR
PROGRAMA
030
010
INGRESAR
PÓLIZA
CAMBIAR
PÓLIZA
040
LEER MOVTO
PÓLIZAS
EMITIR CIFRAS DE
CONTROL
990
ELIMINAR
PÓLIZA
050
LEER MAESTRO
PÓLIZAS
500
100
060
ESCRIBIR LÍNEA
REPORTE
ESCRIBIR MAESTRO
PÓLIZAS
510
600
ABORTAR
PROGRAMA
980
Imagen 12. Ejemplo de árbol de módulos.
52
610
Para entender mejor el deber ser de la estructura anterior a continuación se dará una
breve descripción.
Obsérvese los módulos 030-060 cada uno de ellos tiene una sola función bien definida
y completa, no estaría completa si por ejemplo Procesa Póliza sólo controlara los módulos:
Ingresar Póliza y Eliminar Póliza. La comunicación de Ingresar Póliza, Cambiar Póliza y
Eliminar Póliza con Procesar Póliza es: cada módulo recibe el Archivo de Movimientos
posicionado en el primer registro del movimiento a procesar y regresa el archivo posicionado
en el primer registro del siguiente movimiento (o el indicador de fin de archivo).
Los lineamientos en cuanto a la numeración de los módulos es: se debe realizar de
arriba hacia abajo y de izquierda a derecha, iniciando con 000 e incrementando de 10 en 10,
para posteriormente hacerlo de 100 en 100.
En resumen para poder desarrollar un programa con cero defectos es necesario tomar
en cuenta el siguiente procedimiento:
1.- Entender el requerimiento/especificación del programa.
2.- Diseñar la estructura de módulos (árbol de módulos) del programa.
3.- Diseñar los algoritmos del programa (lógica, definir variables, definir constantes,
etc).
4.- Revisar la lógica del programa (pruebas de escritorio).
5.- Codificar el programa.
6.- Evaluar el cumplimiento de criterios de calidad del código.
7.- Depurar la sintaxis del código.
8.- Diseñar las pruebas unitarias del programa.
9.- Ejecutar las pruebas.
10.- Corregir defectos detectados con la prueba unitaria.
53
11.- Evaluar los productos elaborados (verificar que el programa solucione el problema
para el que fue desarrollado).
12.- Guardar el programa para así tener controlados los cambios que se le efectúen.
Es importante seguir al pie los pasos antes mencionados para evitar más de 3
compilaciones del programa ya que estas conllevan un gasto de recursos que puede resultar
costoso. Nota: Las compilaciones no deben utilizarse a fin de encontrar errores, estos deben
ser encontrados atendiendo a los pasos del 6 al 10.
JCL (JOB CONTROL LANGUAGE)
El Sistema Operativo es el encargado de gestionar de forma eficiente todos los recursos
de los que dispone un sistema de información. Dentro de sus principales ocupaciones están la
administración de: memoria, terminales de trabajo, discos, programas, comunicaciones etc.
Para llevar a cabo algunas de estas tareas en el sistema operativo OS/390, es necesario
conocer el manejo de JCL’s (Job Control Language), que son un conjunto de instrucciones
necesarias para la ejecución de un proceso batch, esto es semejante a un “Batch de D.O.S.”
que ejecuta peticiones al sistema operativo. De esta manera el JCL le dice al sistema operativo
todos los requerimientos de entrada y salida que se necesitan para ejecutar un proceso o varios
en una secuencia determinada (Gestor de trabajos – JES).
JCL (Job Control Lenguage), es un lenguaje de programación que permite codificar las
instrucciones necesarias para la ejecución de un proceso Batch. Estas instrucciones son
interpretadas y ejecutadas por el gestor de trabajos (JES – Job Entry Subsystem).
54
CONCEPTOS GENERALES
Job (trabajo). Unidad de trabajo básica independiente.
Job Step (paso de Job). Ejecución de un programa dentro de un Job. También se
puede hacer referencia como step (paso).
El máximo de pasos permitidos en un JCL es de 255.
Partes de un JCL:
–
Cabecera. Información relativa al entorno en donde será ejecutado el Job,
características de entorno, tiempo, nivel de mensajes, etc.
–
Cuerpo. Contiene las sentencias de ejecución de cada programa o utilería a
ejecutar.
SINTAXIS GENERAL DE UN JCL
•
La codificación de un JCL debe empezar en las columnas 1 y 2 con //, salvo en algunos
casos.
•
El nombre que identifica cada paso del JCL deberá comenzar con un carácter
alfabético de máximo de 8 caracteres a partir de la columna 3.
•
Los parámetros utilizados en la codificación del JCL deberán ser separados por comas,
y la declaración de estos no deberá exceder de la posición 71
•
La codificación de comentarios es con //*, los cuales deberán terminar como máximo
en la columna 72.
•
La terminación de un paso es indicada a través de /* en las columnas 1 y 2.
55
Ejemplo:
123456789012345678901234567890123456789012345678901234567890123456789012
//JCLNAME JOB (PBM),'SOFTTEK',CLASS=C,MSGCLASS=C,MSGLEVEL=(1,1)
//**********************************************************************
//*
CREACION DE ARCHIVO DE PRUEBA
*
//**********************************************************************
//P01DE01
EXEC PGM=IEBGENER
//SYSTSPRT DD
SYSOUT=*
//SYSPRINT DD
SYSOUT=*
//SYSOUT
DD
SYSOUT=*
//SYSUT1
DD *
ABC456789112DEF67892123456789312
//SYSUT2
DD DSN=ACCEN.NBAS.PRUEBA,
//
DCB=(RECFM=FB,LRECL=32,BLKSIZE=0),
//
DISP=(NEW,CATLG,DELETE)
//SYSIN
DD *
/*
A continuación se da una explicación más detallada sobre la formación que contiene de
un componente JCL.
•
Sentencia JOB.
Identifica el inicio del Job a ejecutarse.
Formato: //Jobname JOB (cuenta),'user',parm1,parm2...
Ejemplo:
//CREAFILE JOB (ABC),'SOFTTEK',CLASS=C,
//
MSGCLASS=C,MSGLEVEL=(1,1),
//
REGION=4096K,NOTIFY=ESBS755,
//
COND=(0,LT)
56
El jobname(CREAFILE) indica el nombre que se asignará al JCL, puede tener una
longitud máxima de 8 caracteres.
La sentencia JOB Indica el inicio del Job a ser ejecutado, debe comenzar en la
posición 12.
Cuenta del JCL. Se debe indicar la cuenta (ABC) a la que es asignada el Job, ya que
éste es utilizado para determinar el gasto de recursos que el Job necesita.
Usuario del JOB. Máximo 20 caracteres. Puede ser especificado por la instalación.
Parámetros de ejecución (parm1, parm2…):
-
CLASS=x. Indica la cola de ejecución a la cual será asignado el JOB. En caso de
no ser indicada, se asigna la predeterminada por la instalación. Algunos valores
asignados pueden ser:
A – Impresora
X – retener mensajes
Z – no imprimir mensajes
-
MSGCLASS=x. Indica la cola de salida (x) a la cual se enviaran los mensajes que
se generen durante la ejecución del JOB.
-
MSGLEVEL=(x,y). Controla la salida de las sentencias y mensajes de salida en el
log. Indica la clase de ejecución a la cual se enviaran los mensajes que se generen
durante la ejecución del JOB.
Valores a asignar:
x – Sentencias que se desplegarán en el log del JOB.
y – Mensajes que serán desplegados en el JOB.
Si esta sentencia es omitida se asigna un valor por default de la instalación.
57
-
REGION=nnnn[K][M]. Especifica el máximo de memoria asignada a nivel de todo
el JCL. Puede ser expresada en Kilobytes (K) o Megabytes (M).
-
NOTIFY=aaaaaaa. Específica el usuario de TSO (aaaaaaa) al que se notificará al
terminar de ejecutarse el JOB.
-
COND=(n,a). Específica el código de retorno (n) y la condición (a) para que los
pasos del JOB continúen ejecutándose. Condiciones de retorno :
GT - Mayor que
GE - Mayor o igual que
LT - Menor que
LE - Menor o igual que
EQ - Igual a
NE - Distinto de
•
Sentencia EXEC. Principio de cada paso e identifica el programa o procedimiento a
ser ejecutado
Formato:
//stepname EXEC [PGM][PROC]=programa/procedimiento,parm1,parm2
Ejemplo:
//P01DE01
EXEC PGM=BG3C3330,PARM='20010101',COND=(0,EQ)
Inicia con el STEPNAME (P01DE01), el cual puede tener una longitud máxima de 8
caracteres.
La sentencia EXEC debe iniciar en la posición 12, indica el inicio de cada paso. Se
debe indicar si es un programa (PGM) el que se va a ejecutar.
58
Parámetros de ejecución a nivel de la sentencia EXEC.
-
PARM=valor. Permite informar valores al programa en ejecución. Pueden
informarse hasta 100 caracteres como valores de un parámetro.
Parámetros para un programa usando PARM
DECLARACION EN PROGRAMA
DECLARACION EN JCL
************************************************
PPrograma sin DB2
LINKAGE SECTION
//P01DE01
EXEC
************************************************ PGM=BG4CINT0,PARM=‘9400MOV’,COND=(0,EQ)
LINKAGE SECTION.
PPrograma con DB2
01 REG-PARM.
//SYSTSIN
*
05 PARM-LONG
PIC X(2).
DSN SYSTEM(DB2D)
05 PARM-TAREA
PIC X(4).
RUN PROGRAM(BG4CINT0) PLAN(BVDBGPB)
05 PARM-ARCHIVO
PIC X(3). PARM('9400MOV')
***********************************************
*
DD
END
PROCEDURE DIVISION
***********************************************
PROCEDURE DIVISION USING REG-PARM.
Tabla 5. Manejo de sentencia PARM
-
COND=(n,a,[EVEN/ONLY]). Realiza la misma función que en la sentencia JOB,
con la diferencia que ésta sólo aplica a nivel de paso, y con algunas condiciones
adicionales. Las condiciones:
 EVEN. Indica que el paso se ejecutará aún cuando algún paso anterior
finalice anormalmente.
 ONLY. Indica que este paso se ejecutará si algún paso ha finalizado
anormalmente.
59
•
Sentencia DD.
Define las entradas y salidas del proceso
Formato:
//ddname
//
DD DSN=
____,DISP=_____,UNIT=____,
SPACE=_____,VOL=_____,DCB=_____
Ejemplo:
//S1DQ4000 DD DSN=APHA.SBAS.DATA.HAQL090,
//
DISP=(NEW,CATLG,DELETE),UNIT=3390,
//
SPACE=(CYL,(10,10),RLSE),VOL=SER=SYSWK1,
//
DCB=(LRECL=137,RECFM=FB,BLKSIZE=1370)
-
El DDNAME (S1DQ4000) indica el nombre del paso, tiene una longitud máxima
de 8 caracteres y éste nombre debe ser único por cada paso.
-
DD (Data Definition). Describe los archivos que requiere el programa a ser
ejecutado. Debe iniciar en la posición 12, codificándose después del DDNAME.
Posterior a su codificación, se asignan los parámetros opcionales necesarios para la
definición del archivo.
PROGRAMA COBOL.
SELECT IN-FILE ASSIGN TO E1DQ0001
DEFINICION DE DD
//E1DQ0001 DD DSN=ACCEN.SBAS.DATOS
Imagen 13. Ejemplo de definición de archivo.
60
Parámetros de la sentencia DD
-
DSN=namefile. El namefile es el nombre con que el sistema debe localizar o alojar
los archivos. Existen diferentes tipos de archivos, los más importantes son:
Secuenciales, Particionados, Generacionales (GDG), VSAM, etc.
Los nombres que son asignados generalmente a los diferentes tipos de archivos son:
o Archivos secuenciales. Máximo 44 caracteres
 nombre.del.archivo
o Archivos particionados.
 nombre.del.archivo(nom_elemento)
o Archivos generacionales.
 nombre.del.archivo(num_generación)
o Archivos temporales.
 &&nombre
-
DISP=(ind_1,ind_2,ind_3). El parámetro DISP, tiene tres funciones:
 El primer indicador nos dice la situación del archivo al inicio de la ejecución.
 El segundo indicador nos dice que acción se debe de tomar con el archivo si el
paso termina correctamente.
 El tercer indicador nos dice que acción se debe de tomar con el archivo si el
paso termina anormalmente.
 Las diferentes disposiciones de los archivos son:
o NEW: El archivo es creado
o OLD: El archivo ya existe y mientras se está utilizando ninguna otra
tarea puede acceder a dicho archivo.
o SHR: El archivo existe y además puede ser compartido.
61
o MOD: Si existe, ninguna otra tarea puede accederlo. En la adición de
registros nuevos, obliga al sistema de I/O a posicionarse en el último
registro que exista. Si el archivo no existe lo considera NEW.
o DELETE: El archivo es borrado.
o KEEP: Indica que el archivo debe mantenerse al final del paso.
o PASS: Indica que el archivo se utilizará en los pasos posteriores. Se
borra al terminar el job.
o CATLG: El archivo se guarda y es catalogado.
o UNCATLG: El archivo se guarda y no es catalogado.
 Reglas de uso para parámetros DISP:
DISP
DELETE
KEEP
PASS
CATLG
UNCATLG
NEW
OLD
SHR
MOD
DELETE
KEEP
PASS
CATLG
UNCATLG
Imagen 14. Uso de parametros de la sentencia DISP
o Si el primer parámetro no es codificado se asume NEW.
o Si el segundo parámetro no es codificado se asume DELETE, si en el
primer parámetro se informa NEW.
o Si el segundo parámetro no es codificado se asume KEEP, sólo si en el
primer parámetro se informa OLD.
o El tercer parámetro siempre debe ser codificado.
62
-
UNIT=[address/type][TAPE][SYSDA]. Especifica un dispositivo de entrada o
salida, ya sea a unidad de cinta o disco, volumen o un grupo de discos designados
por la instalación (generalmente SYSDA o 3390).
-
SPACE=([CYL][TRK][nnnn],(ext_primaria,ext_secundaria,[miembros]),[RLSE]).
Indica el espacio que debe reservarse en disco para almacenar los datos del
archivo. Sólo debe indicarse cuando el archivo es nuevo. Las unidades en las que se
mide el espacio son: Cilindros (CYL), Tracks (TRK) o longitud del bloque(nnnn).
o El primer subparámetro (extensión primaria), indica el espacio que se
reservará para el archivo al momento de crearlo.
o El segundo subparámetro (extensión secundaria) es la cantidad de espacio a
añadir cada vez que el archivo se llene. Se pueden añadir hasta 15
extensiones secundarias.
o El tercer subparámetro (directorio), es
principalmente para indicar el
espacio a reservar para los miembros a alojar en caso de tratarse de un
archivo particionado.
o RLSE, indica que al final de la ejecución se libere el espacio no usado por
el archivo alojado.
-
VOL, se utiliza para identificar el disco en el que se encuentra el archivo. Para
archivos catalogados no es necesario se codifique esta sentencia. SER, indica el
número de serie del disco. Normalmente, tiene el mismo valor que el volumen.
Formato: VOL=disco ó VOL=SER=disco.
63
-
Data Control Block (DCB). Indica las características de los registros del archivo.
La sentencia DCB, puede ser omitida y especificar únicamente los subparámetros
de ésta (LREC,RECFM,BLKSIZE).
Formato: DCB=(LRECL=__,RECFM=__,BLKSIZE=__)
ó LRECL=__,RECFM=__,BLKSIZE=__
 LRECL=nnnn. Especifica la longitud del registro.
 RECFM=nnnn. Indica el formato del bloqueo:
o F – Fija
FB – Fija bloqueada
o V – Variable
VB – Variable bloqueado
o U - Indefinida
FBA – Fijo bloqueado con caracteres ASA
 BLKSIZE=nnnn. Indica la longitud del bloque. Se calcula multiplicando la
longitud del registro por el número de registros contenidos en un bloque. Si el
blocksize es omitido o se le asigna el valor 0, el sistema lo calcula. En los
sistemas actuales se recomienda informarlo con valor 0 (BLKSIZE=0).
UTILERÍAS JCL
Las utilerías permiten realizar operaciones con archivos sin tener que codificar un
programa. Las principales utilerías usadas son:
 DFSORT. Esta utilería es usada principalmente para llevar a cabo la organización de
los datos contenidos en un archivo. Va a continuación de la sentencia EXEC.
EJEMPLO:
//ORDENAR
EXEC PGM=SORT
//SYSOUT
DD SYSOUT=*
//SYSIN
DD *
SORT FIELDS=(1,5,CH,A,7,8,CH,D)
64
INCLUDE COND=(1,5,CH,EQ,C'LOPEZ')
SUM FIELDS=(14,9,PD)
OUTREC FIELDS=(1,100)
//SORTIN
DD DSN=...
//SORTOUT
DD DSN=...
//SORTWKnn DD UNIT=SYSDA,SPACE=(CYL,1,1))
Las funciones principales de esta utilería son:
 Ordenación de registros de un archivo
 Fusión de dos archivos en uno
 Copia de archivos
 Eliminación de registros de un archivo
 Reformateo de registros de un archivo
 Acumulación de valores de los registros de un archivo.
 IDCAMS. Es una utilería para gestionar archivos VSAM (Virtual Storage Access
Method), aunque también puede ser usada para archivos secuenciales. Un VSAM es un
método de acceso a los datos almacenados en un dispositivo de acceso directo. Debe
codificarse después de la sentencia EXEC como PGM=IDCAMS.
EJEMPLO:
//stepname
EXEC PGM=IDCAMS
//SYSPRINT
DD
SYSOUT=*
//SYSIN
DD
*
...
...
/*
65
Sus funciones principales son:
 Definir y borrar un archivo VSAM
 Copiar de un archivo a otro
 Construir índices alternativos
 Listar catálogos
 Imprimir archivos
 Transferir archivos de un sistema a otro
 IEBCOPY. Es una utilería que permite copiar archivos, principalmente particionados.
Debe codificarse después de la sentencia EXEC como PGM=IEBCOPY.
EJEMPLO:
//stepname
EXEC PGM=IEBCOPY
//SYSPRINT
DD
SYSOUT=*
//namefile1
DD
DSN=...
//namefile2
DD
DSN=...
//SYSIN
DD
*
...
/*
Las funciones principales que tiene asociadas esta utilería son:
 Copiar miembros de un archivo particionado
 Copiar un archivo particionado
 Sobre otro particionado
 Sobre un secuencial
 Reemplazar miembros de un particionado.
66
 IEBGENER. Es una utilería orientada al tratamiento de archivos secuenciales, pero
también puede ser usada para archivos particionados. Debe codificarse después de la
sentencia EXEC como PGM=IEBGENER.
EJEMPLO:
//stepname
EXEC PGM=IEBGENER
//SYSPRINT
DD
SYSOUT=*
//SYSUT1
DD
DSN=...
//SYSUT2
DD
DSN=...
//SYSIN
DD
DUMMY
/*
Las funciones principales que tiene asociadas esta utilería son:
 Crear una copia de un archivo secuencial o crear una copia de un miembro en
un archivo particionado
 Crear un archivo particionado o un miembro a partir de un
secuencial
 Cambiar el blocaje de un archivo
TIPOS DE ARCHIVOS
ARCHIVOS SECUENCIALES. MÁXIMO 44 CARACTERES

Los registros sólo pueden ser procesados en forma secuencial desde el inicio del
archivo.

Se pueden agregar registros sólo al final del archivo y no entre ds registros ya
existentes.
67

Pueden ser almacenados en cualquier tipo de dispositivo (disco, cinta, cartucho, etc).

Un archivo puede ser almacenado en varios volúmenes.
ARCHIVOS PARTICIONADOS (PDS).
Es un conjunto de registros llamados miembros que son escritos en forma secuencial, y
registrados con un nombre en el directorio del archivo. Tal directorio es un índice que es
usado para localizar un miembro dentro de un PDS, los nombres en el directorio son
almacenados en orden secuencial ascendente. Un PDS es comúnmente conocido como
Librería o Biblioteca y es almacenado en un solo volumen (DASD – Direct Access Storage
Device).
ARCHIVOS GENERACIONALES.
Un Generational Data Group(GDG),
cronológicamente o
es un grupo de archivos relacionados
funcionalmente. Cada archivo que depende de un GDG es llamado
generación. Se utilizan para almacenar diferentes versiones de un solo archivo.
EJEMPLO:
Nombre lógico
Nombre Físico
Referencia
SALDOS.CTAS(0)
SALDOS.CTAS.G0003V00
Última generación
SALDOS.CTAS(-1)
SALDOS.CTAS.G0002V00
Penúltima generación
SALDOS.CTAS(-2)
SALDOS.CTAS.G0001V00
Ante-penúltima
generación
Tabla 6. Ejemplo de versiones de un archivo GDG
68
Dependiendo del número de versiones que sean definidas para el GDG, se deberá hacer
referencia a las versiones anteriores con –n, es decir, -1,-2,-3,-4, etc. y a la última generación
se le asignará el valor 0.
NOTA: El máximo de generaciones permitidas es de 255.
ARCHIVOS VSAM.
Los archivos VSAM pueden clasificarse de la siguiente forma:

ESDS (Entry Sequenced Data Storage): Los registros son almacenados y
recuperados en el mismo orden en el que se graban. Sus características son:
o
No tienen índices ni claves
o
Los registros se añaden al final del archivo
o
Sólo pueden ser accedidos en forma secuencial
o
Son similares a los archivos secuenciales, pero no pueden grabarse en cinta

KSDS (Key Sequenced Data Storage): Los registros se recuperan en el orden
de un campo definido como clave. Son los más usados. Sus características son:
o
Necesitan una clave, que debe ser única, para identificar el registro.
o
La clave se utiliza para insertar el registro en el archivo y recuperarlo después.
o
Admite claves alternativas (secundarias), no únicas
o
Admite acceso directo (por clave) o secuencial

RRDS (Relative Record Data Storage): Los registros se almacenan en el orden
dado por un número de secuencia. Sus características son:
o
No tienen índices ni claves.
o
Los registros se añaden según un número asignado de 1 a n, siendo n el número
máximo de registros del archivo.
69
o
Este número puede ser asignado por el programa del usuario o por el sistema.
o
Admite acceso directo (por número) o secuencial.
DB2 (DATA BASE II)
Es una marca comercial, propiedad de IBM, bajo la cual se comercializa un sistema de
gestión de base de datos. DB2 versión 9 es un motor de base de datos relacional que integra
XML de manera nativa, lo que IBM ha llamado pureXML, que permite almacenar
documentos completos dentro del tipo de datos XML para realizar operaciones y búsquedas de
manera jerárquica dentro de éste, e integrarlo con búsquedas relacionales.
Es una herramienta usada en las DBMS (Sistemas Manejadores de Bases de Datos),
corre bajo el sistema operativo MVS de IBM.
CARACTERÍSTICAS DE DB2
Utiliza lenguaje SQL (Structure Query Language), para acceder a los datos. En este
lenguaje se distinguen dos sublenguajes:

Data Definition Language (DDL). Provee la definición o descripción de las
tablas de las bases de datos. Manipula la estructura de las tablas.

Data Manipulation
Language (DML).
Realiza la manipulación
o
procesamiento de las tablas. Permite el acceso, actualización y mantenimiento
de los datos.
TABLAS
Los datos en las bases de datos DB2 están disponibles para un programa de aplicación
como un conjunto de tablas. Las tablas son estructuradas en datos de dos dimensiones,
compuestas de FILAS y COLUMNAS.
70
El nombre de una tabla está formado por un identificador de la persona que creó la
tabla, y de un nombre descriptivo de esta, separados por punto (OWNER.NTABLA).
TIPOS DE DATOS
Los tipos de datos que puede contener una columna de una tabla son:
-
-
-
Cadenas de caracteres EBCDIC:

CHAR  Cadenas de longitud fija

VARCHAR  Cadenas de longitud variable
Datos numéricos:

SMALLINT  Enteros binarios de media palabra

INTEGER  Enteros binarios de una palabra

DECIMAL  Números decimales

FLOAT  Números de coma flotante
Cadenas de caracteres gráficos:

GRAFHIC  DBCS (Double Byte Character Data) de longitude

VARGRAPHIC  DBCS de longitud variable
ÍNDICES
El DB2 proporciona un mecanismo de acceso a tablas, acceso directo mediante índices.
El índice debe ser único. Están basados en los valores de los datos de una o más columnas, y
son mantenidos automáticamente por el DB2 cuando se produce un cambio en los datos
contenidos en la tabla. Un programa no se refiere a los índices, sino que el DB2 selecciona el
índice para acceder a los datos que el programa requiere.
71
El índice de una base de datos es una estructura de datos que mejora la velocidad de las
operaciones, permitiendo un rápido acceso a los registros de una tabla en una base de datos. Al
aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los
cuales se hacen frecuentes búsquedas.
El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de
elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un
elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez
encontrado, devolver el registro que se encuentre en la posición marcada por el índice.
A continuación un ejemplo de cómo se barre una tabla con índices en un programa
COBOL:
PERFORM VARYING
INDICE-X FROM 1 BY 1
UNTIL INDICE-X
> 100
CARGA-TABLA-CONTRATOS
Descripción: se realiza la carga de los primeros 100 registros de la tabla de contratos.
SQL (LENGUAJE DE CONSULTA ESTRUCTURADO)
El lenguaje de consulta estructurado (SQL) Es un lenguaje de manipulación de
datos, el cual al ser utilizado en combinación con un manejador de base de datos permite
acceder y manipular datos, así como definir datos (DB2).
Los datos contenidos en las tablas de la Base de datos son accedidos a través de
QUERIES, que son sentencias casi en lenguaje inglés. En la imagen 15 se observa claramente
la relación entre una terminal, el DB2 y los comandos SQL los cuales permiten el acceso a las
tablas solicitadas y devuelven un resultado como respuesta a la terminal que hizo la petición.
72
COMANDOS
SQL
DB2
TABLA 1
TABLA 2
TABLA 3
TABLAS
Imagen 15. Relación DB2, SQL y Terminal
COMPONENTES DEL SQL
El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de
agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular
las bases de datos.
COMANDOS
Existen dos tipos de comandos SQL:
-
Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.
-
Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la
base de datos.
Tabla 7.Comandos DLL
Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP
Empleado para eliminar tablas e índices
73
Utilizado para modificar las tablas agregando campos o cambiando la
ALTER
definición de los campos.
Tabla 8. Comandos DML.
Comando Descripción
Utilizado para consultar registros de la base de datos que satisfagan un
SELECT
criterio determinado
Utilizado para cargar lotes de datos en la base de datos en una única
INSERT
operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
CLÁUSULAS
Las cláusulas son condiciones de modificación utilizadas para definir los datos que
desea seleccionar o manipular.
Tabla 9. Cláusulas de SQL.
Cláusula Descripción
Utilizada para especificar la tabla de la cual se van a seleccionar los
FROM
registros
74
Utilizada para especificar las condiciones que deben reunir los registros que
WHERE
se van a seleccionar
GROUP
Utilizada para separar los registros seleccionados en grupos específicos
BY
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER
Utilizada para ordenar los registros seleccionados de acuerdo con un orden
BY
específico
Tabla 10. Operadores lógicos.
O
Operador Uso
Es el "y" lógico. Evalua dos condiciones y devuelve un valor de verdad sólo
AND
si ambas son ciertas.
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdar si
OR
alguna de las dos es cierta.
NOT
Negación lógica. Devuelve el valor contrario de la expresión.
Tabla 11. Operadores de comparación.
Operador
<
Uso
Menor que
75
>
Mayor que
<>
Distinto de
<=
Menor ó Igual que
=
Mayor ó Igual que
=
Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE
Utilizado en la comparación de un modelo
Utilizado para especificar registros de una base de datos
In
FUNCIONES DE AGREGADO
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de
registros para devolver un único valor que se aplica a un grupo de registros.
Tabla 12. Funciones SQL de agregado.
Función Descripción
Utilizada para calcular el promedio de los valores de un campo determinado
AVG
COUNT Utilizada para devolver el número de registros de la selección
SUM
Utilizada para devolver la suma de todos los valores de un campo
76
determinado
MAX
Utilizada para devolver el valor más alto de un campo especificado
MIN
Utilizada para devolver el valor más bajo de un campo especificado
USO DE SQL EN UN PROGRAMA COBOL
Dentro de un programa COBOL Las sentencias SQL son precedidas por:

EXEC SQL que indica el inicio de la sentencia SQL

END-EXEC que indica el final de la sentencia SQL
La sintaxis de estas sentencias debe ser codificada al inicio y al final de cada sentencia
SQL entre las columnas 12 y 72 del programa COBOL y deben terminar con un punto, a
menos que esté contenida dentro de una estructura IF.
EJEMPLO:
EXEC SQL
SELECT
*
INTO :VARIABLE-EMP
FROM EMPLEADOS
END-EXEC.
VARIABLES HOST
Son los campos declarados en la WORKING-STORAGE que permiten comunicarse a
COBOL y SQL. Estos campos pueden ser usados directamente entre los dos lenguajes.
Las variables Host pueden ser usadas para:
•
Para realizar INSERT, UPDATE, DELETE de columnas.
•
Recibir valores de columnas.
77
•
Pueden ser usadas en cláusulas WHERE.
Ejemplo del uso y declaración de variables Host se puede visualizar en las siguientes
Tablas (13 y 14).
WORKING-STORAGE SECTION.
EXEC SQL
SELECT
EMP_NOMBRE,
EMP_ID,
EMP_SALARIO, EMP_COMM
INTO
:HOST-NOMBRE, :HOST-ID,
:HOST-SALARIO, :HOST-COM
FROM
EMPLEADOS
WHERE EMP_NOMBRE = :WS-NOMBRE
END-EXEC.
01 CAMPOS-WORK.
05 WS-HOST-VARIABLES.
10 HOST-NOMBRE PIC X(30).
10 HOST-ID
PIC X(08).
10 HOST-SALARIO
PIC S9(6)V9(2) COMP-3.
10 HOST-COM
PIC S9(6)V9(2) COMP-3.
Tabla 13. Ejemplo de comunicación entre COBOL y SQL por medio de variables HOST.
TABLA EMPLEADOS:
EMP_
NOMBRE
EMP_ID
EMP_SALARIO
EMP_COMM
JONES
12345678
90,000.00
9,000.00
Tabla 14. Relación entre variables host y campos de una tabla.
REGLAS PARA EL USO DE VARIABLES HOST

No necesariamente deben ser iguales a los nombres de las columnas.

Deben ser definidas en la Working Storage.

Cuando son usadas en una sentencia SQL deben ser precedidas por ‘:’.

La definición de las variables host debe coincidir con cada una de las columnas
definidas en la tabla.

La estructura de las variables host sólo pueden contener como máximo un
subnivel.
78

La longitud y tipo definidos para las variables Host, debe ser idéntica a la
definición de las columnas de la tabla DB2.
EJEMPLOS DE MODIFICACIÓN DE TABLAS EN COBOL CON SQL

Inserción de registros en una tabla.
EXEC SQL
INSERT INTO nombre-tabla
VALUES (:variable-host1,
:variable-host2)
END-EXEC

Actualización de registros en una tabla.
EXEC SQL
UPDATE nombre-tabla
SET
columna1 = :variable-host1,
columna2 = :variable-host2
WHERE condición
END-EXEC

Eliminación de registros en una tabla.
EXEC SQL
DELETE FROM nombre-tabla
WHERE condición
END-EXEC
ESTÁNDARES DE PROGRAMACIÓN SQL
Utilización de Data Definition Leguaje (DDL). La definición y creación de tablas,
índices, etc., son responsabilidad del Administrador de Base de Datos.
En la manipulación de datos (DML) se deben seguir los siguientes estándares:
79

Codificar las sentencias SQL en el programa COBOL, entre las columnas 12 y
72.

Poner punto al final de la sentencia SQL (EXEC SQL y END-EXEC).

Si la sentencia SQL se encuentra dentro de un IF no se pondrá punto en la
sentencia END-EXEC.

Utilizar una sangría de 4 caracteres a la derecha del EXEC SQL.

Alinear todos los verbos SQL y cláusulas.

Evitar el uso de predicados complejos ‘OR’.

Especificar las columnas que sean requeridas únicamente.
80
CAPÍTULO 3. OUTSOURCING E INSTITUCIÓN FINANCIERA
VALORES CORPORATIVOS SOFTTEK S. A. DE C. V.
RESEÑA HISTÓRICA10
Fundada en 1982, es un proveedor global de servicios orientados a procesos de TI
con 30 oficinas en Norteamérica, Latinoamérica, Europa y Asia. Con nueve Centros de
Desarrollo Global en México, China, Brasil, Argentina y España.
Softtek mejora el tiempo de entrega de soluciones de negocio, reduce costo de las
aplicaciones
existentes,
entrega
aplicaciones
mejor
diseñadas
y
probadas,
y
produce resultados predecibles para grandes empresas en más de 20 países. A través de
modelos de servicios de entrega On-Site, On-Shore y su marca registrada Global Nearshore™,
Softtek ayuda a los CIO’s a incrementar el alineamiento con el negocio. Softtek es el creador y
líder de la industria Nearshore.
El termino Nearshore fue implementado por la empresa a partir de 1997 con sus
primeros clientes en Estados Unidos. Está propuesta otorga los siguientes beneficios al cliente:

Proximidad y misma zona horaria

Compatibilidad cultural y facilidad para hacer negocios

Ahorros en costos
La empresa no solo invierte en impulsar a las nuevas generaciones a adentrarse al
mundo de las tecnologías de información creando academias para que los egresados de las
carreras de informática y afines tengan su primer oportunidad de empleo; también es una
empresa socialmente responsable que apoya cualquier movimiento altruista además de fundar
10
Página oficial Valores Corporativos Softtek S.A. de C.V. 2014, http://www.softtek.com/mexico.
81
cánones de acción en sus colaboradores los cuales son básicamente valores que rigen a la
organización, tales como la apertura, la autodeterminación, el compromiso, la confianza, el
respeto, entre muchos más.
Todo esto convierte a Softtek en una de las mejores empresas en el ramo y una gran
oportunidad para hacer una carrera dentro de esta institución.
DESARROLLO DEL CAPITAL HUMANO
Para Softtek, desde siempre ha sido una prioridad contar con personas capaces pero
sobretodo que estén a gusto con las labores que desempeñan día tras día, es por ello que ha
buscado la forma de fecundar en cada uno de los que colaboramos con la empresa cánones de
acción que nos permitan desarrollarnos como personas y como profesionistas, aunado a esto es
importante que adquiramos el conocimiento necesario para llevar a cabo dichas labores, y a su
vez que aprendamos a aplicar lo que sabemos. Es por ello que Softtek se ha dado la tarea de
instruir constantemente a su personal, en mi caso particular a continuación narrare el proceso
de capacitación que me formo como programador.
CAPACITACIÓN
Posterior a mi egreso de la Facultad de Estudios superiores Cuautitlán ingrese, gracias
a las publicaciones de la bolsa de trabajo de la Licenciatura en Informática, al proceso de
selección de personal para iniciar mi formación como Programador de Software en COBOL.
Para obtener un lugar dentro de la Academia de COBOL 2012 se presenta un examen
de lógica, el cual contiene ejercicios sobre sucesiones matemáticas y problemas similares a los
siguientes: en un rango del 1 al 100 obtener la suma de los números primos, debe realizarse el
diagrama de flujo que da solución al problema. Cabe mencionar que gracias al conocimiento
82
que adquirí en temas como diagramación y lógica en mis años de instrucción dentro de la
facultad me fue sencillo resolver cada problema, dando como resultado una calificación
satisfactoria y la oportunidad de ingresar a la academia.
La capacitación consta de 5 semanas abordando temas como Programación
Estructurada la cual nos ayuda a realizar un mejor análisis y desarrollo de diagramas de flujo y
así obtener un programa con cero defectos; DB2 (sistema de gestión de base de datos), SQL
(lenguaje de consulta estructurado) y JCL (Lenguaje de Control de Trabajos) los cuales como
ya sabemos se relacionan con el desarrollo de programas en COBOL.
Una vez contemplados los tópicos necesarios para programar en COBOL entramos en
materia y realizamos las siguientes prácticas:

Programa que lee un archivo de entrada y realiza un reporte de empleados por
planta.

Programa que lee 2 archivos de entrada y realiza un match de dichos archivos
obteniendo un reporte de empleados por planta.

Programa que lee un archivo y realiza un reporte de empleados, por planta, banco y
número de cuenta.
Enfatizando sobre el desarrollo de programas para Entidades Financieras, tema que
trataremos más adelante, en su mayoría se solicita la realización de reportes para tener un
control de las transacciones que los cuentahabientes ejecutan día con día, por esto los
ejercicios efectuados en la academia se enfocan a ello.
El objetivo de la academia es proveernos de los conocimientos necesarios para
enfrentarnos a solicitudes de nuestro usuario, que para el caso que tratamos sería cualquier
institución bancaria.
83
En cuanto termina el período de capacitación y se obtiene el resultado de las
evaluaciones se encuentran dentro del porcentaje solicitado somos asignados a Fábrica de
Software.
FABRICA DE SOFTWARE
El trabajo en factoría o Fabrica de Software (FSW) está estrechamente ligado al de
Diseño y Desarrollo (D&D) dentro de las instalaciones del Cliente (El Banco), tema sobre el
cual hablaremos más adelante. Como paso consecutivo a la capacitación el colaborador es
asignado como Programador dentro de la FSW para realizar la Atención de Requerimientos
provenientes del Área de D&D del respectivo cliente .
La fábrica de software se encuentra dividida en Equipos de Trabajo conformados por
programadores quienes son dirigidos por un Líder quien es encaminado por un Delivery
Manager que se mantiene en contacto directo con el Infiltrado, este es la persona encargada
del contacto con el D&D del Banco para recibir las especificaciones relacionadas a un
determinado proyecto.
En resumen el camino correcto que se sigue para atender un requerimiento es el que se
enlista a continuación y del cual puede visualizarse con mayor detalle la relación entre una
institución bancaria y el outsourcing en la Imagen 16:
1.- El usuario de negocio (Persona Interna del Banco) tiene una necesidad en relación a
mejorar algún proceso o la creación de uno nuevo,
2.- El usuario de negocio da a conocer al Business Project (BP) o Socio de Negocio
dicha necesidad, y este recrea la información del usuario y se la hace saber al D&D
84
3.- El D&D se encarga de realizar el análisis de dicha petición para redactar los
documentos necesarios que serán enviados por medio del Gestor de Factorías a la Fábrica de
Software que atenderá la petición.
4.- Una vez seleccionada la FSW el D&D se mantiene en contacto con el Infiltrado que
pertenece a la factoría en cuestión y le envía la solicitud de atención de requerimientos para
que sea llevada a cabo.
INSTITUCIÓN BANCARIA
OUTSOURCING
GESTOR DE
FSW
LÍDER
EQUIPO DE
PROGRAMADORES
BD
ÁREA D&D
METODOLOGÍAS, ESTÁNDARES Y PROCESOS DE DESARROLLO DEL CLIENTE
METODOLOGÍAS Y PROCESOS DE DESARROLLO DE LA CONSULTORA
Imagen 16. Modelo de relación entre FSW e Institución Bancaria.
La asignación dentro de la Fábrica de Software tiene una duración aproximada de 3 a 4
meses, durante los cuales realice las siguientes actividades:

Modificar líneas de código en un JCL

Inhibir líneas de código en un programa COBOL

Realizar un programa COBOL que genere un reporte.
85
Las 2 primeras se trataron de modificaciones sencillas ya que los D&D envían el
código tal y como desean sea agregado, inhibido o modificado, por lo que los programadores
debemos efectuar es el análisis de impacto que conlleva el cumplir con las modificaciones
requeridas e informar si existe alguna afectación negativa al componente.
En el caso del programa que genera un reporte el proceso es más delicado, ya que se
debe seguir una serie de pasos para realizarlo: análisis, diseño, construcción y pruebas para
que este cumpla con las expectativas del cliente.
Una vez que finaliza la atención del requerimiento ya sean modificaciones,
componentes nuevos, etc., se realizan pruebas solo en los casos en que sean solicitadas por el
D&D y se envían evidencias de ellas, los códigos de programa y los documentos que avalan el
cierre de la solicitud.
SERVICIOS QUE OFRECE
Softtek ofrece:
-
SERVICIOS

Servicios Relacionados a Aplicaciones

BPO

Soporte de Infraestructura de TI

Productos de Software y servicios relacionados
86
PRINCIPALES COMPETIDORES
Hoy en día el mercado de los servicios y consultoría IT se ha incrementado. De
acuerdo a un estudio realizado; en 2010 este sector amplio su tamaño un 9.3%; en 2011 lo hizo
un 9.8% y, para finales de ese año se estima que hubo un aumento del 12%11.
De acuerdo con la Encuesta Anual de Consultoría IT 2012, conducida por Netmedia
Research, las empresas de IT a las que las organizaciones recurren en mayor medida para
contratar todo tipo de servicios de consultoría son Ernst & Young, Deloite, Neoris, IBM
Global Services, PricewaterhouseCoopers, Gartner y Accenture (en ese orden).
En relación a las encuestas realizadas por Select, la consultoría es el segmento con
mayor demanda, por los beneficios que presenta al convertirse en valor agregado y generador
de ganancias para los proveedores. No sin antes tomar en cuenta que, dichas consultorías
deben ofrecer: calidad de excelencia en el servicio y especialización en las prácticas que
ofrecen. El porcentaje de empresa que contratarían este servicio se logra apreciar en la
siguiente imagen.
Imagen 17. La gráfica representa el porcentaje de
empresas que contratarían consultoría en el año.
11
Fabiola González, “Es el año de la especialización”, 2012.
87
Francisco Leyva, Director de Diseño y Desarrollo de BBVA Bancomer12, comenta
que, el mercado de consultoría IT en México ha forzado mucho los precios y con ello se
redujo la calidad del servicio. La institución bancaria cuenta con 4 pilares en consultoría IT
dedicadas al área de Diseño y Desarrollo, las cuales son: Accenture, Everis, Hildebrando y
Softtek. Por el momento cabe mencionar que, al analizar el nivel de servicio recibido, Leyva
considera que Accenture se destaca por su capacidad para ejecutar; Softtek e Hildebrando
sobresalen por su habilidad para proveer recursos con mucha oportunidad, y Everis se
diferencia por brindar una aproximación más cercana al cliente.
Prosigue, una de las grandes áreas de oportunidad es la especialización: “Las
consultoras se han empezado a querer meter en todo; no percibo una diferenciación clara”,
expone.
La Encuesta Anual de Consultoría IT 2012 también calificó, en niveles de “muy malo”
a “muy bueno” (de 1 a 5 puntos), el servicio recibido en diversos temas, como apego al
alcance del proyecto, manejo de presupuestos o satisfacción de los usuarios. Si bien las 15
compañías evaluadas se ubican en la media de entre 3 y 4.5 puntos de calificación, destaca el
hecho de que el compromiso de puntualidad en la entrega de servicios fue el que más bajo
promedio obtuvo.
Coca Cola FEMSA actualmente prefiere apoyarse en los servicios de consultoría
internos de proveedores de software y redes con que sostiene su infraestructura IT, como SAP
y Cisco, o bien en casas de consultoría más económicas, como es el caso de Hasar, Logos o
Disa (para elementos commodity, como la implementación).
12
Fabiola González, “Es el año de la especialización”, 2012.
88
Este resultado se obtiene solicitando al mercado elegir, entre un listado de 15
organizaciones del rubro de los servicios y consultoría IT, la primera, segunda y tercera
compañía que, en su caso particular, elegirían como las principales, las 3 mejores consultoras
que se eligieron se muestran en la imagen 18. El resultado surge de la asignación de valores a
cada una de las firmas consultoras, dependiendo su posición y el número de veces que fueron
mencionadas. 13
Imagen 18. Dentro del mismo estudio se
definió el top de las 3 mejores consultoras,
y este fue el resultado.
En resumen, para que una consultoría IT figure entre las más destacadas para las
organizaciones que requieren de este servicio, debe cumplir con parámetros como: apego al
alcance del proyecto, administración de cambios a lo largo del mismo, asignar recursos de
acuerdo a lo contratado, compromiso de puntualidad en la entrega, satisfacción de los usuarios
y manejo de presupuesto entre otros.
Softtek, Servicios Corporativos, S. A. de C. V. se reconoce por ofrecer un servicio de
calidad y mejora para el cliente.
Terminal en línea
13
Fabiola González, “Es el año de la especialización”, 2012.
89
DESARROLLO DE ACTIVIDADES EN LA ENTIDAD BANCARIA
ÁREA DE DISEÑO Y DESARROLLO
Una institución financiera se apoya del Outsourcing para atender diversas actividades
dentro del comercio, para nuestro caso en particular existe el Área de Diseño y Desarrollo la
cual desarrolla las siguientes actividades:
-
Proporciona soluciones y servicios de información con calidad y seguridad a los
clientes apoyando las estrategias de la Corporación.
-
Contribuye a la obtención de rendimiento atractivo para los accionistas a través de
la utilización de tecnología adecuada y oportuna, en forma eficaz, apoyando así el
desarrollo económico de la comunidad.
En resumen, el área de diseño y desarrollo, como su nombre lo indica, desarrolla
soluciones aplicativas que permiten al cliente participar en cualquier negocio, sin
restricciones, con la mejor oportunidad, calidad y mejor coste de todo el mercado.
El siguiente organigrama permite identificar el lugar que ocupa el área de D&D dentro
de un institución bancaria.
90
ORGANIGRAMA DEL ÁREA DE DISEÑO Y DESARROLLO
ÁREA D&D
BANCO
DIRECCIÓN
D&D CANALES
DIRECCIÓN
D&D MEDIOS
DE PAGO
DIRECCIÓN
INFRAESTRUC
TURA
DIRECCIÓN
AFILIACIÓN
DIRECCIÓN
PROYECTOS
Esta es, a grandes rasgos, la distribución del área, sin embargo la dirección de nuestro
interés, debido a que en ella me encuentro laborando, es la Dirección Diseño y Desarrollo
Medios de Pago.
MEDIOS DE PAGO
Diariamente los clientes de cualquier institución financiera realizan millones de
transacciones por segundo, por ende se manejan grandes cantidades de datos en un lapso tan
corto, lo que con nos lleva a mencionar que; aún a pesar del uso de nuevas tecnologías y
lenguajes de programación (podríamos llamarlos modernos o nuevos) como JAVA para el
desarrollo de programas que sean capaces de realizar estos procesos de forma “rápida”; hoy en
día el COBOL se sigue utilizando como motor para el desarrollo de dichas aplicaciones
91
gracias a los beneficios que ofrece, los cuales se han mencionado en apartados anteriores
acerca del leguaje COBOL.
Cuando nos referimos a transacciones estas pueden ser: pagos en ventanilla, compras
con tarjeta de débito o de crédito, devoluciones de compra, aclaraciones a solicitud del cliente,
operaciones por medios móviles, online o ventanillas; justamente la Dirección de Medios de
Pago es la encargada de controlar el flujo de información que se ejecuta cada que un cliente
lleva a cabo una operación. El siguiente organigrama hace mención de la subdirección de
tarjetas de crédito específicamente ya que es una de las divisiones que tiene actualmente
medios de pago y la cual es el área en donde ejerzo labor actualmente.
ORGANIGRAMA
DIRECCIÓN
D&D MEDIOS
DE PAGO
SUBDIRECCIÓN
COMERCIOS
SUBDIRECCIÓN
FACTURACIÓN
SUBDIRECCIÓN
PRODUCTOS
92
SUBDIRECCIÓN
TDC
FUNCIONES COMO D&D
Como D&D dentro de la Dirección Medios de Pago mis funciones han sido: desarrollar
nuevos proyectos y atención de incidentes que se presentan como resultado de una falla en
algún proceso.
DESARROLLO DE PROYECTOS
Para el desarrollo de nuevos proyectos se requiere en primera instancia que surja la
necesidad de mejorar (modificar) algún proceso existente o implementar uno nuevo, para tales
casos existe un proceso, es decir, una serie de pasos a seguir para obtener un resultado
satisfactorio.
GESTIÓN DE INICIATIVAS
En primera instancia el usuario o cliente (Ejecutivo) debe enviar el requerimiento de lo
que desea que se realice al BP quien se encarga de interpretar la petición del usuario y enviar
como respuesta un documento denominado Modelo de Solución que como su nombre lo dice
detalla la solución al problema y ofrece un plan de trabajo donde se desglosan las actividades a
realizar y el tiempo que tomara cada una en llevarse a cabo.
Una vez que el usuario aprueba la solución se envía la documentación al Área de
Diseño y Desarrollo encargada para que revise el Modelo de Solución y el Plan de Trabajo,
posteriormente dicha área devuelve el documento aprobatorio, realiza la petición de la Fábrica
de Software que atenderá el requerimiento y comienza la siguiente fase del proyecto.
ANÁLISIS
En base a la solución ofrecida por el BP, nosotros como D&D debemos analizar los
requisitos especificados como: el flujo de información del proceso, el impacto hacia otros
componentes, accesos a Bases de Datos, archivos de entrada y salida necesarios para su
93
ejecución, horarios de ejecución, si se trata de un nuevo proceso incluso pueden existir
componentes con un funcionamiento similar y es recomendable tomarlos como base para
evitar retrabajo, es lo que llamamos reutilización de código. Cuando hablamos de una
modificación a algún proceso debe tomarse en cuenta la afectación que provocará cambiar
ciertas líneas de código, longitud de archivos, accesos a Tablas, etc.
A su vez dentro de esta fase se definen: componentes, interfaz de usuario (si el proceso
es Batch o Línea), Bases de datos (accesos o nuevas tablas), planeación y diseño de pruebas, y
plan de instalación.
DISEÑO
Posteriormente comienza la fase de diseño donde se realiza justamente el diseño de las
estructuras de control o diagramas de flujo del programa nuevo o la narración de la
modificación. Es decir, en este punto se realizan los documentos que detallan los requisitos de
modificación o de desarrollo de un nuevo programa, se debe tomar en cuenta que al escribir
dicho documento no se utilizará de ninguna forma código.
Ejemplo de solicitud de un párrafo dentro de un programa nuevo sería:
Párrafo Inicio. En este párrafo se realiza la inicialización de variables y apertura
de archivos de entrada y salida.
Ejemplo de solicitud de modificación:
Dentro del párrafo Proceso-Especifico, eliminar la inicialización de la variable
FECHA-OPERA. A su vez inhibir la definición de dicha variable.
Los programadores deben tener el conocimiento necesario para interpretar estas
especificaciones a código COBOL.
94
CONSTRUCCIÓN
En cuanto una vez aprobadas las fases de análisis y diseño, el plan de trabajo y de
instalación, el Gestor de Factoría elije la Fábrica de Software (FSW) que deberá atender el
requerimiento. Es aquí donde el área de Diseño y Desarrollo se pone en contacto con el
Infiltrado o Facilitador, quien es el intermediario entre D&D y FSW, y por medio de él envía
el catálogo de requisitos para la construcción de componentes o su respectiva modificación.
PRUEBAS
En cuanto la factoría termina la construcción de componentes, son entregados al Área
de D&D para su revisión y aprobación. Posterior a ello, el D&D lleva a cabo las pruebas
necesarias para verificar y validar el correcto funcionamiento de los programas, que estos
cumplan con el objetivo para el que fueron creados o modificados y a su vez comprobar que
no existe afectación alguna para con otros procesos de los cuales pudieran existir
dependencias. La ejecución de las pruebas sirven para asegurar el funcionamiento de cada uno
de los componentes y deben respaldarse las evidencias de ellas: En tablas, archivos, pantallas,
etc.
INSTALACIÓN
Para poder instalar un componente se debe obtener el VoBo del Usuario que lo solicito,
es decir, la fase de pruebas no ofrece la evidencia de que todo se realizó correctamente y que
no habrá afectación alguna a ningún proceso.
El producto final del desarrollo del proyecto es instalado para que pueda utilizarse
productivamente, es decir, con casos reales, con información de todos los clientes del Banco,
ya sea en cajeros automáticos, solicitudes en ventanilla, uso de practicaja, operaciones en
línea, etc.
95
ATENCIÓN DE INCIDENCIAS
Como en todo proyecto no siempre todo es “color rosa”, aunque si es desarrollado
adecuadamente no debería existir problema alguno, sin embargo en cualquier negocio el
cliente no siempre tiene claro qué es lo que solicita y al expresarlo quizá no se dé a entender lo
suficiente como para obtener el resultado deseado. Por desgracia muchas veces se da fin a un
proyecto y al ejecutarse con información real, da como resultado un error, un descuadre de
información, el envío de información errónea en un reporte, etc.
Es en este momento donde se presentan incidentes productivos que deben atenderse al
instante, no existen planes de atención, instalación, implementación, ni ningún procedimiento
a seguir, simplemente se debe analizar el resultado y error y dar una solución a dicho
problema. Se modifican componentes, tablas, archivos o cualquier componente que afecte la
ejecución de procesos dependientes.
96
CONCLUSIONES
Es curioso y quizá hasta molesto, escuchar en algunas conversaciones que COBOL es
un lenguaje “muerto”. Sin embargo, como ya distinguimos durante el desarrollo de este
trabajo, es un lenguaje universal que muchas empresas aún utilizan.
A pesar de la creencia de que COBOL está en desuso, la realidad es que casi todos los
sistemas que requieren gran capacidad de procesamiento por lotes (Batch), tanto las entidades
bancarias como otras grandes empresas con sistemas mainframes lo siguen utilizando.
Actualmente, podemos decir que para este lenguaje no existe ninguna limitación. La
orientación a objetos, la programación orientada a bases de datos, la programación en la web,
entre muchas más, son opciones disponibles para COBOL que hacen de éste lenguaje una
opción totalmente viable. Que un lenguaje pueda garantizar esto, sobre todo para uno de 50
años de existencia en un mundo en el que las novedades duran sólo algunos meses es más que
suficiente para ofrecerle un lugar preferente como principal opción en el entorno de los
lenguajes de programación.
Dentro de la institución financiera en la que me encuentro laborando me he percatado
que, las aplicaciones hechas con COBOL suelen ser de gran tamaño y la mayoría contienen
más de un millón de líneas de código. Las aplicaciones en COBOL también tienen una larga
duración temporal asegurando que un programa no se quedará anticuado con la aparición de
un nuevo lenguaje u otro programa, existen aplicaciones que llevan utilizándose durante
períodos de entre 10 y 30 años. Además de que las áreas críticas de negocios, finanzas y
seguros, son procesados mediante aplicaciones desarrolladas en COBOL.
97
Ventaja principal del uso de aplicaciones hechas en COBOL es que estas suelen mover
y utilizar grandes cantidades de datos lo cual nos permite mencionar archivos de bases de
datos de terabytes de peso.
No se puede discriminar la iniciativa de que los jóvenes de hoy tengan la oportunidad
de aprender COBOL, las instituciones educativas a nivel profesional deben plantear
seriamente la idea de adicionar la enseñanza de este lenguaje a sus planes de estudio como
ventaja ante la amplia demanda que existe hoy en día de programadores COBOL, en mi
personal punto de vista es una gran oportunidad de crecimiento laboralmente hablando.
Actualmente siguen existiendo decenas de usuarios COBOL e instituciones que
capacitan a individuos en el aprendizaje de dicho lenguaje, como es el caso de los servicios de
consultoría los cuales ofrecen recursos humanos a instituciones principalmente financieras
para desempeñar actividades en el área del COBOL. Nuestro lenguaje en cuestión evoluciona
constantemente, en especial por la cantidad de aplicaciones que hoy siguen funcionando y que
superan en número a los demás lenguajes gracias a tanta difusión en el pasado y ello propicia
su continua evolución.
Bill Curtis, ahora jefe de análisis de software y la empresa de medición de CAST, ha
dicho que los bancos deben quedarse con las antiguas aplicaciones COBOL ya que estas no
tienen los problemas de seguridad y desarrollo que aparecen con los nuevos lenguajes como
Java, no están divididos en módulos más pequeños y su funcionamiento es sumamente
complejo. Además, al tratarse de sistemas antiguos hay muy poca gente cuyos conocimientos
técnicos permitan detectar y resolver rápidamente los problemas que surgen.
“Los programas COBOL son inmensamente complejos, el tamaño de sus módulos
tiene 600 líneas de código. Mientras que el tamaño de un módulo Java tiene 30 líneas de
código”, ha declarado. "En COBOL existe una fuerte correlación entre el tamaño del sistema
98
y de la densidad de los defectos. Es exponencial, cuanto mayor es el sistema, más alta es la
densidad de los defectos en cada cien líneas14", ha puntualizado. El científico considera que el
problema de la industria financiera es que los sistemas se crearon hace años y muchos operan
con poca comprensión de por qué ha sido diseñado de esta manera.
Se puede pensar en migrar estos programas a JAVA, sin embargo esto daría como
resultado un largo período de cifras altas de errores generados por los sistemas sin mencionar
las pérdidas económicas. ¿Podría lograrse? Sí, si los bancos dedicaran gran parte de su tiempo
a analizar y conocer perfectamente su funcionamiento.
Para finalizar, cito palabras de Bill Gates: "No sé qué lenguajes habrá en el futuro, pero
seguro que COBOL estará todavía allí".
14
Computer World, “Los bancos seguirán con COBOL porque Java no es la solución a sus problemas”, Junio
2013, http://www.computerworldmexico.mx/Articulos/29353.htm.
99
REFERENCIAS
DIGITALES
Bancomer,
G.
F.
(s.f.).
Pagina
Oficial.
Recuperado
http://www.bancomer.com.mx/nuestrom/nuemu_perco_main.html
Commons,
L.
C.
(s.
http://www.consultorioCOBOL.com/
f.).
Consultorio
COBOL.Recuperado
el
el
2012,
de
2012,
de
Cruz, M. E. (07 de 11 de 2011). Entre 60% y 80% de las empresa utilizan COBOL. Recuperado
el 2012, de http://www.addictware.com.mx/index.php/software-propietario/1973-entre-60-y-80-delas-empresas-utilizan-COBOLFito, M. (11 de 01 de 2011). COBOL más vivo que nunca. Recuperado el 2012, de
http://addictware..com.mx/index.php/blog/946-COBOL-mas-vivo-que-nunca
México PC World. (14 de 11
http://www.pcworld.com.mx/Articulos/19480.htm
de
2011).
Recuperado
el
2012,
de
Montes,
A.
(s.
f.).
COBOL
en
español.
Recuperado
el
2012,
de
http://www.esCOBOL.com/modules.php?op=modload&name=Forums&file=viewtopic&topic=3269&f
orum=1
News.com, E. (24 de 10 de 2011). Red de Negocios. Recuperado el 2012, de
http://www.infocomercial.com/n/80-de-las-empresas-utilizan-el-lenguaje-COBOL_147491.php
Ranchal, J. (13 de 04 de 2009). COBOL 50 años de camino. Recuperado el 2012, de
http://www.muycomputer.com/2009/04/13/actualidadnoticiasCOBOL-50-anos-de-camino_we9erk2xxdcrxrraqqwycx3cdosuovw60-r1qpalb3fcgzlbgdwfzezgomknrcoa
Valores Corporativos Softtek, S. A. (s. f.). Página Oficial. Recuperado el 2012, de
http://www.softtek.com/mexico/
100
BIBLIOGRAFICAS
COBOL, R. d. (2011). JCL Básico, Introducción al mundo del JCL o cómo hacer copy/paste con
“sentidiño”.
García, A. E. Manual Práctico de SQL.
Joyanes, L. (1993). Metodología de la programación estructurada. McGraw Hill.
Merelo, T. H. (1989). COBOL con programación estructurada. Madrid: Paraninfo.
Palacios, J. M. (1995). TSO para Desarrolladores.
101
GLOSARIO
BANCO PROMEX: Un banco con fuerte presencia en la región centro y occidente del
país y se consolida la mayor institución financiera de México.
VERIFICAR: Que el producto sea correcto.
VALIDAR: Que realice las funciones para las cuales se codifico correctamente.
TICS: Tecnologías de la Información y la Comunicación.
MAINFRAME: Computadora central. Es una gran computadora potente y costosa,
usada principalmente por grandes compañías para el procesamiento de grandes cantidades de
datos.
TECNOLOGIA CLIENTE-SERVIDOR: Modelo de aplicación distribuida en el que
las tareas se reaparten entre los proveedores de recursos o servicios, llamados servidores, y los
demandantes, llamados clientes.
COMPILADOR: Programa informático que traduce un programa escrito en un
lenguaje de programación a otro lenguaje de programación, generando un programa
equivalente que la máquina será capaz de interpretar.
GARTNER GROUP: Es una empresa consultora y de investigación de las tecnologías
de la información con sede en Stamford, Connecticut, Estados Unidos. Hasta 2001 era
conocida como Gartner Group.
VSE: Un nuevo estándar para las empresas o áreas de sistemas del sector público o
privado.
102
OS/2: Sistema operativo de IBM que intentó suceder a DOS como sistema operativo
de las computadoras personales.
VMS: Un sistema de memoria virtual, una tarea del sistema operativo en la que se usa
un espacio de intercambio (swap) para que los procesos crean que hay más memoria RAM que
la disponible. O simplemente VMS sistema operativo de Hewlett-Packard, originalmente
creado por Digital Equipment Corporation (DEC) para sus mini-computadoras VAX.
UNISYS: Compañía mundial de tecnología de la información que diseña, construye y
gestiona entornos de misión crítica tanto para compañías comerciales como para instituciones
gubernamentales.
INDEXACION DE DATOS: Estructura de datos que mejora la velocidad de las
operaciones, permitiendo un rápido acceso a los registros de una tabla en una base de datos. Al
aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los
cuales se hacen frecuentes búsquedas.
NEARSHORE: Es un tipo de subcontratación o externalización de una actividad con
salarios más bajos que en el propio país, que se encuentra relativamente cerca en la distancia o
la zona horaria (o ambos). El cliente espera beneficiarse de una o varias de las siguientes
construcciones de proximidad: geográficas, temporales, culturales, lingüísticas, económicas,
políticas, o de vínculos históricos.
BPO: Business Process Outsourcing (BPO) es la subcontratación de funciones de
procesos de negocios en proveedores de servicios, ya sea internos o externos a una compañía,
usualmente en lugares de menores costos. BPO en español se traduce como "Externalización
de Procesos de Negocios".
103
FORTUNE 500: Es una lista publicada de forma anual por la revista Fortune listando
las 500 mayores empresas estadounidenses de capital abierto a cualquier inversor (es decir, no
solo empresas cotizadas) según su volumen de ventas.
EBCDIC: (Extended Binary Coded Decimal Interchange Code) es un código estándar
de 8 bits usado por computadoras mainframe IBM. IBM adaptó el EBCDIC del código de
tarjetas perforadas en los años 1960 y lo promulgó como una táctica customer-control
cambiando el código estándar ASCII. EBCDIC es un código binario que representa caracteres
alfanuméricos, controles y signos de puntuación. Cada carácter está compuesto por 8 bits = 1
byte, por eso EBCDIC define un total de 256 caracteres.
COMMIT: En el contexto de la Ciencia de la computación y la gestión de datos,
commit (acción de comprometer) se refiere a la idea de consignar un conjunto de cambios
"tentativos, o no permanentes". Un uso popular es al final de una transacción de base de datos.
Una sentencia COMMIT en SQL finaliza una transacción de base de datos dentro de
un sistema gestor de base de datos relacional (RDBMS) y pone visibles todos los cambios a
otros usuarios. El formato general es emitir una sentencia BEGIN WORK, una o más
sentencias SQL, y entonces la sentencia COMMIT. Alternativamente, una sentencia
ROLLBACK se puede emitir, la cual deshace todo el trabajo realizado desde que se emitió
BEGIN WORK. Una sentencia COMMIT publicará cualquiera de los savepoints (puntos de
recuperación) existentes que puedan estar en uso.
En términos de transacciones, lo opuesto de commit para descartar los cambios "en
tentativa" de una transacción, es un rollback.
104
QUERY: Es una sentencia SQL usada para acceder los datos de las tablas en una Base
de datos.
105
Descargar