4.6 ANÁLISE
4.6.5 BluetoothTicTacToe
Essa análise corresponde ao Critério 3 - para a aplicação BluetoothTicTacToe - definido no item de critério no planejamento (Seção 4.4).
108 Análise
BluetoothTicTacToe é uma aplicação de jogo da velha disponibilizada com a ferramenta MOTODEV Studio for Java ME17. Ela usa diretamente a JSR-
82 como infra-estrutura de comunicação para a descoberta de jogadores e a transferência das jogadas entre os hosts. Quando em execução, cada aplicação pode se comportar como um servidor a espera de um jogador ou como cliente a procura de um jogador, por isso funciona de maneira lógica como o modelo Cliente-Servidor, usando o modo síncrono de comunicação.
Levantamento
Os valores das métricas da aplicação original e da aplicação usando o Sw-Bluj estão na Tabela 4.10.
Tabela 4.10 - Métricas de Tamanho e Complexidade da BluetoothTicTacToe
Classes Métodos Linhas CCN BluetoothTicTacToe Original 12 83 724 198 BluetoothTicTacToe com Sw-Bluj 10 69 606 170
Na Tabela 4.11 e Tabela 4.12 estão detalhados os valores das métricas somente para as classes de comunicação. É importante ressaltar que não foi considerado código que esteja relacionado com o negócio dos cenários das aplicações construídas. Logo, não foram mensurados os dados relativos ao tratamento de interface gráfica de usuário e fluxo de execução, por exemplo.
Tabela 4.11 - Métricas de Tamanho e Complexidade da BluetoothTicTacToe Original - Somente Comunicação
Classe Métodos Linhas CCN
com.mot.j2me.midlets.bluetoothtictactoe. BluetoothTicTacToeMIDlet 20 220 46 com.mot.j2me.midlets.bluetoothtictactoe. BluetoothConnection 6 23 6 com.mot.j2me.midlets.bluetoothtictactoe. BluetoothConnectionServer 3 27 11 com.mot.j2me.midlets.bluetoothtictactoe. BluetoothConnectionClient 9 72 22 Total 38 342 85
17 Site do MOTODEV Studio for Java ME:
Tabela 4.12 - Métricas de Tamanho e Complexidade da BluetoothTicTacToe com Sw-Bluj - Somente Comunicação
Classe Métodos Linhas CCN
com.mot.j2me.midlets.bluetoothtictactoe.
BluetoothTicTacToeMIDlet 20 239 53
com.mot.j2me.midlets.bluetoothtictactoe.
BluetoothTicTacToeListener 3 12 4
Total 23 251 57
Na Tabela 4.13 e Tabela 4.14 estão os valores das métricas de CK (M4). Por questão de simplicidade somente estão apresentadas as classes da aplicação BluetoothTicTacToe alteradas, removidas ou incluídas.
Tabela 4.13 - Métricas de Qualidade da BluetoothTicTacToe Original
Classe WM C DIT CBO RFC LCOM com.mot.j2me.midlets.bluetoothtictacto e. BluetoothTicTacToeMIDlet 28 2 8 80 58 com.mot.j2me.midlets.bluetoothtictacto e. BluetoothTicTacToeMIDlet$1 2 1 5 18 0 com.mot.j2me.midlets.bluetoothtictacto e. BluetoothConnection 8 1 1 20 20 com.mot.j2me.midlets.bluetoothtictacto e. BluetoothConnectionServer 3 0 1 15 1 com.mot.j2me.midlets.bluetoothtictacto e. BluetoothConnectionClient 9 0 2 33 6
Tabela 4.14 - Métricas de Qualidade da BluetoothTicTacToe com Sw-Bluj
Classe WM C DI T CB O RF C LCO M com.mot.j2me.midlets.bluetoothtictacto e. BluetoothTicTacToeMIDlet 29 2 12 84 92 com.mot.j2me.midlets.bluetoothtictacto e. BluetoothTicTacToeMIDlet$1 2 1 6 24 0 com.mot.j2me.midlets.bluetoothtictacto e. BluetoothConnection Removido com.mot.j2me.midlets.bluetoothtictacto e. BluetoothConnectionServer com.mot.j2me.midlets.bluetoothtictacto e. BluetoothConnectionClient com.mot.j2me.midlets.bluetoothtictacto e. BluetoothTicTacToeListener 4 1 3 9 0
110 Análise
Análise
Analisando o valor total da métrica de tamanho do código-fonte (M1) para a construção da aplicação BluetoothTicTacToe, nota-se que a versão que usa o Sw-Bluj possui uma quantidade menor de classes (T1), métodos (T2) e linhas de código (T3) quando comparado aos respectivos números da aplicação original. Ele representa, assim, uma economia de 17% no número de classes, 17% no número de métodos e 16% no número de linhas de código.
Esses valores de M1 rejeitam a primeira parte da hipótese nula Ho4 e, em
conseqüência, validam a primeira parte da hipótese alternativa H4, onde
µTamanho da aplicação original ≥ µTamanho da aplicação com Sw-Bluj.
Analisando o valor total da métrica de complexidade (M2) para a construção da aplicação BluetoothTicTacToe, nota-se que a versão que usa o Sw-Bluj possui uma quantidade menor de complexidade ciclomática (C1) quando comparado ao respectivo número da aplicação original. Ele representa, assim, uma economia de 14% da complexidade ciclomática.
Esse valor de M2 rejeita a segunda parte da hipótese nula Ho4 e, em
conseqüência, valida a segunda parte da hipótese alternativa H4, onde
µComplexidade da aplicação original ≥ µComplexidade da aplicação com
Sw-Bluj.
Se forem comparados somente os valores das métricas para as classes alteradas necessárias para a comunicação, esta economia tanto de tamanho quanto de complexidade torna-se ainda mais significativa: 50% no número de classes, 40% no número de métodos, 27% no número de linhas de código e de 33% da complexidade ciclomática.
A exemplo do que aconteceu na comparação anterior, a validação da primeira e segunda parte de H4 validam a própria hipótese alternativa. Isso
implica que com o uso do middleware Sw-Bluj é possível construir a aplicação BluetoothTicTacToe com um esforço bem menor que o necessário quando se usa diretamente a JSR-82, considerando o tamanho e a complexidade de software. A verificação dessa hipótese corrobora a funcionalidade do
middleware proposto na construção de novas aplicações com menor esforço. A análise quanto ao impacto do uso do Sw-Bluj na qualidade do código da aplicação se dá pela comparação das tabelas das métricas M4. Percebe-se que a adaptação do código da aplicação alterou os valores das métricas da classe BluetoothTicTacToeMIDlet e sua classe interna anônima BluetoothTicTacToeMIDlet$1, com a exceção de DIT, todos os valores das
métricas aumentaram. Isso significa que essas classes assumiram maior responsabilidade quando passaram a usar o Sw-Bluj. Os valores de CBO e RFC passaram a ser maiores do que quando não se usa o Sw-Bluj e se constrói a aplicação do início completamente. Isso significa que as classes do middleware incluem uma boa quantidade de chamadas de métodos e que a maioria das funcionalidades para serem implementadas já existe no middleware, e as classes específicas da aplicação basicamente só usam aquelas ao invés de implementá- las. Além disso, as classes BluetoothConnection, BluetoothConnectionServer e BluetoothConnectionClient foram
removidas por não serem mais necessárias, pois o Sw-Bluj resolve as responsabilidades delas, proporcionando maior qualidade ao projeto das classes
da aplicação. Em contrapartida, foi necessária a criação de uma nova classe para realizar o papel de listener.
Esses valores de M4 rejeitam a hipótese nula Ho5 e, em conseqüência,
validam a hipótese alternativa H5, onde µQualidade da aplicação original ≤
µQualidade da aplicação com Sw-Bluj. Isso implica que com o uso do
middleware Sw-Bluj é possível construir a aplicação BluetoothTicTacToe com uma qualidade maior que quando se usa diretamente a JSR-82, considerando as métricas de CK. A verificação dessa hipótese corrobora a funcionalidade do
middleware proposto na construção de novas aplicações com maior qualidade.