Diagrama sequência

Fala galera, eu criei um tópico semanas atrás sobre diagrama de seqüência o pessoal respondeu, mais acabou que eu não conseguir compreender muito bem, então eu fiz um diagrama de seqüência sobre um cadastro de produto, aí eu queria que vocês verificassem pra ver se ta certo. Desde já agradeço pela atenção é pela paciência.
Eu estou utilizando swing a arquitetura tá assim uma classe Produto com os gets e sets, uma classe ProdutoBO com ás regras de negocio é uma classe ProdutoDAO com o sql. Abaixo segue a implementação do códigos de cada método.

método da classe TelaDeCadastroDeProduto

private void btnCadastrarActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    	try{
    		 if(vericaCamposVazios()==true){
    			ProdutoBO pbo = new ProdutoBO();
    			Produto p = new Produto();
    			p.setNome(textNome.getText());
    			p.setDescricao(textDescricao.getText());
    			pbo.cadastrarProduto(p);
    			this.limpaCampos();
    		 }
    			
    	}catch(ProdutoException e){
    		JOptionPane.showMessageDialog(null,e.getMessage(),
    		"Informação",JOptionPane.ERROR_MESSAGE);
    	}
    	catch(Exception e){
    		JOptionPane.showMessageDialog(null,e.getMessage(),
    		"Informação",JOptionPane.ERROR_MESSAGE);
    	}
    }

método da classe ProdutoBO

public void cadastrarProduto(Produto p) throws ProdutoException,SQLException{
		dao=new ProdutoDAO();
		
		if(dao.existsNomeDescricao(p.getNome(),p.getDescricao())==true){
			
			throw new ProdutoException("O nome é a descrição do produto já existem.");
		}
		else {
			
			dao.insert(p);
		}
			
	}

método da classe ProdutoDAO


 	public boolean existsNomeDescricao(String nome,String descricao)throws SQLException{
 		
 		    boolean result=true;
 		    
 			PreparedStatement stmt = this.connection.prepareStatement("SELECT nome,descricao FROM Produto where nome=? and descricao=?");
 			stmt.setString(1,nome);
 			stmt.setString(2,descricao);
 			
 			ResultSet rs = stmt.executeQuery();
 			
 			
 	 		 if(rs.next())
 	 		 {
 	 		 	
 	 			result= true;
 	 		 
 	 		 }
 	 		 else{
 	 		 	
 	 		 	
 	 			result= false;
 	 		 }
 	 		
 	 		 
 	 		 
 		 	rs.close();
 		 	stmt.close();
 		 	
 	 	 	
 			return result;
 	 	 	
 	}

método da classe ProdutoDAO

public void insert(Produto produto)throws SQLException{
			
	
	 		//prepared statement para inserção
		    PreparedStatement stmt = this.connection.prepareStatement("INSERT INTO Produto (nome,descricao) values (?,?)");

 	 		// seta os valores
 	 		stmt.setString(1,produto.getNome());
 	 		stmt.setString(2,produto.getDescricao());
 	 		
 	 		// executa
 	 		stmt.execute();
 	 		
 	 		JOptionPane.showMessageDialog(null,"Dados inseridos com sucesso!\n " +
 	        "O produto foi inserido com o código: " + this.verificarCodigoDoCampo(),
 	    	"Informação",JOptionPane.INFORMATION_MESSAGE);
 	 		
 	 		stmt.close();	
	 				
 	}


Foguinho, seu diagrama está legal. Se fosse meu aluno receberia nota 10 (sou instrutor de UML).

O único detalhe é que geralmente não demonstro todos os gets e sets na sequência. Você pode esticar uma seta com o texto “popula atributos” mostrando a fonte e o destino. Isso deixa o diagrama válido, mesmo que os atributos mudem. (imagine também a situação de serem 20 atributos!)

O diagrama de sequência mostra como os objetos interagem trocando mensagens para solucionar o que o software tem que fazer. Essa interação não precisa ser detalhada. Quem quiser ver os detalhes vai direto ao código.

OK?

Obrigado aí rodrigoy pela atenção, fico muito feliz em sabe que o diagrama ta certo, e com certeza irei seguir suas dicas nos próximos diagramas de sequencia que eu fizer.