Recepção: 15 Fevereiro 2019
Aprovação: 14 Junho 2019
DOI: https://doi.org/10.19132/1808-5245261.237-254
Resumo: Algumas das atividades fundamentais do processo de desenvolvimento de software estão relacionadas à disciplina de Engenharia de Requisitos, cujos objetivos são descobrir, analisar, documentar e verificar os requisitos que farão parte do sistema. Os requisitos são as condições ou capacidades que um software precisa ter ou realizar para atender às necessidades de seus usuários. O presente estudo faz parte de uma pesquisa que está sendo desenvolvida com o intuito de propor um modelo de cooperação entre a Ciência da Informação e a Engenharia de Requisitos, e tem como objetivo apresentar os resultados de uma análise sobre as possibilidades de utilização dos sistemas de organização do conhecimento: taxonomias, tesauros e ontologias durante as atividades da Engenharia de Requisitos. Com base nos resultados obtidos, foi possível identificar em qual etapa do processo da Engenharia de Requisitos cada um dos tipos de sistema de organização do conhecimento é passível de ser utilizado. Espera-se com este estudo evidenciar a necessidade de novas pesquisas e propostas para fortalecer o intercâmbio entre a Ciência da Informação, como ciência, cujo objeto de estudo é a informação, e a Engenharia de Requisitos que, por sua vez, tem na informação a matéria-prima para a identificação das necessidades informacionais dos usuários de softwares.
Palavras-chave: Ciência da Informação, Engenharia de Requisitos, Sistemas de Organização do Conhecimento.
Abstract: Some of the fundamental activities of the software development process are related to the discipline of Requirements Engineering, whose objective is the discovery, analysis, documentation and verification of the requirements that will be part of the system. Requirements are the conditions or capabilities that software must have or perform to meet the users needs. The present study is being developed to propose a model of cooperation between Information Science and Requirements Engineering. Aims to present the analysis results on the possibilities of using the knowledge organization systems: taxonomies, thesauri and ontologies during the activities of Requirements Engineering: design, survey, elaboration, negotiation, specification, validation and requirements management. From the results obtained it was possible to identify in which stage of the Requirements Engineering process, each type of knowledge organization system could be used. We expect that this study put in evidence the need for new researchs and proposals to strengt the exchange between Information Science, as a science that has information as object of study, and the Requirements Engineering which has in the information the raw material to identify the informational needs of software users.
Keywords: Information Science, Requirements Engineering, Knowledge Organization Systems.
1 Introdução
A construção de sistemas de informação de qualidade e que atendam às necessidades informacionais dos seus usuários está fortemente relacionada com o processo utilizado para o seu desenvolvimento. A disciplina pertencente à área da Ciência da Computação, denominada Engenharia de Software, apresenta conceitos, técnicas e ferramentas para serem aplicados durante esse processo, que inclui as etapas de especificação, projeto, codificação, validação e evolução do software (PRESSMAN, 2009; SOMMERVILLE, 2011).
Durante a etapa de especificação, ocorre a definição das funcionalidades do sistema e das restrições ao seu funcionamento, e a referida etapa conta com a área da Engenharia de Requisitos para dar suporte à descoberta, análise, documentação e validação dos chamados requisitos de software (SOMMERVILLE, 2011).
Contudo, nem sempre as atividades da Engenharia de Requisitos são executadas de maneira a possibilitar o total entendimento das necessidades dos usuários, e os sistemas acabam sendo criados com base em especificações provenientes de visões individuais e específicas, comprometendo a qualidade do software que será entregue e, consequentemente, o projeto como um todo. Pesquisas realizadas com o objetivo de identificar fatores críticos em projetos de software apontam que uma das principais questões relacionadas ao fracasso dos projetos está diretamente ligada às atividades pertencentes à Engenharia de Requisitos, uma vez que erros nessa etapa, se não forem corrigidos, impactam negativamente nas fases subsequentes (HASTIE; WOJEWODA, 2015; DAL FORNO; MÜLLER, 2017).
Sendo o foco da Engenharia de Requisitos a identificação e a transformação de informações em requisitos de software, considera-se pertinente uma reflexão sobre as possibilidades de uso de abordagens utilizadas por outras áreas do conhecimento para auxiliar nesse processo. Dessa forma, buscou-se, na Ciência da Informação, técnicas que pudessem contribuir com o aumento da qualidade dos requisitos e, consequentemente, com o aumento da satisfação dos usuários. Com base nas pesquisas realizadas, identificaram-se oportunidades de utilização de alguns dos tipos de Sistemas de Organização do Conhecimento (SOCs) para auxiliar a Engenharia de Requisitos na execução de suas atividades.
De acordo com Carlan e Medeiros (2011), os SOCs podem ser considerados como sendo estruturas ou esquemas, cujo objetivo é organizar a informação e o conhecimento, facilitando a sua recuperação e promovendo a sua gestão. Hjorland (2009) esclarece que os sistemas de organização do conhecimento são sistemas que organizam os conceitos pertencentes a um determinado domínio e as suas relações semânticas. Gödert, Hubrich e Nagelschmidt (2014) afirmam que a expressão sistema de organização do conhecimento designa estrutura de conhecimento, formada por conceitos que possuem relações entre si e construída para prover suporte à indexação e recuperação da informação.
Com o intuito de propor uma reflexão acerca das possibilidades de colaboração entre a Ciência da Informação e a Engenharia de Requisitos, este artigo apresenta resultados parciais de uma pesquisa que envolve utilização de um conjunto de sistemas de organização do conhecimento para auxiliar a Engenharia de Requisitos na execução das suas atividades.
A análise apresentada aqui visa verificar se os SOCs são passíveis de serem utilizados durante as atividades do processo de Engenharia de Requisitos. Para isso, foram analisados as características e os objetivos das taxonomias, dos tesauros e das ontologias, e identificadas em qual ou em quais etapas do processo de Engenharia de Requisitos eles podem ser aplicados.
Pretende-se, com os resultados obtidos neste artigo, evidenciar a necessidade e a relevância de estudos que envolvam os sistemas de organização do conhecimento e a Engenharia de Requisitos, dando continuidade à pesquisa que está sendo desenvolvida. Uma etapa futura será a aplicação dos SOCs em um processo de desenvolvimento de um sistema de informação real.
Este artigo está estruturado de maneira a apresentar os conceitos e as definições sobre a Engenharia de Requisitos e os tipos de SOCs que serviram de base para a análise realizada, os procedimentos metodológicos utilizados, os resultados obtidos e, por fim, as considerações finais.
2 O processo de Engenharia de Requisitos
De acordo com Kruchten (2003), um requisito de software é uma condição ou uma capacidade que um software necessita ter ou realizar, com o objetivo de atender às necessidades de seus usuários. Sommerville (2011, p. 57) amplia esse significado, definindo os requisitos de um sistema como sendo
[...] as descrições do que o sistema deve fazer, os serviços que oferece e as restrições ao seu funcionamento. Esses requisitos refletem as necessidades dos clientes para um sistema que serve a uma finalidade determinada, como controlar um dispositivo, realizar um pedido ou encontrar informações [...].
Os requisitos de software frequentemente são classificados como funcionais e não funcionais. Os requisitos funcionais são declarações de serviços que o sistema deve fornecer, de como o sistema deve reagir a entradas específicas e de como o sistema deve se comportar em determinadas situações, e dizem respeito às funções contidas no software e às suas propriedades. Como exemplos de um requisito funcional, podem-se citar o cálculo do salário de um funcionário da empresa ou a geração de um relatório de contas a pagar. Já os requisitos não funcionais, ao contrário dos funcionais, não expressam nenhuma função a ser realizada pelo software, e sim comportamentos e restrições que este deve satisfazer. São classificados em categorias, como desempenho, manutenibilidade, segurança, flexibilidade e confiabilidade (POHL, 1994; CYSNEIROS; LEITE, 1997; PRESSMAN, 2009; SOMMERVILLE, 2011).
A Engenharia de Requisitos é considerada uma das etapas do processo de desenvolvimento de software, na qual o analista de sistemas ou engenheiro de requisitos procura compreender quais são as reais necessidades dos usuários no que tange à resolução ou dissolução do problema posto em foco. Durante esta etapa é desenvolvido um conjunto de atividades para descobrir, analisar, documentar e verificar os requisitos e artefatos gerados. Vale ressaltar que as atividades podem variar de uma organização para outra, ou até mesmo dentro de uma mesma organização em virtude das particularidades de cada projeto (KOTONYA; SOMMERVILLE, 1996).
É possível encontrar na literatura diferentes propostas relativas às atividades que fazem parte do processo de Engenharia de Requisitos. Para este estudo serão consideradas as atividades apresentadas por Pressman (2009, p. 127), que sugere que a Engenharia de Requisitos deve fornecer
[...] o mecanismo apropriado para entender aquilo que o cliente deseja, analisando as necessidades, avaliando a viabilidade, negociando uma solução razoável, especificando a solução sem ambiguidades, validando a especificação e gerenciando as necessidades à medida que são transformadas em um sistema operacional.
O processo proposto por Pressman contempla as sete atividades descritas a seguir:
a) Concepção: visa estabelecer um entendimento básico do problema, identificando os envolvidos, a natureza da solução desejada e a eficácia da comunicação e colaboração preliminares entre os usuários e a equipe do projeto;
b) Levantamento: identifica os objetivos, as funcionalidades e as necessidades requeridas pelos usuários;
c) Elaboração: refina as informações obtidas durante a concepção e desenvolve um modelo técnico contendo as funções, as características e as restrições do software;
d) Negociação: realiza uma negociação entre os envolvidos no projeto, objetivando a priorização dos requisitos do software;
e) Especificação: formaliza/documenta os requisitos para fundamentar as atividades subsequentes do processo de desenvolvimento;
f) Validação: avalia e valida os artefatos gerados, onde participam da validação engenheiros de software, clientes, usuários e outros interessados;
g) Gestão: realiza o gerenciamento de requisitos, definindo identificações individuais e relacionamentos, permitindo a sua rastreabilidade e facilitando as alterações quando necessário.
De acordo com Bourque e Fairley (2014), um ambiente ideal para a Engenharia de Requisitos é aquele no qual os usuários e os engenheiros de requisitos trabalham juntos na mesma equipe. Nesse caso, torna-se apenas uma questão de conduzir as interações. Porém, em muitos casos, a realidade é outra e as interações não ocorrem como deveriam, prejudicando o processo na sua totalidade. Problemas na comunicação, na troca de informações e no compartilhamento do conhecimento entre os envolvidos no processo de Engenharia de Requisitos aparecem entre os mais citados na literatura como fatores causadores de impactos negativos no resultado das atividades realizadas.
3 Sistemas de organização do conhecimento
Um sistema de organização do conhecimento é todo e qualquer tipo de estrutura ou esquema que tem os objetivos de organizar a informação e promover a gestão do conhecimento. Stock (2010) esclarece que um SOC é composto por conceitos e relações semânticas que representam um domínio de conhecimento com a finalidade de prover suporte à sua recuperação; entende-se como domínio de conhecimento uma área temática que pode ser delimitada.
Em seu artigo, intitulado “The rise of ontologies or the reinvention of classification”, publicado em 1999 no Journal of the American Society for Information Science, Soergel (1999) apresenta o seguinte conjunto de objetivos para os sistemas de organização do conhecimento:
a) Fornecer um mapa semântico para domínios individuais e para os relacionamentos entre esses domínios;
b) Melhorar a comunicação e a aprendizagem;
c) Fornecer uma base conceitual para a boa execução da pesquisa e da sua implementação;
d) Fornecer diretrizes para a sua aplicação prática em diferentes atividades profissionais;
e) Apoiar a recuperação da informação;
f) Fornecer uma base conceitual para sistemas baseados em conhecimento e para a definição de elementos de dados e hierarquias de objetos em sistemas de software;
g) Ser utilizado em disciplinas, linguagens e culturas;
h) Servir como um dicionário mono, bi ou multilíngue para ser utilizado pelo homem ou por sistemas automatizados de processamento da linguagem natural.
Segundo Hodge (2000), os SOCs envolvem diferentes tipos de instrumentos utilizados para organizar a informação, entre eles: (a) as taxonomias, consideradas esquemas utilizados para agrupar entidades em classes genéricas; (b) os tesauros, que são um conjunto de termos que representam conceitos e as relações de equivalência, hierárquicas e associativas estabelecidas entre eles; (c) as ontologias, que são estruturas conceituais e seus relacionamentos, que incluem regras de inferência e axiomas.
4 Taxonomias, tesauros e ontologias
O termo taxonomia foi empregado inicialmente para classificar as espécies em botânica e zoologia, e sua aplicação nos sistemas de informação baseou-se em unidades sistemáticas nas quais as classes se apresentam da mesma forma, apoiadas em princípios classificatórios, seguindo, porém, uma ordem lógica (CAMPOS; GOMES, 2008).
No entendimento de Vital e Café (2011), uma taxonomia organiza a informação da mais genérica a mais específica, utilizando-se da relação hierárquica ou relação de gênero-espécie entre os termos. Objetivando a recuperação eficaz das informações, as taxonomias são direcionadas para organizar informações em ambientes específicos em um processo de criação do conhecimento de modo ordenado.
Furgeri (2006) complementa que as taxonomias são utilizadas em diferentes áreas, entre elas na Ciência da Computação, para estruturar as informações que serão apresentadas aos usuários, uma vez que são consideradas ferramentas relevantes para recuperar informações por meio da navegação. Observa-se, na literatura, que a recuperação da informação é apontada como um dos principais objetivos da taxonomia. Todavia, conforme salientado por Campos e Gomes (2008), a função de uma taxonomia é, além da padronização terminológica para a recuperação da informação, a de ordenação/organização de informação e dados. Em um contexto geral sobre os propósitos da taxonomia, alguns autores consideram que
[...] o objetivo da taxonomia não é unicamente classificar e facilitar o acesso à informação, mas, igualmente, [...] representar conceitos através de termos, agilizar a comunicação entre especialistas e outros públicos; encontrar o consenso; propor formas de controle da diversidade de significação e oferecer um mapa de área que servirá como guia em processo de conhecimento. (TERRA et al., 2005 apud VITAL; CAFÉ, 2011 p. 123)[1].
Souza e Araujo Jr (2013) sugerem que, ao se associar as taxonomias à organização da informação em uma corporação, elas podem ser aplicadas para descrever conteúdos informacionais, definir os padrões de tratamento técnico dos conteúdos informacionais, melhorar os sistemas de recuperação da informação, aprimorar a interface de navegação dos sistemas de informação, além de localizar e reutilizar a informação disponível na organização. Os autores apresentam três etapas metodológicas a serem realizadas na elaboração de uma taxonomia. A primeira consiste no levantamento das áreas do conhecimento e das relações hierárquicas dos termos que comporão a primeira versão da taxonomia. A segunda, na elaboração da versão preliminar da taxonomia, incluindo a especificação de subtermos em níveis, conforme a necessidade, e a terceira, na validação da versão preliminar da taxonomia com os profissionais administrativos da instituição.
Já Campos e Gomes (2008), em uma proposta bastante similar à de Souza e Araujo Jr (2013), acrescentam uma etapa entre o levantamento das áreas do conhecimento e a elaboração da versão preliminar, para analisar os documentos e informações que serão agregados à taxonomia a fim de adequar as informações existentes nos acervos à terminologia apresentada.
Os tesauros consistem em uma linguagem especializada utilizada para fins documentários, nos quais os elementos linguísticos que a compõem encontram-se relacionados entre si sintática e semanticamente. Possuem como finalidades controlar os termos usados na indexação, por meio de um instrumento que traduza a linguagem natural dos autores, usuários e indexadores para uma linguagem mais controlada, e padronizar a indexação numa rede cooperativa, limitando o número de termos ao que de fato é necessário, auxiliando na tarefa de recuperação da informação (CURRÁS, 1995).
Alguns tesauros podem incluir mais de 50.000 termos, sendo em sua maioria temáticos e desenvolvidos para atender a uma área específica do conhecimento, um produto específico ou uma família de produtos (HODGE, 2000; ROBREDO; BRÄSCHER, 2010). E, conforme sugerem Gomes e Campos (2008), podem ser concebidos com base em cinco etapas: (i) planejamento, o qual define e delimita a área (domínio a ser abordado); (ii) levantamento e delimitação do vocabulário que irá compor o tesauro e registro preliminar; (iii) organização dos conceitos que são definidos pelos termos e as relações entre eles; (iv) apresentação final do tesauro considerando a sua forma de apresentação e o meio (físico/online) em que será disponibilizado; e, por fim, (v) a definição dos critérios de avaliação do tesauro, o qual considera se o tesauro cobre o domínio de conhecimento desejado, a forma de apresentação, a sua consistência e a sua utilização.
De acordo com Almeida e Bax (2003), o termo ontologia teve sua origem da palavra aristotélica “categoria”, utilizada no sentido de classificar algo com o objetivo de estabelecer distinções entre as espécies do mesmo gênero que apresentavam propriedades distintas. Ainda segundo os autores, atualmente as ontologias são criadas por especialistas para aprimorar o processo de recuperação da informação, sendo definido um conjunto de regras que regulam a combinação entre termos e relações em um determinado domínio do conhecimento.
As ontologias são estruturadas por intermédio de uma “[...] lista de conceitos ou entidades dentro de um domínio específico, os quais podem ser estruturados de forma hierárquica, por meio de relações semânticas explicitadas formalmente, em meio informatizado [...]” (LIMA; MACULAN, 2017). Vital e Café (2011) ressaltam que uma ontologia é formada por quatro componentes básicos: as classes, que são organizadas em uma taxonomia; as relações entre elas, que representam o tipo de interação entre os conceitos de um domínio; os axiomas, que são utilizados para definir sentenças (sempre verdadeiras); e as instâncias, que são as representações dos próprios dados.
Apesar de não existir apenas uma maneira para a sua construção, os autores citados sugerem as seguintes etapas para a construção de uma ontologia: (a) definir os objetivos e os domínios a serem cobertos pela ontologia; (b) considerar a reutilização de ontologias já existentes; (c) estabelecer os termos relevantes a serem tratados, bem como as suas propriedades; (d) definir as classes e as relações hierárquicas entre elas; (e) estabelecer as propriedades das classes e as suas relações; (f) definir as facetas das propriedades; e (g) criar as instâncias dentro das classes.
Embora tenha sua origem na Filosofia, o desenvolvimento de ontologias cresce e ganha espaço em áreas, como na Ciência da Computação, Ciência da Informação, Medicina, entre outras (CARLAN; MEDEIROS, 2011). Os primeiros estudos acerca da utilização de ontologias dentro da área da Ciência da Informação foram conduzidos pelo pesquisador britânico Brian Campbell Vickery, tendo seu interesse relacionado à natureza e às formas de organização e representação do conhecimento e da informação (LIMA; MACULAN, 2017).
Já na Ciência da Computação, o termo ontologia começou a ser empregado no início dos anos 1990 em projetos destinados à organização de grandes bases de conhecimento. Segundo Souza e Alvarenga (2004), para os profissionais da Ciência da Computação, uma ontologia é um documento ou um arquivo que define formalmente as relações entre termos e conceitos, semelhantes aos tesauros utilizados para a definição de vocabulários controlados. Na referida área, o objetivo da construção de uma ontologia é suprir a necessidade de um vocabulário compartilhado para a troca de informações entre os membros de uma comunidade, sejam eles seres humanos, sejam agentes inteligentes, servindo como base para garantir uma comunicação livre de ambiguidades (ALMEIDA; BAX, 2003; MOREIRA; ALVARENGA; OLIVEIRA, 2004; KILOV; SACK, 2009).
5 Procedimentos metodológicos
Quanto aos procedimentos metodológicos utilizados para o alcance dos objetivos deste artigo, foi realizada uma pesquisa bibliográfica de caráter exploratório, com a finalidade de investigar os conceitos relacionados à Engenharia de Requisitos e aos sistemas de organização do conhecimento. Lucio, Sampieri e Collado (2013) esclarecem que o uso do estudo exploratório se dá quando o objetivo é examinar um determinado tema que tenha sido pouco ou nada estudado anteriormente, permitindo que se obtenha um maior grau e familiaridade com os fenômenos envolvidos. O estudo foi realizado com base em levantamento e leitura de referências teóricas, publicadas por meios escritos e eletrônicos, como livros, artigos científicos e páginas de web sites.
Quanto à natureza, esta investigação é considerada uma pesquisa básica, pois objetiva a geração de novos conhecimentos que sejam úteis para o avanço da ciência, por meio do desenvolvimento de outras pesquisas que deem continuidade a esta e a complementem.
Com o intuito de identificar a originalidade deste estudo, foi realizada uma busca pelos termos “requirements engineering” e “knowledge organization systems”, nas bases de dados BRAPCI, Library, Information Science & Technology Abstracts (LISTA) e Web of Science. Após a inserção dos termos nos campos de busca, foram definidos os seguintes critérios de inclusão dentro das ferramentas: estudos publicados entre 2000 e 2018, que fossem do tipo publicações em periódicos ou publicações em anais de congressos, e publicações nos idiomas português, inglês ou espanhol. O total de artigos encontrados nas três bases consultadas foi de sete publicações. Nenhuma delas, porém, tratava especificamente da aplicação de SOCs na Engenharia de Requisitos.
No que diz respeito ao alcance do objetivo a que se propõe este texto, que é apresentar os resultados de uma análise sobre as possibilidades de utilização das taxonomias, dos tesauros e das ontologias no processo de Engenharia de Requisitos, foi realizada, para cada um dos três tipos de SOCs, uma análise dos seus objetivos e verificado se apresentavam alguma aderência aos objetivos de cada uma das atividades da Engenharia de Requisitos propostos em Presmann (2010). Assim, com base na referida análise, identificou-se em qual etapa ou em quais etapas do processo cada um dos SOCs poderia ser implementado.
6 Resultados e discussões
A seguir serão apresentados os resultados da análise realizada, a qual permitiu identificar em qual etapa do processo da Engenharia de Requisitos, cada um dos diferentes sistemas de organização do conhecimento pode ser implementado. O Quadro 1 apresenta, por meio de uma matriz de relacionamentos, a síntese dos resultados, sendo que, logo após, são apresentadas as análises para cada umas das associações identificadas.
Atividades da Engenharia de Requisitos
Sistemas de Organização do Conhecimento
As taxonomias podem auxiliar à Engenharia de Requisitos nas etapas de:
a) levantamento dos requisitos, uma vez que a ação de classificar algo demanda um esforço de compreensão acerca do que está sendo classificado, fazendo com que haja um melhor entendimento sobre os requisitos do sistema;
b) elaboração e especificação, pois este tipo de sistema de classificação gera modelos e estruturas para representar visualmente a classificação que está sendo realizada, modelos estes que podem ser incorporados à documentação do sistema;
c) negociação, onde a equipe de desenvolvimento pode utilizar os agrupamentos gerados pelas classificações para modularizar os sistemas e, assim, priorizar os requisitos com base nos módulos resultantes desse agrupamento;
d) validação, pois os modelos e documentos gerados poderão servir de artefatos para a validação dos requisitos com usuários, já que conterão informações estruturais a respeito deles;
e) gestão, uma vez que a criação de taxonomias apoia o acesso à informação, permitindo a sua classificação, recuperação, comunicação e organização, auxiliando, desse modo, no processo de gestão de tais informações.
Considerado como sendo um conjunto de termos – sobre uma determinada área do conhecimento e seus respectivos significados –, os tesauros podem ser utilizados pela equipe de desenvolvimento, durante as etapas de:
a) concepção e levantamento, como um instrumento para auxiliar na compreensão dos termos técnicos específicos do domínio do sistema que está sendo desenvolvido;
b) especificação, onde o tesauro pode ser incorporado à documentação de requisitos. Sendo que, no caso da inexistência de um, e havendo a necessidade e a viabilidade, a equipe poderia desenvolver o seu próprio tesauro, podendo ser utilizados em projetos futuros pertencentes a esse mesmo domínio.
Já as ontologias podem ser empregadas para fornecer um entendimento comum e compartilhado do domínio, entendimento este que pode ser comunicado por intermédio de pessoas e/ou de sistemas automatizados. A criação de uma ontologia do domínio do sistema pode auxiliar igualmente na definição e no estabelecimento das relações entre artefatos de requisitos gerados, ajudando no trabalho colaborativo entre os envolvidos no projeto, pois criam uma estrutura unificada do conhecimento que o representa, e podem ser utilizadas nas atividades de:
a) concepção e levantamento, possibilitando, pelas relações estabelecidas, a compreensão dos conceitos, tanto em um nível mais abrangente, auxiliando no entendimento dos aspectos gerais, como em um nível mais específico, permitindo a identificação dos dados que precisam ser armazenados e manipulados pelo sistema;
b) elaboração, sendo os artefatos gerados para representar as ontologias, utilizados como modelo técnico, contendo informações acerca dos requisitos, suas características e seus relacionamentos;
c) especificação, em que os artefatos gerados poderão ser incorporados à documentação do sistema;
d) validação, na qual os artefatos gerados poderão ser utilizados pela equipe de desenvolvimento para validar se os requisitos identificados estão de acordo com as informações fornecidas pelos usuários ou especialistas do domínio, bem como para verificar se atende às suas expectativas em relação ao software;
e) gestão, uma vez que os artefatos serão úteis para auxiliar na definição da estrutura de armazenamento e compartilhamento dessas informações e das dependências entre os requisitos, auxiliando no processo de manutenção destes, bem como facilitando a sua rastreabilidade e recuperação quando necessário.
Conforme pode ser observado, foram identificadas possibilidades de utilização dos tipos de sistemas de organização do conhecimento durante as etapas do processo da Engenharia de Requisitos. Com base na análise apresentada é possível afirmar que a utilização dos SOCs pode contribuir com a identificação, documentação, validação, classificação e estruturação das informações que dão origem aos requisitos do software, auxiliando o processo como um todo.
Partindo do pressuposto que os SOCs analisados têm objetivos e estruturas específicas, é possível observar como cada um deles pode ser utilizado nas diferentes atividades da Engenharia de Requisitos. A escolha de qual SOC será implementado e em qual atividade, caberá à equipe de desenvolvimento envolvida no projeto. O que se procurou identificar com a análise apresentada foram os pontos de convergência entre os SOCs, especificamente as taxonomias, tesauros e ontologias, e a as atividades da Engenharia de Requisitos, mostrando em quais delas os SOCs analisados podem contribuir para o processo.
7 Considerações finais
O presente estudo procurou trazer à tona possibilidades de colaboração entre as áreas da Ciência da Informação e da Ciência da Computação, no que se relaciona à utilização dos sistemas de organização do conhecimento, com o fim de auxiliar o desenvolvimento das atividades pertencentes ao processo de Engenharia de Requisitos. Aumentando a qualidade dos requisitos identificados e, consequentemente, dos softwares desenvolvidos.
Conquanto se encontrem propostas na literatura com a finalidade de auxiliar a Engenharia de Requisitos no levantamento das informações para a construção de sistemas que sejam considerados úteis para os seus usuários, ainda é possível observar oportunidades de melhoria nesse processo. Nota-se que a maior parte dos estudos com tal objetivo é desenvolvida dentro da área da Ciência da Computação e não levam em conta conceitos que envolvem a natureza da informação que será transformada nos requisitos, o que é compreensível, uma vez que a informação no seu sentido mais original não é a essência da citada área.
Espera-se, com os resultados apresentados, auxiliar tanto a comunidade científica, que poderá utilizar os resultados das análises que foram apresentadas para o desenvolvimento de novas pesquisas contemplando a Ciência da Informação, a Engenharia de Requisitos e os sistemas de organização do conhecimento, como a indústria do desenvolvimento de software, que poderá contar com técnicas alternativas que poderão ser utilizadas por suas equipes na identificação dos requisitos durante o desenvolvimento de projetos de software.
Como trabalhos futuros, sugere-se a inserção de outros tipos de sistemas de organização do conhecimento à essa análise, bem como a proposição de modelos contendo diretrizes para a aplicação dos SOCs no contexto da Engenharia de Requisitos.
Gratidão
Esta pesquisa foi financiada com recursos da Fundação de Amparo à Pesquisa e Inovação do Estado de Santa Catarina (FAPESC) e Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (Capes).
Referências
ALMEIDA, M. B.; BAX, M. P. Uma visão geral sobre ontologias: pesquisa sobre definições, tipos, aplicações, métodos de avaliação e de construção. Ciência da Informação, Brasília, v. 26, n. 1, p. 39-45, 2003.
BOURQUE, P., FAIRLEY, R. E. Guide to the Software Engineering Body of Knowledge. [s.l.]: IEEE Computer Society, 2014.
CAMPOS, M. L. A.; GOMES, H. E. Taxonomia e classificação: a categorização como princípio. DataGramaZero, João Pessoa, v. 9, n. 4, p. 1-22, 2008.
CARLAN, E.; MEDEIROS, M. B. B. Sistemas de Organização do Conhecimento na visão da Ciência da Informação. Revista Ibero-Americana de Ciência da Informação, Brasília, v. 4, n. 2, p. 53–73, 2011.
CYSNEIROS, L. M.; LEITE, J. C. Definindo Requisitos Não Funcionais. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE, 11., 1997, Ceará. Anais [...]. Ceará: SBC, p. 49–64, 1997.
DAL FORNO, G. M.; MULLER, F. Fatores Críticos em Projetos de Desenvolvimento de Software. Revista Pretexto, Belo Horizonte, v. 18, n. 2, p. 100–115, 2017.
FURGERI, S. Representação de informação e conhecimento: estudo das diferentes abordagens entre a ciência da informação e a ciência da computação. 2006. Dissertação (Mestrado em Ciência da Informação) - Programa de Pós-Graduação em Ciência da Informação, Pontifícia Universidade Católica de Campinas, 2006.
GÖDERT, W.; HUBRICH, J.; NAGELSCHMIDT, M. Semantic Knowledge Representation for Information Retrieval. Berlin: De Gruyter Saur, 2014.
HASTIE, S.; WOJEWODA, S. Standish Group 2015 Chaos Report. InfoQ, [s.l.], p. 1–9, 2015.
HJORLAND, B. Concept theory. Journal of the American Society for Information Science and Technology, [s.l.], v. 60, n. 8, p. 1519-1536, 2009.
HODGE, G. Systems of knowledge organization for digital libraries: beyond traditional authorities files. Washington: The Council on Library and Information Resources, 2000.
KOTONYA, G.; SOMMERVILLE, I. Requirements engineering with viewpoints. Software Engineering Journal, [s.l.], p. 5–18, 1996.
KILOV, H.; SACK, I. Mechanisms for communication between business and IT experts. Computer Standards & Interfaces, [s.l.], v. 31, n. 1, p. 98–109, 2009.
KRUCHTEN, P. The Rational Unified Process: An Introduction Boston. 3 Ed. Boston: Addison-Wesley Professional, 2003.
LIMA, G. Â.; MACULAN, B. C. M. S. Estudo comparativo das estruturas semânticas em diferentes sistemas de organização do conhecimento. Ciência da Informação, Brasília, v. 46, n. 1, p. 60–72, 2017.
LUCIO, R. H.; SAMPIERI, C. F.; COLLADO, M. P. B. Métodos de Pesquisa. 5 ed. Porto Alegre: Penso, 2013.
MOREIRA, A.; ALVARENGA, L.; OLIVEIRA, A. P. O nível do conhecimento e os instrumentos de representação: tesauros e ontologias. DataGramaZero, João Pessoa, v. 5, n. 6, n.p, 2004.
POHL, K. The three dimensions of requirements engineering: a framework and its applications. Information Systems, [s.l.], v. 19, n. 3, p. 243–258, 1994.
PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 6th. Porto Alegre: Bookman, 2009.
ROBREDO, J.; BRÄSCHER, M. (orgs.). Passeios pelo bosque da informação: estudos sobre a representação e organização da informação e do conhecimento. Brasília: IBICT, 2010.
SOERGEL, D. The rise of ontologies or the reinvention of classification. Journal of the American Society for Information Science, [s.l.], v. 50, n. 12, p. 1119-1120, 1999.
SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.
SOUZA, R. R.; ALVARENGA, L. A Web Semântica e suas contribuições para a ciência da informação. Ciência da Informação, Brasília, v. 33, n. 1, p. 132-141, 2004.
SOUZA, R.T.B.; ARAÚJO Jr. R. H. A classificação e a taxonomia como instrumentos efetivos para a recuperação da informação arquivística. Ciência da Informação, Brasília, v. 42, n. 1, p. 131-144, 2013.
STOCK, W. Concepts and semantic relations in information science. Journal of the American Society for Information Science and Technology, [s.l.], v. 61, n. 10, p. 1951–1969, 2010.
VITAL, L. P.; CAFÉ, L. Ontologias e taxonomias: diferenças. Perspectivas em Ciência da Informação, Belo Horizonte, v.16, n.2, p.115-130, 2011.
CURRÁS, E. Tesauros: linguagens terminológicas. Brasília: IBICT, 1995
Notas
Autor notes
priscila.bfagundes@gmail.com
gislaineparraf@gmail.com
camila.c.m.b@ufsc.br
camila.c.m.b@ufsc.br
douglas.macedo@ufsc.br