Projeto final da disciplina de Engenharia de Software GCC-188, cursada no período 2022/1.
- Descrição
- Tecnologias e Versões
- Regras de Uso do Git
- Regras, padrões e boa práticas de desenvolvimento
- O software desenvolvido é um sistema de gerenciamento escolas, utilizado por coordenadores e alunos de uma instituição de ensino. A finalidade principal do sistema será gerenciar as disciplinas lecionadas por professores, que disponibilizarão matrículas para os alunos, de acordo com seus cursos. Assim, o sistema é composto pelas entidades: Departamento, Professor, Aluno, Disciplina, Curso e Coordenador.
- Desse modo, cada Departamento irá disponibilizar disciplinas escolhidas para um professor. Um aluno, que pertence a um curso, poderá se cadastrar nas disciplinas dos departamentos relacionados com seu curso. Com isso, o coordenador poderá acessar o sistema para: gerenciar professores, destacar professores para disciplinas e gerenciar departamentos. E o aluno poderá acessar o sistema para: se cadastrar em uma disciplina e acessar seus dados pessoais.
- Ana Beatriz Torres
- André Marçal Medeiros
- Antônio Marques
Descrever o que foi feito indicando a ação. Ex.: Criar tela de login.
main, backend e frontend
- Aplicar Clean Code
- Nomes significativos
- Notação: camelCase
- Comentários: não comentar
- Identar código
- Testar sempre os programas
└─ documentos
├─ diagrama de classe
├─ diagrama de implantação
├─ diagrama de sequência
├─ padrões adotados
└─ requisitos
└─ src
├─ backend
└─ frontend
Como está sendo utilizado o paradigm Orientado a Objetos para o desenvolvimento desta aplicação deve-se buscar seguir os princípios do SOLID que resumidamente determinam:
- SRP - Princípio da Responsabilidade Única. Uma classe deve ter apenas uma única responsabilidade.
- OCP - Princípio do Aberto/Fechado. Entidade de software devem ser abertas para expansões, mas fechadas para modificações. Ex:para cada nova função que não pertence ao funcionamento original, outro método deve ser chamado, e não modificar o funcionamento atual do meu método ou classe;
- LSP - Princípio da Substituição de Liskov. As superclasses devem permitem substituição pelas subclasses.
- ISP - Princípio da Segregação de Interfaces. Muitas interfaces de clientes específicas, são melhores do que uma geral.
- DIP - Princípio da inversão de dependência . Dependa de abstrações e não de implementações
Quanto menor melhor, isso vale para tudo, nomes, tamanho de métodos, quantidade de ifs, e a fins. A exceção dessa regra é a performance, algumas vezes é necessário abrir mão do tamanho reduzido de código para ter uma melhor performance, lembrando sempre que é uma exceção e mesmo nesses casos é obrigatório tentar manter tudo o menor possível.
Comentários são úteis para ajudar a compreender o código, mas se é preciso explicar o código, é porque ele não está legível o suficiente. Assim, os comentários devem ser utilizados para facilitar em momentos como quando temos vários blocos de código na mesma classe, colocar um comentário dizendo onde começa determinado bloco pode facilitar na navegação do mesmo.
É extremamente importante manter a indentação do código em dia, além de facilitar a leitura, serve para identificar onde começa e onde termina qualquer bloco de código, seja um método ou uma parametrização.
Os nomes devem ser precisos e sucintos, descrevendo com poucas letras ou palavras o que está fazendo ou significa.
-
Nome de variáveis:
- Começar sempre com letra minúscula;
- Não atribuir nome de ações a variáveis;
-
Nome de métodos:
- Começar sempre com letra minúscula;
- Tratar métodos como ações.
-
Nome de classes e interfaces:
- Começar sempre com letra maiúscula;
- Tratar as classes como objetos, não atribuir nome de ações a classes ou interfaces.
- Notificar todas respostas das ações na tela. Ex: se foi um sucesso, se houve uma falha e qual o motivo da falha;
- Exibir uma confirmação para todas as ações (a não ser que seja especificado que não deve haver confirmação);
- Trocar a cor de textos de alerta de erro para vermelho, ou alguma cor que destaque um erro;