Você está na página 1de 25

UML - Unified Modeling Language

Importncia da Modelagem
Um modelo uma simplificao da realidade Construmos modelos para compreender melhor o sistema que estamos desenvolvendo Objetivos alcanados com a modelagem o Os modelos ajudam a visualizar o sistema como ele ou como desejamos que seja o Os modelos permitem especificar a estrutura ou o comportamento de um sistema o Os modelos proporcionam um guia para a construo do sistema o Os modelos documentam as decises tomadas. Construmos modelos de sistemas complexos porque no possvel compreend-los em sua totalidade

Princpios da Modelagem
A escolha dos modelos a serem criados tem profunda influncia sobre a maneira como um determinado problema atacado e como uma soluo definida Cada modelo poder ser expresso em diferentes nveis de preciso Os melhores modelos esto relacionados realidade Nenhum modelo nico suficiente. Qualquer sistema no-trivial ser melhor investigado por meio de um pequeno conjunto de modelos quase independentes

UML - Linguagem Unificada de Modelagem (Unified Modeling Language)


A UML uma linguagem de modelagem com as seguintes caractersticas: Absorveu influncias de outras tcnicas de modelagem : o Diagrama de Entidade e Relacionamento - DER o Modelagem de Negcio - WorkFlow o Modelagem de Objetos e Componentes Incorporou idias de diversos autores : o Peter Coad, Derek Coleman, Ed Yourdon,... Criada a partir de outras ferramentas de modelagem o Booch93 o OMT-2 o OOSE Linguagem-padro para a elaborao da estrutura de projetos de software. Enfoque Orientado a Objetos Utilizada para Visualizar, Especificar, Construir e Documentar artefatos que modelem sistemas de software. UML apenas uma linguagem de modelagem, no uma metodologia para desenvolvimento de sistemas. Baseada em Diagramas (nfase Visual), onde vrios aspectos fundamentais na modelagem de Sistemas so abordados, tais como : Funcional (estrutura esttica e interao dinmica), no funcional (tempo de processamento, confiabilidade, produo) e organizacional (organizao do trabalho, mapeamento e cdigo). Cada viso descrita em um nmero de diagramas que contm informaes enfatizando um aspecto em particular. Analisando o Sistema atravs de vises diferentes, possvel se concentrar em um aspecto de cada vez.

Diagramas da UML

Casos de uso (Use Cases) : Modelam o comportamento geral do Sistema, atravs dos relacionamentos com atores externos. Classes : Modela classes, interfaces e seus relacionamento, representando uma viso esttica da estrutura do Sistema. Interao : modelam uma especificao comportamental representando a troca de mensagens entre objetos, em UML os Diagramas de Interao so representados por Diagrama de Sequncia e Diagrama de Colaborao. o Sequncia : modela a interao entre objetos atravs de seus relacionamentos e troca de mensagens. Demonstram a dinmica do Sistema com nfase na ordenao temporal das mensagens. o Colaborao : Semelhante ao diagrama de Sequncia, sendo que sem observar a ordenao temporal das mensagens. Estados : Modela uma mquina de estados, formado por : estados, transies e eventos Atividades : Tipo especial de Diagrama de Grfico de Estado Diagramas de Implementao : Modelam a arquitetura lgica e fsica do hardware e software que implementam o Sistema. o Componentes : Exibe a organizao e dependncias existentes em um conjunto de componentes do Sistemas (Programas fontes, objetos, executveis e bibliotecas) o Implantao : Mostra a configurao dos ns de processamento em tempo de execuo e os componentes neles existentes.

Casos de Uso (Use Cases)


Um caso de uso um documento narrativo que descreve a sequncia de eventos de um ator (agente externo) que usa um Sistema para completar um processo[Jacobson92]. Eles so histrias ou casos de utilizao de um Sistema. Casos de uso no so exatamente especificaes de requisitos ou especificaes funcional, mas ilustram e implicam requisitos na histria que eles contam. Figura (CasoDeUso) Caso de Uso Atores Descrio Comprar Itens Cliente, Caixa Um Cliente chega a um ponto de pagamento, com vrios itens que deseja comprar. O Caixa registra os itens de compra, informa o total da compra ao cliente e recebe o pagamento.

Os detalhes dos casos de uso no so formalizados pela UML e podem ser adequados para satisfazer as necessidades e o esprito de documentao necessrios (clareza de comunicao). Os casos de uso podem ser detalhados atravs de uma Sequncia Tpica de Eventos Sequncia Tpica de Eventos Ao do Ator Resposta do Sistema 1. Este caso de uso comea quando um Cliente chega a um ponto de pagamento (Equipado com um Post) com vrios itens que deseja comprar. 2. O Caixa registra o cdigo de cada item 3. Determina o preo do item e acrescenta a Se houve mais de um exemplar do mesmo item, o Caixa informao sobre o item transao corrente de tambm pode entrar a quantidade venda. 4. Ao trmino da entrada de itens, o Caixa indica ao POST 5. Calcula e apresenta o total da venda que a entrada de itens est completa 6. O Caixa informa ao Cliente o total da compra 7. O Cliente d um pagamento em dinheiro, possivelmente maior que o total da venda 8. O Caixa registra o montante de dinheiro recebido 9. Exibe o valor do troco a ser devolvido ao Cliente 10. O Caixa deposita o dinheiro recebido e retira o troco 11. Registra a venda completada 12. O Cliente sai com os itens comprados

Diagrama de Casos de Uso


Fornecem a viso externa do Sistema e suas interaes com o mundo exterior, representando um viso de alto nvel de funcionalidade intencional mediante o recebimento de um tipo de requisio de usurio, ou seja modela o comportamento geral do Sistema. O Sistema visto como uma caixa preta, onde nesse momento no importante compreender como o sistema implementa os casos de uso ou como ocorre o funcionamento interno. O propsito primrio dos casos de uso so : Descrever os requerimentos funcionais do sistema de maneira consensual entre usurios e desenvolvedores de sistemas; Fornecer uma descrio consistente e clara sobre as responsabilidades que devem ser implementadas pelo Sistema, alm de formar a base para a fase de desenho; Oferecer as possveis situaes do mundo real para o teste do Sistema. Os elementos bsicos de um caso de uso so: Ator : entidade externa ao sistema que, de alguma maneira, participa da histria do caso de uso; Caso de uso Interao : O ator comunica-se com o sistema atravs do envio e recebimento de mensagens, sendo que um caso de uso sempre iniciado a partir do momento que um ator envia sua mensagem (estmulo); Sistema : Domnio do problema modelado. Arquivo Rose CursoDeUML\DiagramaDeCasoDeUso\DiagramaDeCasoDeUso.mdl Elementos Bsicos
Interao

Ator

Ca s de Uso o

Caixa Eletrnico

Login

Cliente_

Consultar de Saldo

Solicitao de extrato

Saque

Venda

Com prar Itens

Caixa

Reembolsar itens comprados

Cliente

Log in

Iniciar
Gerente

Gerenciar Usurios

Diagrama de Classes
So os diagramas mais importantes na modelagem orientada a objetos e representam a essncia da UML. Um diagrama de classe mostra um conjunto de classes, interfaces, colaboraes e seus relacionamentos, fornecendo uma viso esttica do Sistema. Os diagramas de classes so importantes no s para visualizao, especificao e documentao de modelos estruturais, mas tambm para a construo de sistemas executveis por intermdio da engenharia de produo de software. Os elementos bsicos de um diagrama de classes so: Classes Interfaces Relacionamentos de associao, dependncia, generalizao/especializao e agregao (todo/parte) Arquivo Rose \CursoDeUML\ClientePedidoProduto\ClientePedidoProduto.mdl

Data

Cadastro Endereo Cliente Pedido total() 0..* 1


1..* cdigo nome novoPe dido() rua numero bairro complemento cep

PedidoProduto quantidade
0..*

PessoaFsica cpf

PessoaJurdica cgc

1 Produto
cdigo descrio preo

Classe - Tipo abstrato formado por atributos e mtodos. Pacote - estrutura organizacional que agrupa elementos do diagrama de classes com o objetivo de melhor organizlos Arquivo Rose \CursoDeUML\Classe\Classe.mdl

NomeDaClasse
atributo1 : String atributo2 : int = 0 $ atributoEsttico mtodo1(parmetro : String) : Date mtodoEsttico(param1 : Integer) mtodo3() : String

ClasseAbstrata

ClasseFinal

pacote

Interfaces - Tipos especial de classes possuindo apenas definies de mtodos e/ou constantes. Arquivo Rose \CursoDeUML\Interface\Interface.mdl

Interface
$ const1 : String = "Valor inicial" $ const2 : Date = "01/01/01" $ const3 : Byte = 0 mtodo1() mtodo2() mtodo3()

Implementa

ClasseA

Relacionamentos : Associao - um relacionamento estrutural, especificando que os objetos de uma classe esto conectados/vinculados a objetos de outra classe. Numa associao podem ser especificados os seguintes itens : um nome, o papel e multiplicidade em cada extremidade da associao, navegao e qualificao. Dependncia - indica a ocorrncia de um relacionamento semntico entre dois elementos do modelo, onde uma classe cliente dependente de servios de uma classe fornecedora, mas no existe uma dependncia estrutural interna com esse fornecedor. Indica que uma alterao na especificao de uma classe poder afetar outra classe que a utilize, mas no necessariamente o inverso. A forma mais comum de dependncia quando uma classe utilizar parmetros de uma outra classe em seus mtodos. Arquivo Rose \CursoDeUML\Associao\ Associao.mdl

ClasseA

+papelB

Associao

+papelA

ClasseB

ClasseX 1..5

Associao com Multiplicidade

ClasseY 0..*

Faz

-cliente

Cliente

Pedido 1 ClasseAlpha

Possui

PedidoItem 0.. * ClasseBeta

Dependncia

+setor 1 Setor

Tem

+funcionrios 0..* -chefe Funcionrio

Chefe

Possui

0.. * -funcionarios

10

Agregao - uma forma especial de associao utilizada para mostrar que um tipo de objeto composto, pelo menos em parte, de outro em uma relao todo/parte. Indicando que o objeto parte " um atributo" do objeto todo, onde o ciclo de vida do objeto parte limitado ao ciclo de vida do objeto todo. Arquivo Rose \CursoDeUML\Agregao\ Agregao.mdl

Pedido

-pedido 1

-pedidoItem 1..*

PedidoIt em
-pedidoItem

-prod uto

Produt o

11

Generalizao/Especializao - Representa o conceito de herana da orientao a objetos e indica que uma classe estende outra. Arquivo Rose \CursoDeUML\Generalizao\ Generalizao.mdl

ClasseRaiz

SubClasseA

SubClasseB

SubClasseC

SubClasseD

SubClasseE

SubClasseF

pacote

Veculo
chassi : String placa : String modelo : String cor : String

Marc a #marc a
(f rom pacote)

descrio logotipo

VeculoDeCarga cargaMxima

VeculoDePasseio
quantidadeDePassageiros

12

Classe de Associao - elemento da modelagem que tem associao e propriedades de classe, podendo ser vista tanto como uma associao que tem propriedades de classe, como uma classe que tem propriedades de associao. Apesar de ser desenhada como uma associao e uma classe, apenas um nico elemento do modelo e tem apenas um nome. Arquivo Rose \CursoDeUML\ClasseAssociao\\ClasseAssociao.mdl

Empresa 0..* 1..*

Pessoa

Servio
descrio : String dataDeAdmisso : Date salrio : Currency incluir(e : Empresa, p : Pessoa) : void

13

Diagrama de Sequncia Diagrama de Colaborao


Arquivo Rose \CursoDeUML\DiagramaDeInterao\ DiagramaDeInterao.mdl

Clientes
adicionar(cliente : Cliente) : void remover(cpf : CPF) : void toString() : String

-cliente

0..*

Cliente
nome : String Cliente() toString()

Endereo -endereo
(from util)

Endereo() toString()

-dataNascimento -cpf

CPF
(from util)

Data
(from util)

CPF(cpf : String ) toStri ng() : String

Date(data : String) toString() : String

: Clientes

: Cliente

: CPF

: Data

: Endereo

Cliente(CPF, String, Endere o, Data)

CPF(St ring) Date(String) Endereo(String, int, String)

14

: CPF

2: CPF(String)

1: Cliente(CPF, String, Endereo, Data)

4: Endereo(String, int, String)

: Cliente

: Clientes

: Endereo

3: Date(String)

: Data

: Clientes toString( )

: Cliente

: CPF

: Data

: Endereo

toS tring( )

toString( ) toString( )

15

: Clientes

1: toString( ) 2: toString( )

: Cliente

: CPF

4: toString( )

3: toString( )

: Endereo

: Data

16

Diagrama de Estados
Um diagrama de grfico de estados mostra uma mquina de estados, dando nfase ao fluxo de controle de um estado para outro. Uma mquina de estados um comportamento que especifica as sequncias de estados pelos quais um objeto passa durante seu tempo de vida em resposta a eventos, juntamente com suas respostas a esses eventos. Um estado uma condio ou situao na vida de um objeto durante a qual ele satisfaz a alguma condio, realiza alguma atividade ou aguarda algum evento. Um evento uma especificao de uma ocorrncia significativa para o objeto. No contexto de uma mquina de estados, um evento uma ocorrncia de um estmulo capaz de ativar uma transio de estado de um objeto. Uma transio de estado um relacionamento entre dois estados, indicando que um objeto no primeiro estado realizar certas aes e entrar no segundo estado quando um evento especfico ocorrer e as condies especificadas estiverem satisfeitas. Tem como objetivo principal prover uma definio formal explcita de comportamento, permitindo uma verificao dos eventos e transies de estados aos quais um Sistema est sujeito. A existncia de estados em um objeto implica que a ordem na qual as operaes so executadas importante, o que leva idia de objetos como mquinas independentes. Assim, para cada objeto, a ordem das operaes no tempo to importante que pode-se formalizar a caracterizao do comportamento de um objeto em termos de uma mquina de estado finita equivalente. Uma desvantagem do diagrama de estado ter de definir todos os possveis estados de um Sistema, impossibilitando o seu para todo o Sistema, dessa forma, o Diagrama de Estados utilizado para modelar apenas algumas situaes. Arquivo Rose \CursoDeUML\DiagramaDeEstados\ DiagramaDeEstados.mdl
Carga de um Processo

Novo Processo

Morto

Finalizando um Processo

Novo

Pronto

escalonado

Executand o

SolicitaoI / O

Esperando

fatia de tempo es gotada

I/O atendido

17

Diagrama de Atividade
Um Diagrama de Atividade essencialmente um grfico, mostrando o fluxo de controle de atividades (semelhante a um Fluxograma). Enquanto o Diagrama de Interao possui foco no relacionamento (troca de mensagens) entre objetos, o Diagrama de Atividade possui o foco nas Atividades. Uma atividade uma execuo no atmica em andamento em uma mquina de estado. As atividades ainda podem ser agrupadas em "Swimlanes" (Raias de natao) com o objetivo de mostrar em qual parte da organizao um trabalho executado ou mostrar explicitamente onde so encontradas aes (em qual objeto) Arquivo Rose \CursoDeUML\DiagramaDeAtividades\ DiagramaDeAtividades.mdl

In ici o Pedido

Registrar Pedido

[ negado ]

[ para cada item ]

Cancelar Pedido

Autorizar forma de pagamento [ ok ]

Avaliar item em estoque


[ em estoque ]

[ Pagamento ok e Estoque ok ]

fim

Aceitar Pedido

18

Cli ente

Vendas

Estoque

In ici o

Solicitar Produto

Processar Pedido Separar Materiais Enviar Pedido

Receber Pedido

Cobrar Client e

Pagar Cobrana
pago

[ no pago ]

Cancelar Pedido

Fechar Pedido

fim

19

Diagrama de Componentes
Arquivo Rose \CursoDeUML\DiagramaDeComponentes\ DiagramaDeComponentes.mdl

Servlet .java

servlet . jar

Servlet .class

BancoDa dos.class

BancoDa dos.GDB BancoDa dos.java

interba se.jar

20

Diagrama de Implantao
Arquivo Rose \CursoDeUML\DiagramaDeImplantao\ DiagramaDeImplantao.mdl

Servidor WEB

Servidor de Aplicao

Cliente

Servidor de Banco de Dados

21

Outros Tpicos
Esteretipo

Mecanismo para estender o vocabulrio da UML, que permite a criao de novos tipos de blocos de construo derivados dos j existentes, mas que so especficos a determinado ambiente.
Nota e Ligao de Nota

Comentrio colocado em componente grfico para descrever elementos da UML


Arquivo Rose \CursoDeUML\Esteretipo_e_Nota\ Esteretipo_e_Nota.mdl

<<Tabela>> Cliente cpf nome endere o

Classe Cliente com Esteretio de Tabela de Banco de Dados

22

Contratos

Documento que descreve o que uma operao se compromete a fazer. Usualmente, ele segue um estilo declarativo, enfatizando o que acontecer, em vez de como ser conseguido. comum os contratos serem expressos em termos de mudanas de estado definidas por pr-condies e ps-condies. Um contrato pode ser escrito para um mtodo individual de uma classe ou para uma operao mais abrangente do Sistema. Nome Responsabilidade Notas Excees Sada Pr-Condies Ps-Condies Contrato entrarItem(cdigo: String, quantidade : int) Entrar (registrar) a venda de um item e acrescent-lo venda. Exibir a descrio e o preo do item Use acesso rpido ao Banco de Dados Se o cdigo no for vlido, indique erro O cdigo dever ser vlido Se for uma nova Venda, uma Venda foi criada (criao de instncia) Se for uma nova Venda, a nova Venda foi associada ao Post (Formada uma associao) Uma LinhaDeItemDeVenda foi criada (criao de instncia) A LinhaDeItemDeVenda foi Associada Venda (Formada uma associao) LinhaDeItemDeVenda.quantidade recebeu o valor quantidade (Modificao de atributo) A LinhaDeItemDeVenda foi associada a uma EspecificaoDeProduto, baseada numa correspondncia com o cdigo (Formada Associao)

23

RationalRose 2000
Tools/Options Editando Use Case View Logical View Component View Deployment View Tools/Java/Project Specification Tools/Java/Generate Java Tools/Java/Reverse Engineer Java Tools/Web Publisher

24

Estudo de Caso - Supermercado


Arquivo Rose Fontes Java \CursoDeUML\EstudoDeCaso\Supermercado\Supermercado.mdl \CursoDeUML\EstudoDeCaso\Supermercado\Supermercado.jpr

TabelaRelacional

Caixas

Vendas

Registradoras

Produtos

-caixas 0..*
<<TabelaRelacion al>>

-vendas 0..*

-registradoras 0..* -produtos 0..*

Caixa
co digo : i nt nome : St ring ve ndas()

Registradora -vendas 0..*


codigo : int vendas() login() logout()

-vendas 0..*

Venda
troco()

Produto
codigo : int

-produto -tipoPagamento

TipoDePagamento
codigo : int descricao : String toString()

-produto 0..*

VendaProduto
codigo : int quantidade : int preco : float

0..*
-tiposPagamento

TiposDePagamento

25

Você também pode gostar