Tema2 20Algoritmos
y desarrollo de software
Marta Zorrilla
Universidad de Cantabria
Marta Zorrilla – Universidad de Cantabria
Metodología de la programación
Objetivos
Fases en la solución de un problema de programación. Ciclo de vida del
software.
Introducir el concepto de algoritmo y sus características.
Mostrar las diferentes técnicas para representar algoritmos.Introducir la programación estructurada y el diseño descendente.
Contenidos
1.Ciclo de vida del software
2.Concepto de algoritmo.
3.Formas de describir un algoritmo.
4.Análisis, desarrollo e implementación de un algoritmo.
Bibliografía:
[Joy05] Cap. 2, [Ral97] Cap. 1-4,9 y 12, [Bow94] Cap. 2, [Gar02] Cap. 1
Marta Zorrilla – Universidad de Cantabria
Objetivo de la programación
Objetivo → utilizar la computadora como una
herramienta para la resolución de problemas.
Fases:
Análisis del problema (especificación).
Diseño o desarrollo de un algoritmo.
Transformación del algoritmo en un programa (codificación).
Compilación y ejecución del programa
Verificación y validación
Depuración
Mantenimiento
Documentación
Marta Zorrilla – Universidad de CantabriaDocumentación
Un sistema pobremente documentado carece de valor aunque
haya funcionado bien en alguna ocasión ya que resulta
inmantenible.
Documentar software es una tarea complicada y exige un
criterio de ingeniería maduro.
Documentar de forma concisa es un error habitual, pero el otro
extremo puede resultar igual de perjudicial.
Para cada etapa del proceso de desarrollo se generarán unoo
más documentos.
Marta Zorrilla – Universidad de Cantabria
Esquema de documentación
(proyectos grandes)
Anteproyecto y/o Especificación de requisitos
Planificación del proyecto
Especificación de requisitos detallada
Gestión de la configuración
Garantía calidad
Especificación de diseño
Modelo de datos
Modelo de interfaz
Arquitectura software (componentes)
Planes deverificación y validación
Manual de usuario
Manual del administrador
Anexos (documentación de referencia)
Marta Zorrilla – Universidad de Cantabria
Documentación del código
Nombres descriptivos
Indentación coherente
Debería usar nombres nemónicos para los paquetes, los tipos, las variables y
las etiquetas de ramificación, mediante los cuales se pudiese vislumbrar su uso
y/osignificado.
Establecer convención y ser coherente con ella. Por ejemplo: empezar en
mayúsculas los nombres de las funciones, en minúsculas los nombres de las
variables y las constantes por completo en mayúsculas.
Una indentación coherente del código ayuda al lector a comprender la
estructura lógica de mismo.
Comentarios informativos
No cometer el error de escribir comentarios que noaportan conocimiento al
lector.
Ejemplos donde se justifican:
Permitir que el lector evite leer alguna parte del código como averiguar el efecto de
algunas fórmulas complicadas
Documentar los argumentos y los valores que devuelven las funciones, de modo que
los clientes no tengan que leer la implementación para comprender cómo usar la
función.
Explicar un algoritmo o paso oscuro
Señalardeficiencias del código y partes de código incompleto
Marta Zorrilla – Universidad de Cantabria
Concepto de algoritmo
Definiciones:
Conjunto de instrucciones que especifican la secuencia
ordenada de operaciones a realizar para resolver un
problema.
Un conjunto de instrucciones combinadas de forma
adecuada para resolver un determinado problema en una
cantidad finita de tiempo. Cada instrucciónes una
indicación sencilla y no ambigua.
Marta Zorrilla – Universidad de Cantabria
Características que debe tener
Debe ser comprensible y preciso (sin ambigüedades),
e indicar el orden de realización de cada paso.
Debe ser predecible. Si se aplica partiendo de la misma
situación inicial, debe obtenerse siempre el mismo
resultado.
Debe ser finito. El algoritmo debe terminar en...
Regístrate para leer el documento completo.