Está en la página 1de 54

FUNDAMENTOS

DEL SOFTWARE

M. Sc. Ing. Jorge Butler B.

1
ARCHIVOS
 Losarchivos son una agrupación de información en forma
de bytes y que se almacenan en un medio de
almacenamiento electrónico. Ejemplo:
 Un texto (documento)
 Un gráfico (foto)
 Un audio (música)
 Un video (película)
 Un programa (Office)
 Qué es un texto plano ?

2
ARCHIVOS
 Todo archivo debe tener un nombre
único que lo identifique.
 En algunos sistemas operativos se
requiere de una extensión, que indica
que tipo de archivo es o con que
programa se ha creado. Por ejemplo en
Windows tenemos:
 Libro.doc (doc indica que es un archivo
creado con Microsoft Word).
 Linux.ppt (ppt indica que es un archivo
creado con Microsoft Power Point).

3
ARCHIVOS
 En el caso del Sistema Operativo Linux no se hace uso de la
extensión.
 Linux es capaz de acceder a las cabeceras del archivo y
determinar su tipo, sin confiar demasiado en la extensión
que presente su nombre.

4
PROGRAMAS
 Los programas son un conjunto de órdenes
(instrucciones) que el computador debe ejecutar
para realizar una determinada acción prevista por
el ser humano.
 Realmente el elemento que entiende este conjunto
de ordenes es el procesador.

5
PROGRAMAS
 Esun archivo que ha sido copiado por el Sistema
Operativo desde una dispositivo de
almacenamiento (disco duro, memoria USB, etc) a
memoria RAM (Random Access memory) para ser
ejecutado por el procesador.

6
PROGRAMAS
 Solo los archivos compuestos por instrucciones
que el procesador entiende, pueden ser ejecutados
por el procesador. A estos se les denomina archivos
ejecutables.
 En el caso del sistema operativo Windows estos
archivos tiene extensión *.EXE o *.COM

7
PROCESO
 En el caso de Windows un
proceso es un programa
del propio sistema
operativo que está siendo
ejecutado. Los demás
programas en ejecución se
denominan Aplicaciones.

8
PROGRAMACIÓN
 Toda computadora requiere ser programada para
que realice una determinada función o tarea.
 Para ello existen personas llamadas
programadores, los cuales desarrollan estos
programas.

9
PROGRAMACIÓN
 Laprogramación es el proceso de diseñar, codificar,
depurar y mantener el código fuente de programas
computacionales. El código fuente es escrito en un lenguaje
de programación. El propósito de la programación es crear
programas que exhiban un comportamiento deseado.
 La programación es el soporte fundamental a la ingeniería.
 Las matemáticas son la base para la programación.

10
CONSTRUYENDO PROGRAMAS
 Losprogramadores empiezan razonando como
solucionar un determinado problema :

P
i
ens
o

11
ALGORITMOS
 Luego plasman la solución elaborando un
algoritmo.
 Un algoritmo es un conjunto 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.

12
ALGORITMOS
 Un algoritmo se define
como un método que se
realiza paso a paso para
solucionar un problema
que termina en un número
finito de pasos.

13
ALGORITMOS
 Resolución de un problema desde el punto de vista
algorítmico :
 Análisis preliminar o evaluación del problema : Estudiar el
problema en general y ver que parte nos interesa. El objetivo
de ésta fase es comprender el problema.
 Definición o análisis del problema : Ver que es lo que entra y
que es lo que sale, las posibles condiciones o restricciones.
 Diseño del algoritmo : Diseñar la solución. Una vez
comprendido el problema se trata de determinar que pasos o
acciones tenemos que realizar para resolverlo.

14
ALGORITMOS
 Las características de un algoritmo son:
 Debe ser preciso. e indicar el orden de realización de cada
paso.
 Debe ser definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado cada vez.
 Debe ser finito. Si se sigue un algoritmo, se debe terminar en
algún momento ; o sea debe tener un número finito de pasos.
 La definición de un algoritmo debe describir tres partes :
Entrada, Proceso y Salida.

15
ALGORITMOS: EJEMPLO
Deseo calcular
la suma de los diez
primeros
números Suma = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10

Se inicializa la variable suma :


Suma = 0
Se inicializa la variable contador :
Contador = 1
Suma = Suma + Contador
Incrementa Contador
Es Contador menor a 11 entonces Vuelve a sumar
Fin
ALGORITMOS: DOCUMENTANDO
 Para documentar un algoritmo se puede emplear el lenguaje
natural, sin embargo este es ambiguo y extenso. Por ellos es
que se utiliza un "lenguaje" más estructurado. Tenemos dos
opciones:
 Pseudocódigo
 Diagramas de flujo de Datos

17
ALGORITMOS: DFD
 Los diagramas de flujo de datos o DFD, son descripciones
gráficas de los algoritmos; usan símbolos conectados con
flechas para indicar la secuencia de instrucciones.
 Un diagrama de flujo se puede documentar mediante
diversos programas como:
 Microsoft Word y Power Point, con la opción Insertar -
Formas.
 Microsoft Visio.
 Editores de DFD.
 Todos estos programas solo nos permite documentar el
diagrama de flujo de datos.

18
ALGORITMOS: DFD
 Otra opción es trabajar con
un software que no
solamente me permita
documentar el DFD, sino
que también nos permita
ejecutarlo.
 Uno de estos programas de
denomina FlowCode.

19
PROGRAMA
 Luego el algoritmo se convierte a una programa, mediante
el empleo de un Lenguaje de Programación.
 Un programa es un conjunto de instrucciones (ordenes) que
debe ejecutar el procesador.
 Un programa esta “construido” utilizando un Lenguaje de
Programación.

20
PROGRAMA
 Todo programa debe tener por lo menos una entrada y una
salida. Su funcionamiento es:
 El programa lee un dato la entrada (por ejemplo: lee el
teclado) y lo almacena en una variable.
 Calcula un nuevo valor para la salida en función a los datos de
entrada y el algoritmo implementado. En función a lo
complejo que puede ser la información de la salida, esta se
puede almacenar en una variable.
 Finalmente el programa envía el nuevo valor a la salida del
computador (por ejemplo: la pantalla de video).

21
22
LENGUAJE DE PROGRAMACIÓN
 Es un lenguaje formal diseñado para expresar procesos que
pueden ser llevados a cabo por máquinas como las
computadoras.
 Se emplean para crear programas que controlen el
comportamiento físico y lógico de una máquina, para
expresar algoritmos con precisión, o como modo de
comunicación humana (redes de datos).
 Un lenguaje de programación es un idioma artificial.

23
LENGUAJE DE PROGRAMACIÓN
 Está formado por un conjunto de símbolos y reglas
sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones. Estos lenguajes
se clasifican en dos categorías:

24
LENGUAJES DE BAJO NIVEL
 Lenguaje de Máquina: Es el lenguaje "natural" del
procesador. Esta basado en "1´s" y "0´s". Es también
denominado Lenguaje Binario, en donde las instrucciones
del procesador están codificadas mediante una secuencia de
"1´s" y "0´s". Estos códigos se denominan byte code.

25
LENGUAJES DE BAJO NIVEL
 LenguajeEnsamblador: En este lenguaje las instrucciones
(secuencia de “1” y “0”) se representan mediante nombres
denominados nemónicos. Por ejemplo: ADD, SUB, MUL,
DIV, MOV, LD, etc. El lenguaje ensamblador es una forma
más comprensible que el lenguaje de máquina.

26
LENGUAJES DE BAJO NIVEL
 A continuaciónmostramos a modo de ejemplo un pequeño
programa en ensamblador:

 Existen programas especiales que convierten los nemónicos


(código fuente) en lenguaje de máquina (código
ejecutable). Dichos programas se llama Ensambladores.

27
LENGUAJES DE ALTO NIVEL
 Los lenguajes de programación de alto nivel se caracterizan
por expresar los algoritmos de una manera adecuada al
entendimiento humano (capacidad cognitiva humana), en
lugar de la capacidad ejecutora de las máquinas (lenguaje
ensamblador o lenguaje de máquina).
 Existe una gran variedad de lenguajes de alto nivel, como:
C, C++, Visual Basic, Java, Python, etc.

28
LENGUAJES DE ALTO NIVEL
 Sepuede distinguir dos tipos de lenguajes, según se realice
su ejecución:
 Interpretado, en donde cada instrucción que contiene el
programa se va convirtiendo a código máquina antes de
ejecutarla, lo que hace que sean más lentos.
 Compilado, en donde se convierte todo el programa en bloque
a código máquina y después se ejecuta.

29
LENGUAJES DE ALTO NIVEL
Compilar Interpretar
Genera un ejecutable. No genera un ejecutable.
El proceso de traducción se realiza una sola vez. El proceso de traducción se realiza en cada ejecución.

La ejecución es rápida debido a que el programa ya La ejecución es más lenta, ya que para cada línea del
ha sido traducido a código máquina. programa es necesario realizar la traducción

El ejecutable va dirigido a una plataforma concreta No hay ejecutable, así que si existe un intérprete para otra
(procesador, sistema operativo), siendo imposible plataforma, el programa se podrá ejecutar en ambas. Los
portarlo a otra plataforma. programas interpretados son más portables que los
compilados.
Una vez compilado el programa, el código fuente no El código fuente es necesario en cada ejecución (menor
es necesario para ejecutarlo. seguridad).
Los errores sintácticos se detectan durante la Los errores sintácticos se detectan durante la ejecución.
compilación. Si hay errores, el compilador no Dichos errores pueden quedar “ocultos”, si no es necesario
producirá un ejecutable. traducir la línea que lo contiene.

Un programa compilado puede, por error, afectar la Un programa interpretado con un comportamiento torpe
estabilidad de la plataforma. Puede hacer “colgar” la normalmente puede ser interrumpido sin dificultad, ya que
computadora. su ejecución está bajo el control del intérprete.

30
TIPOS DE LENGUAJES
PROGRAMACIÓN
Según la forma de las instrucciones, se pueden distinguir dos tipos
de lenguajes de programación:
Lenguajes de Programación textuales: Son los lenguajes de
programación en donde se debe escribir el programa, esto significa
conocer los comandos del lenguaje de programación que se está
usando y tener cuidado de no cometer errores de sintaxis.
Ejemplos:
 Ensamblador
 C, C++
 Pascal
 Fortran
 Java
 Etc.

31
TIPOS DE LENGUAJES
 Lenguajes
PROGRAMACIÓN
de Programación Iconográficos: Existe una
necesidad creciente que cada vez más profesionales
incursionen en la programación y sin que hayan estudiado
programación. Es por ello que se crearon los lenguajes de
programación iconográficos, cuyas características son:
 "Aíslan" la complejidad de los comandos o sentencias que
tiene cada lenguaje de programación y los representan como
íconos.
 Minimizan la actividad de escribir los programas,
simplemente los tiene que "dibujar", arrastrando iconos al
"área de programación".

32
TIPOS DE LENGUAJES
 Ejemplo:
PROGRAMACIÓN
 Lenguaje Ladder (escalera) para programar equipos
denominados PLC (Programmable Logic Controller). Esta
dirigido fuertemente a los ingenieros electricistas.

33
TIPOS DE LENGUAJES DE PROG.
 Ejemplos:
 Lenguaje G empleado con el software LabView, para la
automatización y control de equipos electrónicos.

34
LENGUAJES DE PROGRAMACIÓN
 Los programas son escritos utilizando Lenguajes de
Programación como: Assembler, C, C++, Java, Visual
Basic, etc.
 Una vez escritos son convertidos (compilados) a un
formato ejecutable (EXE o COM) para que puedan ser
ejecutados por el procesador.

35
LENGUAJES DE PROGRAMACIÓN
PROG1.CPP PROG1.CPP
void main( ) void main( )
{ Lenguaje de Alto Nivel {
printf(“Hola”); printf(“Hola”);
} (Programa Fuente) }

Compilador
PROG1.EXE PROG1.EXE
55 1A 34 13 FB 45 55 1A 34 13 FB 45
33 25 C5 A3 00 F1 33 25 C5 A3 00 F1
34 78 B1 C2 19 00
Programa Ejecutable 34 78 B1 C2 19 00
28 13 45 67 CC FF 28 13 45 67 CC FF

Lenguaje de Máquina

34: Suma 75: Suma


75: Resta 34: Resta
36
ELEMENTOS DE UN LENGUAJE DE
PROG.
Todo lenguaje de programación debe tener los siguientes
elementos:
 Variables o contenedores de datos: Una variable sirve para
almacenar temporalmente datos en un programa. Las variables
almacenan información en la memoria RAM del computador.
Dependiendo del tipo de datos que quiero almacenar en una
variable, esta puede ser de 1 bit, 8 bits (byte), 16 bits (word), etc.

37
ELEMENTOS DE UN LENGUAJE DE
PROG.
Tipo de Datos: Son los diversos "tamaños" de datos que puede
trabajar el lenguaje de programación. Existen básicamente dos
tipos de datos:
 Datos simples:
 Datos Numéricos: enteros, real, byte, etc.
 Datos Lógicos o Booleanos.
 Datos Alfanuméricos: carácter y cadena.
 Etc.
 Estructura de datos:
 Arreglos (Array)
 Etc.

38
ELEMENTOS DE UN LENGUAJE DE
PROG.
 Operadores: Símbolos que representan operaciones.
 Operadores Relacionales o Condicionales: >, <, =, etc.
 Operadores Aritméticos: +, -, *. /, etc.
 Operadores Lógicos o Booleanos: and, or, not, etc.
 Operadores Alfanuméricos.
 Funciones de Entrada y Salida: Permiten comunicarse con
diversos dispositivos, sin saber exactamente como trabajan. Le
brinda independencia al programador sobre el hardware que
tiene su computador. Tambien es posible que el programador
elabore funciones para un mejor entendimiento o ejecución de su
programa.

39
ELEMENTOS DE UN LENGUAJE DE
PROG.
Juego de Instrucciones o sentencias: Que permita poder leer
información de entrada, procesar información y finalmente
enviar información a la salida. Los nombres de las instrucciones
son Palabras Reservadas y no pueden emplearse como nombre
de una constante o variables.
 Estructuras de control: Secuenciales, condicionales y repetitivas.
 Funciones: Son pequeños programas que elabora el programador y
que le sirve para un mejor entendimiento o ejecución del programa
principal. Normalmente se almacenan en archivos denominados
librerías.
 Subprogramas
 Etc.

40
PROGRAMAS PARA HACER
PROGRAMAS
 Los programas se crean mediante otros programas especializados que
nos permiten:
 Escribir o dibujar el programa (dependiendo si el lenguaje de
programación es textual o iconográfico). A esto se le conoce como el
editor.
 Detección de errores como por ejemplo: una sentencia mal escrita, una
mala definición del tipo de datos para una variable, etc. El programa nos
indica donde esta el error para poder corregirlo. A esta funcionalidad se
le conoce como depurador (debugger).
 Convertir el programa fuente en código entendible por el procesador. A
este proceso se le denomina compilación o interpretación, dependiento
del tipo de lenguaje de programación empleado.
 Entorno seguro de ejecución del programa, para evitar que por una mala
programación la computadora se "cuelgue".
 A todas estas funcionalidades se les conoce como Herramientas de
Desarrollo.

41
HERRAMIENTAS DE DESARROLLO
 SDK (Software Development Kit): Es un conjunto de
herramientas de desarrollo que le permite a un programador crear
aplicaciones para un sistema en concreto (frameworks,
plataformas de hardware, videoconsolas, sistemas operativos,
etc).
 Incluye:
 Soporte para la escritura del programa (editor) y la detección de
errores de programación (debuggers) y uno o varios compiladores.
Es lo que se conoce como un entorno de desarrollo integrado o IDE
(Integrated Development Environment).
 Códigos de ejemplo y notas técnicas de soporte u otra
documentación de soporte.

42
HERRAMIENTAS DE DESARROLLO
 Ejemplos de SDK:
 .Net Framework de Microsoft.
 SDK de Java de Sun Microsystems.
 SDK de Android de Google.

43
HERRAMIENTAS DE DESARROLLO
 IDE (Integrated Development Environment): Es un
programa informático compuesto por un conjunto de
herramientas de programación. Puede dedicarse en
exclusivo a un solo lenguaje de programación o bien puede
utilizarse para varios. Consiste en:
 Un editor de código.
 Un o varios compiladores o intérpretes.
 Un depurador (debugger).
 Un constructor de interfaz gráfica (GUI).
 Un entorno de ejecución del programa.

44
HERRAMIENTAS DE DESARROLLO
 LosIDE proveen un marco de trabajo amigable para la
mayoría de los lenguajes de programación tales como C,
C++, PHP, Python, Java, C#, Delphi, Visual Basic, etc.
Ejemplos:
 Dev-C++
 CodeBlocks
 Netbeans (Open Source)
 Eclipse (Open Source)

45
TIPOS DE PROCESO DE DATOS
 Proceso Manual
 El mas antiguo.
 Involucra el uso de recursos humanos.
 Cálculos mentales.
 Uso de papel y lápiz.
 Proceso lento.
 Expuesto a errores.
 Los resultados se almacenan en archivos manuales.

46
TIPOS DE PROCESO DE DATOS
 Proceso Mecánico
 Uso de maquinas registradoras y calculadoras.
 Reemplazo en cierto grado al calculo manual.
 Reducción de errores.
 Mantiene el mismo proceso de almacenamiento.
 Un ejemplo es obtener la hora utilizando un reloj a
cuerda. Una manecilla hace girar a la otra.

47
TIPOS DE PROCESO DE DATOS
 Proceso Electromecánico
 Sigue siendo manual el almacenamiento y la
comunicación de los datos.
 Para cada una de las tareas se usan maquinas
electromecánicas.
 Mayor eficiencia.
 Menor error.
 Un ejemplo es el de las perforadoras de tarjetas que
utiliza la energía eléctrica para activar un motor.

48
TIPOS DE PROCESO DE DATOS
 Proceso Electrónico
 La intervención humana casi no es requerida.
 Una vez ingresados los datos el computador los procesa.
 Procesos a altas velocidades.
 Se obtiene información confiable.
 Almacenamiento electrónico.
 Grandes volúmenes de información.

49
PROCESAMIENTO POR LOTES
O modo batch, la ejecución de un programa se realiza sin el
control o supervisión directa del usuario.
 No precisa ningún tipo de interacción con el usuario.
 Se utiliza en tareas repetitivas sobre grandes conjuntos de
datos.
 Mecanismo más tradicional y antiguo de ejecutar tareas.

50
PROCESAMIENTO POR LOTES
 Se introdujeron alrededor de 1956 para aumentar la
capacidad de proceso de los programas.
 El extremo opuesto al procesamiento por lotes es el
procesamiento interactivo.
 Existe un gestor de trabajos, encargado de reservar y
asignar los recursos de las máquinas a las tareas. De esta
forma, mientras existan trabajos pendientes de
procesamiento, los recursos disponibles estarán siempre
ocupados ejecutando tareas.

51
PROCESAMIENTO POR LOTES
 Ventajas e inconvenientes
 Permite compartir mejor los recursos.
 Realiza el trabajo en el momento en el que los recursos
del ordenador están menos ocupados.
 Evita desaprovechar los recursos del ordenador.
 Manteniendo altos índices de utilización.
 Hay que conocer y planificar cuidadosamente la tarea a
realizar.
 Utilización de un equipo potente.

52
PROCESAMIENTO INTERACTIVO
 Cuando los datos enviados solicitan y reciben datos de
respuesta.
 Existe una interrelación entre el usuario y la maquina.
 Se utiliza en tareas no repetitivas.
 Procesamiento de pocos datos.
 Mecanismo moderno.
 Existe un cliente y un servidor.

53
PROCESAMIENTO INTERACTIVO
 Ventajas e inconvenientes
 Obtención de resultados rápidos.
 Atención individualizada.
 No requiere de una gran infraestructura.
 No requiere planificación de tareas.
 No procesa grandes cantidades de datos.
 Utilización de medios especiales de comunicación.
 La atención es de acuerdo a la prioridad de usuario.

54

También podría gustarte