Proposta de Projeto de Trabalho de Formatura Supervisionada

Aluno

Diogo de Jesus Pina (diogojpina at gmail)

Supervisor

Alfredo Goldman Home Page

Tema

Dívida Técnica: Identificando, Medindo e Monitorando

Índice

1. Resumo

Dívida técnica é uma metáfora criada em 1992 por Ward Cunnigham (criador da Wiki) que o fez de maneira superficial e sutil, mas que ao passar dos anos vem gerando discussões e pesquisas.


Caso o vídeo não apareça você pode assistí-lo clicando aqui.

Atualmente uma boa definição para a dívida técnica é a criada por Carolyn Seaman e Yuepo Guo em Mensuring and Monitoring Technical [1]. Neste texto, dívida técnica é definida como uma metáfora para artefatos imaturos, incompletos ou inadequados no ciclo de vida de desenvolvimento de software.

Adquirir uma dívida técnica traz benefícios a curto prazo tais como redução do tempo de desenvolvimento ou esforço, mas pode causar maiores custos e menor qualidade a longo prazo.

Gerentes de software precisam equilibrar os benefícios da dívida técnica com os custos associados na tomada de decisão de adquirir ou pagar a dívida técnica e quando. A incerteza associada a dívida técnica complica esta tomada de decisão. Portanto, a identificação, medida e monitoramento da dívida técnica ajudaria os gerentes a terem informações para a tomada de decisão, resultando em maior visibilidade, o que pode melhorar a qualidade e produtividade na manutenção do software.

Este projeto se dedica a encontrar ferramentas, técnicas e mecanismos que viabilizem a identificação, medida e monitoramento da dívida técninca em projetos de software. Estes artifícios ajudarão na criação de modelos que possibilitem uma análise eficaz e eficiente e, consequentemente, a criação de uma teoria base forte.

[1] Measuring and Monitoring Technical Debt, Carolyn Seaman and Yuepu Guo, Advances in Computers, Vol. 82, 25-46, 2011

Voltar

2. Objetivos

O primeiro objetivo deste trabalho de formatura supervisionado é um estudo detalhado sobre a dívida técnica. Isto será feito com base em artigos científicos publicados e trabalhos acadêmicos que ainda estão sendo desenvolvidos. Este estudo permitirá um bom entendimento do conceito de dívida técnica e oferecerá uma base para a pesquisa.

O segundo objetivo é encontrar ferramentas, técnicas e mecanismos que viabilizem a identificação, mensuração e monitoramento da dívida técnica.

O terceiro objetivo é utilizar estes métodos e recursos para encontrar dívida técnica em projetos de software livre. As aplicações serão feitas tanto em projetos bem-sucedidos como projetos que fracassaram. Com isso será possível fazer uma análise e identificar a relação entre dívida técnica e o sucesso de um software.

Voltar

3. Atividades já Realizadas

Num primeiro momento, foram realizadas reuniões com os, até então, alunos de doutorado em ciência da computação do IME-USP, Paulo Meirelles (especialista em qualidade de código) e Graziela Tonin (especialista em dívida técnica). Nestas reuniões surgiram ideias de projeto de pesquisa e aplicações como: busca de métodos automáticos para encontrar dívida técnica, análise de dívida técnica em projetos falidos, desenvolvimento de uma ferramenta para identificar dívida técnica, encontrar métricas que identifiquem dívida técnica usando o Mezuro, entre outras idéias.

Em seguida, com o amadurecimento das ideias de projeto o prof. Dr. Alfredo Goldman foi convidado a ser o supervisor deste projeto, e o aceitou. A parir daí, foi possível definir diretrizes de trabalho e atividades.

A primeira atividade oficial foi o estudo da definição de dívida técnica e a escrita de um texto explicativo. Neste texto, a dívida técnica foi contextualizada e definida. Além disso, foram feitas classificações dependendo de como a dívida é adquirida e o prazo de pagamento. Finalmente, foi criado um exemplo para expressar a diferença de cada uma das classificações e fornecer uma melhor visão do assunto.

Paralelamente com a atividade anterior, foram feitas as análises de quatro monografias de anos anteriores que foram: Otimização de Viagens em Companhias Aéreas Brasileiras, Calopsita: Um sistema gerenciador de projetos que utilizam métodos ágeis, Achusp: Serviço de achados e perdidos para a Universidade de São Paulo e Plataforma de Colaboração para Auxílio às Administrações Municipais. Estas análises tem como objetivo, identificar pontos fracos e fortes em monografias e poder replicar o que há de bom e evitar as coisas ruins.

A próxima etapa, esta sendo a análise da plataforma Sonar que é uma plataforma livre para gerenciar qualidade de código. Ele possui uma grande quantidade de recursos em seu núcleo, tais como: métricas padrões, regras de código e unidades de teste. Além disso, ele possui vários plugins que permitem a extensão para diversas linguagens de programação e funcionalidades.

Voltar

4. Cronograma de Atividades

Atividades FevMarAbrMaiJunJulAgoSetOutNov
Identificação de oportunidades de trabalho (Junto ao Paulo Meirelles e Graziela Tonin) X
Estudos preliminares e amadurecimento das ideias de projeto XXX
Avaliação de trabalhos antigos XX
Criação de texto sobre a definição de dívida técnica X
Análise da ferramenta Sonar XX
Pesquisa de métodos e ferramentas para identificação de dívida técnica XX
Pesquisa de métodos e ferramentas para medida de dívida técnica X
Pesquisa de métodos e ferramentas para monitoramento de dívida técnica X
Aplicação dos métodos em projetos de software livre XX
Monografia XXXXX
Pôster X
Apresentação X

Voltar

5. Estrutura Esperada da Monografia

A monografia será composta por duas partes: Parte Técnica e Parte Subjetiva.

Parte Técnica:

  • 1. Introdução
    • 1.1. Dívida técnica
    • 1.2. Motivação
    • 1.3. Objetivos
  • 2. Conceitos e Tecnologias
    • 2.1. Dívida técnica
    • 2.2. Identificando dívida técnica
    • 2.3. Medindo dívida técnica
    • 2.4. Monitorando dívida técnica
  • 3. Aplicação em Projetos de Software Livre
    • 3.1. Projetos de Sucesso
    • 3.2. Projetos Falidos
  • 4. Análise de Resultados
    • 4.1. Análise Preliminar
    • 4.2. Análise dos Métodos e Ferramentas
      • 4.2.1. Métodos e Ferramentas de Identificação
      • 4.2.2. Métodos e Ferramentas de Medida
      • 4.2.3. Métodos e Ferramentas de Monitoramento
    • 4.3. Resultados das Aplicaçães
    • 4.4. Resultados Finais
  • 5. Conclusão
    • 5.1. Perspectivas Futuras
  • 6. Bibliográfia

Parte Subjetiva:

  • 1. Análise Subjetiva
    • 1.1. Trabalho de Formatura Supervisionado
      • 1.1.1. Desafios e Frustraçães
      • 1.1.2. Aplicação
      • 1.1.3. Perspectivas Futuras
    • 1.2. BCC / IME-USP
      • 1.2.1. Disciplinas
Voltar