SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
CURSO BÁSICO DE UML
(UNIFIED MODELING LANGUAGE)




                Autor: João Carlos da Silva Jr
                                     17/06/2002
Conteúdo do curso



1. Introdução
2. Uso da UML
3. Diagramas
       a. Use Case
       b. Sequência
       c. Atividades
       d. Classes
4. Ferramenta MS-VISIO
5. Estudo de caso / Diagramas
6. Conclusões
1. Introdução

       Pode-se dizer que a UML surgiu para resolver um grande problema no
desenvolvimento de software, a falta de uma notação padronizada e eficaz que
abranja qualquer tipo de aplicação. Cada simbologia existente possui seus
próprios conceitos, gráficos e terminologias resultando em uma grande confusão.
       A UML foi desenvolvida por Grady Booch, James Rumbaugh, e Ivar
Jacobson que são conhecidos como "os três amigos". Eles possuem um extenso
conhecimento na área de modelagem orientado a objetos já que as três mais
conceituadas metodologias de modelagem orientado a objetos foram eles que
desenvolveram e a UML é a junção do que havia de melhor nestas três
metodologias adicionado novos conceitos e visões da linguagem.
       Vale a pena dizer que a UML é muito mais que a padronização de uma
notação, é o desenvolvimento de novos conceitos. Por essa razão entender UML
não é apenas aprender a ler uma simbologia, mas significa aprender a modelar
orientado a objetos.
       A idéia deste curso é capacitar as pessoas a conhecer a notação UML,
assimilar alguns conceitos importantes na modelagem orientada a objetos,
aprender a “ 1 os diagramas e conhecer uma das inúmeras ferramentas de
              ler”
modelagem de sistemas, no nosso curso será o Microsoft Visio.
       Não é intuito deste curso ensinar como modelar sistemas de informação e
nem todos os diagramas e métodos da UML. Para esse tipo de aprendizado
aconselho um estudo mais detalhado através de livros especializados, alguns
estão citados na bibliografia.




1
 Ler no sentido de saber identificar processos e regras de negócios. Ser capaz de identificar
atributos e funções.
2. Uso da UML

        A UML é utilizada em diversos tipos de sistemas, ela abrange todas as
fases desde a especificação de requisitos até a fase de testes.
        Mas qual o objetivo da UML?
        O objetivo da UML é descrever qualquer tipo de sistema, em termos de
diagramas orientado a objetos.
     Vamos trabalhar em função de Sistemas de Informação2. É claro que pode-se
utilizar a UML para sistemas distribuidos, sistemas técnicos, sistemas real-time,
sistemas de negócios entre outros, ou seja, a UML suporta a modelagem de
qualquer tipo de sistema.




2
 São sistemas os quais temos que armazenar, pesquisar, editar e mostrar informações para os
usuários. Manter grandes quantidades de dados com relacionamentos complexos, que são
guardados em bancos de dados relacionais ou orientados a objetos.
3. Diagramas

   a. Use Case

   Por muitos anos as pessoas utilizavam interações para ajudá-las a
compreender o sistema, sempre de modo informal e nunca documentados.Até que
Ivar Jacobson conseguisse tornar os casos de uso como elemento primário no
desenvolvimento e no planejamento do projeto.          Antes de explicar o que é
um caso de uso, é necessário entender o conceito de cenário.
   Cenário é uma sequência de passos que descreve uma interação entre um
usuário e um sistema. Para melhor entedimento, vou descrever um cenário:
       Compra via Internet
       O cliente navega pelo site e adiciona itens desejados ao carrinho de
compras. Quando o cliente deseja finalizar a compra, descreve login/senha,
endereço de entrega, fornece as informações do cartão de crédito e confirma a
compra.
       O sistema verifica a autorização do cartão de crédito, autoriza a compra e
envia um email informando ao cliente o status da compra.

       Dizemos que esse cenário é uma alternativa que pode acontecer. Vale a
pena dizer, que a autorização do cartão pode falhar, o usuário pode não conseguir
logar-se no sistema. Desse modo temos cenário alternativos.
       Isso quer dizer que um caso de uso, é um conjunto de cenários ligados por
um objetivo comum de um usuário.
       Normalmente quando modelamos sistemas, definimos um caso de uso
principal e outros que serão os alternativos. No nosso exemplo, teriamos: Realizar
compra, como sendo o caso de uso bem-sucedido; Falha na autorização e Falha
na autentificação do usuário como os casos de uso alternativos.
       Uma prática comum entre os analistas é descrever um cenário principal
como sendo uma sequencia de passos numerados e as alternativas como
variações naquela sequencia, como ilustrado na Figura 1-1.
COMPRA VIA WEB

1. O Cliente navega pelo site e seleciona itens a serem comprados
2. O Cliente vai para o check out
3. O Cliente preenche usuário e senha
4. O Cliente preenche formulário de entrega
5. O Sistema apresenta as informações sobre o pedido (Valor, Impostos, Frete)
6. O Cliente preenche as informações do Cartão de Crédito
7. O Sistema autoriza a venda
8. O Sistema confirma a venda
9. O Sistema envia confirmação para o cliente via email

Alternativa: FALHA NA AUTORIZAÇÃO
No item 7, o sistema falha na autorização da compra por crédito
Envia notificação para o cliente via email

Alternativa: FALHA NA AUTENTIFICAÇÃO
No item 3, o sistema recusa usuário e senha
Permite ao cliente submeter as informações por mais 2 vezes
Se ultrapassar limite bloquear conta
                   Figura 1-1: Exemplo de texto de Caso de Uso
Quando falamos de caso de uso, precisamos entender três conceitos que serão
vistos a seguir.
        Ator: É um papel que um usuário desempenha em relação ao sistema. Um
ator pode desempenhar vários casos de uso; um caso de uso pode ter vários
atores. Os atores não precisam ser humanos, o ator pode ser um sistema externo
que necessita de alguma informação do sistema atual.
        Associação entre Casos de Uso: Além das associações entre atores e
casos de uso, você pode ilustrar vários tipos de associações entre casos de uso.
Destacam-se três tipos de associações, que são:
        Inclusão (USES) – Ocorre quando há uma parte do comportamento que é
semelhante em mais de um caso de uso. Ou seja, quando um caso de uso, “      usa”
o outro. Não pode ser usado se apenas um outro caso de uso o dispara. Nem
justifica o uso para modelar sequência.
        Generalização – Quando tem um que é semelhante a outro, mas faz um
pouco mais.
        Extensão (EXTENDS) – Quando você estiver descrevendo uma variação
em comportamento normal. Ou seja, um caso de uso, “    estende”o outro, quando o
segundo acrescenta novos comportamentos ao primeiro já modelado.
        Apresentei diversos conceitos e não respondi uma pergunta essencial.
Quando devemos utilizar casos de uso?
        Sempre. Definir casos de uso é uma tarefa básica na elaboração e
planejamento de sistemas. Uma maneria interessante de identificar casos de uso
é fazer uma modelagem conceitual com usuários.
        Vale a pena dizer que casos de uso, representam uma visão externa do
sistema. Não espere nenhuma correlação entre eles e classes do sistema.
      NOTAÇÃO:
        Diagrama Use Case:
        Um diagrama use case é composto:
        Ator: é um papel que um usuário desempenha em relação ao sistema. O
nome do ator deve ser um sujeito
        Linha de comunicação: Não é necessário identificar a comunicação entre
atores e casos de uso, mas é uma boa prática
        Casos de uso: O nome do caso de uso deve ser um verbo que facilite a
identificação da funcionalidade do mesmo.
        Veja o exemplo abaixo:
Sistema de Biblioteca - Para fins didáticos



              Usuario




                                                            Pesquisando Livro




           Emprestando
             material




           <<uses>>                           Cadastrando
           Implica em                          Material
                                                                                Gerente




         Cadastrar usuário




                                              Emprestando
                                                Material
b. Sequência

       O diagrama de sequência é uma ferramenta que deve ser utilizada sempre
   em função dos casos de uso. Um diagrama de sequência captura o
   comportamento de um único caso de uso, ou seja, mostra a interação entre os
   objetos ao longo do tempo, apresentando os objetos que participam da
   interação e a sequência das mensagens trocadas.

      NOTAÇÃO:
       O diagrama é composto por:
       Objeto: É uma caixa na parte superior de uma linha tracejada verticalmente.
A linha vertical é chamada de linha da vida do objeto, e representa a vida do
objeto durante a interação.
       Mensagem: É representada por uma flecha entre as linhas de vida de dois
objetos. Cada mensagem deve ter um nome, é comum incluir os argumentos e
algumas informações de controle.
       Veja o exemplo abaixo:
c. Atividades

       Utilizado para descrever a sequência de atividades, utilizando
comportamento condicional e paralelo. È composto por:
       Início: Representado por um círculo preenchido.
       Estado de Atividade ou Atividade: Representado por um retângulo com
bordas arredondadas. Atividade é um estado de estar fazendo algo.
       Desvio(Branch): Representado por um losango.
       Intercalação(Merge): Também representado por um losango, é utilizada
para marcar o final de um comportamento condicional iniciado por um desvio, ou
seja, tem múltiplas entradas e uma única saída.
       Separação(Fork): Representado por um traço horizontal, quando temos
comportamento paralelo, ou seja, temos uma entrada e várias transições de saída
que são executadas em paralelo.
       Junção(Joins): Representado por um traço horizontal, utilizamos para
completar a separação, ou seja, quando temos um processamento paralelo,
precisamos sincronizar.
       Veja o exemplo abaixo:
d. Classes

   Sem sombra de dúvidas, o diagrama mais importante da documentação,
onde podemos encontrar as informações sobre métodos, atributos, nome das
funções e como serão integradas. Um diagrama de classes bem modelado é
fundamental para auxiliar o desenvolvedor.
   NOTAÇÃO:
    Classe: No modelo de classe trabalhamos com um único elemento um
retângulo dividido em 3 partes, a primeira divisão é utilizada para o nome da
classe, a segunda divisão colocamos as informações de atributos e a última
divisão é utilizada para identificar os métodos. É importante apresentar o
conceito de instância, isto é, cada objeto é uma instância de sua classe. Cada
instância tem seus próprios valores de atributos, compartilha os nomes dos
atributos e os métodos com os outros objetos da mesma classe.
    É importante entender a diferença entre classe e objeto(instância), veja
abaixo:




   Outro conceito importante que temos que ver é o de estereótipos:
   Estereótipo (s.m) – (2) Lugar comum, clichê, chavão.
   Veremos agora, os estereótipos de uma classe, são eles:
   Entidade ou Negócio (Entity): São classes de objetos que refletem
entidades do mundo real, ou seja, pertence ao domínio do problema.
   Fronteira ou Interface (Boundary): São classes de objetos que permitem a
comunicação entre o mundo externo e o sistema.
   Controle (Control): São classes que modelam a sequência de controle
específica de um caso de uso do sistema, ou seja, controlam a execução dos
eventos necessários para um caso de uso.

   Com isso, temos que aprender “  Como identificar as classes?”
   As classes de negócio são identificadas a partir das definições dos casos
de uso obtidos na fase de Especificação de requisitos. Vale a pena dizer, que é
comum encontrar as mesmas classes em diferentes funções no negócio.
No decorrer da modelagem, você encontrará a necessidade de associar as
classes, por exemplo:




   Não podemos deixar da falar do conceito de HERANÇA. Usamos o
conceito de herança quando queremos representar uma classe “           filha” que
herda todas as características da classe “ , agregando alguns atributos que
                                            pai”
são particulares. A Classificação não é trivial. Deve-se tomar muito cuidado.
   Outro tipo de associação é a agregação. A agregação faz-se necessário
quando duas classes associadas tem um sentido próprio e separadas
continuam existindo como unidade autônoma, podendo até se associar com
outras instâncias. A agregação é representada por um losango sem
preenchimento. Imagine as seguintes classes (Telefone, Aparelho e
Assinante), podemos ilustrar a agregação entre a classe aparelho e telefone.
Duas classes indepententes, mas que juntas tem um sentido próprio.
   É sabido que toda regra tem exceção e não seria diferente na UML. Existe
um caso particular de agregação, quando duas classes só possuem sentido
quando estão associadas. Chamamos esse tipo de associação com forte
depedência de composição.
   Isto implica em se uma instância da classe deixar de existir, todas as outras
associadas por composição, deixarão de existir também. O símbolo que
representa a composição é um losango preenchido.
   Veja o exemplo de composição:
Em resumo, o diagrama de classes é composto por objetos (instâncias),
que podem ser de negócios, interfaces ou de controle, e os mesmos são
associados por herança, agregação ou composição.
4. A ferramenta MS-VISIO

       O Microsoft VISIO é uma ferramenta para diagramação de sistemas de
tecnologia da informação. Essa ferramenta possui diversos modelos e suporta
diversas metodologias de desenvolvimento de software. A versão que utilizamos é
o VISIO2000 Professional.
       Não é necessário explicar o funcionamento da ferramenta, toda ferramenta
de diagramação de sistemas, são intuitivas desde que o usuário conheça os
conceitos da metodologia UML.
       Antes de iniciar o trabalho, abra um novo documento, escolha o software
UML. O MS VISIO irá preparar o ambiente para documentar UML. Os detalhes da
ferramenta, uso e dicas serão explicados durante o curso.
5. Estudo de caso / Diagramas

      A idéia deste treinamento é introduzir os principais conceitos da UML.
Espero que tenha conseguido atingir o objetivo. Uma ferramenta importante para
medir o aprendizado são os estudo de caso. Irei propor a seguir um estudo de
caso e diagramar o mesmo. Ao final deste tópico peço que vocês façam o mesmo.
Tente diagramar o estudo de caso. Certamente teremos diversas propostas para o
sistema.

       O estudo de caso:
       A Number One Idiomas é uma escola de inglês, localizada em São
   Paulo/SP, atua no mercado desde 1985 com método próprio. Hoje a escola
   está com 900 alunos na unidade SP. Com o sucesso do curso de inglês, a
   escola começou a lecionar Espanhol e Alemão. Hoje, 2002, a Number One
   está com 1600 alunos, com possibilidade de crescimento em função dos novos
   cursos. A escola não utiliza sistema para controlar os alunos, apenas planilhas
   e documentos, com o crescimento este tipo de controle está ficando difícil e
   ineficaz.

        A necessidade:
        A Number One deseja um sistema de informação para controlar o cadastro
   de alunos, manter controle de pagamentos, histórico de notas e faltas,
   relatórios de aproveitamento dos alunos, relatórios de inadimplentes e de fácil
   utilização.

      Problemas:
      Atualmente os dados dos alunos estão armazenados em fichas, o controle
   de pagamento é feito por uma planilha do excel, existe outra planilha onde
   estão registradas as notas/faltas. Existe apenas um funcionário responsável
   pelas informações e o mesmo responde por outras funções dentro da escola.
      A escola tem 4 equipamentos com a seguinte configuração:
      Processador              HD             Memória RAM      Sistema Operacional
          486                4.2 GB              32MB               Windows 95
          486                4.2 GB              32MB               Windows95
       Pentium II            10 GB               64 MB              Windows 98
       Pentium III           40 GB               64MB               Windows 98
       A escola Number One está iniciando uma fase de franquias e está em
   processo de abertura de duas unidades no interior de São Paulo. Devido ao
   fato o cliente quer um sistema que permita o uso em rede.
O que espero?

Proposta de solução utilizando metodologia UML
- Diagrama use case
- Descrição dos use case
- Diagrama de sequência de um caso de uso
- Diagrama de atividades
- Diagrama de classes
Diagramas devem ser feitos com a ferramenta MS VISIO.
Tempo gasto para modelar cada diagrama.
Conclusões.
7. Conclusões

   Preparar este treinamento foi um desafio muito grande para mim. Fazer os
diagramas, entender a metodologia UML para mim tinha um significado. Mas
como transmitir o conhecimento adquirido com livros, universidade e vida
prática. É difícil sentar na frente de um editor de texto e começar a escrever, o
que é o seu trabalho? Como dever ser feito? Foi uma experiência que ajudou-
me a aprimorar os conceitos e o mais importante a possibilidade de agregar
novos valores.
   Este curso básico foi elaborado em função das experiências que adquiri em
empresas anteriores e principalmente em função do projeto Banco1.net
   O material utilizado como referência foi:
   Apresentação “    Engenharia de Software” professor Ivan Granja, mestre da
                                               ,
PUC – Campinas
   Livro UML Essencial, Kendall Scott, editora Bookman
   Minha intenção com este treinamento foi capacitar desenvolvedores a
entender o que é UML, como ler documentações em UML, e introduzir os pré-
requisitos necessários para um aprendizado mais detalhado sobre a UML.
Espero que eu tenha conseguido de forma clara, expor os conceitos e técnicas
da modelagem UML. Gostaria de deixar claro que este treinamento engloba
apenas o básico da modelagem, existem outros diagramas e outras técnicas
que podem ser assimilados através de leitura especializada.
   Estou a disposição para esclarecer dúvidas e maiores informações através
do email: joao@atenacriacao.com.br

Weitere ähnliche Inhalte

Was ist angesagt?

Diagrama de classes1.1
Diagrama de classes1.1Diagrama de classes1.1
Diagrama de classes1.1Maikynata
 
Uml Diagramas estruturais - parte escrita
Uml   Diagramas estruturais - parte escritaUml   Diagramas estruturais - parte escrita
Uml Diagramas estruturais - parte escritathaisedd
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de umlaudiclerio
 
Exercitando modelagem em UML
Exercitando modelagem em UMLExercitando modelagem em UML
Exercitando modelagem em UMLinfo_cimol
 
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
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classesMarco Coelho
 
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
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classeSuissa
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLClaudio Martins
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetosGabriel Faustino
 

Was ist angesagt? (20)

Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Diagrama de classes1.1
Diagrama de classes1.1Diagrama de classes1.1
Diagrama de classes1.1
 
Uml Diagramas estruturais - parte escrita
Uml   Diagramas estruturais - parte escritaUml   Diagramas estruturais - parte escrita
Uml Diagramas estruturais - parte escrita
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Uml ppoint
Uml ppointUml ppoint
Uml ppoint
 
Exercitando modelagem em UML
Exercitando modelagem em UMLExercitando modelagem em UML
Exercitando modelagem em UML
 
Principais diagramas da UML
Principais diagramas da UMLPrincipais diagramas da UML
Principais diagramas da UML
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Diagrama UML Pergamum
Diagrama UML PergamumDiagrama UML Pergamum
Diagrama UML Pergamum
 
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
 
Resumo diagramas de classes
Resumo diagramas de classesResumo diagramas de classes
Resumo diagramas de classes
 
Relatório da uml
Relatório da umlRelatório da uml
Relatório da uml
 
Análise e Modelagem com UML
Análise e Modelagem com UMLAnálise e Modelagem com UML
Análise e Modelagem com UML
 
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
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Diagrama de classe
Diagrama de classeDiagrama de classe
Diagrama de classe
 
Modelagem Aplicações Web com UML
Modelagem Aplicações Web com UMLModelagem Aplicações Web com UML
Modelagem Aplicações Web com UML
 
Metodologia orientado a objetos
Metodologia orientado a objetosMetodologia orientado a objetos
Metodologia orientado a objetos
 
Uml
UmlUml
Uml
 

Andere mochten auch

Gestao de projetos_-_exercicio_1._com_gabarito_doc
Gestao de projetos_-_exercicio_1._com_gabarito_docGestao de projetos_-_exercicio_1._com_gabarito_doc
Gestao de projetos_-_exercicio_1._com_gabarito_docneyfds
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Metodologia de desenvolvimento de sistemas
Metodologia  de desenvolvimento de sistemasMetodologia  de desenvolvimento de sistemas
Metodologia de desenvolvimento de sistemasPriscila Stuani
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Marcelo Schumacher
 
Metodologias para la planeación de sistemas de información
Metodologias para la planeación de sistemas de informaciónMetodologias para la planeación de sistemas de información
Metodologias para la planeación de sistemas de informaciónfavo100
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Planificación de Sistemas de Información
Planificación de Sistemas de InformaciónPlanificación de Sistemas de Información
Planificación de Sistemas de InformaciónEnrique Barreiro
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de UsoNatanael Simões
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequenciaItalo Costa
 
Planificación de sistemas de información
Planificación de sistemas de informaciónPlanificación de sistemas de información
Planificación de sistemas de informaciónMARCO POLO SILVA SEGOVIA
 
4 planeación y estrategia
4 planeación y estrategia4 planeación y estrategia
4 planeación y estrategiaDaniel Garcia
 
Exemplo de Plano Estratégico de TI - MEC
Exemplo de Plano Estratégico de TI - MECExemplo de Plano Estratégico de TI - MEC
Exemplo de Plano Estratégico de TI - MECFernando Palma
 
Plano projeto implantação servicedesk
Plano projeto implantação servicedeskPlano projeto implantação servicedesk
Plano projeto implantação servicedeskFernando Palma
 
Metodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacionMetodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacioncaroyu
 
1°planeam estrate
1°planeam estrate 1°planeam estrate
1°planeam estrate Taringa!
 

Andere mochten auch (20)

Gestao de projetos_-_exercicio_1._com_gabarito_doc
Gestao de projetos_-_exercicio_1._com_gabarito_docGestao de projetos_-_exercicio_1._com_gabarito_doc
Gestao de projetos_-_exercicio_1._com_gabarito_doc
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Metodologia de desenvolvimento de sistemas
Metodologia  de desenvolvimento de sistemasMetodologia  de desenvolvimento de sistemas
Metodologia de desenvolvimento de sistemas
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
 
Rastreabilidade de Requisitos
Rastreabilidade de RequisitosRastreabilidade de Requisitos
Rastreabilidade de Requisitos
 
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Metodologias para la planeación de sistemas de información
Metodologias para la planeación de sistemas de informaciónMetodologias para la planeación de sistemas de información
Metodologias para la planeación de sistemas de información
 
Planeación de Sistemas de Información
Planeación de Sistemas de InformaciónPlaneación de Sistemas de Información
Planeación de Sistemas de Información
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Planificación de Sistemas de Información
Planificación de Sistemas de InformaciónPlanificación de Sistemas de Información
Planificación de Sistemas de Información
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Planificación de sistemas de información
Planificación de sistemas de informaciónPlanificación de sistemas de información
Planificación de sistemas de información
 
4 planeación y estrategia
4 planeación y estrategia4 planeación y estrategia
4 planeación y estrategia
 
Exemplo de Plano Estratégico de TI - MEC
Exemplo de Plano Estratégico de TI - MECExemplo de Plano Estratégico de TI - MEC
Exemplo de Plano Estratégico de TI - MEC
 
Plan Estrategico de TI
Plan Estrategico de TIPlan Estrategico de TI
Plan Estrategico de TI
 
Plano projeto implantação servicedesk
Plano projeto implantação servicedeskPlano projeto implantação servicedesk
Plano projeto implantação servicedesk
 
Metodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacionMetodos del desarrollo de sistema de informacion
Metodos del desarrollo de sistema de informacion
 
1°planeam estrate
1°planeam estrate 1°planeam estrate
1°planeam estrate
 
Uml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UMLUml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UML
 

Ähnlich wie Curso Básico de UML

Ähnlich wie Curso Básico de UML (20)

Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)Linguagem de Modelagem Unificada (UML)
Linguagem de Modelagem Unificada (UML)
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análise
 
Aulas de análise
Aulas de análiseAulas de análise
Aulas de análise
 
Trabalho uml
Trabalho umlTrabalho uml
Trabalho uml
 
Apostila de analise
Apostila de analiseApostila de analise
Apostila de analise
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Análise de Sistemas Orientado a Objetos - 05
Análise de Sistemas Orientado a Objetos - 05Análise de Sistemas Orientado a Objetos - 05
Análise de Sistemas Orientado a Objetos - 05
 
Trabalho de análise e projeto 2
Trabalho de análise e projeto 2Trabalho de análise e projeto 2
Trabalho de análise e projeto 2
 
Roteiro de elabora o de um caso de uso
Roteiro de elabora o de um caso de usoRoteiro de elabora o de um caso de uso
Roteiro de elabora o de um caso de uso
 
Aula-04-UML.pptx
Aula-04-UML.pptxAula-04-UML.pptx
Aula-04-UML.pptx
 
Modelagem de Sistemas de Informação 07
Modelagem de Sistemas de Informação 07Modelagem de Sistemas de Informação 07
Modelagem de Sistemas de Informação 07
 
Documentar Requisitos Usando Modelos
Documentar Requisitos Usando ModelosDocumentar Requisitos Usando Modelos
Documentar Requisitos Usando Modelos
 
REA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UMLREA- Diagramas de Casos de Uso da UML
REA- Diagramas de Casos de Uso da UML
 
Modelo caso uso
Modelo caso usoModelo caso uso
Modelo caso uso
 
MVC já era! O negócio é DCI!
MVC já era! O negócio é DCI!MVC já era! O negócio é DCI!
MVC já era! O negócio é DCI!
 
UML1.pdf
UML1.pdfUML1.pdf
UML1.pdf
 
Sld 4
Sld 4Sld 4
Sld 4
 
aula05_CasosUso.pdf
aula05_CasosUso.pdfaula05_CasosUso.pdf
aula05_CasosUso.pdf
 
Use Case Diagram.pptx
Use Case Diagram.pptxUse Case Diagram.pptx
Use Case Diagram.pptx
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 

Mehr von João Carlos da Silva Junior

Mehr von João Carlos da Silva Junior (7)

Como se preparar para atuar em projetos internacionais?
Como se preparar para atuar em projetos internacionais?Como se preparar para atuar em projetos internacionais?
Como se preparar para atuar em projetos internacionais?
 
Apresentação Plano de Carreira em TI
Apresentação Plano de Carreira em TIApresentação Plano de Carreira em TI
Apresentação Plano de Carreira em TI
 
Gestão Estratégica de TI
Gestão Estratégica de TIGestão Estratégica de TI
Gestão Estratégica de TI
 
Gerenciamento de Projetos
Gerenciamento de ProjetosGerenciamento de Projetos
Gerenciamento de Projetos
 
Gestão de Aquisições e Contratações
Gestão de Aquisições e ContrataçõesGestão de Aquisições e Contratações
Gestão de Aquisições e Contratações
 
Interface Humano Computador
Interface Humano ComputadorInterface Humano Computador
Interface Humano Computador
 
Palestra - Segurança da Informação
Palestra - Segurança da InformaçãoPalestra - Segurança da Informação
Palestra - Segurança da Informação
 

Curso Básico de UML

  • 1. CURSO BÁSICO DE UML (UNIFIED MODELING LANGUAGE) Autor: João Carlos da Silva Jr 17/06/2002
  • 2. Conteúdo do curso 1. Introdução 2. Uso da UML 3. Diagramas a. Use Case b. Sequência c. Atividades d. Classes 4. Ferramenta MS-VISIO 5. Estudo de caso / Diagramas 6. Conclusões
  • 3. 1. Introdução Pode-se dizer que a UML surgiu para resolver um grande problema no desenvolvimento de software, a falta de uma notação padronizada e eficaz que abranja qualquer tipo de aplicação. Cada simbologia existente possui seus próprios conceitos, gráficos e terminologias resultando em uma grande confusão. A UML foi desenvolvida por Grady Booch, James Rumbaugh, e Ivar Jacobson que são conhecidos como "os três amigos". Eles possuem um extenso conhecimento na área de modelagem orientado a objetos já que as três mais conceituadas metodologias de modelagem orientado a objetos foram eles que desenvolveram e a UML é a junção do que havia de melhor nestas três metodologias adicionado novos conceitos e visões da linguagem. Vale a pena dizer que a UML é muito mais que a padronização de uma notação, é o desenvolvimento de novos conceitos. Por essa razão entender UML não é apenas aprender a ler uma simbologia, mas significa aprender a modelar orientado a objetos. A idéia deste curso é capacitar as pessoas a conhecer a notação UML, assimilar alguns conceitos importantes na modelagem orientada a objetos, aprender a “ 1 os diagramas e conhecer uma das inúmeras ferramentas de ler” modelagem de sistemas, no nosso curso será o Microsoft Visio. Não é intuito deste curso ensinar como modelar sistemas de informação e nem todos os diagramas e métodos da UML. Para esse tipo de aprendizado aconselho um estudo mais detalhado através de livros especializados, alguns estão citados na bibliografia. 1 Ler no sentido de saber identificar processos e regras de negócios. Ser capaz de identificar atributos e funções.
  • 4. 2. Uso da UML A UML é utilizada em diversos tipos de sistemas, ela abrange todas as fases desde a especificação de requisitos até a fase de testes. Mas qual o objetivo da UML? O objetivo da UML é descrever qualquer tipo de sistema, em termos de diagramas orientado a objetos. Vamos trabalhar em função de Sistemas de Informação2. É claro que pode-se utilizar a UML para sistemas distribuidos, sistemas técnicos, sistemas real-time, sistemas de negócios entre outros, ou seja, a UML suporta a modelagem de qualquer tipo de sistema. 2 São sistemas os quais temos que armazenar, pesquisar, editar e mostrar informações para os usuários. Manter grandes quantidades de dados com relacionamentos complexos, que são guardados em bancos de dados relacionais ou orientados a objetos.
  • 5. 3. Diagramas a. Use Case Por muitos anos as pessoas utilizavam interações para ajudá-las a compreender o sistema, sempre de modo informal e nunca documentados.Até que Ivar Jacobson conseguisse tornar os casos de uso como elemento primário no desenvolvimento e no planejamento do projeto. Antes de explicar o que é um caso de uso, é necessário entender o conceito de cenário. Cenário é uma sequência de passos que descreve uma interação entre um usuário e um sistema. Para melhor entedimento, vou descrever um cenário: Compra via Internet O cliente navega pelo site e adiciona itens desejados ao carrinho de compras. Quando o cliente deseja finalizar a compra, descreve login/senha, endereço de entrega, fornece as informações do cartão de crédito e confirma a compra. O sistema verifica a autorização do cartão de crédito, autoriza a compra e envia um email informando ao cliente o status da compra. Dizemos que esse cenário é uma alternativa que pode acontecer. Vale a pena dizer, que a autorização do cartão pode falhar, o usuário pode não conseguir logar-se no sistema. Desse modo temos cenário alternativos. Isso quer dizer que um caso de uso, é um conjunto de cenários ligados por um objetivo comum de um usuário. Normalmente quando modelamos sistemas, definimos um caso de uso principal e outros que serão os alternativos. No nosso exemplo, teriamos: Realizar compra, como sendo o caso de uso bem-sucedido; Falha na autorização e Falha na autentificação do usuário como os casos de uso alternativos. Uma prática comum entre os analistas é descrever um cenário principal como sendo uma sequencia de passos numerados e as alternativas como variações naquela sequencia, como ilustrado na Figura 1-1.
  • 6. COMPRA VIA WEB 1. O Cliente navega pelo site e seleciona itens a serem comprados 2. O Cliente vai para o check out 3. O Cliente preenche usuário e senha 4. O Cliente preenche formulário de entrega 5. O Sistema apresenta as informações sobre o pedido (Valor, Impostos, Frete) 6. O Cliente preenche as informações do Cartão de Crédito 7. O Sistema autoriza a venda 8. O Sistema confirma a venda 9. O Sistema envia confirmação para o cliente via email Alternativa: FALHA NA AUTORIZAÇÃO No item 7, o sistema falha na autorização da compra por crédito Envia notificação para o cliente via email Alternativa: FALHA NA AUTENTIFICAÇÃO No item 3, o sistema recusa usuário e senha Permite ao cliente submeter as informações por mais 2 vezes Se ultrapassar limite bloquear conta Figura 1-1: Exemplo de texto de Caso de Uso
  • 7. Quando falamos de caso de uso, precisamos entender três conceitos que serão vistos a seguir. Ator: É um papel que um usuário desempenha em relação ao sistema. Um ator pode desempenhar vários casos de uso; um caso de uso pode ter vários atores. Os atores não precisam ser humanos, o ator pode ser um sistema externo que necessita de alguma informação do sistema atual. Associação entre Casos de Uso: Além das associações entre atores e casos de uso, você pode ilustrar vários tipos de associações entre casos de uso. Destacam-se três tipos de associações, que são: Inclusão (USES) – Ocorre quando há uma parte do comportamento que é semelhante em mais de um caso de uso. Ou seja, quando um caso de uso, “ usa” o outro. Não pode ser usado se apenas um outro caso de uso o dispara. Nem justifica o uso para modelar sequência. Generalização – Quando tem um que é semelhante a outro, mas faz um pouco mais. Extensão (EXTENDS) – Quando você estiver descrevendo uma variação em comportamento normal. Ou seja, um caso de uso, “ estende”o outro, quando o segundo acrescenta novos comportamentos ao primeiro já modelado. Apresentei diversos conceitos e não respondi uma pergunta essencial. Quando devemos utilizar casos de uso? Sempre. Definir casos de uso é uma tarefa básica na elaboração e planejamento de sistemas. Uma maneria interessante de identificar casos de uso é fazer uma modelagem conceitual com usuários. Vale a pena dizer que casos de uso, representam uma visão externa do sistema. Não espere nenhuma correlação entre eles e classes do sistema. NOTAÇÃO: Diagrama Use Case: Um diagrama use case é composto: Ator: é um papel que um usuário desempenha em relação ao sistema. O nome do ator deve ser um sujeito Linha de comunicação: Não é necessário identificar a comunicação entre atores e casos de uso, mas é uma boa prática Casos de uso: O nome do caso de uso deve ser um verbo que facilite a identificação da funcionalidade do mesmo. Veja o exemplo abaixo:
  • 8. Sistema de Biblioteca - Para fins didáticos Usuario Pesquisando Livro Emprestando material <<uses>> Cadastrando Implica em Material Gerente Cadastrar usuário Emprestando Material
  • 9. b. Sequência O diagrama de sequência é uma ferramenta que deve ser utilizada sempre em função dos casos de uso. Um diagrama de sequência captura o comportamento de um único caso de uso, ou seja, mostra a interação entre os objetos ao longo do tempo, apresentando os objetos que participam da interação e a sequência das mensagens trocadas. NOTAÇÃO: O diagrama é composto por: Objeto: É uma caixa na parte superior de uma linha tracejada verticalmente. A linha vertical é chamada de linha da vida do objeto, e representa a vida do objeto durante a interação. Mensagem: É representada por uma flecha entre as linhas de vida de dois objetos. Cada mensagem deve ter um nome, é comum incluir os argumentos e algumas informações de controle. Veja o exemplo abaixo:
  • 10. c. Atividades Utilizado para descrever a sequência de atividades, utilizando comportamento condicional e paralelo. È composto por: Início: Representado por um círculo preenchido. Estado de Atividade ou Atividade: Representado por um retângulo com bordas arredondadas. Atividade é um estado de estar fazendo algo. Desvio(Branch): Representado por um losango. Intercalação(Merge): Também representado por um losango, é utilizada para marcar o final de um comportamento condicional iniciado por um desvio, ou seja, tem múltiplas entradas e uma única saída. Separação(Fork): Representado por um traço horizontal, quando temos comportamento paralelo, ou seja, temos uma entrada e várias transições de saída que são executadas em paralelo. Junção(Joins): Representado por um traço horizontal, utilizamos para completar a separação, ou seja, quando temos um processamento paralelo, precisamos sincronizar. Veja o exemplo abaixo:
  • 11. d. Classes Sem sombra de dúvidas, o diagrama mais importante da documentação, onde podemos encontrar as informações sobre métodos, atributos, nome das funções e como serão integradas. Um diagrama de classes bem modelado é fundamental para auxiliar o desenvolvedor. NOTAÇÃO: Classe: No modelo de classe trabalhamos com um único elemento um retângulo dividido em 3 partes, a primeira divisão é utilizada para o nome da classe, a segunda divisão colocamos as informações de atributos e a última divisão é utilizada para identificar os métodos. É importante apresentar o conceito de instância, isto é, cada objeto é uma instância de sua classe. Cada instância tem seus próprios valores de atributos, compartilha os nomes dos atributos e os métodos com os outros objetos da mesma classe. É importante entender a diferença entre classe e objeto(instância), veja abaixo: Outro conceito importante que temos que ver é o de estereótipos: Estereótipo (s.m) – (2) Lugar comum, clichê, chavão. Veremos agora, os estereótipos de uma classe, são eles: Entidade ou Negócio (Entity): São classes de objetos que refletem entidades do mundo real, ou seja, pertence ao domínio do problema. Fronteira ou Interface (Boundary): São classes de objetos que permitem a comunicação entre o mundo externo e o sistema. Controle (Control): São classes que modelam a sequência de controle específica de um caso de uso do sistema, ou seja, controlam a execução dos eventos necessários para um caso de uso. Com isso, temos que aprender “ Como identificar as classes?” As classes de negócio são identificadas a partir das definições dos casos de uso obtidos na fase de Especificação de requisitos. Vale a pena dizer, que é comum encontrar as mesmas classes em diferentes funções no negócio.
  • 12. No decorrer da modelagem, você encontrará a necessidade de associar as classes, por exemplo: Não podemos deixar da falar do conceito de HERANÇA. Usamos o conceito de herança quando queremos representar uma classe “ filha” que herda todas as características da classe “ , agregando alguns atributos que pai” são particulares. A Classificação não é trivial. Deve-se tomar muito cuidado. Outro tipo de associação é a agregação. A agregação faz-se necessário quando duas classes associadas tem um sentido próprio e separadas continuam existindo como unidade autônoma, podendo até se associar com outras instâncias. A agregação é representada por um losango sem preenchimento. Imagine as seguintes classes (Telefone, Aparelho e Assinante), podemos ilustrar a agregação entre a classe aparelho e telefone. Duas classes indepententes, mas que juntas tem um sentido próprio. É sabido que toda regra tem exceção e não seria diferente na UML. Existe um caso particular de agregação, quando duas classes só possuem sentido quando estão associadas. Chamamos esse tipo de associação com forte depedência de composição. Isto implica em se uma instância da classe deixar de existir, todas as outras associadas por composição, deixarão de existir também. O símbolo que representa a composição é um losango preenchido. Veja o exemplo de composição:
  • 13. Em resumo, o diagrama de classes é composto por objetos (instâncias), que podem ser de negócios, interfaces ou de controle, e os mesmos são associados por herança, agregação ou composição.
  • 14. 4. A ferramenta MS-VISIO O Microsoft VISIO é uma ferramenta para diagramação de sistemas de tecnologia da informação. Essa ferramenta possui diversos modelos e suporta diversas metodologias de desenvolvimento de software. A versão que utilizamos é o VISIO2000 Professional. Não é necessário explicar o funcionamento da ferramenta, toda ferramenta de diagramação de sistemas, são intuitivas desde que o usuário conheça os conceitos da metodologia UML. Antes de iniciar o trabalho, abra um novo documento, escolha o software UML. O MS VISIO irá preparar o ambiente para documentar UML. Os detalhes da ferramenta, uso e dicas serão explicados durante o curso.
  • 15. 5. Estudo de caso / Diagramas A idéia deste treinamento é introduzir os principais conceitos da UML. Espero que tenha conseguido atingir o objetivo. Uma ferramenta importante para medir o aprendizado são os estudo de caso. Irei propor a seguir um estudo de caso e diagramar o mesmo. Ao final deste tópico peço que vocês façam o mesmo. Tente diagramar o estudo de caso. Certamente teremos diversas propostas para o sistema. O estudo de caso: A Number One Idiomas é uma escola de inglês, localizada em São Paulo/SP, atua no mercado desde 1985 com método próprio. Hoje a escola está com 900 alunos na unidade SP. Com o sucesso do curso de inglês, a escola começou a lecionar Espanhol e Alemão. Hoje, 2002, a Number One está com 1600 alunos, com possibilidade de crescimento em função dos novos cursos. A escola não utiliza sistema para controlar os alunos, apenas planilhas e documentos, com o crescimento este tipo de controle está ficando difícil e ineficaz. A necessidade: A Number One deseja um sistema de informação para controlar o cadastro de alunos, manter controle de pagamentos, histórico de notas e faltas, relatórios de aproveitamento dos alunos, relatórios de inadimplentes e de fácil utilização. Problemas: Atualmente os dados dos alunos estão armazenados em fichas, o controle de pagamento é feito por uma planilha do excel, existe outra planilha onde estão registradas as notas/faltas. Existe apenas um funcionário responsável pelas informações e o mesmo responde por outras funções dentro da escola. A escola tem 4 equipamentos com a seguinte configuração: Processador HD Memória RAM Sistema Operacional 486 4.2 GB 32MB Windows 95 486 4.2 GB 32MB Windows95 Pentium II 10 GB 64 MB Windows 98 Pentium III 40 GB 64MB Windows 98 A escola Number One está iniciando uma fase de franquias e está em processo de abertura de duas unidades no interior de São Paulo. Devido ao fato o cliente quer um sistema que permita o uso em rede.
  • 16. O que espero? Proposta de solução utilizando metodologia UML - Diagrama use case - Descrição dos use case - Diagrama de sequência de um caso de uso - Diagrama de atividades - Diagrama de classes Diagramas devem ser feitos com a ferramenta MS VISIO. Tempo gasto para modelar cada diagrama. Conclusões.
  • 17. 7. Conclusões Preparar este treinamento foi um desafio muito grande para mim. Fazer os diagramas, entender a metodologia UML para mim tinha um significado. Mas como transmitir o conhecimento adquirido com livros, universidade e vida prática. É difícil sentar na frente de um editor de texto e começar a escrever, o que é o seu trabalho? Como dever ser feito? Foi uma experiência que ajudou- me a aprimorar os conceitos e o mais importante a possibilidade de agregar novos valores. Este curso básico foi elaborado em função das experiências que adquiri em empresas anteriores e principalmente em função do projeto Banco1.net O material utilizado como referência foi: Apresentação “ Engenharia de Software” professor Ivan Granja, mestre da , PUC – Campinas Livro UML Essencial, Kendall Scott, editora Bookman Minha intenção com este treinamento foi capacitar desenvolvedores a entender o que é UML, como ler documentações em UML, e introduzir os pré- requisitos necessários para um aprendizado mais detalhado sobre a UML. Espero que eu tenha conseguido de forma clara, expor os conceitos e técnicas da modelagem UML. Gostaria de deixar claro que este treinamento engloba apenas o básico da modelagem, existem outros diagramas e outras técnicas que podem ser assimilados através de leitura especializada. Estou a disposição para esclarecer dúvidas e maiores informações através do email: joao@atenacriacao.com.br