análise estruturada de sistema...sistema novo. chegamos então à análise estruturada moderna,...

49
Análise Estruturada de Sistema Um Estudo Sobre Análise Estruturada de Sistema Osvaldo Célio Ribeiro A

Upload: others

Post on 03-Mar-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Análise Estruturada de SistemaUm Estudo Sobre Análise Estruturada de Sistema

Osvaldo Célio Ribeiro

A

, 23/12/05
<!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]-->
, 23/12/05
<!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>Osvaldo Célio Ribeiro</o:Author> <o:Template>Normal</o:Template> <o:LastAuthor>silvia</o:LastAuthor> <o:Revision>2</o:Revision> <o:TotalTime>7</o:TotalTime> <o:LastPrinted>2001-02-13T14:59:00Z</o:LastPrinted> <o:Created>2001-05-22T12:06:00Z</o:Created> <o:LastSaved>2001-05-22T12:06:00Z</o:LastSaved> <o:Pages>99</o:Pages> <o:Words>13087</o:Words> <o:Characters>74599</o:Characters> <o:Company>Particular</o:Company> <o:Lines>621</o:Lines> <o:Paragraphs>149</o:Paragraphs> <o:CharactersWithSpaces>91612</o:CharactersWithSpaces> <o:Version>9.2812</o:Version> </o:DocumentProperties> </xml><![endif]-->
, 23/12/05
<!--[if gte mso 9]><xml> <w:WordDocument> <w:HyphenationZone>21</w:HyphenationZone> </w:WordDocument> </xml><![endif]-->
, 23/12/05
<!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="2050"/> </xml><![endif]-->
, 23/12/05
<!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> <o:rules v:ext="edit"> <o:r id="V:Rule12" type="arc" idref="#_x0000_s1189"/> <o:r id="V:Rule14" type="arc" idref="#_x0000_s1190"/> <o:r id="V:Rule16" type="arc" idref="#_x0000_s1211"/> <o:r id="V:Rule18" type="arc" idref="#_x0000_s1213"/> </o:rules> </o:shapelayout></xml><![endif]-->
Page 2: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Uberlândia, Dezembro/2000.

Análise Estruturada de SistemaUm Estudo Sobre Análise Estruturada de Sistema

Osvaldo Célio Ribeiro

Monografia apresentada ao Curso de Ciência da Computação do Centro Universitário do Triângulo - Unit, como requisito básico à obtenção do grau de Bacharel em Ciência da Computação, sob a orientação do Prof. Jansen Rubens.

Page 3: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Uberlândia, Dezembro/2000.

Page 4: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Análise Estruturada de SistemaUm Estudo Sobre Análise Estruturada de Sistema

Osvaldo Célio Ribeiro

Monografia apresentada ao Curso de Ciência da Computação do Centro Universitário do Triângulo - Unit, como requisito básico à obtenção do grau de Bacharel em Ciência da Computação.

Prof. Jansen Rubens F. da Silva, Msc

(Orientador )

Prof. Marcos Ferreira de Rezende, Msc

(Coordenador de Curso)

Hélio Rubens Soares, Msc.

(Avaliador )

Clarimundo Machado Moraes Júnior, Msc.

(Avaliador )

Page 5: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Uberlândia, Dezembro/2000.

Page 6: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Agradecimentos à

Deus pela graça da vida e pela capacidade que me concedeu,

Minha mãe, D. Glória, por suas lutas e dedicações ao meu desenvolvimento

físico, intelectual e espiritual,

A todos os meus colegas pelo companheirismo e auxílio,

Ao meu orientador pela paciência e apoio e,

Profª. Silvia, pela dedicação e companheirismo aos alunos do curso.

Page 7: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

RESUMO

Este trabalho visa fazer um estudo da análise estruturada e mostrar que todo projeto de sistema informatizado, para ser conciso, modelado e apresentar boa qualidade, deve passar por uma boa análise. O estudo da Análise Estruturada proporciona ao analista uma visão do sistema em todo a sua plenitude, permitindo a ele visualizar o sistema como um todo, como partes de um todo, além de permitir através de suas várias ferramentas, uma modelagem contínua à medida que suas ferramentas vão sendo aplicadas no desenvolvimento da análise. Portanto a Análise Estruturada é de fundamental importância na vida de todos os analistas, que queiram trabalhar na área de projetos de sistemas de informática, pois ela fornece condições ideais para que o analista desenvolva projetos de alta qualidade e confiabilidade. O objetivo deste trabalho é apresentar as diversas ferramentas necessárias para se desenvolver uma análise estruturada de sistemas, bem como ferramentas opcionais que o analista poderá utilizar, caso necessite delas.

Page 8: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Sumário

1. Introdução 01

2. A evolução da Análise Estruturada 02

2.1 Fases da Evolução 02

2.2 O que mudou na Analise de Sistemas 03

3. O Modelo Ambiental 06

3.1 Ferramentas utilizadas na definição do ambiente 08

3.1.1 Declaração de Propósitos e Objetivos 08

3.1.2 O Diagrama de Contexto 09

3.1.3 A Lista de Eventos 10

4. O Modelo Comportamental 11

4.1 Ferramentas utilizadas na definição do Modelo Comportamental 12

4.2 O Diagrama de Fluxo de Dados - DFD 12

4.2.1 Componentes do Diagrama de Fluxo de Dados 13

4.2.1.1 O Processo 13

4.2.1.2 O Fluxo 14

4.2.1.3 O Depósito 18

4.2.1.4 O Terminador 20

4.2.2 Diretrizes para elaboração de um DFD 21

4.2.3 Níveis de um DFD 22

5. O Dicionário de Dados 27

5.1 Notação e significado de Dicionários de Dados 27

5.1.1 Definições 29

5.1.2 Elementos de Dados Elementares 30

5.1.3 Elementos de Dados Opcionais 30

Page 9: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

5.1.4 Iterações 30

5.1.5 Seleção 31

5.1.6 Sinônimos 32

6. Especificação de Processos 33

6.1 Objetivos da Especificação de Processos 34

6.2 Ferramentas da Especificação de Processos 35

6.2.1 O Português Estruturado 36

6.2.1.1 Construções Lógicas do Português Estruturado 37

6.2.1.2 Exemplos de Construções em Português Estruturado 39

6.2.1.3 A Estrutura de uma Declaração 40

6.2.1.4 A Composição em Português Estruturado 42

6.2.1.5 O Vocabulário no Português Estruturado 44

6.2.1.6 Vantagens do Português Estruturado 45

6.2.1.7 Desvantagens do Português Estruturado 46

6.2.2 Tabelas de Decisão 46

7. O Diagrama de Transição de Estado – DTE 48

7.1 Notações para o Diagrama de Transições de Estado 48

7.1.1 Estados do Sistema 49

7.1.2 Mudanças de Estado 50

7.1.2.1 Condições e Ações 50

7.2 Diagramas Subdivididos 51

7.3 O Relacionamento do DTE com os outros componentes do modelo 53

8. Modelagem de Dados 54

8.1 Diagrama de Entidades-Relacionamentos - DER 55

8.2 Componentes de um Diagrama Entidades-Relacionamentos 55

8.2.1 Tipos de Objetos 56

8.2.2 Relacionamentos 57

8.2.2.1 Notações alternativas para relacionamentos 59

Page 10: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

8.3 Indicadores de Subtipos/Supertipos 60

8.4 Diretrizes para Construção de um DER 62

8.4.1 A inclusão de Tipos de Objetos Adicionais 62

8.4.2 A supressão de Tipos de Objetos 65

9. O Balanceamento dos Modelos 65

9.1 O Balanceamento entre o Dicionário de Fluxo de Dados e o

Dicionário de Dados 67 9.2 O Balanceamento do Dicionário de Fluxo de Dados

relação as Especificações de Processos 67

9.3 O Balanceamento das Especificações de Processos em relação ao

Diagrama de Fluxo de Dados e ao Dicionário de Dados 68

9.4 O Balanceamento do Dicionário de Dados em relação do Dicionário

de Fluxo de Dados e as Especificações de Processos 68

9.5 O Balanceamento do Diagrama Entidades-Relacionamentos em

relação ao Digrama de Fluxo de dados e às Especificações de Processos

9.6 O Balanceamento do Diagrama Fluxo de Dados em relação do

Diagrama Transições de Estado 69

Apêndice A 71

Apêndice B 77

10. Conclusão 88

Referências Bibliográficas 89

Page 11: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

LISTA DE FIGURAS

1. – Um Processo

2. - Um Processo

3. – Um Processo

4. - Fluxo de Dados

5. – Fluxo de Dados que entra e sai de um processo

6. - Fluxo Convergente

7. – Fluxo Divergente

8. – Depósito de Dados

9. – Depósito de Dados 10.– Fluxos de Dados que entram e saem de um Processo

11.– Entidade (Terminador) 12.– Diagrama de Contexto

13.– Diagrama de Fluxo de Dados em Níveis

14.- Diagrama de Fluxo de Dados em Níveis

15.– Construção de Seqüência em Português Estruturado

16. – Construção de Decisão em Português Estruturado

17.– Construção de Repetição em Português Estruturado

18.– Construção de Repetição em Português Estruturado

19.– Estrutura montada em Português Estruturado

20.– Modelo de Diagrama de Transições de Estado (DTE) 21.– Construção de Condição e Ação em um DTE

22.– Diagrama de Fluxo de Dados (DFD) 23.– Diagrama de Transições de Estado (DTE) 24.– Tipo de Objeto de um Diagrama de Entidades-Relacionamentos (DER) 25.– Relacionamentos entre Objetos em um DER

26.– Relacionamentos múltiplos em um DER

27.– Notação alternativa para relacionamentos em um DER

28. - Notação alternativa para relacionamentos em um DER

29.– Um indicador de supertipo/subtipo

30.– Relacionamento em um DTE

31.- Relacionamento com Tipo de Objeto Associativo em um DTE

32.– Tipo de Objeto embutido

33.– Relacionamento com objeto embutido retirado

34.- Diagrama de Contexto

Page 12: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

35.– Diagrama de Fluxo de Dados

36.– Diagrama de Fluxo de Dados em nível

Page 13: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

LISTA DE TABELAS

1. – Técnicas de Análise de Sistemas2. – Tabela de Decisão

Page 14: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

1 . Introdução

Breve Histórico

A análise de sistemas não se iniciou pelo descobrimento de uma técnica, ou pelo lançamento de um

livro, mas com muitas contribuições, que foram dadas por trabalhos de modelagem da análise, que se

iniciaram no final dos anos 60 e foram até os meados dos anos 70.

Contudo, a primeira aparição da abordagem da análise estruturada aconteceu como um adjunto a

outro importante tema – “o projeto estruturado”.

Os cientistas da computação necessitavam de uma notação gráfica para representar os dados e os

processos que os transformavam; daí então esses processos seriam mapeados numa arquitetura de projeto.

Foi De Marco quem popularizou o termo “Análise Estruturada”. Em seu livro sobre o assunto, De

Marco introduziu e nomeou símbolos gráficos que possibilitariam ao analista criar modelos de fluxo de

informações, sugeriu uma heurística para o uso desses símbolos; sugeriu que um dicionário e narrativas

de processamento pudessem ser usados como complemento dos modelos de fluxo de informação.

2 - A Evolução da Análise Estruturada

2.1 - Fases da Evolução

Page 15: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Como várias outras ciências, a ciência da computação vem sofrendo grandes evoluções em todos os

seus seguimentos, seja de análise, de desenvolvimento de software, de sistemas operacionais, de

ferramentas de desenvolvimento de sistemas, de hardware e na área da análise de sistemas

principalmente.

Da análise convencional, iniciada com trabalhos feitos no final da década de 60 e que se estendeu

até meados dos anos 70, que se caracteriza pelas técnicas de abordagens funcionais, com especificações

narrativas, difíceis de ler e de se compreender, e muitas vezes, difíceis de se manter; passando pela

análise estruturada clássica, que após os meados dos anos 70, se caracterizada por versões inicias de

modelos gráficos e ênfase na modelagem de sistemas já existentes, antes de se fazer uma modelagem do

sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor,

1985], [McMenamime Palmer, 1984] e [Edward Yourdon, 1978]. E, por fim chegamos à análise essencial

de sistemas, que se caracteriza pela abordagem funcional, de dados de controle, e o conceito de essência

de um sistema.

Não será abordado aqui, as evoluções na área de Análise Orientada a Objetos, já que este não é o

objetivo desta monografia.

2.2 - O que mudou na Análise de Sistemas

As principais áreas de mudança ocorridas desde a apresentação da Análise Estruturada no final dos

anos 70, incluem:

Ø Mudanças de terminologias:

Agora se utiliza a expressão “modelo ambiental” para descrever o que antes era chamado de diagrama de

contexto, devido ao fato de a análise estruturada clássica não incluir a lista de eventos como parte do

modelo formal do sistema. Utiliza-se também o termo essencial ao invés de lógico, para descrever o

modelo que se concentra naquilo que o sistema deve fazer, e a palavra implementação em lugar de físico

Page 16: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

para descrever o modelo voltado para como o sistema deve ser desenvolvido.

Ø Subdivisão de eventos:

Utilização de uma lista de eventos, destinada a orientar o desenvolvimento inicial do modelo

comportamental.

Ø Redução ou eliminação do uso do modelo físico atual, em favor do modelo essencial do

sistema.

Ø Utilização de ferramentas de modelagem de tempo real, a análise estruturada clássica era

voltada inicialmente para o desenvolvimento de sistemas comerciais diretos, não tratando problemas

de interrupções, sinais e tempo. Como muitos sistemas hoje em dia incluem diversos aspectos de

tempo real esse progresso foi substancial no desenvolvimento de novas aplicações. O DFD foi

aumentado com os fluxos de controle, sendo apresentados os Diagramas de Transição de Estado –

DTE, como uma nova ferramenta de modelagem para representar os requisitos de tempo dependência

de um sistema.

Ø Estreita integração entre a modelagem de dados e a modelagem de processos. Os

Diagramas de Estrutura de Dados utilizados na Análise Clássica para modelar os relacionamentos

entre os depósitos de dados no DFD, que normalmente causa transtornos na implementação do bando

de dados físico é substituído pelo Diagrama de Entidades e Relacionamentos.

Page 17: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Dentro das técnicas de análise de sistemas citadas, podemos descrevê-las conforme tabela abaixo:

Técnicas Abordagens Ferramentas

• Análise Tradicional

ou Convencional

• funcional • textos

• fluxogramas

• Análise Estruturada • funcional

• dados

• Coleta de dados

• Diagrama de Fluxo de Dados

– DFD

• Diagrama de Estrutura de

Dados -DED

• Miniespecificações

• Dicionário de Dados

• Análise Essencial • funcional

• dados

• controle

• Tabela de Eventos

• Diagrama de Fluxo de Dados

– DFD

• Diagrama de Entidade e

Relacionamento – DER

• Diagrama de Transições de

Estado - DTE.

• Diagrama de Estrutura de

Page 18: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Dados – DED

Tabela 1

3 – O Modelo Ambiental

O modelo ambiental é o modelo primitivo, aquele inserido em algum contexto já existente, do qual

o usuário já se utiliza para a realização de suas tarefas, e que deve ser definido pelo analista. O modelo

ambiental define a interface entre o sistema e o resto do universo.

Todo sistema seja ele de qual porte for, estará inserido em sistema ainda maior e mais complexo do que ele. Portanto, qualquer sistema que o homem venha a definir, será sempre um subsistema de um sistema ainda maior dentro de um determinado ambiente.

A determinação da fronteira entre o sistema e o ambiente irá definir o que está dentro e o que está

fora do sistema.

Portanto, o analista precisa saber quais as informações entram no sistema vindas do meio externo e

quais informações são geradas internamente pelo sistema como saídas para serem transmitidas para o

ambiente externo.

Os sistemas devem ser racionais e objetivos, para produzirem saídas como resposta a um evento ou

a um estímulo do ambiente externo, e não produzir saídas aleatoriamente. Desse modo, outro aspecto

básico do modelo ambiental é a identificação dos eventos que ocorrem no ambiente, aos quais o sistema

deve reagir.

O analista deve se ater apenas aos eventos que ocorram no ambiente externo que exijam uma

resposta do sistema.

A determinação da fronteira do sistema é de extrema importância, pois se o analista escolher um

escopo demasiadamente pequeno para o projeto, ele estará fadado ao fracasso, porque estará sub-

limitando o sistema e deixando de fora partes vitais para que o sistema produza e processe as informações

que o ambiente externo solicita.

O inverso também levará o analista ao fracasso. Pois se o analista escolher um escopo grande

demais, poderá estar lidando com situações com as quais não tenha domínio, ou que vão além dos limites

do sistema que o usuário necessita.

Portanto, para a definição da fronteira do sistema, o analista deve levar em consideração alguns

fatores como:

Page 19: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

• A necessidade do usuário ou da empresa em relação ao sistema, de forma que o sistema venha

acrescentar algo a mais do que aquilo que o usuário ou a empresa já tenham com os processos não

informatizados que utilizam, tais como:

o aumento da produtividade

o obtenção e geração de informações e dados administrativos, financeiros,

contábeis, estatísticos, produtivos, científicos etc

o lançamento de novos produtos e serviços

o otimização de processos

o melhoria da qualidade, etc

• o desejo da empresa ou usuários de maximizar sua produção ou prestação de serviços e minimizar

custos e gastos.

• à necessidade dos usuários ou da empresa de atenderem às normas e preceitos legais de tributação,

funcionamento, qualidade, higiene, concorrência etc.

• ao desejo dos usuários ou empresas de lançamento estratégico de novos produtos e serviços que

garantam diferencial e qualidade.

Portanto, a área dentro das fronteiras do sistema está sujeita a modificações, enquanto as áreas

externas às fronteiras do sistema não são passíveis de alterações pelo analista de sistemas.

Durante a fase de análise, é também de suma importância que o analista efetue a coleta da maior

quantidade possível de informações sobre o sistema e seus requisitos. A coleta de dados poderá ser feita

através de entrevista com usuários, análise do organograma da empresa etc, conforme apêndice desta

monografia.

3.1 – Ferramentas utilizadas na definição do ambiente

Page 20: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

A modelagem ambiental consiste em três componentes:

1. Declaração de Propósito e Objetivos

2. Diagrama de Contexto

3. Lista de Eventos

3.1.1 – A Declaração de Propósito e Objetivos

A declaração de propósito e objetivos é o primeiro componente do modelo ambiental. Ela é

definida em função do usuário e seus objetivos com relação do sistema.

Ela pode ser definida em uma, duas ou diversas sentenças, contando que seja uma declaração

concisa e breve dos objetivos do sistema.

A declaração de propósito e objetivos não se destina a dar uma descrição detalhada e abrangente do

sistema, pois o resto destas tarefas será atribuído ao restante do modelo ambiental e comportamental.

A declaração de objetivos, para muitos analistas, deve relacionar os benefícios tangíveis e

quantificáveis que serão obtidos pelo novo sistema.

Contudo, tal declaração de objetivos quando aplicada a grandes sistemas pode tornar-se extensa e

sem nenhuma vantagem prática para o analista, visto que os grandes sistemas são muitos complexos e

abrangentes. Já em pequenos sistemas, pode ser utilizada com bom proveito e aplicação.

3.1.2 – O Diagrama de Contexto

O Diagrama de Contexto é um caso especial do Diagrama de Fluxo de Dados; no qual o sistema

inteiro é representado por um único processo .

O Diagrama de Contexto realça diversas características do sistema tais como:

• As entidades (terminadores) com os quais o sistema se comunica.

Page 21: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

• Os dados recebidos pelo sistema do meio exterior, os quais devem ser processados de

alguma forma; bem como os dados produzidos pelo sistema e enviados para o meio exterior.

• O limite (fronteira) do sistema e o resto do universo.

3.1.3 – A Lista de Eventos

A lista de eventos é uma lista narrativa dos estímulos sofridos pelo sistema do meio externo e aos

quais o sistema deve responder.

Os eventos podem ser classificados como:

• evento de controle

• evento temporal e

• evento orientado por fluxo

Um evento orientado por fluxo é sempre associado a um fluxo de dados; isto é, o sistema toma

conhecimento do evento quando chega um grupo de dados.

Um evento temporal é disparado em um determinado momento pelo sistema, independentemente

de fluxo de dados.

Os eventos de controle são um caso especial dos eventos temporais, que ocorrem quando o

sistema recebe algum estímulo externo.

Page 22: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

4 – O Modelo Comportamental

O modelo comportamental é o modelo que mostra o comportamento interno do sistema, para que

este possa interagir corretamente com o ambiente. A continuação do modelo comportamental envolve o

desenvolvimento de um Diagrama de Fluxo de Dados preliminar ou um Diagrama Entidades-

Relacionamento, bem como a elaboração dos itens inicias do Dicionário de Dados.

Uma das abordagens do modelo comportamental envolve fundamentalmente o desenvolvimento de

uma primeira versão do DFD com processos (bolhas) para responder a cada evento que tenha sido

mencionado na lista de eventos.

Depois os depósitos de dados são criados para modelar os dados no DFD. Por fim, os fluxos de

dados de entrada e saída são adequadamente interligados aos processos.

Daí verifica-se o conjunto DFD e Diagrama de Contexto para manter a consistência.

A partir daí, dá-se início a um processo de limpeza e detalhamento, para produzir um modelo bem

organizado para ser apresentado ao usuário.

4.1 – Ferramentas utilizadas na definição do modelo comportamental

O Modelo Comportamental apresenta as seguintes ferramentas para o sua elaboração :

Page 23: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

1. Diagrama de Fluxo de Dados – DFD

2. Dicionário de Dados – DD

3. Especificação de Processo

4. Diagrama de Transição de Estados - DTE

4.2 – O Diagrama de Fluxo de Dados - DFD

Como uma ferramenta gráfica da análise estruturada que descreve o fluxo de informações e as suas

transformações, à medida que entram e saem dos processos, ele mostra graficamente, através de objetos,

que são os procedimentos, os depósitos de dados, as entidades externas e as associações, que são os

fluxos de dados, uma representação simples e sem instruções de todo o modelo do sistema, utilizando-se

de alguns componentes, que permitirão sua construção, onde usuários consigam, de forma fácil, sem

grandes esclarecimentos ou conhecimentos de informática, compreender o modelo do sistema, tanto do

ponto de vista funcional como de comportamento.

O DFD nos permite imaginar um sistema como uma rede de processos funcionais interligados por

fluxos e depósitos de dados.

O DFD deve ser construído em um padrão único, daí a necessidade de se estabelecer um padrão

para os seus componentes, onde cada componente será igualmente representado em todo o modelo do

sistema. Ele deve ser também consistente, correto e claro.

O DFD pode ser desenhado através de ferramentas computadorizadas, ou mesmo manualmente.

Aqueles desenhados por computador, são mais facilmente manipulados, podendo ser modificados e

alterados com menos esforços e perda de tempo.

4.2.1 – Os componentes do Diagrama de Fluxo de Dados

Page 24: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

4.2.1.1 – O Processo

Os processos são parte do DFD, que mostra as funções, onde as entradas são transformadas em

saídas, isto significa que uma entrada pode ser transformada em uma ou mais saídas, que mais de uma

entrada, pode ser transformada em uma única saída ou em várias saídas, ou ainda, que várias entradas

podem ser transformadas em várias saídas ou em uma única saída.

Há várias formas de se representar um processo em um DFD, tais como bolhas, por círculos, por

retângulos ou ainda por retângulos com os vértices curvos.

Os processos são descritos com uma única palavra ou sentenças simples, as quais procuram

descrever o que o processo faz.

Figura -1 Figura - 2

Exemplo de um processo outra forma de representar um processo

Figura - 3

Representação alternativa de um processo - Exemplo adaptado : Yourdon E., pág . 181.

1.

Calcular Impostos sobre Vendas

, 23/12/05
<!--[if gte vml 1]><v:roundrect id="_x0000_s1028" style='position:absolute;left:0;text-align:left;margin-left:36pt;margin-top:.65pt; width:90pt;height:64.15pt;z-index:3' arcsize="10923f"> <v:textbox style='mso-next-textbox:#_x0000_s1028'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoBodyText2 align=center style='text-align:center'>1.</p> <p class=MsoBodyText2><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p> <p class=MsoBodyText2>Calcular Impostos sobre Vendas</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:roundrect><v:line id="_x0000_s1527" style='position:absolute;left:0; text-align:left;z-index:272' from="36pt,19.8pt" to="126pt,19.8pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:oval id="_x0000_s1026" style='position:absolute;left:0;text-align:left;margin-left:36pt;margin-top:3pt; width:1in;height:72.65pt;z-index:1'> <v:textbox style='mso-next-textbox:#_x0000_s1026'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoBodyText2 align=center style='text-align:center'><span style='font-size:8.0pt;mso-bidi-font-size:12.0pt'>1.<o:p></o:p></span></p> <p class=MsoBodyText2><span style='font-size:8.0pt;mso-bidi-font-size:12.0pt'>Calcular Impostos sobre Vendas<o:p></o:p></span></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:rect id="_x0000_s1027" style='position:absolute;left:0; text-align:left;margin-left:246.75pt;margin-top:12pt;width:63pt;height:54pt; z-index:2'> <v:textbox style='mso-next-textbox:#_x0000_s1027'/> </v:rect><![endif]-->
Page 25: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

4..2.1.2 – O Fluxo

Os fluxos representam as informações que são passadas de um processo para outro. Podem

constituir-se de dados completos ou de fragmentos de dados. Os fluxos levam aos processos as

informações que eles precisam para gerar as saídas. Eles representam dados em movimento.

Os fluxos são graficamente representados por uma seta que entra e sai dos processos, e o sentido da

seta indica para onde as informações (dados) estão indo e de onde estão vindo. O fluxo recebe um nome

que é colocado ao seu lado. Esse nome geralmente descreve com uma ou mais palavras os dados que o

fluxo transporta.

Consulta cliente

Figura 4 - Exemplo adaptado: Yourdon, E. pág. 182

Um fluxo transporta somente um tipo de pacote, o que é indicado pelo nome do fluxo; há’algumas

regras para se atribuir um nome a um fluxo de dados, por exemplo, um analista não pode atribuir a um

fluxo de dados nomes como dados do cliente, dados da venda e outras coisas mais.

Quando for útil reunir vários fluxos de dados elementares em um único fluxo, como dados da

fatura, no lugar de dados do cliente, dados da venda, dados dos produtos etc., este fluxo consolidado, deve

ser explicado no dicionário de dados.

O fluxo de dados pode ser seletivo, ou seja, permite que apenas um conjunto estritamente definido

de dados passe por ele, ou permitir que os dados passem por ele indiscriminadamente.

, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1526" style='position:absolute;left:0;text-align:left;z-index:271' from="-2pt,.6pt" to="232pt,.6pt"> <v:stroke endarrow="block"/> </v:line><![endif]-->
Page 26: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Ex.: o dado (238.457.981-36)

Figura 5

Neste exemplo, o fluxo que entra no processo permite que qualquer número passe por ele, enquanto

que aqueles que saem do processo, são extremamente seletivos, ou seja, no fluxo número-de-cpf-válido,

só passa números de cpf que são válidos, e o fluxo de número-de-cpf-inválido só transporta números de

cpf que não são válidos.

Nota-se também, que um fragmento de dados (p.ex: 238.457.981-36), tem significado diferente

quando passa pelo fluxo rotulado número-de-cpf e quando passa pelo fluxo número-de-cpf-válido. No

primeiro caso indica que o número de cpf pode ser válido ou inválido, no segundo caso o número de cpf é

válido.

Os fluxos também podem ser convergentes e divergentes, ele será divergente quando uns pacotes de

dados complexos forem divididos em pacote de dados mais simples e enviados para diferentes partes do

sistema, ou ainda, quando um pacote de dados é envidado para diversas partes do sistema; ele será

convergente, quando pacotes de dados mais simples forem reunidos em um pacote de dados mais

complexo.

número-de-cpf-válido

número-de-cpf

número-de-cpf

-inválido

, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1047" style='position:absolute;left:0;text-align:left;z-index:5; mso-position-horizontal-relative:text;mso-position-vertical-relative:text' from="54pt,63.3pt" to="171pt,63.3pt"> <v:stroke endarrow="block"/> </v:line><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1048" style='position:absolute;left:0;text-align:left;margin-left:53.85pt; margin-top:28.65pt;width:108pt;height:27pt;z-index:6' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1048'/> </v:rect><v:line id="_x0000_s1528" style='position:absolute;left:0; text-align:left;z-index:273' from="252pt,37.05pt" to="405pt,37.05pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1529" style='position:absolute;left:0; text-align:left;z-index:274' from="255pt,84.15pt" to="408pt,84.15pt"> <v:stroke endarrow="block"/> </v:line><v:rect id="_x0000_s1051" style='position:absolute;left:0; text-align:left;margin-left:266pt;margin-top:56.1pt;width:2in;height:18.6pt; z-index:8' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1051'/> </v:rect><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:oval id="_x0000_s1042" style='position:absolute; left:0;text-align:left;margin-left:171pt;margin-top:18.3pt;width:90pt; height:81pt;z-index:4;mso-position-horizontal-relative:text; mso-position-vertical-relative:text'> <v:textbox style='mso-next-textbox:#_x0000_s1042'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>Valida número de CPF</p> <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1049" style='position:absolute;left:0;text-align:left;margin-left:252pt; margin-top:9pt;width:135pt;height:18.6pt;z-index:7' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1049'/> </v:rect><![endif]-->
Page 27: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Figura 6 - Fluxo convergente

Figura 7 - Fluxo Divergente

Como o analista de sistemas quer representar através do DFD as partes funcionais de um sistema

para ser implementados para computadores, os dados dos fluxos conterão informações do tipo: bits,

mensagens, números inteiros, de ponto flutuante e outros dados que o computador trabalha.

4.2.1.3 – O Depósito

Inss a pagar

, 23/12/05
<!--[if gte vml 1]><v:oval id="_x0000_s1063" style='position:absolute;left:0;text-align:left;margin-left:99pt;margin-top:28.35pt; width:81pt;height:81pt;z-index:16'> <v:textbox style='mso-next-textbox:#_x0000_s1063'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>Calcular impostos s/ folha pagto</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1065" style='position:absolute;left:0; text-align:left;z-index:17' from="180pt,68.4pt" to="315pt,68.4pt"> <v:stroke endarrow="block"/> </v:line><v:rect id="_x0000_s1068" style='position:absolute;left:0; text-align:left;margin-left:207pt;margin-top:46.35pt;width:99pt;height:18pt; z-index:19' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1068'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>Irrf a pagar</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:rect id="_x0000_s1069" style='position:absolute;left:0; text-align:left;margin-left:171pt;margin-top:105.8pt;width:108pt;height:27pt; z-index:20' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1069'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>Pis a pagar</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:line id="_x0000_s1339" style='position:absolute;left:0; text-align:left;z-index:191' from="0,67.85pt" to="99pt,67.85pt"> <v:stroke endarrow="block"/> </v:line><v:rect id="_x0000_s1340" style='position:absolute;left:0; text-align:left;margin-left:0;margin-top:39.65pt;width:99pt;height:18pt; z-index:192' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1340'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>Base de cálculo</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:line id="_x0000_s1539" style='position:absolute;left:0; text-align:left;flip:y;z-index:281' from="2in,1.6pt" to="2in,28.6pt"/><v:line id="_x0000_s1540" style='position:absolute;left:0;text-align:left;z-index:282' from="2in,2.6pt" to="315pt,2.6pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1541" style='position:absolute;left:0; text-align:left;flip:y;z-index:283' from="2in,113.85pt" to="2in,140.85pt"/><v:line id="_x0000_s1542" style='position:absolute;left:0;text-align:left;z-index:284' from="2in,142.9pt" to="315pt,142.9pt"> <v:stroke endarrow="block"/> </v:line><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1067" style='position:absolute;left:0;text-align:left;margin-left:180pt; margin-top:9pt;width:81pt;height:27pt;z-index:18' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1067'/> </v:rect><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:oval id="_x0000_s1052" style='position:absolute;left:0;text-align:left;margin-left:180pt; margin-top:49.1pt;width:81pt;height:1in;z-index:9'> <v:textbox style='mso-next-textbox:#_x0000_s1052'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>Calcular Hora Extra</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1053" style='position:absolute;left:0; text-align:left;z-index:10' from="261pt,87.2pt" to="387pt,87.2pt"> <v:stroke endarrow="block"/> </v:line><v:rect id="_x0000_s1054" style='position:absolute;left:0; text-align:left;margin-left:270pt;margin-top:65.15pt;width:108pt;height:18pt; z-index:11' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1054'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>hora extra</p> <p class=MsoNormal>hora extra</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:rect id="_x0000_s1059" style='position:absolute;left:0; text-align:left;margin-left:49pt;margin-top:15pt;width:108pt;height:18pt; z-index:12' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1059'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>qtde horas extras</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:rect id="_x0000_s1060" style='position:absolute;left:0; text-align:left;margin-left:48pt;margin-top:45.95pt;width:126pt;height:20.15pt; z-index:13' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1060'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>carga horária mensal</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:rect id="_x0000_s1061" style='position:absolute;left:0; text-align:left;margin-left:51pt;margin-top:83.05pt;width:99pt;height:18pt; z-index:14' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1061'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>salário mensal</p> <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:rect id="_x0000_s1062" style='position:absolute;left:0; text-align:left;margin-left:54pt;margin-top:122.1pt;width:135pt;height:18pt; z-index:15' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1062'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>percentual da hora extra</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:line id="_x0000_s1531" style='position:absolute;left:0; text-align:left;z-index:275' from="3in,32.95pt" to="3in,50.95pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1533" style='position:absolute;left:0; text-align:left;z-index:276' from="45pt,32.95pt" to="3in,32.95pt"/><v:line id="_x0000_s1534" style='position:absolute;left:0;text-align:left;z-index:277' from="45pt,66pt" to="189pt,66pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1535" style='position:absolute;left:0; text-align:left;z-index:278' from="47pt,103.05pt" to="182pt,103.05pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1536" style='position:absolute;left:0; text-align:left;z-index:279' from="45pt,146.15pt" to="3in,146.15pt"/><v:line id="_x0000_s1537" style='position:absolute;left:0;text-align:left;flip:y; z-index:280' from="3in,126.1pt" to="3in,144.1pt"> <v:stroke endarrow="block"/> </v:line><![endif]-->
Page 28: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

É o local aonde os dados serão armazenados de forma modulada e atemporal. O depósito de dados

para o analista de sistemas pode ser um banco de dados moderno, um arquivo binário, um arquivo tipo

texto, que utiliza como estrutura física para serem armazenados, um disquete, uma unidade de CD, um

disco rígido de computador, uma unidade de Fita etc.

Um depósito de dados pode ser composto por um livro caixa de uma pequena empresa, onde o

empresário registra as entradas e saídas de sua movimentação financeira, pode ser também um quadro

negro, onde o professor registra os dados das aulas. Como podemos notar, os depósitos de dados podem

ser de formas e tipos variados.

O depósito de dados existe para atender a um propósito, que pode ser um requisito do usuário, ou

por um aspecto prático da implementação do sistema.

Os depósitos de dados podem ser alterados pelos processos, que solicitam, alteram e manipulam

seus dados. O depósito é também passivo, e os dados não transitam a partir dele pelos fluxos a menos que

um processo o requisite.

As alterações de dados do depósito pode ser uma escrita, uma exclusão, uma alteração de dados de

forma parcial ou total, podendo envolver pequenos dados de um pacote de dados, até milhares de

alterações.

Nas inclusões de dados, estas podem ser feitas em qualquer local do depósito, podem ser colocadas

no início, meio ou no final do depósito. Hoje em dia existem sofisticados bancos de dados informatizados

que gerenciam todas as manipulações de dados ocorridas em um banco de dados.

Na análise estruturada os depósitos de dados são graficamente representados por um par de linhas

paralelas; conforme exemplos abaixo, outras notações podem ser usadas. Para se identificar o depósito de

dados usa-se o plural do nome dos pacotes que entram e saem do depósito.

Representação gráfica de um depósito de dados

PEDIDOS

Figura 8 - Uma representação alternativa

, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1075" style='position:absolute;left:0;text-align:left;z-index:22' from="3pt,20pt" to="129pt,20pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1074" style='position:absolute;left:0;text-align:left;z-index:21' from="3pt,16.7pt" to="129pt,16.7pt"/><![endif]-->
Page 29: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

PEDIDOS

Figura 9 - Ex.: Yourdon, E. , pág 188

A representação gráfica dos dados que entram e saem do depósito, é feita por setas rotuladas, as

setas que entram, representam pacotes de dados que são inseridos no depósito, e as setas que saem

representam dados que são recuperados do depósito.

PEDIDO

, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1555" style='position:absolute;left:0;text-align:left;flip:y;z-index:297' from="330pt,14.5pt" to="330pt,41.5pt"> <v:stroke endarrow="block"/> </v:line><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1095" style='position:absolute;left:0;text-align:left;z-index:29' from="180.75pt,1.45pt" to="252.75pt,1.45pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1546" style='position:absolute;left:0;text-align:left;flip:y; z-index:288;mso-position-horizontal-relative:text; mso-position-vertical-relative:text' from="99pt,14.5pt" to="99pt,41.5pt"> <v:stroke endarrow="block"/> </v:line><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1551" style='position:absolute;left:0;text-align:left;margin-left:183pt; margin-top:7.2pt;width:63pt;height:18pt;z-index:293' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1551'/> </v:rect><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1094" style='position:absolute; left:0;text-align:left;z-index:28' from="180pt,1.15pt" to="252pt,1.15pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:oval id="_x0000_s1092" style='position:absolute;left:0;text-align:left;margin-left:1in;margin-top:51.8pt; width:1in;height:1in;z-index:26'> <v:textbox style='mso-next-textbox:#_x0000_s1092'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoBodyText3 align=center style='text-align:center'>1.</p> <p class=MsoBodyText3>Introduzir Pedidos</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:rect id="_x0000_s1109" style='position:absolute;left:0; text-align:left;margin-left:135pt;margin-top:25.55pt;width:63pt;height:27pt; z-index:30' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1109'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>pedido</p> <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:rect id="_x0000_s1112" style='position:absolute;left:0; text-align:left;margin-left:0;margin-top:9.3pt;width:108pt;height:18pt; z-index:33' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1112'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><span style='font-size:11.0pt;mso-bidi-font-size:12.0pt'>detalhes do pedido<o:p></o:p></span></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:line id="_x0000_s1543" style='position:absolute;left:0; text-align:left;z-index:285' from="9pt,28.35pt" to="99pt,28.35pt"/><v:line id="_x0000_s1544" style='position:absolute;left:0;text-align:left;z-index:286' from="99pt,28.35pt" to="99pt,55.35pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1547" style='position:absolute;left:0; text-align:left;z-index:289' from="126pt,56.4pt" to="189pt,56.4pt"/><v:line id="_x0000_s1548" style='position:absolute;left:0;text-align:left;z-index:290' from="189pt,56.4pt" to="189pt,83.4pt"> <v:stroke endarrow="block"/> </v:line><v:oval id="_x0000_s1093" style='position:absolute;left:0; text-align:left;margin-left:279pt;margin-top:51.8pt;width:1in;height:1in; z-index:27'> <v:textbox style='mso-next-textbox:#_x0000_s1093'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoBodyText3 align=center style='text-align:center'>2.</p> <p class=MsoBodyText3>Respon-der Consultas</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:rect id="_x0000_s1110" style='position:absolute;left:0; text-align:left;margin-left:234pt;margin-top:25.55pt;width:63pt;height:27pt; z-index:31' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1110'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>pedido</p> <p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:rect id="_x0000_s1114" style='position:absolute;left:0; text-align:left;margin-left:342pt;margin-top:9.3pt;width:63pt;height:19.75pt; z-index:34' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1114'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>consulta</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:line id="_x0000_s1549" style='position:absolute;left:0; text-align:left;z-index:291' from="235pt,57.4pt" to="298pt,57.4pt"/><v:line id="_x0000_s1550" style='position:absolute;left:0;text-align:left;z-index:292' from="234pt,57.4pt" to="234pt,84.4pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1552" style='position:absolute;left:0; text-align:left;z-index:294' from="329pt,29.35pt" to="419pt,29.35pt"/><v:line id="_x0000_s1554" style='position:absolute;left:0;text-align:left;z-index:296' from="329pt,29.35pt" to="329pt,56.35pt"> <v:stroke endarrow="block"/> </v:line><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1088" style='position:absolute;left:0;text-align:left;z-index:25' from="27.75pt,19.9pt" to="126.75pt,19.9pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1086" style='position:absolute;left:0;text-align:left;margin-left:.75pt; margin-top:19.6pt;width:36pt;height:27pt;z-index:23'> <v:textbox style='mso-next-textbox:#_x0000_s1086'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>D1</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:line id="_x0000_s1087" style='position:absolute;left:0; text-align:left;z-index:24' from="27.75pt,19.6pt" to="126.75pt,19.6pt"/><![endif]-->
Page 30: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Figura 10 - Ex.:

Yourdon, E.,

pág. 190.

4.2.1.4 – O Terminador

Os terminadores são as entidades externas ao sistema, com as quais ele se comunica. Eles podem

ser desde uma pessoa, empresa, departamento de uma empresa, até mesmo outro sistema que venha a se

comunicar com o nosso, eles não estão sujeitos à modelagem do analista, visto que são entidades externas

ao sistema, por isso não podem ser modificados pelo sistema. Os relacionamentos entre terminadores e o

sistema através de fluxos, representam a interface entre eles. Os terminadores se comunicam com o

sistema, para receberem e fornecerem dados, como, por exemplo, fornecer ao sistema o número do cpf do

cliente e receber do sistema uma resposta de que o cliente está ou não cadastrado.

Os terminadores são representados por um retângulo e recebe o nome da entidade que se refere.

Figura 11

4.2.2 – Diretrizes para a elaboração de um DFD

confirmação

ido

resposta

CLIENTES

, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1116" style='position:absolute;left:0;text-align:left;margin-left:0;margin-top:6.9pt; width:99pt;height:45pt;z-index:36'> <v:textbox style='mso-next-textbox:#_x0000_s1116'/> </v:rect><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1029" type="#_x0000_t75" style='width:63.75pt; height:27.75pt'> <v:imagedata src="./mono1592000_arquivos/image022.wmz" o:title=""/> </v:shape><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1111" style='position:absolute;left:0;text-align:left;margin-left:0;margin-top:18.05pt; width:81pt;height:27pt;z-index:32' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1111'/> </v:rect><v:line id="_x0000_s1545" style='position:absolute;left:0; text-align:left;z-index:287' from="9pt,14.8pt" to="99pt,14.8pt"/><v:line id="_x0000_s1553" style='position:absolute;left:0;text-align:left;z-index:295' from="330pt,14.8pt" to="420pt,14.8pt"/><v:rect id="_x0000_s1115" style='position:absolute;left:0; text-align:left;margin-left:342pt;margin-top:21.8pt;width:1in;height:18pt; z-index:35' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1115'/> </v:rect><![endif]-->
Page 31: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

As diretrizes nos auxiliarão a construir DFD corretos e agradáveis de serem examinados pelos

usuários e outros analistas, estas diretrizes são :

1. - escolher nomes significativos para os componentes do DFD (fluxo de dados, processos, depósito

de dados e terminadores);

2. - numerar os processos;

3. - criar DFD simples e claros, evitando DFD complexos demais;

4. - refazer o DFD tantas vezes quantas forem necessárias, até que ele esteja corretamente

normatizados;

5. - certificar-se que o DFD seja internamente consistente além de manter a consistência com outros

DFD.

4.2.3 – Níveis de um DFD

Grandes sistemas para serem representados graficamente através de um DFD devem ser modelados

em níveis, de modo que a cada nível, ofereça sucessivamente mais detalhes sobre uma parte do nível que

lhe seja superior.

Essa modelagem é feita através do particionamento inicial do sistema em subsistemas, da mesma

forma que um mapa de um guia rodoviário apresenta inicialmente uma visão geral do país, depois mostra

detalhes do país através do estados, detalha os estados através dos municípios e assim por diante,

analogamente o DFD é assim particionado.

No DFD o nível mais alto é representado por uma única bolha que representa todo o sistema, neste

nível os fluxos de dados mostram a interface entre o sistema e as entidades externas (terminadores), este

diagrama especial de nível mais alto também é conhecido como Diagrama de Contexto.

Page 32: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Figura 12 - Exemplo adaptado Yourdon, Ed, Pág. 208

O nível imediatamente abaixo do Diagrama de Contexto é composto por tantas bolhas quantas

forem necessárias, é conhecido como Diagrama 0 (zero), e representa a visão de mais alto nível das

principais funções do sistema e a interface entre elas.

É aconselhável numerar as bolhas dos níveis do DFD, pois os números servem para relacionar de

forma mais clara e prática, uma bolha com o DFD de nível imediatamente inferior.

DIAGRAMA DE CON-

TEXTO

, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1179" style='position:absolute;left:0;text-align:left;margin-left:171pt; margin-top:67.55pt;width:135pt;height:45pt;z-index:80' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1179'/> </v:rect><v:rect id="_x0000_s1162" style='position:absolute;left:0; text-align:left;margin-left:0;margin-top:20.45pt;width:153pt;height:2in; z-index:69'/><v:rect id="_x0000_s1163" style='position:absolute;left:0; text-align:left;margin-left:11.25pt;margin-top:29.45pt;width:27pt;height:27pt; z-index:70'/><v:rect id="_x0000_s1164" style='position:absolute;left:0; text-align:left;margin-left:114pt;margin-top:128.45pt;width:27pt;height:27pt; z-index:71'/><v:rect id="_x0000_s1165" style='position:absolute;left:0; text-align:left;margin-left:113.25pt;margin-top:29.45pt;width:27pt;height:27pt; z-index:72'/><v:oval id="_x0000_s1166" style='position:absolute;left:0; text-align:left;margin-left:45pt;margin-top:65.45pt;width:1in;height:63pt; z-index:73'> <v:textbox style='mso-next-textbox:#_x0000_s1166'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><span style='font-size:11.0pt;mso-bidi-font-size:12.0pt'>O Sistema<o:p></o:p></span></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1170" style='position:absolute;left:0; text-align:left;z-index:77' from="21.75pt,58.8pt" to="48.75pt,85.8pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1171" style='position:absolute;left:0; text-align:left;flip:y;z-index:78' from="115.5pt,58.55pt" to="124.5pt,85.55pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1173" style='position:absolute;left:0; text-align:left;z-index:79' from="85.5pt,133.4pt" to="112.5pt,142.4pt"> <v:stroke endarrow="block"/> </v:line><v:shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m0,0l0,21600,21600,21600,21600,0xe"> <v:stroke joinstyle="miter"/> <v:path gradientshapeok="t" o:connecttype="rect"/> </v:shapetype><v:shape id="_x0000_s1556" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:9pt;margin-top:73.35pt;width:27pt;height:18pt; z-index:298' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1556'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=center style='text-align:center'><b>a<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1557" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:1in;margin-top:144.5pt;width:27pt;height:18pt; z-index:299' strokecolor="white"> <v:textbox> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=center style='text-align:center'><b>b<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1558" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:124pt;margin-top:78.35pt;width:27pt; height:18pt;z-index:300' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1558'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=center style='text-align:center'><b>c<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><![endif]-->
Page 33: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

DIAGRAMA DE CONTEXTO

FIGURA 0

, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1138" style='position:absolute;left:0;text-align:left;margin-left:18pt;margin-top:167.7pt; width:99pt;height:36pt;z-index:54' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1138'/> </v:rect><v:rect id="_x0000_s1117" style='position:absolute;left:0; text-align:left;margin-left:18pt;margin-top:9pt;width:153pt;height:2in; z-index:37'/><v:rect id="_x0000_s1118" style='position:absolute;left:0; text-align:left;margin-left:29.25pt;margin-top:18pt;width:27pt;height:27pt; z-index:38'/><v:rect id="_x0000_s1119" style='position:absolute;left:0; text-align:left;margin-left:132pt;margin-top:121.2pt;width:27pt;height:27pt; z-index:39'/><v:rect id="_x0000_s1120" style='position:absolute;left:0; text-align:left;margin-left:131.25pt;margin-top:18pt;width:27pt;height:27pt; z-index:40'/><v:oval id="_x0000_s1121" style='position:absolute;left:0; text-align:left;margin-left:63pt;margin-top:58.2pt;width:1in;height:63pt; z-index:41'> <v:textbox style='mso-next-textbox:#_x0000_s1121'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><span style='font-size:11.0pt;mso-bidi-font-size:12.0pt'>O Sistema<o:p></o:p></span></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1167" style='position:absolute;left:0; text-align:left;z-index:74' from="39.75pt,47.25pt" to="66.75pt,74.25pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1168" style='position:absolute;left:0; text-align:left;flip:y;z-index:75' from="129pt,45.75pt" to="147pt,72.75pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1169" style='position:absolute;left:0; text-align:left;z-index:76' from="103.5pt,123.9pt" to="130.5pt,132.9pt"> <v:stroke endarrow="block"/> </v:line><v:shape id="_x0000_s1559" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:27pt;margin-top:67.5pt;width:27pt;height:18pt; z-index:301' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1559'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=center style='text-align:center'><b>a<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1560" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:90pt;margin-top:135.5pt;width:27pt; height:18pt;z-index:302' strokecolor="white"> <v:textbox> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=center style='text-align:center'><b>b<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1561" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:142pt;margin-top:72.5pt;width:27pt; height:18pt;z-index:303' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1561'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=center style='text-align:center'><b>c<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:rect id="_x0000_s1122" style='position:absolute;left:0; text-align:left;margin-left:162pt;margin-top:195.8pt;width:225pt;height:180.6pt; z-index:42'/><v:oval id="_x0000_s1123" style='position:absolute;left:0; text-align:left;margin-left:186.75pt;margin-top:220.2pt;width:45pt;height:45pt; z-index:43'> <v:textbox style='mso-next-textbox:#_x0000_s1123'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>1<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:oval id="_x0000_s1124" style='position:absolute;left:0; text-align:left;margin-left:187.5pt;margin-top:311.7pt;width:45pt;height:45pt; z-index:44'> <v:textbox style='mso-next-textbox:#_x0000_s1124'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>3<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:oval id="_x0000_s1125" style='position:absolute;left:0; text-align:left;margin-left:306pt;margin-top:318.3pt;width:45pt;height:45pt; z-index:45'> <v:textbox style='mso-next-textbox:#_x0000_s1125'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>4<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:oval id="_x0000_s1126" style='position:absolute;left:0; text-align:left;margin-left:306.75pt;margin-top:222.9pt;width:45pt;height:45pt; z-index:46'> <v:textbox style='mso-next-textbox:#_x0000_s1126'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>2<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1129" style='position:absolute;left:0; text-align:left;z-index:47' from="234pt,246.9pt" to="306pt,246.9pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1130" style='position:absolute;left:0; text-align:left;z-index:48' from="328.5pt,270.45pt" to="328.5pt,315.45pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1131" style='position:absolute;left:0; text-align:left;flip:x;z-index:49' from="234pt,337.2pt" to="306pt,337.2pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1133" style='position:absolute;left:0; text-align:left;z-index:50' from="207pt,265.2pt" to="207pt,310.2pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1135" style='position:absolute;left:0; text-align:left;z-index:51' from="343.5pt,265.95pt" to="352.5pt,301.95pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1136" style='position:absolute;left:0; text-align:left;flip:x;z-index:52' from="270pt,346.2pt" to="306pt,364.2pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1147" style='position:absolute;left:0; text-align:left;flip:y;z-index:63' from="225pt,261.45pt" to="315pt,324.45pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1565" style='position:absolute;left:0; text-align:left;z-index:305' from="162pt,195.8pt" to="194pt,228.8pt"> <v:stroke endarrow="block"/> </v:line><v:shape id="_x0000_s1566" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:351pt;margin-top:260.9pt;width:27pt; height:18pt;z-index:306' strokecolor="white"> <v:textbox> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=center style='text-align:center'><b>b<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1570" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:295pt;margin-top:282.95pt;width:33pt; height:24pt;z-index:307' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1570'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=right style='text-align:right'><b>b 1<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1572" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:252pt;margin-top:260.9pt;width:33pt; height:24pt;z-index:308' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1572'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=right style='text-align:right'><b>a 3<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1573" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:212pt;margin-top:279.95pt;width:33pt; height:24pt;z-index:309' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1573'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>a 2 <o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1574" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:252pt;margin-top:219.8pt;width:33pt; height:24pt;z-index:310' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1574'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>a 1<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1575" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:287pt;margin-top:364.1pt;width:27pt; height:18pt;z-index:311' strokecolor="white"> <v:textbox> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>c<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1576" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:252pt;margin-top:317pt;width:33pt;height:24pt; z-index:312' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1576'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=right style='text-align:right'><b>b 2<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1580" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:183pt;margin-top:198.8pt;width:27pt; height:19pt;z-index:313' strokecolor="white"> <v:textbox> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=center style='text-align:center'><b>a<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shapetype id="_x0000_t102" coordsize="21600,21600" o:spt="102" adj="12960,19440,14400" path="ar0,0@23@3@22,,0@4,0@15@23@1,0@7@2@13l@2@14@22@8@2@12wa0,0@23@3@2@11@26@17,0@15@23@1@26@17@22@15xear0,0@23@3,0@4@26@17nfe"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="val #0"/> <v:f eqn="val #1"/> <v:f eqn="val #2"/> <v:f eqn="sum #0 width #1"/> <v:f eqn="prod @3 1 2"/> <v:f eqn="sum #1 #1 width"/> <v:f eqn="sum @5 #1 #0"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="mid width #0"/> <v:f eqn="sum height 0 #2"/> <v:f eqn="ellipse @9 height @4"/> <v:f eqn="sum @4 @10 0"/> <v:f eqn="sum @11 #1 width"/> <v:f eqn="sum @7 @10 0"/> <v:f eqn="sum @12 width #0"/> <v:f eqn="sum @5 0 #0"/> <v:f eqn="prod @15 1 2"/> <v:f eqn="mid @4 @7"/> <v:f eqn="sum #0 #1 width"/> <v:f eqn="prod @18 1 2"/> <v:f eqn="sum @17 0 @19"/> <v:f eqn="val width"/> <v:f eqn="val height"/> <v:f eqn="prod height 2 1"/> <v:f eqn="sum @17 0 @4"/> <v:f eqn="ellipse @24 @4 height"/> <v:f eqn="sum height 0 @25"/> <v:f eqn="sum @8 128 0"/> <v:f eqn="prod @5 1 2"/> <v:f eqn="sum @5 0 128"/> <v:f eqn="sum #0 @17 @12"/> <v:f eqn="ellipse @20 @4 height"/> <v:f eqn="sum width 0 #0"/> <v:f eqn="prod @32 1 2"/> <v:f eqn="prod height height 1"/> <v:f eqn="prod @9 @9 1"/> <v:f eqn="sum @34 0 @35"/> <v:f eqn="sqrt @36"/> <v:f eqn="sum @37 height 0"/> <v:f eqn="prod width height @38"/> <v:f eqn="sum @39 64 0"/> <v:f eqn="prod #0 1 2"/> <v:f eqn="ellipse @33 @41 height"/> <v:f eqn="sum height 0 @42"/> <v:f eqn="sum @43 64 0"/> <v:f eqn="prod @4 1 2"/> <v:f eqn="sum #1 0 @45"/> <v:f eqn="prod height 4390 32768"/> <v:f eqn="prod height 28378 32768"/> </v:formulas> <v:path o:extrusionok="f" o:connecttype="custom" o:connectlocs="0,@17;@2,@14;@22,@8;@2,@12;@22,@16" o:connectangles="180,90,0,0,0" textboxrect="@47,@45,@48,@46"/> <v:handles> <v:h position="bottomRight,#0" yrange="@40,@29"/> <v:h position="bottomRight,#1" yrange="@27,@21"/> <v:h position="#2,bottomRight" xrange="@44,@22"/> </v:handles> <o:complex v:ext="view"/> </v:shapetype><v:shape id="_x0000_s1583" type="#_x0000_t102" style='position:absolute; left:0;text-align:left;margin-left:17.85pt;margin-top:433.65pt;width:27pt; height:81pt;rotation:10;z-index:315'/><v:shape id="_x0000_s1582" type="#_x0000_t102" style='position:absolute;left:0;text-align:left;margin-left:117pt; margin-top:303.95pt;width:27pt;height:117pt;z-index:314'/><v:shapetype id="_x0000_t91" coordsize="21600,21600" o:spt="91" adj="15126,2912" path="m21600,6079l@0,0@0@1,12427@1qx0,12158l0,21600@4,21600@4,12158qy12427@2l@0@2@0,12158xe"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="val #0"/> <v:f eqn="val #1"/> <v:f eqn="sum 12158 0 #1"/> <v:f eqn="sum @2 0 #1"/> <v:f eqn="prod @3 32768 32059"/> <v:f eqn="prod @4 1 2"/> <v:f eqn="sum 21600 0 #0"/> <v:f eqn="prod @6 #1 6079"/> <v:f eqn="sum @7 #0 0"/> </v:formulas> <v:path o:connecttype="custom" o:connectlocs="@0,0;@0,12158;@5,21600;21600,6079" o:connectangles="270,90,90,0" textboxrect="12427,@1,@8,@2;0,12158,@4,21600"/> <v:handles> <v:h position="#0,#1" xrange="12427,21600" yrange="0,6079"/> </v:handles> </v:shapetype><v:shape id="_x0000_s1564" type="#_x0000_t91" style='position:absolute; left:0;text-align:left;margin-left:139.5pt;margin-top:105pt;width:117pt; height:36pt;rotation:90;z-index:304' adj="16791,5310"/><v:rect id="_x0000_s1139" style='position:absolute;left:0;text-align:left;margin-left:162pt; margin-top:392.15pt;width:90pt;height:27pt;z-index:55' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1139'/> </v:rect><![endif]-->
Page 34: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Figura 13 - Ex.: Diagrama de fluxo de dados em níveis Yourdon, E. pág 208.

Normalmente não há uma definição da quantidade de níveis que um DFD poderá ter, contudo

dependendo do tamanho e da complexidade do sistema, ele poderá ter de 2 a 9 níveis e em cada nível o

número de bolhas deve ser não mais do que 6. Desta forma, mesmo que o DFD seja normalizado, e após

esta normalização determinado nível ainda continue com um grande número de bolhas, e razoável que ele

seja decomposto em pelo menos mais um nível.

As diversas partes do sistema, nem sempre terão iguais números de subníveis, algumas partes do

sistema poderão ter mais níveis do que outras, no entanto, se a diferença de níveis for muito acentuada,

tornando o DFD desbalanceado, deve-se avaliar melhor o modelo geral do sistema, pois este pode estar

mal organizado.

A organização dos níveis deve ser consistente, e para que isso ocorra, os fluxos de dados que

entram e saem de uma bolha em um determinado nível do DFD, devem corresponder exatamente aos

fluxos que entram e saem do nível imediatamente inferior que descreve aquela bolha.

A organização dos níveis poderá causar redundância na apresentação gráfica dos depósitos de

dados, visto que vários fluxos e processos em diversas partes do sistema se utilizarão destes depósitos de

FIGURA 3

, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1154" style='position:absolute;left:0;text-align:left;margin-left:252pt; margin-top:131.4pt;width:81pt;height:23.35pt;z-index:68' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1154'/> </v:rect><v:rect id="_x0000_s1137" style='position:absolute;left:0; text-align:left;margin-left:9pt;margin-top:.9pt;width:225pt;height:269.1pt; z-index:53'/><v:oval id="_x0000_s1140" style='position:absolute;left:0; text-align:left;margin-left:34.25pt;margin-top:34.3pt;width:45pt;height:45pt; z-index:56'> <v:textbox style='mso-next-textbox:#_x0000_s1140'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>3.1<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:oval id="_x0000_s1141" style='position:absolute;left:0; text-align:left;margin-left:34.5pt;margin-top:143.3pt;width:45pt;height:45pt; z-index:57'> <v:textbox style='mso-next-textbox:#_x0000_s1141'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>3.3<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:oval id="_x0000_s1142" style='position:absolute;left:0; text-align:left;margin-left:137.25pt;margin-top:186.35pt;width:45pt;height:45pt; z-index:58'> <v:textbox style='mso-next-textbox:#_x0000_s1142'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>3.4<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:oval id="_x0000_s1143" style='position:absolute;left:0; text-align:left;margin-left:132.75pt;margin-top:78.65pt;width:45pt;height:45pt; z-index:59'> <v:textbox style='mso-next-textbox:#_x0000_s1143'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>3.2<o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1144" style='position:absolute;left:0; text-align:left;flip:x;z-index:60' from="172pt,46.95pt" to="199pt,82.95pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1145" style='position:absolute;left:0; text-align:left;z-index:61' from="81pt,60.65pt" to="135pt,87.65pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1146" style='position:absolute;left:0; text-align:left;flip:y;z-index:62' from="57pt,78.65pt" to="57pt,141.65pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1148" style='position:absolute;left:0; text-align:left;flip:x;z-index:64' from="78.75pt,116.75pt" to="132.75pt,152.75pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1150" style='position:absolute;left:0; text-align:left;z-index:65' from="77pt,177.6pt" to="140pt,206.2pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1151" style='position:absolute;left:0; text-align:left;flip:y;z-index:66' from="158.25pt,126.5pt" to="158.25pt,180.5pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1152" style='position:absolute;left:0; text-align:left;z-index:67' from="176pt,231.3pt" to="212pt,267.3pt"> <v:stroke endarrow="block"/> </v:line><v:shape id="_x0000_s1584" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:81pt;margin-top:29.25pt;width:45pt; height:24pt;z-index:316' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1584'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>a 2.1<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:line id="_x0000_s1585" style='position:absolute;left:0; text-align:left;z-index:317' from="27pt,9.9pt" to="45pt,36.9pt"> <v:stroke endarrow="block"/> </v:line><v:shape id="_x0000_s1586" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:162pt;margin-top:29.25pt;width:33pt; height:24pt;z-index:318' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1586'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>b 1<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1587" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:162pt;margin-top:150.45pt;width:45pt; height:24pt;z-index:319' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1587'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>a 3.1<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1588" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:74pt;margin-top:103.35pt;width:45pt; height:24pt;z-index:320' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1588'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>b 2.1<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1589" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:40pt;margin-top:1.9pt;width:33pt;height:24pt; z-index:321' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1589'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>a 2<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1590" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:159pt;margin-top:247.3pt;width:33pt; height:24pt;z-index:322' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1590'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal align=right style='text-align:right'><b>a 3<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1591" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:1in;margin-top:197.55pt;width:45pt; height:24pt;z-index:323' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1591'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>b 3.2<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><v:shape id="_x0000_s1592" type="#_x0000_t202" style='position:absolute; left:0;text-align:left;margin-left:10pt;margin-top:103.35pt;width:45pt; height:24pt;z-index:324' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1592'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><b>b 2.1<span style="mso-spacerun: yes">  </span><o:p></o:p></b></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><![endif]-->
Page 35: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

dados. Como não um modo de se criar um depósito de dados em um lugar do DFD aonde todos os

processos e fluxos que o utilizem seus dados possam acessa-lo, a redundância neste caso é necessária e

gera um maior grau de praticidade na confecção do DFD.

O depósito poderá ser mostrado no nível mais alto onde ele serve primeiramente como interfaces

em duas ou mais bolhas desse nível, depois ele deve ser mostrado em cada diagrama ou nível

imediatamente inferior que descrevem as folhas do diagrama de nível superior. O depósito de dados que

faz parte somente de diagramas do nível inferior, não será apresentado no nível imediatamente superior,

veja o exemplo abaixo:

, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1180" style='position:absolute;left:0;text-align:left; margin-left:158.25pt;margin-top:10.2pt;width:153pt;height:126pt;z-index:81'/><v:oval id="_x0000_s1181" style='position:absolute;left:0;text-align:left; margin-left:162.75pt;margin-top:16.95pt;width:45pt;height:45pt;z-index:82'> <v:textbox style='mso-next-textbox:#_x0000_s1181'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>A</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:oval id="_x0000_s1182" style='position:absolute;left:0; text-align:left;margin-left:256.5pt;margin-top:86.15pt;width:45pt;height:45pt; z-index:83'> <v:textbox style='mso-next-textbox:#_x0000_s1182'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>B</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1183" style='position:absolute;left:0; text-align:left;z-index:84' from="207pt,65.6pt" to="261pt,65.6pt"/><v:line id="_x0000_s1184" style='position:absolute;left:0;text-align:left;z-index:85' from="207.75pt,88.15pt" to="261.75pt,88.15pt"/><v:rect id="_x0000_s1185" style='position:absolute;left:0;text-align:left;margin-left:3in;margin-top:66.35pt; width:36pt;height:18pt;z-index:86' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1185'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>X</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:shapetype id="_x0000_t19" coordsize="21600,21600" o:spt="19" adj="-5898240,,,21600,21600" path="wr-21600,,21600,43200,,,21600,21600nfewr-21600,,21600,43200,,,21600,21600l0,21600nsxe" filled="f"> <v:formulas> <v:f eqn="val #2"/> <v:f eqn="val #3"/> <v:f eqn="val #4"/> </v:formulas> <v:path arrowok="t" o:extrusionok="f" gradientshapeok="t" o:connecttype="custom" o:connectlocs="0,0;21600,21600;0,21600"/> <v:handles> <v:h position="@2,#0" polar="@0,@1"/> <v:h position="@2,#1" polar="@0,@1"/> </v:handles> </v:shapetype><v:shape id="_x0000_s1189" type="#_x0000_t19" style='position:absolute; left:0;text-align:left;margin-left:234pt;margin-top:85.4pt;width:27pt; height:36pt;flip:x y;z-index:87'/><v:shape id="_x0000_s1190" type="#_x0000_t19" style='position:absolute;left:0;text-align:left;margin-left:207pt; margin-top:38.3pt;width:27pt;height:27pt;z-index:88'/><v:line id="_x0000_s1192" style='position:absolute;left:0;text-align:left;z-index:89' from="232.5pt,57.35pt" to="232.5pt,66.35pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1193" style='position:absolute;left:0; text-align:left;flip:y;z-index:90' from="234pt,85.4pt" to="234pt,94.4pt"> <v:stroke endarrow="block"/> </v:line><v:rect id="_x0000_s1194" style='position:absolute;left:0; text-align:left;margin-left:36pt;margin-top:187.55pt;width:162pt;height:162pt; z-index:91'/><v:oval id="_x0000_s1195" style='position:absolute;left:0; text-align:left;margin-left:46.5pt;margin-top:196.85pt;width:43.5pt;height:45.75pt; z-index:92'> <v:textbox style='mso-next-textbox:#_x0000_s1195'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>A.1</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1197" style='position:absolute;left:0; text-align:left;z-index:93' from="75.75pt,263.7pt" to="129.75pt,263.7pt"/><v:line id="_x0000_s1198" style='position:absolute;left:0;text-align:left;z-index:94' from="76.5pt,286.25pt" to="130.5pt,286.25pt"/><v:rect id="_x0000_s1199" style='position:absolute;left:0;text-align:left;margin-left:84.75pt; margin-top:267.5pt;width:36pt;height:18pt;z-index:95' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1199'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>X</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:line id="_x0000_s1200" style='position:absolute;left:0; text-align:left;flip:x y;z-index:96' from="85.75pt,232.4pt" to="100pt,262.4pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1201" style='position:absolute;left:0; text-align:left;z-index:97' from="97.5pt,287pt" to="142.5pt,314pt"> <v:stroke endarrow="block"/> </v:line><v:oval id="_x0000_s1202" style='position:absolute;left:0; text-align:left;margin-left:2in;margin-top:299.75pt;width:43.5pt;height:45.75pt; z-index:98'> <v:textbox style='mso-next-textbox:#_x0000_s1202'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>A.2</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:rect id="_x0000_s1203" style='position:absolute;left:0; text-align:left;margin-left:279pt;margin-top:187.55pt;width:162pt;height:162pt; z-index:99'/><v:oval id="_x0000_s1204" style='position:absolute;left:0; text-align:left;margin-left:289.5pt;margin-top:195.8pt;width:43.5pt;height:45.75pt; z-index:100'> <v:textbox style='mso-next-textbox:#_x0000_s1204'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>B.1</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1205" style='position:absolute;left:0; text-align:left;z-index:101' from="318.75pt,263.7pt" to="372.75pt,263.7pt"/><v:line id="_x0000_s1206" style='position:absolute;left:0;text-align:left;z-index:102' from="319.5pt,282.05pt" to="373.5pt,282.05pt"/><v:rect id="_x0000_s1207" style='position:absolute;left:0;text-align:left;margin-left:327.75pt; margin-top:263.3pt;width:36pt;height:18pt;z-index:103' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1207'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>X</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><v:line id="_x0000_s1208" style='position:absolute;left:0; text-align:left;flip:x y;z-index:104' from="329.75pt,233.4pt" to="344pt,263.4pt"> <v:stroke endarrow="block"/> </v:line><v:oval id="_x0000_s1209" style='position:absolute;left:0; text-align:left;margin-left:387pt;margin-top:295.55pt;width:43.5pt;height:45.75pt; z-index:105'> <v:textbox style='mso-next-textbox:#_x0000_s1209'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <h2>B.2</h2> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:oval><v:line id="_x0000_s1210" style='position:absolute;left:0; text-align:left;z-index:106' from="343pt,287.75pt" to="388pt,314.75pt"> <v:stroke endarrow="block"/> </v:line><v:shape id="_x0000_s1211" type="#_x0000_t19" style='position:absolute; left:0;text-align:left;margin-left:1in;margin-top:38.5pt;width:90pt;height:143.8pt; flip:x;z-index:107' coordsize="21600,21567" adj="-5689857,,,21567" path="wr-21600,-33,21600,43167,1198,,21600,21567nfewr-21600,-33,21600,43167,1198,,21600,21567l0,21567nsxe"> <v:path o:connectlocs="1198,0;21600,21567;0,21567"/> </v:shape><v:line id="_x0000_s1212" style='position:absolute;left:0; text-align:left;z-index:108' from="1in,179.3pt" to="1in,188.3pt"> <v:stroke endarrow="block"/> </v:line><v:shape id="_x0000_s1213" type="#_x0000_t19" style='position:absolute; left:0;text-align:left;margin-left:315pt;margin-top:103.4pt;width:54pt; height:81pt;z-index:109'/><v:line id="_x0000_s1214" style='position:absolute; left:0;text-align:left;z-index:110' from="369pt,179.3pt" to="369pt,188.3pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1593" style='position:absolute;left:0; text-align:left;flip:y;z-index:325' from="90pt,205.35pt" to="126pt,214.35pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1594" style='position:absolute;left:0; text-align:left;flip:x;z-index:326' from="108pt,336.6pt" to="2in,345.6pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1595" style='position:absolute;left:0; text-align:left;flip:y;z-index:327' from="333pt,196.35pt" to="5in,205.35pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1596" style='position:absolute;left:0; text-align:left;flip:x;z-index:328' from="5in,336.6pt" to="387pt,345.6pt"> <v:stroke endarrow="block"/> </v:line><![endif]-->
Page 36: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Figura 14 - Ex.: Yourdon, E. Pág 213.

5 – O Dicionário de Dados

O dicionário de dados é o conjunto organizado de todos os elementos de dados do sistema, com

suas definições, feitas através de descrições precisas e rigorosas. Ele define os elementos de dados,

descrevendo o significado dos fluxos e depósito do DFD, a composição dos pacotes de dados que

transitam pelos fluxos e os dados armazenados nos depósitos de dados, especificando os valores e

unidades de informações destes e descrevendo os detalhes dos relacionamentos entre os depósitos de um

diagrama entidades-relacionamentos.

5.1 – Notação e significado de Dicionário de Dados

As notações do dicionário de dados são feitas através da utilização de símbolos. Normalmente os

mais utilizados pelos analistas são :

= significa é equivalente a ou é composto de

+ significa e

[] significa qualquer (escolha uma das opções alternativas)

Page 37: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

{} significa iterações de componentes entre chaves

** significa comentário

@ identificador (campo chave) de um depósito

| separa opções alternativa na construção []

Para exemplificar a utilização das notações utilizadas no dicionário de dados, tem-se o exemplo

abaixo :

dado : endereço

endereço = nome-da-rua + número-da-casa + bairro + cidade + CEP+ UF + Pais

nome-da-rua = 1{caracter-válido}40

número = 1{caracter-válido}6

cidade = 1{caracter-válido}30

CEP = 1{caracter-válido}8

UF = 1{caracter-valido}2

pais = 1{caracter-válido}15

caracter-válido= [ A-Z | a-z | 1-9 | ` | ‘ | “ | - ]

O particionamento dos dados do dicionário de dados, como se vê é de cima para baixo (top-down),

ou seja, começa-se com um dado composto e vai refinando-o gradativamente em dados mais simples até

chegar-se aos dados primitivos.

No exemplo supra citado temos a utilização de {} que indicam iterações, estas iterações são

freqüentemente anotadas com limites inferior e superior, que podem ser sobscritos ou subscritos.

Page 38: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

5.1.1 – Definições :

Uma definição de um elemento de dado é feita usando o símbolo “=” que, conforme o contexto em

que esteja sendo usado pode ser lido como “é definido como” ou “é composto de” ou ainda pode ser lido

como “significa”.

a notação A = B + C pode ser lida como :

• A compõe-se de B e C

• A é definido por B e C ou ainda

• sempre que se disser A, nos referimos a B e C

A definição do elemento de dados incluirá comentários que estarão sempre entre **, a composição

deste elemento e os valores que o elemento de dados poderá assumir.

Ex.:

distância = *distância entre duas cidades*

*unidades = km, intervalo : 1-1000*

Para definir um fluxo de dados é necessário determinar alguma classe a que ele pertença e

estabelecer um conjunto de características que o diferencie dos demais elementos da classe.

5.1.2 - Elementos de dados elementares

Elemento de dado elementar é aquele que não necessita ser mais decomposto, ou seja, ele não

precisa de maiores detalhes para que outras pessoas entendam claramente o que ele dizer dentro do

Page 39: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

contexto no qual esteja inserido.

Como exemplo temos o termo nome que poderia ser decomposto em título-de-cortesia, primeiro-

nome, nome-intermediário, último-nome, contudo em algum ambiente, nenhuma dessas decomposições

seja realmente necessária para que os usuários entendam o seu real significado, neste caso o termo nome

poderá ser considerado um dado elementar do meu dicionário de dados.

5.1.3 - Elementos de dados opcionais

Elemento de dado opcional é aquele que pode estar ou não presente como uma parte de um

elemento de dado composto.

O elemento de dado opcional é usado para acrescentar alguma informação que o usuário poderá

achar útil, ou ainda para dar ênfase a algum outro elemento. A falta do elemento de dado opcional, não

altera o conteúdo do dicionário de dados.

5.1.4 – Iterações

A iteração é usada para indicar a ocorrência repetida de um componente de um elemento de dado.

Ex.:

pedido = nome-do-cliente + endereço + 1{item}n

Ex.: Yourdon, Ed pág. 243

isso significa que um pedido deve conter sempre o nome do cliente, o endereço e de 1 a n itens.

Page 40: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

5.1.5 - Seleção

É a notação usada para se determinar que o elemento de dado consiste em uma escolha entre várias

opções disponíveis, como foi definido anteriormente, as opções são delimitadas por colchetes “[ e ]” e

separada pelo caracter de barra vertical “| “.

Ex.:

estado civil = [solteiro | casado | divorciado | outros ]

5.1.6 – Sinônimos (alíases)

Um sinônimo é um nome alternativo para um elemento de dados. São usados para identificar um

elemento de dados, quando há vários nomes para se referir a uma mesma coisa.

Ex.:

freguês = * sinônimo de cliente*

O dicionário de dados deve servir para que o usuário tenha condições de interpretar com facilidade

o Diagrama de Fluxo de Dados, embora se use notações que se parecem com notações matemáticas, e

possa parecer um pouco complexo, o dicionário de dados dará uma visão clara dos dados contidos no

Page 41: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

DFD.

Como em muitas outras áreas de diversas outras ciências existem símbolos para relacionar

determinados elementos, normalmente os usuários se adaptam rapidamente às notações usadas no

dicionário de dados, já que tais símbolos são poucos e fáceis de serem compreendidos.

6 – Especificação de Processos

A especificação de processo descreve o que deve ser feito dentro de cada bolha primitiva dos níveis

mais baixos do DFD para que as entradas sejam transformadas em saídas.

A especificação de processo pode ser feita através de diversas ferramentas como : linguagem

estruturada, tabelas de decisão, fluxogramas, diagramas etc.

A especificação de processo para surtir os efeitos desejados de descrição de cada processo, de forma

que o usuário possa ler, entender e compara-la com o DFD, deve ser feita com a ferramenta que melhor

descreva a essência do processo, não ficando restrita a nenhum dos tipos de ferramentas em específico.

Não se pode dizer que determinada ferramenta de especificação de processo é mais eficiente, melhor ou

pior que outras, isto dependerá muito do projeto em que elas estão sendo utilizadas, as descrições que elas

deverão fazer, bem como os destinatários destas especificações, que poderão ser usuários, analistas,

administradores de empresas, de diversas níveis de conhecimento e áreas de atuação.

Muitas vezes o analista poderá utilizar mais de um tipo de ferramenta para descrever as

especificações de um processo, ou até mesmo a combinação delas, para conseguir um melhor resultado.

A especificação de processo deve ser clara, não ambígua, concisa e completa, ou seja, nenhum

elemento essencial deve ser deixado de fora, ela deve ainda encaixar-se harmoniosamente com as demais

ferramentas da análise estruturada.

Page 42: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

A especificação de processo é também chamada de miniespecificação, por descrever os processos

ocorridos nas bolhas de níveis mais baixos do DFD (bolhas primitivas).

6.1 - Objetivos da especificação de processo

1º – determinar o papel da miniespecificação

Descrever o que acontece dentro de cada bolha primitiva do DFD.

2º – apresentar um documento de especificação para cada primitivo funcional do DFD.

3º – programa de ação e método

cada miniespecificação deve descrever o programa de ação fundamental que governa a

transformação, e não um método ou meios particulares para implementar este programa de ação.

4º – relacionamento com o restante da Especificação Estruturada

a miniespecificação de introduzir um programa de transformação dos fluxos sem introduzir

redundância de qualquer tipo na Especificação Estruturada.

5º – representação ortogonal

Os métodos usados para escrever miniespecificações devem ser altamente ortogonais, ou seja,

devem apresentar um conjunto mínimo de maneiras para especificar um processo e depois se

utilizar somente deste conjunto mínimo.

A ortogonalidade aqui é usada analogamente ao conceito de ortogonalidade da matemática,

significando “não-justapor” ou mias simplesmente não apresentar mais de uma “definição”para

um mesmo processo.

Uma miniespecificação é em suma um documento que satisfaça os objetivos de especificação da

melhor forma possível. É uma descrição escrita de um programa de ação básico que governa a

transformação de fluxos de entradas em fluxos de saídas; ela deve ser feita para cada bolha primitiva

individualmente, de forma não redundante e ortogonal.

Page 43: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

6.2 – Ferramentas da Especificação de Processo

Muitas são as ferramentas de especificação de processo utilizadas na análise estruturada. A

abordagem clássica para especificação de processo utiliza-se de textos escritos, contudo, a utilização de

textos em linguagem natural pode trazer vários inconvenientes como redundância, falta de precisão, além

de prolixa, cheia de implicações e conotações. A utilização de textos escritos é também trabalhosa, difícil

de ser lida, não concisa e não ortogonal.

A análise estruturada moderna procura utilizar algumas ferramentas alternativas para descrever as

especificações de processos, já que a língua natural não é uma boa ferramenta pelas fragilidades que

apresenta. Estas ferramentas são normalmente utilizadas por apresentarem melhores características de

estruturação e construção como é o caso de tabelas e gráficos.

Outro meio alternativo é a adaptação da linguagem natural para uma forma mais estruturada, onde

há uma utilização de uma parte da linguagem natural, com o objetivo de se excluir dela as fragilidades

apresentadas, esse subconjunto da linguagem natural pode ser conseguido utilizando-se alguns recursos

como :

1 – eliminar palavras com sinônimos mais simples ou que possam ser utilizados mais

apropriadamente;

2 - eliminar qualquer construção que possa ser substituída por outra sintaxe mais simples;

3 - eliminar qualquer maneira de se formular lógica que possa ser substituída por um modo

mais simples.

Em resumo, todas as facilidades não essências apresentadas pela linguagem natural que forem dela

retiradas, irá contribuir para que ela seja mais precisa, concisa e ortogonal.

As três ferramentas básicas que podem ser utilizadas para descrição da especificação de processos

são :

• Português Estruturado / Inglês Estruturado

• Tabelas de Decisão

Page 44: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

• Árvore de Decisão

6.2.1 – O Português Estruturado

O Português Estruturado é um subconjunto da língua portuguesa natural, adaptado para ser utilizado

como ferramenta de especificação de processo, só que com algumas restrições quanto à construção de

sentenças em relação à língua comum.

O propósito da linguagem estruturada é obter o equilíbrio entre a precisão que uma linguagem de

programação formal exige e a facilidade e a informalidade da língua, no caso o português que utilizamos

diariamente. Por ser uma linguagem limitada, o português estruturado se resume a algumas construções e

sintaxe básicos, utilizando-se basicamente :

• verbos no imperativo

ex.: faça, procure, retire, divide, valide etc

• termos definidos no dicionário de dados

ex: número-da-nota-fiscal, nome-do-cliente, número-do-cpf etc

• algumas palavras reservadas para a criação de formulações lógicas

ex: repita-enquanto, faça-até, se, senão etc

A sintaxe do português estruturado para uma afirmativa limita-se a :

1. sentenças declaratórias simples

2. construções de decisão

3. construções de repetição

ou a combinação delas.

Page 45: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

6.2.1.1 – Construções Lógicas do Português Estruturado

As construções lógicas em Português Estruturado podem ser definidas como :

• Construção Seqüencial : são construções onde um ou mais programas de ação são

executados um após o outro até que todo o programa de ação seja aplicado. Uma

construção de seqüência é composta de uma ou mais sentenças simples no imperativo.

SEQUENCIA :

Figura 15

• Construção de Decisão : são construções de dois ou mais programas de ação

subordinados onde apenas um deles pode ser aplicado a qualquer caso determinado.

, 23/12/05
<!--[if gte vml 1]><v:shapetype id="_x0000_t4" coordsize="21600,21600" o:spt="4" path="m10800,0l0,10800,10800,21600,21600,10800xe"> <v:stroke joinstyle="miter"/> <v:path gradientshapeok="t" o:connecttype="rect" textboxrect="5400,5400,16200,16200"/> </v:shapetype><v:shape id="_x0000_s1224" type="#_x0000_t4" style='position:absolute; left:0;text-align:left;margin-left:282pt;margin-top:38.9pt;width:18pt; height:18pt;z-index:120' fillcolor="#333"/><v:line id="_x0000_s1225" style='position:absolute; left:0;text-align:left;z-index:121' from="246pt,48.65pt" to="282pt,48.65pt" strokeweight="2.25pt"/><v:line id="_x0000_s1226" style='position:absolute; left:0;text-align:left;z-index:122' from="300pt,48.65pt" to="336pt,48.65pt" strokeweight="2.25pt"/><v:line id="_x0000_s1229" style='position:absolute; left:0;text-align:left;flip:y;z-index:125' from="291pt,20.9pt" to="291pt,38.9pt" strokeweight="2.25pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1217" style='position:absolute;left:0;text-align:left;flip:y; z-index:113' from="238.5pt,20.15pt" to="238.5pt,38.15pt" strokeweight="2.25pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:roundrect id="_x0000_s1215" style='position:absolute;left:0;text-align:left; margin-left:3in;margin-top:21.5pt;width:45pt;height:27pt;z-index:111' arcsize="10923f" fillcolor="#333"/><v:line id="_x0000_s1216" style='position:absolute; left:0;text-align:left;flip:y;z-index:112' from="237.75pt,3.35pt" to="237.75pt,21.35pt" strokeweight="2.25pt"/><![endif]-->
Page 46: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

DECISÃO :

Figura 16

• Construção de Repetição : são construções onde um programa de ação subordinado é

executado várias vezes dentro de algum limite.

REPETIÇÃO:

Exemplos: De Marco,

Análise Estruturada e

Especificação de

Sistema, pág. 70

• • •

Figura 18

, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1242" style='position:absolute;left:0;text-align:left;flip:y; z-index:138' from="348pt,14.15pt" to="384pt,14.9pt" strokeweight="2.25pt"/><v:shape id="_x0000_s1913" type="#_x0000_t202" style='position:absolute;left:0; text-align:left;margin-left:297pt;margin-top:33.65pt;width:1in;height:27pt; z-index:485' strokecolor="white"/><v:shape id="_x0000_s1233" type="#_x0000_t4" style='position:absolute;left:0;text-align:left;margin-left:238.5pt; margin-top:4.65pt;width:18pt;height:18pt;z-index:129' fillcolor="#333"/><v:line id="_x0000_s1234" style='position:absolute;left:0;text-align:left;flip:y; z-index:130' from="3in,12.65pt" to="238.5pt,13.4pt" strokeweight="2.25pt"/><v:line id="_x0000_s1237" style='position:absolute;left:0;text-align:left;flip:y; z-index:133' from="248.25pt,21.15pt" to="248.25pt,39.15pt" strokeweight="2.25pt"/><v:shape id="_x0000_s1912" type="#_x0000_t202" style='position:absolute;left:0; text-align:left;margin-left:2in;margin-top:32.65pt;width:1in;height:27pt; z-index:484' strokecolor="white"> <v:textbox> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal>Figura 17</p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:shape><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:roundrect id="_x0000_s1231" style='position:absolute;left:0;text-align:left; margin-left:225pt;margin-top:43.8pt;width:45pt;height:27pt;z-index:127' arcsize="10923f" fillcolor="#333"/><v:line id="_x0000_s1232" style='position:absolute; left:0;text-align:left;flip:y;z-index:128' from="247.5pt,69.15pt" to="247.5pt,87.15pt" strokeweight="2.25pt"/><v:line id="_x0000_s1235" style='position:absolute; left:0;text-align:left;flip:y;z-index:131' from="215.25pt,22.5pt" to="215.25pt,94.5pt" strokeweight="2.25pt"/><v:line id="_x0000_s1236" style='position:absolute; left:0;text-align:left;z-index:132' from="216.75pt,23.25pt" to="234.75pt,23.25pt" strokeweight="2.25pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1238" style='position:absolute;left:0; text-align:left;flip:y;z-index:134' from="248.25pt,1.5pt" to="248.25pt,46.5pt" strokeweight="2.25pt"/><v:roundrect id="_x0000_s1239" style='position:absolute; left:0;text-align:left;margin-left:5in;margin-top:52.8pt;width:45pt;height:27pt; z-index:135' arcsize="10923f" fillcolor="#333"/><v:line id="_x0000_s1240" style='position:absolute;left:0;text-align:left;flip:y;z-index:136' from="382.5pt,78.15pt" to="382.5pt,96.15pt" strokeweight="2.25pt"/><v:shape id="_x0000_s1241" type="#_x0000_t4" style='position:absolute;left:0;text-align:left;margin-left:374.25pt; margin-top:24pt;width:18pt;height:18pt;z-index:137' fillcolor="#333"/><v:line id="_x0000_s1243" style='position:absolute;left:0;text-align:left;flip:y; z-index:139' from="346.5pt,24pt" to="346.5pt,96pt" strokeweight="2.25pt"/><v:line id="_x0000_s1244" style='position:absolute;left:0;text-align:left;z-index:140' from="347pt,24.75pt" to="365pt,24.75pt" strokeweight="2.25pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1245" style='position:absolute;left:0; text-align:left;rotation:-90;flip:y;z-index:141' from="402pt,25.05pt" to="402pt,43.05pt" strokeweight="2.25pt"/><v:line id="_x0000_s1246" style='position:absolute; left:0;text-align:left;flip:y;z-index:142' from="383.25pt,10.5pt" to="383.25pt,55.5pt" strokeweight="2.25pt"/><v:line id="_x0000_s1247" style='position:absolute; left:0;text-align:left;flip:y;z-index:143' from="410pt,34.05pt" to="410pt,133.05pt" strokeweight="2.25pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1227" style='position:absolute;left:0;text-align:left;z-index:123' from="248.25pt,.55pt" to="338.25pt,.55pt" strokeweight="2.25pt"/><v:line id="_x0000_s1228" style='position:absolute;left:0;text-align:left;flip:y;z-index:124' from="291pt,1.3pt" to="291pt,19.3pt" strokeweight="2.25pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1230" style='position:absolute;left:0;text-align:left;margin-left:387pt; margin-top:20.5pt;width:54pt;height:18pt;z-index:126' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1230'/> </v:rect><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1220" style='position:absolute; left:0;text-align:left;flip:y;z-index:116;mso-position-horizontal-relative:text; mso-position-vertical-relative:text' from="337.5pt,36.55pt" to="337.5pt,54.55pt" strokeweight="2.25pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1219" style='position:absolute;left:0;text-align:left;flip:y; z-index:115;mso-position-horizontal-relative:text; mso-position-vertical-relative:text' from="336.75pt,-6.95pt" to="336.75pt,11.05pt" strokeweight="2.25pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:roundrect id="_x0000_s1218" style='position:absolute;left:0;text-align:left; margin-left:315pt;margin-top:11.2pt;width:45pt;height:27pt;z-index:114; mso-position-horizontal-relative:text;mso-position-vertical-relative:text' arcsize="10923f" fillcolor="#333"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1223" style='position:absolute;left:0;text-align:left;flip:y; z-index:119;mso-position-horizontal-relative:text; mso-position-vertical-relative:text' from="247.5pt,36.55pt" to="247.5pt,54.55pt" strokeweight="2.25pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:line id="_x0000_s1222" style='position:absolute;left:0;text-align:left;flip:y; z-index:118;mso-position-horizontal-relative:text; mso-position-vertical-relative:text' from="246.75pt,-6.95pt" to="246.75pt,11.05pt" strokeweight="2.25pt"/><![endif]-->
, 23/12/05
<!--[if gte vml 1]><v:roundrect id="_x0000_s1221" style='position:absolute;left:0;text-align:left; margin-left:225pt;margin-top:11.2pt;width:45pt;height:27pt;z-index:117; mso-position-horizontal-relative:text;mso-position-vertical-relative:text' arcsize="10923f" fillcolor="#333"/><![endif]-->
Page 47: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

As três construções apresentadas têm a característica em comum de possuírem apenas um único

ponto de entrada e um único ponto de saída, isso faz com que as construções de programas de ação em

blocos sejam facilmente lidas de cima para baixo, sem interrupção do processo de pensamento serial.

Descrições que introduzem interrupções no fluxo serial de percepção do usuário é de difícil leitura.

6.2.1.2 - Exemplos de Construções em Português Estruturado

Formato Se-Então-Caso Contrário

Se<condição>

Então

<programa de ação “então”>

Caso Contrário

<programa de ação “caso contrario”>.

Formato Selecione-Caso

Selecione o programa de ação que se aplica:

Caso 1 (< condição que define o caso 1>);

<Programa de ação que se aplica ao Caso 1>

, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1272" style='position:absolute;left:0;text-align:left; margin-left:18pt;margin-top:26.7pt;width:54pt;height:18pt;rotation:90; z-index:166' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1272'> <![if !mso]> <table cellpadding=0 cellspacing=0 width="100%"> <tr> <td><![endif]> <div> <p class=MsoNormal><span style='font-family:Symbol;mso-ascii-font-family: "Times New Roman";mso-hansi-font-family:"Times New Roman";mso-char-type: symbol;mso-symbol-font-family:Symbol'><span style='mso-char-type:symbol; mso-symbol-font-family:Symbol'>·</span></span><span style="mso-spacerun: yes">   </span><span style='font-family:Symbol;mso-ascii-font-family:"Times New Roman"; mso-hansi-font-family:"Times New Roman";mso-char-type:symbol;mso-symbol-font-family: Symbol'><span style='mso-char-type:symbol;mso-symbol-font-family:Symbol'>·</span></span><span style="mso-spacerun: yes">   </span><span style='font-family:Symbol; mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"; mso-char-type:symbol;mso-symbol-font-family:Symbol'><span style='mso-char-type: symbol;mso-symbol-font-family:Symbol'>·</span></span></p> </div> <![if !mso]></td> </tr> </table> <![endif]></v:textbox> </v:rect><![endif]-->
Page 48: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

Caso n (<condição que define o caso n>);

<Programa de ação que se aplica ao Caso n>

Formato de Continuidade

<frase-chave>

<programa de ação subordinado que se repete aqui>.

< condição para repetição contínua>;

6.2.1.3 - A Estrutura de uma Descrição

A estrutura de uma descrição em um programa de ação é representada por um gráfico de fluxos que

define as ações do usuário, assim como ele considera que o programa de ação deve fazer, de acordo com

o que ele já faz.

Descrição do Programa de Ação Calcula Cartão-Ponto-Semanal

A apuração semanal de Cartão de Ponto consiste em receber os lotes-cartões dos diversos setores da

empresa, classifica-los em ordem alfabética dentro de cada setor. Após isso, passasse para a parte da

apuração. O saldo-semanal é calculado diariamente até o sétimo dia, pela soma do saldo-semanal com o

saldo-diário, que é calculado pela soma da diferença entre cada horário de saída pelo de entrada

diariamente, esta atividade é executada enquanto houver horário de entrada e de saída.

Uma vez que o programa de ação do usuário já corresponde à sintaxe restrita, tudo o que é

necessário fazer é reduzir o vocabulário, incorporar nomes do Dicionário de Dados e paragrafar para

Page 49: Análise Estruturada de Sistema...sistema novo. Chegamos então à análise estruturada moderna, apresentada nas obras de [Ward e Mellor, 1985], [McMenamime Palmer, 1984] e [Edward

enfatizar a subordinação.

Programa de ação Calcular Cartão de Ponto Semanal em

Português Estruturado

Para cada Lote-Cartões

Ordenar alfabeticamente

Para cada Cartão-Ponto

Calcular Saldo-Semana

Repita até Dia-Semana igual a 7

Saldo-Semana igual Saldo-Semana mais Saldo-Horas-Dia

Repita enquanto existir hora-saída e hora-entrada

Saldo-Horas-Dia igual soma hora-saída mais hora-entrada

Dia-Semana igual Dia-Semana mais Um

, 23/12/05
<!--[if gte vml 1]><v:rect id="_x0000_s1248" style='position:absolute;left:0;text-align:left; margin-left:153pt;margin-top:0;width:189pt;height:4in;z-index:144'/><v:roundrect id="_x0000_s1249" style='position:absolute;left:0;text-align:left; margin-left:3in;margin-top:72.3pt;width:45pt;height:27pt;z-index:145' arcsize="10923f" fillcolor="#333"/><v:line id="_x0000_s1250" style='position:absolute; left:0;text-align:left;flip:y;z-index:146' from="238.5pt,97.65pt" to="238.5pt,115.65pt" strokeweight="2.25pt"/><v:shape id="_x0000_s1251" type="#_x0000_t4" style='position:absolute; left:0;text-align:left;margin-left:229.5pt;margin-top:114.3pt;width:18pt; height:18pt;z-index:147' fillcolor="#333"/><v:line id="_x0000_s1252" style='position:absolute; left:0;text-align:left;flip:y;z-index:148' from="207pt,123.3pt" to="229.5pt,124.05pt" strokeweight="2.25pt"/><v:line id="_x0000_s1253" style='position:absolute; left:0;text-align:left;flip:y;z-index:149' from="206.25pt,52.05pt" to="206.25pt,124.05pt" strokeweight="2.25pt"/><v:line id="_x0000_s1254" style='position:absolute; left:0;text-align:left;z-index:150' from="207.75pt,52.8pt" to="225.75pt,52.8pt" strokeweight="2.25pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1255" style='position:absolute;left:0; text-align:left;z-index:151' from="238.5pt,-27pt" to="238.5pt,81pt" strokeweight="2.25pt"/><v:shape id="_x0000_s1256" type="#_x0000_t4" style='position:absolute; left:0;text-align:left;margin-left:229.5pt;margin-top:18pt;width:18pt; height:18pt;z-index:152' fillcolor="#333"/><v:line id="_x0000_s1257" style='position:absolute; left:0;text-align:left;z-index:153' from="296.25pt,25.5pt" to="296.25pt,268.5pt" strokeweight="2.25pt"/><v:roundrect id="_x0000_s1258" style='position:absolute; left:0;text-align:left;margin-left:3in;margin-top:168.3pt;width:45pt;height:27pt; z-index:154' arcsize="10923f" fillcolor="#333"/><v:shape id="_x0000_s1259" type="#_x0000_t4" style='position:absolute;left:0;text-align:left; margin-left:229.5pt;margin-top:210.3pt;width:18pt;height:18pt;z-index:155' fillcolor="#333"/><v:line id="_x0000_s1260" style='position:absolute;left:0; text-align:left;flip:y;z-index:156' from="238.5pt,199.5pt" to="238.5pt,217.5pt" strokeweight="2.25pt"/><v:line id="_x0000_s1261" style='position:absolute; left:0;text-align:left;flip:y;z-index:157' from="238.5pt,121.2pt" to="238.5pt,193.2pt" strokeweight="2.25pt"/><v:line id="_x0000_s1262" style='position:absolute; left:0;text-align:left;flip:y;z-index:158' from="238.5pt,230.25pt" to="238.5pt,320.25pt" strokeweight="2.25pt"/><v:line id="_x0000_s1263" style='position:absolute; left:0;text-align:left;z-index:159' from="241.5pt,278.25pt" to="295.5pt,278.25pt" strokeweight="2.25pt"/><v:line id="_x0000_s1264" style='position:absolute; left:0;text-align:left;z-index:160' from="278.25pt,53.55pt" to="278.25pt,215.55pt" strokeweight="2.25pt"/><v:line id="_x0000_s1265" style='position:absolute; left:0;text-align:left;z-index:161' from="243pt,54.3pt" to="279pt,54.3pt" strokeweight="2.25pt"/><v:line id="_x0000_s1266" style='position:absolute; left:0;text-align:left;z-index:162' from="243pt,223.5pt" to="279pt,223.5pt" strokeweight="2.25pt"/><v:line id="_x0000_s1267" style='position:absolute; left:0;text-align:left;flip:x;z-index:163' from="239.25pt,54.3pt" to="248.25pt,54.3pt" strokeweight="2.25pt"> <v:stroke endarrow="block"/> </v:line><v:line id="_x0000_s1268" style='position:absolute;left:0; text-align:left;z-index:164' from="243pt,26.25pt" to="297pt,26.25pt" strokeweight="2.25pt"/><v:rect id="_x0000_s1269" style='position:absolute; left:0;text-align:left;margin-left:5in;margin-top:253.5pt;width:36pt;height:36pt; z-index:165' strokecolor="white"> <v:textbox style='mso-next-textbox:#_x0000_s1269'/> </v:rect><![endif]-->