Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Como representar associação entre classes no Diagrama de Classes?

Como faço para representar associação entre classes no Diagrama de Classes?

Eu tenho 2 classes: Disciplina e CH

Disciplina
idDisc : int
disciplina : String
siglaDisc : String
CH : ???
CH
idCH : int
chSemanal : int
chBimestral : int
chAnual : int

? Eu quero indicar que o atributo CH de Disciplina tem uma relação (associação, composição, agregação, não sei qual) com a classe CH. Como eu faço para representar o tipo de dados? CH: CH ? E como eu faço para expressar a relação? 1 -> 1* 1 Disciplina tem 1 ou muitas CH São 10 Disciplinas São 5 CH: 40, 80, 120, 160 e 200 Sendo que tem Disciplinas que tem 1 ou 2 CH, de acordo com a série/ano.

7 respostas

Edson, tudo bom?

Depende da sua modelagem de classes, mas eu iria nas cardinalidades.

Cada Disciplina pode ter 1 ou 2 chSemanais. Exemplos: Ensino Religioso (1 aula semanal) Artes (2 aulas semanais) Geografia (3 aulas semanais) Matemática (4 aulas semanais) Língua Portuguesa (4 aulas semanais) 6º e 7º ano Língua Portuguesa (5 aulas semanais) 8º e 9º ano

Uma Disciplina pode ter 1 ou *muitas chSemanais? Na modelagem eu coloquei CH como atributo (tipo CH) da classe Disciplina.

Edson, tudo bom?

Primeiro, o que são CH? Quando falamos de documentação formal, UML tudo tem que ser muito claro. Não pode haver ambiguidade. Eu começaria por ai. Suponho que são chamadas, correto? Mas quem lê o documento não pode supor, tem que te certeza.

CH = cargas horárias, CH é o nome da classe Cada Disciplina (classe) tem 1 ou 2 cargas horárias semanais.

Cada Disciplina pode ter 1 ou 2 chSemanais. Exemplos: Ensino Religioso (1 aula semanal) Artes (2 aulas semanais) Geografia (3 aulas semanais) Matemática (4 aulas semanais) Língua Portuguesa (4 aulas semanais) 6º e 7º ano Língua Portuguesa (5 aulas semanais) 8º e 9º ano

Uma Disciplina pode ter 1 ou *muitas chSemanais? Na modelagem eu coloquei CH como atributo (tipo CH) da classe Disciplina.

solução!

Oi Edson, como vai você?

Tendo em vista seu cenário, o atributo CH na classe disciplina seria do tipo CH(classe). Porém, vale ressaltar que é necessário colocar um atributo ano na classe Carga Horária. Dessa forma, você poderia fazer com que o atributo CH em disciplina fosse uma lista de Cargas Horárias, onde uma disciplina pode ter uma ou várias cargas horárias a depender do ano, onde o ano também poderia ser uma lista. Por exemplo:

Disciplina                                  
idDisc : 001                                    
disciplina : Língua Portuguesa                                  
siglaDisc : LP001                                   
CH : lista de CH           # terá os objetos ch1 e ch2                      

objeto ch1
CH
idCH : 110
chSemanal : 5
chBimestral : 40
chAnual : 60
turmaAno: [8, 9]

objeto ch2
CH
idCH : 110
chSemanal : 4
chBimestral : 70
chAnual : 80
turmaAno: [6, 7]

Qualquer dúvida estou a disposição. Abraços e bons estudos!

Excelente dica, eu já tinha até desistido de fazer essa modelagem. Vou retornar ao trabalho.

Continua firme, Edson. E qualquer dúvida, só postar aqui que tentamos ajudar você. Tudo bem?!

Abraços e bons estudos =)