7 introduccion a la calidad en sitios web

Post on 04-Jul-2015

1.310 views 2 download

Transcript of 7 introduccion a la calidad en sitios web

Introducción a la calidad en sitios Web

Ingeniería de Software II

Introducción

Los continuos avances impuestos por las tecnologías han propiciado la evolución de los sitios Web, inicialmente utilizados como repositorio de información, a aplicaciones cada vez más complejas en términos de estructura, funcionalidad e interfaz

El alcance y la complejidad de estas aplicaciones varían extensamente y pueden ser desde servicios de escala reducida hasta aplicaciones empresariales en larga escala distribuidas en la Internet

En la actualidad, la comunidad de Ingeniería del Software reconoce que las aplicaciones Web poseen características que las diferencian de los sistemas tradicionales.

Estas características se deben al tamaño y complejidad de las aplicaciones, el carácter multidisciplinar del equipo de desarrollo, la tasa apresurada de entrega del proyecto, etc.

Éstas características hacen con que los procesos, modelos y métricas existentes para evaluar la calidad tengan que ser adaptados para considerar los cambios impuestos por las nuevas tecnologías

Como medida preventiva, el proceso de producción de sistemas de información Web debe ser gestionado de una manera rigurosa y cuantitativa.

La utilización de principios de medición para evaluar el desarrollo Web proporciona una retroalimentación que ayudará a entender, controlar, predecir, y mejorar estos productos y su proceso de desarrollo

Como en cualquier proyecto software, tener estimaciones realistas del coste y esfuerzo requerido en etapas tempranas del ciclo de vida de las aplicaciones Web propician a los directores de proyecto y organizaciones el manejo eficiente de sus recursos.

Entre los aspectos fundamentales de la calidad de las aplicaciones Web destacamos:

d la medición y evaluación del producto software

s el control del proceso de desarrollo

Definición de Calidad 1) RAE (Real Academia

Española) Propiedad o conjunto de

propiedades inherentes a algo, que permiten juzgar su valor.

Buena calidad, superioridad o excelencia.

Carácter, genio, índole. Condición o requisito que

se pone en un contrato.

Estado de una persona, naturaleza, edad y demás circunstancias y condiciones que se requieren para un cargo o dignidad.

Nobleza del linaje. Importancia o gravedad

de algo. PL. Prendas personales Condiciones que se

ponen en algunos juegos de naipes.

Definición de calidad 2) Wikipedia

De un producto o servicio es la percepción que el cliente tiene del mismo.

Conjunto de propiedades inherentes a un objeto que permiten apreciarlo como igual, mejor o peor que el resto de objetos de los de su especie.

Conjunto de cualidades que pueden definirse como buena, mala o regular.

Conjunto de propiedades inherentes a un objeto que le confieren capacidad para satisfacer necesidades implícitas o explícitas.

Definición de calidad Conjunto de propiedades y características

(implícitas o establecidas) de un producto o servicio que le confieren su aptitud para satisfacer unas necesidades implícitas o establecidas.

Debe definirse en el contexto que se esté considerando, por ejemplo, la calidad del servicio postal, del servicio dental, del producto, de vida, etc.

Definición de calidad

3) En ámbitos empresariales Grado en el que un conjunto de características

inherentes cumple con los requisitos. El conjunto de actividades encaminadas a

descubrir y satisfacer las necesidades de un colectivo o de una sociedad en general.

Satisfacción del cliente y conformidad con sus requisitos y necesidades.

El grado de satisfacción que produce al cliente.

¿Por qué “Calidad”?

El tema de la calidad está en el orden del día tanto en los medios de comunicación escritos y audiovisuales como en las revistas técnicas, y lo más importante, tiene una presencia continuada por el interés que despierta.

¿Por qué “Calidad”? Todo esto tiene como fundamento que el

papel que la calidad ejerce sobre la competitividad empresarial es enorme.

Hasta tal punto que incluso la Unión Europea propone la necesidad de la evaluación y certificación de los productos europeos mediante la calidad europea, como medio de discriminación en mercados internacionales.

¿Por qué “Calidad”?

Dado que la situación actual está marcada por la exigencia máxima en un mercado abierto, se hace más necesaria que nunca la producción de productos de calidad

¿Por qué “Calidad”? La calidad es crítica para la supervivencia de

las empresas por diversas razones, entre las que destacamos: es un factor competitivo es esencial para el comercio internacional reduce las pérdidas producidas por la no calidad mantiene a los clientes e incrementa los beneficios es el sello distintivo de los negocios de nivel

mundial

Tipos de Calidad

La industria del software, como tal industria, tiene muchas características de la industria tradicional.

Podemos distinguir tres tipos de calidad relacionados entre sí: calidad necesaria, calidad programada (planificada) y calidad realizada

Tipos de Calidad Calidad planificada. Es el nivel de calidad

que se propone obtener el fabricante. Calidad necesaria. Es la calidad que pide el

cliente y la que le gustaría recibir. Calidad realizada. Es la calidad que se

puede obtener debido a las personas que realizan el trabajo o a los medios utilizados.

Tipos de calidad

A veces se habla de calidad percibida, que no tiene que coincidir con la realizada, ya que depende de la subjetividad de algunas de las características, por ejemplo la estética, y es debido a que los usuarios no disponen de la información completa

Tipos de calidad

En estos casos los productos o servicios se evalúan más por su nombre de marca o la publicidad que por sus características objetivas. La calidad percibida es el grado de calidad que el cliente cree que tiene el producto o servicio.

Tipos de Calidad

Al ser subjetiva del cliente, el sistema de gestión poco puede hacer para que la calidad percibida sea igual a la realizada, salvo incrementar la comunicación a fin de conseguir la convergencia

Recordando

¿Qué es una aplicación Web? En ingeniería del software una aplicación

Web es aquella que los usuarios usan accediendo a un servidor Web a través de Internet o de una Intranet.

Las aplicaciones Web son populares debido a la practicidad del navegador Web como cliente ligero.

¿Qué es una aplicación Web? La habilidad para actualizar y mantener

aplicaciones Web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad.

Aplicaciones como los Webmails, wikis, Weblogs, MMORPGs (juegos de rol multijugador masivo online), tiendas en línea, etc. son ejemplos bien conocidos de aplicaciones Web

Un poco de historia

En los primeros tiempos de la computación cliente-servidor, cada aplicación tenía su propio programa cliente y su interfaz de usuario, estos tenían que ser instalados separadamente en cada estación de trabajo de los usuarios.

Un poco de historia

Una mejora al servidor, como parte de la aplicación, requería típicamente una mejora de los clientes instalados en cada una de las estaciones de trabajo, añadiendo un costo de soporte técnico y disminuyendo la eficiencia del personal.

Un poco de historia En contraste, las aplicaciones Web generan

dinámicamente una serie de páginas en un formato estándar, soportado por navegadores Web comunes como HTML o XHTML.

Se utilizan lenguajes interpretados del lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario

Un poco de historia

Generalmente cada página Web individual es enviada al cliente como un documento estático, pero la secuencia de páginas provee de una experiencia interactiva.

Interfaz

Las interfaces Web tienen ciertas limitantes en la funcionalidad del cliente. Métodos comunes en las aplicaciones de escritorio como dibujar en la pantalla o arrastrar-y-soltar no están soportadas por las tecnologías Web estándar

Interfaz

Los desarrolladores Web comúnmente utilizan lenguajes interpretados del lado del cliente para añadir más funcionalidad, especialmente para crear una experiencia interactiva que no requiera recargar la página cada vez (cosa que suele molestar a los usuarios).

Interfaz

Recientemente se han desarrollado tecnologías para coordinar estos lenguajes con tecnologías del lado del servidor, como por ejemplo PHP. AJAX, es una técnica de desarrollo Web que usa una combinación de varias tecnologías.

Recordando de nuevo Aunque muchas variaciones son posibles, una

aplicación Web está comúnmente estructurada como una aplicación de tres-capas.

En su forma más común, el navegador Web es la primera capa (cliente / interfaz de usuario), un motor usando alguna tecnología Web dinámica (ejemplo: CGI, PHP, Java Servlets o ASP) es la capa de en medio (reglas de negocio), y una base de datos como última capa.

Arquitectura de tres capas El navegador Web

manda peticiones a la capa media, que la entrega valiéndose de consultas y actualizaciones a la base de datos generando una interfaz de usuario.

Nuevas tendencias

La tendencia actual y futura es la arquitectura de n capas, en la que se separan las reglas de negocios del acceso a los datos. Entre las razones de su uso en el desarrollo de aplicaciones encontramos:

Nuevas tendencias

Abstracción total acerca del origen de datos. Las distintas capas se especializan absolutamente en la funcionalidad que deben brindar (procesamiento en las reglas de negocios o presentación de datos en la capa cliente) sin importar cual es el origen de los datos procesados

Nuevas tendencias

Bajo costo de desarrollo y mantenimiento de las aplicaciones. Si bien al momento del diseño podemos observar una mayor carga de complejidad, la utilización de esta arquitectura nos brinda un control más cercano de cada componente, así como también la posibilidad de una verdadera reutilización del código

Nuevas tendencias

Por ejemplo: La reutilización de código y a su vez, una herramienta que nos ofrece seguridad, ya que mediante la utilización de esta arquitectura, el desarrollador de una interfaz de usuario jamás llegará a manipular directamente un dato en nuestro servidor sino es a través de un componente.

Nuevas tendencias

Estandarización de las reglas de negocio. Las reglas de negocio se encuentran encapsuladas en un conjunto de rutinas comunes y pueden ser llamadas desde diversas aplicaciones sin necesidad de saber cómo esta funciona o ha sido diseñada

Ejemplo arquitectura 4 capas

Regresando a la calidad

¿Qué es la calidad del software? “Grado con el cual el cliente o usuario

percibe que el software satisface sus expectativas” (IEEE 729-83)

“Conjunto de propiedades y de características de un producto o servicio, que le confieren aptitud para satisfacer una necesidades explícitas o implícitas” (ISO 8402:1984)

Calidad de software “La calidad del software es el grado con el que un

sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”. (IEEE, Std. 610-1990).

“Concordancia del software producido con los requerimientos explícitamente establecidos, con los estándares de desarrollo prefijados y con los requerimientos implícitos no establecidos formalmente, que desea el usuario” (Pressman, 1998)

Calidad de software La calidad del software puede ser entendida

como el grado con el cual el usuario percibe que el software satisface sus expectativas (IEEE 729-83).

El tipo y número de actividades de garantía de calidad que es necesario adoptar en un proyecto o en una organización depende del tamaño y complejidad de los productos software que se estén desarrollando.

Calidad de software

También influyen otros factores, como pueden ser el tipo de proceso de desarrollo de software o los métodos y herramientas utilizados, la estructura organizativa de la organización, la motivación del personal, entre otros.

Calidad del software

Según el modelo de calidad descrito en la ISO 9126, la calidad de un proceso contribuye a mejorar la calidad del producto, y, a su vez, la calidad del producto contribuye a mejorar la calidad en uso.

Calidad del software

La finalidad de la calidad en uso es medir la efectividad, productividad, seguridad y la satisfacción de los usuarios (pertenecientes a perfiles determinados) que interactúan con el producto en escenarios específicos de uso.

Dimensiones e indicadores Las dimensiones de calidad de las

aplicaciones Web y sus indicadores se deben identificar considerando algunas características que las diferencian de otras aplicaciones del tipo: a Aplicaciones hipermedia A Sistemas distribuidos S Usuarios no identificados U Múltiples perfiles de usuario

Dimensiones de calidad

Características de la calidad del software

Las características generales de la calidad del software se aplican a las aplicaciones Web y nos proporcionan una base útil para evaluar la calidad de los sistemas Web.

Características

El modelo de calidad ISO/IEC 9216 (Internacional Standard “Information technology – Software Product Quality”) define 6 características de calidad que debe de cumplir toda aplicación Web para que sea un producto de calidad.

Características 1. Funcionalidad :

Es la capacidad de un producto software de satisfacer los requisitos funcionales prescriptos y las necesidades implícitas de los usuarios.

2. Fiabilidad : Es la capacidad de un producto software de

mantener su nivel de desempeño, bajo condiciones establecidas, por un periodo de tiempo

Características 3. Usabilidad:

Es la capacidad de un producto software de ser comprendido, aprendido, usado, atractivo y conforme con las reglamentaciones y guías de usabilidad

Eficiencia: Es la capacidad de un producto software de

proporcionar un rendimiento apropiado, de acuerdo a la cantidad de recursos usados bajo condiciones establecidas.

Características

5. Mantenibilidad: Es la capacidad de un producto software

para ser modificado. Las modificaciones pueden incluir correcciones, mejoras o adaptación del software a cambios en el entorno, en los requisitos o en las especificaciones funcionales

Características

6. Portabilidad: Es la capacidad de un producto software

de ser transferido de un ambiente a otro. Nota: El ambiente puede ser organizacional, de software o de hardware