sábado, 29 de abril de 2017

CALIDAD DE LA APLICACIÓN WEB


Existen 5 características principales de calidad  que se toman en cuenta para el desarrollo de las aplicaciones web, el ejemplo para analizar si cumple con todas estas características es: 

https://www.netflix.com

Característica
Descripción
Ejemplo
Facilidad de uso
Hace referencia a que tan navegable es la aplicación de modo que se entienda donde esta cada función, tomando en cuenta factores como la estética, la consistencia y la documentación. Se debe analizar el contenido que va a tener y la audiencia a la que va dirigido.
La página de Netflix al ser consultada por diferentes usuarios, desde niños pequeños hasta adultos debe ser lo suficientemente navegable para que sea fácil encontrar lo que se requiere sin estar batallando con la búsqueda de esto.
Funcionalidad
Se refiere al conjunto de capacidades y características que ofrece la aplicación, lo que esta puede hacer.
Netflix ofrece a los usuarios la facilidad de encontrar el tipo de películas, series caricaturas que desees ordenándolas por géneros, las novedades que hay, según tus gustos mostrándote una vista más personalizada.
Confiabilidad
Se debe evaluar respecto a la frecuencia y gravedad de las fallas, el tiempo que tarda para que ocurra una falla nueva y la capacidad de recuperación ante ésta, contemplando que tan fácil y rápido se soluciona.
Debido a que para el acceso a este servicio se hace uso de la información de la tarjeta de crédito que uses, Netflix debe ser confiable pues de otro modo ocasionaría una gran problema por cargos a cuentas que no sean las correctas
Eficiencia
Se mide con base en la
velocidad con que se puede hacer una tarea, el uso de recursos pues con menos se debe tratar de tener la misma calidad.
No puede tardarse mucho en el tiempo de respuesta al cargar lo que se desea ver, pues al ser consultada por varios usuarios y que principal atractivo sea que puedes ver películas y demás, tiene que actuar con “eficiencia”.
Facilidad de mantenimiento
Se refiere a que tan susceptible es la aplicación de ser corregida, ampliable o adaptable según sea el caso.
La página debe funcionar lo más rápido posible pues si queda mucho tiempo inservible se vería reflejado en la pérdida de clientes.


Como podemos darnos cuenta estas son las principales características que los desarrolladores deben tomar en cuenta para el desarrollo de las aplicaciones web si desean que estas tengan calidad para que así el contenido de estas sea atractivo y llegué una  mayor audiencia.




"Definición de facilidad de mantenimiento" extraído el 29 de abril de 2017 desde la fuente:
http://albertolacalle.com/hci/funcionalidad-usabilidad.htm


"Desarrollo de una aplicación web " extraído el 29 de abril de 2017 desde la fuente: http://bibdigital.epn.edu.ec/bitstream/15000/2158/1/CD-1450%282008-05-21-01-07-04%29.pdf

"Facilidad de uso en sitios web" extraído el 29 de abril de 2017 desde la fuente: 
http://www.visibilidadweb.unam.mx/docs_index/FacilidadDeUso.pdf

"Fiabilidad, disponibilidad y facilidad de mantenimiento (funciones RAS)" extraído el 29 de abril de 2017 desde la fuente: 
https://docs.oracle.com/cd/E19455-01/816-0289-10/6m6pmlk9b/index.html

Pressman, R.. (2010). Conceptos de Diseño. En Ingeniería del Software(p.183). New York: Mc Graw Hill. 

domingo, 9 de abril de 2017

Formulación de Sistemas Basados en Web

La formulación de sistemas y aplicaciones basados en web representa una secuencia de acciones de Ingeniería Web, comienza con la identificación de las necesidades del negocio y de esta manera define las características y funciones ademas de realizar la recopilación de requisitos para al final hacer un modelo de análisis.
Gracias a la formulación es mas sencillo establecer un conjunto de metas en común, entre el cliente y el equipo de ingeniería Web, para la construcción de la WebApp.




Primeramente para iniciar la etapa de formulación se recomienda hacer una serie de preguntas las cuales son:
  • ¿Cuál es la motivación principal para la WebApp?
  • ¿Por qué es necesaria la WebApp?
  • ¿Quién va a utilizar la WebApp?
Ademas se tratan dos categorías de metas en esta etapa:
  • Metas Informativas: indican una intención de proporcionar contenido y/o información específica al usuario final.
  • Metas aplicables: indican la habilidad para realizar alguna tarea dentro de la WebApp.


Después necesitamos trabajar la recopilación de requisitos para WebApps.
En esta parte se tratan algunos objetivos como:
  • Identificar requisitos de contenido.
  • Identificar requisitos funcionales.
  • Definir escenarios de interacción para diferentes de clases de usuarios.
Es por eso que tenemos algunos pasos que seguir para lograr dichos objetivos tales son:
  1. Pedir a los clientes que definan las categorías de usuario y describan cada categoría.
  2. Comunicarse con los clientes para definir los requisitos básicos de la WebApp.
  3. Definir los casos de usuario que describan escenarios de interacción para cada clase de usuario.

Luego de terminar con estas dos etapas debemos seguir con la definición de las categorías de usuario.
La definición de una categoría requiere que primero formulemos un conjunto de preguntas fundamentales como:
  • ¿Cual es el objetivo global del usuario cuando usa la WebApp?
  • ¿Cuáles son los antecedentes y la practica del usuario en relación con el contenido y la funcionalidad de la WebApp?
  • ¿Cómo llegará el usuario a la WebApp?
  • ¿Qué características genéricas de la WebApp le gustan o disgustan al usuario?.
Debemos tener en cuenta que conforme se avanza en la recopilación de requisitos cada diferente clase de usuario debe encuestarse para obtener datos.

Comunicación con los clientes y usuarios finales
Como es de esperarse, la mayoría de las WebApps tiene una amplia población de usuarios finales por lo cual no es recomendables que se emplee información recopilada de una o dos personas como base para la formulación o el análisis, se deben considerar mas puntos de vista.
La comunicación se puede lograr aprovechando alguno de estos mecanismos
  • Grupo muestral tradicional.
  • Grupo muestral electrónico.
  • Entrevistas iterativas.
  • Entrevista de exploración.
  • Construcción de escenarios.

Análisis de la información recopilada
Así como vamos recopilando la información se categoriza en clase usuario y tipo de transacción y luego se valora según su relevancia. El objetivo de realizar esto es desarrollar listas de objetos de contenido, operaciones que aplican a los objetos de contenido dentro de una transacción de usuario específica, requisitos funcionales que aportara la WebApp al usuario final y requisitos no funcionales que sobresalgan en las actividades de comunicación.


Desarrollo de casos de uso.

Los casos de uso tiene la función de describir como se la interacción de la WebApp con una categoría de usuario específica  (llamada actor) y de este modo lograr una acción específica.
Los casos de uso describen la interacción desde el punto de vista del usuario.
  • Proporcionan el detalle necesario para crear un modelo de análisis efectivo.
  • Ayudan a dividir en comportamientos el trabajo de la Iweb
  • Ofrecen una guía importante para quienes deben probar la WebApp




Podemos concluir con que gracias a estas primeras etapas de formulación nos es posible abstraer cual es el negocio, saber de lo que trata pues se analizan a detalle los requisitos específicos de la WebApp que serán modelados a través de los casos de uso y notación UML.






"3.5 Formulación de Sistemas basados en la Web" extraído el 07 de Abril de 2017 desde la fuente: https://sites.google.com/site/talleringesoftware/unidad-3/3-5-formulacion-de-sistemas-basados-en-la-web

"Formulación y planeación para ingeniería Web" extraído el 07 de Abril de 2017 desde la fuente: http://dianaelizabethceliyaguachi.blogspot.mx/

"Formulación y planeación para ingeniería Web" extraído el 07 de Abril de 2017 desde la fuente: https://es.slideshare.net/dfcelix/exp-ingenieria-web

"Ingeniería Web" extraído el 07 de Abril de 2017 desde la fuente:http://navabautista.wikispaces.com/file/view/Wiki.pdf






miércoles, 5 de abril de 2017

MEJORES PRACTICA DE LA INGENIERÍA WEB

La Ingeniería Web es un proceso utilizado para crear , implantar y mantener aplicaciones y sistemas web de alta calidad. Es por eso que para la construcción de estas aplicaciones web se debe aplicar un conjunto de buenas practicas en donde se toman en cuenta los modelos que expone la ingeniería de software.

Algunos ejemplos de estas buenas practicas son:


  • Describir cómo interactuarán los usuarios con la WebApp aplicando un enfoque basado en escenarios.
  • Revisar la consistencia y calidad de los modelos.
  • Utilizar herramientas y tecnología que permitan construir el sistema con tantos componentes reutilizables.
  • No apoyarse en usuarios anteriores para depurar la WebApp pues estarán acostumbrados a la primera versión de la aplicación esperando que funcione de la misma manera
  • Asignar el tiempo necesario para comprender las necesidades del negocio y los objetivos del producto, y colocar especial atención cuando los detalles de las webApps son ligeros, si éstos no  se logran completar el resultado puede ser un buen trabajo técnico pero no ser lo que el usuario precisa
  • .Desarrollar un plan del proyecto, incluso si es muy breve, debe ser exacta, por los plazos cortos, muchas veces el proyecto debe planearse y rastrearse diariamente.
  •  Asignar un tiempo adecuado para el modelado.


Concluyendo con el tema, es necesario que sean  tomadas en cuenta estas "buenas practicas" si es que deseamos que nuestras aplicaciones sean de calidad y sean muy bien acogidas por los usuarios.




García, R.. (2017). GUÍA TÉCNICA DE INGENIERÍA WEB. Abril 5, 2017 Sitio web: http://www.academia.edu/8126688/Gu%C3%ADa_t%C3%A9cnica_de_ingenier%C3%ADa_web

Quelal, B.. (2011). Sistema Web De Información De Pacientes Para La Clínica "Santa Fé". Abril 5, 2017, de Escuela Politécnica Nacional Sitio web: http://bibdigital.epn.edu.ec/bitstream/15000/3879/1/CD-3631.pdf

Pressman, Roger S. Ingeniería del Software. Ed. McGraw Hill. Sexta edición. México. 2005. 

domingo, 2 de abril de 2017

SCRUM

Entre as metodologías ágiles que existen se encuentra una que suele ser muy utilizada la cual es SCRUM.
SCRUM fue desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle, Esta especialmente diseñada para proyectos con requisitos que suelen cambiarse de manera rápida. Se caracteriza por realizar el desarrollo de software mediante iteraciones denominadas sprints así como las reuniones a lo largo del proyecto para la coordinación e integración del trabajo. 
También se utiliza cuando no se entrega al cliente lo que necesita en tiempo y forma así como cuando los costes se disparan o la calidad no es la que se esperaba.  


Teniendo esto en claro podemos proseguir para definir como es el proceso que se lleva a cabo en SCRUM



Primeramente se hacen las historias de usuario, que ne base a ellas se realizará el Product Backlog donde se priorizara que se hará primero con el fin de tener un objetivo para el Sprint.
Después se encuentra la planificación donde se decidirá como alcanzar el objetivo del Sprint para así después crear el Sprint Backlog el cual se basara en el Product Backlog, 
en este se identifican las tareas a realizar ademas de darles una estimación (1-16 horas)

Seguidamente se hacen las reuniones diarias las cuales no pueden durar mas de 15 minutos y sirven para ver el avance por equipo, en estas reuniones solo pueden hablar los miembros del equipo, ScrumMaster y Product Owner. Es así que luego viene el Sprint Review en donde el equipo presenta lo realizado durante el Sprint y todo el equipo participa.

Finalmente se hace el Sprint retrospective en donde se revisa que es lo que funciona y no, lo que se va a seguir haciendo así como lo que se va a dejar de hacer. Se realiza después de cada Sprint, todo el equipo participa y dura de 15 a 30 minutos.
 
Cabe resaltar que la duración de los Sprint suele ser de 2 a 4 semanas y no hay cambios en estos.


Podemos concluir que Scrum se centra más en la funcionalidad del sistema, va más orientado a lo que viene siendo la administración del proyecto además de que durante el proceso aunque se tata de seguir el orden de las iteraciones según como las priorizó el Product owner, si el equipo de trabajo se da cuenta que es mejor modificar el orden lo harán para avanzar en el proyecto.

Grafeuille, E. (2008) Una Introducción a Scrum [Diapositivas PowerPoint] Febrero 25, 2017 Sitio Web: https://www.mountaingoatsoftware.com/.../Spanish-Redistributable-Intro-Scrum.ppt

“¿Qué es Scrum?” extraído el 25 de Febrero de 2017 desde la fuente https://proyectosagiles.org/que-es-scrum/

Letelier, P., Sánchez,E.. (2003). Metodologías Ágiles en el Desarrollo de Software. [PDF File] Febrero 25, 2017, de Grupo ISSI Sitio web: http://issi.dsic.upv.es/archives/f-1069167248521/actas.pdf

WEBAPP

Para empezar a explicar lo que son las WebApps debemos entender lo que es la Ingeniería Web.

Con el gran desarrollo de Internet, la mayoria de proyectos y sistemas estan enfocados para las aplicaciones basadas en la Web(WebApps). Es por que se introduce el concepto de Ingeniería Web que es un proceso utilizado para crear, implantar y mantener aplicaciones y sistemas web de alta calidad.

Es así que podemos definir la WebApp como una aplicación que tiene lugar en el navegador web, pues puede ser visualizada en cualquier dispositivo movil, pues funcionan en todos los sistemas operativos y terminales que cuentan con los navegadores web que las soportan (en general todos los navegadores actuales).


Teniendo en claro esos 2 conceptos podemos comenzar por explicar los atributos de la WebApp

WEBAPPS
Atributos
Definición
Ejemplo (Netflix)
Intensidad de la red
Las aplicaciones Web residen en una red y debe satisfacer las necesidades de una variada comunidad de clientes, por lo que puede permitir una comunicación mundial.
Netflix es un claro ejemplo que muestra este atributo pues varios clientes hacen uso de esta aplicación.
Concurrencia
Un gran número de usuarios puede tener acceso a la WebApp al mismo tiempo.
Diferentes usuarios pueden tener acceso a la aplicación, al estar viendo películas, series, entre otras cosas  al mismo tiempo.
Carga impredecible
Se refiere a que la carga de estas aplicaciones puede variar debido al número de usuarios que accedan, pues un día puede haber más visitantes y otros no tanto.
Debido a que el mismo número de usuarios es igual todos los días a veces la carga de las películas o series es más rápida.
Desempeño
Si un usuario espera demasiado para que se despliegue la información que requiere, propiciará a que se vaya a cualquier otra parte.
El desempeño de la aplicación es bastante bueno pues es rápido y no te distraes con cualquier cosa.
Disponibilidad
Algunos usuarios demandan disponibilidad para accesos a la WebApp
La disponibilidad que presenta dicha aplicación podría decirse que puede hacer a través de una PC o como es debido a través de un móvil
Gobernada por los datos
Se refiere al uso de hipermedia para presentar contenidos de texto, gráficos, audio, video al usuario final.
Esta aplicación es un claro ejemplo al mostrar audio y video pues es una aplicación que tiene películas, series, etc.
Sensibilidad del contenido
La calidad estética del contenido.
El contenido está organizado de acuerdo al usuario que lo esté viendo (Sea un niño o Adulto).
Evolución Continua
Las aplicaciones Web evolucionan de manera continua. Por lo que su crecimiento debe de realizarse de forma controlada y consistente
Con lo que va de la aplicación esta ha ido evolucionando, esto se puede ver por las actualizaciones que se tiene respecto al contenido.
Inmediatez
La WebApp debe estar en el momento en que la requieran los usuarios. El tiempo que se tarda en comercializar un sitio Web completo puede ser cuestión de días o semanas.
La manera de navegar y cargar los contenidos es bastante veloz y es muy comercializable por  lo que encuentras en esta aplicación.
Seguridad
Se deben de implementar fuertes medidas de seguridad a lo largo de la infraestructura que sustenta una WebApp para proteger la confidencialidad de los datos.
La seguridad de la aplicación se basa en un usuario y una contraseña pero aun así le falta un poco más de seguridad.
Estética
La WebApp debe contar indudablemente con una buena presentación y buena disponibilidad de sus elementos.
La interfaz con la que cuenta Netflix es un tanto sencilla pero fácil de navegar en ella por la disponibilidad de sus elementos.

Otro punto que debemos saber son las categorías en las que se dividen las WebApps

Categorías
Definición
Ejemplo
Informativa
Se proporciona un contenido solo de lectura con navegación y enlaces simples.
http://www.excelsior.com.mx/
Permite al usuario consultar noticias.
De descarga
Un usuario descarga la información desde el servidor apropiado.
http://www.youtube-mp3.org/
Permite al usuario descargar música 
De entrada del usuario
El usuario personaliza el contenido a sus necesidades específicas.
https://www.blogger.com/
Permite al usuario crear
su propio blog a su gusto.


De interacción
La comunicación entre una comunidad de usuarios ocurre mediante un espacio chat (charla), tablones de anuncios o mensajería instantánea; entrada del usuario: la entrada basada en formularios es el mecanismo primario de la necesidad de comunicación.
www.elforo.com/

Permite la comunicación de
diferentes usuarios mediante
comentarios o mensajes para
resolver dudas.




Orientada a Servicios
Aplicación  proporciona un servicio al usuario, por ejemplo, ayuda al usuario a determinar un pago de hipoteca.
http://www.mitareanet.com/ayutar.htm
Ayuda a los usuarios con tareas
escolares.
Orientada a transacciones
El usuario hace una solicitud (por ejemplo, la realización un pedido) que es cumplimentado por la WebApp;
www.ticketmaster.com.mx/

Permite al usuario comprar
boletos.
De portal
La aplicación canaliza al usuario llevándolo a otros contenidos o servicios Web fuera del dominio de la aplicación del portal.

https://www.trivago.com.mx/

Permite al usuario comparar
hoteles de diferentes lugares 
llevándolos a las respectivas 
paginas de los hoteles.
De acceso a base de datos
El usuario consulta en una base de datos grande y extrae información.
https://consultas.curp.gob.mx/ 
permite consultar la información 
de una persona introduciendo la CURP.
De almacenamiento de datos.
Permite al usuario consultar una conexión a base de datos para almacenar información.
https://mega.nz/
Permite al usuario almacenar información que después le 
es posible consultar.

Podemos concluir que hoy en día son mas utilizadas las WebApps y que quizás la mayoría de lo que usamos en la actualidad son WebApps aunque ni siquiera sabíamos en que clasificación entraba o mucho menos que características debían de cumplir. Por eso mismo ahora somos consientes de los requisitos que se deben cumplir y como es que funcionan estas aplicaciones.





Palacios, I.. (2016). Los Atributos de Aplicaciones Basadas en WEB.. Marzo 31, 2017  Sitio web: https://sites.google.com/site/talleringenieriasoftwareivan/unidad---uno/3-1-atributos-de-los-sistemas-y-aplicaciones-basados-en-web

1&1 Digital Guide. (2016). Conceptos básicos: definición de web app y ejemplos. Marzo 31, 2017  Sitio web: https://www.1and1.mx/digitalguide/paginas-web/desarrollo-web/que-es-una-web-app-y-que-clases-hay/

Ferreira, R.. (2016). “Atributos de aplicaciones basadas en WEB”. Marzo 31, 2017
Sitio web: “http://www.xumarhu.net/isw_1_1_atributos_de_aplicaciones_basadas_en_web.pdf”

"Atributos de las webapps", extraído el 1 de abril de 2017 desde la fuente:
https://es.scribd.com/document/63602470/Atributos-de-Web-App