34
Marcelo Schumacher Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Embed Size (px)

DESCRIPTION

Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Citation preview

Page 1: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Marcelo Schumacher

Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção

de Softwares já Implantados: Um Estudo de Caso

Page 2: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Sumário

- Introdução

- Referencial teórico

- Estudo de Caso

- Melhorias Propostas

- Avaliação das Melhorias

- Considerações Finais

- Referências Bibliográficas

Page 3: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Introdução Motivação

Falta de documentação dos requisitos;

Documentações inadequadas;

Instabilidade dos requisitos durante o desenvolvimento;

Impactos das evoluções e correções;

Importância do gerenciamento dos requisitos para

garantir melhor qualidade.

Page 4: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Introdução Objetivo Geral

Realizar uma engenharia reversa para identificar e mapear as dependências dos requisitos de um software já implantando e em constante manutenção.

Page 5: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Introdução Objetivos Específicos

Compreender os métodos atuais de gerenciamento de requisitos de software;

Compreender as técnicas disponíveis para engenharia reversa de software;

Identificar os problemas atualmente enfrentados pela equipe da empresa de TI, em função da falta de documentação e da falta de gerenciamento de requisitos;

Identificar os requisitos de um software já desenvolvido e comercializado pela empresa de TI;

Page 6: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Introdução Objetivos Específicos

Criar uma matriz de rastreabilidade, a fim de mapear as dependências entre os requisitos identificados;

Utilizar a matriz de rastreabilidade de requisitos em alguns casos de manutenção;

Avaliar os resultados da utilização da matriz de rastreabilidade como apoio ao processo de manutenção;

Identificar ganhos obtidos e oportunidades de melhoria.

Page 7: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Referencial Teórico

Processo de Software

Qualidade de Software

Engenharia de Requisitos

Engenharia Reversa

Page 8: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Referencial Teórico Processo de Software

Conjunto de atividades e resultados que geram um produto de software (SOMMERVILLE, 2001)

Dentre os processos fundamentais, há quatro atividades comuns:

Especificação: Definição de funcionalidades e as restrições em suas operações;

Desenvolvimento: Construção do software, atendendo às especificações;

Validação: Verificar se o software atende às especificações;

Evolução: Garantir que o software siga uma evolução para correção de defeitos e atendimento às necessidades mutáveis.

Page 9: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Referencial Teórico Qualidade de Software

A qualidade de software é a capacidade de um sistema, componente ou processo satisfazer determinados requisitos, visando atender o usuário com suas necessidades e expectativas (IEEE, 1990);

Qualidade de software abrange tanto o produto quanto o processo de software (KALAIMAGAL, 2008);

Em razão disso foram criados os modelos de qualidade ISO/IEC 9126, ISO/IEC 15504, ISO/IEC 12207, CMM, CMMI e MPS.BR (KALAIMAGAL, 2008);

Cada modelo de qualidade possui conceitos que contribuem para a melhoria do produto e do processo de software;

Page 10: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Referencial Teórico Engenharia de Requisitos

Processo que abrange todas as atividades necessárias para criar e manter a documentação de requisitos de software (SOMMERVILLE, 2001);

O objetivo principal da engenharia de requisitos consiste na definição e descrição do que um software deve realizar para satisfazer as necessidades levantadas (PETERS, 2001).

O gerenciamento de requisitos visa compreender e controlar as mudanças nos requisitos do sistema (SOMMERVILLE, 2001);

Page 11: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Referencial Teórico Engenharia Reversa

A partir do sistema existente, a partir da análise do código-fonte, interface e ambiente, são abstraídas suas funcionalidades e são construídos os modelos de análise e projeto do sistema. A realização deste processo é chamada de Engenharia Reversa de Software (PIEKARSKI; QUINÁIA, 2000);

Seu objetivo consiste em auxiliar na compreensão da estrutura interna de sistemas complexos (PRESSMAN, 2001).

Page 12: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Estudo de Caso Unidade de análise

Empresa de TI;

Software de mercado em constante manutenção;

Equipe de manutenção dividida em 3 setores:

Manutenção;

Desenvolvimento;

Testes;

Gestão de tarefas realizada através do software JIRA

Page 13: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Estudo de Caso Coleta de dados

Observação

junto a atendentes do suporte, visando identificar divergências relatadas pelos clientes (jan. a set. 2009)

Entrevistas

com pessoas que mantém relação com o ambiente operacional do software (usuários avançados) e profissionais da manutenção, visando identificar relatos de divergências (nov. 2008 a ago. 2009);

Extração dos dados históricos

registrados na ferramenta para gerenciamento de tarefas, a fim de consolidá-los de maneira analítica, agrupando-as quanto a sua natureza (dez. 2008 a ago. 2009);

Page 14: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Estudo de Caso Análise dos dados históricos

Tipo de Tarefa Quantidad

e

Customização - Projeto 32

Não Conformidade, BUG 219

Sugestão/Melhoria 48

Tarefa Interna 20

IPP (Novas Funcionalidades) 3

Total 322

Tipo de Tarefa Horas

Trabalhadas

Análise e Projeto 333,43

Cenário de Teste 17,75

Construção/Manutenção 1683,05

Homolog. Análise 6

Homolog. Requisitos 2,5

Reconstrução 527,45

Definição Requisitos 272,35

Testes 531,02

Total 3393,77

Page 15: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Estudo de Caso Análise dos dados

Os dados foram analisados conforme o seu conteúdo;

O critério de comparação foi através da simples análise do conteúdo descritivo das tarefas;

Estes dados serviram para justificar e identificar as dificuldades no processo de manutenção, além de auxiliar na identificação de requisitos para construção da matriz de rastreabilidade;

Page 16: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Estudo de Caso Problemas identificados

# Resumo dos Problemas Grau de Impacto

1 Dificuldade em verificar áreas do software afetadas por manutenções Alto

2 Excesso de divergências liberadas para o mercado Alto

3

Elevado índice de retrabalho, reportado pela equipe de testes para a

equipe de desenvolvimento Alto

4 Falta de documentação que descreva as funcionalidades do sistema Alto

5 Falta de análise de impacto no processo de manutenção Médio

6 Não identificação formal dos requisitos do software Médio

7

Falta de compartilhamento formal de conhecimento dos profissionais mais

experientes para os demais profissionais Médio

8

Falta de conhecimento da equipe de manutenção sobre todo o contexto

do software Baixo

Page 17: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Melhorias Propostas

Equipe de Manutenção

Page 18: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Melhorias Propostas

Equipe de Desenvolvimento

Page 19: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Melhorias Propostas

Rastreabilidade de Requisitos

Manutenção da Matriz Validação do Mapeamento

Page 20: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Melhorias Propostas

Ferramenta de apoio

Foi utilizado o IBM Rational RequisitePro® 7.1 para realizar o gerenciamento dos requisitos

Page 21: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Avaliação das Melhorias Preparação

Para colocar em prática as melhorias propostas, foram necessárias as seguintes ações:

Construção a matriz de rastreamento de requisitos do

software usado neste estudo;

Capacitação dos profissionais envolvidos para assimilarem o novo método de trabalho;

Implementação das melhorias, em alguns projetos

piloto, a partir de setembro de 2009;

Page 22: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Avaliação das Melhorias Acompanhamento

Metodologia similar ao da pesquisa e levantamento de informações

Observação foi realizado um acompanhamento dos profissionais

envolvidos a fim de se perceber os resultados das melhorias propostas;

Entrevistas os profissionais envolvidos foram entrevistados para

opinarem sobre as melhorias propostas;

Registros históricos foram consultados registros históricos na ferramenta

de controle de tarefas (set. a nov. 2009);

Page 23: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Avaliação das Melhorias Observação

Melhoria da qualidade de software, reduzindo a quantidade de divergências reportadas pela equipe de Testes;

Menor quantidade de iterações entre analistas e desenvolvedores;

Boa parte das tarefas de desenvolvimento foram concebidas em menos horas do que o previsto;

Os desenvolvedores atuaram, reportando ao analista as necessidades de se relacionar mais requisitos;

Aumento da motivação das pessoas;

Page 24: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Avaliação das Melhorias Entrevistas

Redução da insegurança para realização das implementações, pois era possível anteceder o impacto;

Melhora da qualidade do software, reduzindo a existência de divergência relatadas;

Nenhuma recorrência foi relatada durante o período de estudo (ago. a nov. 2009);

Redução da necessidade de conhecimento do produto, pois praticamente todos os impactos estavam destacados, bastava executar o desenvolvimento;

Aumento de confiança e estima da equipe;

Estima-se por todos uma melhoria na comercialização e na expectativa do cliente, em virtude da melhora da qualidade do produto de software;

Page 25: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Avaliação das Melhorias Dados Históricos

Levantamento considerando dois trimestre de trabalho (mai. a out/nov 2009);

Tipo de Tarefa Horas Trabalhadas

Análise e Projeto 102,38

Definição Requisitos 81,77

Homolog. Análise 6

Homolog. Requisitos 3

Construção/Manutenção 649,61

Cenário de Teste 15,75

Testes 508,84

Reconstrução 465,02

Total 1832,37

Tarefas de Manutenção por Tipo de Atividade / Q1 / Processo Anterior

Page 26: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Avaliação das Melhorias Dados Históricos

Tipo de Tarefa Horas Trabalhadas

Análise e Projeto 87,92

Definição Requisitos 104,83

Homolog. Análise 11,92

Homolog. Requisitos 17

Construção/Manutenção 821,65

Cenário de Teste 12,33

Testes 485,98

Reconstrução 197,73

Total 1739,36

Tarefas de Manutenção por Tipo de Atividade / Q2 / Novo Processo

Page 27: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Avaliação das Melhorias Resultados

Etapa do Processo de

Manutenção Tipo de Tarefa

Q1 Q2

Horas % Horas %

Análise de Negócio e Sistemas

Análise e Projeto 102,38 5,59% 87,92 5,05%

Definição Requisitos 81,77 4,46% 104,83 6,03%

Homolog. Análise 6 0,33% 11,92 0,69%

Homolog. Requisitos 3 0,16% 17 0,98%

Total de Análise de Negócio e Sistemas 193,15 10,54% 221,67 12,74%

Desenvolvimento Construção/Manutenção 649,61 35,45% 821,65 47,24%

Testes Cenário de Teste 15,75 0,86% 12,33 0,71%

Testes 508,84 27,77% 485,98 27,94%

Total de Testes 524,59 28,63% 498,31 28,65%

Reconstrução e Reteste Reconstrução 465,02 25,38% 197,73 11,37%

Total de Horas Todas as Etapas 1832,37 1739,36

267,59 horas a menos para reconstrução; 58,48% de diferença; Esta redução era um dos principais

objetivos do trabalho;

No total geral, mesmo aumentando o fluxo do processo de manutenção, reduzimos 92,64 horas para

atender a um ciclo de manutenções; Redução 5,06% neste total;

Page 28: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Avaliação das Melhorias Resultados

Aumento de 14,77% no tempo na realização dos trabalhos de Análise de Negócio e de Sistemas

Redução de horas, principalmente da etapa de Reconstrução, o que permitiu absorver o tempo necessário para manutenção da matriz de rastreabilidade sem impactar no tempo previsto para desenvolvimento da atividade;

Redução em 5% da etapa de testes;

Cumprimento dos prazos previstos para quase todas as tarefas.

Page 29: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Considerações Finais Limitações

Dificuldade para realizar o mapeamento dos requisitos;

Grande esforço necessário para a engenharia reversa;

Dificuldade de apoio da equipe de desenvolvimento;

Impossibilidade de aplicação das melhorias pela equipe de Manutenção;

Limitação da licença para uso do IBM Requisite Pro;

Limitação da amostra utilizada;

Page 30: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Considerações Finais Oportunidades

Inclusão de uma etapa para a descrição funcional do antigo requisito que fora mapeado em virtude de uma nova manutenção;

Definição de um profissional responsável por fazer a manutenção da matriz de rastreabilidade.

Page 31: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Considerações Finais Trabalhos Futuros

Complementar a documentação dos requisitos do software da empresa;

Implementar o novo processo de manutenção na empresa;

Identificar oportunidades de melhorias na etapa de teste de software;

Padronizar e melhorar as interfaces das aplicações.

Page 32: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Considerações Finais Conclusões

Identificação e formalização dos processos de manutenção de software da Empresa;

Identificação das dificuldades enfrentadas para realização do processo de manutenção de software;

Avaliação da inclusão do gerenciamento dos requisitos no processo de manutenção de software da empresa;

Obtenção de resultados que indicam benefícios do gerenciamento dos requisitos no processo de manutenção de software;

Page 33: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

Referências Bibliográficas

IEEE, Institute of Electrical and Electronics Engineers: Software Engineering, IEEE Standard 610.12 – 1990, IEEE, 1993.

KALAIMAGAL, Sivamuni; SRINIVASAN, Rengaramanujam. A Retrospective on Software Component Quality Models. Nova York, v. 33, n. 6, p. 1-9, 2008.

PAULA, Wilson de Pádua Filho. Engenharia de Software: Fundamentos, Métodos e Padrões. Rio de Janeiro: LTC, 2003.

PETERS, James F.; Pedrycz, Wiltold. Engenharia de Software: Teoria e Prática. Rio de Janeiro: Campus, 2001.

PIEKARSKI, Ana E. T; QUINÁIA, Marcos A. Reengenharia de Software: o que, por quê e como. Guarapuava: Departamento de Informática – UNICENTRO, 2000.

PRESSMAN, R. S. Software Engineering: A Practitioner’s Approach. 5th ed. New York: McGraw-Hill, 2001.

SOMMERVILLE, Ian. Engenharia de Software. 6ª ed. São Paulo: Pearson Addison Wesley, 2003.

Page 34: Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de Softwares já Implantados: Um Estudo de Caso

OBRIGADO

Marcelo Schumacher

Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção

de Softwares já Implantados: Um Estudo de Caso