Guía 2. Estandares de Calidad de Software - Sullin Santaella
1. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
PROGRAMA NACIONAL DE FORMACIÓN EN
INFORMATICA (PNFI)
ALGORITMICA Y PROGRAMACION
2. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
2
UNIDAD CURRICULAR: ALGORITMICA Y PROGRAMACION
Introducción a los estándares de Calidad
Puntos a tratar
• Introducción.
• Introducción a los estándares de calidad
• Calidad en la ingeniería del software.
• Aspectos básicos de calidad de software.
• Importancia del Análisis y Diseño
1. Introducción.
Todos los tipos de software a ser desarrollados requieren un control de calidad. Actualmente,
hay muchos programadores pero no todos desarrollan sus programas con calidad, a este tipo de
productos se les llama software basura, algunos ni cuentan con un respaldo del programador, o
simplemente no tiene un soporte de calidad que se adapte al usuario. Por eso se presentan dos de
los más valiosos controles de calidad, como son la eficiencia y la eficacia.
La ingeniería del software pretende utilizar los recursos computacionales de tal manera que
se produzcan soluciones eficientes y eficaces a los problemas informáticos, el éxito de un proyecto.
En el caso de Construcción de un programa o el desarrollo de software es un proceso por el
cual, dado un problema, se encuentra un programa (o un conjunto de programas) que lo resuelva
eficientemente.
2. Introducción a los estándares de calidad
En algunos momento se definió a la Calidad como lo que se hace bien y a la primera,
concepto erróneo ya que, no se puede determinar la calidad de un servicio, producto o proceso
tomando en cuenta solo el aspecto de desarrollo, olvidando por completo al proceso de depuración
que, inherentemente, involucra una serie de corrección de errores, por lo que, la definición de
calidad está más allá de la observación de una parte de dicho proceso. La mayoría de los clientes
busca calidad al mejor precio, sin embargo, lo que puede ser “excelente” para algunos, no lo es
3. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
3
para otros. Cuando un individuo adquiere un producto o servicio, lo hace para satisfacer una
necesidad, pero siempre espera que la “nueva adquisición” funcione como lo esperado, o al menos
como se lo prometieron en el anuncio publicitario. Muchas veces la calidad se paga, justificando
de esta forma el dicho de que “lo barato sale caro”.
El significado de calidad puede adquirir múltiples interpretaciones, ya que todo dependerá
del nivel de satisfacción o conformidad del cliente. Sin embargo, la calidad es el resultado de un
esfuerzo arduo, se trabaja de forma eficaz para poder satisfacer el deseo del consumidor.
Dependiendo de la forma en que un producto o servicio sea aceptado o rechazado por los clientes,
podremos decir si éste es bueno o malo.
Muchas veces, el nivel de calidad se mide de acuerdo a la reacción y preferencias del cliente.
Desde el mismo momento en que éste llega al establecimiento comercial, sabe exactamente qué
va a comprar y dónde ubicarlo, va directo al lugar donde se encuentra el producto de su preferencia.
En ocasiones, no encontrará lo que está buscando y por tanto se decidirá por otro producto de
mayor o menor precio, sin embargo, cuando su nivel de preferencia se afinca en una determinada
marca, el cliente prefiere seguir buscando en otros establecimientos en vez de resolverse con un
producto sustitutivo.
Sin importar cualquiera que sea el tipo, todo el software a ser desarrollado requiere que los
analistas, diseñadores y desarrolladores apliquen características y elementos de calidad para que
se logren productos a las necesidades del usuario.
3. Calidad en la ingeniería del software.
En una versión sucinta la calidad en la ingeniería del software es un grupo de características
que representa la efectividad y la eficiencia de un sistema de información. Es importante enfatizar
en dos puntos:
• Un software de calidad debe ser eficaz, es decir, que debe realizar las funciones establecidas,
debe ser amigable. Un usuario debe utilizar el software porque produce resultados confiables,
realiza todas las operaciones que se requieren, ejecuta las operaciones en un tiempo aceptado y es
fácilmente usado por el grupo de usuarios a quien esté dirigido.
4. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
4
• Un software de calidad debe ser eficiente, es decir el costo de su desarrollo tomando todos
los recursos y el costo de su operación debe ser tal que las organizaciones involucradas en su
desarrollo y uso obtengan el máximo beneficio o por lo menos un beneficio aceptable en un período
de tiempo establecido.
Para ilustrar el concepto de calidad de manera más profunda, es necesario considerar algunos
aspectos fundamentales que caracterizan al software de calidad como son: solidez, exactitud,
completitud, mantenibilidad, reutilizabilidad, claridad en la documentación, entre otros que serán
descritos a continuación.
4. Aspectos básicos de calidad de software.
La descripción que se hace de los factores que influyen en un software de calidad se basa
principalmente en las ideas presentadas por Robert Dunn, Philip Crosby y Roger S. Pressman. Sin
embargo, también se han tomado algunos aportes de Bertrand Meyer y Mauricio Fernando Alba.
Robert Dunn presenta la calidad en el software tomando dos puntos de vista: la calidad en el
proceso de desarrollo y la calidad en el producto final, estos dos grupos principales los agrupa en
los siguiente aspectos de calidad: confiabilidad, utilizabilidad, mantenibilidad, y adaptabilidad.
Confiabilidad. Este término es necesario sea separado en varios elementos que permiten darle al
software el matiz de fiable. Sus componentes son:
• Completitud
• Consistencia y precisión
• Solidez
• Simplicidad
• Calidad en los procesos de desarrollo
• Seguridad y Verificabilidad.
Usabilidad. Si bien es cierto, de nada sirve un software que funcione correcta y confiablemente si
el usuario prefiere no utilizarlo.
• Exactitud de los procesos
• Claridad y exactitud de la documentación
5. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
5
• Completitud
• Eficiencia y verificabilidad del software
• Claridad y amigabilidad de la interfaz.
Mantenibilidad. Este aspecto de calidad involucra los elementos que simplifican la labor de
prevención, corrección o ampliación del código del programa. Retomar un código escrito meses
antes es un trabajo dispendioso y agobiante, en especial cuando las aplicaciones no cuentan con la
característica a la cual aquí se hace referencia. Se pueden considerar como atributos de este
aspecto:
• Exactitud y claridad en la documentación
• Modularidad acoplamiento
• Facilidad de lectura
• Simplicidad.
Portabilidad. Es la capacidad que posee un sistema de información que le permite funcionar en
diferentes plataformas ya sean hardware o de software.
Roger Pressman describe similares factores de calidad agrupados en tres grupos: calidad en
operación, calidad en revisión y calidad en transición, mencionando los factores de calidad de
McCall.
Factor 1. Características operativas, relacionadas con las operaciones del producto.
Corrección
Fiabilidad
Eficiencia
Integridad
Facilidad de uso
Factor 2. Capacidad de soportar cambios, relacionado con la revisión del producto.
Facilidad de mantenimiento
Flexibilidad
Facilidad de prueba
Factor 3. Adaptabilidad, relacionado con la transición del producto.
6. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
6
Portabilidad
Reusabilidad - Reutilizabilidad
Interoperabilidad
5. Importancia del Análisis y Diseño
El análisis y diseño, como elementos esenciales del proceso de desarrollo, obligan a tener
especial atención y por tal motivo se han ido creando metodologías que sirven de base para tomar
las decisiones que afectarán el producto final. Con el advenimiento de la disciplina de la ingeniería
del software se inicia el proceso de desarrollo de metodologías las primeras de ellas fueron las
estructuradas, y en forma posterior aparecen las metodologías orientadas a objetos, siendo estas
últimas las más difundidas actualmente en el medio.
CON ANÁLISIS Y DISEÑO SIN ANÁLISIS Y DISEÑO
ANÁLISIS Y DISEÑO
IMPLEMENTACIÓN
PRUEBA
MANTENIMIENTO
PRUEBA
MANTENIMIENTO
IMPLEMENTACION
7. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
7
UNIDAD CURRICULAR: ALGORITMICA Y PROGRAMACION
Formas y Técnicas de documentar algoritmos
Puntos a tratar
• Estandarización de los Programas
• Indentación
• Estructura General del Programa
• Documentación del Programa
1. Estandarización de los Programas
A diferencia de la sintaxis del lenguaje de programación, que son reglas fijas que
obligatoriamente hay que seguir, un estilo de programación está constituido por directrices que
ayudan a obtener programas más legibles. Es por esto que, si bien no existen estilos de
programación absolutamente correctos o incorrectos, es aconsejable la adopción, de una manera
sistemática, de un conjunto de normas para la escritura de programas. Por ello, se proponen aquí
algunas normas relativas a la denominación de los elementos de los programas y de la
estructuración de los mismos.
2. Indentación
Indentación es un anglicismo, (de la palabra inglesa indentation), de uso común en
informática y significa mover un bloque de texto hacia la derecha insertando espacios o tabuladores
para separarlo del texto adyacente, lo que en el ámbito de la imprenta se ha denominado siempre
como sangrado o sangría.
Se debe utilizar un único modelo de indentación a lo largo de todo el programa. Los bloque
de código (por ejemplo, dentro de un bucle o el cuerpo de una función) deberán ir indentados. Si
un bloque de código está anidado dentro de otro bloque de código, el bloque más interno deberá ir
indentado respecto al externo.
8. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
8
En la siguiente imagen podemos observar un ejemplo de Indentación.
Para entenderlo, mejor hagamos un ejemplo de cómo identificar un bloque
de código indentado y uno no indentado:
El siguiente código escrito en lenguaje C muestra en pantalla las tablas de multiplicar.
9. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
9
Sin indentación Con indentación
3. Estructura General del Programa
Cada una de las partes del programa comenzará en la primera columna, indentando, se
separará cada una de las partes o bloques del programa con una línea en blanco. Así mismo, se
recomienda dejar un espacio en blanco antes de cada punto y coma (;) utilizado para finalizar las
sentencias de un programa.
Por otra parte, las formas y técnicas de documentar un algoritmo y un programa, son
comentarios, etiquetas de texto, que facilitan la comprensión del programa
4. Documentación del Programa
Consiste en describir por escrito a nivel técnico los procedimientos relacionados con el
programa y su modo de uso. También se debe documentar el programa para que sea más
entendible. Es fundamental para diseñadores y usuarios.
En pseudocódigo solo se documentarán los algoritmos internamente, esto es, se efectuarán
comentarios de ciertas acciones o grupos de acciones para permitir al diseñador o al equipo del
diseño releer el algoritmo con facilidad. Para documentar internamente un algoritmo en
pseudocódigo se empleará la doble barra (//) y a continuación el texto o la frase explicativa. Al
ejecutar el algoritmo, esté texto a la derecha de la // debe ser ignorado, pues no constituye a una
acción algorítmica.
10. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
10
Documentar el código de un programa es añadir suficiente información como para explicar
lo que hace, punto por punto, de forma que no sólo los ordenadores sepan qué hacer, sino que
además los humanos entiendan qué están haciendo y por qué.
Documentación interna
Esta documentación cubre los aspectos del programa relativos a la sintaxis de lenguaje. Esta
documentación está contenida en los comentarios entre llaves, paréntesis o asteriscos. Algunos
temas a considerar son:
Cabecera de programa (breve descripción del programa)
Nombres significativos para describir identificadores.
Comentarios relativos a la función del programa.
Claridad de estilo y formato, líneas en blanco para separar módulos.
Comentarios significativos.
Documentación externa
Documentación ajena al programa fuente, que se suele incluir en un manual que acompaña
al programa. Esta documentación debe incluir:
Listado actual del programa fuente.
Especificación del programa.
Diagrama de estructura que representa la organización jerárquica de los módulos que
comprenden el programa.
Explicaciones de fórmulas complejas.
Especificación de los datos a procesar.
Formatos de pantallas utilizados para interactuar con los usuarios.
Cualquier indicación especial que pueda servir a los programadores que deben mantener el
programa.
11. Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
11
¿PARA QUIÉNES ES LA DOCUMENTACIÓN?
Usuarios (Digitadores)
Operadores
Programadores
Analistas de sistemas