UML
1
INTRODUÇÃO
CEÇA MORAES
[email protected]
05/11/2015
O que é um Modelo?
2
 Construímos modelos para
compreender melhor o sistema que
estamos desenvolvendo
 Um modelo é uma
realidade
simplificação da
 Um modelo pode ser
comportamental
estrutural ou
05/11/2015
O que é um modelo?
3
05/11/2015
O que é um modelo?
4
05/11/2015
Por que modelar software?
5
 Ajuda a ter uma visão geral do sistema
 Permite especificar a estrutura e o
comportamento do sistema
 Proporciona um guia para a construção
do sistema
 Documenta as decisões tomadas
05/11/2015
O que é a UML?
6
 Unified Modeling Language:
 ...uma
linguagem gráfica para visualizar,
especificar, construir e documentar os
um sistema de software.
artefatos de
 ...resultado da unificação das notações utilizadas nos
métodos Booch, OMT (Object Modeling Technique) e
OOSE (Object-Oriented Software Engineering).
 ...adotada por grande parte da indústria de software e
por fornecedores de ferramentas CASE como linguagem
padrão de modelagem.
 …utilizada com
qualquer
processo de desenvolvimento
05/11/2015
UML
7
 A UML é uma linguagem para
visualização
 No processo de desenvolvimento de sistemas de
software, é quase impossível a visualização de toda a
estrutura de um sistema sem o uso de modelos
 A UML fornece os
símbolos gráficos para a
representação de artefatos de software.
 Por trás de cada símbolo empregado na notação da UML,
existe uma sintaxe e uma semântica bem-definidas.
 Assim, o desenvolvedor pode usar a UML para
escrever modelos, diminuindo a ambigüidade em
sua interpretação
05/11/2015
UML
8
 A UML é uma linguagem para construção
 Os modelos de UML podem ser diretamente
”traduzidos” para várias linguagens de
programação

É possível mapear os modelos da UML para linguagens
de programação tais como, Java, C++ e Visual Basic.

Realização de uma engenharia de produção: geração
de código a partir de um modelo em UML

O processo inverso, a engenharia reversa, também é
possível, com a reconstrução de um modelo a partir de
sua implementação
05/11/2015
UML
9
 A UML é uma linguagem para documentação
 Cada modelo criado é um artefato de software
Diagrama de Casos de Uso
Diagrama de Classes
blogSystem
Criar Blog
Criar Comentario
<<include>>
Usuario
<<include>>
-dtCriacao:Date
-titulo:String
-dono:UsuarioBlog
-conteudos :Vector
Ler Nota
1
dono
U s u a rio B l o g
Ler Comentario
<<include>>
-email:String
0..*
usuario
usa
1
+notificarEx clus ao:void
Remover Comentario
Remover Conteudo
1
…
+criarNota:void
+ex ibirConteudo:void
+comentar:void
+lerComentarios:Vector
+removerC onteudo:void
+lerNotas :Vector
+Blog
: SIM
autor
: AnalisadorMatricula
0..*
Remover Nota
C o n te u d o
0..*
Dono do blog
Diagrama de Seqüência
B lo g
0..*
Ler Conteudo
Criar Nota
-dtCriacao:Date
-texto:String
-autor:Us uarioBlog
1: submeterFormulario(f)
+Conteudo
+ex ibirConteudo:void
N o ta
-comentarios:Vector
-attribute1:int
+comentar:void
+lerComentarios:Vector
+finaliz e:void
2: adicionar(a,d )
C o m e n ta r io
0..*
+finaliz e:void
05/11/2015
05/11/2015
Linguagem de Diagramas
10
Diagramas de Seqüência
Diagramas de Colaboração
Diagrama de Casos de Uso
Diagramas de Classe
Modelos
Diagramas de Estado
Diagramas de Atividade
Diagramas de Objetos
Diagramas de Componentes
Ponto de Vista Dinâmico
Diagrama de Deployment
Ponto de Vista Estático
05/11/2015
Casos de Uso
11
05/11/2015
Casos de Uso
12
 Um caso de uso é uma
seqüência de ações
realizada por um sistema que produz um
resultado de valor observável para determinado
ator
 Todos os casos de uso juntos devem descrever a
funcionalidade completa do sistema
(requisitos)
 Atores são fundamentais para a descoberta dos
casos de uso
05/11/2015
Casos de Uso
13
 Cenários para os requisitos
 Detalhamento dos requisitos para
implementação
 Interação dos atores com o sistema
05/11/2015
Casos de Uso
14
Este caso de uso é responsável por autenticar um usuário
do sistema.
Descrição
Narrativa
Pré-condição: nenhuma
Pós-condição: um usuário válido é logado e sua sessão
é registrada no sistema.
Fluxo de eventos principal
1. O cliente informa login e senha.
2. O sistema verifica se o login e a senha são válidos
(verifica-se se o login e senha pertencem a uma conta).
3. O sistema registra o início de uma sessão de uso.
Fluxos secundários
- No passo 2, se o login ou a senha forem inválidos, o
sistema exibe uma mensagem e volta ao passo 1.
05/11/2015
Diagrama de Casos de Uso
ATOR
15
CASO DE USO
Solicitar
histórico
ATOR
<<estende>>
Solicitar histórico do
semestre atual
<<estende>>
Solicitar histórico de
todos os semestres
Estudante
<<inclui>>
Matricular
aluno
Verificar
dependências
Secretária
05/11/2015
Atores – Especialização
16
 É possível definir
tipos gerais de
atores e
especializá-los
usando o
relacionamento de
Cliente
especialização
ClienteEspecial
05/11/2015
Atores – Especialização
17
 Na generalização de
ator o filho herda o
papel que o pai pode
desempenhar em um
caso de uso
 Facilita a leitura do
modelo de caso de uso
05/11/2015
Diagrama de Classes
18
 Modelar o vocabulário de um sistema do
ponto de vista do usuário/problema ou do
desenvolvedor/solução


Ponto de vista do usuário/problema – na fase de captura e
análise de requisitos, em paralelo com a identificação dos
casos de uso
Vocabulário do desenvolvedor/solução – na fase de projeto
(design)
 Construído e refinado ao longo das várias
fases do desenvolvimento do software
05/11/2015
Diagrama de Classes
19
 Também serve para:

Especificar relacionamentos e colaborações

Especificar esquemas lógicos de bases de dados

Especificar visões (estrutura de dados de
formulários, relatórios, etc.)
 Modelos de objetos de domínio,
negócio, análise e projeto
 Base da implementação
05/11/2015
Diagrama de Classes
20
Cliente
Pedido
-codigo: Integer
-dataRecebido
-total: Currency
0..*
 faz
1
+confirmar()
+cancelar()
-calcularTotal():Currency
gerarNovoCodigo: Integer
-nome: String
-endereco: String
-dataPrimeiraCompra: Date
-dataUltimaCompra: Date
-totalComprado: Currency
#creditoPermitido: Currency
#nivelCredibilidade()
itens
Item de Pedido
-quantidade: Integer
-preco: Currency
-emEstoque: Boolean
Cliente pessoa-jurídica
nomeContato: String
telefones[1..10]: String
CGC: String
FAX[1..3]: String
Cliente pessoa-física
nome: String
CPF: String
numCartaoCredito
colocarListaNegra()
*
Produto
representante
de vendas
Empregado
05/11/2015
IPessoa
Diagrama de Objetos
21
 Oferece uma visão estática das
instâncias (objetos) das classes
 Registrar os objetos e seus
relacionamentos num determinado
instante de tempo
05/11/2015
Diagrama de Objetos
22
Curso
Professor
Aluno
ministra
-matrícula: String
-nome: String
[1..3]
-codDisciplina: String
[1..5] -descrição: String
-codTurma: String
* -matrícula: String
-nome: String
-período: Integer
[0..10]
p1: Professor
p2: Professor
matricula: "205-6712-09"
nome: "Jaelson Castro"
c1: Curso
: Curso
c2: Curso
: Curso
codCurso: "IF291"
descrição: "MPS"
codTurma: I7
codCurso: "IF185"
descrição: "AER"
codTurma: I6
c3: Curso
: Aluno
: Aluno
: Aluno
: Aluno
: Aluno
:aluno
Bill
:aluno
matricula: "562746134"
nome: "John Major"
Lewinsky
matricula: "219846534"
nome: "Nelson Mandella"
: Aluno
05/11/2015
Diagrama de Objetos
23
05/11/2015
Diagrama de Objetos
24
05/11/2015
Diagrama de Sequência
e as mensagens
trocadas entre eles ao longo do tempo
 Exibe
objetos
25
 Retrata a
ordenação temporal das
mensagens
 Descreve a maneira como os grupos de
objetos colaboram em algum
comportamento ao longo do tempo
 registra
o comportamento de um único
caso de uso
05/11/2015
Diagrama de Sequência
26
: ClienteAtor
: TelaLogin
: ControladorLogin
: CadastroContas
efetuarLogin(login, senha)
efetuarLogin(login, senha)
existeConta(login, senha)
registraSessao(login)
05/11/2015
Diagrama de Sequência
27
05/11/2015
Diagrama de Colaboração
28
 Ilustra o fluxo de troca de mensagens
entre objetos
 Mostram interação entre objetos sem
(muita) preocupação com a
seqüência das ações
 São adequados para especificar um
processo na lógica do programa
05/11/2015
Diagrama de Colaboração
29
Janela de entrada
de pedido
1: preparar()
p: Pedido
1.1.2.1: estoqueBaixo :=
verif icEstoqueBaixo()
1.1: *[para cada item do pedido]
preparar()
1.1.1 : emEstoque := verif icar()
1.1.2 : [emEstoque] remover()
: ItemPedido
1.1.3 : [emEstoque]
<<criar>>
:ItemEntrega
:ItemEstoque
1.1.2.2 [estoqueBaixo]
<<criar>>
:ItemRenovEstoque
05/11/2015
Diagrama de Colaboração
30
05/11/2015
Diagrama de Estados
31
 Exibe os
estados e as transições entre
estes
 Modela uma
máquina de estados
(seqüência do ciclo de vida de um objeto)
 Especifica as
seqüências
de estados pelos
quais um objeto passa durante seu tempo
de vida em resposta a eventos
05/11/2015
Diagrama de Estados
32
05/11/2015
Diagrama de Atividades
33
 É um tipo
especial de gráfico de
estados
 Exibe o fluxo de atividades no
sistema
 Atividade: operação que resulta na
mudança de um estado do sistema
 Geralmente é utilizado para modelar
uma função do sistema
05/11/2015
Diagrama de Atividades
34
Pessoa
[sem café]
H
[achou café]
Colocar café
no filtro
[sem Coca]
Procurar bebida
Adicionar água à
máquina
[achou Coca]
Pegar
xícara
Pegar lata
de Coca
Colocar filtro
na máquina
Ligar máquina
Filtrar café
Colocar café na
xícara
Beber
H
05/11/2015
Diagrama de Componentes
35
organizações e as
dependências de um conjunto de
componentes de SW
 Retrata uma visão estática da
 Exibe as
do SOFTWARE
 Relacionado com o diagrama de classes
implementação
classes e
interfaces
em componentes
são mapeadas
05/11/2015
Diagrama de Componentes
36
Cadastro.exe
<<link>>
Usuários
FormCadastro.html
Banco
<<link>>
Autenticacao.exe
Senhas
Principal.html
FormEntrada.html
05/11/2015
Diagrama de Componentes
37
05/11/2015
Diagrama de Implantação
38
 Exibe a configuração dos
nós de
processamento e dispositivos
 Retrata uma visão estática da
organização do hardware
 Relacionado com o diagrama de
componentes
nó inclui um ou mais
componentes
 um
05/11/2015
Diagrama de Implantação
39
PC - G309
Nestscape
Communicator
5.0
Principal.html
servidorWeb
FormCadastro.html
Autenticação.exe
servidorDeArquivos
Cadastro.exe
FormEntrada.html
servidorBancoDeDados
O SGBD a ser
utilizado ainda
não foi escolhido.
SGBD
05/11/2015
Diagrama de Implantação
40
05/11/2015
PERGUNTAS ???
41
05/11/2015
Bibliografia
42
 The Unified Modelling Language User
Guide (Grady Booch)
 The
Unified
Modelling
Language
Reference Manual (James Rumbaugh)
 The
Unified Software Development
Process (Ivar Jacobson)
 UML Distilled (Martin Fowler)
05/11/2015
Download

to get the file