UML - Diagrama de Classes

Documentos relacionados
Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Modelo Entidade-Relacionamento. José Antônio da Cunha CEFET-RN

Conteúdo programático

Modelo Comportamental

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Introdução à orientação a objetos

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

Banco de Dados I 2007 Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 1) Clodis Boscarioli

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

FATURA ELETRÔNICA DO PRESTADOR Layout do Arquivo Texto Versão 1.1.1

Programação Orientada a Objetos SANTOS, Rafael

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.

Banco de Dados. Modelo Entidade - Relacionamento. João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Programação Orientada a Objetos

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Fundamentos de Programação. Diagrama de blocos

Exercício. Exercício

Inteligência Artificial

O que é um banco de dados? Banco de Dados. Banco de dados

BANCO DE DADOS. Vinícius Pádua

Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS

Objetivo do Portal da Gestão Escolar

1 Visão Geral. 2 Instalação e Primeira Utilização. Manual de Instalação do Gold Pedido

MODELO SUGERIDO PARA PROJETO DE PESQUISA

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

8 Crie um pequeno sistema para controle automatizado de estoque, com os seguintes registros:

Disciplina: Unidade III: Prof.: Período:

Instruções para o cadastramento da Operação de Transporte e geração do Código Identificador da Operação de Transporte CIOT.

Análise de Sistemas 3º Bimestre (material 2)

Algoritmos APRENDENDO A PROGRAMAR COM C#

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Prova de Fundamentos de Bancos de Dados 1 a Prova

Análise Qualitativa no Gerenciamento de Riscos de Projetos

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA DEPARTAMENTO DE ENGENHARIA QUÍMICA ENG 008 Fenômenos de Transporte I A Profª Fátima Lopes

Unidade: Centro de Educação a Distância MANUAL DE PROCEDIMENTOS Nº: Manual de Instruçao - Autorizar Liberação de ValoresAutorizar Liberação de Valores

Diagrama de Componentes e Implantação

UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticos

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

Sistemas Distribuídos

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

Leiaute de arquivos XML para Carta-Circular 3254

Manual de preenchimento da planilha de cálculo do índice de nacionalização

Programa Gulbenkian de Língua e Cultura Portuguesas REGULAMENTO DO CONCURSO DE APOIO A CONGRESSOS NOS DOMÍNIOS DA LÍNGUA E DA CULTURA PORTUGUESAS

Engenharia de Software II

Java na Prática. Célio Silva Aula 3

Orientação a Objetos

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

Banco de Dados. Sistemas de Informação Engenharia de Produção

Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Diagrama de Classes

Capítulo 1. Importação de Dados de Instituições Financeiras - Arquivo TXT 3

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

2 Segmentação de imagens e Componentes conexas

Manual para utilização da funcionalidade de importar arquivo XML para prestação de contas

Planejamento - 2. Definição de atividades Sequenciamento das atividades. Mauricio Lyra, PMP

Impressora Latex série 300. Garantia limitada

REGULAMENTO DO PROGRAMA DE RELACIONAMENTO REDE SCB REDE DOS SERVIÇOS DE CRÉDITO DO BRASIL LTDA. PROGRAMA "De Olho no Ponto"

GUIA PARA ELABORAÇÃO DA DECLARAÇÃO DE IR PREVIDÊNCIA

Modelo Relacional Normalização Diagramas E-R e Tabelas Originadas

I. Conjunto Elemento Pertinência

FERRAMENTAS DA QUALIDADE FOLHA DE VERIFICAÇÃO

Introdução a Banco de Dados. INTRODUÇÃO

Classificação de Ativo Orçamento e Provisão de Despesa

2.2 Estruturar ação de oficina de integração com gestores, trabalhadores, usuários e familiares da RAPS, redes de saúde e rede intersetorial.

DEPARTAMENTO DE MATEMÁTICA

Prefeitura da Cidade de Nova Iguaçú. SEMED Secretaria Municipal de Educação. Coordenadoria Municipal de Ciência e Tecnologia

COBRANÇA BANCÁRIA CAIXA

Auditoria de Meio Ambiente da SAE/DS sobre CCSA

Tecnologia da Informação

LOGO DO WEBSITE DA FUTURA APP

Aula 03. Processadores. Prof. Ricardo Palma

Módulo de Princípios Básicos de Contagem. Segundo ano

Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB

Banco de Dados I Unidade 3: Projeto de BD Relacional. Cláudio Baptista

PROGRAMAÇÃO DE COMPUTADORES

Análise de Requisitos

CCS Cadastro de Clientes do SFN. Roteiro de Testes. Versão 2.1.7

O Cálculo λ sem Tipos

com Utilização do Código de Barras VERSÃO 04

M =C J, fórmula do montante

Módulo: M_CONFIRMA_AGENDAMENTO - Confirmação dos Agendamentos

FastCube 2.0 Programmer Manual

Fundamentos de Teste de Software

Disponibilizada a rotina Vale Presente (LOJA830) no módulo Controle de Lojas (SIGALOJA), assim como já é utilizada no módulo Front Loja (SIGAFRT).

SISTEMAS DISTRIBUÍDOS

Arquitecturas de Software Enunciado de Projecto

ANEXO III. Roteiro para Apresentação de Projetos do Tipo C R$ ,00 a R$ ,00

Sérgio Luisir Díscola Junior

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Probabilidade. Luiz Carlos Terra

AGRUPAMENTO DE ESCOLAS DE PÓVOA DE LANHOSO

RENDIMENTOS DE CAPITAIS

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com

EDITAL PROCESSO SELETIVO PARA AUXILIAR DE SAÚDE BUCAL ESF SORRI BAURU MARÇO 2016

Transcrição:

UML - Diagrama de Classes Este é um dos mais importantes e utilizados diagramas da UML, cujo objetivo principal é apresentar as classes que compõem o sistema com seus respectivos atributos e métodos, assim como as classes se relacionam, complementam e transmitem informações entre si. Portanto, o diagrama de classes é composto basicamente pelas classes e pelas possíveis associações entre elas. 1. Atributos, métodos e visibilidades. 1.1. Atributos e tipos: Os atributos podem ser considerados como detalhes ou peculiaridades que permitem a caracterização dos objetos (de alguma forma, comparáveis aos campos em estruturas de arquivos, ou títulos de colunas em planilha eletrônica, por exemplo), através dos quais permite-se que tal objeto seja reconhecido como tal, o que permite que seja identificado como distinto de outros de outra classe, além de também permitir que seja observado como distinto de outros da mesma classe. Exemplo: Margarida Noriana Kremoza Semçal, representando um objeto da classe Aluno, por permitir homônimos, além do nome, precisa de outros para identificá-lo como Pessoa, tais como endereço, data de nascimento, sexo, nome do pai, nome da mãe, cpf, rg, etc., porém tais atributos o professor e o funcionário também possuem. O Registro Acadêmico (RA) é propositalmente adicionado, tanto para tornar o Aluno diferente de Professor e de Funcionário, quanto para tornar um aluno distinto de outro (esta é a chave primária). Os tipos definem os gêneros de conteúdos que cada atributo pode conter, restringindo-os ao gênero que o define. Os tipos, aqui, são gerais, mas serão posteriormente determinados pelas linguagens (de programação, como Java, C, Pascal, SQL, etc.) a serem utilizadas no desenvolvimento. Exemplos: Nome, endereço, cidade e descrição são literais (String, Char, Varchar, a depender da linguagem). Ano, dia, idade e quantidade são valores numéricos inteiros (Integer, int, smallint ). Data (date, timestamp ). Valor, preço, taxa, altura, peso são numéricos com ponto flutuante (float, double, real, number, numeric ), etc.

1.2. Métodos Diferentemente do paradigma estruturado, quando define-se a classe (em O.O.), esta já deverá referir as ações (métodos) que contêm os códigos que as desempenham sobre ela. Portanto, o método corresponde à escrita de código de programação que determina o que ocorrerá com a classe em questão, e sem limites de quantos métodos aplicam-se à classe. No diagrama, isto é brevemente descrito na terceira sessão da classe. Esta descrição apresenta apenas o nome do método e os argumentos de entrada (que correspondem a valores que são absorvidos pelo método, a partir dos quais quaisquer decisões são tomadas) e de saída (que correspondem aos valores resultantes). Exemplo: Para se cadastrar o produto, sua identificação e a data atual (IDProduto e Data) devem ser inicialmente informados ao sistema e, assim que ocorrer, deve-se responder se houve ou não sucesso (true ou false). Observe, sobretudo, o método Cadastrar() na classe: 1.3. Visibilidades Ao se definir a classe, torna-se importante, senão fundamental, considerar se um determinado objeto (cada um de seus atributos e de seus métodos) pode ser visto ou executado por outro, tanto pertencente à mesma classe, quanto por outro de classe distinta, ou mesmo para um conjunto definido de classes. A visibilidade, portanto, é o que define esta capacidade e, no diagrama, é expressa apenas por símbolos. Vis. Inglês Português Objeto visto por: - private privado Objetos da mesma classe + public público Objetos de quaisquer outras classes # protected protegido Objetos das classes-filhas (subclasses, item 2.7) ~ package pacote Objetos de um conjunto restrito de classes Se o conteúdo deste atributo for derivado (resultante de cálculo, comparação, geração pelo Sistema Operacional ou outro, etc.), acrescenta-se uma barra à direita da visibilidade ( -/ ou +/, p.ex.).

2. Associações (relacionamentos). No processo de abstração, as classes são definidas como distintas umas das outras, porém estas podem se relacionar de alguma forma (p. ex. um funcionário efetua a venda de produto para um cliente, o que requer a definição de uma classe para cada e uma ligação entre cada classe distinta). As associações são representadas por linhas que ligam uma classe a outra, todavia, algumas requerem uma expressão mais detalhada, o que definirá o comportamento de uma classe em relação à outra. 2.1. Multiplicidade (cardinalidade) Um objeto pode se relacionar com outros, e, no projeto é necessário denotar a quantidade de objetos à qual este se associa. A notação mínima compreende a definição de valores mínimo e máximo ao qual o objeto se relaciona ( um objeto relaciona-se a, no mínimo tantos e, no máximo, outros tantos objetos da outra classe ), e, portanto, mais evidente e como maior possibilidade de acerto na definição dos relacionamentos entre as classes. mín..máx Significado 1 Um: Apenas um objeto da classe está envolvido na associação (não deixa claro a quantos associa-se, no mínimo). * Muitos: Muitos objetos da classe estão envolvidos na associação (não deixa claro a quantos no mínimo pode se associar). 0..1 No mínimo zero e no máximo um: Um objeto de uma classe pode se relacionar a nenhum ou a um único objeto da outra classe. 0..* No mínimo zero e no máximo muitos: Um objeto de uma classe pode se relacionar a nenhum ou a muitos objetos da outra classe. 1..1 No mínimo um e no máximo um: Um objeto de uma classe pode se relacionar a apenas um único objeto da outra classe. 1..* No mínimo um e no máximo muitos: Um objeto de uma classe pode se relacionar a apenas um ou a muitos objetos da outra classe. 2..6 No mínimo dois e no máximo seis: Um objeto de uma classe pode se relacionar a no mínimo dois, ou a no máximo seis objetos da outra classe (estes valores servem apenas de exemplo). Por exemplo, um item de pedido pode se referir a exclusivamente um produto e um produto, por sua vez, pode ser adicionado no mínimo nenhum e no máximo muitos itens de pedido:

2.2. Associação unária (reflexivas ou auto associação) Representa a associação de um objeto de uma classe com outros da mesma classe. Por exemplo, um funcionário pode chefiar um ou mais funcionários (só há a classe funcionário). 2.3. Associação binária Tipo de associação que certamente mais ocorre, pois refere-se ao relacionamento possível entre objetos de uma classe com outros de outra classe. Por exemplo, um funcionário (vendedor), e somente este, pode retirar de nenhum a muitos pedidos (as classes envolvidas são Vendedor e Pedido ). 2.4. Associação n-ária Corresponde à representação de relacionamento mais complexo, em que há três ou mais classes envolvidas (em relacionamentos muitos para muitos para muitos, ou N:N:N, ou mais, às vezes denominada como ternária, porém pode haver mais que três classes envolvidas). Sua representação é simples, com um losango (há ferramentas que não o disponibiliza e, neste caso, pode-se utilizar uma classe como intermediária em substituição ao losango) que concentra as relações entre as classes envolvidas, todavia a compreensão pode ser difícil e, por este motivo, deve ser evitada, através de outras soluções. Um exemplo comum é Um professor leciona para no mínimo uma turma e no máximo para muitas, cada qual com no mínimo um professor e no máximo muitos e este, ao lecionar para uma turma, utiliza no mínimo uma sala de aula e no máximo muitas as três classes são de certa forma interdependentes. Observe que a classe Assoc_n_aria substituiu o losango, porém a sua função na definição do sistema, comportará objetos que vinculem as três classes envolvidas (normalmente as chaves-primárias das três em Banco de Dados).

2.5. Agregação Tipo de associação que demonstra que um determinado objeto (chamado objeto-todo), para ser compreendido, precisa ser complementado pelas informações do outro objeto (objeto-parte). Por exemplo, para conhecer as informações de um cliente de uma instituição financeira, é necessário que sejam complementadas pelos da conta corrente. 2.6. Composição É uma variação da agregação, com um vínculo mais forte entre o objeto-todo e o objeto-parte, em que demonstra-se que os objetos-parte têm de estar associados a um único objeto-todo, e os objetos-parte só podem ser destruídos por um objeto do objeto-todo ao qual estão relacionados. Como exemplo, uma revista científica publica ao menos uma edição e pode publicar muitas, sendo que, como norma, cada edição deve conter de 6 a 10 artigos exclusivos. Um reflexo desta composição é que se uma edição for eliminada, automaticamente todos os seus artigos também serão. 2.7. Generalização / Especialização Este tipo de associação é exclusivo para representar herança, ou seja, é utilizado quando há duas ou mais classes muito semelhantes que compartilham características comuns (atributos e métodos), mas que também mantêm outras características particulares. Assim sendo, aquela classe que contém as características comuns será considerada a classe-mãe (ou superclasse) e as classes, mesmo que semelhantes à mãe, mas com características peculiares, serão chamadas de classes-filhas (ou subclasses).

Por exemplo, tanto uma conta especial (em que há limite de crédito), quanto uma conta poupança (em que há rendimento mensal) são, primeiramente, uma conta comum, a qual contém atributos comuns aos três gêneros de conta, e da qual derivam ambas, distintas entre si (estas têm as mesmas características da conta comum, mais suas características peculiares) 1. Para uma definição mais exata, pode-se se tornar necessário definir algumas restrições quanto à herança, que determinam se a especialização já está completa ou não (se a classe-mãe pode ter mais classes-filhas ou não), ou se um objeto de uma classe filha pertence exclusivamente a esta ou se pode fazer parte de outra classe filha simultaneamente. Esta representação é textual, e indicada logo abaixo do símbolo de generalização/especialização. 1 Torna-se necessário evidenciar que, visto de cima para baixo (top-down), o símbolo deve ser lido como uma especialização (p. ex., uma conta-comum pode ser especial ou uma poupança, ou seja, a conta especial e a poupança têm características próprias e distintas), e, visto de baixo para cima (bottom-up), o mesmo lê-se como uma generalização (assim como toda conta especial, toda conta poupança é uma conta comum, pois ambas compartilham características da classe-mãe).

2.7.1. Restrição completa incompleta Completa: Da superclasse não há mais como derivar outras subclasses (esta classe-mãe não pode ter mais filhas). Incompleta: Mesmo que futuramente, há possibilidade de mais derivações de filhas desta classe-mãe. 2.7.2. Restrição separada sobreposta Separada: Também intitulada como disjunta, e representa exclusão mútua, ou seja, a impossibilidade de um objeto estar contido em duas ou mais classes-filhas. Sobreposta: Representa o fato de que uma instância (objeto) pode pertencer a mais que uma das classes-filhas. Anote as restrições corretas no diagrama do exemplo anterior (pessoas físicas e jurídicas). Represente com diagramas as situações de restrições (completa, separada), (completa, sobreposta), (incompleta, separada) e (incompleta, sobreposta). 2.8. Classe Associativa É produzida quando há associações que tenham multiplicidade muitos em todas as extremidades. Elas são necessárias nos casos em que existem atributos relacionados à associação que não podem ser armazenados por qualquer das classes envolvidas (p. ex., um ator pode atuar em muitos filmes e cada filme pode contar com vários atores, o que cria, portanto, uma classe associativa "atua", com o atributo "papel", semelhante ao M:N em BD). 2.9. Classe Intermediária Semelhantemente à classe associativa, é produzida quando há associações que tenham multiplicidade muitos em todas as extremidades, mas os atributos relacionados à associação podem ocorrer mais que uma vez para cada evento de associação (neste caso, o ator pode interpretar mais que um papel em cada filme em que atue).

Bons costumes: Defina quaisquer identificadores apenas com caracteres alfabéticos, numéricos e o sublinhado (underline), sem espaços em branco ou caracteres especiais, sempre iniciados por uma letra. Os identificadores e métodos das classes devem iniciar-se com uma letra maiúscula e o restante em minúsculas. Os atributos devem ser sempre identificados com caracteres minúsculos. Exercícios 2.10. Uma conta comum pode ser classificada como Especial ou Poupança, sendo que a Especial se caracteriza pelo fato de haver uma anotação de limite de crédito, o que permite ao cliente fazer uso de um valor adicional quando não houver saldo, e a Poupança é um gênero de conta que contabiliza juros mensais ao saldo positivo. 2.11. Para isto, primeiramente crie a classe "Conta comum", que tem todos os atributos e métodos visíveis às classes filhas (Especial e Poupança). Seus atributos são nro_conta (inteiro longo), dt_abertura e dt_encerramento (data, advinda do S.O.), situacao e senha (inteiros), e saldo (ponto flutuante longo). Os métodos são Abrir_conta (parâmetro de entrada nro_conta, e retorna um valor inteiro longo), Consultar_conta (a entrada é o número da conta e saída inteira), Validar_senha (senha como entrada, e retorna verdadeiro se senha validada, senão, falso), Emitir_saldo (devolve o saldo), Gerar_extrato (lê as datas do período pretendido, e devolve um valor literal longo), Depositar_valor (input número da conta e valor de depósito, e avisa 1, se OK, e 0, se não), e Encerrar_conta (informa-se qual conta e avisa se encerrada, com true).