Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
1. Calidad de Software
1.1 Calidad de software
1.2 Problema de la calidad de software
1.3 Medida de la calidad de software
1.4 Factores, Criterios y Métricas de la Calidad
1.5 Estrategia de la calidad de software
1.6 Arquitectura de Software y calidad
Para nosotros:
La calidad del software es el conjunto de cualidades que lo caracterizan
y que determinan su utilidad y existencia. La calidad es sinónimo de
eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad,
portabilidad, usabilidad, seguridad e integridad. La calidad del software
es medible y varía de un sistema a otro o de un programa a otro. Un
software elaborado para el control de naves espaciales debe ser
confiable al nivel de "cero fallas"; un software hecho para ejecutarse una
sola vez no requiere el mismo nivel de calidad; mientras que un
producto de software para ser explotado durante un largo período (10
años o más), necesita ser confiable, mantenible y flexible para disminuir
los costos de mantenimiento y perfeccionamiento durante el tiempo de
explotación.
La calidad del software puede medirse después de elaborado el
producto. Pero esto puede resultar muy costoso si se detectan
problemas deriva dos de imperfecciones en el diseño, por lo que es
imprescindible tener en cuenta tanto la obtención de la calidad como su
control durante todas las etapas del ciclo de vida del software.
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.
1CaracterísticasOperacionales
Corrección Es el grado en que un programa satisface sus
especificaciones y consigue los objetivos pedidos por el cliente. Este
factor tiene una pregunta asociada: ¿Hace lo que quiero?
Métricas
Métricas de Calidad
Es difícil desarrollar medidas directas de los anteriores factores de
calidad. Por eso, se definen un conjunto de métricas para cada uno de
los factores de calidad. Generalmente estas métricas definidas por
MacCall solo pueden ser medidas en forma subjetiva.
Las métricas pueden estar listas de comprobaciones para obtener el
grado de los atributos específicos del software. El esquema de
graduación propuesto por McCall va en una escala de 0 (bajo) a 10
(alto). En este esquema se usan las siguientes métricas:
Facilidad de Auditoría La facilidad con que se puede comprobar la
conformidad con los estándares
Exactitud La precisión de los cálculos y el control
Normalización de las Comunicaciones El grado en que se usan el
ancho de banda, los protocolos y las interfaces estándar
Completitud El grado en que se ha conseguido la total implementación
de las funciones requeridas
Concisión Lo compacto que es el programa en términos de líneas de
código
Consistencia El uso de un diseño uniforme de técnicas de
documentación a los largo del proyecto de desarrollo de software
Estandarización en los datos El uso de estructuras de datos de tipos
estándar a lo largo de todo el programa
Tolerancia de Errores El daño que se produce cuando el programa
encuentra un error
Eficiencia en la Ejecución El rendimiento en tiempo de ejecución de
un programa
Facilidad de expansión El grado en que se puede ampliar el diseño
arquitectónico de datos o procedural
Generalidad La amplitud de aplicación potencial de los componentes del
programa
Independencia del Hardware El grado en que el software es
independiente del hardware en que opera
Instrumentación El grado en que el programa muestra su propio
funcionamiento e identifica errores que aparecen
Modularidad La independencia funcional de los componentes del
programa
Facilidad de Operación La facilidad de operación de un programa
Seguridad La disponibilidad de mecanismos que controlen o protejan
los programas o datos
AutoDocumentación El grado en que el código fuente proporciona
documentación significativa
Acaso alguien pensaba hace unas décadas atrás en que Malasia sería
hoy el principal productor mundial de chips de informática, o que Corea
del Sur entraría en los mercados occidentales en materia automotriz.
Pues bien estos son sólo unos pocos ejemplos de los cambios que están
teniendo lugar. Los países y las empresas carentes de estrategias están
destinadas a ver cada día más lejos un nivel óptimo de crecimiento y
desarrollo. No es lo mismo ser propietario o empleado de una empresa
en la cual no se sabe qué día se abonarán los sueldos, ni si se podrán
cubrir las deudas bancarias, o en la que los obreros no saben si
continuarán empleados en los próximos meses, que aquellos que
formando parte de empresas de primera línea planifican como ingresar
en nuevos mercados, analizan su participación, diseñan nuevos
productos y servicios, sus marcas son sinónimo de calidad y excelencia a
nivel mundial, o como mínimo regional o nacional.
No es lo mismo ser parte de empresas que con el paso de los años no
registran cambio alguno, y si lo han registrado es de manera negativa,
que estar involucrados en organizaciones que mejoran día tras día,
brindando mejores productos y servicios a los consumidores, y haciendo
participes a sus propietarios, directivos y empleados de niveles de vida
más ricos no sólo en materia económica, sino además en crecimiento y
desarrollo personal. Tampoco es lo mismo para un cliente probar suerte
con los productos y servicios que una organización le brinda, que
adquirir bienes y servicios de empresas confiables, que otorgan alto
valor a los niveles de satisfacción, ofreciendo cada día una más variada
gama de productos y servicios.
Nada de ello es producto de la casualidad. Las cosas ocurren porque se
planifica y realizan acciones concretas para su obtención, o sea hay una
causalidad. Es muy fácil hablar de planificación, organización, dirección y
control. Pero otra muy distinta es llevarlo a la práctica y mejorarlos de
manera continua.
Es la hora en que los clientes se preguntan qué empresa vale la pena
realmente contratar para sus servicios, es también el momento en que
los trabajadores se preguntan si vale la pena dejar parte de sus vidas y
proyectos personales en empresas que no le permiten ningún
crecimiento personal ni económico. Es el momento en que los
consumidores piensan si deben seguir adquiriendo productos de escaso
valor, mala calidad, precio elevado y un servicio al cliente atroz.
Es el momento en el cual los líderes deberán hacerse cargo de sus
responsabilidades implantando una estrategia que permita dar vida a la
excelencia. La excelencia sólo se obtiene con la ética del trabajo, la
disciplina de la mejora continua y un cambio de paradigmas que permita
hacer de la empresa y el trabajo una base para la creatividad y
expansión humana, y no meramente una máquina de triturar recursos y
proyectos
Arquitectura Software.
Una Arquitectura Software, también denominada Arquitectura lógica,
consiste en un conjunto de patrones y abstracciones coherentes que
proporcionan el marco de referencia necesario para guiar la construcción
del software para un sistema de información.
La arquitectura software establece los fundamentos para que analistas,
diseñadores, programadores, etc. trabajen en una línea común que
permita alcanzar los objetivos y necesidades del sistema de información.
Una arquitectura software se selecciona y diseña con base en unos
objetivos y restricciones. Los objetivos son aquellos prefijados para el
sistema de información, pero no solamente los de tipo funcional,
también otros objetivos como la mantenibilidad, auditabilidad,
flexibilidad e interacción con otros sistemas de información. Las
restricciones son aquellas limitaciones derivadas de las tecnologías
disponibles para implementar sistemas de información. Unas
arquitecturas son más recomendables de implementar con ciertas
tecnologías mientras que otras tecnologías no son aptas para
determinadas arquitecturas. Por ejemplo, no es viable emplear una
arquitectura software de tres capas para implementar sistemas en
tiempo real.
La arquitectura software define, de manera abstracta, los componentes
que llevan a cabo alguna tarea de computación, sus interfaces y la
comunicación ente ellos. Toda arquitectura software debe ser
implementable en una arquitectura física, que consiste simplemente en
determinar qué computadora tendrá asignada cada tarea de
computación.
La arquitectura de software, tiene que ver con el diseño y la
implementación de estructuras de software de alto nivel. Es el resultado
de ensamblar un cierto número de elementos arquitectónicos de forma
adecuada para satisfacer la mayor funcionalidad y requerimientos de
desempeño de un sistema, así como requerimientos no funcionales,
como la confiabilidad, escalabilidad, portabilidad, y disponibilidad