ScholarGate
Asistente

Construcción y Calidad del Software

La construcción y la calidad del software se refieren a la creación disciplinada de código funcional y a las técnicas —pruebas, verificación, revisión y medición— que establecen y aseguran que el software cumple con sus requisitos y objetivos de calidad.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

La construcción de software es la creación detallada de software funcional mediante codificación, verificación, pruebas unitarias y depuración, y la calidad del software es el grado en que el software satisface sus requisitos declarados e implícitos, asegurado por actividades de verificación, validación y gestión de la calidad.

Scope

Esta área abarca las prácticas de construcción de software, incluyendo estándares de codificación, programación defensiva y pruebas unitarias; los niveles y técnicas de prueba de software; la verificación y validación; el análisis estático y dinámico; la revisión y refactorización de código; los atributos y métricas de calidad del software; y los métodos formales para probar la corrección. Unifica las actividades que producen y aseguran un software fiable.

Sub-topics

Core questions

  • ¿Qué prácticas producen código que es correcto, legible y mantenible?
  • ¿Cómo se detectan los defectos mediante pruebas, revisión y análisis?
  • ¿Cómo se define, mide y asegura la calidad del software?
  • ¿Cuándo se puede establecer la corrección mediante una prueba formal en lugar de solo pruebas?

Key theories

Las pruebas revelan la presencia, no la ausencia, de defectos
Las pruebas pueden demostrar que existen defectos, pero no pueden probar su ausencia; por lo tanto, las pruebas efectivas tienen como objetivo maximizar la probabilidad de encontrar fallas mediante la selección sistemática de casos en lugar de una ejecución exhaustiva.
Verificación y validación
La verificación comprueba que el software se construye correctamente con respecto a su especificación, mientras que la validación comprueba que se construyó el software adecuado para satisfacer las necesidades del usuario; juntas abarcan revisiones, análisis y pruebas a lo largo del ciclo de vida.
La calidad se incorpora, no se prueba
La calidad es el resultado de las prácticas de construcción, el diseño y la disciplina del proceso, más que de la inspección al final; la prevención de defectos y la detección temprana son mucho más económicas que la corrección tardía.

Clinical relevance

Las actividades de construcción y calidad determinan la fiabilidad, seguridad y mantenibilidad de un sistema y dominan el costo de los defectos; la verificación temprana y sistemática reduce las fallas en el campo y el retrabajo, lo cual es fundamental para entregar software fiable.

Evidence & guidelines

ISO/IEC 25010 define un modelo de calidad de producto de software, y las áreas de conocimiento SWEBOK sobre Construcción de Software, Pruebas y Calidad proporcionan una guía de referencia consensuada.

History

Las pruebas sistemáticas fueron articuladas por Myers en la década de 1970, la programación estructurada y la verificación por Dijkstra y Hoare en la misma época, y la artesanía de la construcción por McConnell en la década de 1990; los modelos y estándares de calidad como ISO/IEC 25010 consolidaron los atributos y la medición de la calidad.

Debates

Pruebas versus verificación formal
Se debate si la confianza en la corrección debe basarse en pruebas exhaustivas o en pruebas formales; las pruebas se escalan a sistemas grandes pero no pueden garantizar la corrección, mientras que los métodos formales ofrecen fuertes garantías a un costo más alto y se reservan para componentes críticos.

Key figures

  • Glenford Myers
  • Steve McConnell
  • C. A. R. Hoare
  • Edsger Dijkstra

Related topics

Seminal works

  • myers2011
  • mcconnell2004
  • swebok2014

Frequently asked questions

¿Pueden las pruebas demostrar que un programa es correcto?
No. Las pruebas ejercitan un conjunto finito de entradas y pueden revelar defectos, pero no pueden demostrar su ausencia; probar la corrección para todas las entradas requiere verificación formal, lo cual es factible solo para partes restringidas o críticas de un sistema.
¿Es la calidad lo mismo que la ausencia de errores?
No. La calidad del software es multidimensional, abarcando la corrección funcional más atributos como la fiabilidad, el rendimiento, la seguridad, la usabilidad y la mantenibilidad; un programa con pocos errores aún puede ser de mala calidad si no es mantenible o es inseguro.

Methods for this concept

Related concepts