04 Projeto
04 Projeto
04 Projeto
ARQUITETURA DE
SOFTWARE
(visão geral)
Anderson A. Namen
Introdução
Livro Livro
título título
imprimir()
Fonte: Stair, R.
Projeto de software
◼ Criação de abstrações procedurais e de dados
Procedurais
Ex: abrir porta = ande até a porta; segure a
maçaneta; gire a maçaneta; puxe a porta
Dados
Ex: atributos de porta: tipo de porta, peso,
dimensões, direção de giro, etc
Tipos Abstratos de Dados
Projeto de software
◼ Definir a arquitetura de software
◼ Arquitetura? Organização dos componentes do
programa, o modo de interação entre os mesmos e
as estruturas de dados usadas
◼ Utilizar padrões de projeto
◼ Buscar modularidade
Projeto de software
◼ Princípio do ocultamento da informação
(encapsulamento em OO)
◼ Ouvistes falar (mal) de variáveis globais?
◼ Independência funcional
Coesão alta e baixo acoplamento
◼ Divisão em camadas
◼ Pensar sempre em reutilização!!
Da Análise para o Projeto
Caso de Uso:
Vender Itens
Vender Itens :Sistema
...
1. Este caso de Caixa
uso começa... entrarItem(idprod, qtde)
terminarVenda() CtrVenderItens
Caso de Uso (Controladora)
registrarPagamento(quantia)
entrarItem()
DSS´s terminarVenda()
entrarPagamento()
Operação:
entrarItem Operação: Operações de sistema
terminarVenda
...
Pós-condições . . .
... Pós-condições:
...
Contratos
Iniciando o Projeto
Vender Itens
idProd
Produto
Pertence-a CatalogoProdutos
* Descrita-por 1 1..* 1
descricao
preco
idProd
Extraído de Larman
Projeto – Diagrama de Comunicação
(ou colaboração – antes da UML 2.0)
:CtrVenderItens
Exemplo de Larman
Projeto – Diagrama de Sequência
:CtrVenderItens
Exemplo de Larman
Projeto – Diagrama de Sequência
:CtrVenderItens
Exemplo de Larman
Projeto – Diagrama de Sequência
:CtrVenderItens
Exemplo de Larman
Projeto - Camadas
1.1.
:CtrVenderItens 1.1.1.
Extraído de Larman
Projeto – Diagrama de Classes
CtrVenderItens
Exemplo de Larman
Diagrama de Classes (OO)
◼ No projeto:
Extraído de Larman
Outros diagramas já vistos
◼ Diagramas como o de estado, também podem ser
usados no projeto. Veja esse exemplo:
Extraído de Guedes, G.
Diagrama de Pacotes
◼ Representa a arquitetura lógica do sistema
VenderItens
Adaptado de Larman
Diagrama de Implantação
◼ Representa a arquitetura física do sistema
Extraído de Larman
Diagrama de Componentes
◼ Também representa a arquitetura física do sistema
Extraído de Guedes, G.
Modelagem de dados - Projeto
◼ Lembrar do Modelo Lógico
Tabelas
Exemplo:
if ( (pais == CING) || (pais == BRU) ||
(pais == POL) || (pais == ITA) )
{
/* Se o país for Cingapura, Brunei ou Polônia
* então a hora atual é a hora de resposta
* em vez da hora livre.
*/
...
Qual o relacionamento entre Cingapura, Brunei,
Polônia e Itália?
Por que Itália não está no comentário?
Codificação - Dicas
NOMES:
class UserQueue {
int noOfItemsInQ, frontOfTheQueue, queueCapacity;
public int noOfUsersInQueue() {...}
}
n= queue.noOfUsersInQueue();
---------------------------------------------------------------------
OU
n = queue.nusers();
class UserQueue {
int nitems, front, capacity;
public int nusers() {...}
}
Codificação - Dicas
Nomes de funções:
if (checaprimo(c)) ...
OU
if (ehprimo(c))
Codificação - Dicas
Nomes descritivos para variáveis
globais e curtos para locais:
int comprfila = 0; //comprimento atual da fila de entrada
OU
OU
OU
OU
OU
OU
PADRONIZAÇÕES AJUDAM O
ENTENDIMENTO