UML - Criando Diagramas Eficientes
Upcoming SlideShare
Loading in...5
×
 

UML - Criando Diagramas Eficientes

on

  • 135,155 views

Apresentação sobre UML com foco nos Diagramas de Caso de Uso e Diagrama de Classes; apresentada na SESTINFO2009 (Semana de Estudos em Tecnologia da Informação) realizada na Universidade Metodista ...

Apresentação sobre UML com foco nos Diagramas de Caso de Uso e Diagrama de Classes; apresentada na SESTINFO2009 (Semana de Estudos em Tecnologia da Informação) realizada na Universidade Metodista de São Paulo.

Statistics

Views

Total Views
135,155
Views on SlideShare
129,485
Embed Views
5,670

Actions

Likes
155
Downloads
1,681
Comments
21

40 Embeds 5,670

http://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 3063
http://rafaelsakurai.blogspot.com 855
http://rafaelsakurai.blogspot.com.br 669
http://www.slideshare.net 471
http://blog.rdgc.com.br 247
https://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 74
http://comunidad.itsae.edu.ec 74
http://jotalab.tumblr.com 65
http://gaytanc.wordpress.com 23
http://rafaelsakurai.blogspot.pt 20
http://www.techgig.com 18
http://aprendendocshap.blogspot.com.br 16
http://cleberprogrammer.wordpress.com 14
http://static.slidesharecdn.com 9
http://www.cassiojesussouza.xpg.com.br 6
http://www.slideee.com 5
http://tecnologia-de-valor.blogspot.com 4
http://www.linkedin.com 3
http://rafaelsakurai.blogspot.fr 3
http://cribration10.nazata.com 2
http://aprendendocshap.blogspot.com 2
http://rafaelsakurai.blogspot.de 2
http://rafaelsakurai.blogspot.co.uk 2
http://ig.gmodules.com 2
http://webcache.googleusercontent.com 2
http://wagnerlberto.blogspot.com 2
http://www.aulavirtualune.com 2
http://analisedesoftware.blogspot.com.br 2
http://rafaelsakurai.blogspot.mx 2
http://www.rafaelsakurai.blogspot.com 1
https://twitter.com 1
http://www.techgig.timesjobs.com 1
http://www.pearltrees.com 1
http://rafaelsakurai.blogspot.com.es 1
http://www.slashdocs.com 1
https://si0.twimg.com 1
http://translate.googleusercontent.com 1
http://rafaelsakurai.blogspot.in 1
http://www.m.techgig.com 1
http://tecnologia-de-valor.blogspot.com.br 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

15 of 21 Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Liberar esta matéria; seria algo assim ... como posso dizer ( fraternal ..); pois contribuiria muito mesmo para esta grande família, que é esta moçada da área ( desenvolvimento ) . Muito boa esta 'Alavanca' .
    Are you sure you want to
    Your message goes here
    Processing…
  • Excelente material, simples e direto...
    Are you sure you want to
    Your message goes here
    Processing…
  • Muito fera mesmo!
    Are you sure you want to
    Your message goes here
    Processing…
  • Mto bom esse material. Valew por dividir com a galera!!
    Are you sure you want to
    Your message goes here
    Processing…
  • Excelente cara! Bem na hora que eu estava precisando.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

UML - Criando Diagramas Eficientes UML - Criando Diagramas Eficientes Presentation Transcript

  • 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
    View slide
  • 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 View slide
  • 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