• Nenhum resultado encontrado

Fundamentos de modelagem OO em UML

N/A
N/A
Protected

Academic year: 2019

Share "Fundamentos de modelagem OO em UML"

Copied!
43
0
0

Texto

(1)

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática

Fundamentos de

modelagem OO em UML

Diagrama de Classes

-básico

(2)

PUCRS - FACIN Introdução

A modelagem de objetos incorpora a estrutura

estática de um sistema mostrando:

– os objetos pertencentes ao sistema

– os relacionamentos entre esses objetos – os atributos de cada objeto

(3)

PUCRS - FACIN Introdução

Existem dois tipos de diagramas UML para a

modelagem de objetos:

Diagrama de Classes: é um esquema, um padrão ou um modelo que descreve muitas instâncias de objetos.

Diagrama de Objetos: descreve como os objetos de um determinado grupo (classe) se relacionam entre si.

• serve para documentar casos de teste e exemplos para discussão.

Ambos os diagramas oferecem uma notação gráfica

formal para a modelagem de objetos e seus

(4)

PUCRS - FACIN Classe / objeto

anaFunc:Funcionario

Nome = ”Ana Souza” dataAdmissão = 12/01/95 cartIdent = 64736482847 salarioBase = 3.200,00

Nome do objeto

joseFunc:Funcionario

nome = ”José Silva”

dataAdmissão = 12/01/89 cartIdent = 83742348488 salárioBase = 3.000,00

Funcionario

- nome: String

- dataAdmissao: Date - cartIdent : String

- salarioBase: Currency + calcularSalario()

+ calcularIrFonte()

<<instanceOf>> <<instanceOf>>

Nome da classe

Relação de Dependência

Classe

(5)

PUCRS - FACIN Diagramas de Classes

Diagramas de Classes são utilizados para modelagem estática. A modelagem estática deve dar suporte as necessidades

funcionais do sistema, isto é, os serviços que o sistema deve providenciar aos seus usuário finais.

Os Diagramas de Classes são utilizados para modelar:

o vocabulário do sistema que especifica as abstrações que estão contidas dentro do domínio do sistema, identificando suas responsabilidades.

a colaboração que envolve trabalho conjunto entre objetos do sistema visando um comportamento cooperativo. Esta

cooperação traduz-se no diagrama de classes através das relações existente entre as classes identificadas.

(6)

PUCRS - FACIN

Classe

: refere-se a descrição de um conjunto de

objetos que compartilham os mesmos atributos,

operações, relacionamentos e semântica.

– outros compartimentos podem ser acrescentados

(responsabilidades, exceções, eventos, etc.)

Classe

Nome da Classe Funcionário

- nome: string

- data_admissão: data - CPF : string

- salárioBase: float = 0.0

+ calculaSalario()

+ calculaIR() Operações

(7)

PUCRS - FACIN Nome da classe

O

nome

de uma classe distingue uma classe de outra

classe.

nome simples: nome sozinho

nome com caminho: o nome da classe é precedido pelo nome do pacote (subsistema) em que a classe existe.

Sistema_vendas :: Cliente Cliente

(8)

PUCRS - FACIN Atributo

Cada objeto de uma classe possui um estado,

representado pelos valores associados a cada um dos

atributos definidos.

Sintaxe para atributos:

[visibilidade] nome [multiplicidade] [: tipo] [= valor inicial] [{propriedades}]

* atributos de classe são sublinhados

Exemplos:

idade

- endereço [0..2] : String + CPF : inteiro {frozen}

(9)

PUCRS - FACIN Atributo

Visibilidade

– público (+) : o que pode ser visto pelas operações de outras classes

– protegido (#) : o que pode ser visto apenas pelas operações da própria classe e por suas classes herdeiras

– privado (-) : o que pode ser visto apenas pelas operações da própria classe

Propriedades

changeable: não há restrições quanto a modificação do valor do atributo (default)

frozen: o valor do atributo não pode ser alterado depois que for definido.

(10)

PUCRS - FACIN Operação

Uma

operação

é um serviço que pode ser requisitado

a qualquer objeto da classe, afetando o seu estado.

– a execução de uma operação por um objeto pode resultar na alteração do valor de seus atributos.

Distinção entre operações de classes e objetos:

Operação de objeto: atua sobre um objeto (instância)

Operação de classe: atua sobre a classe (conjunto de objetos)

(11)

PUCRS - FACIN Operação

Sintaxe para Operações

:

[visibilidade] nome [(lista-de-parâmetros)] [:tipo-retorno] [{propriedades}]

* operações de classe são sublinhadas.

Exemplos:

imprimirTemperatura

(12)

PUCRS - FACIN

Responsabilidade

de uma classe diz respeito as suas

obrigações dentro do contexto do sistema.

– ao refinar o modelo, as responsabilidades de uma classe são traduzidas em um conjunto de atributos e operações que

melhor atendam as suas obrigações.

Sensor de Temperatura

+ reiniciar

+ iniciarAlarme

+ avaliarTemperatura

Monitorar temperatura

Disparar alarme quando a temperatura atingir valores inadequados

(13)

PUCRS - FACIN Relacionamentos entre classes

Os

relacionamentos

determinam as ligações entre os

objetos.

Fornecem um caminho para a comunicação entre os

objetos.

Principais tipos de relacionamentos:

– Associação

(14)

PUCRS - FACIN

Uma

associação

é um relacionamento estrutural que

descreve um conjunto de ligações, onde uma ligação é

uma conexão entre objetos.

Funcionário Empresa

1 0..*

trabalha-para

0..* 1

(15)

PUCRS - FACIN Associação - adornos

Multiplicidade

especifica quantas instâncias de uma

classe se relacionam a uma única instância da outra

classe.

– Número fixo: estabelece o número exato de objetos relacionados

• Ex.: 2

– Intervalo de Valores: define a multiplicidade mínima e máxima

• Ex.: 1..5

– Multiplicidade Máxima Ilimitada :

(16)

PUCRS - FACIN

Multiplicidade

– (1-1): cliente tem uma e somente uma conta

– (0-1): cliente pode ter uma conta

– (1-N): cliente tem no mínimo um conta, mas pode ter mais

– (0-N): cliente pode ter várias contas

1

CLIENTE CONTA

0..1 CLIENTE

1..*

CLIENTE CONTA

*

CLIENTE CONTA

Associação - adornos

(17)

PUCRS - FACIN

Papel

(opcional)

Associação - adornos

Pessoa

nome datNasc

Marido

Esposa Casamento

trabalha-para Empresa

nome endereço

empregado empregador

Funcionário

nome cartTrab datNasc

1..* *

Direção de leitura

0..1

(18)

PUCRS - FACIN

Navegabilidade

:

– por definição, a navegação entre classes associadas é bidirecional (segmento de reta)

– por conveniência, a navegação pode ser restringida a uma única direção (vetor)

– não confundir com sentido para leitura de nome de associação!

Usuário 1 * Senha

(19)

PUCRS - FACIN Agregação

Agregação

é um tipo especial de associação.

– Representa relacionamentos todo-parte, onde objetos

compostos por outros objetos são modelados como estando associados com suas partes.

– Agregação é transitiva

• Se A faz parte de B, e B faz parte de C, então A faz parte de C.

– Agregação é não-simétrica

(20)

PUCRS - FACIN Agregação Monitor Teclado Microcomputador Mouse 0..1 0..1

Processador DriveCD Memória Fonte Gabinete 0..1 1..* DriveDisquete 0..1 1..* Exemplo: 1 1 1

1 1 1

1

1 1 1 1 1

1 0..* 1..*

(21)

PUCRS - FACIN

Agregação

simples:

– A existência de um objeto componente não depende da existência do objeto agregado;

– Um objeto componente pode ser compartilhado com outro objeto agregado.

Agregação

EquipeProjeto

AnalistaSistemas

1..* 1..* 1..*

1..*

Multiplicidade da extremidade do composto

(22)

PUCRS - FACIN

• Agregação de

composição

:

– Quando o todo é criado, as suas partes com multiplicidade não fixa podem ser criadas posteriormente;

– Quando uma parte é criada, a sua existência deve ser coincidente com a existência do todo, a não ser que seja explicitamente removida antes da eliminação do todo;

– Quando o todo é eliminado, as suas partes também devem ser eliminadas.

– Exemplo:

Agregação

Empresa

1..* 1

1..*

1 Multiplicidade da extremidade do composto

deve ser igual a 1

(23)

PUCRS - FACIN Generalização

A

generalização

é o compartilhamento de atributos,

operações e relacionamentos entre classes com base

em um relacionamento hierárquico.

– possibilita a derivação de tipos mais específicos a partir de um tipo mais genérico

– uma classe pode ser definida de forma abrangente e depois ser refinada em sucessivas subclasses.

(24)
(25)

PUCRS - FACIN Generalização

• Processo de

generalização

:

– Identificar classes com propriedades semelhantes.

– Definir uma nova classe com as propriedades comuns.

– As classes originais tornam-se subclasses da nova classe e herdam as propriedades desta.

(26)
(27)

PUCRS - FACIN Especialização

• Processo de

especialização

:

– Definir uma ou mais subclasses a partir de uma classe existente.

– Adicionar propriedades e associações específicas de cada nova subclasse.

– Associações comuns ficam ligadas à superclasse.

– Pode existir mais de um tipo de especialização com base em diferentes características.

(28)

PUCRS - FACIN Processo de especialização

Pagamento

Pagamento em Dinheiro

Pagamento com Cartao

Pagamento com Cheque

Cartao de Crédito

0..*

(29)

PUCRS - FACIN Processo Unificado - Análise

No Processo Unificado as classes são inicialmente

identificadas na atividade de

Análise

e fazem parte do

Modelo de Análise

.

Iteração(ões) Preliminar(es) Iter. #1 Fases Iterações Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Implementação Teste Análise

Workflow do Processo

Requisitos

Elaboração Transição Concepção Construção

(30)

PUCRS - FACIN Processo Unificado - Análise

Incluindo subsistemas e pacotes Modelo de

Casos de Uso

Modelo de Análise Modelo de Projeto Modelo de Implantação Modelo de Implementação Modelo de Teste Diagramas de Casos de Uso

(31)

PUCRS - FACIN Classes no Modelo de Análise

Características:

– têm como foco a representação dos requisitos funcionais do sistema: representação de conceitos do domínio de problema – raramente definem sua interface em termos de suas operações

e assinaturas

– definem atributos, porém sem o compromisso com detalhamento

– estabelecem suas relações com outras classes

– podem ser enquadradas em três estereótipos básicos:

(32)

PUCRS - FACIN Estereótipos de Classes de Análise

Classe

Entidade

:

– utilizada para modelar informações que tem vida longa no sistema e que freqüentemente são persistentes;

– modela informações e comportamentos associados a conceitos do sistema.

<<entity>>

(33)

PUCRS - FACIN

Classe

Fronteira

:

– usada para modelar a interação entre o sistema e seus atores; – a interação envolve o recebimento, apresentação e requisição

de informações entre o sistema e seus usuários ou sistemas externos;

– uma mudança em uma interface de usuário ou em uma

interface de comunicação é usualmente isolada em uma ou mais classes de fronteira;

– cada classe de fronteira deve estar relacionada a pelo menos um ator e vice-versa.

Estereótipos de Classes de Análise

<<boundary>>

(34)

PUCRS - FACIN Estereótipos de Classes de Análise

Classe de

Controle

:

– representam coordenação, sequenciamento, transações e controle de outros objetos;

– freqüentemente utilizada para encapsular controle relacionado e a um caso de uso específico;

– utilizada para representar processamento complexo (tal como cálculos envolvidos na lógica de um processo de negócio) que não seja apropriado a uma classe entidade em particular;

<<control>>

(35)

PUCRS - FACIN Processo Unificado - Análise

Tarefas básicas:

– Analisar a arquitetura:

• Identificar de pacotes de análise

• Identificar classes <<entity>> óbvias • Identificar requisitos especiais

– Analisar um caso de uso:

• identificar classes de análise do sistema

– Analisar uma classe:

• identificar responsabilidades, atributos, relacionamentos

(36)

PUCRS - FACIN Diagrama de Classes de Análise

Cliente

Sacar dinheiro no terminal MODELO DE CASOS DE USO:

MODELO DE ANÁLISE:

Cliente

Sacar dinheiro no terminal

<<trace>>

(37)

PUCRS - FACIN Diagrama de Classes de Análise

Estratégias de descoberta de classes de análise:

Encontrando conceitos através de uma lista de categorias de conceitos: relacione os conceitos candidatos do domínio do problema que pertecem à lista de categorias de conceitos

(objetos físicos, transações, linhas de itens de transações, papéis desempenhados por pessoas, containers de coisas, eventos, etc.).

Encontrando conceitos com a identificação de

substantivos: identificar os substantivos e frases que podem estar no lugar de um substantivo nas descrições do domínio do problema e considerá-los como candidatos a conceitos ou

atributos para o modelo conceitual.

(38)

PUCRS - FACIN Diagrama de Classes de Análise

Cliente

Sacar dinheiro no terminal MODELO DE ANÁLISE:

Conta Retirada

(39)

PUCRS - FACIN Diagrama de Classes de Análise

Diagrama de classes de análise (ícones):

Cliente

Conta Retirada

Terminal

Gaveta de dinheiro

saldo senha

acessa solicita retirada

(40)

PUCRS - FACIN Estereótipos de Classes de Análise

Cliente

Terminal <<boundary>>

Conta <<entity>> Retirada

<<control>> solicita retirada

acessa

Gaveta de dinheiro<<boundary>>

libera dinheiro

saldo senha

(41)

PUCRS - FACIN Diagramas de Classes de Análise

Reuso de classes de análise:

Sacar dinheiro no terminal

Depositar dinheiro Transferir dinheiro Cliente

Lançamento Terminal

Retirada

Conta

Modelo de

Casos de Uso

Modelo de

Análise

Transferência

Depósito Cliente

(42)

PUCRS - FACIN

• No Rational Rose os diagramas de classes de análise são

criados no

Logical View

. Especificamente no framework

RUP, no pacote

Analysis Model

.

(43)

PUCRS - FACIN Diagrama de Classes

Exercício:

– acesse a homepage do curso, link Atividades, Diagrama de Casos de Uso

– estude a descrição textual

Referências

Documentos relacionados

De maneira geral, observaram-se eleva- dos níveis de controle do herbicida diclosulam a partir da dose de 21,8 g i.a. ha -1 quando apli- cado diretamente sobre o solo, na ausência

Inspecção Visual Há inspeccionar não só os aspectos construtivos do colector como observar e controlar a comutação (em

A gestão do processo de projeto, por sua vez, exige: controlar e adequar os prazos planejados para desenvolvimento das diversas etapas e especialidades de projeto – gestão de

Na avaliação da infiltração de água em Neossolos Regolíticos e nas condições pedoclimáticas da região onde foi desenvolvido este trabalho, conclui- se que os Neossolos

Para aguçar seu intelecto, para tomar-se mais observador, para aperfeiçoar-se no poder de concentração de espí­ rito, para obrigar-se â atençOo, para desenvolver o espírito

A Psicologia, por sua vez, seguiu sua trajetória também modificando sua visão de homem e fugindo do paradigma da ciência clássica. Ampliou sua atuação para além da

Realizou-se estudo do tipo ecológico com o objetivo de investigar o perfil sociodemográfico e epidemiológico, a frequência de casos, os indicadores epidemiológicos

O presente estudo foi realizado com o objetivo de descrever o perfil das mulheres que tiveram parto na maternidade do Hospital Universitário Polydoro Ernani de São Thiago em