Você está na página 1de 14

Diagrama De Componentes

Instituto Federal Fluminense Campus Campos-Centro Aluno (a): Yasmmin Crtes Martins. Anlise e desenvolvimento de sistemas. Noite. 5 Perodo.
1

Sumrio
Introduo.....................................................................................................................................4 Detalhes do diagrama....................................................................................................................4 Principais funes do diagrama de componentes.........................................................................5 Tipos e especificaes....................................................................................................................5 Formas de representao...............................................................................................................6 Concluses...................................................................................................................................13 Referncias bibliogrficas............................................................................................................14

ndice de figura
Figura 1 - Exemplo de diagrama de componentes para uma vdeo-locadora usando componentes com diversos esteretipos..............................................................................................................................................................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 dependncia...........................................................................................................8 Figura 5 - Seta que demonstra realizao................................................................................................................8 Figura 6 - Interface parecida com o escopo de uma classe......................................................................................8 Figura 7 - Interface tipo crculo, mais simples........................................................................................................8 Figura 8 - Exemplo de relao de realizao usando classificador e interface, com as nota explicativas identificando cada elemento...................................................................................................................................9 Figura 9 - Exemplo de artefato estereotipado.........................................................................................................9 Figura 10 - Exemplo de representao de componente, verso 2 da UML............................................................9 Figura 11 - Ilustrao das portas e interfaces oferecidas e requeridas..................................................................10 Figura 12 - Conexo entre interfaces de componentes, exemplo de representao de dependncia..................10 Figura 13 - Ilustrao da delegao de responsabilidades pelas setas que vo 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 esteretipos diferentes, usando outra representao de dependncia..............................................................................................................................12 Figura 16 - Exemplo de diagrama de componentes em que se usa a seta entre as interfaces requeridas e disponibilizadas e relao de composio dentro do componente......................................................................12 Figura 17 - Representao das interfaces disponibilizadas e os mtodos de invocao necessrios dentro do prprio componente.............................................................................................................................................13 Figura 18 - Exemplo de componente com suas informaes em seu interior, inclusive com as realizaes e os nomes dos artefatos gerados..................................................................................................................................13

Introduo
O diagrama de componentes um dos diagramas descritos no padro UML (Unified Modeling Language) que possui ferramentas que ajudam a organizar o projeto de software de forma que fique melhor a visualizao dos mdulos e de suas integraes ao longo do andamento e do seu desenvolvimento, ajuda a ter o controle dos artefatos. O de componentes um dos usados para representar a estrutura do projeto de software, outros revelam como os mdulos do projeto iro se comportar e assim como os outros diagramas, ele possui seus conceitos, funes, smbolos de montagem, regras e objetivos, assim como aplicaes em vrios contextos em que a modelagem com ele se faz bastante til e melhor compreensvel.

Detalhes do diagrama
Ele formado pela conexo coerente de componentes de software que possuem uma relao e que precisam uns dos outros para compor a funcionalidade do sistema em geral. Um componente uma parte fsica e substituvel de um sistema que pode ser distribuda de forma independente, composto por terceiros, prov a realizao de e concorda com um conjunto de interfaces que so especificadas de forma contratual e com dependncias apenas de contexto e explcitas, formando um empacotamento coerente de software executvel ou artefatos com uma interface pblica bem definida. Uma das vantagens dos componentes do diagrama que so normalmente reutilizveis, e so feitos geralmente para poderem ser reaproveitados em outras ocasies, de forma que apenas mude a interface e no a lgica interna de negcio. Ele deve possuir uma ou mais interfaces, que podem ser potencialmente disponibilizadas por meio de portas, e seu interior normalmente inacessvel. O acesso a um componente deve ocorrer nica e exclusivamente por meio de suas interfaces. Apesar disso, um componente pode ser dependente de outros componentes, e a linguagem UML prov mecanismos para representar essa dependncia, indicando as interfaces que um componente demanda de outros componentes. Esse mecanismo de representao de dependncias torna o componente uma unidade encapsulada, de forma que o componente pode ser tratado de maneira independente. Com isso, componentes e subsistemas podem ser reutilizados de maneira bastante flexvel, sendo substitudos por meio da conexo de diversos componentes por meio de suas interfaces e dependncias. Um componente uma unidade que pode ser remanejada tanto durante o design como na implementao, por outro componente que lhe seja funcionalmente equivalente, baseado na compatibilidade entre suas interfaces. Assim como um sistema pode ser estendido adicionando-se novos componentes que tragam novas funcionalidades. As interfaces disponibilizadas e requeridas podem ser organizadas opcionalmente por meio de portas. Portas so meios de comunicao entre um conjunto de interfaces disponibilizadas e requeridas que so encapsuladas de maneira conjunta.

Principais funes do diagrama de componentes


Este tipo de diagrama serve para visualizar, especificar e documentar o projeto. Alm disso, podem modelar organizao do cdigo-fonte, afinal durante o desenvolvimento so gerados vrios cdigos, que so armazenados fisicamente em arquivos, e o diagrama de componentes pode ser uma forma de fazer o gerenciamento destes arquivos. Pode tambm modelar o lanamento de verses de aplicaes ou pginas, por exemplo, ou releases destes, pois uma verso de um sistema ou de uma arte deste que est em fase de liberao envolve combinaes especficas de diversas partes e o diagrama entra neste contexto como uma forma de organizar os componentes necessrios para uma determinada verso do sistema. Pode, ainda, modelar de forma fsica um banco de dados, pois as informaes gravadas e armazenadas do sistema estaro num banco de dados em formato de arquivos ou tabelas e o diagrama pode servir para mostrar estes de forma organizada e como eles se relacionam. E ainda pode modelar sistemas dinmicos, flexveis e adaptveis, no sentido de que a execuo de alguns sistemas baseia-se no uso de componentes dinmicos (carga dinmica, agentes mveis etc.) e estes podem ser descritos com este tipo de diagrama juntamente com outros diagramas da UML.

Tipos e especificaes
Na UML h 3 tipos diferentes de componentes, os quais so: De execuo, que existem enquanto a aplicao est em tempo de execuo, como os processos e threads, entre outros. De instalao, que so geralmente arquivos executveis, controles Active-X (ferramenta da Microsoft para rodar qualquer componente de software nos navegadores independente da linguagem de programao em que foram feitos), DLLs (arquivo executvel que atua como uma biblioteca dinmica compartilhada de funes, utilizada para rodar aplicaes corretamente, tambm serve para os programadores adicionarem as funcionalidades desejadas em seus cdigos fontes) etc. De trabalho, que so aqueles que do origem aos componentes de instalao, tais como documentos, fontes, bibliotecas estticas etc. E a UML reconhece 5 esteretipos (definies, especificaes) para estes componentes, que so: Executvel, que um componente que pode ser executado como um software, programa (.jar, .exe, entre outras extenses possveis). Biblioteca, que pode ser de classes e/ou funes, esttica ou dinmica. Tabela, que como uma tabela de banco de dados.

Documento, que uma parte da documentao do projeto, pode incluir texto livre, diagramas, documentos de ajuda, entre outros. Arquivos, que so outros tipos de arquivos, geralmente, tratam-se de cdigos-fonte, mas tambm 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 vdeos, com componentes de diversos esteretipos, no caso, tem-se cdigos fonte, arquivo de dados e aplicaes, que so os exemplos de executveis (applets, aplicaes em java que podem ser incorporadas pginas HTML).

Figura 1 - Exemplo de diagrama de componentes para uma vdeo-locadora usando componentes com diversos esteretipos.

No exemplo acima pode-se ver claramente as dependncia de cada componente, lembrando que em cada um dos que formam o diagrama, h interfaces que se realizam a partir do conjunto das que esto nos outros componentes.

Formas de representao
Dependendo da ferramenta utilizada o diagrama de componente pode ser feito utilizando setas e desenhos mostrando dependncias e realizao (garantia de execuo de regras de negcio que esto em um classificador, 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:

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 interfaces de outros componentes, e suas interfaces internas assim como a lgica de funcionamento desta parte do sistema 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 interface dentro (figura 3).

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

No diagrama acima, as setas cujas pontas no formam um tringulo fechado, significam uma relao de dependncia entre um componente e as interfaces de outro componente, elas podem ser estereotipadas, neste caso receberam a especificao com o nome de requer (figura 4), ou seja isso que so as portas, das informaes requeridas pelo componente pedido.

Figura 4 - Seta que demonstra dependncia.

As setas com a ponta num tringulo completamente fechado representam a realizao (figura 5), ou seja, significa que as regras de negcio que esto em interfaces dentro do componente fechado vo receber a garantia de execuo pelas interfaces pagamento e entrada de pedido, que so as que o componente pedido prov.

Figura 5 - Seta que demonstra realizao.

Existem duas formas de se por interfaces no diagrama, a normal com o esteretipo de interface a num formato parecido com uma classe (figura 6), e com o crculo (figura 7), alm disso pode-se representar a realizao 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 crculo, mais simples.

Figura 8 - Exemplo de relao de realizao usando classificador e interface, com as nota explicativas identificando cada elemento.

Alm disso, houve a gerao de um artefato, como fruto do desenvolvimento deste componente, que um aplicativo executvel, que o pedido.jar, estereotipado como application, neste caso (figura 9).

Figura 9 - Exemplo de artefato estereotipado.

Estas formas de representao so usadas para verso anteriores 2.0 da UML. Exemplo de representao deste diagrama para a verso 2.0 da UML Na nova verso desta linguagem de modelagem, os componentes e suas portas requeridas e disponibilizadas possuem formas diferentes mais que so mais claras e compreensveis. Na figura abaixo h um exemplo de componente na nova verso.

Figura 10 - Exemplo de representao de componente, verso 2 da UML.

As portas que podem estar representadas em volta de um componente, so mtodos que so disponibilizados por interfaces e classes de um componente e que so necessrios s de outro, ou so mtodos que classes deste 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 dando origem s portas disponibilizadas (Pd) e s portas requeridas (Pr), tudo isso mostrado na figura 11.

Figura 11 - Ilustrao das portas e interfaces oferecidas e requeridas.

A ligao entre componentes, que a tal da dependncia entre eles representado ou por uma seta entre um componente e outro, como na UML 1.x ou por um conector de montagem que quando um semicrculo de um componente (c3) engata no crculo 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 em vermelho na figura a seguir.

Figura 12 - Conexo entre interfaces de componentes, exemplo de representao de dependncia.

Alm disso, dentro do componente pode-se organizar que interface disponibilizada ou requerida pertence a qual classe, de forma a deixar bem claro no diagrama as responsabilidades de cada elemento, como ilustrado na figura a seguir, onde o mtodo da interface disponibilizada est sendo delegada classe1 pela seta cd1 e o mtodo da interface requerida est pertencendo classe2 que est conectada a este pela seta cd2.

10

Figura 13 - Ilustrao da delegao de responsabilidades pelas setas que vo das portas para suas respectivas classes.

Um exemplo de diagrama de componente para um simples sistema de visualizao de imagens mostrado abaixo, onde imageObserver uma interface e o componente com a classe image.py est requerendo esta interface 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 na verso anterior da UML para demonstrar dependncia entre os componentes e exemplifica um diagrama que usa vrios esteretipos e tipos possveis de componentes, neste caso foi usado os executveis (.exe), os de bibliotecas (.dll) e cdigos fonte, que so as classes (.py).

11

Figura 15 - Exemplo de diagrama com componentes de tipos e esteretipos diferentes, usando outra representao de dependncia.

Alm disso, pode-se demonstrar relacionamentos entre classes dentro do componente (RC), neste caso uma composio, pois quando um item de order for excludo todos os itens ligados a ele tambm sero destrudos, e pode por a seta que indica dependncia entre o smbolo de e interface requerida e disponibilizada (S1 e S2), como mostrado a seguir.

S1

RC S2

Figura 16 - Exemplo de diagrama de componentes em que se usa a seta entre as interfaces requeridas e disponibilizadas e relao de composio dentro do componente.

Pode-se ainda criar compartimentos dentro do componente para por os esteretipos e apresentar as conexes de interfaces sem precisar usar as portas e pe-se estas relaes de interfaces disponibilizadas e nas
12

requeridas pode-se por os mtodos que precisa invocar de outra interface, todas estas informaes organizadas dentro do prprio componente, como mostrado a seguir.

Figura 17 - Representao das interfaces disponibilizadas e os mtodos de invocao necessrios dentro do prprio componente.

Alm disso, seguindo a mesma lgica de encapsulamento de informaes dentro do componente, como foi descrito acima, pode-se por somente os nomes as interfaces requeridas e providas, em outros compartimentos por as interfaces de execuo do que est dentro do componente (as que vo fazer a realizao) e por o artefato gerado desta parte do sistema, deste componente, como na figura a seguir.

Figura 18 - Exemplo de componente com suas informaes em seu interior, inclusive com as realizaes e os nomes dos artefatos gerados.

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

Concluses
O diagrama de componentes muito til para poder organizar as diversas partes do sistema, com os mais diversos tipos de produtos de software gerados, sendo principalmente utilizado numa arquitetura baseada em componentes flexveis, adaptveis e reutilizveis.
13

Referncias bibliogrficas
Livro BEZERRA E. Princpios de Anlise 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 <http://www.macoratti.net/net_uml3.htm>. Acesso em: 4 mai. 2012. linguagem. Disponvel em:

Felipe Arruda. Afinal, O que so Controles ActiveX e por que voc deve instal-los s vezes?. 26 nov. 2010. Disponvel em: <http://www.tecmundo.com.br/internet-explorer/6750-afinal-o-que-sao-controles-activex-epor-que-voce-deve-instala-los-as-vezes-.htm>. Acesso em: 4 mai. 2012. DLLs. Disponvel em: <http://msdn.microsoft.com/pt-br/library/1ez7dh12.aspx>. Acesso em: 4 mai. 2012. Csar Augusto Tacla. ANLISE E PROJETO OO & UML 2.0. <http://www.dainf.ct.utfpr.edu.br/~tacla/UML/Apostila.pdf>. Acesso em: 4 mai. 2012. Disponvel em:

Ricardo G. Gudwin. Diagramas de Componentes e Diagramas de Deployment. 05 out. 2010. Disponvel em: <http://www.dca.fee.unicamp.br/~gudwin/ftp/ea976/CompDepl.pdf>. Acesso em: 4 mai. 2012. Aristfanes Corra Silva. Diagramas de Componentes e Implantao. <http://www.deinf.ufma.br/~acmo/MOO_Imp.pdf>. Acesso em: 4 mai. 2012. Disponvel em:

Silvia Regina Vergilio. Introduo a UML (Unified Modeling Language). 28 set. 2006. Disponvel em: <http://www.inf.ufpr.br/silvia/ES/UML/Introducaoalunos.pdf>. Acesso em: 4 mai. 2012. Wilson M. Yonezawa. UML Diagramas. Disponvel em: <http://www.unesp.br/gs/treinamento/graduacao/CursoUML-Diagramas.pdf>. Acesso em: 4 mai. 2012.

14