H F-XC A N GE H F-XC A N GE c u-tr a c k N y bu to k lic Capítulo VII – Especificação da Lógica dos Processos 7.1 – Introdução Nos passos anteriores do desenvolvimento de sistemas, desenhamos uma proposta de solução lógica do sistema e especificamos de forma detalhada e completa todos os componentes da solução proposta, à exceção dos processos, que serão especificados nesta etapa do trabalho. Como já vimos, processos representam os pontos do sistema onde os dados recebidos e os armazenados sofrem transformações de diversos tipos para gerar os dados a serem entregues. Na verdade, o processo é uma pequena fábrica onde a matéria prima que entra é transformada em produtos a serem distribuídos aos clientes. Esta mudança nos dados pode ocorrer de muitas formas, tais como: por operações matemáticas ou estatísticas; por validações de conteúdo ou compleição; por desmembramento ou aglutinação; por geração de novas formas de apresentação; por várias outras maneiras. A especificação dos processos, por conseguinte, não é apenas um levantamento descritivo de formatos e nomes. Ao contrário, depende de compreender e relatar claramente os mecanismos internos de funcionamento da atividade. A atenção nesta tarefa é crítica, pois, a partir dela, em etapas posteriores, serão descritos os programas de computador que automatizarão o processo. Especificações incompletas, incorretas ou confusas vão comprometer a programação e, naturalmente, provocar erros nos sistema. A maior dificuldade para especificar a lógica dos processos, além da sua natural complexidade, é a própria ambigüidade da língua portuguesa que permite milhares de construções diferentes para o mesmo assunto. Essa característica contribui para que se evite a descrição da lógica em linguagem natural. Foi necessário, portanto, criar uma linguagem alternativa para substituir o português. A nova linguagem, chamada de Português Estruturado, criou regras rígidas de sintaxe para amenizar os efeitos da ambigüidade e da prolixidade. Essas regras devem ser obedecidas intransigentemente, caso contrário, todos os benefícios de sua aplicação serão perdidos. Outras ferramentas foram criadas para ajudar o analista em sua tarefa. Entre elas se destacam duas ferramentas gráficas conhecidas por árvore de decisão e tabela de decisão. Ambas têm o objetivo de tratar lógicas complexas. Elas estão relacionadas no livro “Análise Estruturada de Sistemas”de Gane e Sarson, que deve ser lido pelos analistas em formação. Nosso curso tratará, apenas, da técnica de construção do Português Estruturado. 1/1 .d o o .c m C m w o .d o w w w w w C lic k to bu y N O W ! PD O W ! PD c u-tr a c k .c H F-XC A N GE H F-XC A N GE c u-tr a c k N y bu to k lic 7.2 Como Descrever um Processo A primeira preocupação para descrever a lógica de um processo é procurar entender os passos seqüenciais de sua construção. A lógica de um processo baseia-se em dois princípios: relacionar todas as instruções necessárias para executar o processo e colocá-las (as instruções) na ordem correta. Vamos imaginar um processo cuja função fosse trocar um pneu furado de um carro. Para descrever sua lógica, seria preciso: 1- Relacionar todas as instruções necessárias Levantar o carro com o macaco. Baixar o carro com o macaco. Desapertar os parafusos da roda do pneu furado. Tirar o pneu furado. Colocar o triângulo de segurança. Abrir o porta-malas do carro. Colocar o estepe na roda. Tirar o estepe, macaco e triângulo do porta-malas. Apertar os parafusos da roda do estepe. Guardar o pneu furado, o macaco e o triângulo. Fechar o porta-malas. 2- Colocar as instruções na ordem correta Abrir o porta-malas do carro. Tirar o estepe, macaco e triângulo do porta-malas. Colocar o triângulo de segurança. Desapertar os parafusos da roda do pneu furado. Levantar o carro com o macaco. Tirar o pneu furado. Colocar o estepe na roda. Apertar os parafusos da roda do estepe. Baixar o carro com o macaco. Guardar o pneu furado, o macaco e o triângulo. Fechar o porta-malas. Como se percebe pelo exemplo, relacionar todas as instruções necessárias para realizar a tarefa não foi suficiente. Foi preciso ordená-las, sem o que o processo não seria realizado corretamente. É necessário entender o significado correto da palavra instrução. No contexto do português estruturado, instrução representa cada um dos passos necessários par executar um trabalho. É, também, chamado de comando ou ordem. Todas essas palavras são traduções livres do inglês statement. 2/2 .d o o .c m C m w o .d o w w w w w C lic k to bu y N O W ! PD O W ! PD c u-tr a c k .c H F-XC A N GE H F-XC A N GE c u-tr a c k N y bu to k lic Os pesquisadores que fixaram as regras de uso do português estruturado identificaram três tipos de instruções, que reproduzem as estruturas possíveis de acontecer com a lógica de um processo. Os três tipos identificados foram os seguintes: 1- Instruções seqüenciais, que são aquelas que são completas em si mesmas, como, por exemplo, as do caso do pneu. Outros exemplos podem ser os seguintes: Somar 1 em valor Ler código em fornecedor Obter nota fiscal de conferir nota fiscal 2- Instruções de decisão, que ocorrem quando há necessidade de escolherse um entre vários caminhos possíveis. Como, no seguinte exemplo: Se a renda líquida for superior a R$ 50.000,00, descontar 20% Senão descontar 15% Este exemplo mostra a estrutura de uma decisão. Temos, para cada situação, uma condição e uma ação. A condição 1 é “renda líquida superior a R$ 50.000,00” A ação 1 é “descontar 20%” A condição 2 é “renda líquida inferior ou igual a R $50.000,00” A ação 2 é “descontar 15%” A cada condição corresponde uma ação. Dessa forma, a estrutura completa de uma instrução de decisão pode ser representada assim: SE condição 1, ENTÃO ação 1. SENÃO (não acontece condição 1), LOGO ação 2. As palavras Se, Então, Logo são reservadas para uso apenas neste casos. Na prática quase nunca se usa a palavra “LOGO”, como também, não se usa a negativa da condição 1, após a palavra “senão”. Neste caso, a estrutura seria representada da seguinte forma: SE condição 1, ENTÃO ação 1 SENÃO, ação 2. 3/3 .d o o .c m C m w o .d o w w w w w C lic k to bu y N O W ! PD O W ! PD c u-tr a c k .c H F-XC A N GE H F-XC A N GE c u-tr a c k N y bu to k lic 3- Instruções de repetição, que ocorrem quando é necessário controlar a repetição de um conjunto de instruções, um determinado número de vezes. Veja o exemplo: Número = 1 Total = 0 Repetir enquanto número for menor que 51 Somar número em total Somar 1 em número Fim da repetição Imprimir total Este caso representa a lógica de um processo para apresentar a soma dos 50 primeiros números naturais. Foi preciso controlar a execução repetida das instruções seqüenciais 4 e 5, com as instruções 3 e 6. Ao iniciar o processo, o valor de “número”é 1e, portanto, a condição é verdadeira (menor que 51). A cada vez que o processo é repetido, “número”vai sendo incrementado até atingir o valor 51. nesse momento, a condição é falsa e o ciclo de repetições é interrompido. Na verdade, existem dois tipos de estruturas de repetição. Uma que controla a condição no início do bloco (Repetir Enquanto) e outra que controla a condição no final do bloco (Repetir Até). Com esses 3 (três) tipos de instrução é possível descrever a lógica de qualquer processo, desde o mais simples até o mais confuso. 7.3 – Regras de Uso do Português Estruturado Como já dissemos anteriormente, existem certas regras de sintaxe que devem ser seguidas rigidamente. Estas regras são as seguintes: 1- Palavras Reservadas Para indicar a existência de instruções de decisão ou de repetição, usam-se determinadas palavras que devem ser reservadas, isto é, só podem ser usadas para indicar aquelas instruções. Na descrição da lógica, estas palavras devem ser escritas em letras maiúsculas. Estas palavras são as seguintes: SE, ENTÃO, SENÃO, LOGO, FIM-SE para representar a cadeia completa de uma decisão. REPETIR, ATÉ, ENQUANTO, FIM-REPETIR para indicar uma instrução de repetição. EXECUTAR para indicar um bloco de instruções. 4/4 .d o o .c m C m w o .d o w w w w w C lic k to bu y N O W ! PD O W ! PD c u-tr a c k .c H F-XC A N GE H F-XC A N GE c u-tr a c k N y bu to k lic 2- Bloco de Instruções Existem determinados conjuntos de instruções, que realizam uma tarefa específica e completa, que podem ser usados em diversos pontos da lógica. Para evitar que ele seja reescrito várias vezes, costuma-se escrevê-lo à parte, como um bloco de instruções, dando-lhe um nome. No corpo da lógica, basta, então, usar a palavra EXECUTAR com o nome do bloco. Isto indicará que todas as instruções do bloco serão executadas. 3- Indentação Uma vez definida uma instrução de decisão ou de repetição, a instrução seguinte deve ser indentada (deslocada de duas casas) em relação ao alinhamento à esquerda anterior. Esta indentação é contínua, isto é, vai ocorrendo uma após a outra, caso hajam instruções de decisão ou de repetição encadeadas, como mostra o exemplo, abaixo: Linha = 1 Número = 0 EXECUTAR cabeçalho REPETIR ATÉ que número maior que 150 Somar 1 em número Quadrado = número * número Imprimir Número, Quadrado Somar 1 em linha SE linha = 50 ENTÃO linha = 1 Saltar para próxima página EXECUTAR cabeçalho FIM-SE FIM-REPETIR Cabeçalho Imprimir nome da empresa, data e página Imprimir nome da seção e responsável Imprimir “Listagem dos quadrados dos 150 primeiros números naturais” Neste exemplo, observa-se um deslocamento dado para as estruturas vinculadas ao REPETIR e outro para a estrutura vinculada ao SE. Em ambos os casos, a estrutura é encerrada com a instrução FIM. Observa-se, também, a existência de um bloco de instruções de nome CABEÇALHO. Bloco de instruções é um conjunto de instruções ao qual se atribui um nome e que, como será usado em diversos pontos da lógica, é escrito uma vez e colocado no final da especificação. Ele é ativado, nos pontos onde deve ser executado pelo comando EXECUTAR. 5/5 .d o o .c m C m w o .d o w w w w w C lic k to bu y N O W ! PD O W ! PD c u-tr a c k .c H F-XC A N GE H F-XC A N GE c u-tr a c k N y bu to k lic As instruções em português estruturado devem ser curtas, diretas e sem o uso de preposições e conjunções. Evita-se a ambigüidade das expressões maiores. Pode-se e deve-se usar convenções que diminuam o texto e evite dúvidas. Expressões do tipo: Maior que, menor que, maior ou igual a, menor ou igual a, diferente de, podem ser substituídas por símbolos padronizados. 4- Termos do Dicionário de Dados Toda vez que a lógica exigir a utilização de um nome definido no dicionário de dados deve-se sublinhar o nome para indicar que se trata de elemento definido no dicionário de dados. Exemplo SE cd-fornecedor inexistente ENTÃO ler fonecedor FIM-SE Somar 10 em salário-hora Este modo de descrição orienta o leitor mostando que cd-fornecedor, fornecedor e salário-hora são elementos descritos no dicionário de dados. Exemplos 1- Descrever a lógica do seguinte processo: “Para cada ficha de matrícula recebida, eu verifico se os dados estão corretos. Se não estiverem, eu devolvo ao aluno para correção. Quando está tudo certo, eu registro o número da matrícula, preparo e entrego ao aluno o comprovante e, se a ficha for de renovação, arquivo na pasta RENOVAÇÃO, se não for, mando para a Secretaria”. Este processo simples poderia ser descrito da seguinte maneira: Iníco Receber Ficha de Inscrição SE Ficha de Inscrição preenchida corretamente ENTÃO registrar número de matrícula Preparar comprovante de matrícula Enviar comprovante de matrícula para Aluno SE Ficha de inscrição = renovação ENTÃO Guardar em Renovação SENÃO Enviar para Secretaria FIM-SE SENÃO devolver Ficha de Inscrição para Aluno FIM-SE 6/6 .d o o .c m C m w o .d o w w w w w C lic k to bu y N O W ! PD O W ! PD c u-tr a c k .c H F-XC A N GE H F-XC A N GE c u-tr a c k N y bu to k lic Fim Comentários 1- Estamos supondo que os itens sublinhados estão descritos no dicionário de dados. 2- A palavra RENOVAÇÃO sublinhada, refere-se ao depósito de dados enquanto a não sublinhada a um critério de seleção. 3- Descrever a lógica do seguinte processo: “Quando eu chego no trabalho, meu primeiro serviço é distribuir a correspondência. Apanho tudo que chegou e separo por destinatário. Quando o destinatário não está claro ou eu desconheço, separo para a Seção de Identificação. Depois de tudo separado, eu entrego as cartas ao seu dono.” Início Recuperar correspondência de malote REPETIR ENQUANTO houver correspondência Se destinatário é conhecido ENTÃO Separar correspondência por destinatário SENÃO Separar correspondência para Seção de Identificação FIM-SE FIM-REPETIR Entregar correspondência para destinatário Fim 4- Descrever a lógica do seguinte processo: “Calcular o desconto dos funcionários para a Associação não é complicado. Basta você comparar o salário bruto, no cadastro de funcionários, com a tabela de descontos. Se o valor é menor que 5 salários mínimos, desconta-se 1%. Se estiver entre 5 e 10 salários mínimos, desconta-se 1,5%. Se for maior que 10 salários mínimos, desconta-se 2%. O único cuidado a tomar é que o limite para desconto é R$ 60.000,00. Não se pode fazer desconto maior que esse. Feito os cálculos é só registrar o valor do desconto no local apropriado que o desconto será cobrado.” Início desconto = 0 Ler cadastro de funcionários por matrícula REPETIR ENQUANTO houver funcionários SE salário bruto < 560,00 ENTÃO desconto = salário bruto * 0,01 SENÃO SE salário bruto > 1120,00 ENTÃO desconto = salário bruto * 0,02 SENÃO desconto = salário bruto * 0,015 FIM-SE FIM-SE 7/7 .d o o .c m C m w o .d o w w w w w C lic k to bu y N O W ! PD O W ! PD c u-tr a c k .c H F-XC A N GE H F-XC A N GE c u-tr a c k N y bu to k lic SE desconto > 60,00 ENTÃO desconto = 60,00 FIM-SE Registrar desconto em cadastro de funcionário Ler cadastro de funcionários por matrícula FIM-REPETIR Fim 8/8 .d o o .c m C m w o .d o w w w w w C lic k to bu y N O W ! PD O W ! PD c u-tr a c k .c