29
Modelação OO 1 Modelação e projecto orientados por objectos Sumário • Conceitos de modelação • Metodologia de projecto • Implementação • análise • projecto de sistema • projecto de objectos

Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Embed Size (px)

Citation preview

Page 1: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO1

Modelação e projecto orientados por objectos

Sumário

• Conceitos de modelação

• Metodologia de projecto

• Implementação• análise

• projecto de sistema

• projecto de objectos

Page 2: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO2

Metodologia

Conceitos e notações OMT — já vistos

Ciclo de vida do software

• formulação do problema

• análise - compreensão e modelação da aplicação e do domínio

• projecto - construção da solução

- sistema - organização de subsistemas; concorrência

- objectos - algoritmos; definição da implementação

• implementação

• teste

• manutenção

• aperfeiçoamento

Metodologia de engenharia de software - processo para a produção organizada de software, que usa uma colecção de técnicas e de notações pré-definidas.

Metodologia de engenharia de software - processo para a produção organizada de software, que usa uma colecção de técnicas e de notações pré-definidas.

desenvolvimento

operação

Page 3: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO3

Características salientes

suporte para

• prototipagem rápida — desenvolvimento incremental- decomposição de funções para um protótipo pode não servir para a implementação completa;

mas a decomposição em objectos sim

• ciclo de vida — desenvolvimento sequencial

deslocação do esforço de desenvolvimento para a análise — reaproveitamento em novas implementações e alterações

ênfase na estrutura de dados, antes da funcionalidade — objecto como conceito unificador, em torno do qual se organizm as funções, associações e eventos

processo de desenvolvimento sem descontinuidades — sempre a mesma notação; refinamentos sucessivos

processo iterativo — pequenos passos validáveis

Page 4: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO4

Análise

Análise - obter um modelo do sistema real preciso, conciso, compreensível e correcto, clarificando os requisitos e evitando decisões de implementação.

Análise - obter um modelo do sistema real preciso, conciso, compreensível e correcto, clarificando os requisitos e evitando decisões de implementação.

• compreender o problema

• validar com o cliente

• acomodar o projecto e a implementação

a formulação inicial é muitas vezes vaga, incompleta e informal

no fim da análise, o modelo tripartido deve ser uma clara especificação do que deve ser feito, sem prescrever o modo de o fazer

Utilizadores

Programadores

Gestores

Entrevistas comutilizadores

Conhecimentodo domínio

Experiência domundo real

Gerapedidos

Constróimodelos

Modelo de objectosModelo dinâmicoModelo funcional

Especificaçãodo problema

Page 5: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO5

Especificação

Requisitos

• âmbito do problema

• o que é necessário

• contexto da aplicação

• pressupostos

• necessidades de desempenho

especificação inicial — ponto de partida, não um documento acabado

é natural que seja ambígua, incompleta, inconsistente, errada, ignorando as reais necessidades do cliente, ou irrealista — uma vez que foi feita sem uma análise completa

fazer exactamente o que o cliente pede, se não for isso que ele necessita, não evita queixas

Page 6: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO6

Exemplo do Multibanco

ATM

ATM

ATM

Computadorcentral

Balcão

Computadorde banco

Computadorde banco

Conta

Conta

Conta

Conta

Projecte o software de suporte a uma rede bancária computorizada, com caixas humanos e caixas automáticas (ATM), para ser partilhado pelos bancos de um consórcio. Cada banco tem o seu próprio computador para manter as suas contas e processar as transacções sobre elas.Os balcões pertencem a bancos individuais e comunicam directamente com os respectivos computadores. Os caixas humanos introduzem dados de contas e de transacções. As caixas automáticas comunicam com um computador central que acerta as transacções com o banco correspondente. Uma caixa automática aceita um cartão de débito, interage com o utilizador, comunica com o sistema central para proceder à transacção, entrega dinheiro e imprime recibos. O sistema necessita de um conveniente registo e de esquemas de segurança. O sistema deve lidar correctamente com acessos concorrentes à mesma conta. Os bancos fornecem o software para os seus computadores. Pretende-se projectar o software para as caixas automáticas e para a rede. O custo do sistema partilhado será repartido pelos bancos de acordo com o número de clientes com cartões de débito.

Page 7: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO7

Modelação de objectos

Passos

• identificar objectos e classes

• preparar um dicionário de dados

• identificar associações entre objectos

• identificar atributos de objectos e de ligações

• organizar e simplificar as classes usando herança

• verificar os caminhos de acesso para perguntas previsíveis

• iterar e refinar o modelo

• agrupar as classes em módulos

é essencial a organização de alto nível do sistema em classes e mais secundário o refinamento em hierarquias de generalização

organizar a herança só depois de especificar os atributos das classes, para evitar preconceitos

as operações são adicionadas posteriormente, como subproduto da construção dos modelos dinâmico e funcional

Page 8: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO8

Selecção de classes

Classes - identificar os substantivos da descrição do problema e do conhecimento do domínio.

Classes - identificar os substantivos da descrição do problema e do conhecimento do domínio.

Eliminar

• classes redundantes

• classes irrelevantes

• classes vagas

• atributos

• operações

• papéis

• construções da implementação

Page 9: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO9

Selecção de associações

Associações - identificar os verbos e frases verbais da descrição do problema.

Associações - identificar os verbos e frases verbais da descrição do problema.

Eliminar

• associações entre classes eliminadas

• associações irrelevantes ou de implementação

• acções

• associações ternárias

• associações derivadas

Especificar

• associações mal designadas

• nomes dos papéis

• associações qualificadas

• multiplicidade

• associações que faltem

Page 10: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO10

Selecção de atributos

Atributos - substantivos com determinante e adjectivos da descrição do problema e outros que vão surgindo ao longo do processo.

Atributos - substantivos com determinante e adjectivos da descrição do problema e outros que vão surgindo ao longo do processo.

Eliminar

• objectos

• qualificadores em contexto

• nomes

• identificadores

• atributos de ligações

• valores internos

• detalhe fino

• atributos dissonantes

Page 11: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO11

Exemplo de modelo de objectos

Transacção

Transacçãoremota

Transacçãona caixa

Posto

BalcãoATM

dia-hora

dinheiro existenteentregue

Introduzida em

Actualizaçãomontantetipo

Constituída por

Caixa

nome

Introduzida por

Consórcio Banco

nome

Autorizaçãopasswordlimite

Clientenomemorada

Cartãocódigo de bancocódigo de cartãonúmero de série

Contabalançolimite créditotipo

códigode posto

códigode banco

Possui

códigode posto

código deempregado

códigode cartãocódigo

de conta

Detém

Iniciada

Emprega

Emite

Possui

Tem

Page 12: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO12

Modelação dinâmica

Passos

• preparar guiões de sequências de interacção típicas

• identificar eventos entre objectos

• preparar um traço de eventos para cada guião

• contruir um diagrama de estados

• emparelhar eventos entre objectos para verificar a consistência

a execução de algoritmos não é relevante durante a análise, se não existirem manifestações externas; é uma questão de implementação

correcção lógica depende das sequências das interacções e não dos seus instantes exactos (excepto nos sistemas de tempo real)

Page 13: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO13

Modelação funcional

Passos

• identificar os valores de entrada e saída

• construir os diagramas de fluxo de dados, mostrando as dependências funcionais

• descrever as funções

• identificar as restrições

• especificar critérios de optimização

as funções são expressas de várias formas, incluindo linguagem natural, equações matemáticas e pseudo-código

os processos num DFD correspondem a actividades ou acções nos diagramas de estados das classes

os fluxos num DFD correspondem a objectos ou valores de atributos num digrama de objectos

é preferível construir o modelo funcional depois dos modelos dinâmico e de objectos

Page 14: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO14

Adição das operações OMT põe menos ênfase na definição das operações do que as metodologias OO

baseadas em programação: a lista das operações úteis é aberta classes de operações comuns em LPOO

• perguntas sobre atributos ou associações no modelo de objectos- acesso a atributos (assume-se que todos estão disponíveis) e navegação

através de pseudo-atributos (papéis das associações) [ATM.quantia, conta.banco]

- não representar no modelo de objectos

• eventos no modelo dinâmico

- tratador de eventos ou métodos explícitos

- não representar no modelo de objectos

• acções e actividades no estado

- indicar as interessantes no modelo de objectos [verificar código do banco em Consórcio, verificar password em Banco]

• funções no modelo funcional

- indicar no modelo de objectos, directamente ou após reestruturação

Page 15: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO15

Simplificação de operações

lista de compras — conjunto de operações sugerido pelo comportamento das classes no mundo real e que não são especificamente exigidas pela aplicação; dá maior versatilidade e autonomia às classes; permite responder a algumas questões não previstas — perspectiva abrangente de construção debibliotecas de classes

[conta :: autoriza-cartão(autorização de cartão)]

simplificar — factorizar operações similares; criar superclasses para albergar as operações genéricas

iterar a análise o número de vezes necessário para obter um modelo coerente sem omissões e sem elementos supérfluos

estes modelos são um bom meio para a validação por parte de peritos do domínio

não há uma fronteira definida entre a análise e o projecto — o que muda é a atitude: da compreensão do problema passa-se para a construção da solução

Page 16: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO16

Projecto de sistema

Projecto de sistema - é a estratégia de alto nível para resolver o problema e construir a solução: define a arquitectura do sistema.

Projecto de sistema - é a estratégia de alto nível para resolver o problema e construir a solução: define a arquitectura do sistema.

Passos

• organizar o sistema em subsistemas

• identificar a concorrência inerente ao problema

• atribuir subsistemas a processadores e a tarefas

• escolher uma forma de gerir os depósitos de dados

• lidar com os recursos globais

• escolher a implementação do controlo

• tratar as condições fronteira

• definir critérios de prioridade para os compromissos

Page 17: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO17

Subsistemas subsistema - pacote de classes, associações, operações, eventos e restrições

interrelacionados e com uma interface pequena e bem definida com os outros subsistemas• a decomposição em subsistemas pode ter vários níveis, sendo o inferior constituído

por módulos• critérios:

- funcionalidade comum- mesma localização física

- execução no mesmo tipo de hardware

subsistema identificado pelos serviços, grupos de funções com um propósito comum relacionamento entre dois subsistemas

• cliente-fornecedor (comunicação da iniciativa do cliente — conhece interface do fornecedor)

• par-a-par (cada um pode iniciar comunicação — tem que conhecer a interface do outro; mais complexo)

topologias descritas por DFDs (pipeline, estrela, etc.)

Page 18: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO18

Decomposição em subsistemas organização em camadas de máquinas virtuais ou em partições verticais por serviço

exemplo típico:

pacote desimulação

controlo dediálogo comutilizador

gráficos de janela

gráficos de écrã

gráficos ao pixel

sistema operativo

hardware do computador

pacote da aplicação

Page 19: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO19

Concorrência

no modelo da análise, no mundo real e no hardware os objectos são concorrentes

objectos com actividade mutuamente exclusiva podem ser agrupados numa mesma tarefa

dois objectos são inerentemente concorrentes se podem receber eventos simultanemente sem interagirem

• hardware separado

• monoprocessador com multitarefa

um fio de controlo (thread) é um caminho através de um conjunto de diagramas de estado em que apenas um objecto se encontra activo em cada instante (implementado por uma tarefa)

atribuição de subsistemas a processadores e tarefas

• estimar necessidades de desempenho e de recursos

• escolher implementações de hardware ou software

• atribuir subsistemas, minimizando a comunicação inter-processador

• determinar a conectividade das unidades físicas dos subsistemas (comunicação síncrona, assíncrona, bloqueante)

Page 20: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO20

Depósitos de dados

candidatos naturais a subsistemas

dados transitórios em estruturas de dados em RAM; persistência em ficheiros ou em BD

• persistência ortogonal e BDOO

vantagens de usar uma BD

• muitos serviços de infraestrutura (recuperação, partilha, distribuição, integridade)

• interface comum para todas as aplicações

• linguagem de acesso standard (SQL)

• portabilidade

desvantagens

• sobrecarga de desempenho

• funcionalidade insuficiente para aplicações avançadas

• desadaptação de impedância com as linguagens de programação

Page 21: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO21

Controlo

acesso a recursos globais

• protocolo de acesso

• objecto guardião

• bloqueio (lock)

modelo de controlo da execução

• sequencial, guiado pelos procedimentos

• sequencial, guiado por eventos

• concorrente

• paradigma da programação em lógica

condições fronteira

• inicialização

• terminação

• falha

Page 22: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO22

Arquitecturas vulgares

Transformação por lotes (batch) — a transformação é executada uma vez para todo o conjunto de entrada

Transformação contínua (pipeline) — a transformação é executada continuamente à medida que a entrada evolui

Interface interactivo — sistema reactivo dominado pelas interacções externa

Simulação dinâmica — simula objectos a evoluirem no mundo real

Sistema de tempo-real — dominado pelas restrições de tempo de resposta

Gestor de transacções — sistema dedicado a memorizar e disponibilizar dados, incluindo acesso concorrente

Page 23: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO23

Arquitectura do sistema Multibanco

Base de dados

Computadoresdos bancos

Postos ATM

BalcãoATM

Caixa

Consórcio

Autorização

Cliente

CartãoConta

códigode posto

códigode banco

Utilizador

Transacção

Transacção

Transacção

linhastelefónicas

linhastelefónicas

Computadordo consórcio

interfaceutilizador

Page 24: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO24

Projecto de objectos

Projecto de objectos - determina as definições completas das classes e associações usadas na implementação e as interfaces e os algoritmos dos métodos que implementam as operações.

Projecto de objectos - determina as definições completas das classes e associações usadas na implementação e as interfaces e os algoritmos dos métodos que implementam as operações.

• ênfase em conceitos computacionais e não nos do domínio da aplicação

• objectos da análise formam o esqueleto mas novos objectos são adicionados para construir a solução, guardar resultados intermédios, representar estruturas de dados

Passos

• combinar os três modelos para obter as operações nas classes

• projectar os algoritmos

• optimizar os caminhos de acesso aos dados

• implementar o controlo das interacções externas

• ajustar a estrutura de classes para aumentar a herança

• projectar as associações

• determinar as representações dos objectos

• empacotar as classes e as associações em módulos

Page 25: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO25

Algoritmos nos diagramas de estados, as acções executadas numa transição dependem do evento e

do estado do objecto — podem corresponder a operações diferentes

uma acção ou actividade iniciada por uma transição do diagrama de estados pode ser expandida num DFD completo, cujos processos representam o corpo da operação

os algoritmos podem ser construídos descendentemente, por refinamentos sucessivos até se atingir o nível da implementação directa

programador deve

• escolher algoritmos que minimizem o custo de implementar as operações

• seleccionar as estruturas de dados apropriadas

• definir as novas classes internas e operações necessárias

• atribuir a responsabilidade das operações às classes

optimização

• adicionar associações redundantes para minimizar custo de acesso

• rearranjar a computação

• memorizar atributos derivados de cálculo custoso

Page 26: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO26

Implementação do controlo

três métodos de implementar o modelo dinâmico

• utilizar a localização no programa para guardar o estado (sistemas guiados por procedimentos)

• implementar directamente um mecanismo de máquina de estados (sistemas guiados por eventos)

• usar tarefas concorrentes

criar uma classe genérica para máquina de estados

• um interface de utilizador pode recorrer a essa classe e a stubs (funções só com interface e um mínimo de corpo) para criar um protótipo a partir de uma tabela de estados e de eventos

Page 27: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO27

Implementação das associações

associações são consideradas bidireccionais (mesmo nos protótipos) até à implementação

associações unidireccionais

• apontador

- multiplicidade 1: simples

- multiplicidade muitos: conjunto

- ordenada: lista

- qualificada: dicionário (hash)

associações bidireccionais

• implementar como unidireccional e fazer pesquisa no sentido inverso

• implementar como duplo unidireccional; manter a consistência

• implementar a associação como objecto distinto que é um conjunto de pares ou um duplo dicionário (para aumentar a eficiência)

Pessoa Empresa

(Pessoa) (Empresa)empregador

empregados(Empresa)

Trabalha

(Pessoa)

Page 28: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO28

Associação bidireccionais

Pessoa Empresa

(Pessoa) (Empresa)empregador empregados

(Conjunto)

Trabalha

apontadores associação como classe

Trabalha

(Pessoa)

(Pessoa)

(Pessoa)

(Pessoa)

(Pessoa)

(Pessoa)

(Empresa)

(Empresa)

• útil para estender classes pré-definidas não modificáveis• suporta atributos de ligação• com triplos representa associações qualificadas

Page 29: Modelação OO0 Modelação e projecto orientados por objectos Sumário Conceitos de modelação Metodologia de projecto Implementação análise projecto de sistema

Modelação OO29

Documentos da metodologia

• A Documento da Análise

A0 Formulação do problema

A1 Modelo de objectos = diagrama de objectos + dicionário de dados

A2 Modelo dinâmico = diagramas de estado + diagrama global de fluxo de eventos

A3 Modelo funcional = diagramas de fluxo de dados + restrições

• PS Documento do Projecto de Sistema

– estrutura da arquitectura básica do sistema e decisões estratégicas de alto nível

• P Documento do Projecto =

P1 modelo de objectos detalhado +

P2 modelo dinâmico detalhado +

P3 modelo funcional detalhado