Beca COBOL
Lima, fecha 16/08/2010
programación estructurada - cobol
2
confidencialidadAviso: Este documento es material confidencial y propiedad de everis. Se prohíbe
el uso, reproducción o la divulgación del contenido de este material sin permiso
previo y por escrito de la empresa propietaria.
Derechos de Autor
© 2010, everis. All rights reserved
3
1. objetivo
2. introducción
3. estructura básica de un programa cobol
4. normas generales de definición de programas
5. sentencias básicas en la codificación
6. revisión de calidad en programas
índice
4
1. objetivo
2. introducción
3. estructura básica de un programa cobol
4. normas generales de definición de programas
5. sentencias básicas en la codificación
6. revisión de calidad en programas
índice
5
programación estructurada - cobol objetivo
El objetivo principal de este curso es dejar a los alumnos con un conocimiento tal en programación en COBOL que puedan insertarse directamente en un Proyecto.
6
1. objetivo
2. introducción
3. estructura básica de un programa cobol
4. normas generales de definición de programas
5. sentencias básicas en la codificación
6. revisión de calidad en programas
índice
7
programación estructurada - cobol introducción
COBOL es el lenguaje de programación más utilizado en Entidades Financieras, de ahí radica su importancia estratégica.
Es un lenguaje robusto, confiable y de fácil entendimiento, tiene gran capacidad para manejar grandes ficheros de datos con facilidad y potencia.
Principalmente se trabaja Bajo Plataforma ALTAMIRA en AS/400 o OS/390 (IBM)
8
1. objetivo
2. introducción
3. estructura básica de un programa cobol
4. normas generales de definición de programas
5. sentencias básicas en la codificación
6. revisión de calidad en programas
índice
9
programación estructurada - cobol estructura de un programa cobol
PROCEDURE DIVISION
DATADIVISION
ENVIRONMENTDIVISION
IDENTIFICATION DIVISION
10
programación estructurada - cobol estructura de un programa cobol
PROCEDURE DIVISION
DATADIVISION
ENVIRONMENTDIVISION
IDENTIFICATIONDIVISION
Formato:
IDENTIFICATION DIVISION.
PROGRAM-ID. Nombre de Programa.
AUTHOR. Nombre del Autor.
INSTALLATION. Lugar donde está instalado.
DATE-WRITTEN. Fecha de creación.
DATE-COMPILED. Fecha de compilación.
REMARKS. Comentarios.
11
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Identification division
programación estructurada - cobol estructura de un programa cobol
12
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Identification division - comentarios
programación estructurada - cobol estructura de un programa cobol
13
programación estructurada - cobol estructura de un programa cobol
PROCEDURE DIVISION
DATADIVISION
ENVIRONMENTDIVISION
IDENTIFICATIONDIVISION
Consta de dos secciones; de éstas, la CONFIGURATION SECTION es requerida, mientras que la INPUT-OUTPUT SECTION es opcional.
Formato: ENVIRONMENT DIVISION.
[CONFIGURATION SECTION].
SOURCE-COMPUTER. Párrafo.
OBJECT-COMPUTER. Párrafo.
[SPECIAL-NAMES. Párrafo]
[INPUT-OUTPUT SECTION]
FILE-CONTROL. Párrafo
[I-O-CONTROL. Párrafo]
14
programación estructurada - cobol estructura de un programa cobol
PROCEDURE DIVISION
DATADIVISION
ENVIRONMENTDIVISION
IDENTIFICATIONDIVISION
En esta sección se requieren dos párrafos y el tercero es opcional.
Formato: CONFIGURATION SECTION.
SOURCE-COMPUTER. Párrafo.
OBJECT-COMPUTER. Párrafo.
[SPECIAL-NAMES. Párrafo]
15
programación estructurada - cobol estructura de un programa cobol
PROCEDURE DIVISION
DATADIVISION
ENVIRONMENTDIVISION
IDENTIFICATIONDIVISION
En esta sección el párrafo FILE-CONTROL es
obligatorio, mientras que el I-O-CONTROL es
opcional.
Formato:
[ INPUT-OUTPUT SECTION ]
FILE-CONTROL.
SELECT Nombre-de-archivo
ASSIGN TO Tipo-de-dispositivo
ORGANIZATION IS Tipo de organización
ACCESS MODE IS Modo de accesoal fichero
RECORD KEY IS Clave del registro
ALTERNATE RECORD KEY IS Claves alternativas
registro WITH DUPLICATES
FILE STATUS IS Variable de estado del fichero.
[ I-O-CONTROL. Párrafo ]
16
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Environment divisionInput / Output section
programación estructurada - cobol estructura de un programa cobol
17
programación estructurada - cobol estructura de un programa cobol
PROCEDURE DIVISION
DATADIVISION
ENVIRONMENTDIVISION
IDENTIFICATIONDIVISION
Identifica todos los nombres de datos usados en el programa.
Se divide en tres secciones:
File-Section.
Working Storage Section.
Linkage Section.
18
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Data division
programación estructurada - cobol estructura de un programa cobol
19
programación estructurada - cobol estructura de un programa cobol – data divisionDATA DIVISION.
FILE SECTION.
FD CLIENTES
BLOCK CONTAINS 4 RECORDS
RECORD CONTAINS 128 CHARACTERS
LABEL RECORD STANDARD.
01 REG-CLIENTE.
02 KEY-CLIENTE.
03 CLICOD PIC 9(4) COMP-6.
02 CLINOM PIC X(30).
02 CLIDIR PIC X(30).
02 CLIPOB PIC X(20).
02 CLIPRO PIC X(20).
02 CLINIF PIC X(9).
02 FILLER PIC X(17).
FD IMPRESORA
LABEL RECORD OMITTED.
01 LINEA PIC X(132).
20
programación estructurada - cobol estructura de un programa cobol – data division
file-section.DATA DIVISION.
FILE SECTION.
FD CLIENTES
BLOCK CONTAINS 4 RECORDS
RECORD CONTAINS 128 CHARACTERS
LABEL RECORD STANDARD.
01 REG-CLIENTE.
02 KEY-CLIENTE.
03 CLICOD PIC 9(4) COMP-6.
02 CLINOM PIC X(30).
02 CLIDIR PIC X(30).
02 CLIPOB PIC X(20).
02 CLIPRO PIC X(20).
02 CLINIF PIC X(9).
02 FILLER PIC X(17).
FD IMPRESORA
LABEL RECORD OMITTED.
01 LINEA PIC X(132).
21
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Data division
Working Storage Section
programación estructurada - cobol estructura de un programa cobol
22
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Data division
Linkage Section
programación estructurada - cobol estructura de un programa cobol
23
programación estructurada - cobol estructura de un programa cobol
PROCEDURE DIVISION
DATADIVISION
ENVIRONMENTDIVISION
IDENTIFICATIONDIVISION
Contiene las instrucciones del programa. Esta es la parte
del programa COBOL que en realidad se ejecuta; las otras
tres divisiones especifican los aspectos no ejecutables del
programa.
PROCEDURE DIVISION (USING Variable
Variable ...).
DECLARATIVES.
Nombre-sección SECTION.
USE AFTER ERROR PROCEDURE ON tipo.
Nombre-párrafo.
Sentencias.
.....
END DECLARATIVES.
Nombre-sección SECTION.
Nombre-párrafo.
Sentencias.
.....
24
programación estructurada - cobol estructura de un programa cobol
Párrafo Inicio
Párrafo Fin
Párrafo Proceso A
Párrafo Proceso N
Párrafos Comunes
ProgramaPrograma
PrincipalPrincipal
25
1. objetivo
2. introducción
3. estructura básica de un programa cobol
4. normas generales de definición de programas
5. sentencias básicas en la codificación
6. revisión de calidad en programas
índice
26
programación estructurada - cobol normas generales de definición de programas
Párrafo Principal. Define el Control y los Procesos principales.
Sentencias PERFORM.
La sentencia THRU.
ProgramaPrograma
PrincipalPrincipal
27
programación estructurada - cobol normas generales de definición de programas
28
programación estructurada - cobol normas generales de definición de programas
29
programación estructurada - cobol normas generales de definición de programas
Párrafo Inicio
30
programación estructurada - cobol normas generales de definición de programas
Párrafo
Proceso A
Párrafo
Proceso N
31
programación estructurada - cobol normas generales de definición de programas
Párrafos
Comunes
32
programación estructurada - cobol normas generales de definición de programas
Párrafos
Comunes
33
programación estructurada - cobol normas generales de definición de programas
Párrafos
Comunes
34
programación estructurada - cobol normas generales de definición de programas
Párrafos
Comunes
35
programación estructurada - cobol normas generales de definición de programas
Párrafos
Comunes
36
programación estructurada - cobol normas generales de definición de programas
Párrafo Fin
37
1. objetivo
2. introducción
3. estructura básica de un programa cobol
4. normas generales de definición de programas
5. sentencias básicas en la codificación
6. revisión de calidad en programas
índice
38
programación estructurada - cobol elementos básicos del lenguaje cobol
Ejecución del Programa COBOL
Constantes
Variables
Ejecución del Programa COBOL
39
programación estructurada - cobol elementos básicos del lenguaje cobol
nombres de datos Largo.
Nombre.
Uso del símbolo “guión” ( - ).
Uso de Espacios.
No uso de palabras reservadas
40
programación estructurada - cobol elementos básicos del lenguaje cobol
Recomendaciones para nombres de datos
Evitar Ambigüedades.
Permitir la Auto-documentación.
Definición y Uso de Estructuras.
41
programación estructurada - cobol elementos básicos del lenguaje cobol
Existen diversos tipos de Constantes: Literales. Ej.: CT-IMPUESTO = “0.04” (no permite operaciones)
Numéricas.Ej.: CT-FIJO = 35.0
Constantes figurativas.
• ZERO, ZEROS, ZEROES, SPACE y SPACES, etc.
Literales no numéricas. Ej.: CT-TITULO = “LISTADO NRO”
42
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Constantes
programación estructurada - cobol elementos básicos de la programación cobol
43
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Constantes
programación estructurada - cobol elementos básicos de la programación cobol
44
título de gráficos e ilustraciones (arial 12, minúsculas, gris)IL
USTRATIVO
Constantes
programación estructurada - cobol elementos básicos de la programación cobol
45
ILUSTRATIV
O
programación estructurada - cobol elementos básicos de la programación cobolCodificación en COBOL bajo OS/390
80 columnas 1 – 6N° de Secuencia
7Comentario. Continuación de Línea
46
programación estructurada - cobol elementos básicos de la programación cobolCodificación en COBOL bajo OS/390
1 – 6N° de Secuencia
ComandoCOLS
7Comentario. Continuación de Línea
47
programación estructurada - cobol elementos básicos de la programación cobolCodificación en COBOL bajo OS/390
80 columnas 8Margen A
12Margen B
48
programación estructurada - cobol elementos básicos de la programación cobolCodificación en COBOL bajo OS/390
80 columnas 8Zona de Codificación COBOL
72Información descriptiva
49
programación estructurada - cobol elementos básicos de la programación cobolCodificación en COBOL bajo OS/390
8 - 72Zona de Codificación COBOL
73-80Información Descriptiva
Margen A
Margen B
50
1. objetivo
2. introducción
3. estructura básica de un programa cobol
4. normas generales de definición de programas
5. sentencias básicas en la codificación
6. revisión de calidad en programas
índice
51
programación estructurada - cobol revisión de calidad en programas
calidad Normas de Cumplimiento Obligatorio.
Recomendaciones Generales de Calidad.
Sentencias Prohibidas.
Utilización de Ficheros.
Tablas Working.
Listados.
Normas para Programación ON-LINE.
Normas BATCH.
CORE.
CMM (Model Capability Madurity)
52
resumen
Estructura de un Programa COBOL
IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
DATA DIVISION
FILE CONTROL
WORKING STORAGE
PROCEDURE DIVISION
Párrafos en COBOL.
Elementos de un Programa COBOL
Reglas de la Codificación COBOL.
53
Dudas y aclaraciones
Análisis del Trabajo
Diagrama deFlujo del Programa
Codificación del Programa
Prueba del Programa oDepuración
Preparacióno Puesta enProducción
PROCESO DE PROGRAMACIONPROCESO DE PROGRAMACIONPROCESO DE PROGRAMACION
ProgramaPrograma
LlamadorLlamador
ProgramaPrograma
LlamadorLlamador
ProgramaPrograma
LlamadoLlamado
ProgramaPrograma
LlamadoLlamado
11
22
ModulaciónModulación
Programación ModularProgramación Modular
P ro g ram aP ro g ram a
L lam ad o rL lam ad o r
P ro g ram aP ro g ram a
L lam ad o rL lam ad o r
P ro g ram aP ro g ram a
L lam ad oL lam ad o
P ro g ram aP ro g ram a
L lam ad oL lam ad o
11
22
S en cillezS en cillez
F iab ilid adF iab ilid ad
F acilid ad d e
M an ten im ien to
F ac ilid ad d e
M an ten im ien to
O cu p ació n d e
M em o ria
R ed u cid a
O cu p ació n d e
M em o ria
R ed u cid a
T iem p o d e
E jecu c ió n
R ed u cid o
T iem p o d e
E jecu c ió n
R ed u cid o
Desarrollo TOP - DOWN.
REALIDAD
PROCESO
1
PROCESO
1
PROCESO
2
PROCESO
2PROCESOPROCESO
PROCESO
3
PROCESO
3
PROCESO
1.1
PROCESO
1.1
PROCESO
1.2
PROCESO
1.2
PROCESO
2.1
PROCESO
2.1
PROCESO
2.2
PROCESO
2.2
PROCESO
3.1
PROCESO
3.1
PROCESO
3.2
PROCESO
3.2
Secuencia de Acciones Selección de Acciones
Iteración de Acciones
54
Objetivo. El alumno deberá ser capaz de analizar y construir según las “Normas del buen
Programador” los programas en Pseudo código que resuelvan las problemáticas que se les presenten.
Descripción. Deberán entender claramente la problemática planteada.
Serán capaces de modelar el Mundo Real utilizando los principios de la Programación Estructurada.
Serán capaces de construir en Pseudo código el algoritmo que resuelva la problemática planteada
Duración. 6 horas.
Práctica : Elementos de la programación COBOL
55
Práctica : Elementos de la programación COBOL
Nomenclatura Diagramas.
Proceso Fichero
Base de DatosListado
Decisión
Conector. Indica el sentido del Flujo
Inicio / FinConector en una misma página
Conector en una misma página
Lectura / Escritura
56
Práctica : Elementos de la programación COBOL
Ejemplo.
INICIO
FIN
Si
No
57
Situación. Ficheros de Entrada:
La descarga de la tabla BGDTCNT de los registros que estén activos y que pertenezcan al concepto de Seguro.
La descarga de la tabla BGDTEPT de los registros que estén cobrados y que pertenezcan al concepto de Comisión.
Ficheros de Salida.
Fichero SALIDA que contiene la información de las cuentas que fueron cobrados y que existan en BGDTCNT.
Práctica : Elementos de la programación COBOL
58
Situación. Estructura de los Datos de Entrada. BGDTCNT
CNT-ENTIDAD Entidad - Alfanumérico(4) – Primary Key
CNT-CENTRO Centro - Alfanumérico(4) - Primary Key
CNT-CUENTA Cuenta - Alfanumérico(12) - Primary Key
CNT-DIVISA Divisa - Alfanumérico(3)
CNT-IMPORTE-IMP Importe - Numérico(15,2)
CNT-CONCEPTO Tipo (Seguro / otros) - Alfanumérico(3)
CNT-CENTRO-ORI Centro Origen - Alfanumérico(3)
CNT-FECHA-PROCESO Fecha Proceso - Alfanumérico(10)
CNT-FECHA-COBRO Fecha Cobro - Alfanumérico(10)
CNT-ESTADO Estado (Activo / Desactivado) - Alfanumérico(1)
Práctica : Elementos de la programación COBOL
59
Situación.
Estructura de los Datos de Entrada. BGDTEPTEPT-ENTIDAD Entidad - Alfanumérico(4) – Primary Key
EPT-CENTRO Centro - Alfanumérico(4) - Primary Key
EPT-CUENTA Cuenta - Alfanumérico(12) - Primary Key
EPT-DIVISA Divisa - Alfanumérico(3)
EPT-CENTRO-CONTAB Centro Contable - Alfanumérico(3)
EPT-CONCEPTO Tipo (Seguro / Comisión /otros) - Alfanumérico(3)
EPT-CENTRO-ORI Centro Origen - Alfanumérico(3)
EPT-FECHA-PROCESO Fecha Proceso - Alfanumérico(10)
EPT-FECHA-VALOR Fecha Valoración - Alfanumérico(10)
EPT-ESTADO Estado (Cobrado / No Cobrado) - Alfanumérico(1)
Práctica : Elementos de la programación COBOL
60
Situación. Estructura de los Datos de Salida.
SAL-ENTIDAD Entidad - Alfanumérico(4) – Primary Key
SAL-CENTRO Centro - Alfanumérico(4) - Primary Key
SAL-CUENTA Cuenta - Alfanumérico(12) - Primary Key
SAL-CUENTA-COMP Entidad-Centro-Cuenta - Alfanumérico (20)
SAL-CUENTA-DISP Entidad-Centro-Cuenta formateada - Alfanumérico (22)
SAL-CUENTA-COMP : Será la concatenación de los campos.
SAL-CUENTA-DISP : Será la concatenación de los campos incorporando separadores ( - : guión) entre los campos.
Práctica : Elementos de la programación COBOL
61
Situación. Validaciones necesarias.
Los datos deben ser del tipo de dato que dicen ser.
Se deben generar los mensajes correspondientes a todos los problemas detectados. Ej.: Ausencia de Datos, Errores de Tipo de datos, Operaciones incorrectas, etc.
Se deben generar las asignaciones de valores por defecto a aquellos datos que no tengan información. Ej.: Asignación de CEROS a valores numéricos.
Práctica : Elementos de la programación COBOL
62
Problema 1. Situación en que es necesario obtener un reporte de salida a partir de un fichero de datos
de entrada.
Consideraciones. Queda a libertad del alumno elegir cual de las entradas utilizar para el desarrollo de esta
parte de la práctica.
Práctica : Elementos de la programación COBOL
MUY MUY
FACILFACIL
63
Problema 2. Situación en que es necesario obtener un reporte de salida a partir datos obtenidos a
través de Consulta sobre la Base de Datos.
Consideraciones. Queda a libertad del alumno elegir cual de las entradas utilizar para el desarrollo de esta
parte de la práctica.
Práctica : Elementos de la programación COBOL
MUY MUY
FACILFACIL
64
Problema 3.
Situación en que es necesario realizar un Match Simple entre 2 entradas para obtener:
Fichero de Datos válidos.
Fichero de Datos Erróneos 1.
Fichero de Datos Erróneos 2.
Caso A.
Usando como fuente de Entrada y Salida Ficheros de Datos.
Práctica : Elementos de la programación COBOL
ALGO MAS ALGO MAS
COMPLICADCOMPLICAD
OO
65
Problema 3.
Situación en que es necesario realizar un Match Simple entre 2 entradas para obtener:
Fichero de Datos válidos.
Fichero de Datos Erróneos 1.
Fichero de Datos Erróneos 2.
Caso B.
Usando como fuente de Entrada y Salida Tablas de la Base de Datos.
Práctica : Elementos de la programación COBOL
IGUAL DE IGUAL DE
COMPLEJO COMPLEJO
QUE EL QUE EL
ANTERIORANTERIOR
66
Problema 4.
Situación en que se realizan Validaciones y Formateo a las Salidas del programa.
Práctica : Elementos de la programación COBOL
MUY MUY
FACILFACIL
67
Se pide. Diseñar el diagrama de flujo del programa COBOL, identificando estructuras repetitivas,
de selección, pasos individuales, etc.
En este diagrama se deben reflejar todas las actividades identificadas en el práctico anterior.
Se debe construir el Pseudo código del programa y este debe ser equivalente a los flujos mostrados en el diagrama de flujo.
En todas estas actividades se debe aplicar:
Los principios de la Programación Estructurada.
Agrupar las actividades identificadas en los segmentos de Inicio / Proceso / Fin.
Respetar algunos de los estándares COBOL ya identificados.
Práctica : Elementos de la programación COBOL
68
Entregables. Diagrama de Flujo del Programa.
Este debe respetar la nomenclatura descrita para tal caso.
Pseudo código.
Identificando y agrupando claramente aquellas que son especializaciones de otras.
Identificando y agrupando claramente aquellas actividades que forman parte de un mismo párrafo del Programa Principal. (Inicio – Proceso o Final)
Utilizar los estándares de nomenclatura COBOL ya identificados para nombrar Constantes, Variables, etc.
Práctica : Elementos de la programación COBOL
69
Práctica : Elementos de la programación COBOL
Práctica
everis.com
Preguntas?