Você está na página 1de 18

METODOLOGIAS DE PROGRAMAO

. e ie x

1. GENERALIDADES Todo programa a ser elaborado deve ser considerado como um produto a ser desenvolvido. Para tal, uma srie de etapas devem ser cumpridas at a obteno do programa final, testado e aprovado. Muitos programadores inexperientes gastam a maior parte do tempo na codificao do programa, e o restante, na depurao e testes. Na verdade, a codificao apenas uma das etapas, ocupando em torno de 20% do tempo total consumido. O intuito deste captulo apresentar um resumo das principais metodologias de programao, fornecendo uma orientao bsica no sentido de disciplinar o desenvolvimento de programas. 2. ETAPAS DE DESENVOLVIMENTO DE SOFTWARE As etapas do desenvolvimento de software so: 1 etapa: Definio do problema 2 etapa: Projeto do programa 3 etapa: Codificao 4 etapa: Depurao 5 etapa: Testes 6 etapa: Documentao 7 etapa: Manuteno e reprojeto apresenta um fluxograma das etapas do desenvolvimento de

A figura 2.1 software.

GEEK BRASIL http://www.geekbrasil.com.br

- 1

DEFINIO DO PROBLEMA PROJETO DO PROGRAMA

CODIFICAO

DEPURAO

ERROS ?

TESTES

ERROS ?

DOCUMENTAO

GRANDES ALTERAES ?

MANUTENO E REPROJETO

Figura 2.1: Etapas do Desenvolvimento de Software.

GEEK BRASIL http://www.geekbrasil.com.br

- 2

A primeira etapa a DEFINIO DO PROBLEMA. Todas as tarefas desejadas devero ser especificadas, tais como: - definio das entradas: tipos, formas e taxas de aquisio, inter-relaes com as sadas, escalas, etc. - definio das sadas: entradas, escalas, etc. tipos, taxas de atualizao, inter-relaes com as de velocidade e memria,

- processamento de dados: algoritmos, limitaes base de dados, precises, etc.

- tratamento de erros: tipos que podem ocorrer, tratamento previsto, influncia no comportamento do sistema, diagnstico, reconfiguraes, etc. - interface homem-mquina: formas de comunicao com o operador, procedimentos automticos, manuais e interativos, facilidades de operao, etc. A segunda etapa o PROJETO DO PROGRAMA. Muitas tcnicas disponveis podem ser utilizadas para sistematizar a especificao do programa. conveniente a descrio das tarefas a serem desempenhadas de maneira a facilitar suas transcries para programas. Algumas tcnicas teis normalmente usados so: - fluxogramas - programao estruturada - programao modular - projeto "top-down". A terceira etapa CODIFICAO. Esta torna-se uma tarefa difcil e demorada se as duas etapas anteriores no forem adequadamente cumpridas. Trata-se da escrita de um programa em uma forma que possa ser entendida pelo microprocessador, ou que possa ser traduzido para essa forma, atravs de montadores ou compiladores. A quarta etapa a DEPURAO. A quinta etapa so os TESTES. Em linhas gerais, tem-se que a DEPURAO procura suprimir todos os erros de programa, enquanto que os TESTES, procuram validar o programa, verificando se as tarefas previstas esto sendo desempenhadas a bom termo. A sexta etapa a DOCUMENTAO, nem sempre tratada com a real importncia que deveria ser. Muitos programadores procuram erroneamente deix-la como ltima etapa, acarretando problemas, como por exemplo, esquecimentos de detalhes, comentrios errados e explicaes superficiais. Na verdade, a DOCUMENTAO deve comear a ser gerada desde a primeira etapa, descrevendo todos os passos percorridos at a obteno de um programa testado e aceito.

GEEK BRASIL http://www.geekbrasil.com.br

- 3

Nesta etapa, todos os documentos gerados devem ser conferidos e combinados de forma coesa, devendo ser dirigido aqueles que no participaram dos trabalhos, e que com a leitura deste, poderiam compreender o que foi desenvolvido. A stima etapa a de MANUTENO e REPROJETO do que foi desenvolvido. Correes de pequenos erros, aprimoramentos e ampliao de programas so fatos comuns que deve ser cuidadosamente estudados. Cada alterao em um programa deve ser considerada como um novo programa, sendo submetida a todos os estgios anteriores. Desta forma, evita-se remendos, efeitos colaterais e dificuldades maiores nas alteraes. Uma boa documentao ser de real utilidade adequadamente atualizada. 3. PROJETO DO PROGRAMA O PROJETO DO PROGRAMA deve ser elaborado inspirado em alguma metodologia adequadamente escolhida, evitando-se um gasto maior de tempo, dificuldades excessivas em programas de maior porte e construes de estruturas confusas e inflexveis. Alguns princpios bsicos devem ser observados em cada projeto, tais como: - diviso do problema em mdulos curtos, logicamente divididos, e de mais simples resoluo - elaborao de estruturas de programas simples e de fcil controle - medida do possvel, utilizar representaes grficas da lgica do programa - no elaborao de programas difceis de serem depurados e alterados - iniciar a codificao apenas aps todo o programa ter sido projetado. Sero apresentadas a seguir 4 tcnicas de PROJETO DE PROGRAMAS comumente utilizadas: - fluxograma - programao modular - programao estruturada - projeto Top-Down nesta etapa, e deve ser

GEEK BRASIL http://www.geekbrasil.com.br

- 4

3.1 Fluxogramas Trata-se de um dos mais conhecidos e utilizados mtodos. Utiliza-se de alguns smbolos que permitem uma representao grfica da estrutura do programa. Os smbolos utilizados so:

ENTRADA/SADA

OPERAES DE PROCESSAMENTO

DECISES LGICAS

SUBROTINAS

PONTO DE CONEXO

INTERLIGAO

INCIO ou FIM

As principais vantagens dos Fluxogramas so: - uso de smbolos padronizados e bem conhecidos - de fcil entendimento por no especialistas - facilidade de diviso das tarefas em subtarefas - facilitam a localizao de erros por apresentarem a seqncia das operaes - muito conhecidos em diversas reas de atividades.

GEEK BRASIL http://www.geekbrasil.com.br

- 5

As principais desvantagens dos Fluxogramas so: - apresentam dificuldades no desenho e alteraes - depurao e testes no so fceis, em geral - dificuldade na fluxogramas deciso do nvel de detalhes a serem colocados nos

- no apresentam a organizao de dados e estruturas de entrada e sada - no facilitam em casos particulares de hardware ou "timing". Verificar nas figuras 3.1, 3.2 e 3.3, alguns exemplos de utilizao de fluxogramas

INCIO

Precisa cortar o cabelo?

SIM

O carro est disponvel?

NO

Caminhe at o barbeiro

NO FIM

SIM Dirija at o barbeiro

O barbeiro est disponvel?

NO

SIM Corte o cabelo Pague o barbeiro Veio de carro? SIM Dirija e volte para casa Volte para casa caminhando NO

FIM

Figura 3.1: Exemplo de Fluxograma para uma pessoa que precisa cortar o cabelo

GEEK BRASIL http://www.geekbrasil.com.br

- 6

INCIO

DESPESA INCORRIDA

COMPLETAR RELATRIO DE DESPESAS

RELATRIO EXAMINADO

REVISO DA CONTABILIDADE

REVISO DO GERENTE

DESPESA ADMISSVEL?

NO

REVISO DA CONTABILIDADE

SIM

DESPESA ADMISSVEL?

NO

SIM ENTRADA DE DADOS

SIM ERRO DE CLCULOS?

NO PREENCHER O CHEQUE ENVIAR O CHEQUE? SIM ENVIAR PARA DISTRIBUIO

NO ENVIAR POR CHEQUE MEIOS FIM RECEBIDO ELETRNICOS Exemplo de Fluxograma para o Processo de Reembolso de Despesa

Figura 3.2: Exemplo: Apresentar um Fluxograma para quando uma chave for ligada, uma lmpada dever permanecer acesa por um segundo.

GEEK BRASIL http://www.geekbrasil.com.br

- 7

Uma dificuldade que costuma aparecer o nvel de detalhamento necessrio. Na figura 3.3 apresentada uma verso simples, especificando apenas os aspectos fundamentais do programa. Uma verso mais detalhada poderia ser elaborada, utilizando variveis e com maiores informaes nos blocos.
INCIO

CHAVE LIGADA?

LIGAR A LMPADA

PASSOU 1 SEG?

APAGAR A LMPADA

FIM Figura 3.3: Exemplo de Fluxograma para quando uma chave for ligada, uma lmpada dever permanecer acesa por um segundo

GEEK BRASIL http://www.geekbrasil.com.br

- 8

3.2 Programao Modular Consiste na diviso de programas em subtarefas de menor complexibilidade, eliminando o inconveniente dos fluxogramas de se tornarem extremamente grandes e complexos, em aplicaes de maior porte. As principais vantagens da Programao Modular so: - maior facilidade na escrita e depurao dos mdulos, por serem menores e mais simples - os mdulos podem ser utilizados diversas vezes em programas e tambm arquivados em bibliotecas, para uso futuro - restringe as alteraes aos mdulos ao invs de todo o programa - maior facilidade de isolao dos erros - maior facilidade na quantificao do trabalho a ser/que foi desenvolvido. As principais desvantagens da Programao Modular so: - dificuldades na elaborao de critrios objetivos de diviso de mdulos - necessidade de padronizao da documentao de mdulos, uma vez que eles podem ser elaborados por diferentes programadores - dificuldade, em alguns casos, em se depurar e testar mdulos isoladamente, por necessitarem de outros dados de outros mdulos (necessidade de elaborao de programas de testes) - programas inadequadamente modularizados podem se tornar de difcil manuseio - eventual necessidade de maior quantidade de memria e tempo de processamento, em funo de repeties de partes de mdulos separados. Algumas sugestes bsicas podem auxiliar o programador, tais como: - usar mdulos de 20 a 50 linhas (geralmente mdulos menores podem no apresentar vantagens, enquanto que mdulos maiores, tornam-se de difcil integrao) - criar mdulos flexveis, adaptveis s mudanas de opes de uma mesma funo - funes bsicas tais como atrasos, rotinas aritmticas, etc., elaboradas com maior cuidado para futuro aproveitamento - evitar a mistura de funes distintas em um mesmo mdulo. devem ser

GEEK BRASIL http://www.geekbrasil.com.br

- 9

Exemplo:

Em relao ao exemplo da Figura 3.3, tem-se a possibilidade de diviso do programa em dois mdulos:

- mdulo 1: espera uma chave ser ligada e acende uma lmpada - mdulo 2: espera um segundo. Enquanto o mdulo 1 especfico, o mdulo 2 pode ser de uso geral, podendo ser construdo de uma maneira mais genrica. 3.3 Programao Estruturada A Programao Estruturada baseia-se em 4 diretrizes: - o programa desenvolvido de cima para baixo - qualquer programa pode ser escrito utilizando apenas 3 estruturas bsicas de controle - cada estrutura bsica de controle tem apenas uma entrada e uma sada - minimizao do uso de desvios incondicionais As 3 estruturas bsicas de controle, conforme mostra a figura 3.4, e com as quais pode-se construir qualquer programa so: - estrutura seqencial - estrutura de controle condicional - estrutura de malha ("loop").

ESTRUTURA SEQUENCIAL

P1

P1

P1

P2 P2 P2 COND. (a) Chapin GEEK BRASIL http://www.geekbrasil.com.br - 10 DO WHILE COND = VERD. 10 VERD.? (b)P3 Tradicional (Fluxograma) P P3 P3 (c) Forma de escrita da Programao Estruturada (a) (b) (c) (a) ESTRUTURA (b) MALHAN Figura 3.4: Estruturas Bsicas DE Programao Estruturada END; (c) da S P

ESTRUTURA DE CONTROLE CONDICIONAL

S COND. P1

COND. VERD.?

N IF COND. = VERD. THEN P1 ELSE P2

S P1

N P2

P2

COND. P

GEEK BRASIL http://www.geekbrasil.com.br

- 11

11

As principais vantagens da Programao Estruturada so: os programas normalmente so claros e bem organizados, facilitando o entendimento a

- uso de poucas estruturas padronizadas, facilitando a modularizao, documentao e a descrio com Fluxogramas ou outros mtodos - permite reduo no tempo de elaborao de programas. As principais desvantagens da Programao Estruturada so: - no caso de linguagem Assembly deve-se fazer converses das para as instrues do microprocessador

estruturas

- elaborao de programas maiores (consome mais memria) e mais lentos - excessivos encadeamentos de estruturas geram confuso Sugere-se a utilizao de programao estruturada nos seguintes casos: grandes programas (mais que 1000 instrues) aplicaes onde a quantidade de memria utilizada no crtica, e o custo de programao importante (pouca demanda de produto) aplicaes sem estruturas de dados complexas, controle de processos, uso de algoritmos, etc. disponibilidade de linguagem de alto nvel. exemplo da Figura 3.3 , tem-se a seguinte verso

Exemplo: Em relao ao estruturada:

CHAVE = DESLIGADA do While CHAVE = DESLIGADA LEIA ESTADO DA CHAVE end LMPADA = LIGADA ESPERA 1 LMPADA = DESLIGADA End

GEEK BRASIL http://www.geekbrasil.com.br

- 12

12

3.4 Projeto "Top-Down" Esta tcnica sugere que o PROJETO DO PROGRAMA se inicie pela definio da estrutura principal do mesmo, deixando os sub-programas indefinidos temporariamente. Desta forma, pode-se mais facilmente avaliar e testar a estrutura principal de um programa. Posteriormente, tal procedimento deve ser repetido para os subprogramas, sucessivamente, at o trmino da elaborao e testes do programa. As principais vantagens do Projeto Top-Down so: - elaborao e testes a cada nvel, sem a necessidade programas auxiliares de teste da construo de

- pressupe o uso de Programao Modular, e compatvel com Programao Estruturada - fornece uma idia clara do que falta ser desenvolvido. As principais desvantagens do Projeto Top-Down so: - poucas vantagens apresenta em caso da existncia de partes de programas prontos - dificulta a elaborao de mdulos mais genricos - erros no nvel superior costumam apresentar efeitos muito abrangentes. Exemplo: Em relao ao exemplo da Figura 3.3, tem-se que a estrutura apresentada corresponde primeira etapa do projeto "top-down". Algumas das declaraes devem ser detalhadas: - LEIA ESTADO DA CHAVE: CHAVE = DADO (PORTA 1) and mscara leitura de um bit especfico de uma porta. end - ESPERA 1: CONTADOR = VALOR INICIAL do while CONTADOR # 0 CONTADOR = CONTADOR - 1 end

GEEK BRASIL http://www.geekbrasil.com.br

- 13

13

O programa expandido : CHAVE = 0 do while CHAVE = 0 CHAVE = DADO (PORTA 1) and mscara end LMPADA = LIGADA CONTADOR = VALOR INICIAL do while CONTADOR # 0 CONTADOR = CONTADOR - 1 end LMPADA = NOT (LMPADA) Nesta forma, o programa j pode ser mais facilmente traduzido em termos de instrues da linguagem utilizada. 4. DEPURAO O tempo nesta fase do desenvolvimento de um programa costuma ser considervel. A escolha de um mtodo adequado de programao, por si s j simplifica a depurao e os testes. Entretanto, necessrio que o programador conte com ferramentas adequadas, e com um roteiro de procura de erros, no sentido de no tornar tal tarefa aleatria. Sero apresentadas, de forma resumida, as principais ferramentas e metodologias de depurao. 4.1 Execuo Passo-a-Passo (Single-Step) Permite a execuo de instruo por instruo de um programa, sob controle do operador. Aps uma instruo ter sido executada, os registradores, posies de memria, linhas de sada e sinais de controle podem ser examinados. Apresenta limitaes em casos de interrupes, DMA (acesso direto memria) e tempo de execuo de programas. 4.2 Ponto de Parada (Breakpoint) um endereo de memria que, quando atingido, provoca a parada do programa, permitindo o mesmo tipo de monitorao conseguida na execuo passo-a-passo. Costuma ser implementada com a instruo RST 1 (8080, 8085 e Z-80), a qual colocada no endereo de parada desejado, e chama uma subrotina que faz a parada do programa. Amplia as possibilidades da execuo passo-a-passo, permitindo interrupes, DMA e no afeta o tempo de execuo de trechos de programas.

4.3 Visualizao de Registrador (Register Dump)

GEEK BRASIL http://www.geekbrasil.com.br

- 14

14

Apresenta o contedo de todos os registradores do microprocessador ao programador, ou de algum selecionado. Utilizado em conjunto com os recursos de execuo passo-a-passo e ponto de parada. 4.4 Visualizao de Memria (Memory Dump) Apresenta o contedo de uma regio de memria especificada. Algumas variaes deste recurso podem ser encontradas, tais como a visualizao da rea de cdigo de um programa, onde mostrada uma instruo por linha, em hexadecimal ou at mesmo em mnemnicos. Tambm utilizada em conjunto com os recursos de execuo passo-a-passo e ponto de parada. 4.5 Simuladores Programas elaborados para simular o processo. 4.6 Analisador Lgico Basicamente uma verso digital paralela de um osciloscpio. Mostra informaes em binrio ou hexadecimal na tela, comandado por diversas formas de disparo. Costumam apresentar memria, registrando fatos passados. Utilizado basicamente no registro de informaes at/aps um certo evento particular, na via de dados ou endereos, ou execuo de uma instruo de entrada/sada particular. So efetivamente necessrios em sistemas com "timing" complexo. 4.7 Listas de Verificao Muitos dos erros comumente encontrados pelos programadores poderiam ser eliminados com facilidade, a partir de uma Lista de Verificao. Esta apresenta alguns itens bsicos que devem ser conferidos antes do uso de qualquer outra ferramenta. Alguns dos itens que podem ser includos na lista so: - verificar se cada elemento do projeto do programa se encontra no programa, e vice-versa - verificar se todos os registradores e posies de memria utilizados em malhas ("loops") so previamente inicializados - conferir todos os desvios condicionais - verificar se todas as malhas se iniciam e terminam corretamente - verificar se todas as condies so tratadas - verificar se as regras da linguagem no esto sendo desobedecidas, e se as instrues no esto sendo utilizadas erradamente. Para este ltimo item, uma nova Lista de Verificao pode ser particular a cada linguagem de microprocessador.
GEEK BRASIL http://www.geekbrasil.com.br - 15

elaborada,

15

4.8 Simuladores de Entrada/Sada 4.9 Emuladores So acoplados a Sistemas de Desenvolvimento permitindo a execuo em tempo real, e entradas/sadas programveis 4.10 Programas de Testes Diversos. 5. TESTES Procura-se efetuar a validao (verificao que realmente os programas esto depurados) dos programas elaborados, verificando se os mesmos atendem s especificaes estabelecidas. Esta etapa est intimamente ligada etapa de Depurao. As ferramentas usadas na etapa anterior tambm podero ser utilizadas nesta etapa. 6. LISTA DE EXERCCIOS DE FLUXOGRAMA 1) Fazer um Fluxograma para ler posies de memria at encontrar um contedo igual a 20H. Guardar a posio de memria em RESULT quando encontrar o contedo. Colocar 0000H em RESULT caso no seja encontrado um contedo igual a 20H. Ler no mximo o contedo de 100H posies de memria. 2) Ler o contedo de 1000 posies de memria. Guardar em RESULT o valor do maior contedo. 3) Fazer o Fluxograma para calcular o fatorial do nmero N, cujo valor lido do teclado. 4) Fazer o Fluxograma para ler 50 arquivos contendo, cada um, a altura e o cdigo do sexo de uma pessoa (cdigo = H para homem e M para mulher), calcular: a mdia de altura dos homens.

5) Fazer o Fluxograma de um algoritmo para fazer a soma de 2 setores de mesmo nmero de elementos. 6) Fazer o Fluxograma de um algoritmo para calcular o nmero de alunos que tiraram nota acima da nota mdia da turma. A turma tem 40 alunos. 7) Dado um arquivo com uma frase de 80 letras (incluindo brancos). Escrever o Fluxograma de um algoritmo para: a) contar quantos brancos existem na frase b) contar quantas vezes aparece a letra A

GEEK BRASIL http://www.geekbrasil.com.br

- 16

16

GEEK BRASIL http://www.geekbrasil.com.br

- 17

17

Você também pode gostar