Calidad de Software

REPÚBLICA BOLIVARIANA DE VENZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSIDAD NACIONAL EXPERIMENTAL DE LA

Views 84 Downloads 2 File size 277KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

REPÚBLICA BOLIVARIANA DE VENZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSIDAD NACIONAL EXPERIMENTAL DE LA FUERZA ARMADA NACIONAL BOLIVARIANA NÚCLEO CHUAO CATEDRA: AUDITORIA DE SISTEMAS PROFESOR: VLADIMIR PEÑA

CALIDAD DE SOFTWARE

INTEGRANTE FELIX GAMBOA C.I.: 23.710.982

CARACAS, MARZO DE 2019

INTRODUCCIÓN En un mundo globalizado, en donde las organizaciones se ven enfrentadas a competencia de nivel mundial, la calidad se convierte en un importante punto diferenciador, además de aumentar la satisfacción general del cliente, disminuir costos y optimizar los recursos. Los productos o servicios que ostentan certificados de calidad son preferidos por los compradores porque trasmiten seguridad y confianza. Esto también constituye un atributo de valor para las estrategias de comercialización en el exterior. La industria del software, ha tenido que madurar rápidamente, tal como lo exigen los avances tecnológicos y su alta participación al interior de las empresas. Esta industria comparte con las demás industrias el interés por la calidad y la competitividad.

Definición de calidad de software La calidad es una herramienta básica para una propiedad inherente de cualquier cosa que permite que la misma sea comparada con cualquier otra de su misma especie. La palabra calidad tiene múltiples significados. De forma básica, se refiere al conjunto de propiedades inherentes a un objeto que le confieren capacidad para satisfacer necesidades implícitas o explícitas. Por otro lado, la calidad de un producto o servicio es la percepción que el cliente tiene del mismo, es una fijación mental del consumidor que asume conformidad con dicho producto o servicio y la capacidad del mismo para satisfacer sus necesidades. Evolución de la calidad de software La calidad en las empresas ha evolucionado, si lo analizamos desde los inicios de los procesos de industrialización a mediados del siglo XIX hasta cerca de 1940, la calidad se relacionaba con la inspección en los productos con el propósito de detectar errores, de ésta fecha hasta los años 80`s el control de calidad se convirtió en un ejercicio de control estadístico cuyo propósito era impedir que el producto defectuoso llegara al cliente y a partir de los 80`s se inician procesos de gestión de calidad total, que busca garantizar la calidad por medio de la planificación y la creación de modelos de calidad de forma permanente. Calidad de software Es la concordancia con los requerimientos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados y con las características implícitas que se esperan de todo software desarrollado profesionalmente.

Existen 3 puntos importantes de la definición de calidad de software: 1- Los requerimientos del software son los fundamentos desde los que se mide la calidad. 2- Los estándares específicos definen un conjunto de criterios de desarrollo que guían la forma de aplicación de la ingeniería de software. 3- Existen requerimientos implícitos que no se mencionan.

La definición de calidad está orientada a las facilidades que ofrece el software una vez esté terminado, éste debe contener las siguientes capacidades: • Fiabilidad: Capacidad de operar sin errores. • Modificable: Capacidad de hacer los cambios necesarios de una forma sencilla. • Comprensible: Capacidad de comprender el software operativo, de cara a un cambio o arreglo. • Rendimiento: Velocidad y compacidad del software. • Utilizable: Capacidad de uso sencillo del software. • Probable: Capacidad de construir y ejecutar fácilmente casos de prueba. • Portable: Capacidad de mover el software fácilmente de un entorno de trabajo a otro.

Un producto de alta calidad requiere menos mantenimiento y facilita tanto el desarrollo como el mantenimiento de la productividad. Con la medición de la calidad se pueden lograr estos objetivos. En lo que se refiere al mantenimiento, la medición de la calidad del software ayuda a identificar problemas de confiabilidad y a mejorar las técnicas para identificar las necesidades de mantenimiento.

Aplicación de la calidad en software En el desarrollo de software, el control de la calidad es realizado por el mismo desarrollador, que dispone de poco tiempo, cuando lo tiene. En otros casos, está ligado a las etapas del ciclo de vida del desarrollo del software o bajo un conjunto de rígidos patrones (listas de chequeo o check list en inglés) cuya revisión suele consumir

demasiado tiempo. La garantía de calidad se inicia con las acciones que se realizan durante la planificación como el conjunto de procedimientos, técnicas y herramientas durante el ciclo de vida, las actividades de auditoria tales como revisiones técnicas o inspecciones, optimizando los criterios de correctitud y completitud y las funciones de información de la gestión, más orientadas a la documentación y al desarrollo de pruebas. La calidad total depende de la calidad con la cual se lleve a cabo todo el proceso, las cinco etapas del ciclo de vida de un desarrollo de software (análisis, diseño, implementación, pruebas e implantación), y cada subproceso o fase o etapa del proyecto, adicionalmente, es indispensable contar con los siguientes componentes: claridad, involucración, planeamiento, estándares, entrenamiento, experiencia, controles, documentación, soporte y finalización. Es importante resaltar que en el proceso de mejora continua se realizan actividades técnicas (aplicación de la ingeniería del software), organizativas (aplicación de modelos de proceso o planes) y humanas (formación del personal y motivación). En la actualidad, la construcción de software presenta dificultades tales como insuficiencia en la especificación de requisitos, diseño poco profundo, mala gestión de la configuración, poca flexibilidad para la incorporación de cambios, prolongado tiempo de duración y aumento en los costos. Si bien es preciso aclarar que la demanda de software y la complejidad del producto en sí, parecen crecer a mayor velocidad que las metodologías, el personal capacitado y las herramientas para automatizar la producción. A pesar de la incorporación de herramientas CASE (del inglés Computer Assisted Software Engineering o Ingeniería de Software Asistido por Computadora), la producción de software continúa siendo una actividad con alta participación de recursos humanos, cien por cien intelectual y en cierto sentido, sin insumos ni materias primas. Es por ello que se hace necesaria la adopción de un estándar de calidad, basado en la experiencia de otras industrias con más tiempo de madurez, aunque basado en las características particulares del software como producto y como servicio.

Confiabilidad del software

La confiabilidad del software se encuentra en un etapa de formación de desarrollo y es la característica de rendimiento más costosa de conseguir y difícil de conseguir y de difícil de garantizar. La naturaleza del proyecto ayuda para la formulación de estimaciones de costo y el esfuerzo que asegure la confiabilidad requerida. Los modelos de confiabilidad del software se usan para caracterizar y predecir el comportamiento importante para directores e ingenieros. La generación de fallos depende del código desarrollado, tales como tamaño y las características del proceso de desarrollado tales como las tecnologías y herramientas de ingeniería de software usadas. La eliminación de fallos depende del tiempo y del perfil operativo. Los modelos de confiabilidad del software son generalmente procesos aleatorios. Estos modelos se pueden dividir en 2 grandes categorías:

1- modelos que predicen la confiabilidad como una función cronológica del tiempo. 2- modelos que predicen la confiabilidad como una función del tiempo de procesamiento transcurrido.

Control de Calidad

El costo de corregir y detectar errores producidos en las primeras fases de desarrollo de software es mayor a medida que nos encontramos más alejados de éstas. A causa de esto, la propuesta de control de calidad es empujar las tareas relacionadas con la calidad desde las primeras fases del proyecto. Esto permite encontrar los errores en forma temprana sin que se sigan propagando en las siguientes fases. Otro motivo para el control de calidad es que la prueba de software no puede garantizar que encuentre todos los errores. Los programadores profesionales pueden y deben

producir software el cual esté libre de errores desde el comienzo. Esto puede ser llevado a cabo a través del control de calidad.

La garantía de calidad de software engloba: 1- Métodos y herramientas de análisis, diseño, codificación y prueba. 2- Revisiones y técnicas formales que se aplican en cada fase de la ingeniería de software. 3- Una estrategia de prueba multi-escalada. 4- El control de la documentación del software y de los cambios efectuados. 5- Un procedimiento que asegure un ajuste a los estándares de desarrollo. 6- Mecanismos a medida y de información.

Revisiones de técnicas formales

Objetivos 1- Descubrir errores en la función, la lógica o la implementación del software 2- Verificar que el software bajo revisión alcanza sus requerimientos 3- Garantizar el uso de estándares predefinidos 4- Conseguir que el software se desarrolle de forma uniforme 5- Hacer que los proyectos sean más manejables

Directrices de la revisión 1- Revisar el producto no productor 2- Fijar agenda y mantenerla 3- Enunciar problemas no resueltos 4- Limitar el debate y las impugnaciones 5- Tomar notas 6- Limitar el número de participantes 7- Desarrollar una lista de comprobaciones para cada producto que pueda ser revisado 8- Disponer de recursos y planificación de tiempos

9- Entrenar los participantes 10- Reparar las revisiones anteriores

Planificación y estándares de la garantía de calidad de software

Tareas que se deben llevar a cabo en un plan de GCS: 1- Revisión del diseño del sistema 2- Revisión de requerimientos de software 3- Revisión del diseño preliminar 4- Revisión del diseño detallado (a nivel módulos) 5- Revisión del plan de prueba de integración 6- Revisión del código 7- Revisión de los procedimientos 8- Auditorías de los estándares de documentación 9- Auditorías del control de configuración 10- Auditorías de prueba 11- Recolección, evaluación y análisis de los datos de defectos 12- Certificación de herramientas 13- Mantenimiento de registros

Calidad de software ISO ISO 9000 ISO 9000 es un conjunto de normas sobre calidad y gestión de calidad, establecidas por la Organización Internacional de Normalización (ISO). Se pueden aplicar en cualquier tipo de organización o actividad orientada a la producción de bienes o servicios. Las normas recogen tanto el contenido mínimo como las guías y herramientas específicas de implantación como los métodos de auditoría.

ISO 9000 especifica la manera en que una organización opera sus estándares de calidad, tiempos de entrega y niveles de servicio. Existen más de 20 elementos en los estándares de esta ISO que se relacionan con la manera en que los sistemas operan. Ventajas Su implementación aunque supone un duro trabajo, ofrece numerosas ventajas para las empresas, como pueden ser:



Estandarizar las actividades del personal que trabaja dentro de la organización por medio de la documentación.



Incrementar la satisfacción del cliente al asegurar la calidad de productos y servicios de manera consistente, dada la estandarización de los procedimientos y actividades.



Medir y monitorizar el desempeño de los procesos.



Incrementar la eficacia y/o eficiencia de la organización en el logro de sus objetivos.



Mejorar continuamente en los procesos, productos, eficacia, entre otros.



Reducir las incidencias negativas de producción o prestación de servicios.



Mantener la calidad.

Desventajas 

Los esfuerzos y costos para preparar la documentación e implantación de los sistemas

ISO 9126 ISO 9126 es un estándar internacional para la evaluación de la calidad del software. Está reemplazado por el proyecto SQuaRE, ISO 25000:2005, el cual sigue los mismos conceptos.

El estándar está dividido en cuatro partes las cuales dirigen, realidad, métricas externas, métricas internas y calidad en las métricas de uso y expendido. El modelo de calidad establecido en la primera parte del estándar, ISO 9126-1, clasifica la calidad del software en un conjunto estructurado de características y sub características de la siguiente manera: •

Funcionalidad - Un conjunto de atributos que se relacionan con la existencia

de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen las necesidades implícitas o explícitas. •

Adecuación - Atributos del software relacionados con la presencia y aptitud de

un conjunto de funciones para tareas especificadas. •

Exactitud - Atributos del software relacionados con la disposición de resultados

o efectos correctos o acordados. •

Interoperabilidad - Atributos del software que se relacionan con su habilidad

para la interacción con sistemas especificados. •

Seguridad - Atributos del software relacionados con su habilidad para prevenir

acceso no autorizado ya sea accidental o deliberado, a programas y datos. •

Cumplimiento funcional.



Fiabilidad - Un conjunto de atributos relacionados con la capacidad del

software de mantener su nivel de prestación bajo condiciones establecidas durante un período establecido. •

Madurez - Atributos del software que se relacionan con la frecuencia de falla

por fallas en el software. •

Recuperabilidad - Atributos del software que se relacionan con la capacidad

para restablecer su nivel de desempeño y recuperar los datos directamente afectos en caso de falla y en el tiempo y esfuerzo relacionado para ello.



Tolerancia a fallos - Atributos del software que se relacionan con su habilidad

para mantener un nivel especificado de desempeño en casos de fallas de software o de una infracción a su interfaz especificada. •

Cumplimiento de Fiabilidad - La capacidad del producto software para

adherirse a normas, convenciones o legislación relacionadas con la fiabilidad. •

Usabilidad - Un conjunto de atributos relacionados con el esfuerzo necesario

para su uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios. •

Aprendizaje- Atributos del software que se relacionan al esfuerzo de los

usuarios para reconocer el concepto lógico y sus aplicaciones. •

Comprensión - Atributos del software que se relacionan al esfuerzo de los

usuarios para reconocer el concepto lógico y sus aplicaciones. •

Operatividad - Atributos del software que se relacionan con el esfuerzo de los

usuario para la operación y control del software. •

Atractividad



Eficiencia - Conjunto de atributos relacionados con la relación entre el nivel de

desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas. •

Comportamiento en el tiempo - Atributos del software que se relacionan con

los tiempos de respuesta y procesamiento y en las tasas de rendimientos en desempeñar su función. •

Comportamiento de recursos - Usar las cantidades y tipos de recursos

adecuados cuando el software lleva a cabo su función bajo condiciones determinadas. •

Mantenibilidad - Conjunto de atributos relacionados con la facilidad de

extender, modificar o corregir errores en un sistema software.



Estabilidad - Atributos del software relacionados con el riesgo de efectos

inesperados por modificaciones. •

Facilidad de análisis - Atributos del software relacionados con el esfuerzo

necesario para el diagnóstico de deficiencias o causas de fallos, o identificaciones de partes a modificar. •

Facilidad de cambio - Atributos del software relacionados con el esfuerzo

necesario para la modificación, corrección de falla, o cambio de ambiente. •

Facilidad de pruebas - Atributos del software relacionados con el esfuerzo

necesario para validar el software modificado. •

Portabilidad - Conjunto de atributos relacionados con la capacidad de un

sistema software para ser transferido desde una plataforma a otra. •

Capacidad de instalación - Atributos del software relacionados con el esfuerzo

necesario para instalar el software en un ambiente especificado. •

Capacidad de reemplazamiento - Atributos del software relacionados con la

oportunidad y esfuerzo de usar el software en lugar de otro software especificado en el ambiente de dicho software especificado. •

Calidad en uso - Conjunto de atributos relacionados con la aceptación por parte

del usuario final y Seguridad. •

Eficacia - Atributos relacionados con la eficacia del software cuando el usuario

final realiza los procesos. •

Productividad - Atributos relacionados con el rendimiento en las tareas

cotidiana realizadas por el usuario final. •

Seguridad - Atributos para medir los niveles de riesgo.



Satisfacción - Atributos relacionados con la satisfacción de uso del software.

ISO 25000 El objetivo general de la creación del estándar ISO/IEC 25000 SQuaRE (Software Product Quality Requirements and Evaluation) es organizar, enriquecer y unificar las series que cubren dos procesos principales: especificación de requisitos de calidad del software y evaluación de la calidad del software, soportada por el proceso de medición de calidad del software.

Las características de calidad y sus mediciones asociadas pueden ser útiles no solamente para evaluar el producto software sino también para definir los requerimientos de calidad.La serie ISO/IEC 25000:2005 reemplaza a dos estándares relacionados: ISO/IEC 9126 (Software Product Quality) e ISO/IEC 14598 (Software Product Evaluation). Divisiones 

ISO/IEC 2500n. División de gestión de calidad. Los estándares que forman esta división definen todos los modelos comunes, términos y referencias a los que se alude en las demás divisiones de SQuaRE.



ISO/IEC 2501n. División del modelo de calidad. El estándar que conforma esta división presenta un modelo de calidad detallado, incluyendo características para la calidad interna, externa y en uso.



ISO/IEC 2502n. División de mediciones de calidad. Los estándares pertenecientes a esta división incluyen un modelo de referencia de calidad del producto software, definiciones matemáticas de las métricas de calidad y una guía práctica para su aplicación. Presenta aplicaciones de métricas para la calidad de software interna, externa y en uso.



ISO/IEC 2503n. División de requisitos de calidad. Los estándares que forman parte de esta división ayudan a especificar los requisitos de calidad. Estos requisitos pueden ser usados en el proceso de especificación de requisitos de

calidad para un producto software que va a ser desarrollado ó como entrada para un proceso de evaluación. El proceso de definición de requisitos se guía por el establecido en la norma ISO/IEC 15288 (ISO, 2003). 

ISO/IEC 2504n. División de evaluación de la calidad. Estos estándares proporcionan requisitos, recomendaciones y guías para la evaluación de un producto software, tanto si la llevan a cabo evaluadores, como clientes o desarrolladores.



ISO/IEC 25050–25099. Estándares de extensión SQuaRE. Incluyen requisitos para la calidad de productos de software “Off-The-Self” y para el formato común de la industria (CIF) para informes de usabilidad.

Se han reservado los valores desde ISO/IEC 25050 hasta ISO/IEC 25099 para extensiones y "Technical Reports".

CONCLUSIÓN Un desarrollador que analice a la hora de realizar un excelente trabajo en el control de calidad del software debe de tener en cuenta una buena gestión de los proyectos, tener un buen control para mejorar los problemas que se estén presentando para el proceso y el desarrollo del sistema. También se debe de tener en cuenta los mecanismos, acciones, herramientas que realizamos y utilizamos para detectar la presencia de errores, y en esta medida se deben hacer inspecciones o pruebas para verificar que las características sean buenas y flexibles al momento de presentar estos proyectos al cliente que es el encargado en muchos casos de evaluar el producto final. La garantía de la calidad nos permite tener la certeza de algo que afecte el correcto funcionamiento del producto y aplicar los recursos necesarios para resolverlos; si en el momento hay un equipo de trabajo de desarrolladores se pueden generar propuestas de métodos y los mismos recursos que son resultado del análisis y estos complementan esa garantía tanto para el cliente como para el desarrollador; y hay que pensar en la contracara de una buena garantía que aparte de buscar errores es también observar la calidad con que se puede finalizar un sistema de software.