====== Especificação Funcional: Cadastro de turmas regulares ======
===== Resumo =====
Esta especificação descreve os requisitos utilizados como base para o desenvolvimento do módulo de Cadastro de Turmas do software Tecsystem School e suas principais operações.
===== Descrição =====
O Cadastro de turmas regulares reúne todas as informações das turmas (dados gerais, alunos, professores, aulas dadas, informações adicionais e dados relativos ao Censo Escolar) e constitui um módulo centralizado para a realização de todas as operações relativas aos mesmos. Através deste módulo é possível incluir novas turmas, excluir uma turma cadastrada, editar e visualizar os dados das turmas cadastradas, visualizar os dados dos alunos matriculados na turma, bem como remanejá-los para outras turmas, configurar os professores que lecionam as disciplinas da turma, restaurar a configuração mínima de aulas da turma, reconfigurar as disciplinas pertencentes à turma e lançar as notas e faltas dos alunos matriculados na turma.
Ao acessar este módulo, o sistema deve exibir uma lista com as turmas já cadastradas para facilitar as operações de exclusão, edição e visualização dos dados, já que para isso é necessário indicar qual é a turma que será utilizada. Esta lista, que deve exibir os dados mais importantes de cada turma, também deve permitir a organização e o filtro dos dados por qualquer campo que esteja visível, além de permitir que o usuário oculte/exiba campos, imprima e exporte o conteúdo da lista.
==== Dados da Turma ====
Uma turma deve possuir os seguintes campos:
|< 100% 19% 60% 7% 7% 7%>|
^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^
|**__Dados gerais__** |||||
|Escola |Nome da escola da qual a turma pertence | Texto | - | Sim |
|Curso |Nome do curso do qual a turma pertence | Texto | - | Sim |
|Série |Nome da série da qual a turma pertence | Texto | - | Sim |
|Turma |Nome da turma | Texto | 80 | Sim |
|Turno |Turno no qual a turma funciona | Texto | - | Não |
|Capacidade |Capacidade de alunos para a turma | Número | - | Não |
|**__Alunos__** |||||
|N° |Número de ordenação do aluno na turma | Número | - | - |
|Código |Código de identificação do aluno no sistema | Número | - | - |
|Nome |Nome do aluno | Texto | - | - |
|Data nasc. |Data de nascimento do aluno | Data | - | - |
|Data matrícula na turma |Data de matrícula do aluno na turma | Data | - | - |
|Movimento na turma |Movimento atual do aluno na turma | Texto | - | - |
|**__Profissionais__** |||||
|**Docentes** |||||
|Disciplinas |Nome das disciplinas da turma | Texto | - | - |
|Classificação da disciplina|Tipo de classificação da disciplina em relação ao diário de classe (Principal, Conjunta ou Individual) | Texto | - | - |
|Professores |Nome dos professores que lecionam na turma, para as respectivas disciplinas | Texto | - | - |
|**Outros profissionais** |||||
|Função |Função do professor na turma | Texto | - | - |
|Professor |Nome do professor | Texto | - | - |
|**Pedagogos** |||||
|Pedagogo |Nome do pedagogo | Texto | - | - |
|**__Aulas dadas__** |||||
|Disciplinas |Nome das disciplinas da turma | Texto | - | - |
|Períodos letivos |Quantidade de aulas lecionadas na turma, para disciplina e período letivo respectivos | Número | - | - |
|Total |Quantidade total de aulas lecionadas na turma, para respectiva disciplina | Número | - | - |
|**__Informações adicionais__** |||||
|Observações |Informações adicionais sobre a turma | Texto | 1000 | Não |
|**__Censo escolar__** |||||
|**Identificação** |||||
|Tipo de mediação |Tipo de mediação didático-pedagógico da turma | Texto | - | Sim |
|Função exercida pelo docente |Função que será exercida pelos docentes na turma | Texto | - | Sim |
|Hora inicial |Hora e minuto de início das aulas na turma | Número | - | Não |
|Hora final |Hora e minuto de término das aulas na turma | Número | - | Não |
|Dias da semana que a turma tem aula |Indica os dias da semana que a turma tem aula | - | - | Não |
|Local diferenciado |Local de funcionamento diferenciado da turma | Texto | - | Não |
|Classe com ensino desenvolvido com Libras como primeira língua (bilíngue para surdos) |Indica se a turma tem ensino desenvolvido com a Língua Brasileira de Sinais – Libras como primeira língua e a língua portuguesa de forma escrita como segunda língua (bilíngue para surdos) | - | - | Sim |
|**Turma multi** |||||
|Turma multi |Identifica se a turma é multi ou não | Sim/Não | - | Não |
|Tipo de multi |Caso a turma seja multi, identifica se a turma é multi principal ou dependente | Principal/Dependente | - | Não |
|Etapa multi |Etapa multi da turma | Texto | - | Não |
|Turmas multi dependentes |Turmas existentes na escola e curso da turma, que podem ser suas dependentes | Sim/Não | - | Não |
|Turma multi principal |Nome da turma principal da qual a turma é dependente | Texto | - | Não |
|**Formas de organização** |||||
|Forma de organização da turma |Utilizado para identificar se a turma possui ou não as formas de organização | - | - | Não |
|**Estrutura curricular** |||||
|Estrutura curricular da turma |Utilizado para identificar se a turma possui ou não as estruturas curriculares | - | - | Sim |
|**Unidade curricular** |||||
|Unidade curricular da turma |Utilizado para identificar se a turma possui ou não as unidades curriculares | - | - | Não |
|Professor |Nome do professor que leciona na turma, para a respectiva unidade curricular | Texto | - | - |
|Outra(s) obrigatória(s) |Outra(s) unidade(s) curricular(es) obrigatória(s) | Texto | 500 | Não |
=== Dados do Professor / Docente vinculado à disciplina ===
O vínculo de um professor/docente em uma disciplina da turma deve possuir os seguintes campos:
|< 100% 19% 60% 7% 7% 7%>|
^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^
|**Disciplina** |||||
|Nome da disciplina |Nome da disciplina a qual o professor será vinculado | Texto | - | Sim |
|Importar aulas e faltas da disciplina do diário |Usado para identificar se as aulas e faltas da disciplina na turma serão importadas do diário | Marcar/Desmarcar | - | Não |
|**Classificação da disciplina** |||||
|Classificação da disciplina |Tipo de classificação da disciplina com relação ao diário: Principal, Conjunta ou Individual | Texto | - | Sim |
|**Professor** |||||
|Nome do professor |Nome do professor o qual será vinculado à disciplina | Texto | - | Sim |
|**Aulas da disciplina por dias da semana** |||||
|Segunda-feira |Quantidade de aulas que o professor leciona na disciplina na segunda-feira | Número | 01 | Não |
|Terça-feira |Quantidade de aulas que o professor leciona na disciplina na terça-feira | Número | 01 | Não |
|Quarta-feira |Quantidade de aulas que o professor leciona na disciplina na quarta-feira | Número | 01 | Não |
|Quinta-feira |Quantidade de aulas que o professor leciona na disciplina na quinta-feira | Número | 01 | Não |
|Sexta-feira |Quantidade de aulas que o professor leciona na disciplina na sexta-feira | Número | 01 | Não |
|Sábado |Quantidade de aulas que o professor leciona na disciplina na sábado | Número | 01 | Não |
|Domingo |Quantidade de aulas que o professor leciona na disciplina na domingo | Número | 01 | Não |
==== Inclusão, alteração e exclusão de turmas ====
Todas as turmas das escolas cadastradas no sistema, podem ser cadastradas como uma turma, desde que possuam o conjunto mínimo de dados (campos obrigatórios) necessários. O sistema também deve permitir que os dados de uma turma previamente cadastrada sejam modificados.
A exclusão de uma turma também deverá ser permitida, desde que esta não possua nenhum aluno matriculado. Caso possua, o sistema deverá avisar ao usuário que a turma possui vínculos com dados e não deve permitir sua exclusão.
===== Configurações e preferências do usuário =====
Não aplicável.
===== Pontos de verificação =====
==== Na inclusão/alteração de turmas:====
* Após a inclusão de uma turma esta deverá ser exibida imediatamente na lista de turmas cadastradas.
* Após a alteração de uma turma esta deverá ser exibida imediatamente nos dados da turma na lista de turmas cadastradas.
* O sistema não deve permitir que o usuário salve uma turma sem que todos os campos obrigatórios estejam preenchidos;
=== Dados gerais ===
* O sistema não deve permitir que o usuário salve uma turma com o nome que já está sendo usado por outra turma da mesma série da escola.
=== Alunos ===
* O sistema deve exibir na lista de alunos matriculados, todos os alunos matriculados na turma; A cor exibida para cada aluno deve ser a mesma que é exibida na visão Padrão, ou seja, referente ao resultado final do aluno na turma regular;
* O sistema deve permitir que o usuário visualize o cadastro do aluno, ao selecioná-lo na lista de alunos matriculados da turma, a partir do clique no botão Visualizar ou do duplo clique na linha que contém os dados do aluno;
* O sistema deve permitir que o usuário remaneje um aluno que está matriculado na turma, para outra turma da mesma série da escola, a partir do clique no botão Remanejar.
=== Profissionais | Docentes ===
* Os docentes informados nos vínculos com as disciplinas da turma, são utilizados para a geração dos diários de classe (gerados no sistema web);
* O sistema deve exibir o campo "Importar aulas e faltas da disciplina do diário":
* Habilitado: apenas quando a classificação da disciplina for Individual;
* Desabilitado: quando a classificação for Principal ou Conjunta;
* O sistema deve exibir o campo "Importar aulas e faltas da disciplina do diário":
* Sempre marcado: quando a classificação da disciplina for Principal;
* Sempre desmarcado: quando a classificação da disciplina for Conjunta;
* Deverão ser filtrados apenas os professores vinculados à escola da turma e que possuam a mesma função exercida no vínculo da escola, assim como na turma;
* Quando já existirem professores vinculados às disciplinas da turma, não deve ser mais permitido alterar a função exercida do docente e o tipo de mediação da turma;
* Quando a disciplina for Principal, o campo Professor deverá estar habilitado para edição, e assim que este for selecionado para a disciplina principal, o sistema deverá vinculá-lo automaticamente para todas as disciplinas conjuntas da série da turma; da mesma forma que também deverá excluí-lo de todas as disciplinas conjuntas, quando for excluído da disciplina principal;
* Quando a disciplina for Conjunta, o campo Professor deverá estar desabilitado para edição, uma vez que o professor das disciplinas conjuntas será o mesmo informado na disciplina principal;
* Quando a disciplina for Individual, o campo Professor deverá estar habilitado e será salvo apenas para a disciplina;
* O sistema deve impedir que o usuário selecione um professor que já esteja vinculado na turma como Outro profissional.
=== Profissionais | Outros profissionais ===
* Deverão ser filtrados apenas os professores vinculados à escola da turma e que possuam a mesma função exercida no vínculo da escola, assim como na turma;
* Os profissionais informados nessa listagem não são utilizados para geração de diários
* O sistema deve impedir que o usuário selecione um professor que já esteja vinculado na turma como Outro profissional ou vinculado em alguma disciplina.
=== Profissionais | Pedagogos ===
* Deverão ser filtrados apenas os pedagogos vinculados à escola da turma;
* O sistema deve impedir que o usuário vincule um pedagogo que já esteja vinculado na turma;
=== Aulas dadas ===
* O sistema deve permitir que o usuário restaure o valor de aulas dadas, informado no cadastro da disciplina, para cada disciplina da turma;
* Quando a turma pertencer à série de módulo I (aulas por Dias letivos), o sistema deve permitir restaurar aulas apenas para a disciplina Principal existente na turma, ou seja, na tela de Restaurar aulas apenas essa disciplina deve ser exibida na listagem de disciplinas;
* O sistema deve permitir que o usuário altere os valores de todas as aulas existentes, através do botão de editar as aulas ou do duplo clique na linha que contém a disciplina;
* Ao alterar o total de aulas da turma, o sistema deve atualizar o total de aulas de todos os alunos matriculados na turma (que estejam presentes).
=== Censo escolar - Identificação ===
* Quando o campo Tipo de mediação for igual, o sistema deve:
* "Presencial": Habilitar e obrigar o preenchimento dos seguintes campos: Hora inicial, Hora final, Dias da semana que a turma tem aula e Local diferenciado;
* "Educação a distância": Desabilitar e limpar os seguintes campos: Hora inicial, Hora final, Dias da semana que a turma tem aula e Local diferenciado.
=== Censo escolar - Formas de organização ===
* Quando o ensino da turma for, o sistema deve:
* Igual a "Educação Infantil": desabilitar e desmarcar a listagem de "Formas de organização da turma", impedindo que o usuário salve algum item;
* Diferente de "Educação Infantil": obrigar o preenchimento de um item de forma de organização ao salvar o cadastro;
* O sistema deve permitir que o usuário informe apenas um item da listagem "Formas de organização da turma", caso dois ou mais itens sejam marcados, deve ser exibida uma mensagem informando ao usuário;
* Para cada item da listagem (quando marcado), o sistema verifica se o campo série etapa da turma (campo CodigoSerieEtapa na tabela TabSerieEtapa) pertence ao conjunto de séries etapas:
* "SÉRIE/ANO (SÉRIES ANUAIS)": (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 56, 67, 69, 70, 71, 72, 73 ou 74);
* "PERÍODOS SEMESTRAIS": (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 67, 68, 69, 70, 71, 72, 73 ou 74);
* "CICLO(S)": (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41 ou 56);
* "GRUPOS NÃO SERIADOS COM BASE NA IDADE OU COMPETÊNCIA": (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 56, 67, 68, 69, 70, 71, 72, 73 ou 74);
* "MÓDULOS": (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 56, 67, 68, 69, 70, 71, 72, 73 ou 74);
* "ALTERNÂNCIA REGULAR DE PERÍODOS DE ESTUDOS": (19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 67, 68, 69, 70, 71, 72, 73 ou 74);
* E NÃO pertencendo, o sistema deve exibir uma mensagem ao usuário, informando que a forma de organização não é correspondente à etapa da série e não permitir salvar o item;
=== Censo escolar - Estrutura curricular ===
* O sistema deve obrigar o preenchimento de pelo menos um item de estrutura curricular ao salvar o cadastro;
* Quando o usuário marcar os itens "FORMAÇÃO GERAL BÁSICA" ou "ITINERÁRIO FORMATIVO", o sistema deve desmarcar o item "NÃO SE APLICA";
* Quando o usuário marcar o item "NÃO SE APLICA", o sistema deve desmarcar os itens "FORMAÇÃO GERAL BÁSICA" e "ITINERÁRIO FORMATIVO";
* Para cada item da listagem (quando marcado), o sistema verifica se o campo série etapa da turma (campo CodigoSerieEtapa na tabela TabSerieEtapa) pertence ao conjunto de séries etapas:
* "FORMAÇÃO GERAL BÁSICA": (1, 2, 3, 39, 40, 64 ou 68);
* "ITINERÁRIO FORMATIVO": (1, 2, 3, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 39, 40, 41, 56, 64, 68, 69, 70, 72 ou 73);
* "NÃO SE APLICA": (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 56, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 67, 69, 70, 72, 71, 73 ou 74);
* E pertencendo, o sistema deve exibir uma mensagem ao usuário, informando que a estrutura curricular não é correspondente à etapa da série e não permitir salvar o item;
/* O sistema não deve permitir que o usuário informe mais de um item na listagem.*/
=== Censo escolar - Unidade curricular ===
* Quando a estrutura curricular "ITINERÁRIO FORMATIVO" for marcada na listagem "Estrutura curricular da turma", o sistema deve:
* Habilitar a listagem "Unidade curricular da turma" e os botões da guia;
* Obrigar o preenchimento de pelo menos um item de unidade curricular ao salvar o cadastro;
* Quando a estrutura curricular "ITINERÁRIO FORMATIVO" estiver desmarcada na listagem "Estrutura curricular da turma", o sistema deve:
* Desabitar a listagem "Unidade curricular da turma" e os botões da guia, e desmarcar todos os seus itens;
* Ao clicar no botão "Editar o vínculo do professor com a unidade curricular selecionada", o sistema deve abrir a tela "Localizar professor", para que o usuário possa selecionar o professor (que esteja vinculado na escola e possua as funções de "DOCENTE" e "DOCENTE TITULAR - EAD");
* O sistema permite ao usuário, editar a unidade curricular que esteja marcada na listagem, caso contrário, o sistema deve exibir uma mensagem informando que o item deve ser marcado;
* Quando o usuário desmarcar um item na listagem, que possuir professor vinculado, o sistema deve perguntar se deseja realmente desmarcar o item, pois removerá o vínculo do professor;
* Ao clicar no botão "Excluir o vínculo do professor com a unidade curricular selecionada", o sistema deve realizar a mesma ação citada acima;
* Para o item "OUTRA(S) UNIDADE(S) CURRICULAR(ES) OBRIGATÓRIA(S)" da listagem "Unidade curricular da turma":
* Quando for marcado: o sistema deve habilitar o campo "Outra(s) obrigatória(s)" e obrigar seu preenchimento ao salvar o cadastro da turma;
* Quando for desmarcado: o sistema deve desabilitar e limpar o campo "Outra(s) obrigatória(s)";
* O sistema não deve permitir que o usuário salve para o campo um valor com menos de 4 caracteres;
=== Configurar disciplinas ===
* O sistema não deve permitir que a disciplina principal da turma seja desmarcada ao configurar as disciplinas;
* O sistema deve permitir que o usuário desmarque disciplinas, que possuam notas e/ou médias cadastradas, para isso deve:
* Verificar se existem notas ou médias de alunos, para então perguntar ao usuário se deseja realmente remover a(s) disciplina(s);
* Remover as aulas da disciplina na turma e atualizar o total de aulas dadas;
* Remover notas e médias da disciplina para todos os alunos da turma;
* Calcular o resultado final dos alunos na turma (total de faltas, total de aulas e resultado final);
* Atualizar a listagem de alunos (a cor exibida deve ser atualizada de acordo com o campo Resultado Final dos alunos, lembrando que nem sempre o movimento é o resultado final);
* O sistema deve permitir que o usuário marque disciplinas, mesmo quando a turma já possuir alunos finalizados, para isso deve:
* Verificar se existe algum aluno finalizado, para então perguntar ao usuário se deseja realmente incluir a(s) disciplina(s);
* Calcular o resultado final dos alunos na turma (total de faltas, total de aulas e resultado final); Caso algum aluno estivesse como Aprovado, Reprovado, Promovido ou Retido, retornará ao resultado final Cursando;
* Ajustar a situação dos alunos: os alunos que estavam finalizados na turma, retornarão à situação "Em aberto";
* Atualizar a listagem de alunos (a cor exibida deve ser atualizada de acordo com o campo Resultado Final dos alunos, lembrando que nem sempre o movimento é o resultado final);
* Sempre que a configuração de disciplinas de uma turma regular for alterada (incluída ou excluída uma disciplina), o sistema deve atualizar a série do histórico que os alunos da turma estão cursando no histórico;
==== Na exclusão de turmas:====
* O sistema deve solicitar que o usuário confirme a exclusão de uma turma;
* O sistema não deve permitir que uma turma seja excluída, caso ela possua alunos matriculados;
* O sistema não deve permitir que uma turma multi principal seja excluída, caso ela possua turmas multi dependentes vinculadas;
* Após a exclusão de uma turma esta deverá ser eliminada imediatamente na lista de turmas cadastradas.
===== Observações =====
Nenhuma informação adicional.
~~DISCUSSION|Sugira mudanças, aponte falhas ou contribua de alguma forma aqui:~~