14
  1 Diagrama De Componentes Instituto Federal Fluminense  Campus Campos-Centro  Aluno (a): Yasmmin Côrtes Martins.  Análise e desenvolvimento de sistemas. Noite. 5º Período.

Diagrama_de_componentes

Embed Size (px)

DESCRIPTION

Explicação mais detalhada do diagrama de componentes, formas de representação nas mais diversas possibilidades, exemplos de diagramas, etc.

Citation preview

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 1/14

 

 

1

Diagrama 

De 

Componentes 

Instituto Federal Fluminense – Campus Campos-Centro

 Aluno (a): Yasmmin Côrtes Martins.

 Análise e desenvolvimento de sistemas. Noite. 5º Período.

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 2/14

 

 

2

Sumário

Introdução.....................................................................................................................................4

Detalhes do diagrama....................................................................................................................4

Principais funções do diagrama de componentes.........................................................................5

Tipos e especificações....................................................................................................................5

Formas de representação...............................................................................................................6

Conclusões...................................................................................................................................13

Referências bibliográficas............................................................................................................14 

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 3/14

 

 

3

Índice de figuraFigura 1 - Exemplo de diagrama de componentes para uma vídeo-locadora usando componentes com diversos

estereótipos..............................................................................................................................................................6

Figura 2 - Exemplo de um diagrama de componentes completo para pedidos....................................................7

Figura 3 - Exemplo de componente com uma interface em seu interior...............................................................7

Figura 4 - Seta que demonstra dependência...........................................................................................................8

Figura 5 - Seta que demonstra realização................................................................................................................8

Figura 6 - Interface parecida com o escopo de uma classe......................................................................................8

Figura 7 - Interface tipo círculo, mais simples........................................................................................................8

Figura 8 - Exemplo de relação de realização usando classificador e interface, com as nota explicativas

identificando cada elemento...................................................................................................................................9

Figura 9 - Exemplo de artefato estereotipado.........................................................................................................9

Figura 10 - Exemplo de representação de componente, versão 2 da UML............................................................9

Figura 11 - Ilustração das portas e interfaces oferecidas e requeridas..................................................................10

Figura 12 - Conexão entre interfaces de componentes, exemplo de representação de dependência..................10

Figura 13 - Ilustração da delegação de responsabilidades pelas setas que vão das portas para suas respectivas

classes.....................................................................................................................................................................11

Figura 14 - Exemplo simples de diagrama de componentes.................................................................................11

Figura 15 - Exemplo de diagrama com componentes de tipos e estereótipos diferentes, usando outra

representação de dependência..............................................................................................................................12

Figura 16 - Exemplo de diagrama de componentes em que se usa a seta entre as interfaces requeridas e

disponibilizadas e relação de composição dentro do componente......................................................................12

Figura 17 - Representação das interfaces disponibilizadas e os métodos de invocação necessários dentro do

próprio componente.............................................................................................................................................13

Figura 18 - Exemplo de componente com suas informações em seu interior, inclusive com as realizações e os

nomes dos artefatos gerados..................................................................................................................................13

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 4/14

 

 

4

IntroduçãoO diagrama de componentes é um dos diagramas descritos no padrão UML (Unified Modeling Language)que possui ferramentas que ajudam a organizar o projeto de software de forma que fique melhor a

visualização dos módulos e de suas integrações ao longo do andamento e do seu desenvolvimento, ajuda ater o controle dos artefatos.

O de componentes é um dos usados para representar a estrutura do projeto de software, outros revelam comoos módulos do projeto irão se comportar e assim como os outros diagramas, ele possui seus conceitos,funções, símbolos de montagem, regras e objetivos, assim como aplicações em vários contextos em que amodelagem com ele se faz bastante útil e melhor compreensível.

Detalhes do diagramaEle é formado pela conexão coerente de componentes de software que possuem uma relação e que precisamuns dos outros para compor a funcionalidade do sistema em geral.

Um componente é uma parte física e substituível de um sistema que pode ser distribuída de formaindependente, é composto por terceiros, provê a realização de e concorda com um conjunto de interfaces quesão especificadas de forma contratual e com dependências apenas de contexto e explícitas, formando umempacotamento coerente de software executável ou artefatos com uma interface pública bem definida.

Uma das vantagens dos componentes do diagrama é que são normalmente reutilizáveis, e são feitosgeralmente para poderem ser reaproveitados em outras ocasiões, de forma que apenas mude a interface e nãoa lógica interna de negócio.

Ele deve possuir uma ou mais interfaces, que podem ser potencialmente disponibilizadas por meio de portas,

e seu interior é normalmente inacessível. O acesso a um componente deve ocorrer única e exclusivamentepor meio de suas interfaces. Apesar disso, um componente pode ser dependente de outros componentes, e alinguagem UML provê mecanismos para representar essa dependência, indicando as interfaces que umcomponente demanda de outros componentes.

Esse mecanismo de representação de dependências torna o componente uma unidade encapsulada, de formaque o componente pode ser tratado de maneira independente. Com isso, componentes e subsistemas podemser reutilizados de maneira bastante flexível, sendo substituídos por meio da conexão de diversoscomponentes por meio de suas interfaces e dependências.

Um componente é uma unidade que pode ser remanejada tanto durante o design como na implementação,

por outro componente que lhe seja funcionalmente equivalente, baseado na compatibilidade entre suasinterfaces.

Assim como um sistema pode ser estendido adicionando-se novos componentes que tragam novasfuncionalidades. As interfaces disponibilizadas e requeridas podem ser organizadas opcionalmente por meiode portas. Portas são meios de comunicação entre um conjunto de interfaces disponibilizadas e requeridasque são encapsuladas de maneira conjunta.

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 5/14

 

 

5

Principais funções do diagrama de componentes

Este tipo de diagrama serve para visualizar, especificar e documentar o projeto. Além disso, podem modelarorganização do código-fonte, afinal durante o desenvolvimento são gerados vários códigos, que sãoarmazenados fisicamente em arquivos, e o diagrama de componentes pode ser uma forma de fazer ogerenciamento destes arquivos.

Pode também modelar o lançamento de versões de aplicações ou páginas, por exemplo, ou releases destes,pois uma versão de um sistema ou de uma arte deste que está em fase de liberação envolve combinaçõesespecíficas de diversas partes e o diagrama entra neste contexto como uma forma de organizar oscomponentes necessários para uma determinada versão do sistema.

Pode, ainda, modelar de forma física um banco de dados, pois as informações gravadas e armazenadas dosistema estarão num banco de dados em formato de arquivos ou tabelas e o diagrama pode servir paramostrar estes de forma organizada e como eles se relacionam.

E ainda pode modelar sistemas dinâmicos, flexíveis e adaptáveis, no sentido de que a execução de algunssistemas baseia-se no uso de componentes dinâmicos (carga dinâmica, agentes móveis etc.) e estes podemser descritos com este tipo de diagrama juntamente com outros diagramas da UML.

Tipos e especificações

Na UML há 3 tipos diferentes de componentes, os quais são:

  De execução, que existem enquanto a aplicação está em tempo de execução, como os processos e

threads, entre outros.

  De instalação, que são geralmente arquivos executáveis, controles Active-X (ferramenta daMicrosoft para rodar qualquer componente de software nos navegadores independente da linguagemde programação em que foram feitos), DLLs (arquivo executável que atua como uma bibliotecadinâmica compartilhada de funções, utilizada para rodar aplicações corretamente, também serve paraos programadores adicionarem as funcionalidades desejadas em seus códigos fontes) etc.

  De trabalho, que são aqueles que dão origem aos componentes de instalação, tais como documentos,fontes, bibliotecas estáticas etc.

E a UML reconhece 5 estereótipos (definições, especificações) para estes componentes, que são:

  Executável, que é um componente que pode ser executado como um software, programa (.jar, .exe,entre outras extensões possíveis).

  Biblioteca, que pode ser de classes e/ou funções, estática ou dinâmica.

  Tabela, que é como uma tabela de banco de dados.

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 6/14

 

 

6

  Documento, que é uma parte da documentação do projeto, pode incluir texto livre, diagramas,documentos de ajuda, entre outros.

  Arquivos, que são outros tipos de arquivos, geralmente, tratam-se de códigos-fonte, mas também pode incluir arquivos de dados, um “script” ou outros estilos de arquivos. 

Abaixo se pode ver um exemplo de diagrama de componentes para uma locadora de vídeos, comcomponentes de diversos estereótipos, no caso, tem-se códigos fonte, arquivo de dados e aplicações, que sãoos exemplos de executáveis (applets, aplicações em java que podem ser incorporadas à páginas HTML).

Figura 1 - Exemplo de diagrama de componentes para uma vídeo-locadora usando componentes com diversos estereótipos.

No exemplo acima pode-se ver claramente as dependência de cada componente, lembrando que em cada umdos que formam o diagrama, há interfaces que se realizam a partir do conjunto das que estão nos outroscomponentes.

Formas de representação

Dependendo da ferramenta utilizada o diagrama de componente pode ser feito utilizando setas e desenhosmostrando dependências e realização (garantia de execução de regras de negócio que estão em umclassificador, ou numa classe).

  Exemplo de diagrama de componentes usando a ferramenta JUDE.

Na ferramenta JUDE (UML 1.x), um exemplo de diagrama de componentes para pedido é ilustrado abaixo:

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 7/14

 

 

7

Figura 2 - Exemplo de um diagrama de componentes completo para pedidos. 

Os componentes devem ter em seu interior pelo menos uma interface e podem se comunicar com interfacesde outros componentes, e suas interfaces internas assim como a lógica de funcionamento desta parte dosistema pode prover, ou seja, disponibilizar mais de uma interface em seu funcionamento como um todo,

neste caso a de pagamento e a de fazer pedido, abaixo tem um exemplo de componente com uma interfacedentro (figura 3).

Figura 3 - Exemplo de componente com uma interface em seu interior. 

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 8/14

 

 

8

No diagrama acima, as setas cujas pontas não formam um triângulo fechado, significam uma relação dedependência entre um componente e as interfaces de outro componente, elas podem ser estereotipadas, nestecaso receberam a especificação com o nome de “requer” (figura 4), ou seja isso que são as portas, dasinformações requeridas pelo componente pedido.

Figura 4 - Seta que demonstra dependência. 

As setas com a ponta num triângulo completamente fechado representam a realização (figura 5), ou seja,significa que as regras de negócio que estão em interfaces dentro do componente fechado vão receber agarantia de execução pelas interfaces pagamento e entrada de pedido, que são as que o componente pedido

provê.

Figura 5 - Seta que demonstra realização. 

Existem duas formas de se por interfaces no diagrama, a normal com o estereótipo de interface a numformato parecido com uma classe (figura 6), e com o círculo (figura 7), além disso pode-se representar arealização usando um classificador antes de por a seta respectiva para a interface (figura 8).

Figura 6 - Interface parecida com o escopo de uma classe.

Figura 7 - Interface tipo círculo, mais simples. 

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 9/14

 

 

9

Figura 8 - Exemplo de relação de realização usando classificador e interface, com as nota explicativas identificando cada

elemento. 

Além disso, houve a geração de um artefato, como fruto do desenvolvimento deste componente, que é umaplicativo executável, que é o pedido.jar, estereotipado como application, neste caso (figura 9).

Figura 9 - Exemplo de artefato estereotipado. 

Estas formas de representação são usadas para versão anteriores à 2.0 da UML.

 Exemplo de representação deste diagrama para a versão 2.0 da UML

Na nova versão desta linguagem de modelagem, os componentes e suas portas requeridas e disponibilizadaspossuem formas diferentes mais que são mais claras e compreensíveis. Na figura abaixo há um exemplo decomponente na nova versão.

Figura 10 - Exemplo de representação de componente, versão 2 da UML. 

As portas que podem estar representadas em volta de um componente, são métodos que são disponibilizadospor interfaces e classes de um componente e que são necessários às de outro, ou são métodos que classesdeste componente invoca de outro componente. As interfaces disponibilizadas (D1 e D2) e requeridas (R1)podem ser representadas separadamente ou podem partir de um mesmo lugar, com um quadrado dandoorigem às portas disponibilizadas (Pd) e às portas requeridas (Pr), tudo isso mostrado na figura 11.

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 10/14

 

 

10

Figura 11 - Ilustração das portas e interfaces oferecidas e requeridas. 

A ligação entre componentes, que é a tal da dependência entre eles é representado ou por uma seta entre umcomponente e outro, como na UML 1.x ou por um conector de montagem que é quando um semicírculo deum componente (c3) “engata” no círculo completo de outro (c3), ou seja, nada mais é do que dizer que uma

interface requerida por um é fornecida pelo outro componente, como mostrado na parte circulada emvermelho na figura a seguir.

Figura 12 - Conexão entre interfaces de componentes, exemplo de representação de dependência.

Além disso, dentro do componente pode-se organizar que interface disponibilizada ou requerida pertence aqual classe, de forma a deixar bem claro no diagrama as responsabilidades de cada elemento, como ilustradona figura a seguir, onde o método da interface disponibilizada está sendo delegada à classe1 pela seta cd1 e o

método da interface requerida está pertencendo à classe2 que está conectada a este pela seta cd2.

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 11/14

 

 

11

Figura 13 - Ilustração da delegação de responsabilidades pelas setas que vão das portas para suas respectivas classes.

Um exemplo de diagrama de componente para um simples sistema de visualização de imagens é mostradoabaixo, onde imageObserver é uma interface e o componente com a classe image.py está requerendo estainterface e quem a está disponibilizando é a classe componente.py do componente a direita.

Figura 14 - Exemplo simples de diagrama de componentes.

E um outro exemplo de diagrama, na figura abaixo, mostra que pode usar as setas do diagrama feita naversão anterior da UML para demonstrar dependência entre os componentes e exemplifica um diagrama queusa vários estereótipos e tipos possíveis de componentes, neste caso foi usado os executáveis (.exe), os debibliotecas (.dll) e códigos fonte, que são as classes (.py).

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 12/14

 

 

12

Figura 15 - Exemplo de diagrama com componentes de tipos e estereótipos diferentes, usando outra representação de

dependência.

Além disso, pode-se demonstrar relacionamentos entre classes dentro do componente (RC), neste caso éuma composição, pois quando um item de order for excluído todos os itens ligados a ele também serãodestruídos, e pode por a seta que indica dependência entre o símbolo de e interface requerida e

disponibilizada (S1 e S2), como mostrado a seguir.

Figura 16 - Exemplo de diagrama de componentes em que se usa a seta entre as interfaces requeridas e disponibilizadas e

relação de composição dentro do componente. 

Pode-se ainda criar compartimentos dentro do componente para por os estereótipos e apresentar as conexões

de interfaces sem precisar usar as portas e põe-se estas relações de interfaces disponibilizadas e nas

RC

S1

S2

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 13/14

 

 

13

requeridas pode-se por os métodos que precisa invocar de outra interface, todas estas informaçõesorganizadas dentro do próprio componente, como mostrado a seguir.

Figura 17 - Representação das interfaces disponibilizadas e os métodos de invocação necessários dentro do próprio

componente. 

Além disso, seguindo a mesma lógica de encapsulamento de informações dentro do componente, como foidescrito acima, pode-se por somente os nomes as interfaces requeridas e providas, em outroscompartimentos por as interfaces de execução do que está dentro do componente (as que vão fazer arealização) e por o artefato gerado desta parte do sistema, deste componente, como na figura a seguir.

Figura 18 - Exemplo de componente com suas informações em seu interior, inclusive com as realizações e os nomes dos

artefatos gerados. 

Com esta combinação, pode-se arrumar o diagrama para os mais diversos estudos de caso, para projetos desoftware WEB, desktop, mobile usando web services, etc.

ConclusõesO diagrama de componentes é muito útil para poder organizar as diversas partes do sistema, com os maisdiversos tipos de produtos de software gerados, sendo principalmente utilizado numa arquitetura baseada emcomponentes flexíveis, adaptáveis e reutilizáveis.

5/17/2018 Diagrama_de_componentes - slidepdf.com

http://slidepdf.com/reader/full/diagramadecomponentes 14/14

 

 

14

Referências bibliográficas

  Livro

BEZERRA E. Princípios de Análise e Projeto de Sistemas com UML, Rio de Janeiro, Elsevier, 2002, 286p,ISBN 85-352-1032-6.

  Sites

José Carlos Macoratti. UML  –  Principais diagramas da linguagem. Disponível em:<http://www.macoratti.net/net_uml3.htm>. Acesso em: 4 mai. 2012.

Felipe Arruda. Afinal, O que são Controles ActiveX e por que você deve instalá-los às vezes?. 26 nov. 2010.Disponível em: <http://www.tecmundo.com.br/internet-explorer/6750-afinal-o-que-sao-controles-activex-e-por-que-voce-deve-instala-los-as-vezes-.htm>. Acesso em: 4 mai. 2012.

DLLs. Disponível em: <http://msdn.microsoft.com/pt-br/library/1ez7dh12.aspx>. Acesso em: 4 mai. 2012.

César Augusto Tacla. ANÁLISE E PROJETO OO & UML 2.0. Disponível em:<http://www.dainf.ct.utfpr.edu.br/~tacla/UML/Apostila.pdf>. Acesso em: 4 mai. 2012.

Ricardo G. Gudwin. Diagramas de Componentes e Diagramas de Deployment. 05 out. 2010. Disponível em:<http://www.dca.fee.unicamp.br/~gudwin/ftp/ea976/CompDepl.pdf>. Acesso em: 4 mai. 2012.

Aristófanes Corrêa Silva. Diagramas de Componentes e Implantação. Disponível em:<http://www.deinf.ufma.br/~acmo/MOO_Imp.pdf>. Acesso em: 4 mai. 2012.

Silvia Regina Vergilio. Introdução a UML (Unified Modeling Language). 28 set. 2006. Disponível em:<http://www.inf.ufpr.br/silvia/ES/UML/Introducaoalunos.pdf>. Acesso em: 4 mai. 2012.

Wilson M. Yonezawa. UML  –  Diagramas. Disponível em:<http://www.unesp.br/gs/treinamento/graduacao/CursoUML-Diagramas.pdf>. Acesso em: 4 mai. 2012.