• Nenhum resultado encontrado

A.1 Questões de competência geradas para checar todos os axiomas escolhidos randomi-

2.4 Rastreabilidade de Requisitos

Nesta seção são abordados conceitos sobre rastreabilidade de requisitos em duas áreas distintas: engenharia de software e engenharia de ontologias.

2.4.1 Rastreabilidade de Requisitos em Engenharia de Software

Gotel & Finkelstein(1994) definiram rastreabilidade de requisitos como a habilidade de descrever e seguir o ciclo de vida de um requisito, tanto no sentido que vai da origem do requisito, passando por sua especificação, desenvolvimento, até a sua implantação e uso, quanto no sentido contrário. Outra definição para rastreabilidade de requisitos foi dada porPinheiro

(2004): a habilidade de definir, capturar, e seguir os rastros deixados pelos requisitos em outros artefatos do desenvolvimento de software e os rastros deixados por esses artefatos nos requisitos.

O suporte a rastreabilidade de requisitos é importante sempre que sistemas complexos precisam ser mantidos, podendo ser crítico para o sucesso do projeto (Asuncion et al.,2007). A rastreabilidade também é essencial para o reuso e evolução de software. As atividades relacionadas à rastreabilidade de requisitos ajudam a manter o software, a evitar inconsistência e omissões relacionadas a implementação dos requisitos, a mostrar a evolução dos artefatos e a

2.4. RASTREABILIDADE DE REQUISITOS 36 dar certeza para as pessoas envolvidas no projeto que todos os requisitos estão sendo satisfeitos corretamente (Winkler & Pilgrim,2010).

Por outro lado, a rastreabilidade de requisitos tem um custo alto de manutenção e, assim como a documentação de um projeto, muitas vezes os rastros deixam de ser atualizados e acabam sendo esquecidos, principalmente quando essa atividade é feita manualmente. A automação da captura e manutenção dos rastros contribui para diminuição de custos e evita os problemas de esquecimento de atualização (Cleland-Huang et al.,2005), entretanto isto é possível apenas parcialmente ou em contextos restritos.

Diferentes tipos de artefatos podem ser relacionados aos requisitos para que eles sejam rastreáveis. Um mudança na especificação de requisitos pode impactar em várias partes do projeto, por exemplo, na documentação, nos testes e no código. O oposto também é verdade, ou seja, mudanças nos artefatos também podem impactar na especificação de requisitos. Assim, o rastreamento de requisitos pode ser usado para informar aos integrantes de um projeto o impacto das mudanças em diferentes tipos de artefatos. Em sistemas grandes e complexos isto é ainda mais importante, pois se torna difícil alguém conhecer em detalhes o sistema inteiro e conseguir prever com exatidão todos os artefatos que precisam ser alterados ao realizar alguma mudança no projeto.

Muitas ferramentas nessa área funcionam de forma semelhante. Basicamente, elas armazenam os artefatos, que podem ser anotados com metadados, e criam relacionamentos entre eles. Além disso, essas ferramentas costumam fornecer meios para que os usuários consigam visualizar as informações do rastreamento, por exemplo, matrizes de rastreabilidade, diagramas com referências cruzadas ou grafos (Wieringa,1995). Uma das ferramentas mais populares para gerenciar requisitos atualmente é o IBM Rational DOORS (Saiedian et al.,2013).

A Tabela 2.7 traz um exemplo de uma matriz de rastreabilidade (Wiegers & Beatty,2013). Nela é possível observar que os requisitos funcionais estão ligados a casos de uso, elementos de projeto, código e testes. Um elemento de projeto pode ser uma classe ou uma tabela em um banco de dados, por exemplo. Já o elemento de código está ligado ao código fonte que vai ser implementado, seja ele um método, uma função, etc.

Tabela 2.7: Exemplo de matriz de rastreabilidade

Caso

de uso Requisitofuncional Elementode projeto Elemento de código Teste UC - 28 catalog.query.sort Class catalog CatalogSort() search.7search.8 UC - 29 catalog.query.import Class catalog CatalogImport()CatalogValidate() search.12search.13

search.14

Apesar das várias soluções desenvolvidas, muitas ainda precisam de intervenção manual dos engenheiros de software para funcionar. Isto resulta em um grande esforço e no aumento do complexidade do projeto (Ramesh et al.,1995). Por isso, várias pesquisas têm se concentrado em

2.4. RASTREABILIDADE DE REQUISITOS 37 criar ferramentas para ajudar e automatizar as atividades envolvidas no rastreamento de requisitos. Diversas técnicas são empregadas nesses trabalhos. Alguns usam abordagens baseada em regras. Por exemplo, Egyed & Grünbacher (2005) usa informações da execução de testes e alguns relacionamentos entre artefatos criados manualmente para inferir novos relacionamentos, e

Gervasi & Zowghi(2005) propuseram um método para identificar inconsistências transformando os requisitos expressados em linguagem natural em lógica formal. Outra abordagem comum é o uso de técnicas de recuperação de informação. Por exemplo, RETRO (Hayes et al.,2007), Poirot (Lin et al.,2006) e ADAMS (De Lucia et al.,2008) são ferramentas que processam o texto de documentos e usam modelos matemáticos para sugerir novos relacionamentos entre os artefatos.

É importante observar que nas ferramentas apresentadas anteriormente, não é possível completamente efetuar todas as atividades necessárias para dar suporte a rastreabilidade de requisitos sem a intervenção humana.

2.4.2 Rastreabilidade de Requisitos em Engenharia de Ontologias

Rastreamento de requisitos em engenharia de ontologias é a habilidade de descrever e de seguir o ciclo de vida das questões de competência (requisitos da ontologia), tanto no sentido que vai da origem da QC, passando por sua especificação, desenvolvimento, implantação e manutenção, quanto no sentido contrário.

A definição é similar à definição de rastreamento de requisitos na engenharia de software. Isto se deve ao fato de que o propósito de ambos é o mesmo. Por outro lado, os artefatos rastreados são diferentes, assim como as formas que os relacionamentos entre eles podem ser descobertos e armazenados. Na engenharia de ontologias, os requisitos são as QCs e o número de artefatos que podem ser relacionados ainda é pequeno. Talvez no futuro, com o progresso da engenharia de ontologias, os processos fiquem mais complexos e mais artefatos sejam produzidos. Além disso, na engenharia de ontologias, pode-se trabalhar com ontologias em lógica de descrição. Esse tipo de artefato possui uma base de lógica formal que fornece possibilidades de processamento automático, incluindo o processamento voltado para o rastreamento de requisitos, que é difícil de replicar na engenharia de software.

Assim como na engenharia de software, a rastreabilidade de requisitos na engenharia de ontologias tem o potencial para melhorar a qualidade dos artefatos produzidos. Especialmente em ontologias muito grandes, que podem ser tão complexas quanto grandes sistemas de software. A rastreabilidade de requisitos em engenharia de ontologias pode ajudar os engenheiros a se certificarem que todos os requisitos são satisfeitos, mostrar o impacto de uma mudança em um artefato nos outros artefatos do projeto, melhorar as tarefas de manutenção e monitorar de forma efetiva o progresso na construção de ontologias. Até aqui pode-se perceber uma semelhança grande entre os dois tipos de rastreabilidade de requisitos, entretanto, para ontologias, as atividades de rastreamento podem ser mais eficientes.

2.5. CONCLUSÃO 38