Saltar al contenido

Pseudocódigo y Diagrama de Flujo: ¿Qué son y para qué se usan?

agosto 12, 2021

Cuando nos encontramos con la tarea de resolver un problema complejo y definir pasos específicos para su futura solución por ser una tarea recurrente, la primer herramienta que debemos considerar es el pseudocódigo y diagramas de flujo. Esta herramientas nos permiten explicar a cualquier persona el funcionamiento de un futuro código que resolverá el problema específico.

En este artículo les hablaré un poco sobre estas herramientas y la importancia de su implementación en proyectos serios de desarrollo de software (o cualquier otro proceso que incluyo la sucesión de pasos). Sin duda, el uso de pseudocódigo nos ayuda en muchas maneras a entender la solución de un problema que puede resultar muy complejo de explicar.

Para facilitar el entendimiento vamos a hablar de forma separada del pseudocódigo y del diagrama de flujo, quizá requeriría dos artículos diferentes para explicar cada uno, así que si consideran que es necesario profundizar más en cualquiera de estos temas no duden en pedirlo en los comentarios y con gusto tomaré mi teclado y me pondré manos a la obra.

Algunos temas importantes (principios básicos de programación)

Existen algunos detalles que solo se pueden entender completamente si tienes principios de programación estructurada. Cosas como los conceptos de variables, ciclos, funciones, que tenemos de definir para que esto quede del todo claro.

Variables: Se le llama variable a un espacio en memoria que puede ser modificado y que contiene un valor que nos será útil en un futuro para realizar un procedimiento específico. Existe un concepto muy similar llamado «constante» que es básicamente lo mismo, con la diferencia que el valor no puede cambiar.

var number = 5;
var name = "Walter Suazo";

Condicionales: Está es una estructura en programación que evalúa una igualdad, una desigualdad o un objeto literal. Consiste en resolver lo que se está avaluando y en caso de dar una respuesta positiva ejecuta lo que está inmediatamente después, en caso de resultar algo falso no ejecuta lo que está a continuación sino que ejecuta otra instrucción previamente definida por el programador.

if (1>2) {
 	 // Se ejecuta
} else {
    // no se ejecuta
}



if (2>1){
  // no se ejecuta
} else {
  //si se ejecuta 
}

Ciclos: En programación cuando hablamos de ciclos nos referimos a funciones o procedimientos que se ejecutarán N cantidad de veces de forma automática. Esto facilita mucho el manejo de grandes cantidades de información y hace que el computadores se encargue de los procedimientos largos y complejos.

for (i=0, i != 10, i++) {
   // este ciclo se ejecutará 11 veces
  // lo que se defina aquí dentro se ejecutará las 11 veces
}

Hay varias maneras de configurar un ciclo, while, do while, for, foreach, map, filter, etc. Pero todas estas formas cumplen con una misma función, recorrer un arreglo de datos para realizar una tarea que nosotros definamos. Todos son útiles y es tarea del programador definir cuando usar uno u otro.

Funciones: Las funciones son bloques de código individuales y reutilizables que se comportan como microprogramas que pueden o no recibir parámetros, realizan un procedimiento y pueden o no retornar un valor al programa que lo llamó. Este tipo de estructuras son indispensables en la programación orientada a objetos.

// Aquí se define la función que recibe un parámetro name
const funcSayHello = ( name: string ) => {
   console.log(`Hola ${name}, espero tengas buen día`);
}



// aquí se llama la función y se manda el parámetro.
funcSayHello("Walter Suazo");

Sabiendo estos conceptos ya podemos empezar a hablar sobre lo que compete al artículo. ¿Listos? Comencemos.

Pseudocódigo

El pseudocódigo es un código falso, literalmente ese es el significado de la palabra. Pero que sea falso no significa que no sea útil, por el contrario, es una herramienta prácticamente imprecindible en artiquitecturas de software complejas. Cuando hacemos software a nivel personal es muy difícil ver la utilidad (pero si existe) del pseudocódigo, pero cuando trabajamos con más de 3 personas escribiendo código sobre los mismos módulos de un software mucho más grande, se vuelve muy útil crear pseudocódigo y compartirlo con los demás antes de ponerse a escribir código real. Lo mismo pasa con las pruebas unitarias, pero esa es harina de otro costal (hablaremos de eso en otro artículo, pronto, pronto, no desesperen, como dijo Jack el Destripador: «vamos por partes.»).

La sintaxis (la forma de escribirlo) es en lenguaje natural con estructura de lenguaje de programación. El pseducódigo no debe incluir código de programación que la maquina podría entender, si lo hace, ya no es pseudocódigo. El lenguaje de programación es para explicarle a la máquina lo que queremos que haga, el pseudocódigo es para explicárselo a personas.

Un ejemplo de pseudocódigo

Como puedes ver en la imagen anterior, es muy fácil entender lo que el programa representado en el pseudocódigo hace, basta con leerlo. Es un lenguaje completamente comprensible para cualquier persona que hable español y también es claro que cada instrucción puede convertirse a cualquier lenguaje de programación para hacer que una computadora haga el proceso.

Claro que hay algunas «normas» que debemos tener en cuenta para que nuestro pseudocódigo sea respetable, normas que suelen considerarse buenas prácticas para que todos nos entendamos y seamos lo más homogéneo posible en relación con el resto de programadores. Algunas de estas normas son:

  • Lo que sea texto siempre se pone entre comillas, los número NO.
  • Hacer referencia a estructuras de datos o procesos.
  • Nombrar variables y especificar valores permitidos a esas variables.
  • Poner en negrita las acciones o el punto de inicio de un proceso importante.
  • Iniciar el programa con la palabra: Inicio.
  • Finalizar el programa con la palabra: Fin.

Diagramas de flujo

Creo que es importante mencionarlo para explicar de una forma gráfica el pseudocódigo. Resulta importante utilizar diagramas de flujo especialmente cuando representamos condicionales y ciclos en programación. Veamos un ejemplo:

Ejemplo diagrama de flujo

En la imagen anterior estamos representando dos de las estructuras más importantes en programación. Las condicionales y los ciclos. Si sigues las direcciones de las flechas pueden entender cuando el ciclo se repite, esto va a depender de la condición. Si aprendió lo estudiado el programa finaliza, si aun no lo ha aprendido vuelve a estudiarlo hasta que la condición diga que si lo aprendió.

¿Cuándo usar cada herramienta?

Este tipo de herramientas se usa al momento de realizar el análisis y diseño del sistema, pero no termina ahí, si se quiere realizar un software de alta calidad, lo recomendable es usar el este tipo de herramientas dentro de funciones específicas y en la documentación para que queden claros los procesos. Por ejemplo, existe un pseudocódigo general de todo el sistema, pero también existe un pseudocódigo y un diagrama de flujo específicamente del módulo que se encarga de realizar los pagos o suscripciones, etc.

Las empresas le dan el valor necesario a este tipo de cosas y el arquitecto de software y diseñador asignado al proyecto es quien se va a dedicar en gran medida a esta función, pero no significa que solo ellos puedan usarlos, todo programador debería hacer sus propios pseudocódigos y diagramas para ayudar el entendimiento de cada línea de código.

Si quieres practicar el uso de todos estos conceptos, existe un miniprograma muy bueno que nos ayuda a realizar de forma fácil diagramas de flujo con pseudocódigo, el programa se llama PFD y puedes descargarlo y usarlo gratis. El ingeniero Walter Suazo de la Universidad Tecnológica de Honduras (UTH) utiliza este software para impartir su clase de Análisis y Algoritmos y personalmente creo que es muy útil para aprender los conceptos básicos que te permitirán convertirte en un gran programador.

Espero que este artículo te haya gustado, pero sobretodo espero que te haya servido. si tienes alguna duda puedes dejarla en los comentarios y con gusto contestaré en el menor tiempo posible. Un abrazo y hasta la próxima.

José Oveniel Galdámez Ramos

Estudiante de Ingeniería en Sistemas (UTH)