Engenharia de Software
Unidade IV – A Linguagem UML



Objetivo: Visualizar a simbologia e os elementos da
Linguagem de Modelagem Unificada (UML) bem como
os principais diagramas
                               Prof. Nécio de Lima Veras
Roteiro


 Introdução (métodos OO)
 UML
   Conceitos
   História
   Utilidade e Desenvolvimento
   Modelos e Diagramas
Introdução – Métodos Orientado a
      Objetos
•   Booch (Grady Booch):
    1. Um objeto = um modelo do mundo real com
       dados e habilidades;
    2. Desenho estruturado e OO;

    Estruturado: Separa o sistema em módulos;
    OO: Problema com os objetos que existem em um
        domínio de problema;
Introdução – Métodos Orientado a
Objetos
•    OMT (Rumbaugh): Técnica de Modelagem de
     Objetos
    1.   Desenvolvido pela GE Corporation;
    2.   Baseado na modelagem semântica de dados;
    3.    Suporta:
         • Atributos e relacionamentos (modelagem de dados);
         • composição/agregação (objetos); e
         • Herança.
    4.   Ponto forte: Notação utilizada (OMT reformula E-R);
    5.   Ponto fraco: Sem notação específica para representar
         troca de mensagens entre os objetos;
Introdução – Métodos Orientado a
Objetos
•  OOSE (Jacobson): Object-Oriented Software
   Engineering;
1. A diferença em relação aos outros métodos é
   o seu foco:
    – Casos de uso (domínio do problema e interfaces);
    – Categorização de pessoas e equipamentos,
      dependendo do seu papel no sistema;
2. Ponto fraco: Notação simplista para objetos
   de domínios (objetos = círculos);
3. Ponto forte: Foi adaptado a engenharia de
   negócios (idéias usadas para modelar e
   melhorar processos);
Introdução – Métodos Orientado a
Objetos
•    Shlaer/Mellor (Sally Shlaer e Stephen
     Mellor):
1.   Pode utilizar ferramentas tradicionais (DFD);
2.   Pode ser usado quando a organização decide
     manter suas antigas ferramentas de trabalho,
     enquanto avalia outra (OO);
3.   Utilizava diagrama de ER e transição de estados;
4.   Recebeu muitas críticas por:
     –   Não fornecer esquema de tratamento de mensagens e
         encapsulamento;
     –   pobreza no suporte a conceitos e herança;
Introdução – Métodos Orientado a
Objetos
•    Coad/Yourdon (Peter Coad e Ed
     Yourdon):
1.   Enfoque simples e eficaz;
2.   Divide a análise em classes e objetos;
3.   Objetos = Abstrações do mundo real;
4.   Classes = Coleção de um ou mais
     objetos com atributos e serviços;
Introdução – Métodos Orientado a
Objetos
 Outros métodos:
   Embley/Kurtz;
   Martin/Odell;
   Wirfs-Brock;
   UML

 Leitura recomendada:
UML Essencial: Um breve guia para a
 linguagem-padrão de modelagem de
 objetos. Martin Fowler, Bookman, 3a Edição,
 2004.
UML

 O que é UML?
     Linguagem de modelagem unificada;
     Projetada para descrever modelos de
      sistemas (do mundo real e de softwares);
     Baseada em Objetos;
 Padrão
     É hoje um padrão consolidado (adotada pela
      indústria de hardware e software);
     Tem evoluído bastante durante os últimos
      anos;
Como surgiu UML?

 Inicio-se com um esforço de Grady Booch
  e Jim Raumbaugh em 1994 para
  combinar seus métodos populares (Booch
  e OMT);
 Posteriormente, juntou-se a eles Ivar
  Jacobson (OOSE);
 Assim originou-se o termo “UNIFICADA”;
 Em 1997, foi submetida pela OMG como
  candidata a se tornar uma linguagem e
  uma notação padrão de modelagem;
Como surgiu UML?(cont.)
 A OMG aceitou e assim a UML tem recebido a
  aprovação geral (indústrias de hardware e software);
 Muitas empreses de desenvolvimento de software e
  vendedores de ferramentas CASE adotaram a UML;
 Assim, a UML está acessível a todos, sendo uma
  linguagem padrão que é elegante, expressiva e
  flexível;

Leitura complementar sobre as especificações da
notação UML:
                   www.uml.org
Utilidade da UML

 É independente do processo de
  desenvolvimento de software;
 Finalidade principal: Ser uma linguagem
  para modelagem e não um guia de
  desenvolvimento de software, como por
  exemplo:
     Como fazer análise e projeto OO;
     Qual o processo (etapas, workflows) a seguir;
 Não define um ciclo padrão de
  desenvolvimento;
Desenvolvimento da UML
 Os esforço iniciais dos autores foram:
    Identificar e definir a semântica dos conceitos
     fundamentais;
    Criar uma representação gráfica, cuja sintaxe
     pudesse ser bem simples, intuitiva e
     expressiva;
 Foi dividida em subconjuntos da UML,definida
  como meta-modelagem;
    Vantagem: Permitir a classificação dos
     conceitos por nível de abstração,
     complexidade e pelo domínio da aplicação;
Desenvolvimento da UML(cont.)
 Um meta-modelo descreve formalmente os
  elementos do modelo;
 O modelo é uma descrição abstrata de um sistema
  ou processo;
   A forma do modelo depende do meta-modelo;
   Cada meta-modelo define elementos do modelo e
    suas regras para composição;
   O conteúdo do modelo depende do problema;
   É a unidade básica do desenvolvimento e é
    construído por elementos com suas diferentes
    representações;
Tipo de Modelos em UML
 A UML (v2) define diferentes tipos de modelos
  para representar sistemas. Exemplos:
     Classes: Captura a estrutura estática;
     Estados: Expressa o comportamento dinâmico dos
      objetos;
     Casos de Uso: Descreve os requerimentos dos
      usuários;
     Interações: Representa os cenários do fluxo de
      mensagens;
     Implementação: Mostra as unidades trabalhando;
     Implantação: Fornece os detalhes pertencentes ao
      processo de alocação de recursos;
Tipos de Diagramas em UML
•   Um modelo pode ser constituído por um ou mais
    diagramas correspondentes;
•   A UML 2 define 13 diferentes tipos de diagramas
    divididos em grupos:
Tipos de Diagramas em UML

 1. Diagrama de classes;
   Descreve os tipos de objetos em um
    sistema e os vários tipos de relações
    estáticas entre eles;
   Demonstra os atributos e métodos de
    uma classe e a com que os objetos
    estão conectados;
Tipos de Diagramas em UML

 2. Diagrama de seqüências:
    Mostra as interações entre objetos organizados em uma
     seqüência de tempo, ilustrando as mensagens trocadas;
 3. Diagrama de Comunicações:
    Mostra as interações organizadas em torno dos “roles” –
     objetos ou links;
 4. Diagrama de Objetos:
    Mostra objetos e suas relações em um certo ponto no
     tempo;
    É considerado um caso especial do diagrama de classes
     em que instâncias e classes podem ser mostradas;
Tipos de Diagramas em UML

 5. Diagrama de Máquina de Estados:
  Mostra uma máquina de estados, incluindo estados
   simples, transições e compostos;
  Descreve todos os possíveis estados que este objeto
   pode assumir;
 6. Diagrama de Atividades:
    Descreve uma seqüência de atividades, com suporte
     de comportamento condicional e paralelo;
 7. Diagrama de Casos de Uso:
    Mostra seqüências de ações entre atores e “uses
     cases”;
Tipos de Diagramas em UML
8. Diagrama de Componentes:
    Mostra dependências entre componentes de software –
     incluindo componentes de código-fonte, código objeto e
     executáveis;
9. Diagrama de Implantação:
    Mostra as relações físicas entre componentes de hardware e
     software;
10. Diagrama de Estrutura Composta:
    Descreve a estrutura interna de uma classe ou componente,
     além de permitir a descrição de colaboradores;
11. Diagrama de Pacotes:
    Representa um subsistema englobado por um sistema de forma
     a determinar as partes que o compõem.
Tipos de Diagramas em UML

 12. Diagrama de Interação Geral:
     Uma variação do diagrama de atividades que fornece
      uma visão geral do fluxo de informações;
 13. Diagrama de Tempo:
     Descreve uma mudança de estado ou condição de
      instância, ou ainda, seu papel durante o tempo,
      tipicamente, em resposta a eventos externos;

 Assim, a UML fornece uma notação compreensível para
 todo o ciclo de desenvolvimento OO;
Exercícios

Introdução à linguagem UML

  • 1.
    Engenharia de Software UnidadeIV – A Linguagem UML Objetivo: Visualizar a simbologia e os elementos da Linguagem de Modelagem Unificada (UML) bem como os principais diagramas Prof. Nécio de Lima Veras
  • 2.
    Roteiro  Introdução (métodosOO)  UML  Conceitos  História  Utilidade e Desenvolvimento  Modelos e Diagramas
  • 3.
    Introdução – MétodosOrientado a Objetos • Booch (Grady Booch): 1. Um objeto = um modelo do mundo real com dados e habilidades; 2. Desenho estruturado e OO; Estruturado: Separa o sistema em módulos; OO: Problema com os objetos que existem em um domínio de problema;
  • 4.
    Introdução – MétodosOrientado a Objetos • OMT (Rumbaugh): Técnica de Modelagem de Objetos 1. Desenvolvido pela GE Corporation; 2. Baseado na modelagem semântica de dados; 3. Suporta: • Atributos e relacionamentos (modelagem de dados); • composição/agregação (objetos); e • Herança. 4. Ponto forte: Notação utilizada (OMT reformula E-R); 5. Ponto fraco: Sem notação específica para representar troca de mensagens entre os objetos;
  • 5.
    Introdução – MétodosOrientado a Objetos • OOSE (Jacobson): Object-Oriented Software Engineering; 1. A diferença em relação aos outros métodos é o seu foco: – Casos de uso (domínio do problema e interfaces); – Categorização de pessoas e equipamentos, dependendo do seu papel no sistema; 2. Ponto fraco: Notação simplista para objetos de domínios (objetos = círculos); 3. Ponto forte: Foi adaptado a engenharia de negócios (idéias usadas para modelar e melhorar processos);
  • 6.
    Introdução – MétodosOrientado a Objetos • Shlaer/Mellor (Sally Shlaer e Stephen Mellor): 1. Pode utilizar ferramentas tradicionais (DFD); 2. Pode ser usado quando a organização decide manter suas antigas ferramentas de trabalho, enquanto avalia outra (OO); 3. Utilizava diagrama de ER e transição de estados; 4. Recebeu muitas críticas por: – Não fornecer esquema de tratamento de mensagens e encapsulamento; – pobreza no suporte a conceitos e herança;
  • 7.
    Introdução – MétodosOrientado a Objetos • Coad/Yourdon (Peter Coad e Ed Yourdon): 1. Enfoque simples e eficaz; 2. Divide a análise em classes e objetos; 3. Objetos = Abstrações do mundo real; 4. Classes = Coleção de um ou mais objetos com atributos e serviços;
  • 8.
    Introdução – MétodosOrientado a Objetos  Outros métodos:  Embley/Kurtz;  Martin/Odell;  Wirfs-Brock;  UML  Leitura recomendada: UML Essencial: Um breve guia para a linguagem-padrão de modelagem de objetos. Martin Fowler, Bookman, 3a Edição, 2004.
  • 9.
    UML  O queé UML?  Linguagem de modelagem unificada;  Projetada para descrever modelos de sistemas (do mundo real e de softwares);  Baseada em Objetos;  Padrão  É hoje um padrão consolidado (adotada pela indústria de hardware e software);  Tem evoluído bastante durante os últimos anos;
  • 10.
    Como surgiu UML? Inicio-se com um esforço de Grady Booch e Jim Raumbaugh em 1994 para combinar seus métodos populares (Booch e OMT);  Posteriormente, juntou-se a eles Ivar Jacobson (OOSE);  Assim originou-se o termo “UNIFICADA”;  Em 1997, foi submetida pela OMG como candidata a se tornar uma linguagem e uma notação padrão de modelagem;
  • 11.
    Como surgiu UML?(cont.) A OMG aceitou e assim a UML tem recebido a aprovação geral (indústrias de hardware e software);  Muitas empreses de desenvolvimento de software e vendedores de ferramentas CASE adotaram a UML;  Assim, a UML está acessível a todos, sendo uma linguagem padrão que é elegante, expressiva e flexível; Leitura complementar sobre as especificações da notação UML: www.uml.org
  • 12.
    Utilidade da UML É independente do processo de desenvolvimento de software;  Finalidade principal: Ser uma linguagem para modelagem e não um guia de desenvolvimento de software, como por exemplo:  Como fazer análise e projeto OO;  Qual o processo (etapas, workflows) a seguir;  Não define um ciclo padrão de desenvolvimento;
  • 13.
    Desenvolvimento da UML Os esforço iniciais dos autores foram:  Identificar e definir a semântica dos conceitos fundamentais;  Criar uma representação gráfica, cuja sintaxe pudesse ser bem simples, intuitiva e expressiva;  Foi dividida em subconjuntos da UML,definida como meta-modelagem;  Vantagem: Permitir a classificação dos conceitos por nível de abstração, complexidade e pelo domínio da aplicação;
  • 14.
    Desenvolvimento da UML(cont.) Um meta-modelo descreve formalmente os elementos do modelo;  O modelo é uma descrição abstrata de um sistema ou processo;  A forma do modelo depende do meta-modelo;  Cada meta-modelo define elementos do modelo e suas regras para composição;  O conteúdo do modelo depende do problema;  É a unidade básica do desenvolvimento e é construído por elementos com suas diferentes representações;
  • 15.
    Tipo de Modelosem UML  A UML (v2) define diferentes tipos de modelos para representar sistemas. Exemplos:  Classes: Captura a estrutura estática;  Estados: Expressa o comportamento dinâmico dos objetos;  Casos de Uso: Descreve os requerimentos dos usuários;  Interações: Representa os cenários do fluxo de mensagens;  Implementação: Mostra as unidades trabalhando;  Implantação: Fornece os detalhes pertencentes ao processo de alocação de recursos;
  • 16.
    Tipos de Diagramasem UML • Um modelo pode ser constituído por um ou mais diagramas correspondentes; • A UML 2 define 13 diferentes tipos de diagramas divididos em grupos:
  • 17.
    Tipos de Diagramasem UML 1. Diagrama de classes;  Descreve os tipos de objetos em um sistema e os vários tipos de relações estáticas entre eles;  Demonstra os atributos e métodos de uma classe e a com que os objetos estão conectados;
  • 18.
    Tipos de Diagramasem UML 2. Diagrama de seqüências:  Mostra as interações entre objetos organizados em uma seqüência de tempo, ilustrando as mensagens trocadas; 3. Diagrama de Comunicações:  Mostra as interações organizadas em torno dos “roles” – objetos ou links; 4. Diagrama de Objetos:  Mostra objetos e suas relações em um certo ponto no tempo;  É considerado um caso especial do diagrama de classes em que instâncias e classes podem ser mostradas;
  • 19.
    Tipos de Diagramasem UML 5. Diagrama de Máquina de Estados:  Mostra uma máquina de estados, incluindo estados simples, transições e compostos;  Descreve todos os possíveis estados que este objeto pode assumir; 6. Diagrama de Atividades:  Descreve uma seqüência de atividades, com suporte de comportamento condicional e paralelo; 7. Diagrama de Casos de Uso:  Mostra seqüências de ações entre atores e “uses cases”;
  • 20.
    Tipos de Diagramasem UML 8. Diagrama de Componentes:  Mostra dependências entre componentes de software – incluindo componentes de código-fonte, código objeto e executáveis; 9. Diagrama de Implantação:  Mostra as relações físicas entre componentes de hardware e software; 10. Diagrama de Estrutura Composta:  Descreve a estrutura interna de uma classe ou componente, além de permitir a descrição de colaboradores; 11. Diagrama de Pacotes:  Representa um subsistema englobado por um sistema de forma a determinar as partes que o compõem.
  • 21.
    Tipos de Diagramasem UML 12. Diagrama de Interação Geral:  Uma variação do diagrama de atividades que fornece uma visão geral do fluxo de informações; 13. Diagrama de Tempo:  Descreve uma mudança de estado ou condição de instância, ou ainda, seu papel durante o tempo, tipicamente, em resposta a eventos externos;  Assim, a UML fornece uma notação compreensível para todo o ciclo de desenvolvimento OO;
  • 22.