Buscar

Aula_0014-Componentes-do-Sistema

Prévia do material em texto

Aula 14 
Componentes do Sistema 
Sumário 
• Introdução 
 
• Arquitetura em Camadas 
 
• Diagrama de Componentes 
 
• Diagrama de Implantação 
 
• Padrões de Projeto e de Arquitetura 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 2 
Sumário 
• Introdução 
 
• Arquitetura em Camadas 
 
• Diagrama de Componentes 
 
• Diagrama de Implantação 
 
• Padrões de Projeto e de Arquitetura 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 3 
Introdução 
• Um sistema OO é composto por objetos que interagem entre 
si; 
 
• Uma preocupação sempre presente é a de como dividir o 
sistema em partes menores e como organizar as classes que 
compõem o sistema; 
 
• Essas questões são relativas à arquitetura do software. 
– Não existe uma solução universal para a arquitetura de um sistema. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 4 
Definições 
PACOTE 
 
• São utilizados para agrupar classe; 
 
• Pode agrupar também outro artefatos de um modelo. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 5 
Definições 
INTERFACES 
 
• Para entender interface devemos definir serviço. Um serviço é 
composto de: 
– Especificação – Define o que ele realiza, além de documentar as 
informações necessárias para que o serviço seja realizado. 
– Método – Modo de realização do serviço 
 
• Interface é um conjunto de especificações de serviços. Não 
possui estrutura interna: atributos e corpo de método. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 6 
Definições 
INTERFACES 
 
• A UML define duas notações equivalentes para interfaces: 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 7 
Definições 
INTERFACES 
 
• A UML define duas notações equivalentes para interfaces: 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 8 
Definições 
SUBSISTEMAS 
 
• Um sistema OO é composto por subsistemas, que 
correspondem a um aglomerado de classes. 
 
• Um subsistema é um tipo especial de pacote, na UML um 
subsistema é representado por um pacote com um estereótipo. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 9 
Definições 
SUBSISTEMAS 
 
• Durante a construção de um sistema, seus subsistemas devem 
ser identificados, juntamente com as interfaces entre eles. 
 
• Cada classe do sistema é alocada a um subsistema; 
 
• No modelo de classes de domínio, podemos iniciar essa 
definição: 
– Os casos de uso são um bom ponto de partida. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 10 
Definições 
SUBSISTEMAS 
 
• Uma forma comum de agrupar as classes em substistemas é 
considerar as classes mais importantes do modelo de classes 
de domínio; 
 
• Para cada uma dessas classes é criado um subsistema, porém 
haverão mudanças posteriormente. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 11 
Definições 
SUBSISTEMAS 
 
• Para construir o diagrama, devemos ter alguns cuidados: 
– Devem ser minimamente acoplados: pouco relacionamento entre 
classes de subsistemas diferentes 
– Devem ser maximamente coesos 
– Deve ser evitadas dependências cíclicas. P1  P2  P3  P1 
– Uma classe deve ser definida em um único subsistema 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 12 
Definições 
COMPONENTES 
 
• Um sistema de software é composto por diversos 
componentes: 
– Elementos que existem a tempo de execução do sistema 
 
• Componentes podem ser utilizados na construção de diversos 
softwares. Exemplos de tecnologias baseadas em componentes 
– COM 
– CORBA 
– EJB 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 13 
Definições 
COMPONENTES 
 
• Componentes são unidades de software que podem ser 
utilizados na construção de vários sistemas; 
 
• Podemos também modificar os componentes alterando a forma 
de funcionamento dos mesmos. 
 
• Os componentes proveem acesso a seus serviços pela sua 
interface. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 14 
Definições 
COMPONENTES X SUBSTISTEMAS 
 
• Componentes existem em tempo de execução do sistema, já 
subsistemas só existem na modelagem; 
 
• Componentes apresentam conceitos físicos, em vez de 
conceitos lógicos como os subsistemas; 
 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 15 
Definições 
DESENVOLVIMENTO 
BASEADO EM COMPONENTES 
 
• Existe uma linha de pesquisa que 
baseia a construção de sistemas à 
componentes; 
 
• Com o passar do tempo, o 
desenvolvimento de sistemas é 
cada vez mais voltado ao reuso de 
componentes existentes. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 16 
Definições 
COMPONENTES NA UML 
 
• “módulo, pacote ou subsistema que tem uma função e uma 
interface bem definidos e pode ser integrado em um ou mais 
sistemas” 
 
• A UML possui um diagrama próprio para componentes. 
 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 17 
Sumário 
• Introdução 
 
• Arquitetura em Camadas 
 
• Diagrama de Componentes 
 
• Diagrama de Implantação 
 
• Padrões de Projeto e de Arquitetura 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 18 
Arquitetura em Camadas 
• A arquitetura de um sistema pode ser estruturada de diferentes 
formas, dentre elas em camadas; 
 
• Uma camada é uma coleção de unidades de software que 
podem ser executadas ou acessadas; 
 
• A divisão em camadas torna o software mais portável e 
modificável. 
 
• Não existe elemento para modelar camadas na UML 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 19 
Sistemas Cliente-Servidor 
• É um sistema divido em duas camadas: 
– Cliente: requisita os serviços 
– Servidor: processa as solicitações 
 
• O cliente é executado na máquina do usuário, preocupações 
com interface gráfica já o servidor é executado em uma 
máquina com um poder de processamento maior; 
 
• Um servidor pode oferecer serviços (impressão, email, 
gerenciamento de janelas) 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 20 
Sistemas Cliente-Servidor 
• Um cliente também pode aparecer de duas formas diferentes: 
– Cliente magro (Thin Cliente): O processamento fica mais a cargo do 
servidos 
 
– Cliente gordo (Fat Client): O cliente também realiza parte do 
processamento, ficando responsável por parte da lógica da aplicação, o 
servidor funciona como um repositório de dados 
 
• Sistemas assim estão se tornando obsoletos. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 21 
Sistemas em Três Camadas 
• O sistema é divido em três partes, não necessariamente em 
máquinas diferentes: 
– Camada de Apresentação: Classes com funcionalidades para 
visualização de dados pelos usuários e interface com outros sistemas 
 
– Camada de Negócios: Contém a lógica da aplicação, implementa as 
regras de negócio do sistema. 
 
– Camada de Acesso: Se comunicam com outros sistemas para realizar 
tarefas e adquirir informações, normalmente utiliza uma tecnologia de 
banco de dados. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 22 
Sumário 
• Introdução 
 
• Arquitetura em Camadas 
 
• Diagrama de Componentes 
 
• Diagrama de Implantação 
 
• Padrões de Projeto e de Arquitetura 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 23Arquitetura Física 
• Em sistemas pequenos, essa arquitetura não possui muita 
importância; 
 
• Existem dois diagramas de implementação: 
– Diagrama de Implantação 
– Diagrama de Componentes 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 24 
Diagrama de Componentes 
• Mostra os diversos componentes do sistema; 
 
• Os elementos principais desse diagrama são: 
– Componentes, Interfaces e Dependências 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 25 
Diagrama de Componentes 
• Exemplo: 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 26 
Diagrama de Componentes 
• A UML define estereótipos para componentes: 
– Executável 
– Documento 
– Tabela 
– Arquivo 
– Biblioteca 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 27 
Sumário 
• Introdução 
 
• Arquitetura em Camadas 
 
• Diagrama de Componentes 
 
• Diagrama de Implantação 
 
• Padrões de Projeto e de Arquitetura 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 28 
Diagrama de Implantação 
• Representa a topologia física do sistema, e os componentes 
que são executados nessa topologia; 
 
• Elementos: 
– Nós – Unidade física que representa um recurso computacional e 
normalmente possui memória e capacidade de processamento. Podem 
ser: processadores, sensores, roteadores, ou outros objetos 
– Conexões– Conectam os nós e mostram o mecanismo de comunicação 
entre eles: TCP/IP, HTTP... 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 29 
Diagrama de Implantação 
• Exemplo: 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 30 
Diagrama de Implantação 
• Exemplo com mais detalhes: 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 31 
Diagrama de Implantação 
• A alocação de componentes à nós físicos só têm lógica em 
sistemas distribuídos; 
 
• Tem por objetivo distribuir a carga. Mas interferem bastante 
no desempenho. Fatores a analisar: 
– Utilização de dispositivos 
– Carga Computacional 
– Capacidade de Processamento dos Nós 
– Realização de Tarefas 
– Tempo de resposta 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 32 
Arquitetura Física no Processo de 
Desenvolvimento 
• A construção de diagramas de componentes deve ser iniciado 
na fase de elaboração e refinada na construção; 
 
• Para sistemas distribuídos, é mais interessante visualizar os 
componentes no diagrama de implantação; 
 
• Já o diagrama de Implantação tem início na fase de elaboração 
e na fase de construção há a adição de novos componentes. 
 
• O Diagrama de implantação deve fazer parte dos manuais de 
instalação. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 33 
Sumário 
• Introdução 
 
• Arquitetura em Camadas 
 
• Diagrama de Componentes 
 
• Diagrama de Implantação 
 
• Padrões de Projeto e de Arquitetura 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 34 
Padrões de Projeto e de Arquitetura 
• Ao projetarmos um software devemos ter uma preocupação 
com a arquitetura do sistema; 
 
• É comum a arquitetura do sistema é definida pelos sistemas 
legados da empresa, mas muitas vezes temos que iniciar outra 
arquitetura; 
 
• A arquitetura adotada será importante na escolha dos padrões 
para o desenvolvimento da aplicação, escolha de frameworks, 
dentre outros. 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 35 
Padrões de Projeto e de Arquitetura 
• Ao projetar a arquitetura é possível dividir o sistema em partes 
menores: 
– Dividir para conquistar 
 
• Ao escolher a arquitetura devemos ter em mente que existem 
alguns pontos conflitantes: 
– Aumentar a escalabilidade pode tornar o software mais complexo 
– Utilizar uma nova tecnologia pode adiar prazos de entrega. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 36 
Padrões de Projeto e de Arquitetura 
• Ao escolher a arquitetura, devemos considerar: 
– Onde a empresa pretende hospedar o sistema 
– Plataformas utilizadas pela empresa 
– Tipo de plataforma que será utilizada 
– Sistemas legados aos quais o novo está integrado 
– Tipo de interface que deseja utilizar 
 
• Devemos também analisar os riscos e os custos de cada 
alternativa. 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 37 
Padrões de Projeto e de Arquitetura 
• Existem alguns padrões de Projeto e de Arquitetura 
amplamente utilizados no mercado; 
 
• Padrões de Projeto definem estruturas e comportamentos a 
serem utilizados na construção dos componentes de software; 
 
• Padrões de Arquitetura definem estruturas e comportamentos 
de sistemas e subsistemas para atender a requisitos não 
funcionais. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 38 
Utilizando Padrões 
• No mercado existe uma variedade de catálogos de padrões de 
projeto e de arquitetura que podem ser utilizados nos sistemas; 
 
• Padrões podem ser vistos como soluções propostas para 
problemas conhecidos: 
– Tem uma aplicabilidade bem definida 
– São bem documentados 
– São testados 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 39 
Arquitetura do Sistema em Camadas 
• É comum dividir o desenvolvimento do sistema em camadas, 
cada uma com suas preocupações; 
 
• Em aplicações Web, podemos ter as seguintes camadas: 
– Cliente – Clientes thin, como web browsers 
– Apresentação – Fornece páginas HTML e formulários ao browser 
– De negócio – Provê serviços e entidades de negócio 
– Integração – Provê componentes relacionados à integração da camada 
de negócios com a de recursos 
– Recursos – Contém recursos backend, como sistema de gerenciamento 
de banco de dados, dentre outros. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 40 
Padrões Arquiteturais 
• Os padrões arquiteturais definem estruturas e comportamentos 
de sistemas e subsistemas para atender requisitos não 
funcionais: 
– Segurança 
– Escalabilidade 
– Confiabilidade 
– Desempenho 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 41 
Padrão MVC 
• É muito utilizado, separa o gerenciamento, apresentação e 
lógica de negócios; 
 
• Permite a realização de mudanças sem interferir no sistema 
como um todo; 
– Maior desacoplamento 
 
• Toda a lógica de negócios pode ser utilizada por uma interface 
web ou outro aplicativo Desktop. 
 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 42 
Padrão MVC 
• Divide o sistema nos seguintes componentes: 
– Model: Contém dados de negócio, o processamento e as regras de 
negócio; 
 
– View: Responsável por mostrar a interface gráfica ao usuário, gerencia 
e repassa os eventos ao controlador; 
 
– Controller: Recebe eventos de requisição do usuário, realiza o 
processamento e determina qual view deve ser apresentada ao usuário. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 43 
Padrão de Camadas (Layers) 
• Utilizado para especificar aplicações que podem ser 
decompostas em grupos e subtarefas; 
 
• Nesse caso, podemos ter a divisão em camadas: cliente, de 
apresentação, de negócios, de integração e de recursos; 
 
• Esse padrão aparece em vários sistemas, principalmente nos 
padrões J2EE 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 44 
Padrões de Camadas (Layers) 
• Existem muitas vantagens: 
 
– Permite o reuso de camadas 
 
– Permite quedesenvolvimento e manutenção sejam realizados 
separadamente 
 
– Permite mudanças em uma das camadas sem a necessidade de interferir 
nas demais. 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 45 
Referências 
• BEZERRA, Eduardo. Princípios de Análise e Projeto de 
Sistemas com UML. Rio de Janeiro: Editora Campus, 2006. 
 
• ENGHOLM JUNIOR, Hélio. Análise e Design Orientados a 
Objetos. São Paulo: NOVATEC, 2013. 
 
Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 46

Continue navegando