ENGENHARIA DE
SOFTWARE
UNIDADE 4 – Fase de Projeto (Modelagem de Dados)
(Aula 5 – Diagrama de Fluxo de Dados)
Prof. Ivan Nunes da Silva
2
1. Introdução
z
Como vimos na aula anterior, a fase de análise
de software é dividida em duas, ou sejam:
– Análise de Sistemas. – Análise de Requisitos.
1.1 Revisão (1)
Análise
Projeto
Codificação
Teste
Manutenção
3
1. Introdução
1.1 Revisão (2)
zAnálise de Sistemas:
– Se concentra em todos os elementos do sistema, não apenas no software.
– Objetivos:
•Identificação de Necessidades.
•Investigação de Viabilidades: Técnica, Econômica, Legal e Alternativas.
•Realização de Análise Econômica, Análise Técnica, Restrições de Prazo e Custo, etc.
zAnálise de Requisitos:
– Se concentra apenas no software.
– Objetivos:
•Rever elementos problemáticos utilizando a especificação gerada durante a fase de análise de sistemas.
•Refinar os dados de entrada/saída.
•Gerar “DOCUMENTO DE ESPECIFICAÇÃO DE REQUISITOS – Modelo IEEE”.
4
2. A Fase de Projeto
2.1 Introdução
Análise
Projeto
Codificação
Teste
Manutenção
z
É a segunda etapa de toda a fase envolvida
com o desenvolvimento do software.
z
É a primeira dentre as três etapas técnicas do
desenvolvimento do software (Projeto, Codificação,
Teste).
5
2. A Fase de Projeto
2.2 Aspectos de Projeto de Software
zÉ iniciado assim que os requisitos de software tenham sido
analisados e especificados.
zO projeto fornece representações do software que podem ser
avaliadas quanto à qualidade.
zO projeto de software serve de base para todos os passos de
engenharia e manutenção que se seguirão.
zSem o projeto do software, têm-se os seguintes riscos:
–Construção de sistemas instáveis.
–Probabilidade de falhas quando pequenas mudanças são feitas.
–Realização de teste torna-se difícil.
–Qualidade do software não pode ser testada.
6
2. A Fase de Projeto
2.3 Projeto de Software e Qualidade:
z
Diretrizes Para o Projeto de Software com
Qualidade:
– Exibir uma organização hierárquica que faça uso
inteligente do controle entre os componentes do software.
– Deve ser logicamente dividido em componentes que
executem funções e subfunções específicas (Modular).
– Deve conter uma representação distinta e separável de
dados e procedimentos.
– Deve levar a módulos (sub-rotinas ou procedimentos) que
apresentem características funcionais independentes.
– Deve levar a interfaces que reduzam a complexidade de
7
2. A Fase de Projeto
2.4 Projeto Orientado ao Fluxo de Dados
z
Abordagem de Projeto Orientado ao Fluxo de
Dados tem as Seguintes Vantagens:
–Oferece uma abordagem sistemática p/ derivação de uma estrutura de programa.
–Permite uma visão global do software e de seu projeto arquitetural.
–Procura representar ou criar um modelo lógico de fluxo de informação (dados e processos de controle) do sistema a desenvolver.
–Identifica módulos e respectivas interdependências.
–Traduz requisitos resultantes da análise numa solução de projeto de software.
–A abordagem de projeto orientado ao Fluxo de Dados é baseada nos seguintes agentes:
• Diagrama de Fluxo de Dados (DFD).
• Diagramas Entidade-Relacionamento (DER).
• Especificação de Processos (EP).
• Dicionário de Dados (DD).
8
3. Diagrama de Fluxo de Dados (DFD)
3.1 Definição de DFD
z
É um modelo que permite representar o
sistema como uma rede de processos:
– Salienta as funções que precisam ser implementadas e
os fluxos de dados manipulados por estas funções.
z
Técnica de análise gráfica que procura
representar o fluxo de informação:
– Ressalta as sucessivas transformações que sofrem ao
longo dos diferentes processos do sistema.
z
Ferramenta gráfica que transcreve a lógica dos
procedimentos do sistema em estudo:
– Descreve o sistema com o nível de detalhe que se
9
3. Diagrama de Fluxo de Dados (DFD)
3.2 DFD Deve Representar:
z
Funções do sistema (Processos/Serviços).
z
Interações entre as funções do sistema.
z
Transformações que o sistema deve realizar.
z
As fontes de informação.
z
O destino dos resultados.
z
Dados mantidos pelo sistema.
10
3. Diagrama de Fluxo de Dados (DFD)
3.3 Dupla Aplicação do DFD
z
Aplicação em Nível Alto:
–
Utilizados para mostrar os agentes e os
eventos de um sistema, ilustrando os fluxos
e as transações que são resultantes da
operação deste sistema, sejam elas
realizadas em papel ou em computador.
z
Aplicação em Nível Baixo:
–
Utilizados para representar programas ou
módulos destes, bem como o fluxo de dados
entre estas rotinas.
11
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (1)
z
Processos (Definição)
– Elemento transformador de informações que opera
dentro dos limites do sistema a ser modelado.
– Corresponde a uma função ou procedimentoa ser
executado pelo sistema.
– Caracteriza-se por transformar entradas em saídas.
– Representado por círculos:
Processo
– O nome do processo deve estar
relacionado com uma função.
– Pode-se numerar os processos para
fins de refinamento.
– Identificação Æ Número + Verbo
Infinitivo + Objeto.
12
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (1)
z
Processos (Exemplos)
1.
Ajustar Temperatura
– Processo responsável pela função
de ajustar a temperatura de um processo industrial em função do seu valor de referência.
2.
Validar Pedido
– Processo responsável pela função
de validar um pedido em função dos dados do cliente e do estoque.
– Evitar nome vagos: “Processar
13
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (2)
z
Item de Dado ou Fluxo (Definição)
– Usado para descrever movimento de informação de um
componente do sistema para outro.
– Representarão os próprios argumentos das funções
e procedimentos.
– Traduz a relação entre os diferentes processos do
sistema.
– Pode estar descrevendo o fluxo de um único valor ou
um conjunto de valores.
– Representado por setas:
– Nome deve dar uma indicação
sobre o tipo de informação que está sendo enviada.
Item de Dado
14
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (2)
z
Item de Dado ou Fluxo (Exemplo)
1. Ajustar Temperatura Valor_Ajust Valor_Temp Valor_Ref
15
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (3)
z
Entidade Externa (Definição)
– Entidade externa que interage com o sistema.
– Estão fora dos limites do software.
– Elementos que geram (fontes) ou recebem (destinos)
informações.
– Os fluxos conectando a entidade aos processos
representam a interface entre o sistema e o ambiente.
– Representado por retângulos:
Entidade Externa
– Exemplos de nomes de entidades
externas:
•Nome de seção ou departamento.
•Nome de pessoas ou instituição.
•Nome de software, hardware ou procedimentos externos.
16
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (3)
z
Entidades Externas (Exemplos)
Sensor de Temperatura Valor_Temp SPC CPF_Cliente Status_Crédito
A entidade externa “Sensor de Temperatura” envia o dado Valor_Temp para o sistema.
A entidade externa “SPC” de posse do CPF_Cliente fornece
a informação sobre o Status_Crédito
17
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (4)
z
Depósito de Dados (Definição)
– Indicam os repositórios de dados que são armazenados
para serem usados em um ou mais processos.
– Entidade utilizada para guardar informações.
– Pode estar representando fichários, buffers, arquivos,
banco de dados, etc.
– Representado por duas barras horizontais paralelas:
– Um bom nome para o depósito de
dados são substantivos no plural.
Depósito de Dados
18
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (4)
z
Depósito de Dados (Exemplos)
Fluxo saindo do depósito significa leitura de informações.
Produtos
Info_Produto
Clientes
Info_Cliente
Fluxo entrando no depósito significa escrita de informações.
19
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (5)
z
Elementos Para Sistemas em Tempo Real:
Dupla SetaÆ Item de dado que entra (entrada) ou que sai (saída) de um processo em tempo real, o qual é alterado continuamente.
Seta PontilhadaÆ Um item de status ou evento (controle, interrupção, etc.), podendo assumir também valor discreto ou booleano.
Depósito de Controle
Barras PontilhadasÆ Repositório de itens de controle para processamento em tempo real.
Processo de Controle
Círculo PontilhadoÆ Realiza funções de controle de processos (eventos). Coordenam e
sincronizam as atividades de outros processos.
20
3. Diagrama de Fluxo de Dados (DFD)
3.4 Componentes do DFD (5)
21
3. Diagrama de Fluxo de Dados (DFD)
3.5 Diretrizes de Construção (1)
zEscolher nomes significativos para os processos, fluxos,
depósitos e terminadores.
zNumerar todos os processos.
zRefazer o DFD tantas vezes quantas forem necessárias até
obter um nível de detalhamento satisfatório ao sistema desenvolvido. A estética é também importante.
–Cada nível deve ter em torno de 7 processos.
–Sistema de Pequeno Porte Æ 2 a 3 níveis.
–Sistema de Médio Porte Æ 3 a 6 níveis. –Sistema de Grande Porte Æ 5 a 8 níveis.
zCertificar-se de que o DFD seja internamente consistente,
além de manter consistência também com os outros DFDs.
zEvitar DFDs complexos demais.
22
3. Diagrama de Fluxo de Dados (DFD)
3.5 Diretrizes de Construção (2)
23
3. Diagrama de Fluxo de Dados (DFD)
3.5 Diretrizes de Construção (3)
z
Ligações Possíveis
– Entre Processos. P1 P2 P1 D1 P1 E1 – De um processo para um depósito de dados e vice-versa. – De um processo parauma entidade externa e vice-versa.
24
3. Diagrama de Fluxo de Dados (DFD)
3.5 Diretrizes de Construção (4)
z
Ligações Não Permitidas
– Entre entidades externas
– Entre depósitos de
dados.
– De uma entidade externa
para um depósito de dados e vice-versa. E1 E2 D2 D1 E1 D1
25
3. Diagrama de Fluxo de Dados (DFD)
3.5 Diretrizes de Construção (5)
z
Organização Por Níveis
–
Organiza-se um DFD por níveis de forma a que
um nível possa apresentar mais informações
que o nível anterior.
–
Inicia-se pelo primeiro nível (Nível 0), o qual é
designado por “Nível de Contexto”.
–
O nível de contexto deve possuir somente um
processo, os fluxos de informações entre as
entidades externas e, eventualmente, arquivos
externos ao sistema.
26
3. Diagrama de Fluxo de Dados (DFD)
3.5 Diretrizes de Construção (6)
27
3. Diagrama de Fluxo de Dados (DFD)
3.6 Exemplos de DFDs
z
Software “SafeHome”
–
DFD de Nível Zero (Nível de Contexto)
28
3. Diagrama de Fluxo de Dados (DFD)
29
3. Diagrama de Fluxo de Dados (DFD)
z
Software “SafeHome” (DFD - Nível 2)
– Refinando o Processo “Monitorar Sensores”
30
3. Diagrama de Fluxo de Dados (DFD)
z
Software “Comércio de Livros” (DFD - Nível 1)
Obs. Neste diagrama, os retângulos com vértices arredondados são os depósitos de dados, similar às duas barras horizontais paralelas.