Aplicações de Ontologias em Engenharia de...
Transcript of Aplicações de Ontologias em Engenharia de...
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
Agenda• Introdução• OntologiasemEngenhariadeSoftware• OntologiasnoDesenvolvimentoDistribuídodeSoftware• OntologiasnoDesenvolvimentodeSistemasMultiagentes• CategorizaçãodeOntologiasemES(2)• ExemplosdeOntologiasExistentes• WebSemânticadeES
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.
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.
OntologiasemEngenhariadeSoftware• AsaplicaçõesdeontologiasemESsãomúltiplas.• Ontologiaspodemserintegradasainfraestruturasde
desenvolvimentoenoprópriosoftwaresendodesenvolvidoparaapoiarváriasatividadesdoprocessodesoftware.
• ComosurgimentodaWebSemântica(WS),iniciativascapitaneadaspororganizaçõesdepadronização,taiscomoW3CeOMG,começaramaserdesenvolvidasnosentidodeintegrarasáreasdeWSeES.(Happeletal.,2010)
6
AplicaçõesdeOntologias– VisãoGeral
• AplicaçõesdeOntologias(Jasperetal.,1999):– Comunicação– InteroperabilidadedeSistemas– EspecificaçãodeSistemas– RecuperaçãodeInformação
7
AplicaçõesdeOntologias– Comunicação
• Comunicaçãoentrepessoas:– Ontologiasreduzemconfusõesterminológicaseconceituais.
– Favorecemoentendimentocompartilhadoentreaspessoas.
8
AplicaçõesdeOntologias– Comunicação
• Podemserusadasparacriarumarededeconceitosdentrodeumsistemapermitindoàspessoasexploraremenavegarematravésdessaredeparaentenderosrelacionamentosinternosdosistema.
• Comunicação:– Entrepessoas– Entrepessoasesistemas– Entresistemas(interoperabilidade)
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
AplicaçõesdeOntologias– Interoperabilidade
• Sistemas:DadoseServiços• ArquiteturasOrganizacionais:Processos• Representações:Modelos
11
AplicaçõesdeOntologias– EspecificaçãodeSistemas
• Ontologiaspromovemoentendimentocompartilhadodeumdomíniooutarefa.
• OntologiacomoEspecificação:umaontologiadeumdeterminadodomínio/tarefaécriadaeprovêumvocabulárioparaespecificarrequisitosparaumaoumaisaplicações-alvo.Aontologiaéusadacomoumabaseparaespecificaçãoedesenvolvimentodesoftware,permitindoreúsodeconhecimento(Jasperetal.,1999).
• OntologiasdeDomínioßàModelosEstruturais• OntologiasdeTarefaßàModelosComportamentais• OntologiasdeFundamentação:baseparaambosos
modelos:ModelagemConceitual.
AplicaçõesdeOntologias– EspecificaçãodeSistemas
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
14
AplicaçõesdeOntologias– RecuperaçãodeInformação
• Recuperaçãodeitensdeconhecimento:artefatos,liçõesaprendidas,discussões...
• Recuperaçãodecomponentes,bibliotecas,serviços,frameworks.
AplicaçõesdeOntologias• Inferência• OrganizaçãoeReutilizaçãodeConhecimento(Gerênciade
Conhecimento)
UsodeOntologiasnaES- Geral• IntegraçãodeFerramentas:Diferentesprojetosoumesmo
stakeholdersdeummesmoprojetousamdiferentesferramentas,quemuitasvezesnãosecomunicam.
• Problema:Interoperabilidade• Ontologiaspodemserusadasparaapoiaraintegração
semânticadasinformaçõesarmazenadasnessasferramentasedeserviçosprovidosporelas.
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).
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.
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).
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.
UsodeOntologiasnaES- Geral
• Rastreabilidade:Mantermatrizesderastreabilidadeémuitotrabalhoso.
• Ontologiasusadasparaapoiaradocumentaçãosemânticapodemserusadastambémparadescreverasemânticadasrelaçõesexistentesentreosváriosartefatos desoftwareproduzidos,permitindoodesenvolvimentodeferramentasautomatizadasparaamanutençãoerecuperaçãodeinformaçõesderastreabilidade.
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.
UsodeOntologiasnaES– ProcessodeDesenvolvimento• Requisitos:Asprincipaisrazõesdefracassosdeprojetosde
softwaresão:faltadeenvolvimentodeusuários,requisitosincompletosoumalespecificadosevolatilidadederequisitos.
• Umavezqueengenheirosdesoftwarenormalmentenãosãoespecialistasdedomínio,elesprecisamaprendersobreodomíniodoproblemacomusuários.ObterumentendimentocompartilhadoéumdosprincipaisdesafiosdaER.
UsodeOntologiasnaES– ProcessodeDesenvolvimento:Requisitos• Ontologiaspodemserusadascomoumaespecificaçãode
domínio(modelodedomínio)compartilhada,formalenãoambígua,quesirvadepontodepartidaparaaespecificaçãoderequisitosparaváriossistemasnaqueledomínio(abordagemdeEngenhariadeDomínio).
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.
UsodeOntologiasnaES– ProcessodeDesenvolvimento:Requisitos• Usodedistinçõesontológicasprovidasporontologiasde
fundamentaçãoduranteamodelagemconceitualdesistemas.P.ex.,usodeOntoUMLnamodelagemconceitualdesistemas.
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).
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.
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.
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.
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.
UsodeOntologiasnaES• AmbientesdeDesenvolvimentodeSoftware(ADSs):
precisamtermodelosdeprocessos,demodoacompreender,dentreoutros,asatividadesqueestãosendorealizadaseasdependênciasentreartefatos,demodoaapoiarmaisefetivamenteosdesenvolvedoresnarealizaçãodesuastarefas.
• OntologiasdodomíniodeprocessosdesoftwarepodemcontribuirparaarealizaçãodeADSsSemânticos,provendoabaseparaumsuportebaseadoemconhecimento esensívelaocontextodousuário.
DesenvolvimentoDistribuídodeSoftware• DesenvolvimentoDistribuídodeSoftware(DDS):
colaboraçãoentregruposdedesenvolvedoresquetrabalhamemconjunto,localizadosemcidadesoupaísesdiferentes.
34
DesafiosdoDDS- Comunicação
• Awareness:Consciência,PercepçãoeConhecimentodasAtividadesDesenvolvidas.– Oqueestáacontecendo?– Quemestárealizandodeterminadatarefa?– Ondeelaestáacontecendo?– Quemprecisasernotificadoacercadenovasinformações?– Qualadependênciaentrerequisitos/funcionalidades?
• Contexto:Qualocontextodecadaintegrantedaequipe?
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.
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.
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.
SistemasMultiagentes(SMAs)• Sãosistemascomputacionaiscompostospordiversos
agentesinteragindonoambienteafimdealcançarseusobjetivosdeprojeto.
• EmumSMA,agentesprecisamsecomunicar afimdealcançarmelhorosseusobjetivosouosobjetivosdosistema/sociedadenoqualelesexistem.
• EmumSMA,agentesprecisamcoordenar suasaçõescomadeoutrosagentesparaatingirosobjetivosdosistemaousociedade.
• Ontologiaspodemserusadasparaassociarsignificadoàsmensagenstrocadasporagentes,ouparaproverumaconceituaçãocomumparaagentesemumSMA.
CategorizaçãodeOntologiasemES• SegundoHappeletal.(2006),ousodeontologiasnaES
podesercategorizadosegundoduasdimensõesprincipais:– Usoemtempodedesenvolvimentox emtempodeexecução– Usoparatratarproblemasrelativosaodomínioxaspectosdeinfraestrutura
CategorizaçãodeOntologiasemES
Ontology-driven development (ODD): uso de ontologias em tempo de desenvolvimento, descrevendo o domínio do problema
CategorizaçãodeOntologiasemES
Ontology-enabled development (OED): uso de ontologias em tempo de desenvolvimento com o objetivo de apoiar desenvolvedores em suas tarefas.
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).
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).
CategorizaçãodeOntologiasemES• RuizeHilera(2006)propõemumataxonomiadeontologias
paraEngenhariaeTecnologiadeSoftware(SET)formadaporduascategoriasgenéricas:– OntologiasdoDomíniodeSET:descrevemconhecimentoacercadodomíniodeSET.
– OntologiascomoArtefatosdeSoftware:usadascomoartefatosduranteoprocessodesoftware.
CategorizaçãodeOntologiasemES• OntologiasdoDomíniodeSETsãoclassificadas
considerandoumadistinçãoentreEngenhariadeSoftwareeTecnologiadeSoftware,conformeestabelecidonasDiretrizesCurricularesdeComputaçãodaACM.
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).
CategorizaçãodeOntologiasemES• SoftwareEngineering(SE)Ontologies– Generic(all-domain)– Specific(sub-domain)
• SoftwareRequirements• SoftwareDesign• SoftwareConstruction• SoftwareTesting• SoftwareMaintenance• SoftwareConfigurationManagement• SoftwareQuality• SoftwareEngineeringTools&Methods• SoftwareEngineeringProcess• SoftwareEngineeringManagement
CategorizaçãodeOntologiasemES• AscategoriasesubcategoriasdataxonomiadaACMforam
usadasparaclassificarOntologiasdeTecnologiadeSoftware.
CategorizaçãodeOntologiasemES• SoftwareTechnology(ST)
– Software• ProgrammingTechniques• ProgrammingLanguages• OperatingSystems
– Data• DataStructures• DataStorageRepresentations• DataEncryption• CodingandInformationTheory• Files
– InformationTechnologyandSystems• ModelsandPrinciples• DatabaseManagement• InformationStorageandRetrieval• InformationTechnologyandSystemsApplications• InformationInterfacesandRepresentation(HCI)
CategorizaçãodeOntologiasemES• OntologiascomoArtefatosdeSoftwaresãoclassificadasem
umprimeironívelemontologiascomoartefatosusadosemtempodedesenvolvimentoouusadosemtempodeexecução.
• Acategoriadasontologiasusadasemtempodedesenvolvimentoésubdivididacombasenafunçãodosprocessosdeciclodevidanosquaiselassãoprincipalmenteusadas,tomandoporbaseaISO/IEC15504-2(1998).
• Parasimplificar,apenasdoisníveisdequebra(gruposdeprocessoecategoriasdeprocesso)foramusados,tendosidodesconsiderados,portanto,oníveldeprocessosindividuais.
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
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.
ExemplosdeOntologiasdeSEExistentes• RuizeHilera(2006)fazemumlevantamentodediversas
iniciativasrelativasaontologiasdoDomíniodeSETencontradasnaliteraturaaté2005.
• SoftwareEngineering(SE)Ontologies– All-domain(3)
• SWEBOK(2)• IEEEGlossaryofSoftwareEngineeringTerminology(1)
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)
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)
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).
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.
WebSemânticadeES• AWebSemânticadeES(Happeletal.,2010)éumaWebna
qualagentesrealizamtarefasdedesenvolvimentodesoftwarebaseadosemdadosenriquecidossemanticamente.
• AESéumcenárioapropriadoparaestavisão,umavezqueoconhecimentoemprojetosdesoftwareestátipicamenteespalhadoemvárioslocais,formatos,sistemasepessoas.
• Especialmenteemgrandesprojetoseprojetosdistribuídos,ainformaçãoéheterogêneaedistribuída.
WebSemânticadeES• NaWebSemânticadeES,desenvolvedorespodemobter
umavisãogeralbemmaiscompletaeprecisadainformaçãorelacionadaàsuatarefacorrente.
• Alémdisso,elespodemsebeneficiarderecursosadicionais,taiscomoacessoecompartilhamentofácildeexperiênciasdeoutrosdesenvolvedoresechecagemdeconsistência.
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).
WebSemânticadeES• AconcretizaçãodaWebSemânticadeESdependedetrês
fatoresprincipais(Happeletal.2010):– Existênciadeontologiasapropriadasparaosváriosfinsdiscutidosanteriormente.
– Existênciademetadados(anotações)semânticos– Existênciadeferramentaspoderosascapazesdeincrementaressesdadosparaprovernovosserviços.
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.
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.