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.











martes, 21 de marzo de 2017

Historias de Usuario, Tarjetas de Ingeniería y Pruebas de Aceptación

Historia de Usuario
Número: 10.                           
Nombre: Venta de tarjetas de metro
Modificación (o extensión) de Historia de Usuario (No. y Nombre):
Usuario: Usuario del metro y cajero
Iteración Asignada: 1
Prioridad  en Negocio: Alta
Puntos Estimados: 10 horas
Riesgo en Desarrollo: Medio
Puntos Reales:
Descripción: El usuario del metro irá a un cajero a comprar una tarjeta que posteriormente usará para poder usar el servicio de metro e ir de una zona a otra o permanecer en la misma.

Observaciones:














Caso de Prueba de Aceptación
Código:

Historia de Usuario (Nro. y Nombre):
Venta de tarjeta No. 10
Nombre: Validación de tarjeta
Descripción: Al comprar la tarjeta que se valide su saldo y su id
Condiciones de Ejecución:
El usuario debe haber pagado la tarjeta
Entrada / Pasos de ejecución:
El usuario paga la tarjeta y la carga de saldo.
Resultado Esperado:
El sistema da de alta su id y acumula la cantidad de dinero que deposito el usuario.
Evaluación de la Prueba:



Tarea de Ingeniería
Número Tarea:
2
Historia de Usuario (Nro. y Nombre):
Venta de Tarjetas No. 10
Nombre Tarea: Tarifas de metro
Tipo de Tarea :
Desarrollo
Puntos Estimados:
10 horas
Fecha de Inicio:
09/03/2017
Fecha de culminación.
09/03/2017
Programador Responsable:
Cano Ramos Alfredo Erick y Sánchez Peña Axel
Descripción:
Se hará un estándar de las tarifas para ir de una zona a otra especificando cuales son las estaciones que están en cada zona y así evitar confusiones. También se hará una tabla general en donde se coloquen todas las estaciones con sus posibles tarifas dependiendo de la zona  en que se encuentre y a las zonas en que puede acabar usando dicha estación.



Tarea de Ingeniería
Número Tarea:
1
Historia de Usuario (Nro. y Nombre):
Venta de Tarjeta No. 10
Nombre Tarea: Registro de Tarjeta
Tipo de Tarea :
Desarrollo
Puntos Estimados:
5 horas
Fecha de Inicio:
7/03/2017
Fecha de culminación.
7/03/2017

Programador Responsable: Cano Ramos Alfredo Erick y Sánchez Peña Axel
Descripción:
Después de que el usuario haya comprado una tarjeta del metro se registrará la tarjeta y se validará para que pueda funcionar



Tarea de Ingeniería
Número Tarea:
3
Historia de Usuario (Nro. y Nombre):
Venta de Tarjeta No.10
Nombre Tarea: Recarga de Tarjeta
Tipo de Tarea :
Desarrollo
Puntos Estimados:
7
Fecha de Inicio:
08/03/2017
Fecha de culminación.
08/03/2017
Programador Responsable:
Cano Ramos Alfredo Erick y Sánchez Peña Axel
Descripción:
Posteriormente de que el usuario del metro haya comprado la tarjeta de metro y el cajero después de que la haya activado y entregado al usuario, el usuario podrá recargar la tarjeta para que cuente con el crédito necesario para poder usar el servicio del metro (Se debe contar con el saldo necesario para ir de la zona 1 a la zona 3 y viceversa).



Historia de Usuario
Número: 20.                           
Nombre: Entrada del metro
Modificación (o extensión) de Historia de Usuario (No. y Nombre):
Usuario: Usuario del metro
Iteración Asignada: 2
Prioridad  en Negocio: Alta
Puntos Estimados: 15 horas
Riesgo en Desarrollo: Baja
Puntos Reales:
Descripción: El usuario del metro tendrá acceso al servicio siempre y cuando tenga el saldo para cubrir la tarifa máxima.
Observaciones:





Caso de Prueba de Aceptación
Código:

Historia de Usuario (Nro. y Nombre):
Entrada del metro No.20
Nombre: Checar monto
Descripción: Si el monto en la tarjeta es el necesario para pasar al metro.
Condiciones de Ejecución:
El usuario previamente tuvo que haber comprado su tarjeta.
El sistema tuvo que haber dado de alta el id del usuario.
Entrada / Pasos de ejecución:
El usuario pasara la tarjeta por el lugar de cobranza con un monto por debajo de la tarifa estimada
Resultado Esperado:
El sistema le pedirá al usuario que recargue su tarjeta en taquilla y vuelva cuando la tarjeta contenga más o igual monto del que se pide.
Evaluación de la Prueba:



Caso de Prueba de Aceptación
Código:

Historia de Usuario (Nro. y Nombre):
Entrada del metro No.20
Nombre: Checar monto 2
Descripción: Si el monto en la tarjeta es el necesario para pasar al metro.
Condiciones de Ejecución:
El usuario previamente tuvo que haber comprado su tarjeta.
El sistema tuvo que haber dado de alta el id del usuario.
Entrada / Pasos de ejecución:
El usuario pasara la tarjeta por el lugar de cobranza con un monto por encima de la tarifa estimada
Resultado Esperado:
El sistema dejara entrar al usuario.
Evaluación de la Prueba:




Tarea de Ingeniería
Número Tarea:
1
Historia de Usuario (Nro. y Nombre):
Entrada del metro No. 20
Nombre Tarea: Entrada
Tipo de Tarea :
Desarrollo
Puntos Estimados:
15 horas
Fecha de Inicio:
09/03/2017
Fecha de culminación.
11/03/2017
Programador Responsable:
Cano Ramos Alfredo Erick y Sánchez Peña Axel
Descripción:
Teniendo ya validada la tarjeta en la previa venta y recarga el sistema reconocerá la tarjeta correspondiente al asignarle un id valido y tomando el monto solicitado del acumulado en la tarjeta. En el caso de que no tenga la cantidad requerida se le pedirá que vuelva a recargar en taquilla.




Historia de Usuario
Número: 10.                           
Nombre: Entrada del metro
Modificación (o extensión) de Historia de Usuario (No. y Nombre):
Usuario: Usuario del metro
Iteración Asignada: 2
Prioridad  en Negocio: Alta
Puntos Estimados: 15 horas
Riesgo en Desarrollo: Baja
Puntos Reales:
Descripción: El usuario del metro tendrá acceso al servicio siempre y cuando tenga el saldo para cubrir la tarifa máxima.
Observaciones:



Tarea de Ingeniería
Número Tarea:
1
Historia de Usuario (Nro. y Nombre):
Entrada del metro No. 10
Nombre Tarea: Entrada
Tipo de Tarea :
Desarrollo
Puntos Estimados:
15 horas
Fecha de Inicio:
09/03/2017
Fecha de culminación.
11/03/2017
Programador Responsable:
Cano Ramos Alfredo Erick y Sánchez Peña Axel
Descripción:
Teniendo ya validada la tarjeta en la previa venta y recarga el sistema reconocerá la tarjeta correspondiente al asignarle un id valido y tomando el monto solicitado del acumulado en la tarjeta. En el caso de que no tenga la cantidad requerida se le pedirá que vuelva a recargar en taquilla.