Está en la página 1de 36

Unidad I Unidad II

FUNDAMENTOS DE
PROGRAMACIÓN
Introducción a la Ing. Software
Semana

02
Ing. Ernesto Nicho Córdova
ncordova@usat.edu.pe
www.usat.edu.pe
www.usat.edu.pe
Objetivo

 Comprender
conceptos básicos de
los fundamentos de
la programación.

2 www.usat.edu.pe
Contenidos
Conceptos básicos de informática

Lenguajes de programación

Paradigmas de la programación

Introducción a la ingeniería de software

Resolución de problemas

Caso de aplicación
3 www.usat.edu.pe
Informática y computadora (RAE)

• Informática (Ciencia de la computación): Conjunto de


conocimientos científicos y técnicas que hacen posible el
tratamiento automático de la información por medio de
ordenadores
• Computadora: Máquina electrónica, analógica o digital, dotada
de una memoria de gran capacidad y de métodos de
tratamiento de la información, capaz de resolver problemas
matemáticos y lógicos mediante la ejecución de programas
informáticos
4 www.usat.edu.pe
Sistema de procesamiento de información

• Sistema: Conjunto de cosas que relacionadas entre sí ordenadamente


contribuyen a determinado objeto.
• Representación de un sistema:

Entrada Proceso Salida

RETROALIMENTACIÓN

5 www.usat.edu.pe
Memoria Auxiliar
Computadora • Disco Duro
• CD
• Pendrive

UNIDAD DE CENTRAL DE PROCESO - CPU


EL PROCESADOR

Unidad de Control
Elementos Elementos
de Entrada de Salida
• Teclado • Monitor
• Mouse • Impresora
• Scanner Unidad aritmético-Lógica • Parlantes
• Etc. (Operaciones matemática) • Etc.

Memoria principal
(RAM)

6 www.usat.edu.pe
Almacenamiento – La memoria

7 www.usat.edu.pe
Capacidades de almacenamiento
• 1 bit = 0/1
• 1 byte = 8 bits
• 1 kilobyte = 1024 bytes
• 1 megabyte = 1024 kilobytes (700 Mb = 80 minutos de música)
• 1 gigabyte = 1024 megabytes (4.97 Gb = capacidad de un DVD)
• 1 terabyte = 1.024 gigabyte = 260.000 canciones |20 Tb = Las fotos que los usuarios
suben mensualmente al Facebook) | 120 Tb = Todos los datos e imágenes recogidos por
el telescopio Hubble | 330 Tb = La información semanal obtenida en el LHC |530 Tb =
Todos los videos de Youtube
• 1 petabyte = 1024 terabytes = La información procesada por Google en 72 minutos | 20
Pb = producción mundial de discos duros en 1995
• 1 exabyte = 1024 petabytes | 1 zettabyte = 1024 exabyte |1 yottabyte = 1024 zettabytes
• 1 brontobyte = 1024 yottabytes | 1 geopbyte = 1024 brontobytes
8 www.usat.edu.pe
Indicar a la
Conceptos a diferenciar computadora
•Secuencia de qué es lo que
instrucciones que tiene que hacer
entiende la Programa Programar
computadora Proceso de diseñar,
•Y que persiguen un
objetivo: ¡resolver un
codificar, depurar y
problema! mantener el código
Programador Programación fuente de programas
computacionales.

Trabajo en equipo Múltiples roles...


• Gestores Analistas
• Diseñadores Programadores
• Probadores Administradores de sistemas
9 www.usat.edu.pe
Lenguaje de programación

Los lenguajes de programación sirven para escribir programas que


permitan la comunicación usuario – Máquina.
Existen muchos lenguajes de programación que nos permiten desarrollar,
por medio de un código (protocolo), sentencias algorítmicas que luego son
traducidas a lenguaje máquina. Estos cumplen la función de
intermediarios entre el desarrollador y el hardware.

10 www.usat.edu.pe
Representación de los
lenguajes de programación

11 www.usat.edu.pe
Lenguaje de Máquina
• Son aquellos que están escritos en lenguaje directamente inteligible por
la máquina (computadora), ya que sus instrucciones son cadenas
binarias.
• Generalmente, en la codificación de los programas se empleaba el
sistema hexadecimal para simplificar el trabajo de escritura.

Instrucción Significado
A0 2F Acceder a la celda de memoria 2F
3E 01 Copiarlo el registro 1 de la ALU
A0 30 Acceder a la celda de memoria 30
3E 02 Copiarlo en el registro 2 de la ALU
1D Sumar
B3 31 Guardar el resultado en la celda de memoria 31
12 www.usat.edu.pe
Lenguaje ensamblador
• Son más fáciles de utilizar que los lenguajes de máquina, pero al igual
que ellos dependen de la máquina en particular.
• Las instrucciones en lenguaje ensamblador son conocidas cómo
nemotécnicos: A0  READ 3E  REG 1D  ADD …

Mayor legibilidad:
assembly
READ 2F
REG 01
READ 30 assembler
REG 02
ADD
WRITE 31
13 www.usat.edu.pe
Lenguaje de alto nivel
• Son los más utilizados por los programadores. Están diseñados para las
personas escriban y entiendan los programas de un modo mucho más
fácil que los lenguajes Maquina y ensambladores

14 www.usat.edu.pe
Traductores de lenguaje - Intérpretes
Un intérprete es un traductor que toma un
Programa
programa fuente, lo traduce y, a
fuente
continuación, lo ejecuta.
El sistema de traducción consiste en: traducir
la primera sentencia del programa a lenguaje
máquina, se detiene la traducción, se ejecuta Interprete
la sentencia; a continuación, se traduce la
siguiente sentencia, se detiene la traducción,
se ejecuta la sentencia y así sucesivamente Traducción y
hasta terminar el programa. ejecución línea
a línea

15 www.usat.edu.pe
Traductores de lenguaje - Compiladores
• Son programas que traduce los programas fuente
escritos en lenguaje de alto nivel a lenguaje Programa
máquina. fuente
• La traducción del programa completo se realiza en
una sola operación; es decir, se traducen todas las
instrucciones del programa en un solo bloque. Compilador
• El programa compilado y depurado (eliminados los
errores del código fuente) se denomina programa
ejecutable porque ya se puede ejecutar Programa
directamente y cuantas veces se desee; sólo deberá objeto
volver a compilarse de nuevo en el caso de que se
modifique alguna instrucción del programa.
16 www.usat.edu.pe
Fases de la compilación
class HolaMundo {
Código fuente public static void main (string [ ] args) {
System.out.println(“Hola Mundo”); HolaMundo.java
}
}
Compilador

Código objeto 0100010100111010011100…

Enlazador
Hola
Programa Mundo
Ejecutable
17 www.usat.edu.pe
Paradigmas de programación
• Enfoques alternativos a los procesos de programación. Un paradigma de
programación representa fundamentalmente enfoques diferentes para
la construcción de soluciones a problemas y por consiguiente afectan al
proceso completo de desarrollo de software.

Imperativa: (El más mas usual). Describe Declarativo: Describe que se debe
cómo debe realizarse el cálculo, no el calcular, sin explicitar el cómo. Los
porqué. En otras palabras es aquel tipo de lenguajes de programación que
programación donde se debe detallar paso aplican este paradigma están llenos
a paso toda instrucción escrita desde una de funciones y operaciones recursivas
simple mensaje hasta un calculo puramente matemáticas que se
matemático para obtener un valor. ejecutan para resolver una tarea.

18 www.usat.edu.pe
Características de los Paradigmas de programación
Paradigmas de programación
Imperativos Declarativos
Estructurado Orientado a objetos Funcional Lógicos

Abstracción de datos.
 Encapsulamiento de  Las funciones son
 Dividido en bloques. datos y elementos de primer  Los programas están
 Secuencia, selección comportamientos en orden. construidos de hechos,
e iteración objetos.  Uso del cálculo predicados y relaciones
 Paso de mensajes Lambda
entre objetos

Prolog
19 www.usat.edu.pe
20 www.usat.edu.pe
Introducción a la Ingeniería de Software
Se citan las definiciones más reconocidas, formuladas por prestigiosos
autores:
• Ingeniería de software es el estudio de los principios y metodologías para el
desarrollo y mantenimiento de sistemas software(Zelkovitz, 1978).
• Ingeniería de software es la aplicación práctica del conocimiento científico
al diseño y construcción de programas de computadora y a la
documentación asociada requerida para desarrollar, operar y mantenerlos.
Se conoce también como desarrollo de software o producción
de software (Bohem, 1976).
• La ingeniería de software trata del establecimiento de los principios y
métodos de la ingeniería a fin de obtener software de modo rentable, que
sea fiable y trabaje en máquinas reales (Bauer, 1972).
21 www.usat.edu.pe
Resolución de problemas
La programación de computadores es un proceso que se origina en la
concepción de una idea y que continua con su adecuada representación
en estructuras lógicas que deben ser transformadas a comandos
procesables por un lenguaje de programación, su ejecución
computacional, la validación de los resultados y su puesta en
funcionamiento.

Definición Análisis Codifica_ Implanta_ Mantenimi_


Diseño del
del del ción del ción del ento del
problema programa
problema problema programa programa

22 www.usat.edu.pe
Definición Análisis del Diseño del Codificación del Implantación Mantenimiento
del problema problema problema programa del programa del programa

Esta etapa consiste en poder describir e interpretar una


determinada situación de la vida real, de algún sistema físico,
comercial, matemático, etc. Pueden utilizarse para ello el lenguaje
natural, las representaciones graficas, las fórmulas, y cualquier
otro elemento que aporte a la descripción del problema.
El programador debe refinar sus habilidades de lectura, extraer
los elementos esenciales y, eventualmente, reducir el
problema de tal manera que tome solo aquellos elementos
que puedan ser llevados a una solución computacional que
responda al propósito de la situación planteada.
23 www.usat.edu.pe
Definición Análisis del Diseño del Codificación del Implantación Mantenimiento
del problema problema problema programa del programa del programa

Ejercicio de aplicación
• Soy un maestro de la construcción y me dedico a construir
piscinas, mi problema es calcular el agua necesaria para llenarlo
según el espacio donde realizaré la piscina.

Realizar un programa que permita calcular el volumen de agua


de una piscina

24 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa

Esta fase requiere una clara definición que contemple exactamente lo que
se espera que una solución computacional logre para satisfacer el objetivo
expuesto en el problema. Para ello lo recommendable es descomponer la
situación en tres aspectos:
¿Cuál es el resultado ¿Qué entradas se ¿Qué proceso
esperado? requieren? realizaremos?
Es decir, ¿qué clase de Es decir, ¿qué clase de Es decir, ¿ qué método u
respuesta debería información o datos son operación puede conducir a
obtener?, cuántos valores requeridos para poder la salida deseada a partir de
conforman la respuesta llegar a la respuesta los valores dados como
esperada? esperada? entrada?
25 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa

Ejercicio de aplicación
Realizar un programa que permita calcular el
volumen de agua de una piscina

¿Qué proceso
¿Qué entradas se
¿Cuál es el resultado realizaremos?
requieren?
esperado? A partir de la fórmula se
Se requiere conocer las
Se debe calcular el volumen puede obtener el volumen
dimensiones de esta
del prisma rectangular que de la piscina:
piscina: largo, ancho y
representa a la piscina. volumen=largo*ancho*prof
profundidad
undidad
26 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación del Implantación Mantenimiento
problema problema problema programa del programa del programa

Una vez se tiene claridad sobre cual es el resultado


esperado, las entradas requeridas, y las operaciones
que conducirán a la solución, el reto es ¿cómo
organizar esta información para llevarla al
computador?
Para ello se organiza la secuencia de pasos que puede
llevar a la solución, esta secuencia debe diseñarse
estableciendo un principio, un fin y un orden sin
ambigüedades. A este diseño se le conoce con la
expression “algoritmo”.
27 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación del Implantación Mantenimiento
problema problema problema programa del programa del programa

Ejercicio de aplicación Diagrama de Flujo


Pseudocodigo
1. Inicio
2. Capturar las dimensiones de la piscina:
largo, ancho, profundidad
3. Volumen = largo x ancho x profundidad
4. Mostrar el volumen calculado
5. Fin Datos de prueba para el algoritmo
Entradas Salidas
Largo Ancho Profundidad Volumen
25 10 1.5 375
28 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa

En la fase de codificación, se transforma el


pseudocódigo o el diagrama de flujo a un
código de algún lenguaje de programación
como C++, Java o Python. Para esto se
emplea un entorno de desarrollo integrado
(en adelante IDE, por sus siglas en ingles,
conjunto de herramientas software que
permiten la escritura, edición y ejecución de
programas). Estos IDE varían dependiendo
del lenguaje de programación empleado.

29 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa

Ejercicio de aplicación

30 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación del Implantación Mantenimiento
problema problema problema programa del programa del programa

La implantación se da cuando el programa ha sido probado


exhaustivamente y realiza correctamente las funcionalidades
esperadas. Entonces se instala para ponerlo en funcionamiento y al
servicio de sus correspondientes usuarios.
Esta etapa puede variar en
complejidad dependiendo del
tipo de situación.

31 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación del Implantación Mantenimiento
problema problema problema programa del programa del programa

Ejercicio de aplicación
• Para el caso del ejemplo de la piscina, la situación es tan sencilla, que
podría pensarse que con la ejecución funcional ya esta listo. Pero en la
vida real, esta situación podría ser apenas un elemento dentro de un
software mas complejo o podría requerir de todo un plan administrativo
para que entre en funcionamiento. Esta etapa esta por fuera del alcance
de este curso y, por tanto, no será abordada.

32 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa

El entorno digital cambia con el paso del tiempo, esto hace que las
necesidades cambien y que un programa se vuelva obsoleto, por ello es
necesario realizarle continuas optimizaciones.

33 www.usat.edu.pe
Definición del Análisis del Diseño del Codificación Implantación Mantenimiento
problema problema problema del programa del programa del programa

Ejercicio de Aplicación
Para el ejemplo de la piscina, el programa generado podría requerir
mantenimiento cuando se describa una nueva situación no contemplada
inicialmente, por ejemplo, que dentro de la piscina se incluirá una fuente
que ocupa cierto espacio, y por lo tanto la formula para calcular el
volumen del agua requiere alguna modificación, esto solo a manera de
comentario pues en este curso no se desarrollara la etapa de
mantenimiento a los programas desarrollados.

34 www.usat.edu.pe
Referencias
• Casale, J. (2012). Introducción a la programación. Manual del desarrollador (Primera
ed.). Buenos Aires: Fox Andina.
• Gómez, D., Gómez, U., & Viola, J. (2018). Fundamentos de programación. Medellin:
Editorial Universidad Pontificia Bolivariana.
• Joyanes, L. (2008). Fundamentos de Programación. Algoritmos, estructura de datos y
objetos (Cuarta ed.). Madrid: McGRAW-HILL.

35 www.usat.edu.pe
Ing. Ernesto Nicho Córdova
ncordova@usat.edu.pe

http://www.facebook.com/usat.peru

https://twitter.com/usatenlinea

https://www.youtube.com/user/tvusat

https://plus.google.com/+usateduperu

www.usat.edu.pe

También podría gustarte