Escolar Documentos
Profissional Documentos
Cultura Documentos
<<uses>>
Vendedor
Processar pedido
Cliente
O cliente seleciona os produtos O vendedor faz a abertura da venda O vendedor registra os itens vendido informando a identificao e a quantidade de cada item. Cada item relaciona-se com um produto O vendedor totaliza a venda para o cliente O cliente seleciona a forma de pagamento, podendo ser a transao a pagamento vista ou a prazo O vendedor emite o ticket de caixa para o cliente O vendedor d a baixa no estoque Obs.: itlico = atores grifado = possveis classes if d i l OBJETIVO : ENCONTRAR AS CLASSES NESTA DESCRIO DO CASO DE USO
Ator o
Classes
Cliente Transao Item Estoque q
Produto
Diagrama de Classes
Um diagrama de classes descreve a viso esttica do sistema em termos de classes e relacionamentos entre as classes. classes Um dos objetivos do diagrama de classes definir a base para que outros diagramas apresentem outras vises do sistema. Um diagrama correlato ao diagrama de classes o diagrama de objetos, que apresenta instncias das classes
Exemplo
Compra
10
Polticas de acesso
public: Atributos e mtodos definidos com a clusula public podem ser acessados por qualquer outra classe private: Atributos e mtodos definidos com a clusula private s podem ser acessados pela classe que o define protected: A ib Atributos e mtodos definidos com a clusula d d fi id l l protected podem ser acessados pela classe que o define e pelas suas subclasses descendentes l b l d d t
12
14
Finalizando atributos...
Exemplo: p
Pedido
+ quantidade: real + data: Date = Data_Atual + cliente: String + comentarios: String g - administrador: String = No especificado - numeroDeProdutos : inteiro
quantidade : real data : Date = Data_atual cliente : String administrador : String = "No Especificado" numeroDeProdutos : inteiro
Pedido
15
Implementando atributos de uma classe em Java Uma classe representada em UML pode ser facilmente implementada em linguagem OO. Ex: OO
Pedido
+ quantidade: real + data: Date = Data_Atual + cliente: String g - numeroDePedidos : inteiro = 0 pub c class ed do public c ass Pedido { public double quantidade; p public Date data = new Date(); () public String cliente; static private int numeroDePedidos = 0; }
16
Mtodos ou Operaes
Conceito: a implementao de um servio prestado pelo objeto para a comunidade de objetos ou a si mesmo. Tipos de Mtodos
Mtodos de Acesso Fita de vdeo: situao da fita, nome do filme, preo de g aluguel Mtodos Gerais Fita de vdeo: cadastramento, emprstimo, excluso
17
Representao de Operaes
Operaes so utilizadas para manipular os atributos ou para realizar outras aes. Para se representar uma operao descreve-se o tipo de retorno, o nome da operao e os parmetros que ela pode receber (em outras palavras, representa-se a assinatura da operao) Tambm o conceito de visibilidade se aplica operaes
18
Empregado
Exemplo:
Empregado
nome : String endereco : String salario : Currency setEndereco(e : String) calInss() : Currency calIRPF() : Currency
19
20
Associao
Generalizao
Agregao A
Dependncia
Composio
Realizao
21
Em UML uma associao definida como um relacionamento estrutural que especifica objetos de um item conectados a objetos de outro item. item Associao representada graficamente como uma linha slida conectando a mesma classe ou classes diferentes.
Associao
Uma associao normalmente bidirecional, ou seja, se bidirecional seja um objeto est associado a outro objeto, ambos sabem que isto est acontecendo
22
23
Associaes normais
Deve possuir um nome (geralmente um verbo) pertencente ao domnio do problema Uma seta no final da linha indica que a associao somente pode ser utilizada em uma nica direo Associaes podem ter dois nomes (um para cada direo). Um tringulo slido junto ao nome indica a di ) U t i l lid j t i di direo que se deve ler a associao
nome
usa
Direo do nome
Autor
Computador
24
Associaes (papel)
Quando uma classe participa de uma associao, ela tem um papel especfico a executar nesse relacionamento R Representa a face que a classe prxima a uma das t f l i d extremidades apresenta classe encontrada na outra extremidade da associao
Tra b a l h a p a ra
Empres a
25
Multiplicidade de associaes
A multiplicidade especifica quantos objetos participam da ligao. Ela desenhada no final da associao, perto da classe onde ela se aplica Se no especificada, assume-se exatamente um (1) Outros exemplos de multiplicidade podem ser:
Zero ou um (0..1) Zero a muitos (0..*) ou (*) Um U a muitos (1 *) i (1..*) Exatamente dois (2) Cinco a onze (5..11) (5 11) Um, quatro, seis e oito a doze (1, 4, 6, 8..12) etc. etc
26
Multiplicidade de associaes
Exemplo:
Tra b a l h a p a ra
Em pregado
1.. 1 * funcionrio
Em pres a
em pregador
27
Exemplo
Companhia de Seguros 1 tem 4
3 refere-se a
0..*
t expresso em expressa u
1 Poltica de Seguros
Companhia d S C hi de Seguros
tem 4 t
3 refere-se a
0..* 0 *
Contrato d S C t t de Seguros
//Arquivo C //A i CompanhiaDeSeguros.java hi D S j public class CompanhiaDeSeguros { ... private Vector contratoDeSeguros; ... } //Arquivo ContratoDeSeguros.java public class ContratoDeSeguros { ... p private CompanhiaDeSeguros refere; p g ; ... }
29
Associaes recursivas
Conecta uma classe ela mesma A nica diferena que a ligao ocorre entre objetos da mesma classe. Exemplo: classe
No
0..*
0..*
Papis em associaes
Uma associao pode conter papis conectados a cada classe envolvida na associao O nome do papel uma string posicionada perto da classe para a qual aquele papel se aplica. Ex: aplica
em prega
Empresa
+empregador
32
Associaes Qualificadas
Uma associao qualificada o equivalente em UML idia de arrays, mapas ou dicionrios associativos Exemplos Dado um produto podemos saber qual o item de pedido associado a ele (caso exista algum)
33
Associaes Qualificadas
A partir de uma URL possvel descobrir os acessos ocorridos
Acesso Histrico URL 1.. 1 * # Data : Date + getData () : Date + nmeroDeDias( ) : Number
Associaes do tipo ou
possvel que em alguns modelos nem todas as combinaes de associaes sejam vlidas Quando uma associao no puder acontecer ao mesmo tempo que outra associao, pode-se restring-las por meio de uma associao ou I t significa que um objeto pode participar de no mximo Isto i ifi bj t d ti i d i uma associao por vez
35
Companhia de Seguros 1
0..* 0*
Contrato de Seguros
0..* 0*
0..* 0*
{ou}
1..*
1..*
Empresa
Pessoa
36
Associaes ordenadas
As ligaes entre objetos podem ter de ser efetuadas segundo uma ordem especfica Quando isto for necessrio, deve-se indicar a associao correspondente como um associao ordenada. Ex:
po ssui
Cliente 1. .* 0. .*
Contrato
37
Classe Associativa
Uma classe pode ser atachada a uma associao N t caso di Neste diz-se que esta uma classe resultante de uma t l lt t d associao ou uma classe de associao introduzida quando uma associao tem propriedades i d id d i i d d associadas Ela tem as mesmas caractersticas que as demais classes. l i d i l
Companhia * 1..* Empregado
Agregao
Uma agregao um tipo especial de associao g g p p Ela indica um relacionamento parte-todo entre as classes Sua presena pode ser percebida a partir da existncia de relacionamentos cujas denominaes incluam expresses como consiste de, contm ou parte de Partes Em uma Agregao a vida das Partes no est relacionada vida do Todo
39
Exemplos de agregao
todo todo
Carro 1. .*
Tim e 1..* 1 *
Com putador
Peas
parte p parte
Jogad or
todo
todo
Gabinete
parte todo
Tec lado
parte
M onitor
parte
1..*
CP U
V ento inha
Dis kDrive
Te cla
parte
parte
parte
parte
40
Agregado Compartilhado
Ele existe na medida que uma parte pode fazer parte de mais de um todo. Exemplos:
Tim e 1..* 1..* Jogad or
D is co 1..* 1..*
Ms ica
41
Agregao de Composio
Uma agregao de composio possui suas partes As partes vivem dentro do todo. Sem este todo as p partes no p podem sobreviver ( (deixam de fazer sentido) ) A partir do momento que o todo destrudo, as partes tambm o so Uma estratgia de implementao de composio a declarao das classes partes dentro da declarao da classe todo todo
42
43
Generalizaes (Herana)
Relacionamento entre classes onde uma classe X compartilha estado e/ou comportamento de uma classe Y Define uma hierarquia de abstraes em que uma subclasse herda de uma ou mais superclasses Relacionamento entre um elemento mais geral (chamado l i l i l( h d de superclasse ou pai) e um mais especfico (chamado de subclasse ou filho) b l filh )
44
Herana
Uma classe
criada como subclasse de uma superclasse herdando as especificaes (estado e comportamento) desta ltima pode re-especificar e acrescentar estado e comportamento ao herdado da sua superclasse
superclasse
subclasse
classe: moblia
classe: cadeira
a classe cadeira herda ( subclasse) da classe moblia e pode definir atributos e operaes prprias
45
Herana
o compartilhamento pela subclasse dos atributos e operaes da classe pai.
mesa
cadeira
armrio
armrio de WC
armrio de sala
46
Herana
A herana pode ser: Simples - uma classe apenas herda de uma superclasse Mltipla - uma classe herda de mais do que uma superclasse
veculos
veculos
simples
terrestres
automveis comboios
aquticos
areos
mltipla
hovercrafts
47
genera alizao o
espec cializa o
Estudante
RA matricular estudar
Trabalhador
CPF funo trabalhar bater carto
48
Exemplo de herana
especial e lizao
generali g izao
Mensalista Cargo Cal_salario
49
Generalizao
Deve ser usado com cuidado. As classes pai e filha possuem um forte acoplamento Mudanas na classe pai acoplamento. podem fazer com que o comportamento da classe filha deixe de ser vlido
Forma origem mover() exibir()
Quadrado 50
Generalizaes
Exemplo:
Tra nsao
51
Dependncias
Dependncias so relaes de uso Uma dependncia indica que mudanas em um elemento (o servidor) podem afetar outro elemento (o cliente) servidor ) cliente ) Uma dependncia entre classes indica que os objetos de uma classe usam servios dos objetos de outra classe Relaes pouco usadas
Cliente
Servidor
52
1..* Instrutor
Exerccios
Suponha que os trabalhos da Clnica Mdica iniciem com a chegada de um Paciente. O provvel paciente dirige-se Enfermeira que est na portaria e se identifica lhe dizendo seu nome e o nmero de algum documento. A enfermeira verifica se o paciente j foi atendido em alguma Data anterior. Caso seja constatado que o Paciente nunca foi atendido na Clnica ele Clnica, fornece Informaes Pessoais Enfermeira que efetua o seu cadastramento. Aps esse passo, o Paciente est apto a marcar uma Consulta, caso seja do seu interesse. A Enfermeira precisa se organizar e identificar uma Data e um Horrio em que a Consulta possa ser marcada. O Paciente, ento, est apto a entrar na sala do Mdico que previamente muniu-se de informaes Mdico, muniu se do Paciente. Neste momento, o Paciente precisa esboar ao Mdico todos os Sintomas, Problemas e Restries que o levaram clnica. O Mdico, ento, avalia essas Informaes d S d d Paciente e efetua um li f da Sade do i f Diagnstico que pode ser seguido de um Pedido de um Retorno. Ao sair da sa a sala do Mdico, o Paciente precisa informar enfermeira os dados do d co, ac e te p ec sa o a e e e a Pagamento que podem ser feitos em dinheiro ou por algum Convnio 54 Mdico.