Linguagem de Modelagem Unificada
 UML - Linguagem de
                  UML
 Modelagem Unificada




      Autor: Rildo F. Santos (rildosan@uol.com.br)




             © Copyright Rildo Ferreira, e-tecnologia.com, 2009
Linguagem de Modelagem Unificada
                                                                          UML
Conteúdo

  Parte 1:
  - Introdução a Orientação a Objeto

  Parte 2:
  - Introdução a UML

  Parte 3:
  - Diagramas da UML

  Parte 4:
  - Estudo de Caso
  - Exercício

  Apêndices:
  - Notação UML
  - UML 2.0




                     © Copyright Rildo Ferreira, e-tecnologia.com, 2009         2
Linguagem de Modelagem Unificada
                                                                            UML
Palavra inicial


 A UML é padrão de mercado (www.omg.org/uml) que representa as
 melhores práticas da engenharia de software em modelagem de
 software;

 A UML permite que desenvolvedores visualizem o software através
 modelos e de um conjunto de diagramas;

 A modelagem visual facilita o entendimento e a comunicação do 'quê'
 precisa ser feito e 'como' deve ser feito o software;

 Os diagramas oferecem a padronização, que é necessária quando
 trabalhamos com grandes equipes de desenvolvedores ou com
 fornecedores;

 Neste treinamento apresentaremos todos os diagramas, elementos e
 a semântica da Linguagem de Modelagem Unificada;

 O treinamento:
 Começa sendo demonstrado uma introdução a orientação a objetos
 com objetivo de fazer um alinhamento de conhecimento da Orientação
 a Objetos.
 Depois é apresentado a UML, semântica e todos os diagramas (da
 versão 1.5)
 Também será exibido em estudo de caso com propósito de mostrar
 como é feito a modelagem visual de software com UML.

 Será utilizada uma ferramenta de modelagem visual para ajudar o
 aprendizado da UML.

                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009         3
Linguagem de Modelagem Unificada
                                                                UML




        Introdução a Orientação
        a Objetos
        Objetivo desta parte:

        É apresentar e discutir uma
        introdução a Linguagem de
        Modelagem Unificada versão 1.5.

           © Copyright Rildo Ferreira, e-tecnologia.com, 2009         4
Linguagem de Modelagem Unificada
                                                                                   UML
Orientado a Objetos

    Introdução a Orientação a Objetos
   Os sistemas projetados atualmente são maiores, mais complexos e sujeitos a constantes
   alterações e adaptações aos diversos ambientes computacionais. Através do
   encapsulamento de informações, a reutilização de esforços empregados em projetos
   anteriores e a modificação do sistema se tornaram mais fáceis.

   Orientação a Objetos:
   Um problema sempre define ou está contido em um domínio (sujeito a leis da física, da
   matemática, do direito, do mercado financeiro e por ai a fora).
   Assim a primeira resposta a buscar no desenvolvimento de um sistema em computação é
   a construção de um modelo que coloque em termos de algoritmos o domínio da
   aplicação. Pensando num modelo de objetos, numa abordagem de alto nível de abstração
   há três fases:


                                                  Análise
         Metodologia
                                                  Orientação a Objetos
                                                 Análise: Discute
                                                 o porque, o que
                                                 (com quais informações
                                                 e para quais serviços) se
                                                 deve fazer


       Projeto e Modelagem                        UML
                                                 Projeto: O Como fazer, de
                                                 forma a ficar manutenível;


       Implementação                              Linguagem Java
                                                 O mapeamento em
                                                 linguagem processável
                                                 pelo computador

                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009           5
Linguagem de Modelagem Unificada
                                                                                   UML
Orientado a Objetos

    Introdução a Orientação a Objetos

   O Método Orientação a Objetos

   A metodologia Orientação a Objetos é baseada em noções, consideradas intuitivas ao
   ser humano, tais como: objetos e atributos, classes e membros, estruturas e
   componentes, ação e reação.

   Os métodos de desenvolvimento de software anteriores ao surgimento desse paradigma
   organizam a especificação de um sistema de acordo com suas funções ou com os
   dados manipulados. Geralmente, esses métodos apresentam dificuldades na transição
   da representação do sistema em uma fase para outra do processo de desenvolvimento
   (da Análise para o Projeto e, do Projeto para a Implementação).

   Em um sistema orientado a objetos, os dados e todas as operações (funções), que
   manipulam esses dados, são agrupados em uma única estrutura: os objetos. Desde o
   início do desenvolvimento desses sistemas e, em todas as suas fases, o analista
   trabalha com o mesmo elemento de abstração, os objetos.




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         6
Linguagem de Modelagem Unificada
                                                                                     UML
Orientado a Objetos

    Classe


    O que é uma Classes?
    “Uma classe descreve um conjunto de objetos com propriedades e comportamentos
    semelhantes e com relacionamentos comuns com outros objetos”


    As classes são as partes mais importantes de qualquer sistema orientada a objetos.
    Usamos as classes para capturar o vocabulário do sistema que está em
    desenvolvimento. Essas classes podem incluir abstrações que são parte do domínio do
    problema, assim como as classes que fazem uma implementação. Podemos usar ainda
    as classes para representar itens de software, de hardware e até itens que sejam
    somente conceituais.

    Exemplo:
    A classe Pessoa deverá ter atributos e métodos comuns


                                                                Nome da Classe
                                 Pessoa
                              Nome
                              Idade                                 Atributos
                              GetNome
                              GetIdade                              Métodos



   Os nome deverão ser identificadores únicos em conjunto de classes, este devem ser
   substantivos. Exemplo: Produto.

   Tipos de Classes:
          • Classe Concreta
          • Classe Abstrata




                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009         7
Linguagem de Modelagem Unificada
                                                                                   UML
Orientado a Objetos

     Classe
    Exemplo:
    A classe Pessoa. Classe concreta.

      public class Pessoa {                               Exemplo de diagrama de classe
                                                       usando Rational Rose (notação Unified)
             //Atributos
             private String nome;
             private int idade;
           //métodos
           public String getNome(){
                   return nome; }

            public void setNome(String
                        nome){
           this.nome = nome; }

           public int getIdade(){
                       return idade; }

              public void setIdade(int
                              idade){
                this.idade = idade; }
      }




     Classe Concreta:
     Uma classe que tem assinatura e a implementação de métodos.




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009                8
Linguagem de Modelagem Unificada
                                                                                   UML
Orientado a Objetos

     Objetos

    O que são Objetos ?
    São qualquer coisa na natureza que possua propriedades (características) e
    comportamentos (operações).
    Exemplo: uma pessoa, uma cão e etc

    Orientação a Objetos:
    O termo orientação a objetos significa organizar o mundo real como uma coleção de
    objetos que incorporam estrutura de dados e um conjunto de operações que
    manipulam estes dados.

    Estrutura de um objeto
    Objetos combinam propriedades (atributos) e comportamentos (operações ou
    métodos).


     Exemplos de Objetos:

          Objeto: Pessoa           Propriedades                         Comportamentos
                                                                        Andar
                                   Bonita
                                                                        Correr
                                   Jovem
                                                                        Falar
                                   Inteligente
                                                                        Chorar
                                                                        Dançar




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         9
Linguagem de Modelagem Unificada
                                                                                    UML
Orientado a Objetos

     Métodos

     Métodos são os comportamentos ou as funções do objeto. A declaração é feita da
     seguinte forma:

     < modificador > < tipo de retorno > < nome > ( < lista de argumentos > )
     < bloco >

     < modificador > -> segmento que possui os diferentes tipos de modificações
     incluíndo public, protected, private e default (neste caso não precisamos declarar o
     modificador).
     < tipo de retorno > -> indica o tipo de retorno do método.
     < nome > -> nome que identifica o método.
     < lista de argumentos > -> todos os valores que serão passados como
     argumentos.

     Exemplos: public void somaDias (int dias) { }
               private int somaMes(int mês) { }
               protected String getNome() { }
               int getAge(double id) { }


                   public class CalculaData {
                       private int day, month, year;
                       public float calcDays(int age )
                       {
                                                                                    método
                         return 365.25F * age;
                       }
                   }




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009            10
Linguagem de Modelagem Unificada
                                                                                    UML
Orientado a Objetos

    Atributos e variáveis (Linguagem Java)
    Os atributos são pertencentes a classe, eles podem ser do tipo primitivo ou
    referência (objetos), os seus modificadores podem ser: public, private, protected
    ou default.
    O ciclo de vida destes atributos estão vinculados ao ciclo de vida da classe.
    Variáveis Locais:
    São definidas dentro dos métodos. Elas têm o ciclo de vida vinculado ao ciclo do
    método, também são chamadas de variáveis temporárias


                   public class Disciplina {
                        private int cargaHoraria;
                                                                                   Atributos
                        private String nome;

                         public Disciplina(String nome, int
   Modificador                    cargaHoraria){
                                  this.nome = nome;
                                  this.cargaHoraria =
                                 calcCargaHoraria(cargaHoraria);
                         }
                        public String getNome(){
                               return nome;
                         }
                        public int getCargaHoraria(){
                               return cargaHoraria;
                         }
                         public int calcCargaHoraria(int
                                     qdeHoras) {
                           int horasPlanejamento = (int)                           Variáveis
                               ( qdeHoras * 0.1);                                  temporárias
                            return cargaHoraria =
                             horasPlanejamento + qdeHoras;
                        }
                   }


                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009                 11
Linguagem de Modelagem Unificada
                                                                                   UML
Orientado a Objetos

    Abstração de Dados:

   Para discutirmos sobre classes abstratas é necessário falarmos sobre a abstração de
   dados.

    O que é abstração?
    Podemos dizer abstração é generalização.
    Qual é a função da abstração ?
    A função da abstração é capturar as propriedades e os comportamentos essenciais,
    como se fosse uma fatoração, desta forma determina-se o que é importante e o que
    não é.




                   Aeronave                                            Mamífero



        Caça       Helicóptero Passageiros               Vaca               Urso    Cavalo


   As classes Aeronave e Mamífero neste caso são abstratas e ambas representam um
   domínio.




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009             12
Linguagem de Modelagem Unificada
                                                                                     UML
Orientado a Objetos

    Abstração de Dados:

    Classes Abstratas

    Uma classe abstrata é uma classe que:
    • Provê organização
    • Não possui “instances”
    • Possui uma ou mais operações (métodos) abstratas

                                                                    Classe Abstrata
                                                      Pessoa
                                                   getNome()


                                     Pessoa                               Pessoa
                                     Física                              Jurídica
                                   getNome()                            getNome()
           Classe concreta

   Uma operação abstrata só determina a existência de um comportamento não definindo
   uma implementação. Classes Abstratas - Exemplo:


                                                                      Classe Abstrata
                                                 Funcionário



                                   Analista                          Programador


              Classe concreta




                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009         13
Linguagem de Modelagem Unificada
                                                                                    UML
Orientado a Objetos
   Relacionamento
  Ao construir as abstrações, descobrimos que são poucas as classes que trabalham
  sozinhas. Em vez disso, a maioria das classes colaboram com outras classes de várias
  maneiras.
  Portanto, quando estamos modelando, devemos identificar as classes, atributos, métodos e
  relacionamentos.
  Existem alguns tipos principais de relacionamentos entre classes e objetos:
         • Herança
         • Agregação
  Veja a definição de relacionamento:

  Um relacionamento é a conexão entre itens. É representado graficamente como um
  caminho, que tem tipos diferentes de linhas para distinguir os tipos de
  relacionamentos.

  Exemplo: Hierarquia de Classes

                         SuperClasse
                                             Pessoa


 SubClasses
                 Terceiro                   Aluno                       Funcionário



   Professor                 Pessoal                                                  Pessoal
                                                          Professor
   Autônomo                 Operacional                                             Administrativo

  Relacionamento:
  1 - Pessoa é a SuperClasse de Terceiro, Aluno e de Funcionário,
  estas são subclasse de Pessoa.
  2 - Terceiro e Funcionário são SuperClasse de Professor e Pessoal Administrativo e de
  Professor Autônomo e Pessoal Operacional respectivamente.
  E estas são subclasse de Terceiro e Funcionário.




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009                    14
Linguagem de Modelagem Unificada
                                                                                   UML
Orientado a Objetos

     Herança
    Herança é o mecanismo pelo qual elementos mais específicos incorporam a estrutura e
    comportamento de elementos mais gerais,

    Uma classe derivada herda a estrutura de dados e métodos de sua
    classe “base”, mas pode seletivamente:
    • adicionar novos métodos
    • estender a estrutura de dados
    • redefinir a implementação de métodos já existentes

    Uma classe “pai” proporciona a funcionalidade que é comum a todas as suas classes
    derivadas, filhas, enquanto que uma classe derivada proporciona a funcionalidade
    adicional que especializa seu comportamento.

    Exemplo:


                                        Curso
                                     Universitário
                               extends

                        Graduação                      Pós-Graduação

                                                      extends


                                    Especialização                           Extensão


                                    Hierarquia de Classes


      Podemos dizer que Graduação é tipo de Curso Universitário, assim como Curso de
      Especialização ou de Extensão.




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009          15
Linguagem de Modelagem Unificada
                                                                                                    UML
Orientado a Objetos

        Herança

        Exemplo: Implementação- Pessoa, Aluno, Terceiro, Funcionário

                                       public abstract class Pessoa {
                                            protected String idPessoa;
                                            protected int idade;
                                            protected String nome;
                                           public Pessoa(String nome)
                                             {
                                               this.nome = nome;
                                            }
                                          public abstract String getNome();
                                          public void setidPessoa()
                                           { }
                                           public abstract int getIdade();
                                         public void setIdade(int idade)
                                          {}
                                       }




 public class Terceiro extends Pessoa{      public class Aluno extends Pessoa{   public class Funcionario extends Pessoa{
   private int codigoTerceiro;               public Aluno(String nome)             private int codigofuncionario;
   public Terceiro(String nome)                {                                    public Funcionario(String nome)
     {                                           super(nome);                        {
        super(nome);                            }                                        super(nome);
      }                                      public int getIdade()                    }
   public int getIdade()                       {                                      public int getIdade()
    {                                            return 0;                            {
       return 0;                               }                                        return 0;
    }                                        public String getNome()                  }
   public String getNome()                    {                                       public String getNome()
   {                                              return "";                          {
        return "";                             };                                       return "";
   };                                      }                                          };
 }                                                                               }




                                                                                                            Pessoal
                                                                                        Professor
                                                                                                          Administrativo
       Professor          Pessoal
       Autônomo          Operacional




                                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009                              16
Linguagem de Modelagem Unificada
                                                                                           UML
Orientado a Objetos

     Herança

    Exemplo de Herança: Implementação: ProfessorAutonomo, PessoalOperacional,
    Professor e Pessoal Administrativo

                                                   Pessoa


                                   Terceiro        Aluno        Funcionário




         public class ProfessorAutonomo                      public class Professor
               extends Terceiro{                                   extends Funcionario{
                public ProfessorAutonomo(                           public Professor(
                      String nome)                                        String nome)
                      {                                                   {
                        super(nome);                                        super(nome);
                      }                                                   }
         }                                                   }


         public class PessoalOperacional
                                                             public class PessoalAdministrativo
               extends Terceiro{
                                                                   extends Funcionario{
                public PessoalOperacional(
                                                                    public PessoalAdministrativo(
                      String nome)
                                                                          String nome)
                      {
                                                                          {
                        super(nome);
                                                                            super(nome);
                      }
                                                                          }
         }
                                                             }




                                   © Copyright Rildo Ferreira, e-tecnologia.com, 2009               17
Linguagem de Modelagem Unificada
                                                                                        UML
Orientado a Objetos

   Herança Múltipla
  A herança múltipla é quando uma classe tem mais que uma Superclasse associada e
  que herde as características de todas elas. Veja a figura abaixo:

    Superclasse
                   <<interface>>                                          Superclasse
                     Mamífero                             Pessoa




                                     Pessoa Física                    Pessoa Jurídica

    Relacionamento:
    Pessoa Física é tipo de pessoa, mas também é mamífero.

   Na linguagem Java:
   A Herança múltipla é somente permitida por contrato, neste caso a Mamífero é uma
   Interface, podemos dizer que é tipo especial de classe, que não pode
   ter métodos implementados, apenas as assinaturas.

   <<interface>>
     Mamífero

  Interface:
  O que é interface ?
  Interface é um contrato entre o cliente, que pode ser classe concreta ou abstrata, e a
  interface. Este contrato é garantia que o métodos assinados na interface serão
  implementados na classe cliente.

  Nota: Na interface também podemos declarar constantes (public static final).

                                           interface Product
                                           {
        Exemplo de Interface                 String getName ();
                                             double getCost ();
                                           }



                                   © Copyright Rildo Ferreira, e-tecnologia.com, 2009         18
Linguagem de Modelagem Unificada
                                                                                                  UML
Orientado a Objetos

     Herança Múltipla
     Exemplo: Implementação da classe Pessoa, PessoaFisica e PessoaJuridica e a
     interface Mamifero


                                                  public abstract class Pessoa {
                                                       protected String idPessoa;
                                                       protected int idade;
                                                       protected String nome;

                                                      public Pessoa(String nome)
                                                        {
                                                          this.nome = nome;
                                                       }
                                                      public abstract String getNome();
 public interface Mamifero {
                                                      public abstract int getIdade();
        final int qdeOlhos=2;
                                                      public void setIdade(int idade){ }
                                                  }
        public int getQdePernas();
 }


                                                                                                 extends

 implements                     extends                               public class PessoaJuridica1 extends Pessoa
                                                                       {
      public class PessoaFisica1 extends Pessoa                           public PessoaJuridica1(String nome)
              implements Mamifero {                                       {
             public PessoaFisica (String nome)                               super(nome);
             {                                                            }
               super(nome);                                               public int getIdade()
             }                                                            {
           public int getQdePernas(){                                       return 0;
            return 2; }                                                   }
          public String getNome(){                                        public String getNome()
            return “”; }                                                  {
          public int getIdade(){                                            return "";
           return 0; }                                                    };
      }                                                               }



      Exercício:
      1 - Podemos implementar a herança múltipla na Classe Pessoa? Por que ?
      2 - Por que somos obrigado a assinar ou implementar os métodos da Interface Mamifero
      na classe PessoaFisica



                                          © Copyright Rildo Ferreira, e-tecnologia.com, 2009                        19
Linguagem de Modelagem Unificada
                                                                                      UML
Orientado a Objetos

   Encapsulamento
   É uma proteção adicional dos dados do objeto de possíveis modificações impróprias,
   forçando o acesso a um nível mais baixo para tratamento do dados.

                           Operações/métodos/interface          Classe Empregado e método
                                    pública                     getSalario




                    Dados/Atributos/propriedades
                              privada                           O atributo salario




         public class Empregado {                        O atributo salario somente poderá ter
            private double salario;
            private double salario;                      um valor atribuído ou alterado,
                                                         através de método público.
             public Empregado(){
                    salario=0.00;
             }

             public double getSalario(){                    Através do método getSalario, que
                   return this.salario;                     tem modificador public, podemos
              }                                             manipular ou recuperar o valor do
         }                                                  atributo salario.



     Encapsulamento (“data hiding”)
     Encapsulamento é definido como uma técnica para minimizar dependências entre
     “módulos” através da definição de interfaces externas. Também conhecido como:
     O fenômeno da “caixa preta”




                                 © Copyright Rildo Ferreira, e-tecnologia.com, 2009              20
Linguagem de Modelagem Unificada
                                                                                      UML
Orientado a Objetos
   Encapsulamento
   A interface (pública) de um objeto declara todas as operações permitidas (métodos)

                             public class Empregado {
                                private double salario;
                                private double salario;

                                  public Empregado(){
                                         salario=0.00;
                                  }

                                 public double getSalario(){
                                       return this.salario;
                                  }
                             }




                      public class Gerente1 extends Empregado {
                      private double bonus = .15;
                          public double getSalario(){
                                  //referência ao método getSalario
                                 return super.getSalario() +
                               (super.getSalario()*this.bonus);
                                 }
                      }


   Todo o acesso aos dados do objeto é feito através da chamada a uma operação (método)
   da sua interface.


   Encapsulamento - Benefícios
   - Segurança:
          Protege os atributos dos objetos de terem seus valores corrompidos por outros
          objetos.
   - Independência:
          “Escondendo” seus atributos, um objeto protege outros objetos de complicações de
          dependência de sua estrutura interna



                                 © Copyright Rildo Ferreira, e-tecnologia.com, 2009         21
Linguagem de Modelagem Unificada
                                                                                     UML
Orientado a Objetos


   Polimorfismo
   Definição:
   “Polimorfismo” é uma operação que pode assumir múltiplas formas, a propriedade
   segundo o qual uma operação pode comportar-se diferentemente em classes diferentes”
   (Rumbaugh)
   O polimorfismo é o responsável pela extensibilidade em programação orientada a objetos.

                                 overloading


    Polimorfismo


                                  overriding


  Overloading:
  Possibilidade de reúso do nome do método para diferentes implementações, em tempo de
  execução, a aplicação, escolherá o método adequado para cada chamada, veja o
  exemplo.

                   TesteSoma                                             Soma
                                                               somar(int a, int b)
                                                               somar(float a, float b)
                                                               somar(char a, char b)
                                                               somar(long a, long b))



   Para cada tipo de dados existe um método, o reúso do nome do método é permitido,
   entretanto a lista de argumentos deve ser diferente, veja o exemplo acima: o método
   somar é definido várias vezes, entretanto com a lista de argumentos diferente, desta
   forma evitaremos problemas como ambigüidade.




                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009           22
Linguagem de Modelagem Unificada
                                                                                           UML
Orientado a Objetos

  Polimorfismo

 Overrinding - Exemplo:
                                                 Empregado
                                                setSalario()
                                                getSalario()


                        Engenheiro                  Gerente                   Secretária
                       getSalario()              getSalario()               getSalario()



                                                   Diretor
                                                 getSalario()

      O método setSalario é herdado da Superclasse (Empregado), entretanto para cada cargo
      (tipo de empregado) ele tem uma implementação diferente. Por exemplo:
      - Para Engenheiro e Secretária salário = (Dias Trabalhados x Valor hora)
      - Para Gerente salário = (Dias Trabalhados x Valor hora) + Bônus
      - Para Diretor salário = (Dias Trabalhados x Valor hora) + Bônus + Participação nos
      lucros.
  public class EmpregadoExemplo {
     private double salario;

        public void setSalario(int diastrabalhados,
                              double valorhora ){
            this.salario = diastrabalhados *
                           valorhora * 8;           public class Engenheiro extends
          }                                         EmpregadoExemplo {
        public double getSalario(){                 public static void main(String args[])
            return this.salario;                      {
        }                                               Engenheiro eng = new Engenheiro();
  }                                                     eng.setSalario(22, 35.00);
                                                        System.out.println(eng.getSalario());
                                                       }
                                                    }



                                      © Copyright Rildo Ferreira, e-tecnologia.com, 2009         23
Linguagem de Modelagem Unificada
                                                                                     UML
Orientado a Objetos

   Polimorfismo
  Overrinding
  Uma subclasse pode mudar o comportamento herdado da Superclasse, ou seja, um método
  herdado poderá ser alterado. Veja o exemplo abaixo:


                                        Conta Bancária

                                         getSaldo()




                  Conta Corrente       Conta Poupança             Investimentos

                   getSaldo()            getSaldo()               getSaldo()



  O método getSaldo é herdado da Superclasse (Conta Bancária), entretanto para cada
  tipo de Conta ele tem uma implementação diferente. Por exemplo:
  - Para apurar o saldo da Conta Corrente saldo atual = (soma dos depósitos + saldo
  anterior) - saques
  Para a conta poupança seria saldo atual = (soma dos depósitos + saldo anterior + juros)
  - saques
  Para a conta de investimentos seria saldo atual = (soma dos aplicações + saldo anterior
  + juros) - resgates - ir


  Exercício:
  Faça a implementação das classes acima.




                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009          24
Linguagem de Modelagem Unificada
                                                               UML




        Introdução a UML
          © Copyright Rildo Ferreira, e-tecnologia.com, 2009         25
Linguagem de Modelagem Unificada
                                                                               UML
Introdução a UML
  Visão 4 + 1




                       Visão                            Visão da
                        de                           Implementação
                      Projeto

         Funcionalidade                                                        Codificação
         Vocabulário                                                            Montagem
                             Visão de
                              Caso de
                                Uso
                     Visão do         Visão da
                     Processo       Implantação


         Desempenho                                               Topologia do Sistema
         Escalabilidade                                                    Distribuição
         Throughput                                                          Instalação

                   Conceitual                                         Físico



                          © Copyright Rildo Ferreira, e-tecnologia.com, 2009                 26
Linguagem de Modelagem Unificada
                                                                                   UML
Introdução a UML
  Visão 4 + 1

      Visão de Caso
      de Uso

  •      A visão do caso de uso abrange os casos de usos que descrevem o
         comportamento do sistema conforme é visto pelos seus usuários
         finais, analista e pessoal de teste. Essa visão não especifica realmente
         a organização do sistema de softwasre. Porém , ela existe para
         especificar as forças que determinam a forma da arquitetura do
         Sistema. Com a UML, os aspectos estáticos dessa visão são
         representados em diagramas de caso de uso, enquanto os aspectos
         dinâmicos são representados em diagrama de interação., diagrama de
         gráfico de estados e diagrama de atividades


  Visão de Processo

  •      A visão de projeto de um sistema abrange as classes e colaborações
         que formam o vocabulário do problema e de sua solução. Essa
         perpectiva proporciona principalmente um suporte para os requisitos
         funcionais do sistema, ou seja, os serviços que o sistema deverá
         fornecer a seus usuários finais.
         Com a UML, os aspectos estáticos dessa visão são captados em
         diagramas de classes e de objetos; os aspectos dinâmicos são
         captados em diagramas de interações, de estados e de atividades.


                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         27
Linguagem de Modelagem Unificada
                                                                                   UML
Introdução a UML
  Visão 4 + 1

  Visão de Processo


  •    A visão do processo abrange os threads e os processos que formam
       os mecanismos de concorrência e de sincronização do sistema. Essa
       visão tem com objetivo principal tratar questões de desempenho, à
       escalabilidade e ao throughput do sistema. Com a UML, os aspectos
       estáticos e dinâmicos dessa visão são capturados nos mesmos tipos
       de diagrama da visão do projeto, mas o foco voltado para as classes
       ativas que repesentam esses threads e processos.


  Threads = Linhas de execução em paralelos, estas linhs podem ser programas ou parte.


  Visão de Implementação


  •    A visão de implementação de um sistema abrange os componentes e
       os arquivos utilizados para a montagem e fornecimento do sistema
       físico. Essa visão envolve principalmente o gerenciamento da
       configuração das versões do sistema, compostas por componentes e
       arquivos de alguma maneira independentes, que podem ser reunidos
       de diferentes formas para a produção de um sistema executável.




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         28
Linguagem de Modelagem Unificada
                                                                                UML
Introdução a UML
  Visão 4 + 1

  Visão de Implantação


  •    A visão do implantação de um sistema abrange os nós que formam a
       topologia de hardware em que o sistema é executado. Essa visão
       direciona principalmente a distribuição, o fornecimento e a instalação
       das partes que constituem o sistema físico. Com a UML, os aspectos
       estáticos dessa visão são representados em diagrmas de implantação;
       os aspectos dinâmicos são capturados em diagramas de interações,
       de gráfico de estados e diagramas de atividades.



 Cada uma dessas visões pode ser considerada isoladamente, permitindo
 que diferentes participantes orientem seu foco para os aspectos da
 arquitetura do sistema que mais lhes interessem. Essas cincos visões
 também interagem entre sí, por exemplo:
 Os nós na visão de implantação contêm componentes da visão de
 implementação que, por sua vez, representa a realização física de classes,
 interfaces, colaborações e classes ativas provenientes das visões de projeto
 e de processo.




                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009         29
Linguagem de Modelagem Unificada
                                                                            UML
Introdução a UML

   Desenvolvimento de Software

   Estrutura:

                                          Análise de
                                          Requisitos



    Comportamento                        Casos de Uso
    externo

    Comportamento                            Seqüência
                                                                        Colaboração
    interno                                  (eventos)

    Estrutura
                                                                            Classes


    Implementação
                                                                        Distribuição




                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009              30
Linguagem de Modelagem Unificada
                                                                               UML
Introdução a UML




  Produtos dos Workflows de Requisitos e de Análise:

                                   Documento de Visão
            Requisitos
                                   Especificação de Requisitos (Casos de Uso)


                                   Modelo Conceitual ou Modelo de Domínio
              Análise
                                  Vocabulário do Sistema



            Arquitetura           Modelo de Arquitetura Inicial


                          © Copyright Rildo Ferreira, e-tecnologia.com, 2009         31
Linguagem de Modelagem Unificada
                                                                              UML
Introdução a UML




  Produtos dos Workflows de Projeto


                                 Diagrama de Seqüência / Colaboração


                                  Diagrama de Atividades*
               Projeto
                                 Diagrama de Estados*


                                 Diagrama de Classes (Refinado)


                                                                                    * se necessário

                         © Copyright Rildo Ferreira, e-tecnologia.com, 2009                    32
Linguagem de Modelagem Unificada
                                                                              UML
Introdução a UML




  Produtos dos Workflows de Arquitetura


                                 Diagrama de Componentes

                                 Diagrama de Distribuição(Deployment)
           Arquitetura

                                 Modelo de Arquitetura




                                                                                * se necessário

                         © Copyright Rildo Ferreira, e-tecnologia.com, 2009                   33
Linguagem de Modelagem Unificada
                                                                                  UML
Introdução a UML

   Por que fazer a modelagem?

   Com a modelagem, alcançamos alguns objetivos:

   1 - Os modelos ajudam a visualizar o sistema como ele é ou como desejamos que seja
   2 - Os modelos permitem especificar a estrutura ou o comportamento de um sistema
   3 - Os modelos proporcionam um guia para a construção do sistema
   4 - Os modelos documenta o sistema

      Construímos modelos para compreender melhor que estamos desenvolvendo


   O Que é Modelagem Visual?




    Modelagem Visual significa modelar com a utilização de notações padrão.
    Precisamos adotar uma ferramenta, uma notação e linguagem para tal empreitada.
    UML (Linguagem de Modelagem Unificada) é a linguagem de modelagem é das
    mais populares do momento. Mas podemos optar por usar OMT, por exemplo.




      “A Modelagem captura as partes essenciais do sistema.” (Rumbaugh)




                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009         34
Linguagem de Modelagem Unificada
                                                                            UML
Introdução a UML

   O Que é Modelagem Visual?

   Modelagem visual significa modelar com a utilização de notações
   padrão. Precisamos adotar uma ferramenta, uma notação e
   linguagem para tal empreitada. UML (Linguagem de Modelagem
   Unificada) é a linguagem de modelagem é das mais populares do
   momento.

    A UML (Linguagem de Modelagem
    Unificado) é padrão mantido pelo
    OMG (www.omg.org/uml).




                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009         35
Linguagem de Modelagem Unificada
                                                                                UML
Introdução a UML

   O Quê é a UML?
   A UML (Linguagem de Modelagem Unificada) é uma linguagem-padrão
   para elaboração da estrutura de projetos de software. A UML poderá ser
   usada para:
   •   Visualização
   •   Especificação
   •   Construção de modelos e diagramas
   •   Documentação.

   A UML é adequada para a modelagem de sistemas, cuja a abrangência
   poderá incluir sistemas de informação corporativos a serem distribuídos a
   Aplicação baseadas em Web e até sistemas complexos embutidos de
   tempo real.

   A UML é apenas uma linguagem e, portanto, é somente uma parte de um
   método para desenvolvimento de software. Ela é independente do
   processo, apesar de ser perfeitamente utilizada em processo orientado a
   casos de usos, centrado na arquitetura, iterativo e incremental.




                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009         36
Linguagem de Modelagem Unificada
                                                                                        UML
Introdução a UML

   Diagramas*




   ESTÁTICOS

   . Diagrama de Classes
                                                                        Modela a estrutura
   . Diagrama de Objetos
                                                                        do sistema
   . Diagrama de Componentes
   . Diagrama de Distribuição




   DINÂMICOS

   . Diagrama de Casos de Uso
   . Diagramas de Interação
          - Diagrama de Seqüência                                        Modela o comportamento
          - Diagrama de Colaboração                                      do sistema
   . Diagrama de Atividade
   . Diagrama de Estados




   Nota: diagramas da versão 1.5

                                   © Copyright Rildo Ferreira, e-tecnologia.com, 2009             37
Linguagem de Modelagem Unificada
                                                                                   UML
Introdução a UML

   O Quê é a UML?

   A UML é linguagem para documentação

   A construção de software produz todos os tipos de artefatos além do código executável.
   Estes artefatos incluem o seguinte:
   - Requisitos
   - Arquitetura
   - Projeto
   - Código-Fonte
   - Planos de Projeto
   - Teste
   - Protótipos
   - Versões

   A UML abrange a documentação da arquitetura do sistema e de todos os seus detalhes.
   A UML também proporciona uma linguagem para expressão de requisitos e para
   realização de testes. Por fim, a UML oferece uma linguagem para modelagem das
   atividades de planejamento do projeto e de gerenciamento de versões.

   Onde a UML pode ser utilizada ?

   A UML se destina principalmente a construção de software complexos. Atualmente
   sendo empregada largamente na construção de Sites de E-commerce e E-business




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009            38
Linguagem de Modelagem Unificada
                                                                                   UML
Introdução a UML

   O Quê é a UML?

   Blocos de construção da UML

   O Vocabulário da UML abrange três tipos de blocos de construção:
   - Itens
   - Relacionamentos
   - Diagramas

   - Itens,
   Existem quatro tipos de itens na UML
   Itens estruturais: São os substantivos utilizados em modelos da UML. São as partes
   mais estáticas do modelo, representando elementos conceituais ou físicos.

   Primeiro, as classes são descrições como conjuntos de objetos que compartilham os
   mesmos atributos, operações, relacionamento e semântica.




                                                                            Nome

                                                                            Atributos


                                                                           Métodos




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         39
Linguagem de Modelagem Unificada
                                                                                  UML
Introdução a UML

   O Quê é a UML?

   Blocos de construção da UML

   - Itens (continuação),

   Segundo, uma interface é uma coleção de operações que especificam serviços de uma
   classe ou componente. Portanto, uma interface descreve o comportamento
   externamente visível desse elemento. Uma interface poderá representar todo o
   comportamento de uma classe ou componente, como também apenas parte do
   comportamento. A interface define um conjunto de especificações de operações
   (assinaturas), mas nunca um conjunto de implementações de operações.




                                           Calculo


    Terceiro, as colaborações definem interação e são sociedades de papéis e outros
    elementos que funcionam em conjunto para proporcionar um comportamento
    cooperativo superior à soma de todos os elementos. Portanto, as colaborações contêm
    dimensões estruturais, assim como comportamentais. As colaborações representam a
    implementação de padrões que formam um sistema .



                                       Cadeia de
                                       Responsabilidade




                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009           40
Linguagem de Modelagem Unificada
                                                                                  UML
Introdução a UML

   O Quê é a UML?

   Blocos de construção da UML

   - Itens (continuação),

   Quarto, um caso de uso é a descrição de conjunto de sequência de ações realizadas
   pelo sistema que proporciona resultados observáveis de valor para um determinado
   ator. Um caso de uso é utilizado para estruturar o comportamento de itens em um
   modelo. Um caso de uso é realizado por uma colaboração.




                                     FazerPedido




    Quinto, as classes ativas são classes cujos os objetos têm um mais processos ou
    threads e, portanto, podem iniciar a atividade de controle. Uma classe ativa é
    semelhante a um classe, exceto pelo fato de que seus objetos representam elementos
    cujo o comportamento é concorrente com o outros elementos.



                                      ControlEvent

                                      start()
                                      sleep()




                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009          41
Linguagem de Modelagem Unificada
                                                                                  UML
Introdução a UML

   O Quê é a UML?

   Blocos de construção da UML

   - Itens (continuação),

   Sexto, os componentes são partes físicas e substituíveis de um sistema, que
   proporcionam a realização de um conjunto de interfaces.Tipicamente os componentes
   representam, o pacote físico de elementos lógicos diferentes, como classes,
   interfaces e colaborações.




                                      Component.java




    Sétimo, um nó é elemento físico existente em tempo de execução que representa um
    recurso computacional, geralmente com pelo menos alguma memória e,
    frequentemente, capacidade de processamento. Exemplo de nós:
    - Computadores (estações clientes e servidores)
    - Redes
    - Roteadores




                                   Servidor




                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009         42
Linguagem de Modelagem Unificada
                                                                                  UML
Introdução a UML

   O Quê é a UML?

   Blocos de construção da UML

   - Itens Comportamentais

   São parte dinâmicas dos modelos de UML. São os verbos de um modelo, representado
   comportamento no tempo e espaço. Ao todo, existem dois tipos de itens
   comportamentais:

   Primeiro, um interação é um comportamento que abrange um conjunto de mensagens
   trocadas entre um conjunto de objetos em determinado contexto para realização de
   propósitos específicos. As interações envolvem outros elementos, inclusive
   mensagens, sequência de ações (os comportamentos chamados pelas mensagens) e
   ligações (as conexões entre os objetos)


                                        Mostrar


    Segundo, uma máquina de estado é um comportamento que especifica as sequências
    de estados pelas quais objetos ou interações passam durante sua existência em
    resposta a eventos, bem como suas respostas a esses eventos. O comportamento de
    classe ou de uma colaboração pode ser especificado por meio de uma máquina de
    estados. Uma máquina de estados abrange mais elementos, tais como, transições (o
    fluxo de um estado a outro evento), evento (itens que disparam uma transição) e
    atividades (as respostas às transições).




                                   Aguardando




                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009         43
Linguagem de Modelagem Unificada
                                                                                    UML
Introdução a UML

   O Quê é a UML?

    Blocos de construção da UML

    - Itens de Agrupamentos
    Os itens de agrupamento são partes organizacionais dos modelos de UML. São os
    blocos em que os modelos podem ser decompostos. Ao todo, existe apenas um tipo
    principal de itens de agrupamento chamado de pacotes.
    Um pacote é mecanismo de propósito geral para a organização de elementos em
    grupos. Os itens estruturais, os itens comportamentais e até outros itens de grupos
    podem ser colocados em pacotes. Ao contrário dos componentes (que existem em
    tempo de execução), um pacote é puramente conceitual (o que significa que existe
    apenas em tempo de desenvolvimento.

                      Aplicação

                                          Interface de
                                          Usuário


                        Regras de
                        Negócios                               Controle




   - Itens Anotacionais
   Itens anotacionais são as partes explicativas dos modelos UML. São comentários,
   incluídos para descrever, esclarecer e fazer alguma observação sobre qualquer
   elemento do modelo. Existe apenas um item anotacional chamado nota


                                    Imprimir
                                    Recibo




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009         44
Linguagem de Modelagem Unificada
                                                                                   UML
Introdução a UML

   O Quê é a UML?

   Blocos de construção da UML

   - Relacionamentos
   Existem quatro tipos de relacionamentos na UML:
   1 - Dependência
   2 - Associação
   3 - Generalização
   4 - Realização
   Esses relacionamentos são blocos relacionais básicos de construção da UML.

   O primeiro dependência é um relacionamento semântico entre dois itens, nos quais a
   alteração de um (o item independente) pode afetar a semântica do outro (o
   dependente). Sua representa é linha tracejada, possivelmente com setas e
   ocasionalmente incluindo um rótulo.




    O segundo associação é um relacionamento estrutural que descreve um conjunto de
    ligações, em que as ligações são conexões entre objetos. A agregação é um tipo
    especial de associação, representando um relacionamento estrutural entre o todo e
    suas partes. É representada por uma linha sólida, possivelmente direcionadas,
    ocasionalmente incluído rótulos e freqüentemente, contendo outros adornos, como
    nomes de papéis e multiplicidade.




                              *                           empregador
                 Pessoa                                                   Empregador
                              funcionário                          0..1




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         45
Linguagem de Modelagem Unificada
                                                                                      UML
Introdução a UML

   O Quê é a UML?

   Blocos de construção da UML

   O terceiro é a generalização é um relacionamento de especialização e generalização,
   nos quais os objetos dos elementos especializados (os filhos) são substituíveis por
   objetos do elemento generalizados (os pais). Dessa forma, os compartilham a estrutura
   e comportamento dos pais.



                                       Médico                              generalização




                                                                           especialização
                       Clinico Geral                  Pediatra



   O quarto é a realização é um relacionamento semântico entre classificadores, em que
   um classificador especifica um contrato que outro classificador garante executar.
   Os relacionamentos de realização são encontrados em dois locais: entre interface
   e as classes ou componentes que as realizam; entre casos de uso e as colaborações
   que os realizam.


                         Place
                         order


                                                         colaboração

                         Order
                         management



                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009            46
Linguagem de Modelagem Unificada
                                                                                       UML
Introdução a UML

   O Quê é a UML?

   Revisão

   Blocos de construção da UML

   O Vocabulário da UML abrange três tipos de blocos de construção:
   - Itens
   - Relacionamentos
   - Diagramas

   - Itens,
   Existem quatro tipos de itens na UML
   Itens estruturais: São os substantivos utilizados em modelos da UML. São as partes
   mais estáticas do modelo, representando elementos conceituais ou físicos.

         Primeiro, as classes são descrições como conjuntos de objetos que compartilham os
         mesmos atributos, operações, relacionamento e semântica.

         Segundo, uma interface é uma coleção de operações que especificam serviços de
         uma classe ou componente.

         Terceiro, as colaborações definem interação e são sociedades de papéis e outros
         elementos que funcionam em conjunto para proporcionar um comportamento
         cooperativo superior à soma de todos os elementos.

         Quarto, um caso de uso é a descrição de conjunto de sequência de ações realizadas
         pelo sistema que proporciona resultados observáveis de valor para um determinado
         ator.

         Quinto, as classes ativas são classes cujos os objetos têm um mais processos ou
         threads e, portanto, podem iniciar a atividade de controle




                                  © Copyright Rildo Ferreira, e-tecnologia.com, 2009         47
Linguagem de Modelagem Unificada
                                                                                       UML
Introdução a UML

   O Quê é a UML?

   Revisão

         Sexto, os componentes são partes físicas e substituíveis de um sistema, que
         proporcionam a realização de um conjunto de interfaces.

         Sétimo, um nó é elemento físico existente em tempo de execução que representa um
         recurso computacional




   - Itens Comportamentais

   São parte dinâmicas dos modelos de UML. São os verbos de um modelo, representado
   comportamento no tempo e espaço. Ao todo, existem dois tipos de itens
   comportamentais:

         Primeiro, interação é um comportamento que abrange um conjunto de mensagens
         trocadas entre um conjunto de objetos em determinado contexto para realização de
         propósitos específicos.

         Segundo, uma máquina de estado é um comportamento que especifica as sequências
         de estados pelas quais objetos ou interações passam durante sua existência em
         resposta a eventos, bem como suas respostas a esses eventos.




                                  © Copyright Rildo Ferreira, e-tecnologia.com, 2009         48
Linguagem de Modelagem Unificada
                                                               UML




        Diagramas da UML
          © Copyright Rildo Ferreira, e-tecnologia.com, 2009         49
Linguagem de Modelagem Unificada
                                                                                    UML
Introdução a UML

   Casos de Uso

   O que são Caso de Uso?
   São diagramas de que permitem visualizar, especificar e documentar o comportamento
   de um elemento. Esses diagramas fazem com que sistema, subsistemas e classes
   fiquem acessíveis e compreensíveis, por apresentarem uma visão externa sobre como
   esses elementos podem ser utilizados no contexto.

   Definição:
   Caso de Uso é uma descrição de um conjunto de seqüências de ações, inclusive
   variantes, que um sistema pode produzir um resultado de valor observável por um ator.
   A representação gráfica é uma elipse.

   Elementos dos Caso de Uso:
   Ator:
   Um ator representa um conjunto coerente de papéis que os usuários de casos de uso
   desempenham quanto interagem com esses casos de uso. Geralmente um ator
   representa um papel, que pode ser de pessoa, de um sistema ou de um dispositivo.

   Cenários:
   Podemos definir os cenários como uma instância de um Caso de uso. O caso de uso
   deve ser descrito através de cenários. Devem ser construídos tantos cenários quantos
   forem necessários para se entender completamente todo o sistema. Podem ser
   considerados como teste informais para validação dos requisitos do sistema.




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009          50
Linguagem de Modelagem Unificada
                                                                                             UML
Introdução a UML

   Casos de Uso
   Diagramas de Caso de Uso e Extensões

                                                                    Pedir lista dos
                                                                    matriculados

                 Sistema de
                 cobrança                                                                         Professor
                                      Matrícula nos              Selecionar curso
                                      Cursos                     para ensinar




                 Aluno
                                 Manter informação de                             Manter informações dos
                                 aluno                                            cursos



                                                          Gerente
                                                                                Gerar catalogo
                              Manter informação de
                              professor

   Generalização:
         Entre casos de uso é parecida à generalização existente entre as classes.
         No caso de uso a generalização significa que o caso de uso filho herda o
         comportamento e o significado do caso de uso pai; o filho poderá acrescentar ou
         sobrescrever o comportamento de seu pai; poderá ser substituído em qualquer
         local qual o pai apareça.
   Include:
         Quando você estiver se repetindo em dois ou mais caso de uso separados
         devemos evitar a repetição
   Extends:
         Quando estivermos descrevendo uma variação em comportamento normal,
         entretanto, querendo fazer uma descrição mais controlada, explicando os pontos
         de extensão no caso de uso.
   Realizes:
         Especifica a colaboração entre os casos de uso
   Use (obsoleto): Especifica que a semântica do elemento de origem depende da
         semântica da parte pública do destino



                                   © Copyright Rildo Ferreira, e-tecnologia.com, 2009                         51
Linguagem de Modelagem Unificada
                                                                                                    UML
Introdução a UML

   Casos de Uso

   Descrição dos Cenários:
   Nome              AutenticarSenha
   Descrição         Autenticar Senha
   Objetivo          Identificar o usuário, autenticar senhas e autorizar acesso.

   Atores            Usuário
                               Papéis: Funcionário Administrativos, Alunos e Professores
   Pré Condição       Usuário cadastro no sistema senhas, Usuário não estar “logado”
   Dados Entrada Entrada: Código do usuário e senha de acesso
   e Saída            Saída: Autorização para uso (Pasta de Acesso) ou uma mensagem de alerta
   Sequência de troca mensagens
   Ator                                                    Sistemas
   1. Usuário chama uma interface Registro
   2. Usuário informa seu código e sua senha.
   3. Usuário requisita autenticação dos dados
   informados.
                                                           4. Aplicativo processa a autenticação da senha, faz a
                                                           identificação do usuário. Verificar se usuário tem o
                                                           status de Liberado.
                                                           5. Conferir se senha não está expirada.
                                                           6. Conferir se senha informada coincide com a senha
                                                           gravada.
                                                           7. Retornar uma mensagem e uma assinatura.

   8 Usuário recebe a mensagem, ou seja, a autorização
   Pasta de Acesso, formatada de acordo sua interface.
   Curso Alternativo (Exceção):
   Ator                                                    Sistemas
                                                           4. Usuário com status de bloqueado. Retornar
                                                           mensagem de alerta/erro
                                                           5. Senha expirada. Retornar mensagem de alerta/erro
                                                           (O usuário deverá trocar a senha – ver case de uso
                                                           AlterarSenha)
                                                           6. Senha não confere. Retornar mensagem de
                                                           alerta/erro de senha inválida. Registrar a quantidade
                                                           de tentativas sem sucesso, caso seja igual a 5 (limite
                                                           de tentativas) o sistema bloqueará o usuário, mudando
                                                           o status de liberado para bloqueado automaticamente.

   Pós Condição      Autorização (Pasta de acesso)
   Interfaces        Registro




                                        © Copyright Rildo Ferreira, e-tecnologia.com, 2009                          52
Linguagem de Modelagem Unificada
                                                                                   UML
Introdução a UML

   Casos de Uso

   Descrição dos Cenários: Regras de Negócios

   Regras de Negócios:
   Autenticação: A senha será validada, seguindo as regras de negócios de Autenticação de
   Senha:
   1 - O usuário deve estar cadastrado no Aplicativo;
   2 - A senha não pode estar expirada;
   3 - O usuário deve ter um “status” de Liberado;
   4 - A senha informada (criptografada) deve coincidir com senha gravada na tabela de
   senhas. Autorização
   5 - Somente o usuário detentor da senha poderá altera-lá




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009            53
Linguagem de Modelagem Unificada
                                                                                    UML
Introdução a UML

   Casos de Uso - Identicação de Atores

   Ator

   Os atores não são parte do sistema - eles representam qualquer um e qualquer
   coisa que faça interação com sistema. Podendo ser uma pessoa, software,
   hardware e etc.


   Uma ator pode:
   - Apenas fornecer informações ao sistema
   - Apenas receber informações ao sistema
   - Fornecer e receber informações ao sistema

   Tipicamente os atores são identificados nas declarações de problemas ou através de
   entrevistas com os usuários e outros analistas envolvidos no processo, como, Analista de
   Sistema e Analista de Negócio, por exemplo.

   As seguintes questões podem ser usadas para identificar o atores:
   - Onde o sistema será usado ?
   - Quais áreas serão usuárias do sistema ?
   - O sistema usará recurso externo ?
   - Quem será o responsável pelo sistema ?
   - Quem serão os usuários do sistema ?




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009             54
Linguagem de Modelagem Unificada
                                                                                   UML
Diagramas da UML

   Casos de Uso

   Generalização:
          Entre casos de uso é parecida à generalização existente entre as classes.
          No caso de uso a generalização significa que o caso de uso filho herda o
          comportamento e o significado do caso de uso pai; o filho poderá acrescentar ou
          sobrescrever o comportamento de seu pai; poderá ser substituído em qualquer
          local qual o pai apareça.
   Include:
          Quando você estiver se repetindo em dois ou mais caso de uso separados,
          devemos evitar a repetição
   Extends:
          Quando estivermos descrevendo uma variação em comportamento normal,
          entretanto, querendo fazer uma descrição mais controlada, explicando os pontos
          de extensão no caso de uso.
   Realizes:
          Especifica a colaboração entre os casos de uso

   Use (obsoleto): Especifica que a semântica do elemento de origem depende da
         semântica da parte pública do destino




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009            55
Linguagem de Modelagem Unificada
                                                                                      UML
Diagramas da UML

   Casos de Uso

  Explicando o estereotipo <<extend>>



  Extend:    Podemos usa-los em dois momentos
             1 Variação
             Cada uma das extensões descreve as diferentes maneiras com que um
      passo do caso de uso pode ser executado. Exemplo:

                                           ReceberConta




                 <<extend>>                 <<extend>>                   <<extend>>




                    Dinheiro               CartaoCredito                  Cheque

                2 Casos excepcionais
                Condições de falha que podem ocorrer e serem recuperada em único
        passo e requerem um caso de uso para sua descrição.

                                           DevolvendoCarro




                                                                       <<extend>>
                                              <<include>>
                  <<include>>



                                                                      CalcularMulta
            AlterarDisponibilidadeCarro     ConsultarCliente



                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009          56
Linguagem de Modelagem Unificada
                                                                                   UML
Diagramas da UML

   Casos de Uso

   Explicando o estereotipo <<include>>



                        PlaceOrder

                                       <<include>> ValidateUser


                       TrackOrder


                                       <<include>>




   Um relacionamento de inclusão entre casos de uso significa que o caso de uso base
   incorpora explicitamente o comportamento de outro caso de uso em uma localização
   especificada na base. O caso de uso incluído nunca permanece isolado, mas é apenas
   uma “instance” como parte de alguma base maior que o inclui. Você pode pensar na
   inclusão como o caso de uso base que o obtém o comportamento a partir do fornecedor
   do caso de uso.
   Você utiliza um relacionamento de inclusão para evitar descrever o mesmo fluxo de
   eventos várias vezes, incluindo o comportamento comum em um caso de uso próprio. O
   relacionamento de inclusão é essencialmente um exemplo de delegação, você coleta um
   conjunto de responsabilidades do sistema e o captura um único local (o caso de uso
   incluído); depois, permite que outras partes do sistema (outros casos de uso) incluam a
   nova agregação de responsabilidade sempre que precisamos utilizar essa
   funcionalidade.




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009             57
Linguagem de Modelagem Unificada
                                                                                   UML
Diagramas da UML

   Exemplo: Casos de Uso


   Locadora de carros

   Uma locadora aluga carros aos clientes previamente cadastrados. Caso o cliente
   não esteja cadastrado, esta atividade custodial é realizada, separadamente em
   outra atividade do sistema. Caso um carro, disponível, seja escolhido pelo cliente
   este é alugado, sendo registrada a data inicial junto ao aluguel. Para que o
   cliente possa alugar um carro, este não pode estar com dívida pendente.

   Os carros são descritos pela placa, ano, modelo, descrição, km, preço por km,
   situação(disponível, etc), taxa diária, observações(informações gerais) e sua
   imagem. Os clientes são cadastrados pelo seu cpf, nome, endereço, telefone e
   dívida(reservado para registrar pagamentos pendentes).


   Quando o cliente devolve o carro, a situação do carro é mudada para
   “disponível”, o km é atualizado com o km atual do carro e um recibo é emitido,
   baseado nos kms rodados e nos dias em que ficou com o carro. Ainda na
   atividade de devolução é removido o registro do aluguel e, caso o cliente não
   possa pagar, a dívida do aluguel é registrada junto ao cliente.




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         58
Linguagem de Modelagem Unificada
                                                                                   UML
Diagramas da UML

   Exemplo: Casos de Uso

  Objetivo:
       Fazer locação de carros
  Restrição:
       Cliente não pode ter dividas pendentes

  Atores:
       Atendente
       Entidade Custodial

  Candidatos a Casos de Usos:
      Cadastrar Cliente
      Cadastrar Carro
      VerificarDadosCliente
      VerificarDividadoCliente
      VerificarDisponibilidadeVeiculo
      (Locar) EntregarVeiculo
      (Devolução) ReceberVeículo
      EmitirRecibo
      RegistrarDivida

  Candidatos a Classe:
      Veículos
      Clientes
      Divida do Cliente
      Locação
      Empregado




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         59
Linguagem de Modelagem Unificada
                                                                                    UML
Diagramas da UML

   Exemplo: Casos de Uso

  Continuação:

  Atores:
       Atendente: Faz o atendimento ao cliente da Locadora
       Entidade Custodial: Faz o cadastro da custódia do cliente

  Candidatos a Casos de Usos:
      Cadastrar (Cliente e Carro)
      VerificarDadosCliente (Se é cliente e se tem divida)
      VerificarDisponibilidadeVeiculo
      EntregarVeiculo
      ReceberVeículo
      EmitirRecibo
      RegistrarDivida

  Candidatos a Classe:
      Veículo
      DadosdoCliente
      DividadoCliente
      Locação
      Empregado




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009         60
Linguagem de Modelagem Unificada
                                                                                                        UML
Diagramas da UML

   Exemplo: Casos de Uso

  Diagrama de Caso de Uso




                                     Cadastrar                          CadastrarCliente




                                                                                                    EntidadeCustodia
      AlterarDisponibidadeVeiculo                                          CadastrarCarro
                                                   Atendente
               <<include>>

                                                                        <<extend>>


                                                                                            SocilicarCadastro

            ReceberVeiculo                    Verif icarDadosCliente



                                                          <<include>>
              <<include>>




                                                                            <<include>>
                                        Verif icarDisponibilidadeVeiculo
         ReceberPagtoCliente
     <<extend>>
                                 <<extend>>                                               EntregarVeiculo




     RegistrarDiv ida        ImprimirRecibo




                                        © Copyright Rildo Ferreira, e-tecnologia.com, 2009                             61
Linguagem de Modelagem Unificada
                                                                                  UML
Diagramas da UML

   Casos de Uso

  Cenário do Caso de Uso: VerificarDadosCliente


    Nome: VerificarDadosCliente

    Objetivo: Verificar se Cliente está cadastro no Sistema e e divida pendente

    Pré-condição: Cliente solicitar uma locação

    Ator: Atendente

    Fluxo Normal:
    1-O atendente solicita o número do CPF
    2-Digita o CPF no sistema
    3-O sistema verifica se cliente está cadastrado e se tem
      divida pendente
    4-O sistema envia mensagem cliente cadastrado e não
    há divida

    Fluxo Alternativo 1 (Cliente não cadastrado):
    4-O sistema envia mensagem cliente não cadastrado
    5-Solicita o cadastro da custódia do cliente

    Fluxo Alternativo 2 (Cliente com divida):
    4-O sistema envia mensagem cliente cadastrado e com
      divida pendente




                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009         62
Linguagem de Modelagem Unificada
                                                                                             UML
Introdução a UML

   Diagrama de Seqüência

  O que é Diagramas de Seqüência?
  É um diagrama que exibe a colaboração dinâmica entre os vários objetos de um sistema.
  O principal aspecto deste diagrama é que a partir dele percebe-se a seqüência de
  mensagens enviadas entre os objetos. Ele mostra a interação entre os objetos, alguma
  evento que acontecerá em um ponto específico da execução do sistema.


                                 formulários                   formulário                 cursos
                                 de registro                   de matrícula               disponíveis
       Ator (José) entrar com chave de
                   acesso
                                           validar acesso

                  entrar com o
                  semestre



              criar nova matrícula
                                          apresentar em tela

                                                                          obter cursos



                                         Diagrama de Seqüência

   Explicando o diagrama:
   O diagrama de seqüência consiste em um número de objetos mostrado em
   linhas verticais. O decorrer do tempo é visualizado observando-se o
   diagrama no sentido vertical de cima para baixo. As mensagens enviadas
   por cada objeto são simbolizadas por setas entre os objetos que se
   relacionam.
   Diagramas de seqüência possuem dois eixos: o eixo vertical, que mostra o
   tempo e o eixo horizontal, que mostra os objetos envolvidos na seqüência de
   uma certa atividade. Eles também mostram as interações para um cenário
   específico de uma certa atividade do sistema.

                                     © Copyright Rildo Ferreira, e-tecnologia.com, 2009                 63
Linguagem de Modelagem Unificada
                                                                                UML
Diagramas da UML

   Diagrama de Seqüência

   Diagrama de Seqüência
   Explicando o diagrama (continuação)
   No eixo horizontal estão os objetos envolvidos na seqüência. Cada um é
   representado por um retângulo de objeto (similar ao diagrama de objetos)
   e uma linha vertical pontilhada chamada de linha de vida do objeto,
   indicando a execução do objeto durante a seqüência, como exemplo
   citamos: mensagens recebidas ou enviadas e ativação de objetos. A
   comunicação entre os objetos é representada como linha com setas
   horizontais simbolizando as mensagens entre as linhas de vida dos
   objetos. A seta especifica se a mensagem é síncrona, assíncrona ou
   simples. As mensagens podem possuir também números seqüenciais,
   eles são utilizados para tornar mais explícito as seqüência no diagrama.


   Em alguns sistemas, objetos executam de forma concorrente, cada um
   com sua linha de execução (thread). Se o sistema usa linhas concorrentes
   de controle, isto é mostrado como ativação, mensagens assíncronas, ou
   objetos assíncronos.
   Os diagramas de seqüência podem mostrar objetos que são criados ou
   destruídos como parte do cenário documentado pelo diagrama. Um objeto
   pode criar outros objetos através de mensagens. A mensagem que cria ou
   destrói um objeto é geralmente síncrona, representada por uma seta sólida




                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009         64
Linguagem de Modelagem Unificada
                                                                                           UML
Diagramas da UML

   Diagrama de Seqüência

  Exemplo: EntregarVeiculo




                             : Cliente                           : Veiculo                 : Locacao
          : Atendente


               getDadosCliente( )


                                    [* se cliente cadastrado
                                    verificar divida ]
                                getDivida( )




                                         getDisponibilidade( )
                                                                             setSaida( )
                                                                       [* se veículo
                                                                       disponível ]




    Este diagrama descreve em ordem cronológica as mensagens entre os
    objetos.
    Neste momento estamos dizendo o como o Caso de Uso deve ser
    implementado




                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009                     65
Linguagem de Modelagem Unificada
                                                                                            UML
Diagramas da UML

   Diagrama de Seqüência

  Explicando os detalhes:

                                          Instance das classes
                 ator




                            : Cliente                           : Veiculo                 : Locacao
         : Atendente


              getDadosCliente( )


                                   [* se cliente cadastrado
                                   verificar divida ]
                               getDivida( )




                                        getDisponibilidade( )
                                                                            setSaida( )
                                                                      [* se veículo
                                                                      disponível ]




                                                                                              Autodelegação


                                               As interações entre os                 Restrição ou
                                               objetos                                condição
          Linha do tempo




                                   © Copyright Rildo Ferreira, e-tecnologia.com, 2009                     66
Linguagem de Modelagem Unificada
                                                                                                                   UML
Diagramas da UML

   Diagrama de Colaboração
   O que é Diagramas de Colaboração?
   É um diagramas que mostra a colaboração dinâmica entre os objetos,
   semelhante ao diagrama de seqüência. No diagrama de colaboração, além
   de mostrar a troca de mensagens entre os objetos, percebe-se também os
   objetos com os seus relacionamentos. A interação de mensagens é mostrada
   em ambos os diagramas. Se a ênfase do diagrama for o decorrer do tempo, é
   melhor escolher o diagrama de seqüência, mas se a ênfase for o contexto do
   sistema, é melhor dar prioridade ao diagrama de colaboração. Podemos
   também escolher ambos.                                          O diagrama
   de colaboração é desenhado como um diagrama de objeto, onde os diversos
   objetos são mostrados juntamente com seus relacionamentos. As setas de
   mensagens são desenhadas entre os objetos para mostrar o fluxo de
   mensagens entre eles. As mensagens são nomeadas, que entre outras
   coisas mostram a ordem em que as mensagens são enviadas. Também
   podem mostrar condições, interações, valores de resposta, e etc. O diagrama
   de colaboração também pode conter objetos ativos, que executam
   paralelamente com outros.
                                                                                               2: validar acesso
                           1:entrar com chave                 3:entrar com o
                           de acesso                          semestre

                                                                                           formulários de registro
                                          4:criar nova matrícula
           Ator (José)
                                                                                                              5:apresentar
                                                                                                              em tela



                    cursos disponíveis                                                      formulário de matrícula
                                                            6:obter cursos
                                                    Diagrama de Colaboração

   NOTA: O diagrama de colaboração em alguns caso pode ser considerado opcional. Pode-se escolher entre utilizar o diagrama de colaboração
   ou o diagrama de seqüência.

                                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009                                             67
Linguagem de Modelagem Unificada
                                                                             UML
Diagramas da UML

   Diagrama de Colaboração



                                                           2: getDivida( )




                             1: getDadosCliente( )
                                                               : Cliente




                    : Atendente


                                   3: getDisponibilidade( )


                                     4: setSaida( )
                     : Veiculo                                   :
                                                              Locacao




                        © Copyright Rildo Ferreira, e-tecnologia.com, 2009         68
Linguagem de Modelagem Unificada
                                                                                                    UML
Projeto e Modelagem Visual com UML

   Diagrama de Estado

   O que é Diagrama de Estado?
   É um diagrama que tipicamente complementa a descrição das classes.
   Pois este diagrama exibe todos os estados possíveis que objetos de uma
   certa classe podem se encontrar e mostra também quais são os eventos do
   sistemas que provocam tais mudanças.
   Não necessário escrever o diagrama de estado para todas as classes de
   um sistema, mas apenas para aquelas que possuem um número definido
   de estados conhecidos e onde o comportamento das classes é afetado e
   modificado pelos diferentes estados.
   Diagramas de estado capturam o ciclo de vida dos objetos, subsistemas e
   sistemas. Eles mostram os estados que um objeto pode possuir e como os
   eventos (mensagens recebidas, tempo, erros, e condições sendo
   satisfeitas) afetam estes estados ao passar do tempo.

                                                                                  Adicionar Aluno


                                                                    /inicialize
                                                     Matrícula aberta
        Criação            Atribuição Curso          númeroDeAlunos = 0            Curso Aberto
     faça: Crie o          faça: Atribuir um                                       Entrada: Registre
     objeto curso          professor ao curso                                      um aluno
                                                                cancelarCurso
                                     cancelarCurso
                                     cancelarCurso

                                                                                               Registro fechado
                                                                                               [númeroDeAlunos>=3
                        Curso Cancelado                        Registro fechado                ]
                        faça: envie notificação                [númeroDeAlunos<3]
                        de cancelamento
                                                                Registro fechado [número
                                                                de alunos =10]^Curso
                                                                .Criar relatório
                                         Curso Encerrado
                                         faça: relate curso
                     cancelarCurso       esta cheio                                  Curso Completado
                                                                                     faça: Gerar lista de
                                                                                     alunos




                            © Copyright Rildo Ferreira, e-tecnologia.com, 2009                                      69
Linguagem de Modelagem Unificada
                                                                                  UML
Projeto e Modelagem Visual com UML

   Diagrama de Estado

   Diagramas de estado possuem um ponto de início e vários pontos de
   finalização. Um ponto de início (estado inicial) é mostrado como um círculo
   todo preenchido, e um ponto de finalização (estado final) é mostrado como
   um círculo em volta de um outro círculo menor preenchido. Um estado é
   mostrado como um retângulo com cantos arredondados. Entre os estados
   estão as transições, mostrados como uma linha com uma seta no final de
   um dos estados. A transição pode ser nomeada com o seu evento
   causador. Quando o evento acontece, a transição de um estado para outro
   é executada ou disparada.
   Uma transição de estado normalmente possui um evento ligado a ela. Se
   um evento é anexado a uma transição, esta será executada quando o
   evento ocorrer. Se uma transição não possuir um evento ligado a ela, a
   mesma ocorrerá quando a ação interna do código do estado for executada
   (se existir ações internas como entrar, sair, fazer ou outras ações definidas
   pelo desenvolvedor). Então quando todas as ações forem executadas pelo
   estado, a transição será disparada e serão iniciadas as atividades do
   próximo estado no diagrama de estados.




   Elementos

        Verificando



                            Estado                       Transição              Fim   Inicio




                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009                  70
Linguagem de Modelagem Unificada
                                                                                UML
Projeto e Modelagem Visual com UML

   Diagrama de Estado
    Os diagramas de estados são compostos de transições e estados. As
    transições são associadas com ações e são consideradas como processo
    de curta duração e não podem ser interrompidos. Os estados são
    associados com as atividades e podem levar mais tempo. Uma atividade
    pode ser interrompida por algum evento.


    Exemplo: Diagrama de Estado Telefone

                  início
                                                         transição

                           fora do gancho

             ocioso                                      Ativo

                             no gancho

    Estado


               Final




                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009         71
Linguagem de Modelagem Unificada
                                                                                        UML
Projeto e Modelagem Visual com UML

   Diagrama de Estado

    Aplicação

    Um diagrama de estado pode ser aplicado a diversos elementos da UML, tais como:
    - Classes
    - Tipos (conceitos)
    - Casos de Uso

      Exemplo:
                            [Nem todos os itens verificados]/pegar
                            próximo item
                início

                                              [Todos os itens verificados e
                           Verificando
                                              os todos itens disponíveis]              Expedindo



                           [itens ecebidos
  [Todos os itens        [alguns itens não
  verificados e          estão disponíveis]
  alguns itens não                                   Item recebido
  estão disponíveis]                                 [os todos itens
                                                     disponíveis]
                          Aguardando                             cancelamento

                                         cancelado


                                                 Cancelamento                          Entregue




                                                                                              final




                                  © Copyright Rildo Ferreira, e-tecnologia.com, 2009                  72
Linguagem de Modelagem Unificada
                                                                                      UML
Projeto e Modelagem Visual com UML

   Diagrama de Atividade
   O que é Diagrama de Atividade?
   É um diagramas que exibe o fluxo seqüencial das atividades, é geralmente utilizado para
   demonstrar as atividades executadas por uma operação específica do sistema, como por
   exemplo seleção de um item do menu principal. Consistem em estados de ação, que
   contém a especificação de uma atividade a ser desempenhada por uma operação do
   sistema. Decisões e condições, como execução paralela, também podem ser mostrados
   na diagrama de atividade. O diagrama também pode conter especificações de
   mensagens enviadas e recebidas como partes de ações executadas.
   Diagramas de atividade capturam ações e seus resultados. Eles focam o trabalho
   executado na implementação de uma operação (método), e suas atividades numa
   instância de um objeto. O diagrama de atividade é uma variação do diagrama de estado e
   possui um propósito um pouco diferente do diagrama de estado, que é o de capturar
   ações (trabalho e atividades que serão executados) e seus resultados em termos das
   mudanças de estados dos objetos.


                       Cliente                      Vendas                  Estoque


                   Fazer Pedido



                                               Processar Pedido

                                                                              Separar Produtos

                                                                              Enviar Pedido



                   Receber Pedido              Cobrar Cliente


                   Pagar Fatura

                                                Fechar Pedido



                                 © Copyright Rildo Ferreira, e-tecnologia.com, 2009              73
Linguagem de Modelagem Unificada
                                                                                    UML
Projeto e Modelagem Visual com UML

   Diagrama de Atividade

   Os estados no diagrama de atividade mudam para um próximo estágio quando uma
   ação é executada (sem ser necessário especificar nenhum evento como no diagrama de
   estado). Outra diferença entre o diagrama de atividade e o de estado é que podem ser
   colocadas como swimlanes (raias). Uma swimlane agrupa atividades, com respeito a
   quem é responsável e onde estas atividades residem na organização, e é representada
   por retângulos que englobam todos os objetos que estão ligados a ela (swimlane).

   Um diagrama de atividade é uma maneira alternativa de se mostrar interações, com a
   possibilidade de expressar como as ações são executadas, o que elas fazem
   (mudanças dos estados dos objetos), quando elas são executadas (seqüência das
   ações), e onde elas acontecem (swimlanes).

   Um diagrama de atividade pode ser usado com diferentes propósitos inclusive:

          Para capturar os trabalhos que serão executados quando uma operação é
         disparada (ações). Este é o uso mais comum para o diagrama de atividade.

          Para capturar o trabalho interno em um objeto.

          Para mostrar como um grupo de ações relacionadas podem ser executadas, e
         como elas vão afetar os objetos em torno delas.

          Para mostrar como uma “instance” pode ser executada em termos de ações e
         objetos.

          Para mostrar como um negócio funciona em termos de trabalhadores (atores),
         fluxos de trabalho, organização, e objetos (fatores físicos e intelectuais usados no
         negócio).

   Enfim o diagrama de atividade mostra o fluxo seqüencial das atividades, é normalmente
   utilizado para demonstrar as atividades executadas por uma operação específica do
   sistema. Consistem em estados de ação, que contém a especificação de uma atividade
   a ser desempenhada por uma operação do sistema. Decisões e condições, como
   execução paralela, também podem ser mostrados na diagrama de atividade. O
   diagrama também pode conter especificações de mensagens enviadas e recebidas
   como partes de ações executadas.




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009               74
Linguagem de Modelagem Unificada
                                                                                UML
Projeto e Modelagem Visual com UML

   Diagrama de Atividade

   Exemplo:




                           Diagrama de Atividades


                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009         75
Linguagem de Modelagem Unificada
                                                                                         UML
Projeto e Modelagem Visual com UML

   Diagrama de Atividade

  Componentes:

        Atividade

                                                                             Barras de
        atividade           transição                 decisão
                                                                             sincronização

     Exemplo com comentários:

                                                 Vendas
                      Cliente                                            Estoque


                 Fazer Pedido                                                     atividade


                                           Processar Pedido

     separação                                                             Separar Produtos

                                                                           Enviar Pedido



                 Receber Pedido            Cobrar Cliente


                 Pagar Fatura

                                             Fechar Pedido

                                                                                       junção

              raias



                                  © Copyright Rildo Ferreira, e-tecnologia.com, 2009            76
Linguagem de Modelagem Unificada
                                                                                         UML
Projeto e Modelagem Visual com UML

   Diagrama de Atividade

   Exemplo com comentários:


                                              Receber Pedido




                        Preencher Pedido                                 Enviar Fatura


      Entrega

     [pedido urgente]                           [senão]

                                                                        Receber Pagamento


      Entrega durante                      Entrega Regular
      a noite




                                              Encerrar Pedido




                                    © Copyright Rildo Ferreira, e-tecnologia.com, 2009         77
Linguagem de Modelagem Unificada
                                                                                   UML
Introdução a UML

   Diagrama de Pacotes

   Como podemos definir o diagrama de pacotes?
   A definição de Pacote é uma generalização, ou seja, um agrupamento, com o propósito de
   organizar as Classes de Objetos em grupos. Esta abordagem facilita a análise a medida
   que o número de Classes de Objetos cresce num do cenário. O tipo de relacionamento é
   linha pontilhada com uma seta que indica dependência.
   A notação usada pela UML para representar pacotes é:




                                      Nome do Pacote




  Exemplo: As classes pertencentes ao Sistema de Matrícula podem ser agrupadas em três
  pacotes:
        • UI (Interface Usuário)
        • Regras de Negócio
        • Interfaces de Banco de Dados



                                                                      Interfaces de
      Interfaces com            Regras de                            Banco de Dados
     Usuário                    Negócios                             {abstrata}




                                                                       Interface
                                                                       MySQL




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         78
Linguagem de Modelagem Unificada
                                                                                    UML
Projeto e Modelagem Visual com UML

   Diagrama de Pacotes

  Podemos usar a estrutura de pacotes para criar coesão entre as classes que tem objetivo
  comum, por exemplo podemos colocar em único pacote todas as classes que se referem a
  regras de negócios.
  Exemplo:



             Aplicação



                                      Interface de Usuário




               Regras de Negócios                                  Controle




    Fisicamente os pacotes tem a estrutura de diretório e subdiretório, isto que dizer que
    a Aplicação terá a seguinte formato:

                         Aplicação


                                              Regras de Negócios

                                              Interface de Usuário

                                              Controle




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009            79
Linguagem de Modelagem Unificada
                                                                                          UML
Introdução a UML

   Diagrama de Classes

  O que é um Diagrama de Classes?
  É um diagrama que demonstra a estrutura estática das classes de um sistema e seus
  relacionamentos. Classes podem se relacionar com outras através de diversas maneiras:
  associação (conectadas entre si), dependência (uma classe depende ou usa outra classe),
  especialização (uma classe é uma especialização de outra classe), ou em pacotes
  (classes agrupadas por características similares). Todos estes relacionamentos são
  mostrados no diagrama de classes juntamente com as suas estruturas internas, que são
  os atributos e operações. O diagrama de classes é considerado estático já que a estrutura
  descrita é sempre válida em qualquer ponto do ciclo de vida do sistema. Um sistema
  normalmente possui alguns diagramas de classes, já que não são todas as classes que
  estão inseridas em um único diagrama e uma certa classes pode participar de vários
  diagramas de classes.


                                        Pessoa



                                                                      Funcionários
               Professores              Alunos
                                                                      Administrativo
                                                  1
                                                  1
                                                            1     1
                                        Matricula                     Curso

                                                                         1
                                                                                    tem
                                                                       1..*
                                                                      Disciplinas



     Uma classe num diagrama pode ser diretamente implementada utilizando-se uma
     linguagem de programação orientada a objetos que tenha suporte direto para
     construção de classes. Para criar um diagrama de classes, as classes têm que estar
     identificadas, descritas e relacionadas entre si.



                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009               80
Linguagem de Modelagem Unificada
                                                                                   UML
Introdução a UML

   Diagrama de Objetos

  O que é um Diagrama de Objetos?
  É um diagrama que exibe uma variação do diagrama de classes e utiliza quase a mesma
  notação. A diferença é que o diagrama de objetos mostra os objetos que foram
  “instanciados” das classes. O diagrama de objetos é como se fosse o perfil do sistema em
  um determinado momento de sua execução. A mesma notação do diagrama de classes é
  utilizada, entretanto há duas diferenças: os objetos são escritos com seus nomes
  sublinhados e todas as instâncias num relacionamento são mostradas. Os diagramas de
  objetos não tem a mesma importância do diagramas de classes, mas eles são muito úteis
  para exemplificar diagramas complexos de classes ajudando muito em sua compreensão.
  Diagramas de objetos também são usados como parte dos diagramas de colaboração,
  onde a colaboração dinâmica entre os objetos do sistema são mostrados.



                                 :Aluno
                                 Nome: “Fulano de Tal”
                                 Data: 23-02-2001



                                 201-23-02-01:Matricula
                                 Matricula: 201-23-02-01
                                 Curso: Adm Empresas




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009             81
Linguagem de Modelagem Unificada
                                                                              UML
Diagramas da UML

   Diagrama de Classes




                         © Copyright Rildo Ferreira, e-tecnologia.com, 2009         82
Linguagem de Modelagem Unificada
                                                                                   UML
Diagramas da UML

    Mapeamento do Diagrama de Classes e Modelo de Entidades e
    Relacionamento

   Veja a tabela abaixo que relaciona as característica da UML e MER:

         UML                                           MER
         Classes Persistentes                          Entidades
         Associação                                    Relacionamentos
         Atributos                                     Atributos
         Roles                                         Roles
         Multiplicidade                                Constraints
         Generalização e                               Generalização e
         Especialização                                Especialização

        Os atributo de uma classe persistente são mapeado para colunas de entidade


                Classe persistente                         Entidade
                 Pessoa                                    Pessoa
                 -idpessoa                                 Idpessoa <pk>
                 -nome                                     nome




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009         83
Linguagem de Modelagem Unificada
                                                                                 UML
Diagramas da UML

    Mapeamento Diagrama de Classes e Modelo de Entidades e
    Relacionamento

   Um exemplo de mapeamento Diagrama de classe (UML) e entidade (MER)

                                                      {abstract}
                                           Pessoa
                                     -nome
                                     -idade
     Classes

                   Funcionário                          Cliente
                   funcao                               Idcliente
                                                        telefone

    Veja agora o mapeamento para entidade MER, para cada classe criaremos uma
    entidade correspondente:



                                           Pessoa
                                     idpessoa <pk>
                                     nome
                                     idade
                              é um                             é um

                     Funcionário                           Cliente
                     idpessoa <fk>                         idpessoa <fk>
                     funcao                                idcliente <pk>
                                                           telefone


                            © Copyright Rildo Ferreira, e-tecnologia.com, 2009         84
Linguagem de Modelagem Unificada
                                                                                  UML
Diagramas da UML

    Mapeamento Diagrama de Classes e Modelo de Entidades e
    Relacionamento

    Neste exemplo o mapeamento é feito para duas entidades:



                     Funcionário                         Cliente
                     idfunc <pk>                         idcliente <pk>
                     nome                                nome
                     idade                               idade
                     funcao                              telefone




                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009         85
Linguagem de Modelagem Unificada
                                                                                        UML
Introdução a UML

   Diagrama de Componente

  O que é um Diagrama de Componente?
  É um diagrama que exibe o sistema por um lado funcional, expondo as
  relações entre seus componentes e a organização de seus módulos durante
  sua execução.
  O diagrama de componente descreve os componentes de software e suas
  dependências entre si, representando a estrutura do código gerado. Os
  componentes são a implementação na arquitetura física dos conceitos e da
  funcionalidade definidos na arquitetura lógica (classes, objetos e seus
  relacionamentos). Eles são tipicamente os arquivos implementados no
  ambiente de desenvolvimento.



                  Curso.jar                                         Pessoa.jar




                Disciplina.classr                   Aluno.class                  Professores.class




   Um componente é mostrado em UML como um retângulo com uma elipse e
   dois retângulos menores do seu lado esquerdo. O nome do componente é
   escrito abaixo ou dentro de seu símbolo.
   Componentes são tipos, mas apenas componentes executáveis podem ter
   instâncias. Um diagrama de componente mostra apenas componentes como
   tipos. Para mostrar instâncias de componentes, deve ser usado um diagrama
   de execução, onde as instâncias executáveis são alocadas em nodes.

                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009                   86
Linguagem de Modelagem Unificada
                                                                                         UML
Introdução a UML

   Diagrama de Componente

   A dependência entre componentes pode ser mostrada como uma linha
   tracejada com uma seta, simbolizando que um componente precisa do outro
   para possuir uma definição completa. Com o diagrama de componentes é
   facilmente visível detectar que arquivos .jar são necessários para executar a
   aplicação.
   Componentes podem definir interfaces que são visíveis para outros
   componentes. As interfaces podem ser tanto definidas ao nível de codificação
   (como em Java) quanto em interfaces binárias usadas em run-time (COM).
   Uma interface é mostrada como uma linha partindo do componente e com um
   círculo na outra extremidade. O nome é colocado junto do círculo no final da
   linha. Dependências entre componentes podem então apontar para a
   interface do componente que está sendo usada.


   Exemplo:




                  Reserva.jar                                      Pessoa.jar




                                                  PessoaFisica.
                   CheckIN                                                      PessoaJuridica




                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009               87
Linguagem de Modelagem Unificada
                                                                                      UML
Projeto e Modelagem Visual com UML

   Diagrama de Distribuição

   O que é Diagrama de Distribuição?
   É um diagrama que exibe a arquitetura física do hardware e do software no sistema.
   Pode apresentar os atuais computadores e periféricos, juntamente com as conexões que
   eles estabelecem entre si e pode mostrar também os tipos de conexões entre esses
   computadores.
   Especifica-se também os componentes executáveis e objetos que são alocados para
   mostrar quais unidades de software são executados e em que destes computadores são
   executados.

   O diagrama de distribuição demonstra a arquitetura runtime de processadores,
   dispositivos físicos e de software que executam no ambiente onde o sistema
   desenvolvido será utilizado. É o último diagrama da topologia do sistema, descrevendo
   a estrutura de hardware e software que executam em cada unidade.

   O diagrama de distribuição é composto por componentes, que possuem a mesma
   simbologia dos componentes do diagrama de componentes, nodes, que significam
   objetos físicos que fazem parte do sistema, podendo ser uma computador cliente em
   uma Rede, um computador Servidor, uma impressora, um roteador, etc., e conexões
   entre estes nodes e componentes que juntos compõem toda a arquitetura física do
   sistema.



                                                                <<TCP/IP>>         Servidor
                     <<TCP/IP>>
                                    Servidor                                       de Banco de
     Cliente A       0..*     1     de Aplicação               1           1
                                                                                   Dados




                              © Copyright Rildo Ferreira, e-tecnologia.com, 2009                 88
Linguagem de Modelagem Unificada
                                                                                   UML
Projeto e Modelagem Visual com UML

   Diagrama de Distribuição
   Exemplo:


                                                                       Banco de Dados
                                                                         Corporativo
                                                                       Oracle Server

    Cliente


          *
   HTPP
                             Servidor                                  Banco de Dados
                                                                           Web
    Firewall          1
               HTPP


                          Apache sob Linux                                      MySQL




                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009            89
Linguagem de Modelagem Unificada
                                                               UML




Projeto de Desenvolvimento:
        Um exemplo


          © Copyright Rildo Ferreira, e-tecnologia.com, 2009         90
Linguagem de Modelagem Unificada
                                                                                    UML
Exemplo de Projeto de Desenvolvimento com UML

   Projeto de Desenvolvimento
  Fases do Desenvolvimento

  O desenvolvimento de um sistema de informação, de acordo com metodologia rápida, é
  divido em duas etapas: enquanto a primeira fase, Definição de Requisitos, tem por objetivo
  determinar os requisitos, a segunda Análise, tem a finalidade de definir os módulos
  componentes do sistema.

   Definição dos Requisitos

   O objetivo desta fase é determinar a funcionalidade esperada pelo usuário do sistema.
   Num projeto de construção civil, esta fase corresponderia ao projeto de arquitetura, onde
   se descrevem as características da casa que são visíveis ao seu morador. O produto
   desta fase é chamado de Modelo de Requisitos.
   A estrutura do Modelo de Requisitos é exibida na figura abaixo. Cada uma das caixas
   representa um ou mais documentos que devem ser apresentados no final da fase. O
   diagrama indica que o modelo de Requisitos é composto de: Modelo de Casos de Uso,
   uma protótipo e um Glossário.
   Por sua vez, o Modelo de Casos de uso é composto de diagramas de caso de uso, cada
   destes contém uma descrição para o caso de uso.


                                    Modelos de Requisitos



                                             1..*
     Diagrama de Casos de
                                 Protótipo                           Glossário
     Uso



    Casos de Uso

           1..*
    Descrição do Caso
    de Uso




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009              91
Linguagem de Modelagem Unificada
                                                                                    UML
Exemplo de Projeto de Desenvolvimento com UML

   Projeto de Desenvolvimento
  Segunda fase: Análise e Projeto

  O objetivo desta fase é produzir um plano que permita a construção do sistema. Por
  exemplo, comparando mais uma vez a engenharia civil, esta fase corresponderia às
  plantas detalhadas da construção de uma casa.
  Em termos de software, a planta do sistema é a especificação de suas classes
  componentes, que chamamos de Modelo de Análise e Projeto.
  O Modelo de Análise e Projeto é composto pelo Modelo Estático e pelo Modelo Dinâmico.
  O modelo estático é composto por um conjunto de diagramas de classes.
  O Modelo Dinâmico é composto por conjuntos de Diagramas de Seqüência e Diagrama
  de Estados.


                                    Modelos de Análise e
                                    Projeto




         Modelo Estático                                       Modelo Dinâmico



               1..*                                  1..*                                  1..*

         Diagrama de Classes                  Diagrama de Sequência             Diagrama de Estado

               1..*

         Classes




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009                    92
Linguagem de Modelagem Unificada
                                                                                    UML
Exemplo de Projeto de Desenvolvimento com UML

   Projeto de Desenvolvimento

  Roteiro para o Desenvolvimento de Sistema usando a Metodologia Rápida

  1 - Definir o escopo do Sistema;

  2 - Produzir o Modelo de Requisitos
         2.1 - Identificar os casos de usos
         2.2 - Identificar os atores
         2.3 - Identificar e definir as entidades do domínio do problema
         2.4 - Definir os casos de uso que podem ser abstraídos
         2.5 - Fazer agrupamento dos casos de uso com semântica semelhante
         2.6 - Verificar o Modelo de Requisitos

  3 - Produzir o Modelo de Análise e Projeto, executando as seguintes etapas:
         3.1 - Criar um diagrama com modelo de classes do domínio do problema;
         3.2 - Criar um diagrama com o modelo de classes de cada agrupamento de casos
         de uso. Este modelo deve conter as classes de domínio, interface e controle
         envolvidas no agrupamento de casos de uso.
         3.3 - Fazer um diagrama de seqüência para cada agrupamento de caso de uso.
         3.4 - Criar um diagrama de transição e estados para as classes de domínio,
         interface e controle que tenham ciclos de vida não-triviais.
         3.5 - Revisar o diagrama de classes (reveja os relacionamentos)
         3.6 - Verificar o modelo de Análise e Projeto.




                               © Copyright Rildo Ferreira, e-tecnologia.com, 2009         93
Linguagem de Modelagem Unificada
                                                               UML




         Estudo de Caso
         e Exercício
          © Copyright Rildo Ferreira, e-tecnologia.com, 2009         94
Linguagem de Modelagem Unificada
                                                                           UML

Estudo de Caso

Caso Prático
•   A Universidade ESU quer informatizar seu sistema de matrícula
     – A Secretaria produz o currículo para o semestre
     – Os Alunos selecionam 4 matérias principais e 2 matérias
        alternativas
     – Após a matrícula, o sistema de cobranças será notificado para
        que receba o pagamento do estudante por um semestre
     – Os Alunos podem usar o sistema para adicionar ou remover
        matérias por um determinado período após a matrícula
     – Os Professores usam o sistema para receber a lista de ofertas
        de cursos
     – Os usuários do sistema de matrícula tem senhas que são
        utilizadas para validação de logon




                      © Copyright Rildo Ferreira, e-tecnologia.com, 2009         95
Linguagem de Modelagem Unificada
                                                                            UML

Estudo de Caso

Atores

 •    Um Ator é alguém ou alguma coisa que deve interagir com o sistema
      a ser desenvolvido




                       Professor                                 Aluno




                    Secretaria                           Sistema Cobrança




                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009         96
Linguagem de Modelagem Unificada
                                                                            UML

Estudo de Caso

Casos de Uso:

 •    Um caso de uso é um padrão de comportamento que o sistema exibe
       – Cada caso de uso é uma seqüência de transações relacionadas
           executadas por um ator e o sistema num diálogo
 •    Atores são examinados para determinar suas necessidades
       – Secretaria -- manter o curriculum
       – Professor -- solicitar lista de cursos
       – Aluno -- manter o horário de aulas
       – Sistema Cobrança -- recebe informações sobre cobranças




         Manter Curriculum




                            Solicitar Lista de Cursos




                                                                       Manter Horário



                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009               97
Linguagem de Modelagem Unificada
                                                                               UML

Estudo de Caso

Documentando Caso de Uso

 •       Um documento de fluxo de eventos é criado para cada caso de uso
          – Escrito do ponto de vista do ator
 •       Detalha o que o sistema deve fornecer quando o caso de uso é
         executado
 •       Conteúdos típicos
          – Como o caso de uso inicia e termina
          – Fluxo normal de eventos
          – Fluxos alternativos de eventos
          – Fluxos excepcionais de eventos (respostas a erros)


Fluxo de Eventos de Manter Curriculum

     •   Este caso de uso inicia quando a Secretaria entra no sistema e entra
         sua senha. O sistema verifica se a senha é válida (E-1) e solicita a
         escolha do semestre atual ou futuro (E-2). A Secretaria entra o
         semestre desejado. O sistema pergunta qual a atividade desejada:
         INCLUIR, APAGAR, MODIFICAR, ou SAIR.
     •   Caso a atividade selecionada seja INCLUIR, o S-1: O sub-fluxo
         Inclui uma Matéria é executado.
     •   Caso a atividade selecionada seja APAGAR, o S-2: O sub-fluxo
         Apaga uma Matéria é executado.
     •   Caso a atividade selecionada seja MODIFICAR, o S-3: O sub-fluxo
         Modificar uma Matéria é executado.
     •   Caso a atividade selecionada seja SAIR, o caso de uso termina.
     •   ...




                          © Copyright Rildo Ferreira, e-tecnologia.com, 2009         98
Linguagem de Modelagem Unificada
                                                                            UML

Estudo de Caso


Diagrama de Caso de Uso
•    Diagramas de caso de uso são criados para se visualizar a relação
     entre atores e casos de uso




     Aluno

                    Mantém Horário




    Sistema Cobrança

                                  Solicita Lista de Cursos

                                                                            Professor




                                             Mantém Curriculum

                    Secretaria




                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009               99
Linguagem de Modelagem Unificada
                                                                           UML

Estudo de Caso

Usos e Extensões das Relações de Casos de Uso
•   À medida em que casos de uso são documentados, outras relações
    entre casos de uso poderão ser descobertas
     – Uma relação de uso (usa) mostra comportamento que é comum a
         um ou mais casos de uso
     – Uma relação de extensão mostra comportamento opcional




                                  <<extends>>
            Matricular para cursos


                             <<extends>>
                                                      Validar Senha




            Manter Curriculum




                      © Copyright Rildo Ferreira, e-tecnologia.com, 2009         100
Linguagem de Modelagem Unificada
                                                                                        UML

 Estudo de Caso

Realizações de Casos de Uso:

    •    O Diagrama de Caso de Uso apresenta uma visão externa do sistema
    •    Diagramas de Interação descrevem como casos de uso são
         realizados como interações entre associações de objetos
    •    Há dois tipos de Diagramas de Interação
           – Diagramas de Seqüência
           – Diagramas de Colaboração


Diagrama de Seqüência:
•       Um Diagrama de Seqüência mostra interações de objetos ordenados
        numa seqüência de tempo




        : Aluno        Formulário de          Gerente de             Matemática            Matemática
                       Matrúcula              Matrículas             Básica                Álgebra

                  1: preenche
                  2: envia
                                3: curso(Maria,matemática)

                                                       4: está aberto?
                                                                                5: está aberto?
                                                     6: incui(Maria l)
Tempo
                                                                                     7: incui (Maria)




                                © Copyright Rildo Ferreira, e-tecnologia.com, 2009                      101
Linguagem de Modelagem Unificada
                                                                             UML

Estudo de Caso

Diagrama de Colaboração
•   Um Diagrama de Colaboração mostra interações organizadas à volta de
    objetos e as ligações de um para o outro



                                                          curso form :
                    1: pega informação curso              cursoForm
                       2: processa




    : Secretaria                                                        3: incui curso




         acurso :                                       Diretor :
          curso                                      Diretor_do_Curso

                        4: novo curso




                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009                102
Linguagem de Modelagem Unificada
                                                                                  UML

Estudo de Caso

Diagrama de Classes

•       Um Diagrama de Classes mostra a existência de classes e suas
        relações com a visão lógica do sistema
•       Elementos de UML presentes nos Diagramas de Classes:
          – Classes, suas estruturas internas e comportamento
          – Associações, agregações, dependências, e relações de
             herança
          – Multiplicidade e indicadores de navegação
          – Nomes de papéis (O que uma classe representa para outra)

    Classes

    •    Uma classe é uma coleção de objetos com um estrutura,
         comportamento, relações e semântica comuns
    •    Classes são descobertas pelo exame dos objetos nos diagramas
         de Seqüência e Colaboração
    •    Uma classe é desenhada como um retângulo com três
         compartimentos:
           –   Primeiro: Nome da classe
           –   Segundo: Atributos (opcional)
           –   Terceiro: Métodos (opcional)
    •    Classes devem ser nomeadas usando o vocabulário do domínio
          – Padrões de nomenclatura devem ser estabelecidos
          – Regra: Todos os nomes de classes são substantivos no
             singular, iniciando com letra maiúscula
             Exemplo: Cliente, Fornecedor, Pessoa, Aluno e etc.




                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009         103
Linguagem de Modelagem Unificada
                                                                               UML

Estudo de Caso

Classes:

                    Diretor Matrícula                    Algorítmo de Horário




Formulário Matrícula                                                          Curso

                                         Aluno




        Professor                                           Oferta Curso




                         © Copyright Rildo Ferreira, e-tecnologia.com, 2009           104
Linguagem de Modelagem Unificada
                                                                                UML

Estudo de Caso

Classes:

•     O comportamento de uma classe é representado pelas suas operações
•     Operações podem ser encontradas examinando-se os Diagramas de
      Interação

    Matrícula         Matrícula
      form             Gerente
                                                                           Diretor Matrícula



                                                                         Matricula (aluno,curso)
       3: matricula curso(Maria, matemática)




    Atributos:


                                                                      Oferta Curso
       Cada Curso oferecido                                          número
         possui um número,                                           local
              local e horário
                                                                     horário



                          © Copyright Rildo Ferreira, e-tecnologia.com, 2009                   105
Linguagem de Modelagem Unificada
                                                                                        UML

 Estudo de Caso

Classes



      Diretor Matrícula                Algorítmo de Horário

  incluiAluno(curso, AlunoInfo)




 Formulário Matrícula                  Aluno                                curso
                                      nome
                                      nível                        nome
                                                                   NúmeroCréditos

                                                                   abrir()
                                                                   incluirAluno(AlunoInfo)


Professor
nome
StatusCadeira                                                        Oferta Curso
                                                                    local

                                                                   abrir()
                                                                   incluirAluno(AlunoInfo)




                                  © Copyright Rildo Ferreira, e-tecnologia.com, 2009          106
Linguagem de Modelagem Unificada
                                                                             UML

Estudo de Caso

Relacionamento:
•   Relações fornecem um caminho para a comunicação entre os objetos
•   Diagramas de seqüência e/ou colaboração são examinados para
    determinar quais ligações entre objetos precisam existir para se chegar
    ao comportamento desejado. -- Caso dois objetos precisem
    “conversar” deverá haver uma ligação entre elas
•   Há três tipos de relações:
      – Associação e Agregação
      – Dependência
      – Herança



    Associação:

    •   Uma associação é uma conexão bidirecional entre classes
          – Uma associação é mostrada como uma linha conectando as
              classes relacionadas.
    •   Uma agregação é um tipo mais forte de conexão, aonde a relação é
        entre o todo e suas partes.
          – Uma agregação é mostrada como uma linha conectando as
              classes relacionadas com um losango perto da classes que
              representa o todo
    •   Uma relação de dependência é uma forma mais fraca de relação,
        mostrando uma relação entre um cliente e um fornecedor, aonde o
        cliente não tem conhecimento semântico do fornecedor
          – Uma dependência é mostrada como uma linha pontilhada entre
              o cliente e o fornecedor




                        © Copyright Rildo Ferreira, e-tecnologia.com, 2009         107
Linguagem de Modelagem Unificada
                                                                             UML

Estudo de Caso

Descobrindo os Relacionamentos:
•   Relações são descobertas examinando-se os Diagramas de Sequência
     – Caso dois objetos devam “conversar”, deverá haver um caminho
        para a comunicação




        Diretor           Álgebra
        Matrícula          curso

           3: insere aluno(Maria)




                                                  Diretor Matrúcula




                                                                     curso




                      © Copyright Rildo Ferreira, e-tecnologia.com, 2009           108
Linguagem de Modelagem Unificada
                                                                                 UML

 Estudo de Caso

Relacionamento:




                                                                      Algorítmo de Horário




                             Diretor Matrícula

                         incluiAluno(curso, AlunoInfo)                            curso
Formulário Matrícula                                                        nome
                                                                            NúmeroCréditos
                                Aluno                                       abrir()
                               nome                                         incluirAluno(AlunoInfo)
                               nível




     Professor                                                     Oferta Curso
    nome
    StatusCadeira                                                 local

                                                                 abrir()
                                                                 incluirAluno(AlunoInfo)




                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009                             109
Linguagem de Modelagem Unificada
                                                                            UML

Estudo de Caso

Multiplicidade e Navegação:
•   Multiplicidade define como muitos objetos participam numa relação
     – Multiplicidade é o número de instâncias de uma classe que se
         relacionam a UMA instância de uma outra classe
     – Para cada associação e agregação, haverá duas decisões
         relativas a multiplicidade a se tomar: Uma para cada lado da
         relação
•   Apesar de associações e agregações serem bidirecionais por
    definição, freqüentemente é desejável restringir a navegação em uma
    única direção
     – Caso a navegação seja restringida, uma seta é adicionada para
         se indicar a direção da navegação




                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009         110
Linguagem de Modelagem Unificada
                                                                                      UML

  Estudo de Caso

  Multiplicidade e Navegação:


                                                                    Algorítmo de Horário




                               Diretor Matrícula

                            incluiAluno(curso, AlunoInfo)                                  curso
                                     1                      1
                                                                            0..*   nome
Formulário Matrícula                                                               NúmeroCréditos
                     0..*         Aluno                                            abrir()
                                 nome                                              incluirAluno(AlunoInfo)
                                 nível

                                                  3..10                                1


                                                                4                  1..*
     Professor
     nome                                                            Oferta Curso
     StatusCadeira
                     1                                              local
                                                        0..4
                                                                    abrir()
                                                                    incluirAluno(AlunoInfo)




                            © Copyright Rildo Ferreira, e-tecnologia.com, 2009                          111
Linguagem de Modelagem Unificada
                                                                                   UML

Estudo de Caso

Herança

•     Herança é uma relação entre uma super-classe e suas subclasses
•     Há duas formas de se descobrir heranças:
       – Generalização
       – Especialização
•     Atributos comuns, operações, relações e/ou, são mostradas no nível
      aplicável mais alto da hierarquia




    Formulário Matrícula                                                  Algorítmo de Horário




                                 Diretor Matrícula

                             incluiAluno(curso, AlunoInfo)                           curso
                                                                                nome
     Usuário                                                                    NúmeroCréditos
     nome
                                                                                abrir()
                                                                                incluirAluno(AlunoInfo)

                                    Aluno
                                   nome
                                   nível

       Professor
      nome                                                       Oferta Curso
      StatusCadeira
                                                                 local
                                                                abrir()
                                                                incluirAluno(AlunoInfo)




                           © Copyright Rildo Ferreira, e-tecnologia.com, 2009                         112
Linguagem de Modelagem Unificada
                                                                                           UML

 Estudo de Caso

O Estado de um Objeto
•     Um diagrama de transição de estados mostra
        – O ciclo de vida de uma classe
        – Os eventos que causam a transição de um estado para outro
        – As ações que resultam de uma mudança de estado
•     Diagramas de Transição de Estados são criados para objetos que
      tenham um comportamento dinâmico significante



                                                                             Inclui aluno[ contador < 10 ]

                                        Incluir Aluno /
    Iniciar Ação                         Contador = 0
fazer: Iiniciar curso
                                                                                            Abrir
                                                                                    entrar: Registrar Aluno
                                                                                   Sair: incrementa contador


                  Cancelar

                                                          Cancelar                          [ contador = 10 ]

                   Cancelado
        fazer: Notificar Aluno Matriculado
                                                                                Fechado
                                                  Cancelar                fazer: Finalize curso




Diagrama de Transições de Estados



                                   © Copyright Rildo Ferreira, e-tecnologia.com, 2009                          113
Linguagem de Modelagem Unificada
                                                                           UML

Estudo de Caso


O Mundo Físico
•   Diagramas de Componentes ilustram a organização e
    dependências entre componentes de software
•   Um componente pode ser:
     – Um componente de código fonte
     – Um componente de runtime, ou
     – Um componente executável




                      © Copyright Rildo Ferreira, e-tecnologia.com, 2009         114
Linguagem de Modelagem Unificada
                                                                          UML

Estudo de Caso

Diagrama de Componentes




                                                     Registro
    Cobrança
                     Sistema
                     Cobrança




                                                                                  Usuário

                 curso.jar                                         pessoa.jar
                                          curso




   Curso.class          Oferta                        Aluno.class           Professor.class
                        curso.class




                     © Copyright Rildo Ferreira, e-tecnologia.com, 2009                115
Linguagem de Modelagem Unificada
                                                                              UML

Estudo de Caso


Distribuindo o Sistema
•   O Diagrama de Distribuição mostra a configuração dos elementos de
    processamento runtime e dos processos que rodam dentro deles
•   O Diagrama de Distribuição visualiza a distribuição dos componentes
    através de toda a empresa

Diagrama de Distribuição




                       Matrícula                                            Database




                                                     Sede
     Biblioteca                                     Principal


                       Salas




                       © Copyright Rildo Ferreira, e-tecnologia.com, 2009              116
Linguagem de Modelagem Unificada
                                                                           UML

 Exercício


Declaração do Problema:




O Hotel “Só quero Sossego” está precisando de sistema para
automatizar suas principais atividades e facilitar o gerenciamento de
suas operações.

O hotel contém um número de apartamentos disponíveis para
serem alugados aos hospedes. Cada apartamento tem as seguintes
características:
- Número, preços base, capacidade de pessoas
- Tipo (Single, double, triplo ou suíte)
O preço de cada apartamento está relacionado com seu tipo e
sazonalidades (períodos especiais, tais como: férias, natal,
carnaval...)
Um hospede pode fazer reserva de mais de um apartamentos
através do telefone, Internet ou pessoalmente no balcão de reserva
do Hotel . As reversas devem ser registras no livro de reservas, que
deve conter as seguintes informações:
- Tipo de apartamento, período, duração da estadia e data da
reserva. A reserva somente é confirmada após a verificação da
disponibilidade do apartamento na data informada. O cliente deve
receber as seguintes informações se confirmada a reserva:
- Preço e detalhes sobre hotel. Caso contrário deve receber a
informação que não foi possível fazer a reserva para data
informada.


                      © Copyright Rildo Ferreira, e-tecnologia.com, 2009         117
Linguagem de Modelagem Unificada
                                                                         UML

Exercício


Declaração do Problema (continuação):

- As reservas também podem ser feitas diretamente na
Recepção do Hotel.
No Check-in o hospede é identificado juntamente com sua
reserva.
No Check-out verifica-se todos os serviços prestados ao
hospede e as despesas advindas desses serviços tais como:
lavandeira, restaurante, telefonia, assim como a consumação do
“frigobar”.
O cliente poderá pagar a conta com cartão de crédito, dinheiro,
cheque ou cheque de viagens.
A disponibilidade deseja para o sistema é de 24x7 para
Internet, as interfaces com usuários devem ser simples e
sistema deve seguir o padrão de Identidade Visual (Manual de
Identidade Visual).
O sistema deve implementar um nível de segurança que garanta
que somente o usuário que possuir uma senha (esta deve ser
criptografa) poderá fazer alterações nos dados da reserva ou
alterar seus cadastrais.

 Exercício:

 - Fazer o Diagrama de Caso de Reserva
 - Fazer o Diagrama de Seqüência
 - Fazer o Diagrama de Classes (Classes de Negócio)
 - Fazer o Diagrama de Projeto (Refinamento de Casses)
 - Fazer o Diagrama de Competentes

                    © Copyright Rildo Ferreira, e-tecnologia.com, 2009         118
Linguagem de Modelagem Unificada
                                                               UML




             Apêndice



          © Copyright Rildo Ferreira, e-tecnologia.com, 2009         119
Linguagem de Modelagem Unificada
Apêndice A                                                                               UML

   Notação UML

                                                             DIAGRAMAS EM QUE            MODELO A QUE
       SÍMBOLO GRÁFICO                         NOME
                                                             APARECE USUALMENTE           PERTENCEM

                                          ASSOCIAÇÂO DE Diagrama de Classes,              Classes de Objetos
                                           AGREGAÇÃO    Diagrama de Componentes.            Componentes


                                                        Diagrama de Classes,              Classes de Objetos
                                          ASSOCIAÇÂO DE
                                           COMPOSIÇÃO   Diagrama de Componentes.            Componentes


                                                        Diagrama de Casos de Uso,            Caso de Uso
                                          ASSOCIAÇÂO DE Diagrama de Classes,              Classes de Objetos
                                           DEPENDÊNCIA Diagrama de Componentes,             Componentes
                                                        Diagrama de Implantação.            Componentes

                                                             Diagrama de Casos de Uso,       Caso de Uso
                                         ASSOCIAÇÂO DE
                                         GENERALIZAÇÃO
                                                             Diagrama de Classes.         Classes de Objetos

                                                             Diagrama de Casos de Uso,       Caso de Uso
                                           ASSOCIAÇÂO        Diagrama de Classes,         Classes de Objetos
                                            REGULAR          Diagrama de Componentes,       Componentes
                                                             Diagrama de Implantação.       Componentes
                                                             Diagrama de Casos de Uso,       Caso de Uso
                                               ATOR          Diagrama de Seqüência.          Caso de Uso



                                           CASO DE USO       Diagrama de Casos de Uso.       Caso de Uso



               Nome da Classe

                  Atributos

                                              CLASSE         Diagrama de Classes.         Classes de Objetos
                 Operações




             Nome do Componente            COMPONENTE        Diagrama de Componentes        Componentes




                                                             Diagrama de Estados,         Classes de Objetos
             Nome do Estado
                                              ESTADO
                                                             Diagrama de Atividades.         Caso de Uso

                                                             Diagrama de Estados,         Classes de Objetos
                                           ESTADO FINAL
                                                             Diagrama de Atividades          Caso de Uso




                                  © Copyright Rildo Ferreira, e-tecnologia.com, 2009                           120
Linguagem de Modelagem Unificada
Apêndice A                                                                                                           UML

  Notação UML

                                                                                         Diagrama de Estados,             Classes de Objetos
                                                                     ESTADO INICIAL      Diagrama de Atividades.             Caso de Uso

   Nome da “Interface”        ou             <<interface>>
                                           Nome da “Interface”

                                             Operação1 ()
                                             Operação2 ()
                                             Operação3 ()              “INTERFACE”       Diagrama de Componentes            Componentes




                                                                      INTERVALO DE
                                                                      EXECUÇÃO DE        Diagrama de Seqüência               Caso de Uso
                                                                        OPERAÇÂO

                                                                      MENSAGEM DE
                                                                                         Diagrama de Seqüência               Caso de Uso
                                                                        RETORNO
                                                                      MENSAGEM E
                                                                      CHAMADA DE
                                                                                         Diagrama de Seqüência               Caso de Uso
                                                                       OPERAÇÂO
                                                                        “Síncrona”
                                                                      MENSAGEM E
                                                                      CHAMADA DE
                                                                                         Diagrama de Seqüência               Caso de Uso
                                                                       OPERAÇÃO
                                                                       “Assíncrona”

                                                                            NÓ           Diagrama de Implantação            Componentes




                                   texto                                   NOTA          Em qualquer diagrama


                                                                                         Diagrama de Seqüência,              Caso de Uso
     identificador:Classe       ou                      :Classe
                                                                         OBJETO
                                                                                         Diagrama de Atividades              Caso de Uso
                                                                                         Em qualquer diagrama em que é
                                                                                         necessário representar um
                            Nome do Pacote                               PACOTE          conjunto de coisas que devem
                                                                                         estar agrupadas para efeito de
                                                                                         uma organização apropriada
                                                                                         Diagrama de Estados,             Classes de Objetos
                                                                      TRANSIÇÃO DE
                                                                         ESTADO
                                                                                         Diagrama de Atividades              Caso de Uso



                                                                     AUTODELEGAÇÃO       Diagrama de Seqüência               Caso de Uso




                                                             © Copyright Rildo Ferreira, e-tecnologia.com, 2009                            121
Linguagem de Modelagem Unificada
Apêndice B                                                                   UML

 UML 2.0
Diagramas:




Visões UML 2.0:
        Visão                   Descreve                                Diagramas
 Visão de Requisitos   Requisitos funcionais do             diagramas de casos de uso
 Funcionais            sistema pelo ponto de vista
                       do usuário.

 Visão Estrutural      Estrutura estática do                diagrama de classes
 Estática              sistema.                             diagrama de estruturas



 Visão de              Comportamento dinâmico               diagramas de seqüências
 Comportamento         do sistema, mostrando                diagramas de atividades
 Dinâmico              suas interações.                     diagramas de estados




                        © Copyright Rildo Ferreira, e-tecnologia.com, 2009              122
Linguagem
Notas:                       de Modelagem Unificada
                                                                                 UML
Marcas Registradas:

Todos os termos mencionados e reconhecidos como Marca Registrada e/ou
comercial são de responsabilidade de seus proprietários. O autor informa não estar
associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer
deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde já
o autor informa que o uso é apenas ilustrativo e/ou educativo, não visando ao lucro,
favorecimento ou desmerecimento do produto/fabricante.

É proibido o uso deste material para fins comerciais.



Melhoria e Revisão:

Este material esta em processo constante de revisão e melhoria, se você encontrou
algum problema ou erro envie um e-mail nós.




Criticas e Sugestões:

Nós estamos abertos para receber criticas e sugestões que possam melhorar o
material, por favor envie um e-mail para nós.



Imagens:
Google, Flickr e Banco de Imagem.




                        Rildo F dos Santos (rildosan@uol.com.br)

                                                                                       123
                            © Copyright Rildo Ferreira, e-tecnologia.com, 2009
Linguagem
Licença:       de Modelagem Unificada
                                                                   UML




                                                                         124
              © Copyright Rildo Ferreira, e-tecnologia.com, 2009
Linguagem
Licença:       de Modelagem Unificada
                                                                   UML




                                                                         125
              © Copyright Rildo Ferreira, e-tecnologia.com, 2009
Linguagem de Modelagem Unificada
                                                                              UML
Notas do autor


     Marcas Registradas:

     Todos os termos mencionados e reconhecidos como Marca
     Registrada e/ou comercial são de responsabilidade de seus
     proprietários. O autor informa não estar associada a nenhum produto
     e/ou fornecedor apresentado neste material. No decorrer deste,
     imagens, nomes de produtos e fabricantes podem ter sido utilizados,
     e desde já o autor informa que o uso é apenas ilustrativo e/ou
     educativo, não visando ao lucro, favorecimento ou desmerecimento
     do produto/fabricante.


     Melhoria e Revisão:

     Este material esta em processo constante de revisão e melhoria, se
     você encontrou algum problema ou erro envie um e-mail nós.




     Criticas e Sugestões:

     Nós estamos abertos para receber criticas e sugestões que possam
     melhorar o material, por favor envie um e-mail para nós.


      Imagens:

      Google, Flickr e Banco de Imagem.




                    Rildo F dos Santos (rildosan@uol.com.br)


                         © Copyright Rildo Ferreira, e-tecnologia.com, 2009         126
Linguagem de Modelagem Unificada
 UML - Linguagem de
                  UML
 Modelagem Unificada




          © Copyright Rildo Ferreira, e-tecnologia.com, 2009

UML

  • 1.
    Linguagem de ModelagemUnificada UML - Linguagem de UML Modelagem Unificada Autor: Rildo F. Santos (rildosan@uol.com.br) © Copyright Rildo Ferreira, e-tecnologia.com, 2009
  • 2.
    Linguagem de ModelagemUnificada UML Conteúdo Parte 1: - Introdução a Orientação a Objeto Parte 2: - Introdução a UML Parte 3: - Diagramas da UML Parte 4: - Estudo de Caso - Exercício Apêndices: - Notação UML - UML 2.0 © Copyright Rildo Ferreira, e-tecnologia.com, 2009 2
  • 3.
    Linguagem de ModelagemUnificada UML Palavra inicial A UML é padrão de mercado (www.omg.org/uml) que representa as melhores práticas da engenharia de software em modelagem de software; A UML permite que desenvolvedores visualizem o software através modelos e de um conjunto de diagramas; A modelagem visual facilita o entendimento e a comunicação do 'quê' precisa ser feito e 'como' deve ser feito o software; Os diagramas oferecem a padronização, que é necessária quando trabalhamos com grandes equipes de desenvolvedores ou com fornecedores; Neste treinamento apresentaremos todos os diagramas, elementos e a semântica da Linguagem de Modelagem Unificada; O treinamento: Começa sendo demonstrado uma introdução a orientação a objetos com objetivo de fazer um alinhamento de conhecimento da Orientação a Objetos. Depois é apresentado a UML, semântica e todos os diagramas (da versão 1.5) Também será exibido em estudo de caso com propósito de mostrar como é feito a modelagem visual de software com UML. Será utilizada uma ferramenta de modelagem visual para ajudar o aprendizado da UML. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 3
  • 4.
    Linguagem de ModelagemUnificada UML Introdução a Orientação a Objetos Objetivo desta parte: É apresentar e discutir uma introdução a Linguagem de Modelagem Unificada versão 1.5. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 4
  • 5.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Introdução a Orientação a Objetos Os sistemas projetados atualmente são maiores, mais complexos e sujeitos a constantes alterações e adaptações aos diversos ambientes computacionais. Através do encapsulamento de informações, a reutilização de esforços empregados em projetos anteriores e a modificação do sistema se tornaram mais fáceis. Orientação a Objetos: Um problema sempre define ou está contido em um domínio (sujeito a leis da física, da matemática, do direito, do mercado financeiro e por ai a fora). Assim a primeira resposta a buscar no desenvolvimento de um sistema em computação é a construção de um modelo que coloque em termos de algoritmos o domínio da aplicação. Pensando num modelo de objetos, numa abordagem de alto nível de abstração há três fases: Análise Metodologia Orientação a Objetos Análise: Discute o porque, o que (com quais informações e para quais serviços) se deve fazer Projeto e Modelagem UML Projeto: O Como fazer, de forma a ficar manutenível; Implementação Linguagem Java O mapeamento em linguagem processável pelo computador © Copyright Rildo Ferreira, e-tecnologia.com, 2009 5
  • 6.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Introdução a Orientação a Objetos O Método Orientação a Objetos A metodologia Orientação a Objetos é baseada em noções, consideradas intuitivas ao ser humano, tais como: objetos e atributos, classes e membros, estruturas e componentes, ação e reação. Os métodos de desenvolvimento de software anteriores ao surgimento desse paradigma organizam a especificação de um sistema de acordo com suas funções ou com os dados manipulados. Geralmente, esses métodos apresentam dificuldades na transição da representação do sistema em uma fase para outra do processo de desenvolvimento (da Análise para o Projeto e, do Projeto para a Implementação). Em um sistema orientado a objetos, os dados e todas as operações (funções), que manipulam esses dados, são agrupados em uma única estrutura: os objetos. Desde o início do desenvolvimento desses sistemas e, em todas as suas fases, o analista trabalha com o mesmo elemento de abstração, os objetos. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 6
  • 7.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Classe O que é uma Classes? “Uma classe descreve um conjunto de objetos com propriedades e comportamentos semelhantes e com relacionamentos comuns com outros objetos” As classes são as partes mais importantes de qualquer sistema orientada a objetos. Usamos as classes para capturar o vocabulário do sistema que está em desenvolvimento. Essas classes podem incluir abstrações que são parte do domínio do problema, assim como as classes que fazem uma implementação. Podemos usar ainda as classes para representar itens de software, de hardware e até itens que sejam somente conceituais. Exemplo: A classe Pessoa deverá ter atributos e métodos comuns Nome da Classe Pessoa Nome Idade Atributos GetNome GetIdade Métodos Os nome deverão ser identificadores únicos em conjunto de classes, este devem ser substantivos. Exemplo: Produto. Tipos de Classes: • Classe Concreta • Classe Abstrata © Copyright Rildo Ferreira, e-tecnologia.com, 2009 7
  • 8.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Classe Exemplo: A classe Pessoa. Classe concreta. public class Pessoa { Exemplo de diagrama de classe usando Rational Rose (notação Unified) //Atributos private String nome; private int idade; //métodos public String getNome(){ return nome; } public void setNome(String nome){ this.nome = nome; } public int getIdade(){ return idade; } public void setIdade(int idade){ this.idade = idade; } } Classe Concreta: Uma classe que tem assinatura e a implementação de métodos. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 8
  • 9.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Objetos O que são Objetos ? São qualquer coisa na natureza que possua propriedades (características) e comportamentos (operações). Exemplo: uma pessoa, uma cão e etc Orientação a Objetos: O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados. Estrutura de um objeto Objetos combinam propriedades (atributos) e comportamentos (operações ou métodos). Exemplos de Objetos: Objeto: Pessoa Propriedades Comportamentos Andar Bonita Correr Jovem Falar Inteligente Chorar Dançar © Copyright Rildo Ferreira, e-tecnologia.com, 2009 9
  • 10.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Métodos Métodos são os comportamentos ou as funções do objeto. A declaração é feita da seguinte forma: < modificador > < tipo de retorno > < nome > ( < lista de argumentos > ) < bloco > < modificador > -> segmento que possui os diferentes tipos de modificações incluíndo public, protected, private e default (neste caso não precisamos declarar o modificador). < tipo de retorno > -> indica o tipo de retorno do método. < nome > -> nome que identifica o método. < lista de argumentos > -> todos os valores que serão passados como argumentos. Exemplos: public void somaDias (int dias) { } private int somaMes(int mês) { } protected String getNome() { } int getAge(double id) { } public class CalculaData { private int day, month, year; public float calcDays(int age ) { método return 365.25F * age; } } © Copyright Rildo Ferreira, e-tecnologia.com, 2009 10
  • 11.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Atributos e variáveis (Linguagem Java) Os atributos são pertencentes a classe, eles podem ser do tipo primitivo ou referência (objetos), os seus modificadores podem ser: public, private, protected ou default. O ciclo de vida destes atributos estão vinculados ao ciclo de vida da classe. Variáveis Locais: São definidas dentro dos métodos. Elas têm o ciclo de vida vinculado ao ciclo do método, também são chamadas de variáveis temporárias public class Disciplina { private int cargaHoraria; Atributos private String nome; public Disciplina(String nome, int Modificador cargaHoraria){ this.nome = nome; this.cargaHoraria = calcCargaHoraria(cargaHoraria); } public String getNome(){ return nome; } public int getCargaHoraria(){ return cargaHoraria; } public int calcCargaHoraria(int qdeHoras) { int horasPlanejamento = (int) Variáveis ( qdeHoras * 0.1); temporárias return cargaHoraria = horasPlanejamento + qdeHoras; } } © Copyright Rildo Ferreira, e-tecnologia.com, 2009 11
  • 12.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Abstração de Dados: Para discutirmos sobre classes abstratas é necessário falarmos sobre a abstração de dados. O que é abstração? Podemos dizer abstração é generalização. Qual é a função da abstração ? A função da abstração é capturar as propriedades e os comportamentos essenciais, como se fosse uma fatoração, desta forma determina-se o que é importante e o que não é. Aeronave Mamífero Caça Helicóptero Passageiros Vaca Urso Cavalo As classes Aeronave e Mamífero neste caso são abstratas e ambas representam um domínio. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 12
  • 13.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Abstração de Dados: Classes Abstratas Uma classe abstrata é uma classe que: • Provê organização • Não possui “instances” • Possui uma ou mais operações (métodos) abstratas Classe Abstrata Pessoa getNome() Pessoa Pessoa Física Jurídica getNome() getNome() Classe concreta Uma operação abstrata só determina a existência de um comportamento não definindo uma implementação. Classes Abstratas - Exemplo: Classe Abstrata Funcionário Analista Programador Classe concreta © Copyright Rildo Ferreira, e-tecnologia.com, 2009 13
  • 14.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Relacionamento Ao construir as abstrações, descobrimos que são poucas as classes que trabalham sozinhas. Em vez disso, a maioria das classes colaboram com outras classes de várias maneiras. Portanto, quando estamos modelando, devemos identificar as classes, atributos, métodos e relacionamentos. Existem alguns tipos principais de relacionamentos entre classes e objetos: • Herança • Agregação Veja a definição de relacionamento: Um relacionamento é a conexão entre itens. É representado graficamente como um caminho, que tem tipos diferentes de linhas para distinguir os tipos de relacionamentos. Exemplo: Hierarquia de Classes SuperClasse Pessoa SubClasses Terceiro Aluno Funcionário Professor Pessoal Pessoal Professor Autônomo Operacional Administrativo Relacionamento: 1 - Pessoa é a SuperClasse de Terceiro, Aluno e de Funcionário, estas são subclasse de Pessoa. 2 - Terceiro e Funcionário são SuperClasse de Professor e Pessoal Administrativo e de Professor Autônomo e Pessoal Operacional respectivamente. E estas são subclasse de Terceiro e Funcionário. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 14
  • 15.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Herança Herança é o mecanismo pelo qual elementos mais específicos incorporam a estrutura e comportamento de elementos mais gerais, Uma classe derivada herda a estrutura de dados e métodos de sua classe “base”, mas pode seletivamente: • adicionar novos métodos • estender a estrutura de dados • redefinir a implementação de métodos já existentes Uma classe “pai” proporciona a funcionalidade que é comum a todas as suas classes derivadas, filhas, enquanto que uma classe derivada proporciona a funcionalidade adicional que especializa seu comportamento. Exemplo: Curso Universitário extends Graduação Pós-Graduação extends Especialização Extensão Hierarquia de Classes Podemos dizer que Graduação é tipo de Curso Universitário, assim como Curso de Especialização ou de Extensão. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 15
  • 16.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Herança Exemplo: Implementação- Pessoa, Aluno, Terceiro, Funcionário public abstract class Pessoa { protected String idPessoa; protected int idade; protected String nome; public Pessoa(String nome) { this.nome = nome; } public abstract String getNome(); public void setidPessoa() { } public abstract int getIdade(); public void setIdade(int idade) {} } public class Terceiro extends Pessoa{ public class Aluno extends Pessoa{ public class Funcionario extends Pessoa{ private int codigoTerceiro; public Aluno(String nome) private int codigofuncionario; public Terceiro(String nome) { public Funcionario(String nome) { super(nome); { super(nome); } super(nome); } public int getIdade() } public int getIdade() { public int getIdade() { return 0; { return 0; } return 0; } public String getNome() } public String getNome() { public String getNome() { return ""; { return ""; }; return ""; }; } }; } } Pessoal Professor Administrativo Professor Pessoal Autônomo Operacional © Copyright Rildo Ferreira, e-tecnologia.com, 2009 16
  • 17.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Herança Exemplo de Herança: Implementação: ProfessorAutonomo, PessoalOperacional, Professor e Pessoal Administrativo Pessoa Terceiro Aluno Funcionário public class ProfessorAutonomo public class Professor extends Terceiro{ extends Funcionario{ public ProfessorAutonomo( public Professor( String nome) String nome) { { super(nome); super(nome); } } } } public class PessoalOperacional public class PessoalAdministrativo extends Terceiro{ extends Funcionario{ public PessoalOperacional( public PessoalAdministrativo( String nome) String nome) { { super(nome); super(nome); } } } } © Copyright Rildo Ferreira, e-tecnologia.com, 2009 17
  • 18.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Herança Múltipla A herança múltipla é quando uma classe tem mais que uma Superclasse associada e que herde as características de todas elas. Veja a figura abaixo: Superclasse <<interface>> Superclasse Mamífero Pessoa Pessoa Física Pessoa Jurídica Relacionamento: Pessoa Física é tipo de pessoa, mas também é mamífero. Na linguagem Java: A Herança múltipla é somente permitida por contrato, neste caso a Mamífero é uma Interface, podemos dizer que é tipo especial de classe, que não pode ter métodos implementados, apenas as assinaturas. <<interface>> Mamífero Interface: O que é interface ? Interface é um contrato entre o cliente, que pode ser classe concreta ou abstrata, e a interface. Este contrato é garantia que o métodos assinados na interface serão implementados na classe cliente. Nota: Na interface também podemos declarar constantes (public static final). interface Product { Exemplo de Interface String getName (); double getCost (); } © Copyright Rildo Ferreira, e-tecnologia.com, 2009 18
  • 19.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Herança Múltipla Exemplo: Implementação da classe Pessoa, PessoaFisica e PessoaJuridica e a interface Mamifero public abstract class Pessoa { protected String idPessoa; protected int idade; protected String nome; public Pessoa(String nome) { this.nome = nome; } public abstract String getNome(); public interface Mamifero { public abstract int getIdade(); final int qdeOlhos=2; public void setIdade(int idade){ } } public int getQdePernas(); } extends implements extends public class PessoaJuridica1 extends Pessoa { public class PessoaFisica1 extends Pessoa public PessoaJuridica1(String nome) implements Mamifero { { public PessoaFisica (String nome) super(nome); { } super(nome); public int getIdade() } { public int getQdePernas(){ return 0; return 2; } } public String getNome(){ public String getNome() return “”; } { public int getIdade(){ return ""; return 0; } }; } } Exercício: 1 - Podemos implementar a herança múltipla na Classe Pessoa? Por que ? 2 - Por que somos obrigado a assinar ou implementar os métodos da Interface Mamifero na classe PessoaFisica © Copyright Rildo Ferreira, e-tecnologia.com, 2009 19
  • 20.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Encapsulamento É uma proteção adicional dos dados do objeto de possíveis modificações impróprias, forçando o acesso a um nível mais baixo para tratamento do dados. Operações/métodos/interface Classe Empregado e método pública getSalario Dados/Atributos/propriedades privada O atributo salario public class Empregado { O atributo salario somente poderá ter private double salario; private double salario; um valor atribuído ou alterado, através de método público. public Empregado(){ salario=0.00; } public double getSalario(){ Através do método getSalario, que return this.salario; tem modificador public, podemos } manipular ou recuperar o valor do } atributo salario. Encapsulamento (“data hiding”) Encapsulamento é definido como uma técnica para minimizar dependências entre “módulos” através da definição de interfaces externas. Também conhecido como: O fenômeno da “caixa preta” © Copyright Rildo Ferreira, e-tecnologia.com, 2009 20
  • 21.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Encapsulamento A interface (pública) de um objeto declara todas as operações permitidas (métodos) public class Empregado { private double salario; private double salario; public Empregado(){ salario=0.00; } public double getSalario(){ return this.salario; } } public class Gerente1 extends Empregado { private double bonus = .15; public double getSalario(){ //referência ao método getSalario return super.getSalario() + (super.getSalario()*this.bonus); } } Todo o acesso aos dados do objeto é feito através da chamada a uma operação (método) da sua interface. Encapsulamento - Benefícios - Segurança: Protege os atributos dos objetos de terem seus valores corrompidos por outros objetos. - Independência: “Escondendo” seus atributos, um objeto protege outros objetos de complicações de dependência de sua estrutura interna © Copyright Rildo Ferreira, e-tecnologia.com, 2009 21
  • 22.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Polimorfismo Definição: “Polimorfismo” é uma operação que pode assumir múltiplas formas, a propriedade segundo o qual uma operação pode comportar-se diferentemente em classes diferentes” (Rumbaugh) O polimorfismo é o responsável pela extensibilidade em programação orientada a objetos. overloading Polimorfismo overriding Overloading: Possibilidade de reúso do nome do método para diferentes implementações, em tempo de execução, a aplicação, escolherá o método adequado para cada chamada, veja o exemplo. TesteSoma Soma somar(int a, int b) somar(float a, float b) somar(char a, char b) somar(long a, long b)) Para cada tipo de dados existe um método, o reúso do nome do método é permitido, entretanto a lista de argumentos deve ser diferente, veja o exemplo acima: o método somar é definido várias vezes, entretanto com a lista de argumentos diferente, desta forma evitaremos problemas como ambigüidade. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 22
  • 23.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Polimorfismo Overrinding - Exemplo: Empregado setSalario() getSalario() Engenheiro Gerente Secretária getSalario() getSalario() getSalario() Diretor getSalario() O método setSalario é herdado da Superclasse (Empregado), entretanto para cada cargo (tipo de empregado) ele tem uma implementação diferente. Por exemplo: - Para Engenheiro e Secretária salário = (Dias Trabalhados x Valor hora) - Para Gerente salário = (Dias Trabalhados x Valor hora) + Bônus - Para Diretor salário = (Dias Trabalhados x Valor hora) + Bônus + Participação nos lucros. public class EmpregadoExemplo { private double salario; public void setSalario(int diastrabalhados, double valorhora ){ this.salario = diastrabalhados * valorhora * 8; public class Engenheiro extends } EmpregadoExemplo { public double getSalario(){ public static void main(String args[]) return this.salario; { } Engenheiro eng = new Engenheiro(); } eng.setSalario(22, 35.00); System.out.println(eng.getSalario()); } } © Copyright Rildo Ferreira, e-tecnologia.com, 2009 23
  • 24.
    Linguagem de ModelagemUnificada UML Orientado a Objetos Polimorfismo Overrinding Uma subclasse pode mudar o comportamento herdado da Superclasse, ou seja, um método herdado poderá ser alterado. Veja o exemplo abaixo: Conta Bancária getSaldo() Conta Corrente Conta Poupança Investimentos getSaldo() getSaldo() getSaldo() O método getSaldo é herdado da Superclasse (Conta Bancária), entretanto para cada tipo de Conta ele tem uma implementação diferente. Por exemplo: - Para apurar o saldo da Conta Corrente saldo atual = (soma dos depósitos + saldo anterior) - saques Para a conta poupança seria saldo atual = (soma dos depósitos + saldo anterior + juros) - saques Para a conta de investimentos seria saldo atual = (soma dos aplicações + saldo anterior + juros) - resgates - ir Exercício: Faça a implementação das classes acima. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 24
  • 25.
    Linguagem de ModelagemUnificada UML Introdução a UML © Copyright Rildo Ferreira, e-tecnologia.com, 2009 25
  • 26.
    Linguagem de ModelagemUnificada UML Introdução a UML Visão 4 + 1 Visão Visão da de Implementação Projeto Funcionalidade Codificação Vocabulário Montagem Visão de Caso de Uso Visão do Visão da Processo Implantação Desempenho Topologia do Sistema Escalabilidade Distribuição Throughput Instalação Conceitual Físico © Copyright Rildo Ferreira, e-tecnologia.com, 2009 26
  • 27.
    Linguagem de ModelagemUnificada UML Introdução a UML Visão 4 + 1 Visão de Caso de Uso • A visão do caso de uso abrange os casos de usos que descrevem o comportamento do sistema conforme é visto pelos seus usuários finais, analista e pessoal de teste. Essa visão não especifica realmente a organização do sistema de softwasre. Porém , ela existe para especificar as forças que determinam a forma da arquitetura do Sistema. Com a UML, os aspectos estáticos dessa visão são representados em diagramas de caso de uso, enquanto os aspectos dinâmicos são representados em diagrama de interação., diagrama de gráfico de estados e diagrama de atividades Visão de Processo • A visão de projeto de um sistema abrange as classes e colaborações que formam o vocabulário do problema e de sua solução. Essa perpectiva proporciona principalmente um suporte para os requisitos funcionais do sistema, ou seja, os serviços que o sistema deverá fornecer a seus usuários finais. Com a UML, os aspectos estáticos dessa visão são captados em diagramas de classes e de objetos; os aspectos dinâmicos são captados em diagramas de interações, de estados e de atividades. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 27
  • 28.
    Linguagem de ModelagemUnificada UML Introdução a UML Visão 4 + 1 Visão de Processo • A visão do processo abrange os threads e os processos que formam os mecanismos de concorrência e de sincronização do sistema. Essa visão tem com objetivo principal tratar questões de desempenho, à escalabilidade e ao throughput do sistema. Com a UML, os aspectos estáticos e dinâmicos dessa visão são capturados nos mesmos tipos de diagrama da visão do projeto, mas o foco voltado para as classes ativas que repesentam esses threads e processos. Threads = Linhas de execução em paralelos, estas linhs podem ser programas ou parte. Visão de Implementação • A visão de implementação de um sistema abrange os componentes e os arquivos utilizados para a montagem e fornecimento do sistema físico. Essa visão envolve principalmente o gerenciamento da configuração das versões do sistema, compostas por componentes e arquivos de alguma maneira independentes, que podem ser reunidos de diferentes formas para a produção de um sistema executável. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 28
  • 29.
    Linguagem de ModelagemUnificada UML Introdução a UML Visão 4 + 1 Visão de Implantação • A visão do implantação de um sistema abrange os nós que formam a topologia de hardware em que o sistema é executado. Essa visão direciona principalmente a distribuição, o fornecimento e a instalação das partes que constituem o sistema físico. Com a UML, os aspectos estáticos dessa visão são representados em diagrmas de implantação; os aspectos dinâmicos são capturados em diagramas de interações, de gráfico de estados e diagramas de atividades. Cada uma dessas visões pode ser considerada isoladamente, permitindo que diferentes participantes orientem seu foco para os aspectos da arquitetura do sistema que mais lhes interessem. Essas cincos visões também interagem entre sí, por exemplo: Os nós na visão de implantação contêm componentes da visão de implementação que, por sua vez, representa a realização física de classes, interfaces, colaborações e classes ativas provenientes das visões de projeto e de processo. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 29
  • 30.
    Linguagem de ModelagemUnificada UML Introdução a UML Desenvolvimento de Software Estrutura: Análise de Requisitos Comportamento Casos de Uso externo Comportamento Seqüência Colaboração interno (eventos) Estrutura Classes Implementação Distribuição © Copyright Rildo Ferreira, e-tecnologia.com, 2009 30
  • 31.
    Linguagem de ModelagemUnificada UML Introdução a UML Produtos dos Workflows de Requisitos e de Análise: Documento de Visão Requisitos Especificação de Requisitos (Casos de Uso) Modelo Conceitual ou Modelo de Domínio Análise Vocabulário do Sistema Arquitetura Modelo de Arquitetura Inicial © Copyright Rildo Ferreira, e-tecnologia.com, 2009 31
  • 32.
    Linguagem de ModelagemUnificada UML Introdução a UML Produtos dos Workflows de Projeto Diagrama de Seqüência / Colaboração Diagrama de Atividades* Projeto Diagrama de Estados* Diagrama de Classes (Refinado) * se necessário © Copyright Rildo Ferreira, e-tecnologia.com, 2009 32
  • 33.
    Linguagem de ModelagemUnificada UML Introdução a UML Produtos dos Workflows de Arquitetura Diagrama de Componentes Diagrama de Distribuição(Deployment) Arquitetura Modelo de Arquitetura * se necessário © Copyright Rildo Ferreira, e-tecnologia.com, 2009 33
  • 34.
    Linguagem de ModelagemUnificada UML Introdução a UML Por que fazer a modelagem? Com a modelagem, alcançamos alguns objetivos: 1 - Os modelos ajudam a visualizar o sistema como ele é ou como desejamos que seja 2 - Os modelos permitem especificar a estrutura ou o comportamento de um sistema 3 - Os modelos proporcionam um guia para a construção do sistema 4 - Os modelos documenta o sistema Construímos modelos para compreender melhor que estamos desenvolvendo O Que é Modelagem Visual? Modelagem Visual significa modelar com a utilização de notações padrão. Precisamos adotar uma ferramenta, uma notação e linguagem para tal empreitada. UML (Linguagem de Modelagem Unificada) é a linguagem de modelagem é das mais populares do momento. Mas podemos optar por usar OMT, por exemplo. “A Modelagem captura as partes essenciais do sistema.” (Rumbaugh) © Copyright Rildo Ferreira, e-tecnologia.com, 2009 34
  • 35.
    Linguagem de ModelagemUnificada UML Introdução a UML O Que é Modelagem Visual? Modelagem visual significa modelar com a utilização de notações padrão. Precisamos adotar uma ferramenta, uma notação e linguagem para tal empreitada. UML (Linguagem de Modelagem Unificada) é a linguagem de modelagem é das mais populares do momento. A UML (Linguagem de Modelagem Unificado) é padrão mantido pelo OMG (www.omg.org/uml). © Copyright Rildo Ferreira, e-tecnologia.com, 2009 35
  • 36.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? A UML (Linguagem de Modelagem Unificada) é uma linguagem-padrão para elaboração da estrutura de projetos de software. A UML poderá ser usada para: • Visualização • Especificação • Construção de modelos e diagramas • Documentação. A UML é adequada para a modelagem de sistemas, cuja a abrangência poderá incluir sistemas de informação corporativos a serem distribuídos a Aplicação baseadas em Web e até sistemas complexos embutidos de tempo real. A UML é apenas uma linguagem e, portanto, é somente uma parte de um método para desenvolvimento de software. Ela é independente do processo, apesar de ser perfeitamente utilizada em processo orientado a casos de usos, centrado na arquitetura, iterativo e incremental. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 36
  • 37.
    Linguagem de ModelagemUnificada UML Introdução a UML Diagramas* ESTÁTICOS . Diagrama de Classes Modela a estrutura . Diagrama de Objetos do sistema . Diagrama de Componentes . Diagrama de Distribuição DINÂMICOS . Diagrama de Casos de Uso . Diagramas de Interação - Diagrama de Seqüência Modela o comportamento - Diagrama de Colaboração do sistema . Diagrama de Atividade . Diagrama de Estados Nota: diagramas da versão 1.5 © Copyright Rildo Ferreira, e-tecnologia.com, 2009 37
  • 38.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? A UML é linguagem para documentação A construção de software produz todos os tipos de artefatos além do código executável. Estes artefatos incluem o seguinte: - Requisitos - Arquitetura - Projeto - Código-Fonte - Planos de Projeto - Teste - Protótipos - Versões A UML abrange a documentação da arquitetura do sistema e de todos os seus detalhes. A UML também proporciona uma linguagem para expressão de requisitos e para realização de testes. Por fim, a UML oferece uma linguagem para modelagem das atividades de planejamento do projeto e de gerenciamento de versões. Onde a UML pode ser utilizada ? A UML se destina principalmente a construção de software complexos. Atualmente sendo empregada largamente na construção de Sites de E-commerce e E-business © Copyright Rildo Ferreira, e-tecnologia.com, 2009 38
  • 39.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML O Vocabulário da UML abrange três tipos de blocos de construção: - Itens - Relacionamentos - Diagramas - Itens, Existem quatro tipos de itens na UML Itens estruturais: São os substantivos utilizados em modelos da UML. São as partes mais estáticas do modelo, representando elementos conceituais ou físicos. Primeiro, as classes são descrições como conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamento e semântica. Nome Atributos Métodos © Copyright Rildo Ferreira, e-tecnologia.com, 2009 39
  • 40.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens (continuação), Segundo, uma interface é uma coleção de operações que especificam serviços de uma classe ou componente. Portanto, uma interface descreve o comportamento externamente visível desse elemento. Uma interface poderá representar todo o comportamento de uma classe ou componente, como também apenas parte do comportamento. A interface define um conjunto de especificações de operações (assinaturas), mas nunca um conjunto de implementações de operações. Calculo Terceiro, as colaborações definem interação e são sociedades de papéis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior à soma de todos os elementos. Portanto, as colaborações contêm dimensões estruturais, assim como comportamentais. As colaborações representam a implementação de padrões que formam um sistema . Cadeia de Responsabilidade © Copyright Rildo Ferreira, e-tecnologia.com, 2009 40
  • 41.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens (continuação), Quarto, um caso de uso é a descrição de conjunto de sequência de ações realizadas pelo sistema que proporciona resultados observáveis de valor para um determinado ator. Um caso de uso é utilizado para estruturar o comportamento de itens em um modelo. Um caso de uso é realizado por uma colaboração. FazerPedido Quinto, as classes ativas são classes cujos os objetos têm um mais processos ou threads e, portanto, podem iniciar a atividade de controle. Uma classe ativa é semelhante a um classe, exceto pelo fato de que seus objetos representam elementos cujo o comportamento é concorrente com o outros elementos. ControlEvent start() sleep() © Copyright Rildo Ferreira, e-tecnologia.com, 2009 41
  • 42.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens (continuação), Sexto, os componentes são partes físicas e substituíveis de um sistema, que proporcionam a realização de um conjunto de interfaces.Tipicamente os componentes representam, o pacote físico de elementos lógicos diferentes, como classes, interfaces e colaborações. Component.java Sétimo, um nó é elemento físico existente em tempo de execução que representa um recurso computacional, geralmente com pelo menos alguma memória e, frequentemente, capacidade de processamento. Exemplo de nós: - Computadores (estações clientes e servidores) - Redes - Roteadores Servidor © Copyright Rildo Ferreira, e-tecnologia.com, 2009 42
  • 43.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens Comportamentais São parte dinâmicas dos modelos de UML. São os verbos de um modelo, representado comportamento no tempo e espaço. Ao todo, existem dois tipos de itens comportamentais: Primeiro, um interação é um comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para realização de propósitos específicos. As interações envolvem outros elementos, inclusive mensagens, sequência de ações (os comportamentos chamados pelas mensagens) e ligações (as conexões entre os objetos) Mostrar Segundo, uma máquina de estado é um comportamento que especifica as sequências de estados pelas quais objetos ou interações passam durante sua existência em resposta a eventos, bem como suas respostas a esses eventos. O comportamento de classe ou de uma colaboração pode ser especificado por meio de uma máquina de estados. Uma máquina de estados abrange mais elementos, tais como, transições (o fluxo de um estado a outro evento), evento (itens que disparam uma transição) e atividades (as respostas às transições). Aguardando © Copyright Rildo Ferreira, e-tecnologia.com, 2009 43
  • 44.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens de Agrupamentos Os itens de agrupamento são partes organizacionais dos modelos de UML. São os blocos em que os modelos podem ser decompostos. Ao todo, existe apenas um tipo principal de itens de agrupamento chamado de pacotes. Um pacote é mecanismo de propósito geral para a organização de elementos em grupos. Os itens estruturais, os itens comportamentais e até outros itens de grupos podem ser colocados em pacotes. Ao contrário dos componentes (que existem em tempo de execução), um pacote é puramente conceitual (o que significa que existe apenas em tempo de desenvolvimento. Aplicação Interface de Usuário Regras de Negócios Controle - Itens Anotacionais Itens anotacionais são as partes explicativas dos modelos UML. São comentários, incluídos para descrever, esclarecer e fazer alguma observação sobre qualquer elemento do modelo. Existe apenas um item anotacional chamado nota Imprimir Recibo © Copyright Rildo Ferreira, e-tecnologia.com, 2009 44
  • 45.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Relacionamentos Existem quatro tipos de relacionamentos na UML: 1 - Dependência 2 - Associação 3 - Generalização 4 - Realização Esses relacionamentos são blocos relacionais básicos de construção da UML. O primeiro dependência é um relacionamento semântico entre dois itens, nos quais a alteração de um (o item independente) pode afetar a semântica do outro (o dependente). Sua representa é linha tracejada, possivelmente com setas e ocasionalmente incluindo um rótulo. O segundo associação é um relacionamento estrutural que descreve um conjunto de ligações, em que as ligações são conexões entre objetos. A agregação é um tipo especial de associação, representando um relacionamento estrutural entre o todo e suas partes. É representada por uma linha sólida, possivelmente direcionadas, ocasionalmente incluído rótulos e freqüentemente, contendo outros adornos, como nomes de papéis e multiplicidade. * empregador Pessoa Empregador funcionário 0..1 © Copyright Rildo Ferreira, e-tecnologia.com, 2009 45
  • 46.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML O terceiro é a generalização é um relacionamento de especialização e generalização, nos quais os objetos dos elementos especializados (os filhos) são substituíveis por objetos do elemento generalizados (os pais). Dessa forma, os compartilham a estrutura e comportamento dos pais. Médico generalização especialização Clinico Geral Pediatra O quarto é a realização é um relacionamento semântico entre classificadores, em que um classificador especifica um contrato que outro classificador garante executar. Os relacionamentos de realização são encontrados em dois locais: entre interface e as classes ou componentes que as realizam; entre casos de uso e as colaborações que os realizam. Place order colaboração Order management © Copyright Rildo Ferreira, e-tecnologia.com, 2009 46
  • 47.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Revisão Blocos de construção da UML O Vocabulário da UML abrange três tipos de blocos de construção: - Itens - Relacionamentos - Diagramas - Itens, Existem quatro tipos de itens na UML Itens estruturais: São os substantivos utilizados em modelos da UML. São as partes mais estáticas do modelo, representando elementos conceituais ou físicos. Primeiro, as classes são descrições como conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamento e semântica. Segundo, uma interface é uma coleção de operações que especificam serviços de uma classe ou componente. Terceiro, as colaborações definem interação e são sociedades de papéis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior à soma de todos os elementos. Quarto, um caso de uso é a descrição de conjunto de sequência de ações realizadas pelo sistema que proporciona resultados observáveis de valor para um determinado ator. Quinto, as classes ativas são classes cujos os objetos têm um mais processos ou threads e, portanto, podem iniciar a atividade de controle © Copyright Rildo Ferreira, e-tecnologia.com, 2009 47
  • 48.
    Linguagem de ModelagemUnificada UML Introdução a UML O Quê é a UML? Revisão Sexto, os componentes são partes físicas e substituíveis de um sistema, que proporcionam a realização de um conjunto de interfaces. Sétimo, um nó é elemento físico existente em tempo de execução que representa um recurso computacional - Itens Comportamentais São parte dinâmicas dos modelos de UML. São os verbos de um modelo, representado comportamento no tempo e espaço. Ao todo, existem dois tipos de itens comportamentais: Primeiro, interação é um comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para realização de propósitos específicos. Segundo, uma máquina de estado é um comportamento que especifica as sequências de estados pelas quais objetos ou interações passam durante sua existência em resposta a eventos, bem como suas respostas a esses eventos. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 48
  • 49.
    Linguagem de ModelagemUnificada UML Diagramas da UML © Copyright Rildo Ferreira, e-tecnologia.com, 2009 49
  • 50.
    Linguagem de ModelagemUnificada UML Introdução a UML Casos de Uso O que são Caso de Uso? São diagramas de que permitem visualizar, especificar e documentar o comportamento de um elemento. Esses diagramas fazem com que sistema, subsistemas e classes fiquem acessíveis e compreensíveis, por apresentarem uma visão externa sobre como esses elementos podem ser utilizados no contexto. Definição: Caso de Uso é uma descrição de um conjunto de seqüências de ações, inclusive variantes, que um sistema pode produzir um resultado de valor observável por um ator. A representação gráfica é uma elipse. Elementos dos Caso de Uso: Ator: Um ator representa um conjunto coerente de papéis que os usuários de casos de uso desempenham quanto interagem com esses casos de uso. Geralmente um ator representa um papel, que pode ser de pessoa, de um sistema ou de um dispositivo. Cenários: Podemos definir os cenários como uma instância de um Caso de uso. O caso de uso deve ser descrito através de cenários. Devem ser construídos tantos cenários quantos forem necessários para se entender completamente todo o sistema. Podem ser considerados como teste informais para validação dos requisitos do sistema. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 50
  • 51.
    Linguagem de ModelagemUnificada UML Introdução a UML Casos de Uso Diagramas de Caso de Uso e Extensões Pedir lista dos matriculados Sistema de cobrança Professor Matrícula nos Selecionar curso Cursos para ensinar Aluno Manter informação de Manter informações dos aluno cursos Gerente Gerar catalogo Manter informação de professor Generalização: Entre casos de uso é parecida à generalização existente entre as classes. No caso de uso a generalização significa que o caso de uso filho herda o comportamento e o significado do caso de uso pai; o filho poderá acrescentar ou sobrescrever o comportamento de seu pai; poderá ser substituído em qualquer local qual o pai apareça. Include: Quando você estiver se repetindo em dois ou mais caso de uso separados devemos evitar a repetição Extends: Quando estivermos descrevendo uma variação em comportamento normal, entretanto, querendo fazer uma descrição mais controlada, explicando os pontos de extensão no caso de uso. Realizes: Especifica a colaboração entre os casos de uso Use (obsoleto): Especifica que a semântica do elemento de origem depende da semântica da parte pública do destino © Copyright Rildo Ferreira, e-tecnologia.com, 2009 51
  • 52.
    Linguagem de ModelagemUnificada UML Introdução a UML Casos de Uso Descrição dos Cenários: Nome AutenticarSenha Descrição Autenticar Senha Objetivo Identificar o usuário, autenticar senhas e autorizar acesso. Atores Usuário Papéis: Funcionário Administrativos, Alunos e Professores Pré Condição Usuário cadastro no sistema senhas, Usuário não estar “logado” Dados Entrada Entrada: Código do usuário e senha de acesso e Saída Saída: Autorização para uso (Pasta de Acesso) ou uma mensagem de alerta Sequência de troca mensagens Ator Sistemas 1. Usuário chama uma interface Registro 2. Usuário informa seu código e sua senha. 3. Usuário requisita autenticação dos dados informados. 4. Aplicativo processa a autenticação da senha, faz a identificação do usuário. Verificar se usuário tem o status de Liberado. 5. Conferir se senha não está expirada. 6. Conferir se senha informada coincide com a senha gravada. 7. Retornar uma mensagem e uma assinatura. 8 Usuário recebe a mensagem, ou seja, a autorização Pasta de Acesso, formatada de acordo sua interface. Curso Alternativo (Exceção): Ator Sistemas 4. Usuário com status de bloqueado. Retornar mensagem de alerta/erro 5. Senha expirada. Retornar mensagem de alerta/erro (O usuário deverá trocar a senha – ver case de uso AlterarSenha) 6. Senha não confere. Retornar mensagem de alerta/erro de senha inválida. Registrar a quantidade de tentativas sem sucesso, caso seja igual a 5 (limite de tentativas) o sistema bloqueará o usuário, mudando o status de liberado para bloqueado automaticamente. Pós Condição Autorização (Pasta de acesso) Interfaces Registro © Copyright Rildo Ferreira, e-tecnologia.com, 2009 52
  • 53.
    Linguagem de ModelagemUnificada UML Introdução a UML Casos de Uso Descrição dos Cenários: Regras de Negócios Regras de Negócios: Autenticação: A senha será validada, seguindo as regras de negócios de Autenticação de Senha: 1 - O usuário deve estar cadastrado no Aplicativo; 2 - A senha não pode estar expirada; 3 - O usuário deve ter um “status” de Liberado; 4 - A senha informada (criptografada) deve coincidir com senha gravada na tabela de senhas. Autorização 5 - Somente o usuário detentor da senha poderá altera-lá © Copyright Rildo Ferreira, e-tecnologia.com, 2009 53
  • 54.
    Linguagem de ModelagemUnificada UML Introdução a UML Casos de Uso - Identicação de Atores Ator Os atores não são parte do sistema - eles representam qualquer um e qualquer coisa que faça interação com sistema. Podendo ser uma pessoa, software, hardware e etc. Uma ator pode: - Apenas fornecer informações ao sistema - Apenas receber informações ao sistema - Fornecer e receber informações ao sistema Tipicamente os atores são identificados nas declarações de problemas ou através de entrevistas com os usuários e outros analistas envolvidos no processo, como, Analista de Sistema e Analista de Negócio, por exemplo. As seguintes questões podem ser usadas para identificar o atores: - Onde o sistema será usado ? - Quais áreas serão usuárias do sistema ? - O sistema usará recurso externo ? - Quem será o responsável pelo sistema ? - Quem serão os usuários do sistema ? © Copyright Rildo Ferreira, e-tecnologia.com, 2009 54
  • 55.
    Linguagem de ModelagemUnificada UML Diagramas da UML Casos de Uso Generalização: Entre casos de uso é parecida à generalização existente entre as classes. No caso de uso a generalização significa que o caso de uso filho herda o comportamento e o significado do caso de uso pai; o filho poderá acrescentar ou sobrescrever o comportamento de seu pai; poderá ser substituído em qualquer local qual o pai apareça. Include: Quando você estiver se repetindo em dois ou mais caso de uso separados, devemos evitar a repetição Extends: Quando estivermos descrevendo uma variação em comportamento normal, entretanto, querendo fazer uma descrição mais controlada, explicando os pontos de extensão no caso de uso. Realizes: Especifica a colaboração entre os casos de uso Use (obsoleto): Especifica que a semântica do elemento de origem depende da semântica da parte pública do destino © Copyright Rildo Ferreira, e-tecnologia.com, 2009 55
  • 56.
    Linguagem de ModelagemUnificada UML Diagramas da UML Casos de Uso Explicando o estereotipo <<extend>> Extend: Podemos usa-los em dois momentos 1 Variação Cada uma das extensões descreve as diferentes maneiras com que um passo do caso de uso pode ser executado. Exemplo: ReceberConta <<extend>> <<extend>> <<extend>> Dinheiro CartaoCredito Cheque 2 Casos excepcionais Condições de falha que podem ocorrer e serem recuperada em único passo e requerem um caso de uso para sua descrição. DevolvendoCarro <<extend>> <<include>> <<include>> CalcularMulta AlterarDisponibilidadeCarro ConsultarCliente © Copyright Rildo Ferreira, e-tecnologia.com, 2009 56
  • 57.
    Linguagem de ModelagemUnificada UML Diagramas da UML Casos de Uso Explicando o estereotipo <<include>> PlaceOrder <<include>> ValidateUser TrackOrder <<include>> Um relacionamento de inclusão entre casos de uso significa que o caso de uso base incorpora explicitamente o comportamento de outro caso de uso em uma localização especificada na base. O caso de uso incluído nunca permanece isolado, mas é apenas uma “instance” como parte de alguma base maior que o inclui. Você pode pensar na inclusão como o caso de uso base que o obtém o comportamento a partir do fornecedor do caso de uso. Você utiliza um relacionamento de inclusão para evitar descrever o mesmo fluxo de eventos várias vezes, incluindo o comportamento comum em um caso de uso próprio. O relacionamento de inclusão é essencialmente um exemplo de delegação, você coleta um conjunto de responsabilidades do sistema e o captura um único local (o caso de uso incluído); depois, permite que outras partes do sistema (outros casos de uso) incluam a nova agregação de responsabilidade sempre que precisamos utilizar essa funcionalidade. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 57
  • 58.
    Linguagem de ModelagemUnificada UML Diagramas da UML Exemplo: Casos de Uso Locadora de carros Uma locadora aluga carros aos clientes previamente cadastrados. Caso o cliente não esteja cadastrado, esta atividade custodial é realizada, separadamente em outra atividade do sistema. Caso um carro, disponível, seja escolhido pelo cliente este é alugado, sendo registrada a data inicial junto ao aluguel. Para que o cliente possa alugar um carro, este não pode estar com dívida pendente. Os carros são descritos pela placa, ano, modelo, descrição, km, preço por km, situação(disponível, etc), taxa diária, observações(informações gerais) e sua imagem. Os clientes são cadastrados pelo seu cpf, nome, endereço, telefone e dívida(reservado para registrar pagamentos pendentes). Quando o cliente devolve o carro, a situação do carro é mudada para “disponível”, o km é atualizado com o km atual do carro e um recibo é emitido, baseado nos kms rodados e nos dias em que ficou com o carro. Ainda na atividade de devolução é removido o registro do aluguel e, caso o cliente não possa pagar, a dívida do aluguel é registrada junto ao cliente. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 58
  • 59.
    Linguagem de ModelagemUnificada UML Diagramas da UML Exemplo: Casos de Uso Objetivo: Fazer locação de carros Restrição: Cliente não pode ter dividas pendentes Atores: Atendente Entidade Custodial Candidatos a Casos de Usos: Cadastrar Cliente Cadastrar Carro VerificarDadosCliente VerificarDividadoCliente VerificarDisponibilidadeVeiculo (Locar) EntregarVeiculo (Devolução) ReceberVeículo EmitirRecibo RegistrarDivida Candidatos a Classe: Veículos Clientes Divida do Cliente Locação Empregado © Copyright Rildo Ferreira, e-tecnologia.com, 2009 59
  • 60.
    Linguagem de ModelagemUnificada UML Diagramas da UML Exemplo: Casos de Uso Continuação: Atores: Atendente: Faz o atendimento ao cliente da Locadora Entidade Custodial: Faz o cadastro da custódia do cliente Candidatos a Casos de Usos: Cadastrar (Cliente e Carro) VerificarDadosCliente (Se é cliente e se tem divida) VerificarDisponibilidadeVeiculo EntregarVeiculo ReceberVeículo EmitirRecibo RegistrarDivida Candidatos a Classe: Veículo DadosdoCliente DividadoCliente Locação Empregado © Copyright Rildo Ferreira, e-tecnologia.com, 2009 60
  • 61.
    Linguagem de ModelagemUnificada UML Diagramas da UML Exemplo: Casos de Uso Diagrama de Caso de Uso Cadastrar CadastrarCliente EntidadeCustodia AlterarDisponibidadeVeiculo CadastrarCarro Atendente <<include>> <<extend>> SocilicarCadastro ReceberVeiculo Verif icarDadosCliente <<include>> <<include>> <<include>> Verif icarDisponibilidadeVeiculo ReceberPagtoCliente <<extend>> <<extend>> EntregarVeiculo RegistrarDiv ida ImprimirRecibo © Copyright Rildo Ferreira, e-tecnologia.com, 2009 61
  • 62.
    Linguagem de ModelagemUnificada UML Diagramas da UML Casos de Uso Cenário do Caso de Uso: VerificarDadosCliente Nome: VerificarDadosCliente Objetivo: Verificar se Cliente está cadastro no Sistema e e divida pendente Pré-condição: Cliente solicitar uma locação Ator: Atendente Fluxo Normal: 1-O atendente solicita o número do CPF 2-Digita o CPF no sistema 3-O sistema verifica se cliente está cadastrado e se tem divida pendente 4-O sistema envia mensagem cliente cadastrado e não há divida Fluxo Alternativo 1 (Cliente não cadastrado): 4-O sistema envia mensagem cliente não cadastrado 5-Solicita o cadastro da custódia do cliente Fluxo Alternativo 2 (Cliente com divida): 4-O sistema envia mensagem cliente cadastrado e com divida pendente © Copyright Rildo Ferreira, e-tecnologia.com, 2009 62
  • 63.
    Linguagem de ModelagemUnificada UML Introdução a UML Diagrama de Seqüência O que é Diagramas de Seqüência? É um diagrama que exibe a colaboração dinâmica entre os vários objetos de um sistema. O principal aspecto deste diagrama é que a partir dele percebe-se a seqüência de mensagens enviadas entre os objetos. Ele mostra a interação entre os objetos, alguma evento que acontecerá em um ponto específico da execução do sistema. formulários formulário cursos de registro de matrícula disponíveis Ator (José) entrar com chave de acesso validar acesso entrar com o semestre criar nova matrícula apresentar em tela obter cursos Diagrama de Seqüência Explicando o diagrama: O diagrama de seqüência consiste em um número de objetos mostrado em linhas verticais. O decorrer do tempo é visualizado observando-se o diagrama no sentido vertical de cima para baixo. As mensagens enviadas por cada objeto são simbolizadas por setas entre os objetos que se relacionam. Diagramas de seqüência possuem dois eixos: o eixo vertical, que mostra o tempo e o eixo horizontal, que mostra os objetos envolvidos na seqüência de uma certa atividade. Eles também mostram as interações para um cenário específico de uma certa atividade do sistema. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 63
  • 64.
    Linguagem de ModelagemUnificada UML Diagramas da UML Diagrama de Seqüência Diagrama de Seqüência Explicando o diagrama (continuação) No eixo horizontal estão os objetos envolvidos na seqüência. Cada um é representado por um retângulo de objeto (similar ao diagrama de objetos) e uma linha vertical pontilhada chamada de linha de vida do objeto, indicando a execução do objeto durante a seqüência, como exemplo citamos: mensagens recebidas ou enviadas e ativação de objetos. A comunicação entre os objetos é representada como linha com setas horizontais simbolizando as mensagens entre as linhas de vida dos objetos. A seta especifica se a mensagem é síncrona, assíncrona ou simples. As mensagens podem possuir também números seqüenciais, eles são utilizados para tornar mais explícito as seqüência no diagrama. Em alguns sistemas, objetos executam de forma concorrente, cada um com sua linha de execução (thread). Se o sistema usa linhas concorrentes de controle, isto é mostrado como ativação, mensagens assíncronas, ou objetos assíncronos. Os diagramas de seqüência podem mostrar objetos que são criados ou destruídos como parte do cenário documentado pelo diagrama. Um objeto pode criar outros objetos através de mensagens. A mensagem que cria ou destrói um objeto é geralmente síncrona, representada por uma seta sólida © Copyright Rildo Ferreira, e-tecnologia.com, 2009 64
  • 65.
    Linguagem de ModelagemUnificada UML Diagramas da UML Diagrama de Seqüência Exemplo: EntregarVeiculo : Cliente : Veiculo : Locacao : Atendente getDadosCliente( ) [* se cliente cadastrado verificar divida ] getDivida( ) getDisponibilidade( ) setSaida( ) [* se veículo disponível ] Este diagrama descreve em ordem cronológica as mensagens entre os objetos. Neste momento estamos dizendo o como o Caso de Uso deve ser implementado © Copyright Rildo Ferreira, e-tecnologia.com, 2009 65
  • 66.
    Linguagem de ModelagemUnificada UML Diagramas da UML Diagrama de Seqüência Explicando os detalhes: Instance das classes ator : Cliente : Veiculo : Locacao : Atendente getDadosCliente( ) [* se cliente cadastrado verificar divida ] getDivida( ) getDisponibilidade( ) setSaida( ) [* se veículo disponível ] Autodelegação As interações entre os Restrição ou objetos condição Linha do tempo © Copyright Rildo Ferreira, e-tecnologia.com, 2009 66
  • 67.
    Linguagem de ModelagemUnificada UML Diagramas da UML Diagrama de Colaboração O que é Diagramas de Colaboração? É um diagramas que mostra a colaboração dinâmica entre os objetos, semelhante ao diagrama de seqüência. No diagrama de colaboração, além de mostrar a troca de mensagens entre os objetos, percebe-se também os objetos com os seus relacionamentos. A interação de mensagens é mostrada em ambos os diagramas. Se a ênfase do diagrama for o decorrer do tempo, é melhor escolher o diagrama de seqüência, mas se a ênfase for o contexto do sistema, é melhor dar prioridade ao diagrama de colaboração. Podemos também escolher ambos. O diagrama de colaboração é desenhado como um diagrama de objeto, onde os diversos objetos são mostrados juntamente com seus relacionamentos. As setas de mensagens são desenhadas entre os objetos para mostrar o fluxo de mensagens entre eles. As mensagens são nomeadas, que entre outras coisas mostram a ordem em que as mensagens são enviadas. Também podem mostrar condições, interações, valores de resposta, e etc. O diagrama de colaboração também pode conter objetos ativos, que executam paralelamente com outros. 2: validar acesso 1:entrar com chave 3:entrar com o de acesso semestre formulários de registro 4:criar nova matrícula Ator (José) 5:apresentar em tela cursos disponíveis formulário de matrícula 6:obter cursos Diagrama de Colaboração NOTA: O diagrama de colaboração em alguns caso pode ser considerado opcional. Pode-se escolher entre utilizar o diagrama de colaboração ou o diagrama de seqüência. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 67
  • 68.
    Linguagem de ModelagemUnificada UML Diagramas da UML Diagrama de Colaboração 2: getDivida( ) 1: getDadosCliente( ) : Cliente : Atendente 3: getDisponibilidade( ) 4: setSaida( ) : Veiculo : Locacao © Copyright Rildo Ferreira, e-tecnologia.com, 2009 68
  • 69.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Estado O que é Diagrama de Estado? É um diagrama que tipicamente complementa a descrição das classes. Pois este diagrama exibe todos os estados possíveis que objetos de uma certa classe podem se encontrar e mostra também quais são os eventos do sistemas que provocam tais mudanças. Não necessário escrever o diagrama de estado para todas as classes de um sistema, mas apenas para aquelas que possuem um número definido de estados conhecidos e onde o comportamento das classes é afetado e modificado pelos diferentes estados. Diagramas de estado capturam o ciclo de vida dos objetos, subsistemas e sistemas. Eles mostram os estados que um objeto pode possuir e como os eventos (mensagens recebidas, tempo, erros, e condições sendo satisfeitas) afetam estes estados ao passar do tempo. Adicionar Aluno /inicialize Matrícula aberta Criação Atribuição Curso númeroDeAlunos = 0 Curso Aberto faça: Crie o faça: Atribuir um Entrada: Registre objeto curso professor ao curso um aluno cancelarCurso cancelarCurso cancelarCurso Registro fechado [númeroDeAlunos>=3 Curso Cancelado Registro fechado ] faça: envie notificação [númeroDeAlunos<3] de cancelamento Registro fechado [número de alunos =10]^Curso .Criar relatório Curso Encerrado faça: relate curso cancelarCurso esta cheio Curso Completado faça: Gerar lista de alunos © Copyright Rildo Ferreira, e-tecnologia.com, 2009 69
  • 70.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Estado Diagramas de estado possuem um ponto de início e vários pontos de finalização. Um ponto de início (estado inicial) é mostrado como um círculo todo preenchido, e um ponto de finalização (estado final) é mostrado como um círculo em volta de um outro círculo menor preenchido. Um estado é mostrado como um retângulo com cantos arredondados. Entre os estados estão as transições, mostrados como uma linha com uma seta no final de um dos estados. A transição pode ser nomeada com o seu evento causador. Quando o evento acontece, a transição de um estado para outro é executada ou disparada. Uma transição de estado normalmente possui um evento ligado a ela. Se um evento é anexado a uma transição, esta será executada quando o evento ocorrer. Se uma transição não possuir um evento ligado a ela, a mesma ocorrerá quando a ação interna do código do estado for executada (se existir ações internas como entrar, sair, fazer ou outras ações definidas pelo desenvolvedor). Então quando todas as ações forem executadas pelo estado, a transição será disparada e serão iniciadas as atividades do próximo estado no diagrama de estados. Elementos Verificando Estado Transição Fim Inicio © Copyright Rildo Ferreira, e-tecnologia.com, 2009 70
  • 71.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Estado Os diagramas de estados são compostos de transições e estados. As transições são associadas com ações e são consideradas como processo de curta duração e não podem ser interrompidos. Os estados são associados com as atividades e podem levar mais tempo. Uma atividade pode ser interrompida por algum evento. Exemplo: Diagrama de Estado Telefone início transição fora do gancho ocioso Ativo no gancho Estado Final © Copyright Rildo Ferreira, e-tecnologia.com, 2009 71
  • 72.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Estado Aplicação Um diagrama de estado pode ser aplicado a diversos elementos da UML, tais como: - Classes - Tipos (conceitos) - Casos de Uso Exemplo: [Nem todos os itens verificados]/pegar próximo item início [Todos os itens verificados e Verificando os todos itens disponíveis] Expedindo [itens ecebidos [Todos os itens [alguns itens não verificados e estão disponíveis] alguns itens não Item recebido estão disponíveis] [os todos itens disponíveis] Aguardando cancelamento cancelado Cancelamento Entregue final © Copyright Rildo Ferreira, e-tecnologia.com, 2009 72
  • 73.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade O que é Diagrama de Atividade? É um diagramas que exibe o fluxo seqüencial das atividades, é geralmente utilizado para demonstrar as atividades executadas por uma operação específica do sistema, como por exemplo seleção de um item do menu principal. Consistem em estados de ação, que contém a especificação de uma atividade a ser desempenhada por uma operação do sistema. Decisões e condições, como execução paralela, também podem ser mostrados na diagrama de atividade. O diagrama também pode conter especificações de mensagens enviadas e recebidas como partes de ações executadas. Diagramas de atividade capturam ações e seus resultados. Eles focam o trabalho executado na implementação de uma operação (método), e suas atividades numa instância de um objeto. O diagrama de atividade é uma variação do diagrama de estado e possui um propósito um pouco diferente do diagrama de estado, que é o de capturar ações (trabalho e atividades que serão executados) e seus resultados em termos das mudanças de estados dos objetos. Cliente Vendas Estoque Fazer Pedido Processar Pedido Separar Produtos Enviar Pedido Receber Pedido Cobrar Cliente Pagar Fatura Fechar Pedido © Copyright Rildo Ferreira, e-tecnologia.com, 2009 73
  • 74.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade Os estados no diagrama de atividade mudam para um próximo estágio quando uma ação é executada (sem ser necessário especificar nenhum evento como no diagrama de estado). Outra diferença entre o diagrama de atividade e o de estado é que podem ser colocadas como swimlanes (raias). Uma swimlane agrupa atividades, com respeito a quem é responsável e onde estas atividades residem na organização, e é representada por retângulos que englobam todos os objetos que estão ligados a ela (swimlane). Um diagrama de atividade é uma maneira alternativa de se mostrar interações, com a possibilidade de expressar como as ações são executadas, o que elas fazem (mudanças dos estados dos objetos), quando elas são executadas (seqüência das ações), e onde elas acontecem (swimlanes). Um diagrama de atividade pode ser usado com diferentes propósitos inclusive:  Para capturar os trabalhos que serão executados quando uma operação é disparada (ações). Este é o uso mais comum para o diagrama de atividade.  Para capturar o trabalho interno em um objeto.  Para mostrar como um grupo de ações relacionadas podem ser executadas, e como elas vão afetar os objetos em torno delas.  Para mostrar como uma “instance” pode ser executada em termos de ações e objetos.  Para mostrar como um negócio funciona em termos de trabalhadores (atores), fluxos de trabalho, organização, e objetos (fatores físicos e intelectuais usados no negócio). Enfim o diagrama de atividade mostra o fluxo seqüencial das atividades, é normalmente utilizado para demonstrar as atividades executadas por uma operação específica do sistema. Consistem em estados de ação, que contém a especificação de uma atividade a ser desempenhada por uma operação do sistema. Decisões e condições, como execução paralela, também podem ser mostrados na diagrama de atividade. O diagrama também pode conter especificações de mensagens enviadas e recebidas como partes de ações executadas. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 74
  • 75.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade Exemplo: Diagrama de Atividades © Copyright Rildo Ferreira, e-tecnologia.com, 2009 75
  • 76.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade Componentes: Atividade Barras de atividade transição decisão sincronização Exemplo com comentários: Vendas Cliente Estoque Fazer Pedido atividade Processar Pedido separação Separar Produtos Enviar Pedido Receber Pedido Cobrar Cliente Pagar Fatura Fechar Pedido junção raias © Copyright Rildo Ferreira, e-tecnologia.com, 2009 76
  • 77.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade Exemplo com comentários: Receber Pedido Preencher Pedido Enviar Fatura Entrega [pedido urgente] [senão] Receber Pagamento Entrega durante Entrega Regular a noite Encerrar Pedido © Copyright Rildo Ferreira, e-tecnologia.com, 2009 77
  • 78.
    Linguagem de ModelagemUnificada UML Introdução a UML Diagrama de Pacotes Como podemos definir o diagrama de pacotes? A definição de Pacote é uma generalização, ou seja, um agrupamento, com o propósito de organizar as Classes de Objetos em grupos. Esta abordagem facilita a análise a medida que o número de Classes de Objetos cresce num do cenário. O tipo de relacionamento é linha pontilhada com uma seta que indica dependência. A notação usada pela UML para representar pacotes é: Nome do Pacote Exemplo: As classes pertencentes ao Sistema de Matrícula podem ser agrupadas em três pacotes: • UI (Interface Usuário) • Regras de Negócio • Interfaces de Banco de Dados Interfaces de Interfaces com Regras de Banco de Dados Usuário Negócios {abstrata} Interface MySQL © Copyright Rildo Ferreira, e-tecnologia.com, 2009 78
  • 79.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Pacotes Podemos usar a estrutura de pacotes para criar coesão entre as classes que tem objetivo comum, por exemplo podemos colocar em único pacote todas as classes que se referem a regras de negócios. Exemplo: Aplicação Interface de Usuário Regras de Negócios Controle Fisicamente os pacotes tem a estrutura de diretório e subdiretório, isto que dizer que a Aplicação terá a seguinte formato: Aplicação Regras de Negócios Interface de Usuário Controle © Copyright Rildo Ferreira, e-tecnologia.com, 2009 79
  • 80.
    Linguagem de ModelagemUnificada UML Introdução a UML Diagrama de Classes O que é um Diagrama de Classes? É um diagrama que demonstra a estrutura estática das classes de um sistema e seus relacionamentos. Classes podem se relacionar com outras através de diversas maneiras: associação (conectadas entre si), dependência (uma classe depende ou usa outra classe), especialização (uma classe é uma especialização de outra classe), ou em pacotes (classes agrupadas por características similares). Todos estes relacionamentos são mostrados no diagrama de classes juntamente com as suas estruturas internas, que são os atributos e operações. O diagrama de classes é considerado estático já que a estrutura descrita é sempre válida em qualquer ponto do ciclo de vida do sistema. Um sistema normalmente possui alguns diagramas de classes, já que não são todas as classes que estão inseridas em um único diagrama e uma certa classes pode participar de vários diagramas de classes. Pessoa Funcionários Professores Alunos Administrativo 1 1 1 1 Matricula Curso 1 tem 1..* Disciplinas Uma classe num diagrama pode ser diretamente implementada utilizando-se uma linguagem de programação orientada a objetos que tenha suporte direto para construção de classes. Para criar um diagrama de classes, as classes têm que estar identificadas, descritas e relacionadas entre si. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 80
  • 81.
    Linguagem de ModelagemUnificada UML Introdução a UML Diagrama de Objetos O que é um Diagrama de Objetos? É um diagrama que exibe uma variação do diagrama de classes e utiliza quase a mesma notação. A diferença é que o diagrama de objetos mostra os objetos que foram “instanciados” das classes. O diagrama de objetos é como se fosse o perfil do sistema em um determinado momento de sua execução. A mesma notação do diagrama de classes é utilizada, entretanto há duas diferenças: os objetos são escritos com seus nomes sublinhados e todas as instâncias num relacionamento são mostradas. Os diagramas de objetos não tem a mesma importância do diagramas de classes, mas eles são muito úteis para exemplificar diagramas complexos de classes ajudando muito em sua compreensão. Diagramas de objetos também são usados como parte dos diagramas de colaboração, onde a colaboração dinâmica entre os objetos do sistema são mostrados. :Aluno Nome: “Fulano de Tal” Data: 23-02-2001 201-23-02-01:Matricula Matricula: 201-23-02-01 Curso: Adm Empresas © Copyright Rildo Ferreira, e-tecnologia.com, 2009 81
  • 82.
    Linguagem de ModelagemUnificada UML Diagramas da UML Diagrama de Classes © Copyright Rildo Ferreira, e-tecnologia.com, 2009 82
  • 83.
    Linguagem de ModelagemUnificada UML Diagramas da UML Mapeamento do Diagrama de Classes e Modelo de Entidades e Relacionamento Veja a tabela abaixo que relaciona as característica da UML e MER: UML MER Classes Persistentes Entidades Associação Relacionamentos Atributos Atributos Roles Roles Multiplicidade Constraints Generalização e Generalização e Especialização Especialização Os atributo de uma classe persistente são mapeado para colunas de entidade Classe persistente Entidade Pessoa Pessoa -idpessoa Idpessoa <pk> -nome nome © Copyright Rildo Ferreira, e-tecnologia.com, 2009 83
  • 84.
    Linguagem de ModelagemUnificada UML Diagramas da UML Mapeamento Diagrama de Classes e Modelo de Entidades e Relacionamento Um exemplo de mapeamento Diagrama de classe (UML) e entidade (MER) {abstract} Pessoa -nome -idade Classes Funcionário Cliente funcao Idcliente telefone Veja agora o mapeamento para entidade MER, para cada classe criaremos uma entidade correspondente: Pessoa idpessoa <pk> nome idade é um é um Funcionário Cliente idpessoa <fk> idpessoa <fk> funcao idcliente <pk> telefone © Copyright Rildo Ferreira, e-tecnologia.com, 2009 84
  • 85.
    Linguagem de ModelagemUnificada UML Diagramas da UML Mapeamento Diagrama de Classes e Modelo de Entidades e Relacionamento Neste exemplo o mapeamento é feito para duas entidades: Funcionário Cliente idfunc <pk> idcliente <pk> nome nome idade idade funcao telefone © Copyright Rildo Ferreira, e-tecnologia.com, 2009 85
  • 86.
    Linguagem de ModelagemUnificada UML Introdução a UML Diagrama de Componente O que é um Diagrama de Componente? É um diagrama que exibe o sistema por um lado funcional, expondo as relações entre seus componentes e a organização de seus módulos durante sua execução. O diagrama de componente descreve os componentes de software e suas dependências entre si, representando a estrutura do código gerado. Os componentes são a implementação na arquitetura física dos conceitos e da funcionalidade definidos na arquitetura lógica (classes, objetos e seus relacionamentos). Eles são tipicamente os arquivos implementados no ambiente de desenvolvimento. Curso.jar Pessoa.jar Disciplina.classr Aluno.class Professores.class Um componente é mostrado em UML como um retângulo com uma elipse e dois retângulos menores do seu lado esquerdo. O nome do componente é escrito abaixo ou dentro de seu símbolo. Componentes são tipos, mas apenas componentes executáveis podem ter instâncias. Um diagrama de componente mostra apenas componentes como tipos. Para mostrar instâncias de componentes, deve ser usado um diagrama de execução, onde as instâncias executáveis são alocadas em nodes. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 86
  • 87.
    Linguagem de ModelagemUnificada UML Introdução a UML Diagrama de Componente A dependência entre componentes pode ser mostrada como uma linha tracejada com uma seta, simbolizando que um componente precisa do outro para possuir uma definição completa. Com o diagrama de componentes é facilmente visível detectar que arquivos .jar são necessários para executar a aplicação. Componentes podem definir interfaces que são visíveis para outros componentes. As interfaces podem ser tanto definidas ao nível de codificação (como em Java) quanto em interfaces binárias usadas em run-time (COM). Uma interface é mostrada como uma linha partindo do componente e com um círculo na outra extremidade. O nome é colocado junto do círculo no final da linha. Dependências entre componentes podem então apontar para a interface do componente que está sendo usada. Exemplo: Reserva.jar Pessoa.jar PessoaFisica. CheckIN PessoaJuridica © Copyright Rildo Ferreira, e-tecnologia.com, 2009 87
  • 88.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Distribuição O que é Diagrama de Distribuição? É um diagrama que exibe a arquitetura física do hardware e do software no sistema. Pode apresentar os atuais computadores e periféricos, juntamente com as conexões que eles estabelecem entre si e pode mostrar também os tipos de conexões entre esses computadores. Especifica-se também os componentes executáveis e objetos que são alocados para mostrar quais unidades de software são executados e em que destes computadores são executados. O diagrama de distribuição demonstra a arquitetura runtime de processadores, dispositivos físicos e de software que executam no ambiente onde o sistema desenvolvido será utilizado. É o último diagrama da topologia do sistema, descrevendo a estrutura de hardware e software que executam em cada unidade. O diagrama de distribuição é composto por componentes, que possuem a mesma simbologia dos componentes do diagrama de componentes, nodes, que significam objetos físicos que fazem parte do sistema, podendo ser uma computador cliente em uma Rede, um computador Servidor, uma impressora, um roteador, etc., e conexões entre estes nodes e componentes que juntos compõem toda a arquitetura física do sistema. <<TCP/IP>> Servidor <<TCP/IP>> Servidor de Banco de Cliente A 0..* 1 de Aplicação 1 1 Dados © Copyright Rildo Ferreira, e-tecnologia.com, 2009 88
  • 89.
    Linguagem de ModelagemUnificada UML Projeto e Modelagem Visual com UML Diagrama de Distribuição Exemplo: Banco de Dados Corporativo Oracle Server Cliente * HTPP Servidor Banco de Dados Web Firewall 1 HTPP Apache sob Linux MySQL © Copyright Rildo Ferreira, e-tecnologia.com, 2009 89
  • 90.
    Linguagem de ModelagemUnificada UML Projeto de Desenvolvimento: Um exemplo © Copyright Rildo Ferreira, e-tecnologia.com, 2009 90
  • 91.
    Linguagem de ModelagemUnificada UML Exemplo de Projeto de Desenvolvimento com UML Projeto de Desenvolvimento Fases do Desenvolvimento O desenvolvimento de um sistema de informação, de acordo com metodologia rápida, é divido em duas etapas: enquanto a primeira fase, Definição de Requisitos, tem por objetivo determinar os requisitos, a segunda Análise, tem a finalidade de definir os módulos componentes do sistema. Definição dos Requisitos O objetivo desta fase é determinar a funcionalidade esperada pelo usuário do sistema. Num projeto de construção civil, esta fase corresponderia ao projeto de arquitetura, onde se descrevem as características da casa que são visíveis ao seu morador. O produto desta fase é chamado de Modelo de Requisitos. A estrutura do Modelo de Requisitos é exibida na figura abaixo. Cada uma das caixas representa um ou mais documentos que devem ser apresentados no final da fase. O diagrama indica que o modelo de Requisitos é composto de: Modelo de Casos de Uso, uma protótipo e um Glossário. Por sua vez, o Modelo de Casos de uso é composto de diagramas de caso de uso, cada destes contém uma descrição para o caso de uso. Modelos de Requisitos 1..* Diagrama de Casos de Protótipo Glossário Uso Casos de Uso 1..* Descrição do Caso de Uso © Copyright Rildo Ferreira, e-tecnologia.com, 2009 91
  • 92.
    Linguagem de ModelagemUnificada UML Exemplo de Projeto de Desenvolvimento com UML Projeto de Desenvolvimento Segunda fase: Análise e Projeto O objetivo desta fase é produzir um plano que permita a construção do sistema. Por exemplo, comparando mais uma vez a engenharia civil, esta fase corresponderia às plantas detalhadas da construção de uma casa. Em termos de software, a planta do sistema é a especificação de suas classes componentes, que chamamos de Modelo de Análise e Projeto. O Modelo de Análise e Projeto é composto pelo Modelo Estático e pelo Modelo Dinâmico. O modelo estático é composto por um conjunto de diagramas de classes. O Modelo Dinâmico é composto por conjuntos de Diagramas de Seqüência e Diagrama de Estados. Modelos de Análise e Projeto Modelo Estático Modelo Dinâmico 1..* 1..* 1..* Diagrama de Classes Diagrama de Sequência Diagrama de Estado 1..* Classes © Copyright Rildo Ferreira, e-tecnologia.com, 2009 92
  • 93.
    Linguagem de ModelagemUnificada UML Exemplo de Projeto de Desenvolvimento com UML Projeto de Desenvolvimento Roteiro para o Desenvolvimento de Sistema usando a Metodologia Rápida 1 - Definir o escopo do Sistema; 2 - Produzir o Modelo de Requisitos 2.1 - Identificar os casos de usos 2.2 - Identificar os atores 2.3 - Identificar e definir as entidades do domínio do problema 2.4 - Definir os casos de uso que podem ser abstraídos 2.5 - Fazer agrupamento dos casos de uso com semântica semelhante 2.6 - Verificar o Modelo de Requisitos 3 - Produzir o Modelo de Análise e Projeto, executando as seguintes etapas: 3.1 - Criar um diagrama com modelo de classes do domínio do problema; 3.2 - Criar um diagrama com o modelo de classes de cada agrupamento de casos de uso. Este modelo deve conter as classes de domínio, interface e controle envolvidas no agrupamento de casos de uso. 3.3 - Fazer um diagrama de seqüência para cada agrupamento de caso de uso. 3.4 - Criar um diagrama de transição e estados para as classes de domínio, interface e controle que tenham ciclos de vida não-triviais. 3.5 - Revisar o diagrama de classes (reveja os relacionamentos) 3.6 - Verificar o modelo de Análise e Projeto. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 93
  • 94.
    Linguagem de ModelagemUnificada UML Estudo de Caso e Exercício © Copyright Rildo Ferreira, e-tecnologia.com, 2009 94
  • 95.
    Linguagem de ModelagemUnificada UML Estudo de Caso Caso Prático • A Universidade ESU quer informatizar seu sistema de matrícula – A Secretaria produz o currículo para o semestre – Os Alunos selecionam 4 matérias principais e 2 matérias alternativas – Após a matrícula, o sistema de cobranças será notificado para que receba o pagamento do estudante por um semestre – Os Alunos podem usar o sistema para adicionar ou remover matérias por um determinado período após a matrícula – Os Professores usam o sistema para receber a lista de ofertas de cursos – Os usuários do sistema de matrícula tem senhas que são utilizadas para validação de logon © Copyright Rildo Ferreira, e-tecnologia.com, 2009 95
  • 96.
    Linguagem de ModelagemUnificada UML Estudo de Caso Atores • Um Ator é alguém ou alguma coisa que deve interagir com o sistema a ser desenvolvido Professor Aluno Secretaria Sistema Cobrança © Copyright Rildo Ferreira, e-tecnologia.com, 2009 96
  • 97.
    Linguagem de ModelagemUnificada UML Estudo de Caso Casos de Uso: • Um caso de uso é um padrão de comportamento que o sistema exibe – Cada caso de uso é uma seqüência de transações relacionadas executadas por um ator e o sistema num diálogo • Atores são examinados para determinar suas necessidades – Secretaria -- manter o curriculum – Professor -- solicitar lista de cursos – Aluno -- manter o horário de aulas – Sistema Cobrança -- recebe informações sobre cobranças Manter Curriculum Solicitar Lista de Cursos Manter Horário © Copyright Rildo Ferreira, e-tecnologia.com, 2009 97
  • 98.
    Linguagem de ModelagemUnificada UML Estudo de Caso Documentando Caso de Uso • Um documento de fluxo de eventos é criado para cada caso de uso – Escrito do ponto de vista do ator • Detalha o que o sistema deve fornecer quando o caso de uso é executado • Conteúdos típicos – Como o caso de uso inicia e termina – Fluxo normal de eventos – Fluxos alternativos de eventos – Fluxos excepcionais de eventos (respostas a erros) Fluxo de Eventos de Manter Curriculum • Este caso de uso inicia quando a Secretaria entra no sistema e entra sua senha. O sistema verifica se a senha é válida (E-1) e solicita a escolha do semestre atual ou futuro (E-2). A Secretaria entra o semestre desejado. O sistema pergunta qual a atividade desejada: INCLUIR, APAGAR, MODIFICAR, ou SAIR. • Caso a atividade selecionada seja INCLUIR, o S-1: O sub-fluxo Inclui uma Matéria é executado. • Caso a atividade selecionada seja APAGAR, o S-2: O sub-fluxo Apaga uma Matéria é executado. • Caso a atividade selecionada seja MODIFICAR, o S-3: O sub-fluxo Modificar uma Matéria é executado. • Caso a atividade selecionada seja SAIR, o caso de uso termina. • ... © Copyright Rildo Ferreira, e-tecnologia.com, 2009 98
  • 99.
    Linguagem de ModelagemUnificada UML Estudo de Caso Diagrama de Caso de Uso • Diagramas de caso de uso são criados para se visualizar a relação entre atores e casos de uso Aluno Mantém Horário Sistema Cobrança Solicita Lista de Cursos Professor Mantém Curriculum Secretaria © Copyright Rildo Ferreira, e-tecnologia.com, 2009 99
  • 100.
    Linguagem de ModelagemUnificada UML Estudo de Caso Usos e Extensões das Relações de Casos de Uso • À medida em que casos de uso são documentados, outras relações entre casos de uso poderão ser descobertas – Uma relação de uso (usa) mostra comportamento que é comum a um ou mais casos de uso – Uma relação de extensão mostra comportamento opcional <<extends>> Matricular para cursos <<extends>> Validar Senha Manter Curriculum © Copyright Rildo Ferreira, e-tecnologia.com, 2009 100
  • 101.
    Linguagem de ModelagemUnificada UML Estudo de Caso Realizações de Casos de Uso: • O Diagrama de Caso de Uso apresenta uma visão externa do sistema • Diagramas de Interação descrevem como casos de uso são realizados como interações entre associações de objetos • Há dois tipos de Diagramas de Interação – Diagramas de Seqüência – Diagramas de Colaboração Diagrama de Seqüência: • Um Diagrama de Seqüência mostra interações de objetos ordenados numa seqüência de tempo : Aluno Formulário de Gerente de Matemática Matemática Matrúcula Matrículas Básica Álgebra 1: preenche 2: envia 3: curso(Maria,matemática) 4: está aberto? 5: está aberto? 6: incui(Maria l) Tempo 7: incui (Maria) © Copyright Rildo Ferreira, e-tecnologia.com, 2009 101
  • 102.
    Linguagem de ModelagemUnificada UML Estudo de Caso Diagrama de Colaboração • Um Diagrama de Colaboração mostra interações organizadas à volta de objetos e as ligações de um para o outro curso form : 1: pega informação curso cursoForm 2: processa : Secretaria 3: incui curso acurso : Diretor : curso Diretor_do_Curso 4: novo curso © Copyright Rildo Ferreira, e-tecnologia.com, 2009 102
  • 103.
    Linguagem de ModelagemUnificada UML Estudo de Caso Diagrama de Classes • Um Diagrama de Classes mostra a existência de classes e suas relações com a visão lógica do sistema • Elementos de UML presentes nos Diagramas de Classes: – Classes, suas estruturas internas e comportamento – Associações, agregações, dependências, e relações de herança – Multiplicidade e indicadores de navegação – Nomes de papéis (O que uma classe representa para outra) Classes • Uma classe é uma coleção de objetos com um estrutura, comportamento, relações e semântica comuns • Classes são descobertas pelo exame dos objetos nos diagramas de Seqüência e Colaboração • Uma classe é desenhada como um retângulo com três compartimentos: – Primeiro: Nome da classe – Segundo: Atributos (opcional) – Terceiro: Métodos (opcional) • Classes devem ser nomeadas usando o vocabulário do domínio – Padrões de nomenclatura devem ser estabelecidos – Regra: Todos os nomes de classes são substantivos no singular, iniciando com letra maiúscula Exemplo: Cliente, Fornecedor, Pessoa, Aluno e etc. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 103
  • 104.
    Linguagem de ModelagemUnificada UML Estudo de Caso Classes: Diretor Matrícula Algorítmo de Horário Formulário Matrícula Curso Aluno Professor Oferta Curso © Copyright Rildo Ferreira, e-tecnologia.com, 2009 104
  • 105.
    Linguagem de ModelagemUnificada UML Estudo de Caso Classes: • O comportamento de uma classe é representado pelas suas operações • Operações podem ser encontradas examinando-se os Diagramas de Interação Matrícula Matrícula form Gerente Diretor Matrícula Matricula (aluno,curso) 3: matricula curso(Maria, matemática) Atributos: Oferta Curso Cada Curso oferecido número possui um número, local local e horário horário © Copyright Rildo Ferreira, e-tecnologia.com, 2009 105
  • 106.
    Linguagem de ModelagemUnificada UML Estudo de Caso Classes Diretor Matrícula Algorítmo de Horário incluiAluno(curso, AlunoInfo) Formulário Matrícula Aluno curso nome nível nome NúmeroCréditos abrir() incluirAluno(AlunoInfo) Professor nome StatusCadeira Oferta Curso local abrir() incluirAluno(AlunoInfo) © Copyright Rildo Ferreira, e-tecnologia.com, 2009 106
  • 107.
    Linguagem de ModelagemUnificada UML Estudo de Caso Relacionamento: • Relações fornecem um caminho para a comunicação entre os objetos • Diagramas de seqüência e/ou colaboração são examinados para determinar quais ligações entre objetos precisam existir para se chegar ao comportamento desejado. -- Caso dois objetos precisem “conversar” deverá haver uma ligação entre elas • Há três tipos de relações: – Associação e Agregação – Dependência – Herança Associação: • Uma associação é uma conexão bidirecional entre classes – Uma associação é mostrada como uma linha conectando as classes relacionadas. • Uma agregação é um tipo mais forte de conexão, aonde a relação é entre o todo e suas partes. – Uma agregação é mostrada como uma linha conectando as classes relacionadas com um losango perto da classes que representa o todo • Uma relação de dependência é uma forma mais fraca de relação, mostrando uma relação entre um cliente e um fornecedor, aonde o cliente não tem conhecimento semântico do fornecedor – Uma dependência é mostrada como uma linha pontilhada entre o cliente e o fornecedor © Copyright Rildo Ferreira, e-tecnologia.com, 2009 107
  • 108.
    Linguagem de ModelagemUnificada UML Estudo de Caso Descobrindo os Relacionamentos: • Relações são descobertas examinando-se os Diagramas de Sequência – Caso dois objetos devam “conversar”, deverá haver um caminho para a comunicação Diretor Álgebra Matrícula curso 3: insere aluno(Maria) Diretor Matrúcula curso © Copyright Rildo Ferreira, e-tecnologia.com, 2009 108
  • 109.
    Linguagem de ModelagemUnificada UML Estudo de Caso Relacionamento: Algorítmo de Horário Diretor Matrícula incluiAluno(curso, AlunoInfo) curso Formulário Matrícula nome NúmeroCréditos Aluno abrir() nome incluirAluno(AlunoInfo) nível Professor Oferta Curso nome StatusCadeira local abrir() incluirAluno(AlunoInfo) © Copyright Rildo Ferreira, e-tecnologia.com, 2009 109
  • 110.
    Linguagem de ModelagemUnificada UML Estudo de Caso Multiplicidade e Navegação: • Multiplicidade define como muitos objetos participam numa relação – Multiplicidade é o número de instâncias de uma classe que se relacionam a UMA instância de uma outra classe – Para cada associação e agregação, haverá duas decisões relativas a multiplicidade a se tomar: Uma para cada lado da relação • Apesar de associações e agregações serem bidirecionais por definição, freqüentemente é desejável restringir a navegação em uma única direção – Caso a navegação seja restringida, uma seta é adicionada para se indicar a direção da navegação © Copyright Rildo Ferreira, e-tecnologia.com, 2009 110
  • 111.
    Linguagem de ModelagemUnificada UML Estudo de Caso Multiplicidade e Navegação: Algorítmo de Horário Diretor Matrícula incluiAluno(curso, AlunoInfo) curso 1 1 0..* nome Formulário Matrícula NúmeroCréditos 0..* Aluno abrir() nome incluirAluno(AlunoInfo) nível 3..10 1 4 1..* Professor nome Oferta Curso StatusCadeira 1 local 0..4 abrir() incluirAluno(AlunoInfo) © Copyright Rildo Ferreira, e-tecnologia.com, 2009 111
  • 112.
    Linguagem de ModelagemUnificada UML Estudo de Caso Herança • Herança é uma relação entre uma super-classe e suas subclasses • Há duas formas de se descobrir heranças: – Generalização – Especialização • Atributos comuns, operações, relações e/ou, são mostradas no nível aplicável mais alto da hierarquia Formulário Matrícula Algorítmo de Horário Diretor Matrícula incluiAluno(curso, AlunoInfo) curso nome Usuário NúmeroCréditos nome abrir() incluirAluno(AlunoInfo) Aluno nome nível Professor nome Oferta Curso StatusCadeira local abrir() incluirAluno(AlunoInfo) © Copyright Rildo Ferreira, e-tecnologia.com, 2009 112
  • 113.
    Linguagem de ModelagemUnificada UML Estudo de Caso O Estado de um Objeto • Um diagrama de transição de estados mostra – O ciclo de vida de uma classe – Os eventos que causam a transição de um estado para outro – As ações que resultam de uma mudança de estado • Diagramas de Transição de Estados são criados para objetos que tenham um comportamento dinâmico significante Inclui aluno[ contador < 10 ] Incluir Aluno / Iniciar Ação Contador = 0 fazer: Iiniciar curso Abrir entrar: Registrar Aluno Sair: incrementa contador Cancelar Cancelar [ contador = 10 ] Cancelado fazer: Notificar Aluno Matriculado Fechado Cancelar fazer: Finalize curso Diagrama de Transições de Estados © Copyright Rildo Ferreira, e-tecnologia.com, 2009 113
  • 114.
    Linguagem de ModelagemUnificada UML Estudo de Caso O Mundo Físico • Diagramas de Componentes ilustram a organização e dependências entre componentes de software • Um componente pode ser: – Um componente de código fonte – Um componente de runtime, ou – Um componente executável © Copyright Rildo Ferreira, e-tecnologia.com, 2009 114
  • 115.
    Linguagem de ModelagemUnificada UML Estudo de Caso Diagrama de Componentes Registro Cobrança Sistema Cobrança Usuário curso.jar pessoa.jar curso Curso.class Oferta Aluno.class Professor.class curso.class © Copyright Rildo Ferreira, e-tecnologia.com, 2009 115
  • 116.
    Linguagem de ModelagemUnificada UML Estudo de Caso Distribuindo o Sistema • O Diagrama de Distribuição mostra a configuração dos elementos de processamento runtime e dos processos que rodam dentro deles • O Diagrama de Distribuição visualiza a distribuição dos componentes através de toda a empresa Diagrama de Distribuição Matrícula Database Sede Biblioteca Principal Salas © Copyright Rildo Ferreira, e-tecnologia.com, 2009 116
  • 117.
    Linguagem de ModelagemUnificada UML Exercício Declaração do Problema: O Hotel “Só quero Sossego” está precisando de sistema para automatizar suas principais atividades e facilitar o gerenciamento de suas operações. O hotel contém um número de apartamentos disponíveis para serem alugados aos hospedes. Cada apartamento tem as seguintes características: - Número, preços base, capacidade de pessoas - Tipo (Single, double, triplo ou suíte) O preço de cada apartamento está relacionado com seu tipo e sazonalidades (períodos especiais, tais como: férias, natal, carnaval...) Um hospede pode fazer reserva de mais de um apartamentos através do telefone, Internet ou pessoalmente no balcão de reserva do Hotel . As reversas devem ser registras no livro de reservas, que deve conter as seguintes informações: - Tipo de apartamento, período, duração da estadia e data da reserva. A reserva somente é confirmada após a verificação da disponibilidade do apartamento na data informada. O cliente deve receber as seguintes informações se confirmada a reserva: - Preço e detalhes sobre hotel. Caso contrário deve receber a informação que não foi possível fazer a reserva para data informada. © Copyright Rildo Ferreira, e-tecnologia.com, 2009 117
  • 118.
    Linguagem de ModelagemUnificada UML Exercício Declaração do Problema (continuação): - As reservas também podem ser feitas diretamente na Recepção do Hotel. No Check-in o hospede é identificado juntamente com sua reserva. No Check-out verifica-se todos os serviços prestados ao hospede e as despesas advindas desses serviços tais como: lavandeira, restaurante, telefonia, assim como a consumação do “frigobar”. O cliente poderá pagar a conta com cartão de crédito, dinheiro, cheque ou cheque de viagens. A disponibilidade deseja para o sistema é de 24x7 para Internet, as interfaces com usuários devem ser simples e sistema deve seguir o padrão de Identidade Visual (Manual de Identidade Visual). O sistema deve implementar um nível de segurança que garanta que somente o usuário que possuir uma senha (esta deve ser criptografa) poderá fazer alterações nos dados da reserva ou alterar seus cadastrais. Exercício: - Fazer o Diagrama de Caso de Reserva - Fazer o Diagrama de Seqüência - Fazer o Diagrama de Classes (Classes de Negócio) - Fazer o Diagrama de Projeto (Refinamento de Casses) - Fazer o Diagrama de Competentes © Copyright Rildo Ferreira, e-tecnologia.com, 2009 118
  • 119.
    Linguagem de ModelagemUnificada UML Apêndice © Copyright Rildo Ferreira, e-tecnologia.com, 2009 119
  • 120.
    Linguagem de ModelagemUnificada Apêndice A UML Notação UML DIAGRAMAS EM QUE MODELO A QUE SÍMBOLO GRÁFICO NOME APARECE USUALMENTE PERTENCEM ASSOCIAÇÂO DE Diagrama de Classes, Classes de Objetos AGREGAÇÃO Diagrama de Componentes. Componentes Diagrama de Classes, Classes de Objetos ASSOCIAÇÂO DE COMPOSIÇÃO Diagrama de Componentes. Componentes Diagrama de Casos de Uso, Caso de Uso ASSOCIAÇÂO DE Diagrama de Classes, Classes de Objetos DEPENDÊNCIA Diagrama de Componentes, Componentes Diagrama de Implantação. Componentes Diagrama de Casos de Uso, Caso de Uso ASSOCIAÇÂO DE GENERALIZAÇÃO Diagrama de Classes. Classes de Objetos Diagrama de Casos de Uso, Caso de Uso ASSOCIAÇÂO Diagrama de Classes, Classes de Objetos REGULAR Diagrama de Componentes, Componentes Diagrama de Implantação. Componentes Diagrama de Casos de Uso, Caso de Uso ATOR Diagrama de Seqüência. Caso de Uso CASO DE USO Diagrama de Casos de Uso. Caso de Uso Nome da Classe Atributos CLASSE Diagrama de Classes. Classes de Objetos Operações Nome do Componente COMPONENTE Diagrama de Componentes Componentes Diagrama de Estados, Classes de Objetos Nome do Estado ESTADO Diagrama de Atividades. Caso de Uso Diagrama de Estados, Classes de Objetos ESTADO FINAL Diagrama de Atividades Caso de Uso © Copyright Rildo Ferreira, e-tecnologia.com, 2009 120
  • 121.
    Linguagem de ModelagemUnificada Apêndice A UML Notação UML Diagrama de Estados, Classes de Objetos ESTADO INICIAL Diagrama de Atividades. Caso de Uso Nome da “Interface” ou <<interface>> Nome da “Interface” Operação1 () Operação2 () Operação3 () “INTERFACE” Diagrama de Componentes Componentes INTERVALO DE EXECUÇÃO DE Diagrama de Seqüência Caso de Uso OPERAÇÂO MENSAGEM DE Diagrama de Seqüência Caso de Uso RETORNO MENSAGEM E CHAMADA DE Diagrama de Seqüência Caso de Uso OPERAÇÂO “Síncrona” MENSAGEM E CHAMADA DE Diagrama de Seqüência Caso de Uso OPERAÇÃO “Assíncrona” NÓ Diagrama de Implantação Componentes texto NOTA Em qualquer diagrama Diagrama de Seqüência, Caso de Uso identificador:Classe ou :Classe OBJETO Diagrama de Atividades Caso de Uso Em qualquer diagrama em que é necessário representar um Nome do Pacote PACOTE conjunto de coisas que devem estar agrupadas para efeito de uma organização apropriada Diagrama de Estados, Classes de Objetos TRANSIÇÃO DE ESTADO Diagrama de Atividades Caso de Uso AUTODELEGAÇÃO Diagrama de Seqüência Caso de Uso © Copyright Rildo Ferreira, e-tecnologia.com, 2009 121
  • 122.
    Linguagem de ModelagemUnificada Apêndice B UML UML 2.0 Diagramas: Visões UML 2.0: Visão Descreve Diagramas Visão de Requisitos Requisitos funcionais do diagramas de casos de uso Funcionais sistema pelo ponto de vista do usuário. Visão Estrutural Estrutura estática do diagrama de classes Estática sistema. diagrama de estruturas Visão de Comportamento dinâmico diagramas de seqüências Comportamento do sistema, mostrando diagramas de atividades Dinâmico suas interações. diagramas de estados © Copyright Rildo Ferreira, e-tecnologia.com, 2009 122
  • 123.
    Linguagem Notas: de Modelagem Unificada UML Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial são de responsabilidade de seus proprietários. O autor informa não estar associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde já o autor informa que o uso é apenas ilustrativo e/ou educativo, não visando ao lucro, favorecimento ou desmerecimento do produto/fabricante. É proibido o uso deste material para fins comerciais. Melhoria e Revisão: Este material esta em processo constante de revisão e melhoria, se você encontrou algum problema ou erro envie um e-mail nós. Criticas e Sugestões: Nós estamos abertos para receber criticas e sugestões que possam melhorar o material, por favor envie um e-mail para nós. Imagens: Google, Flickr e Banco de Imagem. Rildo F dos Santos (rildosan@uol.com.br) 123 © Copyright Rildo Ferreira, e-tecnologia.com, 2009
  • 124.
    Linguagem Licença: de Modelagem Unificada UML 124 © Copyright Rildo Ferreira, e-tecnologia.com, 2009
  • 125.
    Linguagem Licença: de Modelagem Unificada UML 125 © Copyright Rildo Ferreira, e-tecnologia.com, 2009
  • 126.
    Linguagem de ModelagemUnificada UML Notas do autor Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial são de responsabilidade de seus proprietários. O autor informa não estar associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde já o autor informa que o uso é apenas ilustrativo e/ou educativo, não visando ao lucro, favorecimento ou desmerecimento do produto/fabricante. Melhoria e Revisão: Este material esta em processo constante de revisão e melhoria, se você encontrou algum problema ou erro envie um e-mail nós. Criticas e Sugestões: Nós estamos abertos para receber criticas e sugestões que possam melhorar o material, por favor envie um e-mail para nós. Imagens: Google, Flickr e Banco de Imagem. Rildo F dos Santos (rildosan@uol.com.br) © Copyright Rildo Ferreira, e-tecnologia.com, 2009 126
  • 127.
    Linguagem de ModelagemUnificada UML - Linguagem de UML Modelagem Unificada © Copyright Rildo Ferreira, e-tecnologia.com, 2009