UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO DEPARTAMENTO DE INFORMÁTICA MESTRADO EM INFORMÁTICA VANESSA BATTESTIN NUNES - PDF
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO DEPARTAMENTO DE INFORMÁTICA MESTRADO EM INFORMÁTICA VANESSA BATTESTIN NUNES
Download "UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO DEPARTAMENTO DE INFORMÁTICA MESTRADO EM INFORMÁTICA VANESSA BATTESTIN NUNES"
Andreia Antunes Felgueiras
1 UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO DEPARTAMENTO DE INFORMÁTICA MESTRADO EM INFORMÁTICA VANESSA BATTESTIN NUNES INTEGRANDO GERÊNCIA DE CONFIGURAÇÃO DE SOFTWARE, DOCUMENTAÇÃO E GERÊNCIA DE CONHECIMENTO EM UM AMBIENTE DE DESENVOLVIMENTO DE SOFTWARE VITÓRIA 2005
2 VANESSA BATTESTIN NUNES INTEGRANDO GERÊNCIA DE CONFIGURAÇÃO DE SOFTWARE, DOCUMENTAÇÃO E GERÊNCIA DE CONHECIMENTO EM UM AMBIENTE DE DESENVOLVIMENTO DE SOFTWARE Dissertação apresentada ao Mestrado em Informática da Universidade Federal do Espírito Santo, como requisito parcial para obtenção do Grau de Mestre em Informática. Orientador: Prof. Dr. Ricardo de Almeida Falbo. VITÓRIA 2005
3 VANESSA BATTESTIN NUNES INTEGRANDO GERÊNCIA DE CONFIGURAÇÃO DE SOFTWARE, DOCUMENTAÇÃO E GERÊNCIA DE CONHECIMENTO EM UM AMBIENTE DE DESENVOLVIMENTO DE SOFTWARE COMISSÃO EXAMINADORA Prof. Ricardo de Almeida Falbo, D. Sc. Orientador Prof. Davidson Cury, D.Sc. UFES Prof. Guilherme Horta Travassos, D.Sc. COPPE/UFRJ Vitória, 27 de Abril de ii
4 Tentar e falhar é, pelo menos, aprender. Não chegar a tentar é sofrer a inestimável perda do que poderia ter sido. (Geraldo Eustáquio) iii
5 A minha filha Jasmine, luz da minha vida, que nasceu em meio a este trabalho enchendo de alegria e esperança os corações de todos que nos rodeiam. A meu marido Rudnei, por todo amor, compreensão e companheirismo durante todos estes anos juntos. Por sempre ter me ouvido, entendido as minhas ausências e estado ao meu lado tanto nos momentos de alegria quanto nos momentos difíceis. iv
6 AGRADECIMENTOS A Deus, que me deu a força necessária para que eu vencesse todos os obstáculos e persistisse nesta caminhada, não me deixando desistir mesmo nos momentos mais difíceis. A Rudnei, meus pais, meu irmão, meus sogros, cunhados e cunhadas por todo apoio, incentivo e pelas tantas vezes que me ajudaram a cuidar da Jasmine para que eu pudesse dar continuidade ao mestrado. A meu orientador e ídolo Ricardo, por seu profissionalismo, sua paciência e por todo aprendizado que me proporcionou. Por todas as vezes que me compreendeu e que esteve disponível para sanar as minhas dúvidas. Por sempre ter acreditado no meu trabalho e me feito ver o lado bom das coisas, principalmente quando eu não as via. À Accenture, em especial ao meu atual coordenador Márcio Gonçalves e ao meu excoordenador André Marinho e a CVRD, principalmente a Antônio Vizeu e Christina Vello, por sempre terem compreendido minhas ausências referentes ao Mestrado e nunca terem feito disto empecilho a meu crescimento profissional. Aos meus amigos Renzo, Tathyanna, Célia, André, Cláudio, Admila, Alessandra, Flávia, Luciana, Adriano e Ayrton e a todos outros que de alguma forma contribuíram para esta vitória, seja através de torcida, de apoio ou de compreensão. Aos professores da UFES e aos colegas do Projeto ODE, principalmente ao Fabiano e ao Silvano, pela ajuda, discussões e trocas de idéias. v
7 RESUMO A importância de Ambientes de Desenvolvimento de Software (ADSs) tem sido, cada vez mais, destacada, por apoiarem o desenvolvimento durante todo o ciclo de vida do software, auxiliando a transferência de informação entre suas ferramentas. Porém, um dos principais problemas dos ADSs é a integração de ferramentas. Para tentar solucionar o problema de integração, uma potencial solução é estabelecer uma infra-estrutura em que a Gerência de Configuração de Software (GCS) esteja no núcleo do ADS. A GCS deve controlar os artefatos produzidos e compartilhados pelas diversas ferramentas, suportar controle de mudanças e controle de versão e prover relatos de estado do processo de alteração. Além disso, uma vez que os artefatos são os elementos básicos da documentação de software e importantes itens de conhecimento, a GCS em um ADS tem de estar integrada à documentação e à gerência de conhecimento do ambiente. Assim, para uma integração efetiva e consistente, os artefatos de software devem possuir uma estrutura bem estabelecida, definida com base em um vocabulário comum e sem ambigüidades. Neste contexto, ontologias passam a ser consideradas por darem um entendimento compartilhado de um domínio de interesse, resolvendo problemas de comunicação entre as ferramentas e os recursos humanos envolvidos. O uso de ontologias facilita a atuação da Gerência de Conhecimento que, integrada à GCS, permite um melhor tratamento dos artefatos de software como itens de conhecimento, beneficiando seus mecanismos de busca e disseminação de conhecimento. Esta dissertação apresenta uma infra-estrutura de gerência de configuração que define uma ferramenta de GCS construída e integrada ao ambiente ODE (Ontology-based software Development Environment) e os procedimentos de integração da GCS às demais ferramentas de ODE, em especial à Gerência de Conhecimento e à documentação. Para apoiar essa integração, a infra-estrutura proposta foi construída tomando por base uma ontologia de artefatos de software desenvolvida também no contexto deste trabalho Palavras-chave: Gerência de Configuração de Software, Gerência de Conhecimento, Ambientes de Desenvolvimento de Software, Ontologias, Documentação. vi
8 ABSTRACT The importance of Software Development Environments (SDEs) has been more and more highlighted, because they support the software process during all software life cycle, assisting information interchange among theirs tools. However, one of the main problems in SDEs is regarding tool integration. To try to solve this problem, a potential solution is to establish an infrastructure where the Software Configuration Management (SCM) is the SDE s core. The SCM must control the artifacts produced and shared by the several tools, support change and version control, and provide status reports. Moreover, since artifacts are the basic elements of software documentation and important knowledge items to be shared, SCM in a SDE must be integrated to the environment s documentation facilities and knowledge management. Thus, for an effective and consistent integration, the software artifacts must share a welldefined structure, based on a common vocabulary, without ambiguities. In this context, ontologies should be considered, because they establish a shared understanding about a domain of interest, solving communication problems between the tools and the human resources involved. The use of ontologies is also essential for Knowledge Management that, integrated with SCM, allows better treatment of software artifacts as knowledge items, improving its search and dissemination mechanisms. This work presents a configuration management infrastructure that defines a SCM tool, built and integrated to ODE (Ontology-based software Development Environment) and the procedures for integrating SCM to the others ODE s tools, in special to Knowledge Management and Documentation. To support this integration, the proposed infrastructure was built based on an ontology of software artifact that was also developed in the context of this work. Keywords: Software Configuration Management, Knowledge Management, Software Development Environments, Ontologies, Documentation. vii
9 SUMÁRIO Capítulo 1 Introdução Objetivo do Trabalho Metodologia Organização do Trabalho Capítulo 2 Gerência de Configuração de Software, Documentação e Gerência de Conhecimento no Apoio Automatizado ao Processo de Software Ambientes de Desenvolvimento de Software O Ambiente ODE Gerência de Conhecimento Sistemas de Gerência de Conhecimento Gerência de Conhecimento em ODE Documentação Apoio à Documentação em ODE Gerência de Configuração de Software Sistemas de Gerência de Configuração de Software Gerência de Conhecimento, Documentação e Gerência de Configuração Conclusões do Capítulo Capítulo 3 Uma Ontologia de Artefato de Software Ontologias: Conceitos, Aplicações e Metodologias Construção de Ontologias As Ontologias utilizadas em ODE Ontologia de Artefato de Software Identificação de Propósito e Especificação de Requisitos Captura e Formalização da Ontologia Ontologia de Documento Identificação de Propósito e Especificação de Requisitos Captura e Formalização da Ontologia Ontologia de Artefato de Código Identificação de Propósito e Especificação de Requisitos Captura e Formalização da Ontologia viii
10 3.6 Ontologia de Diagrama Identificação de Propósito e Especificação de Requisitos Captura e Formalização da Ontologia Ontologia de Gerência de Configuração de Software Identificação de Propósito e Especificação de Requisitos Captura e Formalização da Ontologia Conclusões do Capítulo Capítulo 4 Integrando Gerência de Configuração de Software, Documentação e Gerência de Conhecimento em ODE Infra-estrutura para Gerência de Configuração em ODE Integrando a GCS à Documentação e às Demais Ferramentas de ODE Adaptação da Gerência de Conhecimento de ODE à GCS Conclusões do Capítulo Capítulo 5 Uma Ferramenta de Apoio à Gerência de Configuração de Software em ODE Funcionalidades da Gerência de Configuração de ODE Diagrama de Casos de Uso Controlar Solicitação de Alteração Diagrama de Caso de Uso Controlar Alteração Estrutura Interna da Gerência de Configuração em ODE Pacote Conhecimento Pacote Controle Pacote Documentação Pacote Gerência de Configuração A Ferramenta de Gerência de Configuração de ODE Utilização da GCS pelas Ferramentas de ODE Utilização da GCS na Ferramenta de Gerência de Riscos de ODE Integração da GCS com a Gerência de Conhecimento de ODE Conclusões do Capítulo Capítulo 6 Conclusões e Perspectivas Futuras Conclusões Perspectivas Futuras ix
11 Referências Bibliográficas Anexo A Funcionalidades da Gerência de Configuração de Software de ODE A.1 Diagrama de casos de uso principal A.1.1 Caso de Uso Cadastrar Itens de Configuração A.1.2 Caso de Uso Relatar Estado de Configuração A.1.3 Caso de Uso Abrir Artefato A.1.4 Caso de Uso Salvar Artefato Como A.2 Diagrama de Casos de Uso Controlar Solicitação de Alteração A.2.1 Caso de Uso Cadastrar Solicitação de Alteração A.2.2 Caso de Uso Aprovar Solicitação A.3 Diagrama de Caso de Uso Controlar Alteração A.3.1 Caso de Uso Retirar para Alteração (CheckOut) A.3.2 Caso de Uso Registrar Alteração (CheckIn) A.3.3 Caso de Uso Excluir Alteração A.3.4 Caso de Uso Auditoria Alteração Anexo B Glossário B.1 Termos x
12 LISTA DE FIGURAS Figura 2.1 Os três níveis da arquitetura conceitual de ODE Figura 2.2 Arquitetura Base de ODE Figura 2.3 Infra-estrutura da Gerência de Conhecimento de ODE Figura 2.4 Estrutura da Memória Organizacional de ODE Figura 2.5 Visualização de documento em XMLDoc Figura 2.6 Principais operações realizadas pelo CVS (CAETANO, 2004) Figura 2.7 Branches do elemento srca.c Figura 2.8 Labels de versões Figura 2.9 Configuration specification Figura 2.10 Processo de alteração da versão 1.3 do elemento srca.c Figura 2.11 Processo de alterações paralelas da versão 1.3 do elemento liba.c Figura 2.12 Interface da ferramenta GConf...44 Figura 2.13 Consulta de Conhecimento interface com a ferramenta Acknowledge..45 Figura 2.14 Atividade Analisar Pedido de Alteração Figura 2.15 Atividade Relatar Situação da Configuração...46 Figura 2.16 Atividade Entregar Baseline...47 Figura 3.1 Etapas do desenvolvimento de ontologias e suas interdependências (FALBO, 1998) Figura 3.2 Subconjunto da UML para representar ontologias Figura 3.3 Taxonomia de Artefatos Figura 3.4 Decomposição de Artefatos Figura 3.5 Atividades como Primitivas de Transformação Figura 3.6 Aprovação de artefatos Figura 3.7 Dependência entre artefatos Figura 3.8 Ontologia de Artefato Figura 3.9 Estrutura de documentos Figura 3.10 Aplicação de roteiros Figura 3.11 Estrutura de modelo de documento Figura 3.12 Aderência de documentos Figura 3.13 Ontologia de documentos Figura 3.14 Adoção de linguagem de programação Figura 3.15 Conformidade em relação a paradigma xi
13 Figura 3.16 Ontologia de artefato de código Figura 3.17 Composição de diagramas Figura 3.18 Taxonomia de elemento de modelo Figura 3.19 Relações entre propriedade e classificador Figura 3.20 Relações entre elemento generalizável e generalização Figura 3.21 Relação entre classificador e associação Figura 3.22 Ontologia de diagrama Figura 3.23 Itens sob gerência de configuração Figura 3.24 Variações de itens de configuração Figura 3.25 Decomposição e dependência entre variações Figura 3.26 Alterações de variações Figura 3.27 Decomposição de linha-base Figura 3.28 Responsabilidade de alteração Figura 3.29 Acesso a itens de configuração Figura 3.30 Ontologia de gerência de configuração Figura 4.1 Itens de configuração armazenados como arquivos Figura 4.2 Itens de configuração atuais armazenados em duas bases de dados (Memória Organizacional e Desenvolvimento) e antigas em arquivos XML Figura 4.3 Itens de configuração atuais e suas cópias armazenados em uma única base de dados e versões antigas em arquivos XML Figura 4.4 Itens de configuração armazenados em uma única base de dados e em arquivos XML Figura 4.5 Relação entre as bases de dados do repositório central de ODE, da GCS e da Gerência de Conhecimento Figura 5.1 Diagrama de caso de uso principal Figura 5.2 Diagrama de Caso de Uso Controlar Solicitação de Alteração Figura 5.3 Diagrama de Caso de Uso Controlar Alteração Figura 5.4 Diagrama de Pacotes Figura 5.5 Diagrama de Classes Parcial do Pacote Conhecimento Figura 5.6 Diagrama de Classes do Pacote Controle Figura 5.7 Diagrama de Classes do Pacote Documentação (SILVA, 2004) Figura 5.8 Diagrama de Classes do Subsistema de Gerência de Configuração Figura 5.9 Ferramenta de Controle de Documentação xii
14 Figura 5.10 Aba SubArtefatos da ferramenta de Controle de Documentação Figura 5.11 Ferramenta de Gerência de Configuração de ODE Figura 5.12 Estrutura do Menu da Ferramenta de Gerência de Configuração de ODE Figura 5.13 Cadastrar Item de Configuração Artefato Figura 5.14 Cadastrar Item de Configuração Tela de Inclusão Dados Gerais Figura 5.15 Cadastrar Item de Configuração Tela de Inclusão Acesso Figura 5.16 Cadastrar Solicitação de Alteração Figura 5.17 Cadastrar Solicitação de Alteração Dados Gerais Figura 5.18 Aprovação de Solicitação de Alteração Figura 5.19 Aprovar Solicitação de Alteração Dados Gerais Figura 5.20 Retirar para Alteração (Checkout) Figura 5.21 Registrar Alteração (Checkin) Figura 5.22 Mensagem de Registro de Alteração bem sucedido Figura 5.23 Registrar Alteração (Checkin) Seleção de Sub-Variações e Variações Dependentes Figura 5.24 Estrutura de planos de riscos Figura 5.25 Busca de Itens de Conhecimento na Gerência de Conhecimento Figura A.1 Diagrama de caso de uso principal Figura A.2 Diagrama de Caso de Uso Controlar Solicitação de Alteração Figura A.3 Diagrama de Caso de Uso Controlar Alteração xiii
15 LISTA DE TABELAS Tabela 3.1 Dicionário de Termos da Ontologia de Artefato Tabela 3.2 Dicionário de Termos da Ontologia de Documentos Tabela 3.3 Dicionário de Termos da Ontologia de Código Tabela 3.4 Dicionário de Termos da Ontologia de Diagrama Tabela 3.5 Dicionário de Termos da Ontologia de Gerência de Configuração xiv
16 Capítulo 1 Introdução Com a crescente demanda no setor de desenvolvimento de software, aumenta a necessidade de se dispor de ambientes automatizados que apóiem todo o processo de desenvolvimento. Essa necessidade se deve também à grande complexidade dos sistemas atuais e à expectativa de que eles tenham alta qualidade e que sejam desenvolvidos respeitando os prazos estabelecidos, sem a necessidade de alocação de mais recursos. Ambientes de Desenvolvimento de Software (ADSs) surgem, então, com o intuito de integrar diferentes ferramentas, construídas para finalidades específicas, mas que operam juntas para apoiar a construção de um produto de software. Tal integração é fundamental para os ADSs e envolve diversas dimensões, tais como apresentação, dados, processo, controle e conhecimento (TRAVASSOS, 1994). Dentre as dimensões de integração, a integração de conhecimento tem merecido destaque, pois possibilita às ferramentas um melhor entendimento da semântica das informações e dos métodos existentes para tratá-las, além de tornar disponíveis os serviços básicos de armazenamento, gerenciamento e utilização do conhecimento descrito e adquirido ao longo do processo de desenvolvimento (FALBO et al., 1995). Neste sentido, sistemas de gerência de conhecimento são bastante úteis, pois objetivam documentar o conhecimento envolvido no desenvolvimento de sistemas, ao invés de deixá-lo apenas na cabeça dos desenvolvedores (NATALI, 2003). Porém, à medida que o conhecimento em um ADS cresce, a sua utilização pode se tornar uma tarefa árdua, muitas vezes inclusive, não sendo possível coletar em tempo hábil a informação necessária para apoiar a tomada de decisão. ADS Semânticos (FALBO et al., 2004a) surgem para tentar solucionar esse problema, incluindo semântica na busca por recursos realmente relevantes para o assunto em mãos. Neste contexto, ontologias tornam-se essenciais, pois podem ser usadas como uma estrutura unificadora para dar semântica e uma representação comum à informação (FALBO et al., 2004a). Além disso, melhoram a comunicação entre desenvolvedores e ferramentas em um ADS, evitando problemas de interpretação e ajudando a minimizar um dos maiores problemas recorrentes em ADSs - a integração de ferramentas. 1
17 Segundo PRESSMAN (2001), uma boa alternativa para ajudar na solução do problema da integração é a utilização de uma estrutura em que o principal mecanismo de integração de ferramentas é a Gerência de Configuração de Software (GCS). A GCS deve ficar no núcleo do ADS e prover mecanismos para, dentre outras coisas, identificar os artefatos a serem gerenciados, prover controle de versão e controle de mudanças, apoiar auditorias e fornecer relatos de configuração dos artefatos gerenciados. Deve estar integrada a todo o ambiente e acessível a todas as ferramentas. Sua finalidade é estabelecer e manter a integridade dos produtos de software ao longo de todo o ciclo de vida, objetivando a maximização da produtividade através da minimização de erros (FIORINI et al., 1998). 1.1 Objetivo do Trabalho Como a integração de ferramentas ainda é um dos maiores desafios na construção de Ambientes de Desenvolvimento de Software, o uso de ontologias pode trazer muitos benefícios. No ADS em que este trabalho está inserido ODE (Ontology based software Development Environment) (FALBO et al., 2003), as ferramentas internas são desenvolvidas baseadas na ontologia de processo de software definida em (FALBO, 1998) ou em ontologias integradas a ela. Essa base ontológica facilita a integração de ferramentas, uma vez que os conceitos da ontologia estão bem definidos e são compartilhados entre as ferramentas integradas ao ambiente (NATALI, 2003). Porém, o problema da integração de ferramentas ainda não está totalmente solucionado em ODE. As ferramentas de ODE compartilham artefatos e a integração desses artefatos ainda não estava sendo feita a contento. Como artefatos são compartilhados entre as ferramentas, antes que essa integração ocorresse, era necessário definir um vocabulário comum, para facilitar a comunicação não apenas entre as ferramentas, mas também entre os desenvolvedores de ODE. Este trabalho teve, então, como um de seus objetivos, construir uma ontologia de artefato para atender a tal propósito. No entanto, a construção de uma ontologia única para artefato descartaria características importantes de seus tipos (documentos, diagramas, artefatos de código, componentes de software e produtos de software). Para solucionar esse problema, a construção da ontologia de artefato se estendeu para a construção de sub-ontologias para tratar alguns tipos específicos: documento, diagrama e artefato de código. A partir de então, 2
18 estabeleceu-se uma estrutura comum à qual cada ferramenta de ODE tem de estar aderente para criar artefatos. A avaliação de tais ontologias ocorreu no decorrer deste e de outros trabalhos que necessitavam sua utilização, como é o caso da ferramenta de apoio à documentação de ODE, XMLDoc (SILVA, 2004). No momento em que artefatos passaram a ser o foco em ODE, outras questões tiveram que ser tratadas, dentre elas: Como esses artefatos serão controlados? Como evitar que um desenvolvedor altere um artefato que estiver sendo utilizado por outro desenvolvedor? Como controlar as diversas versões de um artefato? A Gerência de Configuração de Software passou, então, a ser considerada como aspecto prioritário e a ontologia de artefato foi novamente estendida, porém agora para dar espaço para criação de uma sub-ontologia para GCS. Ainda no intuito de solucionar o problema de integração e tendo em vista a importância assumida pela GCS, outro objetivo deste trabalho foi a definição de uma infraestrutura para GCS. Feitos estudos levando em conta, principalmente, aspectos de integração, chegou-se a uma abordagem que considera uma única base de dados e arquivos XML. Nessa infra-estrutura, é criado um arquivo XML para cada variação (versão ou variante) de um artefato submetido à Gerência de Configuração. Ao se tentar abrir um artefato sob GCS, o arquivo XML referente à variação mais recente do artefato é exibido pela ferramenta XMLDoc. Isso só não ocorre nos casos em que o artefato estiver em alteração, sendo o desenvolvedor solicitante um dos responsáveis por ela, ou quando o artefato não estiver sob gerência de configuração. Nesses dois casos, é disponibilizado o artefato da base de dados e o desenvolvedor pode realizar alterações sobre ele. Sempre que uma nova versão ou variante do artefato for criada, um arquivo XML correspondente também é criado e passa a ser o mais atual. Essa infra-estrutura facilita o acesso à estrutura interna dos artefatos, uma vez que os artefatos em alteração estão disponíveis em base de dados, facilita a integração com as demais ferramentas do ADS e, ao mesmo tempo, não prejudica a atuação da Gerência de Conhecimento de ODE, cuja infra-estrutura foi proposta em (NATALI, 2003). A única mudança na infra-estrutura da Gerência de Conhecimento é o fato da memória organizacional passar a ser constituída, para o caso de artefatos, pelos arquivos XML atuais e não mais pelos artefatos da base de dados de ODE. Assim, a Gerência de Conhecimento passa a não considerar os artefatos que estão em alteração, os que não estão sob Gerência de Configuração e os não-atuais (versões ou variantes antigas dos artefatos). 3
19 Assim, a integração da GCS às demais ferramentas do ambiente, em especial à Gerência de Conhecimento e à Documentação, também foi um dos objetivos deste trabalho. A GCS teve que disponibilizar algumas funcionalidades que pudessem ser utilizadas pelas outras ferramentas do ambiente. Um procedimento básico para utilização dessas funcionalidades foi definido. Esse procedimento engloba ainda a utilização de funcionalidades da ferramenta de Documentação de ODE XMLDoc (SILVA, 2004), tanto pela GCS quanto pelas outras ferramentas. Com base na ontologia de artefato, na infra-estrutura de GCS e nos procedimento de integração definidos, construiu-se uma ferramenta de apoio à GCS em ODE, que tem a finalidade de identificar itens de configuração, controlar versões e controlar alterações dos artefatos de ODE. Por fim, a ferramenta de GCS foi integrada a ODE, à Gerência de Conhecimento, à Documentação e a uma das ferramentas do ambiente, a ferramenta de Gerência de Riscos GeRis (FALBO et al., 2004c). 1.2 Metodologia Este trabalho teve início com uma revisão de literatura sobre os principais temas que o compõem. Foram avaliados e discutidos artigos científicos, relatórios técnicos, livros e trabalhos acadêmicos que tratam sobre Ontologias, Ambientes de Desenvolvimento de Software, Documentação, Gerência de Configuração de Software e Gerência de Conhecimento. A partir desse estudo, foi desenvolvida uma ontologia de artefato, com ontologias específicas para os artefatos de código, documentos e diagramas, para dar apoio à integração e servir como uma linguagem única e padronizada para comunicação entre as ferramentas e os desenvolvedores de ODE. Essa ontologia foi posteriormente complementada com uma ontologia de gerência de configuração de software. A seguir, ferramentas de GCS existentes foram pesquisadas e algumas abordagens para infra-estruturas de GCS foram analisadas, dentre as quais foi selecionada a que é composta de apenas uma base de dados e arquivos em XML, pois, além de gerar poucas alterações em ODE, facilitava a integração com as outras ferramentas e não possuia grande dificuldade técnica. 4
20 O passo seguinte foi estabelecer um procedimento de integração da GCS com as demais ferramentas de ODE. Foi dada ênfase especial à Documentação e à Gerência de Conhecimento. A ferramenta de Documentação é extremamente necessária, pois é utilizada para exibir os artefatos em XML e devido às funcionalidades que disponibiliza para conversão de artefatos da base de dados para arquivos em XML e vice-versa, ou seja, para conversão de arquivos XML para objetos. A Gerência de Conhecimento, por sua vez, teve de ser considerada para que seus serviços não fossem negativamente impactados pela atuação da GCS. Ao contrário, a idéia básica era fazer com que as ferramentas trabalhassem em conjunto e cada uma conseguisse atingir seus objetivos. De posse da infra-estrutura definida, da ontologia de GCS e dos procedimentos para integração de ferramentas foi possível adaptar as especificações de casos de uso e os modelos de análise e projeto da ferramenta de GCS, proposta em (REZENDE, 2001). Tal ferramenta não estava integrada ao ODE e não foi construída com base na ontologia de artefato e na infra-estrutura de GCS desenvolvidas neste trabalho. A infra-estrutura definida foi efetivamente implantada e uma nova ferramenta foi, então, desenvolvida e integrada ao ODE e às suas ferramentas, em especial à Documentação e à Gerência de Conhecimento. Como exemplo, a ferramenta de GCS foi utilizada pela ferramenta de Gerência de Riscos Geris. Parte do trabalho realizado foi publicado nos anais do VII Workshop Íbero-Americano de Engenharia de Requisitos e Ambientes de Software (IDEAS 2004), realizado em Arequipa, Peru, de 03 a 05 de maio de 2004, no artigo intitulado Apoio à Documentação em um Ambiente de Desenvolvimento de Software (NUNES et al., 2004). Além disso, o texto da dissertação foi elaborado à medida que o trabalho avançava, documentando os resultados dos estudos realizados, as técnicas utilizadas e as soluções adotadas, servindo, inclusive de base para outros trabalhos. Em um trabalho paralelo a este, SILVA (2004) utilizou a ontologia de artefato desenvolvida aqui com o intuito de aperfeiçoar a ferramenta de apoio à Documentação de ODE XMLDoc, adequando-a a ela, uma vez que, em sua versão inicial (SOARES, 2002), tal ferramenta não era baseada em ontologias. 5
21 1.3 Organização do Trabalho Nesta dissertação, além deste capítulo que apresenta a Introdução, há mais cinco capítulos e um anexo. O Capítulo 2 Gerência de Configuração de Software, Documentação e Gerência de Conhecimento no Apoio Automatizado ao Processo de Software apresenta os conceitos de Ambientes de Desenvolvimento de Software, enfocando a evolução dos ADS, e apresenta o ambiente ODE. Além disso, discute os principais aspectos relacionados à Gerência de Conhecimento, à Documentação e à Gerência de Configuração e as relações existentes entre elas no contexto de um ADS, em especial de ODE. No capítulo 3 Uma Ontologia de Artefato de Software é apresentada a ontologia desenvolvida neste trabalho e suas sub-ontologias, a saber, Artefato, Documento, Diagrama, Artefato de Código e GCS. As ontologias são apresentadas por meio de questões de competência, diagramas de ontologias usando uma extensão da UML como linguagem de modelagem de ontologias, dicionários de termos e restrições, essas últimas escritas na forma de axiomas em lógica de primeira ordem. O capítulo 4 Integrando Gerência de Configuração de Software, Documentação e Gerência de Conhecimento em ODE discute as abordagens de infra-estrutura de GCS analisadas e a escolhida neste trabalho. Discute, ainda, como integrar a GCS às demais ferramentas de ODE, em especial à Documentação e à Gerência de Conhecimento. O capítulo 5 Uma Ferramenta de Apoio à Gerência de Configuração de Software em ODE apresenta a ferramenta de apoio à Gerência de Configuração desenvolvida no contexto deste trabalho. São apresentadas suas funcionalidades, sua estrutura interna e suas principais características. Além disso, é exemplificada a utilização da GCS pela ferramenta de Gerência de Riscos GeRis. O capítulo 6 Conclusões e Perspectivas Futuras contém as considerações finais sobre o trabalho aqui desenvolvido, apresentando suas contribuições e propostas para trabalhos futuros. Finalmente, o anexo A Funcionalidades da Gerência de Configuração de Software de ODE apresenta o modelo de casos de uso completo da especificação de requisitos da ferramenta desenvolvida neste trabalho. 6
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO SILVANO NOGUEIRA BUBACK ODEDoc: Uma Ferramenta de Apoio à Documentação no Ambiente ODE Vitória 2007 1 SILVANO