desenvolvendo sotfware com uml1 visão geral de orientação a objetos

22
Desenvolvendo sotfware co m UML 1 Visão Geral de Orientação a Objetos

Upload: rosa-pais-veiga

Post on 07-Apr-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

1

Visão Geral de Orientação a Objetos

Page 2: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

2

Objetivos deste módulo Apresentar os princípios do paradigma

de orientação a objetos Apresentar os conceitos de orientação a

objetos com a notação UML correspondente

Page 3: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

3

Princípios básicos de OO Abstração Encapsulamento Modularidade Herança

Page 4: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

4

Abstração

cliente gado automóvel

• Concentração nas características essenciais, gerenciando complexidade

• Construção de um modelo para representação de uma realidade

Page 5: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

5

Encapsulamento

Elimina dependência de implementação, escondendo-a do cliente

Uso de interfaces Mudanças internas não têm impacto

sobre os clientes

Page 6: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

6

Modularidade Decomposição de um problema em pequenos

pedaços, para gerenciar complexidade Construção de módulos desacoplados

Dividir para conquistar

Page 7: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

7

Herança Criação de hierarquias de abstração Permite ordenar hierarquias relacionadas

Figura

RetânguloTriângulo

Polígono

Page 8: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

8

Conceitos básicos de OO Objeto Classe Atributo Operação Interface Componente Pacote Subsistema Relacionamentos

Page 9: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

9

Objeto Modelo de um objeto real

entidade física, conceitual ou de software

Possui comportamento, estado e identidade

Page 10: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

10

Objetos, Métodos e Variáveis

OBJETO é um pacote de software contendo dados e procedimentos (código) relacionados

Os procedimentos são chamados MÉTODOS Os dados dos objetos são chamados VARIÁVEIS ou

COMPONENTES DO ESTADO

Page 11: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

11

Objeto em UML

: Professor

Professora Elza :Professor

Professora Elza

Apenas o nome daclasse

Apenas o nome doobjeto

Professora Elza

Nome da classe e doobjeto

Page 12: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

12

Classe Descrições de objetos

com propriedades e comportamento comuns

Abstração que enfatiza o que é relevante suprime o que não

interessa Classes são fábricas

de objetos Objetos são

agrupados em classes

Page 13: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

13

Classes e Instâncias Classes - modelos que definem os métodos e

as variáveis a serem incluídas em um tipo particular de objeto.

Objetos que pertencem a uma classe são chamados de INSTÂNCIAS desta classe e contêm valores particulares para as suas variáveis.

Variáveis de um objeto são chamadas de VARIÁVEIS DE INSTÂNCIA

Page 14: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

14

Classe em UML

Professor

Nome da Classe Professor

Atributos Operações

nomefuncID

criar()salvar()remover()alterar()

estrutura

comportamento

Page 15: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

15

Atributo Armazenam estado dos objetos

são coisas que um objeto “sabe” Propriedades de um objeto

Variáveis de instância

Page 16: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

16

Atributo em UML

: Professor

nome = TerezafuncID = 112

: Professor

nome = Ana MariafuncID = 110

Professor

nomefuncID

Valor do Atributo

Objeto

Page 17: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

17

Operação Modela

comportamento das classes

São coisas que uma classe “faz”

Serviços que os objetos oferecem a outros objetos

Professor

criar()salvar()remover()alterar()

Page 18: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

18

Classes e Objetos em Javaclass Aviao {

.. Asa asa[2]; Propulsor propulsor[]; LemeDeDirecao leme; .. void pouse(..) {

.. leme.reto(); .. asa[1].flapPBaixo(..); asa[2].flapPBaixo(..); .. propulsor.desligue(..); ..

}}

class Asa { .. void flapPBaixo(Grau graus) {

.. } void flapPCima(Grau graus) {

.. }

} class Propulsor {

Int potencia; void desligue(..) {

.. } void ligue(..) {

.. }

}

Page 19: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

19

Polimorfismo Escondendo diferentes implementações

através de uma única interface

Manufacturer BManufacturer CManufacturer A

Fonte: Rational

interface bem definida

Page 20: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

20

Herança Mecanismo através do qual uma classe de

objetos pode ser definida como caso especial de uma classe mais geral. A classe mais geral é chamada de SUPERCLASSE

Casos especiais de uma classe são chamados de SUBCLASSE.

Page 21: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

21

Herança e Polimorfismo Permitem que

objetos sejam tratados de forma homogênea e segura um conjunto consistente de abstrações

Page 22: Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos

Desenvolvendo sotfware com UML

22

Benefícios do Paradigma de Orientação a Objetos

Favorece modularidade, manutenibilidade e reuso

Aproxima-se do mundo real

Uso do mesmo conceito em todas as fases do desenvolvimento