Sistema para a contagem e análise dos pontos de função para estimar o tamanho funcional de um software.
Sobre o Projeto| Documentação| Pré-requisitos| Desenvolvimento| Build e Execução| Testes| Licença| Referências
Sistema para facilitar a contagem na análise por pontos de função (APF) desenvolvido para ser utilizado nas disciplinas de Engenharia de Software do curso de Bacharelado em Sistemas de Informação do CERES/UFRN.
- Documento de Visão
- Plano de Iteração
- Lista de User Stories
- Contagem de Tamanho Funcional com Análise por Pontos de Função
Para executar o projeto, será necessário instalar os seguintes programas:
- JDK 8: Necessário para executar o projeto Java.
- Maven: Necessário para realizar o build do projeto Java.
- Eclipse ou Vscode + extensões Java: Para o desenvolvimento do Projeto.
- MariaDB ou MySql: para persistência no Banco de Dados
- Criação do Banco de Dados dev e test(apf_db e apf_db_test) e Usuário(apf_user) com sua devidas permissões. Código abaixo:
- Criação das bases de dados e usuário
CREATE ROLE apf_user WITH
LOGIN
NOSUPERUSER
NOCREATEDB
NOCREATEROLE
NOINHERIT
NOREPLICATION
CONNECTIONLIMIT-1
PASSWORD'xxxxxx';
COMMENTONROLE apf_user IS'Usuário do Sistema APF de Contagem de Pontos de Função.';
CREATEDATABASEapf_db
WITH
OWNER=apf_user
ENCODING='UTF8'
LC_COLLATE='pt_BR.utf8'
LC_CTYPE='pt_BR.utf8'
TABLESPACE=pg_default
CONNECTIONLIMIT=-1
IS_TEMPLATE=False;
Por algum motivo, o JPA não está criando o banco de dados automaticamente. Desta forma, gerei o esquema relacional emcreate.sql
e executei manualmente via PgAdmin. Desta forma, foi necessário executar comandos de permissões para o usuárioapf_user
do banco de dadosapf_db
.
GRANTALL PRIVILEGESONDATABASE apf_db TO apf_user;
GRANTALL PRIVILEGESONSCHEMA public TO apf_user;
GRANTALL PRIVILEGESONALL TABLESINSCHEMA public to apf_user;
GRANTALL PRIVILEGESONALL SEQUENCESINSCHEMA public to apf_user;
GRANTALL PRIVILEGESONALL FUNCTIONSINSCHEMA public to apf_user;
Como os testes não estavam executando com a criação do esquema, essa parte foi removida. Ajustamos o nome da tabelauser
parausers
,pois o nomeuser
é umapalavra reservadado Postgres.
CREATESCHEMAIFNOT EXISTS apf
AUTHORIZATION apf_user;
- Povoamento do Banco de Dados
INSERT INTOroleVALUES(1,'ADMIN');
INSERT INTOroleVALUES(2,'USER');
INSERT INTOattributionVALUES(1,'PROJECT MANAGER');
INSERT INTOattributionVALUES(2,'PROJECT MEMBER');
- Insert spaces for tabs
- Tab policy para Spaces only
- Indentation size: 4
- Tab size: 4
Para iniciar o desenvolvimento, é necessário clonar o projeto do GitHub num diretório de sua preferência:
cd"diretório de sua preferência"
git clone https://github.com/labens-ufrn/apf-bsi.git
Esse projeto faz uso do framework spring-boot que encapsula todas as dependências no arquivo jar. Para o build do projeto, execute os comandos abaixo:
mvnclean
mvninstall
Váparaodiretório/target
java-jarapf-bsi-0.0.1-SNAPSHOT.jar
O comando irá baixar todas as dependências do projeto e criar um diretório target com os artefatos construídos, que incluem o arquivo jar do projeto. Além disso, serão executados os testes unitários, e se algum falhar, o Maven exibirá essa informação no console. Se tudo ocorreu como esperado vai conseguir acessar estes endereços com sucesso.
http://localhost:8080/apf/
http://localhost:8080/apf/login
http://localhost:8080/apf/registration
Para rodar os testes, utilize o comando abaixo:
mvntest
MIT
Desenvolvido a partir do tutorial e do código linkado abaixo:
- https://medium.com/@gustavo.ponce.ch/spring-boot-spring-mvc-spring-security-mysql-a5d8545d837d
- https://github.com/gustavoponce7/SpringSecurityLoginTutorial
- https://franckaragao.wordpress.com/2016/08/23/integracao-continua-com-o-travis-ci-em-projetos-java-usando-o-maven/
- https://github.com/lowrin/spring-boot-input-autocomplete-example
- Na páginaTutoriaistemos a lista de tutoriais consultados.
- Na páginaArtigostemos a lista de artigos consultados.