aula 7 diagramas_classes2

24
1 UML DIAGRAMAS DE CASOS DE USO Profs: Edgar Gemo Zeferino 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)

Upload: portaldoestudanteads

Post on 03-Jul-2015

569 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Aula 7 diagramas_classes2

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)

Page 2: Aula 7 diagramas_classes2

2

UML

Diagramas Classes

• Profs: Edgar Gemo• Zeferino Saugene

UML

IntroduçãoAspectos tratados pelos Diagramas deClasse: Dados e Funções

Page 3: Aula 7 diagramas_classes2

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)

Page 4: Aula 7 diagramas_classes2

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

Page 5: Aula 7 diagramas_classes2

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

Page 6: Aula 7 diagramas_classes2

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

Page 7: Aula 7 diagramas_classes2

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}

Page 8: Aula 7 diagramas_classes2

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

Page 9: Aula 7 diagramas_classes2

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

Page 10: Aula 7 diagramas_classes2

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..*

Page 11: Aula 7 diagramas_classes2

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

Page 12: Aula 7 diagramas_classes2

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..*

Page 13: Aula 7 diagramas_classes2

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

Page 14: Aula 7 diagramas_classes2

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

Page 15: Aula 7 diagramas_classes2

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:

Page 16: Aula 7 diagramas_classes2

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.

Page 17: Aula 7 diagramas_classes2

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.

Page 18: Aula 7 diagramas_classes2

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

Page 19: Aula 7 diagramas_classes2

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.

Page 20: Aula 7 diagramas_classes2

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?

Page 21: Aula 7 diagramas_classes2

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.

Page 22: Aula 7 diagramas_classes2

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.

Page 23: Aula 7 diagramas_classes2

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.

Page 24: Aula 7 diagramas_classes2

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