ebook img

Um Processo para Construç˜ao e Instanciaç˜ao de Frameworks baseados em uma Linguagem de PDF

232 Pages·2003·2.47 MB·Portuguese
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Um Processo para Construç˜ao e Instanciaç˜ao de Frameworks baseados em uma Linguagem de

Um Processo para Construc¸a˜o e Instanciac¸a˜o de Frameworks baseados em uma Linguagem de Padro˜es para um Dom´ınio Espec´ıfico Rosana Teresinha Vaccare Braga Tese de Doutorado apresentada ao Instituto de Cieˆncias Matema´ticas e de Computac¸a˜o - ICMC/USP, para a obtenc¸a˜o do t´ıtulo de Doutor na A´rea de Cieˆncias de Computac¸a˜o e Matema´ticaComputacional. Orientador: Prof. Dr. PauloCesarMasiero i Dedico este trabalho Ao Cirilo, ao Thales e ao Vitor ii Agradecimentos Agradec¸oaDeus,pelavida! Ao Cirilopor estarsempre presente,mesmo nas horasmais dif´ıceis, peloincentivo constantepara queeuatingissemeusobjetivosepormuitasvezessuportarminhaauseˆncia. Aos meus filhos Thales e Vitor, por compreenderem a importaˆncia deste doutorado para mim e me apoiarem, mesmo sabendo que para consegui-lo eu teria que diminuir minha dedicac¸a˜o em partedesuasvidas. Aos meus familiares, em especial aos meus pais Miguel e Maria Teresa, por sempre me incen- tivaremacontinuarosestudosepormeampararemsemprequedelespreciso. Ao meu orientador, Prof. Dr. Paulo Cesar Masiero, pela ex´ımia conduc¸a˜o da pesquisa, pela confianc¸aemmeaceitarcomoalunaepelosensinamentospassadosaolongodestetrabalho. Ao Prof. Dr. Ferna˜o Stella R. Germano, pelo incentivo que fez com que eu retornasse a` Uni- versidadeapo´sdezanosdeformadaepelasmuitascontribuic¸o˜esoferecidasaestetrabalho. A` Prof.a Dr.a Rosaˆngela Penteado pela amizade, pela participac¸a˜o ativa durante as discusso˜es e peladisponibilidadenaexecuc¸a˜odeexperimentosconjuntos. Ao Prof. Dr. Francisco Louzada-Neto, do departamento de Estat´ıstica Universidade Federal de Sa˜oCarlosea` Prof.a GleiciCastroPerdona´,daFaculdadedeMedicinadeRibeira˜oPreto,Univer- sidadedeSa˜oPaulo,pelaapurac¸a˜odosresultadosestat´ısticosdosexperimentos. A` aluna de doutorado Maria Istela Cagnin, que realizou usos da GRN, do GREN e do GREN- Wizard em diversos estudos de caso, pelas inu´meras sugesto˜es de melhorias e pela dedicac¸a˜o na implementac¸a˜odenovasfuncionalidadesaoGRENeaoGREN-Wizard. Ao aluno de mestrado Reginaldo Re´, que utilizou a abordagem proposta num outro dom´ınio (leilo˜esvirtuais),pelasmelhoriaspropostasaoprocesso. iii Aos amigos do Labes: Adenilso, Aline, Andre´, Andrea, Auri, De´bora, Elisa, Ellen, Erika, Gelza, Prof. Jose´ Carlos, Lisandra, Luciana, Maria Istela, Mateus, Mayb, Reginaldo, Profa. Renata, Re- jane,Profa. Rosely,Sandra,Simone,Tania,Tatiana,Thaise,Vale´riaeWillie,pelosbonsmomentos deconviveˆnciaedescontrac¸a˜o. EmespecialaoAdenilso,ReginaldoeAndre´ peloapoionousodo LATEX. Aosparticipantesdosexperimentos: alunosdoBachareladoemCieˆnciasdaComputac¸a˜odoICMC- USP(cursandoooitavoper´ıodonosegundosemestrede2001);alunosdepo´s-graduac¸a˜odaUFS- CAR da disciplina “To´picos em Engenharia de Software” (segundo semestre de 2001); alunos do curso de especializac¸a˜o em “Tecnologia da Informac¸a˜o” do SENAC/UNESP-Presidente Prudente (2001);ealunosdepo´s-graduac¸a˜odoICMCdadisciplina“Semina´riosAvanc¸adosemEngenharia deSoftwareI”(segundosemestrede2002),peladedicac¸a˜oeseriedadecomaqualconduziramos experimentos. Aosprofessoresefunciona´riosdoICMC,peladisposic¸a˜oeatenc¸a˜o. A` FAPESP,peloapoiofinanceiro. iv Suma´rio 1 Introduc¸a˜o 1 1.1 Contextualizac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Motivac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Organizac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Situac¸a˜odoProcessoPropostonoPanoramadaLiteraturaTe´cnicaEspecializada 7 2.1 Considerac¸o˜esIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Conceitosba´sicosrelacionadosa` tese . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.1 Padro˜eseLinguagensdePadro˜es . . . . . . . . . . . . . . . . . . . . . . 8 2.2.2 FrameworksdeSoftwareOrientadosaObjetos . . . . . . . . . . . . . . . 12 2.2.3 Outrasformasdereuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.4 Comparac¸o˜esentreformasdereuso . . . . . . . . . . . . . . . . . . . . . 18 2.3 Padro˜esdeAna´liseeLinguagensdePadro˜esRelevantes . . . . . . . . . . . . . . . 20 2.4 FrameworksRelevantesnaa´readeNego´cios . . . . . . . . . . . . . . . . . . . . . 23 2.4.1 IBMSanFrancisco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4.2 OmniBuilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4.3 Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.5 Trabalhosrelevantesquerelacionampadro˜esaframeworks . . . . . . . . . . . . . 26 2.5.1 HotDraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.5.2 G++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.6 AbordagensparaConstruc¸a˜odeframeworks . . . . . . . . . . . . . . . . . . . . . 29 2.7 AbordagensparaInstanciac¸a˜odeFrameworks . . . . . . . . . . . . . . . . . . . . 31 2.8 Considerac¸o˜esFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3 Um processo Geral para Desenvolvimento e Instanciac¸a˜o de Frameworks a partir de umaLinguagemdePadro˜es 34 3.1 Considerac¸o˜esIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2 Visa˜oGeraldoProcesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.3 OProcessodeConstruc¸a˜odaLinguagemdePadro˜es . . . . . . . . . . . . . . . . 38 3.3.1 Ana´lisedeDom´ınioouEngenhariaReversa . . . . . . . . . . . . . . . . . 39 3.3.2 Determinac¸a˜odosPadro˜es . . . . . . . . . . . . . . . . . . . . . . . . . . 39 v 3.3.3 Criac¸a˜odeumgrafodefluxodeaplicac¸a˜odospadro˜es . . . . . . . . . . . 41 3.3.4 EscritadosPadro˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.3.5 Validac¸a˜odaLinguagemdePadro˜es . . . . . . . . . . . . . . . . . . . . . 43 3.4 ProcessodeUsodeumaLinguagemdePadro˜es . . . . . . . . . . . . . . . . . . . 43 3.5 ALinguagemdePadro˜esparaGesta˜odeRecursosdeNego´cios . . . . . . . . . . . 45 3.5.1 Visa˜oGeral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.5.2 ExemplodeumPadra˜odaGRN . . . . . . . . . . . . . . . . . . . . . . . 48 3.5.3 Oprocessodeconstruc¸a˜odaGRN . . . . . . . . . . . . . . . . . . . . . . 51 3.5.4 OProcessodeUsodaGRN . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.5.5 ProcessodetalhadoparaAplicac¸a˜odaGRN . . . . . . . . . . . . . . . . . 53 3.5.6 ExemplodeAplicac¸a˜odaGRN . . . . . . . . . . . . . . . . . . . . . . . 55 3.6 Considerac¸o˜esFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4 OProcessodeConstruc¸a˜oeInstanciac¸a˜odeumFrameworkCaixaBranca 60 4.1 Considerac¸o˜esIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.2 OProcessodeConstruc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.2.1 Identificac¸a˜odosPontosVaria´veis . . . . . . . . . . . . . . . . . . . . . . 61 4.2.2 Projetodoframework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.2.3 Implementac¸a˜odoframework . . . . . . . . . . . . . . . . . . . . . . . . 65 4.2.4 Validac¸a˜odoframework . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.3 Exemplo–GREN:UmFrameworkparaGesta˜odeRecursosdeNego´cios . . . . . 68 4.4 OProcessodeInstanciac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.4.1 Ana´lisedoSistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.4.2 Mapeamentoentreomodelodeana´liseeoframework . . . . . . . . . . . 75 4.4.3 Implementac¸a˜odosistemaespec´ıfico . . . . . . . . . . . . . . . . . . . . 76 4.4.4 Testedosistemaresultante . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.5 Exemplo–Instanciac¸a˜odoGRENparaSistemadeAcompanhamentoeReparode Buracos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.5.1 Ana´lisedoSARB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.5.2 MapeamentodoSARBparaoGREN . . . . . . . . . . . . . . . . . . . . 77 4.5.3 Implementac¸a˜odasclassesdoSARB . . . . . . . . . . . . . . . . . . . . 79 4.5.4 TestedoSARB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.5.5 Comenta´rios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.6 Considerac¸o˜esFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5 OProcessodeConstruc¸a˜oeUtilizac¸a˜odeumWizardbaseadonaLinguagemdePadro˜es 84 5.1 Considerac¸o˜esIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.2 AlternativasparaConstruc¸a˜odeumWizard . . . . . . . . . . . . . . . . . . . . . 85 5.3 ArquiteturadoWizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.4 Construc¸a˜odeumWizard espec´ıfico . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.5 Exemplo–GREN-Wizard: UmaferramentadesuporteaoGRENea` GRN . . . . 91 5.5.1 Visa˜oGeraldoGREN-Wizard . . . . . . . . . . . . . . . . . . . . . . . . 91 5.5.2 InterfaceGra´ficadoGREN-Wizard . . . . . . . . . . . . . . . . . . . . . 91 5.5.3 ArquiteturadoGREN-Wizard . . . . . . . . . . . . . . . . . . . . . . . . 94 5.5.4 OprocessodeConstruc¸a˜odoGREN-Wizard . . . . . . . . . . . . . . . . 104 5.6 OProcessodeUtilizac¸a˜odoWizard . . . . . . . . . . . . . . . . . . . . . . . . . 105 vi 5.7 Exemplo – Utilizac¸a˜o do GREN-Wizard para gerac¸a˜o de um Sistema de Controle deReparodeBuracos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.8 DesenvolvimentodeumWizard Gene´rico . . . . . . . . . . . . . . . . . . . . . . 107 5.8.1 Construc¸a˜odeumWizard gene´rico . . . . . . . . . . . . . . . . . . . . . 109 5.8.2 Adaptac¸a˜odeumWizard gene´rico . . . . . . . . . . . . . . . . . . . . . . 117 5.9 Considerac¸o˜esFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 6 Avaliac¸a˜odaProposta 122 6.1 Considerac¸o˜esIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 6.2 Avaliac¸a˜odoprocessodeconstruc¸a˜odelinguagensdepadro˜es . . . . . . . . . . . 123 6.3 Avaliac¸a˜odautilidadedelinguagensdepadro˜esnamodelagemdesistemas . . . . 124 6.3.1 Visa˜oGeral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 6.3.2 E-GRN-1: Avaliac¸a˜odaGRNnamodelagemdesistemas . . . . . . . . . . 124 6.3.3 E-GRN-2: Avaliac¸a˜odaGRNnamodelagemdesistemas . . . . . . . . . . 131 6.3.4 E-GRN-3: Avaliac¸a˜odaGRNnamodelagemdesistemas . . . . . . . . . . 136 6.3.5 Outrasavaliac¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 6.4 Avaliac¸a˜o da utilidade de uma linguagem de padro˜es na construc¸a˜o de um fra- meworkcorrespondente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.4.1 Visa˜oGeral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.4.2 AGRNnaconstruc¸a˜odoGREN . . . . . . . . . . . . . . . . . . . . . . . 142 6.4.3 ALVnaconstruc¸a˜odoQd+ . . . . . . . . . . . . . . . . . . . . . . . . . 142 6.5 Avaliac¸a˜odautilidadedeumalinguagemdepadro˜esnainstanciac¸a˜odoframework associado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 6.5.1 Visa˜oGeral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 6.5.2 E-GRN-GREN:Avaliac¸a˜odaGRNnainstanciac¸a˜odoGREN . . . . . . . 143 6.5.3 ALVnainstanciac¸a˜odoQd+ . . . . . . . . . . . . . . . . . . . . . . . . 149 6.5.4 OutrosCasosdeUsodaGRNnainstanciac¸a˜odoGREN . . . . . . . . . . 149 6.6 Avaliac¸a˜odautilidadedeumalinguagemdepadro˜esnaconstruc¸a˜odeumWizard . 150 6.7 Avaliac¸a˜o da utilidade de uma linguagem de padro˜es na instanciac¸a˜o de um fra- meworkusandoseuWizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.8 Avaliac¸a˜odautilidadedeumWizard notestedoframeworkassociado . . . . . . . 154 6.9 Avaliac¸a˜odoFrameworkGREN . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 6.10 Avaliac¸a˜odoGREN-Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 6.11 Considerac¸o˜esFinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 7 Concluso˜es 159 7.1 Considerac¸o˜esIniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 7.2 ResumodoTrabalhoEfetuado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 7.3 Contribuic¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 7.4 Limitac¸o˜esdoTrabalhoEfetuado . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 7.5 Sugesto˜esdetrabalhosfuturos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 7.6 Trabalhosdecorrentesdestapesquisa . . . . . . . . . . . . . . . . . . . . . . . . . 163 Refereˆncias 165 vii Apêndices 172 Apêndice A - Requisitos para o Sistema de Hotel Apêndice B - Requisitos para o Sistema de Locadora de Carros Apêndice C - Requisitos para o Sistema de Clínica Veterinária Apêndice D - Formulários usados no E-GRN-1 a 3 Apêndice E - Formulários usados no E-GRN-GREN Apêndice F - Documentação adicional do GREN e do GREN-Wizard Apêndice G - Figuras Referentes aos Processos viii Lista de Figuras 2.1 Padra˜oComposic¸a˜o(Gammaetal.,1995) . . . . . . . . . . . . . . . . . . . . . . 10 2.2 RelacionamentoentreLinguagensdePadro˜es,FrameworkseAplicac¸o˜es . . . . . . 20 2.3 ArquiteturadoframeworkIBMSanFrancisco(Mondayetal.,2000) . . . . . . . . 24 2.4 EstruturadoOmniBuilder(OMNISPHERE,2002) . . . . . . . . . . . . . . . . . 26 2.5 LinguagemdePadro˜esG++(Aarstenetal.,2000) . . . . . . . . . . . . . . . . . . 28 3.1 Ilustrac¸a˜odaAbordagemProposta . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2 ProcessoProposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3 ProcessodeConstruc¸a˜odaLinguagemdePadro˜es . . . . . . . . . . . . . . . . . . 38 3.4 GRN:UmaLinguagemdePadro˜esparaGesta˜odeRecursosdeNego´cios . . . . . 47 3.5 Padra˜o2-QuantificaroRecurso . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.6 ExemplodeusodoPadra˜o2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.7 ModelodeAna´lisedoSARBcompadro˜es . . . . . . . . . . . . . . . . . . . . . . 57 4.1 Processoparaconstruc¸a˜odeumframeworkbaseadoemumalinguagemdepadro˜es 61 4.2 Identificac¸a˜odospontosvaria´veisdoframework . . . . . . . . . . . . . . . . . . . 62 4.3 ProjetodoFramework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.4 Criac¸a˜odaHierarquiadeClassesdoFramework . . . . . . . . . . . . . . . . . . . 65 4.5 Implementac¸a˜odoFramework . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.6 Validac¸a˜odoFramework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.7 ArquiteturadoGREN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.8 ExemplodealgumasclassesdoGREN . . . . . . . . . . . . . . . . . . . . . . . . 71 4.9 ProcessodeInstanciac¸a˜odoFrameworkCaixabranca . . . . . . . . . . . . . . . . 74 4.10 PartedaHierarquiadeClassesdoGRENeclassesderivadasnoSARB . . . . . . . 80 4.11 MenusejanelaprincipaldoSARB . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.12 ExemplodeGUIparaOrdemdeServic¸o(SARB) . . . . . . . . . . . . . . . . . . 82 5.1 Alternativasposs´ıveisparaconstruc¸a˜odeumWizard . . . . . . . . . . . . . . . . 86 5.2 Arquitetura do Wizard para instanciac¸a˜o de um framework baseado em uma lin- guagemdepadro˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.3 Processo para construc¸a˜o de um Wizard espec´ıfico para instanciac¸a˜o de um fra- meworkbaseadoemumalinguagemdepadro˜es . . . . . . . . . . . . . . . . . . . 89 5.4 ExemplodaGUIdoGREN-Wizard . . . . . . . . . . . . . . . . . . . . . . . . . 92 ix

Description:
Ao Prof. Dr. Fern˜ao Stella R. Germano, pelo incentivo que fez com que eu retornasse `a Esse passo é livre, n˜ao sendo tratado em detalhes aqui. 3. diversos módulos que comp˜oem o GREN-Wizard s˜ao descritos a seguir.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.