View
219
Download
0
Category
Preview:
Citation preview
Ontologias de Engenharia de
Software
Ricardo de Almeida FalboOntologias para Engenharia de Software
Departamento de InformáticaUniversidade Federal do Espírito Santo
Agenda• SemanticWebBasedSE• OntologiasdeTodoDomíniodeES– SEontology(Dillonetal.,2008)(Wongthongthametal.,2009)– SWEBOKOntology(Abranetal.,2006)
Semantic-WebBasedSE• DificuldadesdaES(Zhaoetal.2009):
– Expansãodereúsodecódigoparareúsodetodosostiposdeinformação(requisitos,processos,casosdetesteetc.).Contudo,aatualformaderepresentaçãodessainformaçãotornadifícilgerenciar,recuperare,portanto,reusar.
– Diversidadedeprocessosusadosemummesmoprojetodistribuídoeequipescomconhecimentotambémdiverso.
• Necessidadedecompartilhamentoereúsodeconhecimento.• AWebSemânticaprovêumframeworkintegrado,demodoque
ainformaçãopossaserbemorganizada,amplamentepublicadaecompartilhada,facilmenterecuperadaeintegradademaneirasimples.
• OobjetivoépermitirqueosconteúdosnaWebsejamcompreensíveisporagenteshumanosedesoftware.
• OntologiaéumimportantecomponentedaWebSemântica.
Semantic-WebBasedSE• TécnicasdeWebSemântica(WS)eontologiassãoaplicadas
àEScomointuitode:– Formalizarainformação– Proveramploacessoapartirdediferenteslocalizaçõesfísicas– Proverumserviçodebuscauniversalqueseapliqueatodosostiposdeconhecimentosobresoftware
– Permitiracomparaçãoecorrespondência(matching)deconceitos.
Semantic-WebBasedSE• AabordagemdeSemantic-WebbasedSEtipicamente
envolveosseguintespassos:– RecursosdeinformaçãosobreES(processos,métodos,ferramentas,esobreosoftwareemsi)sãoreunidos.
– Conceitossãoextraídosdessesrecursoseincluídosemumaontologia,aqualéimplementadaemumalinguagemdeontologias(OWL).
– RecursosdeinformaçãosãopublicadosnaWebparaprocessamentotantoporpessoasquantoporagentesdesoftware.
Semantic-WebBasedSE• AideiadeZhaoetal.(Zhaoetal.2009)apoia-sena
existênciadeumaontologia(ouumconjuntodeontologias)relacionadaaodomíniodeES.
• Umaontologiacentralnestecontextoéumaontologiadeprocessodesoftware.
Ontologia de Processo de Software
SoftwareProcessOntology• OntologiadeProcessodeSoftware:defineatividades,fases
doprocessoemodelosdeprocesso,bemcomoartefatos.• Aplicações:– ProcessospodemsermodeladosecompartilhadosnaWeb– TécnicasdeWSpodemserusadaspara:
• automatizarprocessos,• montarprocessosdinamicamente,• adaptarelementosdeprocesso,• consultareraciocinarsobreespecificaçõesdeatividades,• reusarprodutosdetrabalho(artefatos).
DomainOntologies• OntologiasdeDomíniodeAplicação:representamo
conhecimentosobreumdomíniodeaplicaçãoeainformaçãodenegóciorequeridaparaconstruiraplicaçõesnestedomínioespecífico.SãoresultadodeumprocessodeEngenhariadeDomínio.
• Aplicações:– ConhecimentodedomíniopodesermodeladoecompartilhadonaWeb,tantoparaaprendizadoquantoparareúsoemdiversasatividadesdoprocessodesoftware.
RequirementOntology• OntologiadeComportamentodeSistema:modela
comportamentosdesistemaeasaçõesqueosistemarealizaemcertoscenários.Principaisconceitos:evento,açãoetc.
• Aplicações:– UsonaEngenhariadeRequisitos.
ArchitectureandDesignOntologies• OntologiadeArquiteturadeSoftware:modelaconceitos
relacionadosaarquitetura,taiscomoestilosarquitetônicos,componentesesuasinterações.
• Aplicações:– Descreverestilosarquitetônicos.
• OntologiadeDesignOO:defineconceitosusadosnamodelagemOO,taiscomoclasses,interfaces,métodoseatributos.
PatternOntology• OntologiadePattern:visaproverumcatálogo(???)de
patterns,incluindodesignpatterns,patternsdeusabilidade,patternsdeaplicaçõesWeb,etc.
• Aplicações:– Descreverformalmenteospatterns.
ImplementationOntologies• OntologiadeArtefatodeSoftware:provêumconjuntode
conceitosquepermitemclassificarosdiferentesartefatosdeacordocomseusformatoseestruturasinterna(arquivosdetexto,diagramas,imagens,códigoetc.)oudeacordocomseustipos (códigofonte,designedocumentação).Inclui,ainda,conceitosrelacionadosaartefatos,talcomopessoa quepodeserocriadordoartefato,eprojeto ondeoartefatopodeserproduzido.
• Aplicações:– Organizarartefatosproduzidosduranteaimplementação(?).
ImplementationOntologies• OntologiadeCódigoFonteOO:formalmenteespecificaros
principaisconceitosdelinguagensdeprogramaçãoOO,taiscomopacote,classe,atributo,método,parâmetro,variáveletc.
• AdiferençaentreestaontologiaeaontologiadeDesignOOéqueestaenvolvemaisconstrutosdelinguagensdeprogramaçãoquenãosãousadosnodesign,talcomovariáveislocais.
ImplementationOntologies• OntologiadeVersão:visamodelarosrelacionamentos
entrearquivos,releaseserevisõesemprojetosdesoftware.• OntologiadeConfiguraçãodeSoftware:modelarestrições
(p.ex.,dependência)entrecomponenteseversões.• Aplicações:– Facilitaragerênciadeconfiguração.
DocumentationOntologies• OntologiadeDocumentação:consistedeumagrande
quantidadedeconceitosquepodemaparecernoconteúdodedocumentosdesoftware(?).
• OntologiadeDocumento:modelatiposdedocumentoseseusrelacionamentos(useTemplate,related,refinedIn,update,etc.).
• Adiferençaentreessasontologiaséqueaontologiadedocumentovisaorganizardocumentos,enquantoaontologiadedocumentaçãovisaorganizarainformaçãoregistradanosdocumentos.
QualityOntologies• OntologiadeQualidade:representaconhecimentoreusável
sobrediferentescaracterísticas,subcaracterísticasemétricasdequalidade.
• OntologiadeTeste:defineconceitosrelacionadosateste,taiscomotestador,ambiente,contexto,artefatosendotestado,métododetesteeatividade.
QualityOntologies• OntologiadeDefeito:defineosconceitosusadospara
descreverdefeitosencontradosduranteafasedetestedesoftware,taiscomodefeito,ação,pessoaecomentário.
MaintenanceOntology• OntologiadeProcessodeManutençãodeSoftware:define
osconceitosrelacionadosàmanutençãoesuasrelações,taiscomoatividade(atividadedemanutenção,atividadedemodificaçãoetc.),pessoa(engenheirodemanutenção,clienteetc.),procedimento,recursoetc.
TechnologyOntology• OntologiadeTecnologia:éumrepositóriodetecnologiasde
desenvolvimentodesoftware,ambientes,plataformas,ferramentasetc.
ClassificaçãodeOntologias• Deacordocomasatividadesrelacionadas(atividades
facilitadaspelasontologias)
?
?
ClassificaçãodeOntologias• Deacordocomotipodeinformaçãosendomodelada
ClassificaçãodeOntologias• Deacordocomoescopodeaplicação
Systemconfiguration ontologyismainlydesignedtocaptureconstraintsandinterrelationshipsbetweencomponentsofasystem.Eachsoftwaresystemshouldhaveitsownconfiguration.Thus,thisontologyisproject-specific.Documentationontologyconsistsofalargebodyofconceptsthatareexpectedtoappearinthecontentofdocuments.Theinformationwithinthisontologyismainlyrelatedtoaspecificproject.
?
?
UsodeOntologiasnaES• Apartirdeumaperspectivadeciclodevida:– Requisitos:
• Ontologiasdedomínio:apoioaolevantamentoderequisitosfuncionais.
• Ontologiadequalidade:apoioaolevantamentoderequisitosnãofuncionais.
• Ontologiasdedomínio:aprendizadosobreodomínio.• Ontologiasdedomínio edecomportamentodesistema:apoioàanotaçãoerecuperaçãodecasosdeuso.
• Ontologiasdedomínio:apoioàavaliaçãoderequisitos,pormeiodemapeamentoentreitensdaespecificaçãoderequisitoseelementosdaontologiadedomínio.
UsodeOntologiasnaES• Apartirdeumaperspectivadeciclodevida:– Design:
• Ontologiadepatterns:apoioàdisseminaçãoeaoaprendizadosobrepatterns.
• Ontologiasdemodelodefeatures:orientaçõesparaodesign,bemcomochecagemdeconsistência.
– ImplementaçãoeIntegração:• Ontologiasdedomínio edecódigofonteOO:geraçãodecódigo.• Ontologiasdedomínio:derivaçãodemodelosdedadosrelacionais.• Ontologiasdeconfiguraçãodesistema:serviçoswebparaconsultaeraciocíniosobreaconfiguraçãodosistema,apoiandoaavaliaçãoeachecagemautomáticadaintegração.
UsodeOntologiasnaES• Apartirdeumaperspectivadeciclodevida:– Teste:
• OntologiadecódigofonteOO:apoioàdetecçãodeáreaspotencialmenteproblemáticasnocódigo.
• Ontologiadeteste:apoioàcomunicaçãoeinteraçãoentreagentesdesoftwarerealizandoatividadesdeteste.
– Manutenção:• Ontologiadeprocessodemanutenção:ferramentadeapoioaoplanejamentoegerência.
• Ontologiasdedomínio,dedesignOO,teste equalidade:apoioàgerênciadeartefatos,dependênciaseconsistênciaentreeles,bemcomoapoioaocontroledealterações.
UsodeOntologiasnaES• Apartirdeumaperspectivadeciclodevida
X: já há usos?: há potencial
?
?
?
?
?
? ??
UsodeOntologiasnaES• Apartirdeumaperspectivadequestõescríticas(gerais):– Documentação– Rastreabilidade– ControledeAlteração– ControledaQualidade– Reutilização– SeleçãodeTecnologiaeApoioaoProcesso
Documentação• Artefatosdesoftwarepodemserclassificadosdeacordo
comaontologiadeartefatosdesoftware.• Artefatospodemseranotadoscomconceitosdeontologias
dedomínio.Serviçosdebuscapodemserprovidosparafacilitaroacessoàinformação(documentaçãosemântica).
Rastreabilidade• Conceitosdeontologiasdedomíniopodemserusadospara
ligarartefatosrelacionados,taiscomorequisitos,componentes,códigofonteecasosdeteste.
• Ligaçõesderastreabilidadepodemserdescobertaseserviçosdebuscapodemserprovidos.
• Matrizesderastreabilidadepodemsergeradasapartirdeanotaçõesemdiferentesdocumentos.
ControledeAlteração• Ontologiasdedomíniopodemserumaboabasede
conhecimentoparaprevisãodealterações.Alteraçõesemrequisitosrelacionadosacertosfragmentosdaontologiapodemsercomuns.
• Ontologiasdecódigo-fonteedeversãopodemserusadasparaodesenvolvimentodeserviçosparaapoiaraanálisedeimpacto.
• Novamente,ousodeanotaçõessemânticaséabaseparaodesenvolvimentodeserviçosdessanatureza.
ControledaQualidade• Ontologiadeprocessodesoftwarepodeserusadacomo
baseparaautomatizaçãodeprocesso,montagemdinâmicadeprocessoeadaptaçãodeelementosdeprocessoapartirdecomponentesdeprocesso.
• Ontologiadeprocessodesoftwarepodeserusadatambémpararaciocinarsobreatividades,liçõesaprendidasetc.
• Ontologiasdecódigo-fonte,dedefeitoedeversãopodemserusadasparaodesenvolvimentodeserviçosautomáticosdecoletademétricas.
Reutilização• AbordagensbaseadasemWebSemânticapodemserusadas
paraanotarativosdereúso(incluindoartefatose,emespecial,componentes)eparapermitirbuscasemântica.
• Ontologiasdeartefatosdesoftware,dedomínioedearquiteturapodemserusadasparaestefim.
SeleçãodeTecnologiaeApoioaoProcesso• Ferramentaspodemseranotadascominformaçõessobre
seuescopodeaplicação,requisitos,tiposdeentradaseformatosdesaída.
• Usandoontologiasdelógicadeaplicação,qualidadeetecnologia,serviçosdebuscaeseleçãodeferramentaspodemserprovidos.
• AmbientesdeEngenhariadeSoftwareBaseadosemConhecimentopodemserdesenvolvidosusandováriostiposdeontologias.
• Ferramentaspodemsersemanticamenteintegradas,usandoontologiascomointer-língua.
UsodeOntologiasnaES• Apartirdeumaperspectivadequestõescríticas(gerais):
ontologiasusadasnasoluçãodeproblemas
X: já há usos?: há potencial
? ??
? ?
?? ?
?
??
?
OntologiasemES• 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.
SEontology• SEontology:OntologiapropostapelogrupodeDillonetal.
(Dillonetal.,2008)(Wongthongthametal.,2009)– “theworld’sfirstandonlySoftwareEngineeringOntology[…]availableonlineatwww.seontology.org”(Dillonetal.,2008).
– TheSEontologyconsistsofthefollowingsub-ontologies:• softwarerequirementsontology• softwaredesignontology• constructionontology• softwaretestingontology• softwaretoolsandmethodsontology
– InadditiontotheSEontology,thegroupatDEBIIhasdefinedaMultisiteProjectManagementOntology[3]whichconsistsof11sub-ontologies:process,product,enterprisearchitecture,softwarecomponent,actor&role,team,servicelevel,quality,risk,controlstructureandlocation.
SEOntology
ThewholesetofsoftwareengineeringconceptsrepresentingsoftwareengineeringdomainknowledgeiscapturedinSEontology.
The specific softwareengineeringconceptsusedfortheparticularsoftwareprojectrepresentingsoftwareengineeringsubdomain knowledgearecapturedinontology.
Domainknowledgeisseparatefrominstanceknowledge.
SEontology• ConhecimentododomíniodeES,desub-domíniosdaESe
acercadasinstânciasédisponibilizadoparacompartilha-mento entreengenheirosdesoftwarepelaInternet.
• Membrosdasequipes,adespeitodesualocalização,podemconsultarainformaçãosemanticamenteligadaeusá-lacomobasecomumparacomunicação.
• “OpropósitoprincipaldaSEontologyépermitiracomunicaçãoentresistemasdecomputadorouentreengenheirosdesoftwareengineersdemodoaobterumentendimentocomumdoconhecimentodeESerealizarcertostiposdecomputações”(Wongthongthametal.,2009).
SEontology• Érepresentadagraficamenteusandoumanotaçãoproposta
pelosautoreseéimplementadaemOWL.• SEontologycontém362conceitose303relações.• SEontologypodeserusadaparafacilitar:– Compartilhamentodeconhecimento(Ex.:modelagemdecasosdeuso)
– Comunicação(Ex.:diagramadeatividades)• Aplicaçõespráticas:– Anotaçãoerecuperaçãodeinformação.
SEontology
SEontology
SEontology
SEontology
SEontology
SEontology
SEontology
SWEBOKOntology• Baseadanaversão2004doSWEBOK(Abranetal.,2006).• SWEBOK:GuidetotheSoftwareEngineeringBodyof
Knowledge:iniciativaqueproduziuumnotávelconsensoacercadeumsubconjuntodoconhecimentodeES.
• 1ªFase:envolveuaproximadamente500revisoresde42países.
• 2ªFase:envolveumaisde120revisoresde21países.
SWEBOK• OGuianãodeveserconfundidocomoCorpode
Conhecimentoemsi.• Opropósitodoguiaédescreverqueporçãodocorpode
conhecimentoéaceitodeformageral,organizarestaporçãoeproveracessopormeiodetópicosaela.
• Ocorpodeconhecimentoéencontradonasreferênciasenãonoguia.
48
SWEBOK• CategoriasdeConhecimento
SWEBOK:Versão2004• ÁreasdeConhecimento:– RequisitosdeSoftware– DesigndeSoftware– ConstruçãodeSoftware– TestedeSoftware– ManutençãodeSoftware– GerênciadeConfiguraçãodeSoftware– GerênciadeEngenhariadeSoftware– ProcessodeEngenhariadeSoftware– MétodoseFerramentasdeEngenhariadeSoftware– QualidadedeSoftware
50
SWEBOK:Versão2004• DisciplinasRelacionadas:– EngenhariadeComputação– CiênciadaComputação– Gerência– Matemática– GerênciadeProjetos– GerênciadaQualidade– ErgonomiadeSoftware– EngenhariadeSistemas
SWEBOK:Versão2014• ÁreasdeConhecimento:
– RequisitosdeSoftware– DesigndeSoftware– ConstruçãodeSoftware– TestedeSoftware– ManutençãodeSoftware– GerênciadeConfiguraçãodeSoftware– GerênciadeEngenhariadeSoftware– ProcessodeEngenhariadeSoftware– MétodoseModelos deEngenhariadeSoftware– QualidadedeSoftware– PráticaProfissionaldeEngenhariadeSoftware– EconomiadeEngenhariadeSoftware– FundamentosdeComputação– FundamentosdeMatemática– FundamentosdeEngenharia
52
SWEBOK:Versão2014• DisciplinasRelacionadas:– EngenhariadeComputação– CiênciadaComputação– GerênciaGeral– Matemática– GerênciadeProjetos– GerênciadaQualidade– EngenhariadeSistemas
SWEBOKOntology• FasesdoProjeto:– ConstruçãodaProto-ontologia:
• Análisedosconceitos,relaçõeseaxiomasporáreadeconhecimento.Base:GuiadoSWEBOKepadrõesISOeIEEErelacionados.
• Extraçãoautomática(processamentodelinguagemnatural)paracompletaralistadeconceitoserelações.
– CiclosdeValidaçãoInterna:inicialmentecommembrosdoprojeto,visandoprogressivamenteconstruirumconsensomaisamplo,noqueserefereaoselementosnaproto-ontologia.
– CiclosdeValidaçãoExterna:idem,masconsiderandoespecialistasnodomíniodeESdereputaçãointernacional.Nãoficaclarosefoifeita(otextodizque“serárequerida”).
SWEBOKOntology:FasesdoProjeto
SWEBOKProto-ontology• ForamidentificadosnoGuiaSWEBOK:4.141conceitos,407
relações,1.087fatose15princípios.
SWEBOKOntology• Usodeumaontologiadefundamentaçãocomobase:
OpenCyc0.9.• Métododefundamentaçãousado:– EncontrarnaontologiadefundamentaçãoumaoumaiscategoriasquepodemsersupertipoparaumacategoriadaontologiadoSWEBOK.
– Checarseomapeamentoéconsistentecomorestantedaontologia.
– Proverpredicadosapropriadosparacaracterizaranovacategoria.
– EditarnoProtégé(ououtroeditor)paraseobteraversãoformalfinal.
• Aargumentação(afavoroucontra)acercadeumconceitooupredicadoéfeitatomandoOpenCyccomobase.
SWEBOKOntology• Principaiselementosdaontologia,transversaisaváriasáreasde
conhecimentodoSWEBOK.• Conceitoscentrais:
– Atividade(focoematividadesefetivamenterealizadas)– subtipodeOC::PurposefulAction
– EngenheirodeSoftware(papeldesempenhadoporumagentehumano)–subtipodeOC::IntelligentAgent,excludingcollectives:Equipe,Organização)
– Artefato(OC::Artifact)– Documento(“Animportantontologicaldifferentiationisthatof
Documentsandits“propositional”content,i.e.theinformationtheycontain.”)
– ProgramadeComputador:(OC::ComputerProgram,whichis“distinctfromcomputercodeandfrombothrunningandinstalledprograms.”)
OntologiaparaMetodologiaseEsforçosdeDesenvolvimentodeSoftware
OntologiaparaMetodologiaseEsforçosdeDesenvolvimentodeSoftware
OntologiaparaMetodologiaseEsforçosdeDesenvolvimentodeSoftware- Processo
OntologiaparaMetodologiaseEsforçosdeDesenvolvimentodeSoftware– Estágios
OntologiaparaMetodologiaseEsforçosdeDesenvolvimentodeSoftware- Produto
OntologiaparaMetodologiaseEsforçosdeDesenvolvimentodeSoftware- Produtor
Referências• Abran,A.,Cuadrado,J.J.,García-Barriocanal,E.,Mendes,O.,Sánchez-Alonso,
S.,Sicilia,M.A.,EngineeringtheOntologyfortheSWEBOK:IssuesandTechniques.In:OntologiesinSoftwareEngineeringandSoftwareTechnology,Calero,C.,Ruiz,F.,Piatinni,M.(Eds.),Springer,2006,pp.103- 121.
• Wongthongtham,P.,Chang,E.,Dillon,T,S.,Sommerville,I.,DevelopmentofaSoftwareEngineeringOntologyforMultisiteSoftwareDevelopment, IEEETransactionsonKnowledgeandDataEngineering,vol.21,no.8,August2009,pp.1205- 1217 .
• Zhao,Y.,Dong,J.,Peng,T.,OntologyClassificationforSemantic-Web-BasedSoftwareEngineering,IEEETransactionsonServicesComputing,vol.2,no.4,October-December2009,pp.303- 317 .
Recommended