Anda di halaman 1dari 24

O Site da Eletrnica Programao Extruturada

1. PROGRAMAO ESTRUTURADA

1.1 - DEFINIES 3 3 1.2 - OBJETIVOS 3 1.3 - PROPRIEDADES 4 1.4 - ESTRUTURAS BSICAS DE CONTROLE 4 1.5 - FORMATO PADRONIZADO DO MDULO 5 1.6 - ESTRUTURA DE CONTROLE DO PROGRAMA 1.6.1 - REGRAS PARA O FLUXO DE CONTROLE DO PROGRAMA EM UM PROGRAMA ESTRUTURADO 5 5 1.7 - DOCUMENTAO 2. PROGRAMAO MODULAR 2.1 - DIVIDIR-PARA-CONQUISTAR 2.2 VANTAGENS DA PROGRAMAO MODULAR 2.3 - ESQUEMAS DE MODULARIZAO 2.3.1 TAMANHO DO MDULO 3. PROGRAMAO POR REFINAMENTO SUCESSIVO (STEPWISE REFINEMENT) 3.1 - DEFINIO 3.2 - CARACTERSTICAS DO REFINAMENTO 4. TOP-DOWN E BOTTOM-UP 4.1- METODOLOGIAS DE PROGRAMAO ESTRUTURADA 4.2 - PROGRAMAO TOP-DOWN 4.2.1 - VANTAGENS 4.2.2 - ETAPAS DA PROGRAMAO TOP-DOWN 4.2.3 - PRINCPIOS BSICOS DA PROGRAMAO TOP-DOW 4.3 - PROGRAMAO BOTTOM-UP VERSUS PROGRAMAO TOP-DOWN 4.4 - PROGRAMAO BOTTOM-UP 4.4.1 - ETAPAS DA PROGRAMAO BOTTOM-UP 4.4.2. - CARACTERSTICAS DO PROCESSO DE CONCATENAO 5. DIAGRAMAS ESTRUTURADOS 5.1 - INTRODUO 5.2 - FUNES DOS DIAGRAMAS ESTRUTURADOS 5.3 - CATEGORIAS DE DIAGRAMAS ESTRUTURADOS 5.4 - CLASSIFICAO DAS TCNICAS DE DIAGRAMAO
http://www.li.facens.br/eletronica 1

6 6 6 7 7 8 8 8 9 9 9 10 10 10 10 11 11 11 12 12 12 12 13
1

O Site da Eletrnica Programao Extruturada

6. DIAGRAMAS DE NASSI-SHNEIDERMAN 6.1 - INTRODUO 6.2 - ESTRUTURAS BSICAS DE CONTROLE 6.3 - EXEMPLO DE UM DIAGRAMA N-S 6.4 - CRTICA AO DIAGRAMA DE NASSI-SHNEIDERMAN 7. DIAGRAMA DE FLUXO DE DADOS 7.1 - INTRODUO 7.2 - COMPONENTES DE UM DFD 7.3 NIVELAMENTO DE UM DFD 7.4 ESPECIFICAO DE PROCESSO E DICIONRIO DE DADOS 7.5 - CRTICAS AO DFD 8. NOTAO DE GANE E SARSON 8.1 INTRODUO

14 14 14 16 17 18 18 18 20 22 23 24 24

http://www.li.facens.br/eletronica 2

O Site da Eletrnica Programao Extruturada

1. Programao Estruturada
1.1 Definies

No existe uma definio universalmente aceita para a programao estruturada; ao contrrio, existem vrias escolas de pensamento que a conceituam. No sentido mais restrito, o conceito de programao estruturada diz respeito forma do programa e do processo de codificao. um conjunto de convenes que o programador pode seguir para produzir o cdigo estruturado. As regras de codificao impem limitaes sobre o uso das estruturas bsicas de controle, estruturas de composio modular e documentao. Com este sentido, a programao estruturada enfoca os seguintes tpicos: Programao sem GO TO (eliminao completa ou parcial do comando GO TO) Programao com apenas trs estruturas bsicas de controle: seqncia, seleo e iterao Forma de um programa estruturado Aplicao de convenes de codificao estruturada a uma linguagem de programao especfica Em um sentido mais amplo, a programao estruturada dirigida tanto aos mtodos de programao como forma do programa. Implica seguir uma metodologia estruturada para organizar o projeto e a implantao do programa. Os tpicos envolvidos incluem: Programao modular Refinamento gradual (stepwise refinement) Nveis de abstrao Programao top-down e bottom-up

1.2

Objetivos

O principal objetivo da programao estruturada produzir um programa de alta qualidade a baixo custo, proporcionando uma disciplina de programao para conseguir: Melhorar a confiabilidade do programa Aumentar a legibilidade do programa Minimizar a complexidade do programa Simplificar a manuteno do programa Aumentar a produtividade do programador Estabelecer uma metodologia disciplinada de programao

1.3

Propriedades

As caractersticas mais notveis de um programa estruturado so sua forma hierarquizada e o conjunto reduzido de suas estruturas bsicas de controle. Alm dessas, tambm so consideradas propriedades igualmente importantes, a estrutura de controle padronizada, os requisitos de programao e as convenes de estilo. A seguir, um resumo das propriedades de um programa estruturado.
http://www.li.facens.br/eletronica 3 3

O Site da Eletrnica Programao Extruturada

Propriedade 1 - o programa dividido em um conjunto de mdulos dispostos em uma hierarquia que define suas relaes lgicas e de tempo de execuo. Propriedade 2 - o fluxo de execuo de mdulo para mdulo restringe-se a um esquema simples, fcil de entender, no qual o controle deve ser passado para o mdulo em seu nico ponto de entrada, sair do mdulo de seu nico ponto de sada e retornar sempre ao mdulo que o chamou. Propriedade 3 - a construo do mdulo padronizada de acordo com as regras tradicionais de modularizao, e as estruturas bsicas de controle so limitadas a seqncia, seleo, iterao e desvio. Propriedade 4 - requerida a documentao relativa ao cdigo fonte, para descrever a funo do programa como um todo e descrever, para cada mdulo, sua funo, sua estrutura de dados e sua relao com outros mdulos do programa.

1.4

Estruturas Bsicas de Controle

As trs estruturas bsicas de controle para a construo de programas estruturados : Seqncia - usada para controlar a execuo do programa, os comandos so executados na mesma ordem em que aparecem no cdigo fonte. As estruturas de seleo, iterao e desvio so usadas para alterar o fluxo de execuo do programa de sua ordem seqencial normal. Seleo - usada para testar uma condio e, ento, dependendo de ser o teste verdadeiro ou falso, um dos dois conjuntos alternativos de instrues executado. Iterao - usada para executar um conjunto de instrues em um nmero inteiro de vezes isto , para construir um lao (loop). Deve-se observar que existem duas formas bsicas para a estrutura de iterao: DO UNTIL e WHILE.

1.5

Formato Padronizado do Mdulo

Um programa estruturado um programa modular. Porm, em um programa estruturado o mdulo, alm de seguir as regras bsicas de modularizao, tem sua forma mais limitada. A imposio de regras de formato rigorosas para a construo de um mdulo estruturado um outro meio de simplificar a estrutura do programa. Elas permitem que o programador concentre sua ateno no contedo e no na forma do programa. As regras para a construo de um mdulo estruturado so as seguintes: Um mdulo tem um nico ponto de entrada e um nico ponto de sada. Um mdulo uma estrutura completa - executa uma nica tarefa lgica no programa e limitado pelo seu ponto de entrada e seu ponto de sada. As estruturas bsicas de controle legais restringem-se seqncia, seleo (admitindo-se extenses), iterao e desvio para o ponto de sada do mdulo.

http://www.li.facens.br/eletronica 4

O Site da Eletrnica Programao Extruturada

1.6 - Estrutura de Controle do Programa


Existe uma relao de chamada entre dois mdulos, A e B, em um programa estruturado, se o mdulo A requisita o mdulo B para executar sua funo. Do ponto de vista da estrutura do controle do programa, isto significa que o mdulo A chama o mdulo B. Quando o mdulo A chama o mdulo B, o controle do programa passado do A para o B, o cdigo do B ento executado e quando este completa sua execuo, passa o controle de volta ao mdulo A. O mdulo A (mdulo chamador) denominado pai do mdulo B (mdulo chamado) e o mdulo B denominado filho do mdulo A. Em um programa estruturado, a relao de chamada entre dois mdulos s funciona em uma direo; isto , se o mdulo A chama o mdulo B, o mdulo B no pode chamar o mdulo A, direta ou indiretamente, atravs de um filho ou neto. Alm disso, um mdulo no pode chamar a si prprio. Estas relaes no so permitidas porque no podem ser implantadas facilmente em muitas linguagens de programao e porque tendem a aumentar a complexidade do programa. 1.6.1 - Regras para o Fluxo de Controle do Programa em um Programa Estruturado Existe um e somente um mdulo raiz, em um programa estruturado. A execuo do programa deve comear com o mdulo raiz. Somente um pai pode chamar um filho. Um filho no pode chamar seu pai, nem um mdulo pode chamar a si prprio. O controle do programa deve ser passado para um mdulo em seu ponto de entrada e deve sair do mdulo em seu ponto de sada. O controle retorna sempre ao mdulo chamador, quando o mdulo chamado completa a execuo. OBSERVAO: estas regras no se aplicam a linguagem C. Em C permitido que o mdulo filho chame ao mdulo pai ou que um mdulo chame a si mesmo. O menor programa estruturado consiste apenas em um mdulo raiz. Outros programas podem conter um mdulo raiz e um ou mais filhos. Com exceo do mdulo raiz, todos os mdulos devem ter pelo menos um pai. Se um mdulo tem mltiplos pais chamado de mdulo comum. Qualquer mdulo, incluindo o mdulo raiz, pode ter zero, ou mltiplos filhos. Um mdulo sem filhos chamado de folha. Todo ramo em uma hierarquia modular deve terminar com um mdulo folha.

1.7 - Documentao
A documentao uma parte essencial de um programa bem-estruturado. Ela dirigida a trs nveis de compreenso do programa: Global Organizao do programa Instruo do programa Cada nvel sucessivo fornece uma viso mais detalhada do programa e todos os trs nveis so necessrios para a sua compreenso e manuteno.
http://www.li.facens.br/eletronica 5 5

O Site da Eletrnica Programao Extruturada

2. Programao Modular
2.1 - Dividir-para-Conquistar
A programao estruturada tem sua origem na programao modular. Grande parte da filosofia estruturada construda sobre a filosofia de modularizao de dividir-para-conquistar. A programao modular utiliza essa filosofia para resolver o problema da complexidade do programa. Quando um programa dividido em partes independentes, fceis de serem entendidas, sua complexidade pode ser grandemente reduzida. A filosofia estruturada utiliza dividir-para-conquistar e amplia a filosofia de modularizao acrescentando os importantes conceitos de organizao hierrquica e nveis de abstrao para controlar as relaes intermodulares. A programao modular pode ser definida como a organizao de um programa em unidades independentes, chamadas mdulos, cujo comportamento controlado por um conjunto de regras. Suas metas so as seguintes: Decompor um programa em partes independentes Dividir um problema complexo em problemas menores e mais simples Verificar a correo de um mdulo de programa, independentemente de sua utilizao como uma unidade em um sistema maior A modularizao pode ser aplicada em diferentes nveis. Pode ser usada para separar um problema em sistemas, um sistema em programas e um programa em mdulos.

2.2 Vantagens da Programao Modular


Os programas modulares so mais fceis de entender, porque a anlise do programa pode ser feita atravs da anlise dos mdulos, um de cada vez. O teste do programa mais simples. Os erros do programa so mais fceis de serem isolados e corrigidos. As mudanas no programa podem ser limitadas a apenas alguns mdulos, em vez de percutirem pela maior parte do cdigo do programa. Pode-se aumentar mais facilmente a eficincia do programa. Os mdulos do programa podem ser reutilizados como blocos de construo de outros programas. O tempo de desenvolvimento do programa pode ser diminudo, porque diferentes mdulos podem ser designados a diferentes programadores, que podem trabalhar com maior ou menor independncia.

http://www.li.facens.br/eletronica 6

O Site da Eletrnica Programao Extruturada

2.3 - Esquemas de Modularizao


Dividir um programa em mdulos pode ser um meio muito eficaz de controlar a complexidade. O problema que surge quanto melhor forma de dividir o programa. Mesmo para um programa simples, existem inmeras maneiras de dividi-lo em um conjunto de mdulos estruturados. A maneira escolhida pode afetar significativamente a complexidade do programa. Por exemplo, definir mdulos grandes demais ou pequenos demais aumenta a complexidade, os custos e a probabilidade de erros no programa. A forma de dividir um programa em mdulos chamada de seu esquema de modularizao. Um grande objetivo da programao modular definir um bom esquema de modularizao (aquele que reflita rigorosamente os componentes do problema a ser programado, minimize a complexidade e possa ser fcil e eficazmente implantado).

2.3.1 Tamanho do Mdulo Para ajudar o projetista de programa na escolha de um bom esquema de modularizao, tm sido desenvolvidas diretrizes relativas ao tamanho do mdulo. A IBM, por exemplo, recomenda que se definam mdulos com, no mximo, 50 linhas de cdigo de programa ou a uma pgina de listagem do programa fonte (uma tela de vdeo), pois permite que o leitor veja, e portanto compreenda, todo o cdigo de uma s vez. Um nmero semelhante surge de Weinberg, cujos trabalhos demonstram que mdulos que possuem mais de 30 instrues de programao so difceis de entender. De uma maneira geral, o tamanho do mdulo deve estar compreendido entre 10 e 100 instrues. Mdulos com mais de 100 instrues so mais dispendiosos em relao a testes e manutenes, enquanto mdulos com menos de 10 instrues podem dividir o programa em muitas partes, afetando desfavoravelmente a eficcia do programa.

http://www.li.facens.br/eletronica 7

O Site da Eletrnica Programao Extruturada

3.

Programao por Refinamento Sucessivo


(STEPWISE REFINEMENT)

3.1 - Definio
a maneira de desenvolver um programa executando uma seqncia de etapas de refinamento. O processo comea com a definio dos dados e tarefas procedurais bsicas, para resolver o problema de programao. Esta definio inicial feita em nvel bem alto e geral. O processo pra quando todas as tarefas do programa so expressas em uma forma que diretamente traduzvel na(s) linguagem(ns) de programao. A cada etapa de refinamento, uma ou vrias tarefas so decompostas em subtarefas mais detalhadas. A definio de uma subtarefa freqentemente acompanhada por um refinamento da definio dos dados necessrios para as tarefas de interface. Por esta razo o refinamento de tarefa e o refinamento de dados so executados em paralelo.

3.2 - Caractersticas do Refinamento


O processo avana em etapas explcitas. A cada etapa, um conjunto de tarefas e estruturas de dados apresentado. O programa, tal como foi desenvolvido at este ponto, definido em termos deste conjunto. O conjunto de tarefas e estruturas de dados usado em uma etapa define, com maior detalhe, o conjunto que foi apresentado na etapa de refinamento anterior. A notao usada para definir as tarefas e estruturas de dados geral, porm vai tornando-se mais detalhada e mais semelhante linguagem de programao real, medida que o processo de refinamento completa-se. As etapas de refinamento so o produto das decises de projeto do programa, envolvendo uma definio adicional das partes funcionais do programa e suas estruturas de dados.

Quo bem as decises do projeto de programa forem tomadas, to bem o programa ser estruturado em mdulos fceis de serem entendidos e de serem modificados.

http://www.li.facens.br/eletronica 8

O Site da Eletrnica Programao Extruturada

4. TOP-DOWN e BOTTOM-UP

4.1 - Metodologias de Programao Estruturada


Os programas podem ser desenvolvidos de cima para baixo ou de baixo para cima. Tanto um como outro so adaptaes da programao por refinamento sucessivo. Quando um sistema construdo de baixo para cima, o projetista primeiro cria os componentes, faz cada um deles funcionar bem e, ento agrupa os componentes. Quando um projetista trabalha de cima para baixo, primeiramente cria a estrutura global, definindo os componentes. medida que o projeto vai progredindo, ele completa os detalhes, construindo os componentes de nveis inferiores. Em projetos complexos, comumente requerida uma combinao de projetos top-down e bottom-up.

4.2 - Programao Top-Down


um mtodo organizado de projetar, codificar e testar um programa em etapas progressivas. O mtodo baseado na programao por refinamento sucessivo. A programao top-down produz um programa modular, estruturado hierarquicamente. O mdulo de nvel mais alto na hierarquia representa a funo global do programa. Os mdulos dos nveis inferiores representam subfunes que definem as tarefas do programa com maiores detalhes. Na programao top-down, a ordem das etapas de projeto, codificao e teste diferente daquela do desenvolvimento tradicional de programa. No desenvolvimento tradicional, primeiramente o programa inteiro projetado, depois codificado e, finalmente, testado. As trs etapas so executadas separada e seqencialmente, chamada de abordagem por fases ou abordagem tudo-em-um. No desenvolvimento top-down, ao contrrio, as trs etapas so executadas em paralelo, chamada de abordagem incremental ou abordagem passo a passo. Primeiramente, um mdulo projetado, codificado e testado. Depois, um outro mdulo projetado, codificado e testado, e assim por diante, at terminarem todos os mdulos do programa. Como parte da etapa de teste, cada mdulo recentemente codificado combinado e testado com todos os mdulos concludos at aquele ponto. O programa cresce gradualmente, um mdulo por vez. A integrao realizada em etapas e no em grandes blocos no final do projeto, como acontece na abordagem por fases. Na prtica, a abordagem tradicional por fases no tem tido muito xito. Tende a adiar a descoberta de problemas graves at uma fase bem avanada do projeto. Esta situao revela-se em estouros de cronogramas e oramentos e em graves problemas de testes de integrao. Como conseqncia, a fase de testes a fase mais mal executada e a que mais foge do esquema planejado. Alm disso, os problemas provavelmente continuaro na fase de manuteno, transformando o programa em um custoso pesadelo a ser mantido.

http://www.li.facens.br/eletronica 9

O Site da Eletrnica Programao Extruturada

4.2.1 - Vantagens A abordagem top-down pode evitar muitos destes problemas. Tem a vantagem de iniciar os testes mais cedo, no processo de desenvolvimento. Desta forma os problemas de integrao podem ser descobertos e corrigidos antes e a um custo mais baixo. Uma segunda vantagem que existe um esqueleto do programa desde as primeiras etapas de desenvolvimento, fornecendo ao usurio uma verso parcial do programa bem antes de sua concluso.

4.2.2 - Etapas da Programao Top-Down O desenvolvimento top-down do programa segue a estrutura lgica do programa, iniciando-se com o mdulo de nvel mais alto e continuando, em etapas bem organizadas, at os mdulos de nvel mais baixo. As etapas so as seguintes: Etapa l - comea com uma anlise do problema e, ento, prope um plano de abordagem, definido como a estrutura geral do programa. Representa a soluo como um esboo que identifica o processamento e os componentes de dados gerais do programa. Neste ponto, os contedos dos componentes no so definidos em detalhes. O esboo obtido dividindo-se o problema em partes lgicas que refletem as tarefas funcionais que o programa deve executar para realizar seu objetivo (por exemplo, calcular o pagamento bruto, selecionar o formato da tela). Etapa 2-n - em etapas, expande o esboo do programa chegando ao programa completo. O processo de expanso segue as regras do processo de refinamento. Os componentes do programa so refinados em subcomponentes (stubs tocos), os quais so tambm refinados, e assim por diante. O processo terminar quando o programa puder ser escrito como um conjunto de componentes diretamente representveis na linguagem de programao.

4.2.3 - Princpios Bsicos da Programao Top-Dow As decises de projeto devem ser feitas de tal forma que dividiro o problema em partes cujos componentes estaro relacionados a ele. Os detalhes de implantao no devem ser considerados at o processo de desenvolvimento estar avanado, mas em cada etapa devem ser exploradas alternativas. As etapas de refinamento devem ser simples e explcitas.

4.3 - Programao Bottom-Up versus Programao Top-Down


Embora a programao top-down seja geralmente considerada como o melhor mtodo de desenvolver um programa estruturado, a programao bottom-up , s vezes, uma alternativa vivel. Ambos os mtodos compartilham os mesmos objetivos:
http://www.li.facens.br/eletronica 10 10

O Site da Eletrnica Programao Extruturada

sistematizar o processo de programao fornecer uma estrutura para a resoluo do problema produzir um programa modular

Ambas so compatveis com a metodologia de programao estruturada. Contudo, abordam o desenvolvimento de programa de maneiras opostas. Na programao top-down, a tcnica de construo usada no desenvolvimento de programa a decomposio - o sentido do desenvolvimento de uma soluo abstrata e de alto nvel para o ambiente de programao real. Na programao bottom-up, o caminho de desenvolvimento seguido oposto. O programa construdo pela combinao de componentes simples, atmicos, para formar componentes mais abstratos e de nvel mais alto. Esta tcnica de construo a concatenao.

4.4 - Programao Bottom-Up


A programao bottom-up desenvolve o programa em etapas. Assim como em topdown, o processo pode ser dividido em duas partes. Primeiramente, proposta uma soluo inicial para o programa e depois, so desenvolvidos os componentes que tratam dos detalhes.

4.4.1 - Etapas da Programao Bottom-Up Etapa 1 - comea com um esboo do programa proposto. Este esboo contm os componentes gerais do programa - componentes funcionais e de dados. Etapa 2-n - em etapas explcitas, desenvolve o programa combinando os componentes de nvel mais baixo para formar componentes de nvel mais alto. Este processo chamado de concatenao. Esse processo terminar quando for construdo a partir de elementos disponveis no ambiente de programao real, um conjunto de funes e estruturas de dados do programa, capazes de resolver o problema de programao. Acionadores de testes so usados para representar os mdulos de nvel mais alto que sero desenvolvidos em etapas posteriores.

4.4.2. - Caractersticas do processo de concatenao O processo prossegue em etapas explcitas. A cada etapa, construda uma mquina. Os componentes desta mquina so formados a partir dos componentes da mquina desenvolvida durante a etapa de concatenao anterior. Cada etapa o resultado de uma deciso de combinar alguns componentes da mquina anterior.

Na prtica, o processo de concatenao, de maneira anloga ao processo de refinamento, no um procedimento de um passo. Erros e omisses podem forar a repetio de parte do processo ou de todo o processo.
http://www.li.facens.br/eletronica 11 11

O Site da Eletrnica Programao Extruturada

5. Diagramas Estruturados

5.1 - Introduo
As tcnicas de diagramao estruturada oferecem muitas vantagens. Combinam notaes grficas com narrativas, para aumentar a compreenso. Os grficos so particularmente teis porque tendem a ser menos ambguos do que a descrio narrativa. Alm disso os grficos, porque tendem a ser mais resumidos, podem ser desenhados em um tempo bem menor do que poderia ser gasto para escrever um documento narrativo contendo a mesma quantidade de informao. As tcnicas de diagramao estruturada apoiam uma abordagem de desenvolvimento top-down e estruturado. Podem descrever um sistema ou programa com vrios graus de detalhes, durante cada etapa do processo de decomposio funcional. Tornam claras as etapas e os resultados do processo de decomposio funcional, ao fornecerem um modo padronizado de descrever a lgica dos procedimentos e as estruturas de dados.

5.2 - Funes dos Diagramas Estruturados


Contribuir para a clareza de pensamento Possibilitar uma comunicao precisa entre os membros da equipe de desenvolvimento Facilitar a definio de interfaces padres entre mdulos Impor uma boa estruturao Ajudar a depurao Ajudar a efetuar mudanas nos sistemas (manuteno) Acelerar o desenvolvimento (com diagramao apoiada por computador) Impor preciso nas especificaes Integrar as ferramentas de administrao de dados Fornecer condies aos usurios finais para esboar suas necessidades com clareza Integrar a checagem automtica com a gerao de cdigo

5.3 - Categorias de Diagramas Estruturados


Os diagramas so usados em vrias reas: Modelo global da empresa - as funes e processos de uma empresa so decompostas hierarquicamente. Anlise de sistema global o fluxo de dados global entre eventos e processos comerciais desenhado. Projeto de sistema - a relaes entre os componentes de um sistema so desenhadas. Arquitetura do programa - a arquitetura global de um programa ou de um conjunto de programas desenhada, mostrando os mdulos independentes.
http://www.li.facens.br/eletronica 12 12

O Site da Eletrnica Programao Extruturada

Detalhe do programa - a lgica detalhada dentro de um mdulo de programa desenhada. Modelos de dados - um modelo lgico global dos dados desenhado. importante aqui que se faa a distino entre modelos de banco de dados e representao de arquivos. Estruturas de dados - as estruturas dos bancos de dados ou dos arquivos so desenhadas. Estruturas de dilogos - as possveis seqncias das telas e interaes em um dilogo homemcomputador podem ser desenhadas.

5.4 - Classificao das Tcnicas de Diagramao


Tcnicas DFD Decomp. Funcional Diagr. Estrutura Hipo Warnier-Orr Michael Jackson Fluxograma Pseudocdigo Nassi-Shneiderman Diagr. Ao rvores de deciso Tabelas de deciso D. Estrut. Dados Entidade-Rel. (E-R) D. Naveg. Dados Diagr. HOS Sist. Global X X X X X Arq. Programa Lg. Detalhada Estrut. Arq. Estrut. BD

X X X X

X X X X X X X X

X X

X X

X X

X X X X X

http://www.li.facens.br/eletronica 13

13

O Site da Eletrnica Programao Extruturada

6. Diagramas de NASSI-SHNEIDERMAN
6.1 - Introduo
Os fluxogramas, no so tcnicas adequadas para descrever programas estruturados. Do uma viso no-estruturada do mundo e tendem a gerar programas com GO TOs, em vez de programas hierarquicamente estruturados. I. Nassi e B. Shneiderman resolveram substituir o fluxograma tradicional por um diagrama que apresenta uma viso hierrquica e estruturada da lgica do programa. (N. Chapin usa um tipo de diagrama semelhante, denominado por ele diagrama Chapin.) Os diagramas de Nassi-Shneiderman (N-S) representam estruturas de programas que tm um ponto de entrada e um ponto de sada e so compostos pelas estruturas bsicas de controle (seqncia, seleo e repetio). Enquanto difcil mostrar o embutimento e a recursividade com o fluxograma tradicional, fcil mostr-1os com um diagrama N-S e fcil, tambm, converter um diagrama N-S em cdigo estruturado. Um diagrama N-S consiste em um retngulo que representa a lgica do mdulo do programa. Pretende-se que este retngulo seja desenhado em uma pgina. Portanto ele deve ter, no mximo, cerca de 15 a 20 subdivises. Quando um diagrama N-S torna-se muito grande, as subfunes so separadas e desenhadas em um outro diagrama. Foi projetado para ser usado com mtodos top-down e de refinamento gradual. Para representar a lgica do processo, vrias estruturas so embutidas dentro do retngulo. No permitida uma instruo de desvio.

6.2 - Estruturas Bsicas de Controle


Cada estrutura bsica de controle usada em programao estruturada pode ser representada por um smbolo do diagrama de N-S. Seqncia - mostrada por uma pilha vertical de retngulos de processo:

Por exemplo, a Figura 6.1 descreve a seqncia de quatro processos : CHECAR NOME E ENDEREO, CHECAR CEP NUMRICO, CHECAR TERMOS VLIDOS e CHECAR PAGAMENTO.

http://www.li.facens.br/eletronica 14

14

O Site da Eletrnica Programao Extruturada

Seleo - apresenta-se a seleo (IF-THEN-ELSE) dividindo-se o retngulo de processo em 5 partes. A metade superior dividida em trs tringulos. O tringulo superior contm a condio a ser testada. Os tringulos inferiores indicam a parte verdadeira e a parte falsa do IF-THENELSE. A metade inferior dividida em retngulo de processo verdadeiro e retngulo de processo falso, p-1 e p-2, respectivamente. C? V p-1 F p-2

Por exemplo, na Figura 6.1, o ltimo teste de condio no diagrama a checagem do INDICADOR INVLIDO. Se o teste verdadeiro, o processo ESCREVER MENSAGENS ERROS executado. Se o teste falso, nada feito, pois o processo falso nulo. Observe que a estrutura de seleo pode ser embutida. Na Figura 2.1, o teste de condio para ERROS embutido no teste de condio para RENOVAO. A estrutura de condio pode ser ampliada para a estrutura de casos, na qual uma seleo feita entre vrias opes mutuamente exclusivas, como se segue: EXECUTE CASO 1 2 i=2 .... p-2 .... CASO n i=n p-n ou cond.1 cond.2 p-1 p-2 ... cond.n p-n default p-d

1 i=1 p-1

Repetio - indicada por uma estrutura REPETIR ENQUANTO ou uma estrutura REPETIR AT. CONDIO REPETIR ENQUANTO PROCESSO do while PROCESSO CONDIO REPETIR AT do - until

Observe que na estrutura DO WHILE a condio testada em primeiro lugar; ento, se a condio for verdadeira, o processo executado. Na estrutura DO UNTIL, o processo executado em primeiro lugar; depois a condio testada. Na Figura 6.1, a estrutura de repetio usada para indicar que o processo de validao e processamento de uma assinatura executado uma vez para cada assinatura no arquivo de transaes.
http://www.li.facens.br/eletronica 15 15

O Site da Eletrnica Programao Extruturada

6.3 - Exemplo de um diagrama N-S


VALIDAR ITEM ASS: CHECAR FORMATO GERAL ERROS? NO SIM ESCREVER MENSAGEM ERRO NOVA ASS? NO SIM CHECAR NOME E ENDEREO CHECAR CEP NUMRICO CHECAR TERMOS VLIDOS CHECAR PAGAMENTO
NO

ERROS?

SIM

POSICIONARPOSICIONAR INDICADOR INDICADOR VLIDO INVLIDO


NO

RENOVAO?

SIM

CHECAR TERMOS VLIDOS CHECAR PAGAMENTO ERROS? NO SIM POSICIONARPOSICIONAR INDICADOR INDICADOR VALIDO INVLIDO CANCELAMENTO? NO SIM POSICIONAR SINALIZADOR CANCELAMENTO INDICADOR INVLIDO ? NO ESCREVER MENSAGENS ERROS Figura 6.1 Exemplo de um diagrama N-S para validar assinaturas SIM

http://www.li.facens.br/eletronica 16

16

O Site da Eletrnica Programao Extruturada

6.4 - Crtica ao Diagrama de Nassi-Shneiderman


O diagrama de Nassi-Shneiderman uma tcnica de diagramao usada fundamentalmente para o projeto detalhado de programa. uma ferramenta fraca para mostrar a estrutura hierrquica de controle, de alto nvel, para um programa. Embora ela possa mostrar os componentes procedurais bsicos, no apresenta as interfaces ligando estes componentes. uma alternativa para os fluxogramas tradicionais de programas, diagramas HIPO e pseudocdigos. Entre estas tcnicas, o diagrama N-S o mais fcil de ser lido e o mais fcil de ser convertido em cdigo de programa. Contudo, apenas uma ferramenta para o projeto de procedimento e no pode ser usado para projetar estruturas de dados. Embora sua leitura seja fcil, o seu desenho nem sempre o . O desenho de um diagrama N-S pode levar trs ou quatro vezes mais tempo para ser executado do que seu pseudocdigo correspondente. Uma outra grande falha do diagrama N-S no ser orientado para banco de dados. Ele no se relaciona com um modelo de dados ou um dicionrio de dados. Os diagramas de ao apresentam todas as informaes que esto no diagrama de NassiShneiderman e so bem mais fceis de serem usados com editores estruturados. Vrias ferramentas CASE usam diagramas de ao; nenhuma usa os diagramas de Nassi-Shneiderman.

http://www.li.facens.br/eletronica 17

17

O Site da Eletrnica Programao Extruturada

7. Diagrama de Fluxo de Dados


7.1 - Introduo
Um diagrama de fluxo de dados (DFD) apresenta os processos e o fluxo de dados entre eles. Em alto nvel, usado para mostrar eventos de negcios e as transaes resultantes desses eventos. Em nvel mais baixo, usado para mostrar programas ou mdulos de programas e o fluxo de dados entre estas rotinas. Um DFD usado como o primeiro passo em um projeto estruturado. Apresenta o fluxo de dados global em um sistema ou programa. principalmente uma ferramenta de anlise de sistemas, para desenhar os componentes procedurais bsicos e os dados que passam entre eles. O diagrama de fluxo de dados mostra como o dado flui atravs de um sistema lgico, mas no d informao sobre controle ou seqncia.

7.2 - Componentes de um DFD


Um DFD uma representao em rede de um sistema que mostra os processos e as interfaces de dados entre eles. O DFD construdo a partir de 4 componentes bsicos: o fluxo de dados o processo o depsito de dados os pontos terminais Fluxo de Dados conduz o fluxo de informaes atravs dos processos de um sistema. O sentido do fluxo de dados indicado por uma seta. Na verdade, mostra como os processos so interligados. Os dados so identificados por nomes escritos ao lado de sua flecha correspondente; por exemplo: PRODUTOS PEDIDOS Processo um componente procedural do sistema. Opera sobre (ou transforma) os dados. Por exemplo, pode executar operaes aritmticas ou lgicas com os dados, para produzir algum(ns) resultado(s). Cada processo representado no DFD por um crculo ou um retngulo com os vrtices arredondados. O nome do processo escrito dentro do crculo. Deve ser usado um nome significativo, para definir a operao executada pelo processo, por exemplo: VALIDAR CLIENTE

http://www.li.facens.br/eletronica 18

18

O Site da Eletrnica Programao Extruturada

Nenhuma outra informao sobre o que faz o processo mostrada no DFD. Normalmente, os dados entram e saem de cada processo. Geralmente, existem mltiplos fluxos de dados entrando e saindo de um processo; por exemplo: REGISTRO CLIENTE PEDIDO VALIDAR CLIENTE PRODUTOS PEDIDOS

CLIENTE INVLIDO

Depsito de Dados representa um arquivo lgico. desenhado no DFD como um par de linhas paralelas (s vezes, fechadas em um dos lados). O nome do depsito de dados escrito entre as linhas; por exemplo: ARQUIVO PRODUTOS ou ARQUIVO PRODUTOS

Cada depsito de dados ligado a um "retngulo" de processo por meio de um fluxo de dados. O sentido da seta do fluxo de dados mostra se os dados esto sendo lidos do depsito de dados para o processo ou produzidos pelo processo e ento enviados para o depsito de dados. No exemplo mostrado a seguir, as informaes sobre erros so produzidas pelo PROCEDIMENTO ERROS e gravadas no ARQUIVO ERROS: PROCESSAR ERROS INFORMAES SOBRE ERROS ARQUIVO ERROS

Ponto Terminal - mostra a origem dos dados usados pelo sistema e o ltimo receptor de dados produzidos pelo sistema. A origem dos dados chamada de fonte e o receptor dos dados chamado de destino. Para representar um ponto terminal em um DFD, usado um retngulo (como mostrado) ou um quadrado duplo. Na verdade, os pontos terminais situam-se fora do DFD. DEPTO. VENDAS PEDIDOS

http://www.li.facens.br/eletronica 19

19

O Site da Eletrnica Programao Extruturada

7.3 Nivelamento de um DFD


Um DFD uma ferramenta para anlise top-down. Pode-se usar DFDs para fornecer tanto uma viso em alto nvel como tambm vises detalhadas de um sistema ou programa. O que acontece dentro de um dos retngulos do DFD pode ser mostrado com detalhes em um outro DFD. A seguir um exemplo de um sistema de distribuio de vendas. SISTEMA DISTRIBUIAO VENDAS ARQUIVO PEDIDO CLIENTE PEDIDO PROCESSAR ACEITAO PEDIDO PEDIDO ACEITO PROCESSAR COMPLETAR PEDIDO ARQUIVO CLIENTE CLIENTE REGISTRO CLIENTE PRODUTOS PEDIDOS PROCESSAR FATURAMENTO FATURA ARQUIVO FATURA INFORMAO VENDAS ESTATSTICAS VENDAS ARQUIVO ENTREGAS QUANTIA DEVIDA CONTAS A PAGAR Figura 7.1 DFD do sistema de distribuio de vendas. PRODUTOS PEDIDOS ARQUIVO ARQUIVO ESTOQUE REGISTRO PEDIDO

ENDEREO CLIENTE PROCESSAR ENTREGA PEDIDO INFORMAO ENTREGAS

http://www.li.facens.br/eletronica 20

20

O Site da Eletrnica Programao Extruturada

A Figura acima mostra a viso em alto nvel do processo aceitao de pedido. Ela nos indica que o processo aceitao de pedido um dos quatro processos do sistema de distribuio de vendas. Esta viso, porm, no nos fornece nenhuma informao detalhada sobre o processo e o fluxo de dados necessrios para registrar um pedido. Se necessitarmos de mais detalhes, devemos olhar dentro do retngulo do processo para ver quais subprocessos esto contidos no PROCESSO ACEITAO DE PEDIDO. ARQUIVO CLIENTE ARQUIVO PEDIDO PEDIDO VALIDAR CLIENTE REGISTROS PEDIDO CLIENTE CLIENTE INVALIDO PRODUTO INVLIDO PROCESSAR ERROS INFORMAES SOBRE ERRO ARQUIVO ERROS CATEGORIA PROCESSAR PEDIDOS PENDENTES INFORMAO ENTREGA PRODUTO INFORMAO PEDIDO PEDIDO CONFIRMADO Figura 7.2 DFD do processo ACEITAO DE PEDIDO.
http://www.li.facens.br/eletronica 21 21

REGISTRO CLIENTE ARQUIVO PRODUTOS REGISTRO PRODUTO

CHECAR DISPONIBILIDADE PRODUTO INFORMAO ENTREGA PRODUTO ARQUIVO CATEGORIA PEDIDO INFORMAO

PRODUTO NO DISPONVEL

CRIAR PEDIDO CLIENTE PEDIDO CLIENTE ARQUIVO PEDIDO ACEITO

O Site da Eletrnica Programao Extruturada

Podemos continuar a expandir nossa viso do sistema, olhando dentro de cada processo, at onde quisermos. Quo detalhada deve ser nossa viso? Uma regra prtica seria: continuar expandindo os retngulos de processos, para criar DFDs detalhados, at as operaes executadas por cada processo poderem ser descritas em uma especificao de uma pgina. A cada nvel, o DFD deve conter menos que 12 retngulos de processos, preferivelmente, seis ou sete. DFDs maiores so um sinal de tentativa de mostrar muitos detalhes, e so difceis de serem lidos. Este processo de definir um sistema em uma maneira top-down chamado de nivelamento de um DFD.

7.4 Especificao de Processo e Dicionrio de Dados


Quando um DFD desenvolvido durante a anlise estruturada, so desenvolvidos, tambm,. especificaes de processo e dicionrio de dados, para darem informaes adicionais sobre o sistema. Uma especificao de processo criada para cada retngulo do DFD de nvel mias baixo. Define como o fluxo de dados entra e sai do processo e quais operaes so executadas com os dados. Uma especificao de processo descrita com outras tcnicas. A seguir, uma verso em portugus estruturado do que acontece no retngulo rotulado VALIDAR CLIENTE, da Figura 2. VALIDAR CLIENTE PARA CADA PEDIDO REALIZADO; ENCONTRAR REGISTRO CLIENTE CORRESPONDENTE; SE CLIENTE ENCONTRADO SE CRDITO CLIENTE BOA SITUAO REUNIR TODOS PEDIDOS PRODUTO PARA AQUELE CLIENTE; CRIAR REGISTRO PEDIDO_CLIENTE CASO CONTRRIO (CLIENTE M SITUAO) ESCREVER MENSAGEM ERRO CLIENTE INVLIDO FIMSE. CASO CONTRRIO (CLIENTE NOVO A SER ACRESCENTADO NO ARQUIVO) CRIAR REGISTRO CLIENTE NOVO; REUNIR TODOS PEDIDOS PRODUTO PARAAQUELE CLIENTE; CRIAR REGISTRO PEDIDO CLIENTE FIMSE. O dicionrio de dados contm definies de todos os dados do DFD. Pode incluir, tambm, informao fsica sobre os dados, tais como dispositivos de armazenamento, e mtodos de acesso aos dados. O termo dicionrio de dados, usado em conjuno com a definio de um DFD, no o mesmo quando usado em conjuno com sistemas de gesto de banco de dados. A seguir, apresentado um exemplo

http://www.li.facens.br/eletronica 22

22

O Site da Eletrnica Programao Extruturada

ARQUIVO CLIENTE = [registros de cliente] Os colchetes [ ] indicam que neste exemplo ARQUIVO CLIENTE repeties de registros de cliente. registro-cliente = nome-cliente + endereo-cliente + informaopagamento + pedidos-pendentes + tipo-cli

O sinal + indica que neste exemplo um registro de cliente um item de dado composto formado por uma seqncia dos itens de dados relacionados acima. tipo-cli = empr | indivduo A barra | indica que tipo-cli uma empresa ou um indivduo.

7.5 - Crticas ao DFD


Os diagramas de fluxo de dados so uma ferramenta muito valiosa para traar fluxos de documentos e fluxos de dados em sistemas complexos. Algumas organizaes estendem seu uso para a estruturao interna de programas. Este uso pode ser questionado, pois existem tcnicas melhores. DFDs so usados erroneamente em muitos casos. Especificaes grandes e complexas so criadas com a ajuda de tais diagramas, mas a tarefa de fazer a checagem cruzada de todas as entradas e sadas de dados muitas vezes, no executada adequadamente. Muitos conjuntos de especificaes, a partir das quais os programadores codificam, tm diagramas de fluxo de dados nos quais as entradas e sadas so inconsistentes. Aps o cdigo ter sido escrito, muito dispendioso acertar a confuso resultante. Os autores de diagramas de fluxo de dados declaram que quando desenham os diagramas iniciais, diagramas em alto nvel, no podem ainda conhecer os detalhes que surgiro quando estiverem desenhando os diagramas subseqentes. verdade que os diagramas iniciais so esboos, ainda sem detalhes e preciso. Contudo, quando o detalhe definido, ele deve ser refletido nos nveis mais altos, de forma que estes fiquem coerentes. Em outras palavras, o projeto do detalhe deve nos induzir a mudar os demais nveis do diagrama. Com uma ferramenta computadorizada (CASE), isto pode ser feito automaticamente. As entradas e sadas detalhadas das camadas de nveis mais baixos podem ser refletidas nas camadas de nveis mais altos. Porm, nem todas as ferramentas computadorizadas fazem isto. Elas so simplesmente apoios para o desenho, sem ligao com as desejadas checagens de integridade.

http://www.li.facens.br/eletronica 23

23

O Site da Eletrnica Programao Extruturada

8. Notao de Gane e Sarson


8.1 Introduo
Gane e Sarson adotaram, para diagramas de fluxo de dados, convenes de diagramao ligeiramente diferentes daquelas tornadas populares por Yourdon e De Marco. Sob alguns aspectos, a notao de Gane e Sarson melhor. A figura a seguir apresenta um resumo das duas.

Yourdon, De Marco e outros Fluxo de dados Processo que transforma os dados Descrio do processo

Gane e Sarson

Identificao Descrio do Processo Localizao

Depsito de dados Identificao Origem ou destino de dados externos

Fluxo de materiais Depsito de dados repetidos em um diagrama N linhas para n repeties Origem ou destino de dados externos repetidos em um diagrama N linhas para n repeties

http://www.li.facens.br/eletronica 24

24

Anda mungkin juga menyukai