SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
UML – Diagramas de Componentes
e Modelação da Arquitectura Física

   Profs:   dr. Edgar Gemo
            Dr. Zeferino Saugene (MSc.)
Diagrama de Componentes
 Captura a estrutura física da implementação
 Construído como parte da especificação da arquitectura
 Objectivo
  • Organizar o código fonte (ambiente de desenvolvimento)
  • Construir uma release executável (ambiente de produção)
  • Especificar uma base de dados física

 Desenvolvido por arquitectos e programadores
 Contém componentes, interfaces e relações entre
 componentes
 Pacotes de componentes podem ser usados para modelar a
 arquitectura física
Componentes
 Um componente é uma parte física (feita de bits e bytes) e
 substituível de um sistema, que proporciona a realização de um
 conjunto de interfaces
  • Podem-nos interessar diferentes ambientes: desenvolvimento, produção,
    testes, ...

 Exemplos: executáveis, bibliotecas, tabelas, ficheiros,
 documentos
 Um componente representa um empacotamento físico de
 elementos relacionados logicamente (normalmente classes)
 Notação: caixa com tabs


                                        kernel32.dll
Tipos de componentes - ícones e
estereótipos
           <<executable>> componente que pode ser executado num nó


 2 rodas
dentadas   <<library>>    biblioteca estática ou dinâmica


           <<database>>   base de dados


           <<table>>      tabela de uma base de dados


           <<file>>       ficheiro contendo código fonte ou dados


           <<document>>   documento genérico
Interfaces
 Uma interface é um conjunto de operações usado para especificar
 os serviços de uma classe ou componente
 Relação de concretização (realization): um componente pode
 concretizar (implementar os serviços de) uma ou mais interfaces
  • Normalmente quer dizer que tem classes que implementam esses interfaces
  • Diz-se que as interfaces são exportadas
  • Um componente poder ser substituído por outro componente que implementa
    as mesmas interfaces
     - Não basta obedecer à mesma sintaxe, mas também à mesma semântica

 Relação de dependência: um componente pode usar uma ou mais
 interfaces
  • Diz-se que essas interfaces são importadas
  • Um componente que usa outro componente através de uma interface bem
    definida, não deve depender da implementação (do componente em si), mas
    apenas da interface
Interfaces – Exemplo 1

              image.java                                     componente.java
                                 ImageObserver


ou com mais detalhe:   dependência    interface
                                                        concretização



                                 <<interface>>
       image.java               ImageObserver                  componente.java
                            abort: int {final static}
                            error: int {final static}
                            imageUpdate(): Boolean
Interfaces – Exemplo 2                          Java
                                                 Application
 componente

                                                         JDBC
                    Visual Basic
                    Application
                                           Sun JDBC-
                                                                SQL Server
                                          ODBC brigde
                                                                JDBC driver
       interface
(mais precisamente, API)
                              ODBC



                   Oracle ODBC       SQL Server ODBC
                      driver              driver

                                                               Transact SQL

                                                       SQL Server
                                                         DBMS
Tipos de dependências entre
componentes
 Dependências simples:
  • entre ficheiros com código fonte, para controlo de alterações
  • entre executáveis e/ou bibliotecas, para gestão de configurações e
    dependências
  • entre executáveis ou bibliotecas e tabelas ou documentos de ajuda
    por eles usados

 Dependências estereotipadas:
  • estereótipo «hyperlink» - entre páginas html ou páginas html e
    executáveis
  • estereótipo «trace» - entre versões consecutivas do mesmo tipo de
    componente

 Não esquecer que é melhor depender das interfaces do que
 das implementações
Dependências - Exemplo
Composição e agrupamento de
componentes
    Conforme o nome indica, os componentes são para compor
    (montar), criando componentes maiores ou sistemas inteiros
    Exemplos:
      • Base de dados composta por tabelas
      • Biblioteca dinâmica (dll) composta por componentes COM+

    No caso de agrupamentos de componentes que não criam
    componentes (físicos) maiores, usar pacotes de componentes

                                                                 Base de dados de
                                                                 biblioteca
              Web site



             «hyperlink»

                                              Tabela     Tabela de    Tabela de
Web page 1                 Web page n        de sócios    reservas   publicações
Caso de estudo (biblioteca)
Pacotes de componentes

               Páginas Web Dinâmicas do
                         SIB




               Compone ntes de Lógica de
                   Negócio do SIB




                Base de Dados do SIB
Caso de estudo (biblioteca)
   Todos os componentes
  Páginas Web Dinâmicas do SIB
                                                                                                         Mostra menu que está
                                                                                                         disponível em qualquer pá gina
                                            login. h                               index.html
                                            tml                                                                                                  para inserir
                                                                                                                                                 novo




Segue um padrão!                            pesquisaAu
                                            t ores.html
                                                                         pesquisaPubli
                                                                         cações.html
                                                                                                        pesquisaReq
                                                                                                        uisições.html
                                                                                                                                          pesquisaSó
                                                                                                                                          cios.html
Qual é?
Como formalizar?
O padrão é arquitectura!                    listaAutor
                                            es.asp
                                                                         listaPublica
                                                                         ç ões.as p
                                                                                                        listaRequisiç                     listaSóci
                                                                                                        ões.asp                           os.asp




                                                          fichaAut or.                   fichaPublica                   fichaRequi                      fichaSóc
                                                          asp                            ção.asp                        sição.asp                       io.asp




  Componentes de Lógica de Negócio do SIB

                                            <<COM+>>                      <<COM+>>                      <<COM+>>                          <<COM+>>
                                            GestãoAuto                    GestãoPubli                   GestãoRequ                        GestãoSóci
                                            res                           cações                        is ições                          os



  Base de Dados do SIB
                                            <<dbtable>>                   <<dbtable>>                    <<dbtable>>                      <<dbtable>>
                                            Autores                       Publicações                    Requisições                      Sócios

Weitere ähnliche Inhalte

Was ist angesagt?

Fundamentos de Padrões de Projeto de Software
Fundamentos de Padrões de Projeto de SoftwareFundamentos de Padrões de Projeto de Software
Fundamentos de Padrões de Projeto de SoftwareÁlvaro Farias Pinheiro
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e GitIgor Steinmacher
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAndré Constantino da Silva
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTMLLeonardo Soares
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Engenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLEngenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLAlessandro Almeida
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAlberto Simões
 
Fluxograma processo - desenvolvimento de software
Fluxograma   processo - desenvolvimento de softwareFluxograma   processo - desenvolvimento de software
Fluxograma processo - desenvolvimento de softwareAragon Vieira
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 

Was ist angesagt? (20)

Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
Fundamentos de Padrões de Projeto de Software
Fundamentos de Padrões de Projeto de SoftwareFundamentos de Padrões de Projeto de Software
Fundamentos de Padrões de Projeto de Software
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e Git
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estruturaAula 2 – Introdução a HTML - conceitos básicos e estrutura
Aula 2 – Introdução a HTML - conceitos básicos e estrutura
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Criação de tabelas com HTML
Criação de tabelas com HTMLCriação de tabelas com HTML
Criação de tabelas com HTML
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
 
Engenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLEngenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UML
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Fluxograma processo - desenvolvimento de software
Fluxograma   processo - desenvolvimento de softwareFluxograma   processo - desenvolvimento de software
Fluxograma processo - desenvolvimento de software
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 

Ähnlich wie Diagramas de componentes

Ähnlich wie Diagramas de componentes (20)

Glossário de termos ABAP
Glossário de termos ABAPGlossário de termos ABAP
Glossário de termos ABAP
 
Sessao3
Sessao3Sessao3
Sessao3
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Engenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galoEngenharia da Computação: Resumo servlet + jsp br galo
Engenharia da Computação: Resumo servlet + jsp br galo
 
Mapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORMMapeamento Objeto Relacional em PHP com Outlet ORM
Mapeamento Objeto Relacional em PHP com Outlet ORM
 
Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC Marília
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
Aula de ASP
Aula de ASPAula de ASP
Aula de ASP
 
Palestra
PalestraPalestra
Palestra
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
 
Programação asp
Programação aspProgramação asp
Programação asp
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Apresentação palestra ireport
Apresentação palestra ireportApresentação palestra ireport
Apresentação palestra ireport
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
 

Mehr von Portal_do_estudante_ADS (16)

Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Diagramas de distribuicao
Diagramas de distribuicaoDiagramas de distribuicao
Diagramas de distribuicao
 
Aula10 diagrama colaboracao
Aula10 diagrama colaboracaoAula10 diagrama colaboracao
Aula10 diagrama colaboracao
 
Aula9 diagrama de_sequencia
Aula9 diagrama de_sequenciaAula9 diagrama de_sequencia
Aula9 diagrama de_sequencia
 
Aula8 diagrama de_objectos
Aula8 diagrama de_objectosAula8 diagrama de_objectos
Aula8 diagrama de_objectos
 
Aula2 paradigmas
Aula2 paradigmasAula2 paradigmas
Aula2 paradigmas
 
Aula1 eng software
Aula1 eng softwareAula1 eng software
Aula1 eng software
 
Aula capitulo9 diagrama_estados
Aula capitulo9 diagrama_estadosAula capitulo9 diagrama_estados
Aula capitulo9 diagrama_estados
 
Aula 7 diagramas_classes2
Aula 7 diagramas_classes2Aula 7 diagramas_classes2
Aula 7 diagramas_classes2
 
Aula 6 -_casos_de_uso
Aula 6 -_casos_de_usoAula 6 -_casos_de_uso
Aula 6 -_casos_de_uso
 
Aula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_umlAula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_uml
 
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula 4 -_metodologia_e_tecnicas_de_analise_ooAula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
 
Aula -diagrama_de_actividade
Aula  -diagrama_de_actividadeAula  -diagrama_de_actividade
Aula -diagrama_de_actividade
 
Aula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aooAula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aoo
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 

Diagramas de componentes

  • 1. UML – Diagramas de Componentes e Modelação da Arquitectura Física Profs: dr. Edgar Gemo Dr. Zeferino Saugene (MSc.)
  • 2. Diagrama de Componentes Captura a estrutura física da implementação Construído como parte da especificação da arquitectura Objectivo • Organizar o código fonte (ambiente de desenvolvimento) • Construir uma release executável (ambiente de produção) • Especificar uma base de dados física Desenvolvido por arquitectos e programadores Contém componentes, interfaces e relações entre componentes Pacotes de componentes podem ser usados para modelar a arquitectura física
  • 3. Componentes Um componente é uma parte física (feita de bits e bytes) e substituível de um sistema, que proporciona a realização de um conjunto de interfaces • Podem-nos interessar diferentes ambientes: desenvolvimento, produção, testes, ... Exemplos: executáveis, bibliotecas, tabelas, ficheiros, documentos Um componente representa um empacotamento físico de elementos relacionados logicamente (normalmente classes) Notação: caixa com tabs kernel32.dll
  • 4. Tipos de componentes - ícones e estereótipos <<executable>> componente que pode ser executado num nó 2 rodas dentadas <<library>> biblioteca estática ou dinâmica <<database>> base de dados <<table>> tabela de uma base de dados <<file>> ficheiro contendo código fonte ou dados <<document>> documento genérico
  • 5. Interfaces Uma interface é um conjunto de operações usado para especificar os serviços de uma classe ou componente Relação de concretização (realization): um componente pode concretizar (implementar os serviços de) uma ou mais interfaces • Normalmente quer dizer que tem classes que implementam esses interfaces • Diz-se que as interfaces são exportadas • Um componente poder ser substituído por outro componente que implementa as mesmas interfaces - Não basta obedecer à mesma sintaxe, mas também à mesma semântica Relação de dependência: um componente pode usar uma ou mais interfaces • Diz-se que essas interfaces são importadas • Um componente que usa outro componente através de uma interface bem definida, não deve depender da implementação (do componente em si), mas apenas da interface
  • 6. Interfaces – Exemplo 1 image.java componente.java ImageObserver ou com mais detalhe: dependência interface concretização <<interface>> image.java ImageObserver componente.java abort: int {final static} error: int {final static} imageUpdate(): Boolean
  • 7. Interfaces – Exemplo 2 Java Application componente JDBC Visual Basic Application Sun JDBC- SQL Server ODBC brigde JDBC driver interface (mais precisamente, API) ODBC Oracle ODBC SQL Server ODBC driver driver Transact SQL SQL Server DBMS
  • 8. Tipos de dependências entre componentes Dependências simples: • entre ficheiros com código fonte, para controlo de alterações • entre executáveis e/ou bibliotecas, para gestão de configurações e dependências • entre executáveis ou bibliotecas e tabelas ou documentos de ajuda por eles usados Dependências estereotipadas: • estereótipo «hyperlink» - entre páginas html ou páginas html e executáveis • estereótipo «trace» - entre versões consecutivas do mesmo tipo de componente Não esquecer que é melhor depender das interfaces do que das implementações
  • 10. Composição e agrupamento de componentes Conforme o nome indica, os componentes são para compor (montar), criando componentes maiores ou sistemas inteiros Exemplos: • Base de dados composta por tabelas • Biblioteca dinâmica (dll) composta por componentes COM+ No caso de agrupamentos de componentes que não criam componentes (físicos) maiores, usar pacotes de componentes Base de dados de biblioteca Web site «hyperlink» Tabela Tabela de Tabela de Web page 1 Web page n de sócios reservas publicações
  • 11. Caso de estudo (biblioteca) Pacotes de componentes Páginas Web Dinâmicas do SIB Compone ntes de Lógica de Negócio do SIB Base de Dados do SIB
  • 12. Caso de estudo (biblioteca) Todos os componentes Páginas Web Dinâmicas do SIB Mostra menu que está disponível em qualquer pá gina login. h index.html tml para inserir novo Segue um padrão! pesquisaAu t ores.html pesquisaPubli cações.html pesquisaReq uisições.html pesquisaSó cios.html Qual é? Como formalizar? O padrão é arquitectura! listaAutor es.asp listaPublica ç ões.as p listaRequisiç listaSóci ões.asp os.asp fichaAut or. fichaPublica fichaRequi fichaSóc asp ção.asp sição.asp io.asp Componentes de Lógica de Negócio do SIB <<COM+>> <<COM+>> <<COM+>> <<COM+>> GestãoAuto GestãoPubli GestãoRequ GestãoSóci res cações is ições os Base de Dados do SIB <<dbtable>> <<dbtable>> <<dbtable>> <<dbtable>> Autores Publicações Requisições Sócios