Prévia do material em texto
ENGENHARIA DO CONHECIMENTO OBJETIVOS DE APRENDIZAGEM > Identificar problemas especializados na engenharia do conhecimento; > Descrever o processo criativo que envolve área de especialização e enge- nharia do conhecimento para construção de soluções inteligentes; > Validar soluções especialistas na engenharia do conhecimento. Introdução O processo de desenvolvimento de sistemas inteligentes baseados em conhe- cimento fez surgir uma nova área da ciência da computação para definir as me- todologias e ferramentas a serem utilizadas pelo engenheiro do conhecimento durante todo o processo de construção: a engenharia do conhecimento. O processo de desenvolvimento de um sistema baseado em conhecimento (SBC) possui etapas com características específicas, cada uma composta de atividades que podem ser reformuladas e refinadas durante o desenvolvimento para garantir a qualidade e a eficiência do sistema. Neste capítulo, serão apresentados os problemas especializados na engenha- ria do conhecimento, o processo criativo que envolve a área de especialização e engenharia do conhecimento para construção de soluções inteligentes e as soluções especialistas na engenharia do conhecimento. Processo da engenharia do conhecimento Cynthia da Silva Barbosa Problemas especializados na engenharia do conhecimento A engenharia do conhecimento estabelece ferramentas e metodologias re- lacionadas aos objetivos da gestão do conhecimento, para identificar, criar, analisar e implementar soluções para problemas em diversas áreas das organizações, gerando valor e auxiliando na tomada de decisões, além de garantir produtividade e competitividade no mercado. Inicialmente, as metodologias da engenharia do conhecimento tinham o foco na transferência do conhecimento entre as pessoas especialistas e os sistemas, que, por sua vez, seguiam as regras com base no conhecimento dos especialistas (ABEL; FIORINI, 2013). Com isso, os sistemas ficavam limi- tados a esses conhecimentos, e sua manutenção poderia ser muito difícil e trabalhosa. Para Rezende (2003), como os SBCs precisam das pessoas especialistas, este desenvolvimento poderia ser comprometido com a troca de funcioná- rios e aposentadorias. Por isso, desenvolver sistemas inteligentes garante a preservação e a padronização dos processos de tomada de decisão da organização, além da agilidade e competitividade que fornecem para as demandas de mercado. Os SBCs deram resultados, mas houve muitas falhas, o que levou essa situ- ação a ser comparada com a crise do software ocorrida no final dos anos 1970, originando a engenharia de software, criada para auxiliar nas metodologias e técnicas de desenvolvimento de software. Da mesma forma, a engenharia do conhecimento surgiu para auxiliar a construção de um SBC por meio de processos de engenharias com metodologias e técnicas específicas (STUDER; BENJAMINS; FENSEL, 1998). A crise do software ocorreu nos anos 1970 em razão das dificuldades enfrentadas durante o desenvolvimento de software por causa da grande demanda por eles. Alguns dos principais problemas encontrados nos projetos de desenvolvimento de software foram: � prazos de desenvolvimento e elaboração ultrapassados; � custos elevados do projeto; � as pessoas envolvidas no projeto não davam conta da demanda; � os requisitos levantados com os usuários não eram desenvolvidos; � dificuldade em fazer manutenção nos software desenvolvidos. Processo da engenharia do conhecimento2 O processo de desenvolvimento de um SBC é realizado a partir de uma atividade de modelagem, ou seja, desenvolve-se um modelo computacional com o objetivo de resolver os mesmos problemas que um especialista em um determinado assunto resolveria, disponibilizando soluções semelhantes às soluções dos especialistas. No entanto, por ser um modelo, reflete uma aproximação da realidade, além de estar diretamente relacionado com as interpretações pessoais do engenheiro do conhecimento, o que leva a revisões do modelo em todas as fases de modelagem do processo de desenvolvimento do SBC (STUDER; BENJAMINS; FENSEL, 1998). A etapa de aquisição, ou elicitação, do conhecimento é o primeiro passo para iniciar o desenvolvimento de um SBC; é um processo de modelagem de problemas, estratégia de resoluções e soluções referentes às atividades de um específico domínio que formam o cenário que é interpretado pelo engenheiro do conhecimento. Nessa etapa, o engenheiro do conhecimento precisa compreender a fundo o domínio para que a modelagem seja realizada de forma similar ao raciocínio de um especialista (SHAW; GAINES, 1996). O processo de aquisição do conhecimento pode ser difícil, uma vez que os especialistas possuem a dificuldade de expressar o conhecimento, o que impacta diretamente na compreensão do domínio do sistema. Além disso, os especialistas podem deixar passar pontos importantes durante a formulação do raciocínio, fazendo o conhecimento ser incompleto, incorreto e até mesmo inconsistente. O processo de aquisição de conhecimento pode comprometer até 80% do esforço para o desenvolvimento do SBC. O processo de aquisição do conhecimento é composto por fases que sempre estão se reformulando e refinando o modelo computacional desen- volvido pelo engenheiro de conhecimento e pelo especialista. O refinamento verifica internamento se o sistema está de acordo com os problemas reais tratados. A reformulação ajusta o conhecimento para estar de acordo com o planejado. Já o reprojeto refaz o projeto elaborado de acordo com as de- finições do especialista. Fase de identificação Na fase de identificação são definidas as principais características do pro- blema a ser tratado, como identificar o tipo de conhecimento a ser tratado, o objetivo e as metas para a construção do SBC, a equipe que participará do processo de construção, os recursos computacionais, o tempo que será gasto em cada etapa do processo, as tecnologias a serem utilizadas, a viabilidade Processo da engenharia do conhecimento 3 econômica e a complexidade das atividades a serem desenvolvidas. Segundo Rezende (2003), a fase de identificação é semelhante à análise de requisitos da engenharia de software, uma vez que o engenheiro do conhecimento procura identificar o tipo de problema a ser resolvido, os dados que o sistema manipulará, os critérios de classificação dos resultados que serão adotados pelo sistema e como o problema será resolvido. Nesta fase, o engenheiro do conhecimento realiza entrevistas com os especialistas para fazer o levantamento das características do domínio, ou seja, para definir quais métodos serão resolvidos pelo SBC, para compreender o escopo e a complexidade do domínio e para elaborar o modelo de interação usuário-sistema. As perguntas devem ser focadas para a aquisição do conhecimento, caso contrário, o especialista pode se perder nas respostas e não obter realmente o que é esperado. Os principais desafios da fase de identificação são listados a seguir (BIT- TENCOURT, 2006). � Absorção do conhecimento que está na mente do especialista, inclusive situações específicas que estão em sua memória. � A verbalização do conhecimento tácito, ou seja, o especialista sabe como solucionar um problema, porém, ao ser questionado sobre a solução, não sabe responder como se deu a resolução. � Problemas de comunicação entre o engenheiro do conhecimento e o especialista, uma vez que o engenheiro conhece apenas as técnicas de representação do conhecimento e o especialista conhece a fundo o domínio do problema. � As informações não são totalmente disponibilizadas pelos especialistas, uma vez que ele pode se sentir observado durante o processo e não disponibilizar a informação. A Figura 1 apresenta o percentual de contribuição do conhecimento pelo engenheiro do conhecimento e pelo especialista em cada fase da aquisição do conhecimento. Processo da engenharia do conhecimento4 Figura 1. Conhecimentos do engenheiro do conhecimento versusconhecimentos do especialista. As fases de conceituação, formalização, implementação e testes compõem o processo de construção do SBC e serão descritas na próxima seção. A fase de manutenção será descrita na última seção. Processo criativo para construção de soluções inteligentes Para que as empresas sejam competitivas, é preciso que ofereçam soluções que acompanhem as demandas do mercado, pois são necessárias informações precisas e rápidas. Por isso, os SBCs são eficientes e auxiliam na tomada de decisão em diversas áreas do conhecimento. Ao realizar a construção de SBCs, é preciso utilizar ferramentas e métodos adequados para elicitação, modelagem e formalização do conhecimento disponível (ABEL; FIORINI, 2013). Segundo Rezende (2003), o processo de de- senvolvimento de um SBC depende dos recursos disponíveis para o projeto e de como esses recursos serão organizados e gerenciados: � gerenciamento de atividades: etapa que realiza o planejamento, o escalonamento, o registro e a análise do projeto; Processo da engenharia do conhecimento 5 � gerenciamento de configuração: realiza o gerenciamento do produto e de mudanças; � gerenciamento de recursos: realiza a previsão, a aquisição e a otimi- zação dos recursos que serão utilizados no projeto. Segundo Mendes (1997), os sistemas especialistas devem ser projetados de forma cuidadosa para que consigam analisar novas situações, compreender novas regras, excluir regras redundantes e completar as regras conflitantes para que a base do conhecimento seja constantemente apurada. Fase de conceituação Na fase de conceituação, são estabelecidas as definições, os conceitos (classes de objetos na área do conhecimento) e os mecanismos de controle como causa-efeito, espaço-tempo e parte-todo para resolver o problema, com base em revisões bibliográficas e entrevistas com os especialistas. A fase de conceituação é importante para a representação do conhecimento, uma vez que limita o que é ou não importante de ser representado. Algumas atri- buições que devem ser feitas pelo engenheiro do conhecimento são listadas a seguir (REZENDE, 2003). � Realizar entrevistas estruturadas guiadas pelo levantamento de dados coletados na fase anterior. � Coletar casos para que sejam modelados e testados. � Observar o especialista durante a realização de suas atividades. Uma entrevista estruturada refere-se a uma entrevista formal ba- seada em perguntas que direcionam o processo da aquisição do conhecimento e facilitam a compreensão e a análise do problema. Com os dados das entrevistas em mãos, o engenheiro do conhecimento inicia a análise do material, idealizando os dados de entrada e saída, como texto, imagens e gráficos solicitados; o modelo da tarefa — classificação, configuração e interpretação; e os raciocínios predominantes, como o reco- nhecimento de padrões. As principais dificuldades encontradas nesta etapa são (REZENDE, 2003): Processo da engenharia do conhecimento6 � definição da terminologia a ser utilizada para nomear os conceitos e suas relações a fim de evitar a ambiguidade; � ausência de ferramentas para verificar se a modelagem foi realizada de forma completa e consistente; � atrasos na identificação de erros de conceituação, pela dificuldade da definição dos conceitos e suas relações, gerando um grande esforço e impactando na entrega do SBC. Fase de formalização Na fase de formalização, o engenheiro do conhecimento baseia-se na mo- delagem computacional do problema, se atentando aos principais conceitos e a subproblemas utilizando ferramentas específicas para esses casos. Em seguida, obtém-se a descrição do sistema, que será validada pelo especialista. Nesta fase, a expressão e a comunicação devem ser claras e diretas, não aceitando diferentes interpretações para um mesmo assunto, além de exigir do engenheiro do conhecimento habilidade para extrair o conhecimento de forma precisa, completa e consistente. Algumas ações que devem ser feitas pelo engenheiro do conhecimento (REZENDE, 2003): � escolher o modelo de tarefa a ser adaptado; � escolher a linguagem de representação para modelar o sistema; � definir o espaço de busca do problema; � definir o espaço de soluções do problema; � definir os métodos de busca a serem utilizados; � identificar as limitações do SBC. Uma linguagem de representação do conhecimento é uma lingua- gem formal que é processada por um computador. Um exemplo é o paradigma de frames ou quadros, que é similar aos paradigmas da orientação a objetos. Fase de implementação Na fase de implementação, o SBC é codificado e são estabelecidos os meca- nismos de controle e a linguagem de representação para resolver o problema. Processo da engenharia do conhecimento 7 Uma das dificuldades desta fase é a falta de um mapeamento para saber a linguagem a ser usada em um determinado problema. Além disso, pode ocorrer uma falha de comunicação entre programadores e o engenheiro do conhecimento, em razão da dificuldade de compreensão do material elabo- rado pelo último. O especialista deve validar o protótipo obtido nesta fase e avaliar se será necessário modificar alguns conhecimentos desenvolvidos (REZENDE, 2003). Considere um projeto de desenvolvimento de um sistema para auto- matizar o atendimento ao cliente de uma rede varejista. O engenheiro do conhecimento fez o levantamento das informações necessárias para a criação do sistema junto com o especialista da área e realizou a modelagem do sistema. Como ele possui um conhecimento a fundo sobre todo o processo, ao realizar o repasse das informações levantadas, as forneceu de acordo com sua expe- riência. Por sua vez, os desenvolvedores do sistema, que conhecem somente a parte técnica, ao receberem as orientações do engenheiro do conhecimento, não conseguiram representar o conhecimento modelado e o transferir para a linguagem de programação. Este é um exemplo de falha na comunicação entre engenheiro do conhecimento e desenvolvedores do sistema, ou seja, um fala e o outro não compreende. Para desenvolver sistemas especialistas, podem ser utilizadas diver- sas linguagens de programação como Java, PHP, C/ C++, C#, Python. No entanto, a escolha correta da linguagem de programação evitará retrabalho e prejuízos durante a implementação do SBC. Validação de soluções especialistas na engenharia do conhecimento A atividade de validação de soluções especialistas é importante para identifi- car se o que foi desenvolvido nas etapas anteriores da aquisição do conheci- mento está de acordo com o planejado, e a atividade de verificação avalia se existem erros de lógica interna, permitindo que o sistema seja aperfeiçoado. Tanto a validação como a verificação avaliam a qualidade do SBC. Processo da engenharia do conhecimento8 Ayel e Laurent (1991) definem verificação como a garantia de que o sis- tema a ser desenvolvido está correto, garantindo que o que foi planejado seja executado. A validação é definida como a garantia de que o sistema desenvolvido é realmente o que se esperava durante a entrega. Nos SBCs, a metodologia de validação e verificação (V&V) é utilizada para auxiliar os engenheiros do conhecimento no processo de desenvolvimento do sistema. Segundo Pereira (1997), o processo V&V pode ser aplicado nas etapas de requisitos, na concepção, na verificação dos códigos, nos testes unitários, integração de sistema e de instalação, no funcionamento e na manutenção do SBC. Há algumas diferenças entre o processo V&V e o processo de sistemas convencionais, como listado a seguir. � Os sistemas especialistas não são de natureza totalmente objetiva, ou seja, o resultado de problemas representados é baseado em pareceres subjetivos, sendo considerada a melhor solução para o problema. � Os sistemas especialistas toleram um pequeno percentual de incerte- zas, uma vez que os dados não são sempre exatos e precisos. � A eficácia dos sistemas especialistas é avaliada pelo especialista que decidiráse o sistema está de acordo com o especificado. As etapas de requisitos, concepção, verificação dos códigos, testes unitá- rios, integração, de sistema e de instalação e de funcionamento e manutenção do SBC serão descritas a seguir. V&V de requisitos do SBC Nesta etapa de validação e verificação são avaliados: � a abrangência do conhecimento e a complexidade do domínio que foi projetado para o SBC; � os ajustes realizados nos requisitos de acordo com a solicitação dos especialistas em relação ao prazo do projeto inicial; � se as ferramentas utilizadas no projeto, como linguagens e o ambiente de desenvolvimento, suportam a implementação do SBC em relação a complexidade do domínio; � as estratégias para a atualização do conhecimento. Processo da engenharia do conhecimento 9 V&V de conceituação do SBC Nesta etapa de validação e verificação, avalia-se o modelo do domínio para garantir sua completude e sua consistência e para conferir se está contem- plando todos os problemas a serem tratados, bem como se está de acordo com o conhecimento a ser utilizado. Verificação do código do SBC Nesta etapa, é importante avaliar se a lógica desenvolvida está de acordo com o conhecimento fornecido pelo engenheiro do conhecimento e se a base do conhecimento está de acordo com o que foi desenvolvido. Testes do SBC A fase de teste valida se tudo o que foi projetado nas fases anteriores foi desenvolvido corretamente. São elaborados casos de teste e é validada a performance do SBC com o especialista, junto como o engenheiro do conheci- mento. No entanto, o SBC aceita, em pequenas escalas, respostas incorretas, gerando uma dificuldade na validação, afinal, qual o limite de erros aceitável? Em diagnósticos médicos, pode ocorrer essa variação, mas em sistemas que requerem respostas rígidas, não. Para isso, o sistema é testado até que os resultados sejam confiáveis; caso contrário, o sistema será modificado para atender às especificações (REZENDE, 2003). Os testes avaliados são listados a seguir (PEREIRA, 1997). � Teste unitário: ■ valida a base do conhecimento em relação ao conhecimento do domínio; ■ realiza testes unitários em todos os métodos do conhecimento; ■ define as regras que o sistema deve desempenhar e o que se espera em seus resultados. � Teste de integração: ■ define os testes que farão a avaliação do conhecimento represen- tado pelo sistema e dos métodos diretamente relacionados a este conhecimento de forma global e integrada. � Teste de sistema: ■ define os métodos a serem utilizados de acordo com a visão dos usuários do sistema. Processo da engenharia do conhecimento10 � Teste de instalação: ■ verifica se a informação disponibilizada pelo SBC de fontes externas chega dentro do padrão aceitável. V&V de manutenção e funcionamento do SBC A manutenção do SBC é um tópico necessário em razão de novas demandas a serem implementadas ou melhorias das funcionalidades que já estão em funcionamento. Os ajustes fazem parte do processo de identificação e aqui- sição do conhecimento, uma vez que novas demandas ou até mesmo corre- ções de bugs impactam em toda a forma como um sistema dessa natureza é construído, e por isso deve ser respeitado todo o processo de engenharia do conhecimento. Um dos desafios da fase de manutenção é justamente a perda de flexibi- lidade ao representar o conhecimento à medida que as bases crescem, uma vez que uma simples alteração em uma parte dos sistemas pode requerer a alteração de outras partes, sendo necessário verificar a consistência dessas modificações. Outro desafio é o fornecimento de ferramentas e interfaces bem projetadas para auxiliar os usuários do sistema e reduzir sua comple- xidade (REZENDE, 2003). Nesta etapa de validação e verificação são feitas (PEREIRA, 1997): � a atualização do conhecimento, incluindo o modelo de domínio; � a definição das regras para que a base do conhecimento seja atualizada. Como os SBCs não têm a sua base em algoritmos, à medida que um novo conhecimento é obtido e é preciso alterar o conhecimento antigo, a performance do sistema melhora a cada manutenção realizada. Como visto nas seções anteriores, a engenharia do conhecimento estabe- lece ferramentas e métodos para criar sistemas capazes de resolver problemas específicos utilizando como base o conhecimento. Além disso, o processo de desenvolvimento do SBC tem origem em um modelo computacional gerado na fase de aquisição do conhecimento. O processo de aquisição do conheci- mento é composto por fases que sempre estão se reformulando e refinando o modelo computacional desenvolvido pelo engenheiro de conhecimento e Processo da engenharia do conhecimento 11 pelo especialista. Os SBCs utilizam a verificação e a validação para avaliar sua qualidade e seu desempenho, além de verificar se o conhecimento que foi projetado está sendo utilizado. Referências ABEL, M.; FIORINI, S. R. Uma revisão da engenharia do conhecimento: evolução, para- digmas e aplicações. International Journal of Knowledge Engineering and Management, Florianópolis, v. 2, n. 2, p. 1–35, 2013. Disponível em: https://www.researchgate.net/ publication/264156426_Uma_revisao_da_Engenharia_do_Conhecimento_Evolucao_ Paradigmas_e_Aplicacoes. Acesso em: 1 fev. 2021. AYEL, M.; LAURENT, J. P. Foreword: validation, verification and test of knowledge-based systems. New York: John Wiley e Sons, 1991. BITTENCOURT, G. Inteligência artificial: ferramentas e teorias. Florianópolis: UFSC, 2006. MENDES, R. D. Inteligência artificial: sistemas especialistas no gerenciamento da informação. Ciência da Informação, Brasília, v. 26, n. 1, p. 39–45, 1997. Disponível em: http://revista.ibict.br/ciinf/article/view/751. Acesso em: 1 fev. 2021. PEREIRA, A. J. S. Verificação e validação de sistemas baseados em conhecimento: VERITAS, uma ferramenta de verificação. 1997. Dissertação (Mestrado em Engenharia Eletrotécnica e de Computadores) – Faculdade de Engenharia, Universidade de Porto, Porto, 1997. REZENDE, S. O. Sistemas inteligentes: fundamentos e aplicações. Barueri: Manole, 2003. SHAW, M. L. G.; GAINES, B. R. Requirements acquisition. Software Engineering Journal, [s. l.], v. 11, n. 3, p. 149–165, 1996. STUDER, R.; BENJAMINS, V. R.; FENSEL, D. Knowledge enginnering: principles e methods. Data & Knowledge Engineering, [s. l.], v. 25, n. 1–2, p. 161–197, 1998. Os links para sites da web fornecidos neste capítulo foram todos testados, e seu funcionamento foi comprovado no momento da publicação do material. No entanto, a rede é extremamente dinâmica; suas páginas estão constantemente mudando de local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade sobre qualidade, precisão ou integralidade das informações referidas em tais links. Processo da engenharia do conhecimento12