Você está na página 1de 33

ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

The Design Science Paradigm as a


Frame for Empirical Software
Engineering

Per Runeson, Emelie Engström e Margaret-Anne Storey


Resumo
A pesquisa em engenharia de software visa ajudar a melhorar a
prática do mundo real. Com a adoção de métodos empíricos de
pesquisa de engenharia de software, o entendimento das
necessidades do mundo real e a validação de propostas de
soluções evoluíram.

O paradigma da ciência do projeto é uma estrutura para articular e


comunicar as contribuições prescritivas da pesquisa de engenharia
de software. A ciência do design abrange a conceitualização do
problema, o design da solução (ou artefato) e a validação das
propostas de solução, com recomendações para a prática
formuladas como regras tecnológicas.

ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021


novembro de 2021

Introdução

ENGENHARIA DE SOFTWARE EXPERIMENTAL


ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

A pesquisa em engenharia de software tem como


objetivo desenvolver e validar métodos, tecnologias e
O paradigma da ciência do design compreende a
ferramentas úteis para ajudar a indústria a melhorar
conceituação do problema, o design da solução e a
a prática da engenharia de software.
validação. Demonstramos como esse paradigma se
encaixa como uma estrutura para a pesquisa empírica
de engenharia de software, a fim de fornecer
conhecimento teórico sobre soluções práticas para os
Com o advento da engenharia de software empírica desafios da engenharia de software do mundo real.
(Basili et al. 1986) e da engenharia de software
baseada em evidências (Kitchenham et al. 2004), o
foco da pesquisa mudou para uma compreensão
empiricamente informada da prática e das propostas
de solução.
01 Ciências formais: (por exemplo, filosofia e
matemática) se concentram na construção de
sistemas de conhecimento internamente
consistentes. Eles são empiricamente vazios, pois
os sistemas não estão relacionados a nenhuma
observação ou validação empírica.

Design 02
Ciências explicativas: (por exemplo, as ciências

Science: naturais e a maioria das ciências sociais) visam


descrever e explicar fenômenos que existem, sem e

Visão Geral
antes de qualquer intervenção.

03 Ciências do design: As ciências do design (por


exemplo, ciências da engenharia e ciências
médicas) visam compreender e melhorar os
projetos feitos pelo homem em uma área de
prática.

ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021


ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

A prática não é homogênea em todos os tipos de pesquisa de


engenharia de software, nem as melhorias potenciais são as
mesmas para todas as instâncias de prática. Assim, a ciência do
design aborda problemas gerais estudando instâncias de problemas
específicos na prática, que constituem os contextos de pesquisa, e
onde as atividades de pesquisa de conceituação de problema,
design de solução e validação ocorrem.
Uma visualização dos tipos de atividades de pesquisa
que ocorrem na pesquisa em design science. Essas
atividades podem ser instanciadas de maneiras
diferentes.
novembro de 2021

Um modelo de
pesquisa em
ciência do
design

ENGENHARIA DE SOFTWARE EXPERIMENTAL


ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

A ciência do design abrange duas dimensões principais: a dimensão A contribuição prática da pesquisa (ou seja, a resolução do
problema-solução e a dimensão teoria-prática. problema real) é visualizada pelas caixas nos dois quadrantes
inferiores como instâncias do problema e da solução. A
contribuição teórica (ou seja, generalização e definição de escopo)
Para orientar nossa elaboração aprofundada do paradigma da é visualizada nos dois quadrantes superiores em termos da (s) regra
ciência do design, estendemos o modelo de atividades de pesquisa (s) tecnológica (s) e os construtos correspondentes.
com contribuições da ciência do design, onde as atividades de
pesquisa sob o paradigma da ciência do design podem ser
expressas como transições entre estes dois espaço-dimensional.
Modelo de contribuições da ciência do
design em engenharia de software
(Engström et al. 2020)
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Atividades:

A conceituação do problema refere-se à atividade de descrever o problema;


O design da solução refere-se à atividade de mapear um problema para uma solução geral;
Abstração refere-se à atividade de identificar as principais decisões de design para um escopo
definido de validade de uma solução;
Instanciação refere-se à atividade de implementação da solução em contexto; e
A validação empírica se refere a uma avaliação de quão bem a solução implementada aborda o
problema.
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Regras Tecnológicas e Suas Construções

Uma regra tecnológica captura conhecimento generalizado sobre mapeamentos entre instâncias de problemas e soluções (ou seja,
validações no contexto) e, portanto, é um meio de transferir conhecimento entre contextos. A regra tecnológica abrange um domínio de
problema e um domínio de solução e é formulada com base em construções em ambos os domínios.

O escopo de validade da solução é descrito em termos de um efeito desejado de uma intervenção proposta em um contexto particular.

Para obter <Efeito> em <Contexto>, aplique <Intervenção>.


ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Conceituação do Problema e Projeto da Solução

Em um campo de pesquisa maduro, a teoria existente pode ajudar os profissionais a projetar soluções para seus problemas específicos. A
conceituação do problema é, então, um ato do praticante, assim como a instanciação da solução em um contexto específico. Em áreas onde
a base teórica é menos madura, como engenharia de software, pesquisadores e profissionais podem trabalhar juntos para avançar e
estender o escopo da teoria.

O resultado da conceituação do problema é expresso em termos de construções do problema, combinando as construções correspondentes
de uma solução prevista.

Dependendo do tipo de solução, a conceituação do problema pode precisar ser repetida em vários níveis de abstração, começando com a
descrição do problema da parte interessada.
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Validação, Instanciação e Abstração

Para validar uma regra tecnológica, ela deve ser instanciada, de preferência em casos múltiplos de pares de solução de problemas que
instanciam a regra, onde cada caso aumenta a força de validade da regra. Alternativamente, uma nova regra tecnológica pode ser abstraída
de uma solução implementada observada aplicada a um problema da vida real.

Os constituintes da regra tecnológica especificam implicitamente as atividades de validação se expressos na forma de:

Para obter <Efeito> em <Contexto>, aplique <Intervenção>.


ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Validação, Instanciação e Abstração

A intervenção é o objeto do estudo de validação, o contexto refere-se ao local onde a pesquisa é realizada e o efeito esperado define os
critérios de validação.

Os riscos relacionados à validação de intervenções em contextos críticos para os negócios podem ser altos. Se a intervenção não produzir o
efeito esperado, o resultado da atividade de engenharia de software como um todo pode estar em perigo. Além disso, os custos
relacionados à implementação da intervenção também podem ser altos (por exemplo, alterar um fluxo de trabalho ou adaptar a
infraestrutura de informações a uma nova ferramenta).

Além disso, a escolha dos métodos de validação depende do nível de abstração da validação.
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Validação, Instanciação e Abstração

Munzner (2009) ilustra isso em um modelo aninhado para design de visualização e validação. Este modelo mostra como um projeto de
design science deve responder a questões de validade em vários níveis de abstração, e que é importante ser consistente ao selecionar
métodos de validação para evitar uma incompatibilidade entre os níveis.
Modelo aninhado para design de
visualização e validação (Munzner 2009).
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Modelo aninhado para design de visualização e validação

Em cada nível, há uma “caixa preta” a ser testada. Acima da caixa, ameaças de validade são especificadas e exemplos de estratégias de
validação para a conceituação do problema são propostas para esse nível de abstração, enquanto estratégias de validação para a
instanciação da solução são propostas abaixo da caixa.
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Pesquisa Científica do Projeto na Prática

O paradigma da ciência do design pode abranger o uso de uma infinidade de métodos de pesquisa. Para a conceituação do problema e
validação de regras tecnológicas, são utilizados métodos de pesquisa empírica; no entanto, métodos de suporte a ambientes naturais são
preferidos, pois o problema no contexto é um foco para a pesquisa da ciência do design.

A pesquisa-ação é outra forma de produzir e validar regras tecnológicas. 41 dos 101 projetos de colaboração indústria-academia
pesquisados ​por Garousi et al. (2019) foram rotulados como pesquisa-ação.

Os elementos desse modelo se enquadram na estrutura da design science, embora (intencionalmente) se concentre principalmente na
intervenção no contexto específico, em vez do conhecimento generalizado e na regra tecnológica, que são elementos significativos da
pesquisa em design science.
novembro de 2021

Usando o Design
Science Frame
em Engenharia
de Software

ENGENHARIA DE SOFTWARE EXPERIMENTAL


ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Um modelo para destacar as construções da Design Science

A perspectiva da ciência do design raramente é usada explicitamente para projetar e apresentar pesquisas de engenharia de software
(Engström et al. 2020).

O modelo tem como objetivo capturar a principal conclusão de um estudo de pesquisa para ajudar os pesquisadores a avaliar a contribuição
da pesquisa, construir conhecimento iterativamente e comunicar a pesquisa aos profissionais.
Esse modelo de design science cobre os principais construtos da pesquisa em design science: a contribuição teórica em termos de uma
regra tecnológica; sua instanciação em termos de um par problema-solução real; o suporte empírico ou teórico para a conceituação do
problema e o desenho da solução.
Modelo de resumo visual, incluindo as
principais construções no paradigma da
ciência do design.
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Exemplo de Design Science

Para ilustrar o uso da lente da ciência do design para a pesquisa de engenharia de software, é apresentado e discutido um exemplo de
Jonsson et al. (2016), introduzindo atribuição automatizada de bug para lidar com um grande fluxo de relatórios de bug.

A pesquisa de atribuição de bug automatizada não foi originalmente apresentada dentro do quadro da ciência do design. No entanto, como
muitas pesquisas de engenharia de software, é implicitamente conduzido como pesquisa de design science (Engström et al. 2020).

As soluções de aprendizado de máquina foram implementadas e treinadas usando a estrutura Weka (Hall et al. 2009). Várias instâncias de
solução alternativa foram validadas em dados reais (50.000 relatórios de bug) de cinco projetos em duas empresas / domínios.
Resumo visual para o artigo sobre
atribuição automatizada de bug (Jonsson
et al. 2016).
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Avaliação das contribuições

Hevner (2007) apresenta três ciclos de pesquisa no modelo conceitual da design science, a saber, a relevância, o rigor e os ciclos de design.

As contribuições da pesquisa em design science são avaliadas de acordo com sua relevância, rigor e novidade. A avaliação das contribuições
da pesquisa pode ser realizada de forma proativa (quando a relevância pode ser uma preocupação primária para consideração, e antes da
pesquisa ser executada), prospectivamente (como a pesquisa está em andamento e quando o rigor deve ser cuidadosamente considerado),
ou retrospectivamente (onde a novidade do o conhecimento de design produzido pode se tornar mais evidente).
Avaliação das contribuições

RELEVÂNCIA RIGOR NOVIDADE

A relevância de uma contribuição O rigor de um estudo de design A novidade de um estudo de design


de pesquisa pode ser vista a partir science refere-se à força do science é expressa em termos de
de duas perspectivas: (1) de outros suporte agregado à regra regras tecnológicas novas ou
profissionais que podem se tecnológica. Ele pode ser avaliado refinadas.
beneficiar do conhecimento de em todas as três atividades de
design produzido e (2) da criação de conhecimento
comunidade de pesquisa. (conceituação, projeto e validação
do problema).

ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021


01 Do ponto de vista de um profissional
individual, a relevância de uma contribuição
de pesquisa pode ser avaliada comparando
seu contexto específico com o contexto de

Relevância estudo descrito no relatório de pesquisa.

02 Do ponto de vista da comunidade de


pesquisa, a relevância é frequentemente
considerada em termos de quão comum é o
problema estudado e quão generalizável
pode ser o conhecimento de design
produzido.

ENGENHARIA DE SOFTWARE EXPERIMENTAL Setembro de 2021


01 O rigor deve ser considerado quando o
projeto de pesquisa é elaborado, bem como
durante e após o projeto, para refletir sobre
possíveis ameaças à validade. É importante
notar que a atividade de design de solução é
por natureza um processo criativo e não
necessariamente tem que adicionar ao rigor
da pesquisa geral.

02 Um aspecto do rigor na atividade de design

Rigor
pode ser até que ponto uma solução se
baseia no conhecimento de design anterior
ou se soluções alternativas foram levadas em
consideração.

03 O rigor no que diz respeito à conceituação e


validação do problema é baseado em
métodos empíricos comuns que suportam
critérios de validade relevantes, como o uso
de métodos de pesquisa estruturados e
transparentes e o uso de dados realistas.

ENGENHARIA DE SOFTWARE EXPERIMENTAL Setembro de 2021


01 As regras tecnológicas podem ser expressas
em vários níveis de abstração, portanto, é
sempre possível identificar um nível de
abstração no qual uma contribuição de
pesquisa é nova, seja ao custo de relevância
geral.

02 Na pesquisa de Jonsson et al. é o projeto


sistemático e a avaliação de uma abordagem
de aprendizado de máquina, aplicada a um

Novidade contexto do mundo real, conforme expresso


na regra tecnológica.

02 No entanto, a novidade nem sempre pode ser


uma prioridade em um determinado esforço
de pesquisa. Para otimizar o rigor, a
novidade e a relevância da pesquisa relatada,
deve-se nos esforçar para expressar a regra
tecnológica no nível de abstração mais alto
possível em que é nova.

ENGENHARIA DE SOFTWARE EXPERIMENTAL Setembro de 2021


ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Construção de Conhecimento

Articular o conhecimento produzido por nossas pesquisas de forma mais uniforme pode ajudar na construção e síntese de conhecimentos
relacionados em nossa comunidade. As regras tecnológicas que emergem podem, na melhor das hipóteses, ser consideradas como
fragmentos de teoria que prescrevem e predizem como uma determinada intervenção para um determinado contexto levará a uma mudança
proposta.

Por exemplo, a pesquisa de Jonsson et al. sobre atribuição automatizada de bug está relacionada à pesquisa anterior de atribuição de bug,
embora seja difícil de comparar devido à falta de detalhes e formulação inconsistente (ou falta de) das regras tecnológicas.
ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

Comunicação de Pesquisa

Os profissionais podem desempenhar um papel participativo em nossa pesquisa, confirmando e eliciando os problemas a serem resolvidos,
bem como projetando soluções práticas usando conhecimento de design e validando-as no contexto (em instâncias de problemas reais).
Consequentemente, a forma como comunicamos o conhecimento do design aos profissionais é fundamental para esta abordagem de
pesquisa participativa.

As regras tecnológicas são valiosas para comunicar nossas descobertas à indústria, e o resumo visual também pode atrair aqueles
profissionais que desejam obter rapidamente uma imagem maior da pesquisa por trás do conhecimento de design incorporado por uma
regra tecnológica.

Outras iniciativas de comunicação de pesquisa incluem o framework de arquitetura de taxonomia SERP de Petersen e Engström (2014), que
inclui os construtos de uma regra tecnológica para apoiar o mapeamento de problemas práticos com pesquisa.
novembro de 2021

Conclusão

ENGENHARIA DE SOFTWARE EXPERIMENTAL


ENGENHARIA DE SOFTWARE EXPERIMENTAL novembro de 2021

O paradigma da ciência do design é usado em muitos campos


de pesquisa que visam compreender e melhorar alguma área
de prática. Pesquisadores de engenharia de software Os autores esperam...
raramente usam design science para enquadrar suas
pesquisas explicitamente, embora nossa análise tenha
mostrado que ressoa bem com os objetivos e a prática de
pesquisa em engenharia de software (Engström et al. 2020). Que a comunidade adote a estrutura da ciência do
design para a pesquisa de engenharia de software
para fornecer melhores ferramentas para os
pesquisadores definirem e avaliarem a relevância, o
rigor e a novidade da pesquisa.
Neste capítulo, os autores propuseram uma instanciação
E assim, possa auxiliar na comunicação entre
da ciência do projeto que consideramos adequada para pesquisadores e com profissionais, e para apoiar a
as características da pesquisa em engenharia de construção contínua de conhecimento teórico em
software. Também apresentaram o modelo de resumo engenharia de software.
visual, derivado para ajudar a avaliar e comunicar a
pesquisa da ciência do design (Storey et al. 2017).

Você também pode gostar