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