2. ¿CÓMO IDENTIFICAR UN PROBLEMA?
No podemos llegar a la solución satisfactoria de un
problema si no hacemos primero el esfuerzo por
conocer razonablemente dicho problema. El punto de
partida para solucionar un problema es identificarlo
adecuadamente.
Un problema no es la ausencia de una solución y por
tanto su definición no debe hacerse anotando la falta
de algo, sino las manifestaciones negativas de un
estado.
Generalmente los problemas se hacen evidentes por
sus expresiones o manifestaciones externas, por la
forma como afectan a una comunidad. Un problema se
refiere a una situación que denota inconveniencia,
insatisfacción, o un hecho negativo.
3. ¿QUÉ ES UN PROBLEMA?
La determinación del problema es una operación mediante la cual se especifica
claramente y de un modo concreto sobre qué se va a realizar la investigación. Es el
punto inicial de la cadena: Problema- Investigación- Solución; por tanto,
determinará toda la posterior proyección de la investigación se debe tener en
cuenta:
El problema, responde al ¨ POR QUE¨, de la Investigación lo podemos definir como
la situación propia de un objeto, que provoca una necesidad en un sujeto, el cual
desarrollará una actividad para transformar la situación mencionada.
El problema es objetivo en tanto es una situación presente en el objeto; pero es
subjetivo, pues para que exista el problema, la situación tiene que generar una
necesidad en el sujeto.
Cualquier problema científico es consecuencia del desconocimiento de la
existencia, en una esfera de la realidad, de elementos y relaciones de dicha
realidad objetiva. El planteamiento del problema científico es la expresión de los
límites del conocimiento científico actual que genera la insatisfacción de la
necesidad del sujeto.
4. ANALISIS DE LOS PROBLEMAS
Se sugiere la elaboración del Árbol de Problemas, para cada problema
detectado en la Fase anterior.
Descripción del Problema: ¿Cómo se manifiesta el problema? Las
manifestaciones constituyen los hechos visibles y cuantificables que permiten
constatar o corroborar la existencia del problema. Éstas surgen al responder la
pregunta ¿Cuáles son los hechos que permiten verificar la existencia del
problema?
Causas: Se explica el origen del problema. Para ello conviene responder a la
siguiente pregunta: ¿Cuáles son los hechos, situaciones o factores que
producen los resultados insatisfactorios que denominamos manifestaciones? El
número de causas varía de un problema a otro, lo importante es que las
causas sean las suficientes y necesarias para explicar el problema.
Consecuencias: Los hechos o situaciones que describen el impacto que genera el problema sobre
otros problemas, se les denomina consecuencias. La identificación de las consecuencias de un
problema, permite ratificar o validar la importancia del mismo.
Involucrados: Se describen las personas afectadas por el problema y en algunos casos los causantes
del mismo.
5. Cuando un usuario plantea a un programador un problema que resolver
mediante su ordenador, por lo general ese usuario tendrá conocimientos más
o menos amplios sobre el dominio del problema, pero no es habitual que
tenga conocimientos de informática. Por ejemplo, un contable que necesita un
programa para llevar la contabilidad de una empresa será un experto en
contabilidad (dominio del problema), pero no tiene por qué ser experto
en programación.
Del mismo modo, el informático que va a resolver un determinado problema
puede ser un experto programador, pero en principio no tiene por qué
conocer el dominio del problema; siguiendo el ejemplo anterior, el informático
que hace un programa no tiene por qué ser un experto en contabilidad.
Por ello, al abordar un problema que se quiere resolver mediante un
ordenador, el programador necesita de la experiencia del experto del dominio
para entender el problema. Al final, si se quiere llegar a una solución
satisfactoria es necesario que:
El problema esté bien definido con el máximo detalle
Las especificaciones de las entradas y salidas del problema, deben ser
descritas también en detalle:
› ¿Qué datos son necesarios para resolver el problema?
› ¿Qué información debe proporcionar la resolución del problema?
6. Un algoritmo consiste en una especificación clara y concisa de los
pasos necesarios para resolver un determinado problema, pero para
poder diseñar algoritmos es necesario disponer de una notación, que
llamaremos ‘notación algorítmica’, que permita:
Describir las operaciones puestas en juego (acciones, instrucciones,
comandos,...)
Describir los objetos manipulados por el algoritmo
(datos/informaciones)
Controlar la realización de las acciones descritas, indicando la forma
en que estas se organizan en el tiempo
Para poder describir cualquier tipo de acción de las que intervienen
en un algoritmo, diversos autores proponen el uso de un conjunto de
construcciones lógicas (secuencia, decisión e iteración) con las que es
posible escribir cualquier programa. Lo que sigue a continuación es la
descripción de las diferentes construcciones disponibles para el
diseño de algoritmos.
7. Los diagramas de flujo son una manera de representar visualmente el flujo de
datos a travéz de sistemas de tratamiento de información. Los diagramas de
flujo describen que operaciónes y en que secuencia se requieren para
solucionar un problema dado.
Un diagrama de flujo u organigrama es una representación diagramática que
ilustra la secuencia de las operaciones que se realizarán para conseguir la
solución de un problema. Los diagramas de flujo se dibujan generalmente
antes de comenzar a programar el código frente a la computadora. Los
diagramas de flujo facilitan la comunicación entre los programadores y la
gente del negocio. Estos diagramas de flujo desempeñan un papel vital en la
programación de un problema y facilitan la comprensión de
problemas complicados y sobre todo muy largos. Una vez que se dibuja el
diagrama de flujo, llega a ser fácil escribír el programa en cualquier idióma de
alto nivel. Vemos a menudo cómo los diagramas de flujo nos dan ventaja al
momento de explicar el programa a otros. Por lo tanto, está correcto decir
que un diagrama de flujo es una necesidad para la documentación mejor de
un programa complejo.
8. Los Diagramas de flujo se dibujan generalmente
usando algunos símbolos estándares; sin
embargo, algunos símbolos especiales pueden
también ser desarrollados cuando séan
requeridos. Algunos símbolos estándares, que se
requieren con frecuencia para diagramar
programas de computadora se muestran a
continuación:
9. Inicio o fin
del
programa
Pasos, procesos o líneas de
instruccion de programa de
computo
Operaciones de entrada y
salida
Toma de desiciónes y Ramificación
10. Conector para unir el flujo a otra
parte del diagrama
Conector de pagina
Líneas de flujo
Display, para mostrar datos
Envía datos a la impresora
11. Muchas veces, en los libros de texto y publicaciones científicas
relacionadas con la informática y la computación numérica, se utilizan
pseudocódigo en la descripción de algoritmos, de manera que todos
los programadores puedan entenderlo, aunque no todos conozcan el
mismo lenguaje de programación. Generalmente, en los libros de
texto, hay una explicación que acompaña la introducción que explica
las convenciones particulares en uso. El nivel de detalle del
pseudocódigo puede, en algunos casos, acercarse a la de formalizar
los idiomas de propósito general.
Un programador que tiene que aplicar un algoritmo específico, sobre
todo uno des familiarizado, generalmente comienza con una
descripción en pseudocódigo, y luego "traduce" esa descripción en el
lenguaje de programación meta y lo modifica para que interactúe
correctamente con el resto del programa. Los programadores
también pueden iniciar un proyecto describiendo la forma del código
en pseudocódigo en el papel antes de escribirlo en su lenguaje de
programación.
12. La prueba de escritorio es
una herramienta útil para
entender que hace un
determinado algoritmo, o para
verificar que un algoritmo
cumple con la especificación sin
necesidad de ejecutarlo.
Básicamente, una prueba de
escritorio es una ejecución ‘a
mano’ del algoritmo, por lo tanto
se debe llevar registro de los
valores que va tomando cada
una de las variables involucradas
en el mismo.