En la actualidad existen muchas plataformas para móviles (iPhone, Symbian, Windows Phone, BlackBerry, Palm, Java Mobile Edition, Linux Mobile), sin embargo Android presenta una serie de características que lo hacen diferente. Es el primero que combina en una misma solución las siguientes cualidades:
Plataforma realmente abierta: Es una plataforma de desarrollo libre basada en Linux y de código abierto.
Adaptable a cualquier tipo de hardware: Actualmente podemos encontrar el S.O Android en dispositivos como teléfonos, tabletas, relojes, cámaras, electrodomésticos y gran variedad de sistemas empotrados que se basan en este sistema operativo. La aplicación ha de funcionar correctamente en dispositivos con gran variedad de tipos de entrada, pantalla, memoria, etc. Contrastando con la estrategia de Apple. En iOS tenemos que desarrollar una aplicación para iPhone y otra diferente para iPad.
Portabilidad asegurada: Las aplicaciones finales son desarrolladas en Java lo que nos asegura que podrán ser ejecutados en cualquier tipo de CPU, tanto presente como futuro. Esto se consigue gracias al concepto de máquina virtual.
Arquitectura basada en componentes inspirados en internet: El diseño de la interfaz de usuario se hace en XML, lo que permite que una misma aplicación se ejecute en un móvil de pantalla reducida o en TV.
Filosofía de dispositivos siempre conectado a internet
Gran cantidad de servicios incorporados: La localización basada en GPS como en redes, bases de datos con SQL, reconocimiento y síntesis de voz, navegador, multimedia, etcétera.
Aceptable nivel de seguridad: Los programas se encuentran aislados unos de otros gracias al concepto de ejecución dentro de una caja que hereda de Linux. Además, cada aplicación dispone de una serie de permisos que limitan su rango de actuación.
Optimizado para baja potencia y poca memoria: Android utiliza una máquina virtual Dalvik. Se trata de una implementación de Google de la máquina virtual de Java optimizada para dispositivos móviles.
Alta calidad de gráficos y sonido: Gráficos vectoriales suavizados, animaciones inspiradas en Flash, gráficos en 3 dimensiones basados en OpenGL. Incorpora codecs estándar más comunes de audio y vídeo.
Tomás Girones, J. (2013). El gran libro de Android. México: Alfaomega.
El SO operativo Android ha ganado un gran mercado en los últimos años, gracias a su portabilidad y facilidad de uso. Cada vez más tiene más usuarios y una gran ventaja es que el SO es de código abierto y por esto se puede adaptar a nuevos requerimientos de los usuarios. Otra ventaja es que se puede usar en varios dispositivos como Smartphones, Tablets e incluso Smart Watch.
(Asociación Española para la Calidad, 2016) Capacidad de un
elemento, bajo determinadas condiciones de uso, para conservar, o ser
restaurado a, un estado en el que pueda realizar la función requerida, cuando
el mantenimiento se realiza bajo determinadas condiciones y usando
procedimientos y recursos establecidos.
(openstax CNX, 2016) El IEEE (19990)
define mantenibilidad como: “La facilidad con la que un sistema o componente
software puede ser modificado para corregir fallos, mejorar su funcionamiento u
otros atributos o adaptarse a cambios en el entorno”.
Esta
definición está directamente conectada con la definición del IEEE para
mantenimiento del software: “es el proceso de modificar un componente o sistema
software después de su entrega para corregir fallos, mejorar su funcionamiento
u otros atributos o adaptarlo a cambios en el entorno”.
En
consecuencia, la mantenibilidad es una característica de calidad del software relacionada
con la facilidad de mantenimiento.
A mayor mantenibilidad, menores costes de
mantenimiento (y viceversa).
(EcuRed, 2016) Es la propiedad de
un programa o una aplicación informática que le permite funcionar bajo
diferentes sistemas. Cuando el programa informático es portable puede ser utilizado
en diferentes tipos de equipos.
(openstax CNX, 2016) Es el esfuerzo
necesario para transferir el programa de un entorno hardware/software a otro
entorno diferente.
El vocablo
oportunidad proviene del latín “Opprtunitas” cuyo significado es “delante de un
puerto”, y se utilizaba para referirse al momento de llegar al puerto a salvo
después de haber pasado una larga travesía en el mar.
(Definición, 2016) Se denomina
oportunidad a toda circunstancia en la cual existe la posibilidad de lograr
algún tipo de mejora de índole económica, social, laboral, etc.
Capacidad de
un sistema de software de ser lanzado cuando los usuarios lo desean, o antes.
Un gran
producto software que aparece demasiado tarde puede no alcanzar su objetivo.
(Universidad de los Andes, 2016) Capacidad de que el
sistema este total o parcialmente operativo al mismo tiempo que es requerido
para manejar eficazmente las fallas que puedan afectar la disponibilidad del
sistema.
La
disponibilidad de un sistema se basa en el concepto de confiabilidad mediante
la adición de la noción de recuperación.
La
disponibilidad es una de las características de las arquitecturas empresariales
que mide el grado con el que los recursos del sistema están disponibles para su
uso por el usuario final a lo largo de un tiempo dado.
·Debe ser capaz de darle mantenimiento al software.
·(eumed.net, 2016) Grado en que un producto de software
satisface sus especificaciones y consigue los objetivos de la misión
encomendada por el usuario.
·Se encarga de asegurar que los datos sean íntegros.
·(Universidad de Belgrano, 2016) Es la probabilidad
de operación libre de fallas de un programa de computadora en un entorno
determinado y durante un tiempo específico.
La confiabilidad del software se encuentra en una etapa de formación de
desarrollo y es la característica de
rendimiento más costosa de conseguir y difícil de conseguir y de garantizar. La
naturaleza del proyecto ayuda para la formulación de estimaciones de costo y el
esfuerzo que asegure la confiabilidad requerida.
·Grado en el que se puede esperar que un producto de software
lleve a cabo sus funciones esperadas con precisión requerida.
·(ChiapaneCode, 2016) Definido por la norma ISO 9241 como el
grado en el que un producto de software puede ser utilizado por usuarios
específicos para conseguir objetivos específicos con efectividad, eficiencia y
satisfacción en un determinado contexto de uso.
·Fácil de usar, que sea fácil de aprender a usar.
·Es un nivel superior en donde no sólo un software debe hacer
lo que dice que hace; también debe permitirnos hacerlo de forma adecuada,
natural.
(Universidad de la República, 2016) Un programa es
robusto si se comporta en forma razonable aún en circunstancias que no fueron
anticipadas en la especificación de requerimientos.
(Universidad de la República -Uruguay, 2016) Un programa es
robusto si reacciona en forma adecuada frente a situaciones a priori
imprevistas. Un programa robusto es también confiable y correcto.
(Lenguajes y Ciencias de la Computación, 2016) Es la capacidad del
producto software para poder funcionar incluso en condiciones fuera de lo
normal.
(Lenguajes y Ciencias de la Computación, 2016) Es la facilidad de
los programas para combinarse entre sí. También se puede ver como la
posibilidad de usar los resultados de un programa como entrada a otro.
La clave de la
compatibilidad es la homogeneidad en el diseño y un consenso en las
convenciones sobre estandarización para las comunicaciones entre programas; en
definitiva, la reutilización de los formatos de bloques de información.
Para que un
sistema sea considerado de calidad debe cumplir todos los factores antes
mencionados, debe brindar seguridad al usuario y evitar que personas no
autorizadas tengan acceso a su información y lo perjudiquen.
Un sistema
debe ser portable y se debe poder acceder a él desde cualquier lugar. También
debe ser eficiente y cumplir con los requerimientos del cliente y hacer lo que
el cliente especifico que haga. Además debe tener la capacidad de ser
mantenible, adaptarse a nuevos requerimientos o actualizaciones que el cliente
requiera.
(Garzón Villar, Sampalo de la Torre,
Leyva Cortés, & Prieto Tinoco , 2003) La calidad del software es una
mezcla de distintos factores, se puede considerar que un software es de calidad
si cumple con los siguientes objetivos:
Concordancia del software con los
requerimientos: el cliente desea que el software satisfaga una serie de
requisitos o metas iniciales.
Desarrollo coherente, aplicando correctamente
los criterios de la ingeniería del software: se debe seguir una
metodología correcta y apropiada al proyecto, si se quiere aumentar la
calidad del resultado final.
Desarrollo de requerimientos implícitos al
proyecto: siempre existe una serie de requerimientos que no especifica el
cliente, pero que son deseables. Por ejemplo, que el software sea
fácil (UNAM, 2016) de mantener, fácil de usar.
Glass (1998), afirma que la calidad es
importante, pero si el usuario no está satisfecho, nada más importa en
realidad. De igual forma afirma que la calidad de un producto es una función de
cuánto cambia el mundo para mejorar. Esta visión de la calidad afirma que si un
software proporciona beneficio sustancial a sus usuarios finales, éstos están
dispuestos a tolerar problemas ocasionales en aspectos como la confiabilidad y
el desempeño.
Control de calidad: El control de la variación puede equipararse con el control de calidad. Esto involucra la serie de inspecciones, revisiones y pruebas empleadas a lo largo del proceso del software para garantizar que cada producto del trabajo satisfaga los requisitos que se le han asignado.
Garantía de la calidad: La garantía de la calidad consiste en un conjunto de funciones de auditoria e información que evalúan la efectividad y qué tan completa son las actividades de control de calidad. La meta del aseguramiento de la calidad es presentarle al gestor los datos necesarios para que esté informado acerca de la calidad del producto y por consiguiente que comprenda y confíe en que la calidad del producto está satisfaciendo las metas y objetivos.
Costo de la calidad: El costo de la calidad incluye todos los costos que se generan o que demandan el desarrollo de las actividades relacionadas con la calidad. Los estudios de costo de la calidad se llevan a cabo para ofrecer una línea base e identificar oportunidades que reduzcan el costo de calidad y proporcionan una base que sirva de comparación.
Garantía de la calidad del software: El control y la garantía de la calidad son actividades esenciales en cualquier negocio que elabora productos de consumo. En la actualidad, toda compañía tiene mecanismos que garantizan la calidad en sus productos.
En mi opinión la
calidad es un factor de vital importancia al momento de desarrollar un
software, ya que si no existe calidad nuestro sistema será vulnerable a
fallos y no brindará seguridad a los usuarios. Además que al no garantizar la calidad de un sistema desde el principio, implica costes en la mantenibilidad que se le tiene que dar cuando se detectan errores en el software y también en el personal que se contrata para verificar la calidad.