ANÁLISE E PROJETO ORIENTADA A OBJETOS UFRJ/IM/DCC Lab PSI mai/1999 Sumário • Conceitos de Análise e Projeto Orientados a Objetos • Rose 98 ® 2 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 3 >>> OBJETIVOS • “Engenharia de Software é a produção de Software de QUALIDADE” (Meyer) 4 Fatores de Qualidade • • • • • • Correção Robustez Extensibilidade Reutilização Compatibilidade Eficiência • Portabilidade • Facilidade de uso • Funcionalidade • Tempestividade • ... 5 Outros Fatores Tradeoffs Desejável Depuração `Comum` Funcionalidade Osmond, 1995 6 Manutenibilidade Lientz, 1980 7 OO - Conceitos Básicos • • • • • • • Objeto Classe Mensagem Atributo Operação Polimorfismo Herança • • • • • • Evento Estado Generalização Especialização Encapsulamento ... 8 Qual o conceito mais importante da Orientação a Objetos? • É o conceito de CLASSE 9 Classe Nome da Classe atributo atributo : tipo do dado atributo : tipo do dado = valor inicial operação operação (lista de arg.) : tipo de res. 10 Objeto (Instância de Classe) 11 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 12 Classe Indivíduo 13 Abstração Organização +códigoDaOrganização +nomeDaOrganização +endereçoDaOrganização Cliente Fornecedor 14 Atributo Indivíduo + códigoDoIndivíduo : long + sexo : M ou F + dataDoNascimento : data ..... 15 Visibilidade do Atributo • + Visibilidade pública (default) • # Visibilidade protegida (classes do pacote) • - Visibilidade privada (internas à classe) • { / Atributo derivado - Informação } 16 Atributo Identificador da Classe • IDO : identificador do objeto (dentro da classe) 17 Histórico de Atributo Funcionário * * Cargo Cargo de Funcionário 18 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 19 Exemplos Indivíduo + incluirIndivíduo (códigoDoIndivíduo) + destruirIndivíduo (códigoDoIndivíduo) 20 :Item de pedido :Item de estoque Item de Estoque verificarEstoque(item) Verificar estoque (item) 21 Sintaxe da definição de operação • Visibilidade NomeDaOperação (parâmetros) : TipoDeRetorno {Propriedade} 22 parâmetros • nome tipo : tipo_expressão = valorDefault • Exemplo: (item in : long = 0, código out : long) 23 Propriedades • • • • • • • Classificação precondição poscondição tipo de exceção concorrência transformação estereótipo 24 Classificação: • • • • • Construtoras (criam ou inicializam) Seletoras Modificadoras De iteração Destrutoras 25 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) 26 Aplicação Financeira calcularSaldo () Renda Fixa Poupança Fundo Açoes calcularSaldo () calcularSaldo () calcularSaldo () 27