- Gerenciar projetos:
- Adicionar projeto
- Adicionar projeto
- Definir coordenador
- Alterar status de andamento do projeto
- Adicionar novo membro
- Adicionar nova atividade
- Adicionar/remover nova informação
- Alterar status de andamento do projeto
- Listar todas as informações
- Listar atividades associadas ao projeto
-
Gerenciar atividades:
- Adicionar participante em atividadebr/>
- Adicionar tarefa de participante
- Listar membros
-
Gerenciar membros:
- Adicionar aluno de graduação, mestrado e doutorado
- Adicionar professor
- Adicionar pesquisador
- Adicionar profissional desenvolvedor, testador e analista
- Adicionar aluno de graduação, mestrado e doutorado
- Adicionar técnico
- Mostrar informações completas de cada membro
- Registrar/remover projeto a um membro
- Listar projetos coordenados por um professor ou pesquisador
- Relatórios
- Gerar relatório geral
- Listar membros em específico
- Gerar relatório geral
- Person
- Motivação: Todas as pessoas tem dados em comum.
- Vantagens: Grande número de métodos não precisam ser reescritos.
- Desvantagens: Maior dificuldade de lidar com a grande quantidade de subclasses, como por exemplo, para receber objetos, passar objetos entre os métodos.
- Motivação: Todas as pessoas tem dados em comum.
- Responsible - Subclasse de Person
- Motivação: Era necessário que tanto pesquisadores como professores fossem responsáveis por projetos. Em breve poderia surgir novos responsáveis
- Vantagens: Listar os projetos em que este membro coordena sem precisar identificar se é um pesquisador ou professor.
- Desvantagens: Semelhante as desvantagens da classe Person.
- Motivação: Era necessário que tanto pesquisadores como professores fossem responsáveis por projetos. Em breve poderia surgir novos responsáveis
- Student - Subclasse de Person
- Motivaçao: Representar os estudantes, não era necessário no momento a criação de classes separadas para cada estudante, porém caso necessário, a implementação será simples.
- Vantagens: Facilidade em criar classes que herdam essa classe, caso seja necessário gerar especificidades.
- Motivaçao: Representar os estudantes, não era necessário no momento a criação de classes separadas para cada estudante, porém caso necessário, a implementação será simples.
- Professional - Subclasse de Person
- Motivação: Poderia ser necessário futuramente associar atividades aos profissionais e assim, gerar novas classes que herdassem a classe Professional.
- Vantagens: Ditas na motivação.
- Motivação: Poderia ser necessário futuramente associar atividades aos profissionais e assim, gerar novas classes que herdassem a classe Professional.
- Technical - Subclasse de Person
- Motivação: Caso seja necessário adicionar mais dados sobre os técnicos e funções específicas, a classe está criada.
- Vantagens: Manutenção mais fácil após código ter sido desenvolvido com essa classe preparada.
- Motivação: Caso seja necessário adicionar mais dados sobre os técnicos e funções específicas, a classe está criada.
- Professor - Subclasse de Responsible
- Motivação: Caso seja necessário adicionar mais dados sobre os professores e funções específicas, a classe está criada.
- Vantagens: Manutenção mais fácil após código ter sido desenvolvido com essa classe preparada, pode por exemplo, adicionar agora dados sobre o estilo de jogo do treinador.
- Motivação: Caso seja necessário adicionar mais dados sobre os professores e funções específicas, a classe está criada.
- Researcher - Subclasse de Responsible
- Motivação: Caso seja necessário adicionar mais dados sobre os professores e funções específicas, a classe está criada.
- Motivação: Caso seja necessário adicionar mais dados sobre os professores e funções específicas, a classe está criada.
- Registerbr/>
- Motivação: Manejar todos os registros (ArrayLists).
- Vantagens: Mantém a classe Main "limpa".
- Motivação: Manejar todos os registros (ArrayLists).
- Data
- Motivação: Projetos e atividades tem dados em comum.
- Vantagens: Facilidade em adicionar novas características em comum pra projetos e atividades.
- Motivação: Projetos e atividades tem dados em comum.
- Project - Subclasse de Data
- Motivação: Necessário gerenciar projetos.
- Vantagens: Com uma classe para projetos, fica mais fácil trabalha-los como objetos, podendo guardar em Array Lists, passar como métodos.
- Motivação: Necessário gerenciar projetos.
- Activity - Subclasse de Data
- Vantagens: Com uma classe para atividades, fica mais fácil trabalha-las como objetos, podendo guardar em Array Lists, passar como métodos.
- Vantagens: Com uma classe para atividades, fica mais fácil trabalha-las como objetos, podendo guardar em Array Lists, passar como métodos.
- Task - Subclasse de Data
- Motivação: Necessidades de criar tarefas associadas a cada tipo de membro.
- Vantagens: Com uma classe para tarefas, fica mais fácil trabalha-las como objetos, podendo guardar em Array Lists, passar como métodos.
- Motivação: Necessidades de criar tarefas associadas a cada tipo de membro.
- Information
- Motivação: Possível necessidade de alterar o tipo de informação.
- Vantagens: Facilidade em alterar as informações adicionais
- Motivação: Possível necessidade de alterar o tipo de informação.
- Métodos buscadores e de listagem:
- find(MemberClass)() e list(MemberClass).
- Motivação: Buscam/listam objetos de cada classe. Foram colocados todos na classe Register devido a localização dos ArrayLists de registro, como por exemplo o ArrayList de registro de todos os estudantes.
- Motivação: Buscam/listam objetos de cada classe. Foram colocados todos na classe Register devido a localização dos ArrayLists de registro, como por exemplo o ArrayList de registro de todos os estudantes.
-
addNewMember()
- Motivação: Método colocado na classe Register devido a localização dos registros.
- Motivação: Método colocado na classe Register devido a localização dos registros.
-
readNumber()
- Motivação: Função que lê inteiros com tratamento de exceções.
- Vantagens: Caso seja necessário alterar o que é feito após capturar uma exceção ao ler inteiros, ao alterar este método, toda a leitura de inteiros do sistema está atualizada.
- Motivação: Função que lê inteiros com tratamento de exceções.
-
readFloat()
- Motivação: Função que lê números reais (floats) com tratamento de exceções.
- Vantagens: Caso seja necessário alterar o que é feito após capturar uma exceção ao ler floats, ao alterar este método, toda a leitura de floats do sistema está atualizada.
- Motivação: Função que lê números reais (floats) com tratamento de exceções.
- Motivação: Aproveitar atributos em comum foi necessário na maioria das classes onde a herença foi usada. Nas classes derivadas da classe Person, é interessante pensar que o projeto pode ter mais funções e uma melhor distribuição das classes facilita a implementação e manutenção, após o código ter sido desenvolvido. Era necessário também uma classe Responsible por motivos explicados anteriormente na seção em que fala sobre essa classe.
- Solução: Criar classes para possíveis responsáveis por projetos, e outras para cada tipo de membro.
- Vantagens: Deste modo, a manutenção fica mais fácil e o surgimento de novas funções para o sistema também.
- Desvantagem: As classes ainda não estão sendo muito bem utilizadas, nesta concepção inicial do sistema.
- Motivação: O método showInformations() mostra as informações contidas nos atributos da classe em que está e nas superclasses, logo foi necessário usar de polimorfismo.
- readNumber() - Tratamento InputMismatchException
- Motivação: O sistema lê muitos inteiros e caso o usuário digite algo diferente quando o sistema espera esse tipo, aparece um erro ao qual o usuário comum dificilmente irá entender.
- Solução: Criar um método de leitura para inteiros com tratamento de exceções.
- Vantagens: Com a utilização de métodos, caso seja necessário alterar o que é feito após capturar uma exceção ao ler inteiros, ao alterar este método, toda a leitura de inteiros do sistema está atualizada e uma mensagem amigável irá aparecer ao usuário caso ele não digite um inteiro.
- Motivação: O sistema lê muitos inteiros e caso o usuário digite algo diferente quando o sistema espera esse tipo, aparece um erro ao qual o usuário comum dificilmente irá entender.
- readFloat() - Tratamento InputMismatchException
- Motivação: O sistema lê valores reais e caso o usuário digite algo diferente quando o sistema espera esse tipo, aparece um erro ao qual o usuário comum dificilmente irá entender.
- Solução: Criar um método de leitura para inteiros com tratamento de exceções.
- Vantagens: Com a utilização de métodos, caso seja necessário alterar o que é feito após capturar uma exceção ao ler floats, ao alterar este método, toda a leitura de floats do sistema está atualizada e uma mensagem amigável irá aparecer ao usuário caso ele não digite um float.
- Motivação: O sistema lê valores reais e caso o usuário digite algo diferente quando o sistema espera esse tipo, aparece um erro ao qual o usuário comum dificilmente irá entender.
-
Novos tipos de estudante - Classe Student
- Motivação: Pode ser necessário a implementação de novos tipos de estudantes.
- Vantagens: A classe Students deverá ter todos os dados básicos e métodos básicos e permitirá que qualquer tipo de função possa ser adicionada ao sistema extendendo a essa classe.
- Motivação: Pode ser necessário a implementação de novos tipos de estudantes.
-
Novos tipos de pessoas - Classe Person
- Motivação: A clase Person vem sendo extendida pois tem vários dados em comum, e poderá ser extender mais classes que tenham esses dados em comum.
- Solução: A classe Person não tem dados que não sejam pertinentes a Responsible e Student ao mesmo tempo.
- Motivação: A clase Person vem sendo extendida pois tem vários dados em comum, e poderá ser extender mais classes que tenham esses dados em comum.