Capitulo 14 - UML - Casos de Uso e Diagramas de Classes
-
Upload
fredcarvalho0094579 -
Category
Documents
-
view
92 -
download
0
Transcript of Capitulo 14 - UML - Casos de Uso e Diagramas de Classes
-
UMLhttp://www.uml.org/#UML2.0Aula de Luiz Eduardo Guarino de Vasconcelos
-
Objetivos Histria Tecnologia OO UML Pacotes Diagrama de Classe
Atributos Mtodos Visibilidade
-
Histria
60, 70 COBOL, FORTRAN, C Mtodos de Anlise e Projeto Estruturado
80 incio 90s Smalltalk, ADA, C++, Object Pascal Gerao dos mtodos OO
90: Incio de atrao por OO Java, UML, Unified Process Proliferao de Mtodos de Desenvolvimento OO
-
Tecnologia OO
Mais do que um Modo de Programar Modo de pensar abstrato sobre um domnio de
problemas usa conceitos do mundo real ao invs de
conceitos computacionais Baseada em construes chamadas objetos,
proporciona um paradigma evolucionrio para: criar modelos do mundo real em computador usar estes modelos para simular o mundo real
Transio difcil para algumas pessoas
-
Como surgiu OO?
94: Parceria de metodologistas: Booch (Booch Method) e Rumbaugh (OMT) Busca de Unified Method (UM)
95: Rational compra Objective Systems de Jacobson (Objectory OOSE) parceria Booch/Rumbaugh estendida com
Jacobson Unified Modeling Language (UML) ao invs de
UM) 98: Reengenharia de livros, mtodos e cases
OO para incluir UML
-
O que UML?
um padro aberto verso 1.1 aprovada pelo OMG (Object
Management Group) em Novembro de 1997 verso 1.3 aprovada em Junho de 1999 1.4, 2.0, 2.2 (2009), 2.4 (Mar 2011)
Suporta todo o ciclo de vida do software modelagem do negcio (processos e objetos do
negcio) modelagem de requisitos alocados ao software modelagem da soluo de software
-
Parceiros da UML
Rational Software Corporation
HewlettPackard Ilogix IBM ICON Computing Intellicorp MCI Systemhouse
Microsoft ObjecTime Oracle Platinum Technology Taskon Texas
Instruments/SterlingSoftware
Unisys
-
Modelos e Diagramas Modelos
Diagramas de Casos de Uso Diagramas de Classes Diagramas de Objetos Diagramas de Componentes Diagramas de Distribuio Diagramas de Sequncia Diagramas de Colaborao Diagramas de Estados Diagramas de Atividades http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML
-
UMLDIAGRAMA DE CASODE USOAula de Luiz Eduardo Guarino de Vasconcelos
-
Diagramas de Caso de Uso
Facilitam o entendimento de um sistema mostrando a sua viso externa
So usados para modelar o contexto de um sistema, subsistema ou classe
Uma das maneiras mais comuns de documentar os requisitos do sistema (as funcionalidades)Delimitam o SistemaDefinem a funcionalidade do sistema
Representa os requisitos funcionais do sistema
-
Utilidade dos Casos de Uso
Equipe de clientes (validao) aprovam o que o sistema dever fazer entendem o que o sistema dever fazer
Equipe de desenvolvedores Ponto de partida para refinar requisitos de
software. Podem seguir um desenvolvimento dirigido a
casos de uso. Designer (projetista): encontrar classes Testadores: usam como base para casos de
teste
-
AtoresExemplos Constituem as entidades do ambiente do
sistema So pessoas ou outros subsistemas que
interagem com o sistema em desenvolvimento Cargos (Empregado, Cliente, Gerente, Almoxarife,
Vendedor, etc); Organizaes (Empresa Fornecedora, Agncia de
Impostos, Administradora de Cartes, etc); Outros sistemas (Sistema de Cobrana, Sistema de
Estoque de Produtos, etc). Equipamentos (Leitora de Cdigo de Barras,
Sensor, etc.)
-
Atores
Um ator algum ou algum outro sistema que deve interagir com o sistema em desenvolvimento
-
Especializao
possvel definir tipos gerais de atores e especializ-los usando o relacionamento de especializao
-
Encontrando Atores Podem ser identificados pelas seguintes questes:
Quem usar a funcionalidade principal do sistema (atores primrios)?
Quem precisar do auxlio do sistema para fazer suas tarefas dirias?
Quem precisar manter, administrar, conservar o sistema funcionando (atores secundrios)?
Que dispositivos de hardware o sistema precisa para funcionar? Com que outros sistemas o sistema precisa interagir? Quem ou o que tem interesse nos resultados que o sistema
produz? No considere apenas os usurios que usam o sistema
diretamente, mas todos os outros que precisam dos servios do sistema
-
Casos de Uso
Atores so examinados para determinar as suas necessidades (funcionalidades) Gerente de Campanha - adiciona um novo cliente Funcionrio de Contato - Altera um contato do
cliente Contador - Registra o pagamento do cliente
-
Casos de UsoDefinio Uma unidade coerente de funcionalidade
provida por um classificador (um sistema, subsistema ou classe) manifestado por uma sequncia de mensagens trocadas entre o sistema e um ou mais usurios externos (representados como atores), junto com as aes executadas pelo sistema.
-
Casos de UsoDescrio UC Pode ser numa forma resumida ou numa
forma mais detalhada na qual a interao entre o ator e o caso de uso descrita passo a passo.
Descreve interaes assim como o usurio v, e no uma definio de processos internos do sistema ou algum tipo de especificao de programa. Sob ponto de vista do ator.
Um documento com o fluxo de eventos criado para cada caso de uso
-
Exemplo de descrio contnua Este caso de uso inicia quando o Cliente chega
ao caixa eletrnico e insere seu carto. O Sistema requisita a senha do Cliente. Aps o Cliente fornecer sua senha e esta ser validada, o Sistema exibe as opes de operaes possveis. O Cliente opta por realizar um saque. Ento o Sistema requisita o total a ser sacado. O Cliente fornece o valor que deseja sacar. O Sistema fornece a quantia desejada e imprime o recibo para o Cliente. O Cliente retira a quantia e o recibo, e o caso de uso termina.
-
Exemplo de descrio numerada 1) Cliente insere seu carto no caixa eletrnico. 2) Sistema apresenta solicitao de senha. 3) Cliente digita senha. 4) Sistema valida a senha e exibe menu de operaes
disponveis. 5) Cliente indica que deseja realizar um saque. 6) Sistema requisita o valor da quantia a ser sacada. 7) Cliente fornece o valor da quantia que deseja sacar. 8) Sistema fornece a quantia desejada e imprime o
recibo para o Cliente 9) Cliente retira a quantia e o recibo, e o caso de uso
termina.
-
Exemplo de descrio tabular
-
Caso de Uso detalhadoContedo Nome Descrio Identificador Importncia Sumrio Fluxo Principal Fluxos
Alternativos Fluxos de
Exceo
Ps-condies Ator Primrio Atores Secundrios Pr-condies Regras do Negcio Histrico Notas de
Implementao
-
Exemplo - Descrio TextualCSU001 Atualizar informaes do Professor
-
Caso de Uso detalhadoDicas para documentar Comece o nome do caso de uso com um verbo no
infinitivo. O nome deve representar o que o UC faz. Tente descrever os passos sempre na forma sujeito +
predicado. Ou seja, deixe explcito quem o agente da ao
No descreva como o sistema realiza internamente um passo de um caso de uso.
Foque no objetivo desse ator. Exemplos: Registrar Pedido, Abrir Ordem de Produo, Manter Referncia, Alugar Filme...
Tente manter a descrio de cada caso de uso no nvel mais simples possvel...
-
Diagrama de Caso de Uso Uma associao entre um ator e um use case indica
que h uma comunicao, possivelmente com envio e recepo de mensagens
So criados para visualizar as relaes entre os atores e os Casos de Uso
Permite dar uma viso global e de alto nvel do sistema.
-
Exemplo 1
-
Exemplo 2
-
Exerccio 1
O sistema para a Locadora de Veculos consiste na automatizao do processo de locao e gerenciamento de veculos (areos, terrestres e martimos), bem como do controle de itens que podem ser adicionados ao aluguel, tais como combustvel, seguro (danos materiais) e condutor do veculo. O sistema deve permitir que consultas sejam realizadas. Tudo isto deve estar disponvel ao gerente. O sistema deve emitir diversos tipos de relatrios, possibilitando um melhor gerenciamento dos aluguis. O administrador da empresa deve ter acesso a tudo disponvel ao gerente e aos relatrios. Os usurios podem se cadastrar no site, realizar consultas a veculos disponveis, realizar reservas e entrar em contato com a Locadora.
-
Os problemas a serem solucionados compreendem a correta venda de bilhetes, gerao de relatrios de estatsticas e de receita (total da venda dos bilhetes). Deve permitir a criao de promoes para determinados dias e sesses. Deve permitir, para determinados usurios, a realizao de incluso, alterao e excluso de preos, filmes em cada sala, perodo de validade dos preos, horrios de sesses e outros. O software precisa prover o controle de permisses para os diversos tipos de usurios (gerentes, etc). Deve permitir a busca por filmes de maneira on-line por vrios atributos diferentes, tais como nome, atores, palavras-chave dentre outros.
Exerccio 2
-
Encontrando Casos de Uso
Faa as seguintes perguntas para cada atorQue funes o ator requer do sistema? O que
o ator precisa fazer?O ator precisa ler, criar, destruir, modificar, ou
armazenar alguns tipos de informaes no sistema?
O ator tem que ser notificado sobre eventos no sistema? Ou o ator precisa notificar o sistema sobre alguma coisa? O que estes eventos representam em termos de funcionalidade?
-
Encontrando Casos de Uso
Faa as seguintes perguntas para cada ator (cont.)O trabalho dirio do ator poderia ser
simplificado ou feito com mais eficincia atravs de novas funes no sistema? Quais?
Sem considerar os atores atuaisQuais entradas/sadas o sistema precisa ? De
onde as entradas vm e para onde as sadas vo?
Quais so os maiores problemas com a implementao atual do sistema?
-
Organizando Casos de Uso
Generalizao Incluso Extenso
-
Caso de UsoGeneralizao Relaciona um Use Case especializado a um
mais geral . O UC filho: Herda os atributos, operaes e sequncias de
comportamento dos pais Pode adicionar e redefinir o comportamento do pai Pode substituir o pai em qualquer lugar que ele
aparece Os UCs Checar password e Scan de retina
ambos servem para validar o usurio. Identificar um use case abstrato Validar usurio
para realizar esta validao.
-
Caso de UsoGeneralizao
-
Caso de UsoIncluso O use case base incorpora explicitamente o
comportamento de outro use case no local especificado na base.
O use case includo nunca estar sozinho, somente ser instanciado de um use case base que o incluir.
Usado para evitar a descrio do mesmo fluxo de eventos vrias vezes.
-
Caso de UsoIncluso
-
Caso de UsoIncluso
Use Case: Sesso de ATM
Mostre anncio do dia Include Identificar
Cliente Include Validar Conta Imprimir cabealho do
recibo Log out
UC Incluso: Identificar Cliente
Pegue o nome do cliente Include Verificar Identidade if falha de verificao then
abort a sesso Else obtenha nmero da
conta do cliente UC Incluso: Validar Conta Estabelea conexo com
banco de dados de contas Obtenha status e limite da
conta
-
Caso de UsoExtenso Usado para:
Para modelar partes opcionais de use cases
Para modelar cursos alternativos e/ou complexos que raramente ocorrem (e.g. Entrega Urgente)
-
Caso de UsoExtenso
Use Case Fazer Pedido Fluxo principal de eventos:
include (Validar usurio). Receber do usurio os itens
do pedido (set prioridade). Submeter o pedido para
processamento.
-
Documentao Associada O modelo de casos de uso exige do desenvolvedor o
entendimento de como os agentes externos interagem com o sistema.
MCU corresponde somente aos requisitos funcionais. Outros tipos de requisitos (desempenho, interface,
segurana, regras do negcio, etc.) tambm devem ser identificados e modelados.
Esses outros requisitos fazem parte da documentao associada ao MCU.
Dois itens importantes dessa documentao associada so o modelo de regras do negcio e os requisitos de desempenho
-
Exemplos de Regras de Negcio O valor total de um pedido igual soma dos
totais dos itens do pedido acrescido de 10% de taxa de entrega.
Um professor s pode estar lecionando disciplinas para as quais esteja habilitado.
Um cliente de uma das agncias do banco no pode retirar mais do que R$ 1.000 por dia de sua conta. Aps as 18:00h, esse limite cai para R$ 100,00.
Os pedidos para um cliente especial devem ser pagos antecipadamente.
-
Regras do Negcio
Possvel formato para documentao de uma regra de negcio no MRN.
-
Requisitos de Desempenho
Conexo de casos de uso a requisitos de desempenho.
-
Modelando o DCU
Em sistemas complexos, representar todos UCsdo sistema em um nico DCU talvez o torne um tanto ilegvel.
Alternativa: criar vrios diagramas (de acordo com as necessidades de visualizao) e agrup-los em pacotes. Todos os casos de uso para um ator; Todos os casos de uso a serem implementados em
um ciclo de desenvolvimento. Todos os casos de uso de uma rea (departamento,
seo) especfica da empresa.
-
Modelando o DCU
-
Modelando o Contexto do Sistema Identifique os atores que cercam o sistema ? Quais grupos precisam de ajuda do sistema
para executarem suas tarefas ? Quais os grupos necessrios para executar
as funes do sistema ? Quais grupos interagem com hardware
externo ou outros sistemas de software ? Quais grupos executam funes
secundrias de administrao e manuteno
-
Modelando o Contexto do Sistema ? Organize os atores que so similares em
uma hierarquia de generalizao / especializao.
? Use os atores no diagrama de use cases e especifique os caminhos de comunicao entre atores e use cases do sistema.
-
Modelando Requisitos do Sistema Estabelea o contexto do sistema atravs da
identificao dos atores que o cercam Para cada ator, considere o comportamento que eles
esperam e requerem que o sistema produza D um nome aos comportamentos comuns (Caso de
Uso) Fatore comportamentos comuns em novos use cases
que sero usados por outros Fatore comportamento variante em novos use cases
que estendem a fluxo principal de eventos Modele os use cases, atores e seus relacionamentos
atravs de diagramas de use case
-
Resumo da Notao
-
Exerccio 1
O sistema para a Locadora de Veculos consiste na automatizao do processo de locao e gerenciamento de veculos (areos, terrestres e martimos), bem como do controle de itens que podem ser adicionados ao aluguel, tais como combustvel, seguro (danos materiais) e condutor do veculo. O sistema deve permitir que consultas sejam realizadas. Tudo isto deve estar disponvel ao gerente. O sistema deve emitir diversos tipos de relatrios, possibilitando um melhor gerenciamento dos aluguis. O administrador da empresa deve ter acesso a tudo disponvel ao gerente e aos relatrios. Os usurios podem se cadastrar no site, realizar consultas a veculos disponveis, realizar reservas e entrar em contato com a Locadora.
-
Os problemas a serem solucionados compreendem a correta venda de bilhetes, gerao de relatrios de estatsticas e de receita (total da venda dos bilhetes). Deve permitir a criao de promoes para determinados dias e sesses. Deve permitir, para determinados usurios, a realizao de incluso, alterao e excluso de preos, filmes em cada sala, perodo de validade dos preos, horrios de sesses e outros. O software precisa prover o controle de permisses para os diversos tipos de usurios (gerentes, etc). Deve permitir a busca por filmes de maneira on-line por vrios atributos diferentes, tais como nome, atores, palavras-chave dentre outros.
Exerccio 2
-
Exerccio 1
Construa um modelo de casos de uso para a seguinte situao fictcia: "Estamos criando um servio de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes so considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor".
-
Exerccio 2
Uma loja de Cds possui discos para venda e locao. Um cliente pode comprar ou locar uma quantidade ilimitada de discos. Para locar obrigatrio que o cliente esteja cadastrado na loja. A loja possui um funcionrio cuja funo atender os clientes durante a venda e locao dos discos. Suas principais tarefas so: conferir o pagamento efetuado pelos clientes; emitir recibo de venda(emisso obrigatria) e locao (emisso obrigatria); ao final do dia, anotar em uma caderneta o valor de cada venda.
-
Exerccio 3
O vendedor de uma loja de eletrodomsticos, ao efetuar uma venda, encaminha o cliente para o caixa para a realizao do pagamento do eletrodomstico adquirido. Independentemente da forma de pagamento, o caixa deve verificar, se o cliente no consta do SPC. Aps ter recebido o pagamento do cliente, o caixa deve emitir a nota fiscal ao consumidor. efetuada a baixa no estoque ao final do dia. No final do ms o vendedor deve emitir um relatrio de vendas realizadas para o gerente da loja .
-
Exerccio 4 Uma prefeitura municipal, atravs do Secretrio Municipal de
Sade, cadastra todos os mdicos que se dispe a trabalhar no servio pblico de sade do municpio. A prefeitura possui diversas unidades de atendimento (hospitais, postos de sade, ambulatrios mdicos, etc) e o Secretrio Municipal de Sade tambm mantm o cadastro destas unidades. Os cidados que desejam ter acesso ao atendimento do sistema pblico do municpio so cadastrados, pelos funcionrios das unidades de atendimento, previamente ou no momento de algum atendimento. O cidado pode agendar consultas mdicas em qualquer unidade de atendimento, atravs dos funcionrios da unidade de atendimento. Mensalmente, o Secretrio Municipal de Sade estabelece uma escala de mdicos para cada unidade de atendimento. A qualquer momento, o Secretrio Municipal de Sade pode extrair relatrios com indicadores do funcionamento do sistema. Diariamente, os funcionrios das unidades de atendimento listam as consultas mdicas agendadas para cada mdico, para acompanhamento.
-
Exerccio 5 Uma empresa de organizao de eventos gerencia seus
compromissos da forma descrita a seguir. Os clientes so cadastrados pelos representantes da empresa, juntamente com o evento que deseja que seja organizado. Se um cliente j existir no momento de cadastrar um evento, verificado se seus dados esto atualizados e, se no estiver, as alteraes de cadastro so realizadas. Uma vez definido o evento, inicia-se um processo de divulgao do evento, pelo representante da empresa, aos potenciais participantes do evento, atravs de mala direta, utilizando-se um banco de dados. A qualquer momento,orepresentante da empresa pode acrescentar nomes neste banco de dados. O representante da empresa tambm pode emitir relatrios de providncias a serem tomadas, a medida em que se aproxima o evento. Aps a realizao do evento, o representante faz o balano, para sua apurao de custos e lucro.
-
UMLDIAGRAMA DE CLASSEAula de Luiz Eduardo Guarino de Vasconcelos
-
Diagrama de Classe
Um diagrama de classes serve para modelar o vocabulrio de um sistema, do ponto de vista do utilizador/problema ou do implementador/soluo Ponto de vista do utilizador/problema na fase
de captura e anlise de requisitos, em paralelo com a identificao dos casos de utilizao
Vocabulrio do implementador/soluo na fase de projeto
Construdo e refinado ao longo das vrias fases do desenvolvimento do software
-
Objetivos Tambm serve para:
Especificar colaboraes (no mbito de um caso de utilizao ou mecanismo)
Especificar esquemas lgicos de bases de dados Especificar vises (estrutura de dados de
formulrios, relatrios, etc.) Modelos de objetos de domnio, negcio,
anlise e design
-
Pacotes
Organiza as classes de objetos em grupos. Melhorar a organizao do sistema
subsistemas Estrutura hieraquicamente o projeto Estrutura fisica dos arquivos do projeto Nomenclatura
MinsculoEndereos de web
-
Pacotes
br.edu.fatec.academico
br.com.uol.internet
org.kernel.drives
-
Pacotes
br.edu.fatec.academico
graduacao posgraduacao
-
Mundo Real x Computacional
No desenvolvimento de software orientado por objetos, procura-se imitar no computador o mundo real visto como um conjunto de objetos que interagem entre si
Muitos objetos computacionais so imagens de objetos do mundo real
Exemplos de objetos do mundo real:o Sr. Jooa aula de ES no dia 11/10/2000 s 11 horas
-
Objetos Um objeto algo com fronteiras bem definidas, relevante para o
problema em causa, com estado, modelado por valores de atributos (tamanho, forma, peso, etc.) e por ligaes que num dado momento tem com outros objetos
Comportamento um objeto exibe comportamentos invocveis (por resposta a
chamadas de operaes) ou reativos (por resposta a eventos) Identidade
no espao: possvel distinguir dois objetos mesmo que tenham o mesmo estado
no tempo: possvel saber que se trata do mesmo objeto mesmo que o seu estado mude
-
Classes
Uma classe um descritor de um conjunto de objetos que partilham as mesmas propriedades (semntica, atributos, operaes e relaes)
Um objeto de uma classe uma instncia da classe
A extenso de uma classe o conjunto de instncias da classe
-
Classes
Em UML, uma classe representada por um retngulo com o nome da classe
Habitualmente escreve-se o nome da classe no singular (nome de uma instncia), com a 1 letra em maiscula
Aluno Triangulo
Disciplina Equacao2Grau
ItemAgenda
-
Atributos O estado de um objeto dados por valores de atributos (e
por ligaes que tem com outros objetos) Todos os objetos de uma classe so caracterizadas pelos
mesmos atributos (ou variveis de instncia) o mesmo atributo pode ter valores diferentes de objeto
para objeto Atributos so definidos ao nvel da classe, enquanto que os
valores dos atributos so definidos ao nvel do objeto Exemplos:
uma pessoa (classe) tem os atributos nome, data de nascimento e peso
Joo (objeto) uma pessoa com nome Joo Silva, data de nascimento 18/3/1973 e peso 68 Kg
-
Atributos Atributos so listados num compartimento de atributos
(opcional) a seguir ao compartimento com o nome da classe
Uma classe no deve ter dois atributos com o mesmo nome
Os nomes dos tipos no esto pr-definidos em UML, podendo-se usar os da linguagem de implementao
Pessoanome: stringaltura: intpeso: double = 75
compartimento de atributos
nome do atributo tipo de dados valor inicial por default
classe
-
Exemplo
Nome do atributo em minsculo e a primeira letra da concatenao de palavra em maiscula
Expressao2Grau
a: doubleb: doublec: double
TrianguloladoA: doubleladoB: doubleladoC: doubleanguloAB: doubleanguloBC: doubleanguloCA: double
-
Atributos estticos
Atributo esttico: tem um nico valor para todas as instncias (objetos) da classe valor est definido ao nvel da classe e no ao
nvel das instncias Sublinha o atributo esttico
Provainicio: Datetermino: Datenota: Real
-
Operaes (Mtodos) Comportamento invocvel de objetos
modelado por operaes uma operao algo que se pode pedir para
fazer a um objeto de uma classe objetos da mesma classe tm as mesmas
operaes Operaes so definidos ao nvel da classe,
enquanto que a invocao de uma operao definida ao nvel do objeto
-
Operaes (Mtodos) Princpio do encapsulamento: acesso
e alterao do estado interno do objeto (valores de atributos e ligaes) controlado por operaes (Padro POJO - POCO)
Nas classes que representam objetos do mundo real mais comum definir responsabilidades em vez de operaes
Nome do atributo em minsculo e a primeira letra da concatenao de palavra em maiscula
Mtodo Construtor e Destrutor
Pessoanome: stringendereco: string
Pessoa() getNome(): stringsetNome (v:string): voidgetEndereco(): stringsetEndereco(v:string): void~Pessoa()
-
Exemplo
CirculocentroX: doublecentroY: doubleraio: doublegetCentroX(): doublesetCentroX (v:double): voidgetCentroY(): doublesetCentroY (v:double): voidgetRaio(): doublesetRaio(v:double): voidarea(): doubleperimetro(): double
Alunonome: stringprova: doubletrabalho: doublegetNome(): stringsetNome (v:string): voidgetProva(): doublesetProva (v:double): voidgetTrabalho(): doublesetTrabalho(v:double): voidmedia(): doubleaprovado(): boolean
-
Mtodos estticos
Operao esttica: no invocada para um objeto especfico da classe
No tem uma instncia da classe para invocar o mtodo.
Sublinha o mtodo estticoTriangulo
ladoA: doubleladoB: doubleladoC: doublehipPitagoras(catA: double, catB: double): double
-
Visibilidade de atributos e operaes Princpio do encapsulamento: esconder todos
os detalhes de implementao que no interessam aos clientes (utilizadores) da classe permite alterar representao do estado sem afetar
clientes permite validar alteraes de estado
Visibilidade+ (public) : visvel por todos- (private) : visvel s por operaes da prpria classe# (protected): visvel por operaes da prpria classe e
descendentes (subclasses)
-
Exemplo
Circulo-centroX: double-centroY: double-raio: double+getCentroX(): double+setCentroX (v:double): void+getCentroY(): double+setCentroY (v:double): void+getRaio(): double+setRaio(v:double): void+area(): double+perimetro(): double
Aluno-nome: string-prova: double-trabalho: double+getNome(): string+setNome (v:string): void+getProva(): double+setProva (v:double): void+getTrabalho(): double+setTrabalho(v:double): void+media(): double+aprovado(): boolean
-
UMLDIAGRAMA DE CLASSERELACIONAMENTOAula de Luiz Eduardo Guarino de Vasconcelos
-
Objetivos Generalizao Associao Agregao Composio Dependncia
-
Generalizao Relao semntica is a ( um / uma)
um aluno uma pessoa Relao de herana nas propriedades
A subclasse herda as propriedades (atributos, operaes e relaes) da superclasse, podendo acrescentar outras
Pessoa
Aluno
generalizao
super-clase
especializao
sub-classe
-
As 3 facetas da generalizao Substitutabilidade
onde se espera um objeto da superclasse pode-se passar um objeto duma subclasse
Herana de interface a subclasse herda as assinaturas (e significados) das
operaes da superclasse Herana ou overriding de implementao
a subclasse pode herdar as implementaes das operaes da superclasse, mas tambm pode ter novas implementaes de algumas dessas operaes
quando em UML se repete numa subclasse a assinatura de uma operao da superclasse, quer dizer que tem uma nova implementao na subclasse
-
Hierarquia das classes
Na super classe da hierarquia colocam-se as propriedades que so comuns a todas as suas subclasses
Evita-se redundncia, promove-se reutilizao!Poligono
centroX: intcentroY: int
Triangulobase: intaltura: int
Quadradolado: int
PoligonocentroX: intcentroY: int
Triangulobase: intaltura: int
Quadradolado: int
-
Herana simples / mltipla
Herana Simples quando uma subclasse possui apenas uma superclasse
Herana Mltipla quando uma subclasse possui mais de uma superclasse
Pessoa
Aluno Professor
AlunoFuncionario
Aluno Funcionario
simples mltipla
-
Classes e operaes abstratas Classe abstrata: classe que no pode ter instncias
diretas. As instncias somente pelas subclasses concretas
Operao abstrata: operao com implementao a definir nas subclasses. Uma classe com operaes abstratas tem de ser abstrata
Notao : nome em itlico
PoligonocentroX: intcentroY: intarea(): double
Triangulobase: intaltura: intarea(): double
Quadradolado: intarea(): double
-
Associao Uma associao uma relao entre objetos das
classes participantes (um objeto de cada classe em cada ligao)
Essa ligao uma instncia de uma associao Implementado atravs de uma referncia entre os
objetos relacionados Pode haver mais do que uma associao (com nomes
diferentes) entre o mesmo par de classes Papis nos extremos da associao podem ter
indicao de visibilidade (pblica, privada, etc.)Participante-1 Participante-2
Papel-1 Papel-2
Cardinal-2Nome da associaoCardinal-1
-
Nome da Associao
A indicao do nome opcional O nome indicado no meio da linha que une
as classes participantes Pode-se indicar o sentido em que se l o
nome da associaoEmpresa Pessoa
Pessoa Carro
empregador empregado
pessoa carros
1 *
Trabalha para
Emprega
comprado
compra
-
Multiplicidade de Associaes
-
Acesso a Multiplicidade
Departamento
-nome: string-sigla: string+getNome(): string+setNome (v:string): void+getSigla(): string+setSigla (v:string): void+addFunc(v:Funcionario):bool+iteratorFunc():Iterator+removeFunc(idx:int): Funcionario+sizeOfFunc(): int
Funcionario
-nome: string-rg: string+getNome(): string+setNome (v:string): void+getRg(): string+setRg(v:string): void+getDepartamento(): Departamento+setDepartamento(v:Departamento): void
func
1 *dep
-
Associao reflexiva
Pode- se associar uma classe com ela prpria (em papis diferentes)
Pessoapai me
filho
filho
0..1*
*
1
-
Associaes bidirecionais /unidirecional As associaes so classificadas quanto
navegabilidade em: Bidirecional ambos objetos possuem
referncia. Unidirecional deve ser armazenada em
uma varivel de instncia na classe de origem da associao e seu tipo deve ser a classe de destino.
Classe 1 Classe 2bidirecional
Classe 3 Classe 4unidirecional
-
Exemplosbidirecional
unidirecional
Alunonome: stringendereco: string
Disciplinanome: stringsigla: string
alunos disciplinas* *
Clientenome: stringendereco: string
Fitatitulo: stringgenero: string
clientes fitas* *
A classe Cliente recebe a Lista de Fitas e a classe Fita no recebe nada
-
Agregao Associao com o significado contm ( constitudo por)
/ faz parte de (part of) Relao de incluso nas instncias das classes Hierarquias de objetos. Exemplo: Casa
Cmodo
Uma casa contm vrios cmodosUm cmodo faz parte de uma casa
*
1
Quando a Casa for eliminada, os cmodos tambm devem ser eliminados atravs da classe Casa
-
Exemplosbidirecional
unidirecional
Institutonome: stringendereco: string
Departamentonome: stringsigla: string
instituto departamentos
1 *
Horta local: string
Legumenome: stringpeso: double
horta legumes* *
Quando Instituto for eliminado, os Departamentos tambm devem ser eliminados atravs da classe Instituto. O mesmo vale para a relao Horta e Legume abaixo
-
Composio
Forma mais forte de agregao aplicvel quando: existe um forte grau de pertence das partes ao
todo cada parte s pode fazer parte de um todo o topo e as partes tm tempo de vida coincidente,
ou, pelo menos, as partes nascem e morrem dentro de um todo
a eliminao do todo propaga-se para as partes, em cascata
Notao: losango cheio A Classe com a agregao cria, acessa e
-
Exemplosbidirecional
unidirecional
Carroplaca: stringmodelo: string
Motorserie: intpotencia: double
carro motor
1 1
Livrotitulo: string
Capitulotitulo: stringgenero: string
livro capitulos
1 *
Classe Carro cria Motor no construtor, destri Motor no destrutor e acessa Motor no programa principal via um Mtodo na classe Carro
-
Dependncia Relao de uso entre dois elementos (classes,
componentes, etc.), em que uma mudana na especificao do elemento usado pode afetar o elemento utilizador
Exemplo tpico: classe1 que depende de outra classe2 porque usa operaes ou definies da classe2
teis para gesto de dependncias Construtor alterado. Ex.: Cliente s pode existir se
Servidor existir. Assim, Cliente recebe Servidor no construtor alterado
Cliente Servidor
-
Exemplos
Para que um Estado exista necessrio que um Pas exista antes, desta forma, Estado deve receber no construtor a instncia de Pais.
Funcionario Departamento
Estado Pais