Académique Documents
Professionnel Documents
Culture Documents
Ricardo Terra
O que UML?
UML (Unified Modeling Language) uma famlia de notaes grficas, apoiada por um metamodelo nico, que ajuda na descrio e no projeto de sistemas de software, particularmente daqueles construdos utilizando o estilo orientado a objetos (OO) Esta definio um tanto simplificada. Na verdade, para diferentes pessoas a UML tem significados diferentes As linguagens grficas de modelagem existem h muito tempo na indstria do software. O propulsor fundamental por trs de todas elas o fato das linguagens de programao no estarem em um nvel de abstrao suficiente alto para facilitar discusses sobre projeto
O que UML?
A UML um padro relativamente aberto, controlado pelo OMG (Object Management Group), um consrcio aberto de empresas. O OMG foi formado para estabelecer padres que suportassem interoperabilidade, especificamente de sistemas orientados a objetos. Talvez, o OMG seja mais conhecido pelo padres CORBA (Commom Object Request Broker Architecture) A UML nasceu da unificao das muitas linguagens grficas de modelagem orientadas a objetos
Diagramas UML
A UML 2.0 descreve 13 (treze) tipos de diagramas oficiais, indicando que 3 novos diagramas foram inseridos desde sua ltima verso Nosso foco na disciplina no exatamente ver todos, mas sim, aqueles mais comuns, so os diagramas mais utilizados: Atividades Classes Interao
Sequncia Colaborao
Diagramas UML
Significado da UML
Um dos problemas difceis da UML que, embora a especificao descreva com bastante detalhe o que UML bemformada, ela no tem muito a dizer a respeito do que significa UML fora do mundo refinado dos metamodelos UML No existe nenhuma definio formal sobre como a UML mapeada para qualquer linguagem de programao especfica, isto , voc no v um diagrama UML e dizer exatamente qual seria o cdigo equivalente Na prtica, isto suficiente para ser til
Referncia Bibliogrfica
FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005. PENDER, Tom. UML, a bblia. 2 reimp. Rio de Janeiro: Campus, 2004.
Diagrama de Atividades
Os diagramas de atividades so uma tcnica para descrever lgica de procedimento, processo de negcio e fluxo de trabalho Se assemelha aos fluxogramas, mas a principal diferena o fato dos diagramas de atividades suportarem comportamento paralelo
Diagrama de Atividades
Um diagrama de atividades normalmente composto pelos seguintes elementos:
Atividade Transio Condio de guarda Deciso Ponto de merge Ponto de Incio Ponto de Fim Concorrncia
Bifurcao Sincronizao
Atividades e transies
Uma atividade uma etapa em um processo, onde algum trabalho est sendo realizado A atividade representada por um retngulo arredondado, contendo texto em forma livre
Um diagrama de atividades uma srie de atividades ligadas por transies, que so setas conectando cada atividade Normalmente uma transio ocorre quando uma atividade concluda
Atividades e transies
Condio de Guarda
Em algumas situaes, a transio s deve ocorrer se determinada condio ocorra Uma condio de guarda pode ser atribuda com a inteno de restringir o uso daquela transio A condio de guarda uma condio dentro de conchetes em proximidade a seta de transio
Decises
Assim como no fluxograma, o losango do diagrama de atividades tambm representa um cone de deciso. Uma seta sai do losango para cada valor possvel da condio testada A condio pode ser simples (como um booleano) ou mais abrangente Cada opo identificada por meio de uma condio de guarda. Cada condio de guarda precisa ser mutuamente exclusiva, de modo que somente uma opo possa ser selecionada a partir da deciso
Decises
Ponto de merge
O cone de losando tambm usado para modelar um ponto de merge O ponto de merge um local onde dois caminhos alternativos se juntam e continuam como apenas 1 caminho
Somente deve existir um ponto de incio por diagrama de atividade Podem existir vrios pontos de fim. Se quiser pode apontar todas suas transies apontando para o mesmo ponto de fim, mas todos estes pontos de fim significam a mesma coisa: Parar todas as atividades do diagrama
10
11
Concorrncia
A notao admite concorrncia, que permite modelar os recursos das linguagens que foram criados aps a inveno do fluxograma. Estes recursos so conhecidos como threads ou processos concorrentes Para demostrar que um processo simples inicia vrios outros processos concorrentemente, o diagrama de atividades utiliza uma barra simples, chamada bifurcao
Cada transio de sada desta bifurcao uma nova thread
12
Concorrncia
Para a sincronizao de diversos processos paralelos utilizada a mesma barra, todavia agora conhecida como barra de sincronizao Nesta barra de sincronizao, chega diversos processos e sa apenas uma transio, que indica que o processamento concorrente acabou e o diagrama de atividades continua como uma nica thread ou processo
13
Concorrncia
14
Exemplo Completo
Ver pgina 119 do livro UML Essencial - 3 edio.
15
16
Referncia Bibliogrfica
FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005. PENDER, Tom. UML, a bblia. 2 reimp. Rio de Janeiro: Campus, 2004.
17
Casos de Uso
Os casos de uso so uma tcnica para captar os requisitos funcionais de um sistema. Eles servem para descrever as interaes tpicas entre os usurios de um sistema e o prprio sistema, fornecendo uma narrativa de como o sistema utilizado
Abordagem
Nossa abordagem neste estudo ser: Diagramas de casos de uso Narrativas de caso de uso
Ver figura 12.12 e 12.13 das pginas 320-321 do livro UML, a Bblia.
10
11
12
13
A UML inclui outros relacionamentos entre os casos de uso, alm da incluso e da extenso, mas no necessrio nos aprofundarmos a este ponto.
15
Referncia Bibliogrfica
FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005. PENDER, Tom. UML, a Bblia. 2 reimp. Rio de Janeiro: Campus, 2004.
16
Diagrama de Classes
Se algum chegar perto de voc em um beco escuro e disser: Psiu, quer ver um diagrama UML:, esse provavelmente seria um diagrama de classes. A maioria dos diagramas UML que vejo composta por diagrama de classes. (FOWLER, 2005) O diagrama de classes provavelmente o diagrama mais utilizado da UML. Na verdade, o diagrama de classes a ferramenta de modelagem principal para descrever a prpria UML. (PENDER, 2004)
Diagrama de Classes
Um diagrama de classes descreve os tipos de objetos presentes no sistema e os vrios tipos de relacionamento estticos existentes entre eles. Os diagramas de classe tambm mostram as propriedades e operaes de uma classe e as restries que se aplicam maneira como os objetos esto conectados.
Classe
Uma classe uma descrio de um conjunto de objetos que partilham os mesmos atributos, operaes, relaes e semntica. Por exemplo, na classe Cliente, "Joo da Silva" pode ser considerado um dos objetos num sistema que pretende manipular informao referente aos clientes de uma empresa.
Classe
Uma classe descrita por seus aspectos estruturais atravs de seus atributos e atravs de seus aspectos comportamentais atravs de suas operaes. Uma classe (seus atributos e operaes) pode ser detalhada atravs de sua visibilidade e sua multiplicidade. Uma classe representada como mostrado no desenho abaixo:
Exemplos:
+ nome : String
- salario : double = 1000.00 # nota : int
10
Exemplos:
- mostrar() : void
+ calcularTaxa( valorDolar : double ) : double # somar (a : int , b: int) : int
11
12
Visibilidade
Os atributos e operaes de uma classe podem ser especificados para mostrar como a mesma pode ser vista e utilizada pelos outros elementos do sistema. Os nveis de visibilidade para o atributo ou a operao: (+) PBLICO:
Todas as classes visualizam.
(-) PRIVADO:
Somente a prpria classe visualiza.
(#) PROTEGIDO:
Todas as classes do mesmo pacote e sub-classes visualizam.
(~) PACOTE:
Todas as classes do mesmo pacote visualizam.
13
Visibilidade
Exemplo:
Somente a prpria classe tem acesso direto aos atributos do veculo. Qualquer classe pode ligar ou desligar o veculo. Somente classes do mesmo pacote ou sub-classes podem acelerar ou frear o veculo. Somente a prpria classe pode ativar o ABS. Somente classes do mesmo pacote podem ver o consumo do veculo.
Tpicos Especiais em Informtica II - Prof. R. Terra 14
Associao
Outra maneira de se criar um atributo atravs de uma associao. Associao uma linha cheia entre duas classes, direcionadas da classe de origem para a classe de destino. A direo pode ser nos dois sentidos, o que gera uma Associao Bidirecional.
Exemplo:
Este exemplo indica que um objeto NotaFiscal possui pelo menos um objeto ItemNotaFiscal.
Tpicos Especiais em Informtica II - Prof. R. Terra 15
Associao
Ainda no exemplo:
Como pode ser visto no deve-se colocar uma associao como atributo, pois a prpria associao j nos diz isto. O cdigo Java ficaria assim: public class NotaFiscal { private List listaItemNotaFiscal; ... } public class ItemNotaFiscal { private NotaFiscal notaFiscal; ... }
16
Classes Associativas
Algumas associaes de muitos para muitos exige a necessidade da criao de uma classe associativa entre as duas classes associadas. No exemplo abaixo existe a classe Paciente com seus atributos e a classe Exame com seus atributos. Do relacionamento entre Paciente e Exame tm-se a data da realizao e o diagnstico. Observe:
17
Multiplicidade
A multiplicidade de uma classe o nmero de instncias possveis que uma classe pode ter considerando uma nica instncia da outra classe a qual ela associada. Ou seja, o nmero de objetos de uma classe que pode relacionar com um nico objeto de uma outra classe. Multiplicidades so nmeros simples ou intervalos de nmeros. A tabela abaixo exemplifica os tipos comuns de multiplicidades.
0..1 1 0..* 1..* Uma instncia opcional. Exatamente uma instncia. Zero ou mais instncias. Pelo menos uma instncia.
18
Multiplicidade
No exemplo abaixo, um pedido pode estar vinculado a um nico cliente, porm um cliente poder possuir qualquer quantidade de pedidos.
E estes?
19
Dependncia
Uma dependncia entre dois elementos existe se mudanas na definio de um elemento podem causar mudanas ao outro. A simbologia adotada uma linha tracejada ligando um elemento ao outro elemento o qual ele depende.
22
23
24
importante observar que os itens existem apenas enquanto existir a fatura da qual fazem parte. Dito de outra forma, uma fatura uma composio de itens. Se removermos uma fatura, os itens dessa fatura tambm sero removidos. Neste caso temos um tipo de agregao conhecido como Composio.
Uma composio representa uma relao mais forte entre o objeto agregador e os objetos componentes.
Tpicos Especiais em Informtica II - Prof. R. Terra 25
Generalizao
Trata-se da ao de uma classe herdar toda a estrutura de uma outra classe.
Uma sub-classe sempre herda de sua super-classe:
Atributos Operaes Relacionamentos
Uma sub-classe sempre herda tudo de sua super-classe, isto , no tem como herdar somente alguns atributos ou operaes.
Tpicos Especiais em Informtica II - Prof. R. Terra 26
Generalizao
Exemplo:
27
Interfaces
Uma interface uma coleo de operaes que so usadas para especificar um servio de uma classe. Graficamente, uma interface representada como um crculo (forma icnica). Toda interface deve ter um nome que a distingue de outras interfaces.
Forma Icnica:
28
Interfaces
Uma interface pode tambm ser representada como um esteretipo (forma expandida).
Forma Expandida:
29
Interfaces
Uma interface especifica um contrato de servio para uma classe, sem detalhar como ser sua implementao. No exemplo a seguir, IPreco especifica esse contrato e a classe Pedido responsvel pela sua realizao. Podemos definir uma interface a qual nomearemos de IPreco (a letra 'I' foi usada para permitir identificao como sendo uma interface).
30
Interfaces
A interface IPreco prov um contrato de definio de preo para a classe Pedido. A classe Pedido, a qual realiza, isto , prov a implementao concreta da interface IPreco, contm um relacionamento chamado realizao. Neste caso, note que a classe Cliente depende da interface IPreco.
31
Realizao
Uma realizao indica que uma classe comportamento especificado por uma interface.
Uma interface pode ser realizada por vrias classes. Uma classe pode realizar diversas interfaces.
implementa
32
Classes Abstratas
Em alguns momentos deseja criar uma classe sem a implementao de algumas operaes ou, simplesmente, no deseja que exista uma instncia de determinada classe. Para dizer que uma classe abstrata, basta inserir seu nome em itlico.
No exemplo ao lado, no teria como dizer que tem uma instncia de Conta, mas sim, somente uma instncia de uma de suas sub-classes: - ContaCorrente - ContaPoupanca
33
Regras de Restries
Restries agregam condies entre associaes, atributos, operaes e classes. Restries so restries semnticas anotadas como expresses booleanas.
UML oferece vrias restries pr-definidas.
34
Pacotes
Um pacote um mecanismo de agrupamento. Pode ser utilizado para agrupar qualquer elemento UML (como casos de uso, atores, classes, componentes e outros pacotes). Geralmente utizada para especificar uma distribuio lgica.
35
Pacotes
Os pacotes em um diagrama de classes so altamente utilizados, pois, na implementao do sistema, a organizao das classes so sempre feitas utilizando pacotes.
36
Notas e Comentrios
Assim como todo diagrama UML pode ser inseridos notas ou comentrios.
37
Cuidado
Diagrama de Classes no um modelo ER. O maior perigo com os diagramas de classes que voc pode focalizar exclusivamente na estrutura e ignorar o comportamento.
38
Referncia Bibliogrfica
FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005. PENDER, Tom. UML, a Bblia. 2 reimp. Rio de Janeiro: Campus, 2004.
39
Diagramas de Interao
Os diagramas de interao mostram como os objetos interagem uns com os outros. Permitem assim modelar os aspectos dinmicos de um sistema. Existem dois tipos de diagramas de interao: Diagrama de Seqncia Diagrama de Colaborao O diagrama de colaborao pode ser usado para mostrar como os objetos em um sistema interagem sobre mltiplos casos de uso . Por outro lado, um diagrama de seqncia tipicamente usado para mostrar a interao de objetos em um nico caso de uso.
Objeto da Classe
Objeto de Classe uma instncia de uma classe, isto , uma manifestao concreta de algo abstrato.
No exemplo acima, existe a definio da classe Carro e dois objetos desta classe.
Tpicos Especiais em Informtica II - Prof. R. Terra 3
Mensagens
Uma mensagem a remessa de um sinal ou a chamada de uma operao de um objeto (o emissor) para um ou mais objetos (receptor). A mensagem o elemento principal do diagrama de interao.
Uma mensagem representada graficamente como uma seta (do emissor ao receptor), acima do qual pode-se colocar um nome (geralmente o nome da operao) e um nmero de sequncia.
No exemplo acima, o objeto emissor (:Motorista) invoca o mtodo ligar do objeto receptor (:Carro).
Mensagens
Existem diversos tipos de mensagens, tais como mensagem sncronas (mais usadas), asscronas, de retorno, auto-referncia e temporizada, observe a diferena entre elas.
Seta
Tipo
Sncrona Assncrona
Descrio
Envio de mensagens sncronas. uma mensagem que no bloqueia o emissor. Isto , o emissor e o receptor executam concorrentemente. Indica o retorno do controle aps uma nova mensagem ter sido enviada Usada quando um objeto necessita enviar uma mensagem para ele mesmo. Indica que a mensagem enviada possui tempo de vida.
Retorno
Autoreferncia Temporizada
Diagrama de Seqncia
O diagrama de seqncia, como um dos dois tipos de diagrama de interao, mostra a interao existente num conjunto de objetos e seus relacionamentos, dando nfase ordenao temporal de mensagens. Nesse diagrama, colocam-se os objetos de classes que participam de interao no topo (eixo X), o objeto que inicia a interao colocado mais esquerda e os demais vo sendo colocados direita. As mensagens trocadas so dispostas ao longo do eixo dos Y, de acordo com os vnculos entre os objetos da classe, e em ordem crescente do tempo. Os diagramas de sequncia diferenciam dos diagramas colaborao por apresentar linhas de vida e barras de ativao. de
Linhas de Vida
Linhas de vida so linhas verticais tracejadas que indicam a existncia do objeto no tempo.
Recomenda-se que todos os objetos a serem utilizados sejam inseridos j no incio do diagrama com sua respectiva linha de vida, observe:
Barras de Ativao
Barras de ativao representam o tempo que um objeto necessita para completar uma tarefa. As barras mostram o tempo em que objeto est ativo.
As barras de ativao so representadas graficamente por um retngulo alto e estreito, colocado no eixo Y, sobre as linhas de vida dos objetos.
Diagrama de Sequncia
Diagrama de Colaborao
O diagrama de colaborao, como um dos dois tipos de diagrama de interao, mostra a interao existente num conjunto de objetos e seus relacionamentos, dando nfase organizao estrutural dos objetos. O diagrama mostra os objetos das classes que participam da interao, mostrando os vnculos entre os mesmos, descrevendo as mensagens que os objetos recebem e enviam. Os diagramas de colaborao diferenciam-se dos diagramas de seqncias nestes aspectos:
Existe um caminho que indica como o objeto est vinculado a outro. Existe um nmero de seqncia para indicar a ordem temporal de uma mensagem.
10
Diagrama de Colaborao
11
Referncia Bibliogrfica
FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre: Bookman, 2005. PENDER, Tom. UML, a Bblia. 2 reimp. Rio de Janeiro: Campus, 2004.
12