Transcript
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.


Recommended