Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* Aula 1 - Conceitos de Orientação a Objetos e UML Bibliografia: MELO, Ana Cristina. Desenvolvendo Aplicações com UML 2.0 – Do conceitual à implementação. Rio de Janeiro: Brasport, 2004. Capítulo 1. * Estruturado x OO Qual é o foco no Paradigma Estruturado ? Qual é o foco no Paradigma Orientado a Objetos ? * Objeto O que é um objeto Definição: um objeto é a abstração de elementos concretos ou abstratos, existentes no mundo real. * Objeto Atributos e operações Um objeto é composto por características (atributos) e serviços (operações) Exemplos: Atributos ... - nº de portas = 2 - cor = vermelho - ano = 1995 - etc. Operações ... - Ligar - Acender os faróis - Travar Portas - etc. * Objeto Estrutura e comportamento Os atributos definem sua estrutura e as operações o seu comportamento * Objeto Método O método corresponde a implementação (subprograma) de uma operação Procedimento Função * Objeto Estado Corresponde ao conjunto de valores dos atributos de um objeto * Classe O que é uma Classe ? É a representação de um conjunto de objetos que possuem características semelhantes e compartilham a mesma estrutura * Classe Uma classe contém a descrição da estrutura (atributos) e do comportamento (serviços) de suas instâncias (objetos) * Classe * Classe Tipos de Classes Classes de Negócio (ou do domínio do problema) Entidade de software que representa uma abstração de alguma coisa no domínio do problema que precisamos modelar Classes de Implementação (necessárias à construção do software) Classes de interface; e Classes de acesso a dados (persistência). Entidades de software necessárias para a construção de sistemas Orientados a Objetos, conectando, por exemplo, os objetos de negócio ao mundo exterior (interface) e ao mecanismo de banco de dados * Arquitetura de Classes * Classe de Negócio * Classe de Interação * Mensagem para um Objeto É o pedido de um objeto para um outro objeto receptor executar o método indicado e retornar, ou não, o resultado da ação * Conceitos Relevantes Encapsulamento Hierarquia (Herança e Agregação) Polimorfismo * Encapsulamento Significa ocultar o estado do objeto e a implementação de suas operações. (Vantagens – manutenção) * Hierarquia Tipos de hierarquia Herança (“é um”) Composição ou Agregação (“é parte de”) * Herança É a capacidade de uma nova classe em herdar atributos e métodos pertencentes a uma classe existente, consistindo num mecanismo que proporciona reusabilidade e extensibilidade A estrutura de herança organiza as classes em relações de generalização e especialização Subclasses especializam uma classe Superclasses generalizam uma classe * Herança Classes de Interface * Herança * Classes Abstratas São classes sem instâncias, ou seja, sem objetos, cujo propósito é prover características comuns para suas subclasses e padronizar suas interfaces * Classes Abstratas nome endereço data_nascimento procedimento incluir dados pessoais função obter nome .......... classe-pessoa fim-classe privativo público * Composição Um objeto composto contém como atributos, os de outros objetos de sua ou de outras classes Sua característica básica é a dependência entre o todo e a parte, pois se o “todo” deixar de existir as partes também o deixam, pois aquele é composto por estas Um bom teste para identificar uma composição é fazer duas perguntas : Se matar o todo mato as partes ? O relacionamento das partes passa pelo todo ? * Composição * Agregação A agregação é semelhante a composição, todavia a parte vive sem o todo, ou seja, se não existir o todo, a parte continuará existindo * Polimorfismo Objetos de classes distintas podem realizar operações conceitualmente iguais, mas com implementações diferentes Representa as várias formas que um método pode assumir * Vantagens Implementa o conceito de delegação Evita construções case (if...then, else if...then, else if...then) Simplifica a introdução de novos tipos (subclasses) Conceitualmente mais intuitivo Para uma mesma mensagem (chamada de método) pode haver várias operações polimórficas Uma mensagem pode ser enviada a um conjunto de objetos de classes distintas; cada objeto responde ativando sua própria operação * Polimorfismo Aluno matrícula nome mensalidade Incluir Aluno Consultar Mensalidade a Pagar Aluno_ Auxiliar % desconto na mensalidade Consultar Mensalidade a Pagar Aluno_Bolsista Órgão provedor Duração da bolsa Incluir Aluno_Bolsista * Princípios de OO Delegação da responsabilidade do processamento aos objetos Comunicação exclusivamente através de mensagens * Associação Denotam o relacionamento semântico entre duas classes São semelhantes aos relacionamentos utilizados no modelo relacional Inclui modelagem de cardinalidades * Associação * Associação * Paradigma OO O que buscamos ao modelar orientado a objetos ? Melhor validação com o usuário Diminuição do tempo e custo de desenvolvimento Reutilização de código, facilidade de manutenção * * * X * Mecânica Fênix A empresa faz a manutenção de automóveis, e está automatizando o seu controle administrativo. Ao procurar a Fênix, um cliente é recebido, e, em primeiro lugar, realiza-se um exame prévio, de onde resulta um orçamento com a descrição dos serviços e peças necessárias. Caso o cliente autorize a execução do serviço, ele é encaminhado a um mecânico, e será aberta uma ficha de serviço. Esta ficha contém o nome do proprietário, seu endereço, CGC ou CPF. Constam ainda desta ficha as peças a serem substituídas, seu código, quantidade, serviço de mão de obra executado, data e hora da entrada e saída. As peças estocadas na Fênix são acessadas pelo seu código, ou nome, e também tem a sua descrição, veículos que a utilizam, quantidade em estoque, preço de venda e preço e data da compra. Sobre os fornecedores são guardados o seu endereço, CGC, quantidade mínima por pedido, prazo de entrega, forma de pagamento, e preço unitário. Os serviços de mão de obra são tabelados contendo todas as peças necessárias, seu preço, tempo médio de execução, e mecânicos capacitados para fazê-lo. Ao término da execução do serviço é emitida uma Nota Fiscal de saída com os dados do cliente, seu carro, e serviços e peças utilizadas. Após isto, dá-se baixa no estoque, cadastra-se o cliente e veículo, se ainda não o fizeram. * Questões para revisão Objeto Classe (atributos e operações) Encapsulamento Hierarquia (Herança e Agregação) Polimorfismo * Linguagem de Modelagem Unificada - UML Bibliografia: MELO, Ana Cristina. Desenvolvendo Aplicações com UML 2.0 – Do conceitual à implementação. Rio de Janeiro: Brasport, 2004. Capítulo 2. * UML O que é UML ? UML significa “Linguagem de Modelagem Unificada” (notação com semântica associada) e é a padronização da linguagem de desenvolvimento orientado a objetos para visualização, especificação, construção e documentação de sistemas UML não é uma metodologia, pois não diz quem deve fazer o quê, quando e como UML pode ser usado segundo diferentes metodologias, tais como RUP (Rational Unified Process), FDD (Feature Driven Development), etc. UML não é uma linguagem de programação * UML Histórico Década de 90, muitos métodos disputavam o mercado Os principais métodos eram: . Booch (Grady Booch - Rational) . OMT (Rumbaugh - GE) . OOSE (Jacobson - Objectory) * UML Histórico Booch, OMT e OOSE Individualmente possuíam pontos fortes, mas com vários pontos em comum Os três autores decidiram unificar seus métodos ( Rational ) * UML Histórico * UML Histórico * UML Origens * UML Parceiros * Valor da UML É um padrão aberto Suporta todo o ciclo de vida do software modelagem do negócio (processos e objetos do negócio) modelagem de requisitos alocados ao software Modelagem da solução de software Suporta diversas áreas de aplicação É baseado na experiência e necessidades da comunidade de utilizadores É suportado por muitas ferramentas * Conceitos Básicos da UML Visões Diagramas Elementos do Modelo Recursos Genéricos * Visões Uma visão representa um aspecto específico do sistema Diferentes aspectos do sistema a ser modelado por meio de várias visões Nem sempre todas as visões são necessárias * Modelos e Diagramas Um modelo é uma representação em pequena escala, numa perspectiva particular, de um sistema existente ou a criar A aplicação do conceito de abstração (omissão de detalhes) é fundamental na construção de um modelo Modelos são a linguagem por excelência do projetista (designer) Modelos são veículos para comunicação com vários interessados (stakeholders) Modelos permitem raciocinar acerca do sistema real, sem o chegar a construir Ao longo do ciclo de vida de um sistema são construídos vários modelos, sucessivamente refinados e enriquecidos * Modelos e Diagramas Um modelo/visão é constituído por um conjunto de diagramas (desenhos) consistentes entre si, acompanhados de descrições textuais dos elementos que aparecem nos vários diagramas Um diagrama é parte de um modelo/visão e descreve o seu conteúdo Diagramas usam elementos para representar conceitos, e o mesmo elemento (exemplo: classe) pode aparecer em vários diagramas de um modelo No UML, há treze diagramas (Eram 9 na versão 1.4) Diagramas estruturais: classes, objetos, componentes, pacotes, implantação e estrutura composta Diagramas de visão dinâmica: casos de uso, interação (visão geral, sequência, temporal, comunicação (colaboração)), atividades e máquinas de estado * UML Modelos * Elementos Básicos do Modelo . Estruturais (classes, interfaces, colaborações, casos de uso, classes ativas, componentes, nós) . Comportamentais (interação, estado) . Agrupamento (pacotes) . Anotacionais (notas) Fonte: Grady Booch * Elementos Básicos do Modelo Relacionamentos . dependência, associação, generalização, realização * Elementos Básicos do Modelo Mecanismos de extensibilidade Estereótipos Propriedades (tagged values) Restrições (constraints) * Diagrama de Casos de Uso Captura a funcionalidade do sistema tal como é visto pelos utilizadores Construído nos primeiros estágios do desenvolvimento Objetivo Especificar o contexto de um sistema Capturar os requisitos funcionais de um sistema Validar a arquitetura de um sistema Dirigir a implementação e gerar casos de teste Desenvolvido por analistas e especialistas de domínio * Diagrama de Casos de Uso * Diagrama de Classes Captura o vocabulário de um sistema Construído e refinado ao longo do desenvolvimento Objetivo Nomear e modelar conceitos no sistema Especificar colaborações Especificar esquemas lógicos de bases de dados Desenvolvido por analistas, designers e implementadores * Diagrama de Classes * Diagrama de Sequência Captura comportamento dinâmico (troca de mensagens entre objetos) Objetivo Modelar fluxos de controle Ilustrar cenários típicos dos casos de uso, representando sua implementação * Diagrama de Sequência * Diagrama de Implantação Captura a topologia do hardware de um sistema Construído como parte da especificação da arquitetura Objetivo Especificar a distribuição de componentes Identificar estrangulamentos de desempenho Desenvolvido por arquitetos, engenheiros de redes, e engenheiros de sistemas * Diagrama de Implantação * * * * * * Questões para revisão UML O que é ? Valor ? Visões Elementos básicos Modelos e Diagramas
Compartilhar