Actividad de organización y
jerarquización
FASES
FUENTE 1
FUENTE 2
FUENTE 3
LIBRO DE TIC
1
Comprender el problema
Definición del problema
Analisis del problema
DEFINICION DEL PROBLEMA
2
Plantear una logica
Analisis del problema
Diseño de algoritmo
ANALISIS DEL PROBLEMA
3
Codificación del programa
Diseño de la solución
Codificación de un programa
DISEÑO
4
Traducir el programa a lenguaje de maquina
codificación
Comparación y ejecución
CODIFICACION
5
Prueba del programa
Prueba de depuración
Verificación y depuración de un programa
DEPURACION
6
Ejecución del programa
Documentación
IMPLANTACION DEL PROGRAMA
7
implementación
MANTENIMIENTO DEL PROGRAMA
8
Mantenimiento
1. https://www.usabilidadweb.com.ar/prog.php
El proceso de Programación
Componentes y operaciones de las computadoras
Los dos componentes principales de un computador son
su Hardware (dispositivos asociados a la computadora) y su Software (programas
con las instrucciones).
Juntos, Hardware y Software, ejecutan cuatro operaciones principales
1. Entrada
2. Procesamiento
3. Salida
4. Almacenamiento
Ejemplos de dispositivos de entrada son el ratón y el teclado, a
través de estos, se introducen los datos y/o eventos en la computadora.
Procesar datos puede significar
Organizarlos
Realizar operaciones lógicas
Realizar operaciones aritméticas
Comprobar su exactitud
la parte del Hardware que realiza este tipo de tareas es la Unidad Central de
Proceso (CPU). Luego de procesados los datosse pueden enviar a un monitor, impresora, teléfono celular o cualquier
otro dispositivo.
El Hardware, por si solo, no estaría en capacidad de ejecutar nada y
requiere de las instrucciones almacenadas en el software, estas instrucciones
de maquina se escriben en un lenguaje de
programación (Pascal, Java, etc.)
Los lenguajes tienen reglas denominadas Sintaxis que deben
seguirse para poder ser utilizados, a menos que la sintaxis sea
correcta, la computadora no interpretara nada.
Los circuitos electrónicos de las computadoras se pueden entender como
miles de millones de interruptores On/Off (operación Digital, en
contraposición al funcionamiento Analógico), estos a partir de
las puertas lógicas (AND / OR / NAND/ NOR /EXOR) se combinan formando
estructuras cada vez mas complejas (memorias biestables, registros de
desplazamiento, memorias RAM / ROM, contadores) hasta llegar a la estructura de
los Microprocesadores.
Cada lenguaje de programación usa un
fragmento de software para traducir el lenguaje de programación
específico al lenguaje maquina, esto es, a lo que pueden
comprender los circuitos digitales antes mencionados. El
lenguaje de traducción de software se
llama compilador o intérprete.
Una vez que se han introducido instrucciones en una
computadora y estas se han traducido al lenguaje maquina, un programa
esta en condiciones de ser arrancado oejecutado.
Fases de la Programación
Los programadores escribimos instrucciones y este proceso se puede dividir en
pasos
1. Comprender el problema
2. Plantear la lógica
3. Codificar el programa
4. Traducirel programa a lenguaje maquina
5. Prueba del programa
6. Ejecución del programa
Comprender el problema
En la programación profesional se escriben programas para satisfacer las
necesidades de otros, comprender que necesita el cliente, puede llegar a ser
una tarea complicada y si esta etapa no esta claramente resuelta, no se
podra avanzar. El usuario en general no sabe expresar bien lo que
necesita y requiere la amplia colaboración del programador.
Un usuario puede requerir una base de datos para gestionar su empresa y por
ejemplo quiere tener siempre a mano una pagina web que despliegue la
nómina de empleados de su empresa que tengan mas de 5 años
de antiguedad y un sueldo menor a $ 2000 y que a su vez no acumulen mas
de 2 ausencias por año y no haber tenido sanciones disciplinarias, para
sortear un viaje entre ellos.
Esta solicitud planteada por el usuario podría parecer suficiente
información para el programador, pero este podría consultar por
ejemplo, si las ausencias se debieron a enfermedades certificadas por el
médico de la empresas, esas personas deben ser excluidas igualmente?, la
salida de datos necesitan incorporar el número de legajo?, la lista debe
incluir a los empleados de media jornada?, todas las categorias estan
incluidas o independientemente de los ingresos hay dependencia de las mismas y
un muy largo etc. Estas consultas ayudan a poner en claro al
usuario en su definición. No hay que olvidar que en el caso de
una base de datos pasada la etapa de normalización un
cambio puede implicar comenzar nuevamente el proyecto.
Planteo de lalógica
La esencia del
proceso de programación consiste en el planteo de la lógica del programa.
Aquí se plantean los pasos a incluir y el
órden de los mismos. En general se utilizan diagramas de flujo o
pseudocódigo, esto implica un planteo natural y
sin preocupación por la sintaxis. Lo importante es determinar la
secuencia de sucesos que llevaran los datos de entrada a la salida
deseada.
Codificar el programa
Una vez establecida la lógica del programa se podra
elegir el lenguaje mas adecuado para llevar a cabo la
codificación. Aqui si, hay que usar la
sintaxis correcta. Todos estos pasos estan sujetos a la
complejidad del programa, cuando es muy sencillo se puede escribir como si
fuese una carta a alguien, a medida que la complejidad aumenta se requiere
diferenciar los pasos y trabajar sobre cada uno de ellos.
Traducción del programa a lenguaje maquina
Lenguajes de programación hay muchos pero los computadores sólo
entienden 0 y 1 lógicos. Uno puede utilizar un
lenguaje porque existen los compiladores e interprete del mismo que cambia el lenguaje de
alto nivel con el que se escribe el programa, a lenguaje
maquina de bajo nivel, que es el que la computadora entiende. Los
errores de sintaxis o gramatica son detectados por estos sistemas
al momento de querer ejecutar el programa y en general hay un
reporte del
error.
Prueba del programa
Un programa libre de errores de sintaxis no
necesariamente lo esta de errores lógicos. El
programa puede ejecutarse correctamente pero el resultado de la salida no ser
el esperado. Esta etapa implica poner a punto la
sintaxisy la lógica.
Ejecución del programa
Terminadas y verificadas todas las etapas el programa puede ser utilizado por
la empresa para obtener los resultados planeados.
Escritura de paginas web
Los lenguajes estandares utilizados para la escritura de paginas
web son lenguajes de marcas y alli las consideraciones a
efectuar son otras, quedando excluidos de estas consideraciones. Aquí
interesan la estructura del
documento, la semantica, la accesibilidad, la info para los motores de
búsquedas, etc
2. Fuente de consulta https://www.galeon.com/neoprogramadores/fasesprg.htm
Las Fases de la Programación
El proceso de la creación de software requiere el uso de una
metodología sistematica de desarrollo que permita un acercamiento
gradual a la solución del problema que se intenta resolver. Esta
metodología, llamada Ciclo de Desarrollo del Software,
consta de una serie de pasos lógicos secuenciales denominadosFases, las
cuales son el tema de este artículo. Aunque es posible crear programas
sin la aplicación de esta metodología, el producto resultante
carece de los beneficios que provee la utilización de este
enfoque.
Las Fases de la Programación son
1. Definición del problema
2. Analisis del problema
3. Diseño de la solución
4. Codificación
5. Prueba y Depuración (Puesta a Punto o Testing
6. Documentación
7. Implementación (Producción
8. Mantenimiento
Aunque el proceso de crear software es esencialmente un
proceso creativo, el seguir esta serie de pasos lógicos conduce a la
obtención de programas de mayor calidad. Es muy común que los
principiantesse salten algunos pasos de esta metodología por
desconocimiento o pereza, y procedan directo a la codificación de los
programas. Esta practica no sólo es incorrecta,
sino que hace perder tiempo, dinero y esfuerzo. Aún
los programadores experimentados y los profesionales utilizan esta
metodología en el desarrollo de su programas. Los resultados que
se obtienen con su aplicación son mas confiables, rapidos
y seguros que los obtenidos mediante practicas incorrectas y
desordenadas.
1. Definición del Problema
Consiste en la obtención sin ambigüedades de una visión
general y clara del
problema. Ayuda a identificar los elementos claves del problema y los de la futura
solución, así como
fijar los límites de los mismos basados en su planteamiento textual
sobre el papel. Un problema mal planteado, incompleto
o mal comprendido es un mal inicio para la programación. Las respuestas
a las siguientes preguntas son claves para la correcta definición de un
problema
¿Qué entradas se requieren, de qué tipo, en qué
orden y qué cantidad?
¿Qué salidas se desean, de qué tipo, en
qué orden y qué cantidad?
¿Qué método(s) o fórmula(s) produce(n),
o puede(n) producir las salidas deseadas?
Dependiendo de qué tan precisas sean las
respuestas a esas preguntas, así sera la definición del problema, sobre todo
en cuanto al orden explícito de las entradas y las salidas esperadas. Mientras no se comprenda con claridad el problema por resolver no
puede pasarse a la fase siguiente.
2. Analisis del Problema
Es la comprensión a fondo del
problema y sus detalles y es un requisito paralograr una solución
eficaz. Es precesamente en esta fase donde se definen formal
y correctamente la Entrada que recibira el programa (datos o
materia prima), la Salida que producira (información o
resultados) y el Proceso necesario para su solución (el
método para convertir los datos de entrada en información de
salida). Cada uno de estos aspectos coincide respectivamente con las
preguntas planteadas en la fase de Definición del
Problema. A este enfoque se le conoce
comúnmente como E-P-S
(Entrada-Proceso-Salida).
3. Diseño de la solución
En esta fase se diseña la lógica de la solución a usar, o
sea, cómo hara el programa la tarea que se desea automatizar
usando los datos de entrada para generar los datos de salida,
enfatizandose los diseños limpios, sencillos y claros. Pueden plantearse diferentes alternativas de solución al
problema y elegir la mas adecuada, la que produzca los resultados
esperados en el menor tiempo y al menor costo. El proceso de
diseño se realiza en dos pasos
3.1 Elaboración del Algoritmo
Un algoritmo es una secuencia lógica y cronológica de
pasos encaminados a resolver un problema. Las acciones basicas que puede
llevar a cabo un algoritmo son: pedir datos, desplegar
datos, evaluar condiciones y ejecutar operaciones.
Los programas se estructuran a partir de los algoritmos, los cuales se pueden
escribir utilizando la técnica convencional del pseudocódigo
(mezcla de lenguaje común, términos técnicos de
computación, símbolos y palabras reservadas de algún
lenguaje de programación) y los diagramas de flujo (flujogramas) que son
larepresentación grafica de un algoritmo, plasmados en papel para
su estudio. En el caso de emplear diagramas de flujo pueden emplearse
herramientas de software tales como el DFD v1.0. Si se opta por el pseudocódigo, se recomienda escribirlos a
doble interlínea para efecto de facilitar modificaciones o
adición de acciones no consideradas y dotarlos de las siguientes
características.
3.1.1 Características de los Algoritmos
Un algoritmo debe tener un punto de inicio o partida.
Debe ser preciso e indicar el orden de realización
de cada paso.
Debe estar bien definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado
cada vez.
Debe ser finito (tener un número finito de
pasos). Si se sigue un algoritmo, se debe terminar en
algún momento.
La definición de un algoritmo debe describir
con claridad las tres partes fundamentales del problema: Entrada, Proceso y Salida
encontradas en las fases deDefinición y Analisis del
problema.
Se deja sentado que todos los programas empiezan primero en
papel, no directamente frente a la computadora. Aún los
programadores mas experimentados plasman en papel sus ideas y soluciones
antes de programarlas. Pero es común que los novatos vayan directamente
a la computadora sin haber siquiera leído bien
el problema o pensado siquiera el algoritmo. Eventualmente
podran concluir el programa y alcanzar una solución, pero
sólo después de probar diferentes ideas, hacer miles de cambios y
perder gran cantidad de tiempo y esfuerzo. Los que se toman tiempo para
analizar el problema, pensar y plasmar su solución enpapel mediante un algoritmo tendran un tiempo de respuesta (el
tiempo para obtener el programa terminado) mucho menor, y se convierten en
mejores programadores. Es un hecho.
Los problemas complejos pueden solucionarse mas eficazmente
utilizando el método 'Divide y Venceras', el que
consiste en fraccionar un problema complejo en otros mas simples y
mas faciles de solucionar. Esto conduce a la Modulación
del programa auxiliado por el método de diseño Top-Down o
Descendente en el que se da un refinamiento de los
pasos del
algoritmo. De hecho, el enfoque E-P-S mencionado anteriemente es un buen ejemplo de esto, pues al concentrarse en resolver
cada uno de los tres aspectos del enfoque de
manera independiente se lograr la solución del problema completo.
3.2 Realización de Pruebas de Escritorio
O sea, comprobaciones a mano del algoritmo planteado (en
pseudocódigo o en diagrama de flujo) con datos y resultados de prueba
conocidos, papel, lapiz y calculadora (si es necesaria) para simular su
ejecución y evaluar su correcta operación. Si
la lógica es correcta, los resultados seran satisfactorios.
Si no, el algoritmo debera modificarse y volverlo a
probar hasta que esté correcto. Algunos programas no son
faciles de probar a mano por su complejidad y/o tamaño, pero en
tu ayuda esta la verificación durante la
programación inicial (la creación del algoritmo), el trace and debugging
(rastreo y detección de errores) automatico que incorporan los
lenguajes de compiladores de los lenguajes de programación y otras
técnicas. Se hace notar que éste acapite
depende de losanteriores. Si la definición y el analisis
son errados, el diseño del programa también lo
sera, por lo que se tendra que rehacer, retrocediendo
quiza hasta la fase de Definición del problema.
4. Codificación
En este paso se traduce el algoritmo ya estructurado,
verificado y comprobado a mano, al lenguaje de programación que vaya a
utilizarse. Sólo se convierten las acciones del algoritmo en
instrucciones de computadora usando la sintaxis de un lenguaje particular, pero
requiere de conocimientos del lenguaje y de sumo cuidado en la
colocación de las instrucciones, las que deben apegarse y seguir
fielmente a la lógica del algoritmo y la semantica y sintaxis del
lenguaje.
La digitación, el acto de teclear el algoritmo codificado, se lleva a
cabo para almacenar el programa en la memoria de la computadora (virtual o
física) y pueda ser aceptado por esta. Con frecuencia los programadores
realizan la codificación y la digitación al mismo tiempo a fin de
ahorrar tiempo, pero esto puede conducir a errores
debido a la pérdida de concentración que implica el uso de un
editor.
La compilación, o corrección de los errores sintacticos y
semanticos del código, es la eliminación de los errores
'gramaticales' según las reglas de construcción de
instrucciones particulares del propio lenguaje (la sintaxis). Puede hacerse a
medida que se traduce, pero es mejor al final para no perder la secuencia de la
codificación. Al terminar debe tenerse el código libre de los
errores antes mencionados.
Para realizar la compilación puede
hacerse uso de un compilador, el cual es
unprograma especial que analiza todo el código fuente y detecta los
errores antes mencionados ocasionados durante la codificación o la
digitación. Las fallas de lógica que puedan existir en nuestro
programa no son detectadas por este software. Los
errores que sí son evidenciados por el compilador deben corregirse
modificando el programa fuente.
5. Prueba y Depuración (Puesta a Punto o Testing
Una vez compilado el programa, este es sometido a pruebas a fin de determinar
si resuelve o no el problema planteado en forma satisfactoria. Para ello le
suministramos datos de prueba, como lo hicimos en la prueba de
escritorio. El programa codificado y compilado no garantiza
que funcione correctamente. Debe depurarse (librarse de errores de
lógica o de ejecución) realizando corridas de prueba continuas
con datos y respuestas conocidas como lo hicimos en la prueba de escritorio,
verificando todas las posibles alternativas del programa y sus respuestas y
haciendo el mayor número de variantes con sus combinaciones, a fin de
determinar si resuelve o no el problema planteado en forma satisfactoria.
Las pruebas que se aplican al programa son de diversa índole y generalmente
dependen del
tipo de problema que se esta resolviendo. Comúnmente se inicia la
prueba de un programa introduciendo datos
validos, invalidos e incongruentes y observando como reacciona en cada ocasión.
Los resultados obtenidos en las pruebas pueden ser cualquiera de los siguientes
a. La lógica del
programa esta bien, pero hay errores sencillos, los cuales los corregimos
eliminando o modificandoalgunas instrucciones o incluyendo nuevas.
b. Hay errores ocasionados por fallas en la lógica, lo que nos obliga a
regresar a las fases
de Diseño y Codificación para revisión
y modificación del diagrama.
c. Hay errores muy graves y lo mas aconsejable es que regresemos a
la fase 2 para analizar nuevamente el problema, y repetir todo el
proceso.
d. No hay errores y los resultados son los esperados. En este
caso guardamos el programa permanentemente en un medio de almacenamiento.
Puede ser necesario en la mayoría de los casos retroceder a fases
previas de desarrollo, revisar el algoritmo otra vez en caso de errores de
analisis y/o lógica (que son los mas difíciles de
detectar, a diferencia de los de sintaxis y semantica), realizar ajustes
al código y una serie de nuevas ejecuciones de prueba para que el
programa funcione correctamente. Si no existen errores en el programa, puede
entenderse la depuración como
una etapa de refinamiento en la que se ajustan detalles para optimizar el
desempeño del
programa.
Si se esta automatizando alguna tarea manual, es común poner a
funcionar por un tiempo y de forma paralela ambas
alternativas, a fin de comparar las salidas de ambas y adquirir confianza en la
solución automatizada.
6. Documentación
Es la fase mas ignorada por la mayoría de los programadores
noveles, por razones de tiempo, costos o simple pereza. Pero no documentar los
programas es un mal habito en
programación y un gran error. Sera muy difícil a los
usuarios entender un programa si no cuentan con un
manual de operaciones (el Manual de Usuario). Tambiénpara
los programadores que necesiten darle mantenimiento o hacerle modificaciones si
no existe ninguna documentación acerca de sus fases de desarrollo.
Incluso sera difícil de entender para el mismo
autor, algún tiempo después.
La documentación es la guía o comunicación escrita en sus
variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas y
sirve para ayudar a comprender o usar un programa o
para facilitar futuras modificaciones (mantenimiento). Recoge todos los
elementos encontrados y material creado en las diferentes fases del desarrollo, ademas de
las normas de instalación o las recomendaciones para la ejecución
del programa.
La documentación se divide en tres partes
Documentación Interna
Documentación Externa
Manual del
Usuario
Documentación Interna: Son los comentarios que se añaden al
código fuente para clarificarlo.
Documentación Externa: Es todo el material creado y empleado en las
diferentes fases del
desarrollo del
programa. Incluye
Descripción del Problema
Narrativo con la descripción de la solución
Autor(s)
Algoritmo (diagrama de flujo y/o pseudocódigo)
Código Fuente (programa)
Relación de los elementos utilizados en el programa, cada uno con su
respectiva función
Limitaciones del programa
Manual del Usuario: Describe paso a paso la manera como funciona el programa,
con el fin de que los usuarios pueda operarlo correctamente y obtener los
resultados deseados.
7. Implementación (Producción
El programa ya probado, revisado y mejorado se considera terminado y puede
utilizarse con un alto grado deconfianza para resolver los problemas que dieron
origen a su creación. Si se esta automatizando
alguna tarea manual, ésta última se desecha para emplear
solamente la programa.
8. Mantenimiento
Es posible que el programa deba revisarse cada cierto tiempo para ajustes.
Estos cambios pueden ser por la dinamica del problema, por la naturaleza del código, las exigencias del tiempo o las modernas necesidades que
surgen frecuentemente, por lo que se considera que ningún programa es
estatico. Los programas siempre son susceptibles de
mejoras y de mantenimiento. Por tales razones, es
común que se tenga que retornar a una de las fases iniciales de
desarrollo para corregir o añadir funcionalidades, repitiendo el proceso
en cada fase subsiguiente para introducir los cambios pertinentes y lograr que
el programa funcione correctamente con los cambios realizados. Se enfatiza el hecho de que cualquier actualización o cambio
en el programa debera reflejarse en su documentación para que
ésta mantenga su vigencia.-
3. fuente de consulta
https://www.informaticalrc2012.blogspot.mx/2012/02/fases-para-la-programacion.html
Fases para la Programación
FASES PARA LA PROGRAMACION
Este proceso es la creación de un programa y su correspondiente
ejecución aunque requierende una serie de pasos siguientes:
1. Analisis del problema
Podríamos resumir a responderse a las tres siguientes
preguntas:a. ¿Qué entradas se requieren? Tipo y cantidad.b. ¿Qué salida se desea? Tipo y cantidad.c. ¿Qué método o proceso se empleara para obtener la salida deseada?.En esta etapa practicamentedeterminamos el QUE es lo que
hace el programa a diseñar.
2. Diseño del Algoritmo
En esta etapa se determina el COMO
hace el programa la tarea solicitada. El diseño del algoritmo es independiente del lenguaje de
programación en el que se va a codificar posteriormente. Para el
diseño de un algoritmo tenemos que utilizar los
resultados del analisis del problema y realizar
con ello una estructura modular (diseño modular) que consiste en un
conjunto de módulos. Es decir la solución de un problema complejo se realiza dividiendo
el problema en subproblemas y estos subproblemas en otros de nivel
mas bajo hasta conseguir soluciones unitarias. Cada
solución unitaria o subprograma o subproblema se le conoce como
MODULO y tiene un punto de entrada y una salida. Cualquier programa bien
diseñado consta de un programa principal
(módulo de nivel mas alto) que llama a subprogramas
(módulos de nivel mas bajo). Todo este
diseño se le conoce como TOP-DOWN o
diseño descendente y la programación en este diseño se le
conoce como
programación modular. Por otra parte, la programación modular nos
conduce a la programación estructurada que significa escribir un
programa de acuerdo a las siguientes
reglas:- El programa tiene un diseño modular.- Los módulos son diseñados de modo descendente.- Cada módulo se codifica utilizando las tres estructuras de control basicas:
secuencia, selección y repetición. Para
diseñar un algoritmo se requiere de herramientas, las cuales hay varias;
para nuestro estudio solo estudiaremos 2 de ellas
Diagramas de flujo (Flowchart)
y pseudocódigo. Ud.puede usar
cualquiera de ellas en forma regular. Por
su importancia y extensión lo veremos posteriormente.
3. Codificación de un Programa
Es la escritura en un lenguaje de programación de la
representación del
algoritmo desarrollado en la etapa anterior, en cierto modo la
codificación es un proceso mecanico porque el algoritmo ya
esta hecho y solo queda la transformación a un lenguaje requerido
obteniéndose así el programa fuente.
4. Compilación y ejecución
Hecho el programa fuente debe ser traducido a lenguaje maquina con
el compilador, en este proceso si hay errores del programa se procede a su
corrección para luego obtener así un programa objeto, si a este
programa se hace una fase de montaje o Link, se transforma en un programa
ejecutable
5. Verificación y depuración de un programa.
En esta etapa el programa se ejecuta con una amplia variedad de datos de
entrada llamados datos de test o prueba que determina si el programa tiene
errores ('bugs').Si se encuentra errores entonces hay que depurar y
corregir. Los errores frecuentes a conseguir son:
a. errores de compilación- de sintaxis, de escritura,
etc.
b. errores de ejecución- división por cero, de
overflow, etc.
c. errores lógicos- de lógica interna, de secuencia,
etc
Universidad Autonoma de Nuevo Leon
Preparatoria No. 9
Ornelas Olivares Damaris.
Matricula: 1675098
Grupo: 216
Actividad de organización y jerarquización
Fases de la programación
TIC 2
Monterrey Nuevo
León a 14 de febrero de 2014