Calidad En El Software Por Roy Corella
corellasanchez5 de Noviembre de 2013
3.731 Palabras (15 Páginas)213 Visitas
INTRODUCCIÓN
La calidad se puede definir genéricamente como a un conjunto de características que permiten establecer un juicio de valor sobre un objeto o servicio, y que permitirá hacer comparaciones entre distintas variedades de dicho producto o servicio (Marín, 2013). Al hablar de emitir un juicio, se entiende que existe un espectador externo que observa y califica, y que de acuerdo a lo que percibe sobre un bien se formará un criterio positivo o negativo.
A partir de la idea anterior, se entiende un punto clave de la calidad: le otorga un valor agregado a un producto. Se puede observar este comportamiento cuando que las personas realizan cualquier compra, buscan una relación calidad – precio que no sólo sea conveniente con sus finanzas, sino que también sea una inversión que garantice durabilidad y confianza. Un producto famoso por su calidad será más escogido y más recomendado que uno con mala o ninguna calidad.
Sin embargo, una percepción de este tipo sobre la calidad está sometida a subjetividades, que a la larga resultan ser inconvenientes: la falta de conocimiento y de experiencia puede llevar a malas decisiones que resulten en una inversión poco fiable o en un fracaso. Al aplicar el concepto de calidad en el software, se multiplican las variables, como que el costo de los sistemas que suele rondar los miles o los millones, la percepción que los usuarios finales tengan sobre la funcionalidad del sistema, la seguridad del software y los datos, la portabilidad, la configuración, las redes e interoperabilidad y una lista que no hace más que crecer a medida que las tendencias y la tecnología crecen.
El presente trabajo dará una visión general sobre el concepto de calidad aplicado sobre el software, además de que dará detalles sobre dos modelos para normalizar la producción de software. Finalmente, se enfocará en los conceptos de Calidad del producto y Calidad del proceso, para dar una visión general en su aplicación al desarrollo de sistemas.
CALIDAD EN EL SOFTWARE
El concepto de calidad viene a definir un patrón que une distintos puntos de vista: especificaciones (diseño de producto), funcionalidad (expectativa de producto), precio (conformidad al mercado), soporte y servicios (procesos relacionados), ambiente psicológico (criticidad del consumidor). Es decir, la calidad involucra más de una sola cualidad sobre la percepción de un producto o servicio, incluso, Deming resumió estos puntos en tres grandes áreas: gente, proceso, sistemas (Department of Trade and Industry, 2005).
Al ser el desarrollo de software un proceso en sí mismo, necesita la aplicación de métricas de calidad que garanticen cada uno de los aspectos sociales, de proceso y sistémicos de la misma. Es decir, debe poseer una estructura normalizada que prevea las interacciones entre los miembros del equipo de desarrollo, los procesos para el control de la calidad del software, y los sistemas involucrados en las labores. A partir de esta aproximación, se desarrolla un Plan de Gestión de la Calidad, ya que no sólo se trata de las actividades específicas ni de las herramientas, sino de todos los procedimientos que los involucrados en la calidad deben seguir.
Además, la calidad en el desarrollo de software enfatiza tres principales aspectos (Chappell, 2011):
- Calidad funcional: Cuando el software ejecuta correctamente las tareas para las cuales fue diseñado. Esto involucra requerimientos, control de defectos, desempeño y facilidad de uso.
- Calidad estructural: Se refiere a la estructura interna del código del software. Siendo difícil de probar, los atributos de este “tipo de calidad” involucra la organización del código, el mantenimiento, el entendimiento, la eficiencia y la seguridad.
- Calidad de procesos: Esta parte involucra el correcto planeamiento de un sistema de calidad, que permite entregas a tiempo, dentro del presupuesto estimado y que además sea un proceso estable, fiable y repetible.
EVOLUCIÓN HISTÓRICA DE LA CALIDAD DE SOFTWARE
La calidad de software es un concepto que tiene más de cincuenta años de ser concebido como parte esencial del proceso de ingeniería de sistemas. Sin embargo, apenas en las últimas dos décadas se han incrementado los esfuerzos por normar los procesos y alcanzar consenso entre los desarrolladores, esto motivado por el crecimiento exponencial de los proyectos de software y la complejidad de los sistemas.
En la Tabla 1 se muestra un resumen con las principales características e hitos de cada época
Tabla 1. Resumen de la evolución de la calidad
Época Lenguajes Tecnologías Modelos Usos
1950-1960 Ensamblador
Fortran
LISP
COBOL UNIVAC, tarjetas perforadas, tubos al vacío, 1MB de almacenamiento PDCA
Contratos individuales Censos, guerra, NASA, Misil ATLAS
1960-1970 BASIC
C IBM 1620, transistor NATO (definición del rol de SQA)
Independent verification and Validation, Censos, NASA
1970-1980 PASCAL
C Circuitos integrados, procesadores 75MHz, teclado, ratón, disco de 3.5 pulgadas, computadoras personales IEEE 730
McCall
Boëhm Censos, aplicaciones comerciales, gobiernos, universidades, NASA
1980-1990 C++
PERL
ADA GUI, LSI, expansión de la PC, WWW, portátiles Murine & Carpenter Ejército, primeras redes, aplicaciones comerciales, NASA
1990-2000 HTML, Python
RUBY
Java
PHP
Javascript
Visual Basic Windows 3.1, crecimiento de Linux, Internet e ISP, PDA, Guilles LOQUM
ISO 9126
ISO 9000
ISO/IEC 12207 Internet, aplicaciones comerciales, bases de datos a gran escala, estudios espaciales
2000-Presente SCALA
C#
Familia .Net Computación cuántica, equipos ultra portátiles, teléfonos inteligentes ISO 20001
ISO 27000
ISO 25000 Movilidad, granjas de datos, minería, estudios científicos y comerciales, estudio de fenómenos atómicos y espaciales, predicciones, redes sociales
Referencias: (Chapman, 2010) (DuPaul, 2013) (Montecino, 2010)
COMPARATIVA ENTRE MCCALL E ISO 20001
El modelo de McCall se originó en 1977 a pedido del Departamento de Defensa de los Estados Unidos, para el control de los sistemas orientados a la milicia de este país (Blekinge Engineering Software Qualities, 2004). Consta de 11 factores divididos en 11 criterios de calidad.
El Estándar ISO 20001 nació en el 2005, como adopción al estándar BSI 15000. En su última versión de abril de 2011 incorpora nueve factores distribuidos en 22 factores (IT Process Maps, 2013).
En la Tabla 2 se muestra una comparativa con los elementos que posee cada uno de estos modelos de calidad.
Tabla 2. Comparación entre los modelos McCall e ISO 20001
Factor Calidad de Software Modelo McCall Modelo Calidad Interna y Externa ISO 20001
Fiabilidad X X
Corrección X
Eficiencia X
Integridad X X
Usabilidad X
Mantenimiento X X
Pruebas X
Flexibilidad X
Portabilidad X X
Reusabilidad X
Interoperabilidad X
Planeamiento X
Requerimientos X
Documentación X
Recursos y procesos X
Presupuestos X
Distribuidores X
Relaciones de negocio X
Gestión de configuración y cambio X
Gestión de incidentes X
¿CUÁL MODELO ES MÁS COMPLETO?
Como se pudo ver en el cuadro comparativo, hay diferencias que a primera vista parecen ser irreconciliables entre los modelos, ya que McCall se centra más en los procesos de producción del software y el ISO se enfoca en la administración de los procesos de desarrollo.
Si se tomara el punto de vista de una empresa o un proyecto pequeño, la definición fuertemente establecida de los procesos no parece ser una característica prioritaria, ya que el enfoque residiría más en el desarrollo de un producto de calidad y que cumpla rápidamente los objetivos del usuario. Unos pocos artefactos que definan los pasos a seguir y unos lineamientos claros bastarían para un proyecto de software de pequeñas dimensiones. De hecho, enfocando el contexto histórico de McCall, se puede observar que este modelo estaba respondiendo a una necesidad de la época: hardware y software altamente incompatible, sistemas lentos y heterogéneos, una sociedad que apenas veía los beneficios de la computación y un país que no le había prestado mucha atención a los avances en calidad desde la post guerra (THE DEMING INSTITUTE, 2013). Por lo tanto, lo importante era desarrollar software que cumpliera con las expectativas, que fuera comprensible y fácil de mantener, más desde un punto de vista técnico que administrativo.
En el caso de la norma ISO 20001, se ideó en el año 2005, luego de analizar las propuestas de la BSI (British Standards Institution), en un mundo en donde la tecnología ya era parte fundamental de la vida de las personas. Si bien ya existían normas como la serie 9000 y la 27000, aún no se contaba un cuerpo formal que normalizara la administración de los procesos de software como tales, y este era un espacio que llenaban otros sistemas como ITIL o CMMi (IT Process Maps, 2013). La norma ISO no viene a establecer un método extensivo sobre el desarrollo del producto, que ya existen otras normas y metodologías para ello, sino que norma el proceso administrativo de la creación del software, elemento de suma importancia cuando se desarrolla un proyecto grande y complejo: si no se planifica ni se administra bien, es posible que caiga en el fracaso (Laudon & Laudon, 2008).
Por estos motivos, decidir cuál sistema
...