Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.

Post on 07-Apr-2016

212 views 0 download

Transcript of 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

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

Desenvolvendo sotfware com UML

3

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

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

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

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

Desenvolvendo sotfware com UML

7

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

Figura

RetânguloTriângulo

Polígono

Desenvolvendo sotfware com UML

8

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

Desenvolvendo sotfware com UML

9

Objeto Modelo de um objeto real

entidade física, conceitual ou de software

Possui comportamento, estado e identidade

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

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

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

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

Desenvolvendo sotfware com UML

14

Classe em UML

Professor

Nome da Classe Professor

Atributos Operações

nomefuncID

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

estrutura

comportamento

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

Desenvolvendo sotfware com UML

16

Atributo em UML

: Professor

nome = TerezafuncID = 112

: Professor

nome = Ana MariafuncID = 110

Professor

nomefuncID

Valor do Atributo

Objeto

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()

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(..) {

.. }

}

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

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.

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

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