lunes, 29 de mayo de 2017

COCOMO

COCOMO
En textos anteriores hemos visto algunos puntos que se tocan al desarrollar software, así como metodologías que se pueden utilizar para hacer el mismo, sin embargo una vez que se termina muchos se pueden plantear la pregunta ¿Qué sigue? Como bien sabemos hay que entregar el software al cliente, en la mayoría de los casos este software se tiene que vender, pero aquí viene otra pregunta ¿A qué precio lo vendo? En muchos de los casos un software está por lo cielos, o tiene un precio muy bajo, ya que no cuenta con el análisis necesario para poderle darle el precio que realmente tiene que tener, es por este problema que surgió COCOMO (Constructive Cost Model) el cual fue desarrollado por B.W. Boehm a finales de los 70 e inicios de los 80, el cual fue escrito en su libro "Software Engineering Economics"
En este modelo se ocupa mucho la siguiente ecuación :

Donde  S: número de miles de líneas de código fuente              
                M(X): Es un multiplicador que depende de 15 atributos
                A continuación se muestra una tabla con los coeficientes para los diferentes modos
  
El Modelo COCOMO puede presentarse en 2 submodelos:
·         Básico : Trata de estimar de una manera rápida la mayoría de los proyectos pequeños y medianos, dentro de este modelo se divide en 3 modos de desarrollo:
1.       Modo Orgánico: Proyectos de software relativamente pequeños y sencillos en los que trabajan pequeños equipos, con buena experiencia en la aplicación, sobre el conjunto de requisitos poco rígidos (por ejemplo, un programa de análisis termal desarrollado para un grupo calórico).
2.       Modo Empotrado: Proyectos de software que deben ser desarrollados en un conjunto de hardware, software y restricciones operativas muy restringidas (por ejemplo, software de control de navegación para un avión).
3.       Modo Semiencajado: Proyectos de software intermedios (en tamaño y complejidad) en los que los equipos, con variados niveles de experiencia, deben satisfacer requisitos poco o medio rígidos (por ejemplo, un sistema de procesamiento de transacciones con requisitos fijos para un hardware de terminal o un software de gestión de base de datos).
·         Intermedio: Se introducen 15 atributos de coste para tener en cuenta el entorno de trabajo. Estos atributos se utilizan para ajustar el coste nominal del proyecto al entorno real, incrementando la precisión de la estimación.
El primer paso para estimar los costos es determinar las KLDC que son el número estimado de Líneas de código distribuidas (en miles) para el proyecto.
KDLC = (PF * Líneas de código por cada PF) / 1000

El segundo paso es calcular el coeficiente FAE, para ello se utiliza la siguiente tabla:


Teniendo esto proseguimos al tercer paso, que es estimar los factores de esfuerzo, tiempo, productividad.
Donde E: Esfuerzo
FAE: coeficiente calculado en el paso anterior

T: Tiempo
PR: Productividad


Como podemos observar este modelo nos sirve de mucho ya que puede calcular de manera aproximado cosas importante como el costo, el tiempo, la productividad, además de que tiene diferentes alcances, como pudimos ver no se limita a un solo tipo de proyectos, sirve para proyectos tanto grandes como pequeños, lo cual lo vuelve muy efectivo. Se dice que en la actualidad es uno de los modelos más documentado y ahora podemos ver la razón.

Bibliografía;
-Henry Bautista. (2014). COCOMO Ejemplos. 28/05/2014, de Prezi Sitio web: https://prezi.com/qwvokw05o5qm/cocomo-ejemplos/

-http://www.sc.ehu.es/jiwdocoj/mmis/cocomo.htm

-Emmanuel Macias. (2015). COCOMO I Y II. 28/05/2017, de SCRIBD Sitio web: https://es.scribd.com/doc/54236700/COCOMO-I-Y-II

domingo, 14 de mayo de 2017

Big Data

Ensayo de Big Data
En estos tiempos donde la tecnología crece exponencialmente, el ámbito de la información no se queda atrás y es por eso que hoy veremos un término que se está usando más seguido últimamente debido a su desarrollo y a todo lo que involucra. Estamos hablando del Big Data.
Empecemos diciendo por qué surgió la necesidad de crear esta nueva tecnología.
Como sabemos la información en internet es cada vez más abundante y almacenarla toda puede ser un gran problema, o al menos la mayor parte de la información. Imaginemos a una empresa que tiene miles de usuarios donde cada uno tiene un montón de datos que se necesitan, como historiales, compras, datos personales. ¿Puede ver el lector el problema que se enfrenta el mundo de la información digital?
Esta herramienta innovadora sirve para datos tan grandes que quieren ser analizados y procesados, pero los métodos o herramientas tradicionales o antiguas no pueden con tanta información, de aquí nació el Big Data.
De manera rápida diremos que el Big Data se rige por las 4 V´s:
·         Volumen: Como dijimos el big data maneja una gran cantidad de datos
·         Velocidad: La información tiene que tener una gran velocidad de consulta ya que si no fuera así sería como tener una herramienta convencional o antigua.
·         Variedad: Al ser tanta información es de esperar que maneje gran variedad, se dirá más adelante cuales son los tipos de información que maneja el Big Data.
·         Valor: Las empresas hacen un estudio con toda esta información, para así darle algún valor a la información, ya sea extraer alguna preferencia de los usuarios, ver el historial de los mismos, ofrecer alguna oferta que tenga gran impacto, etc.
Una gran ventaja del Big Data es que además de manejar volúmenes sumamente grandes, lo podemos usar en diferente tipo de datos, como: audio, video, sistemas GPS, etc. Aunado a esto, el tiempo de respuesta es rápido.
Un dato impactante es que se generan alrededor de 2.5 quintillones de bytes diariamente en el mundo, que para el que no sepa, es esta cantidad (2500000000000000000) o 2x10^18.


Espero que el lector viendo este dato, se pregunté ¿Dónde sale tanta información? Esta información se clasifica en diferentes tipos:
·         Web and Social Media: Es información que se obtiene de las redes sociales.
·         Machine-to-Machine (M2M): Tecnologías que se conectan a otros dispositvos.
·         Big Transaction Data: Datos como facturaciones, llamadas son datos transaccionales.
·         Biometrics: Es la información que incluye huellas digitales, retina, reconocimiento facial, etc.
·         Human Generated: Llamadas telefónicas, correos electrónicos, estudios médicos,etc.

Como pudimos ver, el desarrolló del Big Data es sumamente importante ya que abarca el mundo de la información de una manera que no se había hecho, y esto es muy bueno, ya que como pudimos ver, es una necesidad tener control en toda es información que se genera día a día y que nosotros podemos utilizar para nuestro beneficio. No solo basta guardar información hay que saber utilizarla.
Bibliografía:
SAS. (2016). Big Data What it is and why it matters. 13/05/2017, de SAS Sitio web: https://www.sas.com/en_us/insights/big-data/what-is-big-data.html
Ricardo Barranco Fragoso. (2012). ¿Qué es Big Data?. 13/05/2017, de IBM Sitio web: https://www.ibm.com/developerworks/ssa/local/im/que-es-big-data/
Oracle. (2012). La base de la innovación de datos. 13/05/2017, de Oracle Sitio web: https://www.oracle.com/lad/big-data/index.html





domingo, 7 de mayo de 2017

Análisis de páginas web

·         Página oficial de la Universidad Anáhuac: http://www.anahuac.mx/
Diseño de interfaz: El diseño es llamativo, no tiene mucha complejidad, contiene animaciones, fotos y todo está organizado.
Mapa de Navegación: Consta de 3 niveles, sin embargo, no es muy compleja la navegación ya que se puede navegar de manera intuitiva, tienen muy organizados los apartados.
Contenidos: Al ser una página universitaria tiene un buen contenido, ya que cuenta con las carreras que uno puede tomar en dicha institución, contiene las formas de pago, el contenido de becas, los planes de estudio de cada carrera, etc.

·         Google Drive: https://drive.google.com/drive
Diseño de interfaz: Es muy básico, pero desde mi punto de parecer no necesita ser más llamativo o complejo, ya que solo sirve como contenedor de datos, sirve para guardar datos en la nube.
Mapa de Navegación: Al igual que la interfaz, es muy básico, a lo máximo tendrá 2 niveles, y es muy sencilla la navegación, todo está muy bien señalado.
Contenido: Está página es personalizable por lo que el contenido lo aporta uno mismo, aunque hay opciones para descargar, pero se vuelve a lo mismo, uno decide que descargar.
·         Youtube: https://www.youtube.com/
Diseño de Interfaz: La página de youtube tiene una constante actualización y siempre trata de mejorar la parte visual, trata de verse un poco más moderno en cada actualización, además de que tiene un buen diseño.
Mapa de Navegación: Es muy sencillo, es de dos niveles, uno en donde están los canales a los que estas subscrito junto con otros apartados, y la opción de búsqueda en donde buscas un nivel y lo puedes ver.
Contenido: El contenido es muy amplio, de hecho la base de datos de youtube es de las más grandes por lo que hay un gran contenido de videos. Lo que es mejor, hay una gran variedad por lo que puedes encontrar la mayoría de las veces, lo que realmente buscabas.
·         Github: https://github.com/
Diseño de interfaz: Tiene un buen diseño, sencillo, pero no simple, tiene figuras llamativas y colores agradables a la vista.
Mapa de Navegación: El mapa contiene 3 niveles, uno en lo que se cuenta qué es github, los servicios con los que cuenta, etc, un log-in y el sign-in.
Una vez dentro del sistema, puedes crear proyectos, en los que posteriormente en el siguiente nivel, podrás subir los códigos, hacer etiquetas, asignar colaboradores, etc. En el mismo nivel de crear proyectos se pueden buscar otros proyectos de otros usuarios que se pueden descargar.
Contenido: El contenido es muy amplio ya que se cuenta con una gran cantidad de proyectos y códigos, la desventaja es que solo trata de eso, de desarrollo de software.
·         PelisPlus: http://www.pelisplus.tv/
Diseño de interfaz: El diseño es muy básico, lo bueno es que está organizado el contenido, por lo que da el aspecto de que esta ordenado, y no se ve una saturación de contenido.
Mapa de navegación: Es muy sencillo el mapa de navegación, no cuenta con muchos niveles, tiene las categorías de lo que puedes ver y una vez seleccionado lo que se quiere ver el reproductor, por esto mismo no hay gran complejidad.

Contenido: El contenido al igual que youtube es basto, pero solo trata de un solo tema, que son películas y series.

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.