Funcionalidade

Q: Posso inserir mais funcionalidade que a que é pedida no enunciado?
R: Não. A implementação deve cumprir os requisitos do enunciado sem omitir, nem acrescentar, nenhum aspecto.

Sobre o método String.split (Java)

Q: O método split da classe String parece não funcionar quando chamado com o argumento "|". Qual é o problema?

R: Este método aceita uma expressão regular e a barra vertical faz parte da sintaxe protegida, pelo que deve ser escrita como "\\|". Dessa forma o split já é correctamente efectuado.

Sobre UML

Q: Quando as classes do projeto estão relacionadas com classes do Java, temos de as representar no UML?

R: É necessário representar a existências das classes/interfaces Java (basta o rectângulo com o nome) e as relações das outras classes com elas.