Sei sulla pagina 1di 63

Engenharia de Software

Introduo UML

Joo Rocha joao@uefs.br http://geocities.yahoo.com.br/joao_batista_jr

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

Joo Rocha Departamento de Exatas (UEFS)

Modelagem na Eng. Software


Um modelo uma simplificao da realidade Quatro Objetivos da modelagem:
(1) Visualizar o sistema (2) Especificar a estrutura ou o comportamento (3) Guiar para a construo do sistema (4) Documentar as decises tomadas

Joo Rocha Departamento de Exatas (UEFS)

Princpios bsicos da modelagem


A escolha dos modelos implica na maneira como o problema atacado Cada modelo pode ser expresso em diferentes nveis de preciso Os melhores modelos esto relacionados com a realidade
A simplificao no deve ocultar detalhes importantes

Nenhum modelo nico suficiente. necessrio utilizar um conjunto de modelos


Joo Rocha Departamento de Exatas (UEFS) 4

Modelagem orientada a objetos


Um objeto algo estruturado a partir do vocabulrio do problema Todos os objetos possuem
Uma identidade
nome ou modo de diferenci lo -

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

Joo Rocha Departamento de Exatas (UEFS)

Mecanismos bsicos da UML


Especificaes
Fornece um repertrio semntico, contendo todas as partes de todos os modelos de determinado sistema

Adornos Divises comuns Mecanismos de extenso

Joo Rocha Departamento de Exatas (UEFS)

Adornos
Variedade de alteraes (enfeites) que podem ser adicionados aos elementos bsicos Ex:
Transaction + execute() + rollback() # priority() - timestamp()

Joo Rocha Departamento de Exatas (UEFS)

Divises comuns
Mecanismos utilizados para diferenciar blocos de construes comuns
Cliente nome endereco telefone : Cliente Joao : Cliente

Joo Rocha Departamento de Exatas (UEFS)

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

Trs elementos principais de UML


Blocos de construo bsicos
Itens: abstraes identificadas Relacionamentos: permite reunir os itens Diagramas: agrupam colees de itens

Regras que determinam como os blocos podero ser combinados


Regras semnticas para nomes, escopo, visibilidade, integridade e execuo

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

Joo Rocha Departamento de Exatas (UEFS)

13

Itens Estruturais
So os substantivos utilizados em modelos da UML
Classes Interfaces Colaboraes Casos de Uso Classes Ativas Componentes Ns

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

15

Interfaces
Coleo de operaes que especificam servios de uma classe ou componente Descreve o comportamento externamente visvel desse elemento Graficamente:

IItem

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

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()

Joo Rocha Departamento de Exatas (UEFS)

19

Componentes
So partes fsicas e substituveis de um sistema Proporcionam a realizao de um conjunto de interfaces Graficamente:

Animator.exe

Animator.exe

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

23

Mquina de estado (comportamental)


Especifica as seqncias de estados pelas quais objetos ou interaes passam durante sua existncia. Graficamente:

Executando

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

26

Relacionamentos
Existem quatro tipos de relacionamentos na UML
Dependncia Associao Generalizao Realizao

Voc utilizar esses relacionamentos para escrever modelos bem formados


Joo Rocha Departamento de Exatas (UEFS) 27

Dependncia
Relacionamento semntico entre dois itens, nos quais a alterao de um pode afetar a semntica do outro Pode ter um texto explicativo Graficamente:

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

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:

Joo Rocha Departamento de Exatas (UEFS)

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:

Joo Rocha Departamento de Exatas (UEFS)

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

Classes Objetos Estados Atividades Componentes Implantao


Joo Rocha Departamento de Exatas (UEFS) 33

Diagrama de Caso de Uso


Objetivo principal identificar um cenrio evidnciando os atores e aes (caso de uso) Um Ator algum ou alguma coisa que interage com o sistema a ser desenvolvido
Exemplos
Professor Estudante Sistema de pagamento

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

Fazer Conferncia Receber Ligao adicional

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

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

37

Diagrama de seqncia
Exibe a interao entre os objetos organizados numa seqncia cronolgica

Joo Rocha Departamento de Exatas (UEFS)

38

Outro exemplo...
:Thread :Toolkit :ComponentPeer :HelloWorld

run

callbackLoop

handleExpose

paint

Joo Rocha Departamento de Exatas (UEFS)

39

Diagrama de colaborao
D nfase aos relacionamentos estruturais

1: <<create>> 2: setActions(a, b, c) 3: <<destroy>>

2.1: setValues(d, 3.4) 2.2: setValues(a, CO)

Joo Rocha Departamento de Exatas (UEFS)

40

Diagrama de seqncia X colaborao


Diagrama de sequncia
Existe uma linha de vida do objeto Foco no controle. possvel visuzalir o o perodo durante o qual um objeto est desempenhando uma ao.

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

composto por classes e relacionamentos Pode ter vrias vises


Re gistro 1 Captura 1 Ve nda -data: long -foiFechada: Boolean Viso conceitual

Re giste r +endSale() +addItem() +makePayment()

-currentSale 1

Sale -data: long -foiFechada: Boolean

Viso software

Joo Rocha Departamento de Exatas (UEFS)

42

Atributos versus Associao


A estrutura (estado) da classe representada pelos seus atributos Use atributos para para representar dados Use associao para representar navegao
Sale -currentSale Register -id: int +endSale() +addItem() +makePayment() -location 1 Store -address: Address -phone: PhoneNumber 1 -data: long -foiFechada: Boolean -items 1..* Item

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

44

Realizao (interfaces)
<<interface>> Timer +getTime()
Clock2 +getTime() Timer

Window1 Timer

Clock2 +getTime()

Clock3 +getTime() Timer

Window2

Joo Rocha Departamento de Exatas (UEFS)

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) -

Quando usar dependncia?


Mtodos estticos, mtodos, variveis locais e globais
Joo Rocha Departamento de Exatas (UEFS) 46

Exemplo

Sale -currentSale Register -id: int +endSale() +addItem() +makePayment() 1 -data: long -foiFechada: Boolean

-items 1..*

Item

ProductDescription -location 1 Store -address: Address -phone: PhoneNumber


Joo Rocha Departamento de Exatas (UEFS) 47

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

Joo Rocha Departamento de Exatas (UEFS)

48

Classe Associativa
Permite tratar uma associao como se fosse uma classe
Empresa * Emprego -salario -dataInicio * Funcionrio

Joo Rocha Departamento de Exatas (UEFS)

49

Diagrama de Objetos
Objetivo
Descrever um exato momento de um sistema
r : Register

s : Sale

bola : Item

panetone : Item

carro : Item

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

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

charging prioritySales CreditCard normalSale

MoneySales

TicketSales
Joo Rocha Departamento de Exatas (UEFS) MoneySales 54 TicketSales

Exemplo

Joo Rocha Departamento de Exatas (UEFS)

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

New s Mana ger

Ma il Cale nda r Quotation Messaging

<<bean>> Calenda rEJB <<bean>> Quota tionEJB <<bean>> MessagingEJB

Joo Rocha Departamento de Exatas (UEFS)

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

Joo Rocha Departamento de Exatas (UEFS)

58

Exemplo: MuSE

Joo Rocha Departamento de Exatas (UEFS)

59

Exemplo: Stella

Joo Rocha Departamento de Exatas (UEFS)

60

Diagrama de implantao
Mostra a configurao dos processos em tempo de execuo Permite visualizar a distribuio dos componentes

Joo Rocha Departamento de Exatas (UEFS)

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.

Joo Rocha Departamento de Exatas (UEFS)

62

Engenharia de Software
Introduo UML

Joo Rocha joao@uefs.br http://geocities.yahoo.com.br/joao_batista_jr

Potrebbero piacerti anche