Este documento presenta una introducción al desarrollo de software. Explica que un sistema informático está compuesto por hardware y software, y que el desarrollo de software ha sido históricamente problemático debido a fallas, costos impredecibles, y plazos retrasados. Luego, introduce conceptos clave como algoritmos, programas, lenguajes de programación, y el proceso general de desarrollo de software que incluye la entrada, procesamiento y salida de datos.
2. Page 2
INTRODUCCIÓN
DESARROLLO DE SOFTWARE
Un sistema informático está compuesto por hardware
y software. En cuanto al hardware, su producción se
realiza sistemáticamente y la base de conocimiento
para el desarrollo de dicha actividad está claramente
definida. La fiabilidad del hardware es, en principio,
equiparable a la de cualquier otra máquina construida
por el hombre. Sin embargo, respecto del software,
su construcción y resultados han sido históricamente
cuestionados debido a los problemas asociados,
entre ellos podemos destacar los siguientes:
3. Page 3
INTRODUCCIÓN
DESARROLLO DE SOFTWARE
• Los sistemas no responden a las expectativas de los
usuarios.
• Los programas “fallan” con cierta frecuencia.
• Los costes del software son difíciles de prever y
normalmente superan las estimaciones.
• La modificación del software es una tarea difícil y costosa.
• El software se suele presentar fuera del plazo establecido y
con menos prestaciones de las consideradas inicialmente.
• Normalmente, es difícil cambiar de entorno hardware usando
el mismo software.
• El aprovechamiento óptimo de los recursos (personas,
tiempo, dinero, herramientas, etc.) no suele cumplirse.
4. Page 4
Como el usuario explica
Como propone el profesor
Como el programador analiza
Como el estudiante analiza
Como el programador visualiza
Como el estudiante soluciona
Como el programador programa
Como el estudiante resuelve
Como el programador lo vende
Como el estudiante presenta
Como el programador documenta
Como el estudiante hace el informe
Como funciona
ELABORACIÓN DE SOFTWARE
Lo que realmente se
quería
6. Page 6
PROGRAMA
DESARROLLO DE SOFTWARE
Un programa informático es un conjunto de instrucciones que una
vez ejecutadas realizarán una o varias tareas dictadas por el
programador en una computadora. Ese conjunto de instrucciones
fueron escritas en algún lenguaje de programación. El programa
debe ser compilado o interpretado para poder ser ejecutado y así
cumplir su objetivo
ALGORITMOS
Secuencia de acciones o pasos que permite resolver un
problema. Un mismo problema puede ser resuelto con
distintos algoritmos.
Es un conjunto prescrito de instrucciones o reglas bien
definidas, ordenadas y finitas que permite realizar una
actividad mediante pasos sucesivos que no generen
dudas a quien deba realizar dicha actividad.
7. Page 7
DESARROLLO DE SOFTWARE
PROGRAMA
LENGUAJE DE PROGRAMACION
Conjunto de reglas, símbolos y palabras
especiales utilizadas para construir un programa.
DEPURADOR
Es el encargado de depurar o detectar los errores
existentes en el codigo de un lenguaje de
programación, conoce toda las reglas sintácticas y
semánticas.
COMPILADOR
Programa que traduce un programa escrito en
lenguaje de alto nivel a lenguaje de máquina.
8. Page 8
DESARROLLO DE SOFTWARE
PROGRAMA
Traducción o codificación de un algoritmo a un lenguaje
de programación; o sea, una secuencia de instrucciones
que indica las acciones que han de ejecutarse.
ALGORITMO L. PROGRAMACIÓN DEPURADOR COMPILADOR L. MAQUINA PROGRAMA
PROGRAMA
LENGUAJE DE MAQUINA
Lenguaje usado directamente por la computadora
y compuesto de instrucciones codificadas en
sistema binario.
9. Page 9
DESARROLLO DE SOFTWARE
Al especificar un problema/programa debemos considerar 3
parámetros importantes:
¿Cómo están organizados y qué formato tienen los datos
que el programa va a procesar?
¿Van a ser creados por el programa?
¿Se capturan mediante un terminal?
¿Se leerán desde un dispositivo de almacenamiento?
¿El dato será en formato de flujo continuo de caracteres?
¿Va a ser ingresados ítem a ítem por un operador en una
pantalla?
¿Será leído registro a registro desde un archivo?
¿Cómo se accesan los archivos?
¿El dato será numérico o alfanumérico, vendrá
empaquetado?
ENTRADA
(input)
PROGRAMA
10. Page 10
DESARROLLO DE SOFTWARE
PROCESAMIENTO
(process)
¿Cuál es el algoritmo requerido para transformar
los datos de entrada en la salida deseada?
¿Qué cálculos son necesarios?
¿Es necesario ordenar los datos de entrada?
¿Son necesarias instancias de validación para
asegurar la consistencia de la información?
¿Se debe considerar cortes de control?
¿Los datos mantendrán un formato entre la
entrada y la salida?
¿Serán necesarios depósitos temporales de datos
tales como tablas o archivos de paso?
¿Cuáles son las condiciones de borde?
PROGRAMA
11. Page 11
DESARROLLO DE SOFTWARE
SALIDA
(output)
¿Cuál es la estructura , contenido y formato
de la salida deseada?
¿La información de salida se imprimirá,
desplegará en pantalla o grabará en disco?
¿En caso de listados, cuáles serán los
títulos? ¿Se Incluirá pie de página?
¿Para una salida en pantalla, cuál es el
formato de esta, se considera la posibilidad
de impresión?
¿Para grabación en archivos , cuál es la
descripción del registro?
¿En qué formato se grabarán los datos?
PROGRAMA
13. Page 13
ALGORITMO
La solución de un problema exige el diseño del algoritmo. Un algoritmo es
la especificación de la secuencia ordenada de pasos a realizar para
solucionar un problema en un tiempo finito.
Está vinculado a una maquina abstracta. Por lo tanto, los algoritmos son
independientes de los lenguajes de programación y de las maquinas en las
que se lo ejecutara.
Para la correcta elaboración de un algoritmo es necesario seguir una
metodología básica para resolver un problema:
• Definición del problema.
• Análisis del problema.
• Diseño de la solución.
• Implementación
• Pruebas.
DESARROLLO DE SOFTWARE
14. Page 14
DESARROLLO DE SOFTWARE
La representación de un algoritmo depende del uso futuro, del objetivo y la
experiencia de quien lo escriba. Entre las alternativas se pueden encontrar:
Diagrama de flujo
Diagrama de Caja o N-S (Nassi-Scheiderman)
Pseudocódigo
Lenguaje natural humano
Formulas
Lenguajes de programación
ALGORITMO
16. Page 16
Un lenguaje de programación es un sistema de comunicación
compuesto por un vocabulario y una gramática; todo lenguaje esta
compuesto por un conjunto de símbolos y un conjunto de reglas que
indican como ha de utilizarse el conjunto de símbolos (sintaxis) para
dar un significado (semántico).
LENGUAJES DE PROGRAMACIÓN
Lenguaje de Bajo Nivel o Lenguaje de Máquina
Lenguaje de Medio Nivel o Lenguaje Ensamblador
Lenguaje de Alto Nivel
Los lenguajes de programación son lenguajes creado por el ser
humano para poder comunicarse con las computadoras. Estos son
un conjunto de símbolos y palabras que permiten al usuario de una
computadora darle instrucciones y órdenes para que esta las pueda
realizar.
DESARROLLO DE SOFTWARE
17. Page 17
LENGUAJES DE PROGRAMACIÓN
LENGUAJE DE BAJO NIVEL O DE MÁQUINA
Es el lenguaje de programación que entiende directamente la computadora o
máquina. Este lenguaje de programación utiliza el alfabeto binario, es decir,
el 0 y el 1. Con estos dos únicos dígitos, conocidos como bits, forma las
cadenas binarias (combinaciones de ceros y unos) son con las que se
escriben las instrucciones que el microprocesador de la computadora
entiende nuestra peticiones. El lenguaje máquina fue el primer lenguaje de
programación. Dejo de usarse por su gran dificultad y por la facilidad para
cometer errores.
DESARROLLO DE SOFTWARE
18. Page 18
LENGUAJES DE PROGRAMACIÓN
LENGUAJE DE MEDIO NIVEL O ENSAMBLADOR
El lenguaje ensamblador fue el primer lenguaje de programación de bajo
nivel que trato de sustituir el lenguaje máquina por otro mucho más parecido
al de los seres humanos. El programa fuente es un conjunto de
instrucciones (funciones) escrito en lenguaje ensamblador, y cuyo objeto es
la traducción a lenguaje máquina del programa fuente. Los lenguajes de este
tipo son agiles, fáciles de usar, específicos de cada procesador.
La compilación (compilador) es el proceso de traducción de programas
fuente a programas objeto, para la ejecución en una computadora; un
ejemplo de este lenguaje es el C, Ensamblador
L. PROGRAMACIÓN COMPILADOR PROGRAMA
DESARROLLO DE SOFTWARE
19. Page 19
LENGUAJES DE PROGRAMACIÓN
LENGUAJE DE ALTO NIVEL
Este lenguaje es independiente de la máquina, lo podemos usar en
cualquier computador con muy pocas modificaciones o sin ellas, son muy
similares al lenguaje humano. Necesitan un programa interprete o
compilador que lo traduzca a uno de bajo nivel y posteriormente al lenguaje
de máquina para que la computadora pueda entenderlo. Este tipo de
lenguaje es más fáciles de aprender porque se usan palabras o comandos
del lenguaje natural, como por ejemplo: palabras en inglés. Este es el caso
del BASIC, JAVA , C++,PASCAL, COBOL, FORTRAN, LISP
DESARROLLO DE SOFTWARE
21. Page 21
LENGUAJE C
CABECERA
CUERPO
BILBIOTECAS, LIBRERÍAS
VARIABLES GLOBALES
CONSTANTES GLOBALES
Int a, b, c ;
c=2 ;
ESTRUCTURA DE UN PROGRAMA EN C
DESARROLLO DE SOFTWARE
FUNCION PRINCIPAL
VARIABLES LOCALES
CONSTANTES LOCALES
SENTENCIAS
ESTRUCTIRAS DE CONTROL
FUNCIONES
PROCEDEMIENTOS
22. Page 22
LENGUAJE C
CABECERA / BLIBLIOTECAS O LIBRERIAS
Las librerías o bibliotecas de C, consisten en un paquete lógico de
características y propiedades que pueden ser usadas dentro del cuerpo de
un programa en C, permiten el uso de funciones especificas para facilitar la
programación.
Para habilitar el uso de una librería o biblioteca basta con declararla con
el siguiente comando: # include < nombre_libreria >
Ejemplo: # include <conio.h>
Como podemos notar todas las librería o bibliotecas tiene la extensión
".h" esto es propio del lenguaje C, a continuación se mostrara una lista
de las librerías mas usadas con sus respectiva descripción y posibles
funciones que permiten usar.
DESARROLLO DE SOFTWARE
23. Page 23
LENGUAJE C
CABECERA / BLIBLIOTECAS O LIBRERIAS
BIBLIOTECA/
LIBRERIA
DESCRIPCION FUNCIONES
stdio.h Manipulación de Ficheros, comandos de
entrada/salida
printf - salir datos
scanf - introducir datos
conio.h para crear interfaces basadas en texto clrscr () - Borra la pantalla
getch () – pausa
gotoxy (int x, int y) - mueve el cursor
stdlib.h gestión de memoria dinámica, control de procesos
y otras
abs – valor absoluto
div – division entera
iostream.h utilizado para operaciones de entrada/salida cin : Flujo de entrada
cout : Flujo de salida
cerr : error no almc.
clog : error almacenado.
math.h diseñado para operaciones matemáticas básicas sin, cos,tan
string.h utilidad para trabajar con cadenas de caracteres y
algunas operaciones de manipulación de memoria
stract – añade una cadena a otra.
strcpy – copia una cadena en otras
DESARROLLO DE SOFTWARE
24. Page 24
LENGUAJE C
CABECERA / VARIABLES Y CONSTANTES GLOBALES
Un identificador consisten en la denominación de un parámetro la cual
puede admitir y/o adquirir valores, estas pueden ser de tipo variables o
constantes.
Un identificador del tipo Variable se lo debe declarar en función a su
usabilidad puede ir tomando diferentes valores en todo el programa,
mientras que una constante permaneceré siempre con el mismo valor
durante toda la ejecuciones un programa; por otra parte su nombre debe
tener reglas para su correcta creación; a continuación las reglas y los tipos
de datos admisibles en C.
Reglas para nombrar un Variable o Constante
1. No debe comenzar con un numero
2. No debe tener símbolos especiales excepto el guion bajo _
3. Pueden estar en mayúsculas o minúsculas (diferenciación)
4. No se admite la ñ Ñ ni tildes
5. No pueden existir espacios en blanco.
DESARROLLO DE SOFTWARE
25. Page 25
LENGUAJE C
CABECERA / VARIABLES Y CONSTANTES GLOBALES
TIPOS DE DATOS EN C
TIPO DE
DATO
PALABRA
RESERVADA
EJEMPLO
Entero int int numero=0;
Real float float numero=12.2;
Real exponencial double double e=1.20E10
Carácter char char letra = ‘a’;
Cadena de carácter Char [ ] char palabra[10] = “HOLA”;
Ejemplo declaración de una Variable: int a
Ejemplo declaración de una Constante: float pi=3.1416
La diferencia entre una variable/constante GLOBAL y una variable/constante
LOCAL es el lugar en donde esta declarado; Así pues si esta declarado en
la Cabecera del programa es GLOBAL y podrá ser usada en todo el
programa; Pero si esta declarada dentro de alguna función o procedimiento
solo podrá ser usada dentro del cuerpo de esa función o procedimiento.
DESARROLLO DE SOFTWARE
26. Page 26
LENGUAJE C
CUERPO / FUNCION PRINCIPAL
DESARROLLO DE SOFTWARE
La función principal o función MAIN, es la encargada de ejecutar todas las
sentencias escritas dentro del cuerpo de un programa en C, dentro de ella
se pueden declara variables y constantes según su necesidad; en el caso de
que se creen otras funciones o procedimientos aparte de la función principal,
esta y solo esta es la que se ejecuta en prioridad y decidirá el orden del
resto de funciones y procedimientos.
La función MAIN debe ser declara con algún tipo de dato en dependencia
del resultado a expresar y además debe llevar ( ) en caso de que admita
valores de requerimiento; se utilizan { } para indicar el inicio y fin de la
función principal
27. Page 27
DESARROLLO DE SOFTWARE
LENGUAJE C
CUERPO / PROCEDIMEINTOS
Un procedimiento es un sub-programa o rutina al que se le asigna un cierto
nombre y que realiza unas determinadas operaciones. La ventaja que tiene
utilizar procedimientos es que su código se escribe una sola vez pero
pueden ser ejecutados desde tantos puntos del programa como se desee.
Dentro del código que determina el funcionamiento de un procedimiento se
pueden a su vez ejecutar otros procedimientos, incluso sí mismo de forma
recursiva.
void escribir (int r)
{
printf (“El resultado es %dn”,r);
};
28. Page 28
DESARROLLO DE SOFTWARE
LENGUAJE C
CUERPO / FUNCIONES
Una función es una porción de codigo aislado, se encuentra dentro del
cuerpo del programa a manera de sub-programa similar a un
procedimiento, entonces una función es un procedimiento que,
adicionalmente, devuelve un valor como resultado de su ejecución. La
ventaja de las funciones es que pueden utilizarse en asignaciones,
expresiones matemáticas, etc.
int suma_d (int x)
{
int d, suma;
suma=0;
d = x%10;
while (x >0)
{
suma = suma + d;
x = x/10;
d = x%10;
}
return suma;
} ;
29. Page 29
DESARROLLO DE SOFTWARE
LENGUAJE C
CUERPO / SENTENCIA
Una sentencia es cualquier expresión en C que se espera que tenga alguna
consecuencia. Pueden ser asignaciones, operaciones, llamadas a
funciones, procedimientos o combinaciones de ellas. En el Lenguaje de
Programación C, toda sentencia termina con un ;.
Operadores aritméticos
+ Suma los operadores los cuales pueden ser enteros o reales.
- Resta los operadores y pueden ser enteros o reales.
* Multiplica los operadores y pueden ser enteros o reales.
/
Divide los operadores de tipo real o entero. Si ambos operadores son de tipo
entero, el resultado será un entero. Si alguno de los operadores es de tipo real
el resultado será de tipo real
% Módulo o resto de una división entera.
30. Page 30
DESARROLLO DE SOFTWARE
LENGUAJE C
CUERPO / SENTENCIA
Operadores Relacionales
< Primer operador menor que el segundo
> Primer operador mayor que el segundo
>= Primer operador menor o igual que el segundo
<= Primer operador mayor o igual que el segundo
== Primer operador igual que el segundo
!= Primer operador distinto que el segundo
31. Page 31
DESARROLLO DE SOFTWARE
LENGUAJE C
CUERPO / SENTENCIA
Operadores Lógico
&& and Da como resultado el valor lógico 1 si ambos operadores son distintos de 0
|| or El resultado es 0 si ambos operándoos son 0
! not El resultado es 0 si él operando tiene un valor distinto de 0
Operadores de Incremento y Decremento
++ Es para hacer incrementos (en 1) (incremento)
-- Es para hacer decrementos (en 1) (decremento)
32. Page 32
DESARROLLO DE SOFTWARE
PALABRAS RESERVADAS
auto default goto public this
Break do if register template
Case double inline return typedef
Catch else int short union
Char enum long signet unsignet
Class extern new sizeof virtual
Const float overload static void
Continue for private struct volatile
Delete friend protected switch while
LENGUAJE C
CUERPO / SENTENCIA