ANÁLISE E PROJETO ORIENTADA A OBJETOS
UFRJ/IM/DCC
Lab PSI
mai/1999
2
Sumário
• Conceitos de Análise e Projeto Orientados a Objetos
• Rose 98 ®
3
Bibliografia• FURLAN, José Davi. Modelagem de Objetos
através da UML. 1998.
• BOOCH, Grady. Object-Oriented Analysis and Design With Applications. 2nd Ed,1994
• MEYER, Bertrand. Object-Oriented Software Construction. 2nd Ed, 1997
• RINEHART, M. Visual Basic 5 Power OOP. 1997
• Rose 98® . 1998 - Manuais de VB
4
>>> OBJETIVOS
• “Engenharia de Software é a produção de Software de QUALIDADE” (Meyer)
5
Fatores de Qualidade
• Correção
• Robustez
• Extensibilidade
• Reutilização
• Compatibilidade
• Eficiência
• Portabilidade
• Facilidade de uso
• Funcionalidade
• Tempestividade
• ...
6
Tradeoffs
Desejável
`Comum`
Funcionalidade
OutrosFatores
Osmond, 1995
Depuração
7
Manutenibilidade
Lientz, 1980
8
OO - Conceitos Básicos
• Objeto• Classe• Mensagem• Atributo• Operação• Polimorfismo• Herança
• Evento• Estado• Generalização• Especialização• Encapsulamento• ...
9
Qual o conceito mais importante da Orientação
a Objetos?
• É o conceito de CLASSE
10
Classe
Nome da Classe
atributoatributo : tipo do dadoatributo : tipo do dado = valor inicial
operaçãooperação (lista de arg.) : tipo de res.
11
Objeto (Instância de Classe)
12
Características dos Objetos
• Real ou abstrato
• Ocupa espaço físico ou lógico
• O estado de suas características (atributos e operações) o tornam único
• Identidade mesmo com mudanças de estado
• Comportamento define ações e reações
13
Classe Indivíduo
14
AbstraçãoOrganização
+códigoDaOrganização+nomeDaOrganização+endereçoDaOrganização
Cliente Fornecedor
15
Atributo
Indivíduo+ códigoDoIndivíduo : long+ sexo : M ou F+ dataDoNascimento : data.....
16
Visibilidade do Atributo
• + Visibilidade pública (default)
• # Visibilidade protegida (classes do pacote)
• - Visibilidade privada (internas à classe)
• { / Atributo derivado - Informação }
17
Atributo Identificador da Classe
• IDO : identificador do objeto (dentro da classe)
18
Histórico de Atributo
Funcionário Cargo
Cargo deFuncionário
* *
19
Operação
• Operação:– Serviço de uma classe– Procedimento algorítmico
• Método > implementação de uma operação
• Operação é resultante da passagem de uma Mensagem de um objeto para outro
20
Exemplos
Indivíduo
+ incluirIndivíduo (códigoDoIndivíduo)+ destruirIndivíduo (códigoDoIndivíduo)
21
Verificar estoque(item)
:Item de pedido
:Item deestoque
Item de Estoque
verificarEstoque(item)
22
Sintaxe da definição de operação
• Visibilidade NomeDaOperação (parâmetros) : TipoDeRetorno {Propriedade}
23
parâmetros
• nome tipo : tipo_expressão = valorDefault
• Exemplo:(item in : long = 0, código out : long)
24
Propriedades
• Classificação
• precondição
• poscondição
• tipo de exceção
• concorrência
• transformação
• estereótipo
25
Classificação:
• Construtoras (criam ou inicializam)
• Seletoras
• Modificadoras
• De iteração
• Destrutoras
26
Polimorfismo
• Permite que uma operação tenha o mesmo nome em classes diferentes (em uma hierarquia de herança) porém com implementações diferentes)
27
Aplicação Financeira
calcularSaldo ()
calcularSaldo () calcularSaldo () calcularSaldo ()
Renda Fixa Poupança Fundo Açoes