SlideShare uma empresa Scribd logo
UML – Criando Diagramas Eficientes Rafael Guimarães Sakurai Rodrigo Cascarrolho SESTINFO 2009
Quem somos? Rafael Guimarães Sakurai (rafael.sakurai@metodista.br) Possui graduação em Ciência da Computação pela Universidade Metodista de São Paulo (2005), especialista em Engenharia de Componentes com Java Enterprise e Webservices pela Faculdade de Informática e Administração Paulista. Atualmente é Analista Desenvolvedor de software da Virginia Surety. Tem experiência na área de Ciência da Computação, com ênfase em Linguagens de Programação. Possui as seguintes certificações: SCJP 5.0, SCWCD 1.4 e SCSNI. Rodrigo Cascarrolho (rodrigo.cascarrolho@metodista.br) Possui graduação pela Pontifícia Universidade Católica de São Paulo (2003). Atualmente é Desenvolvedor Java da Confluence Soluções em Informática Ltda. Tem experiência na área de Ciência da Computação com ênfase em Metodologia e Técnicas da Computação.
Agenda O que é UML História Diagramas UML Diagrama de Caso de Uso Diagrama de Classes Ferramentas de Modelagem Certificação Bibliografia
O que é e por que usar UML? UML – Unified Modeling Language Definição Por que usar UML? “ É uma família de  notações gráficas , apoiada por um metamodelo único, que ajuda na  descrição  e no  projeto  de sistemas de software, particularmente daqueles construídos utilizando o estilo  orientado a objetos .” Martin Fowler
Um pouco de história... Out/1994 Out/1995 Jun/1996 Jan/1997 Nov/1997 Jun/1998 Dez/1998 2001 2005 2007 2002 James Rumbaugh  e Grady Booch - Versão 0.8 - Ivar Jacobson - “três amigos” Versão 0.9 Versão 1.1 Versão 1.3 Versão 2.1 Versão 1.0 Versão 1.2 Versão 1.4 Versão 1.5 Versão 2.0
UML - Diagramas Lista de Diagramas Diagrama Objetivo Grupo Diagrama Classes Classe, características e relacionamentos. Estrutural  Componentes Estrutura e conexão de componentes. Estrutural  Estruturas Compostas Decomposição de uma classe em tempo de execução. Estrutural  Instalação Distribuição de artefatos nos nós. Estrutural  Objetos Exemplo de configurações de instâncias. Estrutural  Pacotes Estrutura hierárquica em tempo de compilação. Estrutural  Casos de Uso Como os usuários interagem com um sistema. Comportamental  Atividades Comportamento procedimental e paralelo. Comportamental  Máquinas de Estado Como os eventos alteram um objeto no decorrer de sua vida. Comportamental  Sequência Interação entre objetos; ênfase na sequência. Interação  Comunicação Interação entre objetos; ênfase nas ligações. Interação  Visão Geral da Interação Mistura de diagrama de sequência e de atividades. Interação  Sincronismo Interação entre objetos; ênfase no sincronismo. Interação
Criando um projeto UML no NetBeans Para iniciar o NetBeans: Iniciar / Programas / Netbeans / NetBeans IDE 6.5 Para criar um novo  Projeto UML : Arquivo - Novo projeto
Criando um projeto UML no NetBeans Digite o  nome  e o  local  onde será criado o projeto: Na próxima tela clique em  Cancelar  e teremos a seguinte estrutura.
UML – Diagrama de Caso de Uso “ Documento narrativo que descreve a sequência de eventos de um ator que usa um sistema para completar um processo.”   Representa a interação entre um usuário (humano ou sistema) e o sistema. Não descreve como o software deverá ser construído, mas sim como ele deverá se comportar quando estiver pronto. Corresponde a um conjunto de ações com um objetivo comum. Ivar Jacobson
Ator Humano ou entidade. Interage com o sistema. Iniciam o sistema. Fornecem dados. Usam as informações do sistema.
Caso de Uso Unidade de um trabalho significante. Representa um processo. Iniciado por um ator ou outro caso de uso. Exemplos: “Login para o sistema”, “Registrar no sistema”, “Criar pedidos”, etc.
<<include>> e <<extend>> <<include>> Relacionamento com outro caso de uso que sempre será executado. <<extend>> Relacionamento com outro caso de uso que pode ou não ser executado.
Diagrama de Caso de Uso Sistema de Pagamento de Serviços  O sistema será responsável por gerenciar os pagamentos dos serviços prestados por empresas e freelancers. O pagamento do serviço poderá ser efetuado apenas pelo usuário que possuir o perfil específico para esta função. Ao ser realizado qualquer serviço e pagamentos, o sistema gera e envia uma mensagem de e-mail aos prestadores do serviço.
Diagrama de Caso de Uso Pagamento de Serviço Cenário Principal de Sucesso: 1. O usuário  acessa o sistema 2. O usuário pesquisa o serviço a ser pago 3. O sistema apresenta as informações do serviço 4. O usuário inicia o processo de pagamento 5. O sistema envia a confirmação do pagamento ao prestador do serviço 6. O sistema encerra o processo de pagamento Extensões: 1a. Usuário não autorizado 1a.1 O usuário não possui perfil para realizar pagamentos 1a.2 O usuário é direcionado ao passo 6. 3a. Serviço não finalizado 3a.1 O sistema apresenta que o serviço não foi finalizado 3a.2 O usuário é direcionado ao passo 6. Descrição Diagrama
Diagrama de Caso de Uso Exemplo de Caso de Uso para sacar dinheiro
Criando um diagrama de Caso de Uso No item  Diagramas -> Novo -> Diagrama... Selecione a opção  Diagrama de Caso de Uso
Criando um diagrama de Caso de Uso Ao clicar em  Finalizar  teremos a seguinte tela: 1)  Área para criação do diagrama de Caso de Uso 2)  Paleta com os itens que podem ser adicionados no diagrama de Caso de Uso
Exemplo Prático Sistema de Pagamento de Serviços, realizar pagamento de serviços
Resposta do exemplo prático Sistema de Pagamento de Serviços, realizar pesquisa de serviços
O que colocar no diagrama de Caso de Uso Melhor fazer menos do que fazer demais. Breve e fácil de ler. Preferência na descrição textual. Limitar os relacionamentos com  <<include>>  e  <<extend>> .
O que não colocar no diagrama de  Caso de Uso Textos longos. Muitas extensões. Todos diagramas se chamando. Todas as ações CRUD separadas. Detalhes da tela (botões, combos, links, etc). Não é um fluxograma! Atenção: Não relacione o caso de uso com as classes do sistema.
UML – Diagrama de Classes
Estrutura da classe Uma classe em UML possui três partes: Nome da Classe Atributos Operações Podemos abreviar a declaração da classe, caso não influencie o entendimento do diagrama:
Atributos Um atributo é formado por: visibilidade nome  :  tipo [multiplicidade] = valor inicial {propriedades}
Operações Uma operação é formada por: visibilidade nome (parâmetros) : tipo de retorno {propriedades} O parâmetro de um método é formado por: nome : tipo [multiplicidade] = valor inicial
Visibilidade Podemos definir as seguintes visibilidades em atributos e operações: - private ~ default # protected + public
Atributos e operações estático Podemos definir atributos e operações como sendo estáticos, ou seja, são referentes a classe e não aos seus objetos.
Comentário Os comentários ou notas são utilizados para adicionar mais informações ao diagrama.
Comentário O comentário pode ser utilizado em qualquer diagrama, podendo ou não ser vinculado a algum elemento. Utilizamos também o comentário para definir alguma regra de restrição, para isto precisamos adicionar  { }  entre a restrição:
Associações Utilizado para representar o relacionamento entre classes, as associações podem ser: Associação Agregação Composição Classe de associação As classes que fazem parte de um relacionamento também são chamadas de TODO (responsável pelo relacionamento) e PARTE (usado pelo relacionamento).
Associação Relacionamento simples entre duas classes:
Agregação Informa que uma classe faz parte de outra classe, mas não de forma exclusiva.
Composição Informa que uma classe faz parte de outra classe de forma exclusiva.
Agregação x Composição A diferença entre ambos é: Agregação  – se excluir a classe responsável pelo relacionamento, não deve excluir a classe que ele possui relacionamento. Composição  – se excluir a classe responsável pelo relacionamento, então deve excluir a classe que ele possui relacionamento.
Classe de associação Utilizamos para realizar o relacionamento entre duas classes: ou
Podemos também ter uma associação para mesma classe: Associação
Navegabilidade Podemos informar qual a direção do relacionamento:
Multiplicidade A multiplicidade é utilizada para definir a quantidade de objetos devem ser criados: 0 .. 1  (zero ou um) 1  (um) *  (zero ou muitos)
Multiplicidade Quando utilizamos atributos para informar coleção de objetos, podemos também adicionar propriedades na multiplicidade: {ordered} - Ordenado {unordered} - Não ordenado {unique} - Único {nonunique} - Não único {bag} - Conjunto não ordenado e não único
Criando um diagrama de Classes No item  Diagramas -> Novo -> Diagrama... Selecione a opção  Diagrama de Caso de Uso
Criando um diagrama de Classes Ao clicar em  Finalizar  teremos a seguinte tela: 1)  Área para criação do diagrama de Caso de Uso 2)  Paleta com os itens que podem ser adicionados no diagrama de Caso de Uso
Exemplo Crie o diagrama de classes UML para a seguinte figura: Inicio Fim Pedido Pagamento Entrega
Resposta exemplo prático
Exemplo prático Crie um diagrama de classes UML para o sistema de Agendamento de Entrega de Produtos: O sistema deve permitir o agendamento de uma visita por parte de um funcionário, ao cliente de nossa empresa. Esta visita deverá ser realizada em hora e local definido pelo cliente para poder lhe entregar os produtos que foram comprados em nossa loja.
Resposta exemplo prático
Dependência Utilizado para informar que uma classe depende de outra classe para executar alguma operação:
Dependência Palavras - chave de dependência: <<call>> <<create>> <<dependency>> <<use>>
Associação x Dependência A diferença básica entre ambos: Associação  temos um atributo da classe relacionada. Dependência  utilizamos a classe relacionada, para passar um parâmetro, chamar um método, criar um objeto, etc.
Associação x Dependência Exemplo:
Classe Abstrata Utilizado para informar que uma classe não implementa todos os seus métodos.
Herança Utilizamos herança quando queremos declarar subclasses, permitindo reutilizar os códigos já declarados na superclasse.
Interface Utilizamos interface para definir as operações básicas que uma classe de seu tipo precisa implementar.
Interface Exemplo:
Pacote Utilizamos para organizar as classes:
Template É uma classe parametrizada para definir conjuntos fortemente tipados.
Enumeration Utilizado para criar um conjunto fixo de valores:
Exemplo prático Crie um diagrama de classe em UML para o Sistema de Envio de Produtos: O sistema deve controlar a ordenação do envio dos produtos por preço ou por endereço do cliente. De acordo com a quantidade de produtos, também precisamos alocar um veiculo que pode ser uma Van ou uma Caminhonete. Também precisamos controlar o status do envio que pode ser, aguardando pagamento, buscando em estoque, saída para entrega ou entregue.
Resposta exemplo prático
O que colocar no diagrama de classes Concentre-se nas áreas principais do sistema. O necessário para que as pessoas envolvidas possam entender. Mantenha as notações simples. Gere um diagrama de classe flexível, facilitando futuras atualizações. Desenvolva o diagrama baseado na metodologia adotada, podendo ser um diagrama de negocio, diagrama especifico por áreas do sistema ou diagrama com todas as classes envolvidas no sistema.
O que não colocar no diagrama de classes Para não aumentar a complexidade de um diagrama de classes, normalmente não adicionamos no diagrama: Classes que representam telas. Classes de conexão e acesso ao banco de dados. Classes de API’s da linguagem ou de terceiros. Não tente usar todas as notações disponíveis no mesmo diagrama. Não desenhe modelos para tudo, a menos que seja realmente necessário.
Ferramentas IDE Eclipse UML -  http://www.eclipseuml.com Jude -  http://jude.change-vision.com NetBeans –  http://www.netbeans.org Magic Draw -  http://secure.nomagic.com   Microsoft Office Visio -  http://office.microsoft.com/pt-br/visio/default . aspx   Poseidon -  http://www.gentleware.com   Enterprise Architect -   http://www.sparxsystems.com.au/
Adicionando o plug-in de UML no NetBeans No menu  Ferramentas  ->  Plug-ins Selecione em  Plug-ins disponíveis  ->  UML 1 2
Certificações UML OCUP – OMG Certified UML Professional http://www.omg.org/uml-certification/exam_info.htm
Referencia bibliografica [Booch,  Rumbaugh e Jacobson, I.] Grandy Booch, James Rumbaugh e Ivar Jacobson, UML: Guia do Usuário, 3ª Ed. Campus, 2005. [Fowler] Martin Fowler, UML Essencial, 3ª Ed. Bookman, 2005. [Guedes] Gilleanes T. A. Guedes, UML: Uma abordagem pratica, 3ª Ed. Novatec, 2008. [Cardoso] Caíque Cardoso, UML na prática: do problema ao sistema, Ed. Ciência Moderna, 2003 UML -  http://www.uml.org Wikipédia –  http://www.wikipedia.org
Obrigado! http://www.slideshare.net/rodrigocasca/uml-criando-diagramas-eficientes

Mais conteúdo relacionado

PPT
PDF
Apresentação Docker
PDF
Aula UML - Unified Modeling Language
PDF
Modelagem de Sistemas de Informação
PPT
Apresentação da UML
PPTX
Uml Diagramas Estruturais
PDF
Analise de Requisitos Software
PDF
Fundamentos em Tecnologia da Informação - Prof.ª Cristiane Fidelix
Apresentação Docker
Aula UML - Unified Modeling Language
Modelagem de Sistemas de Informação
Apresentação da UML
Uml Diagramas Estruturais
Analise de Requisitos Software
Fundamentos em Tecnologia da Informação - Prof.ª Cristiane Fidelix

Mais procurados (20)

PPTX
Modelagem de Dados
PDF
Aula 7 - Modelagem de Software
PDF
Exercitando modelagem em UML
PDF
Introdução à linguagem UML
PDF
1.Introdução Banco de Dados
PDF
Aula 1 - Introdução a Engenharia de Software
DOC
Aps lista de exercícios
PDF
Aula 03 - UML e Padrões de Projeto
PDF
Aula 12 - Diagrama de Atividades.pdf
PPTX
Programação Orientado a Objetos
ODP
Diagrama de Casos de Uso
PPTX
Descrição formal de Casos de Uso
PDF
Aula 02 - UML e Padrões de Projeto
PDF
Modelo V
PDF
07 diagrama de classes de análise
PDF
Aula - Introdução a Engenharia de Software
PDF
Banco de dados exercícios resolvidos
PDF
Diagrama de Classes
PPT
Caso De Uso
Modelagem de Dados
Aula 7 - Modelagem de Software
Exercitando modelagem em UML
Introdução à linguagem UML
1.Introdução Banco de Dados
Aula 1 - Introdução a Engenharia de Software
Aps lista de exercícios
Aula 03 - UML e Padrões de Projeto
Aula 12 - Diagrama de Atividades.pdf
Programação Orientado a Objetos
Diagrama de Casos de Uso
Descrição formal de Casos de Uso
Aula 02 - UML e Padrões de Projeto
Modelo V
07 diagrama de classes de análise
Aula - Introdução a Engenharia de Software
Banco de dados exercícios resolvidos
Diagrama de Classes
Caso De Uso
Anúncio

Destaque (20)

PPT
Uml - Exemplos de Modelagem em UML
PPTX
Principais diagramas da UML
PPTX
Uml diagrama de sequencia
PPT
Análise Orientada a Objetos - Diagrama de Sequencia
PDF
Exercicio de UML - Documentacao Restaurante
PPT
Diagrama de classe
PDF
Apostila UML
PDF
UML - Diagrama de Pacotes
PDF
Resumo diagramas de classes
PDF
Modelagem Aplicações Web com UML
PPT
Análise Orientada a Objetos - Casos de Uso
PPT
Análise e Modelagem com UML
PDF
Diagrama classes
PDF
Diagramas de pacotes
PPTX
Análise Orientada a Objetos com UML
PPTX
Aula diagrama de classes
PPT
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
PPTX
DER - Diagrama de Entidade e Relacionamentos
PDF
Apostila UML
Uml - Exemplos de Modelagem em UML
Principais diagramas da UML
Uml diagrama de sequencia
Análise Orientada a Objetos - Diagrama de Sequencia
Exercicio de UML - Documentacao Restaurante
Diagrama de classe
Apostila UML
UML - Diagrama de Pacotes
Resumo diagramas de classes
Modelagem Aplicações Web com UML
Análise Orientada a Objetos - Casos de Uso
Análise e Modelagem com UML
Diagrama classes
Diagramas de pacotes
Análise Orientada a Objetos com UML
Aula diagrama de classes
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
DER - Diagrama de Entidade e Relacionamentos
Apostila UML
Anúncio

Semelhante a UML - Criando Diagramas Eficientes (20)

PDF
Apostila de uml
PDF
PPTX
Aula-04-UML.pptx
PPT
Integração de Tecnologias
DOCX
Trabalho de análise e projeto 2
PPTX
Aa1 - Analise de projeto orientado a objetos (Alunos).pptx
PPT
CursoUML - Unified Modeling Language
PDF
Aulas de análise
PDF
Aulas de análise
PDF
Diagramas uml
PPT
Introdução à análise orientada a objetos parte 3
PPTX
Trabalho uml
PPTX
Use Case Diagram.pptx
PPTX
Aula 5 uml1 (1)
PDF
Projeto Integrador Transdisciplinar em Banco de Dados II.pdf
PPTX
07 Modelagem (Sommer)
PDF
Linguagem de Modelagem Unificada (UML)
PDF
Projeto Integrador Transdisciplinar em Banco de Dados II
PDF
Projeto Integrador Transdisciplinar em Banco de Dados II
PDF
Curso Básico de UML
Apostila de uml
Aula-04-UML.pptx
Integração de Tecnologias
Trabalho de análise e projeto 2
Aa1 - Analise de projeto orientado a objetos (Alunos).pptx
CursoUML - Unified Modeling Language
Aulas de análise
Aulas de análise
Diagramas uml
Introdução à análise orientada a objetos parte 3
Trabalho uml
Use Case Diagram.pptx
Aula 5 uml1 (1)
Projeto Integrador Transdisciplinar em Banco de Dados II.pdf
07 Modelagem (Sommer)
Linguagem de Modelagem Unificada (UML)
Projeto Integrador Transdisciplinar em Banco de Dados II
Projeto Integrador Transdisciplinar em Banco de Dados II
Curso Básico de UML

Mais de Rodrigo Cascarrolho (9)

PPTX
TI Colégio Lumière 2018
PPTX
Carreira em Tecnologia da Informação
PDF
Arquitetura Microsserviços - Semana facet 2015
PDF
Scrum em 15 minutos
PDF
PhoneGap - Criando aplicações Android e iOS com HTML5
KEY
Html5- Novidades, adoção e mobile.
PDF
Apresentação Google Android
PPTX
Equals, Hashcode, ToString, Comparable e Comparator
PPT
JPA - Java Persistence API
TI Colégio Lumière 2018
Carreira em Tecnologia da Informação
Arquitetura Microsserviços - Semana facet 2015
Scrum em 15 minutos
PhoneGap - Criando aplicações Android e iOS com HTML5
Html5- Novidades, adoção e mobile.
Apresentação Google Android
Equals, Hashcode, ToString, Comparable e Comparator
JPA - Java Persistence API

Último (20)

PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Émile Durkheim slide elaborado muito bom
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Apple Pippin Uma breve introdução. - David Glotz
Custos e liquidação no SAP Transportation Management, TM130 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
COBITxITIL-Entenda as diferença em uso governança TI
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula 18 - Manipulacao De Arquivos python
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20

UML - Criando Diagramas Eficientes

  • 1. UML – Criando Diagramas Eficientes Rafael Guimarães Sakurai Rodrigo Cascarrolho SESTINFO 2009
  • 2. Quem somos? Rafael Guimarães Sakurai (rafael.sakurai@metodista.br) Possui graduação em Ciência da Computação pela Universidade Metodista de São Paulo (2005), especialista em Engenharia de Componentes com Java Enterprise e Webservices pela Faculdade de Informática e Administração Paulista. Atualmente é Analista Desenvolvedor de software da Virginia Surety. Tem experiência na área de Ciência da Computação, com ênfase em Linguagens de Programação. Possui as seguintes certificações: SCJP 5.0, SCWCD 1.4 e SCSNI. Rodrigo Cascarrolho (rodrigo.cascarrolho@metodista.br) Possui graduação pela Pontifícia Universidade Católica de São Paulo (2003). Atualmente é Desenvolvedor Java da Confluence Soluções em Informática Ltda. Tem experiência na área de Ciência da Computação com ênfase em Metodologia e Técnicas da Computação.
  • 3. Agenda O que é UML História Diagramas UML Diagrama de Caso de Uso Diagrama de Classes Ferramentas de Modelagem Certificação Bibliografia
  • 4. O que é e por que usar UML? UML – Unified Modeling Language Definição Por que usar UML? “ É uma família de notações gráficas , apoiada por um metamodelo único, que ajuda na descrição e no projeto de sistemas de software, particularmente daqueles construídos utilizando o estilo orientado a objetos .” Martin Fowler
  • 5. Um pouco de história... Out/1994 Out/1995 Jun/1996 Jan/1997 Nov/1997 Jun/1998 Dez/1998 2001 2005 2007 2002 James Rumbaugh e Grady Booch - Versão 0.8 - Ivar Jacobson - “três amigos” Versão 0.9 Versão 1.1 Versão 1.3 Versão 2.1 Versão 1.0 Versão 1.2 Versão 1.4 Versão 1.5 Versão 2.0
  • 6. UML - Diagramas Lista de Diagramas Diagrama Objetivo Grupo Diagrama Classes Classe, características e relacionamentos. Estrutural Componentes Estrutura e conexão de componentes. Estrutural Estruturas Compostas Decomposição de uma classe em tempo de execução. Estrutural Instalação Distribuição de artefatos nos nós. Estrutural Objetos Exemplo de configurações de instâncias. Estrutural Pacotes Estrutura hierárquica em tempo de compilação. Estrutural Casos de Uso Como os usuários interagem com um sistema. Comportamental Atividades Comportamento procedimental e paralelo. Comportamental Máquinas de Estado Como os eventos alteram um objeto no decorrer de sua vida. Comportamental Sequência Interação entre objetos; ênfase na sequência. Interação Comunicação Interação entre objetos; ênfase nas ligações. Interação Visão Geral da Interação Mistura de diagrama de sequência e de atividades. Interação Sincronismo Interação entre objetos; ênfase no sincronismo. Interação
  • 7. Criando um projeto UML no NetBeans Para iniciar o NetBeans: Iniciar / Programas / Netbeans / NetBeans IDE 6.5 Para criar um novo Projeto UML : Arquivo - Novo projeto
  • 8. Criando um projeto UML no NetBeans Digite o nome e o local onde será criado o projeto: Na próxima tela clique em Cancelar e teremos a seguinte estrutura.
  • 9. UML – Diagrama de Caso de Uso “ Documento narrativo que descreve a sequência de eventos de um ator que usa um sistema para completar um processo.” Representa a interação entre um usuário (humano ou sistema) e o sistema. Não descreve como o software deverá ser construído, mas sim como ele deverá se comportar quando estiver pronto. Corresponde a um conjunto de ações com um objetivo comum. Ivar Jacobson
  • 10. Ator Humano ou entidade. Interage com o sistema. Iniciam o sistema. Fornecem dados. Usam as informações do sistema.
  • 11. Caso de Uso Unidade de um trabalho significante. Representa um processo. Iniciado por um ator ou outro caso de uso. Exemplos: “Login para o sistema”, “Registrar no sistema”, “Criar pedidos”, etc.
  • 12. <<include>> e <<extend>> <<include>> Relacionamento com outro caso de uso que sempre será executado. <<extend>> Relacionamento com outro caso de uso que pode ou não ser executado.
  • 13. Diagrama de Caso de Uso Sistema de Pagamento de Serviços O sistema será responsável por gerenciar os pagamentos dos serviços prestados por empresas e freelancers. O pagamento do serviço poderá ser efetuado apenas pelo usuário que possuir o perfil específico para esta função. Ao ser realizado qualquer serviço e pagamentos, o sistema gera e envia uma mensagem de e-mail aos prestadores do serviço.
  • 14. Diagrama de Caso de Uso Pagamento de Serviço Cenário Principal de Sucesso: 1. O usuário acessa o sistema 2. O usuário pesquisa o serviço a ser pago 3. O sistema apresenta as informações do serviço 4. O usuário inicia o processo de pagamento 5. O sistema envia a confirmação do pagamento ao prestador do serviço 6. O sistema encerra o processo de pagamento Extensões: 1a. Usuário não autorizado 1a.1 O usuário não possui perfil para realizar pagamentos 1a.2 O usuário é direcionado ao passo 6. 3a. Serviço não finalizado 3a.1 O sistema apresenta que o serviço não foi finalizado 3a.2 O usuário é direcionado ao passo 6. Descrição Diagrama
  • 15. Diagrama de Caso de Uso Exemplo de Caso de Uso para sacar dinheiro
  • 16. Criando um diagrama de Caso de Uso No item Diagramas -> Novo -> Diagrama... Selecione a opção Diagrama de Caso de Uso
  • 17. Criando um diagrama de Caso de Uso Ao clicar em Finalizar teremos a seguinte tela: 1) Área para criação do diagrama de Caso de Uso 2) Paleta com os itens que podem ser adicionados no diagrama de Caso de Uso
  • 18. Exemplo Prático Sistema de Pagamento de Serviços, realizar pagamento de serviços
  • 19. Resposta do exemplo prático Sistema de Pagamento de Serviços, realizar pesquisa de serviços
  • 20. O que colocar no diagrama de Caso de Uso Melhor fazer menos do que fazer demais. Breve e fácil de ler. Preferência na descrição textual. Limitar os relacionamentos com <<include>> e <<extend>> .
  • 21. O que não colocar no diagrama de Caso de Uso Textos longos. Muitas extensões. Todos diagramas se chamando. Todas as ações CRUD separadas. Detalhes da tela (botões, combos, links, etc). Não é um fluxograma! Atenção: Não relacione o caso de uso com as classes do sistema.
  • 22. UML – Diagrama de Classes
  • 23. Estrutura da classe Uma classe em UML possui três partes: Nome da Classe Atributos Operações Podemos abreviar a declaração da classe, caso não influencie o entendimento do diagrama:
  • 24. Atributos Um atributo é formado por: visibilidade nome : tipo [multiplicidade] = valor inicial {propriedades}
  • 25. Operações Uma operação é formada por: visibilidade nome (parâmetros) : tipo de retorno {propriedades} O parâmetro de um método é formado por: nome : tipo [multiplicidade] = valor inicial
  • 26. Visibilidade Podemos definir as seguintes visibilidades em atributos e operações: - private ~ default # protected + public
  • 27. Atributos e operações estático Podemos definir atributos e operações como sendo estáticos, ou seja, são referentes a classe e não aos seus objetos.
  • 28. Comentário Os comentários ou notas são utilizados para adicionar mais informações ao diagrama.
  • 29. Comentário O comentário pode ser utilizado em qualquer diagrama, podendo ou não ser vinculado a algum elemento. Utilizamos também o comentário para definir alguma regra de restrição, para isto precisamos adicionar { } entre a restrição:
  • 30. Associações Utilizado para representar o relacionamento entre classes, as associações podem ser: Associação Agregação Composição Classe de associação As classes que fazem parte de um relacionamento também são chamadas de TODO (responsável pelo relacionamento) e PARTE (usado pelo relacionamento).
  • 31. Associação Relacionamento simples entre duas classes:
  • 32. Agregação Informa que uma classe faz parte de outra classe, mas não de forma exclusiva.
  • 33. Composição Informa que uma classe faz parte de outra classe de forma exclusiva.
  • 34. Agregação x Composição A diferença entre ambos é: Agregação – se excluir a classe responsável pelo relacionamento, não deve excluir a classe que ele possui relacionamento. Composição – se excluir a classe responsável pelo relacionamento, então deve excluir a classe que ele possui relacionamento.
  • 35. Classe de associação Utilizamos para realizar o relacionamento entre duas classes: ou
  • 36. Podemos também ter uma associação para mesma classe: Associação
  • 37. Navegabilidade Podemos informar qual a direção do relacionamento:
  • 38. Multiplicidade A multiplicidade é utilizada para definir a quantidade de objetos devem ser criados: 0 .. 1 (zero ou um) 1 (um) * (zero ou muitos)
  • 39. Multiplicidade Quando utilizamos atributos para informar coleção de objetos, podemos também adicionar propriedades na multiplicidade: {ordered} - Ordenado {unordered} - Não ordenado {unique} - Único {nonunique} - Não único {bag} - Conjunto não ordenado e não único
  • 40. Criando um diagrama de Classes No item Diagramas -> Novo -> Diagrama... Selecione a opção Diagrama de Caso de Uso
  • 41. Criando um diagrama de Classes Ao clicar em Finalizar teremos a seguinte tela: 1) Área para criação do diagrama de Caso de Uso 2) Paleta com os itens que podem ser adicionados no diagrama de Caso de Uso
  • 42. Exemplo Crie o diagrama de classes UML para a seguinte figura: Inicio Fim Pedido Pagamento Entrega
  • 44. Exemplo prático Crie um diagrama de classes UML para o sistema de Agendamento de Entrega de Produtos: O sistema deve permitir o agendamento de uma visita por parte de um funcionário, ao cliente de nossa empresa. Esta visita deverá ser realizada em hora e local definido pelo cliente para poder lhe entregar os produtos que foram comprados em nossa loja.
  • 46. Dependência Utilizado para informar que uma classe depende de outra classe para executar alguma operação:
  • 47. Dependência Palavras - chave de dependência: <<call>> <<create>> <<dependency>> <<use>>
  • 48. Associação x Dependência A diferença básica entre ambos: Associação temos um atributo da classe relacionada. Dependência utilizamos a classe relacionada, para passar um parâmetro, chamar um método, criar um objeto, etc.
  • 50. Classe Abstrata Utilizado para informar que uma classe não implementa todos os seus métodos.
  • 51. Herança Utilizamos herança quando queremos declarar subclasses, permitindo reutilizar os códigos já declarados na superclasse.
  • 52. Interface Utilizamos interface para definir as operações básicas que uma classe de seu tipo precisa implementar.
  • 54. Pacote Utilizamos para organizar as classes:
  • 55. Template É uma classe parametrizada para definir conjuntos fortemente tipados.
  • 56. Enumeration Utilizado para criar um conjunto fixo de valores:
  • 57. Exemplo prático Crie um diagrama de classe em UML para o Sistema de Envio de Produtos: O sistema deve controlar a ordenação do envio dos produtos por preço ou por endereço do cliente. De acordo com a quantidade de produtos, também precisamos alocar um veiculo que pode ser uma Van ou uma Caminhonete. Também precisamos controlar o status do envio que pode ser, aguardando pagamento, buscando em estoque, saída para entrega ou entregue.
  • 59. O que colocar no diagrama de classes Concentre-se nas áreas principais do sistema. O necessário para que as pessoas envolvidas possam entender. Mantenha as notações simples. Gere um diagrama de classe flexível, facilitando futuras atualizações. Desenvolva o diagrama baseado na metodologia adotada, podendo ser um diagrama de negocio, diagrama especifico por áreas do sistema ou diagrama com todas as classes envolvidas no sistema.
  • 60. O que não colocar no diagrama de classes Para não aumentar a complexidade de um diagrama de classes, normalmente não adicionamos no diagrama: Classes que representam telas. Classes de conexão e acesso ao banco de dados. Classes de API’s da linguagem ou de terceiros. Não tente usar todas as notações disponíveis no mesmo diagrama. Não desenhe modelos para tudo, a menos que seja realmente necessário.
  • 61. Ferramentas IDE Eclipse UML - http://www.eclipseuml.com Jude - http://jude.change-vision.com NetBeans – http://www.netbeans.org Magic Draw - http://secure.nomagic.com Microsoft Office Visio - http://office.microsoft.com/pt-br/visio/default . aspx Poseidon - http://www.gentleware.com Enterprise Architect - http://www.sparxsystems.com.au/
  • 62. Adicionando o plug-in de UML no NetBeans No menu Ferramentas -> Plug-ins Selecione em Plug-ins disponíveis -> UML 1 2
  • 63. Certificações UML OCUP – OMG Certified UML Professional http://www.omg.org/uml-certification/exam_info.htm
  • 64. Referencia bibliografica [Booch, Rumbaugh e Jacobson, I.] Grandy Booch, James Rumbaugh e Ivar Jacobson, UML: Guia do Usuário, 3ª Ed. Campus, 2005. [Fowler] Martin Fowler, UML Essencial, 3ª Ed. Bookman, 2005. [Guedes] Gilleanes T. A. Guedes, UML: Uma abordagem pratica, 3ª Ed. Novatec, 2008. [Cardoso] Caíque Cardoso, UML na prática: do problema ao sistema, Ed. Ciência Moderna, 2003 UML - http://www.uml.org Wikipédia – http://www.wikipedia.org