Está en la página 1de 8

República Bolivariana de Venezuela

Ministerio del Poder Popular para la Educación Universitaria, Ciencia y Tecnología


UPTEB – PNF INFORMÁTICA
Sección M1 – TRAYECTO I
Unidad I

ESTANDARES DE CALIDAD EN EL DISEÑO DE


ALGORITMOS Y CONSTRUCCIÓN DE PROGRAMAS

Profesor: Bachilleres:

Luis Bastardo Sergio Garcia 26.569.392


Angela Gutierrez 27.577.786
Yanielys Rojas 27.956.548
Angel Navarro 28.140.810
Erika Sifontes 28.504.874
Aitor Martinez 29.630.286

Ciudad Bolívar 25/03/2019


Introducción de estándares de calidad
Calidad término utilizado que ha adquirido gran relevancia con el paso del tiempo,
considerada como uno de los principales activos con los que se cuenta un
desarrollador para mejorar su posición competitiva global.
Conseguir calidad en el software es esencial, de manera que se utilicen modelos y
métodos apropiados para controlar el proceso de desarrollo. Todo tipo de
Software, requiere que los analistas, diseñadores y desarrolladores apliquen
características y elementos de calidad para lograr productos que se adapten a las
necesidades de los usuarios, el uso eficiente y eficaz de los recursos informáticos
debe involucrar elementos que produzcan soluciones como la planeación, la
administración, y la utilización de métodos que permitan un software de calidad.
Mediante la planeación se determinan los recursos necesarios para el desarrollo
de un proyecto, la factibilidad del mismo y el tiempo estimado de desarrollo; a
través de la administración se controla, evalúa y corrige la dirección de acuerdo a
la contingencias y demás elementos que van presentándose durante su desarrollo
y mediante una metodología se busca lograr el acople de los participantes y la
garantía de una determinada calidad. Para evaluar un software en su calidad debe
ser eficaz, debe ser amigable, producir resultados confiables, realizar todas las
operaciones que se requieran ejecutar las operaciones en un tiempo aceptado, ser
amigable y de fácil uso por el grupo de usuarios a quien esté dirigido. Eficiente, en
el sentido que su costo en el desarrollo y uso obtengan el máximo beneficio o
condiciones aceptables en un tiempo establecido tanto para los desarrolladores
como las organizaciones involucradas, además de considerar otros aspectos
fundamentales como son: solidez, exactitud, completitud, mantenibilidad,
reutilizabilidad, claridad en la documentación entre otros. Las influencias sobre
estándares de calidad se basan sobre las ideas presentadas por Robert Dunn,
Philip
Crosby y Roger S. Pressman, referente a que la calidad del software se toma
desde dos puntos de vista: la calidad en el proceso de desarrollo y la calidad en el
producto final, agrupándose en los estándares de confiabilidad, utilizabilidad,
mantenibilidad y adaptabilidad según Pressman la calidad del 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 espera de todo software desarrollado
profesionalmente´
. A continuación se presentan los factores de calidad sobre las bases presentadas
por Robert Dunn, Philip Crosby y Roger S. Pressman:
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, estas dos últimas que se determinan con el sistema en
uso.
Usabilidad: Si bien es cierto que la confiabilidad es un factor muy importante en la
calidad del software también lo es el hecho de que es necesario considerar otros
factores como los que se mencionan en esta sección puesto que 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
-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. A
continuación se describen cada uno de los aspectos de calidad mencionados:
Calidad en los procesos de desarrollo. Se resume en la frase "bien planeado y
cuidadosamente ejecutado". Este aspecto asegura la confiabilidad, puesto que el
plan que se realice para desarrollar el sistema, debe incluir pruebas bien
seleccionadas que evalúen la confiabilidad del programa en cualquier situación.
Claridad y amigabilidad de la interfaz: De igual forma la interfaz debe ser clara y
agradable al usuario, las interfaces complejas son causa de la no utilización de los
sistemas de información.
Claridad y exactitud de la documentación: Hay que anotar que toda aplicación
requiere de una documentación suficientemente clara con el fin de que cualquier
persona con conocimientos básicos en computación pueda aprender la forma de
operación sin que requiera la asesoría de los desarrolladores o conocedores de la
herramienta, a menos que se trate de eventualidades donde realmente sea
necesario consultar al proveedor.
Completitud o adecuación: Se refiere a que los resultados de operaciones sean
acordes al comportamiento del mundo real desde todos los estados y condiciones
permitidos por la aplicación, es decir, el programa debe reflejar la realidad. Un
programa es inconsistente si presenta respuestas erróneas en algunos casos. Una
mala especificación de rangos en un dominio sobre los cuales realizan diferentes
operaciones matemáticas puede llevar a que algunos cálculos se realicen dentro
de límites inapropiados, obteniéndose resultado erróneo.
Otro caso de inconsistencia se presenta cuando ocurren eventos que paran
abruptamente la ejecución del programa, sólo un sistema de calidad podrá
conservar datos consistentes después de una falla.
Eficiencia y verificabilidad del software: Otro aspecto que no debe pasar por
alto es el de la verificabilidad, puesto que es imprescindible contar con los
requerimientos, y sobre todo en aquellos sistemas donde se obtengan resultados
que no sean visibles. De los procesos: Un programa no será utilizado por un
usuario si sus resultados no son exactos. Tampoco se puede garantizar el uso de
un programa que no presta las utilidades que el usuario requiere, es decir, que sea
incompleto. Además, un programa ineficiente que no cumpla con los
requerimientos de tiempo, memoria o flexibilidad no podrá satisfacer las
expectativas de quienes lo utilizan.
Robustez o solidez: Se refiere a la capacidad del software de defenderse de las
acciones anormales que llevan al sistema a un estado no deseado o por lo menos
no previsto, causando un comportamiento inesperado, indeseado y posiblemente
erróneo. El software de hoy, debe estar en capacidad de analizar los datos que
recibe para hacer cumplir requerimientos o condiciones del software y enfrentar de
la mejor manera los errores cometidos por un usuario al utilizar la aplicación. Es
importante resaltar, que la solidez no siempre es generada por la digitación
inapropiada del usuario, sino también por un mal procesamiento o un mal
encadenamiento de procesos. El resultado de un proceso, aunque sea correcto,
puede estar fuera de los límites permitidos en los parámetros del módulo que lo
recibe y si este módulo no controla los parámetros que le entran caerá en un
estado inesperado.
Seguridad y audibilidad: Son importantes, puesto que un usuario no puede
confiar en los datos de un sistema que no le ayude a controlar el acceso de
personas no autorizadas o a detectar errores de operación en los que se
introducen y generan datos erróneos.
Simplicidad: Promueve la utilización de estructuras de fácil manipulación con el
fin de evitar que el programador se aleje del problema que desea resolver.
Además, se reduce la probabilidad de cometer errores. Así que, no es aconsejable
hacer uso de estructuras complejas a menos que se necesite cumplir con
requerimientos de vital importancia tales como tiempos máximos de proceso u
otros similares.
Forma de Trazabilidad un Algoritmo
La traza de un Algoritmo se puede definir como la ejecución manual de forma
secuencial de las sentencias que lo componen. La función principal que posee
realizar la traza de un algoritmo es la de comprobar que éste funciona
correctamente o para realizar la etapa de depuración en la que se intenta corregir
errores, simplificar el algoritmo al máximo e incrementar su eficacia y velocidad.
Para la realización de un algoritmo se deben seguir los siguientes pasos:
1 Se debe escribir de arriba hacia abajo, de izquierda a derecha.
2 Siempre se utilizan flechas verticales y horizontales.
Cada paso expresa una acción concreta De igual manera se sigue una secuencia
en el flujo normal en su desarrollo:
1. Un inicio
2. Una lectura o entrada de datos.
3. Procesamiento de datos.
4. Una salida de información.
5. Un final.
Formas y Técnicas de Documentar Algoritmos y programas
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é. Porque entre lo que tiene que hacer un programa y cómo lo hace hay una
distancia impresionante: todas las horas que el programador ha dedicado a
pergeñar una solución y escribirla en el lenguaje que corresponda para que el
ordenador la ejecute ciegamente. Documentar un programa no es sólo un acto de
buen hacer del programador por aquello de dejar la obra rematada. Es además
una necesidad que sólo se aprecia en su debida magnitud cuando hay errores que
reparar o hay que extender el programa con nuevas capacidades o adaptarlo a un
nuevo escenario. Hay dos reglas que no se deben olvidar nunca: todos
1. Los programas tienen errores y descubrirlos sólo es cuestión de tiempo y de
que el programa tenga éxito y se utilice frecuentemente.
2. todos los programas sufren modificaciones a lo largo de su vida, al menos todos
aquellos que tienen éxito.
Por una u otra razón, todo programa que tenga éxito será modificado en el futuro,
bien por el programador original, bien por otro programador que le sustituya.
Pensando en esta revisión de código es por lo que es importante que el programa
se entienda: para poder repararlo y modificarlo. ¿Qué hay que documentar? Hay
que añadir explicaciones a todo lo que no es evidente. O hay que repetir lo que se
hace, sino explicar por qué se hace. El algoritmo trata de resolver problemas
mediante programas.
Fases:
-Análisis preliminar o evaluación del problema: Estudiar el problema en general y
ver que parte nos interesa.
-Definición o análisis del problema: Ver que es lo que entra y que es lo que sale,
las posibles condiciones o restricciones.
-Diseño del algoritmo: Diseñar la solución.
-El programa: Codificación del algoritmo en un lenguaje de programación.
-Ejecución del programa y las pruebas: Ver si el programa hace lo que queríamos.
Un algoritmo es una fórmula para resolver un problema. Es un conjunto de
acciones o secuencia de operaciones que ejecutadas en un determinado orden
resuelven el problema. Existen algoritmos, hay que coger el más efectivo.
Características:
-Tiene que ser preciso.
-Tiene que estar bien definido.
-Tiene que ser finito.
La programación es adaptar el algoritmo al ordenador. El algoritmo es
independiente según donde lo implemente.
RESOLUCIÓNDE PROBLEMAS: La resolución de un problema desde el punto de
vista algorítmico tiene 3 fases:
-Análisis del problema: Comprensión.
-Diseño del algoritmo: Resolución algorítmica.
-Resolución en computadora: Implantación del algoritmo en un lenguaje de
programación.
ANÁLISIS DEL PROBLEMA: El objetivo de ésta fase es comprender el problema
para lo cual como resultado tenemos que obtener la especificación de las entradas
y salidas del problema. Tiene que quedar claro que entra y que sale.
DISEÑO DEL ALGORITMO: Una vez comprendido el problema se trata de
determinar qué pasos o acciones tenemos que realizar para resolverlo.
Como criterios a seguir a la hora de dar la solución algorítmica hay que tener en
cuenta:
-Si el problema es bastante complicado lo mejor es dividirlo en partes más
pequeñas e intentar dividirlo en partes más pequeñas e intentar resolverlas por
separado. Esta metodología de ³divide y vencerás también se conoce con el
nombre de diseño descendente. Las ventajas de aplicar esto son:
-Al dividir el problema en módulos o partes se comprende más fácilmente.
-Al hacer modificaciones es más fácil sobre un módulo en particular que en todo el
algoritmo.
-En cuanto a los resultados, se probarán mucho mejor comprobando si cada
módulo da el resultado correcto que si intentamos probar de un golpe todo el
programa porque si se produce un error sabemos en qué módulo ha sido.
Una segunda filosofía a la hora de diseñar algoritmos es el refinamiento por pasos,
y es partir de una idea general e ir concretando cada vez más esa descripción
hasta que tengamos algo tan concreto para resolver. Pasamos delo más complejo
a lo más simple.

La representación de los algoritmos: Una vez que tenemos la solución hay que
implementarla con alguna representación. Las representaciones más usadas son
los flujo gramas, los diagramas NS y el pseudocódigo.
También la solución se puede escribir en algunos casos en lenguaje natural pero
no se hace porque es muy ambiguo, e incluso otras formas de expresión como
fórmulas matemáticas.
Escritura del algoritmo: Al escribir el algoritmo hay que tener en cuenta:
-Las acciones o pasos a realizar tienen que tener un determinado orden.
-En cada momento solo se puede ejecutar una acción.
-Dentro de las sentencias del algoritmo pueden existir palabras reservadas
palabras propias del lenguaje de programación que tienen para el compilador un
determinado significado.
-Si estamos utilizando pseudocódigo tenemos también que usar la identación
aumenta la legibilidad del problema para que se pueda leer mejor.
RESOLUCIÓN EN LA COMPUTADORA: Es hacer entender nuestro algoritmo a
la computadora para que lo pueda hacer.
Codificamos el algoritmo en un lenguaje de programación.
Ejecutar el programa antes compilado.
Y Comprobar los resultados y si no funciona, corregirlo.
FLUJOGRAMAS:
Es una notación gráfica para implementar algoritmos. Se basa en la utilización de
unos símbolos gráficos que denominamos cajas, en las que escribimos las
acciones que tiene que realizar el algoritmo. Las cajas están conectadas entre sí
por líneas y eso nos indica el orden en el que tenemos que ejecutar las acciones.
En todo algoritmo siempre habrá una caja de inicio y otra de fin, para el principio y
final del algoritmo. Son la representación gráfica de la solución algorítmica de un
problema. Para diseñarlos se utilizan determinados símbolos o figuras que
representan una acción dentro del procedimiento. Utilizan unos símbolos
normalizados, con los pasos del algoritmo escritos en el símbolo adecuado y los
símbolos unidos con flechas, denominadas líneas de flujo, que indican el orden en
que los pasos deben ser ejecutados.

También podría gustarte