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