*----------------------------------------------------------------* * ATRIBUTOS DO BMS * * MNEUMONICOSAPORTUGUESADOS * *----------------------------------------------------------------* * CODIGOS: D = DESPROTEGIDO (UNPROTECTED) * * P = PROTEGIDO (PROTECTED) * * N = NUMERICO (NUMERIC) * * A = ALFANUMERICO(ALPHANUMERIC) * * M = MDTLIGADO (MDT ON) * * E =ESCONDIDO (DARK) * * B = BRILHANTE (BRIGHT) * * S = SALTADO (AUTOSKIP) * *----------------------------------------------------------------* 01 BMSATRIB. 05 BAT-D PIC X(01) VALUE ' '. 05 BAT-D-M PIC X(01) VALUE 'A'. 05 BAT-D-B PIC X(01) VALUE 'H'. 05 BAT-D-B-M PIC X(01) VALUE 'I'. 05 BAT-D-E PIC X(01) VALUE '<'. 05 BAT-D-E-M PIC X(01) VALUE '('. 05 BAT-D-N PIC X(01) VALUE '&'. 05 BAT-D-N-M PIC X(01) VALUE 'J'. 05 BAT-D-N-B PIC X(01) VALUE 'Q'. 05 BAT-D-N-B-M PICX(01) VALUE 'R'. 05 BAT-D-N-E PIC X(01) VALUE '*'. 05 BAT-D-N-E-M PICX(01) VALUE ')'. 05 BAT-P PIC X(01) VALUE '-'. 05 BAT-P-M PIC X(01) VALUE 'V'. 05 BAT-P-B PIC X(01) VALUE 'Y'. 05 BAT-P-B-M PIC X(01) VALUE 'Z'. 05 BAT-P-E PIC X(01) VALUE '%'. 05 BAT-P-E-M PIC X(01) VALUE '_'. 05 BAT-P-S PIC X(01) VALUE '0'. 05 BAT-P-S-M PIC X(01) VALUE '1'. 05 BAT-P-S-B PIC X(01) VALUE '8'. 05 BAT-P-S-B-M PICX(01) VALUE '9'. 05 BAT-P-S-E PIC X(01) VALUE '@'. 05 BAT-P-S-E-M PICX(01) VALUE QUOTE. *----------------------------------------------------------------* * FIM DOBOOK DE ATRIBUTOS DO BMS * *----------------------------------------------------------------* Ler mais de uma vez a documentacao recebida, tirando todas as duvidasantes de iniciar o programa. Entender bem o que deve ser feito. Se a documentacao for seguida arisca, o programa provavelmente nao funcionara. O analista omite detalhes quesao obvios para a codificacao do programa. Por exemplo, ele nao precisaespecificar a abertura de um arquivo que sera utilizado no programa. Nem semprea documentacao e estruturada e neste caso cabe ao programador elaborar aestruturacao adequada. Fazer um D.H.F. (basico) da logica do programa e realizar um teste demesa com o mesmo. Seguir a padronizacao de nomes de campos e rotinas. Testar todas as condicoes e mensagens. Testar sempre modulos reusaveis novos. Pular testes de chamadas a modulo reusavel somente com a concordanciado analista responsavel. Procurar nao repetir grupos de instrucoes no programa. Eles devem sercolocados numa SECTION que sera chamada sempre que necessario. Colocar comentarios relevantes. Nao colocar um so comando dentro de uma SECTION, com excecao damovimentacao da area atual para anterior no INICIALIZA QUEBRA. Procurar colocar sempre os procedimentos que deverao ser feitos apenasuma vez por quebra no INICIALIZA QUEBRA, a nao ser aqueles que dependam deresultados do PROCESSA QUEBRA. Neste caso eles ficarao no FINALIZA QUEBRA, queso existira quando houver real necessidade. Criar areas distintas para quebra e batimento para facilitar oentendimento do programa em caso de manutencao, obedecendo sempre os nomesestabelecidos no curso. Usar o recurso de mover HIGH-VALUES para as areas de quebra e batimentoquando detectado fim de arquivo para evitar perguntas sobre fim de arquivo forada leitura. Fechar sempre os arquivos em qualquer cancelamento. So usar GO TO dentro da SECTION de leitura. Zerar tabelas por expansao sempre que possivel. Nao criar areas desnecessarias. Ao utilizar outro programa como base, deletar todas as areas que naoserao utilizadas e nao esquecer de substituir o nome do