SlideShare una empresa de Scribd logo
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)
ALGORITMICAY PROGRAMACION
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
Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
3
de los clientes busca calidad al mejor precio, sin embargo, lo que puede ser “excelente” para
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 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.
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
Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
5
• Claridad y exactitud de la documentación
• 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
Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
6
Factor 3. Adaptabilidad, relacionado con la transición del producto.
 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
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.
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.
Sin indentación Con indentación
Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
9
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.
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)
Algorítmica y Programación Unidad 2. Estándares de Calidad en el Diseño
y Construcción de Programas
Ing. Sullin Santaella
10
 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.
¿PARA QUIÉNES ES LA DOCUMENTACIÓN?
Usuarios (Digitadores)
Operadores
Programadores
Analistas de sistemas

Más contenido relacionado

PDF
Guía 2. Estandares de Calidad de Software - Sullin Santaella
PPTX
Como se mide la Calidad de software
PDF
Unidad 1_calidad del software
PDF
Seminario de t...
DOCX
Metricas y factores de mc call
PPTX
Control de Calidad del Software
PPT
PROCESOS DE CALIDAD DE SOFTWARE
DOCX
Cuadro comparativo sobre los modelos de calidad lobo
Guía 2. Estandares de Calidad de Software - Sullin Santaella
Como se mide la Calidad de software
Unidad 1_calidad del software
Seminario de t...
Metricas y factores de mc call
Control de Calidad del Software
PROCESOS DE CALIDAD DE SOFTWARE
Cuadro comparativo sobre los modelos de calidad lobo

La actualidad más candente (18)

PDF
Guia tecnica para evaluación de software
PDF
Metricas de calidad de software
PPTX
Calidad de software
PPT
Metodologias Rup Xp
 
PPSX
Equipo 4. Ingeniería de Requerimientos
DOCX
Metricas McCall
PPTX
Unidad # 10 calidad del software
PPTX
Calidad del software
PDF
Ensayo modelo de mccall
PDF
Metricas de software
PPTX
La Calidad de Software
PPTX
Ingenieria en software
PDF
Metricasutfv
PPTX
Unidad 5. calidad del software
PDF
Calidad del Software en Proyectos Open Source
PPT
LA INGENIERÍA DE SOFTWARE Y RUP
PDF
Modelo espiral de boehm CALIDAD DE SOFTWARE
PPTX
Proceso y diseño de un software
Guia tecnica para evaluación de software
Metricas de calidad de software
Calidad de software
Metodologias Rup Xp
 
Equipo 4. Ingeniería de Requerimientos
Metricas McCall
Unidad # 10 calidad del software
Calidad del software
Ensayo modelo de mccall
Metricas de software
La Calidad de Software
Ingenieria en software
Metricasutfv
Unidad 5. calidad del software
Calidad del Software en Proyectos Open Source
LA INGENIERÍA DE SOFTWARE Y RUP
Modelo espiral de boehm CALIDAD DE SOFTWARE
Proceso y diseño de un software
Publicidad

Similar a 331161221 santaella u2-estandaresenedisenodealgoritmos (20)

PPTX
Calidad
DOCX
La calidad del producto y la calidad del proceso
PPTX
Unidad1_EMDS.pptx
PDF
14.administración de la calidad
PPTX
Calidad del software
PDF
Presentacion minimalista aesthetic simple beige.pdf
PPTX
calidad en desarrollo de software y sus atributos
PPT
Presentación ETICOM Universidad Sevilla Marzo 2011
PPTX
CALIDAD DE SOFTWARE
DOCX
Calidad del software
PPTX
Conceptos de calidad
PPTX
conceptos de calidad
PPTX
Calidaddelsoftware
PPTX
Calidad de software
PPTX
Unidad # 10 calidad del software
PPTX
S1-introducción a la calidad software.pptx
PPT
Temas Unidad 2
PPTX
Proceso y diseño de un software
PPTX
Proceso y diseño de un software
PPTX
Proceso y diseño de un software
Calidad
La calidad del producto y la calidad del proceso
Unidad1_EMDS.pptx
14.administración de la calidad
Calidad del software
Presentacion minimalista aesthetic simple beige.pdf
calidad en desarrollo de software y sus atributos
Presentación ETICOM Universidad Sevilla Marzo 2011
CALIDAD DE SOFTWARE
Calidad del software
Conceptos de calidad
conceptos de calidad
Calidaddelsoftware
Calidad de software
Unidad # 10 calidad del software
S1-introducción a la calidad software.pptx
Temas Unidad 2
Proceso y diseño de un software
Proceso y diseño de un software
Proceso y diseño de un software
Publicidad

Más de Sol Hernández (20)

PDF
Linea de tiempo sol loyo12
DOCX
Linea de tiempo sol loyo
DOCX
Ejerreueltos de c
PDF
Guia programacion modular
PDF
Santaella u6 programacionmodular (1)
PDF
Lenguaje c sintaxis
PDF
331985319 santaella u5-lenguajedeprogramacionc
PDF
Replanificacion de entregables proyecto ii fase 1 2021
PDF
Lineamientos academicos pstii pnfi 2021
PDF
Plan evaluacion 1-2021reprogramada
PDF
Santaella u5 ejerciciosestructurasdecontrol
PDF
Guia didactica programacion estructurada unidad 4
PDF
Lineamientos academicos pstii pnfi 2021
PDF
Planificacion de entregables proyecto ii fase 1 2021
PDF
Plan evaluacion 1-2021ultimo2.docx
PDF
Informe pstii 2020 (1)
PDF
Planificacion de entregables proyecto ii fase 1
PDF
Clase de metodologia para analisis y planteamiento de problemas
PDF
Clase de datos variables constantes
PDF
Plan evaluacion 1-2021ultimo
Linea de tiempo sol loyo12
Linea de tiempo sol loyo
Ejerreueltos de c
Guia programacion modular
Santaella u6 programacionmodular (1)
Lenguaje c sintaxis
331985319 santaella u5-lenguajedeprogramacionc
Replanificacion de entregables proyecto ii fase 1 2021
Lineamientos academicos pstii pnfi 2021
Plan evaluacion 1-2021reprogramada
Santaella u5 ejerciciosestructurasdecontrol
Guia didactica programacion estructurada unidad 4
Lineamientos academicos pstii pnfi 2021
Planificacion de entregables proyecto ii fase 1 2021
Plan evaluacion 1-2021ultimo2.docx
Informe pstii 2020 (1)
Planificacion de entregables proyecto ii fase 1
Clase de metodologia para analisis y planteamiento de problemas
Clase de datos variables constantes
Plan evaluacion 1-2021ultimo

Último (20)

PPTX
Guía Esencial para Empleadores - Cumplimiento con el IESS
PDF
Habilidades de comunicación en la era digital (planeación)
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PPTX
Presentación: Cumplimiento del Empleador
PDF
Lección 6 Escuela Sab. A través del mar rojo.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
Actividad 1 (Habilidades sociales en la era digital)
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PDF
ciencias-1.pdf libro cuarto basico niños
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Guía Esencial para Empleadores - Cumplimiento con el IESS
Habilidades de comunicación en la era digital (planeación)
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
Presentación: Cumplimiento del Empleador
Lección 6 Escuela Sab. A través del mar rojo.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Punto Critico - Brian Tracy Ccesa007.pdf
Actividad 1 (Habilidades sociales en la era digital)
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
ciencias-1.pdf libro cuarto basico niños
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf

331161221 santaella u2-estandaresenedisenodealgoritmos

  • 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) ALGORITMICAY 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
  • 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 de los clientes busca calidad al mejor precio, sin embargo, lo que puede ser “excelente” para 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 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
  • 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 • Claridad y exactitud de la documentación • 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
  • 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 Factor 3. Adaptabilidad, relacionado con la transición del producto.  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. Sin indentación Con indentación
  • 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 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. 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)
  • 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  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. ¿PARA QUIÉNES ES LA DOCUMENTACIÓN? Usuarios (Digitadores) Operadores Programadores Analistas de sistemas