Tema VII. Metodología de desarrollo de
proyectos básicos de software
Objetivo: El alumno elaborará un proyecto básico de software aplicando la teoría del diseño de programas y herramientas de
7.1 Fases en el desarrollo de proyectos de software
Apuntadores
7.1 Fases en el desarrollo de proyectos de software
CASA DIRECCION DE MEMORIA NOMBRE
VARIABLE
DATO
7.1 Fases en el desarrollo de proyectos de software
Declaración de apuntadores
La forma general de la declaración de un apuntador es:
tipo_de_dato *nombre_apuntador
tipo_de_dato especifica el tipo de datos al que apunta el apuntador.
7.1 Fases en el desarrollo de proyectos de software
El operador de dirección &
El lenguaje C también proporciona un operador, &, que puede utilizar en caso de que desee saber el valor izquierdo de una variable. Este operador se llama operador de dirección debido a que se evalúa como la dirección (es decir, el valor izquierdo) de una variable.
7.1 Fases en el desarrollo de proyectos de software
NOTA:
7.1 Fases en el desarrollo de proyectos de software
El operador de indirección
7.1 Fases en el desarrollo de proyectos de software
Apuntadores NULOS
Se dice que un apuntador es nulo cuando su valor derecho es 0. Un apuntador nulo nunca puede apuntar a datos válidos. Por esta razón, puede verificar un apuntador para ver si tiene asignado 0; si es así, se sabe que se trata de un apuntador nulo y que no es válido.
char *aptr_c; int *aptr_int;
7.1 Fases en el desarrollo de proyectos de software
Aritmética de apuntadores
7.1 Fases en el desarrollo de proyectos de software
Operadores no válidas con apuntadores
• No se pueden sumar dos apuntadores
• No se pueden multiplicar dos apuntadores
7.1 Fases en el desarrollo de proyectos de software
Resumen
• Un apuntador es una variable cuyo valor apunta a otra variable.
• El operador de dirección (&) se puede usar para obtener la dirección en memoria de una variable.
• En una declaración de apuntador, el asterisco (*) le indica al compilador que la variable es una variable de apuntador.
• Puede actualizar el valor de una variable a la que hace referencia una variable de apuntador.
7.1 Fases en el desarrollo de proyectos de software
Actualización de variables por medio de
apuntadores
7.1 Fases en el desarrollo de proyectos de software
Encuentre los errores en la siguiente declaración
de apuntadores
int x, *p, &y;
char* b= "Cadena larga";
char* c= 'C';
float x;
7.1 Fases en el desarrollo de proyectos de software
Debido a que un nombre de arreglo al que no le sigue un índice se interpreta como un apuntador al primer elemento del arreglo, se puede asignar la dirección de inicio de un arreglo a un apuntador del mismo tipo de datos; luego puede acceder a cualquier elemento del arreglo sumando el entero apropiado al apuntador. El valor del entero que utiliza es el mismo que el valor del índice del elemento al que desea acceder.
7.1 Fases en el desarrollo de proyectos de software
En otras palabras, dado un arreglo, arreglo, y un apuntador,
aptr_arreglo, si arreglo y aptr_arreglo son del mismo tipo de datos, y
aptr_arreglo contiene la dirección de inicio del arreglo, es decir:
aptr_arreglo = arreglo;
Entonces la expresión arreglo[n] equivale a la expresión
*(aptr_arreglo + n)
7.1 Fases en el desarrollo de proyectos de software
Lectura y Escritura de Archivos
Flujo
7.1 Fases en el desarrollo de proyectos de software
Como abrir archivos
La función fopen() de E/S de C, abre un archivo y le asocia un flujo. Es necesario especificar el método de apertura del archivo y el nombre del mismo como argumentos para la función fopen().
La sintaxis de la función fopen() es
#include <stdio.h>
7.1 Fases en el desarrollo de proyectos de software
r Abre un archivo en modo lectura
w Abre un archivo en modo lectura
a Abre un archivo en modo agregable
r+ Abre un archivo ya existente para modificar (lectura / escritura)
w+ Crea un archivo para escribir / leer (si ya existe se pierden los datos)
a+ Abre un archivo para modificar (escribir / leer) al final.
rb Abre un archivo binario en modo lectura
wb Abre un archivo binario en modo lectura
ab Abre un archivo binario en modo agregable
r+b Abre un archivo binario ya existente para modificar (lectura / escritura)
w+b
Crea un archivo binario para escribir / leer (si ya existe se pierden los datos)
a+b Abre un archivo binario para modificar (escribir / leer) al final.
7.1 Fases en el desarrollo de proyectos de software
Como cerrar un archivo
Después de leer, escribir o agregar algunos datos nuevos a un archivo en disco, tiene que disociar el archivo de un flujo específico por medio de una llamada a la función fclose().
La sintaxis de la función fclose() es
7.1 Fases en el desarrollo de proyectos de software
Principios de diseño de Sistemas de Software
7.1 Fases en el desarrollo de proyectos de software
1. Modularidad mediante diseño descendente.
2. Abstracción y ocultamiento de la información.
3. Modificabilidad
4. Comprensibilidad y fiabilidad
5. Interfaces de usuario.
6. Programación segura contra fallos
7. Facilidad de uso.
8. Eficiencia
9. Estilo de programación.
10. Depuración.
7.1 Fases en el desarrollo de proyectos de software
1. Modularidad mediante diseño descendente.
La descomposición del problema se realiza a través de un diseño descendente que a través de niveles sucesivos de refinamiento se obtendrán diferentes módulos.
La modularidad tiene un impacto positivo en los siguientes aspectos de la programación.
Construcción del programa.
Depuración del programa.
Legibilidad.
7.1 Fases en el desarrollo de proyectos de software
2. Abstracción y ocultamiento de la información
La abstracción indica especificaciones funcionales de cada caja negra; es responsable de su vista externa o pública. Sin embargo, la abstracción ayuda también a identificar detalles de lo que se puede
ocultar de la vista pública –detalles que no están en las especificaciones pero deben ser privados–
7.1 Fases en el desarrollo de proyectos de software
3. Modificabilidad
7.1 Fases en el desarrollo de proyectos de software
4. Comprensibilidad y fiabilidad
Un sistema se dice que es comprensible si refleja directamente una visión natural del mundo. Una característica de un sistema eficaz es la simplicidad. En general, un sistema sencillo puede ser comprendido más fácilmente que uno complejo.
7.1 Fases en el desarrollo de proyectos de software
5. Interfaces de usuario
Otro criterio importante a tener presente es el diseño de la interfaz del usuario. Algunas directrices a tener en cuenta pueden ser:
En un entorno interactivo se ha de tener en cuenta las preguntas posibles al usuario y sobre todo aquellas que solicitan entradas de usuario.
7.1 Fases en el desarrollo de proyectos de software
6. Programación segura contra fallos
7.1 Fases en el desarrollo de proyectos de software
7. Facilidad de uso
7.1 Fases en el desarrollo de proyectos de software
8. Eficiencia
9. Estilo de programación
Un estilo de programación se refiere a la forma en que se da formato al código fuente. Para C, esto involucra la forma en que se ubican las llaves, se indenta el código y se utilizan los paréntesis.
Debe de ser un buen hábito para los programadores marcando su personalidad o integración con el equipo.
Claro está que estos estilos pueden depender de diferentes factores entre ellos el lenguaje de programación, la dimensión de las aplicaciones y
10. Depuración
Es el proceso de identificar y corregir errores de programación. En inglés se conoce como debugging, ya que se asemeja a la eliminación de bichos.
Si bien existen técnicas para la revisión sistemática del código fuente y se cuenta con medios computacionales para la detección de errores (depuradores), sigue siendo en buena medida una actividad manual, que desafía la paciencia, la imaginación y la intuición del programador. Muchas veces se requiere incluir en el código fuente instrucciones auxiliares que permitan el seguimiento de la ejecución del programa, presentado los valores de variables y direcciones de memoria y ralentizando la salida de datos.
11. 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.
7.2 Herramientas de desarrollo en entornos visuales
7.2 Herramientas de desarrollo en entornos visuales
7.2 Herramientas de desarrollo en entornos visuales
7.2 Herramientas de desarrollo en entornos visuales
GNAT Programming Studio
7.2 Herramientas de desarrollo en entornos visuales
7.2 Herramientas de desarrollo en entornos visuales