UML – Diagrama de Classes

Slides:



Advertisements
Apresentações semelhantes
Base de Dados para a Gestão de Informação de Natureza Pedagógica
Advertisements

Abordagem Entidade Relacionamento
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
DESENHO de BASE de DADOS RELACIONAL
Diagrama de Classes.
Modelo Entidade-Relacionamento
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
UML: Diagrama de Classes
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da visão estática da UML. Os elemento desta visão são conceitos.
Introdução a diagrama de classes e UML
Diagrama de Classes.
Programação e Sistemas da Informação
Aula 9 Fases do desenvolvimento de software UML Diagramas de classes
Fases do desenvolvimento de software UML
Geração de Código.
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
O.O.H.D.M. Modelagem Conceitual
Modelo Entidade/Relação
Tecnologias de Linguagens para Banco de Dados I
Diagramas de Componentes
UML – Diagrama de Classes
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
Diagrama de Classes.
SQL Server 2012 Introdução a Modelagem de Dados
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Diagrama de Classes e Colaboração
DIAGRAMA DE CLASSE Modelagem de Software
2.2.1Database System Concepts©Silberschatz, Korth and Sudarshan (Modificado) Capítulo 2: Modelo ER Conjuntos de entidades Conjuntos de relações Aspectos.
Diagrama de Classes George Gomes Cabral.
UML – Diagrama de Classes
Profª Daniela TLBD.
REGRAS DE PRODUÇÃO DO MODELO LÓGICO
UML Significado da Associação entre Classes
Ano letivo CURSO EFA DE TÉCNICO DE INFORMÁTICA E SISTEMAS Docente: Ana Batista EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA – Sec. Turma C
2.2 MODELAGEM DE SISTEMAS COM UML
Diagramas de classes rational rose. introdução interação classes atributos, operações associações associação, agregação, composição, generalização, dependência.
C URSO P ROFISSIONAL T ÉCNICO DE G ESTÃO E P ROGRAMAÇÃO DE S ISTEMAS I NFORMÁTICOS P ROGRAMAÇÃO E S ISTEMAS DE I NFORMAÇÃO 11 º ANO Módulo 12 – Introdução.
Marcio de Carvalho Victorino
Análise de Sistemas de Informação
Modelagem Visual de Objetos Com UML
UML Diagrama de classes.
DIAGRAMA DE CLASSE Médio Integrado.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Projeto Orientado aos Objetos Prof. Wolley W. Silva
Modelagem Visual de Objetos Com UML
Análise Orientado aos Objetos Prof. Wolley W. Silva
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Generalização e herança Agregação e composição
Sistemas de Informação (SI)
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Desenvolvimento de uma base de dados
Fluxo de Análise e Projeto 7 - Atividade Projetar Classes.
UML Diagramas de Classes Disciplina: Engenharia de Software
Profa. Ana Karina Barbosa Abril/2008
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
Sistemas de Informação
Modulo 1 -> sistemas informáticos Modelação de processos. 1
0781- ANÁLISE DE SISTEMAS DIAGRAMA ENTIDADE ASSOCIAÇÃO FORMADOR: PEDRO MARQUES FORMANDO : JOÃO P J A CORREIA Nº8 JUNHO DE 2010 Curso Técnico de Informática.
Projeto de Banco de Dados
Engenharia de Software Orientada a Objetos
4 Projeto de Banco de Dados Carlos Alberto Heuser.
Bases de dados relacionais
O que é modelagem orientada a objetos?
Diagrama de Classes Herança Dependências.
Diagrama de Classes Modelagem e Programação Orientada a Objetos Curso Superior de Tecnologia em Sistemas para Internet Prof. Cristiano Stüpp Nunes
Tecnologias e Linguagens para Banco de Dados I - WEB Prof. João Ricardo Andrêo 29/5/ :40 1 Atividades: 1 - Criar uma base de dados para uma empresa.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

UML – Diagrama de Classes Pedro Nogueira Ramos (Pedro.Ramos@iscte.pt) José Farinha (Jose.Farinha@iscte.pt) DCTI / ISCTE Pedro Ramos, José Farinha, DCTI/ISCTE

Diagrama de Classes - Índice Conceitos Básicos Associações (# / #) Classes Associativas Agregações Composições Generalizações Atributos Versus Classes Associações n/1-árias Associações singulares (uma classe) Relações de Dependência Roles Navegação Especificação de Atributos Packages Pedro Ramos, José Farinha, DCTI/ISCTE

UML – Diagrama de Classes Objectos Objecto: qualquer coisa relevante do domínio que pretendemos modelar e que têm: . Identidade (forma de o identificar) . Estado (conjunto de atributos) . Comportamento (operações que sobre ele podem ser efectuadas) É distinto de outros clientes da empresa Atributos: nome, morada, nº contribuinte, ... Operações: emitir facturas, alterar morada, ... Cliente ‘João Silva’ Pedro Ramos, José Farinha, DCTI/ISCTE

UML – Diagrama de Classes Classe: conjunto de objectos que partilham o mesmo Mecanismo de Identificação, Estado, Comportamento, Relações e Semântica. Todos distintos uns dos outros Partilham atributos e operações Relacionam-se com as mesmas classes (e.g., produtos que adquirem) Representam a mesma realidade (semântica) Classe dos Clientes Os objectos não têm necessariamente que corresponder a entidades humanas ou, mais genericamente, a entidades com representação física (e.g., uma factura). Um conceito abstracto, por exemplo um departamento, pode ser um objecto (caso seja relevante para o domínio em causa). Pedro Ramos, José Farinha, DCTI/ISCTE

Classe: Representação Gráfica UML – Diagrama de Classes Classe: Representação Gráfica Classe dos Clientes Cliente Designação (distinta) Num. Contribuinte Nome Morada Atributos (relevantes) Atribuir Factura() Operações (relevantes) Pedro Ramos, José Farinha, DCTI/ISCTE

Atributos Um atributo numa classe representa uma característica típica dos objectos dessa classe e pode assumir qualquer valor Pode especificar-se um tipo de dados para um atributo Neste caso, os valores que podem ser atribuídos ao atributo estão condicionados à compatibilidade com o tipo Informação: No âmbito da cadeira e para efeitos de resolução de exercícios práticos, não se considera necessário indicar o tipo de dados no diagrama de classes UML. Na realização do trabalho, sim. Em UML, um atributo definido numa classe é de preenchimento opcional: Em cada novo objecto que seja criado, o dito atributo poderá ser ou não preenchido. Não há em UML forma de especificar obrigatoriedade de preenchimento Em desenho de base de dados é importante identificar a obrigatoriedade de preenchimento – mas tal será feito apenas quando for gerado o modelo relacional da base de dados Se for considerado muito relevante colocar essa informação no diagrama de classes UML, indicar os atributos de preenchimento obrigatório numa caixa de comentário UML Em UML pode especificar-se um valor por omissão (default value) para um atributo Novos objectos serão preenchidos no dito atributo com o valor indicado caso não haja instrução explícita para que o valor de preenchimento seja outro Não usar para modelar o conceito de valor mais frequente Pedro Ramos, José Farinha, DCTI/ISCTE

Atributos de identificação Ao definir os atributos de uma classe, deverá incluir-se sempre um atributo (ou mais) que possa(m) funcionar como mecanismo de identificação dos objectos dessa classe. Isto é, um (ou mais) atributo(s) para o(s) qual(is): todos os objectos têm valor o valor nesse(s) atributo(s) garantidamente não se repete entre diferentes objectos. Em certos casos, não se conseguem apurar atributos para este efeito. Neste tipo de classes, especificamos um atributo adicional que permita distinguir os objectos, atributo esse cujos valores são artificialmente atribuídos a cada objecto, sem causar repetições. Este atributo diz-se um Identificador Interno, Identificador Único ou Identificador de Objecto (OI, Object Identifier) e é frequente receber nomes do género: “Número [de ...]” “Código [de ...]” “Id” Por razões de performance, em termos de implementação (i.é, no modelo lógico e/ou físico) poderá introduzir-se um atributo destes mesmo que exista uma forma de identificação natural na classe No modelo de dados conceptual um atributo deste género apenas deverá ser indicado se não existir uma forma de identificação natural na classe Pedro Ramos, José Farinha, DCTI/ISCTE

Desusos de UML para desenho de bases de dados relacionais Para efeitos de desenho de base de dados relacional: Não se especificam operações (métodos) das classes; Não se especificam as visibilidades – público/protegido/privado – dos atributos: todos se assumem públicos; Se pretendêssemos desenhar uma base de dados orientada por objectos, tal já assim não seria; Relativamente a um atributo, não se faz especificação de multiplicidades superiores a 1, pois: Tal não é habitualmente suportado pelas ferramentas de desenho e construção de base de dados Não se pretende obter um modelo puramente orientado por objectos Pedro Ramos, José Farinha, DCTI/ISCTE

UML – Diagrama de Classes Relações Em qualquer sistema existem objectos que se relacionam entre si. Por exemplo, se considerarmos a classe das facturas da empresa, o cliente ‘João Silva’ relaciona-se com as facturas a ele emitidas. A relação entre objectos é representada através das relações entre as classes, que podem ser de dois tipos: 1) Associações Casos especiais: Composição Agregação 2) Generalizações Pedro Ramos, José Farinha, DCTI/ISCTE

UML – Diagrama de Classes Associações Uma associação é uma relação que permite especificar que objectos de uma dada classe se relacionam com objectos de outra classe. Cliente Num. Contribuinte Nome Morada Factura Data Emissão Data Pagamento Valor Número de Factura 0 … * 1 Um cliente pode estar associado a n facturas, ou a nenhuma ([0,*]), e Uma factura está obrigatoriamente associada a um e apenas a um cliente ([1,1]). Nota: 1 é equivalente a 1 ... 1 Pedro Ramos, José Farinha, DCTI/ISCTE

Multiplicidade das Associações UML – Diagrama de Classes Multiplicidade das Associações 0 ... 1, zero ou um 1 ... 1, um e apenas um 0 ... *, de zero a n 1 ... *, de um a n 0 ... 3, de zero a 3 1 ... 3, de um a 3 ... infinitas combinações que é vulgar agruparem-se em: 0 … * 0 …1 0 … 1 1 …1 “um para muitos” “um para um” “muitos para muitos” Pedro Ramos, José Farinha, DCTI/ISCTE

Associação “um para muitos” UML – Diagrama de Classes Associação “um para muitos” Semântica Um funcionário pode estar associado a um e apenas um departamento a um departamento podem-se associar vários ou nenhum funcionários. Funcionário Num. Contribuinte Nome Morada Departamento Designação 0...1 0…* Produção João Ana Comercial Funcional Dado um funcionário é possível determinar em que departamento ele trabalha, e, dado um departamento é possível identificar os seus funcionários. Luís Financeiro Joana Informática Pedro Ramos, José Farinha, DCTI/ISCTE

Associação “um para muitos” UML – Diagrama de Classes Associação “um para muitos” Semântica Um funcionário tem necessariamente que estar associado a um departamento a um departamento podem-se associar vários ou nenhum funcionários. Funcionário Num. Contribuinte Nome Morada Departamento Designação 1 0 … * Produção João Ana Comercial Funcional Dado um funcionário é possível determinar em que departamento ele trabalha, e, dado um departamento é possível identificar os seus funcionários. Luís Financeiro Joana Informática Pedro Ramos, José Farinha, DCTI/ISCTE

Associação “muitos para muitos” UML – Diagrama de Classes Associação “muitos para muitos” Um objecto não pode estar duplamente associado a outro objecto (Joana / Marketing). À semelhança das classes (em que os objectos são distintos), as associações também têm que ser distintas. Aluno Número Nome Morada Disciplina Designação 0 … * 0 ... * frequenta João Matemática Ana Direito Luís Joana Marketing As associações podem ter nomes, nomes esses que terão que ser distintos Informática A mesma associação (domínio e co-domínio idênticos) Pedro Ramos, José Farinha, DCTI/ISCTE

UML – Diagrama de Classes Nomes de Associações As associações podem ter nomes, nomes esses que terão que ser distintos Aluno Número Nome Morada Disciplina Designação 0 … * 0 ... * frequência As associações podem ter nomes, nomes esses que terão que ser distintos Pedro Ramos, José Farinha, DCTI/ISCTE

Associação “um para um” UML – Diagrama de Classes Associação “um para um” Factura Recibo Data Emissão Data Pagamento Valor Número de Factura Nº Recibo 1 0 … 1 Nº Cheque Banco Nº Recibo É a associação que atribui um número de recibo à factura. Caso contrário, uma factura estaria associada a dois recibos (o recibo indicado no atributo da factura e o recibo resultante da associação). Ilustrar também um caso com 3 classes e 2 relações: A – B – C. E em que se pretende saber a relação entre objectos de A e de C. Discutir alternativas: atributo com restrição ou relação de 1-para-N? – discutido à frente Pedro Ramos, José Farinha, DCTI/ISCTE

Atributos enumerados Que apenas podem assumir valores incluídos num conjunto finito e bem delimitado Pedro Ramos, José Farinha, DCTI/ISCTE

Classes Associativas (I) UML – Diagrama de Classes Classes Associativas (I) As Classes Associativas são associações que se “transformam” em classes quando é necessário: Colocar atributos na associação ou/e; Licenciatura Disciplina Designação Tipo Avaliação 0 … * Designação Tipo Avaliação 0 … * 1 … * Disciplinas da Licenciatura Tipo Avaliação Pedro Ramos, José Farinha, DCTI/ISCTE

Classes Associativas (II) UML – Diagrama de Classes Classes Associativas (II) b) Associar uma classe a uma associação. Licenciatura Disciplina Designação Tipo Avaliação 0 … * Designação Tipo Avaliação 0 … * 1 … * Disciplinas da Licenciatura Docente Num. Contribuinte Nome Morada 0 … * Tipo Avaliação Ilustrar com objectos. Pedro Ramos, José Farinha, DCTI/ISCTE

Classes associativas As classes associativas são mais frequentemente necessárias nas associações muitos para muitos. Mas, em casos mais raros, fazem também sentido em associações de outras cardinalidades. Pessoa Nome Morada Núm. de beneficiário Sistema de saúde 0 … * 0 …1 Pessoa Nome Morada Sistema de saúde 0 … * 0 …1 Beneficiário Núm. de beneficiário Pedro Ramos, José Farinha, DCTI/ISCTE

Classe associativa vs. Classe com 2 associações Pedro Ramos, José Farinha, DCTI/ISCTE

0...* vs. 1...* Usar o 1...* quando a informação do lado muitos não faz sentido (não tem utilidade) sem a informação do lado 1. Pedro Ramos, José Farinha, DCTI/ISCTE