FASES EN LA RESOLUCION DE PROBLEMAS:
Este proceso con una computadora conduce a la escritura de
un programa y a su ejecución en la
misma.
Las fases de resolución de un problema son:
·Análisis de problema ·Verificación ·depuración
·diseño del algoritmo ·codificación ·mantenimiento
·compilación y ejecución ·documentación
CARACTERISTICAS DE UN ALGORITMO:
Preciso:
indicar el orden de realización en cada paso.
Definido: si
se sigue dos veces, obtiene el mismo resultado cada vez.
Finito: tiene
fin: un número determinados de pasos.
Ejemplos de
un algoritmo son: instrucciones para montar en una bicicleta, hacer una receta
de cocina, obtener el máximo común divisor de 2 números.
Los
algoritmos se pueden presentar por formulas, diagrama de flujos o n-s y
pseudocódigos: esta última representa en la más utilizada en lenguajes
estructurados como c.
ANALISIS DEL PROBLEMA:
En esta fase
se complementa exactamente lo que debe hacer el programa y el resultado o
solución de problema.
Resolución de problema
Análisis del
problema diseño
del algoritmo resolución de
problema
Con
computadora
DISEÑO DEL ALGORITMO:
Se determina
como hace la tarea solicitada el programa. Cada subprograma es resuelto
mediante un módulo que tiene un solo punto
de salida.
Los programas
estructurados se dice que tienen diseño modular y el método de romper el
programa en módulos más pequeños, se llama programación modular. Los módulos
pueden ser planeados, codificados, comprobados y depurados
independientemente, el proceso implica
los siguientes pasos, hasta que el programa se determina:
1. Programar
un módulo.
2. Comprobar
el modulo
3. Depurar el
modulo
4. Combinar
el modulo con los módulos anteriores
Es diseño del
algoritmo es independiente del lenguaje de programación.
HERRAMIENTAS DE PROGRAMACION:
Diagramas de
flujo: es una representación gráfica de un algoritmo.
Pseudocódigo:
es una herramienta de programación en la que las instrucciones se escriben en
palabras similares al inglés o español. El pseudocódigo se puede definir como
un lenguaje de especificación de algoritmos.
CODIFICACION DE UN PROGRAMA:
Es la
escritura de un lenguaje de programación de la representación de algoritmos
desarrollada en las etapas precedentes.
Dado que un
diseño de un algoritmo es independiente del lenguaje de programación utilizado
por su implementación, el código puede ser escrito en un lenguaje o en otro.
Para utilizar
la conversión del algoritmo en programa, se deben sustituir las palabras en
español por su homónimo en inglés, y las instrucciones indican el lenguaje natural expresadas en el lenguaje de programación
correspondiente.
COMPILACION Y EJECUCION DEL
PROGRAMA:
UN vez que el
programa se ha convertido en un programa fuente, es preciso introducirlo en
memoria mediante el teclado y almacenarlo en un disco.
El programa
fuente debe ser traducido a lenguaje máquina, este proceso se realiza con el
compilador.
Si trae la
compilación se presentan errores en el programa fuente es preciso volver a
editar el programa.
Este proceso
se repite hasta que no se producen errores, obteniéndose el programa objeto.
VERIFICACION I DEPURACION DE UN
PROGRAMA:
Verificación:
es el proceso de ejecución del programa con una amplia variedad de datos de
entrada, llamados datos de test o prueba, que determina si el programa tiene
errores.
Depuración:
Es el proceso de encontrar los errores del programa y corregir o eliminar
dichos errores.
Se pueden
producir 3 tipos de errores al ejecutar un programa.
1. Errores de
compilación: son errores de sintaxis
2. Errores de
ejecución: se introducen por instrucciones que la computadora puede entender
pero no ejecutar
3. Errores
lógicos: suelen ser el diseño del algoritmo. Son difíciles de detectar ya que
el programa puede funcionar y no producir errores de compilación ni de
ejecución.
DOCUMENTACION Y
MANTENIMIENTO:
La
documentación de un problema consta de las descripciones de los pasos a dar en
el proceso de resolución de un problema.
La
documentación puede ser interna o externa: la interna es la contenida en línea
de comentarios y la externa incluye análisis, diagramas de flujo y
pseudocódigos.
La
documentación es vital cuando se desea corregir posibles errores futuros o bien
cambiar el programa, tales cambios se denomina como mantenimiento del programa.
PROGRAMACION ESTRUCTURADA:
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 3 estructuras de control básico: secuencia,
selección y repetición.
La
programación estructurada es el conjunto de técnicas que incorporan:
·Recursos
abstractos
·Diseño
descendente (top-Down)
·Estructuras
básicas
TEORIA DE LA PROGRAMACION
ESTRUCTURADA:
El programa
completo tiene un diseño modular
Los módulos
se diseñan con metodología descendente
Cada módulo
se modifica utilizando las 3 estructuras de control básico: secuenciales,
selectivas y repetitivas. (Ausencia total de secuencias GOTO)
Estructuración
y modularidad son conceptos complementarios (se solapan)
REPRESENTACION GRAFICA DE LOS
ALGORITMOS:
Los métodos
usuales para representar un algoritmo son:
·Diagrama de
flujo
·Diagrama N-S
(Nassi-Schninderman)
·Lenguaje de
especificación de algoritmos: pseudocódigo,
·Lenguaje
español inglés.
·Formulas.
Para
representar un algoritmo se debe utilizar algún método que permita independizar
dicho algoritmo del lenguaje de programación elegido. Ellos permiten que un
algoritmo pueda ser codificado indistintamente en cualquier lenguaje.
DIAGRAMA DE FLUJO:
Es una de las
técnicas de representación de algoritmo más antiguo y utilizado.
Un diagrama
de flujo es un diagrama que utiliza símbolos (cajas) estándar y que tiene los
pasos de algoritmo escritas en esas cajas unidas por las flechas denominadas
leneas de flujo.
LOS SIMBOLOS
PRINCIPALES SON:
CICLO DE VIDA DEL SOFTWARE:
El ciclo de vida del software describe el desarrollo de
software, desde la fase inicial hasta la fase final. El propósito de este
programa es definir las distintas fases intermedias que se requieren para
validar el desarrollo de la aplicación, es decir, para garantizar que el
software cumpla los requisitos para la aplicación ay verificación de los
procedimientos de desarrollo: se asegura de que los métodos utilizados son
apropiados.
El ciclo de vida básico de un software consta de los
siguientes procedimientos:
Definición de objetivos: definir el resultado del proyecto
y su papel en la estrategia global.
Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los
requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
Diseño general: requisitos generales de la arquitectura de la
aplicación.
Diseño en detalle: definición precisa de cada subconjunto de la
aplicación.
Programación (programación e implementación): es la implementación
de un lenguaje de programación para crear las funciones definidas durante la
etapa de diseño.
Prueba de unidad: prueba individual de cada subconjunto de la
aplicación para garantizar que se implementaron de acuerdo con las
especificaciones.
Integración: para garantizar que los diferentes módulos se
integren con la aplicación. Éste es el propósito de la prueba de integración
que está cuidadosamente documentada.
Prueba beta (o validación), para garantizar que el
software cumple con las especificaciones originales.
Documentación: sirve para documentar información necesaria para los
usuarios del software y para desarrollos futuros.
Implementación
Mantenimiento: para todos los procedimientos correctivos
(mantenimiento correctivo) y las actualizaciones secundarias del software
(mantenimiento continuo).
El orden y la presencia de cada uno de estos
procedimientos en el ciclo de vida de una aplicación dependen del tipo de
modelo de ciclo de vida acordado entre el cliente y el equipo de
desarrolladores.
PRUEBAS E INTEGRACION:
Sirve para
mostrar que un programa es correcto. Las pruebas nunca son fáciles.
Es una parte
esencial de un proyecto de programación. Durante la fase de prueba se necesita
eliminar tantos errores lógicos como se pueda.
Se deben
incluir datos no válidos para comprobar la capacidad de detección de errores
del programa.
VERIFICACION:
Es para demostrar la corrección o exactitud de un
programa, se denomina verificación formal implica la construcción de pruebas
matemáticas que ayudan a determinar si los programas hacen lo que se supone han
de hacer.
Si se descubre un error durante el proceso de
verificación se debe corregir su algoritmo y posiblemente se han de modificar
las especificaciones del programa.
El
mantenimiento de software es también una de las fases en el ciclo de vida del
desarrollo del sistema (SDLC, sigla en inglés de system development life
cycle), que se aplica al desarrollo de software. La fase de mantenimiento
es la fase que viene después del despliegue (implementación) del software en el
campo.
PRECONDICION Y POSTCONDICION:
Precondición: predicado lógico que debe cumplirse al
comenzar la ejecución de una operación.
Postcondicion: predicado lógico que debe cumplirse al
acabar la ejecución de una operación siempre que se haya cumplido previamente
la precondición correspondiente.
ETAPAS A ESTABLECER LA EXACTITU (CORRECION) DE UN PROGRAMA:
1. El invariante debe ser inicialmente verdadero
2. Una ejecución del bucle debe mantener el
invariante.
3. El invariante debe capturar la exactitud del
algoritmo.
4. El bucle debe terminar.
PROGRAMACION
SEGURA CONTRA FALLOS:
Es segura contra fallos cuando se ejecuta
razonablemente por cualquiera que lo utilice. Para conseguir este objetivo se
han de comprobar los errores en datos de entrada y en la lógica del programa.
FACTORES
EN LA CALIDAD DEL SOFTWARE:
CORRECION:
La corrección es la cualidad principal. Si un
sistema no hace lo que se supone que debe hacer, poco importan el resto de
consideraciones que hagamos sobre él – si es rápido, si tiene una bonita
interfaz de usuario.
Pero esto es más fácil de decir
que de lograr. Incluso el primer paso hacia la corrección es ya difícil:
debemos ser capaces de especificar los requisitos del sistema de una forma
precisa, lo que es en sí una ardua tarea.
Los métodos que aseguran la
corrección son usualmente condicionales.
Un sistema de software importante, incluso uno pequeño según los estándares de
hoy, implica a tantas áreas que sería imposible garantizar su corrección
manejando todas las componentes y propiedades en un solo nivel. En cambio, es
necesaria una solución multinivel, en la que cada nivel confía en la corrección
de los inferiores:
Hardware ----> Sistema Operativo----> Compilador ----> Sistema
de Aplicación
TRANSPORTABALIDAD:
Facilidad con la que un
software puede ser transportado.
INTEGRIDAD:
Facilidad para proteger sus
componentes.
ROBUSTEZ:
Facilidad para funcionar
incluso en situaciones anormales.
EXTENSIBILIDAD:
Facilidad de adaptar cambios en
su especificación: diseño simple y descentralización.
REUTILIZACION:
La reutilización tiene una
influencia sobre todos los demás aspectos de la calidad del software, ya que al
resolver el problema de la reutilización se tendrá que escribir menos software
y en consecuencia se podrán dedicar entonces mayores esfuerzos a mejorar los
otros factores, tales como la corrección y la robustez.
EJERCICIOS:
A)
Realizar una
llamada telefónica:
Entrada:
ir hacia el teléfono público
Proceso:
descolgar el teléfono
Depositar una moneda
Marcar el número
Hablar
Salida:
colgar
Regresar a casa
B)
Cocinar una
tortilla:
Inicio: tener una tortilla
Prender la estufa
Proceso:
Poner la tortilla en el
comal
Esperar a que se caliente por un lado
Darle la vuelta para que se cocine por el otro
lado
Salida: Sacar la tortilla
Apagar la estufa
C)
Arreglar un
ponchazo de una bicicleta:
Inicio: Parche
Llanta
Herramientas
Salida:
Que salga en buen estado
Proceso:
Revisar la pinchada
Poner pegamento
Colocar el parche
Ponerle aire
D)
Freír un huevo:
Inicio: Tener el huevo, sartén, aceite,
mantequilla, sal, y la estufa
Salida:
Freír el huevo
Proceso:
Quebrar el huevo, ponerlo en el sartén,
echarle sal, agregar
Condimentos, batir el huevo,
ponerlo en la cazuela y cocinar
E)
Diseña un algoritmo que imprima y sume la serie de números 3,6,9,12….99
Programa: operación
Tipo:
Numero1
tipo entero
Numero2
tipo entero
Sumaa=0
Sumab=0
Inicio:
Para
numero1=1 hasta 99 salta 3
Escribir
(numero1)
Si
número 1entre 2 entonces
Sumaa=
sumaa + numero1
sino
sumab=
sumab+ numero1
fin.
F) Haz el algoritmo de un programa que solicite 100 calificaciones:
Programa: calificaciones
Tipo:
Numero tipo
entero
Inicio:
Para numero = 1
hasta 100 salta 1
Escribir
(“teclear calificación”)
Leer
(“calificación tipo entero”)
Fin.
No hay comentarios:
Publicar un comentario