Beruflich Dokumente
Kultur Dokumente
J. Valente de Oliveira
Modelação funcional:
Diagramas de Fluxo de Dados
Sinónimos:
- DFD
Um DFD pode ser entendido como uma rede que ilustra como
circulam os dados no interior de um sistema.
Componentes de um DFD
Arquivos
Reservatórios ou contentores para os dados existentes no
sistema (e.g., ficheiros, pastas de documentos, bases de dados).
Cada arquivo tem um nome único.
Entidades exteriores
Fornecem entradas ao sistemas (fontes) ou recebem dados do
sistema (terminadores). Existem fora da fronteira do sistema.
Fluxo de dados
Modelam a passagem de dados. A seta indica o sentido do fluxo
e tem o nome do fluxo associado.
Diversidade de notações
!
* &(+,% -% .0/2143()&(# "$# % &('() &(8 ":# % &('() &
Gane/
Sarson
Convenções adicionais
;
O cruzamento de linhas de fluxos deve ser minimizado.
;
Quando o cruzamento for inevitável, fazer o seguinte:
;
O mesmo arquivo poderá ser desenhado mais do que uma
vez.
;
A mesma entidade poderá ser desenhada mais do que uma
vez. Exemplos:
":# % &('() & ":# % &('() & "$# % &('()& "$# % &('()&
* *
OU
< 3() &(# < 3() &(# < 3() &(# < 3() &(#
** **
=
Operadores lógicos:
* - conjunção (a e b);
>
- ou exclusivo (a ou alternativamente b);
O - ou inclusivo (a ou b ou ambos)
F
?H@(BED
FGAFWNX@(IYKMON GAF
Q
>
P R
?A@CBED
FHGHFJILK:MON GHF SUT
V
Decomposição (“Levelling”)
Z
DFD de sistemas pequenos são normalmente fáceis de
construir.
[
Para sistemas não triviais, o número excessivo de processos
levanta problemas de interpretação e desvaloriza os méritos
dos DFD.
[
Em sistemas de alguma complexidade, os DFD são
organizados em níveis.
[
Um DFD de um dado nível da hierarquia contém uma
explicação funcional mais detalhada de um processo na
hierarquia superior.
[
A decomposição consiste na subdivisão de um DFD de alto
nível numa hieraquia de DFD.
\
Cada processo num dado nível pode ser expandido (explodido)
para se tornar num novo DFD;
\
Cada processo de um nível inferior está relacionado com o
nível superior e é identificado por um número composto (e.g.,
2.1.3);
\
Todos os fluxos de dados que entram e saem do nível superior
devem aparecer no nível inferior (validação vertical);
\
Os arquivos aparecem no nível em que são necessários e em
todos os níveis subsequentes;
\
Em cada DFD, o limite superior recomendado para o número de
processos é 7 ] 2.
^
Processos que, pela sua simplicidade, não são expandidos são
denominados processos primitivos ou primitivas funcionais;
^
Os processos primitivos são descritos usando um método de
especificação de processos.
_
Processos com nomes ambíguos revelam falta de
conhecimento sobre o sistema (ex. manipulação de entrada,
gera saída);
_
Fluxos de dados com nomes como “items de entrada”, ou
“vários dados” revelam um conhecimento pobre do sistema;
_
Cruzamento de fluxos indicam que é potencialmente
necessário decompor o DFD;
_
Primitivas funcionais com grande número de entradas e
saídas indicam a necessidade de decompor o DFD;
_
DFD complexos significam fracasso.
Erros frequentes
`
Os DFD não são fluxogramas;
`
Os fluxos de dados devem manter a sua semântica, i.e., não se
(sub)dividem;
`
Não existem ciclos iterativos entre processos;
`
Os processos não são activados por sinais de entrada;
`
Os fluxos de dados não podem começar em fontes e acabar em
terminadores;
`
Não é válido ter múltiplos fluxos da mesma origem para o
mesmo destino;
`
Não são permitidos processos apenas com entradas;
`
Processos só com saídas são suspeitos e a maior parte das vezes
incorretos. Uma excepção: gerador de números aleatórios;
Nível Nº de processos
0 7
1 49
2 343
3 2 401
4 16 807
5 117 649
6 823 543
7 5 764 801
8 40 353 607
1. Ajudam o analista a:
Especificação de Processos
|
Em geral, o detalhamento de um processo é feito por
explosão.
|
Os processos primitivos são detalhados usando um dos
muitos métodos para especificação de processos.
|
Alguns exemplos:
- Subconjuntos do Português;
- Pseudo-código;
- Tabelas de decisão;
- Árvores de decisão;
- Pré-pós condições;
- Fluxogramas;
- Diagramas de Nassi-Shneiderman
Português Compacto
n:QTnQT
n
Q
QTn nQn
UnQ
T
Q T
QQ
T
R ¡ ¢£U
£Q¤
¥¦ §¤U¨Q
T n
R
n:Q©
THv ª«
S Q¥QU¤¬¥¦Q®T
¦n
à ¡ T¦Ä
U:QUHQT
Português Estruturado
Å
É um dos métodos de especificação mais usados;
Å
É um subconjunto do Português que omite
- adjectivos;
- advérbios;
- frases compostas ou complexas;
- todos os modos verbais excepto imperativo ou infinitivo;
- a maioria dos sinais de pontuação.
Å
Pretende ser conciso, preciso e eliminar tanto quanto possível
ambiguidades.
Å
As convenções utilizadas ficam ao critério de quem as utiliza.
Å
Em geral, o Português estruturado resulta numa linguagem com
um conjunto limitado de frases cujas palavras são as geralmente
aceites em projecto e programação estruturada.
Acções elementares
Acções primitivas ou básicas que indicam o que deve ser
feito. São expressas como expressões imperativas (ou
infinitivas).
ÆÇ È
T
v
Sequências
Encadeamento de uma ou mais acções elementares.
Selecções
Permitem seleccionar exactamente uma alternativa de um
conjunto de alternativas. São habitualmente representadas na
forma:
¡ ÉÊQ
ËÌ
ÍË ÉÊÎ Ï Ì
¡ Ë ÉÊÎ Ï R Ì
Ð
¡
Selecções (cont.)
Ñ
Ñ TQ ÉÒQ
Ë Ì Ë ÉÊÎ Ï Ì
TQ ÉÒQ
Ë R Ì Ë ÉÊÎ Ï R Ì
Ñ
TQ ÉÒQ
ËÌ Ë ÉÊÎ Ï·Ì
Ð
Iterações
Define uma repetição limitada de uma sequência de acções.
ÍT ÉÊQ
ËÌ V ÉÒÎ ÏÌ
ou
ÉÊÎÏÌ
Ó
S ¬
ÉÊQ
ËÌ
Vantagens
É suficientemente preciso e conciso, permitindo uma leitura
razoável para especificações de reduzida complexidade.
B6dB6F:M mÙØ:Ú
Û2ÜÊÔÊÜ$ÝÞÜ
c
d P BEßj à ceD áAâNXjd à ã:i(FDeB6d:Ú
ä Ü BEc N d ÖAã i(FD
B6d mÙå ä iHN BE?Cæ
Dx?(çYd mÙèAé
ä Ü avêÒë
c
Dx?(çYd m
c {7ØÚ
B6dHB6FM m B6dB6F:M z Dx?7çLc d ì @7dHÖHGN FHgÚ
×
Ý í B6dHð GHdHgCÖdAgYÖã:i(F:DeB6dHgCÖ DedHf?7gLgCFHGAdgÚ
ëñ
s ï
Ü î îòÜ B6dHB6FM
Desvantagens
Não é um método de especificação formal.
ó
É mais restrito do que o Português estruturado e inclui
alguns detalhes de implementação.
B6dB6F:M mÙØ:Ú
Û2ÜÊÔÊÜ$ÝÞÜ
c
ã:i(F:D6B6d · m d P BEßj cà DeáAâNXjd à ã:i(F D
B6do MXN gCB,FHÖHG:?CÖAãi7FD
B6dAg uôÚ
ä Ü :ã c i(FDeB6d:õOBEN d mÙå ä iHN Bö?(æ
v
a Ò
ê ë Dx?(çYd mÙèAé
ä Ü
c
Dx?(çYd mc {7ØÚ
B6dHB6FM m B6dB6F:M z Dx?7çLd ì ã:i(FDeB6d:õ@7dHÖHGN FAgÚ
×
Ý ·
í ÷
ëñNOjJ
ð o MXN gCBFAÖHG?(ÖAãi7FD
B,dAg uôÚ
s ï
Ü î îòÜ B6dHB6FM
ó
A fronteira entre Português estruturado e Pseudo-código é
difusa.
Tabelas de decisão
ø
As tabelas de decisão são uma representação de acções com
a indicação das condições em que devem ser efectuadas.
ø
Uma tabela de decisão tem 4 quadrantes:
ù
Ï n
Ï ù
Ï
ù
Ï
Lista de todos as condições possíveis que surgem
dentro de um processo;
Ï
lista de todas as acções possíveis que podem surgir
dentro do processo;
n
lista das diferentes combinações de condições
possíveis.
ù
Ïv
indicadores das acções a executar
ú
Existem 3 variantes:
- Entradas limitadas;
- Entradas estendidas;
- Entradas mistas
1 2 3 4
Crédito suficiente S N N N
Pronto pagamento - S N N
Acordo especial - - S N
Aceita encomenda x x x
Rejeita encomenda x
1 2 3 4
Crédito aprovado N S S S
Quandidade - 0-24 25-50 51-100
% desconto 0 5 10
Aceita encomenda x x x
Rejeita encomenda x
1 2 3
Empregado assalariado N N S
Horas trabalhadas > 40 S S -
û
As alternativas são mostradas lado a lado;
û
Mostram o relacionamento causa/efeito;
û
Facilitam a verificação da consistência e da completude.
Utilidade
û
São úteis na descrição de processos que produzem acções
baseadas em decisões complexas;
û
São úteis na análise de regras complexas e processos de
tomada de decisão.
Árvores de decisão
Pré/Pós Condições
ü
Uma forma de dizer qual é a transformação efectuada pelo
processo sem explicitar o algoritmo utilizado.
ü
Utilidade:
Fluxogramas
!
Os fluxograms representam lógica procedimental de forma
não estruturada.
!
Componentes essenciais:
Terminador:
Decisão:
Entrada/Saída:
Processamento:
Conector:
Ponte de ligação:
Diagramas de Nassi-Shneiderman
"
Os diagramas de Nassi-Shneiderman foram introduzidos como
fluxogramas estruturados.
"
Componentes essenciais:
# ×ÒfCç$AdW{%
Sequência:
# ×ÒfCç$Ad¨è%
# Õvd&'( ç$Ad%
ä (Oj a
Decisão: $Hd
# ×ÒfCç$AdW{% # ×ÒfYç$Ad¨è%
*+*+*
# ×ÒfCç$Ad,&%
Conclusões
Conclusões (cont.)
Referências
Kenneth E. Kendall and Julie E. Kendall, Systems Analysis and Design, Prentice
Hall International Editions, (Englewood Cliffs, 1992)