aula 7 diagramas_classes2
TRANSCRIPT
1
UML
DIAGRAMAS DECASOS DE USO
Profs: Edgar GemoZeferino Saugene
UML
Casos de uso
• Os Uses Cases ou ”casos de utilização”constituem em UML uma técnica para representar o levantamento de requisitos do sistema (Nunes, 2001)
• Desde sempre que o correcto levantamento de requisitos no desenvolvimento de sistemas de informação tenta garantir que o sistema será útil para o utilizador final, estando de acordo com as suas necessidades (Nunes, 2001:13)
2
UML
Diagramas Classes
• Profs: Edgar Gemo• Zeferino Saugene
UML
IntroduçãoAspectos tratados pelos Diagramas deClasse: Dados e Funções
3
UML
Introdução
• Um Diagrama de Classes:– Dá uma visão estática do sistema;– Exibe um conjunto de classes,
interfaces e seus relacionamentos;– As classes especificam tanto a
estrutura como o comportamento dos objectos (que são instâncias de classes);
UML
Introdução
• Ao completar os diagramas de interação, podemos completar o diagrama de classes:– Normalmente criamos os diagramas
de classe em paralelo aos de interação
• No final, precisamos apenas incluir os detalhes que faltam (métodos, atributos ou associações)
4
UML
Introdução• Informações tipicamente
encontradas num Diagrama de Classes:– Classes, associações e atributos– Interfaces, incluindo métodos e
constantes– Métodos– Informação de tipo de atributos– Navegabilidade– Dependências
UML
Exemplo de Diagrama de Classes
Nome da Classe
Operação
Atributo
Estudante
CodEstudante : string
Nome : String
Apelido : String
BI/DIR : String
Endereço : String
Sexo : char
dataNascimento : date
Naturalidade : string
registarEstudante()
alterarDadosestudante()
removerEstudante()
Inscrição
CodEstudante : String
CodDisciplina : String
DataInscrição : date
efectuarInscricao()
alterarIncricao()
removerInscricao()
listarInscritos()
1..*1 1..*1
Disciplina
CodDisciplina : String
Nome : String
Descrição : String
Nível(Ano) : Integer
Semestre : String
RegimeTemporal : Integer
CargaSemanal : integer
Bibliografia : String
registarDisciplina()
alterarDisciplina()
removerDisciplina()
11..* 11..*
Associação Multiplicidade
5
UML
Construindo umDiagrama de Classes
• Identificar todas as classes que participam no sistema
• Adicionar as classes ao diagrama
• Identificar os atributos para cada classe
• Adicionar os métodos respectivos a cada classe
UML
Construindo umDiagrama de Classes
• Escolher os tipos dos atributos e dos parâmetros dos métodos
• Incluir as associações necessárias para dar visibilidade de atributos
• Adicionar setas às associações para indicar a direção da visibilidade de atributos (opcional)
• Introduzir linhas de relações de dependência para indicar a visibilidade que não seja de atributo
6
UML
Atributos• Um atributo representa alguma
propriedade que é compartilhada por todos os objectos de uma classe
• Descrevem os dados contidos nas instâncias de uma classe
• Servem para manter o estado dos objectos.– Cada objecto possui valores
independentes para os mesmos atributos
UML
Sintaxe de Atributos
• Sintaxe– [visibilidade] nome [[multiplicidade]] [:tipo]
[= valor inicial] [{propriedades}]– Atributos de classe são sublinhados
• Exemplos– CPF: Integer– Nome: String = “Alberto”– Endereço [0..20] : String– gerenciadorDeJanelas: GerenciadorDeJanelas
7
UML
Operações• Uma operação é a implementação de um
serviço que pode ser requisitado a qualquer objecto ou classe, possivelmente afectando o seu estado– A execução de uma operação pode resultar na
alteração do valor de seus atributos– Operações de instância
• Actuam sobre uma instância (objecto) de uma classe
– Operações de classe• Actuam sobre a classe, criando e/ou modificando
atributos de classe
UML
Sintaxe para Operações• Sintaxe
– [visibilidade] nome [(lista-de-parâmetros)][:tipo-de-retorno] [{propriedades}]
– Operações de classe são sublinhadas
• Exemplos– LerTemperatura () : Number– Área (Lado : Integer) : Integer– ValorPadrão () : Integer {query}
8
UML
Relacionamentos
• Poucas classes têm sentido sozinhas• Os relacionamentos ligam
classes/objectos entre si criando relações lógicas entre eles
• Os relacionamentos podem ser dos seguintes tipos:– Associação,– Agregação e Composição ,– Generalização e Herança.
UML
Notação para Relacionamentos
Agregação Dependência
Herança
Realização
Associação
Composição
9
UML
Associação• Surge da necessidade de obter
mais informação de uma associação.
• Normalmente, as classes associativas surgem nas relações de “Muitos para Muitos”
Companhia Funcionárioemprega
rótulo da associação
UML
Classe Associativa
• É introduzida quando uma associação tem propriedades associadas
Companhia Empregado1..**
Trabalho
descrição
salário
10
UML
Associação Unária
• Quando há um relacionamento de uma classe para ela mesma
Funcionário
1
1..*
1
1..*
gerencia
rótulo da associação
UML
Associação Binária
• Quando há duas classe envolvidas na forma direta de uma para a outra
Cliente Pedido
0..*1
faz
1 0..*
11
UML
Associação N-ária
• As linhas das associações são conectadas por um losango
UML
Agregação e Composição
• A Agregação pretende demonstrar que um “Todo” é composto por “Partes”
• A Composição é uma forma mais forte de Agregação– Há uma coincidência da vidas das partes– Uma vez criada a parte, ela irá viver e morrer
com o todo– O “Todo” é responsável pelo gerenciamento
da criação e destruição das partes
12
UML
Agregação e Composição
• Exemplo de uma Agregação
Restaurante
NomeMorada
Mesa
Num_Mesa1 1..*
UML
Exemplo de uma Composição
Encomenda
numEdatatipoE
Item Encomenda
numItemquantidade1 1..*
13
UML
Generalização e Herança
• Generalização (Herança)– Relacionamento entre um elemento
mais geral e um mais específico
– O Conceito Herança está presente, pois as subclasses (filhos) herdam da superclasse (pai) a estrutura em termos de atributos e operações.
UML
Exemplo de GeneralizaçãoForma
origem
mover()
exibir()
Retângulo
ponto : Ponto
Círculo
raio : float
Polígono
pontos : ListaDePontos
exibir()
Quadrado
14
UML
Multiplicidade• É a cardinalidade de uma associação
(também usa-se 0..*)
UML
Navegabilidade
• Em geral a navegação entre as classes de uma associação é bi-direcional.
• Porém, podemos limitá-la a apenas uma direção
SenhaUsuáriotem
15
UML
Exemplos de Diagramas de Classes
Classes que se relacionam duplamente:
Informação que surge a partir da associação deduas outras classes:
UML
Exemplos de Diagramas de Classes
Agregação:
16
UML
Exemplos de Diagramas de Classes
Composição:• A remoção do todo
implica na remoção das partes;
• O acesso às partes érestrito ao todo.
UML
Exemplos de Diagramas de Classes
Generalização/Especificação – A Classe Abstracta•Não permite a criação de objectos;•Existe apenas para gerar novas sub-classes.
17
UML
Diagramas de Classes - Restrições
• Descrevem situações que NÃO podem ocorrer no modelo
• Pode ser usado para:
�Que o programador siga a orientação,
�Transformação formal de modelos (MDA).
UML
Diagramas de Classes - RestriçõesRestrição {ou}implica na selecção exclusiva entre duas ou mais associações existentes em uma classe.
Observação:possível mapeamento para uso de restrição {ou} com multiplicidade máxima 1.
18
UML
Diagramas de Classes - Restrições
Observar que para associações OU do tipo 1..* não possível mapear directamente para herança.
UML
Diagramas de Classes - Restrições
19
UML
Diagramas de Classes - DiscussãoDado o modelo de controle académico:• O aluno pode exercer o papel de monitor durante um período• Permitir que uma pessoa exerça simultaneamente o papel de
Professor e Aluno da Universidade
Qual é o Problema?
UML
Diagramas de Classes - Discussão
Qual é o Problema?
• Acomodação inábil de objectos que mudam de classes,• Transmutação.
20
UML
Diagramas de Classes - Discussão
A Solução Óptima:
• Combinar herança e associação.
UML
Diagramas de Classes - Erros Comuns
1. Usar classes ou associações para representarconsultas ou operações do sistema que não devem ser registradas.
2. Identificar métodos nas classes sem ter feito a modelação temporal
O que é sintonizar?
-Quem usa?
-Quais os parâmetros?
21
UML
Diagramas de Classes - Erros Comuns
3. Inserir atributos quando o ideal é criar uma classe.
UML
Diagramas de Classes - Erros Comuns
4. Usar herança quando a quantidade de tipos é grandeou dinâmica.
22
UML
Diagramas de Classes - Erros Comuns
5. Inserir chaves-estrangeiras no diagrama de classes:
• As associações são suficientes.
UML
Diagramas de Classes -Exercícios
1. Em uma Universidade, o plano de carreira para professores é dividido em quatro etapas: Auxiliar, Assistente, Adjunto e Titular.
• Construa um modelo de classes que preserve o histórico de um professor durante a sua vida profissional. Em particular, éimportante manter o registro do início e término do desempenho em uma das etapas.
2. Considerando um sistema de gestão duma cadeia de Hoteis e os seus serviços, desenhar um diagrama de classes mostrando relacionamentos entre as seguintes classes de objectos (Incluir associações, agregações, generalizações e atributos):
• Hotel, quarto, hóspede, funcionário, sauna, boate, restaurante, bar, piscina, reserva e outras classes relacionadas.
23
UML
Diagramas de Classes - Exercícios3. Considere o diagrama de classes UML abaixo e marque a
alternativa correcta:
a) Considerando um objecto e qualquer de Empresa, pode-se afirmar que a quantidade de objectos de Funcionário que participam da associação a com e é sempre inferior à quantidade de objectos que participam de b (também com e);
b) Não existem objectos de Funcionário que participam simultaneamente da associação a e b com um objecto de Empresa;
c) Pode existir um objecto de Empresa que não esteja associado a qualquer objecto de Funcionário, seja pela associação a ou b;
d) Um objecto de Funcionário pode estar associado com mais de um objecto de Empresa;
e) A associação de subordinação garante que um supervisor estáassociado com subordinados que estão na mesma Empresa.
UML
Diagramas de Classes - Exercícios4. Considere o diagrama de classes UML abaixo e marque a
alternativa correcta:
a) Para cada objecto de Actividade existe somente um único valor de data-início;
b) Um objecto de Actor pode simultaneamente gerir vários projetos e actuar em várias actividades;
c) Um Objectivo pode ser atendido por vários objectos de Actividade;
d) Em um Projecto sua duração é determinada pela duração de suas actividades;
e) Os objectos de Actividade são ordenados pelo valor do atributo id.
24
UML
Bibliografia• Bennett, S. et all (2002) Object-Oriented
Systems Analysis and Design using UML, U.S., Mc Graw-Hill Education
• Bezerra, E. (2003), Princípios de Análise e Projecto de Sistemas com UML, Rio de Janeiro, Editora Campus Ltda
• Neto, A.C. (2001), Análise e Projeto de Sistemas I, http://www.dcce.ufs.br/
• Nunes, M. e O´Neill (2001), Fundamental de UML, Lisboa, FCA - Editora de Informática