MINISTÉRIO DA CIÊNCIA E TECNOLOGIA
       INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS




                UML: Visão Geral
            Gilberto Ribeiro de Queiroz
                      gribeiro@dpi.inpe.br




Disponível em: http://www.dpi.inpe.br/~gribeiro/apresentacoes


                                                29 de Fevereiro de 2008.
Sumário

●   UML:
    –   Motivação
    –   Diagramas


●   Oficina:
    –   Criando diagramas UML com o JUDE Community 5
UML

●   Segundo a OMG, a Unified Modeling Language é
    uma linguagem visual para especificação,
    construção e documentação de artefatos de
    software


●   O propósito da modelagem (criação de
    esquemas UML) é, principalmente, para
    entender e não para documentar!


●   UML sozinha não resolve nada:
    –   Ela deve ser usada dentro de um processo de
        desenvolvimento!
Processo de Desenvolvimento de Sistemas

●   Estabelece uma abordagem para a construção,
    desenvolvimento e manutenção de software:
    –   Ex: UML + OpenUP (definição das fases de
        desenvolvimento e estabelecimento das regras do
        jogo!)
●   Atualmente metodologias            são    iterativas   e
    evolucionárias:
    –   Ciclo repetitivo, com fases de curta duração
    –   Fases contemplam todas as etapas do ciclo de
        desenvolvimento    (requisitos,   análise, projeto,
        implementação, teste e validação)
    –   As fases não tentam varrer todo o conhecimento do
        problema, isso é obtido ao longo do tempo
Por que / Para que usar UML?

●   Vamos usar os diagramas UML para:
    –   Ajudar a conceber nossas idéias, em relação ao
        sistema que estivermos projetando
         ●   Pensar antes de codificar!
    –   Apresentar nossas idéias ao grupo de forma que
        todos possam interagir e discutir um determinado
        ponto
         ●   Aumentar a participação e envolvimento do time!
    –   Documentar nossas idéias quando elas já estiverem
        bem consolidadas para que novos integrantes e
        novos   colaboradores   possam     acelerar    sua
        compreensão dos sistemas desenvolvidos pelo grupo
UML

●   Diagramas servem para capturar diferentes
    visões do sistema:
    –   Estrutural: estática
         ●   Diagrama de Classes
         ●   Diagrama de Objetos
         ●   Diagrama de Componentes
         ●   Diagrama de Implantação
    –   Comportamental: dinâmica
         ●   Diagrama de Casos de Uso
         ●   Diagrama de Seqüência
         ●   Diagrama de Atividades
         ●   Diagrama de Estados
         ●   Diagrama de Colaboração
Diagramas de Casos de Uso
UML: Diagrama de Casos de Uso

●   Composto por:
    –   Atores:
         ●   Pessoas que desempenham algum papel no sistema
         ●   Entidades externas, como outros sistemas, que interagem
             com o sistema sendo projetado
    –   Casos de Uso:
         ●   Processos ou funções que o sistema deve realizar de forma
             automática ou mesmo manual
         ●   Geralmente associadas a descrições textuais
    –   Relacionamentos:
         ●   Atores x Casos de Uso
         ●   Casos de Uso x Casos de Uso
UML: Diagrama de Casos de Uso
Descrição Casos Uso

       #05                                Gerenciar Contas Usuários
Quem incia         Ator Administrador
Pré-Condição       Nenhum outro administrador deve estar logado no sistema
                   1. O Administrador informa seu login/senha
                   2. O sistema verifica na ACL se o usuário possui privilégios especiais
                   3. Se o usuário não for um super-usuário interrompe processo
                   4. O sistema mostra a lista de usuários e grupos
Cenário 1:         5. O Administrador entra com a seguintes informações:
Criar Nova Conta      - nome do novo usuário, diretório home, senha inicial, privilégios,
                        data expiração da conta
                   6. O servidor valida os dados
                   7. As informações da nova conta são gravadas na ACL
Fluxo de Exceção
Diagrama de Atividades
Diagrama de Atividades

●   É usado para mostrar uma seqüência de
    atividades.


●   Mostra o fluxo de trabalho (workflow) a partir
    de um ponto inicial até um ponto final,
    detalhando as decisões do caminho tomado
    durante a execução das tarefas.


●   Este diagrama possui várias aplicações, desde a
    definição do fluxo básico de um programa até a
    definição de um processo com as suas tomadas
    de decisões e ações.
Diagrama de Atividades
                                   Ações



                                  Execução em Paralelo
  Estado Inicial



                                  Ponto de Tomada de Decisão


Ponto de Junção




                                                   Estado Final
Diagrama de Atividades

●   Podemos ainda ter partições:
    –   Elas ajudam a separar as ações em blocos
    –   Ex: ações realizadas pelo departamento A e ações
        realizadas pelo departamento B


●   Podemos ter o envio de objetos entre uma ação
    e outra:
    –   Ex: Pedido
Diagrama de Classes
Representação de uma Classe


                              Nome da classe

                             Compartimento dos Atributos


                             Compartimento dos Métodos




  Acessibilidade dos Atributos e Métodos:
  + atributo ou método público
  # atributo ou método protegido
  - atributo ou método privado
Representação de um Classe




          Atributos estáticos aparecem sublinhados
          Métodos Virtuais aparecem em itálico



          Atributos estáticos aparecem sublinhados
          Métodos estáticos aparecem sublinhados
Representação de uma Interface


           A classe TePolygon Implementa a Interface




               Interface Geometry:
               pode ter atributos e
               métodos como as classes
Associação




class Proprietario                   class Lote
{                                    {
   private:                             private:

        string nome;                         double area;
        vector<Lote*> lotes;                 Proprietario* proprietario_;

     public:                              public:

        string getNome();                    double getArea();

};                                   };
Generalização


                                 Superclasse




              Subclasses

A classe TeGeometry é abstrata: por isso o itálico
Agregação/Composição




                                    Agregação
Composição
Diagrama de Classes – Outras Considerações

●   UML dá o suporte para classes templates


●   Herança de classes templates               pode   ser
    expressa com “bind” de templates


●   Classes de associações:
    –   servem para qualificar os relacionamentos
Diagrama de Objetos
Diagrama de Objetos
Diagrama de Seqüência
Diagrama de Seqüência

●   Apresenta a ordem temporal das mensagens
    enviadas e recebidas pelos objetos


●   Mostram a troca de mensagens entre diversos
    objetos num cenário específico


●   Na minha visão (Gribeiro):
    –   Ajuda a descobrir onde colocar os métodos!
    –   Ajuda a verificar se a comunicação entre as classes
        está coerente!
Diagrama de Seqüência
Cenário: Editar Nova Feição Geográfica
Diagrama de Estados
Diagrama de Estado

●   Modela o      comportamento   de   um   objeto
    individual
●   Especifica as seqüências de estados pelos quais
    um objeto passa durante seu tempo de vida em
    resposta a eventos
Diagrama Estados
Diagrama de Estados

●   Choice:
    –   Usado quando temos um estado em que o objeto
        está escolhendo o próximo estado.
    –   Ex: Escolhendo Tipo de Mensagem:
         ●   HTTP => Entra no estado Criando Mensagem HTTP
         ●   Fax => Entra no estado Criando Mensagem FAX
         ●   SMS => Entra no estado Criando Mensagem SMS
●   Histórico de Estado:
    –   Ex: Máquina Lavar => quando religada precisa
        lembrar em qual estado estava.
Diagrama de Pacotes
UML: Packages

●   Organização Lógica dos Artefatos:
    –   Agrupar artefatos
    –   Organizar o modelo
Diagrama de Pacotes
 (Package Diagram)
Diagrama de Componentes
Diagrama de Componentes
Diagrama de Implantação
UML: Diagrama de Implantação

Apostila de uml

  • 1.
    MINISTÉRIO DA CIÊNCIAE TECNOLOGIA INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS UML: Visão Geral Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Disponível em: http://www.dpi.inpe.br/~gribeiro/apresentacoes 29 de Fevereiro de 2008.
  • 2.
    Sumário ● UML: – Motivação – Diagramas ● Oficina: – Criando diagramas UML com o JUDE Community 5
  • 3.
    UML ● Segundo a OMG, a Unified Modeling Language é uma linguagem visual para especificação, construção e documentação de artefatos de software ● O propósito da modelagem (criação de esquemas UML) é, principalmente, para entender e não para documentar! ● UML sozinha não resolve nada: – Ela deve ser usada dentro de um processo de desenvolvimento!
  • 4.
    Processo de Desenvolvimentode Sistemas ● Estabelece uma abordagem para a construção, desenvolvimento e manutenção de software: – Ex: UML + OpenUP (definição das fases de desenvolvimento e estabelecimento das regras do jogo!) ● Atualmente metodologias são iterativas e evolucionárias: – Ciclo repetitivo, com fases de curta duração – Fases contemplam todas as etapas do ciclo de desenvolvimento (requisitos, análise, projeto, implementação, teste e validação) – As fases não tentam varrer todo o conhecimento do problema, isso é obtido ao longo do tempo
  • 5.
    Por que /Para que usar UML? ● Vamos usar os diagramas UML para: – Ajudar a conceber nossas idéias, em relação ao sistema que estivermos projetando ● Pensar antes de codificar! – Apresentar nossas idéias ao grupo de forma que todos possam interagir e discutir um determinado ponto ● Aumentar a participação e envolvimento do time! – Documentar nossas idéias quando elas já estiverem bem consolidadas para que novos integrantes e novos colaboradores possam acelerar sua compreensão dos sistemas desenvolvidos pelo grupo
  • 6.
    UML ● Diagramas servem para capturar diferentes visões do sistema: – Estrutural: estática ● Diagrama de Classes ● Diagrama de Objetos ● Diagrama de Componentes ● Diagrama de Implantação – Comportamental: dinâmica ● Diagrama de Casos de Uso ● Diagrama de Seqüência ● Diagrama de Atividades ● Diagrama de Estados ● Diagrama de Colaboração
  • 7.
  • 8.
    UML: Diagrama deCasos de Uso ● Composto por: – Atores: ● Pessoas que desempenham algum papel no sistema ● Entidades externas, como outros sistemas, que interagem com o sistema sendo projetado – Casos de Uso: ● Processos ou funções que o sistema deve realizar de forma automática ou mesmo manual ● Geralmente associadas a descrições textuais – Relacionamentos: ● Atores x Casos de Uso ● Casos de Uso x Casos de Uso
  • 9.
    UML: Diagrama deCasos de Uso
  • 10.
    Descrição Casos Uso #05 Gerenciar Contas Usuários Quem incia Ator Administrador Pré-Condição Nenhum outro administrador deve estar logado no sistema 1. O Administrador informa seu login/senha 2. O sistema verifica na ACL se o usuário possui privilégios especiais 3. Se o usuário não for um super-usuário interrompe processo 4. O sistema mostra a lista de usuários e grupos Cenário 1: 5. O Administrador entra com a seguintes informações: Criar Nova Conta - nome do novo usuário, diretório home, senha inicial, privilégios, data expiração da conta 6. O servidor valida os dados 7. As informações da nova conta são gravadas na ACL Fluxo de Exceção
  • 11.
  • 12.
    Diagrama de Atividades ● É usado para mostrar uma seqüência de atividades. ● Mostra o fluxo de trabalho (workflow) a partir de um ponto inicial até um ponto final, detalhando as decisões do caminho tomado durante a execução das tarefas. ● Este diagrama possui várias aplicações, desde a definição do fluxo básico de um programa até a definição de um processo com as suas tomadas de decisões e ações.
  • 13.
    Diagrama de Atividades Ações Execução em Paralelo Estado Inicial Ponto de Tomada de Decisão Ponto de Junção Estado Final
  • 14.
    Diagrama de Atividades ● Podemos ainda ter partições: – Elas ajudam a separar as ações em blocos – Ex: ações realizadas pelo departamento A e ações realizadas pelo departamento B ● Podemos ter o envio de objetos entre uma ação e outra: – Ex: Pedido
  • 15.
  • 16.
    Representação de umaClasse Nome da classe Compartimento dos Atributos Compartimento dos Métodos Acessibilidade dos Atributos e Métodos: + atributo ou método público # atributo ou método protegido - atributo ou método privado
  • 17.
    Representação de umClasse Atributos estáticos aparecem sublinhados Métodos Virtuais aparecem em itálico Atributos estáticos aparecem sublinhados Métodos estáticos aparecem sublinhados
  • 18.
    Representação de umaInterface A classe TePolygon Implementa a Interface Interface Geometry: pode ter atributos e métodos como as classes
  • 19.
    Associação class Proprietario class Lote { { private: private: string nome; double area; vector<Lote*> lotes; Proprietario* proprietario_; public: public: string getNome(); double getArea(); }; };
  • 20.
    Generalização Superclasse Subclasses A classe TeGeometry é abstrata: por isso o itálico
  • 21.
    Agregação/Composição Agregação Composição
  • 22.
    Diagrama de Classes– Outras Considerações ● UML dá o suporte para classes templates ● Herança de classes templates pode ser expressa com “bind” de templates ● Classes de associações: – servem para qualificar os relacionamentos
  • 23.
  • 24.
  • 25.
  • 26.
    Diagrama de Seqüência ● Apresenta a ordem temporal das mensagens enviadas e recebidas pelos objetos ● Mostram a troca de mensagens entre diversos objetos num cenário específico ● Na minha visão (Gribeiro): – Ajuda a descobrir onde colocar os métodos! – Ajuda a verificar se a comunicação entre as classes está coerente!
  • 27.
    Diagrama de Seqüência Cenário:Editar Nova Feição Geográfica
  • 28.
  • 29.
    Diagrama de Estado ● Modela o comportamento de um objeto individual ● Especifica as seqüências de estados pelos quais um objeto passa durante seu tempo de vida em resposta a eventos
  • 30.
  • 31.
    Diagrama de Estados ● Choice: – Usado quando temos um estado em que o objeto está escolhendo o próximo estado. – Ex: Escolhendo Tipo de Mensagem: ● HTTP => Entra no estado Criando Mensagem HTTP ● Fax => Entra no estado Criando Mensagem FAX ● SMS => Entra no estado Criando Mensagem SMS ● Histórico de Estado: – Ex: Máquina Lavar => quando religada precisa lembrar em qual estado estava.
  • 32.
  • 33.
    UML: Packages ● Organização Lógica dos Artefatos: – Agrupar artefatos – Organizar o modelo
  • 34.
    Diagrama de Pacotes (Package Diagram)
  • 35.
  • 36.
  • 37.
  • 38.
    UML: Diagrama deImplantação