1 / 21

Diagramas de Componentes

UML – Diagrama de Componentes. Diagramas de Componentes. Os diagramas de componentes permitem modelar a componente física do sistema (tabelas, ficheiros executáveis, libraries , etc.).

neveah
Download Presentation

Diagramas de Componentes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UML – Diagrama de Componentes Diagramas de Componentes Os diagramas de componentes permitem modelar a componente física do sistema (tabelas, ficheiros executáveis, libraries, etc.). Um componente é um fragmento físico de um sistema, que pode ser conectado a outros componentes e ser substituído por equivalentes. Desenhar um diagrama de componentes implica tomar opções de desenho, nomeadamente no que diz respeito à forma de encapsulamento da informação. A arquitectura do sistema final começa a ser definida nestes diagramas (e é completada através dos Diagramas de Distribuição). Nos diagramas de componentes constam componentes, interfaces e relações. Pedro Ramos, DCTI/ISCTE

  2. UML – Diagrama de Componentes Interfaces Uma interface é um conjunto de operações que especifica parte do comportamento de um conjunto de classes. São as operações (serviços) que as classe oferecem ao exterior (outras classes). Uma interface é frequentemente vista como um conjunto de classes apenas com operações (sem atributos). O encapsulamento de classes (através das interfaces) faz com que o exterior não tenha que conhecer a estrutura interna das classes. Nomeadamente, alterações da estrutura de uma classe não têm que ser comunicadas para o exterior. Não confundir com as interfaces de JAVA. Pedro Ramos, DCTI/ISCTE

  3. UML – Diagrama de Componentes Classe Classe Exemplo de Interface (I) O acesso à base de dados deve estar isolado das restantes módulos do sistema. Este desenho facilita a migração de SGBD’s e permite que uma interface interactue com mais que um SGBD. Apenas as classes de ligação a SGBD conhecem a base de dados (localização). Sybase Oracle Classes de Interface para SGBD (Select ... From ....) Pedro Ramos, DCTI/ISCTE

  4. UML – Diagrama de Componentes Classe Classe Classe Classe Exemplo de Interface (II) Não é aconselhável que as classes gráficas (ecrãs) sejam muito dependentes do modelo relacional (pequenas alterações na base de dados não deveriam originar alterações nos ecrãs). Por outro lado, as classes que encapsulam o acesso à base de dados (ie., que permitem o acesso aos dados) deverão ser independentes dos ecrãs (de modo a poderem ser partilhadas por diferentes módulos). Sybase Oracle Classes de Interface gráficas (Listeners) Classes de Interface para SGBD (Select ... From ....) Pedro Ramos, DCTI/ISCTE

  5. Arquitectura Genérica de uma Aplicação Ecrã Tabela (BD) MidlleWare Camada de software que contém as osrequisitos da aplicação e queliga a BD aos ecrãs Classes de Interface para SGBD (transacções, abrir, fechar, executar sql, ODBC, JDBC, etc ...) Classes gráficas Caso seja relevante poderá existir mais que uma “camada” (diferentes níveis de encapsulamento). Pedro Ramos, DCTI/ISCTE

  6. Classes Dados versus Classes Controlo Ecrã Tabela (BD) MidlleWare Requisito: “Caso o funcionário exceda n faltas do tipo A desconta no vencimento” produto Gestão Clientes cliente factura Gestão Assiduidade funcionário Tabela Faltas Implementado em classes de controlo? Em classes de dados? ... provavelmente nas classes de controlo Classes de controlo de requisitos Classes de manipulação de dados Pedro Ramos, DCTI/ISCTE

  7. UML – Diagrama de Componentes Factura Número Data Interfaces e Realização (I) Uma classe pode disponibilizar várias interfaces (um certo paralelismo com as views do modelo relacional) e uma interface pode ser realizada por mais do que uma classe. A Realização é a relação entre uma classe e uma interface. Linha da factura Produto Quantidade Preço Unitário 1 1 … * Realização AdicionarLinha() RemoverLinha() Emitir() Anular() Arquivar() <<Interface>> Factura Podem corresponder apenas a “apontadores” para os métodos da classe Emitir() AdicionarLinha() RemoverLinha() Anular() Arquivar() Pedro Ramos, DCTI/ISCTE

  8. UML – Diagrama de Componentes Interfaces e Realização (II) Será útil a classe funcionário?, i.e, no desenho de uma aplicação suportada por uma base de dados, deverão ser implementadas as classes correspondentes às classes do diagrama de classes? As interfaces poderão ser suficientes? Os atributos são necessários? Funcionário <<Interface>> Funcionário Nome Morada Telefone Alterardados() Inserir() Consulta() Alterardados() Inserir() Consulta() <<Interface>> Consulta Funcionário Consulta() Pedro Ramos, DCTI/ISCTE

  9. UML – Diagrama de Componentes Interfaces e Realização (III) Uma classe abstracta parece suficiente ... Funcionário Nome Morada Salário A solução b) é uma tentativa de de aplicar uma teoria de objectos a uma teoria (relacional) que não é orientada a objectos? Novo() Remover() Alterar() Actualizar Salário() Consultar() Não é um método de objecto Na solução a) não são necessários atributos na classe Funcionário Apenas é um método de objecto caso seja consultar apenas a ficha de um fornecedor ... mas tem desvantagens, por ex., ordem de atributos Implementação: a) Actualizar Salário (IDObjecto, Novo Salário) Ou b) Integer Id Objecto; Float Salário; SetID() SetSalário() Actualizar Salário () Funcionário Nome Morada Salário Alterar() Actualizar Salário() ConsultarFicha() Necessidade de duas classes (Funcionários não tem atributos porque representa a colecção dos funcionários) Funcionários Novo() Remover() Consultar() Os atributos das classes são públicos? Não de acordo com a teoria dos objectos Pedro Ramos, DCTI/ISCTE

  10. listener Interfaces e Realização (IV) Funcionários Relacional On click em botão actualiza salário ... Funcionario f = new() Funcionario f.actualizasalario(idf,salario) Public actualizasalario(id, s) Update ...... Desvantagem: Ordem de atributos é relevante Pedro Ramos, DCTI/ISCTE

  11. UML – Diagrama de Componentes Notas Usualmente na representação gráfica não se discriminam as operações de uma interface. Forma gráfica mais habitual para representar interfaces: Funcionário Nome Morada Telefone Funcionário AlterarDados() Inserir() Consulta() Consulta Funcionário Pedro Ramos, DCTI/ISCTE

  12. UML – Diagrama de Componentes Visibilidade O tipo de visibilidade dos atributos e métodos pode ser indicado nas classes. Os tipos são: public(+) – acessível a todas as classes private(-) – acessível apenas à classe de que fazem parte protected (#) – acessível às classes que herdam a classe de que fazem parte Funcionário Forma alternativa (mais rígida, igual para todas as classes exteriores) de implementar interfaces. # Nome # Morada # Telefone # AlterarDados() - Inserir() + Consulta() Pedro Ramos, DCTI/ISCTE

  13. UML – Diagrama de Componentes FormsStock Stock.java Stock.bd Componentes Um componente é uma parte física de um sistema que está localizado em um computador. Um componente pode ser visto como uma implementação de uma classe ou conjunto de classes (packages) e respectivas interfaces. Um componente também disponibiliza interfaces para o exterior. É usual tipificar (através de ícones) vários tipos de componentes. JDBC Interface Method Invocation O componente Stock.java usa (usage dependency) o componente Stock.bd através de uma interface JDBC Pedro Ramos, DCTI/ISCTE

  14. UML – Diagrama de Componentes Nota É possível graficamente enumerar as classes ou packages contidos num componente. Não é usual fazer-se por razões de legibilidade do diagrama, mas, caso se opte por não o fazer, é necessário indicar os elementos de um componente de uma forma não gráfica (documento anexo). Pedro Ramos, DCTI/ISCTE

  15. UML – Diagrama de Distribuição Diagramas de Distribuição(Deployment) Enquanto que os diagramas de componentes modelam a arquitectura do software, os diagramas de distribuição definem a arquitectura do hardware. Desenhar um diagrama de distribuição consiste essencialmente em distribuir os componentes por unidades de hardware (computadores). Nos diagramas de distribuição constam nós (processadores e devices) e relações (usualmente ligações físicas, embora possam ser indicadas relações de dependência). Os processadores são os nós capazes de executar componentes, enquanto os devices são utilizados para discriminar a interface para o exterior (impressoras, modems, monitores, etc.). Pedro Ramos, DCTI/ISCTE

  16. UML – Diagrama de Distribuição << device>> Monitor << processador>> ISP << processador>> Cliente FormStock.java << processador>> Servidor << device>> Modem Stock.java Stock.bd << device>> Impressora Representação Gráfica A indicação de estereótipos é opcional Duas camadas no mesmo computador Indicação dos componentes Pedro Ramos, DCTI/ISCTE

  17. Exemplo VídeoClasses Para gerar o Relacional Pedro Ramos, DCTI/ISCTE

  18. Exemplo VídeoInterfaces Relações de Dependência Desapareceram atributos ... Pedro Ramos, DCTI/ISCTE

  19. Exemplo VídeoInterfaces (síntese) Packages Pedro Ramos, DCTI/ISCTE

  20. Exemplo VídeoDiagrama de Componentes Pedro Ramos, DCTI/ISCTE

  21. Exemplo VídeoDiagrama de Distribuição Pedro Ramos, DCTI/ISCTE

More Related