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
CONNECTION LIMIT -1
PASSWORD 'xxxxxx';
COMMENT ON ROLE apf_user IS 'Usuário do Sistema APF de Contagem de Pontos de Função.';
CREATE DATABASE apf_db
WITH
OWNER = apf_user
ENCODING = 'UTF8'
LC_COLLATE = 'pt_BR.utf8'
LC_CTYPE = 'pt_BR.utf8'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
Por algum motivo, o JPA não está criando o banco de dados automaticamente. Desta forma, gerei o esquema relacional em create.sql
e executei manualmente via PgAdmin. Desta forma, foi necessário executar comandos de permissões para o usuário apf_user
do banco de dados apf_db
.
GRANT ALL PRIVILEGES ON DATABASE apf_db TO apf_user;
GRANT ALL PRIVILEGES ON SCHEMA public TO apf_user;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public to apf_user;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public to apf_user;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA 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 tabela user
para users
, pois o nome user
é uma palavra reservada do Postgres.
CREATE SCHEMA IF NOT EXISTS apf
AUTHORIZATION apf_user;
- Povoamento do Banco de Dados
INSERT INTO role VALUES (1,'ADMIN');
INSERT INTO role VALUES (2,'USER');
INSERT INTO attribution VALUES (1,'PROJECT MANAGER');
INSERT INTO attribution VALUES (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:
mvn clean
mvn install
Vá para o diretório /target
java -jar apf-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:
mvn test
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ágina Tutoriais temos a lista de tutoriais consultados.
- Na página Artigos temos a lista de artigos consultados.