Arquitetura: Visão Lógica Prof. Wolley W. Silva. Agenda Representar a arquitetura lógica composta...
Transcript of Arquitetura: Visão Lógica Prof. Wolley W. Silva. Agenda Representar a arquitetura lógica composta...
Arquitetura: Visão Lógica
Prof. Wolley W. Silva
Agenda
• Representar a arquitetura lógica composta por:– Classes– Pacotes – Camadas
Visões Arquiteturais
• Para um edifício, são usados tipos diferentes de plantas para representar diversos aspectos da arquitetura.
Planta ElétricaPlanta Hidráulica Planta 3D
Modelo de visão 4+1 da Arquitetura - RUP
Visão lógicaVisão de
implementação
Visão de processo
Visão de implantação
Visão de Caso de Uso
Análise e Design - Disciplina do RUP
Visão Lógica• Representa abstrações do modelo de domínio em
classes, pacotes, camadas e suas dependências.
Visão Lógica: Classes de Domínio• Um modelo de domínio é um representação visual de classes
conceituais, ou objetos do mundo real, em um domínio.
Sistema para uma transportadora
Classes de um sistema PDV
Visão Lógica: Classes de Domínio
Registradora tem Três Atributos1. Id2. vendaCorrentes3. localização
• Resultado das associações em Código
Visão Lógica: Classes de Domínio
• Resultado de uma associação 1..* no código
Visão Lógica: Classes de Domínio
Visão Lógica: Classes de Domínio
• Método ligar da classe ControleUniversal depende de um objeto da classe da classe AparelhoEletronico
Visão Lógica: Classes de Domínio
• A classe Cliente apresente um baixo grau de COESÃO (por tratar de assuntos diferentes: clientes e aluguel de filmes).
• Deve representar, alem das classes de domínio, as soluções de Design (Padrões de Modelagem), os métodos e suas interfaces detalhada.
Visão Lógica: Classes de Projeto
Visão Lógica: Pacotes
• Definir os pacotes dentro dos quais as classes de software são definidas
Visão Lógica: Diagrama de Pacotes - UML
• Um diagrama de pacotes fornece um modo de agrupar elementos.
• Um pacote pode agrupar:– Classes– Outros pacotes– Casos de uso– Etc...
• Dependência– A linha de dependência da UML é usada para
mostrar os acoplamentos entre pacotes.
Visão Lógica: Diagrama de Pacotes - UML
• Nomes plenamente qualificados:– Um pacote UML representa um espaço de nomes
de modo que, por exemplo, uma classe Date pode ser definida em dois pacotes.
– Import java.util.Date;– Import java.sql.Date;
Visão Lógica: Diagrama de Pacotes - UML
Visão Lógica: Diagrama de Pacotes - UML
Abordagens alternativas UML para mostrar aninhamento de pacotes usando pacotes embutidos, nomes UML plenamente qualificados e o símbolo círculo-cruz.
Visão Lógica: Camadas
• Uma camada é um agrupamento de maior granularidade de classes, pacotes ou subsistemas com responsabilidade coesiva.
• As camadas são organizadas de modo que as “mais altas” (como a camada de IU) solicitem serviços das “mais baixas” mas normalmente não vice-versa.
Visão Lógica: Camadas• Representa abstrações do modelo de domínio
(classes), pacotes, camadas e suas dependências.
• Camadas em um sistema OO incluem:– Interface com o Usuário– Lógica da Aplicação e Objetos do Domínio – objetos de
software representando conceitos do domínio (por exemplo, uma classe de software Venda) que satisfazem requisitos da aplicação, como calcular um total de venda.
– Serviços Tecnicos – objetos de propósito geral e subsistemas que fornecem serviços técnicos de apoio, como interfaceamento com um banco de dados ou registro de erros. Esses serviços geralmente são independentes da aplicação e reusáveis entre diversos sistemas.
Visão Lógica: Camadas
Projeto em camadas
• Benefícios do uso de Camadas:– Separação de interesses, reduz o acoplamento e
as dependências, melhora coesão, aumenta o potencial de reuso;
– Algumas camadas podem ser substituídas por nova implementação;
– Camadas inferiores contêm funções reusáveis;– O desenvolvimento em equipes é facilitado por
causa da segmentação lógica.
Projeto em camadas
Leitura Recomendada:
• Capitulo 13: Arquitetura Lógica e Diagrama de Pacotes UML• http://online.minhabiblioteca.com.br/#/books/978857780
0476/pages/47586136
Exercício
• Revisar o Diagrama de Classe de Domínio e Projeto
• Modelar um Diagrama de Pacotes da sua aplicação.