Uma Contribuição ao Projeto Arquitetural de Ambientes de Engenharia de Software Elisa Yumi Nakagawa Orientador: Prof. Dr. JoséCarlosMaldonado Tese apresentada ao Instituto de Ciências Matemáticas e de Com- putação–ICMC/USP,paraaobtençãodotítulodeDoutornaÁrea deCiênciasdeComputaçãoeMatemáticaComputacional. USP–SãoCarlos Marçode2006 Agradecimentos AOmeuorientador,Prof. Dr. JoséCarlosMaldonadocomquempudeaprendermuitoepor ser referência para mim de profissional, professor e orientador. Obrigada pela compreen- são,pelaorientação,pelaconfiançae,acimadetudo,pelaamizade. Ao Fabrício, Camila, Lucas e Vítor que tiveram que abrir mão de minha companhia para queeupudessemededicaraestetrabalho. Agradeçopeloamorincondicionaldevocês. Aos meus pais Yukio (mais conhecido como Maurício Japonês) e Akiko a quem mais devo essaconquista. Muito,muitoobrigada. MeussincerosagradecimentosaoProf. Dr. SérgioCarlosNahasdaFaculdadedeMedicina da Universidade de São Paulo pela sua dedicação, sua competência e pela oportunidade de eu poderestarvendoagoraavidadeoutroprisma. Meus agradecimentos à Margarida pela sua sincera amizade, pela sua essencial ajuda du- rante essa quase uma década de convivência. Obrigada pela ajuda com as crianças, sendo sempreminhasuplentenafunçãodemãe. Ao Seu Zé que sempre nos ajudou e acredito estar ajudando de onde estiver agora, e à Cristinapelasuaeternadedicaçãoaosfilhosenetos. Aos amigos do Labes, e em especial ao Fabiano, Ellen, Valter, Adenilso e André, e a todos osdemaiscomquempudeconviverdurantetodosessesanos. Aosmeusalunosdeiniciaçãocientíficaedeprojetodegraduação,especialmenteaoThiago, Keila,Priscila,FadúePaulinha,quediretaouindiretamentecontribuíramcomestatese. AtodososfuncionáriosdoICMC. ÀUniversidadedeSãoPauloeaoCentroUniversitáriodeAraraquara-Uniara. i ii Sumário ListadeFiguras vii ListadeTabelas ix 1 Introdução 1 1.1 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4 OrganizaçãodoTrabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2 RevisãoBibliográfica 11 2.1 ConsideraçõesIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 ProcessodeSoftware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.1 PadronizaçãodeProcessodeSoftware . . . . . . . . . . . . . . . . . . 14 2.2.2 ProcessodeDesenvolvimentodeSoftware . . . . . . . . . . . . . . . 15 2.2.3 ProcessodeDesenvolvimentodeSoftwareLivre . . . . . . . . . . . . 17 2.3 AmbientesdeEngenhariadeSoftware . . . . . . . . . . . . . . . . . . . . . . 20 2.3.1 DesafiosdasPesquisasemAmbientesdeEngenhariadeSoftware . . . 23 2.3.2 LinguagensparaModelagemdeProcessos . . . . . . . . . . . . . . . 25 2.4 ArquiteturadeSoftware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4.1 DescriçãodeArquiteturasdeSoftware . . . . . . . . . . . . . . . . . . 32 2.4.2 ArquiteturadeSistemasWeb . . . . . . . . . . . . . . . . . . . . . . . 35 2.5 OrientaçãoaAspectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.5.1 ProgramaçãoOrientadaaAspectos . . . . . . . . . . . . . . . . . . . 40 2.5.2 DesenvolvimentoOrientadoaAspectos . . . . . . . . . . . . . . . . . 41 2.5.3 TecnologiasdeApoio . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.6 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.6.1 ProcessodeDesenvolvimentodeFrameworks . . . . . . . . . . . . . . 47 2.6.2 DocumentaçãodeFrameworks . . . . . . . . . . . . . . . . . . . . . . 48 2.6.3 FrameworksOrientadosaAspectos . . . . . . . . . . . . . . . . . . . 49 2.6.4 OutrosMecanismosdeReutilização . . . . . . . . . . . . . . . . . . . 51 iii 2.7 Ontologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.7.1 RepresentaçãodeOntologias . . . . . . . . . . . . . . . . . . . . . . . 54 2.8 TestedeSoftware: UmaVisãoGeral . . . . . . . . . . . . . . . . . . . . . . . 55 2.8.1 TécnicaseCritériosdeTeste . . . . . . . . . . . . . . . . . . . . . . . 57 2.8.2 AutomatizaçãodeTestedeSoftware . . . . . . . . . . . . . . . . . . . 59 2.9 ConsideraçõesFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3 ArquiteturadeReferênciadeAmbientesdeEngenhariadeSoftware 69 3.1 ConsideraçõesIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.2 RequisitosArquiteturaisdeAmbientesdeEngenhariadeSoftware . . . . . . . 70 3.3 EstruturaGeraleCaracterísticasdaArquitetura . . . . . . . . . . . . . . . . . 71 3.3.1 ArquiteturasdeSistemasInterativosedeSistemasWeb . . . . . . . . . 73 3.3.2 ISO/IEC12207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.3.3 Ontologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.3.4 SeparaçãodeInteresseseFrameworksTransversais . . . . . . . . . . . 81 3.4 DescriçãodaArquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.4.1 VisãodeMódulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.4.2 VisãoemTempodeExecução . . . . . . . . . . . . . . . . . . . . . . 86 3.4.3 VisãodeImplantação . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.5 EvoluçãoeIntegraçãonosAmbientesdeEngenhariadeSoftware . . . . . . . . 90 3.5.1 EvoluçãodosAmbientesdeEngenhariadeSoftware . . . . . . . . . . 90 3.5.2 IntegraçãonosAmbientesdeEngenhariadeSoftware . . . . . . . . . . 91 3.5.3 InvestigaçãoPreliminarSobreUsodeWorkflow . . . . . . . . . . . . 93 3.6 UtilizaçãodaRefASSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 3.7 ConsideraçõessobreaImplementaçãodeumAESBaseadonaRefASSET . . . 99 3.8 ConsideraçõesFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4 ArquiteturadeReferênciadeFerramentasdeTeste 103 4.1 ConsideraçõesIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.2 EspecializaçãoeInstanciaçãoArquitetural . . . . . . . . . . . . . . . . . . . . 104 4.3 InvestigaçãodoDomínio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.3.1 ArquiteturasdeReferênciadeFerramentasdeTeste . . . . . . . . . . . 106 4.3.2 ProcessosdeTestedeSoftware . . . . . . . . . . . . . . . . . . . . . 109 4.3.3 InvestigaçãodeFerramentasdeTeste . . . . . . . . . . . . . . . . . . 113 4.3.4 OntologiadeTestedeSoftware . . . . . . . . . . . . . . . . . . . . . 116 4.3.5 Identificação das Funcionalidades Específicas e dos Conceitos do Do- mínio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.4 AnáliseArquitetural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.5 TratamentodeFrameworksTransversais . . . . . . . . . . . . . . . . . . . . . 125 4.5.1 FrameworksTransversaisdePropósitoGeral . . . . . . . . . . . . . . 125 4.5.2 Framework TransversaldeDocumentaçãodeTeste . . . . . . . . . . . 129 4.5.3 Framework TransversaldeGerênciadeConfiguraçãoparaTeste . . . . 141 4.6 ProjetoArquitetural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 4.7 ConsideraçõesFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 iv 5 ProcessoBaseadoemArquiteturadeSoftware 155 5.1 ConsideraçõesIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 5.2 EspecializaçãoeInstanciaçãoArquitetural . . . . . . . . . . . . . . . . . . . . 156 5.3 ProSA(ProcessbasedonSoftwareArchitecture) . . . . . . . . . . . . . . . . 158 5.3.1 Passo1: InvestigaçãodoDomínio . . . . . . . . . . . . . . . . . . . . 160 5.3.2 Passo2: AnáliseArquitetural . . . . . . . . . . . . . . . . . . . . . . 163 5.3.3 Passo3: TratamentodeFrameworksTransversais . . . . . . . . . . . . 165 5.3.4 Passo4: ProjetoArquitetural . . . . . . . . . . . . . . . . . . . . . . . 167 5.3.5 Passo5: DesenvolvimentodoSistema . . . . . . . . . . . . . . . . . . 168 5.3.6 Passo6: IntegraçãonoAmbientedeEngenhariadeSoftware . . . . . . 169 5.4 ConsideraçõesFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 6 Conclusões 171 6.1 CaracterizaçãodaPesquisaRealizada . . . . . . . . . . . . . . . . . . . . . . 171 6.2 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 6.3 DificuldadeseLimitações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 6.4 TrabalhosRelacionadosaestaPesquisa . . . . . . . . . . . . . . . . . . . . . 175 6.5 TrabalhosFuturos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 6.6 PublicaçõesEsperadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 ReferênciasBibliográficas 181 A OntoTest: UmaOntologiadeTestedeSoftware 221 B DTDdeDocumentaçãodeTeste 229 v vi
Description: