fasttask

TODO


License
MIT
Install
pip install fasttask==1.0.1

Documentation

Trabalho Prático Engenharia de Software 2

Grupo:

  • Francisco Bonome Andrade
  • Lucas Caetano Lopes Rodrigues
  • Lucas Starling de Paula Salles
  • Yasmin Araújo

FastTask

O FastTask é um sistema para gestão de tarefas. O sistema é capaz de gerenciar diferentes boards, nos quais o usuário pode criar tarefas, com nomes, descrições, e prioridade.

Para executar o sistema, instale-o através do pip: pip install fasttask

O usuário pode interagir com o sistema utilizando a CLI:

$ fasttask board create UFMG --label Pessoal
$ fasttask task list
On Default (id=1):

$ fasttask board list
Default (id=1)
UFMG (id=2)

$ fasttask board checkout 2
$ fasttask task create projeto_es2_entrega_1 --label "ES2"
$ fasttask task list
On UFMG (id=2):
projeto_es2_entrega_1

$ fasttask task describe projeto_es2_entrega_1
Task details:
Id:  1
Name:  projeto_es2_entrega_1
Status:  ToDo
Creation date:  29/05/2022
Label:  ES2
Priority:  0
Time Worked in this task: 0

Tecnologias utilizadas

O sistema foi desenvolvido utilizando Python 3.7+ para construção da CLI e das classes principais do sistema, e SQLite para armazenar os boards e as tarefas criadas. A ferramenta Unittest também foi utilizada para criar testes unitários para os componentes do sistema.

Relatórios do Lizard

Para gerar os relatórios, utilizamos a seguinte configuração para o Lizard:

  • Threshold para cyclomatic_complexity é 5
  • Ordenar por: 1) cyclomatic_complexity; 2) length
  • Para os arquivos do sistema em src/

Você pode encontrar todos os relatórios na pasta lizard_reports.

O comando utilizado foi:

$ lizard -T cyclomatic_complexity=5 -s cyclomatic_complexity -s length paths src/main.py src/modules/dbhandler.py src/modules/clicontroller.py src/modules/command.py src/modules/board.py src/modules/task.py

Após finalizar o projeto inicial do sistema, esses eram os warnings gerados:

==========================================================================================
!!!! Warnings (cyclomatic_complexity > 5 or length > 1000 or nloc > 1000000 or parameter_count > 100) !!!!
================================================
  NLOC    CCN   token  PARAM  length  location  
------------------------------------------------
      24      7    145      1      24 parse@82-105@src/modules/command.py
      16      7     93      1      16 shell@110-125@src/modules/command.py
      17      6    107      1      17 parse_flags@136-152@src/modules/command.py
==========================================================================================
Total nloc   Avg.NLOC  AvgCCN  Avg.token   Fun Cnt  Warning cnt   Fun Rt   nloc Rt
------------------------------------------------------------------------------------------
       491       6.6     1.5       43.2       72            3      0.04    0.12

Com as refatorações, as três funções mais complexas pararam de gerar warnings:

==========================================================================================
No thresholds exceeded (cyclomatic_complexity > 5 or length > 1000 or nloc > 1000000 or parameter_count > 100)
==========================================================================================
Total nloc   Avg.NLOC  AvgCCN  Avg.token   Fun Cnt  Warning cnt   Fun Rt   nloc Rt
------------------------------------------------------------------------------------------
       518       6.6     1.5       42.6       76            0      0.00    0.00