LA CONFIABILIDAD DEL
SOFTWARE
Las organizaciones
que desarrollan productos basados en software requieren de prácticas efectivas
que permitan mejorar la calidad del producto. La Ingeniería de la Confiabilidad
de Software es una práctica cuantitativa que puede ser implementada en
organizaciones de cualquier tamaño bajo distintos modelos de desarrollo. Las
organizaciones desarrolladoras de productos basados en software destinan
grandes cantidades de recursos para mejorar la calidad de sus productos. Una
parte de dichos recursos se utiliza para la adopción de mejores prácticas. Sin
embargo, la dificultad de la adopción de dichas prácticas no sólo reside en el
costo y el tiempo requerido para institucionalizarlas, sino en cómo medir su
impacto en la calidad del software, así como demostrar el retorno de dicha
inversión. El grupo de Confiabilidad de Software y Sistemas (SoSYR) del Centro
de Investigación en Matemáticas A.C., lleva a cabo investigación sobre
prácticas industriales de bajo costo, con un alto impacto en la calidad de los
productos de software y que sean aplicables a organizaciones de distintos
tamaños.
En este artículo se introduce a la Ingeniería de la Confiabilidad de
Software (ICS). La ICS es una práctica de bajo costo, independiente del modelo
de desarrollo y de la plataforma tecnológica que permite caracterizar y
controlar de manera cuantitativa la calidad del producto.
La calidad, las fallas y la confiabilidad de Software. La calidad es un
atributo percibido por los usuarios o clientes de cualquier producto o
servicio. En el caso de productos basados en software, la percepción de la
calidad está en función de las fallas que el cliente percibe del mismo durante
su operación.
La confiabilidad es un atributo que mide el grado en que un producto
opera sin fallas bajo condiciones establecidas por un periodo de tiempo
determinado. La confiabilidad es un atributo cuantitativo que ha sido
ampliamente analizado, estudiado y usado en otras industrias para caracterizar
la calidad de los productos o servicios. En su concepción más general, la
confiabilidad es un atributo que mide el grado en que un producto opera sin
fallas bajo condiciones establecidas por un periodo de tiempo determinado.
Una falla es la manifestación percibida por el cliente de que algo no
funciona correctamente e impacta su percepción de la calidad. Un defecto es el
problema en el producto de software que genera una falla.
¿QUÉ ES LA INGENIERÍA DE CONFIABILIDAD
DE SOFTWARE?
La ICS es una práctica que permite planear y guiar el proceso de la
prueba del software de manera cuantitativa. La ICS no es algo nuevo. Se origina
en los años 70 con los trabajos de J. D. Musa, A. Iannino, y K. Okumoto[1]. Su
efectividad ha hecho que muchas empresas incorporen esta práctica en sus
proyectos, tales como AT&T, Alcatel, HP, IBM, Lockheed-Martin, Microsoft,
Motorola, entre otras. El impacto de dicha práctica se ha visto en la
aprobación de un estándar de la AIAA (en 1993) así como sus correspondientes
versiones en los estándares de IEEE. Cabe mencionar que se han documento más de
60 artículos reportando los resultados de la aplicación de la ICS en distintos
proyectos.
Dos elementos caracterizan la ICS: (1) el uso esperado relativo de las
funcionalidades del sistema y (2) los requerimientos de calidad definidos por
el cliente, que incluyen la confiabilidad, la fecha de liberación y costo del
ciclo de vida del proyecto.
El primer elemento (1) se centra en caracterizar de manera cuantitativa
el uso esperado del sistema mediante la definición del llamado perfil de
operación del sistema. Esta caracterización cuantitativa permite optimizar el
uso de los recursos en las funciones que tengan un mayor impacto y mayor uso
esperado dentro
del sistema.
del sistema.
El perfil de operación de un sistema es la caracterización cuantitativa
del uso que se espera de las funcionalidades principales del sistema. Por lo
general se usan probabilidades para cuantificar dicho uso esperado.
El segundo elemento (2) se refiere al enfoque al cliente mediante el
establecimiento de objetivos cuantitativos asociados a la calidad del producto
(representados con base a las fallas del producto). La satisfacción de dichos
objetivos permite establecer un balance entre los costos del producto, así como
la satisfacción de las necesidades del cliente.
¿Por qué usar la CONFIABILIDAD DEL SOFTWARE?
La ICS es independiente de la tecnología y de la plataforma de
desarrollo. No requiere ningún cambio en arquitectura, diseño, o código, sino
que puede sugerir los cambios que serían útiles. También, la ICS está altamente
orientada al cliente y está altamente correlacionada con los niveles 4 y 5 del
Modelo Integrado de Madurez de las Capacidades (CMM-I) del Instituto de
Ingeniería de Software. Su alta orientación al cliente se debe a la naturaleza
de la información requerida en el proceso de la ICS, lo que implica tener un
contacto frecuente y cercano con los clientes. Esta interacción mejora la
satisfacción del cliente y reduce riesgos de manera similar a lo propuesto en
los métodos ágiles de desarrollo.
La alta correlación con los niveles de madurez 4 y 5 de CMM-I se debe a
que dicha práctica satisface varios objetivos relacionados con la medición para
la optimización del proceso de desarrollo. La ICS es una buena opción para
alcanzar dicho objetivo. Comparado con las ventajas, el costo de aplicar la ICS
es bajo de acuerdo a la experiencia de John D. Musa[3]. Hay un costo de
inversión de no más de 3 días equivalentes del personal por persona en una
organización, que incluye un entrenamiento de dos días para cada uno y la
planeación con un número mucho más pequeño. Los gastos reflejados en el
proyecto varían típicamente a partir 0.1 a 3.0 por ciento de costo total del
proyecto[3]. Cabe mencionar que el componente más grande del costo es el
asociado al desarrollo del perfil de operación.
EL PROCESO DE LA CONFIABILIDAD DE
SOFTWARE.
El proceso de la ICS puede verse
como un conjunto de actividades adicionales y complementarias a las ya
realizadas dentro de cualquier proceso de desarrollo. Seis actividades definen
el marco de trabajo de la ICS que son mostradas en la Figura 1 y descritas a
continuación.
1. Definir el Producto. Puede verse como un complemento del Análisis de
Requerimientos y Diseño Arquitectónico. En esta actividad se define quiénes son
los clientes, usuarios, proveedores y otros sistemas relacionados.
2. Desarrollar el Perfil de Operación. Se define el conjunto completo de
operaciones (i.e., tareas o funcionalidades lógicas principales del sistema)
con su correspondiente probabilidad de ocurrencia o uso esperado. En esta
etapa, la administración de los recursos toma un nivel cuantitativo basado en
la importancia de cada operación del sistema. La Tabla 1 muestra un ejemplo
parcial de un perfil de operación para un producto para la navegación en el
Web.
3. Definir la Confiabilidad Adecuada. Se define lo que se
considera como “falla” para el producto en desarrollo así como los medios para
identificarla. Esta definición es crítica para el proceso y debe ser constante
durante todo el ciclo de vida. La Tabla 2 muestra un ejemplo de clases de
severidades de fallas y ejemplos de cada tipo de falla.
4. Preparar las Pruebas. Se definen los casos de prueba y los
métodos de prueba a partir de la información de los perfiles operacionales y
las estrategias de apoyo a la confiabilidad de software. Esta actividad puede
integrarse con el proceso de pruebas del modelo de desarrollo que se tenga. Lo importante
en esta etapa es la decisión de qué cosas se van a probar y qué datos se usaran
en los casos de prueba.
5. Ejecutar las Pruebas. Se asignan los tiempos para las pruebas
entre los sistemas, los tipos de prueba (i.e., características, carga y regresión)
así como su ejecución.
6. Guiar
las Pruebas. Se procesa la información obtenida en la ejecución de las pruebas
para varios propósitos. El primero es monitorear el crecimiento de la
confiabilidad del sistema (o la reducción de las intensidades de falla)
mientras se van reparando los defectos encontrados que generaron las fallas.
Otro propósito es el de poder determinar si es necesario seguir probando;
finalmente, el tercero es el de dirigir la fase del liberación del producto. La
Figura 2 muestra una gráfica típica usada para monitorear la reducción de las
intensidades de falla.
Este tema de Confiabilidad de Sw permite planear y guiar el proceso de la prueba del software de manera cuantitativa, su efectividad ha hecho que muchas empresas incorporen esta práctica en sus proyectos.
ResponderEliminarLa calidad, las fallas y la confiabilidad de Software
ResponderEliminarLa calidad es un atributo percibido por los usuarios o clientes de cualquier producto o servicio. En el caso de productos basados en software, la percepción de la calidad está en función de las fallas que el cliente percibe del mismo durante su operación.
La confiabilidad es un atributo que mide el grado en que un producto opera sin fallas bajo condiciones establecidas por un periodo de tiempo determinado. La confiabilidad es un atributo cuantitativo que ha sido ampliamente analizado, estudiado y usado en otras industrias para caracterizar la calidad de los productos o servicios. En su concepción más general, la confiabilidad es un atributo que mide el grado en que un producto opera sin fallas bajo condiciones establecidas por un periodo de tiempo determinado.
Cabe mencionar que se han documento más de 60 artículos reportando los resultados de la aplicación de la ICS en distintos proyectos.
ResponderEliminarDos elementos caracterizan la ICS: (1) el uso esperado relativo de las funcionalidades del sistema y (2) los requerimientos de calidad definidos por el cliente, que incluyen la confiabilidad, la fecha de liberación y costo del ciclo de vida del proyecto.
El primer elemento (1) se centra en caracterizar de manera cuantitativa el uso esperado del sistema mediante la definición del llamado perfil de operación del sistema. Esta caracterización cuantitativa permite optimizar el uso de los recursos en las funciones que tengan un mayor impacto y mayor uso esperado dentro
del sistema.
La confiabilidad es un atributo que mide el grado en que un producto opera sin fallas bajo condiciones establecidas por un periodo de tiempo determinado. La confiabilidad es un atributo cuantitativo que ha sido ampliamente analizado, estudiado y usado en otras industrias para caracterizar la calidad de los productos o servicios. En su concepción más general, la confiabilidad es un atributo que mide el grado en que un producto opera sin fallas bajo condiciones establecidas por un periodo de tiempo determinado.
La confiabilidad del software es la funcionabilidad o el buen funcionamiento que tendrá el software para ser usado que tenga las características necesarias para llevar a cabo su trabajo de la manera más correcta posible trata de probar el software para poder mejorarlo trata de analizar posibles errores otras funciones que se le pueda dar entre otros cosas que tengan que ver con el desempeño del software
ResponderEliminarEs una práctica cuantitativa que debe ser planteada en diferentes modelos de desarrollo ,se puede ver también como un practica de bajo costo ,la confiabilidad es una característica que nos permite revisar las cualidades y por medio de la cuantitativo podemos contarlo, la confiabilidad del software no es algo nuevo, se origina en los 70,muchas empresas los incorporaron en sus proyectos, existe dos elementos que caracterizan la confiabilidad del software: el primero es el uso relativo de las funcionalidades ,se centra en la forma cuantitativa,refiriendoce a los recursos del sistema, la segundad habla sobre calidad de los requerimientos bien definidos, además de que nos habla del enfoque del cliente con el objetivos de mejoras y buenos resultados, la confiabilidad puede verse como un proceso, dónde entra la generación del producto, desarrolló de la operación, confiabilidad adecuada,pruebas,ejecución esta serie de procesos tienen cierto tiempo para su elaboración.
ResponderEliminarPractica cuantitativa que puede ser implementada en organizaciones de cualquier tamaño bajo distintos modelos de desarrollo, dicho en otras palabras es decir que tanto les a servido el software, como les a servido el software etc.
ResponderEliminarCaracterísticas de la CS (Confiabilidad de Software)
1. El uso de esperado de las funcionalidades.
2. Los requerimientos de calidad.
Elementos
1. Unificación.
2. Establecer objetivos cliente – diseñadores, programadores. etc.
La confiabilidad es buen partido no requiere el cambio en la arquitectura, diseño o código sino solo la evolución del mismo.
Seis procesos para la confiabilidad del producto.
1. Definir el producto.
2. Desarrollar el perfil del producto.
3. Definir la confiabilidad adecuada.
4. Preparar las pruebas.
5. Ejecutar las pruebas
6. Cuidar las pruebas.
Es una práctica cualitativa que puede ser implementada en organizaciones de cualquier tamaño a desarrollar. Esto nos permite la confianza del software en su utilización. Elementos característicos:
ResponderEliminar• El uso esperado relativo en su funcionalidad
• Los requerimientos de calidad del cliente.
En el cual una característica primordial es sus principales características del software. Existen procesos para la confiabilidad:
Definir el producto
Desarrollar el perfil de operación
Definir la confiabilidad adecuada
Preparar las pruebas
Ejecutar las pruebas
Guiar las pruebas
Es un tema de mucha importancia "LA CONFIABILIDAD DEL SOFTWARE" Ya que en cualquier empresa siempre se toman las decisiones respecto a el costo y el tiempo para medir su impacto en la calidad del software, por lo que nos damos cuenta que este debe ser confiable siempre ya que un sistema no confiable pues no funciona para la empresa, ya que debe demostrar dicha inversión.
ResponderEliminarVemos que la confiabilidad del SW es una práctica que permite planear y guiar el proceso de la prueba del software de manera cuantitativa; por lo que nos damos cuenta que pues es una evaluación durante la el ciclo de vida del SW, y principalmente en la etapa de pruebas.
Y pues esto conlleva a un proceso que despliega una serie de pasos:
1. Definir el Producto.
2. Desarrollar el Perfil de Operación.
3. Definir la Confiabilidad Adecuada.
4. Preparar las Pruebas.
5. Ejecutar las Pruebas.
6. Guiar las Pruebas.
La confiabilidad del software es muy importante ya que las organizaciones que desarrollan productos basados en software requieren de prácticas efectivas que permitan mejorar la calidad del producto. La Ingeniería de la Confiabilidad de Software es una práctica cuantitativa que puede ser implementada en organizaciones de cualquier tamaño bajo distintos modelos de desarrollo.Las organizaciones des arrolladoras de productos basados en software destinan grandes cantidades de recursos para mejorar la calidad de sus productos. Una parte de dichos recursos se utiliza para la adopción de mejores prácticas.
ResponderEliminarLa confiabilidad es un atributo que mide el grado en que un producto opera sin fallas bajo condiciones establecidas por un periodo de tiempo determinado. La confiabilidad es un atributo cuantitativo que ha sido ampliamente analizado, estudiado y usado en otras industrias para caracterizar la calidad de los productos o servicios. En su concepción más general, la confiabilidad es un atributo que mide el grado en que un producto opera sin fallas bajo condiciones establecidas por un periodo de tiempo determinado.
ResponderEliminarLa confiabilidad en el software, basicamente detecto dos aspectos importantes en este tema, estos aspectos que resalto son los siguientes:
ResponderEliminarCosto y tiempo. Debemos ser muy claros en estos dos aspectos ya que son de suma importancia en la confiabilidad del software ya que es uno de los atributos que opera sin fallas dentro del sistema utilizando un tiempo determinado y seguro dentro del mismo.
Como ultimo comentario sobre este tema tengo que todo lo antes visto dentro del tema nos deja una clara explicasio de los aspectos a considerar en el desarrollo de un sistema, tomando las medidas adecuadas para su funcionamiento y la calidad de sus productos.