SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade RelacionamentoCris Fidelix
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitualMario Sergio
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoRudson Kiyoshi Souza Carvalho
 
07 diagrama de classes de análise
07  diagrama de classes de análise07  diagrama de classes de análise
07 diagrama de classes de análiseFilipe Soares
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Diagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados IDiagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados IDjonathas Cardoso
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageCloves da Rocha
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de UsoNatanael Simões
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Javaarmeniocardoso
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Aula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoAula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoMaria Alice Jovinski
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantaçãoelliando dias
 

La actualidad más candente (20)

3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitual
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 
07 diagrama de classes de análise
07  diagrama de classes de análise07  diagrama de classes de análise
07 diagrama de classes de análise
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Diagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados IDiagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados I
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Padrão Adapter
Padrão AdapterPadrão Adapter
Padrão Adapter
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Aula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniaoAula diagrama de atividade 3º periodo uniao
Aula diagrama de atividade 3º periodo uniao
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
 

Destacado

Diagrama de estados 1
Diagrama de estados 1Diagrama de estados 1
Diagrama de estados 1Maikynata
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequenciaItalo Costa
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLClaudio Martins
 
AE Rio 2011 - Desafio da implantação de arquitetura de TI
AE Rio 2011 - Desafio da implantação de arquitetura de TIAE Rio 2011 - Desafio da implantação de arquitetura de TI
AE Rio 2011 - Desafio da implantação de arquitetura de TIFernando Botafogo
 
Qual aula_04__teste_e_inspecao_de_usabilidade
Qual  aula_04__teste_e_inspecao_de_usabilidadeQual  aula_04__teste_e_inspecao_de_usabilidade
Qual aula_04__teste_e_inspecao_de_usabilidadeRafael Lima
 
O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF® O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF® Blue Hawk - B&IT Management
 
Diagramas de implantação
Diagramas de implantaçãoDiagramas de implantação
Diagramas de implantaçãoFitBlar Mit
 
Uml Diagramas estruturais - parte escrita
Uml   Diagramas estruturais - parte escritaUml   Diagramas estruturais - parte escrita
Uml Diagramas estruturais - parte escritathaisedd
 
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UMLAnalise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UMLRildo (@rildosan) Santos
 
Workflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de InformaçãoWorkflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de InformaçãoPedro De Almeida
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de umlaudiclerio
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao RestauranteJuliana Cindra
 
33 design patterns com Java
33 design patterns com Java33 design patterns com Java
33 design patterns com JavaGlobalcode
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classesMarco Coelho
 
Aula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoAula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoMaria Alice Jovinski
 

Destacado (20)

Diagramas de componentes
Diagramas de componentesDiagramas de componentes
Diagramas de componentes
 
Diagrama de estados 1
Diagrama de estados 1Diagrama de estados 1
Diagrama de estados 1
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UML
 
AE Rio 2011 - Desafio da implantação de arquitetura de TI
AE Rio 2011 - Desafio da implantação de arquitetura de TIAE Rio 2011 - Desafio da implantação de arquitetura de TI
AE Rio 2011 - Desafio da implantação de arquitetura de TI
 
Modelagem e elaboração de componentes
Modelagem e elaboração de componentesModelagem e elaboração de componentes
Modelagem e elaboração de componentes
 
Qual aula_04__teste_e_inspecao_de_usabilidade
Qual  aula_04__teste_e_inspecao_de_usabilidadeQual  aula_04__teste_e_inspecao_de_usabilidade
Qual aula_04__teste_e_inspecao_de_usabilidade
 
O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF® O Archimate® como ferramenta de apoio para uso do TOGAF®
O Archimate® como ferramenta de apoio para uso do TOGAF®
 
Diagramas de implantação
Diagramas de implantaçãoDiagramas de implantação
Diagramas de implantação
 
Uml Diagramas estruturais - parte escrita
Uml   Diagramas estruturais - parte escritaUml   Diagramas estruturais - parte escrita
Uml Diagramas estruturais - parte escrita
 
Package Diagram
Package DiagramPackage Diagram
Package Diagram
 
Analise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UMLAnalise e Desenho Orientado a Objetos com UML
Analise e Desenho Orientado a Objetos com UML
 
Workflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de InformaçãoWorkflows, diagramas e classes de Analise. Sistemas de Informação
Workflows, diagramas e classes de Analise. Sistemas de Informação
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
 
Curso Básico de UML
Curso Básico de UMLCurso Básico de UML
Curso Básico de UML
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao Restaurante
 
UML
UMLUML
UML
 
33 design patterns com Java
33 design patterns com Java33 design patterns com Java
33 design patterns com Java
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
 
Aula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoAula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniao
 

Similar a Diagramas de pacotes

hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 
Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteIlton Barbosa
 
Diagrama de classes1.1
Diagrama de classes1.1Diagrama de classes1.1
Diagrama de classes1.1Maikynata
 
TOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfTOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfFabio Apolinario
 
Alguns Helpers do Laravel 5.6
Alguns Helpers do Laravel 5.6Alguns Helpers do Laravel 5.6
Alguns Helpers do Laravel 5.6Danilo Pinotti
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Ilton Barbosa
 
Engenharia de Software I - Aula 10
Engenharia de Software I - Aula 10Engenharia de Software I - Aula 10
Engenharia de Software I - Aula 10Alessandro Almeida
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realRogério Cardoso
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidTiago Bencardino
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basicoAmadeo Santos
 

Similar a Diagramas de pacotes (20)

Componentes
ComponentesComponentes
Componentes
 
Trabalho de análise e projeto 2
Trabalho de análise e projeto 2Trabalho de análise e projeto 2
Trabalho de análise e projeto 2
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a Parte
 
Diagrama de classes1.1
Diagrama de classes1.1Diagrama de classes1.1
Diagrama de classes1.1
 
TOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfTOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdf
 
Alguns Helpers do Laravel 5.6
Alguns Helpers do Laravel 5.6Alguns Helpers do Laravel 5.6
Alguns Helpers do Laravel 5.6
 
Modelagem 21102006_2
Modelagem 21102006_2Modelagem 21102006_2
Modelagem 21102006_2
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5
 
Diagramadeclassesal
DiagramadeclassesalDiagramadeclassesal
Diagramadeclassesal
 
Engenharia de Software I - Aula 10
Engenharia de Software I - Aula 10Engenharia de Software I - Aula 10
Engenharia de Software I - Aula 10
 
Python Interface Gráfica Tkinter
Python Interface Gráfica TkinterPython Interface Gráfica Tkinter
Python Interface Gráfica Tkinter
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo real
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basico
 

Más de Portal_do_estudante_ADS (15)

Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
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 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