Nesta função é necessário inserir as informações básicas de um colaborador do tipo Professor, tais como nome, e-mail, endereço , etc;
- Nesta função é necessário inserir as informações basicas de um colaborador do tipo Aluno, como mensaionado no comentário anterior
- Necessita das informações básicas de um Projeto, tais como Título, Objetivo, Descrição, Agência Financiadora, datas de início e término do projeto;
Obs: É necessário a existencia de um Professor cadastrado no sistema para que um projeto possa ser criado e iniciado;
- Para a criação de um publicação , é necessário informar o Titulo, Conferência na qual esta foi publicada, ano de publicação e os colaboradores responsáveis pela propria publicação;
- Esta função é responsável por vincular colaboradores ao projeto escolhido.
Para vincular um colaborador a um projeto é necessário que o status do projeto esteja 'Em elaboração' e com todas as suas informações completas.
- Esta funcão associa uma publicação armazenada no sistema a um projeto qualquer.
Obs: A publicação so pode ser vinculado ao projeto se seu status atual é 'Em andamento';
- Para tal função é necessario informar o tipo de alteração, (1) 'Em elaboração' para 'Em andamento' ou (2) 'Em andamento' para 'Concluido'.
A alteração do tipo (1) só é possivel se o projeto possui todas as informações básicas completas;
A alteração do tipo (2) so será efetuada se o projeto possuir publicações vinculadas.
- Nesta função é possivel o acesso a informações sobre colaboradores (Professor ou Aluno) e projetos cadastrados no sistema de produção acadêmica;
- Mostra um resumo geral do Sistema de Gerenciamento Acadêmico, incluindo quantidade de projetos, colaboradores, publicações e suas especifidades;
-
- Motivação: Criação de um Tipo que referenciasse um colaborador em geral, seus atributos basicos e fuções de acesso, lembrando que um colaborador(Pessoa) pode ser do Professor ou Aluno(Graduação, Mestrado, Doutorado) e que estes dois tipos possuem atributos unicos para cada caso;
- Solução: Criou-se uma classe que representa da forma mais comum os dois tipos de Pessoas envolvidas.Pessoa é uma classe Abstrata pois não precisa ser refenciada e funciona apenas como um modelo para os dois tipo de colaboradores.
- Vantagens: Diminui codigos duplos e aplica o conceito de Herança , tornando os processos mais efetivos de forma simples.
- Desvantagens:
-
- Motivação: Havia a necessidade de representar um colaborador do tipo aluno que podesse ser graduando, mestrando e doutorando e que seria uma subclasse do tipo 'Pessoa', buscando organizar a divisão e representação dos diferentes tipos de colaborados e seus atributos.
- Solução: Implementou-se uma classe que possui atributos referentes ao tipo Aluno, tais como Listas de professores dos quais este aluno tem orientação e quantidade de projetos vinculados com status 'Em andamento' , uma vez que alunos de graduação não podem estar associados a mais de dois projetos com este status.
- Vantagens: Maior facilidade em atribuir e editar informações deste Aluno buscando sempre aplicar os conceitos de encapsulamento.
- Desvantagens:
-
- Motivação: Representar um calaborador do tipo Professor subclasse de 'Pessoa'.
- Solução: Criou-se uma classe responsável por atributos e funções relacionadas a um Professor, possuindo unicamento uma lista de Oriemtações usada para armazenar objetos do tipo Aluno, os quais são orientados pelo professor em questão.
- Vantagens: Organização do sistema e facil acesso ao Objeto 'Professor' e suas funcões proprias.
- Desvantagens:
-
- Motivação: Representar a estrutura de um projeto, amenizando os processos referentes ao sistema de gerenciamento e tornando sistema mais simples e direto.
- Solução: Criou-se uma classe possuidora de atributos referentes a um projeto genérico, tais como: Titulo, Objetivo, Status, Descrição, datas de início e término, Listas de Alunos, professores e projetos vinculados.
- Vantagens: Melhor gerenciamento do projeto, fácil acesso e representação simples.
- Desvantagens:
-
- Motivação: Representar de forma simples como seria a estrutura de uma publicação, seus atributos e utiliza-la em conjunto com as outras classes a fim de organizar o sistema aumentando o seu desempenho.
- Solução: A classe publicação deveria possuir atributos voltados ao armazenamento de conjunto, tais como Autores, Projetos associados e informações básicas, tais como: Titulo, Conferência na qual foi publicada e ano de publicação.
- Vantagens: Melhor representação dos dados , fácil manuseio de funções de edição e atributos.
- Desvantagens:
-
- Motivação: Criar uma classe que possuisse os atributos gerais do sistema e que fosse responsavel por controlar todas as suas funções, tais como as funcionalidades citadas no início desta descrição.
- Solução: A classe de Controle possui os atributos gerias do sistema de gerenciamento, tais como Listas de Projetos, Professores, Alunos,Colaboradores e Publicações e as funcões de edição citadas no inicio da descrição.
- Vantagens: Alem de gerenciar todo o sistema, esta classe possui todas as funcões responsáveis por este gerenciamento, ocasionando um fácil acesso as listas de dados e suas funções especificas.
- Desvantagens: Por possuir todas as funcionalidades contidas em si, esta classe possui um tamamho considerável.
- os metódos que representam as funcionalidades principais foram dispostos na Classe ControleDoSistema, pois os atribuitos reponsáveis pelo armazenamento geral do sistema foram listados dentro desta classe, tornando a manipulação mais simples e eficaz.
-
- Motivação: Criar uma função que informasse ao usuario, as possibilidades oferecidas pelo Sistema.
- Solução: Mostrar um menu personalizado demonstrando todas as opções do sistemas , numeradas na ordem crescente de escolha.
- Vantagens: Interação com o usuário.
- Desvantagens:
-
- Motivação: Inicializar os atributos da Classe/Sistema, criando incialmente as listas de armazenamento geral.
- Solução: Inicializa as listas atribuindo-lhes referencias a conjunto de dados do tipo especificado.
- Vantagens: Evita erros de incialização e utilização destes atributos.
- Desvantagens:
-
- Motivação: Pelo fato da lista de projetos de armazenamento geral esta localizada na classe ControleDoSistema, esta função foi disposta nesta classe a fim de facilitar o acesso aos dados necessários para efetivar a função por esta referenciada e ainda pelo fato da ação de Criar um projeto ser uma possibilidade marcante do sistema.
- Solução: A função requer a entrada das informações basicas do novo projeto, tais como Titulo, Descrição, data de Início e Término.
- Vantagens: Fácil acesso a lista de Projetos associados, podendo um projeto ser adicionado rapidamente por meio desta função.
- Desvantagens: Se não houver ao menos um professor cadastrado no Sitema o projeto não poderá ser adicionado.
-
- Motivação: Adicionar novos professores ao sistema, que podem ser vinculados a projetos, responsaveis por orientar alunos ou resposaveis por uma publicação. Esta função foi posta na Classe ControleDoSistema, pois foi notado que seria de fácil acesso a manipulção da lista geral de professores localizada no classe citada.
- Solução: A função CadastrarProfessor() utiliza a facilidade da herança para cadastrar as informações comuns a Pessoas por meio da Função CadastrarPessoa() localizada na superclasse. Estas duas funções necessitam das informações básicas de um colaborador(Pessoa), tais como nome, e-mail, endereço etc.
- Vantagens: Fácil acesso a lista de alunos/colaboradores disposta na classe ControleDoSistema.
- Desvantagens:
-
- Motivação: Adicionar novos alunos ao sistema, que podem ser vinculados a projetos, ou responsáveis por uma publicação. Esta função foi posta na Classe ControleDoSistema, pois foi notado que seria de fácil acesso a manipulção da lista geral de alunos localizada no classe citada.
- Solução: A função CadastrarAluno() funciona da mesma forma que a função CadastrarPreofessor(), porém e adicionado o atributo NivelUniversitário, então ao preencher estas informações o novo aluno e adicionado na listas geral de alunos e de colaboradores.
- Vantagens: Fácil acesso a lista de alunos/colaboradores disposta na classe ControleDoSistema.
- Desvantagens:
-
- Motivação: Esta função foi disposta nesta classe pelo fato do acesso aos dados necessarios para efetivar a sua função estão localizados na classe ControleDoSistema.
- Solução: A função AlocarParticipantes() é reponsavel por vincular os colaboradores à projetos escolhidos pelo administrador do sistema, ela checa se o status do sistema é 'Em andamento' e se for retornado true a função aloca o colaborador.
- Vantagens: É possivel escolher o tipo de colaborador, Aluno ou Professor a ser alocar para determinado projeto.
- Desvantagens:
-
- Motivação: Fácil acesso as listas de projetos e colaboradores(Alunos e Professores) disposto na classe ControleDoSistema , classe esta em que a função se encontra.
- Solução: A função em questão pode alterar o status do projeto de (1) Em elaboração para Em andamento ou (2) Em andamento para Concluído. A função também verifica se no projeto o qual se quer alterar o status existem alunos de Graduação já vinculados em dois projetos 'Em andamento' (Não e permitido que um aluno de graduação estaja vinculado a mais de dois projetos 'Em andamento') então se isto acontecer o sistema pede ao usuario para desvincular o determinado aluno de um outro projeto em andamento ja vinculado, o que faz com que a regra não seja violada.
- Vantagens: Controle mais efetivo da alteração do status de um projeto, alem da facilidade do acesso as informaçes.
- Desvantagens: Se um aluno ja estiver vinculado a dois projetos em andamento e necessário desvincula-lo de um destes projeto se desejar realmente fazer a alteração do status do projeto.
-
- Motivação: desenvolver uma maneira de vizualizar facilmente as informações de um dado aluno.
- Solução: A função MostrarAluno() utiliza a facilidade do polimorfismo da superclasse 'Pessoa' para imprimir as informações do aluno que s queira verificar.
- Vantagens: Pode-se facilmente ter acesso a essa função e aos atributos acessados por ela, pois a função se encontra na origem do armazenamento do sistema.
- Desvantagens:
-
- Motivação: Como uma publicação pode ser vinculada a um projeto , ela deve ser criada inicialmente e armazenada na lista geral de publicações, isso demonstra o por que desta função estar localizada na classe ControleDoSistema
- Solução: Esta função necessita das informações básicas de uma publicação , tais como Titulo. Conferencia onde foi publicada e ano de publicação.Ainda e responsavel por adicionar os autores a nova publicação, o que torna-se facil uma vez que a função foi colocada na classe ControleDoSistema , onde estão localizadas as listas de Aluno e Professores.
- Vantagens: É possivel escolher a quantidade de autores de uma publicação.
- Desvantagens:
-
- Motivação: As informacões necessarias para a efetivação da funcionalidade estão dispostas em ControleDoSistema, sendo assim, e mais fácil obter as informações utilizadas na função AlocarPublicacao.
- Solução: A função necessita do projeto que se deseja vincular e que este projeto possua o status 'Em andamento', se isto for confirmado a publicação é vinculada ao projeto.
- Vantagens: A vinculação pode ser feita quando desejavel, sendo atendidas todas as regras para a alocação.
- Desvantagens:
-
- Motivação: As informacões necessarias para a efetivação da funcionalidade estão dispostas em ControleDoSistema, sendo assim, e mais fácil obter as informações utilizadas na função Consulta, facilitando a execução desta funcionalidade.
- Solução: Esta função mostra as informações de um colaborador qualquer, tais como: nome, e-mail, historico de projetos, publicações associadas etc.
- Vantagens: facil acesso as informações que se quer visualizar.
- Desvantagens:
-
- Motivação: Esta função foi posta na classe ControleDoSistema devido ao fácil acesso as informações por ela utilizada.
- Solução: Mostrar um relatorio geral do Sistema de Gerenciamento Acadêmico.
- Vantagens: Fácil vizualização das informações atual do sistema.
- Desvantagens:
-
- Motivação: Os dois tipos de colaboradores possuem varios atributos em comum, dai a ideia de utilizar a herança.As classe Aluno e Professor são subclasses de Pessoa, que é uma classe Abstrata.
- Solução: As duas classes (Aluno e Professor) são subclasses de Pessoa;
- Vantagens: Utilização dos conceitos de herança para aumentar a facilidade do projeto.
- Desvantagens:
-
- Motivação: Era necessário criar uma superclasse para facilitar o uso da herança no projeto, porem a classe pessoa não precisa ser instanciada, serve apenas como modelo para as suas subclasses.
- Solução:
- Vantagens:
- Desvantagens: