• Nenhum resultado encontrado

Aplicações de Ontologias em Engenharia de Software

N/A
N/A
Protected

Academic year: 2021

Share "Aplicações de Ontologias em Engenharia de Software"

Copied!
63
0
0

Texto

(1)

Aplicações de

Ontologias em

Engenharia de

Software

Ricardo de Almeida Falbo

Ontologias para Engenharia de Software Departamento de Informática

(2)

Agenda

• Introdução • Ontologias em Engenharia de SoftwareOntologias no Desenvolvimento Distribuído de SoftwareOntologias no Desenvolvimento de Sistemas MultiagentesCategorização de Ontologias em ES (2)Exemplos de Ontologias Existentes • Web Semântica de ES

(3)

O que é uma ontologia?

• Uma ontologia é uma descrição parcial e explícita de uma conceituação compartilhada. • Tipos de Ontologias: – Quanto ao grau de generalidade (Guarino, 1998): ontologias de fundamentação, ontologias de domínio, ontologias de tarefa e ontologias de aplicação. – Quanto ao grau de generalidade (Scherp et al., 2011): ontologias de fundamentação, ontologias núcleo (core ontologies) e ontologias de domínio – Em relação à fase do processo de desenvolvimento de ontologias (Guizzardi, 2007): ontologias de referência e ontologias operacionais. – Quanto ao nível de axiomatização (Ruiz et al., 2006): ontologias pesadas e ontologias leves.

(4)

Modelos, Meta-modelos e Ontologias

• Ontologias de Referência são modelos conceituais. Modelos Conceituais de sistemas também. Qual a diferença entre eles então? – Escopo. Modelos são destinados a um projeto particular, enquanto ontologias têm um escopo bem mais abrangente, que perpassa vários projetos e organizações, visando ser um modelo consensual para uma certa comunidade. • Muitas vezes, meta-modelos são considerados mais relacionados com ontologias. Contudo, eles são modelos que falam sobre modelos e, portanto, visam melhorar o rigor de modelos sintaticamente semelhantes, mas semanticamente diferentes. Já ontologias visam tratar a semântica.

(5)

Ontologias em Engenharia de Software

• As aplicações de ontologias em ES são múltiplas. • Ontologias podem ser integradas a infraestruturas de desenvolvimento e no próprio software sendo desenvolvido para apoiar várias atividades do processo de software. • Com o surgimento da Web Semântica (WS), iniciativas capitaneadas por organizações de padronização, tais como W3C e OMG, começaram a ser desenvolvidas no sentido de integrar as áreas de WS e ES. (Happel et al., 2010)

(6)

6

Aplicações de Ontologias – Visão Geral

Aplicações de Ontologias (Jasper et al., 1999): – Comunicação – Interoperabilidade de Sistemas – Especificação de Sistemas – Recuperação de Informação

(7)

7

Aplicações de Ontologias – Comunicação

• Comunicação entre pessoas: – Ontologias reduzem confusões terminológicas e conceituais. – Favorecem o entendimento compartilhado entre as pessoas.

(8)

8

Aplicações de Ontologias – Comunicação

• Podem ser usadas para criar uma rede de conceitos dentro de um sistema permitindo às pessoas explorarem e navegarem através dessa rede para entender os relacionamentos internos do sistema. • Comunicação: – Entre pessoas – Entre pessoas e sistemas – Entre sistemas (interoperabilidade)

(9)

9

Aplicações de Ontologias – Interoperabilidade

Ontologias podem ser usadas como uma inter-língua para apoiar a tradução entre diferentes linguagens e representações. • Permitem a comunicação entre sistemas. • Acesso Comum à Informação: uma ontologia é usada para permitir que múltiplas aplicações-alvo tenham acesso a fontes heterogêneas de informação que são expressas usando vocabulário diverso ou formato inacessível (Jasper et al., 1999). • Serviços Compartilhados

(10)

Aplicações de Ontologias – Interoperabilidade

• Sistemas: Dados e Serviços

Arquiteturas Organizacionais: ProcessosRepresentações: Modelos

(11)

11

Aplicações de Ontologias – Especificação

de Sistemas

Ontologias promovem o entendimento compartilhado de um domínio ou tarefa. • Ontologia como Especificação: uma ontologia de um determinado domínio/tarefa é criada e provê um vocabulário para especificar requisitos para uma ou mais aplicações-alvo. A ontologia é usada como uma base para especificação e desenvolvimento de software, permitindo reúso de conhecimento (Jasper et al., 1999).

(12)

Ontologias de Domínio ßà Modelos EstruturaisOntologias de Tarefa ßà Modelos ComportamentaisOntologias de Fundamentação: base para ambos os modelos: Modelagem Conceitual.

Aplicações de Ontologias – Especificação

de Sistemas

(13)

13

Aplicações de Ontologias – Recuperação

de Informação

• Máquinas de busca tradicionais retornam listas de recursos recuperados, oferecendo pouca ou nenhuma informação sobre as relações semânticas existentes entre eles. • Ontologias oferecem um meio de lidar com a representação de recursos de informação: o modelo de domínio descrito por uma ontologia pode ser usado como uma estrutura unificadora para dar semântica e uma representação comum à informação (Davies et al., 2003). • Busca Baseada em Ontologias: uma ontologia é usada para procurar, em um repositório de informação, por recursos desejados, melhorando a precisão e reduzindo a quantidade de tempo gasto na busca (Jasper et al., 1999). • Ex.: Web Semântica

(14)

14

Aplicações de Ontologias – Recuperação

de Informação

Recuperação de itens de conhecimento: artefatos, lições aprendidas, discussões... • Recuperação de componentes, bibliotecas, serviços, frameworks.

(15)

Aplicações de Ontologias

• Inferência

Organização e Reutilização de Conhecimento (Gerência de Conhecimento)

(16)

Uso de Ontologias na ES - Geral

• Integração de Ferramentas: Diferentes projetos ou mesmo stakeholders de um mesmo projeto usam diferentes ferramentas, que muitas vezes não se comunicam. • Problema: InteroperabilidadeOntologias podem ser usadas para apoiar a integração semântica das informações armazenadas nessas ferramentas e de serviços providos por elas.

(17)

Uso de Ontologias na ES - Geral

• Compartilhamento de Conhecimento: necessidades de conhecimento, muitas vezes, não são explicitamente declaradas, mas sim estabelecidas pelo gap entre o conhecimento de um desenvolvedor e o conhecimento necessário para desempenhar uma tarefa à Necessidade de disseminação pró-ativa. • Problema: Encontrar o equilíbrio entre sobrecarga de informação e falta de informação • Problemas relacionados: Provisão, Acesso e Utilização da Informação (incluindo as diferenças entre os contextos de criação e de uso de um item de conhecimento).

(18)

Uso de Ontologias na ES - Geral

• Acesso à Informação: Como encontrar a informação necessária para resolver um problema ou realizar uma tarefa? A existência de grandes repositórios pode dificultar a busca por itens relevantes para o contexto em mãos. • Ontologias podem ser usadas para anotar semanticamente itens de conhecimento, tais como artefatos do processo de software, lições aprendidas, artefatos de colaboração (e-mails, listas de discussão, fóruns etc.). Grupos de interesse podem ser estabelecidos dinamicamente através da ligação entre o conteúdo anotado semanticamente e os perfis dos stakeholders anotados com base na mesma ontologia. Mecanismos de consulta avançados baseados em ontologias podem ser usados para apoiar a busca.

(19)

Uso de Ontologias na ES - Geral

• Provisão de Informação: Desenvolvedores frequentemente evitam esforços de documentação e rejeitam a ideia de ter de descrever itens de conhecimento para reúso (anotação semântica). • Ontologias podem ajudar a explicitamente capturar informações de contexto e oferecer aos desenvolvedores um vocabulário mais preciso e não ambíguo para expressar certas informações. Além disso, certas informações contextuais podem ser derivadas automaticamente de artefatos de software, utilizando-se de métodos de extração (documentação semântica).

(20)

Uso de Ontologias na ES - Geral

• Documentação: Diferentes artefatos contém várias informações inter-relacionadas (p.ex., documentos de requisitos, código fonte e casos de teste). As tarefas de juntar e manter essas ligações ficam a cargo dos usuários e desenvolvedores desses artefatos. • Ontologias podem ser usadas para adicionar semântica a elementos de informação em documentos, de modo que ferramentas automatizadas possam processar e relacionar estas informações (documentação semântica). Ex.: Wiki semânticos.

(21)

Uso de Ontologias na ES - Geral

• Rastreabilidade: Manter matrizes de rastreabilidade é muito trabalhoso. • Ontologias usadas para apoiar a documentação semântica podem ser usadas também para descrever a semântica das relações existentes entre os vários artefatos de software produzidos, permitindo o desenvolvimento de ferramentas automatizadas para a manutenção e recuperação de informações de rastreabilidade.

(22)

Uso de Ontologias na ES - Geral

• Tratabilidade: Software é uma entidade sócio-técnica e, portanto, é necessário manter uma trilha de todas as interações relevantes: humano-humano e humano-software (p.ex., chat que explica uma decisão). • Ontologias podem ser usadas para descrever a semântica das relações existentes entre os vários artefatos, incluindo aqueles que não são classicamente definidos como entrada ou saída de uma atividade do processo de desenvolvimento.

(23)

Uso de Ontologias na ES – Processo de

Desenvolvimento

• Requisitos: As principais razões de fracassos de projetos de software são: falta de envolvimento de usuários, requisitos incompletos ou mal especificados e volatilidade de requisitos. • Uma vez que engenheiros de software normalmente não são especialistas de domínio, eles precisam aprender sobre o domínio do problema com usuários. Obter um entendimento compartilhado é um dos principais desafios da ER.

(24)

Uso de Ontologias na ES – Processo de

Desenvolvimento: Requisitos

• Ontologias podem ser usadas como uma especificação de domínio (modelo de domínio) compartilhada, formal e não ambígua, que sirva de ponto de partida para a especificação de requisitos para vários sistemas naquele domínio (abordagem de Engenharia de Domínio).

(25)

25

Engenharia de Domínio

• Enfoque sistemático para a produção de componentes reutilizáveis. • Atividades: – Análise de Domínio: visa representar requisitos comuns de uma família de aplicações por meio de modelos de domínio; – Projeto de Domínio: busca prover modelos arquiteturais para uma classe de aplicações a partir de um único modelo de domínio; – Implementação de Domínio: prover implementações de componentes que representam funcionalidades básicas de aplicações relacionadas a um domínio.

(26)

Uso de Ontologias na ES – Processo de

Desenvolvimento: Requisitos

• Uso de distinções ontológicas providas por ontologias de fundamentação durante a modelagem conceitual de sistemas. P.ex., uso de OntoUML na modelagem conceitual de sistemas.

(27)

Uso de Ontologias na ES – Processo de

Desenvolvimento

• Arquitetura de Software: Na maioria dos sistemas, a lógica de negócio é codificada em uma linguagem de programação em um componente da arquitetura. Mudanças na lógica de negócio requerem modificações no código fonte e análises de impactos. • Arquiteturas baseadas em regras e uso de máquinas de regras podem ser uma solução para este problema. A ideia é separar a lógica de negócio e a lógica de processamento. • Em uma arquitetura baseada em regras, uma ontologia pode ser um componente (em tempo de execução) da camada de lógica de negócio, separado do componente de lógica de processamento (papel desempenhado por uma máquina de regras – reasoner).

(28)

Uso de Ontologias na ES – Processo de

Desenvolvimento

• Reutilização de Componentes / Serviços Web: Estes são casos mais específicos do problema de acesso à informação, contextualizados nas fases de projeto e implementação do processo de desenvolvimento. A questão básica é: existem componentes/serviços que podem ser reusados? Como encontrá-los e usá-los no contexto do projeto corrente? • Ontologias podem ser usadas para descrever componentes / serviços web (anotações semânticas), de modo a permitir o uso posterior de mecanismos de busca mais convenientes e poderosos. • No caso de serviços web semânticos, descoberta, matching e composição automáticos de serviços podem ser feitos, tomando por base a conceituação compartilhada oferecida pela ontologia.

(29)

Uso de Ontologias na ES – Processo de

Desenvolvimento

• Manipulação de Erros: Outro caso mais específico do problema de acesso à informação, contextualizado nas fases de teste, depuração e manutenção. Quando um erro é apresentado, o que ele significa? Como tratá-lo? • Geralmente, é útil encontrar ocorrências similares do mesmo erro e, para tal, desenvolvedores, muitas vezes, recorrem a mecanismos de busca bem gerais, como o Google. O problema é que o contexto pode ser muito diferente... • Ontologias podem ser usadas para se fazer uma mediação entre os diferentes contextos, tomando por base anotações semânticas baseadas em ontologia.

(30)

Uso de Ontologias na ES – Processo de

Desenvolvimento

• Testes: O projeto de casos de teste requer conhecimento tanto do domínio do problema quanto do domínio da solução e das técnicas a serem aplicadas. • Ontologias de domínio podem ser usadas para apoiar testadores, que normalmente não estão tão envolvidos com o domínio quanto desenvolvedores, a compreender melhor o domínio do sistema a ser testado. • Além disso, anotações semânticas podem ser usadas para ligar informação relacionada no projeto (ou até em outros projetos), como p.ex., casos de teste e requisitos.

(31)

Uso de Ontologias na ES – Processo de

Desenvolvimento

• Manutenção: Durante a manutenção, há muitos tipos de informação relacionados, mas sem uma conexão explícita, tornando difícil a solução de um problema. • Ontologias podem ajudar a conectar comunicações eletrônicas (e-mails, listas de discussão), relatos de bugs e itens de software afetados, provendo uma camada para integrar dados de diferentes fontes (interoperabilidade semântica) em um modelo semântico unificado. • Os dados combinados podem ser, então, usados para derivar informação adicional por meio de inferências ou mineração de dados, informação essa que não estava explicitamente declarada em nenhuma das bases.

(32)

Uso de Ontologias na ES

• Ambientes de Desenvolvimento de Software (ADSs): precisam ter modelos de processos, de modo a compreender, dentre outros, as atividades que estão sendo realizadas e as dependências entre artefatos, de modo a apoiar mais efetivamente os desenvolvedores na realização de suas tarefas. • Ontologias do domínio de processos de software podem contribuir para a realização de ADSs Semânticos, provendo a base para um suporte baseado em conhecimento e sensível ao contexto do usuário.

(33)

Desenvolvimento Distribuído de Software

• Desenvolvimento Distribuído de Software (DDS): colaboração entre grupos de desenvolvedores que

trabalham em conjunto, localizados em cidades ou países diferentes.

(34)

34

Desafios do DDS - Comunicação

Awareness: Consciência, Percepção e Conhecimento das Atividades Desenvolvidas. – O que está acontecendo? – Quem está realizando determinada tarefa? – Onde ela está acontecendo? – Quem precisa ser notificado acerca de novas informações? – Qual a dependência entre requisitos / funcionalidades? • Contexto: Qual o contexto de cada integrante da equipe?

(35)

35

Desafios do DDS - Comunicação

• Dispersão Geográfica e Temporal: – Dificuldade de obter consenso. – Estados físicos e mentais dos participantes. • Estilos de Comunicação: Preocupações com a forma e o conteúdo da comunicação. • Formas de Comunicação: – Comunicação informal é reduzida. – Necessidade de comunicação indireta. – Prejuízo para a riqueza de contexto. – Sentido de uma frase não está apenas nas palavras. Outros elementos dão sentido a uma frase, tais como tom de voz, linguagem corporal, expressão facial, uso do silêncio etc.

(36)

Uso de Ontologias no DDS

• Coordenação: sua necessidade tem origem nas

dependências entre as tarefas do processo de software, o que requer que diferentes pessoas coordenem seus

trabalhos para atingir um objetivo ou produto comum.

• Problema: Falta de consciência (awareness) do trabalho dos outros. • Os usos de ontologias discutido nos problemas relacionados ao acesso à informação são igualmente úteis para a formação da consciência, em especial: anotação semântica de itens de conhecimento, mecanismos de busca baseados em ontologias, pró-atividade na disseminação de conhecimento.

(37)

Agentes

• Agentes são sistemas computacionais capazes de ações autônomas em algum ambiente, a fim de alcançar seus objetivos de projeto. • Um agente, tipicamente, sente seu ambiente (por sensores físicos, no caso de agentes situados na parte do mundo real, ou por sensores de software no caso de agentes de software) e disponibiliza um repertório de ações que podem ser executadas para modificar o ambiente, o qual pode responder não-deterministicamente à execução dessas ações.

(38)

Sistemas Multiagentes (SMAs)

• São sistemas computacionais compostos por diversos agentes interagindo no ambiente a fim de alcançar seus objetivos de projeto. • Em um SMA, agentes precisam se comunicar a fim de alcançar melhor os seus objetivos ou os objetivos do sistema/sociedade no qual eles existem. • Em um SMA, agentes precisam coordenar suas ações com a de outros agentes para atingir os objetivos do sistema ou sociedade. • Ontologias podem ser usadas para associar significado às mensagens trocadas por agentes, ou para prover uma conceituação comum para agentes em um SMA.

(39)

Categorização de Ontologias em ES

• Segundo Happel et al. (2006), o uso de ontologias na ES pode ser categorizado segundo duas dimensões principais: – Uso em tempo de desenvolvimento x em tempo de execução – Uso para tratar problemas relativos ao domínio x aspectos de infraestrutura

(40)

Categorização de Ontologias em ES

Ontology-driven development (ODD): uso de ontologias em tempo de desenvolvimento, descrevendo o domínio do problema

(41)

Categorização de Ontologias em ES

Ontology-enabled development (OED): uso de ontologias em tempo de desenvolvimento com o objetivo de apoiar desenvolvedores em suas tarefas.

(42)

Categorização de Ontologias em ES

Ontology-based architectures (OBA): uso de ontologias como um artefato em tempo de execução (ontologia como um elemento central na arquitetura do software).

(43)

Categorização de Ontologias em ES

Ontology-enabled architectures (OEA):

uso de ontologias

para prover suporte de infraestrura em tempo real (p.ex., descoberta automática de

(44)

Categorização de Ontologias em ES

• Ruiz e Hilera (2006) propõem uma taxonomia de ontologias para Engenharia e Tecnologia de Software (SET) formada por duas categorias genéricas: – Ontologias do Domínio de SET: descrevem conhecimento acerca do domínio de SET. – Ontologias como Artefatos de Software: usadas como artefatos durante o processo de software.

(45)

Categorização de Ontologias em ES

• Ontologias do Domínio de SET são classificadas

considerando uma distinção entre Engenharia de Software e Tecnologia de Software, conforme estabelecido nas

(46)

Categorização de Ontologias em ES

• Ontologias de ES, quanto à cobertura do domínio de ES, podem ser ontologias de todo o domínio (ditas genéricas) ou de um subdomínio (ditas específicas). • Ontologias de todo domínio têm o ambicioso objetivo de modelar o corpo de conhecimento de ES por completo. São baseadas em fontes como SWEBOK, livros e glossários. • Ontologias de subdomínios buscam tratar a conceituação de apenas parte (subdomínio) desta disciplina. – Algumas ontologias de subdomínios de SET são elaboradas levando em conta a possibilidade de integração com outras ontologias de subdomínio, visando estabelecer uma rede de ontologias (ontology network).

(47)

Categorização de Ontologias em ES

Software Engineering (SE) OntologiesGeneric (all-domain)Specific (sub-domain) • Software Requirements • Software Design • Software Construction • Software Testing • Software Maintenance • Software Configuration Management • Software Quality • Software Engineering Tools & Methods • Software Engineering Process • Software Engineering Management

(48)

Categorização de Ontologias em ES

• As categorias e subcategorias da taxonomia da ACM foram usadas para classificar Ontologias de Tecnologia de

(49)

Categorização de Ontologias em ES

Software Technology (ST)Software • Programming Techniques • Programming Languages • Operating Systems – Data • Data Structures • Data Storage Representations • Data Encryption • Coding and Information Theory • Files – Information Technology and Systems • Models and Principles • Database Management • Information Storage and Retrieval • Information Technology and Systems Applications • Information Interfaces and Representation (HCI)

(50)

Categorização de Ontologias em ES

• Ontologias como Artefatos de Software são classificadas em um primeiro nível em ontologias como artefatos usados em tempo de desenvolvimento ou usados em tempo de execução. • A categoria das ontologias usadas em tempo de desenvolvimento é subdividida com base na função dos processos de ciclo de vida nos quais elas são principalmente usadas, tomando por base a ISO/IEC 15504-2 (1998). • Para simplificar, apenas dois níveis de quebra (grupos de processo e categorias de processo) foram usados, tendo sido desconsiderados, portanto, o nível de processos individuais.

(51)

Categorização de Ontologias em ES

• Grupos e Categorias de Processo da ISO 15504-2 (1998) – Processos Primários • Cliente-Fornecedor • Engenharia – Processos de Apoio • Apoio – Processos Organizacionais • Gerência • Organização • Taxonomia de Ontologias como Artefatos usados em tempo de desenvolvimento: – Para Processos de Engenharia • Desenvolvimento • Manutenção – Para Outros Processos • Cliente-Fornecedor • Apoio • Gerência • Organização

(52)

Categorização de Ontologias em ES

• A categoria das ontologias usadas em tempo de execução é subdividida em duas sub-categorias, tomando por base a classificação de Guarino:

– Ontologias como artefatos arquitetônicos: quando a ontologia é parte da arquitetura do software, sendo um componente adicional que trabalha com o resto do sistema em tempo de execução para atingir os objetivos do software.

– Ontologias como recursos de informação: quando a ontologia é usada pelo software em tempo de execução para um

propósito específico, atuando como um recurso de

informação, normalmente remoto, sobre o qual o software opera, realizando, p.ex., consultas específicas.

(53)

Exemplos de Ontologias de SE Existentes

• Ruiz e Hilera (2006) fazem um levantamento de diversas iniciativas relativas a ontologias do Domínio de SET encontradas na literatura até 2005. • Software Engineering (SE) Ontologies – All-domain (3) • SWEBOK (2) • IEEE Glossary of Software Engineering Terminology (1)

(54)

Exemplos de Ontologias de SE Existentes

– Sub-domain (Ruiz; Hilera, 2006) • Software Engineering Process (Processos de Software) (4) • Software Maintenance (5) • Software Quality (2) • Software Engineering Management (Medição de Software) (2) • Software Requirements (4) – Negociação de Requisitos (Win-Win) (1) – Modelagem de Sistemas » Modelos e Ontologias (1) » UML (1) – Modelagem de Agentes (1) • Software Design (3) – ES Baseada em Componentes (1) – Modelagem de Sistemas » Modelos e Ontologias (1) » UML (1)

(55)

Exemplos de Ontologias de ST Existentes

• Software Technology (ST) Ontologies – Software • Programming Techniques (5) – Serviços (3) – Agentes (1) – Computação Ubíqua e Pervasiva (1) • Programming Languages (3) – Código-Fonte (Genérica) (1) – Java (2) – Data • Criptografia de Dados (1) – Information Technology and Systems • Database Management (1 – SQL) • Information Interfaces and Representation (2 – Human-Computer Interaction)

(56)

Exemplos de Uso de Ontologias como

Artefatos de Software

• Ontologias como artefatos de software usados em tempo de desenvolvimento: – Processos de Engenharia • Processo de Desenvolvimento (14) – Destaque para a fase de Análise de Requisitos, com 11 propostas. • Processo de Manutenção (1) – Outros Processos (Não Engenharia) • Processos de Apoio (3): Garantia da Qualidade, Verificação & Validação, Documentação (Rastreabilidade) • Processos de Gerência (3): Gerência de Conhecimento (1), Definição de Processos de Software (2, sendo que um deles também trata da gerência do projeto).

(57)

Exemplos de Uso de Ontologias como

Artefatos de Software

• Ontologias como artefatos de software usados em tempo de execução: – Como artefatos arquitetônicos (3): • Os autores destacam, ainda, que há várias propostas usando arquitetura de sistemas baseados em conhecimento (máquina de inferência atuando sobre um repositório que contém a ontologia), mas, por serem muito comuns, eles preferem citar três exemplos que usam outras arquiteturas. – Como recursos de informação (3) • Máquinas de busca na Web (Semantic Web) • Ontologias como substitutos de bases de dados para o armazenamento de informação (na verdade armazenamento em triplas) • Ainda que não citado nos exemplos, os autores destacam aplicações da Semantic Web e Web Services Semânticos.

(58)

Web Semântica de ES

• A Web Semântica de ES (Happel et al., 2010) é uma Web na qual agentes realizam tarefas de desenvolvimento de software baseados em dados enriquecidos semanticamente. • A ES é um cenário apropriado para esta visão, uma vez que o conhecimento em projetos de software está tipicamente espalhado em vários locais, formatos, sistemas e pessoas. • Especialmente em grandes projetos e projetos distribuídos, a informação é heterogênea e distribuída.

(59)

Web Semântica de ES

• Na Web Semântica de ES, desenvolvedores podem obter uma visão geral bem mais completa e precisa da informação relacionada à sua tarefa corrente. • Além disso, eles podem se beneficiar de recursos adicionais, tais como acesso e compartilhamento fácil de experiências de outros desenvolvedores e checagem de consistência.

(60)

Web Semântica de ES

• A visão da WS de ES ainda não está concretizada, mas ela pode calcada em cima dos seguintes pilares: – Dados de projeto devem ser expostos seguindo a abordagem da web semântica (metadados anotados semanticamente, com base em ontologias). – Ferramentas devem ser construídas para serem capazes de produzir e consumir dados e serviços semânticos (interoperabilidade semântica). – Ferramentas devem fazer uso de mecanismos de busca baseada em ontologias, sendo capazes de combinar informação externamente relevante (p.ex., na Web) e dados de outros projetos com dados do projeto corrente e do contexto específico do desenvolvedor (incluindo a tarefa sendo realizada).

(61)

Web Semântica de ES

• A concretização da Web Semântica de ES depende de três fatores principais (Happel et al. 2010): – Existência de ontologias apropriadas para os vários fins discutidos anteriormente. – Existência de metadados (anotações) semânticos – Existência de ferramentas poderosas capazes de incrementar esses dados para prover novos serviços.

(62)

Web Semântica de ES

• Segundo Happel et al. (2010): – O desenvolvimento e manutenção de ontologias é um desafio por si só, que precisa ser justificado por ganhos de produtividade. – Contudo, para avaliar o sucesso em vários dos cenários vislumbrados do uso de ontologias em ES, é preciso aplicá-las (problema do “ovo e da galinha”). – Não há (nem haverá) uma única ontologia satisfazendo todas as necessidades. – São várias as aplicações de ontologias em ES e, portanto, as ontologias resultantes vão variar em expressividade, escopo e propósito.

(63)

Referências

• Happel, H.J., Seedorf, S., Applications of Ontologies in Software Engineering. In: 2nd International Workshop on Semantic Web Enabled Software Engineering, 2006. • Happel, H.J., Maalej, W., Seedorf, S., Applications of Ontologies in Collaborative Software Development. In: Collaborative Software Development, Mistrik, I., Grundy, J., Hoek, A., Whitehead, J. (Eds.), Springer, 2010, pp. 109 – 129. • Ruiz, F., Hilera, J. R., Using Ontologies in Software Engineering and Technology, In: Ontologies in Software Engineering and Software Technology, Calero, C., Ruiz, F., Piatinni, M. (Eds.), Springer, 2006, pp. 62 – 119. • Dillon, T, S., Chang, E., Wongthongtham, P., Ontology-based Software Engineering - Software Engineering 2.0, 19th Australian Conference on Software Engineering, 2008.

Referências

Documentos relacionados

Diante desse contexto, o presente artigo tem por objetivo, caracterizar o cluster das empresas madeireiras de Telêmaco Borba/PR, tendo como enfoque as formas de relações

Neste estudo, do total de amostras coletadas (196), 86,22% apresenta- ram alterações microscópicas, sen- do o restante representado por frag- mentos de fígado sem qualquer tipo

A literatura assevera que estratégias edu- cativas voltadas para o ensino dos diagnós- ticos de enfermagem têm sido desenvolvidas com vistas a melhorar o estabelecimento do raciocínio

Este trabalho compara dois métodos de pós-processamento estatístico, Model Output Statistics (MOS) e Model Output Calibration (MOC), com o modelo numérico de previsão do tempo (BRAMS)

Sendo assim, é provável compreender a condição humana desse sujeito inserido no contexto escolar, estabelecendo relações e associando teoria e prática, visando uma

Doutrina, ensino, testemunho.. Na abordagem entitiva do conceito de documento citaremos: Otlet, Briet, Buckland e Rendón Rojas, autores com destacada atuação na área da ciência

2009, considerando a regionalização da rede, para criação de plano de trabalho de mobilização e assinatura da lei de iniciativa popular dos griôs e mestres de tradição

! ATENÇÃO! Seja consciente do perigo de incêndio e de explosão, e dos riscos inerentes a respirar os vapores de combustível. Pare o motor antes de abastecer combustível.