Modelação funcional
Modelo funcional - especifica como obter os resultados de uma computação, a
partir dos valores de entrada, sem atender à ordem pela qual eles são
calculados nem à estrutura dos dados. Especifica o significado das
operaçõesdo modelo de objectos e das acções do modelo dinâmico.
modelo de
objectos
base de
dados
compilador
CAD 3D
relógio
manual
despertador do IRS
modelo
dinâmico
folha de
cálculo
modelo
funcional
Modelação OO
0
Diagramas de fluxo de dados (DFD)
DFD - grafo que mostra o fluxo de valores de dados desde as suas
fontes, nos objectos, através dos processos que os transformam
até aos destinos noutros objectos.
 não contém, em princípio, informação de controlo sobre o
momento da execução ou escolhas entre caminhos
alternativos
 nem mostra a organização de valores em objectos
 constituído por
•
processos - transformam os dados
•
fluxos de dados - movem os dados
•
actores - produzem ou consomem dados (activo)
•
depósitos - onde se armazenam os dados (passivo)
Modelação OO
1
Display gráfico
depósito
Definições
do ícone
actor
Janela
tamanho
fluxo de dados
nome do
ícone
expande em
vectores
localização
localização
lista de vectores
da aplicação
clip dos
vectores
lista de vectores
da janela
offset dos
vectores
processo
Buffer do
écrã
operações
em pixels
lista de vectores
do écrã
converte
para pixels
Modelação OO
2
Processos
 um DFD completo pode ser visto como um processo a um nível mais abstracto
nome do
ícone
mostra
ícone
operações
nos pixels
localização
 refinamento de um DFD até aos processos simples directamente implementáveis
• cada nível deve ter um grau de detalhe homogéneo
•
diagrama que se refere a si próprio - computação recursiva
 efeitos laterais se existirem depósitos ou objectos externos no diagrama
 não se especificam univocamente os resultados de um processo com efeitos laterais
• o modelo só indica os caminhos funcionais possíveis, não qual o percorrido
 notação
• elipse com o nome do processo
• arcos a chegar e a partir com os fluxos de dados (indicar papel ou tipo)
 implementação: métodos de operações em classes; objecto alvo pode ser um dos fluxos
de entrada ou de saída ou implícito
Modelação OO
3
Fluxos de dados; actores
 ligam a saída de um objecto ou processo à entrada de outro processo ou objecto
•
valores intermédios da computação
•
na fronteira do diagrama: entradas e saídas
 notação
•
seta - comunicar o dado
•
seta bifurcada - distribuir o valor
•
seta bifurcada com etiquetas - desagregação de componentes
rua
n
taxa
morada
cidade
zip
 actores - objectos activos que produzem ou consomem valores, nas fronteiras do DFD
 notação: rectângulos (objectos)
Modelação OO
4
Depósitos
 (data store) objecto passivo dentro do diagrama, que guarda os dados para uso posterior
•
não gera operações; só responde a pedidos para armazenar e aceder aos dados; pode
fazê-lo com atraso, agregando informação
•
estrutura efectiva do objecto descrita no modelo de objectos
 notação
•
um par de linhas paralelas com o nome do depósito
•
setas a entrar - modificam os dados (depósitos constantes não têm entradas)
•
setas a sair - informação obtida no depósito
item
custo
item
Lista
de preços
selecciona
custo
custo
•
a Lista de preços é constituída
por pares item, custo
•
no processo de selecção, o
item não é uma entrada do
depósito pois este não é
modificado nesse processo
•
a seta sem etiqueta significa
que toda a lista de preços
está disponível na selecção
Modelação OO
5
Objectos como valores
 actores e depósitos são objectos  comportamentos diferentes
 fluxos de dados muitas vezes são valores puros; por vezes são objectos
 extensão aos DFDs para poder ver um objecto quer como valor num fluxo quer como
depósito: notação de triângulo vazado no fluxo
• dupla seta quer dizer alteração
e consulta
contas
Banco
Conta
selecção
• criação de conta (valor)
guardada no depósito Banco
balanço
nome
Cliente
pedido
•
uso da conta (objecto) como
depósito
actualização
cria conta
nome, depósito
Cliente
conta
Banco
Conta
número da conta
Modelação OO
6
Fluxos de controlo
Fluxo de controlo - valor Booleano que controla a avaliação de um processo.
 interessa para clarificar as dependências entre os dados
•
não é uma entrada para o processo afectado
•
é parte do modelo dinâmico (usar com parcimónia aqui)
•
notação: linha ponteada do processo controlador (fluxo Booleano) para o controlado
password
registada
verificação
password
Conta
balanço
password OK
Cliente
valor
actualização
notas
Modelação OO
7
Operações
 cada processo atómico nas folhas da árvore de composição de processos tem que ser
implementado como uma operação numa classe
 DFDs encarados como especificação das operações e não como código a implementar
ipsis verbis (optimizações admitidas, desde que a funcionalidade seja respeitada)
 formas de especificação das operações
• funções matemáticas
• tabelas de enumeração
• equações a especificar as saídas em termos das entrada
• pré- e pós-condições (definição axiomática, cálculo de predicados)
• tabelas de decisão
• pseudocódigo
• linguagem natural
 elementos da especificação
• assinatura (número, ordem e tipo dos argumentos e resultados)
- todos os métodos devem conformar-se à assinatura, expressa habitualmente
no modelo de objectos para definir o padrão de herança
• transformação (só especificação externa, as alterações visíveis fora da operação)
- indica-se o que a operação deve fazer logicamente, não como implementar
Modelação OO
8
Categorias de operações
 Operações de acesso - triviais; listar quais as públicas na fase de projecto
 Perguntas - sem efeitos laterais; atributos derivados - perguntas sem parâmetros
 Acções - com efeitos laterais e sem duração  não necessita de componente de controlo
•
especificação pode ser indicada declarativamente na análise; algoritmo fornecido
no projecto
 Actividades - com duração e com efeitos laterais  só faz sentido para actores e
corresponde a um diagrama de estados no modelo dinâmico
Função: logaritmo
Entradas: número real x
Saídas: número real z
Transformação: calcular o número y
tal que ey = x
Restrições: x > 0
Especificação de uma operação
Modelação OO
9
Relação entre os modelos
 ponto de convergência dos três modelos: implementação dos métodos
 modelo funcional é um guia para os métodos
 processos de nível alto —— operações em objectos complexos
processos de nível inferior —— operações em objectos básicos
 processos ligam os objectos através de funções
 actores e depósitos —— objectos
fluxos de dados —— desencadeiam operações controladas pelo modelo dinâmico
 modelo funcional - mostra as operações nas classes e os argumentos em cada operação
modelo de objectos - mostra a estrutura dos actores, depósitos e fluxos de dados
modelo dinâmico - mostra a sequência de execução dos processos e os estados de cada
objecto com as operações de resposta aos eventos.
Modelação OO
10
Motor eléctrico
Descreva o significado do DFD seguinte.
características da carga
parâmetros eléctricos
tensão, frequência
análise
eléctrica
temperatura ambiente
análise
mecânica
velocidade
temperatura
parâmetros térmicos
binário eléctrico
binário da
ventoínha
perdas
análise
térmica
fluxo de ar
análise da
ventoínha
Modelação OO
11
Calcular a média
Preparar um DFD para calcular a média
de uma sequência de valores de entrada.
Existe uma entrada de controlo separada
para reinicializar o cálculo.
inicializa?
põe 0 no
contador
contagem=0
incrementa
contador
contagem
Contador
nova
contagem
valor de
entrada
ajusta
média
média=0
média
põe 0 na
média
Média
Modelação OO
12
Processo ajusta média
n+1 = nova contagem Xn = n-ésimo valor de entrada Xn = média após n valores
n+1
calcula
n
n
calcula
n/(n+1)
n/(n+1)
calcula
n Xn/(n+1)
Xn
n Xn/(n+1)
Média
valor de
entrada
Xn+1
calcula
Xn+1/(n+1)
Xn+1/(n+1)
calcula
n Xn/(n+1)+
Xn+1/(n+1)
Modelação OO
13
Download

modelo funcional