<?xml version="1.0" encoding="UTF-8"?><?xml-model type="application/xml-dtd" href="http://jats.nlm.nih.gov/publishing/1.1d3/JATS-journalpublishing1.dtd"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1d3 20150301//EN" "http://jats.nlm.nih.gov/publishing/1.1d3/JATS-journalpublishing1.dtd">
<article xmlns:ali="http://www.niso.org/schemas/ali/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" dtd-version="1.1d3" specific-use="Marcalyc 1.2" article-type="research-article" xml:lang="es">
<front>
<journal-meta>
<journal-id journal-id-type="redalyc">3442</journal-id>
<journal-title-group>
<journal-title specific-use="original" xml:lang="es">TecnoLógicas</journal-title>
</journal-title-group>
<issn pub-type="ppub">0123-7799</issn>
<issn pub-type="epub">2256-5337</issn>
<publisher>
<publisher-name>Instituto Tecnológico Metropolitano</publisher-name>
<publisher-loc>
<country>Colombia</country>
<email>tecnologicas@itm.edu.co</email>
</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="art-access-id" specific-use="redalyc">344268257016</article-id>
<article-id pub-id-type="doi">https://doi.org/10.22430/22565337.2104</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Artículos de investigación</subject>
</subj-group>
</article-categories>
<title-group>
<article-title xml:lang="es">Repercusión de arquitectura limpia y la norma ISO/IEC 25010 en la mantenibilidad de aplicativos Android</article-title>
<trans-title-group>
<trans-title xml:lang="en">Impact of Clean Architecture and ISO/IEC 25010 on the Maintainability of Android Applications</trans-title>
</trans-title-group>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="no">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-6265-4569</contrib-id>
<name name-style="western">
<surname>Arias-Orezano</surname>
<given-names>José Francisco</given-names>
</name>
<xref ref-type="aff" rid="aff1"/>
<email>josearias@upeu.edu.pe</email>
</contrib>
<contrib contrib-type="author" corresp="no">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-4359-5732</contrib-id>
<name name-style="western">
<surname>Reyna-Barreto</surname>
<given-names>Benjamín David</given-names>
</name>
<xref ref-type="aff" rid="aff2"/>
<email>reyna_b@upeu.edu.pe</email>
</contrib>
<contrib contrib-type="author" corresp="no">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-2713-8769</contrib-id>
<name name-style="western">
<surname>Mamani-Apaza</surname>
<given-names>Guillermo</given-names>
</name>
<xref ref-type="aff" rid="aff3"/>
<email>guillepiter@upeu.edu.pe</email>
</contrib>
</contrib-group>
<aff id="aff1">
<institution content-type="original">Universidad Peruana Unión, Lima-Perú,  josearias@upeu.edu.pe</institution>
<institution content-type="orgname">Universidad Peruana Unión</institution>
<country country="PE">Perú</country>
</aff>
<aff id="aff2">
<institution content-type="original">Universidad Peruana Unión, Lima-Perú,   reyna_b@upeu.edu.pe</institution>
<institution content-type="orgname">Universidad Peruana Unión</institution>
<country country="PE">Perú</country>
</aff>
<aff id="aff3">
<institution content-type="original">Universidad Peruana Unión, Lima-Perú,   guillepiter@upeu.edu.pe</institution>
<institution content-type="orgname">Universidad Peruana Unión</institution>
<country country="PE">Perú</country>
</aff>
<pub-date pub-type="epub-ppub">
<season>Septiembre-Diciembre</season>
<year>2021</year>
</pub-date>
<volume>24</volume>
<issue>52</issue>
<elocation-id>e2104</elocation-id>
<history>
<date date-type="received" publication-format="dd mes yyyy">
<day>10</day>
<month>06</month>
<year>2021</year>
</date>
<date date-type="accepted" publication-format="dd mes yyyy">
<day>11</day>
<month>11</month>
<year>2021</year>
</date>
<date date-type="pub" publication-format="dd mes yyyy">
<day>17</day>
<month>12</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-year>2017</copyright-year>
<copyright-holder>Instituto Tecnológico Metropolitano</copyright-holder>
<ali:free_to_read/>
<license xlink:href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
<ali:license_ref>https://creativecommons.org/licenses/by-nc-sa/4.0/</ali:license_ref>
<license-p>Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.</license-p>
</license>
</permissions>
<abstract xml:lang="es">
<title>Resumen</title>
<p>La constante actualización de los aplicativos móviles está relacionada con el desarrollo continuo que demandan las necesidades del usuario, la tecnología y, sobre todo, los nuevos dispositivos. En efecto, esta ininterrumpida evolución, y la complejidad misma del aplicativo, hace que su mantenimiento no garantice la estabilidad cuando se agregan nuevas funcionalidades o se actualicen las versiones del sistema operativo. El objetivo de este estudio fue establecer el impacto de la implementación de arquitectura limpia y de la norma ISO/IEC 25010 en la mantenibilidad del aplicativo móvil Educar Teacher. El diseño de la investigación fue <italic>ex post facto</italic> cuasi experimental de corte transversal, considerando los aplicativo Educar Teacher y CRM Distribución como grupo experimental y de control, respectivamente, donde se evaluó y se comparó la mantenibilidad de ambos, considerando como unidad de análisis los paquetes, clases y líneas de código. La variable independiente fue arquitectura limpia y norma ISO/IEC 25010, y la dependiente fue mantenibilidad, la cual se trabajó con los criterios de analizabilidad, estabilidad, testeabilidad y cambiabilidad. La muestra fue censal y estuvo conformada por 693 paquetes, 2037 clases y 168 217 líneas de código del aplicativo Educar Teacher. De acuerdo con los resultados, se concluye que al desarrollar con arquitectura limpia y norma ISO/IEC 25010, el aplicativo Educar Teacher logra una repercusión positiva en la mantenibilidad basado en los criterios de analizabilidad, estabilidad, testeabilidad y cambiabilidad de 7 %, 56 %, 0.7 %, 0.9 %, respectivamente.</p>
</abstract>
<trans-abstract xml:lang="en">
<title>Abstract</title>
<p>The constant evolution of mobile applications is related to the continuous development demanded by user needs, technology and, especially, new devices. This continuous evolution and the complexity of the application itself, means that its maintenance does not guarantee stability when new functionalities are added, or versions of the operating system are updated. The aim of this study was to establish the impact of the implementation of Clean Architecture &amp; ISO/IEC 25010 on the maintainability of the Educar Teacher mobile application (www.icrmedu.com). The research design was quasi-experimental, cross-sectional, considering the Educar Teacher and CRM Distribution applications as experimental and control groups, respectively, where the maintainability of both was evaluated and compared, considering the packages, classes, and lines of code as the unit of analysis. The independent variable was Clean Architecture &amp; ISO/IEC 25010, and the dependent variable was maintainability, which was worked with the criteria of analyzability, stability, testability, and changeability. The sample was census-based and consisted of 693 packages, 2.037 classes and 168.217 lines of code from the Educar Teacher application. According to the results, it is concluded that by developing with Clean Architecture &amp; ISO/IEC 25010, the Educar Teacher application achieves a positive impact on maintainability based on the analyzability, stability, testability, and changeability criteria of 7 %, 56 %, 0.7 % and 0.9 %, respectively.</p>
</trans-abstract>
<kwd-group xml:lang="es">
<title>Palabras clave</title>
<kwd>Aplicaciones móviles</kwd>
<kwd>Android</kwd>
<kwd>Arquitectura de software</kwd>
<kwd>Arquitectura limpia</kwd>
<kwd>Calidad de software</kwd>
</kwd-group>
<kwd-group xml:lang="en">
<title>Keywords</title>
<kwd>Mobile applications</kwd>
<kwd>Android</kwd>
<kwd>Software architecture</kwd>
<kwd>Clean architecture</kwd>
<kwd>Software quality</kwd>
</kwd-group>
<counts>
<fig-count count="10"/>
<table-count count="3"/>
<equation-count count="0"/>
<ref-count count="22"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>Cómo citar / How to cite</meta-name>
<meta-value>J. F. Arias-Orezano; B. D. Reyna-Barreto; G. Mamani-Apaza, “Repercusión de arquitectura limpia y la norma ISO/IEC 25010 en la mantenibilidad de aplicativos Android”, <italic>TecnoLógicas</italic>, vol. 24, nro. 52, e2104, 2021. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.22430/22565337.2104">https://doi.org/10.22430/22565337.2104</ext-link>
</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec>
<title>
<bold>1.     INTRODUCCIÓN</bold>
</title>
<p>En la actualidad el interés por desarrollar aplicaciones móviles ha aumentado exponencialmente por causa de la popularidad de los teléfonos inteligentes. En el 2020, los usuarios de Google Play descargaron 108.5 mil millones de aplicaciones móviles, frente a 76 mil millones del 2018 [<xref ref-type="bibr" rid="redalyc_344268257016_ref1">1</xref>]. En abril del 2021, la cantidad de aplicaciones que alberga Google Play en su catálogo aumentó a 3.48 millones de aplicaciones móviles, lo que la convierte en la tienda con mayor cantidad de aplicaciones móviles disponibles [<xref ref-type="bibr" rid="redalyc_344268257016_ref2">2</xref>]; sin embargo, el 14 % de todas las aplicaciones Android son de baja calidad de <italic>software</italic> [<xref ref-type="bibr" rid="redalyc_344268257016_ref3">3</xref>].</p>
<p>El aumento de aplicaciones Android que son de baja calidad está estrechamente relacionado con una baja mantenibilidad, esto es debido, en primer lugar, al desarrollo de aplicaciones sin una arquitectura de <italic>software</italic> adecuada; en segundo lugar, por la necesidad de subir actualizaciones constantes causados por la exigencia de usuarios de nuevas funcionalidades, por los avances tecnológicos, por las nuevas políticas de privacidad de Google Play y por los errores en las nuevas funcionalidades [<xref ref-type="bibr" rid="redalyc_344268257016_ref4">4</xref>]. Finalmente, la baja mantenibilidad tiene su efecto en el código de aplicación, efectos como la alta complejidad, la baja cohesión, el alto acoplamiento, la poca comprensibilidad, la poca reutilización de métodos, el gran tamaño de las clases y el poco uso del polimorfismo, la variabilidad y el encapsulamiento [<xref ref-type="bibr" rid="redalyc_344268257016_ref5">5</xref>].</p>
<p>La mantenibilidad es una característica más importante de la calidad interna del <italic>software</italic> descrita en el modelo Calidad de Software de la ISO/IEC 25010, en donde describe a la característica de la mantenibilidad como la capacidad de una aplicación de <italic>software</italic> a modificarse. La mantenibilidad ha englobado gran parte del ciclo de vida del <italic>software</italic> y está formada por los siguientes criterios: analizabilidad, que es la facilidad de buscar deficiencias e identificar los componentes; cambiabilidad, que permite hacer modificaciones; estabilidad, que cuenta con la capacidad de evitar efectos inesperados después de alguna modificación; capacidad de ser probado o testeabilidad, la cual valida los cambios; y por último, el cumplimiento de estándares, que fue eliminada en la actualización de la norma ISO/IEC 9126 a la nueva ISO/IEC 25010 [<xref ref-type="bibr" rid="redalyc_344268257016_ref6">6</xref>].</p>
<p>Con el fin de medir la mantenibilidad, LogisCope Technology, empresa de aseguramiento de calidad de software, desarrolló una herramienta que permitió evaluar la característica de la mantenibilidad según cuatro criterios: analizabilidad, cambiabilidad, estabilidad y testeabilidad, además de asociarlo a un grupo de métricas y a un umbral para las métricas (valor mínimo o valor máximo) [<xref ref-type="bibr" rid="redalyc_344268257016_ref7">7</xref>], [<xref ref-type="bibr" rid="redalyc_344268257016_ref8">8</xref>]. Asimismo, para poder disminuir los efectos de la baja mantenibilidad en las aplicaciones, se construyeron y modificaron arquitecturas de <italic>software</italic>, entre las que destaca arquitectura limpia, debido a que proporciona una forma para estructurar aplicaciones que soporten una evolución continua. Esta arquitectura fue propuesta en el 2012 por Robert Cecil Martin en su sub blog, en donde describe a <italic>arquitectura limpia</italic> como la unión de varias arquitecturas que persiguen el objetivo de la separación de preocupaciones mediante el uso de una capa de negocio y otra capa de interfaces [<xref ref-type="bibr" rid="redalyc_344268257016_ref9">9</xref>].</p>
<p>En años recientes, la corporación BPQL (Business Prosperous Quality of Life) ha incursionado en el desarrollo de aplicaciones móviles para satisfacer a sus clientes. Sin embargo, tuvo malas experiencias con su aplicación CRM Distribución, debido a que se identificaron problemas en la fase de mejora y mantenimiento, además de producir malestar en sus clientes por fallos inesperados por los cambios realizados y por las demoras en las correcciones. Este resultado llevó a la corporación BPQL a querer desarrollar aplicaciones móviles que soportaran la evolución continua. En esta investigación, financiada por la corporación BPQL, se implementó arquitectura limpia y la ISO/IEC 25010 en el desarrollo del nuevo aplicativo, Educar Teacher, con el objetivo de demostrar que la implementación de arquitectura limpia y la ISO/IEC 25010 son un factor de mejora en la característica de la mantenibilidad.</p>
</sec>
<sec>
<title>
<bold>2.     ESTADO DEL ARTE</bold>
</title>
<sec>
<title>
<bold>2.1   Mantenibilidad</bold>
</title>
<p>En el 2012, Emanuel Irrazábal, en su tesis doctoral, construyó un entorno de la medición de calidad de <italic>software</italic> denominado KEMIS, solamente evaluando las características de mantenibilidad de ISO/IEC 25010. Su modelo de emisión consta de cuatro criterios: analizabilidad, cambiabilidad, estabilidad y capacidad de ser probado. Las herramientas que usó para evaluar los criterios fueron Java NCSS, PMD/CPD, CheckStyle, FindBugs, JDepend, CCCC, StyleCop, FxCop, Junit, CPPUnit, NUnit y EMMA [<xref ref-type="bibr" rid="redalyc_344268257016_ref10">10</xref>].</p>
<p>Dos años después, en el 2014, Abdulrhman Albeladi y Rabe Abdalkareem evaluaron la capacidad de mantenimiento de dos aplicaciones de código abierto, MARF y GIPS, usando ISO/IEC 25010, más la herramienta LogisCope, que midió la mantenibilidad usando la fórmula Mantenibilidad = Analizabilidad + Cambiabilidad + Estabilidad + Capacidad de ser probado, en donde los resultados mostraron que la herramienta LogisCope es capaz de medir correctamente los <italic>softwares</italic> [<xref ref-type="bibr" rid="redalyc_344268257016_ref11">11</xref>].</p>
<p>Ese mismo año, Ivano Malavolta y Roberto Verdecchia investigaron la evolución de los problemas de mantenibilidad en las aplicaciones Android mediante un estudio empírico a 434 repositorios de aplicaciones de código abierto que estuvieran publicadas en Google Play, descubriendo que, al pasar el tiempo, los problemas de la mantenibilidad crecían hasta un punto en el que se estabilizaban, pero nunca se resolvían [<xref ref-type="bibr" rid="redalyc_344268257016_ref12">12</xref>].</p>
<p>Por su parte, en 2015, Bo Wang desarrolló una herramienta para evaluar la calidad de aplicaciones Android denominado MetricsReloaded, con el objetivo de ayudar a los desarrolladores a medir las métricas de complejidad e implementarlo en el mercado de Android Studio [<xref ref-type="bibr" rid="redalyc_344268257016_ref13">13</xref>].</p>
<p>Ya para el 2017, Billy Susanto Panca y Sukrisno Mardiyanto evaluaron la capacidad de mantenimiento de tres aplicaciones Android m-Learning, m-Health y m-Survey con diferentes patrones de diseño. El objetivo de esta investigación es encontrar la combinación de patrones de diseño que repercutan en la mantenibilidad. Finalmente, concluyeron que el uso de patrones influye en la mantenibilidad excepto el patrón de estado [<xref ref-type="bibr" rid="redalyc_344268257016_ref14">14</xref>].</p>
<p>De igual forma, en 2017, Saifan y Areej Al-Rabadi evaluaron la capacidad de mantenimiento a tres aplicaciones Android de código abierto: Klyph Facebook, Anki-Android-develop y Facebook SDK, con el objetivo de elegir qué métrica tiene mayor impacto usando el modelo de la ISO/IEC 25010, LogiScope y MetricsReloaded. Finalmente, concluyeron que Android tenía unas características especiales que no les permitió encontrar la métrica con mayor impacto [<xref ref-type="bibr" rid="redalyc_344268257016_ref15">15</xref>].</p>
</sec>
<sec>
<title>
<bold>2.2   Arquitectura limpia</bold>
</title>
<p>A finales de 2017, debido al existo del libro “The Clean Architecture, guía para especialistas en la estructura y el diseño de software” [<xref ref-type="bibr" rid="redalyc_344268257016_ref16">16</xref>], un equipo de Android y colaboradores propusieron una arquitectura influenciada en arquitectura limpia denominada Architecture Blueprints [beta] - MVP + Clean Architecture, que publicaron en el repositorio de GitHub [<xref ref-type="bibr" rid="redalyc_344268257016_ref17">17</xref>].</p>
<p>En el 2017, Tung Bui Duy implementó arquitectura limpia a la aplicación Sunshine, de la empresa C63 Studio, con el objetivo de ver si la implementación reduce el esfuerzo en el desarrollo. Al terminar la implementación concluyó que se redujo el esfuerzo de desarrollo a la hora de testear y modificar la aplicación [<xref ref-type="bibr" rid="redalyc_344268257016_ref18">18</xref>].</p>
<p>Al año siguiente, 2018, Montes Anccasi incorporó arquitectura limpia al desarrollo móvil de la empresa GMD, mediante la implementación y documentación de arquitectura limpia a la aplicación Android Banco de la Nación - Banca Móvil, concluyendo que la incorporación de arquitectura limpia mejorar el desarrollo de los aplicativos en todo el ciclo de vida de <italic>software</italic> [<xref ref-type="bibr" rid="redalyc_344268257016_ref19">19</xref>].</p>
<p>Para el año 2019, Shady Boukhary y Eduardo Colmenares propusieron una arquitectura de <italic>software</italic> basada en arquitectura limpia para el desarrollo de aplicaciones Flutter debido al problema de administrar sus componentes y la mantenibilidad que sufrían los desarrolladores. Finalmente implementaron su arquitectura y concluyeron que la implementación de Clean Arquitectura mejora la mantenibilidad y la administración de componentes [<xref ref-type="bibr" rid="redalyc_344268257016_ref20">20</xref>].</p>
</sec>
</sec>
<sec>
<title>
<bold>3.     METODOLOGÍA</bold>
</title>
<sec>
<title>
<bold>3.1   Tipo y diseño de la investigación</bold>
</title>
<p>El tipo de investigación es prescriptiva, puesto que realiza una propuesta para mejorar la mantenibilidad, y cuantitativa porque mide la variable de estudio.</p>
<p>Por la naturaleza de la investigación, y de acuerdo con Hernández Sampieri, el diseño de investigación es <italic>ex post facto</italic> cuasi experimental de corte transversal, puesto que se hizo una sola evaluación de la mantenibilidad al final del desarrollo del aplicativo Educar Teacher, que es el grupo experimental y este se comparó con la evaluación del aplicativo CRM Distribución, que es el grupo de control. En la <xref ref-type="fig" rid="gf1">Figura 1</xref> se presenta el esquema de la investigación [<xref ref-type="bibr" rid="redalyc_344268257016_ref21">21</xref>].</p>
<p>
<fig id="gf1">
<label>Figura 1.</label>
<caption>
<title>Esquema del diseño de la investigación</title>
</caption>
<alt-text>Figura 1.  Esquema del diseño de la investigación</alt-text>
<graphic xlink:href="344268257016_gf2.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: elaboración propia.</attrib>
</fig>
</p>
</sec>
<sec>
<title>
<bold>3.2   Construcción del aplicativo móvil Educar Teacher basada en arquitectura limpia</bold>
</title>
<p>Para la construcción del aplicativo móvil en Android, esta investigación se basó en una implementación, publicada por Google en su repositorio de Github, denominado Architecture Blueprints [beta] - MVP + Clean Architecture.</p>
<p>Para poder construir la aplicación, se revisó la estructura de la nueva implementación de arquitectura limpia (ver <xref ref-type="fig" rid="gf2">Figura 2</xref>) y cómo se comunicaban sus componentes dentro y fuera de sus respectivas capas (ver<xref ref-type="fig" rid="gf3"> Figura 3</xref>). Donde la capa de presentación interactúa con la interfaz de usuario mediante el patrón de diseño MVP, la segunda capa es la del dominio que se encarga de contener la lógica de negocio y de almacenar mediante los casos de uso y por último la capa de datos.</p>
<p>
<fig id="gf2">
<label>Figura 2.</label>
<caption>
<title>Estructura de la implementación de arquitectura limpia aplicaciones Android</title>
</caption>
<alt-text>Figura 2. Estructura de la implementación de arquitectura limpia aplicaciones Android</alt-text>
<graphic xlink:href="344268257016_gf3.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: [<xref ref-type="bibr" rid="redalyc_344268257016_ref17">17</xref>].</attrib>
</fig>
</p>
<p>
<fig id="gf3">
<label>Figura 3.</label>
<caption>
<title>La regla de la dependencia de arquitectura limpia</title>
</caption>
<alt-text>Figura 3.  La regla de la dependencia de arquitectura limpia</alt-text>
<graphic xlink:href="344268257016_gf4.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: [<xref ref-type="bibr" rid="redalyc_344268257016_ref16">16</xref>].</attrib>
</fig>
</p>
<p>Después de terminar de revisar la estructura de la nueva arquitectura (ver <xref ref-type="fig" rid="gf4">Figuras 4</xref> y <xref ref-type="fig" rid="gf5">5</xref>), se desarrolló la aplicación móvil Educar Teacher en el lenguaje Java para celulares Android desde 4.0 a superior. Los servicios Rest que usa esta aplicación están construidos en C#, además de estar publicados en un servicio de procesamiento Compute Engine de Google Cloud. A fin de almacenar la información de manera local, cuando el aplicativo funcionó en zonas sin internet se usó la base datos SQLite. Por otra parte, se implementó arquitectura limpia en el diseño de la aplicación, además de los cinco principios de diseño orientado a objetos de Robert Cecil Martin denominado SOLID, principios que ayudaron a comprender e implementar los patrones de diseño de una manera estratégica.</p>
<p>
<fig id="gf4">
<label>Figura 4.</label>
<caption>
<title>Diagrama de flujo de uno de los módulos del aplicativo móvil Educar Teacher basado en arquitectura limpia</title>
</caption>
<alt-text>Figura 4. Diagrama de flujo de uno de los módulos del aplicativo móvil Educar Teacher basado en arquitectura limpia</alt-text>
<graphic xlink:href="344268257016_gf5.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: elaboración propia.</attrib>
</fig>
</p>
<p>
<fig id="gf5">
<label>Figura 5.</label>
<caption>
<title>Estructura de carpetas de uno de los módulos del aplicativo móvil del Educar Teacher basado en arquitectura limpia</title>
</caption>
<alt-text>Figura 5. Estructura de carpetas de uno de los módulos del aplicativo móvil del Educar Teacher basado en arquitectura limpia</alt-text>
<graphic xlink:href="344268257016_gf6.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: elaboración propia.</attrib>
</fig>
</p>
<p>Finalmente, luego de terminar el desarrollo de aplicación móvil Educar Teacher, se describió las características de los dos grupos usados en esta investigación (ver <xref ref-type="table" rid="gt1">Tabla 1</xref>).</p>
<p>
<table-wrap id="gt1">
<label>Tabla 1</label>
<caption>
<title>Características de las aplicaciones usadas en esta investigación</title>
</caption>
<alt-text>Tabla 1 Características de las aplicaciones usadas en esta investigación</alt-text>
<alternatives>
<graphic xlink:href="344268257016_gt2.png" position="anchor" orientation="portrait"/>
<table style="border-collapse:collapse;border:none;" id="gt2-526564616c7963">
<tbody>
<tr style="height:14.15pt">
<td style="width:90.7pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">Aplicación</td>
<td style="width:138.9pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">Grupo experimental</td>
<td style="width:138.9pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">Grupo control</td>
</tr>
<tr style="height:14.15pt">
<td style="width:90.7pt;border:none;   padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">Nombre</td>
<td style="width:138.9pt;border:none;   padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">Educar Teacher</td>
<td style="width:138.9pt;border:none;   padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">CRM Distribución</td>
</tr>
<tr style="height:14.15pt">
<td style="width:90.7pt;padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">Paquetes</td>
<td style="width:138.9pt;padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">693</td>
<td style="width:138.9pt;padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">19</td>
</tr>
<tr style="height:14.15pt">
<td style="width:90.7pt;padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">Clases</td>
<td style="width:138.9pt;padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">2037</td>
<td style="width:138.9pt;padding:0cm 5.4pt 0cm 5.4pt;height:14.15pt">501</td>
</tr>
<tr style="height:14.15pt">
<td style="width:90.7pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 5.4pt 0cm 5.4pt;   height:14.15pt">Líneas de código</td>
<td style="width:138.9pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 5.4pt 0cm 5.4pt;   height:14.15pt">168 217</td>
<td style="width:138.9pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 5.4pt 0cm 5.4pt;   height:14.15pt">32 530</td>
</tr>
</tbody>
</table>
</alternatives>
<attrib>Fuente: elaboración propia.</attrib>
</table-wrap>
</p>
</sec>
<sec>
<title>
<bold>3.3.  Evaluación de capacidad de mantenimiento</bold>
</title>
<p>Esta evaluación se basó en las normas ISO/IEC 25010 y LogisCope para la medición de las métricas de los criterios de la mantenibilidad (ver <xref ref-type="table" rid="gt2">Tablas 2 </xref>y <xref ref-type="table" rid="gt3">3</xref>). Se evaluó a la aplicación Educar Teacher (Grupo Experimental) y a la aplicación CRM Distribución (Grupo Control) (ver la <xref ref-type="table" rid="gt1">Tabla 1</xref>) con las características de las dos aplicaciones en el entorno de desarrollo Android Studio, donde se implementó la extensión MetricsReloaded [<xref ref-type="bibr" rid="redalyc_344268257016_ref13">13</xref>], [<xref ref-type="bibr" rid="redalyc_344268257016_ref22">22</xref>] para obtener el resultado de cada métricas (ver <xref ref-type="table" rid="gt2">Tabla 2</xref>) con los resultados. Finalmente, luego de obtener los resultados, se realizó el cálculo de las fórmulas de cada criterio de la mantenibilidad (ver <xref ref-type="table" rid="gt3">Tabla 3</xref>).</p>
<p>
<table-wrap id="gt2">
<label>Tabla 2</label>
<caption>
<title>Resultado de las métricas de la mantenibilidad y el rango de valores aceptables</title>
</caption>
<alt-text>Tabla 2 Resultado de las métricas de la mantenibilidad y el rango de valores aceptables</alt-text>
<alternatives>
<graphic xlink:href="344268257016_gt3.png" position="anchor" orientation="portrait"/>
<table style="width:475.55pt;border-collapse:collapse;  " id="gt3-526564616c7963">
<tbody>
<tr style="height:25.5pt">
<td style="width:62.6pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt" rowspan="2">Métrica</td>
<td style="width:125.25pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt" rowspan="2">Definición</td>
<td style="width:95.4pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt" rowspan="2">Su efecto</td>
<td style="width:71.6pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt" colspan="2">Rango de valor aceptable</td>
<td style="width:120.7pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt" colspan="4">Valor del grupo</td>
</tr>
<tr style="height:14.15pt;">
<td style="width:29.8pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:14.15pt">Min</td>
<td style="width:48.45pt;border:none;border-bottom:   solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;height:14.15pt" colspan="2">Max</td>
<td style="width:42.25pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:14.15pt">Control</td>
<td style="width:70.9pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:14.15pt">Experimental</td>
<td style="border:none;padding:0cm 0cm 0cm 0cm"/>
</tr>
<tr style="height:36.85pt">
<td style="width:62.6pt;border:none;   padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt">cl_wmc</td>
<td style="width:125.25pt;border:none;   padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt">Método ponderado por clase, mide la complejidad del método.</td>
<td style="width:95.4pt;border:none;   padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt">Complejidad, comprensibilidad y cohesión</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt" colspan="2">11</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt">26.20</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt" colspan="2">24.58</td>
</tr>
<tr style="height:36.85pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">in_base</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:   36.85pt">Número de clases de las que la clase hereda directamente o no.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt">Complejidad y comprensibilidad.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt" colspan="2">9</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt">3.15</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt" colspan="2">2.34</td>
</tr>
<tr style="height:45.35pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:45.35pt">cu_edused</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:   45.35pt">El número de clases directamente utilizadas por otra clase.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;height:45.35pt">Acoplamiento, complejidad y reutilización de métodos.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:45.35pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:45.35pt" colspan="2">6</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:45.35pt">13.37</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:45.35pt" colspan="2">16.28</td>
</tr>
<tr style="height:48.2pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt">cl_cmof</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:   48.2pt">La relación entre el número de líneas de comentarios y el número total de líneas del código.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt">El tamaño de la clase.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt">0 %</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt" colspan="2">100 %</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:48.2pt">9.83 %</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt" colspan="2">6.06 %</td>
</tr>
<tr style="height:25.5pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">cl_stat</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">Número de declaraciones ejecutables de la clase.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">El tamaño de la clase.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt" colspan="2">7</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt">19.50</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt" colspan="2">20.62</td>
</tr>
<tr style="height:25.5pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">cl_data</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">El número total de atributos de la clase.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt">Complejidad y tamaño de la clase.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt" colspan="2">25</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt">11.61</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt" colspan="2">11.81</td>
</tr>
<tr style="height:25.5pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">cl_func</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">El número total de funciones en la clase.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt">Complejidad y cohesión.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt" colspan="2">9</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt">9.47</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt" colspan="2">8.53</td>
</tr>
<tr style="height:36.85pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">cl_func_publ</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:   36.85pt">El número total de funciones públicas en la clase.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt">Acoplamiento y polimorfismo.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt" colspan="2">7</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt">2.29</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt" colspan="2">5.59</td>
</tr>
<tr style="height:48.2pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt">cu_edusers</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:   48.2pt">El número de clases que utilizan directamente esta clase.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;height:48.2pt">Acoplamiento, variabilidad y reutilización de métodos.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt" colspan="2">3</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:48.2pt">5.57</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:48.2pt" colspan="2">5.96</td>
</tr>
<tr style="height:25.5pt">
<td style="width:62.6pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">in_noc</td>
<td style="width:125.25pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">El número de clases dentro de otra clase.</td>
<td style="width:95.4pt;padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt">Reutilización de métodos y pruebas.</td>
<td style="width:29.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt">0</td>
<td style="width:48.45pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt" colspan="2">4</td>
<td style="width:42.25pt;padding:0cm 2.85pt 0cm 2.85pt;height:25.5pt">0.02</td>
<td style="width:71.8pt;padding:0cm 2.85pt 0cm 2.85pt;   height:25.5pt" colspan="2">0.13</td>
</tr>
<tr style="height:36.85pt">
<td style="width:62.6pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">cl_data_publ</td>
<td style="width:125.25pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">El número total de atributos públicos en la clase.</td>
<td style="width:95.4pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">Encapsulación (ocultación de información)</td>
<td style="width:29.8pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">0</td>
<td style="width:48.45pt;border:none;border-bottom:   solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;height:36.85pt" colspan="2">7</td>
<td style="width:42.25pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt">1.36</td>
<td style="width:71.8pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 2.85pt 0cm 2.85pt;   height:36.85pt" colspan="2">6.22</td>
</tr>
<tr>
<td style="border:none"/>
<td style="border:none"/>
<td style="border:none"/>
<td style="border:none"/>
<td style="border:none"/>
<td style="border:none"/>
<td style="border:none"/>
<td style="border:none"/>
<td style="border:none"/>
</tr>
</tbody>
</table>
</alternatives>
<attrib>Fuente: elaboración propia.</attrib>
</table-wrap>
</p>
<p>
<table-wrap id="gt3">
<label>Tabla 3.</label>
<caption>
<title>Resultado de los criterios de la mantenibilidad en función de las métricas de la <xref ref-type="table" rid="gt2">Tabla 2</xref>
</title>
</caption>
<alt-text>Tabla 3. Resultado de los criterios de la mantenibilidad en función de las métricas de la Tabla 2</alt-text>
<alternatives>
<graphic xlink:href="344268257016_gt4.png" position="anchor" orientation="portrait"/>
<table style="width:475.45pt;border-collapse:collapse;  " id="gt4-526564616c7963">
<tbody>
<tr style="height:14.15pt">
<td style="width:97.1pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt" rowspan="2">Criterios de la mantenibilidad</td>
<td style="width:226.6pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt" rowspan="2">Fórmula</td>
<td style="width:151.75pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt" colspan="2">Valor del Grupo</td>
</tr>
<tr style="height:14.15pt">
<td style="width:72.85pt;border:none;border-bottom:solid windowtext 1.0pt;      padding:0cm 3.5pt 0cm 3.5pt;   height:14.15pt">Control</td>
<td style="width:78.9pt;border-top:solid windowtext 1.0pt;   border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;      padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">Experimental</td>
</tr>
<tr style="height:14.15pt">
<td style="width:97.1pt;border:none;   padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">Analizabilidad</td>
<td style="width:226.6pt;border:none;   padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">cl_wmc + cl_cmof + in_base + cu_edused</td>
<td style="width:72.85pt;border:none;   padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">52.55</td>
<td style="width:78.9pt;border:none;   padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">49.26</td>
</tr>
<tr style="height:14.15pt">
<td style="width:97.1pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">Cambiabilidad</td>
<td style="width:226.6pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">cl_stat + cl_func + cl_data</td>
<td style="width:72.85pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">40.58</td>
<td style="width:78.9pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">40.96</td>
</tr>
<tr style="height:14.15pt">
<td style="width:97.1pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">Estabilidad</td>
<td style="width:226.6pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">cl_data_publ + cu_edusers + in_noc + cl_func_publ</td>
<td style="width:72.85pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">9.24</td>
<td style="width:78.9pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">20.90</td>
</tr>
<tr style="height:14.15pt">
<td style="width:97.1pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.15pt">Testeabilidad</td>
<td style="width:226.6pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 3.5pt 0cm 3.5pt;   height:14.15pt">cl_wmc + cl_func + cu_cdused</td>
<td style="width:72.85pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 3.5pt 0cm 3.5pt;   height:14.15pt">49.04</td>
<td style="width:78.9pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 3.5pt 0cm 3.5pt;   height:14.15pt">49.39</td>
</tr>
<tr style="height:14.15pt">
<td style="width:97.1pt;border:none;border-bottom:solid windowtext 1.0pt;   padding:0cm 3.5pt 0cm 3.5pt;   height:14.15pt"/>
<td style="width:226.6pt;border:none;border-bottom:solid windowtext 1.0pt;      padding:0cm 3.5pt 0cm 3.5pt;   height:14.15pt">Total</td>
<td style="width:72.85pt;border:none;border-bottom:solid windowtext 1.0pt;      padding:0cm 3.5pt 0cm 3.5pt;   height:14.15pt">151.41</td>
<td style="width:78.9pt;border:none;border-bottom:solid windowtext 1.0pt;      padding:0cm 3.5pt 0cm 3.5pt;   height:14.15pt">158.51</td>
</tr>
</tbody>
</table>
</alternatives>
<attrib>Fuente: elaboración propia.</attrib>
</table-wrap>
</p>
</sec>
</sec>
<sec>
<title>
<bold>4.     RESULTADOS Y DISCUSIÓN</bold>
</title>
<sec>
<title>
<bold>4.1   Descripción de las características de mantenibilidad</bold>
</title>
<p>Los resultados obtenidos están representados en el diagrama de Kiviat (ver <xref ref-type="fig" rid="gf6">Figura 6</xref>) donde están en función a las métricas establecidas en el criterio analizabilidad (ver <xref ref-type="table" rid="gt3">Tabla 3</xref>).</p>
<p>
<fig id="gf6">
<label>Figura 6.</label>
<caption>
<title>Diagrama de Kiviat de las métricas de la analizabilidad del grupo control y grupo experimental</title>
</caption>
<alt-text>Figura 6.  Diagrama de Kiviat de las métricas de la analizabilidad del grupo control y grupo experimental</alt-text>
<graphic xlink:href="344268257016_gf7.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: elaboración propia.</attrib>
</fig>
</p>
<p>Se observa en la <xref ref-type="fig" rid="gf6">Figura 6 </xref>que la métrica de (CL_WMC), en el aplicativo Educar Teacher desarrollado con arquitectura limpia, tiene un nivel de complejidad de 24.58, a diferencia del aplicativo CRM Distribución, que es de 26.2; de este resultado se deduce que al aplicar arquitectura limpia se reducen los niveles de complejidad frente a una aplicación que implementa arquitectura convencional MVC. De acuerdo con la ISO/IEC 25010 y LogisCope, el rango aceptable del nivel de complejidad es 0 a 11, y en este estudio ambos grupos están fuera del rango, lo que indica que las aplicaciones son difíciles de entender y presentan una cohesión muy baja. A diferencia de la investigación de Abdulrhman Albeladi y Rabe Abdalkareem [<xref ref-type="bibr" rid="redalyc_344268257016_ref11">11</xref>] que presentan un nivel de complejidad de 9 y 6, el cual están dentro del rango aceptable porque solo evaluaron un paquete de clases y no su totalidad. Sin embargo, en comparación de los resultados de la investigación de Ahmad A. Saifan y Areej Al-Rabadi [<xref ref-type="bibr" rid="redalyc_344268257016_ref15">15</xref>], que es 16.397, 16.544 y 23.853, se asemejan con los resultados del nivel de complejidad del aplicativo Educar Teacher, puesto que ambos son aplicaciones Android.</p>
<p>Se observa en la métrica de la (CL_CMOF) de la Figura 6, que el aplicativo Educar Teacher desarrollado con arquitectura limpia tiene un grado de relación de 6.06 %. A diferencia del aplicativo CRM Distribución, que tiene un grado de relación de 9.83 %, de este resultado se deduce que la aplicación de arquitectura limpia sí mejora la métrica CL_CMOF, puesto que no tiene comentario de código que no se use y solo tiene comentarios de documentaciones frente a aplicaciones que implementen otra arquitectura MVC. De acuerdo con la ISO/IEC 25010 y LogisCope, el rango aceptable del grado relación es de 0 % a 100 %. En este estudio ambos grupos están dentro del rango aceptable. El caso es similar, tanto en la investigación de Ahmad A. Saifan y Areej Al-Rabadi [<xref ref-type="bibr" rid="redalyc_344268257016_ref15">15</xref>], que tienen el grado de relación 12.83 %, 3.15 % y 20.95 %, como en la de Abdulrhman Albeladi y Rabe Abdalkareem [<xref ref-type="bibr" rid="redalyc_344268257016_ref11">11</xref>], que presenta el grado de relación 89 % y 70 %, que no superan el rango aceptable. Sin embargo, ambos estudios tienen un grado mayor a los resultados de esta investigación, por lo cual se puede deducir que la arquitectura limpia tiene un mejor grado de relación que significa menos comentarios en las clases.</p>
<p>Los resultados obtenidos están representados en el diagrama de Kiviat (ver en <xref ref-type="fig" rid="gf7">Figura 7</xref>), en función a las métricas establecidas en el criterio cambiabilidad (ver <xref ref-type="table" rid="gt3">Tabla 3</xref>).</p>
<p>
<fig id="gf7">
<label>Figura 7.</label>
<caption>
<title>Diagrama de Kiviat de las métricas de la cambiabilidad del grupo control y grupo experimental</title>
</caption>
<alt-text>Figura 7. Diagrama de Kiviat de las métricas de la cambiabilidad del grupo control y grupo experimental</alt-text>
<graphic xlink:href="344268257016_gf8.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: elaboración propia.</attrib>
</fig>
</p>
<p>Se observa en la <xref ref-type="fig" rid="gf7">Figura 7</xref> que la métrica de (CL_STAT) en el aplicativo Educar Teacher desarrollado con arquitectura limpia tiene un nivel de 20.62, a diferencia del aplicativo CRM Distribución, que tiene un nivel de 19.5; de este resultado se deduce que el aplicativo Educar Teacher tiene más variables que el aplicativo CRM Distribución. Esta diferencia se debe a la complejidad Educar Teacher que se presenta en la <xref ref-type="table" rid="gt1">Tabla 1</xref>. De acuerdo con la ISO/IEC 25010 y LogisCope, el rango aceptable de CL_STAT es de 0 a 7. En efecto, el tamaño de las clases de las dos aplicaciones en estudio excede el rango aceptable. Por otra parte, en el estudio de Ahmad A. Saifan y Areej Al-Rabadi [<xref ref-type="bibr" rid="redalyc_344268257016_ref15">15</xref>], el tamaño de CL_STAT de los tres aplicativos en estudio fueron de 100 700, 15 125 y 59 622, los cuales superan en gran medida el rango aceptable, a diferencia del aplicativo Educar Teacher.</p>
<p>Los resultados obtenidos están representados en el diagrama de Kiviat (ver <xref ref-type="fig" rid="gf8">Figura 8</xref>), en función de las métricas establecidas en el criterio estabilidad (ver <xref ref-type="table" rid="gt3">Tabla 3</xref>).</p>
<p>
<fig id="gf8">
<label>Figura 8.</label>
<caption>
<title>Diagrama de Kiviat de las métricas de la estabilidad del grupo control y grupo experimental</title>
</caption>
<alt-text>Figura 8.  Diagrama de Kiviat de las métricas de la estabilidad del grupo control y grupo experimental</alt-text>
<graphic xlink:href="344268257016_gf9.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: elaboración propia.</attrib>
</fig>
</p>
<p>Se observa en la métrica (CL_DATA_PUBLIC) de la <xref ref-type="fig" rid="gf8">Figura 8</xref> que el aplicativo Educar Teacher desarrollado con arquitectura limpia (grupo experimental) tiene un promedio de 6.22, a diferencia del aplicativo CRM Distribución (grupo control), que tiene un promedio de 1.36.</p>
<p>De este resultado se deduce que al aplicar arquitectura limpia sí mejora el CL_DATA_PUBLIC, puesto que se aproxima al límite superior del rango que es el ideal, lo que significa que tiene la cantidad de atributos que facilitan el mantenimiento, a diferencia de una arquitectura convencional MVC, que tiene un promedio muy bajo (un atributo por clase), lo que quiere decir que se crean muchas clases públicas con un solo atributo. De acuerdo con la ISO/IEC 25010 y LogisCope, el rango aceptable es de 0 a 7; y en este estudio ambos grupos están dentro del rango establecido, lo que indica que las aplicaciones tienen un nivel promedio de encapsulamiento.</p>
<p>Con respecto a la métrica del número total de funciones públicas en una clase pública (CL_FUNC_PUBLIC) que se muestra en la <xref ref-type="fig" rid="gf8">Figura 8</xref>, el aplicativo Educar Teacher desarrollado con arquitectura limpia tiene un promedio de 5.59, a diferencia del aplicativo CRM Distribución, que tiene un promedio de 2.29. De este resultado se deduce que al aplicar arquitectura limpia sí mejora el CL_FUNC_PUBLIC, puesto que se aproxima al límite superior del rango que es el ideal, lo que significa que tiene la cantidad de funciones públicas que facilitan el mantenimiento, a diferencia de una arquitectura convencional MVC, que tiene un promedio muy bajo (dos funciones públicas por clase). De acuerdo con la ISO/IEC 25010 y LogisCope, el rango aceptable es 0 a 7; y en este estudio, en ambos grupos, están dentro del rango establecido, lo que indica que las aplicaciones tienen un nivel aceptable de polimorfismo y acoplamiento. Por otra parte, en el estudio de Ahmad A. Saifan y Areej Al-Rabadi [<xref ref-type="bibr" rid="redalyc_344268257016_ref15">15</xref>], el tamaño de CL_FUNC_PUBLIC de los tres aplicativos en estudio fueron de 5493, 4528 y 5088, los cuales se aproximan a los resultados del aplicativo Educar Teacher, además de estar dentro del rango aceptado.</p>
<p>Los resultados obtenidos están representados en el diagrama de Kiviat (ver <xref ref-type="fig" rid="gf9">Figura 9</xref>), en función de las métricas establecidas en el criterio estabilidad (ver <xref ref-type="table" rid="gt3">Tabla 3</xref>).</p>
<p>
<fig id="gf9">
<label>Figura 9.</label>
<caption>
<title>Diagrama de Kiviat de las métricas de la estabilidad del Grupo Control y Grupo Experimental</title>
</caption>
<alt-text>Figura 9.  Diagrama de Kiviat de las métricas de la estabilidad del Grupo Control y Grupo Experimental</alt-text>
<graphic xlink:href="344268257016_gf10.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: elaboración propia.</attrib>
</fig>
</p>
<p>En la <xref ref-type="fig" rid="gf9">Figura 9</xref> se observa que la métrica del número de clases directamente utilizadas por otra clase (CU_EDUSED) en el aplicativo Educar Teacher desarrollado con arquitectura limpia tiene un promedio de 16.28, a diferencia del aplicativo CRM Distribución, que tiene un promedio de 13.37. El aplicativo del Educar Teacher tiene un mayor CU_EDUSED debido al tamaño del proyecto que es cuatro veces más grande en número de clases frente a CRM Distribución. Por otra parte, el rango aceptable del CU_EDUSED es de 0 a 6 desacuerdo a la ISO/IEC 25010 y LogisCope. En efecto, las aplicaciones son complejas y presentan un alto acoplamiento puesto que sus CU_EDUSED están fuera del rango. Además, en el estudio de Abdulrhman Albeladi y Rabe Abdalkareem [<xref ref-type="bibr" rid="redalyc_344268257016_ref11">11</xref>], el tamaño de NCDUOC de los dos aplicativos en estudio fueron de 9 y 6, el cual uno está dentro del rango aceptable y el otro está fuera, esto se debe a que solo evaluaron un paquete de clases y no todos los paquetes del proyecto.</p>
<p>Sin embargo, en comparación con los resultados de la investigación de Ahmad A. Saifan y Areej Al-Rabadi [<xref ref-type="bibr" rid="redalyc_344268257016_ref15">15</xref>], con un tamaño de NCDUOC de 6811, 13 143 y 10 841 de sus tres aplicaciones en estudio, se asemejan con los resultados del aplicativo Educar Teacher, en el sentido que están fuera del rango y ambos son aplicaciones Android.</p>
</sec>
<sec>
<title>
<bold>4.2.  Descripción general de los niveles de mantenibilidad del aplicativo Educar Teacher</bold>
</title>
<p>Los resultados obtenidos están representados en el diagrama de Kiviat (ver <xref ref-type="fig" rid="gf10">Figura 10</xref>) en función de las métricas establecidas en la característica de la estabilidad (ver <xref ref-type="table" rid="gt3">Tabla 3</xref>).</p>
<p>
<fig id="gf10">
<label>Figura 10.</label>
<caption>
<title>Diagrama de Kiviat del resultado de características de la mantenibilidad del Grupo Control y Grupo Experimental</title>
</caption>
<alt-text>Figura 10. Diagrama de Kiviat del resultado de características de la mantenibilidad del Grupo Control y Grupo Experimental</alt-text>
<graphic xlink:href="344268257016_gf11.png" position="anchor" orientation="portrait"/>
<attrib>Fuente: elaboración propia.</attrib>
</fig>
</p>
<p>Analizabilidad: en la <xref ref-type="fig" rid="gf10">Figura 10</xref> se observa que al usar arquitectura limpia e ISO/IEC 25010 en el aplicativo Educar Teacher, se obtuvo una analizabilidad de 49.26, y del aplicativo CRM Distribución, que fue de 52.55, logrando reducir en 3.29, que representa un 7 % de mejora.</p>
<p>Estabilidad: en la <xref ref-type="fig" rid="gf10">Figura 10</xref> también se observa que al usar arquitectura limpia e ISO/IEC 25010 en el desarrollo del aplicativo Educar Teacher, el promedio del nivel de estabilidad fue de 20.9 y 9.24 del aplicativo CRM Distribución; de aquí se deduce que hay una diferencia de 11.66 en la estabilidad del aplicativo cuando se desarrolla con arquitectura limpia, el cual se traduce en una mejora de 56 % en la estabilidad.</p>
<p>Testeabilidad: en la <xref ref-type="fig" rid="gf10">Figura 10</xref> se observa que al desarrollar con arquitectura limpia e ISO/IEC 25010 en el aplicativo Educar Teacher, el promedio del nivel de testeabilidad es de 49.39 y 49.04 del aplicativo de CRM Distribución. Se observa que existe una mínima diferencia de 0.35, la cual se traduce en una mejora de solo del 0.7 % en el nivel de testeabilidad.</p>
<p>Cambiabilidad: finalmente en la <xref ref-type="fig" rid="gf10">Figura 10</xref> se observa que al desarrollar con arquitectura limpia e ISO/IEC 25010 en el aplicativo Educar Teacher, el promedio del nivel la cambiabilidad es de 40.96 y 40.58 del aplicativo CRM Distribución. De este resultado se observa que hay una mínima diferencia de 0.38, el cual se traduce en una mejora mínima de 0.9 %.</p>
</sec>
</sec>
<sec>
<title>
<bold>5.     CONCLUSIONES</bold>
</title>
<p>De los resultados se concluye que al desarrollar con arquitectura limpia e ISO/IEC 25010, el aplicativo Educar Teacher tiene una repercusión del 7 % en el criterio de analizabilidad del aplicativo Android, logrando reducir en 3.29 frente a la analizabilidad del aplicativo CRM Distribución.</p>
<p>Con respecto a la estabilidad, de acuerdo con los resultados, se concluye que al desarrollar con arquitectura limpia e ISO/IEC 25010 el aplicativo de Educar Teacher tiene una repercusión del 56 % en el criterio de estabilidad, logrando así una diferencia de 11.66 frente al aplicativo del CRM Distribución.</p>
<p>De manera similar, y de acuerdo con los resultados, se concluye que al desarrollar con arquitectura limpia e ISO/IEC 25010, el aplicativo Educar Teacher tiene una repercusión el criterio de testeabilidad de 0.7 %, logrando así mejorar en 0.35 el nivel de promedio de la testeabilidad.</p>
<p>Finalmente, de acuerdo con los resultados se concluye que al desarrollar con arquitectura limpia e ISO/IEC 25010, el aplicativo Educar Teacher tiene una repercusión del 0.9 ­% en el criterio de cambiabilidad, logrando una mejora mínima de 0.38 el nivel del promedio.</p>
<p>Por lo tanto, se concluye que al desarrollar con arquitectura limpia e ISO/IEC 25010, el aplicativo Educar Teacher logra una repercusión positiva en la mantenibilidad con base a los criterios de analizabilidad, estabilidad, testeabilidad y cambiabilidad de 7 %, 56 %, 0.7 %, 0.9 %, respectivamente.</p>
</sec>
</body>
<back>
<ack>
<title>Agradecimientos</title>
<p>Como primer autor, me dieron el privilegio de expresar mis agradecimientos, los cuales van dirigidos, en primer lugar, a Dios, por la vida y salud que nos ha dado a mi familia y a mí en estos tiempos tan difíciles. Asimismo, quiero agradecer a mis padres porque fueron la inspiración en mi vida y la fuerza para lograr terminar este estudio. Por otro lado, agradezco a la Corporación BPQL, por el financiamiento y por aceptar el uso del proyecto de desarrollo Educar Teacher. Finalmente, mi agradecimiento a Mg. Benjamín David Reyna Barreto y al Dr. Guillermo Mamani Apaza, que fueron mis asesores asignados por mi alma máter, la Universidad Peruana Unión (Lima).</p>
</ack>
<ref-list>
<title>
<bold> REFERENCIAS</bold>
</title>
<ref id="redalyc_344268257016_ref1">
<mixed-citation>[1] Satista, “Annual number of app downloads from the Google Play Store worldwide from 2016 to 2020,”, 2021. <ext-link ext-link-type="uri" xlink:href="https://www.statista.com/statistics/734332/google-play-app-installs-per-year/">https://www.statista.com/statistics/734332/google-play-app-installs-per-year/</ext-link>
</mixed-citation>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<collab>Satista</collab>
</person-group>
<source>Annual number of app downloads from the Google Play Store worldwide from 2016 to 2020</source>
<year>2021</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref2">
<mixed-citation>[2] Statista, “Number of apps available in leading app stores as of 1st qurter 2021,” 2021. <ext-link ext-link-type="uri" xlink:href="https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/">https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/</ext-link>
</mixed-citation>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<collab>Statista</collab>
</person-group>
<source>Number of apps available in leading app stores as of 1st qurter 2021</source>
<year>2021</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref3">
<mixed-citation>[3] AppBrain, “Number of Android applications on the Google Play,” 2021. <ext-link ext-link-type="uri" xlink:href="https://www.appbrain.com/stats/number-of-android-apps">https://www.appbrain.com/stats/number-of-android-apps</ext-link>
</mixed-citation>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<collab>AppBrain</collab>
</person-group>
<source>Number of Android applications on the Google Play</source>
<year>2021</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref4">
<mixed-citation>[4] G. Hecht; O. Benomar; R. Rouvoy; N. Moha; L. Duchien, “Tracking the software quality of android applications along their evolution (T),” in <italic>Proc. - 2015 30th IEEE/ACM Int. Conf. Autom. Softw. Eng. (ASE)</italic>, Lincoln. 2016, pp. 236-247. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ASE.2015.46">https://doi.org/10.1109/ASE.2015.46</ext-link>
</mixed-citation>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Hecht</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Benomar</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Rouvoy</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Moha</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Duchien</surname>
<given-names>L.</given-names>
</name>
</person-group>
<source>Tracking the software quality of android applications along their evolution (T)</source>
<year>2016</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref5">
<mixed-citation>[5] K. K. Aggarwal; Y. Singh; A. Kaur; R. Malhotra, “Empirical analysis for investigating the effect of object-oriented metrics on fault proneness: a replicated case study,” <italic>Softw. Process Improv. Pract</italic>., vol. 14, no. 1, pp. 39-62, Aug. 2008. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1002/spip.389">https://doi.org/10.1002/spip.389</ext-link>
</mixed-citation>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Aggarwal</surname>
<given-names>K. K.</given-names>
</name>
<name>
<surname>Singh</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Kaur</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Malhotra</surname>
<given-names>R.</given-names>
</name>
</person-group>
<article-title>Empirical analysis for investigating the effect of object-oriented metrics on fault proneness: a replicated case study</article-title>
<source>Softw. Process Improv. Pract.</source>
<year>2008</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref6">
<mixed-citation>[6] G. M. Medina Sanes, “Definición y evaluación de un modelo de calidad en uso para un portal de bolsa de trabajo utilizando la norma ISO/IEC 25000,” Trabajo de grado, Pontificia Univ. Católica del Perú, Lima, 2014. <ext-link ext-link-type="uri" xlink:href="http://hdl.handle.net/20.500.12404/5383">http://hdl.handle.net/20.500.12404/5383</ext-link>
</mixed-citation>
<element-citation publication-type="thesis">
<person-group person-group-type="author">
<name>
<surname>Medina Sanes</surname>
<given-names>G. M.</given-names>
</name>
</person-group>
<source>Definición y evaluación de un modelo de calidad en uso para un portal de bolsa de trabajo utilizando la norma ISO/IEC 25000</source>
<year>2014</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref7">
<mixed-citation>[7] M. A. Servello, “Logiscope and the software maintenance crisis,” in <italic>Proc. Conf. Softw. Maint</italic>., San Diego, 1990. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/icsm.1990.131333">https://doi.org/10.1109/icsm.1990.131333</ext-link>
</mixed-citation>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Servello</surname>
<given-names>M. A.</given-names>
</name>
</person-group>
<source>Logiscope and the software maintenance crisis</source>
<year>1990</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref8">
<mixed-citation>[8] J. Meekel; M. Viala, “Logiscope: a tool for maintenance,” in<italic> Proc. Conf. Softw. Maint</italic>., Scottsdale. 1988, pp. 328-334. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/icsm.1988.10184">https://doi.org/10.1109/icsm.1988.10184</ext-link>
</mixed-citation>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Meekel</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Viala</surname>
<given-names>M.</given-names>
</name>
</person-group>
<source>Logiscope: a tool for maintenance</source>
<year>1998</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref9">
<mixed-citation>[9] R. C. Martin, “The Clean Code Blog,” 2012. <ext-link ext-link-type="uri" xlink:href="https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html">https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html</ext-link>
</mixed-citation>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<name>
<surname>Martin</surname>
<given-names>R. C.</given-names>
</name>
</person-group>
<source>The Clean Code Blog</source>
<year>2012</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref10">
<mixed-citation>[10] E. Irrazábal, “Construcción de un Entorno para la Medición Automatizada de la Calidad de los Productos Software,” Tesis de Docorado, Univ. Rey Juan Carlos, España. 2012. C:\Users\adolfoescobar\AppData\Local\Microsoft\Windows\INetCache\Content.Outlook\RZ6EHN2T\ URL</mixed-citation>
<element-citation publication-type="thesis">
<person-group person-group-type="author">
<name>
<surname>Irrazábal</surname>
<given-names>E.</given-names>
</name>
</person-group>
<source>Construcción de un Entorno para la Medición Automatizada de la Calidad de los Productos Software</source>
<year>2012</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref11">
<mixed-citation>[11] A. Albeladi; R. Abdalkareem; F. Agwaeten; K. Altoum; Y. Bennis; Z. Nasereldine, “Toward Software Measurement and Quality Analysis of MARF and GIPSY Case Studies - a Team 13 SOEN6611-S14 Project Report,” arXiv, 1407.0063, 2014. <ext-link ext-link-type="uri" xlink:href="http://arxiv.org/abs/1407.0063">http://arxiv.org/abs/1407.0063</ext-link>
</mixed-citation>
<element-citation publication-type="report">
<person-group person-group-type="author">
<name>
<surname>Albeladi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Abdalkareem</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Agwaeten</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Altoum</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Bennis</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Nasereldine</surname>
<given-names>Z.</given-names>
</name>
</person-group>
<source>Toward Software Measurement and Quality Analysis of MARF and GIPSY Case Studies - a Team 13 SOEN6611-S14 Project Report</source>
<year>2014</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref12">
<mixed-citation>[12] I. Malavolta; R. Verdecchia; B. Filipovic; M. Bruntink; P. Lago, “How maintainability issues of android apps evolve,” in <italic>2018 IEEE Int. Conf. Softw. Maint. Evolution (ICSME)</italic>, pp. 334-344, Madrid, 2018. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ICSME.2018.00042">https://doi.org/10.1109/ICSME.2018.00042</ext-link>
</mixed-citation>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Malavolta</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Verdecchia</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Filipovic</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Bruntink</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Lago</surname>
<given-names>P.</given-names>
</name>
</person-group>
<source>How maintainability issues of android apps evolve</source>
<year>2018</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref13">
<mixed-citation>[13] Bo Wang, “An Android studio plugin for calculating and measuring code complexity metrics in Android applications,” Tesis de Maestría, Towson University, 2015. <ext-link ext-link-type="uri" xlink:href="https://mdsoar.org/bitstream/handle/11603/2459/TF2015Wang_Redacted.pdf?sequence=1&amp;isAllowed=y">https://mdsoar.org/bitstream/handle/11603/2459/TF2015Wang_Redacted.pdf?sequence=1&amp;isAllowed=y</ext-link>
</mixed-citation>
<element-citation publication-type="thesis">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Bo</given-names>
</name>
</person-group>
<source>An Android studio plugin for calculating and measuring code complexity metrics in Android applications</source>
<year>2015</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref14">
<mixed-citation>[14] B. S. Panca; S. Mardiyanto; B. Hendradjaya, “Evaluation of Software Design Pattern on Mobile Application Based Service Development Related to the Value of Maintainability and Modularity,” en <italic>2016 Int. Conf. Data Softw. Eng. ICoDSE</italic>, Denpasar, 2017. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ICODSE.2016.7936132">https://doi.org/10.1109/ICODSE.2016.7936132</ext-link>
</mixed-citation>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Panca</surname>
<given-names>B. S.</given-names>
</name>
<name>
<surname>Mardiyanto</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Hendradjaya</surname>
<given-names>B.</given-names>
</name>
</person-group>
<source>Evaluation of Software Design Pattern on Mobile Application Based Service Development Related to the Value of Maintainability and Modularity</source>
<year>2016</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref15">
<mixed-citation>[15] A. A. Saifan; A. Al-Rabadi, “Evaluating maintainability of android applications,” in<italic> ICIT 2017 - 8th Int. Conf. Inf. Technol. Proc</italic>., Amman, pp. 518-523. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ICITECH.2017.8080052">https://doi.org/10.1109/ICITECH.2017.8080052</ext-link>
</mixed-citation>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Saifan</surname>
<given-names>A. A.</given-names>
</name>
<name>
<surname>Al-Rabadi</surname>
<given-names>A.</given-names>
</name>
</person-group>
<source>Evaluating maintainability of android applications</source>
<year>2017</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref16">
<mixed-citation>[16] R. C. Martin, <italic>Clean Architecture: A Craftsman’s Guide to Software Structure and Design</italic>, 1st ed. Prentice Hall, 2017.</mixed-citation>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Martin</surname>
<given-names>R. C.</given-names>
</name>
</person-group>
<source>Android Architecture Blueprints [beta] - MVP + Clean Architecture</source>
<year>2017</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref17">
<mixed-citation>[17] Github.inc, “Android Architecture Blueprints [beta] - MVP + Clean Architecture,”. <ext-link ext-link-type="uri" xlink:href="https://github.com/googlesamples/android-architecture/tree/todo-mvp-clean/">https://github.com/googlesamples/android-architecture/tree/todo-mvp-clean/</ext-link>
</mixed-citation>
<element-citation publication-type="webpage">
<person-group person-group-type="author">
<collab>Github.inc</collab>
</person-group>
<source>Android Architecture Blueprints [beta] - MVP + Clean Architecture</source>
<year>2020</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref18">
<mixed-citation>[18] B. D. Tung, “Reactive Programming and Clean Architecture in Android Development,” (Bachelor of Engineerin), Helsinki Metropolia University of Applied Sciences, 2017. <ext-link ext-link-type="uri" xlink:href="https://www.theseus.fi/handle/10024/126982">https://www.theseus.fi/handle/10024/126982</ext-link>
</mixed-citation>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Tung</surname>
<given-names>B. D.</given-names>
</name>
</person-group>
<source>Reactive Programming and Clean Architecture in Android Development</source>
<year>2017</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref19">
<mixed-citation>[19] J. A. Montes Anccasi, “Clean architecture para mejorar el desarrollo de aplicaciones móviles en la empresa GMD”, Trabajo de grado, Univ. Nac. Mayor de San Marcos, 2018. <ext-link ext-link-type="uri" xlink:href="https://hdl.handle.net/20.500.12672/10218">https://hdl.handle.net/20.500.12672/10218</ext-link>
</mixed-citation>
<element-citation publication-type="thesis">
<person-group person-group-type="author">
<name>
<surname>Montes Anccasi</surname>
<given-names>J. A.</given-names>
</name>
</person-group>
<source>Clean architecture para mejorar el desarrollo de aplicaciones móviles en la empresa GMD</source>
<year>2018</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref20">
<mixed-citation>[20] S. Boukhary; E. Colmenares, “A clean approach to flutter development through the flutter clean architecture package,” en <italic>2019 Int. Conf. Comp. Sci. Comp. Intel.</italic>, Las Vegas, pp. 1115-1120. <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/CSCI49370.2019.00211">https://doi.org/10.1109/CSCI49370.2019.00211</ext-link>
</mixed-citation>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Boukhary</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Colmenares</surname>
<given-names>E.</given-names>
</name>
</person-group>
<source>A clean approach to flutter development through the flutter clean architecture package</source>
<year>2019</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref21">
<mixed-citation>[21] R. Hernández Sampieri; C. Fernández Collado; M. del P. Baptista Lucio,<italic> Metodología de la investigación</italic>, McGraw-Hill, 2010.</mixed-citation>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Hernández Sampieri</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Fernández Collado</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Baptista Lucio</surname>
<given-names>M. del P.</given-names>
</name>
</person-group>
<source>Metodología de la investigación</source>
<year>2010</year>
</element-citation>
</ref>
<ref id="redalyc_344268257016_ref22">
<mixed-citation>[22] JetBrains, “Touring Plugins: Software Metrics,” 2014. <ext-link ext-link-type="uri" xlink:href="https://blog.jetbrains.com/idea/2014/09/touring-plugins-issue-1/">https://blog.jetbrains.com/idea/2014/09/touring-plugins-issue-1/</ext-link>
</mixed-citation>
<element-citation publication-type="thesis">
<person-group person-group-type="author">
<collab>JetBrains</collab>
</person-group>
<source>Touring Plugins: Software Metrics</source>
<year>2014</year>
</element-citation>
</ref>
</ref-list>
<fn-group>
<title>Notas</title>
<fn id="fn5" fn-type="other">
<label>-</label>
<p>
<bold> CONFLICTOS DE INTERÉS </bold>
</p>
<p>Los autores José Francisco Arias Orezano, Benjamín David Reyna Barreto y Guillermo Mamani Apaza tenemos un propósito en común que es el de dar a conocer los resultados de este estudio para el beneficio de la comunidad científica, y en este contexto, declaramos que no existe ningún conflicto de intereses económicos, profesionales o personales que influenciaran en los resultados de esta investigación.</p>
</fn>
<fn id="fn6" fn-type="other">
<label>-</label>
<p>
<bold>CONTRIBUCIÓN DE LOS AUTORES</bold>
</p>
<p>José Francisco Arias-Orezano se encargó de la conceptualización, recursos, escritura, análisis y procesamiento de datos. Benjamín David Reyna-Barreto, de la revisión y supervisión en el marco de ingeniería de software. Guillermo Mamani-Apaza contribuyó en operacionalizar las variables de estudio, metodología y afinar la redacción.</p>
</fn>
</fn-group>
</back>
</article>