Resolução de Conflitos Automatizada em Requisitos de Software
Esse método facilita a resolução de conflitos nas metas de software durante o desenvolvimento.
― 9 min ler
Índice
- O Problema dos Conflitos de Objetivos
- Análise de Conflito de Objetivos
- Resolução Automatizada de Conflitos de Objetivos
- Avaliação Experimental
- Engenharia de Requisitos Orientada a Objetivos
- O Papel da Lógica Temporal de Tempo Linear
- Processo de Resolução de Conflitos de Objetivos
- Exemplos Práticos
- Conclusão
- Fonte original
- Ligações de referência
No desenvolvimento de software, entender o que o software deve fazer é essencial. Essa compreensão geralmente é capturada na forma de objetivos do sistema, que guiam o comportamento do software. No entanto, diferentes partes interessadas podem ter perspectivas variadas sobre esses objetivos, levando a conflitos. Esses conflitos podem surgir quando alguns objetivos se contradizem ou quando alcançar um objetivo impede que outro seja satisfeito. Este artigo discute um método para resolver automaticamente esses conflitos em requisitos de software.
O Problema dos Conflitos de Objetivos
Ao criar software, os engenheiros precisam lidar com objetivos que descrevem como o software deve se comportar. Esses objetivos são importantes porque informam o que o software fará e como ele irá responder a diferentes situações. Contudo, às vezes, os objetivos podem entrar em conflito. Por exemplo, um objetivo pode dizer que uma bomba deve ser acionada quando os níveis de água estiverem altos, enquanto outro objetivo pode afirmar que a bomba deve estar desligada quando um gás perigoso for detectado. Em situações onde ambas as condições são verdadeiras, fica impossível satisfazer ambos os objetivos ao mesmo tempo.
Esses tipos de conflitos podem gerar problemas no software. Podem criar situações em que o software se comporta de forma imprevisível ou não atende às necessidades dos usuários. Para lidar com essas questões, os engenheiros realizam um processo conhecido como análise de conflito de objetivos. Essa análise envolve identificar objetivos conflitantes, avaliar a importância desses conflitos e, por fim, resolvê-los para que o software possa operar de forma eficaz.
Análise de Conflito de Objetivos
A análise de conflito de objetivos normalmente envolve três etapas principais:
Identificação: Essa etapa foca em detectar conflitos entre objetivos. Os engenheiros procuram por situações onde é impossível satisfazer todos os objetivos devido a requisitos conflitantes.
Avaliação: Depois que os conflitos são identificados, os engenheiros os avaliam com base em sua probabilidade e gravidade. Essa etapa ajuda a priorizar quais conflitos precisam ser resolvidos primeiro.
Resolução: Nesta fase crucial, os engenheiros apresentam soluções para os conflitos identificados. Isso pode envolver mudar os objetivos ou suas condições para garantir que o software possa satisfazê-los sem contradições.
Embora existam técnicas para ajudar a identificar e avaliar conflitos de objetivos automaticamente, tem faltado ferramentas automatizadas que ajudem a resolver esses conflitos de forma eficaz.
Resolução Automatizada de Conflitos de Objetivos
Para enfrentar essa lacuna, uma nova abordagem foi desenvolvida. Esse método usa automação não apenas para identificar e avaliar conflitos de objetivos, mas também para propor potenciais resoluções. A abordagem foca em especificações escritas em uma lógica formal conhecida como Lógica Temporal de Tempo Linear (LTL). Essa lógica permite expressões precisas de como os objetivos devem se comportar ao longo do tempo.
Usando algoritmos de busca avançados, o método automatizado explora diferentes modificações nos objetivos conflitantes. O objetivo é encontrar resoluções que evitem os conflitos identificados enquanto mantêm a consistência nas especificações. Isso envolve buscar alternativas que se assemelhem aos objetivos originais, seja sintaticamente (em termos de estrutura e redação) ou semanticamente (em termos de significado).
Avaliação Experimental
Para avaliar a eficácia dessa abordagem de resolução automatizada de conflitos de objetivos, uma série de experimentos foi realizada usando 25 diferentes especificações de requisitos coletadas da literatura existente. Os resultados mostram que o sistema automatizado pode gerar com sucesso múltiplas resoluções para conflitos de objetivos.
Sucesso na Geração de Resoluções
Os experimentos revelaram que o sistema automatizado produziu consistentemente várias resoluções não conflitantes. Em muitos casos, ele gerou mais soluções em comparação com outros métodos tradicionais. Os resultados destacam a eficácia da nova abordagem em lidar com problemas reais enfrentados durante o desenvolvimento de software.
Qualidade das Resoluções
Além de gerar resoluções, o sistema automatizado também foi avaliado com base na qualidade dessas soluções. Um subconjunto de resoluções foi comparado com resoluções desenvolvidas manualmente de análises anteriores. A abordagem automatizada conseguiu replicar certas soluções de alta qualidade, mostrando seu potencial para entregar resultados valiosos.
Desempenho de Diferentes Algoritmos
A avaliação também considerou diferentes algoritmos de busca usados dentro da abordagem. Algoritmos como o Algoritmo Genético de Classificação Não Dominada III (NSGA-III) e um Algoritmo Genético Baseado em Peso (WBGA) se mostraram mais eficazes que outros na geração de resoluções de alta qualidade. O sistema automatizado produziu uma lista de resoluções aceitáveis das quais os engenheiros poderiam escolher, oferecendo opções que se alinham de perto com as intenções originais das especificações.
Engenharia de Requisitos Orientada a Objetivos
O trabalho está fundamentado no campo da Engenharia de Requisitos Orientada a Objetivos (GORE). Essa abordagem organiza e analisa sistematicamente os requisitos de software com base nos objetivos definidos. Ao focar nos objetivos, os engenheiros podem criar uma estrutura organizada para desenvolver software que atenda às necessidades do usuário.
Compreendendo os Objetivos
Na GORE, os objetivos são declarações claras sobre o que o software deve alcançar. Eles guiam o processo de desenvolvimento e servem como base para avaliar o comportamento do software. Contudo, conforme mais objetivos são adicionados, as chances de conflitos aumentam. As metodologias GORE visam criar uma hierarquia de objetivos onde objetivos de nível superior levam a sub-objetivos mais específicos, facilitando o gerenciamento de conflitos potenciais.
Especificações Formais
A caracterização de requisitos como objetivos formalmente definidos é essencial. Especificações formais permitem uma análise sistemática, capacitando os engenheiros a detectar inconsistências e conflitos dentro dos objetivos. Essa abordagem rigorosa é crucial para garantir que o software se comporte conforme o esperado.
O Papel da Lógica Temporal de Tempo Linear
A Lógica Temporal de Tempo Linear (LTL) é um componente chave da solução proposta. Ao usar a LTL, os engenheiros podem especificar o comportamento esperado do software em relação ao tempo. Essa linguagem formal lhes permite expressar requisitos complexos com precisão.
Fundamentos da LTL
A LTL permite o uso de operadores que definem como as proposições se mantêm ao longo do tempo. Por exemplo, declarações podem ser articuladas para expressar que certas condições devem sempre ser mantidas ou que devem eventualmente ser verdadeiras. Essa capacidade é vital para requisitos que dependem de sequências de eventos.
Contagem de Modelos
Um aspecto importante da LTL é a contagem de modelos, que se refere ao cálculo de quantos modelos satisfazem uma dada fórmula. Essa análise frequentemente foca em representações finitas de comportamentos infinitos, ajudando a gerenciar a complexidade enquanto fornece insights sobre os comportamentos possíveis do software.
Processo de Resolução de Conflitos de Objetivos
O processo de resolução de conflitos de objetivos envolve várias etapas, incluindo a identificação de condições de limite que caracterizam os conflitos. Essas condições de limite especificam as situações em que os conflitos surgem, guiando os engenheiros em direção a soluções eficazes.
Identificando Conflitos
Durante a fase de identificação, os engenheiros geram condições que destacam a divergência nos objetivos. Por exemplo, uma situação pode ser identificada onde um objetivo leva a uma contradição com outro. Compreender essas condições de limite é crucial para avançar na resolução dos conflitos.
Avaliando Conflitos
Uma vez identificados os conflitos, a fase de avaliação envolve avaliar sua probabilidade e impacto. Essa etapa ajuda a priorizar quais conflitos precisam ser abordados primeiro, garantindo que os engenheiros possam direcionar seus esforços para as questões mais críticas.
Resolvendo Conflitos
A fase de resolução é onde são feitas mudanças nos objetivos ou suas condições. Os engenheiros podem optar por enfraquecer certos objetivos ou eliminá-los totalmente para garantir que os objetivos restantes possam coexistir sem contradições. A abordagem automatizada busca ajudar nesse processo, explorando sistematicamente várias modificações.
Exemplos Práticos
Para ilustrar a eficácia do processo automatizado de resolução de conflitos de objetivos, considere o exemplo de um sistema de controle de bomba. Neste sistema, os objetivos podem ditar que a bomba deve operar sob certas condições enquanto deve ser desligada sob outras. Quando ambas as condições são verdadeiras simultaneamente, surgem conflitos.
Cenário Exemplo
Imagine um cenário em que o nível de água está alto, acionando a bomba, mas um gás metano também é detectado. Essa situação apresenta um conflito claro: ligar a bomba pode levar a uma explosão devido ao gás. Nesses casos, o método automatizado trabalha para propor resoluções que garantam a segurança enquanto mantém a funcionalidade pretendida da bomba.
Estratégias de Resolução
O sistema automatizado pode sugerir modificações nos objetivos conflitantes. Por exemplo, uma resolução pode envolver refinamento do objetivo em relação ao funcionamento da bomba para incluir condições que garantam que a bomba se desligue sempre que o metano for detectado. Isso mantém a segurança enquanto ainda aborda a necessidade de gerenciar os níveis de água.
Conclusão
A abordagem automatizada de resolução de conflitos de objetivos apresentada oferece um avanço significativo para engenheiros de software. Ao identificar, avaliar e resolver sistematicamente conflitos em requisitos de software, esse método pode agilizar o processo de desenvolvimento e criar softwares mais confiáveis.
Trabalho Futuro
Ao avançar ainda mais nas técnicas de análise e resolução automatizadas, há potencial para processos de desenvolvimento de software ainda mais eficazes. A pesquisa contínua nessa área provavelmente levará a ferramentas que aprimoram a colaboração entre as partes interessadas e melhoram a qualidade dos sistemas de software como um todo.
Considerações Finais
O desenvolvimento de software é inerentemente complexo, e gerenciar conflitos de objetivos é um aspecto crítico de criação de sistemas eficazes. A adoção de métodos automatizados para resolver esses conflitos pode reduzir significativamente a carga dos engenheiros e levar a resultados melhores em projetos de software. À medida que o campo evolui, melhorias contínuas garantirão que o software continue a atender às necessidades dos usuários em um ambiente cada vez mais dinâmico.
Título: ACoRe: Automated Goal-Conflict Resolution
Resumo: System goals are the statements that, in the context of software requirements specification, capture how the software should behave. Many times, the understanding of stakeholders on what the system should do, as captured in the goals, can lead to different problems, from clearly contradicting goals, to more subtle situations in which the satisfaction of some goals inhibits the satisfaction of others. These latter issues, called goal divergences, are the subject of goal conflict analysis, which consists of identifying, assessing, and resolving divergences, as part of a more general activity known as goal refinement. While there exist techniques that, when requirements are expressed formally, can automatically identify and assess goal conflicts, there is currently no automated approach to support engineers in resolving identified divergences. In this paper, we present ACoRe, the first approach that automatically proposes potential resolutions to goal conflicts, in requirements specifications formally captured using linear-time temporal logic. ACoRe systematically explores syntactic modifications of the conflicting specifications, aiming at obtaining resolutions that disable previously identified conflicts, while preserving specification consistency. ACoRe integrates modern multi-objective search algorithms (in particular, NSGA-III, WBGA, and AMOSA) to produce resolutions that maintain coherence with the original conflicting specification, by searching for specifications that are either syntactically or semantically similar to the original specification. We assess ACoRe on 25 requirements specifications taken from the literature. We show that ACoRe can successfully produce various conflict resolutions for each of the analyzed case studies, including resolutions that resemble specification repairs manually provided as part of conflict analyses.
Autores: Luiz Carvalho, Renzo Degiovanni, Matìas Brizzio, Maxime Cordy, Nazareno Aguirre, Yves Le Traon, Mike Papadakis
Última atualização: 2023-03-09 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2303.05213
Fonte PDF: https://arxiv.org/pdf/2303.05213
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.