A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um.

Apresentações semelhantes


Apresentação em tema: "Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um."— Transcrição da apresentação:

1 Modelagem Orientada a Objeto - UML

2 A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos. Objetivo

3 Estruturada x Essencial x Orientada a Objeto Nos métodos de análise estruturada e essencial, o comportamento do sistema e seus dados são considerados separadamente. Na orientação a objetos, comportamento e dados são integrados, encapsulando detalhes internos de um objeto.

4 Estruturada x Essencial x Orientada a Objeto

5 Análise Orientada a Objetos Enxerga o mundo como objetos com estrutura de dados e comportamentos; O objetivo é desenvolver uma série de modelos de análise, satisfazendo um conjunto de requisitos definidos pelo cliente.

6 Análise Orientada a Objetos A abordagem OO se preocupa: ◦ Identificar os objetos a partir do domínio da aplicação; ◦ Encaixar os funções “ao redor” destes objetos, comportamentos; conceitos de OO podem ser aplicados em todo o ciclo de vida do desenvolvimento do sistema.

7 Introdução Programação Orientada a Objetos: ◦ Criado por Alan Kay, autor da linguagem de programação Smalltalk; ◦ Em 1967, conceitos de OO já eram aplicado através da linguagem Simula. Orientação a objetos apesar de antiga não era utilizada por falta de pessoas treinadas, interesse em manter a cultura adquirida.

8 Introdução O mundo real é composto por objetos. Cada objeto tem propriedades e comportamentos. Segundo Yourdon, “Um sistema construído usando um método Orientado a Objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamentos de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens.”

9 Introdução Objetos como entidades do mundo real; Dificuldades em fazer alterações nas estruturas de dados nas abordagens tradicionais. “Se eu alterar a definição desse dado, quais programas serão afetados?” Trabalha com conceitos já conhecidos - Modularidade, Abstração, Encapsulamento, etc.

10 Introdução Um programa é uma coleção de objetos dizendo uns aos outros o que fazer. Para fazer uma requisição a um objeto você “manda uma mensagem” para este objeto. Mensagem = Procedimento = Função (pertencente a um objeto em particular)

11 Introdução Um objeto pode ser composto por vários outros objetos; Você pode criar um novo tipo de objeto empacotando objetos existentes; Todo objeto tem um tipo. Cada objeto é uma instância de uma classe, onde classe é um sinônimo de tipo.

12 Conceitos fundamentais Abstração Classe Objetos Atributo Herança Encapsulamento Polimorfismo

13 Abstração Uma abstração é qualquer modelo que inclui os aspectos relevantes de alguma coisa, ao mesmo tempo em que ignora os menos importantes.

14 Ex: Entidade Pessoa-Sistema Folha de Pagamento Atributo: Cor dos olhos e nome(toda pessoa tem) Porém, cor dos olhos não é relevante para o sistema. Abstração

15 Abstração: exemplo Telefone Identidade:: número Características: azul 2.4 GHz tone Comportamento: tocar discar

16 Abstração: exemplo Ônibus Identidade: placa LXY 7684 Características: cor amarela 30 assentos a diesel Comportamento: frear andar correr buzinar acelerar

17 Encapsulamento: Processo de ocultamento de partes internas da implementação de um objeto e permissão de acesso ao estado do objeto somente através de uma interface bem definida. proíbe-nos de mexer diretamente nos dados internos de um objeto. Assim, todas as comunicações com os objetos são feitas através do envio de mensagens. Conceitos fundamentais

18 Encapsulamento Vantagem: ◦ toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados; ◦ protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados.

19 Encapsulamento Uma interface pode ter várias formas de implementação. Princípio: a implementação de um serviço no objeto servidor não importa para o objeto cliente. (O cliente confia em interfaces e não em implementações)

20 Classe Definição: ◦ Abstrações utilizadas para representar um conjunto de objetos com características e comportamento idênticos Uma classe pode ser vista como uma “fábrica de objetos”

21 Classe: exemplo Características: cor das penas: azuis formato do bico: fino velocidade de vôo: rápida Comportamento: voar piar Identidade:: o beija-flor que vem ao meu jardim classe instância da classe (objeto)

22 Classe Subclasse é uma nova classe que herda características de sua(s) classe(s) pai

23 Classes Classe Instâncias (objetos)

24 Objeto: “instâncias” em tempo de execução de uma classe. Um objeto pode ser real ou abstrato; Todos os objetos de uma classe são idênticos no que diz respeito a sua interface e implementação (o que difere um objeto de outro é seu estado e sua identidade). Objeto

25 Objeto Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.

26 Objeto Representação Mário Características (estado) Comportamento Identidade Serviços ou Interface

27 Exercício Identifique as classes e objetos: Na escola Fucapi é realizado processo de matrícula de alunos. Um aluno se desloca a secretaria da instituição. O aluno solicita a realização da matrícula à secretária. O aluno informa o curso(nome) e disciplinas(nome, carga horária, professor).

28 Atributos Descrevem as características das instâncias de uma classe Seus valores definem o estado do objeto O estado de um objeto pode mudar ao longo de sua existência A identidade de um objeto, contudo, nunca muda Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = InformarSalário CalcularIdade Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = InformarSalário CalcularIdade

29 Serviços/Operações/Métodos Representam o comportamento das instâncias de uma classe Correspondem as ações das instâncias de uma classe Funcionário_Helena Nome=Helena Reis Nasc=28/01/1965 Salário = InformarSalário CalcularIdade Funcionário_Mário Nome=Mário Sá Nasc=16/02/1970 Salário = InformarSalário CalcularIdade Informar Salário?

30 Bidu é uma instância da classe Cachorro: latir, implementada através do método latir(); Um método em uma classe é apenas uma definição; A ação só ocorre quando o método é invocado através do objeto, no caso Bidu; Dentro do programa, a utilização de um método deve afetar apenas um objeto em particular. Todos os cachorros podem latir, mas você quer que apenas Bidu dê o latido. Método

31 Modos de Visibilidade/Acesso Pode-se controlar a manipulação de atributos e operações (membros); Modificadores:

32 Modificador private Um membro qualificado como private somente é acessível a partir de métodos da própria classe à qual pertence o membro.

33 Modificador public Um membro qualificado como public é acessível a partir de qualquer operação de qualquer classe, independentemente de subclasse e de pacote.

34 Modificador protected Um membro qualificado como protected é acessível a partir de qualquer operação de qualquer classe, exceto se a classe de acesso estiver em pacote distinto e não for subclasse da classe à qual pertence o membro.

35 Subclasse herda a estrutura e/ou comportamento de uma ou mais superclasses; Relação entre Classes de Objetos, e não uma relação entre instância das Classes. Ex. Herança Mamífero CachorroGato

36 Herança Para que serve a herança? Considere a criação de uma classe ClasseB; Que métodos estão disponíveis através de uma referência para a ClasseB (isto é, um objeto)?

37 Herança Suponha agora que a classe ClasseB herda de ClasseA; Que métodos estão agora disponíveis para uma referência da ClasseB (um objeto) ?

38 Herança Poderoso mecanismo para o reaproveitamento de código; O objeto objB tem agora disponíveis os métodos da ClasseA sem ser necessário reescrevê-los na ClasseB Um objeto da ClasseB também é um objeto da ClasseA. Facilita a manutenção do código: Os métodos não são replicados. Se for necessário alterar o código do método m3, basta alterá-lo em ClasseA. ClasseB pode "recusar" parte da herança reimplementando os métodos herdados

39 Herança Tipos de Herança Herança simples é quando uma subclasse herda estrutura e/ou comportamento de uma única superclasse. Herança múltipla é quando uma subclasse herda estrutura e/ou comportamento de mais de uma superclasse.

40 Herança Refatoração Superclasse (características comuns) Subclasses (características específicas)

41 Herança Uma subclasse herda: Atributos, Operações, Relacionamentos. Uma subclasse pode: ◦ Adicionar novos atributos, operações e relacionamentos. ◦ Redefinir operações herdadas.

42 Classes ancestrais: classes das quais as outras dependem. Classes descendentes: as classes originadas a partir de outra. Herança

43 Classes Abstratas(pura): classes cujos objetos nunca são instanciados diretamente, mas sempre por uma classe descendente dela. Não possuem um comportamento. Classes Abstratas

44

45 Generalização Capacidade de se criar superclasses que encapsulam estrutura e/ou comportamento comuns a várias subclasses.

46 Generalização Relacionamento entre uma classe e uma ou mais versões refinadas ou especializadas da classe. Especialização: relacionamento inverso; Superclasse: versão mais abstrata de outra classe, a subclasse; Subclasse: versão mais refinada de outra classe, a superclasse.

47 Automóvel esportivo Porsche Generalização Especificação Conceitos fundamentais

48 Polimorfismo: princípio relacionado com as diferentes formas de um objeto. Onde se pode instanciar o objeto de várias formas: Conceitos fundamentais

49 Polimorfismo Assume muitas formas; A subclasse redefine a implementação de uma operação herdada da superclasse; Onde se espera uma instância de um certa classe pode aparecer uma instância de qualquer subclasse daquela classe.

50 Polimorfismo Trata objetos na mesma hierarquia de classes como se todos fossem objetos da superclasse; Tornam o programa extensível: ◦ Facilidade para adicionar novas classes Invoca os métodos das subclasses usando referências para a superclasse.

51 Polimorfismo Conceito Chave Objetos das subclasses podem ser tratados como objetos da superclasse A classe B É UMA classe A  Um objeto da classe B pode ser usado em qualquer lugar onde um objeto A é esperado. BA

52 Geralmente identificado por um substantivo; Contém estrutura e comportamento; Dois objetos são distintos, mesmo que eles apresentem as mesmas características.  Ex: 1 dezena de automóveis Astra  Cada automóvel é um objeto!  Todos tem a mesma característica! Classes são fábricas de objetos. Identificando Objetos

53 UML: definição UML ◦ Linguagem visual para especificação (modelagem) de sistemas orientados a objetos.

54 Fornece representação gráfica para os elementos essenciais do paradigma orientado a objetos; Usada para visualizar, especificar, documentar e construir os artefatos de um sistema. UML

55 O que é UML ? Metodologia :. LINGUAGEM GRÁFICA. MÉTODO + UML UML diz o que pode ser feito mas não diz como deve ser feito. É independente de processo. UML diz o que pode ser feito mas não diz como deve ser feito. É independente de processo.

56 Não está presa a uma etapa do desenvolvimento de software: ◦ Análise ◦ Projeto ◦ Implementação ◦ Testes UML

57 Não está presa a um Processo de Desenvolvimento de Software ◦ Ciclo de Vida em Cascata ◦ Incremental ◦ Processo Unificado UML

58 Privilegia a descrição de um sistema segundo três perspectivas: ◦ Dados (estrutural)  Diagrama de Classes ◦ Operações (funcional)  Diagrama de Caso de Uso ◦ Eventos (temporal)  Diagrama de Seqüência, Atividades, de Transição, de Estados. UML

59 Notação da UML Diagramas: ◦ gráficos que descrevem o conteúdo em uma visão.

60 UML - Diagramas Modelagem de estruturas estáticas: ◦ Diagrama de Casos de Uso; ◦ Diagrama de Classes; ◦ Diagrama de Objetos; ◦ Diagrama de Componente; ◦ Diagrama de Implantação

61 UML - Diagramas Modelagem de estruturas Dinâmicas: ◦ Diagramas de Interação  Diagrama de Seqüência.  Diagrama de Colaboração. ◦ Diagramas de Estado. ◦ Diagramas de Atividade.

62 UML: ferramentas CASE FerramentasLicensa 1Rational Roseproprietária 2TogetherSoft ControlCenterproprietária 3Argo UMLlivre 4Poseidonlivre 5JudeProprietária/livre 6Outras


Carregar ppt "Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um."

Apresentações semelhantes


Anúncios Google