Você está na página 1de 51

Unified Modeling Language

Maurcio Edgar Stivanello

Agenda
Software e modelagem; UML

Introduo; Diagramas;

Comentrios finais;

Agenda
Software e modelagem; UML

Introduo; Diagramas;

Comentrios finais;

Evoluo do software

O surgimento de sistemas de software complexos resultou na necessidade de reavaliar a forma de desenvolver sistemas; As tcnicas tem evoludo de forma impressionante, notavelmente no que tange modelagem de sistemas.

Novos requisitos de sistemas

Escalabilidade; Segurana; Robustez; De fcil manuteno; Reutilizvel;

Como resolver isso...

Modelagem
Um modelo pode ser visto como uma representao idealizada de um sistema a ser construdo; Maquetes de edifcios e de avies e plantas de circuitos eletrnicos so apenas alguns exemplos de modelos; Uma simplificao da realidade que nos ajuda a entender um problema complexo;

Modelagem de software

A modelagem de sistemas de software consiste na utilizao de notaes grficas 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 comunicao entre as pessoas envolvidas; Ajuda na predio do comportamento futuro do sistema.

Evoluo da modelagem

Na primeira metade da dcada de 90 surgiram vrias propostas de tcnicas para modelagem de sistemas; Houve uma grande proliferao de propostas para modelagem de sistemas segundo o paradigma orientado a objetos; Existiam diferentes notaes grficas para modelar uma mesma perspectiva de um sistema.

Necessidade de um padro
Percebeu-se a necessidade de um padro para a modelagem de sistemas, que fosse aceito e utilizado amplamente; Surgiram esforos nesse sentido de padronizao, sendo o principal liderado por James Rumbaugh, Grady Booch e Ivar Jacobson (Rational).

Agenda
Software e modelagem; UML

Introduo; Diagramas;

Comentrios finais;

UML...

Surge a UML em 1996 como a melhor candidata para ser a linguagem unificadora de notaes; Em 1997 a UML aprovada como padro pela OMG; Desde ento tem tido grande aceitao; Atualmente na verso 2.0;

Caractersticas da UML
uma linguagem visual; independente de linguagem de programao; independente de processo de desenvolvimento; No uma linguagem de programao; No uma metodologia.

Usos da UML

Visualizao; Especificao; Documentao; Comunicao; Construo.

Diagramas Podem ser usados para...


Mostrar os limites de um sistema e suas funes; Representa a estrutura esttica de um sistema; Modelar o comportamento de objetos; Apresentar a implementao fsica e a arquitetura de um sistema;

Elementos Essenciais Estruturais


Classe
<<entity>> Cliente -razaoSocial: String -cpf: String +getRazaoSocial() +setRazaoSocial(razaoSocial: String)

Objeto
Cliente

N
Web Server

Interface
IImprimivel

Componente
ocv.dll

Relacionamentos

Elementos Essenciais Comportamentais


Caso de uso
Programar produo

Estados
Conectando

Mensagens

Ator

Operador

Elementos Essenciais Extenso

Notas
Notas servem para adicionar alguma informao nos diagramas

Tagged Values
{nome=Joo da Silva Cpf=12345678901}

Elementos Essenciais Agrupamento


Pacotes
Interface

Regras de negcio

Banco de Dados

Agenda
Software e modelagem; UML

Introduo; Diagramas;

Comentrios finais;

Diagrama de Casos de Uso Viso 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 usurios.

Programar produo

Produzir pedido

Solicitar material

Diagramas de Caso de Uso Atores

Diferentes usurios que operam o sistema; Sistemas externos que interagem com o sistema;

Operador Gerente

Sistema de estoque

Diagramas de Caso de Uso Associao

Representa a comunicao entre o ator e o caso de uso; Tambm existem associaes entre casos de usos;

Gerar relatrios de servios

Gerente

Diagramas de Caso de Uso Diagrama completo


Cenrio do sistema para na produo Gerar relatrios de servios

Programar produo Gerente

Produzir pedido Operador Solicitar material

Sistema de estoque

Diagramas de Classe Viso Geral

Largamente utilizado; Descreve os diferentes tipos de objeto e o relacionamentos entre eles.

Diagramas de Classe Classes

Esteretipo; Atributos; Operaes; Visibilidade; Tipo;


<<entity>>

Esteretipo Nome Atributos

<<entity>> Pedido -data: date -status: Integer -obs: String -valorTotal: Float +calcImposto() +calcTotal() -calcSubTotal() +setCliente(cliente: Cliente) +inserirItem(item: ItemPedido)

Mtodos

Pagamento
-quantia: Float +getQuantia()

Diagramas de Classe Relacionamentos

Associaes representam relaes entre ocorrncias 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

Multiplicidade; Navegabilidade;

Pedido -data -status +calcImposto() +calcTotal() 1 0..*

1..* Pagamento -quantia

1 Cliente -nome -cpf

Diagramas de Classe Relacionamentos

<<entity>> Pedido -data: date -status: Integer -obs: String -valorTotal: Float +calcImposto() +calcTotal() -calcSubTotal() +setCliente(cliente: Cliente) +inserirItem(item: ItemPedido)

Agregao; Composio;
Computador

1 1..*

Cpu

Teclado

<<entity>> ItemPedido +qtd: Integer

Monitor

+setQuantidade(qtd: Integer) +setProduto(produto: Produto)

Diagramas de Classe Relacionamentos

Generalizao; Dependncia;
Pagamento -quantia

<<entity>> Pedido -data: date -status: Integer -obs: String -valorTotal: Float +calcImposto() +calcTotal() -calcSubTotal() +setCliente(cliente: Cliente) +inserirItem(item: ItemPedido)

Cartao +numero +tipo

Cheque -banco

<<boundary>> FormPedido +criarPedido() +gravarPedido()

Diagramas de Classe Pacotes

Agrupa classes relacionadas;

Interface

Regras de negcio

Banco de Dados

Diagramas de Classe Diagrama completo


<<entity>> Pedido <<entity>> Cliente -razaoSocial: String -cpf: String +getRazaoSocial() +setRazaoSocial(razaoSocial: String) 1 0..* -data: date -status: Integer -obs: String -valorTotal: Float +calcImposto() +calcTotal() -calcSubTotal() +setCliente(cliente: Cliente) +inserirItem(item: ItemPedido) 1 1..* <<entity>>

Pagamento
-quantia: Float +getQuantia()

<<boundary>> FormPedido 1 +criarPedido() +gravarPedido() 1..* <<entity>> ItemPedido 1 0..* +qtd: Integer +setQuantidade(qtd: Integer) +setProduto(produto: Produto) <<entity>> Cartao +numero: Integer +tipo: Integer <<entity>> Cheque -banco: Integer

<<entity>> Produto +descricao: String

<<entity>> Dinheiro

Diagrama de Seqncia

Mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles; Diagrama de seqncia d nfase seqncia de mensagens;

Diagrama de Seqncia Objetos

<<entity>> : ItemPedido

Representa uma instncia de uma determinada classe;

Diagrama de Seqncia Mensagens

Representa troca de mensagens entre os objetos;

8 : setQuantidade()

10 : calcSubTotal()

Diagrama de Seqncia Fragmentos

Servem para separar blocos de mensagens condicionadas a teste ou lao;

sd Insere itens

Diagrama de Seqncia
<<boundary>> : FormPedido : Atendente 1 : cria pedido() 2 : create() 3 : informa cliente() 4 : setCliente() <<entity>> : Pedido Diagrama de sequncia referente insero de pedidos

<<entity>> : ItemPedido

Insere itens 5 : informa item() 6 : create() 7 : setProduto() 8 : setQuantidade() 9 : insereItem()

Insere quantos itens quiser

10 : calcSubTotal() 11 : Atualizar() 12 : finaliza edio()

Diagrama de estados

Exibe os possveis estados de um objeto; Exibe tambm as transies que causam a mudana de estado.

Diagramas de Classe Elementos bsicos


A

Estado inicial; Estado final; Estado intermedirio;

State1

State3

Diagramas de Estados Diagrama completo


Diagrama de estados - Acesso ao Sistema Cursor inicia no campo do usurio

Rejeitando Cancelado

Tenta novamente ( limpa campos )

Lendo usurio

Capturando teclas

Exibe mensagem de erro

Submete Cursor para campo de usurio

Cursor para campo de senha

Validando Inicia transao Submete

Lendo Senha

Capturando teclas ( exibir ponto )

Diagramas de Implantao Viso Geral

Mostra a configurao de software ou hardware; Permite avaliar as diferentes situaes de implantao do sistema.

Diagramas de Implantao Elementos bsicos

Componente; N.

servidor.exe

Servidor de aplicao

Diagramas de Implantao Diagrama completo


Diagrama de implantao Cliente remoto <<http>> navegador autenticacao Servidor Web

<<jdbc>>

Cliente <<RMI>> aplicativo.exe

Servidor de aplicao <<odbc>> servidor.exe

Servidor de banco de dados

SGBD

Agenda
Software e modelagem; UML

Introduo; Diagramas;

Comentrios finais;

Design na metodologia hoje Exemplo do RUP

Quanto esforo empregar


Projeto; Equipe de trabalho; Complexidade; Automatismos possveis;

Engenharia Reversa
til quando se quer trabalhar com sistemas sem documentao; Nem sempre o resultado satisfatrio;

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

Obrigado...
maustiva@das.ufsc.br

Você também pode gostar