Académique Documents
Professionnel Documents
Culture Documents
Valente de Oliveira
Diagrama de fluxo de dados uma das mais usadas ferramentas (e h mais tempo) de modelao funcional de sistemas.
Sinnimos: - DFD - Diagramas de bolhas (ou bolas); - Modelo de processos (ou de funes) - Diagrama de fluxo de trabalho
Um DFD pode ser entendido como uma rede que ilustra como circulam os dados no interior de um sistema.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 1
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 2
Componentes de um DFD
Os DFD baseiam-se no princpio de que a funcionalidade de um sistema pode ser representada como uma rede que combina 4 componentes fundamentais; a saber: Processos (ou bolhas ou bolas) Transforma os fluxos de entrada em fluxos de sada. Cada processo tem um nome e um nmero nico.
Arquivos Reservatrios ou contentores para os dados existentes no sistema (e.g., ficheiros, pastas de documentos, bases de dados). Cada arquivo tem um nome nico.
' & # "!$%
http://w3.ualg.pt/~jvolivei/ep/ep.html
# $"!
20-10-2000 / EP / DFD - 3
Fluxo de dados Modelam a passagem de dados. A seta indica o sentido do fluxo e tem o nome do fluxo associado.
' 210
http://w3.ualg.pt/~jvolivei/ep/ep.html 20-10-2000 / EP / DFD - 4
28@@ 78 X4 A9 5
28@@ 78 X4 A9 5
V A9 5 @28@@ 78 64
28@@ 78 64 A9 5
V A9 5 R8U@ 78 64 3 W
28@@ 78 64 A9 5
V A9 5 U8R@ 78 HF
SSADM
Aktas
V A9 5 @)8@U 78 X4
http://w3.ualg.pt/~jvolivei/ep/ep.html
Gane/ Sarson
Yourdon/ DeMarco
Notao
Diversidade de notaes
Processos
Arquivos
20-10-2000 / EP / DFD - 5
S @3
Entidades
J. Valente de Oliveira
Convenes adicionais
Y Y Y Y
A mesma entidade poder ser desenhada mais do que uma vez. Exemplos:
OU
5 A @28@Q ` 5 A @28@Q ` 5 A @28@Q ` 5 A @28@Q `
**
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 6
)8@@ 78 64 A9 5
* **
)8@@ 78 64 A9 5
28@@ 78 X4 A9 5
28@@ 78 X4 A9 5
Operadores lgicos:
* - conjuno (a e b);
b p
O - ou inclusivo (a ou b ou ambos)
http://w3.ualg.pt/~jvolivei/ep/ep.html
)#
p w u s x p q ph f d eq yx$@de%i@rc b
*
20-10-2000 / EP / DFD - 7
p w u s p q ph f d rq yxXvtrrigec
$ #
Decomposio (Levelling)
DFD de sistemas pequenos so normalmente fceis de construir. Para sistemas no triviais, o nmero excessivo de processos levanta problemas de interpretao e desvaloriza os mritos dos DFD.
Em sistemas de alguma complexidade, os DFD so organizados em nveis. Um DFD de um dado nvel da hierarquia contm uma explicao funcional mais detalhada de um processo na hierarquia superior. A decomposio consiste na subdiviso de um DFD de alto nvel numa hieraquia de DFD.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 8
Convenes de decomposio
Cada processo num dado nvel pode ser expandido (explodido) para se tornar num novo DFD;
Cada processo de um nvel inferior est relacionado com o nvel superior e identificado por um nmero composto (e.g., 2.1.3);
Todos os fluxos de dados que entram e saem do nvel superior devem aparecer no nvel inferior (validao vertical);
Processos que, pela sua simplicidade, no so expandidos so denominados processos primitivos ou primitivas funcionais;
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 9
3. Seleccionar um ponto de partida para o projecto. Comear a desenhar os fluxos que so necessrios para ir desde uma entrada at uma sada, partindo: - da entrada para a sada; - da sada para a entrada; - ou partindo do centro.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 10
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 11
10.
Rever a consistncia do DFD. Refazer, se necessrio. Validao vertical: os fluxos que entrem e saem de um processo, devem entrar / sair no DFD que resulta da exploso desse processo. Validao horizontal: todo o que entra num processo utilizado e tudo o que sai desse processo foi produzido.
11. Verificar, preferencialmente com o utilizador, se o DFD representa o sistema. Refazer, se necessrio.
12. Depois de estabelecido um DFD explodir cada processo, se necessrio. Repetir a decomposio at obter o detalhe suficiente.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 12
http://w3.ualg.pt/~jvolivei/ep/ep.html
Processos com nomes ambguos revelam falta de conhecimento sobre o sistema (ex. manipulao de entrada, gera sada);
Fluxos de dados com nomes como items de entrada, ou vrios dados revelam um conhecimento pobre do sistema;
Primitivas funcionais com grande nmero de entradas e sadas indicam a necessidade de decompor o DFD;
20-10-2000 / EP / DFD - 13
Erros frequentes
Os DFD no so fluxogramas;
No vlido ter mltiplos fluxos da mesma origem para o mesmo destino; No so permitidos processos apenas com entradas; Processos s com sadas so suspeitos e a maior parte das vezes incorretos. Uma excepo: gerador de nmeros aleatrios;
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 14
Dvidas frequentes
1. Como se sabe quantos nveis deve ter um DFD? O nmero suficiente para qualquer DFD do ltimo nvel no ultrapassar a dzia de processos. O nmero suficiente para que os processos do ltimo nvel tenha uma especificao suficientemente simples.
http://w3.ualg.pt/~jvolivei/ep/ep.html
c do m w c l d j i d g d g g c f d Xq qpnrsekrrhevU0eeh !
Exemplo: N de processo / DFD = 7 (constante) Nvel 0 1 2 3 4 5 6 7 8 N de processos 7 49 343 2 401 16 807 117 649 823 543 5 764 801 40 353 607
3. Todas as partes do DFD devem ser expandidas com o mesmo detalhe? No. Cada parte deve ser expandida apenas com o detalhe necessrio. Por existir o processo 3.4.5 no necessrio que exista o 3.2.1.
4. Como apresentar os vrios nveis ao utilizador? Utilizadores diferentes estaro interessados em nveis diferentes. Para mostrar todos os nveis, comear do geral e detalhar de seguida.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 16
1. Ajudam o analista a: - Resumir a informao acerca de como funciona o sistema; - Compreender os componentes principais do sistema e a definir funes reutilizveis; - Compreender as interdependncias entre subsistemas; - Desenvolver eficientemente uma aplicao
2. Um DFD uma boa ferramenta de comunicao entre utilizadores e analistas. Esta comunicao reconhecida como vital.
3. Permite obter uma melhor estimativa dos recursos envolvidos no projecto global, em funo dos recursos envolvidos em cada um dos processos.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 17
Especificao de Processos
http://w3.ualg.pt/~jvolivei/ep/ep.html
| | |
Os processos primitivos so detalhados usando um dos muitos mtodos para especificao de processos.
Alguns exemplos: - Subconjuntos do Portugus; - Pseudo-cdigo; - Tabelas de deciso; - rvores de deciso; - Pr-ps condies; - Fluxogramas; - Diagramas de Nassi-Shneiderman
20-10-2000 / EP / DFD - 18
O Portugus compacto lembra o Portugus narrativo mas estruturalmente equivalente ao Portugus estruturado. O Portugus compacto til para apresentar lgica moderadamente complexa desde que se tenha a certeza que no surgem ambiguidades e quando a comunicao com o utilizador importante.
http://w3.ualg.pt/~jvolivei/ep/ep.html
1 "$!"~ ' } } }
# & ' "0$"!r"!"!$0$X$ ) !$ ! ' & "!% ! $'! ' & "!% '!& % ! '! ' ' & "!&% % $ ! %!$$
# n)!" &!$0'!&!'!$%0 !"!%! & ' & 1 ' & ' vr%"!Xn&" n0" 2 # $"! $"!"! ' ' & ! 0 )! !)"!! !))" # & & # # !" $n#$" !)&n"$nn"%!"$&$! # ' # n""!&!$n"!%"!"Xn&"
"0$
http://w3.ualg.pt/~jvolivei/ep/ep.html
Portugus Compacto
Portugus Estruturado
um dos mtodos de especificao mais usados; um subconjunto do Portugus que omite adjectivos; advrbios; frases compostas ou complexas; todos os modos verbais excepto imperativo ou infinitivo; a maioria dos sinais de pontuao.
Pretende ser conciso, preciso e eliminar tanto quanto possvel ambiguidades. As convenes utilizadas ficam ao critrio de quem as utiliza.
Em geral, o Portugus estruturado resulta numa linguagem com um conjunto limitado de frases cujas palavras so as geralmente aceites em projecto e programao estruturada. Isto , possui as estruturas que permitem a especificao de qualquer algoritmo: aces elementares, sequncias, seleces e iteraes.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 21
Aces elementares Aces primitivas ou bsicas que indicam o que deve ser feito. So expressas como expresses imperativas (ou infinitivas).
'"!$v1 ! '!0$0 ' ' '!0$0 ' ' & !$0
20-10-2000 / EP / DFD - 22
Seleces Permitem seleccionar exactamente uma alternativa de um conjunto de alternativas. So habitualmente representadas na forma:
$ ! & !" &
http://w3.ualg.pt/~jvolivei/ep/ep.html
& ' ' ' !!0$0 !0$0 ' ' ' !0$0 ' ' '
http://w3.ualg.pt/~jvolivei/ep/ep.html
% ( '
ou
Seleces (cont.)
" "!
Vantagens suficientemente preciso e conciso, permitindo uma leitura razovel para especificaes de reduzida complexidade. O vocabulrio flexvel e adaptvel.
p q w i j i f pf d d w i w p d g g c f d %ep ee0rrDU!X%p ef $!gg%rh
Desvantagens No um mtodo de especificao formal. Um processo complexo pode ter uma especificao de vrias pginas.
http://w3.ualg.pt/~jvolivei/ep/ep.html
w pf d $TrTf s d g q p g g c f d g d f h p i g d g d q %dergvUreh grTeX@X%e%grrrTf 0rp x$rrdUd v Uxh z XT%Tf m $TrTf g q d c w pf d w pf d { dc $U m @xh dc em @xh v c gif xri m Th$@i e%d i f df p x x XTe$p@X dj0eeh j%if d dfh i 6P w pf d Xm XT%Tf
20-10-2000 / EP / DFD - 24
w pf d $TrTf s g d f h p i c q p f o yjx u eD$Ue@$regg xw t x d d h pi 0gep $qrrUdXTfe$@X vUxh z XT%Tf m $TrTf d c w pf d w pf d { dc $U m @xh em @xh v dc c @f xri m d xiyfXdTe$@X fh p i f u gedThpUi$egcXqrrDfgg xw $dTh p@X dj0eeh j%if dm dTThXp@iX p o f i x f 6P w pf d Xm XT%Tf u eTU$r@X%eDgg xw %ep ee0rrDU!X%p ef $!gg%rh g dfh p i c q pf o p q w i j i f pf d d w i w p d g g c f d
http://w3.ualg.pt/~jvolivei/ep/ep.html
Pseudo-cdigo
O Portugus estruturado est mais prximo do Portugus narrativo e o Pseudo-cdigo est mais prximo das linguagens de programao.
Tabelas de deciso
As tabelas de deciso so uma representao de aces com a indicao das condies em que devem ser efectuadas. Uma tabela de deciso tem 4 quadrantes:
' n$ ' '!$
20-10-2000 / EP / DFD - 26
Lista de todos as condies possveis que surgem dentro de um processo; lista de todas as aces possveis que podem surgir dentro do processo; lista das diferentes combinaes de condies possveis.
' v0)'! ' !n ' !!$0
http://w3.ualg.pt/~jvolivei/ep/ep.html
Tabelas de deciso com entradas limitadas S admitem indicadores binrios no quadrante das regras. Exemplo: Processo Valida Encomenda
Crdito suficiente Pronto pagamento Acordo especial Aceita encomenda Rejeita encomenda
1 2 3 4 S N N N - S N N - - S N x x x x
Uma das vantagens deste tipo de tabela que facilitam uma verificao de completude.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 27
Tabelas com entradas estendidas Admitem valores mltiplos no quadrante das regras.
1 N -
2 S 0-24 0 x
3 4 S S 25-50 51-100 5 x 10 x
Tabelas com entradas mistas Admitem valores mltiplos no quadrante das decises
2 N S ordinrio
3 S ordinrio
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 28
As alternativas so mostradas lado a lado; Mostram o relacionamento causa/efeito; Facilitam a verificao da consistncia e da completude.
Utilidade
So teis na descrio de processos que produzem aces baseadas em decises complexas; So teis na anlise de regras complexas e processos de tomada de deciso.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 29
rvores de deciso
As rvores de deciso lm-se da esquerda para a direita, comeando da raiz, de onde saem todos ramos. Os pontos de derivao representam uma deciso acerca de uma condio.
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 30
Pr/Ps Condies
Uma forma de dizer qual a transformao efectuada pelo processo sem explicitar o algoritmo utilizado.
Utilidade: 1. Quando o utilizador tem dificuldade em descrever o algoritmo que utiliza; 2. Quando o analista quer deixar a escolha do algoritmo para uma fase posterior.
http://w3.ualg.pt/~jvolivei/ep/ep.html
g g f g j i d &2 "2$j 10d@rd d ge )r (g r gg U$vf d d g % gXf r j d d g f g g g d & ' %@$ftg@ed d%U#"$!r g jri g U$vf d d r @Xvf
20-10-2000 / EP / DFD - 31
Fluxogramas
3 3
Terminador:
Deciso:
Entrada/Sada:
Processamento:
Conector:
Ponte de ligao:
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 32
Diagramas de Nassi-Shneiderman
4 4
Sequncia:
Repetio:
http://w3.ualg.pt/~jvolivei/ep/ep.html
d r6
7 d 6 @ 98 d r Av 5 6n
7 d 6 f e 5
7 { d 6 f e%g 5
7 8 d 6 f De%g 5
BB CCB
7 { d 6 f e%g 5
yj@
Deciso:
7 d 6 @ 98 d e "v 5
7 d 6 f e%g 5
Concluses
http://w3.ualg.pt/~jvolivei/ep/ep.html
E E E E E
Apresentaram-se alguns mtodos de especificao de processos primitivos. Estas tcnicas so teis tambm noutros contextos.
Portugus
Portugus estruturado poder ser vantajoso quando a especificao apresenta combinaes de repeties ou iteraes.
20-10-2000 / EP / DFD - 34
Concluses (cont.)
http://w3.ualg.pt/~jvolivei/ep/ep.html
F F
As tabelas de deciso podero ser vantajosas quando: a) Existem combinaes complexas de condies, aces ou regras, ou b) necessrio um mtodo que ajude na deteco de redundncias e contradies;
As rvores de deciso podero ser vantajosas quando: a) A sequncia de condies e aces crtica; b) Nem todas as condies so relevantes para todas as aces.
20-10-2000 / EP / DFD - 35
Referncias
I. T. Hawryszkiewycz, Introduction to Systems Analysis and Design (third edition), Prentice Hall, 1994. Kenneth E. Kendall and Julie E. Kendall, Systems Analysis and Design, Prentice Hall International Editions, (Englewood Cliffs, 1992) P. Layzell and P. Loucopoulos, Systems Analysis and Development (third edition) Chartwell-Brat Student Text, 1989 Edward Yourdon, Modern Structured Analysis, Prentice Hall International Editions (Englewood Cliffs, 1989)
http://w3.ualg.pt/~jvolivei/ep/ep.html
20-10-2000 / EP / DFD - 36