Diagrama de classes - dúvida total

Pessoal, faço c.c. e to com muita dúvida com diagrama de classes.
To com um trabalho na facul e não to onseguindo fazer o diagrama, estou com o código quase todo pronto só que sei q to fazendo errado programando primeiro…

  • Quando temos que um usuario pode cadastrar e altera projetos, daí tiro que USUARIO é uma classe PROJETO é outra e os métodos cadastrar e alterar projetos fica em PROJETOS ou USUARIO??

  • Tenho uma classe de projetos de parte grafica que monta tres janelas: cadstrar, alterar, excluir dependendo do q o usuario seleciona na tela principal… essas classes tem que se comunicar com uma outra classe de projetos q daí vai gravar no bano de dados?

  • Essas classes gráficas devem aparecer no diagrama de classes?

alguém pode postar exemplos por favor…

Diagramas de classes na minha opinião são os mais faceis ,não vou ir de explicando sendo que tem a maneira mais facil… eu utilizo a propria ferramenta pegando o meu codigo fonte dai ela gera os diagramas de classes automaticamente, só tem um problema se estiver trabalhando em camadas ,essa geração de diagramas não respeita isso ,dai vc deria que arrumar na mão o resto

Bom, acho que sua dúvida não é com o diagrama de classes e sim com modelagem, em especial o modelo de domínio. Eu criaria as classes Usuario que se relaciona com a classe Projeto. Para criar um projeto, você pode usar o próprio construtor da classe ou criar uma Fabrica de Projetos. Alterar projetos pelo meu entendimento seria equivalente a editar seus dados, o que se daria com os métodos de edição(podem ser setters, ou melhor ainda, métodos mais inteligentes com as regras de negócio adequadas) dentro da própria classe Projeto.
Segue um exemplo:

class Usuario {
   String codigo;
   String nome;
   //getters, setters e métodos
}

class Projeto {
    String nome;
    Date dataInicio;

    public Projeto(String nome, Date dataInicio){
    //código que cria o objeto com estes dados, com as devidas validações
    }

    //getters e setters
}

class RepositorioProjetos { //o ideal é que isto fosse uma interface
     List<Projeto> listaDeProjetos;
     
     public Projeto procurarProjetoPorNome(String nome) {
     //procura o projeto no repositório e retorna
     }
}

Tem várias ferramentas que geram o diagrama partindo do código.