Apostila Muito Boa de UML - Professor UFRGS

download Apostila Muito Boa de UML - Professor UFRGS

of 28

Transcript of Apostila Muito Boa de UML - Professor UFRGS

Usando UML para Especificao de Sistemas Orientados a Objetos

Prof. Rodrigo Quites Reis Fevereiro, [email protected]

http://www.inf.ufrgs.br/~quites

Usando UML para Especificao de Sistemas Orientados a Objetos

Modelagem de Objetos com UMLAutoria: Rodrigo Quites Reis ltima atualizao: fevereiro/2000 Nenhuma parte desta apostila pode ser utilizada ou reproduzida, em qualquer meio ou forma, seja mecnico ou eletrnico, fotocpia, gravao, ou outros, sem autorizao, prvia, expressa e especfica do Autor.

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

SUMRIO1 2 INTRODUO ................................................................................................................. 4 DIAGRAMAS DE CASOS DE USO (USE CASES) ...................................................... 5 2.1 Caso de Uso .................................................................................................................. 5 2.2 Interao em caso de uso .............................................................................................. 6 2.3 Exemplos de casos de uso............................................................................................. 82.3.1 Caixa eletrnico ............................................................................................................................. 8 2.3.2 Telefone celular.............................................................................................................................. 8 2.3.3 Sistema de Vendas [TOG00] ......................................................................................................... 9

3

DIAGRAMA DE CLASSES EM UML ......................................................................... 10 3.1 Classes e seus relacionamentos................................................................................... 10 3.2 Associaes Simples ................................................................................................... 11 3.3 Multiplicidade (Cardinalidade) ................................................................................... 13 3.4 Classes Associativas ................................................................................................... 14 3.5 Qualificador ................................................................................................................ 15 3.6 Agregao ................................................................................................................... 16 3.7 Navegabilidade ........................................................................................................... 18 3.8 Generalizao/Especializao..................................................................................... 18 3.9 Restries .................................................................................................................... 19 3.10 Estudo de Caso.......................................................................................................... 20 DIAGRAMAS DE INTERAO .................................................................................. 21 4.1 Diagrama de Seqncia............................................................................................... 22 4.2 Diagrama de Colaborao........................................................................................... 24 ESTUDOS DE CASO E EXERCCIOS........................................................................ 27 5.1 Estudo de Caso 1: Locadora de Veculos.................................................................... 27 5.2 Estudo de Caso 2: Hospital ......................................................................................... 27

4

5

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

1 INTRODUOO presente texto tem como objetivo apresentar uma viso geral das tcnicas de modelagem de sistemas orientados a objetos chamada UML Unified Modelling Language. Atualmente, UML consiste na principal linguagem para descrio de sistemas O.O., tendo sido definida como padro do OMG1 em 1997. Apesar deste no se propor a substituir qualquer um dos livros clssicos escritos nesta rea, o objetivo deste texto o de complementar as atividades realizadas em sala de aula, proporcionado uma viso geral dos conceitos de modelagem com UML. Alm disso, somente os modelos UML mais importantes so apresentados, deixando de lado aqueles que possuem sua aplicao condicionada a sistemas com caractersticas especficas.

OMG = Object Management Group. Organismo internacional para definio de padres da orientao a objetos.

1

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

2 DIAGRAMAS DE CASOS DE USO (USE CASES)

Os diagramas de caso de uso fornecem um modo de descrever a viso externa do sistema e suas interaes com o mundo exterior, representando uma viso de alto nvel de funcionalidade intencional mediante o recebimento de um tipo de requisio de usurio. A modelagem de caso de uso uma tcnica utilizada para descrever a funcionalidade de um sistema atravs de atores externos interagindo em casos de uso. Atores representam um papel e iniciam o caso de uso que, por sua vez, deve entregar um valor tangvel de retorno ao ator. Atores e casos de uso esto conectados atravs de associaes e podem ter relacionamentos de generalizao que descreva o comportamento comum em superclasses herdadas por uma ou mais subclasses especializadas. A modelagem de casos de uso utilizada para capturar necessidades de um novo sistema ou acrescentar novas necessidades para criar uma nova verso. Neste sentido, a nova funcionalidade adicionada ao contexto do modelo de caso de uso atravs da insero de novos atores e casos. Os objetivos principais de um diagrama de caso de uso so: Descrever os requisitos funcionais do sistema de maneira uniforme para usurios e desenvolvedores; Descrever de forma clara e consistente as responsabilidades a serem cumpridas pelo sistema, formando a base para a fase de projeto; Oferecer as possveis situaes do mundo real para a fase de testes do sistema.

Um diagrama de caso de uso um grfico de atores, um conjunto de casos includo por um limite de domnio, comunicao, participao e associaes entre atores, assim como generalizaes entre casos de uso. Os elementos bsicos de um diagrama de caso de uso so: ator, caso de uso, interao e sistema, todos ilustrados na figura a seguir.SistemaCaso de uso 1

AtorFigura 1. Componentes de um diagrama de caso de uso.

2.1 Caso de UsoCada caso de uso uma seqncia completa de cenrios de interao mostrando Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

como eventos externos iniciais so respondidos no caso. Um cenrio uma narrativa de uma parte do comportamento global do sistema e uma coleo completa de cenrios usada para especificar completamente um sistema. Um caso de uso est para um cenrio assim como uma classe est para um objeto. Ou seja, um caso de uso representa uma declarao de um aspecto de comportamento que caracterizado por um lote de cenrios concretos. Um ator uma entidade externa ao sistema que de alguma forma participa de um caso de uso. Um ator estimula o sistema com eventos externos e tipicamente recebe algo do sistema. Um ator pode ser um ser humano, mquinas, dispositivos, ou outros sistemas. Atores tpicos incluem, por exemplo, clientes, usurios, gerentes, computadores e impressoras.

2.2 Interao em caso de usoO 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 em que o ator envia sua mensagem (estmulo). As seguintes interaes so importantes dentro de um diagrama de caso de uso: Comunicao: Um ator comunica-se com o caso de uso, tal como no exemplo da Figura 2;Telefone Celular

Fazer ligao

Usurio

A comunicao representada atravs de um arco simples

Figura 2. Exemplo de Comunicao Incluso: Quando um nmero de casos de uso tem comportamento comum, esse comportamento pode ser modelado em um simples caso de uso que utilizado por outros casos. Assim, quando um caso de uso faz uso de outro, o relacionamento de incluso se aplica. desenhado como uma seta pontilhada do caso de uso que faz o uso ao caso de uso que usado (da parte para o todo), etiquetada com . A Figura 3 apresenta um exemplo do relacionamento de incluso.

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Telefone Celular

Fazer ligao

Identifica destinatrio

Usurio

A comunicao representada atravs de um arco pontilhado com o rtulo

Figura 3 Exemplo de Incluso Extenso. usada para descrever casos de uso que so ativados opcionalmente em um sistema. O relacionamento de extenso representado graficamente atravs de uma seta pontilhada com o rtulo que tem origem no caso de uso opcional e atinge o caso de uso obrigatrio associado. A Figura 4 mostra um exemplo do uso de Extenso na modelagem de casos de uso.Telefone Celular Receber ligao

Receber ligao adicional

Usurio

Opcional

Figura 4 Exemplo de Extenso

Generalizao. Expressa um relacionamento do tipo herana entre casos de uso. Assim, um super-tipo de caso de uso indica um caso geral, enquanto que suas especializaes indicam casos particulares. A Figura 5 apresenta um exemplo do relacionamento de generalizao, onde Efetua pagamento um super-tipo o qual especializado em Pagto com Carto de Crdito e Pagto com Dbito em Conta.Efetua pagamento

Super tipo

Usurio

Pagto com Carto de crdito

Pagto com Dbito em Conta

Sub tipos

Figura 5 Exemplo de Generalizao

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

2.3 Exemplos de casos de uso2.3.1 Caixa eletrnico

O exemplo da Figura 6 mostra um diagrama de caso de uso que ilustra os servios tipicamente fornecidos por um Caixa eletrnico bancrio. O diagrama distingue explicitamente dois grupos de servios: aqueles casos de uso para o Cliente, enquanto que Abastecer dinheiro e Recolher envelopes de depsitos so de uso exclusivo do ator Funcionrio. Caixa eletrnicoConsulta de saldo Solicitao de extrato

Abastecer dinheiro Recolher envelopes de depsitos

Cliente

Saque

Funcionrio

Figura 6 Exemplo de diagrama de caso de uso (extrado de [FUR98]) 2.3.2 Telefone celular

A Figura 7 apresenta um diagrama de caso de uso para um telefone celular. Deve-se observar que o servio Faz ligao faz uso de Identifica destinatrio e opcionalmente utiliza Fazer ligao em conferncia. O caso de uso Receber ligao, por sua vez, opcionalmente utiliza o Receber ligao adicional.Telefone CelularFazer ligao

Rede Celular

Identifica destinatrioFazer ligao em conferncia

Receber ligao

Uso programado

Usurio

Receber ligao adicional

Figura 7 Exemplo de caso para telefone celular (adaptado de [BOO00])

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

2.3.3 Sistema de Vendas [TOG00]

A Figura 8 mostra um diagrama de caso de uso fornecido como exemplo na ferramenta Together Control Center. So fornecidos dois sistemas inter-relacionados (Point of Sale e Product System) com casos de uso particulares. O ator Cashier representa o usurio do sistema que assume o papel de Caixa (atendente), enquanto que Inventory System um sistema externo.

Figura 8. Caso de uso de Sistema de vendas.

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

3 DIAGRAMA DE CLASSES EM UML

O modelo de objetos em UML representado atravs de um diagrama de classes. Um diagrama de classes denota a estrutura esttica de um sistema e as classes representam coisas que so manipuladas por esse sistema. A notao utilizada para representar o diagrama de classes em UML fortemente baseada na notao de Diagramas Entidade-Relacionamento [CHE90] e no Modelo de Objetos de OMT [RUM94]. As sees a seguir apresentam resumidamente a notao utilizada nesta linguagem.

3.1 Classes e seus relacionamentosUma classe representada por um retngulo slido com trs partes: uma para o nome da classe; outra para os atributos da classe; e a terceira para a declarao das operaes definidas para a classe. A Figura 9 mostra a notao UML para classes.

Figura 9. Notao para classe em UML

Os tipos principais de relacionamentos entre classes so: Generalizao/Especializao (Herana): Indica relacionamento entre um elemento mais geral e um elemento mais especfico (superclasse e subclasse, respectivamente). A subclasse pode conter somente informao adicional acerca da superclasse. Por exemplo um mdico um funcionrio; Agregao: Usada para denotar relacionamentos todo/parte. Por exemplo, um item de compra parte de um pedido; Associao (simples): Usada para representar relacionamentos entre as classes (por exemplo, um cliente pode alugar vrias fitas de vdeo);

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Dependncia: Um relacionamento entre um elemento independente e outro dependente, onde uma mudana no elemento independente afetar o elemento dependente.

3.2 Associaes SimplesUma associao descreve um conjunto de vnculos entre objetos das classes relacionadas. A associao entre duas ou mais classes permite um conjunto de ligaes entre os objetos das classes. Os tipos de associao so:Associao Unria: Relacionamento entre uma classe e ela mesma. Tambm conhecida como associao recursiva, cujo relacionamento pode conectar dois diferentes objetos de uma mesma classe. A Figura 10 mostra um exemplo de associao unria:

Funcionrio *

1

supervisiona

Figura 10. Exemplo de associao unria. Associao Binria: Expressa o relacionamento entre duas classes distintas. A Figura 11 ilustra o exemplo de associao binria.

Multiplicidade da associao Pessoa Livro autoria Ttulo: Str ISBN: Int Editora: Str 0..* Nome: Str Endereo: {

1..* Logradouro: Str,Bairro: Str, Cidade: Str. }

Telefones: Array of Int

Rtulo da associao

Figura 11 Exemplo de associao binria

Em geral, toda associao deve ser rotulada, tal como na associao de autoria na Figura 11. Alternativamente, pode ser expresso o papel de uma classe na associao, tal como Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

titular na Figura 12.Conta Bancria nmero saldo dataAbertura criar() bloquear() desbloquear() creditar() debitar() Pessoa Nome: Str Endereo: {Logradouro: Str, Bairro: Str, Cidade: Str. }

*

1 titular

Telefones: Array of Int

Papel da classe na associao

Figura 12 Segundo exemplo de associao binria

As associaes tm sua semntica definida como relaes entre conjuntos. O exemplo da Figura 13 ilustra como que as classes Funcionrio e Departamento representam conjuntos, enquanto que a associao trabalha define uma relao bidirecional entre os conjuntos, indicando que o Funcionrio Joo trabalha no Departamento Financeiro e vice versa.

Funcionrio

0..*

trabalha 4 1

Departamento

Joo

Financeiro

Funcionrio

Departamento

Figura 13 Mapeamento da semntica estrutural de uma associao Associao n-ria: Associao entre trs ou mais classes. Neste caso a notao inclui um losango para representar a associao, como mostra a figura a seguir:

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Figura 14. Representao de associao ternria.

3.3 Multiplicidade (Cardinalidade)A cardinalidade das associaes em um diagrama de classes denominada de multiplicidade e especifica quantas instncias de uma classe podem participar da associao (semelhante abordagem ER). A tabela 1 a seguir apresenta as multiplicidades. Tabela 1 Multiplicidades de associaes entre classes.Multiplicidade Significado

0..1 1 0..* * 1..* 1..15 (m..n)

Zero ou um Somente 1 Maior ou igual a zero Maior ou igual a zero Maior ou igual a 1 De 1 a 15 (m a n), inclusive

A Figura 15 mostra um exemplo de uso de multiplicidade onde a classe financeira est associada a 0 ou mais instncias classe venda atravs da associao financia. A classe venda est associada a um objeto da classe vendedor atravs da associao venda (notar que o nome da associao pode ser um substantivo).

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Financeiracdigo nome

financia 0..1 *

Vendadata hora

realizada por *

Vendedornmero nenha nvelAutorizao

Figura 15. Financeira: exemplo de uso de multiplicidade (adaptado de [HEU 99])

3.4 Classes AssociativasSo classes que representam a associao entre outras classes. Somente ocorrem instncias da classe associativa quando ocorre a associao entre classes. Comparando com a abordagem Entidades-Relacionamentos (ER), uma classe associativa equivale a uma entidade associativa ou agregao de entidades. Da mesma forma, quando em um diagrama ER existe a necessidade de representar atributos de relacionamentos, em um diagrama de classes cria-se uma classe associativa. A Figura 16 mostra um exemplo de classe associativa onde quando ocorre um casamento entre duas pessoas, ento uma classe associativa armazena a data do casamento e o regime.casamento esposa 0..1 Pessoa Nome Endereo: {Logradouro; Bairro; Cidade. }

Data Regime

0..1 marido

Sexo

Figura 16. Exemplo de classe associativa em uma associao unria.

A Figura 17 mostra um exemplo de associao onde representado que quando ocorre a matrcula de um Aluno em uma Disciplina. A classe associativa armazena as informaes de matrcula, isto , o conceito e semestre correspondentes.

Aluno

*

matriculado

*

Disciplina

conceito semestre

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Figura 17. Exemplo de classe associativa com associao binria.

A Figura 18 ilustra um exemplo de classe associativa entre Financeira e Venda, complementando o diagrama apresentado anteriormente na Figura 15

Financeiracdigo nome

financia 0..1 *

Vendadata hora

realizada por *

Vendedornmero nenha nvelAutorizao

Financiamento registroAprovao dataAprovao

Figura 18 Evoluo do modelo de Financeira com classe associativa

Uma classe associativa pode ser transformada em uma classe regular conforme mostra a Figura 19 a seguir. A parte superior da figura mostra o modelo duas classes regulares e uma associativa, enquanto que a parte inferior apresenta um modelo anlogo que composto por trs classes regulares.

Funcionrio

1

trabalha 4 0..1salrio dataContratao

Departamento

Funcionrio

*

Empregosalrio dataContratao

*

0..1

Departamento

Figura 19. Transformao de uma classe associativa em classe regular.

3.5 QualificadorQualificadores ou Associaes Qualificadas so usadas com associaes 1:N ou N:N. O qualificador distingue (divide) o conjunto de objetos do outro lado da associao. A figura a seguir ilustra um exemplo de qualificador. O modelo informa que um prdio possui vrios nmeros de andar. Um nmero de andar de um prdio est associado a exatamente um andar. Como conseqncia um andar identificado pelo seu nmero e pelo prdio. Este conceito anlogo ao conceito de entidade fraca ou relacionamento identificador em modelos entidaderelacionamento. Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Figura 20. Exemplo de uso de qualificador.

Outro exemplo de qualificador apresentado na figura a seguir, onde um diretrio est associado a vrios nomes de arquivo, e cada nome de arquivo associado a um arquivo. Cada arquivo est associado a um nome de arquivo e a um diretrio.Diretrio Arquivo

Nome do arquivo

Figura 21. Exemplo de qualificador.

3.6 Agregao um caso especial de associao usado para representar a relao todo/parte entre classes. Quando o todo criado, as partes tambm o so (e quando eliminado tambm). As partes no tm existncia prpria, somente associadas ao todo. A notao de agregao apresentada nas figuras a seguir:

Todo

Parte

Agregao RegularFigura 22. Agregao regular ou relacionamento por referncia.

Todo

Parte

Agregao de composio

Figura 23. Agregao de composio ou relacionamento por valor. Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

A rigor, a agregao deve ser utilizada prioritariamente para explicitar relaes de todo-parte: portanto, a Figura 24 mostra dois diagramas de classe que possuem exatamente o mesmo significado.

Documento

0..*composto-por

Pargrafo

0..*composto-por

Sentena

Documento

0..*

Pargrafo

0..*

Sentena

Figura 24 Documento, pargrafo e sentena: duas alternativas para modelagem de agregao

Um segundo exemplo de uso de agregao em que uma Associao Esportiva composta por vrias Equipes afiliadas que, por sua vez, so compostas por objetos da classe Jogador.

Associao Esportiva

60} 0 1 0 *

Cidados Idosos

Pessoa

Figura 30. Exemplo de uso de restrio.

Um exemplo de restrio bastante utilizada a restrio {ou}. Ela indica que em uma associao, uma instncia da classe s pode participar uma vez no mximo de uma das associaes possveis (cortadas pela linha tracejada). A figura a seguir ilustra um exemplo Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

onde uma conta corrente pertence a um indivduo ou a uma organizao.0..* {ou} 0..* 0..1 Organizao 0..1 Indivduo

Conta corrente

Figura 31. Uso de restrio {ou}

3.10 Estudo de CasoA figura a seguir mostra um exemplo inicial do modelo de classes para uma universidade. Sugere-se como exerccio a complementao do modelo.

Figura 32. Estudo de caso de Controle Acadmico de Universidade

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

4 DIAGRAMAS DE INTERAO

Diagrama de Interao um termo genrico que se aplica a vrios tipos de diagramas que enfatizam interaes de objetos. Uma interao uma especificao comportamental que inclui uma seqncia de trocas de mensagens entre um conjunto de objetos dentro de um contexto para realizar um propsito especfico, tal como a realizao de um caso de uso. As mensagens podem incluir sinais e chamadas implcitas decorrentes de condies e eventos de tempo. Para especificar uma interao, necessrio definir um contexto de caso de uso e estabelecer os objetos que interagem e seus relacionamentos. Portanto, diagramas de interao so aplicados para mostrar a realizao de casos de uso e as possveis seqncias de interao entre objetos. O diagrama de interao deve ser usado quando se deseja visualizar o comportamento de vrios objetos dentro de um nico caso de uso, a partir de mensagens passadas entre eles. Para se compreender o comportamento de um nico objeto para muitos casos de uso, melhor empregar um diagrama de estado; para se analisar o comportamento de muitos casos de uso recomendado o diagrama de atividade. Os diagramas de interao so apresentados de duas formas (equivalentes) em UML: Diagrama de Seqncia: Enfatiza o comportamento dos objetos em um sistema incluindo suas operaes, interaes, colaboraes e histrias de estado em seqncia temporal de mensagem e representao explcita de ativao de operaes. Os objetos so desenhados como linhas verticais, as mensagens como linhas horizontais e a seqncia de mensagens lida de cima para baixo; Diagrama de Colaborao: Mostra o contexto completo de uma interao, inclusive os objetos e seus relacionamentos pertinentes a uma interao particular, sendo freqentemente melhores para propsitos de projeto.

A figura a seguir mostra um exemplo de um diagrama de seqncia (enfatizando a ordem de chamamento) e um diagrama de colaborao (enfatizando a interao entre os objetos).

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Figura 33 Diagramas de Seqncia e Colaborao.

4.1 Diagrama de SeqnciaUm diagrama de seqncia mostra interaes de objetos organizadas em uma seqncia de tempo e de mensagens trocadas, mas no trata associaes entre os objetos como os diagramas de colaborao. A Figura 34 apresenta a notao utilizada para diagrama de seqncia onde so mostrados os seus elementos bsicos.

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Figura 34 Elementos de um diagrama de seqncia UML [FUR98]

Um exemplo de diagrama de seqncia para o emprstimo de um livro em um sistema de bibliotecas apresentado na figura a seguir. Neste exemplo, o bibliotecrio acessa a janela de emprstimo que enviar mensagem para encontrar o ttulo. Encontrado o ttulo, busca-se a disponibilidade do item, identifica-se o usurio e faz-se o emprstimo. Outro exemplo de diagrama de seqncia mostrado na Figura 36, retratando o processo de venda.

Figura 35. Exemplo de diagrama de seqncia para biblioteca [FUR 98]. Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Figura 36. Exemplo de diagrama de seqncia para um sistema de vendas.

4.2 Diagrama de ColaboraoUm diagrama de colaborao mostra uma interao organizada em torno de objetos e seus vnculos formando uma base de padres. O diagrama de seqncia e diagrama de colaborao expressam a mesma informao mas a apresentam de forma diferente. O primeiro exibe uma seqncia explcita de mensagens e melhor para especificaes de tempo real (dimenso tempo) e para cenrios complexos, enquanto o segundo mostra os vnculos entre objetos e melhor para entender os efeitos em um determinado objeto (dimenso espao). Para decidir qual diagrama deve ser utilizado para estudar uma interao, uma regra geral escolher o diagrama de colaborao quando o objeto e seus vnculos facilitam a compreenso da interao, e escolher o diagrama de seqncia somente se a seqncia necessita ser evidenciada. Ao contrrio de um diagrama de seqncia, um diagrama de colaborao mostra os relacionamentos entre os objetos, mas no trata o tempo como uma dimenso separada. A seqncia de tempo indicada numerando-se as mensagens. Em um diagrama de colaborao as classes e objetos so representados como na Figura 37.

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Figura 37. Elementos de um diagrama de colaborao.

A Figura 38 mostra a chamada de mtodos em um diagrama de colaborao e a Figura 39 mostra algumas convenes utilizadas quando um mtodo chamado. A Figura 40 mostra o uso de parmetros de mtodos no diagrama de colaborao, onde possvel chamar um mtodo com argumentos declarando a varivel e o tipo de retorno.

Figura 38. Notao UML para diagramas de colaborao.

Figura 39. Convenes do diagrama de colaborao.

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

Figura 40. Parmetros de mtodos em diagramas de colaborao.

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

5 ESTUDOS DE CASO E EXERCCIOS5.1 Estudo de Caso 1: Locadora de VeculosModelar um sistema OO tomando por partida a definio abaixo: O cliente scio-proprietrio de uma rede de locadora de carros que possui vrias filiais espalhadas por vrios estados brasileiros e pases do Mercosul. Cada filial possui diversos carros para alugar. Existem vrios tipos de carro: popular, luxo, utilitrio, etc. Os carros possuem cdigo (chapa do carro), tipo, modelo, ano, cor, chassis, km e valor do aluguel (dirias e semanais). Os clientes da locadora podem reservar e alugar carros. Existem clientes especiais e clientes comuns. Os especiais possuem uma taxa de desconto e um valor de quilometragem extra para seus aluguis. Para cada aluguel emitida uma nota fiscal com a quilometragem percorrida e o valor do aluguel. A locadora possui funcionrios que trabalham nas filiais. As filiais so identificadas por cdigo, nome cidade, endereo e telefones. Os clientes so identificados por cdigo, nome, cpf, telefone, endereo, cidade. E os funcionrios so identificados por cdigo, nome, endereo, telefone, cidade.

5.2 Estudo de Caso 2: HospitalModelar um hospital com vrios setores e funcionrios que presta vrios tipos de servio aos pacientes conforme caractersticas abaixo:

Setores so compostos de vrios sub-setores. Cada setor est dividido em salas. Existem salas de cirurgia, consultrios, apartamentos, etc. Os funcionrios do hospital trabalham em setores e so mdicos, enfermeiros e pessoal administrativo com diversos cargos. Existem equipes de mdicos e enfermeiros com um mdico como supervisor da equipe; Os pacientes so submetidos a procedimentos no hospital. Procedimentos so pagos por convnios ou pelo prprio paciente (particular) e podem ser: Cirurgias: ocupando salas de cirurgia com equipe mdica responsvel; Internaes: ocupando enfermarias ou quartos e com tratamento prescrito (medicao e dieta); Consultas: com data, hora, diagnstico, exames solicitados e receita mdica, ocupando consultrios e com mdico responsvel; Exames: solicitados em consultas mdicas, registrando os resultados; Outros procedimentos de hospital.

Definir novos requisitos para o sistema

Prof. Rodrigo Quites Reis - Fevereiro/2003

Usando UML para Especificao de Sistemas Orientados a Objetos

REFERNCIAS BIBLIOGRFICAS

[BEZ02] BEZERRA, E. Princpios de Anlise e Projeto de Sistemas com UML. So Paulo: Campus, 2002. [BOO94] BOOCH, G. Object-Oriented Analysis and Design with Applications. Benjamim-Cummings Publishing Co., 1994. [BOO00] BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: Guia do Usurio. So Paulo: Campus, 2000. [CHE90] CHEN, P. Modelagem de Dados: A abordagem Entidade-Relacionamento para Projeto Lgico. Makron Books, 1990. [COA98] COAD, P.; MAYFIELD, M. Projeto de Sistemas em Java: Construindo aplicativos e melhores applets. So Paulo: Makron Books, 1998. [ERI98] ERIKSSON, H.; PENKER, M. UML Toolkit. Wiley Computer Publishing, 1998. [FUR98] FURLAN, J.D. Modelagem de Objetos atravs da UML. So Paulo: Makron Books, 1998. [GUE91] GUEZZI, C.; JAZAYERI, M. Fundamentals of Software Engineering. PrenticeHall, 1991. [HEU 99] HEUSER, C. A. Projeto Orientado a Objetos. Apostila de curso. Obtida em http://heuser.inf.ufrgs.br [JAC92] JACOBSON, I. et. al. Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley Publishing Co., 1992. [JAC99] JACOBSON, I.; BOOCH, G.; RUMBAUGH, J. The Unified Process. In: IEEE Software. p. 96-102. May/June 1999. [RUM94] RUMBAUGH, J. et. al. Modelagem e Projetos Baseados em Objetos. So Paulo: Campus, 1994. [TOG00] Together Inc. (http://www.togethersoft.com)

Prof. Rodrigo Quites Reis - Fevereiro/2003