Subido por irisndaza

Guia Didactica estandares de calidad en el desarrollo de software

Anuncio
UNIDAD
2
Introducción a los Estándares de Calidad
Contenidos
2.1.-Introducción a los estándares de calidad.
2.2.-Formas y técnicas de documentar algoritmos y programas
Objetivos de Aprendizaje
Conocer los estándares de calidad para diseñar Algoritmos y Programas.
Objetivos Específicos
Al finalizar esta unidad, usted será capaz de:
1. Conocer los estándares de calidad en el desarrollo de
algoritmos y programas.
2. Aplicar técnicas para la documentación de algoritmos y
programas
Conocimientos Previos
Para poder dominar los contenidos presentes en la guía didáctica, es necesario
dominar los contenidos de la unidad 1 de esta unidad curricular Algorítmica y
Programación. Por lo que debe repasar los contenidos en los que se encuentra:
1. Para que sirve los algoritmos y programas.
2. Diferencia entre algoritmo y programa.
Ing. Iris Daza-2019
3. Dominar el desarrollo en sus diferentes formas y ejecución de algoritmos
Estrategias de Aprendizaje que se le sugiere
Al igual como se indicó en la guías didácticas anterior las estrategias de
aprendizaje son la forma en que debes aprenden aprender por ti
mismos. Para ello se recomienda:
1. Conducir a la comprensión de los contenidos de la asignatura a través de:
a) Estrategia:
1. Realizar lectura de estudio de la guía didáctica e investigación de los
temas antes de la clase.
2. Realizar actividades de tareas asignadas siguiendo las indicaciones
del docente.
b) Técnica
1. Revisar la planificación de clases, para identificar los contenidos que
darán en el próximo encuentro con el docente y las actividades
evaluativas.
2. Dedicar 5 horas de estudio e investigación semanal como mínimo.
3. Al realizar la lectura de las guías e investigación de los temas que el
docente abordara en la clase, debes hacer notas para exponer al
docente de aquello que a pesar de haber hecho varios intentos para
entender aún no lo logras.
4. Realizar actividades de tareas asignadas siguiendo las indicaciones
del docente. Estas actividades deben realizarse obligatoriamente.
2. Aplicar en el aula y en los estudio independiente
a) Estrategia
1. Concentrarse en comprender lo que está indicando el docente en la
clase.
2. Realizar lecturas repetitivas de los contenidos de esta unidad hasta
poder hablar con soltura de cada uno de los temas.
3. Realizar sin falta las actividades de tareas indicadas por el docente.
b) Técnica
1. En la lectura de los contenidos si es muy larga subrayar lo más
importante por cada párrafo, identificando la idea principal del
párrafo, la cual debes anotar para obtener un resumen.
2. En clase, anota en el cuaderno las ideas principales de lo que dice el
docente. Anota las dudas y al finalizar el docente, haz las
preguntas…no te quedes con una duda.
3. Observa al docente cuando repite algo…debes anotarlo porque debe
ser importante…y si tienes dudas al respecto, pregunta al docente
que tan importante es lo que está indicando.
4. Para realizar las actividades de tareas debes:
Ing. Iris Daza-2019
4.1. Leer el enunciado de la actividad e identificar el objetivo de la
misma, repetir hasta lograrlo o preguntar inmediatamente al
docente.
4.2. Seguir los pasos señalados por el docente en la clase para
llevar acabo la actividad.
Introducción
Todos los algoritmos y todos los tipos de software (algoritmos escritos en un
lenguaje de programación)) 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 (es una disciplina o área de la Informática que ofrece
métodos y técnicas para desarrollar y mantener software de calidad que resuelven
problemas de todo tipo) pretende utilizar los recursos computacionales
de tal
manera que se produzcan soluciones eficientes y eficaces a los problemas
informáticos para el éxito de un Proyecto.
Dada estas premisas es que se considera sumamente importante el desarrollo de
software con los controles apropiados de calidad
Desarrollo de los Contenidos
2.1.- 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
Ing. Iris Daza-2019
algunos, no lo es 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 ALGORITMO O PROGRAMAS
(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.
Los estándares definen un conjunto de criterios que guían la forma en que se
aplican procedimientos y metodologías al desarrollado de algoritmo o programas,
la certificación de calidad permite una valoración independiente de la organización,
donde se demuestra la capacidad de desarrollar productos y servicios de calidad.
Ing. Iris Daza-2019
El significado de la palabra calidad genera mucha confusión, quizás por la
multidimensionalidad del propio concepto.
Existen muchos organismos internacionales (IEEE, ISO entre otros) que regulan
los estándares y entre los que se encuentra los de calidad en el desarrollo de
software. Por lo anterior el glosario de estándares de computación IEEE Std. 610 –
1991, define la calidad del software como “el grado con el que un sistema
(software), componente o proceso cumple los requerimientos especificados y las
necesidades o expectativas del cliente o usuario”.
Cuando ya se pasa de desarrollo de algoritmos a programas (software) se
requiere cumplir con parámetros de calidad especificados en la siguiente imagen:
A continuación se presenta los organismos internacionales encargados de generar
estándares de calidad
ISO
La Organización Internacional para la Estandarización, mejor conocida como ISO, es
la agencia especializada en estandarización, conformada por representantes de los
Ing. Iris Daza-2019
cuerpos normalizadores, fue establecida oficialmente el 23 de febrero de 1947 con el
objeto de promover la estandarización internacional, de tal manera que se facilitara el
intercambio internacional de bienes y servicios casi como el desarrollo científico y
tecnológico. Actualmente abarca los estándares nacionales de 91 países. En los
Estados Unidos, la representación se llama The American National Standards Institute
(ANSI)
La norma ISO-12207 especifica algún estándar en el desarrollo de software como
sigue:
Estándar para los procesos de ciclo de vida del software de la organización, Este estándar
se concibió para aquellos interesados en adquisición de software, así como desarrolladores
y proveedores. El estándar indica una serie de procesos desde la recopilación de requisitos
hasta la culminación del software.
El estándar comprende 17 procesos lo cuales son agrupados en tres categorías:

Principales

De apoyo

De organización
Este estándar agrupa las actividades que se pueden llevar a cabo durante el ciclo de vida
del software en cinco procesos principales, ocho procesos de apoyo y cuatro procesos
organizativos.
Ing. Iris Daza-2019
La norma ISO-14598
El estándar ISO/IEC 14598 es actualmente usado como base metodológica
para la evaluación del producto software. En sus diferentes etapas, establece
un marco de trabajo para evaluar la calidad de los productos de software
proporcionando, además, métricas y requisitos para los procesos de
evaluación de los mismos.
La norma define las principales características del proceso de evaluación

Repetitividad.

Reproducibilidad.

Imparcialidad.

Objetividad.
Ing. Iris Daza-2019
Para estas características se describen las medidas concretas que participan:

Análisis de los requisitos de evaluación.

Evaluación de las especificaciones.

Evaluación del diseño y definición del plan de evaluación.

Ejecución del plan de evaluación.

Evaluación de la conclusión.
La Norma ISO/IEC 14598 define el proceso para evaluar un producto de
software, el mismo consta de seis partes:

ISO/IEC 14598-1 Visión General: provee una visión general de las otras
cinco partes y explica la relación entre la evaluación del producto
software y el modelo de calidad definido en la ISO/IEC 9126.

ISO/IEC 14598-2 Planeamiento y Gestión: contiene requisitos y guías
para las funciones de soporte tales como la planificación y gestión de la
evaluación del producto del software.

ISO/IEC 14598-3 Proceso para desenvolvedores: provee los requisitos
y guías para la evaluación del producto software cuando la evaluación
es llevada a cabo en paralelo con el desarrollo por parte del
desarrollador.

ISO/IEC 14598-4 Proceso para adquirientes: provee los requisitos y
guías para que la evaluación del producto software sea llevada a cabo
en función a los compradores que planean adquirir o reutilizar un
producto de software existente o pre-desarrollado.

ISO/IEC 14598-5 Proceso para avaladores: provee los requisitos y
guías para la evaluación del producto software cuando la evaluación es
llevada a cabo por evaluadores independientes.

ISO/IEC 14598-6 Documentación de Módulos: provee las guías para la
documentación del módulo de evaluación.
Ing. Iris Daza-2019
Los servicios relacionados con la evaluación de software de productos son
generalmente adaptados a las necesidades de los usuarios finales individuales
o proveedores, en función de por qué se pidió la evaluación. Los servicios de
evaluación de software incluyen:

Definición de perfiles de calidad de referencia de software

Evaluación de acuerdo con los modelos de calidad predefinidos

Certificación de la calidad del software de acuerdo a los modelos de
calidad y normas

Las comparaciones entre productos

La reingeniería del software

Servicio de Monitoreo de calidad del producto.
Ing. Iris Daza-2019
La norma ISO-25000
ISO 25000:2005 (SQuaRE -Software Quality Requirements and Evaluation) es una
nueva serie de normas que se basa en ISO 9126 y en ISO 14598 (Evaluación del
software). Uno de los principales objetivos de la serie SQuaRE es la coordinación y
harmonización del contenido de ISO 9126 y de ISO 15939:2002 (Measurement
Information Model). ISO 15939 tiene un modelo de información que ayuda a
determinar que se debe especificar durante la planificación, performance y evaluación
de la medición. Para su aplicación, cuenta con los siguientes pasos: Recopilar los
datos, Preparación de los datos y Análisis de los datos.
Su objetivo principal es guiar el desarrollo de los productos de software con la
especificación y evaluación de requisitos de calidad. Establece criterios para la
especificación de requisitos de calidad de productos software, sus métricas y su
evaluación. SQuaRE está formada por las divisiones siguientes:

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
Ing. Iris Daza-2019
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.
Al igual que la norma ISO/IEC 9126, este estándar define tres vistas diferenciadas en
el estudio de la calidad de un producto:

Vista interna: esta vista se ocupa de las propiedades del software como: el
tamaño, la complejidad o la conformidad con las normas de orientación a
objetos.

Vista externa: vista que analiza el comportamiento del software en producción y
estudia sus atributos, por ejemplo: el rendimiento de un software en una
máquina determinada, el uso de memoria de un programa o el tiempo de
Ing. Iris Daza-2019
funcionamiento entre fallos.

Vista en uso: mide la productividad y efectividad del usuario final al utilizar el
software.
La primera puede utilizarse desde las primeras fases del desarrollo, permitiendo
detectar deficiencias en el software en edades muy tempranas del ciclo de vida del
software.
La segunda, sin embargo, necesita que el producto software este completo y se
utilizará por tanto en el pase a producción del producto, siendo muy dependiente de la
máquina donde se ejecute.
Por último la tercera vista que también estudia el producto software finalizado será
dependiente del usuario y estará condicionada a los factores personales del mismo.
La norma ISO-9126
Ing. Iris Daza-2019
El estándar ISO 9126 ha sido desarrollado en un intento de identificar los atributos clave
de calidad para el software evalúa los productos de software, esta norma nos indica las
características de la calidad y los lineamientos para su uso, fue desarrollada para dar
soporte a aquellas necesidades; las características de calidad y sus métricas asociadas,
pueden ser útiles tanto como para evaluar el producto como para definir los requerimientos
de la calidad y otros usos. Esta norma definida por un marco conceptual basado en los
factores tales como Calidad del Proceso, Calidad del Producto del Software y Calidad en
Uso; según el marco conceptual, la calidad del producto, a su vez, contribuye a mejorar la
calidad en uso.
La norma ISO 9126 presentan dos modelos de calidad, el primero referido a la calidad
interna y externa y el segundo modelo referido a la calidad en uso. El estándar identifica 6
atributos clave de calidad que todo software debe tener:

Funcionalidad: el grado en que el software satisface las necesidades indicadas por
los siguientes subatributos: idoneidad, corrección, interoperatividad, conformidad y
seguridad.

Confiabilidad: cantidad de tiempo que el software está disponible para su uso. Está
referido por los siguientes subatributos: madurez, tolerancia a fallos y facilidad de
recuperación.

Usabilidad: grado en que el software es fácil de usar. Viene reflejado por los
siguientes subatributos: facilidad de comprensión, facilidad de aprendizaje y
operatividad.

Eficiencia: grado en que el software hace óptimo el uso de los recursos del sistema.
Está indicado por los siguientes subatributos: tiempo de uso y recursos utilizados.

Facilidad de mantenimiento: la facilidad con que una modificación puede ser
realizada. Está indicada por los siguientes subatributos: facilidad de análisis,
facilidad de cambio, estabilidad y facilidad de prueba.

Portabilidad: la facilidad con que el software puede ser llevado de un entorno a otro.
Está referido por los siguientes subatributos: facilidad de instalación, facilidad de
Ing. Iris Daza-2019
ajuste, facilidad de adaptación al cambio.
Aunque estas normas existen y deben ser usadas para poder desarrollar y
comercializar un software, por ahora se trabajara con los estándares básicos para
el desarrollo de un programa sin olvidar por supuesto estos últimos 6 atributos.
Estándares básicos y muy necesarios a la hora de desarrollar algoritmos y
programas
Ing. Iris Daza-2019
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 algoritmos y/o 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.
1. 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 ciclo) deberán ir
indentados. Si un bloque de pasos está anidado dentro de otro bloque de pasos, el
bloque más interno deberá ir indentado respecto al externo.
En la siguiente imagen podemos observar un ejemplo de Indentación.
Para entenderlo, mejor hagamos un ejemplo de cómo identificar en un programa
un bloque de código (pasos) indentado y uno no indentado: El siguiente código
escrito en lenguaje C muestra las tablas de multiplicar.
Ing. Iris Daza-2019
Sin indentación
Con indentación
1. Nombres a usar en los datos (variables y constantes)
Sobre todo cuando se realizan algoritmos cuantitativos, es necesario para los
datos sea de entradas, generados en el proceso o datos de salidas del
algoritmo o programas considerar que los nombres de los datos:
 No sean palabras reservadas (en el caso de programas)
 Que identifiquen al dato: ejemplo en el siguiente algoritmo el dato de
entrada es edad, no debe llamarse apellido, o 10…no son nombres
apropiados. Debe llamarse edad
inicio
1.- obtener la edad de la persona
2.- chequear si esta edad obtenida es mayor a 18
2.1.- si lo mostrar “la persona mayor de edad”
2.2. si no mostrar “la persona no es mayor de edad”
fin
2. Uso de mayúsculas y minúsculas
Para el nombre, se debe estipular la forma en que escribirá, esto es, si el
nombre será escrito todo en mayúscula, o la primera letra en mayúscula y el
Ing. Iris Daza-2019
resto en minúscula o si es en minúscula. Lo que se estipulo debe cumplirse en
la escritura de los algoritmos y/o programas.
2.2.- Formas y técnicas de documentar un algoritmo y programa
La Documentación
Un programa de computadora necesita siempre de una documentación que
permita a los usuarios aprender a utilizarlos y mantenerlo, la documentación del
programa se puede concretar a manual del usuario y manual de mantenimiento.
La documentación: Consiste en describir por escrito a nivel técnico los
procedimientos relacionados con el programa y su modo de uso. También se debe
Ing. Iris Daza-2019
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.
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é.
Ejemplo
inicio
1.- obtener la edad de la persona
// en este paso se solicita una edad
2.- chequear si esta edad obtenida es mayor a 18
2.1.- si lo mostrar “la persona mayor de edad”
2.2. si no mostrar “la persona no es mayor de edad”
fin
Ahora con respecto a un programa se debe realizar una documentación de dos
tipo: Interna e Externa
Ing. Iris Daza-2019
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, que se suele incluir en un manual de usuario,
manual de mantenimiento que compaña al programa. Esta documentación debe
incluir:
módulos que comprenden el programa.
ocesar.
mantener el programa.
¿PARA QUIÉNES ES LA DOCUMENTACIÓN?
Para:
1.-Usuarios (Digitadores)
Ing. Iris Daza-2019
2.-Operadores
3.- Programadores
4.- Analistas de sistemas
Reglas de documentación
Un programa bien documentado es aquel que otras personas pueden leer, usar y
modificar. Existe muchos tipos de documentación y con frecuencia los temas a
incluir dependen del programa. A continuación señalamos algunas características
esenciales de documentación de un programa.
Un comentario de cabecera para el programa que incluye:
 Descripción del programa.
 Autor y fecha.
 Descripción de la entrada y salida del programa.
 Descripción de cómo utilizar el programa.
 Hipótesis sobre tipos de datos esperados.
 Breve descripción de los algoritmos globales y estructurados de datos.
 Descripción de los datos más importantes.
Manual del usuario
La documentación de un programa suele producirse con dos propósitos, el primero
seria explicar las funciones del software y describir el modo de utilizarlas, estas
están diseñadas para ser leídas por el usuario del programa y la segunda describir
Ing. Iris Daza-2019
el software en si para poder mantener el sistema en una etapa posterior de su
ciclo de vida.
La documentación de usuario es un instrumento muy importante. Una buena
documentación de usuario hará al programa más accesible.
El manual de usuario debe contener los siguientes puntos.
 Ordenes necesarias para cargar el programa en memoria desde el
almacenamiento secundario y comenzar su funcionamiento.
 Nombres de los archivos externos a los que accede el programa.
 Formato de todos los mensajes de error o informes.
 Opciones en el funcionamiento del programa.
 Descripción detallada de la función realizada por el programa.
 Descripción detallada de cualquier salida producida por el programa.
Manual de mantenimiento
El manual de mantenimiento es la documentación requerida para mantener un
programa durante su ciclo de vida. Se divide en dos categorías, documentación
interna y documentación externa.
CONCLUSION
La forma de trazabilidad un buen algoritmo que asegura que tanto algoritmos
como programa resulten legibles y puedan modificarse fácilmente en caso de
necesidad.
La documentación de un algoritmo y programa necesita siempre de una
documentación que permita a los usuarios aprender a utilizarlos y mantenerlo, la
documentación del programa se puede concretar a manual del usuario y manual
de mantenimiento.
Ing. Iris Daza-2019
Ing. Iris Daza-2019
Descargar