domingo, 9 de abril de 2017

Recopilación de requisitos para Web-App

Formulación
La formulación valora la necesidad subyacente de la WebApp, las características y funciones globales que desean los usuarios y el ámbito del esfuerzo de desarrollo.
La formulación comienza  al establecer  comunicación con el consumidor (accionista) que plantea las razones para la Web-App; ¿Cuál es la necesidad del negocio, cuales usuarios finales son el objetivo, que características y funciones se desean, que sistemas y bases de datos existentes  van a tener acceso, el concepto es realizable, como se medirá el éxito?
Las categorías de los usuarios
La jerarquía de usuario Las categorías de los usuarios finales se identifican como parte de las tareas de formulación y de recopilación de requisitos. Las categorías de usuarios son relativamente limitados y no necesitan una representación UML. Sin embargo, cuando crece el número de categorías de usuario, a veces es aconsejable desarrollar una jerarquía de usuarios.
Comunicación con los clientes y usuarios finales:
La mayoría de las Web-Apps tiene una amplia población de usuarios finales. Aunque la creación de categorías o  clases de usuario hace que una evaluación de los requisitos de usuario sea más manejable, no es recomendable emplear información recopilada sólo de una o dos personas como la base para la formulación o el análisis. Se deben considerar más personas (y más opiniones y puntos de vista).  
La comunicación se puede lograr aprovechando uno o más de los mecanismos siguientes:
·         Grupo muestra tradicional.
·         Grupo muestra electrónico.
·         Entrevistas iterativas.
·         Entrevistas de exploración.
·         Construcción de escenarios
Análisis
El análisis relación-navegación proporciona una serie de pasos de análisis que luchan por identificar relaciones entre los elementos descubiertos como parte de la creación del modelo de análisis. El enfoque de ARN se organiza en cinco pasos:
·           -   Análisis de los participantes
·           -   Análisis de los elementos.
·           -   Análisis de relaciones
·           -   Análisis de navegación
·              Análisis de evaluación.
Análisis de relaciones.- preguntas claves En este análisis se formulan una serie de preguntas que nos ayudará a comprender más la relación, para ello debe acudir al libro guía página 516. Análisis de navegación Uno de los aspectos más importantes en los sistemas de información en las Web-App es el de la navegación. La gran mayoría de las propuestas metodológicas para sistemas Web-App resaltan este aspecto ofreciendo modelos que permitan diseñarlo e implementar lo asegurando la calidad del resultado.
Desarrollo de casos de uso

Los casos de uso se desarrollan para cada categoría de usuario descrita en la jerarquía de usuario. En el contexto de la ingeniería Web, el caso de uso en sí mismo es relativamente informal: un párrafo narrativo que describe una interacción especifica entre el usuario y la Web-App.

jueves, 6 de abril de 2017

Mejores prácticas de ingeniería web

Mejores prácticas de ingeniería web
Introducción
Para la construcción de calidad de aplicaciones web se debe aplicar un conjunto de buenas prácticas tomando en cuenta los modelos de ingeniería del software. A continuación, se escriben ciertos puntos a cumplir para generar mejores prácticas de ingeniería web.
Contenido
La ingeniería web es hoy en día la tendencia en el desarrollo de software, por ello es necesario que dominemos los elementos de su entorno. Entre los puntos que se deben contemplar son:
·         Tomarse un tiempo para entender objetivamente las necesidades del negocio y el producto, es decir, que los requerimientos más simples pueden ser obviados, cuando suelen ser bastante comunes y provienen de la necesidad legítima del negocio en sí y sus propósitos. Al hacer esto suele ocurrir que cometemos el error de crear una aplicación web técnicamente buena, pero con una audiencia y una finalidad erróneas. Para evitarlo debemos identificar claramente los objetivos para el producto y no proceder a implementar hasta que tengamos un buen conjunto de estos.
·         Descubrir como interactuaran los usuarios con la Web-App aplicando un enfoque basado en escenarios. Se debe convencer de la necesidad de desarrollar casos de uso para reflejar cómo los diversos actores interactuarán con la Web-App, con esto se aprovecha dichos escenarios para:
o   La planeación y rastreo del proyecto
o   Guiar al análisis y el modelado del diseño
o   El diseño de pruebas sirviendo como entradas
·         Desarrollar un plan de proyecto, incluso si es breve, tal como el que hay en el gestor de tareas de la forja, con fechas de competición y actividad diaria.
·         Pasar más tiempo modelando y diseñando lo que se construir, generalmente, haciendo análisis, diseños y documentando, es algo que no forma parte totalmente de la ingeniería web, pero proporciona una gran iluminación a todo el trabajo de ingeniería que existe en segundo plano.
·         Utilizar herramientas y tecnología que nos permita construir un sistema de componentes reutilizables.
·         No reinventar cuando podemos reutilizar, existe un amplio abanico de patrones de diseño, aplicaciones web, módulos, componentes, etc. que han sido desarrollados para realizar aplicaciones web; todo esto hace que el desarrollo de la arquitectura sea mucho más fácil echando mano de plantillas y componentes.
·         Debe diseñarse pruebas amplias y ejecutarlas antes de liberar el sistema.
·         No apoyarse en usuarios anteriores para depurar la Web-App.
·         Garantizar que se cumple con los estándares predefinidos.
Conclusión
En conclusión, las mejores prácticas de ingeniería web se logran a través de un arduo proceso el cual conlleva una planeación y forma de trabajo, con la cual se pueda llegar a diseñar grandes proyectos.
Bibliografía

domingo, 2 de abril de 2017

Categorías de una Web-App

Categorías de una Web-App
Informativa (solo lectura, navegación y enlaces simples).- Se proporciona un contenido solo de lectura con navegación y enlaces simples.
Descarga (servicio de descarga de información).- Un usuario descarga la información desde el servidor apropiado.
Personalizable (personalizar el contenido según sus necesidades específicas).- El usuario personaliza el contenido a sus necesidades específicas.
Interacción (interacción entre comunidad de usuarios).-  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.
Entrada del usuario (basada en formularios).- La entrada basada en formularios es el mecanismo primario de la necesidad de comunicación;
Orientada a transacciones (solicitud de un usuario).- El usuario hace una solicitud (por ejemplo, la realización un pedido) que es cumplimentado por la Web-App.
Orientada a servicios (proporcionan un servicio al usuario).- La aplicación proporciona un servicio al usuario, por ejemplo, ayuda al usuario a determinar un pago de hipoteca.
Portal (canalización del usuario hacia otro contenido o servicio web).-  La aplicación canaliza al usuario llevándolo a otros contenidos o servicios Web fuera del dominio de la aplicación del portal.
Acceso a base de datos (consulta una base de datos).- El usuario consulta en una base de datos grande y extrae información.
Almacén de datos (consulta del usuario a una conexión de grandes bases de datos y extrae información).- El usuario hace una consulta en una colección de bases de datos grande y extrae información.
Ejemplo
YouTube.- Es una Web-App muy completa la cual cumple con casi todos los atributos: Es informativa, porque contiene documentales y videos explicativos; Descarga, cumple pero solo por medio de aplicaciones secundarias; Personalizable, porque cada persona puede tener sus listas de reproducción; Interacción, tiene porque se pueden generar grupos de charla o a través de videos en vivo; Entrada de usuario, no porque no se basa en formularios; Orientada a transacciones, no porque la aplicación no cumple con todas las solicitudes; Orientada a servicios, si porque proporciona servicios de entretenimiento; Portal, si ya que contiene anuncios sobre otras Web-Apps que podrían serle de interés al usuario; Acceso a base de datos, no tiene; Almacén de datos, si ya que es un almacén de videos que suben los usuarios
Bibliografía
http://proiis.blogspot.mx/
http://upolijenny.blogspot.mx/2010/12/ingenieria-web.html
https://sites.google.com/site/talleringenieriasoftwareivan/unidad---uno/3-1-atributos-de-los-sistemas-y-aplicaciones-basados-en-web

http://aurarivera4.blogspot.mx/2010/12/los-atributos-de-aplicaciones-basadas.html

Web-Apps atributos

Web-Apps atributos
Intensidad de la red (Internet, Intranet, Extranet).- Por su propia naturaleza, una Web-App es intensiva de red. Reside en una red y debe dar servicio a las necesidades de una comunidad diversa de clientes. Una Web-App puede residir en Internet. De forma alternativa, una aplicación se puede ubicar en una Intranet o una Extranet.
(Ejemplo, cualquier Web-App)
Concurrencia (Frecuencia de acceso de usuarios).- Un gran número de usuarios puede acceder al mismo tiempo, con diferentes patrones de interfaz de usuario.
(Ejemplo, Juegos online multijugador (world of warcraft))
Carga impredecible (magnitud de usuarios por día).- El número de usuarios puede variar en cuanto a magnitud por día o por hora.
(Ejemplo, cecyt 9: dependiendo del día y la hora a la que se use el servicio varía su velocidad)
Desempeño (no esperar demasiado).- La aplicación web deberá ser eficiente, es decir, el tiempo de respuesta tanto en el servidor como en el cliente debe ser aceptable.
(Ejemplo, Facebook: la cual debe de tener un gran rendimiento para que los usuarios puedan usarla)
Disponibilidad (24/7/365).- Los usuarios demandan acceso las 24 horas, los 7 días de la semana, de todo el año.
(Ejemplo, Google: el cual al ser el buscador principal de las personas, debe tener completa disponibilidad)
Gobernada por los datos (información [bases de datos]).- Unas aplicaciones presentan contenido hipermedia al usuario final, otras acceden o manipulan información de la base de datos.
(Ejemplo, Wikipedia: en la que cualquier usuario puede modificar archivos ya creados, o crear los suyos)
Sensibilidad de contenido (calidad de producto [estética]).- La estética del contenido, es un criterio de calidad de las aplicaciones web.
(Ejemplo, Origin: el cual muestra productos de manera en que sean agradables a la vista del usuario)
Evolución continúa (Esta ligada con la disponibilidad y habla de actualización constante).- Las aplicaciones web se encuentran en evolución continua, siendo clave para partir desde una buena arquitectura inicial, para que la evolución sea continua y consistente. Deben evolucionar para satisfacer las necesidades actuales de sus usuarios y la tecnología.
(Ejemplo, LOL: es una aplicación web que se va actualizando conforme a las opiniones que tengan los usuarios sobre ella)
Inmediatez (rapidez con la que se desarrolló).- El tiempo de construcción de la aplicación web requiere que sea corto debido a las existencias actuales.
(Ejemplo, una Web-App que quiera ser vendida en la actualidad)
Seguridad (integridad de los datos).- Debe implementar mecanismos de seguridad en la infraestructura y la aplicación, por lo que debe ofrecer un modo seguro de transmisión de datos para proteger el acceso al contenido confidencial.
(Ejemplo, WIRE: la cual es considerada la Web-App más segura de mensajería)
Estética (el atractivo de la aplicación).- La apariencia es un aspecto vital en la calidad de una aplicación web, ya que la disposición y presentación de sus elementos tiene mucho que ver con su éxito.
(Ejemplo, Clash Royale: el cual su contenido es colorido y apto para cualquier usuario)
Bibliografía

http://upolijenny.blogspot.mx/2010/12/ingenieria-web.html

SCRUM

SCRUM
Scrum es el nombre con el que se denomina a los marcos de desarrollo ágiles caracterizados por:
·         Adoptar una estrategia de desarrollo incremental, en lugar de la planificación y ejecución completa del producto.
·         Basar la calidad del resultado más en el conocimiento tácito de las personas en equipos auto organizados, que en la calidad de los procesos empleados.
·         Solapamiento de las diferentes fases del desarrollo, en lugar de realizar una tras otra en un ciclo secuencial o en cascada.
Características
SCRUM es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto.
Los roles principales en Scrum son:
·         El Scrum Master, que procura facilitar la aplicación de scrum y gestionar cambios
·         El Product Owner, que representa a los stakeholders (interesados externos o internos)
·         El Team (equipo), que ejecuta el desarrollo y demás elementos relacionados con él.

Product backlog

El product backlog se trata como un documento de alto nivel para todo el proyecto. Es el conjunto de todos los requisitos de proyecto, el cual contiene descripciones genéricas de funcionalidades deseables, priorizadas según su retorno sobre la inversión (ROI). Representa el qué va a ser construido en su totalidad. Es abierto y solo puede ser modificado por el product owner. Contiene estimaciones realizadas a grandes rasgos, tanto del valor para el negocio, como del esfuerzo de desarrollo requerido. Esta estimación ayuda al product owner a ajustar la línea temporal (KEV) y, de manera limitada, la prioridad de las diferentes tareas. Por ejemplo, si dos características tienen el mismo valor de negocio la que requiera menor tiempo de desarrollo tendrá probablemente más prioridad, debido a que su ROI será más alto.

Sprint backlog

El sprint backlog es el subconjunto de requisitos que serán desarrollados durante el siguiente sprint. Al definir el sprint backlog, se describe el cómo el equipo va a implementar los requisitos durante el sprint. Por lo general los requisitos se subdividen en tareas, a las cuales se asignan ciertas horas de trabajo pero ninguna tarea con una duración superior a 16 horas. Si una tarea es mayor de 16 horas, deberá ser dividida en otras menores. Las tareas en el sprint backlog nunca son asignadas, son tomadas por los miembros del equipo del modo que les parezca adecuado.
Sprint
El Sprint es el período en el cual se lleva a cabo el trabajo en sí. Es recomendado que la duración de los sprints sea constante y definida por el equipo con base en su propia experiencia. Se puede comenzar con una duración de sprint en particular (2 o 3 semanas) e ir ajustándolo con base en el ritmo del equipo, aunque sin relajarlo demasiado. Al final de cada sprint, el equipo deberá presentar los avances logrados, y el resultado obtenido es un producto que, potencialmente, se puede entregar al cliente.
Así mismo, se recomienda no agregar objetivos al sprint o sprint backlog a menos que su falta amenace al éxito del proyecto. La constancia permite la concentración y mejora la productividad del equipo de trabajo.
El tiempo mínimo de un Sprint es de dos (2) semanas y el máximo es de cuatro (4) semanas.
Durante cada sprint, un periodo entre una y cuatro semanas (la magnitud es definida por el equipo y debe ser lo más corta posible), el equipo crea un incremento de software potencialmente entregable.
El conjunto de características que forma parte de cada sprint viene del Product Backlog, que es un conjunto de requisitos de alto nivel priorizados que definen el trabajo a realizar.
Los elementos del Product Backlog que forman parte del sprint se determinan durante la reunión de Sprint Planning. Durante esta reunión, el Product Owner identifica los elementos del Product Backlog que quiere ver completados y los hace del conocimiento del equipo. Entonces, el equipo conversa con el Product Owner buscando la claridad y magnitud adecuadas para luego determinar la cantidad de ese trabajo que puede comprometerse a completar durante el siguiente sprint. Durante el sprint, nadie puede cambiar el Sprint Backlog, lo que significa que los requisitos están congelados durante el sprint.

Daily Scrum o Stand-up meeting

Cada día de un sprint, se realiza la ceremonia sobre el estado de un proyecto. Esto se llama daily standup o Stand-up meeting. El scrum tiene unas guías específicas:
·         La ceremonia comienza puntualmente a su hora.
·         Todos son bienvenidos, pero sólo los involucrados en el proyecto pueden hablar.
·         La ceremonia debe celebrarse idealmente, en la misma ubicación y a la misma hora todos los días.
Durante la ceremonia, cada miembro del equipo contesta a tres preguntas:
·         ¿Qué has hecho desde ayer?
·         ¿Qué es lo que haré hoy?
·         ¿Has tenido algún problema que te haya impedido alcanzar tu objetivo? (Es el papel del ScrumMaster recordar estos impedimentos).
El objetivo último de las ceremonias diarias es que cada miembro del equipo sepa si se están cumpliendo los plazos marcados para el "sprint".

Scrum de Scrum

Estas ceremonias, por lo general, se realizan cuando en la organización existan varios equipos Scrum, y les permiten discutir su trabajo, enfocándose especialmente en áreas de solapamiento e integración. Se hace normalmente cada día después del “Daily Scrum” o, como máximo, cada dos días. Asiste una persona asignada por cada equipo Scrum.
La agenda será la misma que la del Daily Scrum, añadiendo, además, las siguientes cuatro preguntas:
·         ¿Qué ha hecho tu equipo desde nuestra última reunión?
·         ¿Qué hará tu equipo antes que nos volvamos a reunir?
·         ¿Hay algo que demora o estorba a tu equipo?
·         ¿Estás a punto de poner algo en el camino del otro equipo?

Planificación del Sprint (Sprint Planning)

Al inicio de cada ciclo de Sprint (de acuerdo a la duración definida de los sprints), se lleva a cabo una ceremonia de planificación del Sprint. Se pretende:
·         Seleccionar qué trabajo se hará.
·         Preparar, con el equipo completo, el Sprint Backlog que detalla el tiempo y el esfuerzo que llevará hacer el trabajo.
·         Identificar y comunicar cuánto del trabajo es probable que se realice durante el actual Sprint.
·         Se toma como medida de tiempo para esta ceremonia una hora por cada semana de duración del sprint, teniendo un máximo posible de ocho (8) horas como límite.
Al final del ciclo Sprint se celebran dos ceremonias más: la revisión del Sprint y la retrospectiva del Sprint.

Revisión del Sprint (Sprint Review)

·         Revisar el trabajo que fue completado y no completado

·         Presentar el trabajo completado a los interesados, puede ser a través de una demostración o de un ambiente para tal fin (sin que esto constituya una tarea adicional al equipo)

·         El trabajo incompleto no puede ser demostrado

·         Se toma como medida de tiempo una hora por cada semana de duración del Sprint.

Retrospectiva del Sprint (Sprint Retrospective)


Después de cada sprint, se lleva a cabo una retrospectiva del propio sprint, en la cual todos los miembros del equipo dejan sus impresiones sobre el sprint recién superado. El propósito de la retrospectiva es realizar una mejora continua del proceso. Aplicando las mismas medidas de tiempo antes descritas para las otras ceremonias.