390 likes | 463 Views
Comparação do desenvolvimento de ontologias com a modelagem de features para o desenvolvimento de linguagens específicas de domínio. D isciplina PCS 5704 Profa. Solange Souza Aluno Sergio Martins Fernandes 28/11/2008. Contexto. Desenvolvimento dirigido por modelos (MDD)
E N D
Comparação do desenvolvimento de ontologias com a modelagem de features para o desenvolvimento de linguagens específicas de domínio Disciplina PCS 5704 Profa. Solange Souza Aluno Sergio Martins Fernandes 28/11/2008
Contexto • Desenvolvimento dirigido por modelos (MDD) • Vem abordar problemas da engenharia de software • Complexidade das plataformas de desenvolvimento evolui mais rapidamente que a habilidade das linguagens de programação em mascará-la • MDD prega a elaboração de modelos gráficos do ambiente de negócio e/ou do aplicativo • Tradução automática desses modelos em código em linguagem de terceira geração
Contexto • Vertente do MDD propõe o uso de Linguagens Específicas de Domínio para modelagem (DSL) • DSLs são linguagens que oferecem poder de expressividade focado num domínio do problema específico • Ou seja, são baseadas apenas nos conceitos e características relevantes de um domínio
Contexto • Exemplo de DSL
Contexto • Para que essa abordagem que agrega MDD e DSLs possa ser utilizada em larga escala, é importante, entre outros aspectos, que o processo de desenvolvimento de DSLs seja equacionado. • (Mernik, M.; Heering, J.; Sloane, A.; 2005) esboça um processo em 4 fases • Decisão, análise, design e implementação.
Contexto • Fase de Análise • O domínio do problema é identificado e conhecimento sobre o domínio é adquirido. • Entradas • Várias fontes de conhecimento explícito ou implícito sobre o domínio, tais como documentação técnica, conhecimento provido por especialistas no domínio, código de linguagem de propósitos gerais existente, e pesquisas em clientes. • Saída • Varia bastante, mas consiste basicamente de terminologia específica do domínio e semântica numa forma mais ou menos abstrata. • Captura de conhecimento, representação do conhecimento, e desenvolvimento de ontologias são potencialmente úteis na fase de análise.
Objetivo • Efetuar um estudo sobre a modelagem de features e o desenvolvimento de ontologias • Comparar ambas as abordagens para a análise de domínios, identificando pontos fortes e fracos de cada abordagem • Eventualmente, eleger uma delas como mais apropriada à fase de análise, no desenvolvimento de DSLs.
Justificativa (1/2) • (Mernik, M.; Heering, J.; Sloane, A., 2005) considera que tanto a modelagem de features quanto o desenvolvimento de ontologias são abordagens válidas para a análise de domínio, no contexto do desenvolvimento de DSLs. • Entretanto, não apresenta justificativas para essa afirmativa, nem a desenvolve. • Estudos relacionam as duas abordagens. Por exemplo: • (Czarnecki et al. ; 2006) relaciona ontologias e modelagem de features. Em particular, apresenta a modelagem de features como sendo uma vista sobre ontologias. • (Falbo, R.; Guizzardi, G.; Duarte, K.; 2002) apresenta uma visão do uso de ontologias para a engenharia de domínio, exatamente o ramo em que a modelagem de features se desenvolveu.
Justificativa (2/2) • Textos citados explicitamente discordam quanto à abordagem mais adequada. • Tipicamente, porém, situam-se no contexto de linhas de produto de software, não o desenvolvimento de DSLs, que tem requisitos distintos. • Para esse contexto específico, é importante identificar diretrizes mais claras sobre como capturar e representar conhecimento sobre o domínio.
Conceitos Ontologias
Definições sobre Ontologia • Em filosofia, significa a teoria da existência. • Tenta explicar o que é existir e como o mundo é configurado através da introdução de um sistema de categorias críticas para identificar as coisas e as relações intrínsecas entre elas. • [Gruber, T.] “Uma especificação explícita da conceituação“ • [Mizoguchi, R.; 2003] Uma ontologia consiste de conceitos, organização hierárquica desses conceitos, relações entre eles, e axiomas para formalizar as definições e relações.
Tipos de Ontologia (1/3) • Ontologia Superior (upper ontology) • Ontologia do ramo da filosofia, que discute a natureza do ser, e classifica o que existe no mundo. • Aristóteles, por exemplo, definiu um conjunto de dez categorias: matéria, quantidade, qualidade, relação, localização, tempo, etc.
Tipos de Ontologia (2/3) • Ontologias de Tarefa versus Ontologias de Domínio • Uma ontologia de tarefacaracteriza a arquitetura computacional de um sistema baseado em conhecimento que desempenha uma tarefa. • Uma ontologia de domíniocaracteriza conhecimento sobre o domínio no qual a tarefa é executada. • É comum que, inadequadamente, uma ontologia seja uma mistura de ontologia de tarefa e de domínio e, dessa forma, a ontologia se torne muito pouco reutilizável.
Tipos de Ontologia (3/3) • Ontologia pesada versus ontologia leve • Ontologias leves consistem em hierarquias de tópicos, com pouca consideração sobre definições rigorosas de conceitos, ou distinção entre conceito e palavra, por exemplo. • Tipicamente, ontologias para mecanismos de busca na web são ontologias leves. • Ontologias pesadas são desenvolvidas com muita atenção ao significado preciso de cada conceito, princípios organizacionais desenvolvidos em filosofia, e relações semanticamente rigorosas entre conceitos. • Requerem uma conceituação cuidadosa do mundo para garantir consistência e fidelidade ao modelo. • É comum que ontologias superiores sejam também pesadas.
Áreas de Aplicação de Ontologias (1/2) • Ontologia como vocabulário comum • Aplicação mais direta de ontologias, e o primeiro passo pra a sistematização de conhecimento sobre um domínio. • Ontologias para auxiliar o acesso a informações • A internet é uma imensa fonte de informação, e ontologias podem propiciar o acesso a mais informações e de forma mais inteligente.
Áreas de Aplicação de Ontologias (2/2) • Ontologias como uma forma de mútua compreensão • Para comunicação entre seres humanos, entre seres humanos e máquinas, e entre máquinas. • Por exemplo, para ambientes de bancos de dados distribuídos. • [Park, J.; Ram, S.; 2004] advoga o uso de ontologias para a integração de dados corporativos, capturando conflitos semânticos entre dados de bases de dados distintas. • Ontologia como especificação • Por exemplo, na área de linhas de produto de software. • Ontologias como base para a sistematização de conhecimento
Como representar Ontologias (1/2) • Ontologias pesadas precisam ser representadas de maneira mais formal que ontologias leves • [Mizoguchi, R.; 2003] cita diversas linguagens formais, especializadas em representar ontologias. Dentre elas • Ontolingua, criada pela Universidade de Stanford; • RDF (Resource Description Framework), desenvolvida pelo consórcio W3C; • OWL (Web Ontology Language), também desenvolvida pelo W3C.
Fragmento de código em Ontolingua (define-class Tutoring-objective (?t-obj) "Attributes are also represented as slots.” :def (and (individual ?t-obj) (value-type ?t-obj Tutoring.policy Policy)) :axiom-def (subclass-partition Tutoring-objective (setof Transfer-of-knowledge Remedy)))
Como representar ontologias (2/2) • Outros autores propõem a representação de ontologias através de modelos orientados a objetos. • [Asikainen, T.; Mannisto, T; Soininen, T.; 2007], propõe uma ontologia denominada Kumbang expressa utilizando um perfil (profile) UML • Diagramas de classes com estereótipos específicos e restrições utilizando a linguagem OCL (Object Constraint Language).
Conceitos Modelagem de features
Features • Feature • Propriedade importante de uma instância de um conceito • Permite identificar diferenças e aspectos comuns entre instâncias de um conceito • Conceito • Representa um elemento ou estrutura no domínio de interesse. • O foco de interesse não são conceitos matemáticos, que possuem definição precisa, mas conceitos utilizados em nossa comunicação cotidiana utilizando linguagem natural, como cão, mesa, mobília, cliente, conta bancária • A modelagem de features é a atividade de modelar as propriedades comuns e variáveis de conceitos, e das interdependências entre essas propriedades, organizando-as num modelo coerente denominado modelo de features.
Modelo de features • Diagrama de features e algumas informações adicionais • Tais como descrições semânticas de cada feature, justificativa para a inclusão de cada feature e restrições • Entre outras informações que podem ser relevantes num determinado contexto. • Um diagrama de features consiste num conjunto de nós, um conjunto de segmentos direcionais e decorações nesses segmentos. • A raiz de um diagrama de features representa um conceito. • Há features mandatórias, alternativas e opcionais.
Áreas de Aplicação de Modelos de Feature (1/2) • Os conceitos de feature e de modelagem de features foram introduzidos pelo método Feature-Oriented Domain Analysis, criado pelo Software Engineering Institute (SEI) para a modelagem de domínio. • O propósito da modelagem de domínio é selecionar e definir o domínio em foco, e coletar informação relevante sobre o domínio e integrar essa informação num Modelo de Domínio.
Áreas de Aplicação de Modelos de Feature (2/2) • A comunidade de linha de produto de software incorporou a modelagem de features ao processo de construção de linhas de produtos • Por considerar que modelos de domínio expressos como diagramas de features destacam muito convenientemente a variabilidadedo domínio, ou seja, quais features são mandatórias e quais são opcionais.
C f1 f2 f3 Sintaxe do Diagrama de features Diagrama de features com três features
C f1 f2 f3 C f1 f2 f3 f4 Sintaxe do diagrama de features • Diagrama com features mandatórias A feature é incluída na descrição da instância, desde que o pai dela também o seja • Diagrama com features opcionais A feature pode ou não ser incluída na descrição da instância, se o pai dela o for
C f1 f2 f3 f4 f5 Sintaxe do diagrama de features C f1 f2 f3 f4 f5 Dois conjuntos de features alternativas Apenas uma feature de cada conjunto é incluída na descrição da instância Dois conjuntos de or-features Um subconjunto não vazio de cada conjunto é incluído na descrição da instância
Exemplo de Modelode features(1/3) Operação Financeira Comprador Liquidação à Vista Liquidação futura Vendedor Ativo Objeto Negociado em balcão Negociado em bolsa Futuro Opção Derivativos versus mercado à vista
Operação no Mercado Futuro (2/3) Futuro Contrato Padronizado Valor inicial da cota Qtde. Cotas Ajuste Diário Liquidação do contrato Critério Ajuste Diário Data Vencimento Unidade de Negociação Valor Ajuste Diário No vencimento Por Reversão Financeira Valor. Cota Por entrega física Valor. Cota
Operação no mercado de opções (3/3) Opção Exercício Preço de Exercício Opção de Compra Opção de Venda Lançador da Put4 Titular da Call1 Lançador da Call2 Titular da Put3 Paga prêmio Direito de comprar Recebe prêmio Obrigação de comprar Paga prêmio Direito de Vender Recebe prêmio Obrigação de comprar 1. Comprador de uma opção de compra 2. Vendedor de uma opção de compra 3. Comprador de uma opção de venda 4. Vendedor de uma opção de venda
Textos pró modelagem de features • A referencia mais relevante sobre modelagem de features é o texto de [Czarnecki, K.; Eisenecker, U.; 2000] • Analisa diversos métodos de modelagem de features e sintetiza uma notação e um método próprios, a partir das referências. • Apresenta uma argumentação detalhada sobre as vantagens da construção de diagramas de features para expressar conhecimento sobro um domínio. • Os principais argumentos a favor da utilização de modelagem de features são: • Simplicidade do processo de construção dos modelos e dos modelos propriamente ditos; • O fato de que um modelo de features representa apenas um conjunto de assertivas sobre um domínio, não impondo nenhuma definição da estrutura dos elementos desse domínio.
Textos pró modelagem de features • [Czarnecki, K. et al.; 2006] faz uma comparação direta entre a modelagem de features e a definição de ontologias de domínio. • Argumenta que as vantagens da modelagem de features são sua simplicidade e intuitividade e que, por outro lado, ontologias têm um poder descritivo mais rico. • Considera que o espectro semântico entre elas não é vazio • Propõe algumas extensões à notação incial proposta para a modelagem de features que aproximaria essa técnica da construção de ontologias.
Textos pró ontologia • [Asikainen, T.; Mannisto, T; Soininen, T.; 2007] propõe uma ontologia específica, denominada Kumbang, para expressar variabilidade em linhas de produto de software. • Argumenta que falta a métodos baseados em modelagem de features uma fundação conceitual bem definida. • Em particular, faltaria rigor ao especificar os conceitos de modelagem, as inter-relações entre eles, e a semântica correspondente. • A ontologia proposta é, segundo os autores, descrita de forma rigorosa utilizando tanto linguagem natural quanto um perfil UML.
Textos pró ontologia • [Falbo, R.; Guizzardi, G.; Duarte, K.; 2002] também propõe o uso de ontologias para modelagem de domínio. • Critica os métodos nos quais [Czarnecki, K. et al.; 2006] se baseou para construir sua abordagem de modelagem de features • Alega que a semântica das features não é definida de forma precisa, e não fica formalmente claro o que se denomina feature. • Propõe uma notação formal para representar ontologias, e uma técnica para a derivação de modelos orientados a objetos a partir da representação da ontologia.
Análise (1/2) • Os pontos chave são, por um lado, a simplicidade da construção de modelos de features e, por outro lado, a falta de formalismo desses modelos • Em contraposição ao formalismo propiciado por ontologias pesadas. • Para os objetivos deste texto, esse formalismo é algo importante • Porque as linguagens específicas de domínio que se deseja construir são linguagens formais, no sentido que terão que ser processadas por computador. • Seria possível construir uma DSL formal tendo como referência um modelo de domínio informal, expresso através de diagramas de features • Mas o esforço seria maior, bem como a possibilidade de falhas.
Análise (2/2) • Além disso, ontologias podem ser expressas de maneira formal utilizando notações como a a Kumbang, apresentada na seção 2.4, que utiliza num substrato formal da UML. • Isso pode ser uma oportunidade para efetuar a transição entre o modelo de domínio e o design da DSL, já que tipicamente a DSL é expressa utilizando uma metalinguagem que é um substrato formal da UML. • Isso pode contribuir para resolver um problema chave da construção de DSLs, a transição do modelo de domínio para o design da UML.
Conclusões • Foi encontrada referencia bibliográfica relativamente rica sobre a questão, ainda que num contexto diferente daquele almejado por esse texto. • A revisão bibliográfica permitiu obter conclusões relativamente sólidas sobre a questão proposta pelo artigo. • Seria interessante fazer algum experimento para comparar o uso de diagramas de features com a construção de ontologias.