domingo, 30 de abril de 2017

Calidad de la aplicación Web

Calidad de la aplicación Web
Con tantas aplicaciones hoy en día es importante asegurar que nuestras aplicaciones Web tengan una buena calidad, y para eso se busca cubrir los siguientes puntos de este destacado tema:
·         Facilidad de uso: Es la simplicidad al usar la aplicación acorde a su complejidad. Toca los siguientes atributos:
o   Comprensibilidad global del sitio: Este atributo trata de que tan intuitivo en general es la aplicación Web, que tan fácil para usar es.
o   Características de retroalimentación en línea y ayuda: Como sabrá el lector en una aplicación web es importante que el usuario tenga una comunicación fácil con la empresa por lo cual tener un apartado de ayuda o contacto es indispensable para una app.
o   Características de interfaz estética: Trata de que tan agradables son las vistas de la app, que no sean difíciles de ver. Den una buena impresión.
Un perfecto ejemplo de este atributo es la página de Microsoft ya que se entiende de manera intuitiva la aplicación, tiene su apartado de ayuda, y las vistas son agradables a primera vista, no desagradan al usuario en general: https://www.microsoft.com/es-mx/
·         Funcionalidad: Es el grado en que el software satisface las necesidades planteadas según las establecen los siguientes atributos:
o   Capacidades de búsqueda y recuperación: Eficiente al buscar algo y recuperar la información, que no tarde mucho tiempo en hacer esta tarea.
o   Características de navegación y visualización
o   Características de la aplicación relacionadas con el dominio
Un ejemplo para este atributo sería la página de youtube: https://www.youtube.com/
Ya que satisface la necesidad de buscar videos que uno quiere y es muy rápido su respuesta al pedir resultados de una búsqueda.
·         Confiabilidad: Se refiera a la cantidad de tiempo que la aplicación se encuentra disponible para su uso, además de que busca que el usuario tenga la facilidad de dar datos personales sin ningún problema, para usar con mayor amplitud la app, este punto toca los siguientes atributos:
o   Correcto procesamiento de vínculos
o   Recuperación de errores
o   Validación y recuperación de entrada del usuario
Un ejemplo sería la página de mercado libre: http://www.mercadolibre.com.mx/ ; ya que en está página puedes vender y comprar diferentes artículos y lo usuarios tienes la confianza de poner a la venta sus artículos y de comprar mediante su tarjeta de débito algún artículo que les interese.
·         Eficiencia: Es la relación entre el nivel de prestaciones de un sistema y el volumen de recursos de recursos utilizados en condiciones declaradas. Toca los siguientes atributos:
o   Desempeño en tiempo respuesta
o   Rapidez de generación de página
o   Rapidez de generación de gráficos
Un rápido ejemplo para este atributo sería la aplicación de google ya que su tiempo de respuesta es muy mínimo y da muchísimo resultados sobre lo que se quiere buscar.
·         Facilidad de Mantenimiento: Hace referencia la facilidad con la que pueden efectuarse reparaciones al software. Toca los siguientes atributos:
o   Facilidad de corregir
o   Adaptabilidad
o   Extensibilidad
Para poner un ejemplo se podría usar fácilmente a messenger ya que está en constante mantenimiento y actualizaciones para darle un mejor servicio al usuario: https://es-es.messenger.com/
Como se puede ver hay muchos puntos que se deben de tratar para dar una aplicación con una alta calidad, no solo es importante el contenido o la información, se debe tener mucho cuidado en la parte visual y el tiempo de respuesta.
Bibliografía:
Roger Pressman; David Lowe. (2009). Web Engeneering. Estados Unidos : McGraw-Hill.
Carlos D. González. (2017). Evaluación de calidad web: Métodos, técnicas y uso de métricas de usabilidad. 30/04/2017, de usabilidadweb Sitio web: http://www.usabilidadweb.com.ar/metodos_eval_calidad_web.php
Sergio Luján Mora. (2011). Calidad en el Diseño de Aplicaciones Web: accesibilidad web. 30/04/2017, de Universidad de Alacante Sitio web: http://accesibilidadweb.dlsi.ua.es/?menu=2011-03-ua


domingo, 9 de abril de 2017

Tarea de Ingeniería de Software

Recopilación de requerimientos para las WebApps
Entender qué es lo que pide el cliente es una de las tareas más difíciles que puede haber en una ingeniería ya que especificar algo o pensar como otras personas no es algo fácil.

Algo super importante a la hora de recopilar requerimientos es formular las preguntas que se harán para recopilar esta información. Esta actividad empieza con la identificación del proceso que necesita, moviendo este proceso a los objetivo de la WebApp, define las principales características de la misma. La formulación permite a los interesados en el proyecto y al equipo de desarrolladores establecer los objetivos que tienen en común y los objetivos de crear está WebApp. A su vez identifica el enfoque y el alcance de la aplicación, también determina la probabilidad de éxito.

Algunas preguntas que se pueden hacer son:
-¿Cuál es la principal motivación o necesidad de está WebApp?
-¿Cuáles son los objetivos que está WebApp debe cumplir?
-¿Quién usará está WebApp?


Nos enfocaremos un poco más en la última pregunta ya que hay que tener muy en claro que hay muchas preguntas adicionales que se necesitan hacer y en base a ellas clasificar a los usuario que usaran la aplicación, algunas preguntas son:
¿Cuál es el objetivo principal del usuario al usar esta App?
Es importante identificar que hará el usuario al usar está App

¿Cuál es el nivel de preparación que necesita el usuario para poder usar el software?
No todas personas tienen el mismo nivel de preparación por esto mismo es importante saber que necesita el usuario para poder usar la App, en algunos casos se necesita una preparación con anterioridad

¿Cómo es que el usuario llegará a tener contacto con el programa?
Como sabrá el lector hoy en día hay muchas aplicaciones y puede ser que algunas tengan algún costo o sean para ciertos usuarios, que sean un poco privadas.

Comunicación con los clientes: Esta actividad incluye llevar una buena relación con el cliente y establecer lazos de dialogo con el fin de establecer los requisitos de la App

Análisis de la información: Hace referencia a la serie de pasos que buscan identificar relaciones entre los elementos conseguidos a través de la identificación de categorías y el dialogo con el cliente.

Casos de Uso: Como bien sabrá el lector los casos de uso son una aproximación de los escenarios que tendrá el usuario de la App, describen de manera específica como se interactuará. Estos casos de uso ayudan a los desarrolladores a entender como es que los usuarios usarán la app, y dan una guía importante de como se deberá de probar la App.

Como se puede apreciar la recopilación de datos implica un gran esfuerzo ya que es paso principal para empezar a desarrollar la aplicación, a veces se necesita un poco de velocidad en esta etapa para que no haya necesidad de regresarse constantemente y volver a entender el proceso.

Fuentes:
Roger Pressman; David Lowe. (2009). Web Engeneering. Estados Unidos : McGraw-Hill.

IVAN PALACIOS OREA. (2009). ANÁLISIS DE APLICACIONES WEB‎ . 09/04/2017, de blogspot Sitio web: https://sites.google.com/site/talleringenieriasoftwareivan/unidad---4/4-1-requisitos-para-el-analisis-de-las-webapps

Roger Pressman. (2010). Ingeniería de Software. New York: McGraw.Hill.


jueves, 6 de abril de 2017

Mejores Prácticas de Ingeniería Web

Mejores Prácticas de Ingeniería Web

Antes de entrar a las mejores prácticas es bueno recordar que la ingeniería web es la aplicación de metodologías sistemáticas y disciplinadas al desarrollo de aplicaciones de alta calidad World Wide Web.Muchos podrían pensar que la ingeniería Web y la ingeniería de Software es lo mismo sin embargo hay una diferencia: Desarrollar una WebApp implica un esfuerzo multidisciplinario debido al manejo de múltiples formatos.

Dicho esto entraremos a las mejores prácticas de está ingeniería estás son:

  • Tomarse el tiempo para entender el proceso de negocio y el objetivo del producto, incluso si los requerimientos de la WebApp son muy pocos o sin ser muy especificados. Algunos requerimientos pueden ser muy obvios.
  • Describir como es que los usuarios van a interactuar con la aplicación Web usando un escenario imaginario ya se real o un tanto imaginario.
  • Desarrollar un plan de proyecto, no importa si es breve.
  • Invertir más tiempo modelando lo que se va a construir, esto se hace haciendo un análisis, diseño y documentación. Gracias a esto se proporciona ayuda a todo el trabajo que existe en segundo plano.
  • Revisar los modelos para mejor consistencia y calidad.
  • Usar herramientas y tecnología que permitan a uno construir un sistema con componentes re-utilizables, se deben tener el mayor número de componentes posibles.
  • No confiar en los usuarios previos para probar el programa, se recomienda hacer un plan de prueba y ejecutarlo antes de entregar el sistema
Como podemos ver las prácticas, se enfocan en entregar una Web App que abarque el proceso de negocio lo mejor posible, puede ser difícil sacar los requerimientos sin embargo no se pueden omitir.
Además de que se necesita probar mucho la Web App,  a veces es necesario plantear varios escenarios para que nuestra app sea la mejor versión de la misma, algo importantes es hacer código re-utilizable, esto para proyectos futuros.

Fuentes:
Bruce R. Maxim. (2010). Web Engineering. 06/04/2017, de groups engin Sitio web: groups.engin.umd.umich.edu/CIS/course.des/cis376/.../WebE.ppt

IVAN PALACIOS OREA. (2012). Mejores prácticas de ingeniería web.. 06/04/2017, de blogspot Sitio web: https://sites.google.com/site/talleringenieriasoftwareivan/unidad---uno/3-4-mejores-practicas-de-ingenieria-web

TallerIngenieriaSoftware. (2013). MEJORES PRACTICAS DE INGENIERÍA WEB. 06/04/2017, de blogspot Sitio web: https://sites.google.com/site/talleringenieriasoft/unidad-3/3-4-mejores-practicas-de-ingenieria-web


domingo, 2 de abril de 2017

Web-Apps

Web-Apps
Con el crecimiento exponencial de la tecnología es importante conocer algunos aspectos que se desarrollan en estos días tal es el caso de las web-apps, el lector se podrá preguntar qué es una web-app o tal vez haya escuchado esté termino. Para ampliar esto empezaremos definiendo que es una web-app, posteriormente expondremos las características que tiene una web-app y ejemplos de estas web-apps.
Definición: Una web-app es una versión de la página web optimizada y adaptable a cualquier dispositivo móvil. En otras palabras, es una página que se puede abrir desde el navegador de cualquier terminal independiente del sistema operativo que se utilice.
El lector se podrá preguntar, ¿Para qué quiero tener una app de una página web si ya existe la página web? Y hay una simple razón, la capacidad de adaptación a cualquier dispositivo móvil de una web-app es una gran ventaja. Solo se necesita que el móvil cuente con un navegador y tal vez incluir algunos complementos para que la aplicación funcione sin ningún problema.
Visto esto avanzaremos a exponer las características o atributos de una web-app y que conlleva cada una.
Intensidad de red (Internet, Intranet, Extranet): Como bien puede deducir el lector las aplicaciones web residen en una red y debe satisfacer las necesidades de una variada comunidad de clientes, por lo que puede permitir una comunidad mundial
Concurrencia (Frecuencia de acceso de usuarios): Esto hace referencia al número de usuarios que puede tener acceso a la Web-app al mismo tiempo.
Carga Impredecible (magnitud de usuarios por día): El número de usuarios que acceden a la aplicación, sin embargo es obvio que el número de usuarios por día puede variar.
Desempeño (no esperar demasiado): Este factor se refiere al tiempo de espera que un usuario requiere para que se despliegue la información que la app requiere. Si la app tarda demasiado puede causar que el usuario se vaya a otra aplicación diferente.
Disponibilidad (24/7/365): Esto hace referencia a que tanto se puede usar la aplicación, si tiene un horario o se puede usar a cualquier hora.
Gobernada por datos (información [bases de datos]): Las aplicaciones con esté atributo tienen como función primaria el utilizar hipermedia para presentar al usuario el contenido de textos, gráficos, sonido y video
Sensibilidad al contenido (calidad de producto):
Evolución continúa (actualización constante): A diferencia del software de aplicaciones convencional, que evoluciona con una serie de versiones planificadas, y cronológicamente espaciadas, las aplicaciones con esté atributo están en constante evolución.
Inmediatez (rapidez con la que se desarrolló): Esté atributo es el tiempo que se tarda en comercializar un sitio Web completo puede ser cuestión de días o  semanas
Seguridad (integridad de los datos): Dado que estas apps están disponibles a través de la red, es difícil limitar la población de usuarios finales que pueden acceder a la aplicación. Por esto mismo es importante proteger el contenido confidencial y de proporcionar formas seguras de transmisión de datos, deberán implementarse fuertes medidas de seguridad en toda la infraestructura que apoya una web-app y dentro de la misma aplicación.
Estética: No cabe duda que un atributo que tiene que tener una app es el atractivo, su apariencia e interacción. Esté factor influye mucho en el éxito del diseño técnico.
Estos serían los principales atributos de una aplicación Web, como podrá observar el lector son cosas que todos hemos visto pero que casi no nos detenemos a observar más detalladamente.

Por último mencionaremos los tipos de web-apps y daremos un ejemplo de cada tipo:
Informativa: Este tipo se puede intuir muy fácilmente puesto que es una web-app que da a conocer o informa. Proporciona un contenido solo de lectura con navegación y enlaces simples                     Ejemplo: http://www.redalyc.org/
Esta página web se encarga de proporcionar artículos de todo tipo, solo basta teclear palabras clave y te direcciona con enlaces simples.
Descarga: Un usuario descarga la información desde el servidor apropiado, no hay más que agregar,  estas apps sirven para descargar contenido
                Ejemplo: http://www.apple.com/mx/itunes
En esta app como podrá darse cuenta el usuario es para poder descargar multimedia, en este caso música, es cierto que tiene un costo, sin embargo la app es para descargar
Personalizable: Como su nombre lo dice el usuario personaliza el contenido de acuerdo a sus necesidades específicas.
                Ejemplo: http://blogspot.es/
En esta app el usuario puede personalizar el contenido de lo que se sube a la app, además de que cada usuario puede personalizar además del contenido, los estilos de su blog.
Interacción: Estas web-apps se caracterizan por poder hacer que una comunidad de usuarios puedan mediante un espacio chat (charla) interactuar entre sí con el fin de mantenerse en contacto. También se puede utilizar mensajería instantánea
                Ejemplo: https://web.whatsapp.com/
Con este ejemplo podemos ver claramente como la famosa app de whatsapp para a estar en la web y tienes mensajería instantánea
Orientada a Transacciones: El usuario en este tipo de apps hace una solicitud, por ejemplo la realización de un pedido y gracias a la web-app esto se cumple.
                Ejemplo:  https://www.amazon.com.mx/
Este ejemplo es sumamente representativo de este tipo de web-apps puesto que en ella se pueden hacer los pedidos de múltiples cosas, se hacen millones de ventas al año en esta app, abarcando múltiples áreas.
Orientada a Servicios: Está aplicación proporciona un servicio al usuario, dando un ejemplo rápido, el pago de una deuda.
                Ejemplo: https://www.banorte.com/wps/portal/banorte/Home/inicio
Esta app brinda el servicio bancario de la institución Banorte, en ella se pueden solicitar varios servicios que se pueden observar en la app.
Portal: La aplicación canaliza al usuario llevándolo a otros contenidos o servicios Web fuera del dominio de la aplicación por esta razón se le dice portal puesto que sirve como puerta para otras aplicaciones.
                Ejemplo: http://200.77.228.169:82/prs/
Acceso a Base de datos: El usuario consulta en una base de datos grande y extrae la información que necesite.
                Ejemplo: https://consultas.curp.gob.mx/CurpSP/inicio2_2.jsp
Almacenes de Datos: El usuario hace una consulta en una colección de bases de datos grande y extrae información.

Como podemos ver contamos con un gran número de web apps actualmente y todas tienen características diferentes y nos brindan de alguna manera diferentes cosas, ¿Cuál es la mejor?, la verdad es que no se puede decir, depende de lo que se esté desarrollando o de lo que se esté buscando como cliente, por eso es bueno que haya gran variedad, es importante saber los atributos que debe tener una web app para así poder decir si es una buena aplicación o no ,y poder juzgar de manera más crítica. Invito al lector a hacer un pequeño análisis con las apps del uso cotidiano.

Fuentes:
Taller de Ingeniería. (2010). Los Atributos de Aplicaciones Basadas en WEB.. 02/04/2017,Sitio web: https://sites.google.com/site/talleringenieriasoftwareivan/unidad---uno/3-1-atributos-de-los-sistemas-y-aplicaciones-basados-en-web
-qode. (2014). ¿Qué es una Web App?. 02/04/2017, de qodeblog Sitio web: http://qode.pro/blog/que-es-una-web-app/
-(2008). Aportacion Ingenieria de Software. 02/04/2017, de blogspot Sitio web: http://proiis.blogspot.mx/
-(2010). Los Atributos de Aplicaciones Basadas en WEB.. 02/04/2017, de blogspot Sitio web: http://aurarivera4.blogspot.mx/2010/12/los-atributos-de-aplicaciones-basadas.html
Wynnie Calero. (2010). Ingenieria Web. 02/04/2017, de blogspot Sitio web: http://ingenieraupoliana.blogspot.mx/2010/12/ingenieria-web.html
Ian Summerville. (2005). Ingeniería del Software. Reino Unido: Pearson.