6.4 Resumo do cap´ıtulo
7.2.1 Aplica¸c˜oes Legadas
Os objetos deste estudo emp´ırico s˜ao trˆes aplica¸c˜oes legadas pertencentes ao dom´ınio de sistemas de reclama¸c˜ao sobre a sa´ude p´ublica: Healthwatcher [146], Medwatch [147] e DPH-LA [148]. O Healthwatcher ´e um sistema de reclama¸c˜ao sobre a sa´ude p´ublica que permite ao cidad˜ao acionar autoridades via a internet. Ele foi desenvolvido por pesqui- sadores da Universidade Federal de Pernambuco (UFPE) e ´e baseado em requisitos reais.
2
Figura 7.1: Rela¸c˜ao entre os objetivos, quest˜oes e m´etricas neste estudo emp´ırico Posteriormente, a comunidade de AOSD o adotou para realizar estudos emp´ıricos e uma p´agina com extensa documenta¸c˜ao sobre o sistema foi criada (vide Healthwatcher [146]). Foram implementadas dez vers˜oes do Healthwatcher, todas com funcionalidades simila- res e algumas diferen¸cas entre elas no que se refere ao projeto detalhado. Cada vers˜ao do Healthwatcher possui trˆes implementa¸c˜oes distintas, uma usando Java [63], outra As- pectJ [61] e a terceira CaesarJ [62]. Todas elas possuem as mesmas funcionalidades e atributos de qualidade. A vers˜ao usada neste estudo ´e a vers˜ao 1 implementada com AspectJ.
Trˆes tipos de reclama¸c˜oes podem ser feitas por meio do Healthwatcher: (i) reclama¸c˜ao sobre alimentos (e.g. a comida de determinado restaurante estava estragada); (ii) re- clama¸c˜ao sobre animais (e.g. foco de mosquito da dengue em determinada regi˜ao) e (iii) reclama¸c˜ao especial. A Tabela 7.1 mostra algumas m´etricas sobre tamanho do He- althwatcher. O c´odigo-fonte foi mensurado usando a m´etrica de linhas de c´odigo de classe (LOCC3
) [86] que conta as linhas de c´odigo excluindo linhas em branco, coment´arios, imports, javadocs e linhas com apenas um abre ({) ou fecha (}) chaves. Al´em disso, cada comando ´e contado em uma ´unica linha de c´odigo.
# de casos de uso 8 # de requisitos n˜ao-funcionais 9
# de componentes 7 # de conectores 0
# de m´odulos 7 # de classes (.java) 77
# de aspectos (.aj) 12 # de interfaces (.java) 15
# de LOCC 5873 # m´edia de LOCC/m´odulo 839
Tabela 7.1: M´etricas sobre o tamanho do Healthwatcher
A segunda aplica¸c˜ao legada ´e o Medwatch, um sistema mantido pela agˆencia de ad-
3
7.3. Execu¸c˜ao do Estudo Emp´ırico 125
ministra¸c˜ao de drogas e alimentos (FDA4
) dos Estados Unidos. O sistema informa os cidad˜aos americanos sobre drogas e alimentos comercializados no pa´ıs, de forma r´apida, direta e confi´avel. O Medwatch tamb´em permite que qualquer cidad˜ao reporte produtos ou m´as pr´aticas realizadas por funcion´arios da ´area de sa´ude que possam acarretar da- nos para a sa´ude das pessoas. Por exemplo, rem´edios de fabrica¸c˜ao suspeita podem ser reportados.
A terceira aplica¸c˜ao legada ´e um sistema mantido pelo Departamento de Sa´ude P´ublica do condado de Los Angeles, nos Estados Unidos, que permite o cidad˜ao reportar proble- mas relacionados `a sa´ude p´ublica [148]. Daqui em diante chamaremos esse sistema de DPH-LA. Outra fun¸c˜ao do DPH-LA ´e informar a popula¸c˜ao de Los Angeles sobre as- suntos pertinentes como vacina¸c˜ao contra a gripe ou onde ´e poss´ıvel fazer testes de HIV gratuitamente. O DPH-LA permite que o cidad˜ao reporte problemas relacionados a ani- mais (e.g. mordida de animal, infesta¸c˜ao de baratas) e alimentos (e.g. mal-estar causado por comida estragada, restaurante com condi¸c˜oes de higiene impr´oprias).
Tanto o Medwatch quanto o DPH-LA s˜ao sistemas reais e em opera¸c˜ao. Este estudo emp´ırico foi realizado sem o c´odigo-fonte ou qualquer outro artefato desses sistemas, usando apenas suas funcionalidades que foram extra´ıdas a partir do uso deles. Ambos informam os cidad˜aos e permitem que esses reportem problemas de sa´ude p´ublica. Neste estudo emp´ırico, apenas a fun¸c˜ao de reportar problemas de sa´ude p´ublica foi considerada.
7.3
Execu¸c˜ao do Estudo Emp´ırico
A Figura 7.2 mostra de forma esquem´atica a execu¸c˜ao do estudo emp´ırico. As trˆes aplica¸c˜oes legadas, Healthwatcher, Medwatch e DPH-LA, s˜ao as entradas para a abor- dagem proposta. Como resultado da execu¸c˜ao da abordagem foi criada a LPS Sistema de reclama¸c˜ao da sa´ude p´ublica (SRSP) e, a partir dela, ´e poss´ıvel derivar trˆes produ- tos, SRSP-Healthwatcher, SRSP-Medwatch e SRSP-LA, que correspondem `as aplica¸c˜oes legadas Healthwatcher, Medwatch e DPH-LA, respectivamente.
As linguagens escolhidas para desenvolver a LPS foram Java e AspectJ. Em particular, as tecnologias Java EE [57] e Java RMI [49] foram usadas para implementar a distribui¸c˜ao e os dados foram armazenados em banco de dado MySQL [149]. Todas essas tecnologias s˜ao as mesmas usadas no desenvolvimento do Healthwatcher [146]. Com o prop´osito de evitar influˆencias nas m´etricas, as altera¸c˜oes no c´odigo legado se restringiram ao m´ınimo necess´ario para adequ´a-lo a especifica¸c˜ao da arquitetura. Al´em disso, boa parte do c´odigo legado foi empacotada usando os componentes COSMOS∗
-VP.
A execu¸c˜ao da abordagem implica que a variabilidade da LPS foi modelada e imple-
4
Figura 7.2: Esquema da execu¸c˜ao do estudo emp´ırico
mentada com aspectos, ou seja, os componentes transversais encapsulam as caracter´ısticas opcionais e alternativas. Parte dos dados foi coletada com aux´ılio da ferramenta Aop- metrics [86], outra parte de forma semi-automatizada usando scripts que processam o c´odigo-fonte extraindo informa¸c˜oes para serem analisadas. As m´etricas foram coletadas pelo autor da tese.
# de casos de uso 16 # de requisitos n˜ao-funcionais 9 # total de caracter´ısticas 44 # de caracter´ısticas obrigat´orias 27 # caracter´ısticas alternativas 6 # de caracter´ısticas opcionais 11
# de componentes 10 # de conectores 6
# de m´odulos 16 # de classes (.java) 160
# de aspectos (.aj) 72 # de interfaces (.java) 60
# de LOCC 11086 # m´edia de LOCC/m´odulo 693
Tabela 7.2: M´etricas sobre o tamanho da LPS Sistema de reclama¸c˜ao da sa´ude p´ublica A Tabela 7.2 mostra algumas m´etricas sobre tamanho da LPS Sistema de reclama¸c˜ao da sa´ude p´ublica desenvolvida na execu¸c˜ao da abordagem.