A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Índice Pedro Ramos, DCTI/ISCTE UML – Diagrama de Classes Pedro Nogueira Ramos DCTI / ISCTE.

Apresentações semelhantes


Apresentação em tema: "Índice Pedro Ramos, DCTI/ISCTE UML – Diagrama de Classes Pedro Nogueira Ramos DCTI / ISCTE."— Transcrição da apresentação:

1 Índice Pedro Ramos, DCTI/ISCTE UML – Diagrama de Classes Pedro Nogueira Ramos DCTI / ISCTE

2 Índice Pedro Ramos, 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

3 Índice Pedro Ramos, DCTI/ISCTE 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) Cliente ‘João Silva’ É distinto de outros clientes da empresa Atributos: nome, morada, nº contribuinte,... Operações: emitir facturas, alterar morada,... UML – Diagrama de Classes

4 Índice Pedro Ramos, DCTI/ISCTE Classes UML – Diagrama de Classes Classe: conjunto de objectos que partilham o mesmo Mecanismo de Identificação, Estado, Comportamento, Relações e Semântica. Classe dos Clientes 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) 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).

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

6 Índice Pedro Ramos, DCTI/ISCTE 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 2) Generalizações Casos especiais: Composição Agregação UML – Diagrama de Classes

7 Índice Pedro Ramos, DCTI/ISCTE 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 UML – Diagrama de Classes

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

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

10 Índice Pedro Ramos, DCTI/ISCTE Associação “muitos para muitos” Aluno Número Nome Morada Disciplina Designação 0... * 0 … * João Ana Joana Luís Matemática Direito Marketing 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. Informática As associações podem ter nomes, nomes esses que terão que ser distintos frequenta UML – Diagrama de Classes A mesma associação (domínio e co-domínio idênticos)

11 Índice Pedro Ramos, DCTI/ISCTE Associação “um para um” Factura Data Emissão Data Pagamento Valor Número de Factura Nº Recibo Recibo Nº Cheque Banco Nº Recibo 0 … 11 É 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). UML – Diagrama de Classes

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

13 Índice Pedro Ramos, DCTI/ISCTE Classes Associativas (II) b) Associar uma classe a uma associação. Licenciatura Designação Tipo Avaliação Disciplina Designação Tipo Avaliação 1 … * 0 … * Disciplinas da Licenciatura Tipo Avaliação Docente Num. Contribuinte Nome Morada 0 … * Nota: As Classes Associativas apenas são necessárias nas associações “muitos para muitos”. 0 … * UML – Diagrama de Classes

14 Índice Pedro Ramos, DCTI/ISCTE Agregações (I) UML – Diagrama de Classes As Agregações são associações que se utilizam quando se pretende representar a noção de Todo/Parte (um todo constituído por partes). A associação “lê-se” de forma semelhante às restantes associações. Empresa Designação Morada Departamento Designação 1 0 … * Automóvel Matrícula Marca Modelo Roda Tipo Pneu Tipo Jante 1 4 Volante Material 1

15 Índice Pedro Ramos, DCTI/ISCTE Agregações (II) UML – Diagrama de Classes Schmuller, 99 Permite a indicação explícita de disjunções (Or) nas agregações. Automóvel Matrícula Marca Modelo Roda Tipo Pneu Tipo Jante 1 4 Volante Material 1 Caixa AutomáticaCaixa Manual 1 1 {or}

16 Índice Pedro Ramos, DCTI/ISCTE Composições (I) As composições são um caso especial de Agregações (normalmente associações “um para muitos”) que representam situações em que um objecto de uma classe (composição) resulta da composição de um conjunto de objectos de outra classe (componente), e em que os componentes apenas existem no contexto da classe composição. São Agregações em que o sentido da pertença é mais forte. Caso optasse pela seguinte representação escondia uma realidade que pode ser considerada relevante: as linhas apenas existem enquanto existir a factura da qual fazem parte. Na representação anterior fica explicitamente descrito que, por exemplo, se remover-mos uma factura, as linhas dessa factura também serão removidas. Factura Número Data Linha da factura Produto Quantidade Preço Unitário 1 … * 1 Uma factura é uma composição de linhas. Factura Número Data Linha da factura Produto Quantidade Preço Unitário 1 … * 1 UML – Diagrama de Classes

17 Índice Pedro Ramos, DCTI/ISCTE Composições (II) Factura nº 123 Data: 12/12/1999 Cliente João Silva Nº Cont Produto Quant. P. Unit Total Produto A Produto B Produto X Total Só existe no contexto da factura 123 Factura nº 100 Data: 12/10/1999 Cliente Ana Silva Nº Cont Produto Quant. P. Unit Total Produto X Produto B Produto Y Total linhas diferentes, daí que uma linha apenas esteja associada a uma factura. Factura Número Data Linha da factura Produto Quantidade Preço Unitário 1 … * 1 UML – Diagrama de Classes

18 Índice Pedro Ramos, DCTI/ISCTE Composições (III) Factura Número Data Linha da factura Produto Quantidade Preço Unitário 1 … * 1 Funcionário Num. Contribuinte Nome Morada Departamento Designação 1 0 … * Apesar da obrigatoriedade existir em ambas as associações (1), são situações com semânticas distintas. O funcionário existe per si, não necessita de estar associado a um departamento para ser referido. No entanto, um funcionário que não trabalhe num departamento não é relevante para o domínio em causa (se o seu departamento for removido ele terá que ser excluído). A Linha da factura só pode ser referida (distinguida das restantes) se for indicada a factura correspondente. UML – Diagrama de Classes

19 Índice Pedro Ramos, DCTI/ISCTE Composições (IV) Escola Designação Morada Aluno Nome Morada 1 … * Escola Designação Morada 1 … *1 Aluno Nome Morada 1 … * 1 Aluno Inscrito Nº Inscrição abreviatura de... UML – Diagrama de Classes

20 Índice Pedro Ramos, DCTI/ISCTE Composições (V) UML – Diagrama de Classes Schmuller, 99 considera que a composição é uma Agregação em que a parte só pode ter no máximo um todo. ?

21 Índice Pedro Ramos, DCTI/ISCTE Generalização (I) A generalização é uma relação (“um para um”) que permite representar a noção de pertença ou especificidade. Sócios Organizações Individuais Todos os sócios partilham informação comum: Nome, morada, telefone, valor quotização, etc.... UML – Diagrama de Classes

22 Índice Pedro Ramos, DCTI/ISCTE Generalização (II) Porquê distingui-los? 1)Atributos específicos, ex. CAE em Organizações, Idade em Individuais; 2)Associações específicas: ex. Mercados onde as Organizações actuam; 3) Dar relevo a uma especificidade do domínio. UML – Diagrama de Classes

23 Índice Pedro Ramos, DCTI/ISCTE Generalização (III) Sócio Nome Morada Telefone Individual Idade Profissão Organização CAE País 0 … * Honorário •São associações “um para um”: um sócio apenas pode corresponder a uma organização e uma organização corresponde (obrigatoriamente) a um sócio; •Um sócio não pode ser simultaneamente Individual e Organização; •Um sócio pode não ser nem Individual nem Organização; •Um sócio pode ser Honorário e Individual, ou Honorário e Organização; •As subclasses herdam todos os atributos da supraclasse. UML – Diagrama de Classes

24 Índice Pedro Ramos, DCTI/ISCTE Atributos versus Classes (I) Docente Nome Morada Telefone Disciplina Docente Nome Morada Telefone Disciplina Designação … * ou ? É relevante realçar a noção de disciplina ? É importante referir que é obrigatório um docente estar associado a uma disciplina ? É importante validar as disciplinas (apenas permitir associar a um docente uma disciplina pré-definida)? A designação das disciplinas pode ser alterada? UML – Diagrama de Classes

25 Índice Pedro Ramos, DCTI/ISCTE Atributos versus Classes (II) Docente Nome Morada Telefone Disciplina Designação … * no computador Em rigor, não é necessária a Classe Disciplina para poder obter a funcionalidade indicada. No entanto, caso a classe não exista, as disciplinas válidas são constantes (não é permitida a sua manutenção). UML – Diagrama de Classes

26 Índice Pedro Ramos, DCTI/ISCTE Atributos versus Classes (III) Docente Nome Morada Telefone Idade 1 0 … * no computador Mesmo que pretenda a funcionalidade indicada, os limites de idade são imutáveis, logo a validação não necessita de ser efectuada através de uma classe Idade. Conjunto dos inteiros (>18 e < 100) Não parece ser relevante destacar a Idade. UML – Diagrama de Classes

27 Índice Pedro Ramos, DCTI/ISCTE Associações n-árias (I) Disciplina do Curso Ano da Licenciatura Licenciatura Designação Disciplina Designação 0 … * Gestão Informática Comunicação Matemática Marketing 2º Ano 1º Ano 3º Ano UML – Diagrama de Classes

28 Índice Pedro Ramos, DCTI/ISCTE Associações n-árias (II) Gestão Matemática 2º Ano / 1º Ano Cenário de Reestruturação de Licenciatura (ano de transição): Matemática ocorre no 1º e 2º ano da Licenciatura em Gestão. 1º Ano Não devem existir atributos multi-valor Apesar de o ano ser diferente nas duas associações, as associações são as mesmas: uma associação é identificada (distingue-se) através dos seus argumentos (e não pelos atributos). UML – Diagrama de Classes

29 Índice Pedro Ramos, DCTI/ISCTE Associações n-árias (III) Ano Licenciatura Ano Disciplina do Curso 0 … * Licenciatura Designação Disciplina Designação 0 … * Gestão Matemática 2º Ano 1º Ano UML – Diagrama de Classes Não é necessária a classe associativa

30 Índice Pedro Ramos, DCTI/ISCTE Associações n-árias (IV) Ano Licenciatura Ano Disciplina do Curso 0 … * Licenciatura Designação Disciplina Designação 0 … * Ano Licenciatura Ano Disciplina do Curso 1 … * Licenciatura Designação Disciplina Designação 0 … * alternativa UML – Diagrama de Classes Uma instância em Disciplina do Curso têm que estar obrigatoriamente associada a um ano

31 Índice Pedro Ramos, DCTI/ISCTE Associações com apenas uma Classe Funcionário Num. Contribuinte Nome Morada 1 0 … * chefe Aeroporto Nome Cidade Pais Reserva Voo Data Número Reserva Passageiro Ligações 0 … * 1 trajecto Aeroporto Nome Cidade Pais 0 … * 1 1 origem destino Alternativa Não armazena ligações nem escalas UML – Diagrama de Classes Evitam Lisboa - Lisboa?

32 Índice Pedro Ramos, DCTI/ISCTE Relações de Dependência UML – Diagrama de Classes As relações de dependência permitem evidenciar dependências comportamentais que não transparecem nas relações estruturais. Existe uma relação de dependência quando uma alteração num objecto de uma classe origina uma alteração em outro objecto de outra classe. Uma inscrição de um aluno em uma disciplina, origina uma entrada de uma receita. A seta aponta para a classe dependente. Uma relação entre Aluno e Folha de Receitas não é esclarecedora. Aluno Nome Disciplina Designação 1 … *1... * Inscrição Disciplina() Folha Receitas Data Movimento Montante Registo Receita() 0 … * Não é necessário indicar quais os métodos envolvidos.

33 Índice Pedro Ramos, DCTI/ISCTE Roles UML – Diagrama de Classes Uma forma alternativa à utilização de nomes das associações consiste na indicação do papel (roles) de cada uma das classes na associação. Na associação o Funcionário representa o papel do empregado e a empresa o de empregador (alternativa a designar a associação de “Trabalha”). Pode-se indicar apenas a designação de um role. Funcionário Num. Contribuinte Nome Morada Empresa Designação 1 0 … * empregadoempregador

34 Índice Pedro Ramos, DCTI/ISCTE Navegação UML – Diagrama de Classes Caso seja relevante, pode ser indicado na associação o sentido na navegação, i.e., a forma preferencial de leitura da associação. Formalmente, a indicação de um sentido de navegação não implica que não exista uma relação estrutural bi- direccional. Docente Nome Morada Telefone Idade 1 0 … * tem Não é relevante realçar que para uma idade podem corresponder vários docentes.

35 Índice Pedro Ramos, DCTI/ISCTE Especificação de Atributos UML – Diagrama de Classes Na especificação dos atributos, para além da sua designação, é possível indicar outras propriedades. CD Audio Título: String Género Música: String = “Rock” Data: Date Valor por omissão

36 Índice Pedro Ramos, DCTI/ISCTE Packages Conta UML – Diagrama de Classes Os Packages são agrupamentos de classes. Factura Tab IRS Funcionário Por exemplo, correspondem a sistemas informáticos distinctos Relação de dependência: a activação de pelo menos um método de uma classe do package Processamento de Salários activa um método do outro package.


Carregar ppt "Índice Pedro Ramos, DCTI/ISCTE UML – Diagrama de Classes Pedro Nogueira Ramos DCTI / ISCTE."

Apresentações semelhantes


Anúncios Google