Baixe o app para aproveitar ainda mais
Prévia do material em texto
Nesta aula, trataremos da arquitetura física do software desenvolvida sob o paradigma da orientação a objetos, especificamente com auxilio da UML, denominada modelo de implementação, que, por sua vez, é decomposto em dois diagramas: componentes e implantação. O diagrama de implantação visa mostrar a arquitetura física dos nós (de processamento), onde o sistema será executado, e as conexões entre eles; ou seja, apresenta infraestrutura, servidores e demais dispositivos necessários ao funcionamento do sistema. O diagrama de componentes mostra a divisão do sistema em componentes de software e a relação entre eles. A junção dos dois diagramas, que é opcional, permite-nos saber o poder de processamento e capacidade de memória e discos dos nós envolvidos, na medida em que definimos componentes que rodarão em cada um. Discriminar o diagrama de componentes e seus elementos; Discriminar o diagrama de implantação e seus elementos; Relacionar os diagramas de componentes e implantação; Aplicar, através de exemplos, a construção e integração entre os diagramas de componentes e implantação. O que são e o que fazem? Diagramas de componentes mostram os componentes de um sistema e suas dependências. Diagramas de componentes são úteis para modelagem da arquitetura física de um software, apresentando os componentes físicos, suas interfaces e dependências. Os diagramas de componentes permitem o desenvolvimento baseado em componentes, onde um software é dividido em componentes e interfaces reutilizáveis e substituíveis. Análise Orientada e Objetos e Projeto Arquitetural Aula 4: Implementação e Arquitetura do Software Introdução Objetivos Diagramas de componentes Imagine um sistema de home theater composto por componentes que podem ser facilmente conectados uns aos outros e substituídos a qualquer momento: projetor, receiver, caixas de som (frontal, lateral, subwoofer). Se qualquer elemento queimar, poderemos substituí-lo por um igual ou equivalente (com as mesmas interfaces). A ideia do uso de componentes em software é a mesma: conjunto de componentes com interfaces bem definidas que podem ser integrados a qualquer sistema e substituído sempre que necessário. A UML define componente como: “Um componente representa uma parte modular de um sistema que encapsula seu conteúdo e cuja manifestação é substituível dentro de um ambiente. Um componente define seu comportamento em termos de interfaces fornecidas e requeridas. Como tal, um componente serve como um tipo, cuja conformidade é definida por essas interfaces fornecidas e requeridas”. Um componente pode ser definido como uma caixa-preta onde são especificadas as suas interfaces para que outros componentes possam usar seus serviços sem conhecer detalhes de como esses serviços estão sendo implementados. Ou seja, o componente encapsula (protege) o seu conteúdo e seu comportamento é definido em função de prover e requerer serviços através de suas interfaces. Figura 1 Fonte: Elaborado pelo autor A imagem ao lado mostra a representação do componente na UML. O componente tem um nome: “Componente”. A ideia é construir sistemas como um conjunto de componentes, que são partes substituíveis; deve-se poder reutilizá-los em muitos sistemas. Os componentes devem ter interfaces que propiciem grande flexibilidade e adaptação em muitos sistemas. Componentes podem, inclusive, ser criados de outros componentes. Veja, a seguir, sobre interfaces. Componentes Atenção! http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura1.png O desejo é que o componente possa ser independente e intercambiável. Em um sistema baseado em componentes, cada componente tem uma finalidade, ou seja, presta um serviço e para tal demanda o uso de outros componentes. Interfaces são elementos que definem um conjuntos de operações que outros elementos, como classes ou componentes, devem implementar. Em diagramas de componentes, existem dois tipos de interfaces: Interfaces fornecidas: descrevem os serviços oferecidos a outros componentes. Um componente pode declarar quantas interfaces fornecidas forem necessárias. O símbolo de uma interface fornecida é o círculo apresentado à esquerda do componente, conforme imagem ao lado. Interfaces requeridas: são as interfaces usadas pelo componente quando ele solicita serviços de outros componentes. Um componente pode ter várias interfaces requeridas. O símbolo da interface requerida é um semicírculo apresentado à direita do componente, conforme imagem ao lado. Um mesmo componente pode tanto fornecer como requerer interfaces. O relacionamento entre os componentes e as interfaces é a essência dos sistemas. O usuário do serviço de um componente deve conhecer bem a sintaxe das interfaces do componente. Analogamente ao exemplo dado inicialmente, as interface são as conexões possíveis entre o receiver do home theater e os dispositivos (projetor, caixas, DVD, TV etc.). Para usarmos um DVD precisamos saber as possíveis conexões (HDMI, DVI etc.). Para usar um componente precisamos saber as possíveis interfaces. Existem duas maneiras de representar o relacionamento entre componentes e interface, conforme as duas imagens a seguir. Na representação abaixo, o componente que usa a interface se conecta ao outro componente por meio do relacionamento de dependência. Figura 2 Fonte: Elaboradopelo autor O Componente que fornece a interface é conectado a ela pelo relacionamento de realização (entre o componente fornecedor e a interface). O componente que usa a interface (componente usuário) é a ela conectado pelo relacionamento de dependência Interfaces Atenção! Componentes e interfaces http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura2.png (entre o componente usuário e a interface). O relacionamento de dependência determina que um componente pode usar os serviços ou depender de outro elemento do sistema. Figura 3 Fonte: Elaboradopelo autor Na imagem ao lado, temos o exemplo do componente Login Usuário, onde <> é um estereótipo. Esse componente tem: Duas interfaces providas, ou seja, serviços prestados ao usuário (validar usuário e validar senha); Uma interface requerida, ou seja, serviço que precisa usar (conexão). Figura 4 Fonte: Elaboradopelo autor Ao lado, tem-se um exemplo de diagrama de componentes necessários ao serviço de caixa eletrônico (agências bancárias e “banco 24 h”). Gerenciador de Caixa Eletrônico: gerencia o uso e aguarda pelos eventos dos correntistas, ao interagir com o caixa eletrônico. Criptografia: criptografa os dados de forma que trafeguem em segurança até os servidores da empresa. Controlador Caixa Eletrônico: age como interface entre o caixa eletrônico e as camadas da aplicação, residentes nos servidores, que darão a reposta a cada solicitação do cliente. Firewall: filtra os acessos verificando se a chamada ao Gerenciador de Contas é confiável e ocorre de acordo com os parâmetros de comunicação da empresa. Gerenciador de Contas: gerencia acessos aos dados da conta e sua movimentação solicitando a descriptografia dos dados e identificando o que o cliente solicitou no caixa eletrônico. Descriptografia: responsável por descriptografar dados criptografados na origem deixando- os no estado original. SGBD: faz o acesso à base de dados, conforme solicitação do cliente. http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura1.pngfigura3.png http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura4.png Figura 5 Fonte: Elaboradopelo autor Repare que a solução da tela anterior permite flexibilidade em futuras mudanças. Se alterarmos a técnica de criptografia ou desejarmos ampliar as possiblidades com novas técnicas, basta substituir ou adicionar novos componentes de criptografia e descriptografia; Se quisermos trocar o software de firewall, basta substituirmos o respectivo componente; Se mudarmos de banco de dados, basta substituirmos o componente responsável pelo acesso aos dados. Mostra o layout físico de um sistema, revelando quais partes do software são executadas em quaispartes do hardware (FOWLER). Enfoca a estrutura física sobre a qual o software vai executar. Define como as máquinas estarão conectadas e através de quais protocolos se comunicarão. Seus elementos são os nós e as conexões entre eles. Conexões representam um caminho de comunicação entre os nós, assim como as associações possuem nome e multiplicidade. Um diagrama de implantação mostra o local onde os componentes e artefatos são utilizados no sistema em funcionamento. Um nó, em um diagrama de implantação, representa um recurso computacional de um sistema, como servidores, impressoras, terminais remotos, computadores pessoais, dentre outros. Em geral, o nó é identificado por um nome que o descreve, conforme imagem ao lado. Podemos representar em diagramas de implantação a existência de componentes dentro de um nó, conforme exemplo ao lado. Diagrama de implantação Nó http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura5.png Nesse caso, representamos a relação de dependência entre os componentes. Figura 6 Fonte: Elaborado pelo autor A possibilidade de representar os componentes que vão executar em um nó é positiva, no sentido de possibilidade de definição da configuração do nó, tanto em termos de capacidade de processamento como de memória principal e memória secundária (discos). Os nós em um diagrama de implantação são conectados por caminhos de comunicação, que é um relacionamento de associação no qual podem constar multiplicidade, papel e nome do relacionamento (em geral, pelo tipo de protocolo de comunicação). Nesse caso, a associação representa uma conexão física entre os nós.Os nós em um diagrama de implantação são conectados por caminhos de comunicação, que é um relacionamento de associação no qual podem constar multiplicidade, papel e nome do relacionamento (em geral, pelo tipo de protocolo de comunicação). Nesse caso, a associação representa uma conexão física entre os nós. Abaixo, um exemplo de dois nós representando um sistema cliente-servidor, onde o caminho de comunicação é o protocolo TCP/IP através da internet. Figura 7 Fonte: Elaborado pelo autor Atenção! Caminhos de comunicação (conexões) http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura6.png http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura7.png A decomposição do sistema pode ser efetivada de duas formas, não excludentes: em camadas ou partições, conforme imagem em exibição. Clique na imagem para ampliá-la. Figura 8 Fonte: Elaborado pelo autor Nós: Tablet do Vendedor, CPU do Vendedor, CPU do Gerente, Servidor de Aplicações, Servidor de BD e Impressora; Caminhos de comunicação: TCP/IP e Porta USB conectam CPU do Vendedor e Impressora. A baixo, temos exemplo do diagrama de implantação para o sistema de caixa eletrônico, o mesmo que elaboramos para o diagrama de componentes (nesta aula, em seção anterior). Figura 9 Fonte: Elaborado pelo autor O refinamento do diagrama mostra os componentes que vão executar em cada um dos nós. Repare que conhecer os componentes que cada nó precisará executar permite compreender a capacidade de cada um, tanto em termos de processamento (processador), memória (RAM), disco e outras configurações. A imagem a baixo apresenta um diagrama de implantação com seus elementos básicos: http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura8.png http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura9.png Figura 10 Fonte: Elaborado pelo autor Por fim, cabe ressaltar que o diagrama de implantação deve fazer parte dos manuais para instalação e operacionalização dos sistemas (BEZERRA, 2015). Atenção! Exercícios de fixação No que se refere ao diagrama de componentes, assinale a alternativa errada. Mostra os componentes e sua localização física em termos de nós e onde se encontram Mostra os componentes do sistema Mostra as relações entre eles Apresenta as interfaces requeridas Apresenta as interfaces fornecidas No que se refere ao diagrama de componentes e seus elementos, assinale a alternativa correta. I. Uma interface fornecida apresenta os detalhes para que um componente possa usar o serviço fornecido por outro. II. Um componente é um elemento modular e substituível. III. Um componente só pode ter uma interface oferecida. Com base em sua análise, assinale a única alternativa correta. Estão corretas apenas II e III http://pos.estacio.webaula.com.br/cursos/ATU186/aula4/img/figura10.png Está correta apenas II Estão corretas I, II e III Estão corretas apenas I e II Estão corretas apenas I e III Assinale a alternativa que apresenta o correto elemento associado ao seguinte conceito: “representa uma parte modular de um sistema que encapsula seu conteúdo e cuja manifestação é substituível dentro de um ambiente”. Objeto Interface requerida Classe Componente Software Sobre o diagrama de componentes, analise as assertivas. I. O diagrama de componentes deve ser usado em integração com o diagrama de casos de uso na modelagem do domínio do problema. II. O usuário do serviço de um componente deve conhecer bem a sintaxe de suas interfaces. III. Os componentes podem relacionar-se por relacionamentos de dependência. Com base em sua análise, assinale a alternativa correta. Está correta apenas I Estão corretas I, II e III Estão corretas apenas I e II Estão corretas apenas II e III Estão corretas apenas I e III Analise as duas assertivas a seguir e a relação entre elas. I. O diagrama de componentes possui ao menos uma interface fornecida. ... porque... II. Um componente deve manter-se independente e isolado dos demais. Com base em sua análise, assinale a resposta correta quanto à assertividade de cada uma e sobre a relação entre elas. As duas assertivas estão corretas, e a segunda justifica a primeira. As duas assertivas estão corretas, e a segunda não justifica a primeira. As duas assertivas estão erradas. A assertiva I está correta, e a assertiva II está errada. A assertiva I está errada, e a assertiva II está correta. Assinale a alternativa que completa a seguinte afirmativa: “Segundo Fowler, o diagrama de _____________ mostra o layout físico de um sistema, revelando quais partes do software são executadas em quais partes do hardware”. Componentes Atividade Pacote Sequência Implantação No que se refere ao diagrama de implantação, analise as assertivas. I. Nós e caminhos de conexão são dois dos elementos do diagrama. II. Os nós podem ser servidores, estações, impressoras, máquinas leitoras de digitais. III. Os caminhos de comunicação sempre serão o protocolo TCP/IP, já que o caminho sempre será sob a internet. Estão corretas apenas II e III Estão todas corretas Está correta apenas III Estão corretas apenas I e II Estão corretas I e III Sobre os diagramas de implantação da UML (unified modeling language), úteis, especialmente, na fase de projeto de software, é incorreto afirmar: É direcionado para a distribuição, entrega e instalação das partes que formam o sistema físico. É um conjunto de nós conectados, no qual um nó é única e exclusivamente uma estação ou servidor. Envolvem a topologia do sistema, descrevendo a estrutura do hardware. Pode ser integrado ao diagrama de componentes, mostrando que componentes executam em que nó. A UML é uma linguagem que possibilita a modelagem nas diversas fases de um processo de desenvolvimento de software. Na fase de projeto, definidos a arquitetura e componentes do software, ganham destaque os diagramas de componentes e de implantação. Com base nesses dois diagramas, analise as assertivas a seguir. I. O diagrama de implantação modela os aspectos físicos do sistema, mostrando a organização do hardware. Nesta aula: Estudou o objetivo e as atividades da fase ou disciplina de projeto de software; Analisou o diagrama de componentes e seus elementos, bem como sua aplicabilidade em um projeto de software; Analisou o diagrama de implantação e seus elementos, definindo o momento de sua aplicação; Relacionou os diagramas de componentes e implantação,que nos favorecem na definição da capacidade de processamento e memória (principal e secundária) de cada nó. BOOCH, G; RUMBAUGH, J; JACOBSON, I. UML: guia do usuário. 2. ed. Rio de Janeiro: Campus, 2006. BEZERRA, E. Princípios de análise e projeto de sistemas com UML. 3. ed. Elsevier, 2015. LARMAN, C. Utilizando UML e padrões: uma introdução à análise e projeto orientados a objetos e ao desenvolvimento iterativo. 3. ed. Bookman, 2007. II. O diagrama de componentes mostra as dependências entre os elementos do hardware que sustentarão o software. III. O ideal é que um componente desenvolvido possa ser usado em vários sistemas. Assinale a única opção correta, com base em sua análise das assertivas. Apenas as assertivas I e III estão corretas Apenas a assertiva III está correta Apenas a assertiva I está correta Apenas as assertivas I e II estão corretas Apenas as assertivas II e III estão corretas Um diagrama de implantação define aspectos físicos do sistema, onde cada nó representa um dispositivo físico com memória ou capacidade de processamento. Já o diagrama de componentes apresenta módulos de software (arquivos .dll, .exe, .com, .bat, .htm e outros executáveis) necessários para executar a aplicação. Com base nesse contexto apresentado, responda: É possível integrar esses dois diagramas mostrando para cada nó os componentes que nele executariam? Caso a resposta seja sim, explique a vantagem em integrarmos os dois diagramas dessa forma? Síntese Referências
Compartilhar