Escolar Documentos
Profissional Documentos
Cultura Documentos
Projeto
Prof.Júlio Martins
Da Análise ao Projeto
● No desenvolvimento de um Sistema OO, a mesma
representação para as classes é utilizada durante a
análise e o projeto desse sistema
○ Vantagem
■ Há uma uniformidade na modelagem do
sistema
○ Desvantagem
■ Torna menos nítida a separação entre o que é
feito na análise e o que é feito no projeto
2
Da Análise ao Projeto
● Na fase de análise, estamos interessados em
identificar as funcionalidades e classes do sistema
○ Modelo de casos de uso, Modelo de classes de
análise
3
Da Análise ao Projeto
● Esses modelos são interessantes para ENTENDER o
problema
● No projeto
○ Diversos as aspectos relacionados à solução
○ Nessa fase o interesse é: refinar os modelos de
análise
4
Da Análise ao Projeto
● A fase de projeto = solução do problema relativo ao
desenvolvimento do sistema
5
Da Análise ao Projeto
● Algumas atividades
○ Detalhamento dos aspectos dinâmicos do sistema
○ Refinamento dos aspectos estáticos e estruturais
do sistema
○ Definição de estratégias de persistência
○ Realização do projeto de interface gráfica
○ Definição dos algoritmos
6
Modelo de Classes de Projeto
● O modelo de classes de projeto é resultante de
refinamentos no modelo de classes de análise
7
Modelo de Classes de Projeto
● O modelo de classes de projeto é resultante de
refinamentos no modelo de classes de análise
○ Adição de novas classes
○ Estudo de novos elementos do diagrama de
classes
○ Especificação de atributos, operações e de
associações
○ Utilização de padrões de projeto
8
Especificação de Classes de Fronteira
● Não devemos atribuir a essas classes
responsabilidades relativas à lógica do negócio
○ Devem servir como um ponto de captação de
informações ou de apresentação de informações
○ Qual o motivo disso?
○ Modificação mais fácil e coesão
9
Especificação de Classes de Fronteira
● Podemos representar
○ Interfaces com seres humanos
■ Projeto da interface gŕafica produz o
detalhamento das classes
○ Outros sistemas
■ Definição de um subsistema
10
Especificação de Classes de Entidade
● A maioria das classes de entidade permanece na
passagem da análise para o projeto
11
Especificação de Classes de Controle
● Normalmente cada classe de controle deve ser
particionada em duas ou mais outras classes para
controlar diversos aspectos da solução
○ Objetivo: evitar a criação de uma única classe com
baixa coesão e alto acoplamento
● Tarefas
○ Coordenar a realização de um caso de uso do
sistema
○ Ponte entre objetos de fronteira e entidade
○ Se comunicar com outros controladores
12
Especificação de Outras Classes
● Classes de:
○ Persistência de objetos
○ Autenticação
○ Configuração
○ Threads e etc
13
Refinamento de Atributos e Métodos
● Atributos
○ Permitem que uma classe armazene informações
necessárias à realização de suas tarefas
● Métodos
○ São funções que manipulam os valores dos
atributos, com o objetivo de atender às
mensagens que o objeto recebe
14
Refinamento de Atributos e Métodos
15
Visibilidade e Encapsulamento
16
Projeto de Métodos
● Métodos de construção (criação) e destruição de
objetos
17
Projeto de Métodos
● Alguns métodos devem ter uma operação inversa
óbvia
○ Exemplo: habilitar e desabilitar; tornarVisível e
tornarInvisível; cadastrar e remover e etc
18
Associações
19
Detalhamento de Métodos
● Diagramas de interação fornecem um indicativo sobre
como métodos devem ser implementados
20
Especificação de Associações
21
O Conceito de Dependência
● O relacionamento de dependência indica que uma
classe depende dos serviços fornecidos por outras
classe
22
O Conceito de Dependência
● O Diagrama indica que a Classe Pedido depende de
uma classe Item
● Portanto se modificar um método da Classe Item,
pode haver danos na classe dependente
23
Navegabilidade de Associações
● Associações podem ser bidirecionais ou
unidirecionais
○ Uma associação bidirecional indica que há um
conhecimento mútuo entre os objetos associados
24
Navegabilidade de Associações
● A escolha da navegabilidade de uma associação pode
ser feita através do estudo dos diagramas de
interação
○ O sentido de envio das mensagens entre objetos
influencia na necessidade ou não de
navegabilidade em cada um dos sentidos
25
Navegabilidade de Associações
26
Implementação de Associações
● Há três casos da conectividade
○ 1:1
○ 1:N
○ N:M
27
Implementação de Associações
● Para uma associação 1:1 entre duas classes A e B
○ Se a navegabilidade é unidirecional no sentido de
A para B, é definido um atributo do tipo B na
Classe A
○ Se a navegabilidade é bidirecional, podemos
aplicar o procedimento acima para as duas classes
28
Implementação de Associações
● Para uma associação 1:N ou N:M entre duas classes A e
B
○ São utilizados atributos cujos tipos representam
coleções de elementos
29
Conectividade 1:N
30
Herança
● Herança Múltipla
● Herança Simples
31
Classes Abstratas
● Geralmente, a existência de uma classe se justifica
pelo fato de haver a possibilidade de gerar instâncias
a partir da mesma
○ Essas classes são chamadas de classes concretas
32
Classes Abstratas
33
Classes Abstratas
34
Operações Polimórficas
● Pode ser que o comportamento de alguma operação
herdada seja diferente para a subclasse
35
Operações Polimórficas
36
Operações Polimórficas
37
Interfaces
● Uma interface entre dois objetos compreende um
conjunto de assinaturas de operações
correspondentes aos serviços dos quais a classe do
objeto cliente faz uso
38
Interfaces
39
Padrões de Projeto
● É da natureza do desenvolvimento de software o fato
de que os mesmos problemas tendem a acontecer
diversas vezes
○ Um padrão de projeto corresponde a um esboço
de uma solução reusável para um problema
recorrente
40
Padrões de Projeto
● Estudar esses padrões é uma maneira efetiva de
aprender com a experiência dos outros
41
Referências
42
Questions?
E-mail:
juliomserafim@gmail.com
43