Unified
Modeling
Language
Agenda
Software e modelagem;
 UML

 Introdução;
 Diagramas;

Comentários finais;
Agenda
Software e modelagem;
 UML

 Introdução;
 Diagramas;

Comentários finais;
Evolução do software


O surgimento de sistemas de
software complexos resultou
na necessidade de reavaliar a
forma de desenvolver
sistemas;
As técnicas tem evoluído de
forma impressionante,
notavelmente no que tange à
modelagem de sistemas.
Novos requisitos de sistemas





Escalabilidade;
Segurança;
Robustez;
De fácil manutenção;
Reutilizável;
Como resolver isso...
Modelagem
Um modelo pode ser visto como uma
representação idealizada de um sistema a
ser construído;
 Maquetes de edifícios e de aviões e
plantas de circuitos eletrônicos são
apenas alguns exemplos de modelos;
 Uma simplificação da realidade que nos
ajuda a entender um problema complexo;

Modelagem de software

A modelagem de sistemas de software
consiste na utilização de notações
gráficas e textuais com o objetivo de
construir modelos que representam as
partes essenciais de um sistema,
considerando-se diversas perspectivas
diferentes e complementares.
Para que modelar
Ajuda no gerenciamento da complexidade
inerente ao desenvolvimento de software;
 Ajuda na comunicação entre as pessoas
envolvidas;
 Ajuda na predição do comportamento
futuro do sistema.

Evolução da modelagem



Na primeira metade da década de 90 surgiram
várias propostas de técnicas para modelagem
de sistemas;
Houve uma grande proliferação de propostas
para modelagem de sistemas segundo o
paradigma orientado a objetos;
Existiam diferentes notações gráficas para
modelar uma mesma perspectiva de um
sistema.
Necessidade de um padrão
Percebeu-se a necessidade de um padrão
para a modelagem de sistemas, que fosse
aceito e utilizado amplamente;
 Surgiram esforços nesse sentido de
padronização, sendo o principal liderado
por James Rumbaugh, Grady Booch e
Ivar Jacobson (Rational).

Agenda
Software e modelagem;
 UML

 Introdução;
 Diagramas;

Comentários finais;
UML...




Surge a UML em 1996
como a melhor candidata
para ser a linguagem
unificadora de notações;
Em 1997 a UML é aprovada
como padrão pela OMG;
Desde então tem tido
grande aceitação;
Atualmente na versão 2.0;
Características da UML
É uma linguagem visual;
 É independente de linguagem de
programação;
 É independente de processo de
desenvolvimento;
 Não é uma linguagem de programação;
 Não é uma metodologia.

Usos da UML





Visualização;
Especificação;
Documentação;
Comunicação;
Construção.
Diagramas
Podem ser usados para...
Mostrar os limites de um sistema e suas
funções;
 Representa a estrutura estática de um
sistema;
 Modelar o comportamento de objetos;
 Apresentar a implementação física e a
arquitetura de um sistema;

Elementos Essenciais
Estruturais
Classe
Objeto
<<entity>>
Cliente
Cliente
Nó
Web Server
-razaoSocial: String
-cpf: String
+getRazaoSocial()
+setRazaoSocial(razaoSocial: String)
Interface
ocv.dll
IImprimivel
Relacionamentos
Componente
Elementos Essenciais
Comportamentais
Caso de uso
Programar produção
Ator
Operador
Estados
Conectando
Mensagens
Elementos Essenciais
Extensão
Notas
Notas servem para adicionar
alguma informação nos diagramas
Tagged Values
{nome=João da Silva
Cpf=12345678901}
Elementos Essenciais
Agrupamento
Pacotes
Interface
Regras de negócio
Banco de Dados
Agenda
Software e modelagem;
 UML

 Introdução;
 Diagramas;

Comentários finais;
Diagrama de Casos de Uso
Visão Geral



Descreve o que o
sistema faz do ponto
de vista do
observador externo;
Ajuda a esclarecer os
requisitos do sistema;
Ajuda a dividir o
desenvolvimento do
sistema em tarefas;
Diagrama de Casos de Uso
Caso de uso

Representa as
diferentes
funcionalidades que o
sistema disponibiliza
aos usuários.
Programar produção
Produzir pedido
Solicitar material
Diagramas de Caso de Uso
Atores


Diferentes usuários que
operam o sistema;
Sistemas externos que
interagem com o
sistema;
Operador
Gerente
Sistema de estoque
Diagramas de Caso de Uso
Associação


Gerar relatórios de serviços
Representa a
comunicação entre o
ator e o caso de uso;
Também existem
associações entre
casos de usos;
Gerente
Diagramas de Caso de Uso
Diagrama completo
Cenário do sistema para na produção
Gerar relatórios de serviços
Programar produção
Gerente
Produzir pedido
Operador
Solicitar material
Sistema de estoque
Diagramas de Classe
Visão Geral


Largamente utilizado;
Descreve os diferentes
tipos de objeto e o
relacionamentos entre
eles.
Diagramas de Classe
Classes





Estereótipo;
Atributos;
Operações;
Visibilidade;
Tipo;
Estereótipo
Nome
<<entity>>
Pagamento
-quantia: Float
+getQuantia()
<<entity>>
Pedido
Atributos
-data: date
-status: Integer
-obs: String
-valorTotal: Float
Métodos
+calcImposto()
+calcTotal()
-calcSubTotal()
+setCliente(cliente: Cliente)
+inserirItem(item: ItemPedido)
Diagramas de Classe
Relacionamentos

Associações
representam relações
entre ocorrências de
classes;
<<entity>>
Pedido
-data: date
-status: Integer
-obs: String
-valorTotal: Float
+calcImposto()
+calcTotal()
-calcSubTotal()
+setCliente(cliente: Cliente)
+inserirItem(item: ItemPedido)
0..*
1
<<entity>>
Cliente
-razaoSocial: String
-cpf: String
+getRazaoSocial()
+setRazaoSocial(razaoSocial: String)
Diagramas de Classe
Relacionamentos


Pedido
Multiplicidade;
Navegabilidade;
-data
-status
+calcImposto()
+calcTotal()
1
1..*
Pagamento
-quantia
0..*
1
Cliente
-nome
-cpf
Diagramas de Classe
Relacionamentos


Agregação;
Composição;
<<entity>>
Pedido
-data: date
-status: Integer
-obs: String
-valorTotal: Float
+calcImposto()
+calcTotal()
-calcSubTotal()
+setCliente(cliente: Cliente)
+inserirItem(item: ItemPedido)
Computador
1
1..*
Cpu
Teclado
<<entity>>
ItemPedido
+qtd: Integer
Monitor
+setQuantidade(qtd: Integer)
+setProduto(produto: Produto)
Diagramas de Classe
Relacionamentos


<<entity>>
Pedido
Generalização;
Dependência;
-data: date
-status: Integer
-obs: String
-valorTotal: Float
+calcImposto()
+calcTotal()
-calcSubTotal()
+setCliente(cliente: Cliente)
+inserirItem(item: ItemPedido)
Pagamento
-quantia
Cartao
+numero
+tipo
Cheque
-banco
<<boundary>>
FormPedido
+criarPedido()
+gravarPedido()
Diagramas de Classe
Pacotes

Agrupa classes
relacionadas;
Interface
Regras de negócio
Banco de Dados
Diagramas de Classe
Diagrama completo
<<entity>>
Pedido
-data: date
-status: Integer
-obs: String
-valorTotal: Float
<<entity>>
Cliente
-razaoSocial: String
-cpf: String
0..*
1
+getRazaoSocial()
+setRazaoSocial(razaoSocial: String)
<<entity>>
Pagamento
+calcImposto()
+calcTotal()
-calcSubTotal()
+setCliente(cliente: Cliente)
+inserirItem(item: ItemPedido)
1
1..*
-quantia: Float
+getQuantia()
<<boundary>>
FormPedido
1
+criarPedido()
+gravarPedido()
<<entity>>
Produto
+descricao: String
1..*
<<entity>>
ItemPedido
1
0..*
+qtd: Integer
+setQuantidade(qtd: Integer)
+setProduto(produto: Produto)
<<entity>>
Cartao
<<entity>>
Cheque
+numero: Integer
+tipo: Integer
-banco: Integer
<<entity>>
Dinheiro
Diagrama de Seqüência


Mostra um conjunto de
objetos, seus
relacionamentos e as
mensagens que podem
ser enviadas entre eles;
Diagrama de seqüência
dá ênfase à seqüência
de mensagens;
Diagrama de Seqüência
Objetos

Representa uma
instância de uma
determinada classe;
<<entity>>
: ItemPedido
Diagrama de Seqüência
Mensagens

Representa troca de
mensagens entre os
objetos;
8 : setQuantidade()
10 : calcSubTotal()
Diagrama de Seqüência
Fragmentos

Servem para separar
blocos de mensagens
condicionadas a teste
ou laço;
sd Insere itens
Diagrama de Seqüência
<<boundary>>
: FormPedido
<<entity>>
: Pedido
: Atendente
1 : cria pedido()
Diagrama de sequência referente
à inserção de pedidos
2 : create()
3 : informa cliente()
<<entity>>
: ItemPedido
4 : setCliente()
Insere itens
5 : informa item()
Insere quantos itens quiser
6 : create()
7 : setProduto()
8 : setQuantidade()
9 : insereItem()
10 : calcSubTotal()
11 : Atualizar()
12 : finaliza edição()
Diagrama de estados


Exibe os possíveis
estados de um objeto;
Exibe também as
transições que
causam a mudança
de estado.
Diagramas de Classe
Elementos básicos
A



Estado inicial;
Estado final;
Estado intermediário;
B
State1
State3
Diagramas de Estados
Diagrama completo
Diagrama de estados - Acesso ao Sistema
Cursor inicia no campo do usuário
Rejeitando
Tenta novamente ( limpa campos )
Lendo usuário
Capturando teclas
Cancelado
Exibe mensagem de erro
Cursor para campo de senha
Submete
Cursor para campo de usuário
Validando
Inicia transação
Lendo Senha
Submete
Capturando teclas ( exibir ponto )
Diagramas de Implantação
Visão Geral


Mostra a
configuração de
software ou
hardware;
Permite avaliar as
diferentes situações
de implantação do
sistema.
Diagramas de Implantação
Elementos básicos


Componente;
Nó.
servidor.exe
Servidor de aplicação
Diagramas de Implantação
Diagrama completo
Diagrama de implantação
Cliente remoto
Servidor Web
<<http>>
navegador
autenticacao
<<jdbc>>
<<RMI>>
aplicativo.exe
Servidor de banco de dados
Servidor de aplicação
Cliente
<<odbc>>
servidor.exe
SGBD
Agenda
Software e modelagem;
 UML

 Introdução;
 Diagramas;

Comentários finais;
Design na metodologia hoje
Exemplo do RUP
Quanto esforço empregar
Projeto;
 Equipe de trabalho;
 Complexidade;
 Automatismos possíveis;

Engenharia Reversa
Útil quando se quer trabalhar com
sistemas sem documentação;
 Nem sempre o resultado é satisfatório;

Ferramentas sugeridas
StarUML em www.staruml.com
 Poseidon em www.gentleware.com
 Umbrello em
http://uml.sourceforge.net/index.php
 Rational Rose em www.rational.com
 Dentre outras...

Fontes
OMG – www.omg.org
 UML – www.uml.org
 UML Essencial – Grady Booch, Ivar
Jacobson e James Rumbaugh

Download

UML