Representando Arquiteturas com
Pacotes
Um
pacote
é um conjunto de elementos de modelo
de qualquer tipo (casos de uso, classes, diagramas
de interação), incluindo outros pacotes
O sistema inteiro pode ser considerado dentro do
escopo de um único pacote — o pacote
Sistema
Notação para pacotes na UML:
Domain Concepts
Notação
É representado graficamente por uma
pasta
.
Todo o pacote tem um nome que o
distingue dos outros pacotes
.
Todo elemento dentro de um pacote
.
deve ter um nome único
Um path name é o nome de um pacote
prefixado pelo nome do pacote no qual ele
se encontra.
Deve evitar aninhamento
Diagrama de Pacotes
Não têm significado por si só; o seu
comportamento é dado pelos
elementos que o compõem.
A sua utilização facilita a gestão e
Diagrama de Pacotes
Pacote: Agrupamento de classes
ou qualquer outro elemento UML.
Diagramas de Pacotes mostram
pacotes de elementos e as
dependências entre eles.
Diagrama de Pacotes
Em um modelo UML, cada classe (ou
elemento) é membro de um único pacote.
Os pacotes podem ser membros de outros
pacotes, de modo que se obtém uma
estrutura hierárquica na qual os pacotes de
nível superior são divididos em subpacotes
que possuem seus próprios subpacotes.
Um pacote pode conter subpacotes e
Pacote
Um pacote é um mecanismo genérico
para organizar elementos em grupos.
É um elemento de modelagem que pode
conter outros elementos de modelagem.
Um pacote pode ser utilizado para:
Organizar o modelo em desenvolvimento.
Compor uma unidade de configuração.
Princípio OO: Modularidade e Hierarquia.
Subsistema
Uma combinação de um pacote (pode conter
outros elementos de modelagem) como uma
classe (possui comportamento).
Realiza uma ou mais interfaces que definem seu
comportamento.
Princípio OO: Encapsulamento e Modularidade.
Interface
Nom e do Pacote <<s ubs ys te m >>
Realização
Relacionamento entre Pacotes
Relacionamento entre pacotes é o de
Dependência
.
Se um pacote A depende de um pacote
B, uma ou mais classes de A inicia
comunicação com uma ou mais classes
públicas de B
Pacote A é o CLIENTE.
Pacote B é o FORNECEDOR.
Relacionamento entre Pacotes
Toda vez que uma classe em um pacote A
utilizar uma classe de um pacote B, existirá uma
relação de dependência do pacote A em relação
ao pacote B.
Toda vez que o pacote B for modificado, o
pacote A deverá ser verificado para verificar o
impacto.
O pacote A só pode ser utilizado se o pacote B
estiver presente.
Pacote Cliente A
Dependência
RECEBER PEDIDO COMPRADORES
PEDIDOS
Dependência
Pacote
APLICAÇÃO P/ RECEBIMENTO DO
Dependência
Se a classe
Pedidos
é modificada, isto não
implica que a classe
Receber Pedido
necessita ser modificada. Isto apenas indica
que a classe
Aplicação para Recebimento
do Pedido
deve ser verificada para ver se é
modificada.
Somente se a classe
Aplicação para
Recebimento do Pedido
for modificada na
interface, indicará que a classe
Receber
Generalização
Pacote1
Pacote2
Visibilidade Entre Pacotes
Visibilidade típica:
Acesso a pacotes de domínio
Outros pacotes (normalmente pacotes de
apresentação) têm visibilidade para várias das classes
que representam conceitos de domínio.
Acesso a pacotes de serviço
Outros pacotes (normalmente pacotes de domínio e
apresentação) têm visibilidade para apenas uma ou
poucas das classes representando um serviço
particular.
Acesso a pacotes de apresentação
Nenhum outro pacote tem visibilidade direta para as
Diagrama de Pacotes: Visibilidade
Uma classe dentro de um pacote não
vê as classes e operações de outro
pacote, a menos que o pacote seja
importado.
Podemos modelar isto usando o
Visibilidade
Um elemento de um pacote
Pacote_X
é público (+)
se é visível para os elementos de um
Pacote_Y
que
importa o
Pacote_X.
Elementos protegidos (#) só podem ser vistos pelos
pacotes filhos.
Elementos privados (-) não podem ser vistos fora
do pacote em que estão declarados.
Diferentes ambientes de programação têm regras
Visibilidade
Uma regra útil é reduzir a interface do
pacote, exportando apenas um pequeno
subconjunto das operações associadas às
classes públicas do pacote. Como proceder:
Fornecer visibilidade privada a todas as classes,
para que elas possam ser vistas apenas por
outras classes do mesmo pacote;
Adicionar classes públicas extras para o
comportamento público (Facades);
As classes extras delegam operações públicas
Exportação e Importação
Os elementos públicos de um
pacote são chamados
“
exports
”.
Se
X importa Y:
Um elemento de X pode ver os
elementos públicos de Y,
Exportação e Importação
Importação é representada por
uma dependência com um
estereótipo
<<import>>
Se um elemento é visível num
Diagrama de Pacotes
(Análise)
Int erfaces
Artefat os Universitarios
Diagrama de Pacotes (Projeto)
Interfaces
Artefatos Universitarios
Pessoas Controles GUI
Foundations Classes
g l o b a l
Acesso a BD Tratamento de Erro
Pacotes Lógicos
Interfaces de usuário da aplic ação
Plataforma de Interfaces de usuário
Pacotes Lógicos
Candidatos a pacotes lógicos:
Interfaces de usuários da aplicação;
Componentes da biblioteca de interfaces
de usuário do ambiente de
desenvolvimento;
Componentes que realizam regras de
negócios e outras características da
aplicação do produto;
Componentes que representam
Pacotes Lógicos
Candidatos a pacotes lógicos:
Interfaces com banco de dados e outras
estruturas de dados persistentes;
Interfaces de comunicação de dados, em
sistemas distribuídos;
Interfaces com dispositivos especiais de
hardware;
Interfaces de uso dos serviços embutidos nos
Pacotes Lógicos e Camadas da Aplicação
Interfaces de usuário da aplicação
Plataforma de Interfaces de usuário
Regras de negício Controladoras Objetos de negócio Camada de Persistência Plataforma de Banco de dados
Exercício – Pousada – Crie um
Diagrama de Pacotes para o Sistema
O gerente de uma pousada deseja um sistema para gerenciar as reservas. Quando um cliente potencial deseja fazer uma reserva, o sistema verifica se
existem quartos disponíveis no período, e em caso positivo, o sistema solicitará os dados do cliente (nome, endereço, telefone).
O sistema também deve armazenar sobre a reserva a data prevista para entrada, data prevista para saída, valor do desconto concedido e o número dos quartos. Cada quarto possui um preço e uma descrição. Não há frigobar. Nem serviços de quarto.
As reservas são garantidas através do pagamento de uma diária.
Caso o cliente não efetue este pagamento até três dias antes da data prevista de entrada, a reserva é cancelada pelo sistema. Um relatório de reservas canceladas é gerado pelo sistema diariamente. Outros relatórios diários são o relatório de
reservas não pagas e o relatório sobre as reservas a serem efetivadas no dia.
Quando Utilizar Pacotes
Os pacotes são ferramentas vitais
para projetos grandes
Utilize pacotes sempre que um
Como Definir as Classes de um
Pacote
Princípio de Fechamento Comum
As classes de um pacote devem precisar de
alterações por motivos semelhantes.
Princípio da Reutilização Comum
Todas as classes de um pacote devem ser
reutilizadas juntas.
Muitos dos motivos para o agrupamento de
Identificando Pacotes
Regras úteis:
Agrupar em um pacote elementos que oferecem
um serviço comum (ou uma família de serviços
relacionados), com
acoplamento e
colaboração
relativamente altos.
Em níveis mais altos de abstração, o pacote
deve ser visto como um elemento altamente
coeso
, com responsabilidades fortemente
relacionadas.
Por outro lado, o
acoplamento e colaboração
Acoplamento e Coesão
Alta coesão – oferecer um grupo de
serviços logicamente correlatos;
Baixo acoplamento – oferecer ao
Formas de Coesão
Funcional – rotina executa uma única tarefa;
Seqüencial – rotina executa uma seqüência de
tarefas correlatas e encadeadas;
Comunicacional – rotina executa seqüência de
tarefas que usa um conjunto comum de dados;
Temporal – rotina executa um conjunto de tarefas
coincidentes no tempo;
Procedimental – rotina executa uma seqüência de
tarefas ordenadas mas não-correlatas nem
encadeadas;
Lógico – rotina executa uma entre várias tarefas, de
acordo com o valor de uma variável de estado;
Formas de Acoplamento
Refere-se à maneira de comunicação entre as
rotinas.
O acoplamento é frouxo se existe:
baixa cardinalidade – número de objetos
comunicados entre as rotinas;
baixa intimidade – grau de controle de acesso;
alta visibilidade – grau de visibilidade dos dados
passados;
alta flexibilidade – grau de liberdade que a rotina
Dicas
Não devem existir ciclos nas dependências.
Se existirem que sejam localizados, sem
cruzar as camadas.
Quanto mais dependências entram em um
pacote, mais estável deve ser a sua
interface, pois qualquer modificação em sua
interface será propagada para todos os
Exercício:
Biblioteca:
A atividade da biblioteca encontra-se principalmente no
empréstimo de publicações pelos alunos da universidade.
O aluguel é registrado pelos funcionários da biblioteca,
que também consultam diariamente os empréstimos cujos
prazos foram ultrapassados. Todo processo é efetuado
manualmente, sendo muito ineficiente. Espera-se que o
novo sistema resolva esta situação.
Os alunos necessitam pesquisar os livros existentes na
biblioteca. Caso um livro esteja emprestado é mostrada a
data esperada de entrega.
Diagrama de Estruturas
Compostas
Tem capacidade de decompor
hierarquicamente uma classe em uma
estrutura interna.
Permite que você pegue um objeto
complexo e divida-o em partes.
Você poderá exibir um pequeno diagrama
de classes dentro de uma classe.
Esse tipo de notação leva a uma
Conectores
As classes-partes podem ser ligadas
por conectores.
Os conectores são linhas que indicam
links que habilitam a comunicação
entre duas ou mais instâncias.
Indicam a ligação entre as instâncias
Diferença entre Pacotes e
Estruturas Compostas
Os diagramas de pacotes são um
agrupamento em tempo de
compilação.
Os diagramas de estruturas
compostas mostram agrupamentos em
tempo de execução.
Os diagramas de estruturas servem
Exercício – Pousada – Crie um Diagrama
de Estruturas Compostas para o Sistema
O gerente de uma pousada deseja um sistema para gerenciar as reservas. Quando um cliente potencial deseja fazer uma reserva, o sistema verifica se
existem quartos disponíveis no período, e em caso positivo, o sistema solicitará os dados do cliente (nome, endereço, telefone).
O sistema também deve armazenar sobre a reserva a data prevista para entrada, data prevista para saída, valor do desconto concedido e o número dos quartos. Cada quarto possui um preço e uma descrição. Não há frigobar. Nem serviços de quarto.
As reservas são garantidas através do pagamento de uma diária.
Caso o cliente não efetue este pagamento até três dias antes da data prevista de entrada, a reserva é cancelada pelo sistema. Um relatório de reservas canceladas é gerado pelo sistema diariamente. Outros relatórios diários são o relatório de
reservas não pagas e o relatório sobre as reservas a serem efetivadas no dia.
Exercício:
Biblioteca:
A atividade da biblioteca encontra-se principalmente no
empréstimo de publicações pelos alunos da universidade.
O aluguel é registrado pelos funcionários da biblioteca,
que também consultam diariamente os empréstimos cujos
prazos foram ultrapassados. Todo processo é efetuado
manualmente, sendo muito ineficiente. Espera-se que o
novo sistema resolva esta situação.
Os alunos necessitam pesquisar os livros existentes na
biblioteca. Caso um livro esteja emprestado é mostrada a
data esperada de entrega.
Crie o Diagrama de Estruturas Compostas para o
Diagramas de Interação
Diagrama de Sincronização
Mostra a mudança de estado de um objeto
numa passagem de tempo, em resposta à
eventos externos.
É mais utilizado quando o objetivo
principal do diagrama é a determinação do
tempo (útil para sistemas de tempo real).
O foco está nas restrições de
Diagrama de Sincronização -
Elementos
Objeto – objeto que está sendo observado;
Estado – estado (s) que o objeto pode
assumir;
Mudança de estado – mudança de estado
entre os objetos;
Temporizador – tempos que estão sendo
apresentados;
Evento – evento gerador da mudança de
Exemplo
Cenário: bomba e chapa elétrica da
cafeteira.
Regras:
pelo menos 10 segundos devem passar
entre o acionamento da bomba e o
aquecimento da chapa;
Quando o reservatório de água se
Diagrama de Sincronização
10s
Objeto
Estado
Sem Água
Mudança
de Estado
Exercício – Pousada – Crie um Diagrama
de Sincronização para o Sistema
O gerente de uma pousada deseja um sistema para gerenciar as reservas. Quando um cliente potencial deseja fazer uma reserva, o sistema verifica se
existem quartos disponíveis no período, e em caso positivo, o sistema solicitará os dados do cliente (nome, endereço, telefone).
O sistema também deve armazenar sobre a reserva a data prevista para entrada, data prevista para saída, valor do desconto concedido e o número dos quartos. Cada quarto possui um preço e uma descrição. Não há frigobar. Nem serviços de quarto.
As reservas são garantidas através do pagamento de uma diária.
Caso o cliente não efetue este pagamento até três dias antes da data prevista de entrada, a reserva é cancelada pelo sistema. Um relatório de reservas canceladas é gerado pelo sistema diariamente. Outros relatórios diários são o relatório de
reservas não pagas e o relatório sobre as reservas a serem efetivadas no dia.
Exercício:
Biblioteca:
A atividade da biblioteca encontra-se principalmente no
empréstimo de publicações pelos alunos da universidade.
O aluguel é registrado pelos funcionários da biblioteca,
que também consultam diariamente os empréstimos cujos
prazos foram ultrapassados. Todo processo é efetuado
manualmente, sendo muito ineficiente. Espera-se que o
novo sistema resolva esta situação.
Os alunos necessitam pesquisar os livros existentes na
biblioteca. Caso um livro esteja emprestado é mostrada a
data esperada de entrega.
Diagramas de Interação
Diagrama de Visão Geral
Variação do diagrama de atividades
que mostra de uma forma geral o fluxo
de controle dentro de um sistema ou
processo de negócios.
Cada nó ou atividade do diagrama
pode representar outro diagrama de
interação.
As linhas de vida não aparecem neste
Exercício – Pousada – Crie um Diagrama
de Visão Geral para o Sistema
O gerente de uma pousada deseja um sistema para gerenciar as reservas. Quando um cliente potencial deseja fazer uma reserva, o sistema verifica se
existem quartos disponíveis no período, e em caso positivo, o sistema solicitará os dados do cliente (nome, endereço, telefone).
O sistema também deve armazenar sobre a reserva a data prevista para entrada, data prevista para saída, valor do desconto concedido e o número dos quartos. Cada quarto possui um preço e uma descrição. Não há frigobar. Nem serviços de quarto.
As reservas são garantidas através do pagamento de uma diária.
Caso o cliente não efetue este pagamento até três dias antes da data prevista de entrada, a reserva é cancelada pelo sistema. Um relatório de reservas canceladas é gerado pelo sistema diariamente. Outros relatórios diários são o relatório de
reservas não pagas e o relatório sobre as reservas a serem efetivadas no dia.
Exercício:
Biblioteca:
A atividade da biblioteca encontra-se principalmente no
empréstimo de publicações pelos alunos da universidade.
O aluguel é registrado pelos funcionários da biblioteca,
que também consultam diariamente os empréstimos cujos
prazos foram ultrapassados. Todo processo é efetuado
manualmente, sendo muito ineficiente. Espera-se que o
novo sistema resolva esta situação.