UML NO PROJETO DE COMPONENTES: 3a PARTE COMPONENTE DIAGRAMA DE COMPONENTES DIAGRAMA DE PACKAGE 1 I. COMPONENTE Um componente é uma parte física de um sistema que realiza um conjunto de interfaces. Controlador De Pedidos Uma interface é uma coleção de operações utilizadas para especificar um serviço de uma classe ou componente Um componente é um elemento físico: vive no mundo dos bits e não no mundo dos conceitos. 2 Modelar componentes permite a visualização da organização física do sistema. Auxilia também na gerência de configuração, possibilitando por exemplo o controle de versões. Muitas linguagens de programação oferecem suporte para a criação de componentes. Por exemplo, em Java podem ser criados componentes Java Beans. No entanto, na UML podemos modelar através de componentes não somente esses tipos de componentes, mas também outros elementos que participam do sistema. 3 No caso exemplo temos o componente PEDIDOS que é um componente com estereótipo schema representando exatamente um esquema no banco de dados, contendo as tabelas cliente, pedido, item pedido, fatura, item faturado e livro (essas tabelas foram representadas no sistema como classes com estereótipo de tabelas do Modelo Relacional) <<Schema>> PEDIDOS 4 Temos também no caso exemplo o componente Controlador de Pedidos que corresponde a um arquivo .java Controlador De Pedidos 5 Entre os componentes podemos encontrar tanto arquivos com código-fonte quanto arquivos com código executável. Considerando um sistema desenvolvido em Java, tanto um arquivo .java como um arquivo .class são considerados componentes. Um arquivo com dados também é considerado um componente. 6 Os componentes se assemelham a classes em muitos aspectos mas devemos observar a seguinte diferença: As classes representam abstrações lógicas e os componentes representam algo físico que reside em um nó. O nó na UML representa algum tipo de unidade computacional. Um componente é uma implementação física de um conjunto de elementos lógicos, como as classes. 7 Estereótipos Executable Library Table Document file 8 II. DIAGRAMA DE COMPONENTES Um diagrama de componentes mostra os vários componentes do sistema e suas dependências. A seguir é apresentado o diagrama que implementa o caso de uso Solicita Cancelamento de Fatura. Em nosso sistema exemplo, a implementação em Java do caso de uso Solicita Cancelamento de Fatura foi elaborada de forma que cada componente correspondesse à implementação física de apenas uma única classe. Cada componente é um arquivo .java. 9 Conexao SolicitacaoDeCancelamentoJaEfetuadaException FaturaNaoEncontradaException ControladorDePedidos obterFatura(numero : int) : Fatura_Proj cadastrarSolCancFatura(umaFatura : Fatura_Proj) : String $ conn : Connection=null Fatura_Proj numFatura : int dataEmissao : Date dataVencimento : Date valorPago : double dataPagamento : Date dataPedidoCancelamento : Date dataCancelamento : Date status : String numPedido : int recuperarPelaPK(numFatura : int) : Fatura_Proj solicitarCancelamento() : void JanelaSolicitaCancelamentoFatura exibir() : void JanelaPrincipal main(args : String[]) : void 10 Conexao FaturaNao EncontradaException SolicitacaoDeCancelamento JaEfetuadaException Fatura_Proj Controlador DePedidos JanelaSolicita Cancelamento Janela Principal 11 Ao mostrar a dependência entre dois componentes estamos dizendo que há um relacionamento entre esses componentes e a alteração de um componente pode afetar o outro. O relacionamento de dependência, apresentado através de uma seta tracejada, indica que um elemento tem conhecimento de outro elemento. A dependência é um relacionamento entre dois itens em que a alteração de um item pode afetar a semântica do outro. Num relacionamento de dependência a seta tracejada aponta o item do qual o outro depende. 12 III. Formas de usar o Diagrama de Componentes: 1. Modelagem de código-fonte 13 2. Modelagem de versões executáveis 14 III. DIAGRAMA DE PACKAGE Conforme os componentes crescem em número, é natural reuni-los em grupos relacionados conceitualmente. Utilizando as ferramentas de desenvolvimento é comum colocarmos esses grupos de arquivos em diretórios separados. Na UML pode ser utilizado o conceito de package para modelar esses grupos de arquivos. 15 O caso exemplo foi organizado nos seguintes packages: package PInterfaces conterá os componentes JanelaPrincipal e JanelaSolicitaCancelamento; package PControle conterá o componente ControladorDePedidos; package PConexao conterá o componente Conexao; package PExcecao conterá os componentes SolicitacaoDeCancelamentoJaEfetuadaException e FaturaNaoEncontradaException. 16 Pode ser elaborado um diagrama de package mostrando a dependência entre esses packages. PExcecao PConexao PPedido PInterfaces PControle 17 Exercicio Desenvolva o projeto de Componentes para o Sistema da PETROBRAS 18 UML NO PROJETO DE IMPLANTAÇÃO DIAGRAMA DE IMPLANTAÇÃO CONEXÃO ENTRE NÓS 19 I. DIAGRAMA DE IMPLANTAÇÃO Quando temos um sistema grande, que será instalado em vários computadores pode ser interessante elaborar um diagrama de implantação que apresente como os componentes serão distribuídos por esses computadores. Diagramas de implantação são compostos por nós 20 Cada nó representa computacional. algum tipo de unidade Serv idor de Banco de Dados Nós podem agrupados em pacotes como as classes ou os componentes Um nó pode classificado como: - Processador: tem capacidade de processamento, podendo executar um componente - Dispositivo: não tem capacidade de processamento 21 II. CONEXÕES ENTRE NÓS A associação é o relacionamento mais comum entre nós. Uma associação representa uma conexão física entre os nós. As conexões entre nós mostram os caminhos de comunicação através dos quais o sistema irá interagir. Como a conexão é uma associação podem ser incluídas as multiplicidades. Neste caso temos um relacionamento 1:1. Serv idor de Banco de Dados TCP/IP M aq. atendi mento de pedidos conexão 22 No diagrama apresentado a seguir são apresentadas as unidades computacionais de nosso sistema exemplo, o sistema de controle de pedidos: um servidor de banco de dados e um PC, conectados através de uma rede TCP/IP. S e r v id o r d e B a n c o de D ados TC P /I P M a q . a te n d i m e n to d e pedidos O schema PEDIDOS ficará no servidor de Banco de Dados e os demais componentes no PC. 23 Os componentes do sistema podem ser alocados a cada nó. No diagrama apresentado como exemplo, por ser simples, a descrição de como os componentes estão alocados foi realizada através de um comentário: o schema PEDIDOS ficaria no servidor de Banco de Dados e os demais componentes ficariam no PC. PEDIDOS é um componente com estereótipo schema representando exatamente um esquema no banco de dados, contendo as tabelas cliente, pedido, item pedido, fatura, item faturado e livro. Outras características de cada nó podem também ser descritas. 24 II. Onde usar? - Modelagem de Sistemas Embutidos 25 II. Onde usar? - Modelagem de Cliente Servidor 26 II. Onde usar? - Modelagem de um sistema totalmente distribuído 27 Exercício Desenvolva o projeto de Implantação para o sistema da PETROBRAS 28