Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduo UML
Importncia da Modelagem
Comunicar a estrutura e o comportamento desejado Visualizar e controlar a arquitetura do sistema Compreender melhor o sistema que estamos elaborando Gerenciar os riscos
Um estado
dados associados
Um comportamento
tarefas que podem executar
Joo Rocha Departamento de Exatas (UEFS) 5
UML
A UML uma linguagem para a elaborao da estrutura de projetos de software Visualizao
Semntica bem definida
Especificao
Permite construir modelos sem ambigidades
Construo
possvel gerar cdigo a partir dos modelos
Documentao
Arquitetura e todos os seus detalhes
Joo Rocha Departamento de Exatas (UEFS) 6
Regras da UML
Os blocos de construo no podem ser combinados aleatoriamente Dispe de regras para
Nomes Escopo Visibilidade Integridade Execuo
Adornos
Variedade de alteraes (enfeites) que podem ser adicionados aos elementos bsicos Ex:
Transaction + execute() + rollback() # priority() - timestamp()
Divises comuns
Mecanismos utilizados para diferenciar blocos de construes comuns
Cliente nome endereco telefone : Cliente Joao : Cliente
10
Mecanismos de Extenso
Esteretipos
Ampliao do vocabulrio (ex: novos blocos)
Valores atribudos
Estender as propriedades dos blocos (ex: verso)
Restries
Estende a semntica (ex: criar novas regras)
Ex:
<<exception>> Overflow
EventQueue
{version 1.0}
add() remove()
Joo Rocha Departamento de Exatas (UEFS)
{ordered}
11
Mecanismos comuns
Especificaes, adornos, divises e extenso
Joo Rocha Departamento de Exatas (UEFS) 12
Itens
Estruturais
So as partes estticas do modelo
Comportamentais
So as partes dinmicas
Agrupamentos
So as partes organizacionais
Anotacionais
So as partes explicativas
13
Itens Estruturais
So os substantivos utilizados em modelos da UML
Classes Interfaces Colaboraes Casos de Uso Classes Ativas Componentes Ns
14
Classes
Conjuntos de objetos que compartilham os mesmos atributos, operaes, relacionamentos e semntica Implementam uma ou mais interfaces Graficamente:
Conta saldo:double Nmero:String debitar(valor:double):void creditar(valor:double):void
15
Interfaces
Coleo de operaes que especificam servios de uma classe ou componente Descreve o comportamento externamente visvel desse elemento Graficamente:
IItem
16
Colaboraes
Interaes e sociedades de papis que funcionam em conjunto para proporcionar um comportamento cooperativo Representam a implementao de padres que formam um sistema Graficamente:
Cadeia de responsabilidades
17
Caso de uso
Aes realizadas pelo sistema que proporcionam resultados visveis para um ator utilizado para estruturar o comportamento de itens em um modelo Graficamente:
Colocar Pedido
18
Classes Ativas
So classes cujos objetos tm um ou mais processos ou threads Os objetos dessa classe representam elementos cujo comportamento concorrente com o de outros elementos Graficamente:
Timer getTime()
19
Componentes
So partes fsicas e substituveis de um sistema Proporcionam a realizao de um conjunto de interfaces Graficamente:
Animator.exe
Animator.exe
20
Ns
Elemento fsico existente em tempo de execuo que representa um recurso computacional Um conjunto de componentes poder estar contido em um n Graficamente:
Servidor
21
Outros Itens
Comportamentais
So as partes dinmicas dos modelos UML
Interao Mquina de estado
Agrupamento
So as partes organizacionais
Pacotes
Anotacionais
So as partes explicativas dos modelos
Notas
Joo Rocha Departamento de Exatas (UEFS) 22
Interao (Comportamental)
Mensagens trocadas entre um conjunto de objetos para realizao de propsitos especficos Representada como uma linha cheia com seta, quase sempre incluindo o nome de suas operaes Graficamente:
exibir
23
Executando
24
Pacote (Agrupamento)
Organizao de elementos em grupos. Itens estruturais e comportamentais podem ser colocados em pacotes Um pacote puramente conceitual.
Componentes no podem ser colocados em pacotes
Graficamente:
Comunicao
Joo Rocha Departamento de Exatas (UEFS) 25
Notas (Anotacionais)
Smbolo para representar restries e comentrios anexados a um elemento ou a uma coleo de elementos Graficamente:
Representa as contas
26
Relacionamentos
Existem quatro tipos de relacionamentos na UML
Dependncia Associao Generalizao Realizao
Dependncia
Relacionamento semntico entre dois itens, nos quais a alterao de um pode afetar a semntica do outro Pode ter um texto explicativo Graficamente:
28
Associao
Relacionamento estrutural que descreve um conjunto de ligaes entre objetos Agregao
Partes e todo
Composio
Partes e todo, onde cada parte s pertence a um todo e sua existncia est condicionada ao dono
Graficamente:
1 empregador * funcionrio
29
Generalizao
Relacionamento no qual os objetos dos elementos especializados (os filhos) so substituveis por objetos do elemento generalizado (os pais) Os filhos compartilham a estrutura e o comportamento dos pais Graficamente:
30
Realizao
Relacionamento semntico entre elementos, em que um elemento especifica um contrato que outro elemento garante executar A realizao encontrada entre as interfaces e as classe e componentes que as realizam Graficamente:
31
Diagramas na UML
Representao grfica de um conjunto de elementos, geralmente representados como grficos de vrtices (itens) e arcos (relacionamentos) Permitem a visualizao de um sistema sob diferentes perspectivas Pode conter qualquer combinao de itens e de relacionamentos A UML inclui nove diagramas
Joo Rocha Departamento de Exatas (UEFS) 32
Diagramas UML
Casos de uso Interao
Seqncia Colaborao
Cada caso de uso representa uma ao que pode ser realizada por um ator
Cadastrar currculo Rocha Departamento de Exatas (UEFS) agenda Manter Joo Aplicar nota
34
Exemplo
Fazer ligao
Rede Celular
Receber ligao
Uso programado
Telefone Celular Usurio
Joo Rocha Departamento de Exatas (UEFS) 35
Ouras relaes
A medida que os casos de uso so construdos, outras relaes podem ser exploradas
Comprar produto
Validar senha
Cadastrar prato
36
Diagramas de interao
Diagramas de interao descrevem como os casos de uso so realizados e a interao entre os objetos So importantes somente para a modelagem de aspectos dinmicos do sistema
Construir roteiros de cenrios Verificar a interao entre certos objetos
37
Diagrama de seqncia
Exibe a interao entre os objetos organizados numa seqncia cronolgica
38
Outro exemplo...
:Thread :Toolkit :ComponentPeer :HelloWorld
run
callbackLoop
handleExpose
paint
39
Diagrama de colaborao
D nfase aos relacionamentos estruturais
40
Diagrama de colaborao
Existe um caminho entre objetos que se relacionam Existe um nmero de sequencia para indicar a ordem temporal de uma mensagem.
Joo Rocha Departamento de Exatas (UEFS) 41
Diagramas de classe
Exibe as classes e suas relaes
Devem ser nomeadas utilizando vocabulrio do domnio da aplicao
-currentSale 1
Viso software
42
43
Herana
Herana uma relao entre a superclasse e suas subclasses Existem duas formas de visualizar a herana:
Como generalizao Como especializao
Pessoa
Professor
Aluno
44
Realizao (interfaces)
<<interface>> Timer +getTime()
Clock2 +getTime() Timer
Window1 Timer
Clock2 +getTime()
Window2
45
Associaao X dependncia
Dependncia
Um elemento (cliente) tem conhecimento de outro (fornecedor) e uma mudana no fornecedor pode alterar o cliente! Existem diversos tipos de dependncia
Ter um atributo do fornecedor (associao) Enviar mensagem ou utilizar um mtodo do fornecedor Receber um parmetro do fornecedor (realizao) O fornecedor pode ser uma super classe (herana) -
Exemplo
Sale -currentSale Register -id: int +endSale() +addItem() +makePayment() 1 -data: long -foiFechada: Boolean
-items 1..*
Item
Composio e Agregao
Agregao
Tipo de associao vago que indica parte e todo Existe em UML apenas para referenciar Rumbaugh
Composio
Tipo de associao forte e til para alguns modelos Uma instncia de uma parte pertence somente a um todo, que responsvel por cri-la e delet-la
Mao 1 0..5 Dedo
48
Classe Associativa
Permite tratar uma associao como se fosse uma classe
Empresa * Emprego -salario -dataInicio * Funcionrio
49
Diagrama de Objetos
Objetivo
Descrever um exato momento de um sistema
r : Register
s : Sale
bola : Item
panetone : Item
carro : Item
50
Diagrama de Estado
Exibe
As transaes de estado de um objeto A histria de uma classe Os eventos que causam a transio de um estado para outro As aes que resultam da troca de estado
Devem ser construdos para objetos que possuem um comportamento dinmico significativo Muito bom para descrever navegabilidade dentro de um site
Joo Rocha Departamento de Exatas (UEFS) 51
Exemplo
52
Diagrama de Atividades
Apresenta uma sequencia de aes, onde algumas podem ser executadas em paralelo Muito bom para descrever processos, exibe:
Aes Objetos produzidos por uma ao Diferentes partes que compem o processo
53
Diagrama de Componentes
Um componente uma parte subistituvel que atende e prover um conjunto de interfaces Uma interface um conjunto de operaes que especificam um servio Uma porta uma janela dentro do componente permitindo definir que itens sero acessados
<<component>> Ticket Seller
<<component>> Ticket Seller CreditCard
MoneySales
TicketSales
Joo Rocha Departamento de Exatas (UEFS) MoneySales 54 TicketSales
Exemplo
55
Exemplo
<<tier>> W eb <<Servlet>> SrvSe arch <<Servlet>> SrvShopping <<tier>> Cliente <<component>> W eb Brow se r http <<Servlet>> SrvNew s <<Servlet>> SrvLogin <<Servlet>> SrvCa lendar <<Servlet>> SrvQuota tion xm l (Ajax) http <<Servlet>> SrvMessaging <<JSP>> Aga vacea http Se arch Shopping <<tier>> EJB <<bean>> SearchEJB <<bean>> ShoppgingEJB <<bean>> New sEJB <<bean>> Mana gerEJB <<bean>> MailEJB JDBC <<tier>> Backend <<database>> Se archDB <<database>> ShoppgingDB <<database>> New sDB <<database>> Use rDB <<database>> Calenda rDB
56
Diagrama de Pacotes
A relao de dependncia utilizada para descrever arquitetura em camadas Os pacotes representam as camadas
<<camada>> A
<<camada>> B
Joo Rocha Departamento de Exatas (UEFS) 57
Exemplo: Agavacea
58
Exemplo: MuSE
59
Exemplo: Stella
60
Diagrama de implantao
Mostra a configurao dos processos em tempo de execuo Permite visualizar a distribuio dos componentes
61
Referncias
Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling Language User Guide, 2005. Martin Fowler. UML Distilled. 3a. Ed, 2004 Graig Larman.Applying UML and Patterns ,3a. Ed, 2005. Dan Pilone, Neil Pitman. UML 2.0 in a Nutshel, 2005.
62
Engenharia de Software
Introduo UML