Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Clique para editar o estilo do título mestre Clique para editar o estilo do subtítulo mestre * * * Análise Orientada a Objetos Objetos e Classes * * * “Uma nova maneira de pensar os problemas utilizando conceitos do Mundo Real. O componente fundamental é o OBJETO que combina estrutura e comportamento em uma única entidade” [Raumbaugh] “Um sistema orientado a objetos é uma coleção de objetos que interagem entre si” [Bertrand Meyer] Análise Orientada a Objetos * * * As Bases da Orientação a Objetos Correspondência com o mundo real Modularidade dos componentes Objetos com finalidade própria Permite a combinação destes Objetos Baixa dependência externa Alta coesão interna Fácil ampliação do objeto Permite reuso dos objetos Encapsulamento * * * Conceitos Básicos - Objeto Objeto é: “É um elemento do mundo real” [José Davi Furlan] Possui um comportamento e atributos. O comportamento é a forma com que reage a estímulos e os atributos são suas características, que podem mudar de acordo com seu comportamento. * * * Conceitos Básicos - Objeto Exemplos: Concretos: pessoa, lápis, carro, etc. Intangíveis: hora, projeto, organização, etc. Personagem: médico, professor, etc. Relacional: casamento, parceiro, propriedade. Evento: venda, defeito do sistema. Interface Gráfica: janela, ícone, botão. * * * Conceitos Básicos - Objeto Exemplos: * * * Identidade: É o nome do objeto. Cada objeto é único. Exemplo: Aluno João, José, Maria... Componentes de um Objeto * * * Atributos (Características): É um conjunto de propriedades de um Objeto que podem mudar com o tempo. Exemplos: Idade de uma Pessoa Saldo de um Cliente Quantidade de Alunos de uma Turma Se uma Pessoa está Falando (s/n) Componentes de um Objeto * * * Comportamento (Operações ou Métodos): Lógica contida em um objeto para designar-lhe um comportamento. É como o objeto responde a outro objeto. Também chamado de Método, Comportamento, Procedimento, Função, etc. Exemplo: adicionarAluno calcularSaldoDevedor Componentes de um Objeto * * * Conceitos Básicos - Objeto Exemplos: * * * Conceitos Básicos - Classe É uma coleção de objetos É a descrição formal de um conjunto de objetos Objetos que obedecem à mesma especificação * * * Conceitos Básicos - Classe Exemplos: Classe – Veículo Objeto da Classe – Mercedes do Bruno Classe – Pessoa Objeto da Classe – João Obs.: Um objeto também é chamado de instância da classe. * * * Definição É um conjunto de Objetos que possuem estados semelhantes (mesma lista de atributos), comportamento comum (mesmas operações) e relacionamentos comuns com outros objetos. “A estrutura de um software é formada pelas classes do sistema. Analogamente ao esqueleto dos animais, as classes formam uma armação que dá a sustentação e a forma ao sistema” José Eduardo Deboni Classe * * * Computador Quantas classes podemos definir? Exercício * * * Atributos e Operações de um Objeto devem estar armazenados no próprio Objeto. Dizemos que eles estão encapsulados no Objeto. A função do encapsulamento é proteger os dados do acesso descontrolado. O acesso é realizado por intermédio de mensagens (execução das operações) trocadas entre os objetos. As operações funcionam como serviços que o objeto fornece ao mundo exterior. Exemplo: Atributo – data do nascimento, Operação – cálculo da idade (data do nascimento) . Encapsulamento * * * TELEVISÃO DVD Cada aparelho com suas funções A integração entre eles ocorre pela ligação da saída de um objeto à entrada do outro. Com isto o DVD pode usar a TELEVISÃO para reproduzir imagens. Exemplo: Encapsulamento * * * Definição: Situação de um objeto em um dado instante do tempo. Exemplo(s): Objeto: Nota Fiscal Estado: Emitindo Nota Fiscal Objeto: Pizza Estado: Entregando Pizza Estado * * * Definição: Uma solicitação entre objetos para invocar certa operação. Encapsulamento * * * A comunicação entre os objetos ocorre pela troca de mensagens Um objeto solicita informações de outro objeto para realizar suas funções Uma mensagem é a execução de uma operação Uma mensagem pode ou não enviar parâmetros para outro objeto, bem como receber ou não uma resposta do mesmo. Mensagens * * * É a capacidade de um novo objeto (filho) tomar (herdar) características e comportamentos de um objeto(pai) já existente. Herança * * * É uma característica que as classes de objetos podem possuir de modo que uma classe pode ser gerada a partir de outra classe herdando dela suas propriedades (atributos, operações) A herança permite que as propriedades da classe mãe possam ser expandidas para a classe filha incluindo novas características O uso de herança permite criar classes mais genéricas A herança aumenta a capacidade de reutilização das classes Herança * * * Exemplo 1: Classe pai – Automóvel Classe filha – Porshe Porshe herda características e comportamentos da classe automóvel. Atributos do Automóvel: Potência, capacidade de passageiros. Atributos do Porshe: Turbo. Herança * * * Exemplo 2: Classe pai – Pessoa Classe filha – Cliente do Banco Cliente herda características e comportamentos da classe Pessoa. Herança * * * Definição: Classe que herda as características da Classe pai. É o mesmo que Classe filha. Ex: Classe: Árvore Subclasses: Ipê, Eucalipto, etc. Subclasse * * * Herança Exemplo: * * * Classes Nomes no Singular Sem hífen, tracinhos ou espaços Sem Preposições (de, para, do, com, etc) Não usar palavras desgastadas (Tabela, Cadastro, etc) Para vários nomes usar 1ª letra Maiúscula e demais minúsculas Exemplos: Cliente, ProdutoEstoque, PessoaJuridica Padrões para Nomes de Classes * * * Símbolos para uma classe * * * Atributos Sem hífen, tracinhos ou espaços Sem Preposições (de, para, do, com, etc) 1ª letra minúscula (para o caso de vários nomes, a 1ª letra dos demais nomes devem ser maiúsculas). Exemplos: idade nomeCliente sldDevedor qtdAlunosMatriculados Padrões para Nomes de Atributos * * * Operadores (Métodos) Sem hífen, tracinhos ou espaços Sem Preposições (de, para, do, com, etc) Verbos no infinitivo (...ar, ...er, ...ir, etc) Sempre colocar Verbo + Sujeito 1ª letra minúscula (para o caso de vários nomes, a 1ª letra dos demais nomes devem ser maiúsculas). Exemplos: calcularSaldoDevedor imprimirBoleto Padrões para Nomes de Operadores * * * Identifique as Classes e coloque atributos para os seguintes problemas: 1) Sistema de controle de uma biblioteca É um sistema de suporte para uma biblioteca A biblioteca empresta livros e revistas para clientes, que são registrados no sistema, no qual também estão registrados os livros e as revistas A biblioteca controla a compra de novos títulos. De títulos populares compra-se várias cópias. Livros antigos e revistas são removidos quando estão ultrapassados ou deteriorados Bibliotecário é um funcionário da biblioteca que interage com os clientes e seu trabalho é auxiliado pelo sistema Exercícios * * * (continuação) Um cliente pode reservar um livro ou revista que não está disponível no momento na biblioteca, de forma que quando ele for devolvido ou comprado pela biblioteca, o cliente é avisado. A reserva é cancelada quando o cliente retira o livro ou revista, ou através de um processo exclusivo de cancelamento A biblioteca pode facilmente criar, atualizar, e apagar informações sobre seus títulos, clientes, empréstimos, e reservas no sistema O sistema pode rodar em todos os ambientes populares (UNIX, Linux, windows, etc) e tem uma interface gráfica (GUI) moderna O sistema deve ser facilmente estendido com novas funcionalidades O sistema deve lidar com a mensagem que é enviada ao cliente quando um título reservado torna-se disponível, e precisa checar se um determinado título está ultrapassado ou deteriorado. Exercícios * * * 2) Sistema de controle de uma máquina que vende Coca-Cola O sistema deve estar preparado para receber e conferir o dinheiro colocado pelo Cliente, inclusive para dar o troco. Deve controlar a recarga de refrigerantes pelo Técnico, bem como o recolhimento do dinheiro da máquina. Exercícios * * * 3) Sistema Bancário Um cliente poderá abrir uma conta, depositar, fazer saques (manual e automático), consultar saldo, alterar sua senha e aplicar em fundos (em terminais ou Internet). O gerente fará a abertura da conta e a consulta ao saldo do cliente. O caixa fará o saque manual, a alteração da senha e a consulta ao saldo. Exercícios * * * O Diagrama de classes mostra as classes de um sistema e seus relacionamentos. Representação Gráfica O símbolo gráfico utilizado para representar uma classe é uma caixa, possivelmente dividida em compartimentos. Diagrama de Classes * * * Esses compartimentos são utilizados em diferentes situações, dependendo se a classe pertence a um modelo de análise, design ou implementação. O primeiro compartimento é chamado de compartimento do nome, contendo o nome da classe. Os compartimentos seguintes são chamados de compartimentos de listas, podendo acomodar listas de atributos ou operações. Diagrama de Classes * * * Compartimento de Atributos Utilizado para mostrar os atributos de uma classe. A sintaxe padrão para a descrição dos atributos nesse compartimento é: nomeAtributo: tipoAtributo Diagrama de Classes * * * Compartimento de Operadores (Métodos) Mostra as operações definidas para uma classe e/ou os métodos supridos por uma classe. Sua sintaxe padrão é: nomeOperacao (lista de parâmetros): tipoParametroRetorno Cada elemento da lista de parâmetros tem a seguinte sintaxe: TipoParametro nomeParametro Diagrama de Classes * * * Compartimento de Operadores (Métodos) Exemplo: Diagrama de Classes * * * Relacionamento entre Classes Classes e objetos podem estar conectados por algum tipo de relacionamento. Podem ser: Associações Agregações Composições Generalizações (Herança) Diagrama de Classes - Relacionamentos * * * Associações Associações simples representam que existe alguma conexão entre dois elementos de uma classe, de tal forma que um deve manter alguma referência ao outro. Associações simples são representadas na forma de uma linha cheia conectando as duas classes. As extremidades da associação podem possuir uma multiplicidade.0 Diagrama de Classes - Relacionamentos * * * Associações Exemplo(s): Diagrama de Classes - Relacionamentos * * * Agregação Agregações são um tipo especial de associação onde o elemento associado corresponde a uma parte do elemento principal. Exemplo(s): Diagrama de Classes - Relacionamentos * * * Composição Composições são um tipo especial de agregação onde a parte indicada deve necessariamente existir. A diferença básica entre uma agregação e uma composição é que na agregação, o número de partes associadas à classe principal é variável e pouco importa. No caso de uma composição, o número de objetos associados é definido, de tal forma que não faz sentido pensarmos o objeto da classe principal sem os objetos que o compõem. O todo existe enquanto as partes também existem. Quando o objeto da classe principal for destruído, os objetos que o compõem necessariamente também o serão. Diagrama de Classes - Relacionamentos * * * Composição Exemplo(s): Parede Quarto Chão Janela Diagrama de Classes - Relacionamentos * * * Classe de Associação Uma classe de associação é utilizada quando uma associação necessita de atributos e/ou operações. Uma classe de associação está ligada à associação entre duas classes. Exemplo(s): Diagrama de Classes - Relacionamentos * * * Considere um programa para gerenciar clientes, empregados e fornecedores de uma empresa. Para cada tipo de objetos criamos uma classe com atributos e métodos. Exemplo Classes Pessoa e Empregado: Diagrama de Classes – Generalização ou Herança * * * Comparando as classes, observamos que: Ambas possuem os atributos nome e sexo. Ambas oferecem os mesmos métodos para buscar o nome e o sexo (devolveNome(),devolveSexo()). A classe Empregado “adiciona” um novo atributo para armazenar o salário, e os métodos específicos de um empregado. Portanto podemos dizer que um empregado é uma pessoa com algumas “coisas” a mais. Seria interessante se não precisássemos repetir na classe Empregado o código comum à classe Pessoa. Isto é possível se definirmos que a classe Empregado herda as características da classe Pessoa. Diagrama de Classes – Generalização ou Herança * * * Representação Gráfica Diagrama de Classes – Generalização ou Herança * * * Exercícios 1. Organize hierarquicamente em um diagrama as seguintes classes: MembroDaUniversidade, Professor, Coordenador, Empregado, Ex-aluno, CorpoDiscente, AlunoDeGraduacao, AlunoDePosGraduacao, Funcionario, CorpoDocente. 2. Organize hierarquicamente em um diagrama as seguintes classes: VeiculoTerrestre, VeiculoAquático, VeiculoAutoMotor, Carro, Moto, Barco, NavioCargueiro, Caminhão, VeiculoAnfibio, Submarino, VeiculoAereo, Aviao, HidroAviao. Diagrama de Classes – Generalização ou Herança * * * Fazer o Diagrama de Classes dos exercícios: Biblioteca Máquina Coca-Cola Sistema Bancário Diagrama de Classes – Exercícios * * * Exemplo: Estudo de Caso 1 – Sistema de Empréstimos Exercícios: Estudo de Caso 2 – Revenda de Celulares Diagrama de Classes
Compartilhar