7/24/2019 Aula 7 - Projeto de Arquitetura
1/22
Projeto de Arquitetura deSoftware
Alexandre Monteiro
7/24/2019 Aula 7 - Projeto de Arquitetura
2/22
2
Roteiro Contexto Projeto Renando o modelo de anlise
Classes Arquitetura Pacotes
7/24/2019 Aula 7 - Projeto de Arquitetura
3/22
3
Contexto Aps a etapa de anlise temos um
primeiro modelo do sistema Queremos agora melorar esse
modelo! a ponto de gerarmosfacilmente a implementa"#o do
sistema $ste modelo % camado de modelo
de Projeto
7/24/2019 Aula 7 - Projeto de Arquitetura
4/22
7/24/2019 Aula 7 - Projeto de Arquitetura
5/22
5
Anlise & Projeto A'strato & Concreto (ndependente & dependente da
tecnologia de implementa"#o Simples & detalado
Modelos por caso de uso &unica"#o em um )nico modelo
7/24/2019 Aula 7 - Projeto de Arquitetura
6/22
6
Ati*idades + Projeto Renar o modelo de classes Projetar arquitetura
Camadas Separa"#o em pacotes
Projetar ,anco de -ados
7/24/2019 Aula 7 - Projeto de Arquitetura
7/22
7
Renar o modelo de
classes.untar todas as classes em um s
diagrama
Analisar se % necessrio criar no*asclasses ou remo*er classes existentes
$liminar os esteretipos de anlise
Adicionar modicadores de*isi'ilidade aos m%todos e atri'utos
-enir os tipos dos atri'utos
7/24/2019 Aula 7 - Projeto de Arquitetura
8/22
8
$xemplo / Anlise login
Usuario
login
senha
TelaLogin
efetuarLogin(login, senha)
!aastroUsuarios
"he"ar(login, senha)
!ontrolaorLogin
efetuarLogin(login, senha)registrar#essao()
7/24/2019 Aula 7 - Projeto de Arquitetura
9/22
&
$xemplo / Anlise adicionar
aluno'luno
noe
eail
login
senha
'luno()
ail
ail()
Tela'i"ionar'luno
ai"ionar'luno()
!aastro'lunos
ai"ionar'luno()
!ontrolaor'i"ionar'luno
ai"ionar'luno()
7/24/2019 Aula 7 - Projeto de Arquitetura
10/22
$,
$xemplo / diagrama )nico
TelaLogin
efetuarLogin()
Tela'i"ionar'luno
ai"ionar'luno()
!aastroUsuarios
"he"ar()
!ontrolaorLogin
efetuarLogin()
registrar#essao()
%
$
%
$
$
$
$
$!aastro'lunos
ai"ionar'luno()
!ouni"a"ao#er+iorail
en+iarail()
!ontrolaor'i"ionar'luno
ai"ionar'luno()
$**%
$
$**%
$
$
$
$
$
$$ $$
ail
ail()
'luno
noe - #tring
eail - #tring
login - #tring
senha - #tring
'luno()
Usuario
login - #tring
senha - #tring
ail
assunto - #tring
reetente - #tring
estinatario - #tring
"or.o - #tring
ail()
7/24/2019 Aula 7 - Projeto de Arquitetura
11/22
$$
Renar o modelo de
classes -etalar assinatura dos m%todos
denir todos os par0metros dos
m%todos! seu tipos e o tipo de retornodos m%todos
Mapear associa"1es em atri'utos2
Analisar a possi'ilidade de utili3areran"a
7/24/2019 Aula 7 - Projeto de Arquitetura
12/22
$2
$xemplo / diagrama
meloradoTelaLogin
efetuarLogin()
TelaLogin()
!ontrolaorLogin
efetuarLogin()
registrar#essao()
!ontrolaorLogin()
%
$
%
$
!aastroUsuarios
"he"ar()
!aastroUsuarios()
$
$
$
$
Tela'i"ionar'luno
ai"ionar'luno()
Tela'i"ionar'luno()
!aastro'lunos
ai"ionar'luno()
!aastro'lunos()
!ontrolaor'i"ionar'luno
ai"ionar'luno()
!ontrolaor'i"ionar'luno()
$**%
$
$**%
$
$
$
$
$
!ouni"a"ao#er+iorail
en+iarail()
!ouni"a"ao#er+iorail()$$ $$
ail
assunto - #tring
reetente - #tring
estinatario - #tring
"or.o - #tring
ail()
'luno
noe - #tring
eail - #tring
'luno()
Usuario
login - #tring
senha - #tring
Usuario()
7/24/2019 Aula 7 - Projeto de Arquitetura
13/22
$3
Renar o modelo de
classes (denticar padr1es de projeto
4acada
Re*isar as classes
7/24/2019 Aula 7 - Projeto de Arquitetura
14/22
$4
Padr1es
!aastroUsuarios
"he"ar()
!aastroUsuarios()
!aastro'lunos
ai"ionar'luno()
!aastro'lunos()
!ouni"a"ao#er+iorail
en+iarail()
!ouni"a"ao#er+iorail()
ail
assunto - #tring
reetente - #tring
estinatario - #tring
"or.o - #tring
ail()
'luno
noe - #tring
eail - #tring
'luno()
Usuario
login - #tring
senha - #tring
Usuario()
Tela'i"ionar'luno
ai"ionar'luno()
Tela'i"ionar'luno()
TelaLogin
efetuarLogin()
TelaLogin()
!ontrolaor'i"ionar'luno
ai"ionar'luno()
!ontrolaor'i"ionar'luno()
$
$
$
$
$
$
$
$
/a"haa
ai"ionar'luno()
efetuarLogin()
$
$**%
$
$**%
$
$
!ontrolaorLogin
efetuarLogin()
registrar#essao()
!ontrolaorLogin()$
$
$
$
$
$
$ $
$**% $**%
$ $
$ $
FachadaSingleton
7/24/2019 Aula 7 - Projeto de Arquitetura
15/22
$5
Projetar arquitetura -i*idir o sistema em camadas Arquitetura 'em comum5
Apresentao
Negcio
Dados
Interface com o usurio
Regras de negcio inerentes aplicao
Cdigo relacionado ao mecanismode persistncia utilizado
Comunicao Comunicao entre apresentao e negcio e comoutros sistemas
7/24/2019 Aula 7 - Projeto de Arquitetura
16/22
7/24/2019 Aula 7 - Projeto de Arquitetura
17/22
$7
Camadas
!aastroUsuarios
"he"ar()
!aastroUsuarios()
!aastro'lunos
ai"ionar'luno()
!aastro'lunos()
!ouni"a"ao#er+iorail
en+iarail()
!ouni"a"ao#er+iorail()
ail
assunto - #tring
reetente - #tring
estinatario - #tring
"or.o - #tring
ail()
'luno
noe - #tring
eail - #tring
'luno()
Usuario
login - #tring
senha - #tring
Usuario()
Tela'i"ionar'luno
ai"ionar'luno()
Tela'i"ionar'luno()
TelaLogin
efetuarLogin()
TelaLogin()
!ontrolaor'i"ionar'luno
ai"ionar'luno()
!ontrolaor'i"ionar'luno()
$
$
$
$
$$ $$
/a"haa
ai"ionar'luno()efetuarLogin()
$
$**%
$
$**%
$
$
!ontrolaorLogin
efetuarLogin()
registrar#essao()
!ontrolaorLogin()
$
$
$
$
$
$
$$
$**%$**%
$ $
$
$Comunicao
Dados
Apresentao
Negcio
7/24/2019 Aula 7 - Projeto de Arquitetura
18/22
$8
9is#o :eral da Arquitetura
7/24/2019 Aula 7 - Projeto de Arquitetura
19/22
$&
-i*is#o do sistema empacotes
Agrupar classes em pacotes Poss8*eis crit%rios5
Camadas ;gica do sistema
Crit%rios escolidos de*em minimi3ara depend7ncia entre os pacotes
Criar um diagrama de pacotesindicando as depend7ncias entre ospacotes
7/24/2019 Aula 7 - Projeto de Arquitetura
20/22
2,
Pacotes
!aastroUsuarios
"he"ar()
!aastroUsuarios()
(fro aos)
!aastro'lunos
ai"ionar'luno()
!aastro'lunos()
(fro aos)
!ouni"a"ao#er+iorail
en+iarail()
!ouni"a"ao#er+iorail()
(fro "ouni"a"ao)
ail
assunto - #tring
reetente - #tring
estinatario - #tring
"or.o - #tring
ail()
(fro nego"io)'luno
noe - #tring
eail - #tring
'luno()
(fro nego"io)
Usuario
login - #tring
senha - #tring
Usuario()
(fro nego"io)
Tela'i"ionar'luno
ai"ionar'luno()
Tela'i"ionar'luno()
(fro gui)
TelaLogin
efetuarLogin()
TelaLogin()
(fro gui)
!ontrolaor'i"ionar'luno
ai"ionar'luno()
!ontrolaor'i"ionar'luno()
(fro nego"io)
$
$
$
$
$$ $$
/a"haa
ai"ionar'luno()
efetuarLogin()
(fro nego"io)
$
$**%
$
$**%
$
$
!ontrolaorLogin
efetuarLogin()
registrar#essao()
!ontrolaorLogin()
(fro nego"io)
$
$
$
$
$
$
$$
$**%$**%
$ $
$
$
Indicao do pacoteda classe
7/24/2019 Aula 7 - Projeto de Arquitetura
21/22
2$
Pacotes
gui
nego"io aos"ouni"a"ao
7/24/2019 Aula 7 - Projeto de Arquitetura
22/22
22
Refer7ncias
Top Related