SlideShare a Scribd company logo
1 of 127
Download to read offline
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
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML
UML

More Related Content

What's hot

Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLRildo (@rildosan) Santos
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasClayton de Almeida Souza
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de UsoNatanael Simões
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 

What's hot (20)

Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
UML
UMLUML
UML
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
Diagrama de Casos de Uso
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de Casos de Uso
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
 
Uml
UmlUml
Uml
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 

Similar to UML (20)

Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Aula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_umlAula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_uml
 
Fundamentos de Sistemas de Informacao - Aula 27
Fundamentos de Sistemas de Informacao - Aula 27Fundamentos de Sistemas de Informacao - Aula 27
Fundamentos de Sistemas de Informacao - Aula 27
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
A Linguagem UML
A Linguagem UMLA Linguagem UML
A Linguagem UML
 
Aula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptxAula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptx
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Análise e Modelagem com UML
Análise e Modelagem com UMLAnálise e Modelagem com UML
Análise e Modelagem com UML
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005
 
UML
UMLUML
UML
 
Aula1 - Modelagem de Sistemas Orientada a Objetos
Aula1 - Modelagem de Sistemas Orientada a ObjetosAula1 - Modelagem de Sistemas Orientada a Objetos
Aula1 - Modelagem de Sistemas Orientada a Objetos
 
Aula 01 introdução aoo
Aula 01   introdução aooAula 01   introdução aoo
Aula 01 introdução aoo
 
UML - Historia e Diagrmas
UML - Historia e DiagrmasUML - Historia e Diagrmas
UML - Historia e Diagrmas
 
Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)
 

More from Rildo (@rildosan) Santos

Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0Rildo (@rildosan) Santos
 
Minicurso Gestão Ágil de Projetos com Abordagem Híbrida
Minicurso Gestão Ágil de Projetos com Abordagem HíbridaMinicurso Gestão Ágil de Projetos com Abordagem Híbrida
Minicurso Gestão Ágil de Projetos com Abordagem HíbridaRildo (@rildosan) Santos
 
Digital Business Design (Design de Negócios Digitais)
Digital Business Design (Design de Negócios Digitais)Digital Business Design (Design de Negócios Digitais)
Digital Business Design (Design de Negócios Digitais)Rildo (@rildosan) Santos
 
Novidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKNovidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKRildo (@rildosan) Santos
 

More from Rildo (@rildosan) Santos (20)

Feedback. Arte de dar e receber feedback
Feedback. Arte de dar e receber feedbackFeedback. Arte de dar e receber feedback
Feedback. Arte de dar e receber feedback
 
Minicurso Meça o que importa com OKR
Minicurso Meça o que importa com OKRMinicurso Meça o que importa com OKR
Minicurso Meça o que importa com OKR
 
Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0Minicurso Fundamentos da Análise de Negócio 3.0
Minicurso Fundamentos da Análise de Negócio 3.0
 
Meça o que importa com OKR
Meça o que importa com OKRMeça o que importa com OKR
Meça o que importa com OKR
 
Scrum Experience
Scrum ExperienceScrum Experience
Scrum Experience
 
Minicurso Gestão Ágil de Projetos com Abordagem Híbrida
Minicurso Gestão Ágil de Projetos com Abordagem HíbridaMinicurso Gestão Ágil de Projetos com Abordagem Híbrida
Minicurso Gestão Ágil de Projetos com Abordagem Híbrida
 
Digital Business Design (Design de Negócios Digitais)
Digital Business Design (Design de Negócios Digitais)Digital Business Design (Design de Negócios Digitais)
Digital Business Design (Design de Negócios Digitais)
 
Novidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOKNovidades da Sétima Edição do Guia PMBOK
Novidades da Sétima Edição do Guia PMBOK
 
Jornada de Aprendizado Lean BPM
Jornada de Aprendizado Lean BPM Jornada de Aprendizado Lean BPM
Jornada de Aprendizado Lean BPM
 
Mapa Mental Scrum
Mapa Mental ScrumMapa Mental Scrum
Mapa Mental Scrum
 
Tutorial Scrum Experience
Tutorial Scrum Experience Tutorial Scrum Experience
Tutorial Scrum Experience
 
Guia BPM CBOK(R)
Guia BPM CBOK(R)Guia BPM CBOK(R)
Guia BPM CBOK(R)
 
Gestão Ágil de Projetos
Gestão Ágil de ProjetosGestão Ágil de Projetos
Gestão Ágil de Projetos
 
Scrum Master em ação
Scrum Master em açãoScrum Master em ação
Scrum Master em ação
 
Transformação Ágil
Transformação ÁgilTransformação Ágil
Transformação Ágil
 
Service Design Thinking
Service Design Thinking Service Design Thinking
Service Design Thinking
 
Gestão de Projetos Ágeis
Gestão de Projetos ÁgeisGestão de Projetos Ágeis
Gestão de Projetos Ágeis
 
Scrum, o tutorial definitivo
Scrum, o tutorial definitivo Scrum, o tutorial definitivo
Scrum, o tutorial definitivo
 
Feedback Canvas
Feedback CanvasFeedback Canvas
Feedback Canvas
 
Business Design Thinking
Business Design ThinkingBusiness Design Thinking
Business Design Thinking
 

UML

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. Linguagem de Modelagem Unificada UML Introdução a UML © Copyright Rildo Ferreira, e-tecnologia.com, 2009 25
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. Linguagem de Modelagem Unificada UML Diagramas da UML © Copyright Rildo Ferreira, e-tecnologia.com, 2009 49
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. 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
  • 59. 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
  • 60. 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
  • 61. 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
  • 62. 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
  • 63. 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
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. 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
  • 68. 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
  • 69. 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
  • 70. 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
  • 71. 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
  • 72. 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