Buscar

PDS Aula3.5 PU IntroducaoProjetoOO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PDS
Aula 3.5 – Introdução ao Projeto OO
Prof. Bruno Moreno
bruno.moreno@ifrn.edu.br
2
● Estamos saindo da fase de análise:
– ~10% dos requisitos foram investigados na 
concepção;
– Uma análise mais profunda foi realizada na 
elaboração;
Introdução
Concepção
Casos de Uso Modelo de Domínio
Elaboração DSS
Contratos de Operação
3
● No projeto é definido a arquitetura lógica em 
várias camadas;
– Camada de UI;
– Camada de aplicação lógica (ou de domínio);
– Outras camadas;
● Arquitetura lógica é diferente de arquitetura 
do software;
Introdução
4
● É a organização de classes de SW em 
pacotes, subsistemas e camadas;
● Uma camada é um agrupamento de 
granularidade muito grossa de classes, 
pacotes ou subsistemas que tem 
responsabilidade coesiva sobre um tópico 
importante;
● As camadas são organizadas de modo que as 
“mais altas” solicitem serviços das “mais 
baixas”, mas normalmente não vice-versa;
Arquitetura Lógica
5
● Camadas incluem, geralmente:
– Interface com Usuário (UI: User Interface)
● Reúne elementos (classes e pacotes) relacionados à interface 
de usuário;
– Lógica da Aplicação e Objetos de Domínio
● Reúne elementos que representam conceitos do domínio, que 
satisfazem requisitos da aplicação;
● Por exemplo: classe Venda;
– Serviços Técnicos
● Reúne elementos de propósito geral e subsistemas que 
fornecem serviços técnico de apoio;
● Exemplo: interface com BD ou serviço de log;
Arquitetura Lógica
6
● É um conjunto de decisões significativas sobre:
– Organização de um sistema de software;
– Seleção dos elementos estruturais;
– Interfaces;
– Comportamento;
– Arquitetura lógica;
● Em resumo, definir arquitetura diz respeito a 
definição das ideias relacionadas ao projeto, 
motivações, restrições, organizações, padrões, 
responsabilidades e conexões com subsistemas.
Arquitetura do Software
7
● O trabalho da análise é focado no aprendizado 
relacionado em fazer a coisa certa
– Entender o que deve ser resolvido, de fato;
● O trabalho do projeto está concentrado em 
fazer certo a coisa
– Projetar a solução de maneira competente para 
satisfazer os requisitos pré-definidos;
Da Análise ao Projeto
8
● No PU, e em qualquer processo iterativo, as 
fases de análise e projeto ocorrem em cada 
iteração
– As iterações iniciais empregam mais tempo na fase 
de análise;
– Enquanto que as iterações finais empregam mais 
tempo na fase de projeto;
A&P nas Iterações
9
● É por isso que o esforço nas disciplinas do PU 
é diferenciado para cada fase e iteração.
A&P nas Iterações
10
Arquitetura Lógica e Diagrama 
de Pacotes UML
11
Influência de Artefatos
12
● Uma arquitetura em camadas pode ser estrita ou 
relaxada;
● Em uma arquitetura estrita, uma camada solicita 
serviço apenas de camadas diretamente inferiores a 
ela
– Exemplo: pilhas de protocolo de rede;
● Em uma arquitetura relaxada, uma camada mais 
alta solicita informações de várias camadas mais 
baixas
– Exemplo: camada de UI solicitando serviços da camada 
lógica e da camada de dados;
Estilos Arquiteturais
13
Exemplo de Arquitetura
14
● A tecnologia OO poder ser aplicada em todos 
níveis;
● Entretanto, as camadas de UI e de serviço 
técnico são muito dependentes da tecnologia 
utilizada;
● Por outro lado, os conceitos aprendidos sobre a 
camada lógica são independentes de tecnologia;
● Por isso, o foco do nosso curso é o projeto da 
camada lógica;
Objetivo
15
● Diagramas de Pacotes UML são, 
frequentemente, utilizados para representar a 
arquitetura lógica de um sistema
– Camadas, subsistemas, pacotes, etc.
● Uma camada pode ser modelada como um 
pacote UML
– Exemplo: camada de UI modelada como um pacote 
denominado UI;
● Um diagrama de pacotes é um meio de agrupar 
elementos;
Diagramas de Pacotes UML
16
● Um pacote UML pode agrupar qualquer coisa
– Classes, outros pacotes, casos de uso, etc.;
● Aninhar pacotes é muito comum;
● Um pacote UML é um conceito mais geral do 
que simplesmente um pacote em Java ou um 
espaço de nomes em .NET;
● Se representa dependência entre pacotes em 
UML por meio de uma linha tracejada com 
seta apontada para o pacote dependente;
Diagramas de Pacotes UML
17
Diagramas de Pacotes UML
18
● Diretrizes Gerais
– Deve estar claro as responsabilidades de cada 
camada;
– As camadas inferiores devem ser de mais “baixo 
nível” do que as camadas superiores;
– Camadas superiores devem ser mais específicas 
da aplicação;
– O acoplamento deve ser de cima para baixo;
Projeto em Camadas
19
● Vantagens:
– Evita que modificações do código fonte se espalham por todo 
o sistema;
– Evita que a lógica da aplicação fique entrelaçada com a 
interface do usuário;
– Faz uma nítida separação de classes e pacotes relacionados 
a serviços específicos;
– As camadas podem ser substituídas por nova 
implementação;
– A camadas inferiores contêm funções reusáveis;
– As camadas podem ser distribuídas;
– O desenvolvimento em equipe é facilitado.
Projeto em Camadas
20
● O número de camadas varia entre aplicações e 
domínios de aplicação;
● Sistemas de informação apresentam, geralmente, 
as seguintes camadas:
– UI;
– Aplicação;
– Domínio;
– Infraestrutura de negócio;
– Serviços técnicos;
– Fundação.
Projeto em Camadas
21
Camadas comuns em SIs
UI
(apresentação)
Aplicação
Domínio
Infraestrutura de Negócio
Serviços Técnicos
Fundação
de
pe
nd
ên
ci
a
Mais 
específico da 
aplicação
Largura indica campo de aplicabilidade
● GUI;
● Relatórios;
● HTML, XML, JSP, ...
● Trata as solicitações da camada de 
apresentação;
● Transições entre janelas/páginas;
● Trata as solicitações da camada de 
aplicação;
● Regras de domínio;
● Serviços gerais utilizados por 
vários domínios (camadas);
● Exemplo: conversores;
● Frameworks de persistência;
● Segurança;
● Logs;
● Serviços de mais baixo nível, como 
estrutura de dados, linhas de 
execução, arquivo, etc.
22
● As responsabilidades das camadas devem estar 
muito bem definidas
– Objetos em uma camada devem estar fortemente 
relacionadas umas com as outras e não devem ser 
misturadas com responsabilidades de outras 
camadas;
– Exemplo:
● Objetos de UI tratam sobre criação de janelas, captação 
de eventos e etc.
● Objetos da camada lógica (domínio) enfocam na lógica da 
aplicação, como cálculo do total de vendas ou impostos.
Diretrizes específicas
23
● As responsabilidades das camadas devem 
estar muito bem definidas
– Objetos de UI não devem executar lógica da 
aplicação;
– Exemplos:
● Um JFrame ou JPanel em Java não deve conter lógica 
para calcular vendas ou impostos;
● Uma classe lógica não deve captar eventos de IU.
Diretrizes específicas
Isso viola dois princípios arquiteturais básicos: 
separação de interesses e alta coesão
24
Mapeamento para código
25
(1) Leitura dos capítulos 12 e 13 de 
Larman;
(2) Pesquisa sobre arquitetura 
MVC.
Atividades:
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25

Outros materiais