UML. Diagrama de Classes

Documentos relacionados
UML Diagrama de Classes

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

UML. Diagrama de Classes de Projeto e Diagrama de Objetos Análise e Projeto de Software. Profª. Cibele da Rosa Christ

Requisitos de sistemas

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Modelagem Orientada a Objeto

Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Banco de Dados I Generalização/Especialização

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

12/03/16. Generalização. Associação. Agregação UML Relações. entre Classes. Composição. Prof.Dr. Enzo Seraphim. Dependência

UML. Diagrama de Classe

Análise e Projeto de Sistemas

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos:

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Modelagem de Processos

Panorama da notação UML

Unidade 2 Modelo Conceitual

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Linguagem de Modelagem Unificada UML

PROGRAMAÇÃO ORIENTADA A

MODELAGEM DE DADOS PARTE 3

Engenharia de Software II e III - Introdução ao Diagrama de Classe

Introdução à UML. Prof. Jesus José de Oliveira Neto

UML - Diagrama de Classes

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

Python Orientação a Objetos. Introdução à Programação SI2

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

Extensões do Modelo Entidade-Relacionamento

DIAGRAMAS DE CLASSE UML

Unidade 3 23/10/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Banco de Dados Modelagem Conceitual de Dados. Prof. Edjandir Corrêa Costa

INF1404 MODELAGEM DE SISTEMAS

Linguagem de Programação. Diagrama de classes

Unified Modeling Language (UML)

Conceitos de Programação Orientada a Objetos

SISTEMA DE INFORMAÇÃO Modelo Conceitual. Prof. Luiz Fernando Laguardia Campos FMS

Modelo Entidade-Relacionamento

Programação Orientada a Objetos Relacionamentos entre classes

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

Aula 4 SBD Modelo Entidade Relacionamento Parte 2. Profa. Elaine Faria UFU

Projeto Banco de Dados

Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula

PCS3413 Engenharia de Software e Banco de Dados

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

MATA60 BANCO DE DADOS Aula 3- Modelo de Entidades e Relacionamentos. Prof. Daniela Barreiro Claro

Engenharia de Software II e III - Material para estudo Diagrama de Classe

UML. Modelando um sistema

Construindo modelos ER. Capítulo 3

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

PROGRAMAÇÃO ORIENTADA A OBJETOS I -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

CAPÍTULO 3 MODELAGEM ORIENTADA POR OBJETOS

PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL. Prof. Angelo Augusto Frozza, M.Sc.

MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Prof. Rosemary Melo

Herança - Conceitos Básicos

Aula 2 Abordagem Entidade-Relacionamento Cleverton Hentz

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Com base nos slides vistos em sala de aula resolva os seguintes exercícios:

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1/64

UML. Adriano J. Holanda 21/3/

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

2. Revisão e Dicas de Modelagem Conceitual

SIG SIG. GEO-OMT Exercícios. Alisson Fernando Coelho do Carmo

Modelagem Conceitual e o Modelo Entidade-Relacionamento

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Modelagem Entidade Relacionamento Estendida. Evandro E.S. Ruiz, Ph.D.

Transcrição:

UML Diagrama de Classes

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 as operações que caracterizam cada objeto

Introdução Existem dois tipos de diagramas 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 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 relacionamentos.

Classe Classe: refere-se a descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relações e semântica. Funcionário nome: string data_admissão: data CPF : string salário_base: float = 0.0 calcula_salário calcula_ir Nome da Classe Atributos Operações outros compartimentos podem ser acrescentados (responsabilidades, exceções, eventos, etc.)

Nome de 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 em que a classe existe. Cliente Sistema_vendas :: Cliente

Atributo Cada objeto de uma classe possui um estado, representado pelos valores associados a cada um dos atributos definidos para a classe Sintaxe para atributos: [visibilidade] nome [multiplicidade] [:tipo] [= valor inicial] [{propriedades}] * atributos de classe são sublinhados Exemplos: nome: string endereço [0..2] : string CPF : inteiro {frozen} nro_correntistas: inteiro

Operação Uma operação é a implementação de um serviço que pode ser requisitado a qualquer objeto da classe, afetando o seu comportamento. 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) Exemplos: criação de um novo objeto da classe, pesquisa sobre os objetos da classe, etc.

Operação Sintaxe para Operações: [visibilidade] nome [(lista-de-parâmetros)] [:tiporetorno] {[propriedades]} * operações de classe são sublinhadas. Exemplos: ler_temperatura( ) : numérico calcula_area(lado: inteiro, altura: inteiro) : inteiro valor_padrao( ): inteiro

Responsabilidade de classe 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. reiniciar iniciar_alarme avaliar_temperatura Sensor de Temperatura - Monitorar temperatura - Disparar alarme quando a temperatura atingir valores inadequados

Relacionamentos entre classes Os relacionamentos determinam conexões entre os objetos. Fornecem um caminho para a comunicação entre os objetos. Principais tipos de relacionamentos: Associação Generalização Dependência

Associação Uma associação é um relacionamento estrutural que descreve um conjunto de ligações, onde uma ligação é uma conexão entre objetos. Funcionário 0..* trabalha-para 1 Empresa

Multiplicidade (1-1): cliente tem sempre 1 (e somente 1) conta CLIENTE (0-1): cliente pode ter 1 (e no máximo 1) conta CLIENTE 0..1 (1-N): cliente tem sempre 1 conta, podendo ter mais CLIENTE Associação 1..* (0-N): cliente pode ter 1 conta, podendo ter mais 1 CONTA CONTA CONTA CLIENTE * CONTA

Associação Papel (opcional) Funcionário nome carttrab datnasc 1..* trabalha-para * empregado empregador Empresa nome endereço Esposa Pessoa nome datnasc Casamento Marido

Associação Navegação por definição, a navegação entre classes associadas é bidirecional por conveniência, a navegação pode ser restringida a uma única direção Usuário 1 * proprietário Senha não confundir com sentido para leitura de nome de associação!

Agregação 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 Se A faz parte de B, então B não faz parte de A.

Agregação Exemplo: Microcomputador Monitor Gabinete Teclado 0..1 Mouse 0..1 1..* Processador DriveCD Memória Fonte Drive Disquete

Agregação 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. EquipeProjeto 1..* 1..* Multiplicidade da extremidade do composto pode ser maior que 1 AnalistaSistemas

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 Multiplicidade da extremidade do composto deve ser igual a 1 1..* Departamento

Generalização Abstrai classes genéricas, a partir de classes com propriedades (atributos e operações) semelhantes. Generalização e herança são abstrações que permitem modelar aspectos semelhantes entre classes, preservando suas diferenças. Numa hierarquia de generalização, as subclasses herdam todas as propriedades de sua superclasse.

Generalização - Especialização Pessoa nome endereço sexo data_nascim idade Candidato numcandidato Eleitor num_titulo

Generalização - Especializaçã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. As associações em comum passam para a superclasse e as outras continuam nas subclasses.

Especialização - Generalizaçã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. cada hierarquia de generalização/especialização deve abranger uma única característica.

Processo de Generalização Carro numchassi placa cor numpas anofabric tipocomb Fabricante nome paísorigem 1..* 1..* 1..* Proprietário nome ender CgcCpf 1..* Caminhão numchassi placa numeixos tonelagem ano Carroceria tipo fabricante Proprietário nome ender CgcCpf 1..* Veículo numchassi placa anofabric 1..* Fabricante nome paísorigem Carro cor numpas tipocomb Caminhão numeixos tonelagem Carroceria tipo fabricante