Você está na página 1de 21

Anlise Estruturada

43
Dicionrio de Dados (DD)
O dicionrio de dados consiste numa lista organizada de todos os elementos de
dados que so pertinentes para o sistema. Sem o dicionrio de dados o modelo
no pode ser considerado completo, pois este descreve entradas, sadas,
composio de depsitos de dados e alguns clculos intermdios. O DD consiste
num ponto de referncia de todos os elementos envolvidos na medida em que
permite associar um significado a cada termo utilizado.

Dados elementares
Os dados elementares correspondem a elementos atmicos, ou seja, elementos
sem decomposio no contexto do utilizador.
Exemplo: Apesar de se utilizar (na pgina seguinte) o N_telefone, como um
exemplo de descrio de um elemento de dados composto, na maior parte dos
contextos este dado considerado elementar.

O DD permite inventariar e descrever os seguintes itens:
depsitos de dados;
fluxos de dados;
dados elementares que constituem fluxos e depsitos de dados;

Cada entrada no DD constituda por um identificador e respectiva descrio. A
descrio de cada entrada inclui:
o seu significado;
o seu contedo (s para dados compostos);
os valores permitidos e unidades (s para dados elementares);
A chave primria (s para depsitos de dados).
Anlise Estruturada
44
Notao utilizada no DD
Para descrever de uma forma precisa e concisa cada componente de dados
utiliza-se um conjunto de smbolos simples.

Smbolo Significado
= constitudo por ou definido por
+ e (conjuno ou concatenao)
( ) enquadram componentes opcionais
[ ] enquadram componentes que so utilizadas alternativamente
|
separam componentes alternativas enquadradas por [ ]
{ } enquadram componentes que se repetem 0 ou mais vezes
** enquadram comentrios
@ identifica a chave primria de um depsito

Exemplos:
Descrio de um elemento de dados composto:
N_telefone =( indicativo_internacional + indicativo_pas ) + (
indicativo_zona ) +N_assinante
indicativo_internacional ={dgito}
indicativo_pas ={dgito}
indicativo_zona ={dgito}
N_assinante ={dgito}
Dgito =[ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ]

Descrio de elementos de dados elementares:
Sexo =* Valores: [ M | F ] *
Peso =* Peso do paciente quando admitido no hospital *
* Unidades: Kg Intervalo: 1-150*
Anlise Estruturada
45
Exemplo de Dicionrio de Dados
O exemplo apresentado corresponde a uma parte do DD do sistema de Gesto
de Bibliotecas e inclui a descrio dos seguintes itens:
o fluxo de dados Ficha_leitor;
o depsito de dados Leitor;
alguns dos dados elementares dos itens anteriores.

...
BI = *Nmero do Bilhete de identidade do leitor*
Data_admisso = *Data de inscrio do leitor*
Ficha_leitor = *Dados pessoais do leitor fornecidos para a sua
inscrio ou alterao de informao*
(N_leitor) + Nome + Morada + BI +Telefone +
Profisso
Leitor = {Leitor_i}
Leitor_i = *Informao mantida sobre cada leitor da biblioteca*
@N_leitor +Nome +Morada +BI +Telefone +
Profisso +Data_admisso
Morada = *Morada do leitor*
N_leitor = *Nmero de identificao de leitor da Biblioteca*
{dgito}
... ...

Descrio de elementos de dados elementares
A descrio do significado de dados elementares desnecessria quando o
elemento de dados bvio (Exemplo: Sexo). Contudo, necessrio criar uma
entrada no DD e especificar as unidades e valores, ou intervalo de valores, para
cada elemento de dados.
Anlise Estruturada
46
Especificao de processos
A especificao de processos consiste na descrio interna da tarefa de cada
processo primitivo dos nveis inferiores de um DFD.
A descrio de um processo primitivo tambm designada por mini-
especificao.
A especificao de processos s elaborada para os processos primitivos e no
deve ultrapassar a dimenso de uma pgina. Se a mini-especificao for
complexa necessrio decompor o processo num DFD de nvel inferior.

Objectivos da mini-especificao:
Descrever as regras de transformao dos fluxos de entrada em fluxos de
sada, traduzindo a poltica de transformao e no um mtodo de
implementar essa poltica;
Descrever actividades sem impor decises arbitrrias de desenho ou
implementao;
Rever e corrigir o DFD elaborado, pois a especificao de processos
permite detectar necessidades de fluxos e actividades adicionais.

Tcnicas para a escrita de mini-especificaes
Linguagem estruturada;
Pr e Ps-condies;
Tabelas e rvores de deciso;
Fluxogramas;
Diagramas de Nassi-Shneiderman;
Qualquer combinao das tcnicas anteriores.
Anlise Estruturada
47
Linguagem Estruturada
A Linguagem estruturada, LE, uma linguagem de especificao retirada da
linguagem corrente qual foram feitas algumas limitaes na sintaxe e no
vocabulrio. A LE a tcnica de especificao mais utilizada.

A LE utilizada para escrever vrios tipos de instrues:
Instrues de atribuio/leitura/escrita
X=(Y*Z) / SOMA(Q,14)
ESCREVER (para processo 1.3.2) X
LER (de terminador1) R
K =(X*R) ^SOMA(Y,20)
ESCREVER K
Notas: a) No necessrio ler dados provenientes de fluxos de dados;
b) No necessrio especificar terminadores de destino dos fluxos.

Instrues de seleco
SE - FIM SE
SE - SENO - FIM SE
SE - SENO SE - (SENO) - FIM SE
CASO - (CASO SENO) - FIM CASO

Instrues de repetio
PARA - AT - FIM PARA
PARA CADA - FIM PARA
ENQUANTO - FIM ENQUANTO
REPETIR - AT
Anlise Estruturada
48
Instrues de manipulao de depsitos de dados
ENCONTRAR lista_atributos EM depsito_dados COM condio_pesquisa
LER registo nome_registo
INSERIR nome_registo EM depsito_dados
ALTERAR lista_atributos EM depsito_dados PARA lista_novos_valores
REMOVER registo EM depsito_dados COM condio_pesquisa

Assim, o vocabulrio da LE resume-se a:
Conjunto limitado de verbos, apresentados no infinito, que permitem
especificar qual a aco que desempenhada;
Termos definidos no DD correspondentes a objectos do sistema;
Termos locais, ou seja, palavras definidas, conhecidas, relevantes e com
significado somente na especificao de um dado processo. Um exemplo
tpico de termo local um clculo intermdio usado para produzir uma
sada final;
Palavras reservadas para a representao das vrias estruturas de controlo;
Algumas palavras de ligao que permitem dar maior legibilidade
linguagem (EM, DE, PARA);
Operadores relacionais: = > < e ou
Operador de concatenao: +
Operadores aritmticos: soma - / * ^

Anlise Estruturada
49
Exemplos de especificao de processos
Principais entradas do DD relacionadas:
Ficha_leitor = *Dados pessoais do leitor fornecidos para a sua
inscrio ou alterao de informao*
(N_leitor) + Nome + Morada + BI +Telefone +
Profisso
Leitor = {Leitor_i}
Leitor_i = *Informao mantida sobre cada leitor da biblioteca*
@N_leitor +Nome +Morada +BI +Telefone +
Profisso +Data_admisso


Processo 1.1 - Registar dados de leitor
ENCONTRAR leitor_i EM Leitor COM bi =bi DE Ficha_leitor
SE existe registo
LER registo Leitor_i
ALTERAR nome, morada, telefone, profisso EM Leitor PARA
(nome, morada, telefone, profisso) DE Ficha_leitor
SENO
N_leitor =prximo N_leitor disponvel
Data_admisso =Data_actual
Leitor_i =N_leitor +nome +morada +bi +telefone +profisso +
data_adimisso
INSERIR Leitor_i EM Leitor
FIM SE
Anlise Estruturada
50
Contedo das principais entradas no DD relacionadas:
Dados_livro = N_livro +Ttulo +Ano_edio +Editora +Cota
Lista_ttulo = {Dados_livro +{nome_autor}}
Pedido_pesquisa_ttulo = ttulo
Resposta_pesquisa_ttulo =
[No existe | lista_ttulo ]

Processo 2.1 - Pesquisar livros por ttulo
ENCONTRAR livro_i EM Livro COM ttulo ttulo DE
Pedido_Pesquisa_ttulo
SE no existem registos
Resposta_pesquisa_ttulo =No existe
SENO
ENQUANTO no fim de registos */ de livro /*
LER registo Livro_i
dados_livro =N_livro +ttulo +Ano_edio +Editora +Cota
lista_ttulo =lista_ttulo +dados_livro
ENCONTRAR autor_livro_i EM Autor_Livro COM N_livro
ENQUANTO no fim de registos */ de autor_livro /*
LER N_autor de Autor_livro
ENCONTRAR autor_i EM Autor COM N_autor
LER Nome_autor de Autor
lista_ttulo =lista_ttulo +Nome_autor
FIM ENQUANTO
FIM ENQUANTO
Resposta_pesquisa_ttulo =lista_ttulo
FIM SE
ESCREVER Resposta_pesquisa_ttulo
Anlise Estruturada
51
Pr / Ps Condies
Constituem uma forma conveniente de descrever a funo que tem de ser
executada por um processo, sem especificar o respectivo algoritmo.

A utilizao de pr / ps condies apropriada quando:
o utilizador tem tendncia para expressar os procedimentos que utiliza para
sustentar uma poltica e no a poltica subjacente que tem de ser levada a
cabo;
o analista reconhece que existem vrios algoritmos diferentes, que podem
ser usados, e pretende adiar a opo por um deles para uma fase posterior;
o analista quer deixar para o programador a tarefa de explorao de vrios
algoritmos e no se quer envolvem nestes detalhes.

A utilizao de pr / ps condies no apropriada quando:
o nmero de passos intermdios para produzir as sadas elevado,
tornando a especificao produzida difcil de interpretar pelo facto de no
se visualizar todos os procedimentos executados;
os relacionamentos entre entradas e sadas a produzir so complexos,
sendo mais fcil escrever a especificao atravs da utilizao da
Linguagem estruturada.

A especificao de processos atravs desta tcnica constituda pela descrio
de dois tipos de condies:
Pr condies
Ps condies
Anlise Estruturada
52
Pr condies
As pr condies especificam tudo o que se deve verificar antes da actividade
do processo se iniciar. Tipicamente descrevem:

Entradas que devem estar disponveis
Elementos de dados que constituem um estimulo activador do processo e
que correspondem a fluxos de entrada. Contudo, existem casos em que,
apesar de existirem vrios fluxos de entrada, s um dos fluxos que uma
pr condio necessria para activar o processo, correspondendo os
restantes fluxos de entrada a pedidos de informao.

Relacionamentos que devem existir entre os dados das entradas
Muitas vezes uma pr condio especifica que ocorrem duas entradas com
atributos correspondentes (Exemplo: Ocorrem detalhes_de_encomenda e
detalhes_de_envio com o mesmo nmero_pedido).
Uma pr condio tambm pode especificar o intervalo de valores de um
elemento de dados de entrada (Exemplo: Um pedido ocorre com uma
data_entrega de 60 dias)

Relacionamentos que tm de existir entre entradas e deps. de dados
Uma pr condio pode estipular que existem correspondncias entre
instncias de um depsito e elementos de uma entrada (Exemplo: Existe
um pedido com #cliente que corresponde a um #cliente do deps. cliente).

Relacionamentos que tm de existir entre elementos de dados de
depsito(s)
Exemplo: Existe um Pedido_encomenda no depsito Encomenda com um
#cliente correspondente a um #cliente do depsito Cliente
Exemplo: Existe um Pedido_encomenda no depsito Encomenda com
data_entrega igual a data_corrente
Anlise Estruturada
53
Ps condies
Similarmente, as Ps condies especificam tudo o que se deve verificar quando
o processo terminar a sua actividade. Ou, seja, especificam o que feito e no
como feito.

As ps condies descrevem:

Sadas a produzir pelo processo
Exemplo: produzida uma factura

Relacionamentos entre valores das sadas e valores originais das
entradas
Utilizada quando uma sada corresponde ao resultado da aplicao de uma
funo ao valor de uma entrada (Exemplo: O valor_total_da_factura
calculado atravs de Somatrio(quantidade * preo_unitrio) +
despesas_envio)

Relacionamentos entre valores de sada e valores de um ou mais
depsitos
Utilizada quando a informao, determinada a partir de depsitos de dados,
pertence a uma parte do processamento da sada (Exemplo: As existncias
do depsito Stock so incrementadas por unidades_recebidas e o novo
valor produzido como sada do processo)

Alteraes efectuadas em depsitos de dados
Engloba itens adicionados, itens alterados ou itens removidos (Exemplo: O
Pedido_encomenda registado no depsito encomenda)
Anlise Estruturada
54
Etapas de elaborao de pr / Ps condies:

Descrever situao(es) de processamento normal;
Podem existir vrias situaes de processamento normal, que correspondem a
diferentes combinaes de diferentes valores de entrada vlidos. Nesse
caso, elabora-se uma pr condio para cada situao possvel;

Para cada pr condio, descrever o estado do processo quando as sadas
forem produzidas e os depsitos forem alterados;

Descrever pr / Ps condies para casos excepcionais ou situaes de
erro.


Exemplo: Processo X - Determinar comisso de venda

Pr condio 1
Dados_venda ocorre com Tipo_item que corresponde a uma Categoria
em Categoria_comisses
Ps condio 1
Commisso_venda =Valor_venda_item * Percent_comisso
Pr condio 2
Dados_venda ocorre com Tipo_item que no corresponde a nenhuma
Categoria em Categoria_comisses
Ps condio 2
Gerar mensagem de erro
Anlise Estruturada
55
Tabelas e rvores de deciso
Tabelas e rvores de deciso so duas tcnicas de representao da poltica de
seleco condicional, usada para derivar um conjunto de aces,
respectivamente sob a forma:
tabular;
diagramtica.

Estas duas tcnicas tambm so referidas como ferramentas de modelao no
procedimentais, pois:
especificam a poltica de transformao das entradas em sadas;
no especificam o algoritmo subjacente da transformao.


A utilizao destas tcnicas apropriada quando:
um processo tem de produzir uma sada ou executar vrias aces com
base em decises complexas e
as decises dependem de mltiplas variveis independentes, que podem
assumir vrios valores diferentes.



Nestes casos, a especificao do processo, utilizando Linguagem Estruturada ou
Pr / Ps Condies, torna-se muito complexa.
Anlise Estruturada
56
Etapas de elaborao de uma tabela de deciso:
listam-se todas as variveis relevantes, tambm denominadas por
condies ou entradas, e todas as aces relevantes no lado esquerdo da
tabela;
lista-se cada combinao vivel de valores das variveis numa coluna;
marca-se com X o conjunto de aces a executar para cada combinao de
valores das condies.

Cada coluna da tabela denominada por regra. Uma regra descreve as aces a
executar para uma dada combinao de valores das variveis. Pelo menos uma
aco tem de ser especificada para cada coluna da tabela de deciso.


Estrutura de uma tabela de deciso
REGRAS
CONDIES
ACES


Exemplo de tabela de deciso: Determinar medicao adequada
1 2 3 4 5 6 7 8
Idade >20 S S S S N N N N
Sexo M M F F M M F F
Peso >80 S N S N S N S N
Medicao 1 X X X
Medicao 2 X X
Medicao 3 X X X
Sem medicao X X
Anlise Estruturada
57
As rvores de deciso correspondem a uma variante das tabelas de deciso que
representam a poltica de seleco condicional, atravs da organizao
hierrquica de sries de decises.


Exemplo de rvore de deciso: Determinar medicao adequada
1
2
3
Sem
1 e 2
3
Sem
1 e 3
> 80
<=80
> 80
<=80
> 80
<=80
> 80
<=80
M
F
M
F
> 21
<=21
__
__
__
__
__
__
__
__
IDADE SEXO PESO MEDICAO




Comparando as duas tcnicas, verifica-se que uma rvore de deciso permite
uma representao mais bvia, mas menos concisa.
Anlise Estruturada
58
Fluxogramas
Os fluxogramas foram usados no passado como um mecanismo de
representao grfica de algoritmos e do seu fluxo de controlo.

Contudo, os fluxogramas perderam interesse devido a problemas relacionados
com a sua utilizao em duas reas:

Como ferramenta de modelao de alto nvel:
Os fluxogramas representam a lgica procedimental de uma forma
sequencial, que no adequada para modelar uma rede de processos
comunicantes assncronos. Assim sendo, os DFD constituem uma
ferramenta de modelao de alto nvel mais apropriada.
Os fluxogramas praticamente s focam aspectos de fluxo de controlo e,
em contraste com os DFDs, do pouca informao sobre o fluxo de
dados e estruturas de dados.

Como ferramenta de modelao de processos:
Nada impede o analista de sistemas de construir um fluxograma
complexo e no estruturado, pois estes incorporam smbolos que
viabilizam a especificao das actividades de uma forma no
estruturada;
Os fluxogramas documentam um processo a um nvel muito baixo,
praticamente numa base linha a linha de cdigo, o que lhes retira grande
utilidade uma vez que os analistas necessitam de especificaes fceis
de actualizar e os designers necessitam de uma descrio com um nvel
de abstraco mais elevado.
Anlise Estruturada
59

Assim, apesar desta tcnica ser pouco utilizada, deve ter-se em conta as
seguintes restries na utilizao de fluxogramas:
restringir a utilizao de fluxogramas modelao interna de processos;
restringir a utilizao de fluxogramas combinao aninhada de smbolos
equivalentes a estruturas de controlo da programao estruturada.


Smbolos de fluxogramas equivalentes a estruturas de controlo da
programao estruturada

SEQUNCIA SELECO REPETIO

Enviar Carta


Se me sair o totoloto
compro um BMW, seno
compro uma bicicleta


Tocar a campainha 3
vezes

P1
P2
P3
P1 - Colocar o papel
no envelope
P2 - Fechar o envelope
P3 - Colar o selo
Totoloto ?
Comprar
BMW
No Sim
Comprar
bicicleta
3 vezes ?
+1 vez
No
Sim
Anlise Estruturada
60
Diagramas de Nassi-Shneiderman
Os diagramas de Nassi-Shneiderman foram introduzidos como uma tcnica de
elaborao de fluxogramas estruturados.

Diagrama de Nassi-Shneiderman tpico


Componentes dos diagramas de Nassi-Shneiderman

COMPONENTE REPRESENTAO

V =Quant * Preo
Comiss =perc * V


Representam frase declarativa ou um
bloco de frases sequenciais

Va =X Va =- X
X <0
V F


Representam estruturas de seleco

Total =Total +i
Totq =Totq +i^2
PARA i =1 at N


Representam estruturas de repetio
Anlise Estruturada
61
Os diagramas de Nassi-Shneiderman orientam-se por blocos sendo mais
organizados, mais estruturados e mais compreensveis do que fluxogramas.
Contudo, para alm de ser necessrio elaborar um grande nmero de esquemas
no triviais, estes esquemas no introduzem grande valor acrescentado. De
acordo com o proferido por muitos analistas, estes diagramas correspondem a
Linguagem Estruturada com caixas volta.


Exemplo de diagrama de Nassi-Shneiderman
PARA i =1 at N - 1
mximo =A[N]
PARA j=i +1 at N
Trocar A[i] com A[j]
A[i] >A[j]
V F
soma =soma +A[i]
soma =soma +A[N]




A utilizao de fluxogramas e diagramas de Nassi-Shneiderman no
abenoada por muitos analistas de sistemas. Contudo, existem estudos que
comprovam a preferncia deste tipo de ferramentas por parte de estudantes de
programao, como um mecanismo de aprendizagem. Se os estudantes preferem
estas representaes, natural supor que os utilizadores tambm as prefiram.

Anlise Estruturada
62
Comparao entre as vrias tcnicas de mini-especificao
TCNICA PRINCIPAIS VANTAGENS
Linguagem
Estruturada
Estruturada
Abstracta
Verstil (+ou - detalhes)
Curva de aprendizagem mnima para analista
Abrangente
Convertida facilmente em programa
Pr/Ps Condies
Fornece perspectiva do assunto
Alta abstraco
Boa entrada para designer/programador
Facilmente mantida
Tabelas e rvores
de Deciso
Grficas e facilmente entendidas
Alta abstraco
Exaustivas
Facilmente mantidas
Tratam conjuntos complexos de decises e aces
Fluxogramas
Grfica
Correspondncia com cdigo subjacente
Diagramas de
Nassi-Shneiderman
Estruturada
Grfica
Convertida directamente em programa
Alguma versatilidade na especificao de detalhes
(devido a orientao por blocos)
Anlise Estruturada
63

TCNICA PRINCIPAIS DESVANTAGENS
Linguagem
Estruturada
Tende a se parecer com cdigo
Curva de aprendizagem elevada para utilizador
Alguma dificuldade de manuteno
Pr/Ps condies
Utilizao limitada
Curva de aprendizagem moderada tanto para o
analista como para o utilizador
Tabelas e rvores
de Deciso
Utilizao especfica e limitada
Necessitam de explicao textual
Fluxogramas
Trabalhosa
Presta-se utilizao de programao no estruturada
Muito difcil de manter actualizado se se alterarem
detalhes de especificao ou de desenho
Diagramas de
Nassi-Shneiderman
Trabalhosa
Curva de aprendizagem moderada
Difcil de manter actualizada se se alterarem detalhes
de especificao ou de desenho.

CRITRIOS DE SELECO DE TCNICAS DE ESPECIFICAO
natureza de cada processo a especificar, o que poder conduzir utilizao de
vrias tcnicas;
facilidade de comunicao com utilizador;
utilidade da especificao produzida no s para o analista como para o
designer/programador;
tipo de aplicao que est a ser construda;
facilidades proporcionadas pela ferramenta CASE (Computer Aided Software
Engineering) que est a ser utilizada.