Uma Ferramenta para Gerência do Conhecimento no Ambiente SPEAKER Ricardo de Holanda Busquet Projeto de Graduação apresentado ao Curso de Engenharia de Computação e Informação da Escola Politécnica da Universidade Federal do Rio de Janeiro como parte dos requisitos necessários para a obtenção do grau de Engenheiro de Computação e Informação. Orientadoras: Ana Regina Cavalcanti da Rocha Natália Chaves Lessa Schots Rio de Janeiro Março de 2015 Uma Ferramenta para Gerência do Conhecimento no Ambiente SPEAKER Ricardo de Holanda Busquet PROJETO SUBMETIDO AO CORPO DOCENTE DO CURSO DE ENGENHARIA DE COMPUTAÇÃO E INFORMAÇÃO DA ESCOLA POLITÉCNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO DE COMPUTAÇÃO E INFORMAÇÃO. Examinadores: __________________________________________ Prof. Ana Regina Cavalcanti da Rocha, D. Sc. __________________________________________ Natália Chaves Lessa Schots, M. Sc. __________________________________________ Prof. Gleison dos Santos Souza, D.Sc. __________________________________________ Prof. Geraldo Bonorino Xexéo, D.Sc. RIO DE JANEIRO, RJ – BRASIL MARÇO DE 2015 Busquet, Ricardo de Holanda Uma Ferramenta para Gerência do Conhecimento no Ambiente SPEAKER/Ricardo de Holanda Busquet – Rio de Janeiro: UFRJ/Escola Politécnica – COPPE, 2015 XI, 39: il.; 29,7cm Orientadoras: Ana Regina Cavalcanti da Rocha Natália Chaves Lessa Schots Projeto (graduação) – UFRJ/Escola Politécnica/Curso de Engenharia de Computação e Informação, 2015 Referências Bibliográficas – p. 34-36 1. Gerência do Conhecimento I. da Rocha, Ana Regina Cavalcanti et al. II. Universidade Federal do Rio de Janeiro, Escola Politécnica, Curso de Engenharia de Computação e Informação. III. Título iii A minha família de hoje. E minha família no futuro. iv Agradecimentos Agradeço primeiramente a Deus acima de tudo. Agradeço a meus pais, Almir Ricardo e Izete, e minha irmã Ingrid, pelo apoio e pela confiança, por sempre me incentivarem em tudo. Agradeço a Marry, pela paciência, pelo suporte. Agradeço às professoras Ana Regina e Natália, minhas orientadoras, pelos ensinamentos desde as aulas até nesse momento de projeto. Agradeço aos professores Geraldo Xexéo e Gleison Santos, por aceitarem participar da banca deste projeto de graduação. Meus agradecimentos a todos. v Resumo do Projeto de Graduação apresentado à Escola Politécnica/COPPE/UFRJ como parte dos requisitos necessários para a obtenção do grau de Engenheiro de Computação e Informação. Uma Ferramenta para Gerência do Conhecimento no Ambiente SPEAKER Ricardo de Holanda Busquet Março/2015 Orientadoras: Ana Regina Cavalcanti da Rocha Natália Chaves Lessa Schots Curso: Engenharia de Computação e Informação Nos dias atuais, grandes organizações vêm percebendo que um grande fator para manter a competitividade é o tratamento do conhecimento organizacional como um ativo da organização. A Gerência do Conhecimento ajuda nesse tratamento, definindo processos para que o conhecimento leve a organização ao crescimento. Neste contexto, a utilização de tecnologia para apoiar esses processos é uma boa opção, e alguns sistemas vêm sendo desenvolvidos para tarefas que demandam a utilização do conhecimento. O ambiente SPEAKER é um ambiente baseado em conhecimento para auxiliar a análise de desempenho de processos de software. Este trabalho descreve a ferramenta desenvolvida no contexto do SPEAKER para disponibilização do conhecimento necessário para execução da análise de desempenho. Palavras chave: Conhecimento, Gerência do Conhecimento, Processo de Software, Análise de Desempenho vi Abstract of the Undergraduate Project presented to Poli/COPPE/UFRJ as a partial fulfillment of the requirements for the degree of Computer and Information Engineer. A Knowledge Management Tool for SPEAKER Ricardo de Holanda Busquet March/2015 Adivisors: Ana Regina Cavalcanti da Rocha Natália Chaves Lessa Schots Course: Computer and Information Engineering Nowadays, large organizations are realizing that a big factor to remain competitive is the treatment of organizational knowledge as an organizational asset. Knowledge Management helps in such treatment, defining processes for knowledge to lead the organization growth. In this context, the use of technology is a good option, and some systems have been developed for tasks that require the use of knowledge. The SPEAKER is a knowledge based environment to assist in performance analysis in software process. This project describes a tool developed in the context of SPEAKER to provide the knowledge required to execute the performance analysis. Key Words: Knowledge, Knowledge Management, Software Process, Performance Analysis vii Sumário Lista de Figuras .................................................................................................................x Lista de tabelas ................................................................................................................ xi Capítulo 1 Introdução ....................................................................................................1 Capítulo 2 Gerência do Conhecimento .........................................................................3 2.1 Conhecimento .................................................................................................... 3 2.2 Conversão do Conhecimento ............................................................................. 4 2.3 Gerência do Conhecimento ................................................................................ 5 2.4 Processos para gerência do conhecimento ......................................................... 6 2.5 Técnicas para a Gestão do Conhecimento ......................................................... 8 Capítulo 3 Representação e Apresentação do Conhecimento .....................................11 3.1 Representação do conhecimento ...................................................................... 11 3.2 Apresentação do Conhecimento ...................................................................... 13 3.3 Uma forma de apresentação: Mapas mentais................................................... 14 Capítulo 4 4.1 Ferramenta para Gerência do Conhecimento ............................................16 Contexto ........................................................................................................... 16 4.1.1 A2M – Ambiente de Alta Maturidade ...................................................... 16 4.1.2 Ambiente SPEAKER................................................................................ 17 4.2 Requisitos e casos de uso ................................................................................. 18 4.3 Tecnologias utilizadas...................................................................................... 19 4.3.1 D3.js.......................................................................................................... 19 4.4 Estrutura ........................................................................................................... 21 4.5 Funcionalidades ............................................................................................... 21 4.5.1 Cadastro do Conhecimento....................................................................... 21 4.5.2 Visualização do Conhecimento ................................................................ 23 4.6 Exemplo de uso ................................................................................................ 24 viii Capítulo 5 Conclusão e Trabalhos Futuros .................................................................31 5.1 Conclusões ....................................................................................................... 31 5.2 Limitações ........................................................................................................ 31 5.3 Trabalhos futuros ............................................................................................. 32 Referências Bibliográficas...............................................................................................34 Apêndice ..........................................................................................................................37 A. Casos de Uso ...................................................................................................... 37 ix Lista de Figuras Figura 2.1 – Espiral do Conhecimento, adaptado de [10] ............................................... 4 Figura 3.1 – Exemplo de rede-semântica ...................................................................... 12 Figura 3.2 – Modelo de Visualização do Conhecimento de BURKHARD .................. 13 Figura 4.1 – Exemplo de página utilizando D3.js ......................................................... 20 Figura 4.2 – Resultado da página após execução do D3.js ........................................... 20 Figura 4.3 – Exemplo de mapa mental .......................................................................... 23 Figura 4.4 – Trecho da tela onde o conhecimento é listado .......................................... 24 Figura 4.5 – Tela inicial do A2M .................................................................................. 25 Figura 4.6 – Tela da ferramenta, com as funcionalidades ............................................. 25 Figura 4.7 – Lista de conhecimentos cadastrados ......................................................... 26 Figura 4.8 – Tela de cadastro de conhecimento com texto ........................................... 26 Figura 4.9 – Tela de cadastro de conhecimento com mapa mental ............................... 26 Figura 4.10 – Conceito central ...................................................................................... 27 Figura 4.11 – Mapa mental com nó central e um nó filho ............................................ 27 Figura 4.12 – Tela para registro de detalhes sobre nó no mapa mental ........................ 28 Figura 4.13 – Mapa mental completo ............................................................................ 28 Figura 4.14 – Tela inicial das execuções de análise de desempenho ............................ 29 Figura 4.15 – Execução da análise de desempenho ...................................................... 29 Figura 4.16 – Tela de exibição de etapa do processo de Análise de Desempenho ....... 29 Figura 4.17 – Tela de exibição de atividade do processo de Análise de Desempenho . 30 Figura 4.18 – Tela de exibição de tarefa do processo de Análise de Desempenho ....... 30 x Lista de tabelas Tabela 2.1. Comparação entre os processos de gerência do conhecimento .................... 8 Tabela A.1 – Fluxo básico do caso de uso 1.................................................................. 37 Tabela A.2 – Fluxo básico do caso de uso 2.................................................................. 38 Tabela A.3 – Fluxo básico do caso de uso 3.................................................................. 38 xi Capítulo 1 Introdução Muitos fatores influenciam na competitividade de uma organização. Recursos humanos, capital, relevância, entre outros. Cada dia mais organizações estão considerando como um importante fator para essa competitividade a identificação do conhecimento possuído pela organização como um ativo que possui valor e deve ser gerenciado. Para isso, se faz necessário buscar formas de gerenciar esse conhecimento organizacional, identificando o que existe de conhecimento acumulado, onde ainda pode ser desenvolvido e como pode ser compartilhado e utilizado para que traga retornos a organização e também a possibilidade de multiplicação desse recurso. A Gerência do Conhecimento tem como um dos objetivos tratar o conhecimento como um recurso da organização, não apenas dos seus membros. Uma etapa importante do processo de Gerência do Conhecimento é quando o conhecimento dos indivíduos, gerados a partir de experiências, convicções pessoais e formação, precisa ser passado para outros indivíduos, através de formatações desse conhecimento em representações visuais. Essas representações precisam codificar o conhecimento pessoal de forma que uma outra pessoa possa entender e absorver aquele conhecimento. Esse é um processo complexo porque formalizar o conhecimento das pessoas não é trivial e esse processo demanda a instalação de uma cultura de compartilhamento do conhecimento e aprendizagem organizacional. Neste contexto, atividades que demandam muito conhecimento e experiência pessoal são difíceis de serem transmitidas. Uma atividade deste tipo é a realização da análise de desempenho de processos, requerida nos níveis mais altos de modelos de maturidade, tais como o MR-MPS [1] e o CMMI-DEV [2]. Verifica-se que uma das principais dificuldades para a execução da análise de desempenho de processos nas organizações de desenvolvimento de software é a falta de conhecimento e experiência nesta área [3] [4]. A fim de auxiliar as organizações de software no aprendizado e uso das técnicas da análise de desempenho de processos, um sistema baseado em conhecimento, denominado SPEAKER (Software Process pErformance Analysis Knowledge-based 1 EnviRonment), está sendo desenvolvido pelo Grupo de Qualidade da COPPE/UFRJ [4] [5] [6]. O objetivo deste projeto final é desenvolver uma ferramenta no contexto do ambiente SPEAKER que apoie a gerência do conhecimento a ser provido sobre análise de desempenho de processos no decorrer da execução das atividades de análise de desempenho. A ferramenta desenvolvida visa cadastrar, manter e disponibilizar o corpo de conhecimento sobre análise de desempenho de processos. Este texto se divide em 4 capítulos além desta introdução. No segundo capítulo, será apresentada uma revisão da literatura sobre conceitos relacionados à Gerência do Conhecimento. Neste capítulo, serão apresentadas definições de conhecimento, a importância da Gerência do Conhecimento nas organizações, definições de processos para realizar essa gerência, assim como técnicas para apoiar esses processos. O terceiro capítulo aborda técnicas de representação e apresentação do conhecimento. Nele serão apresentados alguns estudos sobre como o conhecimento pode ser formalizado para ser utilizado no processo de compartilhamento do conhecimento na organização, assim como a definição mais detalhada de uma dessas formas de apresentação, mapas mentais, uma técnica presente na ferramenta proposta neste trabalho. No quarto capítulo, a ferramenta proposta será apresentada, as tecnologias utilizadas, detalhes da implementação e que processos essa ferramenta busca apoiar, além de um exemplo de uso desta ferramenta, apresentando as funcionalidades desenvolvidas. Por fim, o quinto capítulo apresenta as conclusões obtidas com esse trabalho, como também a perspectiva para trabalhos futuros para evolução da ferramenta proposta, visando uma melhor capacidade e efetividade na disponibilização do conhecimento. 2 Capítulo 2 Gerência do Conhecimento Nos dias atuais, as organizações estão vivendo grandes desafios quanto à gerência do conhecimento pertencente aos seus integrantes. Entre estes desafios, podemos citar a necessidade de corte de custos, a alta rotatividade de empregos e o alto crescimento a nível geográfico das organizações, causas que muito provavelmente levam a dificuldade de acesso ou a perda de quantidades críticas de conhecimento [7]. Tendo em vista esses desafios, se torna necessário um investimento em técnicas de gerência do conhecimento por parte dessas organizações, a fim de organizar e armazenar o conhecimento como um ativo da organização e não somente dos indivíduos. 2.1 Conhecimento Antes de tratar sobre a gerência do conhecimento, é necessário definir o que é conhecimento. A definição de conhecimento é um tema bastante discutido, sendo possível encontrar diversas definições, a partir de diversos pontos de vista. De uma maneira simples porém pouco específica, conhecimento é aquilo que se sabe sobre algo ou alguém. A definição clássica de conhecimento vem de Platão, quando diz que conhecimento é uma “crença verdadeira e justificada”. No dicionário [8], conhecimento é definido por meio dos termos como informação, experiência, ideia, instrução, saber, entre outros. Outra definição de conhecimento é dada a partir da definição de dados e informação, devido à relação entre essas definições [9]. Um número ou um determinado fato isolado, sem uma organização ou interpretação e significado aparente, pode ser considerado como um dado. Informação é um conjunto de dados contextualizados e organizados; são dados com relevância e propósito. A informação emerge da interpretação dos dados. Evoluindo e combinando esses conceitos, conhecimento pode ser definido como a associação entre dados, informações, experiência e interpretação individual, visando o aumento da capacidade de uma tomada de decisão mais efetiva. 3 O conhecimento pode ser categorizado em duas formas: conhecimento tácito e conhecimento explícito. NONAKA e TAKEUSHI [10] propõem a definição de conhecimento tácito como todo o conhecimento presente na mente das pessoas, na forma como estas realizam e participam dos processos das organizações, consistindo suas habilidades, modelos mentais, crenças e perspectivas e, por isso, sua formalização e comunicação é difícil e complexa. Conhecimento explícito, em contraste, é o conhecimento que pode ser facilmente expressado, armazenado, capturado e reutilizado, podendo ser transmitido de forma estruturada e organizada como em textos, gráficos, tabelas, banco de dados, entre outros formatos [10]. 2.2 Conversão do Conhecimento Para que o conhecimento tácito possa ser utilizado pela organização, ele deve ser codificado e armazenado, convertendo-se em conhecimento explícito. NONAKA e TAKEUCHI [10] propuseram a Espiral do Conhecimento, onde é apresentado o processo de conversão do conhecimento tácito em conhecimento explícito e vice-versa, por meio da interação das pessoas que formam a organização. A Espiral do Conhecimento apresenta quatro etapas, representadas na Figura 2.1 e descritas a seguir [10]: Figura 2.1 – Espiral do Conhecimento, adaptado de [10] Socialização: é a transformação de conhecimento tácito para conhecimento tácito, entre duas pessoas. Acontece quando há comunicação face à face, geralmente num 4 formato mestre-aprendiz, onde há o compartilhamento de experiências por meio do diálogo entre as pessoas. Externalização: é a transformação de conhecimento tácito em conhecimento explícito, realizado pela pessoa que detém o conhecimento buscando representar o máximo deste por meio de modelos, conceitos e hipóteses, estruturando-o em tabelas, texto, desenhos, etc. É iniciado por meio do diálogo ou de reflexão coletiva sobre o conhecimento tácito dos membros da organização. Combinação: é a distribuição do conhecimento explícito da organização, por meio da organização, combinação e agregação dos itens de conhecimento explícito e dos processos da organização. Internalização: é a transformação do conhecimento explícito da organização em conhecimento tácito de uma pessoa. Acontece por meio do estudo do conhecimento armazenado da organização, pela visualização, prática e reinterpretação desse conhecimento. A Espiral do Conhecimento acontece a partir da conversão do conhecimento por meio dessas etapas, começando pela socialização, que faz com que o conhecimento seja compartilhado entre as pessoas da organização, passando pela externalização que faz com esse conhecimento seja explicitado para toda a organização e possa ser utilizado no processo de combinação e internalização do conhecimento. O novo conhecimento tácito internalizado pode ser novamente socializado, reiniciando a espiral e estimulando um ambiente de criação e compartilhamento de conhecimento na organização [9]. 2.3 Gerência do Conhecimento O reconhecimento por parte das organizações de que conhecimento é um ativo importante para a sua competitividade tem levado ao aumento do interesse em técnicas para a gerência desse conhecimento [11]. Visto como um ativo organizacional, o conhecimento tem valor, gera retornos, tem um tempo de vida, pode ser medido e pode ser gerenciado [12]. Segundo O’LEARY [7], a gerência do conhecimento é a gerência de ativos de conhecimento com o objetivo de facilitar o acesso e o reuso desses ativos pela organização, classificando formalmente esses recursos em um formato estruturado prédefinido que pode evoluir durante os processos. 5 Por outro lado, segundo o Instituto Britânico de Padrões [13], a gerência do conhecimento também visa conectar as pessoas à outras pessoas e informações, permitir a conversão do conhecimento, incentivar a inovação e a criatividade, e obter, manter e compartilhar o conhecimento da organização. 2.4 Processos para gerência do conhecimento A gerência do conhecimento é uma atividade contínua, de vital importância para as organizações que buscam utilizar o conhecimento como recurso. De uma forma geral, é possível identificar que a execução da gerência do conhecimento levará a identificação e criação do conhecimento, formas para compartilhá-lo e como aplicar o conhecimento nas atividades da organização. Essas etapas podem ser organizadas em um processo sistemático bem definido, visando desenvolvimento organizacional, desempenho, efetividade, lucro e crescimento [12]. Existem diversas propostas para definição de processos para a gerência de conhecimento. Uma dessas propostas é a apresentada por SOUZA et al. [9], contendo as seguintes etapas: Identificação: Deve-se identificar as competências críticas ou essenciais da organização, ou seja, o que a organização precisa saber para realizar suas atividades mais importantes. Captura: Nesse processo, ocorre a aquisição dos conhecimentos, habilidades e experiências necessárias para criar e manter as competências críticas da organização. Seleção e Validação: Os conhecimentos capturados devem ser filtrados, selecionados e priorizados de acordo com a qualidade, valor e relevância, definindo quais e como serão armazenados. Organização e Armazenagem: Todo conhecimento capturado deve ser armazenado de uma forma que garanta recuperação rápida, fácil e correta do conhecimento, utilizando sistemas de armazenagem efetivos. Compartilhamento: O conhecimento não pode ser restrito a algum grupo restrito de indivíduos da organização, mas deve ser compartilhado por meio de mecanismos capazes de disseminar o conhecimento para os interessados nele de forma rápida e eficiente. 6 Aplicação: Além de compartilhados, os conhecimentos disponíveis devem ser utilizados em situações reais da organização buscando produzir benefícios concretos como melhoria de desempenho, qualidade, etc. Criação: A criação de novo conhecimento deve ocorrer por meio dos processos de conversão de conhecimento, resultando em aprendizagem, externalização, lições aprendidas, pesquisa, experimentação, inovação, etc. Proteção: A questão da proteção do conhecimento organização é um fator crítico da gerência do conhecimento, por que trata de aspectos como vazamento de informações, conhecimentos estratégicos, direitos autorais e patentes. YOUNG [14] apresenta o processo de gerência do conhecimento definido pela Asian Productivity Organization (APO), um processo de gerência de conhecimento com cinco etapas, a saber: Identificação, Criação, Armazenamento, Compartilhamento e Aplicação. A partir da etapa de Identificação, o conhecimento necessário para a construção das competências da organização, os tipos desse conhecimento e onde locais onde falta a utilização desse conhecimento são identificados. A etapa de Criação irá preencher as falhas de utilização do conhecimento convertendo e gerando novos conhecimentos. A etapa de Armazenamento visa coletar e preservar o conhecimento organizacional, organizando para que seja possível acessá-lo fácil e rapidamente. A etapa de Compartilhamento mantém uma cultura de troca de conhecimento entre os membros da organização. E a etapa de Aplicação consiste do uso – e reuso – do conhecimento organizacional nas atividades da organização. ABECKER et al. [11] também apresenta um processo de gerência do conhecimento semelhante, composto pelas seguintes etapas: Identificação, Aquisição, Desenvolvimento, Disseminação, Uso, e Preservação. Demais definições seguem um modelo semelhante de processo, que passa pela identificação do conhecimento presente na organização (seja um conhecimento explícito ou tácito), uma forma de criar conhecimento a partir do que já está presente na organização, como armazenar esse conhecimento e como distribuí-lo entre os integrantes da organização para realizarem suas tarefas de forma eficiente. A Tabela 2.1 apresenta uma comparação entre as etapas de um processo básico de gerência de conhecimento e os processos apresentados anteriormente. Observa-se que todos os trabalhos apresentam uma estrutura semelhante. 7 Tabela 2.1. Comparação entre os processos de gerência do conhecimento Passos Básicos Identificação Criação Armazenamento Compartilhamento Uso SOUZA et al. [3] Identificação Seleção e Validação Captura Criação Organização e Armazenamento Proteção Compartilhamento Aplicação APO [7] Identificação ABECKER et al. [5] Identificação Criação Aquisição Desenvolvimento Armazenamento Preservação Compartilhamento Aplicação Disseminação Uso Para o sucesso da gerência do conhecimento, esses processos dependem do empenho de todas as pessoas da organização, e principalmente dos líderes de grupo ou da alta gerência, já que é necessária a mudança no comportamento e na cultura organizacional para integração desses processos listados nos processos de trabalho da organização, incentivando o compartilhamento e a colaboração do conhecimento [9]. É importante notar que esses processos devem ser executados de forma cíclica. Isso deve-se ao fato de que a organização deve se adaptar ao contexto atual da necessidade da gerência do conhecimento organizacional, dado que o ciclo de vida do conhecimento é rápido, fazendo com que esse conhecimento perca valor se for apenas armazenado. O conhecimento organizacional deve ser constantemente utilizado, debatido e recriado, para que seja sempre um ativo de interesse da organização. 2.5 Técnicas para a Gestão do Conhecimento Os processos listados anteriormente dão uma direção para a instalação de uma cultura de gerência de conhecimento na organização. Para apoiar cada passo do processo, existem diversas técnicas e ferramentas que podem ser utilizadas para a utilização do conhecimento de forma mais efetiva nos processos da organização. YOUNG [14] apresenta uma lista de técnicas que podem ser utilizadas em cada processo. Algumas destas técnicas são descritas a seguir: Captura de ideias e aprendizado: A gerência do conhecimento é baseada na captura de ideias e aprendizado. Técnicas desse tipo são utilizadas nos processos de identificação e criação de conhecimento, com o objetivo de capturar e utilizar 8 as ideias das pessoas de forma sistemática e coletiva. Esse tipo de técnica pode ser utilizado no processo de Criação de conhecimento. Lições aprendidas: Lições aprendidas podem ser capturadas durante ou depois da execução de um processo da organização. O objetivo principal dessa técnica é capturar o conhecimento adquirido com a prática da execução de cada processo da organização. Lições aprendidas podem ser: (i) informacionais, quando descrevem como determinado passo de um processo deve ser executado; (ii) de sucesso, quando representa um resultado positivo durante uma crise; ou (iii) problema, quando descreve falhas ou formas de resolver problemas [7]. Essa técnica pode ser utilizada nos processos de Criação, Compartilhamento e Armazenamento de Conhecimento. Narração de histórias: No contexto de gerência de conhecimento, a narração de histórias é uma técnica muito eficiente que vem sendo utilizada de diversas formas para a conversão de conhecimento, principalmente pela transferência de conhecimento tácito entre membros de uma equipe. Por não precisar de muito conhecimento técnico para a sua utilização, sua implementação é muito prática e pode ser facilmente combinada com outras técnicas. O processo de Compartilhamento de conhecimento é o mais propício para a utilização dessa técnica. Comunidades de prática: Comunidades de prática são grupos de pessoas que compartilham conhecimento em uma determinada área, e aprendem umas com as outras por meio do relacionamento regular e da prática das suas habilidades. Sua característica permite que essa técnica possa ser utilizada em qualquer processo de gerência do conhecimento, pois envolve intensamente a interação entre as pessoas promovendo um ambiente ótimo para a identificação, criação, compartilhamento e aplicação do conhecimento. Taxonomia: Uma taxonomia é uma técnica de estruturação da informação, dos documentos e bibliotecas da organização de uma forma consistente. Pode ser considerado como um sistema de classificação dos ativos de conhecimento da organização. Essa técnica é utilizada nos processos de Armazenamento, Compartilhamento e Aplicação do conhecimento. Sistema de gerência de documentos: A utilização de um repositório de documentos, associado a sistemas de gerência de documentos, pode ser uma 9 solução efetiva para tornar mais eficiente o acesso à informação na organização. Como mencionado anteriormente na definição de conhecimento e nos processos de gerência do conhecimento, o acesso à informação adequada é essencial para o sucesso na utilização do conhecimento da organização. Essa técnica é uma forma de armazenar, compartilhar e aplicar o conhecimento da organização. Bases de conhecimento: Bases de conhecimento são formas de armazenar e aplicar o conhecimento explícito da organização. São implementadas por meio da identificação de áreas chave de conhecimento para armazenar o conhecimento explícito associado, e a aplicação de sistemas que incentivem a manutenção desse conhecimento por meio da transferência de conhecimento tácito. YOUNG [14] ainda cita diversas técnicas para a gerência do conhecimento, porém as citadas anteriormente são as técnicas que estão relacionadas ao contexto da proposta deste projeto. 10 Capítulo 3 Representação e Apresentação do Conhecimento Uma questão importante quanto a gerência do conhecimento é a forma como o conhecimento deve ser representado. Sistemas de gerência de conhecimento o representam de formas legíveis ao ser humano, acessado via sistemas de busca e navegação, ou legíveis à máquina, com o propósito de servir como base de conhecimento para sistemas especialistas. 3.1 Representação do conhecimento Um conhecimento pode ser apresentado de diversas maneiras em sistemas de gerência de conhecimento. De maneira geral, a utilização das regras da lógica deveria ser suficiente para representar qualquer conhecimento, mas a dificuldade em representar um conhecimento que possa ser lido por humanos está na necessidade de representar de maneira fácil e eficiente o conhecimento que muitas vezes é incerto, incompleto ou muito subjetivo [15]. OLIVEIRA e CARVALHO [15] apresentam alguns paradigmas de representação legível de conhecimento, detalhadas a seguir: Conhecimento Procedimental: Conhecimento em formato de funções ou procedimentos. Estabelece como realizar um processo por meio da descrição de habilidades, algoritmos, técnicas e métodos. Árvores de decisão: são estruturas de suporte a decisão, representando as decisões e suas consequências em um grafo direcionado tipo árvore. Cada nó interno representa um teste sobre um atributo e cada aresta que sai representa os possíveis valores desse atributo. Os nós folha representam a decisão tomada depois que os atributos são computados. São estruturas facilmente entendidas e podem ser boas alternativas para representar análises dos conhecimentos sobre tomadas de decisão da organização visando identificar melhores estratégias, além 11 de serem facilmente combinadas com outras formas de representação do conhecimento. Porém podem haver limitações quando os resultados esperados não são discretos ou quando há dificuldade na escolha dos atributos que definem cada nó interno. Regras: Conhecimento em formato textual pode ser representado facilmente em formato de regras. Regras armazenam o conhecimento no formado SE-ENTÃO. Apesar da simplicidade, não são utilizadas em sistemas de grande porte, pois o aumento na quantidade das regras leva muito rapidamente ao aumento da complexidade, ao tornar necessária a combinação entre diversas condições e resultados. Redes: Em contraste com o conceito de árvores de decisão, o conhecimento representado em redes apresenta os conceitos e entidades nos nós de um grafo direcionado – não necessariamente uma árvore –, e as arestas representam a relação entre cada conceito e entidade. Uma forma específica de redes para representação de conhecimento é a rede semântica. Uma rede semântica apresenta os conceitos e entidades nos nós e as arestas representam relações hierárquicas entre cada nó - por exemplo, é-um, tem-um, tipo-de, etc. A Figura 3.1 apresenta um exemplo de rede semântica. As redes semânticas, assim como as árvores de decisão, também são entendidas rapidamente e as relações são facilmente detectadas, pois são representadas de forma explícita. Porém sua simplicidade não atende a conceitos complexos, principalmente quando as relações entre estes conceitos se apresentam de forma subjetiva. Figura 3.1 – Exemplo de rede-semântica 12 3.2 Apresentação do Conhecimento Associado aos paradigmas de representação do conhecimento, há a necessidade de apresentar o conhecimento de forma a facilitar sua criação e a transferência através da visualização. A aplicação de técnicas de apresentação do conhecimento visa criar (e recriar), acessar, referenciar e transferir visões, experiência, atitudes, valores, expectativas, perspectivas, opiniões e predições [16]. Para que esse processo seja efetivo, EPPLER e BURKHARD [16] propõem cinco perguntas chave: 1) Que tipo de conhecimento deve ser visualizado? 2) Por que esse conhecimento deve ser visualizado? 3) Por quem este conhecimento deve ser visualizado? 4) Em que contexto deve ser visualizado? 5) Como deve ser representado? A partir dessas perguntas, BURKHARD [17] propõe um Modelo de Visualização do Conhecimento. Nesse modelo, como pode ser visto na figura 3.2, é apresentada a interação de troca de conhecimento entre dois indivíduos, onde um deles é o remetente, que possui um conhecimento tácito e deseja compartilhar com o segundo, o destinatário. Uma terceira parte do modelo é um conjunto de visualizações do conhecimento para ajudar no processo de aprendizado do destinatário. O modelo busca definir os processos interpessoais – entre os indivíduos – e intrapessoais – na mente de cada um deles – que definem como o conhecimento é compartilhado e como a apresentação do conhecimento deve ser realizada para que seja correta e eficientemente ensinado. Figura 3.2 – Modelo de Visualização do Conhecimento de BURKHARD [17]. O primeiro bloco é o remetente, que possui conhecimento que o destinatário deseja receber. O bloco central define como o conhecimento deve ser apresentado para efetivar esse processo. 13 O modelo define um processo realizado sobre as visualizações do conhecimento em três etapas. Na primeira, deve-se chamar a atenção do destinatário quanto aquele conhecimento. Na segunda, deve ser apresentado um contexto, ou seja, uma visão global e opções sobre como ele pode se beneficiar daquele conhecimento, como aquele conhecimento pode ser importante para ele. Por fim, devem ser apresentados detalhes sobre determinado assunto selecionado pelo destinatário. Essa terceira etapa só é efetiva quando o destinatário percebe a relevância do conhecimento através das duas primeiras etapas para então se motivar a buscar mais detalhes sobre o conhecimento [17]. 3.3 Uma forma de apresentação: Mapas mentais Dentre os formatos apresentados neste capítulo para a representação do conhecimento, pode-se destacar dois que apresentam características visuais em comum: as árvores de decisão e as redes. Esses formatos apresentam figuras geométricas, representando conceitos, ligadas por linhas ou setas que indicam a relação entre esses conceitos. Muitas formas de apresentação do conhecimento lançam mão dessa forma de representação de relacionamentos entre conceitos, e podem ser encontrados diversos métodos em diversas áreas [18]. Uma dessas formas de apresentação é a utilização de mapas mentais. Mapas mentais são diagramas radiais, que representam relacionamento semântico entre as porções do conhecimento sendo apresentado, em um formato hierárquico [18]. Conforme se caminha por um mapa mental, os conceitos partem de uma ideia central mais abrangente, se tornando mais detalhados enquanto se distancia do nó que representa a ideia central. A premissa do funcionamento dos mapas mentais é que eles funcionam como imagina-se que o cérebro humano funciona, ligando as informações através dos relacionamentos entre elas, em um formato radial em vez de relações lineares, conectando cada ideia com centenas ou milhares de outras ideias e conceitos [19]. Sendo assim, podem ser utilizados para a apresentação do conhecimento em tópicos e subtópicos, de forma criativa e de fácil manipulação. A forma que mapas mentais apresentam conhecimento é compatível com o modelo de visualização do conhecimento de BURKHARD [17], uma vez que apresenta 14 formas de chamar a atenção do indivíduo para buscar mais detalhes do conhecimento apresentado de forma criativa e natural. Ao comparar mapas mentais com outros formatos de apresentação do conhecimento (como mapas conceituais e metáforas visuais, por exemplo), EPPLER [18] lista as vantagens e desvantagens desse formato em relação aos outros e em que situações os mapas mentais podem ser mais bem aproveitados. EPPLER [18] cita como vantagens da utilização dos mapas mentais o fato de que (i) são de fáceis de aprender e aplicar; (ii) que mapas mentais estimulam a criatividade e a autoexpressão; (iii) que permitem uma visão hierárquica concisa sobre os conceitos apresentados e que (iv) é fácil estender e adicionar novas informações. A partir dessas vantagens, ele conclui que mapas mentais podem ser utilizados eficientemente para anotações pessoais, principalmente em brainstorms de ideias. Devido a sua simplicidade, conceitos e um mapa mental podem ser absorvidos e lembrados de forma mais eficiente. Por outro lado, como desvantagens, EPPLER [18] lista os seguintes pontos: (i) mapas mentais podem ser difíceis de serem lidos por terceiros; (ii) sua capacidade de representação é mais efetiva em relacionamentos hierárquicos em detrimento de outros formatos; (iii) podem ser inconsistentes; e (iv) podem se tornar muito complexos, perdendo a noção da ideia central e do relacionamento geral entre os conceitos. Ele conclui então que mapas mentais podem ser uma boa ferramenta se integrado com outras formas de visualização do conhecimento, utilizando mapas mentais para representar ideias de forma mais criativa e de rápida absorção – principalmente quando utilizado como ferramenta de anotações – e outros formatos como mapas conceituais para estruturar o conhecimento com maior formalidade [18]. Apesar disso, em [19], estudos realizados evidenciam o sucesso da utilização de mapas mentais para diversos fins, como suporte no processo de aprendizagem, organização e compartilhamento de conhecimento e melhoria no processo de memorização e absorção do conhecimento. 15 Capítulo 4 Ferramenta para Gerência do Conhecimento O propósito desse capítulo é apresentar uma ferramenta para gerência do conhecimento baseada nos conceitos apresentados anteriormente. A ferramenta foi implementada no contexto do ambiente SPEAKER. O objetivo dessa ferramenta é disponibilizar o conhecimento relacionado às atividades de análise de desempenho de processos de software, orientando o usuário de acordo com que executa cada tarefa no ambiente SPEAKER. A ferramenta também permite que o conhecimento sobre as execuções seja inserido para disponibilização futura. 4.1 Contexto A ferramenta foi implementada no contexto do ambiente SPEAKER, que está sendo construído no contexto de uma tese de doutorado do Grupo de Qualidade da COPPE/UFRJ. Por sua vez, o ambiente SPEAKER está sendo construído na infraestrutura de um ambiente já existente no Grupo de Qualidade, denominado A2M (Ambiente de Alta Maturidade). Ambos ambientes serão apresentados a seguir a fim de auxiliar no entendimento do contexto no qual a ferramenta deste projeto final foi desenvolvida. 4.1.1 A2M – Ambiente de Alta Maturidade O A2M – Ambiente de Alta Maturidade – é uma plataforma desenvolvida pelo Grupo de Qualidade da COPPE/UFRJ com o objetivo de apoiar organizações que desejam realizar práticas sugeridas pelos altos níveis de modelos de maturidade, tais como o MRMPS [1] e o CMMI-DEV [2]. Diversas ferramentas foram desenvolvidas no contexto do A2M, a partir das pesquisas realizadas pelo grupo de pesquisas em alta maturidade de processos da COPPE/UFRJ, tais como: [20] [21] [3]. O A2M é desenvolvido na linguagem de programação JAVA, com interface do usuário desenvolvido com as tecnologias JSP e JSF (JavaServer Pages e JavaServer 16 Faces, respectivamente). A infraestrutura do A2M provê ao desenvolvedor de ferramentas de apoio diversos serviços auxiliares que facilitam o desenvolvimento de novas ferramentas, tais como: persistência de dados, controle de acesso, tratamento de exceções, elementos visuais para reutilização como tabelas e telas de cadastro, entre outros. Toda a infraestrutura interna da ferramenta proposta neste trabalho foi desenvolvida no contexto do A2M e utiliza-se largamente de diversos serviços auxiliares presentes no ambiente. 4.1.2 Ambiente SPEAKER O ambiente SPEAKER (Software Process pErformance Analysis Knowledgebased EnviRonment) visa auxiliar a execução da análise de desempenho de processos por meio das práticas da gerência do conhecimento [4] [5] [6]. Esse ambiente está sendo desenvolvido pelo Grupo de Qualidade da COPPE/UFRJ, como uma ferramenta do ambiente do A2M. O ambiente SPEAKER, conforme mostra a Figura 4.1, foi projetado contendo duas ferramentas principais: (i) um sistema baseado em conhecimento (SBC) que guia o responsável durante a execução da análise de desempenho, apresentando os conhecimentos necessários para cada atividade, e que mantém o corpo do conhecimento do ambiente; e (ii) uma ferramenta para instanciação e execução do processo (FIE) que permite o controle da instanciação do processo da análise de desempenho e o armazenamento dos resultados obtidos [4]. Figura 4.1 – Ambiente SPEAKER – Visão Arquitetural [4] 17 A ferramenta proposta neste trabalho implementa parte do SBC permitindo o cadastro de itens de conhecimento vinculados às atividades da análise de desempenho de processos e sua disponibilização durante a execução. 4.2 Requisitos e casos de uso Durante a fase de levantamento de requisitos, cinco requisitos foram definidos, sendo eles os descritos a seguir: REQ1 – A ferramenta deve permitir o cadastro de conhecimento vinculado a uma tarefa do processo de Análise de Desempenho de Processos REQ2 – A ferramenta deve permitir que o conhecimento seja disponibilizado durante a execução das tarefas da Análise de Desempenho REQ 3 – A ferramenta deve permitir a manutenção do conhecimento cadastrado REQ 4 – A ferramenta deve estar integrada ao Ambiente SPEAKER REQ 5 – A ferramenta deve disponibilizar o conhecimento aos poucos, a medida que o usuário solicite mais detalhes A partir desses requisitos, três casos de uso foram definidos. Estes casos de uso estão descritos a seguir. Informações mais detalhadas sobre cada caso de uso pode ser encontrada no Apêndice deste trabalho. UC1 – Registrar Conhecimento A ferramenta disponibilizará aos usuários tela que permita o registro de conhecimento relacionado a uma tarefa do processo de Análise de Desempenho, em formato textual ou em um mapa mental. Registros feitos durante a execução de uma tarefa associam o novo conhecimento diretamente à tarefa sendo executada. UC2 – Disponibilizar Conhecimento Durante a execução de uma tarefa do processo de análise de desempenho, a ferramenta listará os conhecimentos relacionados a esta atividade. O usuário, ao indicar que deseja visualizar detalhes sobre um conhecimento, será redirecionado a página do conhecimento indicado. UC3 – Manter conhecimento 18 A ferramenta disponibilizará uma tela para listagem dos conhecimentos registrados e permitir que o usuário edite, desative ou exclua um conhecimento. 4.3 Tecnologias utilizadas Para a visualização do conhecimento, a principal tecnologia para desenvolvimento utilizada foi a biblioteca JavaScript de manipulação de dados D3.js. As visualizações do conhecimento são registradas no sistema no formato JSON, facilmente integrado com a biblioteca D3.js. 4.3.1 D3.js D3.js – Data Driven Documents [22] é uma biblioteca JavaScript para manipulação de documentos baseados em dados. D3.js permite que dados sejam associados a um Modelo de Objeto de Documentos (DOM – Document Object Model), uma interface independente de plataforma e linguagem para acesso e atualização dinâmica de conteúdo, estrutura e estilo de documentos na WEB [23]. O objetivo principal do D3.js é a manipulação das estruturas do DOM de forma eficiente, sempre orientada aos dados a serem representados. A biblioteca não se propõe a ser uma ferramenta de visualização, mas permite que padrões WEB como HTML (HyperText Markup Language – linguagem para a definição de objetos do DOM em um documento na WEB), CSS3 (Cascading Style Sheets – linguagem de definição de estilos para objetos do DOM) e SVG (Scalable Vector Graphics – linguagem para definição de imagens vetoriais) sejam facilmente utilizados para potencializar a visualização dos dados. Devido a utilização dos padrões WEB mais recentes, D3.js é compatível principalmente com navegadores mais modernos, conjunto que abrange praticamente todos os navegadores mais utilizados como Firefox, Chrome, Safari, Opera, Internet Explorer 9 e mais recentes, e navegadores para os sistemas operacionais móveis Android e iOS. O Internet Explorer 8 e versões mais antigas deste navegador não implementam padrões como CSS3 e SVG, e portanto a visualização de documentos com D3.js nesses navegadores fica comprometida. A ferramenta utiliza D3.js para a criação e visualização de mapas mentais, uma das formas de apresentação do conhecimento providas pelo sistema. Para isso, os itens de 19 conhecimentos apresentados nos mapas mentais são representados no banco de dados como uma cadeia de caracteres no formato JSON (JavaScript Object Notation). Esse formato é convertido em objetos JavaScript facilmente. Com a biblioteca D3.js, é possível associar objetos JSON a objetos no DOM, como representado nas figuras 4.1 e 4.2. No exemplo, a lista (array) dataset é associada a elementos HTML de parágrafo (<p>). Figura 4.1 – Exemplo de página utilizando D3.js Figura 4.2 – Resultado da página após execução do D3.js A página da biblioteca D3.js apresenta diversos tutoriais e exemplos [24], além de um livro de MURRAY [25] que é possível acessar online gratuitamente, com exemplos executáveis. 20 4.4 Estrutura A ferramenta é composta de um módulo de serviços e persistência e um módulo WEB. O módulo de serviços provê as estruturas necessárias para registro do conhecimento no banco de dados, assim como o registro das associações com as entidades que definem as tarefas da análise de desempenho. O módulo WEB provê as páginas para cadastro e visualização do conhecimento. Também fica a cargo desse módulo a listagem do conhecimento associado a uma tarefa do processo de análise de desempenho. Para exibir a funcionalidade de disponibilização do conhecimento durante a execução do processo de análise de desempenho, foi desenvolvido uma ferramenta protótipo que contém as etapas do processo e como este se encadeia. Mais detalhes sobre a tela serão descritos no exemplo de uso da ferramenta. 4.5 Funcionalidades Nesta sessão, serão descritas as principais funcionalidades da ferramenta: cadastro e manutenção do conhecimento, e visualização do conhecimento. 4.5.1 Cadastro do Conhecimento A funcionalidade Cadastro do Conhecimento é a principal funcionalidade da ferramenta. Consiste na possibilidade de registro do conhecimento em formato de texto e em um mapa mental. Texto É o formato mais simples provido pela ferramenta, permite que um conhecimento seja descrito no formato de uma redação, na forma que for conveniente para a representação deste conhecimento. Mapa mental É o formato mais avançado de representação do conhecimento na ferramenta. A ferramenta provê uma interface para a criação de mapas mentais que podem ser utilizados para uma descrição mais detalhada e organizada do conhecimento relacionado a uma determinada atividade ou tarefa. No contexto do ambiente SPEAKER, cada tela de etapa, atividade ou tarefa apresentará um botão para o usuário inserir um conhecimento relacionado ao item sendo 21 visualizado. Uma nova tela se abrirá para que o usuário insira o conhecimento. O usuário também poderá cadastrar um conhecimento relacionado a uma tarefa de forma direta, fora da execução de uma análise de desempenho, na tela inicial do ambiente SPEAKER. 4.5.1.1 Construção do Mapa Mental Uma característica importante do cadastro do conhecimento desenvolvido é a possibilidade da organização do conhecimento no formato de mapas mentais. Essa característica, devido a sua complexidade, foi a que mais demandou investimento em tempo e tecnologia para seu desenvolvimento. Foi desenvolvida uma tela para a criação de mapas mentais. Essa tela permite a organização do conhecimento a partir de uma ideia central. O usuário pode então expandir o conhecimento relacionado a essa ideia principal, aumentando o nível de detalhamento enquanto descreve o conhecimento. O mapa mental é formado por uma rede direcionada, onde os nós da rede correspondem a porções do conhecimento a ser representado e as arestas representam a existência de uma relação entre essas porções. A ideia central é representada por um nó distinto dos demais. Em cada nó, é possível definir uma descrição curta, que será exibida na apresentação do mapa, e um texto que provê uma descrição mais detalhada, exibida apenas se o usuário visualizando o conhecimento assim desejar. É possível também ocultar e reexibir os nós enquanto visualiza o conhecimento. Essa possibilidade é interessante pois permite que o usuário que visualiza o conhecimento se atenha a uma determinada área do mapa mental enquanto oculta outra que no momento não lhe parece interessante para a atividade que esteja executando. Isso pode ser feito com um clique duplo sobre um nó que contenha nós filhos. A criação do mapa mental começa com a definição da ideia central. Em uma tela onde o usuário esteja cadastrando um novo conhecimento, é apresentada uma rede composta por um único nó, no qual é possível editar o texto do nó com um duplo clique em sua descrição. A partir disso, o usuário pode definir novos nós conectados ao nó que representa a ideia central. Selecionando um desses nós, o usuário pode adicionar nós conectados a ele, permitindo a criação de uma rede em formato de árvore. Utilizando o botão ‘ctrl’ no teclado enquanto clica sobre um nó, uma janela se abre para que uma descrição detalhada possa ser adicionada ao nó. 22 Figura 4.3 – Exemplo de mapa mental Para o desenvolvimento da tela de criação e visualização de mapas mentais foi utilizada largamente a biblioteca D3.js. Para que a sua utilização fosse viabilizada no framework A2M, algumas modificações foram necessárias, principalmente nas formas de leitura dos dados em formato JSON que definiam o mapa mental, já que o framework sobrescreve algumas funções do navegador. Outra consequência da utilização da biblioteca D3.js é que o usuário precisa utilizar navegadores atualizados, que implementam as tecnologias utilizadas pelo D3.js, para acessar corretamente essa funcionalidade. Por exemplo, os nós dos mapas mentais são construídos utilizando imagens SVG e estilizadas com CSS3 e as transições e animações utilizadas precisam que o navegador implemente versões recentes da linguagem JavaScript. Como descrito anteriormente, o D3.js fornece a habilidade de associação de elementos da página com os dados. A estilização dos elementos, definição de animações e interações com o usuário ficam a cargo do desenvolvedor. D3.js possui suporte para interações básicas com o mouse para permitir a movimentação dos elementos com o ponteiro. Para a associação de botões do teclado a funções como apagar ou adicionar descrições, foi utilizada a biblioteca Mousetrap.js [26]. 4.5.2 Visualização do Conhecimento Para que o conhecimento cadastrado no sistema seja útil para um usuário que esteja realizando uma atividade de análise de desempenho em um processo de software, é necessário que esse conhecimento esteja disponível durante a execução dessa atividade. Para isso, a ferramenta provê uma forma de visualizar o conhecimento associado à determinada atividade. 23 Seguindo a proposta de BURKHARD [17] para a apresentação do conhecimento, é necessário que o usuário perceba que a atividade que está sendo executada possui um conhecimento relacionado. Isso deve acontecer de uma forma que o usuário que deseja absorver o conhecimento posso alcançar esse conhecimento sem que isso afete sua atividade corrente. Portanto, durante a execução de uma atividade da análise de desempenho no ambiente SPEAKER, os itens de conhecimento relacionados serão apresentados, conforme apresentado no exemplo da Figura 4.4. Ao clicar em um dos itens de conhecimento, uma nova janela se abre com os detalhes do conhecimento. O conhecimento é exibido em outra janela para que o usuário não perca o que estava sendo feito enquanto executava a tarefa que se relaciona com o conhecimento. Figura 4.4 – Trecho da tela onde o conhecimento é listado 4.6 Exemplo de uso A fim de apresentar com mais detalhes o funcionamento da ferramenta proposta, um exemplo de uso é descrito a seguir. Este exemplo de uso consiste em um cenário hipotético em uma organização de desenvolvimento de software que possui o nível C do MR-MPS e deseja atingir o nível 4. Este exemplo foi apresentado em [5] com o objetivo de demonstrar como o corpo de conhecimento foi organizado e disponibilizado no ambiente SPEAKER. No entanto, neste relato não havia o apoio ferramental para o cadastro e disponibilização do conhecimento. Ao acessar o SPEAKER a partir da tela inicial do ambiente A2M (apresentado na Figura 4.5), o usuário pode selecionar se deseja iniciar uma nova execução da análise de desempenho ou cadastrar um conhecimento relacionado a determina atividade da análise, conforme apresentado na Figura 4.6. 24 Figura 4.5 – Tela inicial do A2M Figura 4.6 – Tela da ferramenta, com as funcionalidades Para cadastrar um novo conhecimento, o usuário deve clicar em “Cadastrar conhecimento” e, após selecionar o sinal de "+", é direcionado para a tela de cadastro (Figura 4.7). Nesta tela, o usuário deve informar um nome para o conhecimento e selecionar qual o tipo de conhecimento que deseja cadastrar, textual ou mapa mental. Ao selecionar o tipo textual, o campo “Descrição” deve ser preenchido (figura 4.8). Se o tipo mapa mental for selecionado, uma área da tela aparecerá apresentando o nó central do mapa mental, conforme mostra a Figura 4.9. O usuário também pode selecionar a que tarefa do processo de análise de desempenho deseja associar esse conhecimento, no meu “Item relacionado”. 25 Figura 4.7 – Lista de conhecimentos cadastrados Figura 4.8 – Tela de cadastro de conhecimento com texto Figura 4.9 – Tela de cadastro de conhecimento com mapa mental Para a criação do mapa mental, o usuário começa editando o nó central, com dois cliques, redigindo qual o conceito central daquele mapa (figura 4.10). Para adicionar novos nós, o usuário deve clicar na tela duas vezes, que um novo nó se apresentará, como 26 na figura 4.11. A partir daí, pode editar seu nome e continuar criando novos nós como desejar. Se o usuário desejar colocar detalhes sobre um dos nós, deve clicar no nó enquanto mantém o botão “ctrl” do teclado pressionado. Ao fazer isso, uma janela se abrirá para que ele escreva os detalhes. A figura 4.12 exemplifica esse caso Para voltar ao mapa, deve clicar no link “[fechar]”. Figura 4.10 – Conceito central Figura 4.11 – Mapa mental com nó central e um nó filho 27 Figura 4.12 – Tela para registro de detalhes sobre nó no mapa mental Na figura 4.13, há um exemplo de um mapa mental para a primeira tarefa do processo de Análise de Desempenho. Figura 4.13 – Mapa mental completo Se o usuário desejar iniciar uma nova execução do processo de Análise de Desempenho, ele deve clicar em “Executar Análise”. Nessa tela (figura 4.14) ele pode continuar uma instância da execução ou iniciar uma nova. Para exemplo, será considerado o caso de uma nova instância da execução sendo iniciada. Ao clicar no “+”, o usuário será apresentado a tela da figura 4.15, onde 28 poderá adicionar um nome para aquela execução, e selecionar a versão da análise que deseja realizar. Figura 4.14 – Tela inicial das execuções de análise de desempenho Figura 4.15 – Execução da análise de desempenho Ao clicar em “Iniciar Execução”, o usuário será levado a tela que apresentará a primeira etapa do processo de Análise de Desempenho. Aqui ele já verá que pode adicionar um conhecimento relacionado a etapa em geral, ao clicar no botão “Adicionar Conhecimento” (figura 4.16). Ao clicar em “Iniciar Etapa”, o usuário é apresentado a primeira atividade da tarefa (figura 4.17). Da mesma forma, ao clicar em “Iniciar Atividade”, o usuário é apresentado a primeira tarefa daquela atividade. Figura 4.16 – Tela de exibição de etapa do processo de Análise de Desempenho 29 Figura 4.17 – Tela de exibição de atividade do processo de Análise de Desempenho Na tela da tarefa, apresentada na figura 4.18, a ferramenta SPEAKER apresenta ao usuário dois campos onde ele pode inserir resultados sobre aquela execução do processo. Essas informações serão registradas para análise futura. Pode-se verificar ao lado direito da figura a lista dos conhecimentos registrados para aquela tarefa. No caso, conhecimento sobre objetivo, definições e referências da tarefa. Ao selecionar um conhecimento, uma nova janela se abrirá, onde o usuário poderá visualizar o conhecimento no formato em que foi inserido, seja um mapa mental ou um texto. Figura 4.18 – Tela de exibição de tarefa do processo de Análise de Desempenho O usuário continua então o processo, clicando em “Próxima tarefa”. Ao final, ele voltará a tela onde iniciou a execução, e a ferramenta cadastrará a hora e data do término. 30 Capítulo 5 Conclusão e Trabalhos Futuros 5.1 Conclusões Para concluir qualquer atividade em uma organização nos dias atuais, os membros desta organização precisam utilizar conhecimento, mesmo que seja apenas tácito, lembranças de experiências pessoais ou conhecimentos adquiridos durante a formação da profissão. Em particular, as atividades relacionadas à análise de desempenho de processos requerem tanto conhecimentos técnicos sobre os métodos e técnicas sobre análise de desempenho, como conhecimento relacionado ao contexto organizacional. Para que a organização utilize esse conhecimento de forma mais eficiente, a Gerência do Conhecimento é imprescindível. A tecnologia pode ser uma boa aliada na implantação de uma cultura de compartilhamento e aplicação do conhecimento organizacional. A ferramenta proposta serve como base para incentivar os usuários a registrar o conhecimento possuído e adquirido durante a execução de uma atividade na organização. Algumas limitações foram encontradas durante o desenvolvimento da ferramenta, porém ainda há muito espaço para extensões e melhorias para que a implantação dessa cultura do conhecimento seja mais eficaz. 5.2 Limitações A ferramenta proposta apresenta como limitações, principalmente a falta de compatibilidade com navegadores mais antigos para utilização de todas as funcionalidades. Uma limitação encontrada durante os testes foi devido ao fato que o tratamento de eventos JavaScript como, por exemplo, eventos de clique do mouse ou detecção de botão do teclado, são implementados de forma diferente entre os diversos navegadores atuais. Contornar essa limitação depende de um mapeamento dessas implementações em cada navegador para identificar essas diferenças. 31 Quanto ao objetivo da ferramenta, suas funcionalidades não conseguem apoiar todos os processos de gerência do conhecimento. As funcionalidades da ferramenta não atendem a processos como o de Seleção e Validação definido em SOUZA et al. [3] e implementa de forma básica os processos de Captura, Criação, Compartilhamento e Uso, sendo esse último processo limitado às atividades de análise de desempenho de processos cadastradas no ambiente SPEAKER. Algumas dificuldades relacionadas ao uso do framework A2M foram encontradas durante a implementação da ferramenta. O framework apresenta diversos recursos para facilitar o desenvolvimento de novas ferramentas, porém a utilização desses recursos para que a nova ferramenta se integre ao ambiente demanda um esforço de aprendizado. O framework deixa transparente para um desenvolvedor de ferramentas alguns aspectos de mais baixo nível de desenvolvimento web, às vezes mascarando alguns erros. Porém, com a prática, o desenvolvimento se torna mais ágil. 5.3 Trabalhos futuros Há muito espaço para desenvolvimento de melhorias e novas funcionalidades para a ferramenta, tendo em vista todo o espectro que os processos de gerência de conhecimento apresentam. Avaliação do Conhecimento Uma forma de aprimorar a cobertura dos processos de gerência do conhecimento seria o desenvolvimento de técnicas para avaliação do conhecimento contido na ferramenta. Dar aos usuários uma forma de julgar se um conhecimento é relevante para uma tarefa evita que informações desnecessárias sejam mostradas ao usuário durante a execução daquela tarefa, exibindo apenas aquelas que outros usuários indicaram ou que foram mais importantes em uma execução anterior da análise de desempenho. Reutilização e Integração com outras ferramentas Qualquer atividade dentro de uma organização exigirá a gerência dos conhecimentos relacionados a cada uma delas. Uma proposta é que a ferramenta de disponibilização do conhecimento possa ser um recurso para o desenvolvedor de novas ferramentas no ambiente A2M utilizar com suas estruturas. 32 Tipos de representação do conhecimento A ferramenta proposta apresenta apenas dois tipos de representação do conhecimento, em texto e mapas mentais. Permitir que conhecimento seja representado em outros formatos como glossários, mapas conceituais, metáforas visuais, entre outros, aumentaria a capacidade de formalização do conhecimento tácito dos usuários em conhecimento explícito para atividades futuras. 33 Referências Bibliográficas [1] SOFTEX, ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO, “MR-MPS-SW – Guia Geral,” SOFTEX, Associação para Promoção da Excelência do Software Brasileiro, 2013. [Online]. Disponível: MR-MPS-SW – Guia Geral. [Acesso em Fevereiro 2015]. [2] CMMI PRODUCT TEAM, “CMMI® for Development (CMMI-DEV), V1.3,” Software Engineering Institute, [Online]. Disponível: http://www.sei.cmu.edu/. [Acesso em 2 Março 2015]. [3] SIMÕES, C. A., Repositório de Medidas para Organizações de Alta Maturidade em Processos de Software, Universidade Federal do Rio de Janeiro, 2011. [4] SCHOTS, N. C. L., GONCALVES, T. G., MAGALHAES, R. F., ROCHA, A. R. C., SANTOS, G. E OLIVEIRA, K. M., “Supporting Software Process Performance Analysis through a Knowledge-based Environment,” In: Proceedings of the XL Latin American Computing Conference (CLEI), pp. 286-297, 2014. [5] SCHOTS, N. C. L., ROCHA, A. R. C., e SANTOS, G., “A Body of Knowledge for Executing Performance Analysis of Software Processes,” In: Proceedings of the Twenty-Sixth International Conference on Software Engineering & Knowledge Engineering, pp. 560-565, 2014. [6] SCHOTS, N. C. L., Um Ambiente baseado em Conhecimento para a Análise de Desempenho de Processos de Software. Exame de Qualificação. Universidade Federal do Rio de Janeiro, 2013. [7] O'LEARY, D. E., “Enterprise Knowledge Management,” Computer, pp. 54-61, 1998. [8] FERREIRA, A. B. H., “Significado de Conhecimento,” [Online]. Disponível: http://www.dicionariodoaurelio.com/conhecimento. [Acesso em Fevereiro de 2015]. 34 [9] SOUZA, J. M., “Gestão do conhecimento e Memória de Grupo,” em Sistemas Colaborativos, 2004, pp. 206-220. [10] NONAKA, I. e TAKEUSHI, H., The Knowledge-Creating Company: How Japanese Companies Create the Dynamics of Innovation, New York: NY: Oxford University Press, 1995. [11] ABECKER, A., BERNARDI, A., HINKELMANN, K., KÜHN, O. E SINTEK, M., “Toward a Technology for Organizational Memories,” In: IEEE INTELLIGENT SYSTEMS, pp. 40-48, 1998. [12] NAIR, P. E PRAKASH, K., Knowledge Management: Facilitators’ Guide, APO Asian Productivity Organization, 2009. [13] BRITISH STANDARTS INSTITUTE - BSI APUD GILCHRIST, A., Knowledge Management Roadmap GLOSSARY for Joint Information Systems Committee, Londres: tfpl., 2006. [14] YOUNG, R., Knowledge Management Tools and Techniques Manual, Tóquio: Asian Productivity Organization, 2010. [15] OLIVEIRA H. C. E CARVALHO, C. L. “Gestão e Representação do Conhecimento,” 2008. [16] EPPLER, M. J. E BURKHARD, R. A., “Visual representations in knowledge management: framework and cases,” 2007. [17] BURKHARD, R. A., “The Use of Complementary Visual Representations for the Transfer of Knowledge.,” 2005. [18] EPPLER, M. J., “A comparison between concept maps, mind maps, conceptual diagrams, and visual metaphors as complementary tools for knowledge construction and sharing,” Information Visualization, pp. 202-210, 2006. [19] THINKBUZAN LTD., Mind Mapping: Scientific Research and Studies, ThinkBuzan Ltd. 35 [20] BARRETO, A. S., Definição e Gerência de Objetivos de Software Alinhados ao Planejamento Estratégico, Universidade Federal do Rio de Janeiro, 2011. [21] BARRETO, A., Uma Abordagem para Definição de Processos Baseada em Reutilização Visando à Alta Maturidade em Processos, Universidade Federal do Rio de Janeiro, 2011. [22] BOSTOCK, M., “D3.js - Data Driven Documents,” [Online]. Disponível: http://d3js.org/. [23] WORLD WIDE WEB CONSORTIUM (W3C), “W3C Document Object Model,” [Online]. Disponível: http://www.w3.org/DOM/#what. [24] BOSTOCK, M., “Gallery - mbostock/d3 Wiki,” [Online]. Disponível: https://github.com/mbostock/d3/wiki/Gallery. [25] MURRAY, S., Interactive Data Visualization for the Web, O'Reilly Media, 2013. Disponível: http://chimera.labs.oreilly.com/books/1230000000345/index.html [Acesso em Fevereiro de 2015] [26] CAMPBELL, C., “Mousetrap - Keyboard shortcuts in Javascript,” [Online]. Disponível: http://craig.is/killing/mice. [Acesso em Fevereiro 2015]. 36 Apêndice A. Casos de Uso Neste apêndice, serão descritos os casos de uso da ferramenta, com seus fluxos básicos e alternativos e regras de negócio. UC1 – Registrar Conhecimento Descrição: A ferramenta disponibilizará aos usuários tela que permita o registro de conhecimento relacionado a uma atividade no fluxo do processo de análise de desempenho. A ferramenta deve permitir que o usuário inclua um título e uma descrição para o conhecimento a ser registrado, em formato textual. Adicionalmente, o conhecimento pode ser apresentado como um mapa mental. Fluxo básico: Tabela A.1 – Fluxo básico do caso de uso 1 No. 1 2 3 4 5 6 7 Ações Desvios O caso de uso é iniciado. O sistema disponibiliza os campos para preenchimento dos dados do item de conhecimento. O Usuário escolhe o tipo de conhecimento a ser inserido. O Usuário representa o conhecimento de acordo com o tipo FA1 selecionado O Usuário associa o conhecimento a uma etapa, atividade ou tarefa do processo. O sistema registra o conhecimento. O caso de uso é encerrado. Fluxos Alternativos: FA1 – Registro durante execução do processo Caso o usuário esteja inserindo um conhecimento durante a execução do processo, o conhecimento é automaticamente associado à etapa, atividade ou tarefa do processo sendo executada. Retorna no passo 6. Regras de Negócio: RN1 – Tipos de conhecimento A ferramenta permite a inserção de conhecimento em formato textual e em um mapa mental. 37 UC2 – Disponibilizar Conhecimento Descrição: Disponibilizar aos usuários o conhecimento registrado durante a execução de uma tarefa do processo de análise de desempenho. A ferramenta deve indicar que existe conhecimento relacionado a tarefa sendo executada, listando todos os itens de conhecimento associados, assim como permitir que os detalhes de cada item de conhecimento sejam visualizados. Fluxo básico: Tabela A.2 – Fluxo básico do caso de uso 2 No. 1 2 Ações Desvios O caso de uso é iniciado. FA1 O sistema indica que há conhecimento relacionado a tarefa sendo executada, listando-os na tela. O Usuário indica que deseja ver mais detalhes sobre o conhecimento. O sistema exibe o conhecimento no formato em que foi inserido. O caso de uso é encerrado. 3 4 5 Fluxos Alternativos: FA1 – Busca de conhecimento O usuário está buscando conhecimento relacionado ao processo de análise de desempenho. Retorna no passo 3. UC3 – Manter conhecimento Descrição: Disponibilizar tela para edição e desativação ou exclusão de itens de conhecimento. Fluxo básico: Tabela A.3 – Fluxo básico do caso de uso 3 No. 1 2 3 4 5 Ações O caso de uso é iniciado. O usuário indica que deseja editar um item de conhecimento. O Usuário altera informações desse item de conhecimento. O sistema registra as atualizações. O caso de uso é encerrado. 38 Desvios FA1, FA2 Fluxos Alternativos: FA1 – Desativação do conhecimento O usuário indica a desativação do conhecimento. Esse conhecimento não poderá ser exibido até que ativado novamente. Atualizações no conhecimento serão permitidas. Retorna ao passo 4. FA2 – Exclusão do conhecimento O usuário indica a exclusão do conhecimento. Esse conhecimento será apagado do sistema e não poderá ser recuperado. Retorna ao passo 4. 39