Você está na página 1de 67

Análise Estruturada

Academia da Força Aérea

Prof. João Araújo


Análise Estruturada (Tradicional)
 A análise estruturada é uma bordagem sistemática para fazer
a análise de um sistema de modo a produzir a uma
especificação funcional.
 A especificação funcional define as funções e estruturas de
dados que constituem o sistema.
 A análise estruturada usa técnicas:
• gráficas, simples, modulares, complementares
 É necessário que o analista saiba comunicar com os clientes
e garantir clareza de ideias
Modelos de Análise
 Modelo essencial do sistema
• Indica o que o sistema deve fazer e que dados
necessita para satisfazer os requisitos do utilizador.
Define o sistema num ambiente ideal.
 Modelo de implementação
• Apresenta a solução de implementação do sistema
ideal, definindo os limites de automatização, as
interfaces do utilizador com o sistema e algumas
características operacionais relevantes. Define o
sistema num ambiente real.
Vantagens do Modelo Essencial
 Ganhar tempo devido à construção de menos modelos.

 Dar uma visão dinâmica integrada de todo o sistema.

 Facilitar a identificação das funções que compõem o sistema.

 Facilitar a construção de uma solução ideal.

 Derivar uma solução a partir de uma solução ideal


Modelo Ambiental

 O modelo ambiental descreve o ambiente no qual o sistema


se insere, ou seja, descreve o contexto do sistema
 Componentes do modelo ambiental:
 Descrição dos objectivos

 Diagrama de Contexto

 Lista de Eventos
Descrição dos Objectivos
 É uma descrição textual concisa do propósito do
sistema
 É voltada para aqueles que não estão envolvidos
directamente com o desenvolvimento do sistema
 Ex.: Altos escalões
 É constituída por uma ou mais sentenças
 Exemplo:
 “O propósito da Amazon Bookstore é gerir
electronicamente todos os detalhes dos pedidos de livros,
envio, cobrança”
Diagrama de Contexto

 Componentes:
 Entidades externas (ou terminators)
 Ficheiros ou bases de dados compartilhados
entre o sistema e o ambiente
 A interface entre o sistema e o ambiente
 Dados que o sistema recebe do ambiente
 Dados que o sistema manda para o ambiente
 Um processo que representa o sistema
Diagrama de Contexto (Exemplo)
pagamento

pedido de livro Cliente

recibo

Amazon
Guia de remessa
Bookstore-
Sistema de
gestão livraria
eletrónica Crédito
Relatório
de
vendas recibo

Departamento
Relatórios de
Direcção contabilidade
Lista de Eventos
 Mostra todos os estímulos que ocorrem a a partir do ambiente e aos quais
o sistema deve responder.
 Os eventos classificam-se em:
• Orientados a fluxo: quando transportam dados;
• Temporais: quando acontecem periodicamente; é como se o
sistema tivesse um relógio interno. Ex.: Recibos devem ser
gerados às 16:00 horas
• Condicionais: quando acontecem devido à verificação de uma
condição pelo sistema. Ex: Se o stock for baixo emitir nota de
compra ao fornecedor
• De controlo  assíncrono, imprevisíveis
 Ex.: interrupções
 Mais utilizado em sistemas de tempo real
 Sinalizar o sistema quando uma acção imediata é necessária
Construção de uma lista de eventos:

 Identificação dos eventos do ponto de vista do


ambiente
 Examinar cada entidade externa e verificar os
efeitos de suas acções no sistema
 Incluir situações de excepção
 A lista de eventos pode ser construída antes ou
depois do diagrama de contexto, mas é preferível
que seja construída antes.
Lista de Eventos vs. Diagrama de
Contexto
 Eventos por fluxo:
 originam pelo menos um fluxo de entrada no sistema
 podem ou não originar fluxos de saída

 Eventos temporais e condicionais


 não originam fluxos de entrada no sistema

 podem ou não originar fluxos de saída

 Eventos de controlo
 não originam fluxos de dados de entrada no sistema

 podem ou não originar fluxos de saída


Exercício 1 (1)
Uma empresa de transportes, cujo serviço é transportar mercadorias no país,
pretende automatizar a sua área de gestão de veículos. O director da
empresa descreve o sistema da forma que se segue.
Sempre que se compra um veículo regista-se no sistema (as suas
características são dadas ao sistema pelo departamento de compras). O
veículo só entra em serviço quando chega uma notificação de seguro da
companhia seguradora. Esta notificação contém o número de apólice, tipo de
seguro com a sua sua descrição, a identificação da seguradora (código,
nome, morada e telefone), e ainda os dados referentes ao veículo. Toda esta
informação deve ser inserida no sistema.
Para fazer os trajectos a empresa tem um conjunto de condutores que podem
conduzir qualquer veículo da empresa. Os dados dos condutores (nome,
morada e telefone) estão guardados num depósito de dados partilhado com o
departamento de pessoal.
Sempre que um cliente pede um serviço, preenche uma notificação de
serviço onde indica os seus dados pessoais e o trajecto que deseja (origem e
destino). Mais tarde o sistema deverá ser capaz de distribuir os serviços
pelos condutores e veículos.
Exercício 1 (2)

Sempre que um condutor termina uma entrega, faz uma notificação de fim de
serviço e informa se ocorreu algum acidente. Em caso de acidente, o condutor
faz uma descrição do ocorrido.
Só depois do regresso do condutor e caso não haja acidente é que o veículo
fica disponível para outro serviço.
Para um melhor atendimento ao cliente, sempre que não se pode realizar um
serviço, por falta de veículo ou por falta de condutor, coloca-se o pedido em
lista de espera. Logo que seja possível dar resposta a este serviço, envia-se
um aviso ao cliente.
No final do ano, o sistema deve emitir um resumo dos acidentes por veículo
onde, para além dos dados do veículo e do seguro, deve constar cada um dos
trajectos feitos pelo veículo com o respectivo condutor e os acidentes
registados nesse trajecto.
Exercício: construção do modelo ambiental
O sistema de gestão de transportes para mudanças tem as
seguintes funções:
• Tratar os pedidos de serviço (mudanças) feitos pelos
clientes.
• Controlar as saídas e entradas dos camiões.
• Gerir o trabalho e os dados dos motoristas.
• Controlar o pagamento do serviço.
• Tratar o pagamento dos motoristas.
Nota: já existe um sistema automatizado para o controlo da reparação dos camiões
que:
• contém um depósito de dados com a informação sobre o camião e a data
estimada do fim da reparação;
• avisa o sistema de gestão de transportes para mudanças quando um camião
necessita de reparação e sempre que uma reparação termina.
Exemplo

Lista de eventos:
1. Diariamente emitir lista de serviço (temporal)
2. Departamento de compras regista novo veículo (fluxo)
3. Seguradora informa apólice (fluxo)
4. Cliente pede serviço (fluxo)
5. Condutor informa fim de serviço (fluxo)
6. Condutor dá descrição de acidente (fluxo)
7. ...
Exemplo

plano diário trabalho pedido serviço/


Motorista entrada camião resposta Cliente

pagamento
factura pedido
satisfeito
fim serviço
Sistema
mapa acidentes gestão
Departamento novo veículo Departamento
transportes
de pessoal de compras
novo condutor mudanças
apólice
condutores
data estimada Seguradora
Reparações pedido seguro
Sistema
reparação
de controlo
de manutenção
Modelo Comportamental
 O modelo comportamental descreve as acções que o sistema
deve realizar para responder da melhor forma aos eventos
definidos no modelo ambiental.
 Técnicas utilizadas:
 Diagrama de Fluxos de Dados (DFD)
 Dicionário de Dados (DD)
 Diagrama de Entidades e Associações (ou
Relacionamentos) (DEA ou DER)
 Especificação de Processos (EP) - (DESENHO)
 Diagrama de Transição de Estados (DTE)
Diagrama de fluxo de dados (DFD)
 Um DFD é um modelo que permite representar o sistema
como uma rede de processos, salientando as funções que
precisam ser implementadas e os fluxos dados manipulados
por estas funções.
 Um DFD contém:
• Processos
• Fluxos de dados
• Depósitos de dados
• Entidades externas com que o sistema interage
DFD
 O DFD é composto por processos, depósitos de dados, fluxos
de dados e entidades externas.
entidade externa ou
terminador processo
depósito de dados

Clientes pedido 2. Dados Armazém


Detalhes de
Entregar -livros
1. pedido livros
Pedido Receber pedidos
inválido pedido
Detalhes de Guia de
factura cliente remessa
fluxos de dados clientes 4.
Detalhes da factura, Registar
nome do cliente cliente
3.
Recolher factura
pagamentos Clientes
pagamentos
Regras para construir DFD’s
 Escolher nomes significativos para os processo, fluxos, entidades e depósitos
 Numerar os processos
 Redesenhar os DFD’s tantas vezes quantas forem necessárias
 Evitar DFD’s complexos
 Certificar-se de que o DFD é internamente consistente
 Evitar processos que tenham entradas e nenhuma saída (e vice-versa)
DFD: Processo

 Função, transformação
 Transforma entradas em saídas
 Nome: numeração + verbo + objecto
 Exemplos:

1. 1.
Calcular Calcular
Juros Juros
DFD: Fluxo (1)

 Usado para descrever movimento de informação de um


componente do sistema para outro
 Exemplos:

Valor X
Nº válido
2. 3.
Valor Y média Nºtelefone
Calcular Validar
Valor Z
média Número
Nº inválido
DFD: Fluxo (2)

 Fluxo de diálogo

Gerir formulário Preencher


Informação formulário formulário
preenchido

 Fluxo divergente
Gerar
relatórios

Validar Detalhes
pedidos de pedido
Gerar
fatura
DFD:Depósito de Dados

 Ficheiros, bases de dados


 CD’s microfichas, microfilme
 Um fluxo para um depósito: actualizar, gravar, remover

Registar detalhes clientes Gerar


cliente relatórios

DFD: Entidades Externas


 Estão fora do sistema
 O analista não está em posição de mudar o conteúdo das entidades
 Os fluxos conectando a entidade aos processos representam a
interface entre o sistema e o ambiente
Construção de DFD Preliminar

1. Um processo (ou +)  um evento da lista de eventos.


2. O nome do processo deve estar de acordo com a resposta que o
sistema deve dar ao evento.
3. Definir fluxos de dados de entrada e saída. O processo deve ser capaz
de produzir a resposta correcta.
4. Usar os depósitos de dados necessários para guardar a informação que
será depois usada por outros processos.
5. Verificar a coerência entre este DFD e o diagrama de contexto.
Construção de DFD Preliminar
Observações:

1. Um evento pode causar várias respostas


Definir um processo por resposta (se forem independentes)

Exemplo:
Produzir factura
pedido
de cliente factura

pedido
Emitir confirmado
confirmação
pedido
Construção de DFD Preliminar
2. Vários eventos podem causar a mesma resposta.
Definir um só processo

Exemplo:
Pagamento p/
cartão
de crédito

Produzir guia de remessa


guia de
Pagamento p/ remessa
dinheiro
Construção de DFD Preliminar
3. Agrupamento de processos:
 Formar níveis de maior abstracção.
 cada agrupamento de processos deve envolver respostas
(processos) relacionadas. Isto significa que tais processos se
relacionam por função ou pelos mesmos dados
 Regra de Miller: 7 ± 2 processos.
Dicionário de dados

 Descreve o significado dos fluxos de dados e dos depósitos de


dados
 Descreve a composição de dados agregados.
 Ex.: endereço

 Especificar os valores e unidades relevantes


 Descrever os relacionamentos entre depósitos de dados
(diagramas E/R)
Notação

 = é composto por
 + e
 () opcional
 {} iteração
 [] seleccionar uma das várias alternativas
 ** comentário
 @ chave de um depósito
 | separa alternativas quando se usa []
Dicionário de dados - Exemplos:

 Nome = título + primeiro-nome + apelido


 título = [Sr. | Sra.| Prof.| Dr.| Eng.]
 primeiro-nome = 1{caracter-válido}
 apelido = 1{caracter-válido}
 caracter-válido = [A-Z | a-z | ‘ | - | ]
 endereço = * ainda não definido*
Dicionário de dados (cont.)

 Dados elementares  mais nenhuma decomposição necessária


 Ex.: peso, altura

 Dados opcionais
 endereço-cliente = (endereço-de-entrega) + (endereço-de-

cobrança)
 endereço-cliente = [endereço-de-entrega | endereço-de-

cobrança | endereço-de-entrega + endereço-de-cobrança]


 endereço-cliente = endereço-de-entrega + (endereço-de-

cobrança)
Dicionário de dados (cont.)

 Iteração
 pedido = nome-cliente + endereço-de-entrega + {item}

 pedido = nome-cliente + endereço-de-entrega + 1{item}10

 a = 1{b}

 a = {b}10

 a = 1{b}10

 a = {b}

 Selecção
 sexo = [m | f ]

 tipo-do-cliente = [governo | indústria | universidade | outro]


Dicionário de dados (cont.)

 Sinónimos
 freguês = * sinónimo de cliente*

 Evitar seu uso

 Avaliação do DD
 todos os dados do DFD estão definidos?

 Todos os elementos do elemento composto foram definidos?

 Há elementos repetidos?

 Há elementos que não existem do DFD?


DFD - Nivelação

 Serve para controlar a complexidade do sistema


 Serve p/ organizar o DFD completo em níveis onde cada nível
dá mais detalhe do nível superior
 O DFD de nível mais alto é o diagrama de contexto

2 3.2

3.1
1
System 3.4
3.3
3
FAQ sobre Nivelação

 Quantos processos por nível?


 7  2 (Regra de Miller)

 Quantos níveis?
 Sistemas simples: 2 a 3 níveis

 Sistemas de médio porte : 3 a 6 níveis

 Sistemas de grande porte : 5 a 8 níveis

 Todas as partes do sistema devem ter o mesmo nível de


detalhe?
 Não: algumas partes do sistema podem ser mais complexas que

outras
FAQ sobre Nivelação (cont.)

 Como mostrar os diferentes níveis ao utilizador?


 Depende do tipo de utilizador

 Executivos olham pro diagrama de contexto ou DFD de nível 0


 Operadores olham apenas pra parte do sistema que lhe diz respeito
 Como saber se os níveis de DFDs estão consistentes entre si?
 Fluxos de dados de entrada e saída de um nível devem

corresponder aos fluxos de dados de entrada e saída do nível


mais abaixo que descreve aquele processo
FAQ sobre Nivelação
 Como mostrar os depósitos de dados nos vários níveis?
 Mostrar o depósito no nível mais alto onde ele serve como

interface entre processos


 Mostrar o depósito outra vez em todo o DFD de nível mais

baixo que está envolvido na interface

1.1 1.2
Depósito 1
1

Depósito 1
2.1 2.2
2 Depósito 1
FAQ sobre Nivelação

 Como se faz a nivelação de facto?


 O desenvolvimento do DFD não é necessariamente top-down

 Abordagem mista: top-down + bottom-up

 Utilizar a lista de eventos para criar a 1ª versão do DFD:

 Pode ser utilizada para criar DFDs de nível mais alto


 Pode ser utilizada para criar DFDs de nível mais baixo
FAQ sobre Nivelação

 Cada grupo de processos envolve dados relacionados entre si


 Se um grupo de processos do DFD preliminar se refere a um
depósito (e só este grupo) então pode-se criar um processo de
nível mais alto que esconda este depósito

D2
D1 D2
D3
Diagrama de Entidade-Associação (DEA)
 Também chamado Diagrama de Entidade-Relacionamento
(DER)
 Utilizado para:
 Interagir com o utilizador

 Definir relacionamentos entre depósitos de dados

Cliente Compra Livro


DEA

 Componentes de um DEA
 Tipo Objecto (Entidade)

 Relacionamento (Associação)

 Indicador de tipo objecto associativo

 Indicador de supertipo/subtipo

 Tipo objecto
 Representado por uma caixa rectangular

 Representa uma colecção ou conjunto de objectos do mundo real

 Objectos são instâncias do tipo

 Cada objecto desempenha um papel no sistema e este pode ser:

 identificado unicamente
 ser descrito por um ou mais elementos de dados
DEA

 Relacionamento
 Representado por um losango

 Um relacionamento representa um conjunto de conexões entre

objectos
 Pode haver mais de um relacionamento entre dois objectos

Trata

Médico Paciente

Cobra
DEA

 Os relacionamentos podem ser unários, binários, ternários...

Curso Tem Prec.

Professor Envolve Aluno


DEA

 Cardinalidade: é o número de objectos de cada tipo objecto que


participa no relacionamento
 Pode ser.
 1:1 ; 1:N ; N:1 ; M:N

1 N
Cliente Compra Item

M N
Professor Ensina Aluno
DEA
Tipo objecto (ou entidade):

Aluno
• Atributo identificador:
número_de_matrícula
• Atributos descritores:
nome, morada, telefone, data_nascimento, curso, sexo

Instância de objecto:
número_de_inscrição: 11250
nome: João da Silva
morada: Areeiro
telefone: 8887777
data_nascimento: 01/09/80
curso: eng. informática
sexo: m
DEA
 Instância de uma associação é uma ocorrência de uma ligação
entre objectos

Cliente compra Filme

Instâncias instâncias Instâncias


de Cliente de compra de Filme
C1 F1
C2 F2
C3 F3
C4 4 instâncias de Cliente
3 instâncias de Filme
3 instâncias da associação compra
DEA
 A cardinalidade define os graus máximo e mínimo.
 O grau máximo de uma associação pode ser:

•• 11::11
•• 11::NN
•• NN:: M
M

• O grau mínimo de uma associação pode ser:


•• 00:: 00
•• 00:: 11
•• 11:: 11
DEA
 Grau máximo:
OOgrau
graumáximo
máximodefine
defineoonúmero
númeromáximo
máximode
devezes
vezesque
queuma
uma
instância
instânciada
daentidade
entidadepode
podeocorrer
ocorrerna
naassociação.
associação.

Exemplo:
1 Carta de
Cliente tem
1 condução
• Uma instância de Cliente pode ocorrer no máximo uma vez

• Uma instância de Carta de Condução pode ocorrer no máximo uma vez


DEA
Exemplo 1:
N
Aluguer pertence Cliente
1

• Um Aluguer pertence a no máximo um Cliente


• Um Cliente pode ter vários Alugueres

Exemplo 2:

N
Fornecedor fornece Produto
M

• Um Fornecedor fornece vários Produtos


• Um Produto pode ser fornecido vários Fornecedores
DEA
 O grau mínimo define o número mínimo de vezes que uma
instância pode ocorrer na associação.
 Se é zero diz-se opcional, se é um diz-se obrigatória.

Exemplo:

Cliente tem Carta de condução

• Carta de condução é opcional: um dado cliente pode não ter carta


• Cliente é obrigatório: uma carta de condução pertence no mínimo a um
cliente
DEA
Exemplo:

Médico é médico Paciente


família

 Médico é opcional

Um Paciente pode não ter médico de família

 Paciente é opcional

Um médico pode não ser médico de família de nenhum


Paciente
DEA
Exemplo:

Fornecedor fornece Produto

 Fornecedor é obrigatório

Um fornecedor fornece no mínimo um produto

 Produto é obrigatório

Todo produto é fornecido no mínimo por um


fornecedor
DEA
Os
Osgraus
grausmáximo
máximoeemínimo
mínimode deuma
umarelação
relaçãocomplementam-se
complementam-se
eeservem
servempara
paraespecificar
especificaraapolítica
políticada
daorganização
organizaçãono
noque
quese
se
refere
refereaos
aosdados.
dados.

N
Fornecedor fornece Produto
M

1
Cliente tem Cartão
1
Notação alternativa
0..N 0..M
Fornecedor fornece Produto

1..1 0..1
Cliente tem Cartão
DEA
 Entidade associativa é uma associação com atributos próprios.
 Representa uma associação onde desejamos manter alguma
informação específica que não pode ser derivada
automaticamente pelo sistema

M Projecto
Funcionário trabalha
N

Contém informação sobre a


percentagem de tempo que o
empregado dedica a um dado projecto.

1..M 1..N
Funcionário Projecto

Trabalho
DEA
 Exemplos de entidades associativas:

(0..M) (0..N)
Ficheiro Utilizador

Atributo específico : tipo da


Acesso
permissão de acesso

(1..M) (0..N)
Atleta Competição

Atributos específicos :
Participação
colocação, performance
DEA

 Indicadores de subtipo e supertipo


 Um subtipo é uma especialização do supertipo
 Um supertipo é uma generalização do subtipo
 O supertipo descreve os elementos de dados comuns a todos
os subtipos.
 Os atributos de um supertipo são “herdados” pelos subtipos
 Cada subtipo é descrito pelos atributos “herdados” do supertipo
+ atributos específicos
 Os subtipos descrevem elementos de dados específicos a um
subconjunto das instâncias.
 Na notação o supertipo está conectado aos subtipos através de
uma associação sem nome e uma linha cortada
DEA

Esporte Empregado

Esporte Esporte assalariado temporário


Individual em Equipa

Esporte = nome + local + regras Empregado = nome + endereço


Esporte Individual = recorde Assalariado = salário_mensal
Esporte em Equipa = Temporário = salário_hora
número_de_jogadores
DEA

Figura  Figura = cor + posição_central


 Aberta = orientação
 Fechada = área
 Arco = raio + ângulo
Aberta Fechada
 Linha = pontos_extremos
 Círculo = diâmetro
 Polígono = número_de_lados
+ vértices

Arco Linha Círculo Polígono


Construção do DEA
1. Identificação das entidades.
» depósitos de dados;
» depósitos de dados associados a entidades externas;
» documentos, formulários, utilizador.
2. Identificação das associações:
Verificar a descrição dos depósitos de dados do DFD no DD.
 Exemplo:
Fornecedores = {Fornecedor + {código_produto}}
Fornecedor = @código_fornecedor + nome + morada +
número_contribuinte

Produtos = {Produto + 1{código_fornecedor}}


Produto = @código_produto + descrição + peso

N
Fornecedor fornece Produto
M
Construção do DEA

2.2 Na especificação dos processos.


Exemplo:
process fornecer;
...
If código_fornecedor in Fornecedores =
código_ fornecedor in Produtos then
...
endproc
Construção do DEA
3. Definir os graus máximos e mínimos das associações.
4. Especificar os atributos identificadores e os atributos descritores
de cada entidade.
 Verificar a descrição dos depósitos de dados no DD.

5. Completar o dicionário de dados com as descrições das


entidades e associações que ainda não estejam lá.

Médico trata Paciente

Médico = @código_médico + nome + morada + salário


Paciente = @código_paciente + BI + nome + sexo +
(telefone)
Construção do DEA

 Observações importantes:
1. Certificar-se de que todos os atributos se aplicam a todas
as instâncias de uma entidade.

Modelo = @número_modelo + morada + estado_civil + cor_cabelo +


cor_olhos + (nome_cônjuge) + sexo + altura +
[barba + medida_tórax | medida_quadril + medida_busto]

Observa-se que há a necessidade de criar dois subtipos


Construção do DEA

Modelo = @número_modelo + nome +


Modelo
morada + estado_civil + cor_cabelo +
cor_olhos + (nome_cônjuge) + altura +
tipo-modelo
tipo-modelo = [Modelo_feminino |
Modelo_masculino]
Modelo Modelo
feminino masculino Modelo_feminino =
@número_modelo + medida_quadril
+ medida_busto

Modelo_masculino =
@número_modelo + barba +
medida_tórax
Construção do DEA
2. Certificar-se de que quando há entidades diferentes que possuem
atributos em comum é possível criar um supertipo

Empregado_temporário = @número_empregado + nome + morada +


código_postal + telefone + salário_hora + número_horas_extra
Empregado_assalariado = @número_empregado + nome + morada +
código_postal + telefone + salário_mensal + abono_família +
número_filhos

Empregado
Empregado Empregado
temporário assalariado

Empregado Empregado
temporário assalariado
Construção do DEA
3. Quando há grupos repetitivos covém criar uma nova entidade e
uma nova associação
Um grupo repetitivo é um conjunto de atributos cujos valores se
repetem para um dado valor do identificador.

Empregado = @número_empregado + nome + morada + salário +


{nome_filho + sexo_filho + idade_filho}

N
Empregado tem Filho

Empregado = @número_empregado + nome + morada + salário


Filho = @Id_filho + nome_filho + sexo_filho + idade_filho +
número_empregado
Construção do DEA
 4. Existe outra situação bastante comum.

Conta = @número-conta + saldo + [juro


+ período | limite-credito]
Conta

Conta = @número-conta + saldo


Conta-à-ordem= @número-conta +
Conta à Conta a limite-crédito
Ordem prazo
Conta-a-prazo= @número-conta + juro
+ período

Conta_à_ordem = * mesmos atributos


que Conta*

Você também pode gostar