O documento discute conceitos de análise e projeto orientados a objetos, incluindo identificação de classes, herança, encapsulamento, polimorfismo, UML e projeto orientado a objetos visando baixo acoplamento e alta coesão.
Sumário
• Objetivo
• O Paradigma da Orientação a Objetos
• UML
• Análise Orientada a Objetos
• Projeto (Design) Orientado a Objetos
3.
Objetivo
Transmitir uma ideiabásica do
desenvolvimento orientado a objetos.
Apresentando técnicas
adotadas por
profissionais experientes
na análise e projeto de
softwares.
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.
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.
Interfaces
São como classesabstratas e
com apenas métodos abstratos.
A responsabilidade de
implementar o código fica por
conta da classe que implementa
a interface.
18.
Agregação
As rodas fazemparte do contexto de carro,
mas a existência do carro não depende das
rodas, pois podemos trocá-las por outras em
qualquer momento.
UML
(Unified Modeling Language)
Diversos diagramas que facilitam
o entendimento entre
desenvolvedores e clientes a
respeito do sistema a ser
desenvolvido.
Identificação de Classes
Existemvárias técnicas para
identificar classes, a mais
comum é destacar os
substantivos do texto que
define o problema a ser
resolvido pelo sistema.
27.
Identificação de Classes
“Nocadastro 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...”
Agregação e Composição
Asassociaçõ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
Top-Down
Refinar classes existentes
em subclasses mais
especializadas.
Bottom-Up
Generalizar aspectos
comuns das classes
em uma superclasse.