apresentação versão 1.5

Post on 30-Jun-2015

190 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Análise e Projeto Orientados a Objetos

Jhonny Freire Oliveira - 8791078º Semestre de Sistemas de

Informação

Sumário• Objetivo• O Paradigma da Orientação a Objetos• UML• Análise Orientada a Objetos• Projeto (Design) Orientado a Objetos

ObjetivoTransmitir uma ideia básica do desenvolvimento orientado a objetos.

Apresentando técnicas adotadas por profissionais experientes na análise e projeto de softwares.

O PARADIGMA DA ORIENTAÇÃO

A OBJETOS

Orientação a ObjetosÉ muito mais que apenas uma forma de organizar o código-fonte de um software.

Trata-se de uma forma de abstrair o domínio e capturar sua estrutura em um modelo conceitual.

ClassesNa classe programador define quais são os atributos e os métodos dos objetos criados a partir dela.

A classe é para o objeto o que uma planta é para a construção de uma casa.

Um objeto é como uma casa construída através da especificação de uma planta. Podemos ter vários objetos de uma mesma classe.

Objetos

HerançaPossibilita reaproveitar uma estrutura já existente que nos forneça uma base para o desenvolvimento, provendo recursos básicos e comuns.

Herança

EncapsulamentoPermite ocultar atributos e métodos de um objeto do mundo externo a ele.

EncapsulamentoNão precisamos conhecer o funcionamento interno de um caixa eletrônico para utilizá-lo.

Polimorfismo(poli = múltiplas , morfo = formas)

É o ato de reescrever um método herdado da superclasse ou interface, mas mantendo-se a assinatura do método original.

Polimorfismo

Classes AbstratasAlgumas classes podem ter sido criadas tão genericamente para o uso da herança, que não faz sentido instanciá-las diretamente.

Métodos Abstratos

Podemos criar métodos genéricos apenas com a definição do que deve ser feito e não como ser feito.

InterfacesSão como classes abstratas e com apenas métodos abstratos.A responsabilidade de implementar o código fica por conta da classe que implementa a interface.

Agregação

As rodas fazem parte do contexto de carro, mas a existência do carro não depende das rodas, pois podemos trocá-las por outras em qualquer momento.

ComposiçãoO objeto Item do Pedido só tem sentido se fazer parte de um objeto Pedido.

UML

UML(Unified Modeling Language)

Diversos diagramas que facilitam o entendimento entre desenvolvedores e clientes a respeito do sistema a ser desenvolvido.

DIAGRAMAS DE COMPORTAMENTO

• Caso de Uso• Atividades•Máquina de Estado

DIAGRAMAS DE ESTRUTURA

• Classes• Objetos• Componentes• Estrutura de Composição• Pacotes• Implantação

DIAGRAMAS DE INTERAÇÃO

• Sequência• Comunicação• Tempo• Visão geral de Interação

ANÁLISE ORIENTADA A

OBJETOS

Identificação de ClassesExistem várias técnicas para identificar classes, a mais comum é destacar os substantivos do texto que define o problema a ser resolvido pelo sistema.

Identificação de Classes“No cadastro de usuários o administrador deve fornecer o nome completo, CPF, RG, sexo, endereço completo, telefones de contato, senha e email e o nível de usuário, o código de usuário é gerado automaticamente pelo sistema...”

Eliminação de Classes

Agregação e Composição

Agregação e ComposiçãoAs associações muitas vezes correspondem a verbos estáticos ou a locuções verbais como junto à, parte de, contido em, tem, parte de, trabalha para, casado com.

Utilizando a Herança

Utilizando a Herança

Bottom-Up

Generalizar aspectos comuns das classes em uma superclasse.

Top-Down

Refinar classes existentes em subclasses mais especializadas.

PROJETO (DESIGN)

ORIENTADO A OBJETOS

Acoplamento

Quanto mais dependente de outras classes, mas acoplada a classe está.

AcoplamentoReferenciar outras classes pela superclasse ou pela interface favorece o baixo acoplamento.

CoesãoQuanto menos responsabilidades, mais fácil de entender e manter o código de uma classe.

Coesão

Muitas responsabilidades=

Baixa coesão

Coesão

Poucas responsabilidades

=Alta coesão

Divisão do Sistema (Camadas)

Dividir classes em grupos separados por algum critério facilita o baixo acoplamento e a alta coesão.

Divisão do Sistema (Camadas)

Custo de Processamento

Em tempos de cloud computing, quanto maior o consumo de processamento maior será o custo financeiro para o cliente.

top related