PDF de programación - Capítulo 2 - Metodología de la programación y desarrollo de software

Imágen de pdf Capítulo 2 - Metodología de la programación y desarrollo de software

Capítulo 2 - Metodología de la programación y desarrollo de softwaregráfica de visualizaciones

Publicado el 4 de Marzo del 2020
1.849 visualizaciones desde el 4 de Marzo del 2020
626,7 KB
53 paginas
Creado hace 18a (28/06/2005)
cap.2 28/6/05 12:17 Página 40

CAPÍTULO

2

METODOLOGÍA

DE LA PROGRAMACIÓN

Y DESARROLLO DE SOFTWARE

C O N T E N I D O

2.1. Fases en la resolución de

problemas

2.2. Programación modular

2.3. Programación estructurada

2.4. Concepto y características

de algoritmos

2.5. Escritura de algoritmos

2.6. Representación gráfica de los

algoritmos

2.7. El ciclo de vida del software
2.8. Métodos formales de

verificaciónde programas

2.9. Resumen
2.10. Ejercicios
2.11. Ejercicios resueltos

40

cap.2 28/6/05 12:17 Página 41

I N T R O D U C C I Ó N

Este capítulo le introduce a la metodología a seguir
para la resolución de problemas con computadoras
y con un lenguaje de programación como C.

La resolución de un problema con una computa-
dora se hace escribiendo un programa, que exige al
menos los siguientes pasos:

Uno de los objetivos fundamentales de este libro
es el aprendizaje y diseño de los algoritmos.Este
capítulo introduce al lector en el concepto de algo-
ritmo y de programa, así como las herramientas que
permiten «dialogar» al usuario con la máquina: los
lenguajes de programación.

1. Definición o análisis del problema.
2. Diseño del algoritmo.
3. Transformación del algoritmo en un

programa.

4. Ejecución y validación del programa.

C O N C E P T O S C L A V E

• Algoritmo
• Ciclo de vida
• Diseño descendente
• Diagrama Nassi Schneiderman
• Diagramas de flujo
• Diseño
• Dominio del problema
• Factores de calidad
• Invariantes

• Métodos formales
• Postcondiciones
• Precondiciones
• Programación modular
• Programación estructurada
• Pruebas
• Pseudocódigo
• Verificación

41

cap.2 28/6/05 12:17 Página 42

42mmProgramación en C: Metodología, algoritmos y estructura de datos

2.1. FASES EN LA RESOLUCIÓN DE PROBLEMAS

El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a
su ejecución en la misma. Aunque el proceso de diseñar programas es —esencialmente— un proceso crea-
tivo, se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los pro-
gramadores.

Las fases de resolución de un problema con computadora son:
• Análisis del problema.
• Diseño del algoritmo.
• Codificación.
• Compilación y ejecución.
• Verificación.
• Depuración.
• Mantenimiento.
• Documentación.
Constituyen el ciclo de vida del software y sus características más sobresalientes son:
• Análisis. El problema se analiza teniendo presente la especificación de los requisitos dados por el

cliente de la empresa o por la persona que encarga el programa.

• Diseño. Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que

resuelva el problema.

• Codificación (implementación). La solución se escribe en la sintaxis del lenguaje de alto nivel (por

ejemplo, C) y se obtiene un programa fuente que se compila a continuación.

• Ejecución, verificación y depuración. El programa se ejecuta, se comprueba rigurosamente y se eli-

minan todos los errores (denominados «bugs», en inglés) que puedan aparecer.

• Mantenimiento. El programa se actualiza y modifica, cada vez que sea necesario, de modo que se

cumplan todas las necesidades de cambio de sus usuarios.

• Documentación. Escritura de las diferentes fases del ciclo de vida del software, esencialmente el
análisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas para
el mantenimiento.

Las dos primeras fases conducen a un diseño detallado escrito en forma de algoritmo. Durante la ter-
cera etapa (codificación) se implementa1 el algoritmo en un código escrito en un lenguaje de programa-
ción, reflejando las ideas desarrolladas en las fases de análisis y diseño.

Las fases de compilación y ejecución traducen y ejecutan el programa. En las fases de verificación y
depuración el programador busca errores de las etapas anteriores y los elimina. Comprobará que mientras
más tiempo se gaste en la fase de análisis y diseño, menos se gastará en la depuración del programa. Por
último, se debe realizar la documentación del programa.

Antes de conocer las tareas a realizar en cada fase, vamos a considerar el concepto y significado de la
palabra algoritmo. La palabra algoritmo se deriva de la traducción al latín de la palabra Alkhô-warîzmi2,
nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y
ecuaciones en el siglo IX. Un algoritmo es un método para resolver un problema mediante una serie de
pasos precisos, definidos y finitos.

1 En la última edición (21ª) del DRAE (Diccionario de la Real Academia Española) se ha aceptado el término implementar:

(Informática) «Poner en funcionamiento, aplicar métodos, medidas, etc. para llevar algo a cabo».

2 Escribió un tratado matemático famoso sobre manipulación de números y ecuaciones titulado Kitab al-jabr w’almugaba-

la. La palabra álgebra se derivó, por su semejanza sonora, de al-jabr.

cap.2 28/6/05 12:17 Página 43

Metodología de la programación y desarrollo de softwaremm43

Características de un algoritmo

• preciso (indica 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 determinado de pasos).

Un algoritmo debe producir un resultado en un tiempo finito. Los métodos que utilizan algoritmos se deno-
minan métodos algorítmicos, en oposición a los métodos que implican algún juicio o interpretación que se deno-
minan métodos heurísticos. Los métodos algorítmicos se pueden implementar en computadoras; sin embargo,
los procesos heurísticos no han sido convertidos fácilmente en las computadoras. En los últimos años las téc-
nicas de inteligencia artificial han hecho posible la implementación del proceso heurístico en computadoras.

Ejemplos de algoritmos son: instrucciones para montar en una bicicleta, hacer una receta de cocina,
obtener el máximo común divisor de dos números, etc. Los algoritmos se pueden expresar por fórmulas,
diagramas de flujo o N-S y pseudocódigos. Esta última representación es la más utilizada para su uso con
lenguajes estructurados como C.

2.1.1. Análisis del problema

La primera fase de la resolución de un problema con computadora es el análisis del problema. Esta fase
requiere una clara definición, donde se contemple exactamente lo que debe hacer el programa y el resulta-
do o solución deseada.

Dado que se busca una solución por computadora, se precisan especificaciones detalladas de entrada

y salida. La Figura 2.1 muestra los requisitos que se deben definir en el análisis.

Resolución

de un
problema

Análisis

del

problema

Diseño

del

algoritmo

Resolución del
problema con
computadora

Figura 2.1. Análisis del problema

Para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas:

• ¿Qué entradas se requieren? (tipo de datos con los cuales se trabaja y cantidad).
• ¿Cuál es la salida deseada? (tipo de datos de los resultados y cantidad).
• ¿Qué método produce la salida deseada?
• Requisitos o requerimientos adicionales y restricciones a la solución.

Problema 2.1.
Se desea obtener una tabla con las depreciaciones acumuladas y los valores reales de cada año, de un
automóvil comprado en 1.800.000 pesetas en el año 1996, durante los seis años siguientes suponiendo

cap.2 28/6/05 12:17 Página 44

44mmProgramación en C: Metodología, algoritmos y estructura de datos

un valor de recuperación o rescate de 120.000. Realizar el análisis del problema, conociendo la fórmu-
la de la depreciación anual constante D para cada año de vida útil.

coste - valor de recuperación
D = ——————————————

vida útil

1.800.000 – 120.000 1.680.000

D = —————————— = ————— = 280.000

6

6

Entrada coste original

{
{
{

Salida

vida útil
valor de recuperación
depreciación anual por año
depreciación acumulada en cada año
valor del automóvil en cada año

Proceso depreciación acumulada

cálculo de la depreciación acumulada cada año
cálculo del valor del automóvil en cada año

La tabla siguiente muestra la salida solicitada

Año

Depreciación

1 (1996)
2 (1997)
3 (1998)
4 (1999)
5 (2000)
6 (2001)

280.000
280.000
280.000
280.000
280.000
280.000

Depreciación
acumulada

280.000
560.000
840.000
1.120.000
1.400.000
2.180.000

Valor anual

1.520.000
1.240.000
960.000
680.000
400.000
120.000

2.1.2. Diseño del algoritmo

En la etapa de análisis del proceso de programación se determina qué hace el programa. En la etapa de dise-
ño se determina cómo hace el programa la tarea solicitada. Los métodos más eficaces para el proceso de dise-
ño se basan en el conocido divide y vencerás. Es decir, la resolución de un problema complejo se realiza
dividiendo el problema en subproblemas y a continuación dividiendo estos subproblemas en otros de nivel
más bajo, hasta que pueda ser implementada una solución en la computadora. Este método se conoce técni-
camente como diseño descendente (top-down) o modular. El proceso de romper el problema en cada eta-
pa y expresar cada paso en forma más detallada se denomina refinamiento sucesivo.

Cada subprograma es resuelto mediante un módulo (subprograma) que tiene un sólo punto de entra-

da y un sólo punto de salida.

Cualquier programa bien diseñado consta de un programa principal (el módulo de nivel más alto) que lla-
ma a subprogramas (módulos de nivel más bajo) que a su vez pueden llamar a otros subprogramas. Los pro-
gramas estructurados de esta forma se dice que tienen un 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 (incluso por diferentes programadores) y a continuación com-
binarlos entre sí. El proceso implica la ejecución de los siguientes pasos hasta que el programa se termina:

cap.2 28/6/05 12:17 Página 45

Metodolog
  • Links de descarga
http://lwp-l.com/pdf17357

Comentarios de: Capítulo 2 - Metodología de la programación y desarrollo de software (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad