63
Aplicações de Ontologias em Engenharia de Software Ricardo de Almeida Falbo Ontologias para Engenharia de Software Departamento de Informática Universidade Federal do Espírito Santo

Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

Embed Size (px)

Citation preview

Page 1: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

Aplicações de Ontologias em Engenharia de

Software

Ricardo de Almeida FalboOntologias para Engenharia de Software

Departamento de InformáticaUniversidade Federal do Espírito Santo

Page 2: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

Agenda• Introdução• OntologiasemEngenhariadeSoftware• OntologiasnoDesenvolvimentoDistribuídodeSoftware• OntologiasnoDesenvolvimentodeSistemasMultiagentes• CategorizaçãodeOntologiasemES(2)• ExemplosdeOntologiasExistentes• WebSemânticadeES

Page 3: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

Oqueéumaontologia?• Umaontologiaéumadescriçãoparcialeexplícitadeuma

conceituaçãocompartilhada.• TiposdeOntologias:– Quantoaograudegeneralidade(Guarino,1998):ontologiasdefundamentação,ontologiasdedomínio,ontologiasdetarefaeontologiasdeaplicação.

– Quantoaograudegeneralidade(Scherpetal.,2011):ontologiasdefundamentação,ontologiasnúcleo(coreontologies)eontologiasdedomínio

– Emrelaçãoàfasedoprocessodedesenvolvimentodeontologias(Guizzardi,2007):ontologiasdereferênciaeontologiasoperacionais.

– Quantoaoníveldeaxiomatização(Ruizetal.,2006):ontologiaspesadaseontologiasleves.

Page 4: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

Modelos,Meta-modeloseOntologias• OntologiasdeReferênciasãomodelosconceituais.Modelos

Conceituaisdesistemastambém.Qualadiferençaentreelesentão?– Escopo.Modelossãodestinadosaumprojetoparticular,enquantoontologiastêmumescopobemmaisabrangente,queperpassaváriosprojetoseorganizações,visandoserummodeloconsensualparaumacertacomunidade.

• Muitasvezes,meta-modelossãoconsideradosmaisrelacionadoscomontologias.Contudo,elessãomodelosquefalamsobremodelose,portanto,visammelhorarorigordemodelossintaticamentesemelhantes,massemanticamentediferentes.Jáontologiasvisamtratarasemântica.

Page 5: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

OntologiasemEngenhariadeSoftware• AsaplicaçõesdeontologiasemESsãomúltiplas.• Ontologiaspodemserintegradasainfraestruturasde

desenvolvimentoenoprópriosoftwaresendodesenvolvidoparaapoiarváriasatividadesdoprocessodesoftware.

• ComosurgimentodaWebSemântica(WS),iniciativascapitaneadaspororganizaçõesdepadronização,taiscomoW3CeOMG,começaramaserdesenvolvidasnosentidodeintegrarasáreasdeWSeES.(Happeletal.,2010)

Page 6: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

6

AplicaçõesdeOntologias– VisãoGeral

• AplicaçõesdeOntologias(Jasperetal.,1999):– Comunicação– InteroperabilidadedeSistemas– EspecificaçãodeSistemas– RecuperaçãodeInformação

Page 7: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

7

AplicaçõesdeOntologias– Comunicação

• Comunicaçãoentrepessoas:– Ontologiasreduzemconfusõesterminológicaseconceituais.

– Favorecemoentendimentocompartilhadoentreaspessoas.

Page 8: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

8

AplicaçõesdeOntologias– Comunicação

• Podemserusadasparacriarumarededeconceitosdentrodeumsistemapermitindoàspessoasexploraremenavegarematravésdessaredeparaentenderosrelacionamentosinternosdosistema.

• Comunicação:– Entrepessoas– Entrepessoasesistemas– Entresistemas(interoperabilidade)

Page 9: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

9

AplicaçõesdeOntologias– Interoperabilidade

• Ontologiaspodemserusadascomoumainter-línguaparaapoiaratraduçãoentrediferenteslinguagenserepresentações.

• Permitemacomunicaçãoentresistemas.• AcessoComumàInformação:umaontologiaéusada

parapermitirquemúltiplasaplicações-alvotenhamacessoafontesheterogêneasdeinformaçãoquesãoexpressasusandovocabuláriodiversoouformatoinacessível(Jasperetal.,1999).

• ServiçosCompartilhados

Page 10: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

AplicaçõesdeOntologias– Interoperabilidade

• Sistemas:DadoseServiços• ArquiteturasOrganizacionais:Processos• Representações:Modelos

Page 11: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

11

AplicaçõesdeOntologias– EspecificaçãodeSistemas

• Ontologiaspromovemoentendimentocompartilhadodeumdomíniooutarefa.

• OntologiacomoEspecificação:umaontologiadeumdeterminadodomínio/tarefaécriadaeprovêumvocabulárioparaespecificarrequisitosparaumaoumaisaplicações-alvo.Aontologiaéusadacomoumabaseparaespecificaçãoedesenvolvimentodesoftware,permitindoreúsodeconhecimento(Jasperetal.,1999).

Page 12: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

• OntologiasdeDomínioßàModelosEstruturais• OntologiasdeTarefaßàModelosComportamentais• OntologiasdeFundamentação:baseparaambosos

modelos:ModelagemConceitual.

AplicaçõesdeOntologias– EspecificaçãodeSistemas

Page 13: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

13

AplicaçõesdeOntologias– RecuperaçãodeInformação

• Máquinasdebuscatradicionaisretornamlistasderecursosrecuperados,oferecendopoucaounenhumainformaçãosobreasrelaçõessemânticasexistentesentreeles.

• Ontologiasoferecemummeiodelidarcomarepresentaçãoderecursosdeinformação:omodelodedomíniodescritoporumaontologiapodeserusadocomoumaestruturaunificadoraparadarsemânticaeumarepresentaçãocomumàinformação(Daviesetal.,2003).

• BuscaBaseadaemOntologias:umaontologiaéusadaparaprocurar,emumrepositóriodeinformação,porrecursosdesejados,melhorandoaprecisãoereduzindoaquantidadedetempogastonabusca(Jasperetal.,1999).

• Ex.:Web Semântica

Page 14: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

14

AplicaçõesdeOntologias– RecuperaçãodeInformação

• Recuperaçãodeitensdeconhecimento:artefatos,liçõesaprendidas,discussões...

• Recuperaçãodecomponentes,bibliotecas,serviços,frameworks.

Page 15: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

AplicaçõesdeOntologias• Inferência• OrganizaçãoeReutilizaçãodeConhecimento(Gerênciade

Conhecimento)

Page 16: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES- Geral• IntegraçãodeFerramentas:Diferentesprojetosoumesmo

stakeholdersdeummesmoprojetousamdiferentesferramentas,quemuitasvezesnãosecomunicam.

• Problema:Interoperabilidade• Ontologiaspodemserusadasparaapoiaraintegração

semânticadasinformaçõesarmazenadasnessasferramentasedeserviçosprovidosporelas.

Page 17: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES- Geral• CompartilhamentodeConhecimento:necessidadesde

conhecimento,muitasvezes,nãosãoexplicitamentedeclaradas,massimestabelecidaspelogapentreoconhecimentodeumdesenvolvedoreoconhecimentonecessárioparadesempenharumatarefaà Necessidadededisseminaçãopró-ativa.

• Problema:Encontraroequilíbrioentresobrecargadeinformaçãoefaltadeinformação

• Problemasrelacionados:Provisão,AcessoeUtilizaçãodaInformação (incluindoasdiferençasentreoscontextosdecriaçãoedeusodeumitemdeconhecimento).

Page 18: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES- Geral• AcessoàInformação:Comoencontrarainformação

necessáriapararesolverumproblemaourealizarumatarefa?Aexistênciadegrandesrepositóriospodedificultarabuscaporitensrelevantesparaocontextoemmãos.

• Ontologiaspodemserusadasparaanotarsemanticamenteitensdeconhecimento,taiscomoartefatosdoprocessodesoftware,liçõesaprendidas,artefatosdecolaboração(e-mails,listasdediscussão,fórunsetc.).Gruposdeinteressepodemserestabelecidosdinamicamente atravésdaligaçãoentreoconteúdoanotadosemanticamenteeosperfisdosstakeholdersanotadoscombasenamesmaontologia.Mecanismosdeconsultaavançadosbaseadosemontologiaspodemserusadosparaapoiarabusca.

Page 19: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES- Geral• ProvisãodeInformação:Desenvolvedoresfrequentemente

evitamesforçosdedocumentaçãoerejeitamaideiadeterdedescreveritensdeconhecimentoparareúso(anotaçãosemântica).

• Ontologiaspodemajudaraexplicitamentecapturarinformaçõesdecontextoeofereceraosdesenvolvedoresumvocabuláriomaisprecisoenãoambíguoparaexpressarcertasinformações.Alémdisso,certasinformaçõescontextuaispodemserderivadasautomaticamentedeartefatosdesoftware,utilizando-sedemétodosdeextração(documentaçãosemântica).

Page 20: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES- Geral• Documentação:Diferentesartefatoscontémvárias

informaçõesinter-relacionadas(p.ex.,documentosderequisitos,códigofonteecasosdeteste).Astarefasdejuntaremanteressasligaçõesficamacargodosusuáriosedesenvolvedoresdessesartefatos.

• Ontologiaspodemserusadasparaadicionarsemânticaaelementosdeinformaçãoemdocumentos,demodoqueferramentasautomatizadaspossamprocessarerelacionarestasinformações(documentaçãosemântica).Ex.:Wikisemânticos.

Page 21: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES- Geral

• Rastreabilidade:Mantermatrizesderastreabilidadeémuitotrabalhoso.

• Ontologiasusadasparaapoiaradocumentaçãosemânticapodemserusadastambémparadescreverasemânticadasrelaçõesexistentesentreosváriosartefatos desoftwareproduzidos,permitindoodesenvolvimentodeferramentasautomatizadasparaamanutençãoerecuperaçãodeinformaçõesderastreabilidade.

Page 22: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES- Geral

• Tratabilidade:Softwareéumaentidadesócio-técnicae,portanto,énecessáriomanterumatrilhadetodasasinteraçõesrelevantes:humano-humanoehumano-software(p.ex.,chatqueexplicaumadecisão).

• Ontologiaspodemserusadasparadescreverasemânticadasrelaçõesexistentesentreosváriosartefatos,incluindoaquelesquenãosãoclassicamentedefinidoscomoentradaousaídadeumaatividadedoprocessodedesenvolvimento.

Page 23: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES– ProcessodeDesenvolvimento• Requisitos:Asprincipaisrazõesdefracassosdeprojetosde

softwaresão:faltadeenvolvimentodeusuários,requisitosincompletosoumalespecificadosevolatilidadederequisitos.

• Umavezqueengenheirosdesoftwarenormalmentenãosãoespecialistasdedomínio,elesprecisamaprendersobreodomíniodoproblemacomusuários.ObterumentendimentocompartilhadoéumdosprincipaisdesafiosdaER.

Page 24: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES– ProcessodeDesenvolvimento:Requisitos• Ontologiaspodemserusadascomoumaespecificaçãode

domínio(modelodedomínio)compartilhada,formalenãoambígua,quesirvadepontodepartidaparaaespecificaçãoderequisitosparaváriossistemasnaqueledomínio(abordagemdeEngenhariadeDomínio).

Page 25: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

25

EngenhariadeDomínio• Enfoquesistemáticoparaaproduçãodecomponentes

reutilizáveis.• Atividades:– AnálisedeDomínio:visarepresentarrequisitoscomunsdeumafamíliadeaplicaçõespormeiodemodelosdedomínio;

– ProjetodeDomínio:buscaprovermodelosarquiteturaisparaumaclassedeaplicaçõesapartirdeumúnicomodelodedomínio;

– ImplementaçãodeDomínio:proverimplementaçõesdecomponentesquerepresentamfuncionalidadesbásicasdeaplicaçõesrelacionadasaumdomínio.

Page 26: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES– ProcessodeDesenvolvimento:Requisitos• Usodedistinçõesontológicasprovidasporontologiasde

fundamentaçãoduranteamodelagemconceitualdesistemas.P.ex.,usodeOntoUMLnamodelagemconceitualdesistemas.

Page 27: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES– ProcessodeDesenvolvimento• ArquiteturadeSoftware:Namaioriadossistemas,alógica

denegócioécodificadaemumalinguagemdeprogramaçãoemumcomponentedaarquitetura.Mudançasnalógicadenegóciorequeremmodificaçõesnocódigofonte eanálisesdeimpactos.

• Arquiteturasbaseadasemregraseusodemáquinasderegraspodemserumasoluçãoparaesteproblema.Aideiaésepararalógicadenegócioealógicadeprocessamento.

• Emumaarquiteturabaseadaemregras,umaontologiapodeserumcomponente(emtempodeexecução)dacamadadelógicadenegócio,separadodocomponentedelógicadeprocessamento(papeldesempenhadoporumamáquinaderegras– reasoner).

Page 28: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES– ProcessodeDesenvolvimento• ReutilizaçãodeComponentes/ServiçosWeb:Estessão

casosmaisespecíficosdoproblemadeacessoàinformação,contextualizadosnasfasesdeprojetoeimplementaçãodoprocessodedesenvolvimento.Aquestãobásicaé:existemcomponentes/serviçosquepodemserreusados?Comoencontrá-loseusá-losnocontextodoprojetocorrente?

• Ontologiaspodemserusadasparadescrevercomponentes/serviçosweb(anotaçõessemânticas),demodoapermitirousoposteriordemecanismosdebuscamaisconvenientesepoderosos.

• Nocasodeserviçoswebsemânticos,descoberta,matchingecomposiçãoautomáticosdeserviçospodemserfeitos,tomandoporbaseaconceituaçãocompartilhadaoferecidapelaontologia.

Page 29: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES– ProcessodeDesenvolvimento• ManipulaçãodeErros:Outrocasomaisespecíficodo

problemadeacessoàinformação,contextualizadonasfasesdeteste,depuraçãoemanutenção.Quandoumerroéapresentado,oqueelesignifica?Comotratá-lo?

• Geralmente,éútilencontrarocorrênciassimilaresdomesmoerroe,paratal,desenvolvedores,muitasvezes,recorremamecanismosdebuscabemgerais,comooGoogle.Oproblemaéqueocontextopodesermuitodiferente...

• Ontologiaspodemserusadasparasefazerumamediaçãoentreosdiferentescontextos,tomandoporbaseanotaçõessemânticas baseadasemontologia.

Page 30: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES– ProcessodeDesenvolvimento• Testes:Oprojetodecasosdetesterequerconhecimento

tantododomíniodoproblemaquantododomíniodasolução edastécnicasaseremaplicadas.

• Ontologiasdedomíniopodemserusadasparaapoiartestadores,quenormalmentenãoestãotãoenvolvidoscomodomínioquantodesenvolvedores,acompreender melhorodomíniodosistemaasertestado.

• Alémdisso,anotaçõessemânticaspodemserusadasparaligarinformaçãorelacionadanoprojeto(ouatéemoutrosprojetos),comop.ex.,casosdetesteerequisitos.

Page 31: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES– ProcessodeDesenvolvimento• Manutenção:Duranteamanutenção,hámuitostiposde

informaçãorelacionados,massemumaconexãoexplícita,tornandodifícilasoluçãodeumproblema.

• Ontologiaspodemajudaraconectar comunicaçõeseletrônicas(e-mails,listasdediscussão),relatosdebugseitensdesoftwareafetados,provendoumacamadaparaintegrardadosdediferentesfontes(interoperabilidadesemântica)emummodelosemânticounificado.

• Osdadoscombinadospodemser,então,usadosparaderivarinformaçãoadicionalpormeiodeinferênciasoumineraçãodedados,informaçãoessaquenãoestavaexplicitamentedeclaradaemnenhumadasbases.

Page 32: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnaES• AmbientesdeDesenvolvimentodeSoftware(ADSs):

precisamtermodelosdeprocessos,demodoacompreender,dentreoutros,asatividadesqueestãosendorealizadaseasdependênciasentreartefatos,demodoaapoiarmaisefetivamenteosdesenvolvedoresnarealizaçãodesuastarefas.

• OntologiasdodomíniodeprocessosdesoftwarepodemcontribuirparaarealizaçãodeADSsSemânticos,provendoabaseparaumsuportebaseadoemconhecimento esensívelaocontextodousuário.

Page 33: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

DesenvolvimentoDistribuídodeSoftware• DesenvolvimentoDistribuídodeSoftware(DDS):

colaboraçãoentregruposdedesenvolvedoresquetrabalhamemconjunto,localizadosemcidadesoupaísesdiferentes.

Page 34: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

34

DesafiosdoDDS- Comunicação

• Awareness:Consciência,PercepçãoeConhecimentodasAtividadesDesenvolvidas.– Oqueestáacontecendo?– Quemestárealizandodeterminadatarefa?– Ondeelaestáacontecendo?– Quemprecisasernotificadoacercadenovasinformações?– Qualadependênciaentrerequisitos/funcionalidades?

• Contexto:Qualocontextodecadaintegrantedaequipe?

Page 35: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

35

DesafiosdoDDS- Comunicação

• DispersãoGeográficaeTemporal:– Dificuldadedeobterconsenso.– Estadosfísicosementaisdosparticipantes.

• EstilosdeComunicação:Preocupaçõescomaformaeoconteúdodacomunicação.

• FormasdeComunicação:– Comunicaçãoinformaléreduzida.– Necessidadedecomunicaçãoindireta.– Prejuízoparaariquezadecontexto.– Sentidodeumafrasenãoestáapenasnaspalavras.Outroselementosdãosentidoaumafrase,taiscomotomdevoz,linguagemcorporal,expressãofacial,usodosilêncioetc.

Page 36: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

UsodeOntologiasnoDDS• Coordenação:suanecessidadetemorigemnas

dependênciasentreastarefasdoprocessodesoftware,oquerequerquediferentespessoascoordenemseustrabalhosparaatingirumobjetivoouprodutocomum.

• Problema:Faltadeconsciência(awareness)dotrabalhodosoutros.

• Osusosdeontologiasdiscutidonosproblemasrelacionadosaoacessoàinformaçãosãoigualmenteúteisparaaformaçãodaconsciência,emespecial:anotaçãosemânticadeitensdeconhecimento,mecanismosdebuscabaseadosemontologias,pró-atividadenadisseminaçãodeconhecimento.

Page 37: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

Agentes• Agentessãosistemascomputacionaiscapazesdeações

autônomas emalgumambiente,afimdealcançarseusobjetivosdeprojeto.

• Umagente,tipicamente,senteseuambiente(porsensoresfísicos,nocasodeagentessituadosnapartedomundoreal,ouporsensoresdesoftwarenocasodeagentesdesoftware)edisponibilizaumrepertóriodeaçõesquepodemserexecutadasparamodificaroambiente,oqualpoderespondernão-deterministicamenteàexecuçãodessasações.

Page 38: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

SistemasMultiagentes(SMAs)• Sãosistemascomputacionaiscompostospordiversos

agentesinteragindonoambienteafimdealcançarseusobjetivosdeprojeto.

• EmumSMA,agentesprecisamsecomunicar afimdealcançarmelhorosseusobjetivosouosobjetivosdosistema/sociedadenoqualelesexistem.

• EmumSMA,agentesprecisamcoordenar suasaçõescomadeoutrosagentesparaatingirosobjetivosdosistemaousociedade.

• Ontologiaspodemserusadasparaassociarsignificadoàsmensagenstrocadasporagentes,ouparaproverumaconceituaçãocomumparaagentesemumSMA.

Page 39: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• SegundoHappeletal.(2006),ousodeontologiasnaES

podesercategorizadosegundoduasdimensõesprincipais:– Usoemtempodedesenvolvimentox emtempodeexecução– Usoparatratarproblemasrelativosaodomínioxaspectosdeinfraestrutura

Page 40: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES

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

Page 41: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES

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

Page 42: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES

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

Page 43: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES

Ontology-enabled architectures (OEA): uso de ontologias para prover suporte de infraestrura em tempo real (p.ex., descoberta automática de serviços).

Page 44: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• RuizeHilera(2006)propõemumataxonomiadeontologias

paraEngenhariaeTecnologiadeSoftware(SET)formadaporduascategoriasgenéricas:– OntologiasdoDomíniodeSET:descrevemconhecimentoacercadodomíniodeSET.

– OntologiascomoArtefatosdeSoftware:usadascomoartefatosduranteoprocessodesoftware.

Page 45: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• OntologiasdoDomíniodeSETsãoclassificadas

considerandoumadistinçãoentreEngenhariadeSoftwareeTecnologiadeSoftware,conformeestabelecidonasDiretrizesCurricularesdeComputaçãodaACM.

Page 46: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• OntologiasdeES,quantoàcoberturadodomíniodeES,

podemserontologiasdetodoodomínio(ditasgenéricas)oudeumsubdomínio(ditasespecíficas).

• OntologiasdetododomíniotêmoambiciosoobjetivodemodelarocorpodeconhecimentodeESporcompleto.SãobaseadasemfontescomoSWEBOK,livroseglossários.

• Ontologiasdesubdomíniosbuscamtrataraconceituaçãodeapenasparte(subdomínio)destadisciplina.– AlgumasontologiasdesubdomíniosdeSETsãoelaboradaslevandoemcontaapossibilidadedeintegraçãocomoutrasontologiasdesubdomínio,visandoestabelecerumarededeontologias(ontologynetwork).

Page 47: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• SoftwareEngineering(SE)Ontologies– Generic(all-domain)– Specific(sub-domain)

• SoftwareRequirements• SoftwareDesign• SoftwareConstruction• SoftwareTesting• SoftwareMaintenance• SoftwareConfigurationManagement• SoftwareQuality• SoftwareEngineeringTools&Methods• SoftwareEngineeringProcess• SoftwareEngineeringManagement

Page 48: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• AscategoriasesubcategoriasdataxonomiadaACMforam

usadasparaclassificarOntologiasdeTecnologiadeSoftware.

Page 49: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• SoftwareTechnology(ST)

– Software• ProgrammingTechniques• ProgrammingLanguages• OperatingSystems

– Data• DataStructures• DataStorageRepresentations• DataEncryption• CodingandInformationTheory• Files

– InformationTechnologyandSystems• ModelsandPrinciples• DatabaseManagement• InformationStorageandRetrieval• InformationTechnologyandSystemsApplications• InformationInterfacesandRepresentation(HCI)

Page 50: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• OntologiascomoArtefatosdeSoftwaresãoclassificadasem

umprimeironívelemontologiascomoartefatosusadosemtempodedesenvolvimentoouusadosemtempodeexecução.

• Acategoriadasontologiasusadasemtempodedesenvolvimentoésubdivididacombasenafunçãodosprocessosdeciclodevidanosquaiselassãoprincipalmenteusadas,tomandoporbaseaISO/IEC15504-2(1998).

• Parasimplificar,apenasdoisníveisdequebra(gruposdeprocessoecategoriasdeprocesso)foramusados,tendosidodesconsiderados,portanto,oníveldeprocessosindividuais.

Page 51: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• GruposeCategoriasde

ProcessodaISO15504-2(1998)– ProcessosPrimários

• Cliente-Fornecedor• Engenharia

– ProcessosdeApoio• Apoio

– ProcessosOrganizacionais• Gerência• Organização

• TaxonomiadeOntologiascomoArtefatosusadosemtempodedesenvolvimento:– ParaProcessosdeEngenharia

• Desenvolvimento• Manutenção

– ParaOutrosProcessos• Cliente-Fornecedor• Apoio• Gerência• Organização

Page 52: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

CategorizaçãodeOntologiasemES• Acategoriadasontologiasusadasemtempodeexecuçãoé

subdivididaemduassub-categorias,tomandoporbaseaclassificaçãodeGuarino:– Ontologiascomoartefatosarquitetônicos:quandoaontologiaépartedaarquiteturadosoftware,sendoumcomponenteadicionalquetrabalhacomorestodosistemaemtempodeexecuçãoparaatingirosobjetivosdosoftware.

– Ontologiascomorecursosdeinformação:quandoaontologiaéusadapelosoftwareemtempodeexecuçãoparaumpropósitoespecífico,atuandocomoumrecursodeinformação,normalmenteremoto,sobreoqualosoftwareopera,realizando,p.ex.,consultasespecíficas.

Page 53: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

ExemplosdeOntologiasdeSEExistentes• RuizeHilera(2006)fazemumlevantamentodediversas

iniciativasrelativasaontologiasdoDomíniodeSETencontradasnaliteraturaaté2005.

• SoftwareEngineering(SE)Ontologies– All-domain(3)

• SWEBOK(2)• IEEEGlossaryofSoftwareEngineeringTerminology(1)

Page 54: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

ExemplosdeOntologiasdeSEExistentes– Sub-domain(Ruiz;Hilera,2006)

• SoftwareEngineeringProcess(ProcessosdeSoftware)(4)• SoftwareMaintenance(5)• SoftwareQuality(2)• SoftwareEngineeringManagement(MediçãodeSoftware)(2)• SoftwareRequirements(4)

– NegociaçãodeRequisitos(Win-Win)(1)– ModelagemdeSistemas

» ModeloseOntologias(1)» UML(1)

– ModelagemdeAgentes(1)• SoftwareDesign(3)

– ESBaseadaemComponentes(1)– ModelagemdeSistemas

» ModeloseOntologias(1)» UML(1)

Page 55: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

ExemplosdeOntologiasdeSTExistentes• SoftwareTechnology(ST)Ontologies– Software

• ProgrammingTechniques(5)– Serviços(3)– Agentes(1)– ComputaçãoUbíquaePervasiva(1)

• ProgrammingLanguages(3)– Código-Fonte(Genérica)(1)– Java(2)

– Data• CriptografiadeDados(1)

– InformationTechnologyandSystems• DatabaseManagement(1– SQL)• InformationInterfacesandRepresentation(2– Human-ComputerInteraction)

Page 56: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

ExemplosdeUsodeOntologiascomoArtefatosdeSoftware

• Ontologiascomoartefatosdesoftwareusadosemtempodedesenvolvimento:– ProcessosdeEngenharia

• ProcessodeDesenvolvimento(14)– DestaqueparaafasedeAnálisedeRequisitos,com11propostas.

• ProcessodeManutenção(1)

– OutrosProcessos(NãoEngenharia)• ProcessosdeApoio(3):GarantiadaQualidade,Verificação&Validação,Documentação(Rastreabilidade)

• ProcessosdeGerência(3):GerênciadeConhecimento(1),DefiniçãodeProcessosdeSoftware(2,sendoqueumdelestambémtratadagerênciadoprojeto).

Page 57: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

ExemplosdeUsodeOntologiascomoArtefatosdeSoftware

• Ontologiascomoartefatosdesoftwareusadosemtempodeexecução:– Comoartefatosarquitetônicos(3):

• Osautoresdestacam,ainda,queháváriaspropostasusandoarquiteturadesistemasbaseadosemconhecimento(máquinadeinferênciaatuandosobreumrepositórioquecontémaontologia),mas,porseremmuitocomuns,elespreferemcitartrêsexemplosqueusamoutrasarquiteturas.

– Comorecursosdeinformação(3)• MáquinasdebuscanaWeb(SemanticWeb)• Ontologiascomosubstitutosdebasesdedadosparaoarmazenamentodeinformação(naverdadearmazenamentoemtriplas)

• Aindaquenãocitadonosexemplos,osautoresdestacamaplicaçõesdaSemanticWebeWebServicesSemânticos.

Page 58: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

WebSemânticadeES• AWebSemânticadeES(Happeletal.,2010)éumaWebna

qualagentesrealizamtarefasdedesenvolvimentodesoftwarebaseadosemdadosenriquecidossemanticamente.

• AESéumcenárioapropriadoparaestavisão,umavezqueoconhecimentoemprojetosdesoftwareestátipicamenteespalhadoemvárioslocais,formatos,sistemasepessoas.

• Especialmenteemgrandesprojetoseprojetosdistribuídos,ainformaçãoéheterogêneaedistribuída.

Page 59: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

WebSemânticadeES• NaWebSemânticadeES,desenvolvedorespodemobter

umavisãogeralbemmaiscompletaeprecisadainformaçãorelacionadaàsuatarefacorrente.

• Alémdisso,elespodemsebeneficiarderecursosadicionais,taiscomoacessoecompartilhamentofácildeexperiênciasdeoutrosdesenvolvedoresechecagemdeconsistência.

Page 60: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

WebSemânticadeES• AvisãodaWSdeESaindanãoestáconcretizada,masela

podecalcadaemcimadosseguintespilares:– Dadosdeprojetodevemserexpostosseguindoaabordagemdawebsemântica(metadadosanotadossemanticamente,combaseemontologias).

– Ferramentasdevemserconstruídasparaseremcapazesdeproduzireconsumirdadoseserviçossemânticos(interoperabilidadesemântica).

– Ferramentasdevemfazerusodemecanismosdebuscabaseadaemontologias,sendocapazesdecombinarinformaçãoexternamenterelevante(p.ex.,naWeb)edadosdeoutrosprojetoscomdadosdoprojetocorrenteedocontextoespecíficododesenvolvedor(incluindoatarefasendorealizada).

Page 61: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

WebSemânticadeES• AconcretizaçãodaWebSemânticadeESdependedetrês

fatoresprincipais(Happeletal.2010):– Existênciadeontologiasapropriadasparaosváriosfinsdiscutidosanteriormente.

– Existênciademetadados(anotações)semânticos– Existênciadeferramentaspoderosascapazesdeincrementaressesdadosparaprovernovosserviços.

Page 62: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

WebSemânticadeES• SegundoHappeletal.(2010):– Odesenvolvimentoemanutençãodeontologiaséumdesafioporsisó,queprecisaserjustificadoporganhosdeprodutividade.

– Contudo,paraavaliarosucessoemváriosdoscenáriosvislumbradosdousodeontologiasemES,éprecisoaplicá-las(problemado“ovoedagalinha”).

– Nãohá(nemhaverá)umaúnicaontologiasatisfazendotodasasnecessidades.

– SãováriasasaplicaçõesdeontologiasemESe,portanto,asontologiasresultantesvãovariaremexpressividade,escopoepropósito.

Page 63: Aplicações de Ontologias em Engenharia de Softwarefalbo/files/OES/OES3-Aplicacoes_Ontologias_ES.pdf · • Ontologias em Engenharia de Software • Ontologias no Desenvolvimento

Referências• Happel,H.J.,Seedorf,S.,ApplicationsofOntologiesinSoftwareEngineering.

In:2ndInternationalWorkshoponSemanticWebEnabledSoftwareEngineering,2006.

• Happel,H.J.,Maalej,W.,Seedorf,S.,ApplicationsofOntologiesinCollaborativeSoftwareDevelopment.In:CollaborativeSoftwareDevelopment,Mistrik,I.,Grundy,J.,Hoek,A.,Whitehead,J.(Eds.),Springer,2010,pp.109– 129.

• Ruiz,F.,Hilera,J.R.,UsingOntologiesinSoftwareEngineeringandTechnology,In:OntologiesinSoftwareEngineeringandSoftwareTechnology,Calero,C.,Ruiz,F.,Piatinni,M.(Eds.),Springer,2006,pp.62– 119.

• Dillon,T,S.,Chang,E.,Wongthongtham,P.,Ontology-basedSoftwareEngineering- SoftwareEngineering2.0, 19thAustralianConferenceonSoftwareEngineering,2008.