SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Tendances (20)

UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Aula 1 - Revisão UML
Aula 1 - Revisão UMLAula 1 - Revisão UML
Aula 1 - Revisão UML
 
Introdução à UML com Casos de Uso
Introdução à UML com Casos de UsoIntrodução à UML com Casos de Uso
Introdução à UML com Casos de Uso
 
Uml diagrama de atividades
Uml   diagrama de atividadesUml   diagrama de atividades
Uml diagrama de atividades
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Diagrama de Casos de Uso
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de Casos de Uso
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UML
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
UML
UMLUML
UML
 
Aula 12 - Diagrama de Atividades.pdf
Aula 12 - Diagrama de Atividades.pdfAula 12 - Diagrama de Atividades.pdf
Aula 12 - Diagrama de Atividades.pdf
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Diagrama de Atividades - UML
Diagrama de Atividades - UMLDiagrama de Atividades - UML
Diagrama de Atividades - UML
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Diagrama de sequência
Diagrama de sequênciaDiagrama de sequência
Diagrama de sequência
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 

En vedette

Rede e-Tec Brasil – Uma política de inclusão pela Educação Profissional a dis...
Rede e-Tec Brasil – Uma política de inclusão pela Educação Profissional a dis...Rede e-Tec Brasil – Uma política de inclusão pela Educação Profissional a dis...
Rede e-Tec Brasil – Uma política de inclusão pela Educação Profissional a dis...Fernando Amorim
 
GeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolGeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolThierry Badard
 
Diagrama de Estados
Diagrama de EstadosDiagrama de Estados
Diagrama de EstadosMaikynata
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuaisFaculdade Mater Christi
 
Engenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLEngenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLAlessandro Almeida
 
Resumo diagrama de estados
Resumo diagrama de estadosResumo diagrama de estados
Resumo diagrama de estadosMarco Coelho
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoRudson Kiyoshi Souza Carvalho
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantaçãoelliando dias
 

En vedette (13)

Componentes
ComponentesComponentes
Componentes
 
Rede e-Tec Brasil – Uma política de inclusão pela Educação Profissional a dis...
Rede e-Tec Brasil – Uma política de inclusão pela Educação Profissional a dis...Rede e-Tec Brasil – Uma política de inclusão pela Educação Profissional a dis...
Rede e-Tec Brasil – Uma política de inclusão pela Educação Profissional a dis...
 
GeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL toolGeoKettle: A powerful open source spatial ETL tool
GeoKettle: A powerful open source spatial ETL tool
 
Diagrama de Estados
Diagrama de EstadosDiagrama de Estados
Diagrama de Estados
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuais
 
Engenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UMLEngenharia de Software II - Atividade: Diagramas da UML
Engenharia de Software II - Atividade: Diagramas da UML
 
Resumo diagrama de estados
Resumo diagrama de estadosResumo diagrama de estados
Resumo diagrama de estados
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Aula5 linguagem uml-introducao
Aula5 linguagem uml-introducaoAula5 linguagem uml-introducao
Aula5 linguagem uml-introducao
 

Similaire à Introdução à linguagem UML (20)

Aula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_umlAula 5 -_fundamentos_de_uml
Aula 5 -_fundamentos_de_uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Aula1 astah
Aula1 astahAula1 astah
Aula1 astah
 
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
 
3 uml
3 uml3 uml
3 uml
 
UML
UMLUML
UML
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 
CursoUML - Unified Modeling Language
CursoUML - Unified Modeling LanguageCursoUML - Unified Modeling Language
CursoUML - Unified Modeling Language
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
UMLIntro.pptx
UMLIntro.pptxUMLIntro.pptx
UMLIntro.pptx
 
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula 4 -_metodologia_e_tecnicas_de_analise_ooAula 4 -_metodologia_e_tecnicas_de_analise_oo
Aula 4 -_metodologia_e_tecnicas_de_analise_oo
 
O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012
 
uml-intro_v02.pdf
uml-intro_v02.pdfuml-intro_v02.pdf
uml-intro_v02.pdf
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Principais diagramas da UML
Principais diagramas da UMLPrincipais diagramas da UML
Principais diagramas da UML
 

Plus de Nécio de Lima Veras

Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Nécio de Lima Veras
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoNécio de Lima Veras
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados Nécio de Lima Veras
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesNécio de Lima Veras
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsNécio de Lima Veras
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesNécio de Lima Veras
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionaisNécio de Lima Veras
 

Plus de Nécio de Lima Veras (20)

Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
 
Agentes inteligentes com jason
Agentes inteligentes com jasonAgentes inteligentes com jason
Agentes inteligentes com jason
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agents
 
Revisão de matemática
Revisão de matemáticaRevisão de matemática
Revisão de matemática
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentes
 
Notas sobre agentes inteligentes
Notas sobre agentes inteligentesNotas sobre agentes inteligentes
Notas sobre agentes inteligentes
 
Anotações do mapeamento OR
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
Relacionamentos do mapeamento OR
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Java swing
Java swingJava swing
Java swing
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionais
 

Introdução à linguagem UML

  • 1. 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
  • 2. Roteiro  Introdução (métodos OO)  UML  Conceitos  História  Utilidade e Desenvolvimento  Modelos e Diagramas
  • 3. 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;
  • 4. 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;
  • 5. 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);
  • 6. 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;
  • 7. 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;
  • 8. 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.
  • 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 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;
  • 16. 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:
  • 17. 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;
  • 18. 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;
  • 19. 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”;
  • 20. 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.
  • 21. 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;