No trabalho pretende-se fazer a análise de software desenvolvido para o trabalho prático de Programação Orientada a Objetos.
- Tarefa 1 - Qualidade do Código Fonte da Aplicação
Nesta tarefa os alunos irão utilizar sistemas como o sonarQube, IDEs do Java, etc para analisar a qualidade do código da aplicação desenvolvida pelos alunos de POO. Métricas de software serão também utilizadas para encontrar bad smells.
- Tarefa 1.1 - Extras
Definir regras no sonarqube para identificar red smells (ou qualquer outro smell não suportado pelo sonarQube) numa aplicação Java.
- Tarefa 2 - Refactoring da Aplicação
Nesta tarefa serão utilizadas ferramentas como o autorefactor, IDEs do Java que suportam refactoring, ou o jStanley para identificar e eliminar os bad smells e red smells existentes no software fornecido.
Um estudo detalhado sobre os smells encontrados na(s) aplicaçãao(ões) fornecidas, os refactorings aplicados e o technical debt obtidos deverão ser incluídos no relatório.
- Tarefa 3 - Teste da Aplicação
Nesta tarefa serão utilizadas técnicas de teste de software, para efectuar o teste unitário e o teste de regressão da aplicação UmCarroJá. Serão ainda utilizadas sistemas para a geração automática de casos de teste para gerar testes unitários e ainda inputs para simular a execução real da aplicação.
- Tarefa 4 - Análise de Desempenho da Aplicação
Nesta tarefa será feita uma análide detalhada do desempenho da aplicação UmCarroJá, nomeadamente em termos de tempo de execução e consumo de energia. A aplicação será executada utilizando a framework de geração de inputs reais definidos na Tarefa 3. Duranta a execução da aplicaçãao o tempo e consumo de energia serão monitorizados.
De modo a analisar a influência dos bad smells e red smells no desempenho do software as diferentes versões (com e sem smells) do software UmCarroJá serão comparados. Inputs de tamanhos diferentes deverão ser também considerados na análise.
- 4.1 Extras
Efectuar uma análise detalhada por smell. Isto é, fazer um estudo sobre como cada smell individualmente influência (melhora ou piora) o desempenho do software.
- Relatório
PDF Enunciado