Diagrama e identificação de classes, objetos, atributos e métodos

10 respostas
J

Estou iniciando na linguagem Java na faculdade e o prpofessor passou o seguinte problema, onde gostaria de um auxilio:

[size=18]Faça uma modelagem simples para o seguinte problema:

“Um editor gráfico é capaz de criar diagramas compostos
por retas, quadrados e strings de texto.
As retas são definidas por dois pontos (x1,y1 e x2,y2).
Os quadrados são definidos pelos pontos extremos a diagonal principal
e os strings de texto por um ponto e pelo texto propriamente dito.
O editor permite inserir, remover ou transladar objetos.”[/size]

Eu havia feito algo semelhante ao abaixo:

O professor disse que estava errado e questionou:
O que são x1, x2 y1 e y2?
O que são os pontos extremos?
O que é um ponto?

Gostaria de um auxílio de como fazer o diagrama, lembrando que é um diagrama simples, não UML.
Ouvi também o professor dizer que o ponto poderia ser considerado uma classe…

10 Respostas

JGuilherme

Não sei se entendi o que exatamente você quer, mas vou tentar… se alguém achar que estou errado, fala ae.

O que são x1, x2 y1 e y2?
R: Seriam os atributos de um objeto que representa um ponto, onde: x e y seria a posição do ponto
O que são os pontos extremos?
R: São os pontos ( pontos que possuem as coordenadas x e y ), que representam o inicio e o fim da diagonal principal do quadrado
O que é um ponto?
R: É um objeto utilizado para representar uma posição dentro da área de edição do editor gráfico.

Bom, outros pessoas podem pensar diferente ou de uma forma mais simplificada… como por exemplo, o x e y serem os atributos da reta,quadrado e etc. Mas isso vai de acordo com a modelagem.
Isso ae é o que eu acho…

Abraço

J

Olá Guilherme,

Obrigado pela resposta, esqueci de dizer que o professor falou também que o esboço que apresentei estava errado. É nisto que estou com dificuldade.

Ouvi também o professor dizer o ponto poderia ser considerado uma classe…

JGuilherme

Não diria que você esta errado. Talvez não esteja de acordo com o professor esperava. Mas isso é uma questão de modelagem do problema…

Mas como as boas práticas pregam que quanto mais específica for a classe melhor ( e é melhor mesmo, isso é chamado de coesão ), concordo em dizer que o ponto deveria ser uma classe. Por isso, disse que o ponto seria um objeto ( objeto é uma instância de uma classe ) que representava uma posição do editor, nada mais que isso.

Ou seja,
Você irá ter uma classe Ponto. Essa classe irá ter 2 atributos ( x e y ), que nada mais serão do que a posição x e y do objeto ponto no editor.

A classe reta vai possuir dois atributos do tipo da classe Ponto ( pontoInicial e pontoFinal, por exemplo ), que irão representar o ponto inicial e final da reta. O mesmo ocorre com o quadrado, vai ter dois atributos da classe Ponto para representar o ponto inicial e final da diagonal principal do quadrado.

Você conseguiu entender o que eu quis dizer?
Melhorou, ficou na mesma ou piorou?

Abraço

J

JGuilherme:
Sim, acho que agora estou começando a entender. De acordo com o enunciado então eu teria também na classe Strings um atributo da classe Ponto e um atributo do tipo string, certo?

Está certo os métodos inserir, trasladar e remover pertencerem à classe Editor Gráfico?

Obrigado novamente!!!

wellington.nogueira:
O diagrama é de classe, eu disse que não é UML. Ainda não aprendemos os conceitos de UML, então não é necessário aplicar todos os requisitos, apenas uma representação simplificada.

Quanto ao que ele disse sobre o ponto ser uma classe, sim ele não falou para mim, como ninguém, na sala conseguiu fazer os alunos iam à mesa dele para apresentar o que tinham feito, e o ouvi falando isto a um dos alunos.

JGuilherme

jhonatta:
Sim, acho que agora estou começando a entender. De acordo com o enunciado então eu teria também na classe Strings um atributo da classe Ponto e um atributo do tipo string, certo?

Está certo os métodos inserir, trasladar e remover pertencerem à classe Editor Gráfico?

Obrigado novamente!!!

Isso mesmo garoto! :smiley:
O atributo da classe Strings seria o ponto inicial de onde iria começar a String. E o atributo String seria o texto propriamente dito.

Sim. Para mim, os métodos estão no local certo, já que quem vai ser responsável em manipular as retas, quadrados e etc é o editor gráfico.

Abraço

J

Uma dúvida, se Quadrado e Reta possuem os mesmos atributos e uma diagonal é formada por uma reta, não poderia a classe Quadrado ser formada por apenas um atributo da classe Reta, em vez de dois atributos da classe ponto?

Neste caso a classe Quadrado seria uma subclasse da classe Reta certo?

JGuilherme

jhonatta:
Uma dúvida, se Quadrado e Reta possuem os mesmos atributos e uma diagonal é formada por uma reta, não poderia a classe Quadrado ser formada por apenas um atributo da classe Reta, em vez de dois atributos da classe ponto?

Neste caso a classe Quadrado seria uma subclasse da classe Reta certo?

Sim, a classe quadrado poderia ser formada por atributos de classe reta. Mas como o seu professor disse que os quadrados seriam compostos pelos pontos extremos a diagonal principal , não sei se você deveria colocar isso na atividade.

Mas mesmo assim, é uma boa colocação…

J

Hum, é verdade… Valeu pelas respostas…

JGuilherme

Foi nada.
Quando precisar, é só chamar

Abraço

WellingtonRamos

jhonatta:
Olá Guilherme,

Obrigado pela resposta, esqueci de dizer que o professor falou também que o esboço que apresentei estava errado. É nisto que estou com dificuldade.

Ouvi também o professor dizer o ponto poderia ser considerado uma classe…


Que tipo de diagrama seu professor quer que não seja um diagrama de classe (mas diz que ponto pode ser uma classe)?

Se for um diagrama de classes, por exemplo, está errado mesmo.
Ele não deu nem um exemplo de diagrama para vocês seguirem?

[JOKE]
Aliás, por essa linha

jhonatta:
Ouvi também o professor dizer o ponto poderia ser considerado uma classe…
eu entendo que ele não disse isso para você, mas para outra pessoa. É isso mesmo?
[/JOKE]

Criado 29 de agosto de 2011
Ultima resposta 29 de ago. de 2011
Respostas 10
Participantes 3