SlideShare uma empresa Scribd logo
UML – Diagramas de Pacotes (Packages)
e Modelação da Arquitectura Lógica

   Profs:   dr. Edgar Gemo
            Dr. Zeferino Saugene (MSc.)
Pacotes
 Um pacote (package) em UML é um mecanismo de
 agrupamento genérico
 Notação: pasta com o nome no interior ou na pega
 No caso de um pacote contido noutro, o nome completo do
 pacote contido inclui o nome do seu contentor


  Client
                       Client         Sensors::Vision
Diagramas de pacotes
 Um diagrama de pacotes mostra pacotes e relações entre
 pacotes
 Na realidade, não existem propriamente diagramas de
 pacotes em UML; em vez disso, pacotes e relações entre
 pacotes aparecem noutros diagramas, de acordo com o tipo
 de pacote
  • Pacotes de classes (pacotes lógicos) - em diagramas de classes
  • Pacotes de componentes – em diagramas de componentes
  • Pacotes de nós – em diagramas de distribuição
  • Pacotes de casos de utilização – em diagramas de casos de utilização
Pacotes lógicos
 Um pacote lógico (ou módulo lógico) é um agrupamento lógico de
 classes e relações entre essas classes
  • divisão de um sistema em pacotes lógicos é uma divisão de responsabilidades

 Corresponde ao conceito de package em Java ou de namespace
 em C++ e C#
 Não confundir com empacotamento físico do software em
 ficheiros de código fonte, executáveis, dll's, etc. (designados
 componentes em UML)
 Um pacote lógico pode atravessar vários ficheiros
 Diagramas de pacotes lógicos utilizadas para modelar a
 arquitectura lógica de um sistema de software (organização em
 módulos lógicos e especificação de interfaces e dependências
 entre módulos)
Conteúdo de um pacote
 Uma vez que representa um agrupamento, um pacote é em
 geral dono de diversos elementos: classes, interfaces,
 componentes, nós, colaborações, casos de uso, diagramas,
 e até outros pacotes
 Esses elementos podem ser indicados no interior do pacote,
 na forma de uma lista de nomes ou diagrama
         Client                          Client
         + OrderForm                     + OrderForm
         + TrackingForm                                    - Order
         - Order                          + TrackingForm
 Um pacote forma um espaço de nomes
  • classe Order do pacote Client é designada Client::Order
Visibilidade dos elementos contidos
num pacote
 Pode-se indicar a visibilidade dos elementos:
  + (público) : visível por todos que importam ou acedem ao pacote
    (nomes sem :: no 1º caso, com :: no 2º caso)
  # (protegido): visível só pelos pacotes-filhos (por relação de
    generalização - ver adiante)
  - (privado): visível só por outros elementos do pacote

 Os elementos públicos de um pacote são chamados também
 os elementos exportados pelo pacote
Dependências entre pacotes
 Dependência simples: uma alteração do pacote de destino
 afecta o pacote de origem (dependente) (informação útil
 para controlo de alterações)
 Dependência com estereótipo «access»: o pacote de
 origem (dependente) acede a elementos exportados pelo
 pacote de destino (precisa de :: nos nomes)
 Dependência com estereótipo «import»: o pacote de
 origem (dependente) importa os elementos exportados pelo
 pacote de destino (não precisa de :: nos nomes)
       Client                       GUI
       + OrderForm                  + Window
       + TrackingForm   «import»    + Form
       - Order                      # EventHandler
Generalização de pacotes
    Usada para especificar famílias de pacotes relacionados por
    herança
                                       GUI
                                       + Window
                                       + Form
                                       # EventHandler
herda sem alteração
(default)
                        WindowsGUI
substitui (overrides)   + GUI::Window
o elemento Form de      + Form                            MacGUI
GUI                     # GUI::EventHandler
                        +VBForm
adicionado
               herda os elementos públicos e protegidos de GUI
Estereótipos em pacotes
 «system» - pacote que representa o sistema completo que está a ser
 modelado (incluindo todos os modelos e elementos dos modelos)
 «subsystem» - pacote que representa uma parte independente de
 sistema completo que está a ser modelado; corresponde normalmente a
 um corte "vertical"
 «facade» (fachada) - pacote que constitui uma vista sobre outro pacote
 (não acrescenta funcionalidades, apenas apresenta de forma diferente)
 «framework» (infra-estrutura aplicacional) - pacote que representa um
 conjunto de classes abstractas e concretas concebido para ser estendido,
 implementando a funcionalidade típica de um determinado domínio de
 aplicação
 «stub» - pacote que serve como proxy para o conteúdo público de outro
 pacote
 «layer» - pacote que representa uma camada horizontal de um sistema
Composição de pacotes (1)
 Sub-pacotes podem ser indicados dentro do pacote-dono ou
 com relação de composição

                              «system»
                      Retail Enterprise System


     «subsystem»          «subsystem»                «subsystem»
      Customer              In Store                  Warehouse
       Service            Management                 Management
      subsystem            subsystem                  subsystem



Neste exemplo segue-se uma divisão vertical, por subsistemas!
Composição de pacotes (2)
            «system»
    Retail Enterprise System

                            «layer»              Graphical User Interface
                Retail Enterprise System - GUI


                            «layer»
                                                 Business Logic
                 Retail Enterprise System - BL


                            «layer»              Database
                 Retail Enterprise System - DB



 Neste exemplo segue-se uma divisão horizontal, por camadas!
Caso de estudo (biblioteca): divisão em
áreas funcionais


          <<subsystem>>
                                                    <<subsystem>>
        Relação com Clientes
                                                    Relação com
         (Leitores e Sócios)
                                                    Fornecedores




                                <<subsystem>>
                               Gestão de Recursos
                                  (Publicações)
Caso de estudo (biblioteca): divisão em
camadas técnicas

                   <<layer>>
                Interface com o
                    Ut ilizador




                  <<layer>>
                  Lógica de
                   Negócio




                  <<layer>>
                 Base de Dados
Caso de estudo (biblioteca): divisão em
camadas técnicas e áreas funcionais

                 IU - Clientes              IU - Recursos




            Lógica de Negócio -         Lógica de Negócio -
                  Clientes                   Recursos
           (from Ló gica de Negócio)   (from Lógica de Negócio)




              Base de Dados -             Base de Dados -
                  Clientes                   Recursos

Mais conteúdo relacionado

PDF
UML - Diagrama de Pacotes
PDF
Aula 10 - Diagrama de Sequencia.pdf
PDF
Teste de software
PDF
Programação Orientada a Objetos
PDF
Padrões de Projeto de Software
PPTX
Uml diagrama de sequencia
PPT
AOO - Diagrama de Caso de Uso
UML - Diagrama de Pacotes
Aula 10 - Diagrama de Sequencia.pdf
Teste de software
Programação Orientada a Objetos
Padrões de Projeto de Software
Uml diagrama de sequencia
AOO - Diagrama de Caso de Uso

Mais procurados (20)

ODP
Diagrama de Casos de Uso
PPT
UML - Criando Diagramas Eficientes
PDF
Java orientação a objetos (associacao, composicao, agregacao)
PDF
Banco de dados - Mapeamento MER - Relacional
PDF
POO - 16 - Polimorfismo
PPTX
Diagrama de sequência
PPT
Aula8 diagrama sequencia
PPT
Modelagem Arquitetural e Visão 4+1
PPTX
Clean code - Mantenha seu código limpo
PDF
Introdução à Qualidade de Software
PPTX
Modelagem de Dados
PDF
Orientação a Objetos em Python
PDF
Aula 07 - Diagrama de sequencia
PDF
Documentação de Arquitetura de Software Aplicando o C4 Model
PDF
Diagrama de classe aula 02 PDF para UML.
PDF
Desenvolvimento de Sistemas Web - Conceitos Básicos
PDF
SI - Comunicação
PDF
Aula 1 - Introdução a POO
PDF
Diagrama de Classes
Diagrama de Casos de Uso
UML - Criando Diagramas Eficientes
Java orientação a objetos (associacao, composicao, agregacao)
Banco de dados - Mapeamento MER - Relacional
POO - 16 - Polimorfismo
Diagrama de sequência
Aula8 diagrama sequencia
Modelagem Arquitetural e Visão 4+1
Clean code - Mantenha seu código limpo
Introdução à Qualidade de Software
Modelagem de Dados
Orientação a Objetos em Python
Aula 07 - Diagrama de sequencia
Documentação de Arquitetura de Software Aplicando o C4 Model
Diagrama de classe aula 02 PDF para UML.
Desenvolvimento de Sistemas Web - Conceitos Básicos
SI - Comunicação
Aula 1 - Introdução a POO
Diagrama de Classes
Anúncio

Destaque (20)

PDF
Diagramas de componentes
PPT
Diagrama de implantação
PDF
Diagrama de estados 1
PDF
Modelagem Aplicações Web com UML
PPTX
AE Rio 2011 - Desafio da implantação de arquitetura de TI
PDF
Modelagem e elaboração de componentes
PDF
Qual aula_04__teste_e_inspecao_de_usabilidade
PDF
O Archimate® como ferramenta de apoio para uso do TOGAF®
PPT
Diagramas de implantação
PDF
Uml Diagramas estruturais - parte escrita
PDF
PDF
Analise e Desenho Orientado a Objetos com UML
PDF
Workflows, diagramas e classes de Analise. Sistemas de Informação
PDF
Apostila de uml
PDF
07 diagrama de classes de análise
PDF
Curso Básico de UML
PDF
Exercicio de UML - Documentacao Restaurante
PDF
33 design patterns com Java
PDF
Resumo diagramas de classes
PDF
Aula diagramas de implementacao 3º periodo uniao
Diagramas de componentes
Diagrama de implantação
Diagrama de estados 1
Modelagem Aplicações Web com UML
AE Rio 2011 - Desafio da implantação de arquitetura de TI
Modelagem e elaboração de componentes
Qual aula_04__teste_e_inspecao_de_usabilidade
O Archimate® como ferramenta de apoio para uso do TOGAF®
Diagramas de implantação
Uml Diagramas estruturais - parte escrita
Analise e Desenho Orientado a Objetos com UML
Workflows, diagramas e classes de Analise. Sistemas de Informação
Apostila de uml
07 diagrama de classes de análise
Curso Básico de UML
Exercicio de UML - Documentacao Restaurante
33 design patterns com Java
Resumo diagramas de classes
Aula diagramas de implementacao 3º periodo uniao
Anúncio

Semelhante a Diagramas de pacotes (20)

PDF
Php Conf08 Enterprise Patterns
PPT
Diagramas de casos de uso - aula 2
PPTX
Diagrama componentes_1
ODP
7 interfaces
PPSX
Apresentação TCC-pós
DOCX
Trabalho de análise e projeto 2
PPT
Arquitetura de Sistemas e seus aspectos na TI
PDF
engenharia de requisito-estudo de caso.pdf
PPTX
S2 b desenvolvimento de sistemas [reparado]
PPTX
Introdução à Engenharia de Software e UML
PPTX
Microsoft S2B - C# ASP.NET
PDF
Aulas de análise
PDF
Aulas de análise
ODP
Palestra2009
PPTX
Domain-Driven Design
PPTX
diagrama de componentes -asdadasdasdasdas
PPTX
diagrama de componentesasdadasdasdasdassda
PPS
Componentes
PDF
Aula 3 - Software
PDF
Arquitetura de Software - Performance, Layers e Domain Layer
Php Conf08 Enterprise Patterns
Diagramas de casos de uso - aula 2
Diagrama componentes_1
7 interfaces
Apresentação TCC-pós
Trabalho de análise e projeto 2
Arquitetura de Sistemas e seus aspectos na TI
engenharia de requisito-estudo de caso.pdf
S2 b desenvolvimento de sistemas [reparado]
Introdução à Engenharia de Software e UML
Microsoft S2B - C# ASP.NET
Aulas de análise
Aulas de análise
Palestra2009
Domain-Driven Design
diagrama de componentes -asdadasdasdasdas
diagrama de componentesasdadasdasdasdassda
Componentes
Aula 3 - Software
Arquitetura de Software - Performance, Layers e Domain Layer

Mais de Portal_do_estudante_ADS (15)

DOC
Diagrama de classes
PDF
Diagramas de distribuicao
PDF
Aula10 diagrama colaboracao
PDF
Aula9 diagrama de_sequencia
PDF
Aula8 diagrama de_objectos
PDF
Aula2 paradigmas
PDF
Aula1 eng software
PDF
Aula capitulo9 diagrama_estados
PDF
Aula 7 diagramas_classes2
PDF
Aula 6 -_casos_de_uso
PDF
Aula 5 -_fundamentos_de_uml
PDF
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
PDF
Aula -diagrama_de_actividade
PDF
Aula 3 -_fundamentos_sobre_aoo
Diagrama de classes
Diagramas de distribuicao
Aula10 diagrama colaboracao
Aula9 diagrama de_sequencia
Aula8 diagrama de_objectos
Aula2 paradigmas
Aula1 eng software
Aula capitulo9 diagrama_estados
Aula 7 diagramas_classes2
Aula 6 -_casos_de_uso
Aula 5 -_fundamentos_de_uml
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula -diagrama_de_actividade
Aula 3 -_fundamentos_sobre_aoo

Diagramas de pacotes

  • 1. UML – Diagramas de Pacotes (Packages) e Modelação da Arquitectura Lógica Profs: dr. Edgar Gemo Dr. Zeferino Saugene (MSc.)
  • 2. Pacotes Um pacote (package) em UML é um mecanismo de agrupamento genérico Notação: pasta com o nome no interior ou na pega No caso de um pacote contido noutro, o nome completo do pacote contido inclui o nome do seu contentor Client Client Sensors::Vision
  • 3. Diagramas de pacotes Um diagrama de pacotes mostra pacotes e relações entre pacotes Na realidade, não existem propriamente diagramas de pacotes em UML; em vez disso, pacotes e relações entre pacotes aparecem noutros diagramas, de acordo com o tipo de pacote • Pacotes de classes (pacotes lógicos) - em diagramas de classes • Pacotes de componentes – em diagramas de componentes • Pacotes de nós – em diagramas de distribuição • Pacotes de casos de utilização – em diagramas de casos de utilização
  • 4. Pacotes lógicos Um pacote lógico (ou módulo lógico) é um agrupamento lógico de classes e relações entre essas classes • divisão de um sistema em pacotes lógicos é uma divisão de responsabilidades Corresponde ao conceito de package em Java ou de namespace em C++ e C# Não confundir com empacotamento físico do software em ficheiros de código fonte, executáveis, dll's, etc. (designados componentes em UML) Um pacote lógico pode atravessar vários ficheiros Diagramas de pacotes lógicos utilizadas para modelar a arquitectura lógica de um sistema de software (organização em módulos lógicos e especificação de interfaces e dependências entre módulos)
  • 5. Conteúdo de um pacote Uma vez que representa um agrupamento, um pacote é em geral dono de diversos elementos: classes, interfaces, componentes, nós, colaborações, casos de uso, diagramas, e até outros pacotes Esses elementos podem ser indicados no interior do pacote, na forma de uma lista de nomes ou diagrama Client Client + OrderForm + OrderForm + TrackingForm - Order - Order + TrackingForm Um pacote forma um espaço de nomes • classe Order do pacote Client é designada Client::Order
  • 6. Visibilidade dos elementos contidos num pacote Pode-se indicar a visibilidade dos elementos: + (público) : visível por todos que importam ou acedem ao pacote (nomes sem :: no 1º caso, com :: no 2º caso) # (protegido): visível só pelos pacotes-filhos (por relação de generalização - ver adiante) - (privado): visível só por outros elementos do pacote Os elementos públicos de um pacote são chamados também os elementos exportados pelo pacote
  • 7. Dependências entre pacotes Dependência simples: uma alteração do pacote de destino afecta o pacote de origem (dependente) (informação útil para controlo de alterações) Dependência com estereótipo «access»: o pacote de origem (dependente) acede a elementos exportados pelo pacote de destino (precisa de :: nos nomes) Dependência com estereótipo «import»: o pacote de origem (dependente) importa os elementos exportados pelo pacote de destino (não precisa de :: nos nomes) Client GUI + OrderForm + Window + TrackingForm «import» + Form - Order # EventHandler
  • 8. Generalização de pacotes Usada para especificar famílias de pacotes relacionados por herança GUI + Window + Form # EventHandler herda sem alteração (default) WindowsGUI substitui (overrides) + GUI::Window o elemento Form de + Form MacGUI GUI # GUI::EventHandler +VBForm adicionado herda os elementos públicos e protegidos de GUI
  • 9. Estereótipos em pacotes «system» - pacote que representa o sistema completo que está a ser modelado (incluindo todos os modelos e elementos dos modelos) «subsystem» - pacote que representa uma parte independente de sistema completo que está a ser modelado; corresponde normalmente a um corte "vertical" «facade» (fachada) - pacote que constitui uma vista sobre outro pacote (não acrescenta funcionalidades, apenas apresenta de forma diferente) «framework» (infra-estrutura aplicacional) - pacote que representa um conjunto de classes abstractas e concretas concebido para ser estendido, implementando a funcionalidade típica de um determinado domínio de aplicação «stub» - pacote que serve como proxy para o conteúdo público de outro pacote «layer» - pacote que representa uma camada horizontal de um sistema
  • 10. Composição de pacotes (1) Sub-pacotes podem ser indicados dentro do pacote-dono ou com relação de composição «system» Retail Enterprise System «subsystem» «subsystem» «subsystem» Customer In Store Warehouse Service Management Management subsystem subsystem subsystem Neste exemplo segue-se uma divisão vertical, por subsistemas!
  • 11. Composição de pacotes (2) «system» Retail Enterprise System «layer» Graphical User Interface Retail Enterprise System - GUI «layer» Business Logic Retail Enterprise System - BL «layer» Database Retail Enterprise System - DB Neste exemplo segue-se uma divisão horizontal, por camadas!
  • 12. Caso de estudo (biblioteca): divisão em áreas funcionais <<subsystem>> <<subsystem>> Relação com Clientes Relação com (Leitores e Sócios) Fornecedores <<subsystem>> Gestão de Recursos (Publicações)
  • 13. Caso de estudo (biblioteca): divisão em camadas técnicas <<layer>> Interface com o Ut ilizador <<layer>> Lógica de Negócio <<layer>> Base de Dados
  • 14. Caso de estudo (biblioteca): divisão em camadas técnicas e áreas funcionais IU - Clientes IU - Recursos Lógica de Negócio - Lógica de Negócio - Clientes Recursos (from Ló gica de Negócio) (from Lógica de Negócio) Base de Dados - Base de Dados - Clientes Recursos