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

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

Orientação a Objetos Alcides Calsavara

Cópias: 1
Modelagem Orientada a Objetos Relacionamentos. Conteúdo n Ligação entre objetos n Associação entre classes n Agregação n Multiplicidade e Papel n Atributo.

Apresentações semelhantes


Apresentação em tema: "Orientação a Objetos Alcides Calsavara"— Transcrição da apresentação:

1 Orientação a Objetos Alcides Calsavara

2 Objetivo n Estudar técnicas e ferramentas para análise, projeto e implementação de sistemas orientados a objetos (OO)

3 Ementa n Conceituação de OO n Método para modelagem OO –Modelagem de Objetos –Modelagem Dinâmica –Modelagem Funcional n Programação OO

4 Bibliografia Básica n James Rumbaugh et al. Modelagem e Projetos Baseados em Objetos. Editora Campus, ISBN X. n Grady Booch. Object-Oriented Analysis and Design with Applications. Second Edition. Addison-Wesley, ISBN n Ivar Jacobson. Object-Oriented Software Engineering - a Use Case Driven approach. Addison-Wesley, ISBN n Peter Coad. Objet Models - Strategies, Patterns & Applications. Prentice-Hall, ISBN n Dennis de Champeaux. Object-Oriented Development Process and Metrics. Prentice-Hall, ISBN n Gregory Satir and Doug Brown. C++ : The Core Language. OReilly & Associates, ISBN X.

5 Bibliografia Complementar n Jag Sodhi and Prince Sodhi. Object-Oriented Methos for Software Development. McGraw Hill, ISBN n Chris Zimmermann (Ed). Advances in Object-Oriented Metalevel Architectures and Reflection. CRC Pr, ISBN X. n Jonathan Pletzke. Advanced Smalltalk.. John Wiley & Sons, ISBN n Al Stevens. C++ Database Development. Mis Pr, ISBN n Grady Booch and Ed Eykholt (Eds). The Best of Booch: Designing Strategies for Object Technology. Prentice-Hall, ISBN

6 Grupo de Usuários da Tecnologia de Objetos (GUTO) n Página WWW n Lista de discussões Mensagem para: Com conteúdo: sub GUTO-L

7 Conceitos de OO Modelagem de Objetos

8 Vantagens n Independência de implementação n Esconder detalhes n Flexibilidade n Clareza conceitual n Modularização n Reusabilidade

9 Áreas de aplicação n Linguagens de programação n Bancos de dados n Sistemas operacionais n Sistemas distribuídos n Interface gráfica n Métodos de modelagem de sistemas n Métodos formais: Z++ n Empacotamento de software: classes, componentes n Integração de sistemas: CORBA, DCOM n Reflexão: tolerância a falhas, reconfiguração

10 Conceitos fundamentais n Objeto n Identidade n Encapsulamento n Classificação/Instanciação n Generalização/Especialização n Herança n Polimorfismo

11 Objeto n Um conceito, uma abstração, algo com limites e significados definidos para o problema em questão n Um objeto do mundo real n Um conjunto de atributos (estado) e métodos (comportamento) n Uma instância de uma classe

12 Identidade n Característica peculiar de um objeto que denota a existência em separado do objeto, mesmo que ele tenha os mesmos valores de atributos de outro objeto n Uma identificação única de cada objeto

13 Encapsulamento n Técnica de modelagem e implementação que separa os aspectos externos de um objeto dos detalhes internos de implementação do mesmo objeto n Os atributos (estado) de objeto só é modificável a partir de seus métodos (interface)

14 Atributo n Propriedade denominada de uma classe, que descreve o valor de um dado contido por cada objeto da classe n Todo atributo tem um tipo e, opcionalmente, um valor default inicial n Cada instância de uma classe possui todos os atributos definidos pela classe

15 Método (ou Operação) n Função ou transformação que pode ser aplicada aos objetos de uma classe n Todo método definido para uma classe pode ser aplicado a qualquer instância daquela classe n Um método tem um nome, uma lista de argumentos, um tipo de retorno e uma implementação

16 Classe n Descrição de um grupo de objetos com propriedades semelhantes, comportamento, relacionamentos e semântica comuns n Instância: um objeto descrito por uma classe

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

18 Herança n Mecanismo baseado em objetos que permite que as classes compartilhem atributos e operações baseados em um relacionamento, geralmente generalização n Uma subclasse herda atributos e métodos da superclasse

19 Polimorfismo n Assume muitas formas n A propriedade segundo a qual uma operação (método) pode comportar-se diferentemente em classes diferentes n A subclasse redefine a implementação de um método herdado da superclasse n Onde se espera uma instância de um certa classe pode aparecer uma instância de qualquer subclasse daquela classe

20 Exemplos/Exercícios n Componentes de uma interface gráfica: botões, menus, barras,... n Pessoas: aluno, professor, secretária, reitor n Veículos: bicicleta, veleiro, carro, caminhão, avião, planador, motocicleta, cavalo n Habitações: tenda, caverna, barraco, garagem, celeiro, casa, arranha-céu

21 Ligação n Uma conexão física ou conceitual entre objetos n Exemplo: O país Brasil tem como capital a cidade de Brasília. n Exemplo: O funcionário João trabalha na empresa Transamérica S.A. n Exemplo: O artigo OO Solutions foi publicado na conferencia OOPSLA99.

22 Associação n Relacionamento entre instâncias de duas ou mais classes descrevendo um grupo de ligações com estrutura e semântica comuns. n Exemplo: Um país tem como capital uma cidade. n Exemplo: Um funcionário trabalha numa empresa.

23 Agregação n Forma especial de associação, entre o todo e suas partes, na qual o todo é composto pelas partes n Também chamada de herança horizontal n Exemplo: Um artigo é publicado em uma conferência, isto é, o artigo faz parte da conferência (ou dos anais da conferência).

24 Multiplicidade e Papel n Multiplicidade: Número de instâncias de uma classe que podem se relacionar a uma única instância de um classe associada (ou agregada). n Papel: nome que identifica inequivocamente uma extremidade de uma associação.

25 Atributo de Ligação n Um valor de dados presente em cada ligação (nível de instâncias) de uma associação (nível de classes) n Uma propriedade da ligação entre objetos, e não dos objetos ligados, propriamente ditos n Exemplos: permissão de acesso que um usuário possui para a um arquivo; o salário de uma pessoa em um emprego em uma companhia

26 Associação como uma Classe n Cada ligação de uma associação é uma instância de uma classe n Uma ligação é um objeto, com atributos e métodos n Útil quando ligações podem participar em associações com outros objetos n Útil quando ligações sofrem operações n Exemplo: autorização para usuários em estações de trabalho

27 Associação Ternária n Representa ligações entre 3 objetos n Não pode ser dividida em associações binárias sem que haja perda de informações n Associações de grau maior que 3 são raras e devem ser evitadas devido a complexidade de entendimento e implementação n Exemplo: pessoas que são programadoras usam linguagens de programação em projetos

28 Ordenação em Associações n Em alguns casos o conjunto de objetos associados a um certo objeto apresenta uma ordem n A palavra "ordenado" deve aparecer junto à multiplicade "muitos" de uma associação para indicar que existe uma ordem entre os objetos ligados n Exemplos: as janelas visíveis em uma tela possuem uma ordem; os vértices de um polígono

29 Associação Qualificada n Relaciona dois objetos e um qualificador n O qualificador reduz a multiplicidade n Exemplo: Um diretório contém muitos arquivos, mas é o nome do arquivo dentro do diretório que identifica o arquivo (e identifica um único arquivo) n Maior precisão na informação!!

30 Uso de Agregação n Na dúvida, use associação! n Herança não representa o relacionamento parte-todo n Agregados recursivos são frequentes n Agregação normalmente implica em propagação de operações

31 Classes Abstratas e Concretas n Classe abstrata: classe que não pode ter instâncias diretas, mas cujos descendentes sim; organizam características comuns a diversas classes; mecanismo para reutilizar código; pode definir operações abstratas (sem um correspondente método) n Classe concreta: classe que pode ter instâncias diretas; não pode definir operações abstratas

32 Cancelamento para extensão n A nova operação é igual à operação herdada, exceto pelo fato de acrescentar alguns detalhes de comportamento, normalmente afetando novos atributos da subclasse.

33 Cancelamento para restrição n A nova operação restringe o protocolo (assinatura da operação), podendo reduzir os tipos de argumentos. n A operação herdada fica fechada (restrita) dentro de cada subclasse específica.

34 Cancelamento para otimização n O novo método tem o mesmo protocolo externo e apresenta o mesmos resultados n A implementação do novo método (algoritmo utilizado) pode ser completamente diferente

35 Cancelamento por conveniência n Emprego adhoc de herança para reutilizar classes. n Uma nova classe é tornada subclasse de uma classe existente e substitui os métodos inconvenientes. n Semanticamente errado e conduz a problemas de manutenção; recomenda- se criar uma terceira classe (superclasse das demais)

36 Herança Múltipla n Uma classe possui mais de uma subclasse e herda características de todos os seus ancestrais n Maior capacidade de especificação de classes n Maior oportunidade de reutilização n Perda em simplicidade conceitual e de implementação n Surgem classes de junção

37 Modelagem Dinâmica

38 Modelo Dinâmico n Representa os aspectos de um sistema relativos ao tempo e às modificações de estado n Abrangência: –interações –seqüência de operações –fluxo de controle

39 Controle de um sistema n Descreve as seqüências de operações que ocorrem em resposta a estímulos externos, sem consideração ao que as operações fazem, sobre o que elas atuam ou como são implementadas.

40 Conceitos fundamentais n EVENTO: representa um estímulo externo; conduz informação de um objeto para outro. n ESTADO: representa valores (atributos e ligações) de um objeto; estado externo do objeto. MÁQUINA DE ESTADOS FINITOS Permite especificação de controle

41 Diagrama de Estados n Representação gráfica de uma máquina de estados finitos n Representa o padrão de eventos, estados e transições de estados para uma classe n O modelo dinâmico de um sistema é composto por um conjunto de diagramas de estados, uma para cada classe. n Cada máquina de estado funciona de maneira independente; são combinadas através de eventos compartilhados.

42 Eventos n Um evento é algo que acontece "instantaneamente", em um certo momento. n Exemplos: –pressionar um botão do mouse –aparecer uma janela na tela –partida de um avião –chegada de um avião –tocar um telefone –atender ao telefone

43 Relacionamentos entre eventos n Causal: existe uma ordem entre os eventos. Exemplo: O vôo 123 deve partir de Chicago antes de chegar a São Francisco. n Concorrente : ordem dos eventos é irrelevante. Exemplo: O vôo 123 pode partir antes ou depois que o vôo 456 parta de Roma. (Se fosse "para Roma", deveríamos considerar se não usam a mesma pista.)

44 Classes de eventos n Indicam estrutura e comportamentos comuns a eventos. n Simplificam a construção de diagramas de estados. n Exemplo: classe partidas de aviões, com atributos linha aérea, número de vôo, cidade de origem, cidade destino. n O momento ocorrência de um eventos é um atributo implícito.

45 Cenário n Sequência de eventos que ocorrem durante uma determinada execução do sistema n Ilustra uma situação típica do sistema n Auxilia no entendimento do problema e na condução para uma representação geral (modelo dinâmico) n Diagrama de eventos: representação gráfica de um cenário. Exemplo: uma chamada telefônica.

46 Diagramas de Estados n Relaciona eventos e estados n Um objeto muda de estado dependendo do evento e do estado atual. n Transição: modificação de estado causada por um evento (mesmo quando estado final e inicial coincidem). n Um evento pode ser irrelevante para um objeto em um certo estado. n Exemplo: linha telefônica

47 Tipos de diagramas de estados n Diagrama de laço contínuo: representa um ciclo de vida; sem estado inicial ou final. Exemplo: linha telefônica. n Diagrama de uma só passagem: representa objetos com vida finita; possuem um estado inicial (criação do objeto) e um estado final (destruição do objeto). n Exemplo: jogo de xadrez

48 Condições n Uma condição é uma função booleana de valores, válida dentro de um intervalo de tempo. n Condições funcionam como guardas nas transições: uma transição só dispara quando ocorre o evento e a condição de guarda for verdadeira. n Exemplo: Pessoa com relação ao atributo "estar de luvas".

49 Controle de Operações n Atividades e ações podem ser vinculadas a estados e eventos a fim de se especificar o que faz o objeto quando está em um determinado estado e o que faz em resposta a estímulos externos. n Definem o comportamento do objeto!

50 Atividade n Está sempre vinculada a um estado n Consome tempo para se completar n É executada continuamente durante o tempo em que o objeto está num certo estado n Notação:faça: atividade n Exemplo: Um vendedor logo após ter recebido dinheiro para pagamento do item vendido deve calcular o troco. faça: calcular troco

51 Ação n Está normalmente vinculada a um evento, mas também pode estar vinculada a um estado (ações de entrada, saída e internas) n É executada "instantaneamente" n Notação:evento / ação n Exemplo: Exibir um menu quando o botão direito do mouse é pressionado. botão direito pressionado / exibir menu

52 Diagramas de Estados Nivelados n Permitem refinamentos sucessivos do modelo dinâmico n Permitem uma descrição estruturada do sistema n Pode-se expandir: –um evento e sua correspondente ação –uma atividade realizada em um certo estado n Exemplo: Máquina de vender

53 Generalização de Estados n Os estados de um objeto podem ser organizados de forma hierárquica, em super- estados e sub-estados. n Um sub-estado é um refinamento de um super- estado, ie, um sub-estado é um dos possíveis estados do objeto dentro daquele super-estado. n Um sub-estado herda as transições do super- estado; transições que se aplicam ao super- estado também se aplicam ao sub-estado. n Exemplos: linha telefônica, transmissão automática de um automóvel

54 Generalização de Eventos n Os eventos que ocorrem em um sistema podem ser organizados de forma hierárquica, em super-eventos e sub-eventos. n Um sub-evento herda atributos do super- evento. n Onde um evento é descrito qualquer sub- evento seu é implicitamente descrito. n A generalização de eventos facilita a abstração e permite concisão na representação de diagramas. n Exemplo: Entrada do usuário.

55 Concorrência de Agregação n O estado de um objeto composto (um agregado) é determinado pelos estados dos objetos que o compõem. n Exemplo: O estado de um carro é determinado pelo estado da ignição, da transmissão, do freio, do acelerador, do motor,... n Os componentes de um agregado normalmente interagem entre si: a mudança de estado de um componente pode disparar uma transição em outro componente. n A interação entre diagramas de estados de componentes é representada através de eventos compartilhados e/ou condições de guarda.

56 Concorrência Interna de Objetos n O diagrama de estados de um objeto pode ser particionado de acordo com atributos e ligações em sub-diagramas. n O estado do objeto compreende um estado de cada sub-diagrama. n Um mesmo evento pode causar transições em mais de um sub- diagrama. n Exemplo: Jogo de bridge rubber.

57 Transição Automática n Disparada quando a atividade vinculada a um estado termina n O "evento" que causa a transição é o término da atividade n Exemplo: Máquina de vender no estado correspondente a atividade testar item e calcular troco pode disparar uma de quatro transições automáticas.

58 Ações de Entrada e de Saída n Ações vinculadas ao ato de entrar ou sair de um estado n Não adicionam poder de expressão, mas permitem uma representação mais concisa n Exemplo: Controle de uma porta de garagem

59 Envio de Eventos n Uma ação pode ser especificada como enviar um certo evento para outro objeto. n Notação:enviar E (atributos) (palavra enviar pode ser omitida) n Exemplo: Uma linha telefônica envia o evento ligar(número-de-telefone) para o comutador quando um número completo é discado. número completo / ligar(número-de-telefone)

60 Sincronização de Eventos Concorrentes n Um objeto pode executar várias atividades de forma concorrente (paralela). n As atividades não são necessariamente sincronizadas, mas todas devem terminar para que ocorra transição de estado. n Exemplo: Caixa automática.


Carregar ppt "Orientação a Objetos Alcides Calsavara"

Apresentações semelhantes


Anúncios Google