Sunteți pe pagina 1din 127

por Chedas Sampaio poca 1998/1999

Engenharia de Mquinas 1 Engenharia de Mquinas Martimas - Martimas M04 Computadores e Programao M04 Computadores e Programao

Introduo programao estruturada Sumrio


Introduo Programa Princpios Teorema da Estrutura Figuras base (sequncia, alternativa e iterao) Fases do Projecto Regras de Estilo

Engenharia de Mquinas Martimas M04 Computadores e Programao

Introduo programao estruturada

Introduo
Por todas as possibilidades que criou, o computador invadiu todos os domnios, ganhando uma importncia cada vez maior, e modificando a forma como se vive em sociedade, no sendo hoje possvel voltar atrs e prescindir dele. Como consequncia os gastos com a informtica aumentaram substancialmente.

Engenharia de Mquinas Martimas M04 Computadores e Programao

Introduo programao estruturada

Introduo
Actualmente os gastos com o software tendem a ser a maior parcela dos gastos com a informtica.

Ora este facto coloca a produtividade da programao numa perspectiva um pouco diferente da praticada alguns anos atrs.

Engenharia de Mquinas Martimas M04 Computadores e Programao

Introduo programao estruturada

Introduo
Nas ltimas duas dcadas surgem aplicaes e/ou programas cada vez maiores, mais ambiciosos, mais sofisticados, mais complexos e mais integrados. Essa integrao e complexidade aumenta ainda mais com o teleprocessamento e as aplicaes on-line.

Engenharia de Mquinas Martimas M04 Computadores e Programao

Introduo programao estruturada

Introduo
Quanto maior o programa ou aplicao maior ser a dificuldade de os alterar no sentido de os melhorar, adaptar ou remediar erros. Num contexto on-line, o problema torna-se bastante mais delicado.

Engenharia de Mquinas Martimas M04 Computadores e Programao

Introduo programao estruturada

Introduo
De facto, basta lembrar, que enquanto que numa empresa que funcione 8 horas por dia, um erro do programa numa aplicao de contabilidade ou de salrios, que passou durante a fase de teste e instalao, pode ser facilmente remediado, j o mesmo no se pode dizer dum banco, cujo centro de informtica funciona 24 horas por dia e em on-line, em que so permanentes as transferncias bancrias e onde um erro de programa pode ser catastrfico.
Engenharia de Mquinas Martimas M04 Computadores e Programao 7

Introduo programao estruturada

Introduo
Podemos ento dizer que a evoluo das aplicaes vem avolumar dois problemas j existentes, como so a manuteno e a segurana, assim como vem introduzir o conceito de fiabilidade (reliability - maior confiana no correcto desempenho das suas funes).

Engenharia de Mquinas Martimas M04 Computadores e Programao

Introduo programao estruturada

Introduo
Por cada novo programa ou aplicao podemos dizer que dois factos conduzem necessidade de desenvolver uma actividade de manuteno dos programas, a saber:
os erros no detectados na fase de testes precisam de ser corrigidos medida que vo sendo descobertos a necessidade de efectuar alteraes ao programa, seja para satisfazer novas necessidades do utilizador, seja para satisfazer as que ele no soube explicitar antes do programa ser feito.
Engenharia de Mquinas Martimas M04 Computadores e Programao 9

Introduo programao estruturada

Introduo
Para aumentar a produtividade da programao no basta s aumentar a produtividade do desenvolvimento de programas novos, mas tambm fazer programas que permitam diminuir o tempo de manuteno.

Engenharia de Mquinas Martimas M04 Computadores e Programao

10

Introduo programao estruturada

Introduo
Porque se perde tanto tempo com a Manuteno? Algumas das razes que levam a manuteno a ser uma actividade difcil e demorada so:
a lgica dos programas por vezes complicada e difcil localizar onde uma determinada funo realizada. cada programador tem a sua maneira muito prpria de escrever programas. o prprio programador ao fim de algum tempo tem dificuldade em entender algumas das instrues que escreveu e, ao alterar, produzir novos erros.
Engenharia de Mquinas Martimas M04 Computadores e Programao 11

Introduo programao estruturada

Introduo
Porque se perde tanto tempo com a Manuteno? Algumas das razes que levam a manuteno a ser uma actividade difcil e demorada so:
o problema agrava-se se o programa entregue a outro programador que no tenha contacto com o autor. os programas em geral no esto documentados quando esto documentados, a documentao raramente se refere verso corrente .

Engenharia de Mquinas Martimas M04 Computadores e Programao

12

Introduo programao estruturada

Introduo
Porque se perde tanto tempo com a Manuteno? Algumas das razes que levam a manuteno a ser uma actividade difcil e demorada so:
a normalizao da terminologia, da nomenclatura, da lgica, etc..., ainda muito pouco respeitada, tornando difcil a compreenso para outros programadores, que no o autor. a interpretao dos erros por vezes difcil devido ao desconhecimento de ferramentas adequadas de debug e de deficiente estruturao do programa.
Engenharia de Mquinas Martimas M04 Computadores e Programao 13

Introduo programao estruturada

Introduo
Porque se perde tanto tempo com a Manuteno? Algumas das razes que levam a manuteno a ser uma actividade difcil e demorada so:
o utilizador no sabe muitas vezes, concretamente, o que quer, bem como as frequentes alteraes de organizao obrigam a sucessivas alteraes do programa ou aplicao .

Engenharia de Mquinas Martimas M04 Computadores e Programao

14

Introduo programao estruturada

Introduo
Existe um conceito que importa ponderar e que de algum modo est generalizado entre os gestores. o conceito de eficincia/optimizao de um programa. Vulgarmente relaciona-se esta com o tempo de ocupao de memria e de execuo. Quanto menor o tempo destes, melhor ser a eficincia de um programa.

Engenharia de Mquinas Martimas M04 Computadores e Programao

15

Introduo programao estruturada

Introduo
Na verdade a eficincia/optimizao tem de ser vista no seu contexto. Isto , muitas vezes um programa para ser optimizado, em termos de tempo de execuo ou de ocupao de memria, alterado com artificios tais que tornam a sua manuteno difcil e o tempo que se poupa no seu desempenho largamente ultrapassado na pesquisa de erros ou em alteraes no mbito das actividades de manuteno.
Engenharia de Mquinas Martimas M04 Computadores e Programao 16

Introduo programao estruturada

Introduo
Podemos ento concluir, que apesar de ser muitas vezes indispensvel, muitas vezes incorrecta quando se olha aos gastos totais e produtividade global da programao.

Engenharia de Mquinas Martimas M04 Computadores e Programao

17

Introduo programao estruturada

Introduo
As tcnicas de programao no passado derivavam sobretudo das limitaes impostas pelo hardware e pelo software e do facto de se tratar de uma actividade nova sem quaisquer precedentes.

Engenharia de Mquinas Martimas M04 Computadores e Programao

18

Introduo programao estruturada

Introduo
Os problemas e as limitaes com que se depararam os programadores, no passado, e que de certo modo os condicionaram listam-se de seguida:
memria limitada ou reduzida. limitao nas velocidades de processamento. inexistncia inicial de linguagens imps a necessidade da programao em cdigo mquina ou prximo (assembler) e o conhecimento perfeito do comportamento fsico da mquina (interrupts, endereos,...).
Engenharia de Mquinas Martimas M04 Computadores e Programao 19

Introduo programao estruturada

Introduo
Os problemas e as limitaes com que se depararam os programadores, no passado, e que de certo modo os condicionaram listam-se de seguida:
a estrutura do computador limitava os mtodos de concepo do programa, sendo os primeiros problemas resolvidos pelos computadores de carcter cientfico e matemtico. s no final da dcada de 50 e incio da de 60, surgem linguagens independentes dos computadores e mais prximas da linguagem humana.
Engenharia de Mquinas Martimas M04 Computadores e Programao 20

Introduo programao estruturada

Introduo
Os problemas e as limitaes com que se depararam os programadores, no passado, e que de certo modo os condicionaram listam-se de seguida:
o advento do compilador vem aliviar decisivamente o programador na tarefa de deteco dos erros de sintaxe. as linguagens evoludas, no estando em correspondncia de 1 para 1 com a linguagem mquina, permitiram fazer programas mais curtos, mais simples e mais compreensveis.
Engenharia de Mquinas Martimas M04 Computadores e Programao 21

Introduo programao estruturada

Introduo
Os problemas e as limitaes com que se depararam os programadores, no passado, e que de certo modo os condicionaram listam-se de seguida:
o desenvolvimento das ferramentas de debug e os pacotes case tornaram o trabalho do programador bastante mais simples

Engenharia de Mquinas Martimas M04 Computadores e Programao

22

Introduo programao estruturada

Introduo
A evoluo do hardware e do software, assim como a crescente exigncia e necessidade da sociedade actual, faz com que os programas ou aplicaes sejam cada vez maiores e mais complexos, tornando cada vez mais difcil ao programador controlar o seu programa e em particular o fluxo de controle ao longo deste.

Engenharia de Mquinas Martimas M04 Computadores e Programao

23

Introduo programao estruturada

Introduo
Desenvolve-se ao longo da dcada de 60 uma teoria de programao, com vista a solucionar este problema, e que consiste em dividir o programa em pequenos mdulos ou subrotinas, de modo a serem facilmente controlados pelo programador. Esses mdulos podem ser facilmente codificados, compilados e testados independentemente, podendo ser posteriormente integrados na aplicao.
Engenharia de Mquinas Martimas M04 Computadores e Programao 24

Introduo programao estruturada

Introduo
Consegue-se, assim:
melhorar a funo manuteno. melhorar a operacionalidade da aplicao. permitir operaes em on-line pois carrega-se na memria virtual somente o mdulo necessrio (sob o comando do programa de controle) para proceder operao necessria.

Engenharia de Mquinas Martimas M04 Computadores e Programao

25

Introduo programao estruturada

Introduo
A programao modular surge para fazer face s aplicaes complexas e s aplicaes on-line. Mas, ela por si s no basta, necessrio desenvolver tcnicas de desenho que permitam decidir correctamente em como dividir o programa em mdulos.

A resposta est na Programao Estruturada.


Engenharia de Mquinas Martimas M04 Computadores e Programao 26

Introduo programao estruturada

Programao estruturada
A programao estruturada surge entre 66 e 72 graas a um grande conjunto de investigadores de onde se salientam os nomes de Edsger Dijkstra e Harlan Mills (1919-1996).
A discipline of programming, E.Dijkstra, Prentice-Hall 1976 ISBN 013-215871-X Formal development of programs and proofs, E.Dijkstra, AddisonWesley 1990 ISBN 0-201-17237-2 www5.biostr.washington.edu/~jsp/muq/muf3_17.html. www.tcse.org/hmills.html.
Engenharia de Mquinas Martimas M04 Computadores e Programao 27

Introduo programao estruturada

Programao estruturada
Baseia-se nos seguintes princpios ou critrios:
os GOTO's devem ser evitados a todo o custo pois tornam o programa de difcil manuteno qualquer programa prprio (uma entrada e uma sada) pode ser codificado utilizando apenas as seguintes figuras lgicas: sequncia, If Then Else e Do While decomposio do programa em sucessivos nveis de segmentao (programao modular), mantendo cada segmento um tamanho no superior a uma pgina.
Engenharia de Mquinas Martimas M04 Computadores e Programao 28

Introduo programao estruturada

Programao estruturada
Baseia-se nos seguintes princpios ou critrios:
cada segmento dever constituir um programa prprio (uma entrada e uma sada), dever comportar-se como uma caixa negra (os mesmos inputs produzem os mesmos outputs) relativamente aos segmentos de nvel superior e constituir um esqueleto lgico para a chamada dos segmentos de nvel inferior. formatao do programa usando a identao.

Engenharia de Mquinas Martimas M04 Computadores e Programao

29

Introduo programao estruturada

Programao estruturada
Baseia-se nos seguintes princpios ou critrios:
uso de regras de codificao de modo a facilitar o controle e compreenso do programa definio de regras prprias, que constituam normas, de modo a que possam ser aplicadas por todos os programadores num mesmo projecto. composio passo a passo (Dijkstra - stepwise composition) ou desenvolvimento top down (Mills) na fase de Desenho da aplicao. desenho estruturado de programas (dcada de 70 Myers, Jackson,Engenharia Warnier). de Mquinas Martimas 30
M04 Computadores e Programao

Introduo programao estruturada

Programa
O que um programa de computador? Um programa um conjunto de instrues que sero executadas em certas condies e por certa ordem, por um computador.

Engenharia de Mquinas Martimas M04 Computadores e Programao

31

Introduo programao estruturada

Programa
Para um determinado input o programa fornece um determinado output.

input

Programa Programa (calcular idade)


Engenharia de Mquinas Martimas M04 Computadores e Programao

output

5/8/61

37 anos
32

Introduo programao estruturada

Programa
A entrada ou input so dados ou parmetros que o programa l a partir de diferentes formas ou vias: teclado (parmetro no arranque ou dados a pedido) modem ficheiro
Engenharia de Mquinas Martimas M04 Computadores e Programao

rato
33

Introduo programao estruturada

Programa
Os dados de input podem ser de vrios tipos. A saber:
Nmeros (inteiros, reais, complexos) Lgicos (verdadeiro, falso) Cadeias de caracteres ou strings Datas A definir pelo utilizador

Engenharia de Mquinas Martimas M04 Computadores e Programao

34

Introduo programao estruturada

Programa
A sada ou output so dados que o programa escreve em diferentes formas e suportes: modem impressora

monitor

ficheiro
Engenharia de Mquinas Martimas M04 Computadores e Programao 35

Introduo programao estruturada

Programa
Os dados de output tal como os de input podem ser dos seguintes tipos
Nmeros (inteiros, reais, complexos) Lgicos (verdadeiro, falso) Cadeias de caracteres ou strings Datas A definir pelo utilizador

Engenharia de Mquinas Martimas M04 Computadores e Programao

36

Introduo programao estruturada

Programa
O programa constitudo por um conjunto de instrues que so lidas uma a uma pelo processador do computador. As primeiras instrues costumam ser de leitura dos dados de input. Leitura significa que os dados so guardados em memria. Cada localizao de memria onde cada dado (nmero, data, string,...) guardado identificada por um nome.
Engenharia de Mquinas Martimas M04 Computadores e Programao 37

Introduo programao estruturada

Programa
Programa Eq2Grau Instruo 1 Instruo 2

1,1,-2

...

Instruo n Lrdo teclado a,b,c

...
Calcular razes x1 e x2

...
Escrever no monitor ...

memrias a=1 b=1 c=-2 x1=1 x2=-2

a,b,c, x1 e x2 so nomes de localizaes de memrias


Engenharia de Mquinas Martimas M04 Computadores e Programao 38

Introduo programao estruturada

Programa
Programa Eq2Grau Instruo 1 Instruo 2 Instruo n Lrdo teclado a,b,c

...
Calcular razes x1 e x2

...
Escrever no monitor ...

memrias a=1 b=1 c=-2 x1=1 x2=-2

Engenharia de Mquinas Martimas M04 Computadores e Programao

39

Introduo programao estruturada

Programa
Os nomes das localizaes de memria podem ser quaisquer conjuntos de caracteres, normalmente devero comear por uma letra. Por exemplo: x teste tx23 No costuma ser permitido a utilizao de . ou - nos nomes
Engenharia de Mquinas Martimas M04 Computadores e Programao 40

Introduo programao estruturada

Programa
Aps o programa tr lido os dados de input costumam seguir-se instrues de processamento da informao. Essas instrues utilizam os dados guardados nas memrias, alteram-nos e/ou criam novos dados que so tambm guardados em memria.

Engenharia de Mquinas Martimas M04 Computadores e Programao

41

Introduo programao estruturada

Programa
Programa Eq2Grau Instruo 1 Instruo 2 Instruo n Lrdo teclado a,b,c

memrias
b b 2 4ac x1 2a b b 2 4ac x2 2a

...
Calcular razes x1 e x2

Escrever no monitor ...

Engenharia de Mquinas Martimas M04 Computadores e Programao

42

Introduo programao estruturada

Programa
Finalmente o programa escreve os resultados ou output num monitor, impressora ou ficheiro. Os dados de output no so mais que valores guardados em determinadas localizaes de memria.

Engenharia de Mquinas Martimas M04 Computadores e Programao

43

Introduo programao estruturada

Programa
Programa Eq2Grau Instruo 1 Instruo 2 Instruo n Lrdo teclado a,b,c

...Escrever no monitor As razes so , x1, e , x2


Calcular razes x1 e x2

Escrever no monitor ...

Engenharia de Mquinas Martimas M04 Computadores e Programao

44

Introduo programao estruturada

Programa
As instrues so pois os elementos mais simples que entram num programa. Estas podem agrupar-se de determinada maneira, com identidade e objectivo, constituindo aquilo que se costuma chamar de segmentos.

Engenharia de Mquinas Martimas M04 Computadores e Programao

45

Introduo programao estruturada

Programa
Um programa (estruturado) pode ento ser constitudo por instrues simples e por segmentos de menor nvel. Cada um destes, por seu lado, pode ser constitudo por instrues simples e por segmentos de nvel inferior que por sua vez se iro decompr e por a adiante at s restarem instrues.

Engenharia de Mquinas Martimas M04 Computadores e Programao

46

Introduo programao estruturada

Programa
Programa Multibanco Instruo 1 Instruo 2

...
Instruo n Correr subrotina Levantamento Instruo n+2 Subrotina Levantamento Instruo 1 Instruo 2

...

...
Correr subrotina X

Subrotina X

...
Instruo n Retorna Engenharia de Mquinas Martimas M04 Computadores e Programao 47

Introduo programao estruturada

Programa
Programa Multibanco Instruo 1 Instruo 2

Segmento (ou programa principal)


Subrotina Levantamento Instruo 1 Instruo 2

...
Instruo n Correr subrotina Levantamento Instruo n+2

...

...
Correr subrotina X

Subrotina X

Segmento (ou subrotina ou funo)


Instruo n Retorna Engenharia de Mquinas Martimas M04 Computadores e Programao 48

...

Introduo programao estruturada

Programa
Um programa uma entidade que tem uma estrutura e uma funo. A estrutura a forma como ele se decompe em segmentos e instrues sucessivamente para nveis cada vez menores. A funo de um programa o conjunto de transformaes possveis que podem ocorrer, da entrada (input) para a sada (output), quando esse programa executado.
Engenharia de Mquinas Martimas M04 Computadores e Programao 49

Introduo programao estruturada

Programa
Se podemos decompr um programa em segmentos porque a funo desse programa se pode decompr em sub-funes. Se determinarmos correctamente como que a funo de um programa se pode decompr em sub-funes e estas, por sua vez, em novas sub-funes, etc..., teremos definida a decomposio do programa em segmentos.
Engenharia de Mquinas Martimas M04 Computadores e Programao 50

Introduo programao estruturada

Programa
O que se trata , no de decompr um programa em segmentos pois ele ainda no existe, mas de decompr o problema em sub-problemas ou a funo em sub-funes e assim sucessivamente de modo a que todas as sub-funes (que correspondem a segmentos) em conjunto realizem aquela funo.

Engenharia de Mquinas Martimas M04 Computadores e Programao

51

Introduo programao estruturada

Programa
Exemplo:

Multibanco

Levantamentos

Consultas

Pag.Servios

Saldos

Movimentos

Engenharia de Mquinas Martimas M04 Computadores e Programao

52

Introduo programao estruturada

Princpios
Princpio da Correspondncia Funo-Segmento Cada segmento de maior nvel de um programa deve corresponder a uma subfuno bem definida, de tal forma que o conjunto dessas subfunes do maior nvel realize a funo do programa. Este princpio, da correspondncia funo-segmento, deve ser aplicado em todos os nveis em que o programa se divide.
Engenharia de Mquinas Martimas M04 Computadores e Programao 53

Introduo programao estruturada

Princpios
Princpio da Independncia dos Segmentos A decomposio de uma funo em subfunes deve obedecer s leis de construo simples, em nmero limitado e recorrendo s leis da sequncia, alternativa e iterao. Alm disso, a decomposio em subfunes deve ser tal que estas sejam to independentes umas das outras quanto possvel.

Engenharia de Mquinas Martimas M04 Computadores e Programao

54

Introduo programao estruturada

Princpios
Princpio da Correspondncia da Estrutura dos Dados com a Estrutura do Programa Sendo um programa um conjunto de instrues que recebe dados de input e os processa de modo a fornecer determinado output, ou sejam dados, natural que a sua concepo esteja fortemente condicionada pela estrutura desses dados. A estrutura de um programa deve em muitos casos, e especialmente em ficheiros sequenciais, obedecer estrutura dos ficheiros de dados. Engenharia de Mquinas Martimas 55
M04 Computadores e Programao

Introduo programao estruturada

Teorema da Estrutura
A programao estruturada baseia-se num teorema que diz: qualquer programa prprio (que tenha apenas uma entrada e uma sada) pode ser codificado utilizando apenas as seguintes figuras lgicas: sequncia If Then ... Else (ElseIf Then) ... Endif Do While ... Enddo
Engenharia de Mquinas Martimas M04 Computadores e Programao 56

Introduo programao estruturada

Figuras base - Sequncia


Consiste no simples encadeamento sequencial das instrues. De facto esta a ordem normal de execuo de instrues pelo computador caso nenhuma das restantes figuras seja utilizada.

Engenharia de Mquinas Martimas M04 Computadores e Programao

57

Introduo programao estruturada

Figuras base - Sequncia


Programa Hipotenusa a,b,h so ns reais simples Comentrio a,b lados do tringulo rectngulo, h a hipotenusa Lr do teclado a,b
h a 2 b2

memrias a - 4 bytes a=3 b - 4 bytes b=4 h - 4 bytes h=5

Escrever no monitor A hipotenusa , h Fim do programa

Engenharia de Mquinas Martimas M04 Computadores e Programao

58

Introduo programao estruturada

Figuras base - Alternativa


If Then Else, ou alternativa, uma figura que permite ao computador executar determinadas instrues ou conjuntos de instrues em funo da verificao ou no de certa condio. A condio, neste tipo de figura, pode ser uma relao entre duas expresses ou apenas um objecto booleano.

Engenharia de Mquinas Martimas M04 Computadores e Programao

59

Introduo programao estruturada

Figuras base - Alternativa


memrias
Programa Hipotenusa a,b,h so ns reais simples Comentrio a,b lados do tringulo rectngulo, h a hipotenusa
10: Lr do teclado a,b Se (a0 ou b 0) ento Escrever no monitor a e b tm de ser maiores que 0 GOTO 10 Fim do Se
h a 2 b2

a - 4 bytes b - 4 bytes h - 4 bytes

a=2 a=3 b=-1 b=4 h=5

Escrever no monitor A hipotenusa , h Fim do programa Engenharia de Mquinas Martimas M04 Computadores e Programao 60

Introduo programao estruturada

Figuras base - Iterao


Do While, ou Iterao, uma figura que executa uma certa instruo ou conjunto de instrues enquanto uma certa condio se verificar. Quando essa condio deixar de se verificar o programa retoma a sequncia normal de execuo. Se a condio nunca se verificar, o conjunto de instrues no ser executado vez nenhuma (loop de 0 a N vezes).
Engenharia de Mquinas Martimas M04 Computadores e Programao 61

Introduo programao estruturada

Figuras base - Iterao


memrias
Programa Contar i, N so nmeros inteiros de 1 byte Comentrio N - n mximo, i - contador Lr do teclado N i=1 Enquanto iN Escrever no monitor i i=i+1 Fim do Enquanto
Escrever no monitor Fim do ciclo

i=4 i=3 i=2 i - 1 byte i=1 N - 1 byte N=3

...
Fim do programa Engenharia de Mquinas Martimas M04 Computadores e Programao 62

Introduo programao estruturada

Fases do projecto
As fases de desenvolvimento de um programa ou projecto so:
ANLISE CODIFICAO COMPILAO, LINKAGEM E DEBUG TESTES DE INTEGRAO

Engenharia de Mquinas Martimas M04 Computadores e Programao

63

Introduo programao estruturada

Fases do projecto - ANLISE


A ANLISE constituda por:
ESTUDO DAS ESPECIFICAES, das caractersticas, do problema que se pretende informatizar. DESENHO GLOBAL, decomposio do problema em funes, concepo e desenho global do programa na forma de organigrama estruturado. DESENHO DE DETALHE, definio pormenorizada das funes em pseudocdigo ou fluxograma. Correco de erros de lgica (trace).
Engenharia de Mquinas Martimas M04 Computadores e Programao 64

Introduo programao estruturada

Fases do projecto - CODIFICAO


Consiste na transformao do desenho de detalhe em linguagem de programao.

Engenharia de Mquinas Martimas M04 Computadores e Programao

65

Introduo programao estruturada

Fases do projecto - COMPILAO, LINKAGEM e DEBUG


Nesta fase efectua-se a transformao da linguagem de programao (de alto nvel) em cdigo mquina e correco de erros de sintaxe e semntica.

Engenharia de Mquinas Martimas M04 Computadores e Programao

66

Introduo programao estruturada

Fases do projecto - TESTES DE INTEGRAO


Os testes de integrao servem para juntar as diferentes rotinas, que compem a aplicao ou programa desenvolvido, e avaliar o correcto desempenho deste.

Engenharia de Mquinas Martimas M04 Computadores e Programao

67

Introduo programao estruturada

ANLISE - Estudo das especificaes


O primeiro passo quando se faz um programa estudar o problema que se pretende informatizar ou a tarefa que se pretende programar. Para tal aconselhvel:
Definir qual o objectivo do programa (dados de output) Determinar que dados so necessrios (dados de input) para ser possvel esse objectivo Saber que transformaes (processamentos) so necessrias Engenharia de Mquinas Martimas 68
M04 Computadores e Programao

Introduo programao estruturada

ANLISE - Desenho Global


Depois de se conhecer o problema j podemos iniciar o desenho do programa. Nesta fase til recorrermos tcnica de "composio passo a passo" de Dijkstra ou ao desenho "Top Down" de Mills. De facto ambos os autores deram nomes diferentes a um procedimento anlogo e que consiste na decomposio do problema ou situao que se pretende programar.
Engenharia de Mquinas Martimas M04 Computadores e Programao 69

Introduo programao estruturada

ANLISE - Desenho Global


Dijkstra aconselha o seguinte:
Comear por definir o programa atravs de uma simples frase. Se essa frase puder ser traduzida para linguagem de programao, ento o problema est resolvido. Se tal no acontecer , em geral, possvel decompor essa frase em duas ou trs frases. Se essas frases existirem em linguagem de programao, ento o problema est resolvido.
Engenharia de Mquinas Martimas M04 Computadores e Programao 70

Introduo programao estruturada

ANLISE - Desenho Global


Dijkstra aconselha o seguinte:
Se tal no acontecer, ser necessrio refinar ainda mais as frases anteriores e assim sucessivamente em novos refinamentos at se obterem apenas frases "legtimas" na linguagem de programao utilizada.

Engenharia de Mquinas Martimas M04 Computadores e Programao

71

Introduo programao estruturada

ANLISE - Desenho Global


A metodologia aconselhada prope que na fase de desenho ou concepo, bem como, posteriormente, na fase de codificao, se avance gradualmente atravs de sucessivos nveis de segmentao.

Engenharia de Mquinas Martimas M04 Computadores e Programao

72

Introduo programao estruturada

ANLISE - Desenho Global


O desenvolvimento Top Down tem as seguintes vantagens:
Permite que as principais questes de estrutura sejam identificadas e resolvidas mais cedo. Faz com que a parte mais importante e complexa do programa seja a mais testada. Garante que o desenho e concepo se desenvolva ordenadamente, partindo do geral para o particular.
Engenharia de Mquinas Martimas M04 Computadores e Programao 73

Introduo programao estruturada

ANLISE - Desenho Global


O desenvolvimento Top Down tem as seguintes vantagens:
Permite que a codificao e os testes de um nvel possam acompanhar o desenho dos nveis inferiores. Permite que desaparea a fase de integrao dos mdulos pois cada segmento testado directamente e integrado no sistema em que vai correr.

Engenharia de Mquinas Martimas M04 Computadores e Programao

74

Introduo programao estruturada

ANLISE - Desenho Global


A representao visual da hierarquia das diferentes funes e subfunes que definem a estrutura do programa em estudo um aspecto importante a ter em conta visto facilitar significativamente a sua compreenso.

Engenharia de Mquinas Martimas M04 Computadores e Programao

75

Introduo programao estruturada

ANLISE - Desenho Global


Antes de iniciar a fase de codificao, o programador deve j ter feito a decomposio do programa nas suas funes de maior nvel, estas nas suas subfunes e por a sucessivamente at um nvel de razovel detalhe, para assim ter uma idiea clara da estrutura do programa antes de comear a codific-lo.

Engenharia de Mquinas Martimas M04 Computadores e Programao

76

Introduo programao estruturada

ANLISE - Desenho Global


O tipo de diagrama que se prope semelhante a muitos outros usados noutras reas que no a Informtica, sendo conhecido por Organigrama Estruturado.

Engenharia de Mquinas Martimas M04 Computadores e Programao

77

Introduo programao estruturada

ANLISE - Desenho Global


No Organigrama estruturado sugere-se a utilizao da seguinte notao para representar as figuras da programao estruturada:

Sequncia
A

O mdulo A chama sucessivamente B, depois C e finalmente D


Engenharia de Mquinas Martimas M04 Computadores e Programao 78

Introduo programao estruturada

ANLISE - Desenho Global


No Organigrama estruturado sugere-se a utilizao da seguinte notao para representar as figuras da programao estruturada:

Alternativa
A

O mdulo A chama alternativamente B, C ou D


Engenharia de Mquinas Martimas M04 Computadores e Programao 79

Introduo programao estruturada

ANLISE - Desenho Global


No Organigrama estruturado sugere-se a utilizao da seguinte notao para representar as figuras da programao estruturada:

Iterao
A A A B* B *(N) B+

Do While...

Do While N Do Until vezes O mdulo A chama B enquanto que... ou at que...


Engenharia de Mquinas Martimas M04 Computadores e Programao 80

Introduo programao estruturada

ANLISE - Desenho de Detalhe


Aps terminar a concepo e desenho geral do programa, o programador deve iniciar o desenho de detalhe.

Engenharia de Mquinas Martimas M04 Computadores e Programao

81

Introduo programao estruturada

ANLISE - Desenho de Detalhe


Normalmente os programadores iniciam aqui a fase de codificao numa linguagem de programao, o que levanta alguns problemas:
O programador preocupa-se mais com a sintaxe e biblioteca de funes da linguagem utilizada do que com a correcta estruturao e segmentao do programa ao nvel do detalhe.

Engenharia de Mquinas Martimas M04 Computadores e Programao

82

Introduo programao estruturada

ANLISE - Desenho de Detalhe


Normalmente os programadores iniciam aqui a fase de codificao numa linguagem de programao, o que levanta alguns problemas:
O auxlio que o programador poderia ter da parte de colegas fica limitado queles que conheam a linguagem utilizada e mesmo estes dificilmente podero ir alm dos problemas de sintaxe. O programa fica mais longe de ser autodocumentvel.
Engenharia de Mquinas Martimas M04 Computadores e Programao 83

Introduo programao estruturada

ANLISE - Desenho de Detalhe


pois importante encontrar um instrumento que permita separar os problemas da lgica dos da codificao e sintaxe, e que posteriormente constitua um utenslio de documentao do programa. Esse instrumento dever ser como uma linguagem estruturada ou seja, que obedea s figuras e regras de programao estruturada.
Engenharia de Mquinas Martimas M04 Computadores e Programao 84

Introduo programao estruturada

ANLISE - Desenho de Detalhe


Esta pseudo-linguagem no uma verdadeira linguagem de programao e no , portanto, entendida por nenhum compilador. No entanto vem resolver os problemas equacionados e permitir a sua transposio directa para qualquer linguagem de programao.

Engenharia de Mquinas Martimas M04 Computadores e Programao

85

Introduo programao estruturada

ANLISE - Desenho de Detalhe


Como a pseudo-linguagem linguagem corrente conveniente assegurar algumas regras e normalizao. Assim para as figuras de base da programao estruturada as instrues so as seguintes: (Sequncia) If Then Else (ElseIf) Endif Do While Enddo
Engenharia de Mquinas Martimas M04 Computadores e Programao 86

Introduo programao estruturada

ANLISE - Desenho de Detalhe


Outras instrues que se aconselham a usar so: Ler (do teclado, do ficheiro,) Escrever (no monitor, na impressora,) Abrir (o ficheiro) Correr (a subrotina, o programa,)

Engenharia de Mquinas Martimas M04 Computadores e Programao

87

Introduo programao estruturada

ANLISE - Desenho de Detalhe


A pseudo-linguagem quase no necessita de comentrios sendo um instrumento imprescindvel de documentao do programa. Esta importncia fundamental ao nvel do detalhe visto o organigrama estruturado ser mais adequado para nveis mais elevados de desenho.

Engenharia de Mquinas Martimas M04 Computadores e Programao

88

Introduo programao estruturada

CODIFICAO
Na fase da codificao o programador dever assegurar-se, em primeiro lugar, que a linguagem que ir utilizar permite respeitar as regras da programao estruturada.

Engenharia de Mquinas Martimas M04 Computadores e Programao

89

Introduo programao estruturada

CODIFICAO
Se no houver problemas a este nvel e caso o programador tenha seguido conscientemente os diferentes passos da metologia proposta, natural que a fase de codificao seja rpida e simples, consistindo somente na traduo de uma equivalncia de instrues, pseudo-linguagem para linguagem de programao, de uma para trs e muitas vezes de uma para uma.
Engenharia de Mquinas Martimas M04 Computadores e Programao 90

Introduo programao estruturada

CODIFICAO
A preocupao do programador ficar resumida aos problemas da sntaxe (forma, regras) e semntica (significado) da linguagem escolhida.

Engenharia de Mquinas Martimas M04 Computadores e Programao

91

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


O compilador, que tem por funo transformar a linguagem de programao em linguagem que o computador entende, ir primeiro verificar a sntaxe, depois eliminar todos os espaos e instrues desnecessrias e finalmente reduzir o programa a instrues (primitivas) que o computador entenda, isto tendo em conta o sistema operativo deste.
Engenharia de Mquinas Martimas M04 Computadores e Programao 92

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


S depois dos erros de sntaxe serem eliminados que ser criado, pelo compilador, um ficheiro objecto (extenso OBJ) que no mais que o programa, pronto para lhe ser adicionado a biblioteca de primitivas do sistema operativo corrente e assim ser transformado em executvel (extenso EXE). A esta ltima operao costuma chamar-se linkagem e conseguida com um programa adequado (LINK.EXE no Fortran77, TLINK no Clipper, etc...).
Engenharia de Mquinas Martimas M04 Computadores e Programao 93

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Aps se obter o programa na forma executvel, deve o programador proceder a testes que verifiquem o mais possvel todas as situaes de processamento. Esta fase primordial pois ir verificar se a lgica do programa est ou no correcta.

Engenharia de Mquinas Martimas M04 Computadores e Programao

94

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Se o programa tiver sido correctamente desenhado e codificado, segundo os procedimentos aconselhados, natural ser simples a planificao dos testes de modo a cobrir todas as hipteses possveis de fluxo de processamento e a deteco dos erros que porventura existam.

Engenharia de Mquinas Martimas M04 Computadores e Programao

95

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Leitura pelo prprio A deteco de erros comea pela prtica de leitura de programas. O programador dever ler o seu programa em diversas ocasies e por vezes muito antes deste estar codificado.

Engenharia de Mquinas Martimas M04 Computadores e Programao

96

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Leitura pelo prprio Assim deve ler o programa depois de:
ter feito o organigrama estruturado ter escrito o desenho de detalhe em pseudolinguagem codificar o programa para verificar a correcta transposio da pseudo-linguagem para a linguagem utilizada e os erros de sntaxe iniciar a fase de testes
Engenharia de Mquinas Martimas M04 Computadores e Programao 97

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Leitura pelo colega A prtica de dar o programa a ler a outro programador uma boa tcnica que permite muitas vezes detectar erros que o prprio no v e melhorar o estilo de programao.

Engenharia de Mquinas Martimas M04 Computadores e Programao

98

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Na prtica de leitura, pelo prprio ou pelo colega, interessa ter em conta os seguintes princpios:
ler Top Down: no saltar para cada segmento invocado antes de ter lido completamente o segmento invocador olhar primeiro para a estrutura do programa antes de atender aos aspectos especficos da codificao no parar no primeiro erro encontrado
Engenharia de Mquinas Martimas M04 Computadores e Programao 99

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Na prtica de leitura, pelo prprio ou pelo colega, interessa ter em conta os seguintes princpios:
suspeitar de todos os comentrios - confirmar a veracidade de todos estes prestar particular ateno a: GoTo's, inicializaes, em particular de variveis temporrias, tratamento dos valores limite, condies complexas, interligaes entre diferentes segmentos, agulhas e indicadores
Engenharia de Mquinas Martimas M04 Computadores e Programao 100

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Testes Top Down Logo que os segmentos de nvel superior estejam codificados, podem comear os seus testes bastando para tal simular os de nvel inferior (ainda no prontos) pondo estes a devolver-lhes o controlo do programa sem terem executado o que se espera que venham a executar, ou somente o que seja necessrio para verificar a correco da lgica dos segmentos em teste.
Engenharia de Mquinas Martimas M04 Computadores e Programao 101

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Testes Top Down Entretanto, pode proseguir-se a codificao dos nveis inferiores, que a seu tempo substituiro os segmentos simulados e sero por sua vez testados. Nesta fase, a preocupao do programador sero os erros destes segmentos pois os segmentos de nvel superior j foram testados e consequentemente livres de erros.
Engenharia de Mquinas Martimas M04 Computadores e Programao 102

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Testes Top Down Esta tcnica permite as seguintes vantagens:
testar mais vezes os mdulos mais executados e mais complexos executar os testes ao mesmo tempo que a codificao prossegue

Engenharia de Mquinas Martimas M04 Computadores e Programao

103

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Testes Top Down Tradicionalmente na forma de programao antiga, programa monoltico, os testes eram executados quando todo o programa estava concludo, o que tornava muito difcil descobrir de que parte do programa vinham os erros.
Engenharia de Mquinas Martimas M04 Computadores e Programao 104

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Testes Top Down Neste tipo de programa, havia milhares de caminhos diferentes, ao contrrio do que acontece com os programas estruturados onde os segmentos so rigorosamente independentes, existem poucos caminhos de acesso e no h redundncias de cdigo.
Engenharia de Mquinas Martimas M04 Computadores e Programao 105

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Testes Top Down Como a tcnica aconselha a testar individualmente os segmentos, e estes so pequenos (no superiores a uma pgina), fcil definir os testes necessrios para testar todos os caminhos de controle deste.

Engenharia de Mquinas Martimas M04 Computadores e Programao

106

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Debug H dois tipos de casos ou situaes que se deparam ao programador na fase de debug:
O erro detectado revelanos o local onde existe. O erro detectado no revela o local onde pode existir.
Engenharia de Mquinas Martimas M04 Computadores e Programao 107

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Debug
Como bvio no primeiro caso no ser difcil resolver o problema o que j no possvel no segundo. Nesta situao aconselha-se a seguinte metodologia: Analise completamente os dados do teste: os resultados correspondem ao que se espera?, em que que no correspondem? Onde que o erro tem de estar? percorra o caminho inverso, segmento a segmento.
Engenharia de Mquinas Martimas M04 Computadores e Programao 108

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Debug
Como bvio no primeiro caso no ser difcil resolver o problema o que j no possvel no segundo. Nesta situao aconselha-se a seguinte metodologia: No pare no primeiro erro que se descobrir. Por vezes um erro esconde outro ou existem vrios erros interligados. Retire todas as informaes possveis de cada teste e tente detectar todos os erros que um determinado teste permite evidenciar.
Engenharia de Mquinas Martimas M04 Computadores e Programao 109

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Debug
Como bvio no primeiro caso no ser difcil resolver o problema o que j no possvel no segundo. Nesta situao aconselha-se a seguinte metodologia: Altere temporariamente o programa de modo a que este mostre no display ou imprima na impressora o valor das variveis e/ou os resultados de determinados processamentos que de algum modo possam ajudar a esclarecer a origem dos erros.
Engenharia de Mquinas Martimas M04 Computadores e Programao 110

Introduo programao estruturada

COMPILAO, LINKAGEM E DEBUG


Debug Use ferramentas de debug, as quais permitem:
parar o programa, no ponto de processamento em que se encontre, por presso de uma determinada tecla visualizar os valores de todas as variveis executar o programa instruo a instruo
Engenharia de Mquinas Martimas M04 Computadores e Programao 111

Introduo programao estruturada

REGRAS DE ESTILO
Simplicidade
escreva claramente seja simples e directo no sacrifique a clareza pela "eficincia" evite saltos desnecessrios se uma expresso lgica difcil de perceber, tente transform-la evite os GOTOs
Engenharia de Mquinas Martimas M04 Computadores e Programao 112

Introduo programao estruturada

REGRAS DE ESTILO
Simplicidade
no "componha" mau cdigo - reescreva-o use nomes de variveis e de segmentos que signifiquem alguma coisa mas que permaneam curtos

Engenharia de Mquinas Martimas M04 Computadores e Programao

113

Introduo programao estruturada

REGRAS DE ESTILO
Pseudo-Linguagem
escreva primeiro numa pseudo-linguagem, o seu programa, e depois traduza para a linguagem de programao que usar use as regras de indentao.

Engenharia de Mquinas Martimas M04 Computadores e Programao

114

Introduo programao estruturada

REGRAS DE ESTILO
Figuras Lgicas
use os GOTOs s quando necessrio use as seguintes figuras lgicas: Sequncia If Then Else Do While estritamente

Engenharia de Mquinas Martimas M04 Computadores e Programao

115

Introduo programao estruturada

REGRAS DE ESTILO
Modularizao
modularize - use sub-rotinas e funes escreva e teste um programa grande em segmentos pequenos use as funes das bibliotecas

Engenharia de Mquinas Martimas M04 Computadores e Programao

116

Introduo programao estruturada

REGRAS DE ESTILO
Input
teste a plausibilidade e a validade dos "inputs" termine o input por marca de fim de ficheiro e no por contagem identifique inputs incorrectos (validao) - use procedimentos de recuperao se isso for possvel torne o input fcil de preparar e verificar, e o output auto-explicativo use formatos de inputs uniformes
Engenharia de Mquinas Martimas M04 Computadores e Programao 117

Introduo programao estruturada

REGRAS DE ESTILO
Comentrios
assegure-se que os comentrios e o cdigo concordam no seja redundante, escreva comentrios que acrestem algo ao cdigo no comente demais no comente mau cdigo, reescreva-o use comentrios como prefcio a cada segmento
Engenharia de Mquinas Martimas M04 Computadores e Programao 118

Introduo programao estruturada

REGRAS DE ESTILO
Teste de Debug
no pare no primeiro bug use compiladores com facilidade de debug verifique os erros um por um teste os seu programa para todos os valores limites teste alguns casos manualmente

Engenharia de Mquinas Martimas M04 Computadores e Programao

119

Introduo programao estruturada

REGRAS DE ESTILO
Optimizao
no faa faa o programa certo antes de o fazer rpido faa o programa seguro antes de o fazer rpido faa o programa simples antes de o fazer rpido no sacrifique a clareza por pequenos ganhos em eficincia se o programa no corre, no importa a sua rapidez
Engenharia de Mquinas Martimas M04 Computadores e Programao 120

Introduo programao estruturada

REGRAS DE ESTILO
Optimizao
mais fcil optimizar um programa que corre, do que conseguir fazer correr um programa optimizado faa medies antes de fazer alteraes para optimizar faa medies depois das alteraes identifique claramente as zonas do programa que o tornam lento
Engenharia de Mquinas Martimas M04 Computadores e Programao 121

Introduo programao estruturada

REGRAS DE ESTILO
Optimizao
identifique claramente a responsabilidade que cabe ao hardware e ao software na lentido do programa verifique o contributo devido estrutura dos dados

Engenharia de Mquinas Martimas M04 Computadores e Programao

122

Introduo programao estruturada

REGRAS DE ESTILO
Outros conselhos
evite o uso de variveis temporrias deixe o computador fazer as converses de dados. use parentesis para evitar ambiguidades escolha nomes de variveis e segmentos que no permitam confuso assegure-se que todas as variveis so inicializadas antes de serem usadas
Engenharia de Mquinas Martimas M04 Computadores e Programao 123

Introduo programao estruturada

REGRAS DE ESTILO
Optimizao
inicialize as constantes com declaraes de constante ou valores iniciais inicialize as variveis com cdigo executvel no compare nmeros em floating point apenas na condio de igualdade assegure-se que os casos especiais so verdadeiramente especiais
Engenharia de Mquinas Martimas M04 Computadores e Programao 124

Introduo programao estruturada

REGRAS DE ESTILO
Optimizao
quando trabalhar numa equipa defina priori regras de desenho e codificao que constituam Normas

Engenharia de Mquinas Martimas M04 Computadores e Programao

125

Introduo programao estruturada


Referncias bibliogrficas
Introduo Programao Estruturada, Artur Ferreira da Silva, INA

Engenharia de Mquinas Martimas M04 Computadores e Programao

126

Introduo programao estruturada

FIM

Engenharia de Mquinas Martimas M04 Computadores e Programao

127

S-ar putea să vă placă și