Escolar Documentos
Profissional Documentos
Cultura Documentos
Usando UML
Usando UML
http://www.inf.ufrgs.br/~quites
SUMRIO
1 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............................................................................................. 8
2.3.1 Caixa eletrnico ............................................................................................................................. 8 2.3.2 Telefone celular.............................................................................................................................. 8 2.3.3 Sistema de Vendas [TOG00] ......................................................................................................... 9
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
1 INTRODUO
O 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.
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.
Sistema
Caso de uso 1
Ator
Figura 1. Componentes de um diagrama de caso de uso.
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.
Fazer ligao
Usurio
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 <<includes>>. A Figura 3 apresenta um exemplo do relacionamento de incluso.
Telefone Celular
<<includes>>
Fazer ligao
Identifica destinatrio
Usurio
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 <<extends>> 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
<<extends>> Receber ligao
Usurio
Opcional
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
Sub tipos
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 eletrnico
Consulta de saldo Solicitao de extrato
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 Celular
Fazer ligao
<<includes>> <<extends>>
Rede Celular
Identifica destinatrio
Fazer ligao em conferncia
Receber ligao
<<extends>>
Uso programado
Usurio
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.
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.
Dependncia: Um relacionamento entre um elemento independente e outro dependente, onde uma mudana no elemento independente afetar o elemento dependente.
Funcionrio *
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: {
Rtulo da associao
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
1 titular
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:
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).
Financeira
cdigo nome
financia 0..1 *
Venda
data hora
realizada por *
Vendedor
nmero nenha nvelAutorizao
Data Regime
0..1 marido
Sexo
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
A Figura 18 ilustra um exemplo de classe associativa entre Financeira e Venda, complementando o diagrama apresentado anteriormente na Figura 15
Financeira
cdigo nome
financia 0..1 *
Venda
data hora
realizada por *
Vendedor
nmero nenha nvelAutorizao
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
trabalha 4 0..1
salrio dataContratao
Departamento
Funcionrio
Emprego
salrio dataContratao
0..1
Departamento
3.5 Qualificador
Qualificadores 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
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
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 Regular
Figura 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
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
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
<- afiliada
0..*
Equipe
0..*
Jogador
Outro exemplo de agregao com notao compacta apresentado na Figura 26, mostrando que ao invs de ligar vrias linhas a um agregado, basta usar o smbolo de agregao uma nica vez.
Figura 26. Agregao de vrias classes com notao compacta [HEU 99].
Por fim, apresentado um exemplo de composio na Figura 27. No caso, a classe CPF especialmente til para ser descrito separadamente por fornecer o mtodo validaCPF.
composio Pessoa
nome endereo: { logradouro; bairro; cidade. } cpf sexo
Pessoa
nome sexo
Endereo
logradouro bairro cidade
CPF
nmero
validaCPF: bool
3.7 Navegabilidade
Uma instncia de uma classe pode navegar a instncias de outra classe e vice-versa. Navegabilidade percebida freqentemente por objetos que mantm referncias de algum tipo entre objetos associados. Uma seta ligada entre duas classes para indicar o caminho de navegao entre elas. Em termos de implementao isso representaria que o objeto de uma classe conteria um apontador para o objeto da outra classe. A figura a seguir mostra um exemplo onde as classes Pedido e Cliente possuem uma associao onde o sentido da navegao ocorre de Pedido para Cliente. Isto indica que um pedido tem a responsabilidade de informar a qual cliente pertence, mas um cliente em particular no precisa indicar quais pedidos possui. fonte alvo 1 Cliente Pedido *
navegabilidade
3.8 Generalizao/Especializao
Generalizao/Especializao um conceito tambm conhecido pelo nome de Herana. Trata-se de um relacionamento de classificao entre um elemento mais geral e outro mais especfico. O elemento mais especfico completamente consistente com o mais geral somando-se informao adicional especializada. Prof. Rodrigo Quites Reis - Fevereiro/2003
As subclasses herdam atributos, operaes e associaes da superclasse e agregam atributos e operaes particulares ao elemento de especializao a que se referem. A Figura 29 mostra um exemplo do uso de herana onde Pessoa fsica e Pessoa jurdica so especializaes de Cliente. As sub-classes herdam todas as propriedades (atributos, mtodos, relacionamentos, generalizaes) da classe genrica e, desta forma, em virtude do polimorfismo de dados no necessrio repetir a associao entre Cliente e Compra para todas as especializaes de Cliente.
Cliente
nome
realiza
Compra
PessoaFsica
CPF RG Sexo DataNascimento
PessoaJurdica
CGC RazoSocial
3.9 Restries
Uma restrio um relacionamento semntico entre elementos de modelo que especifica condies e proposies que devem ser mantidas como verdadeiras. Certos tipos de restries so predefinidas em UML, mas h a possibilidade de definio de restries por parte do usurio. Por exemplo, a Figura 30 mostra uma associao onde a restrio definida para limitar a possibilidade de associao entre Pessoa e Cidados idosos. {pessoa.idade>60} 0 1 0 *
Cidados Idosos
Pessoa
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
Conta corrente
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).
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
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.
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.
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)