21
TEMA: Conceptos de Programación

3 Conceptos progamacion-tema3

Embed Size (px)

Citation preview

TEMA: Conceptos de Programación

¿Qué entiende la computadora?

Lenguaje de programación

• Los Lenguajes de programación son aplicaciones

específicas diseñadas para crear otras aplicaciones o

programas. Son programas para crear programas.

• Se basan en un sistema de instrucciones preestablecidas

que indican al ordenador lo que debe realizar

• Los lenguaje de programación permiten crear programas

específicos que ofrezcan solución a problemas

particulares

• Para llevar a cabo cualquier tarea, el ordenador necesita

tener información sobre la tarea y un método para

ejecutarla

• PROGRAMA: conjunto de instrucciones

convenientemente ordenadas que indican al ordenador

qué procesos y tareas debe seguir. Cada una de las

instrucciones tiene un función específica y está escrita en

un lenguaje que el ordenador entiende

lenguaje máquina

a = (b + c)/(d + e)

Pasos sumar b y c, y guardar el resultado en una dirección de memoria

temporal X

sumar d y e, y guardar el resultado en una dirección de memoria temporal Y

dividir el contenido de X por el de Y y guardar el resultado en la dirección de memoria de a

Ejemplo de código máquina

codigoOp direccOp1 direccOp2 direccRes

00000000 00001000 00001100 00001110

00000000 00011000 00011100 00011110

00000101 00001110 00011110 00000100

Código de la división

Direcc. Temporal X

Direcc. Temporal Y

Código de la suma

x y

Lenguaje máquina (cont.)

Inconvenientes

Grandes posibilidades de error

Portabilidad: máquina-dependiente

No se puede llevar el programa a otra máquina porque, entre otras cosas, el repertorio de instrucciones es distinto

Tedioso

Nula capacidad de abstracción

Es muy complicado formular una solución a problemas del mundo real con ese lenguaje tan específico

Lenguaje de bajo nivel(lenguaje ensamblador)

Lenguaje simbólico con una mínima capacidad de abstracción Nombres nemotécnicos para los códigos de operación Nombres simbólicos para las direcciones de memoria

Ejemplo de instrucción de código ensamblador

Códigos simbólicos de las operaciones

SUM = La suma DIV = La división

a = (b + c)/(d + e)

lenguaje ensamblador Lenguaje máquina

SUM b, c, X

SUM d, e, Y

DIV X, Y, a

00000000 00001000 00001100 0000111000000000 00011000 00011100 0001111000000101 00001110 00011110 00000100

Lenguaje ensamblador (cont.)

Cuestiones

¿Cómo entiende la máquina el lenguaje ensamblador?

Programa ensamblador

Traducción a código binario de códigos simbólicos de operación

Inconveniente: el lenguaje sigue siendo aun abstracto

Código fuente(lenguaje ensamblador)

Programa ensamblador Código objeto(lenguaje máquina)

Lenguajes de alto nivel

Lenguaje que permite darle ordenes al computador usando instrucciones similares al lenguaje humano utilizando símbolos conocidos.

a = (b + c)/(d + e)

Lenguaje máquina

00000000 00001000 00001100 0000111000000000 00011000 00011100 0001111000000101 00001110 00011110 00000100

lenguaje ensamblador

SUM b, c, XSUM d, e, YDIV X, Y, a

Lenguaje de alto nivel

a = (b + c)/(d + e)

¿Cómo conseguir que la computadora “entienda” los programas escritos en lenguajes de alto nivel?

Intérprete

Analiza el programa fuente y lo ejecuta directamente en la máquina (VBA es interpretado)

Compilador

Analiza el programa fuente y lo traduce a lenguaje máquina(VB es compilado)

Lenguaje de alto nivel

Cercanía conceptual al programadorPascal, C, Java, Visual Basic, Fortran etc. son lenguajes de alto nivel

En nuestro curso vamos a estar utilizando el programa Visual Basic for Aplication (VBA) que es un subconjunto del programa Visual Basic.

La programación: resolución de problemas

Un programa es una secuencia de instrucciones con un propósito concreto que un ordenador puede interpretar y ejecutar

Programar es resolver problemas Conjunto de actividades implicadas en la descripción, el desarrollo y la

implementación eficaz de soluciones algorítmicas a problemas bien especificados

Algoritmo 1. m. Conjunto ordenado y finito de pasos que permite hallar la solución de un problema.

(Extraído del Diccionario de la RAE, 22ª edición)

La programación: resolución de problemas (cont.)

Utilizamos los lenguajes de programación para expresar los algoritmos de forma que el ordenador los entienda

De igual forma, que utilizamos la lengua castellana para expresar nuestras ideas a otras personas

Recuerda: Programar BIEN no es sólo conocer la sintaxis de uno o varios lenguajes de programación

Lo que leo

Lo que entiendo

En un Pueblo que no me acuerdo del nombre, cerca a una tal

Mancha. Hace poco que vivía un señor llamado hidalgo que tenía

una lanza toda desastillada, también tenía una daga antigua y un

perro flaco llamado rocín y que corría mucho

ATTE PEPITO

Lo que es

Hidalgo= persona de ánimo generoso y noble

Astillero= Funda donde se guardan las lanzas

Adarga= Escudo de cuero, ovalado o de forma de corazón.

Rocín= Caballo de mala apariencia y de poca altura.

Galgo= Goloso o aficionado.

El Ciclo de Vida del Software

Análisis

Diseño

Implementación

Pruebas

Mantenimiento

Todas las tareas a realizar desde que se concibe un

programa hasta que se deja de utilizar (no sólo “hasta que se

codifica” ni “hasta que se instala”)

Existen distintos modelos del ciclo de vida software, aunque

nosotros estudiaremos el más simple: Modelo en Cascada

¿Qué significa todo esto?

Análisis

Diseño

Implementación

Pruebas

Mantenimiento

“Quiero 3 habitaciones,

2 baños, garaje...”

Planos, diseño circuito

eléctrico y de agua...

Se construye la casa

Se comprueba la solidez de la

estructura, el funcionamiento de

las instalaciones, el acabado...

Algunas reparaciones, se cierra

la terraza, se instala aire

acondicionado...

Casa

¿Qué tiene que hacer

exactamente nuestro

programa?

¿Cómo vamos a organizar

el programa? ¿Qué partes

tendrá y cómo funcionará?

Se construye el software

Ponemos a prueba nuestro

programa, incluso en

situaciones límite

Pequeñas modificaciones o

correcciones (parches),

actualizaciones, etc...

Software

Algoritmo

Fases en el desarrollo de un programa (cont.)

Análisis

Actividad en la que se analizan y clarifican los diferentes aspectos del problema que debe ser resuelto por el programa, con el fin de establecer claramente qué debe ser construido

El resultado es, normalmente, un documento de requisitos software que especifica claramente las funcionalidades de la aplicación

Funcionalidad = lo que tiene que hacerse (sin saber todavía cómo)

Ejemplo

Fases en el desarrollo de un programa (cont.)

• Diseño • Mientras que el análisis se ocupa de qué hay que hacer, el diseño

se ocupa de cómo hacerlo

• En esta fase se construye el algoritmo que contiene la solución del problema.

Fases en el desarrollo de una aplicación (cont.)

• Implementación o codificación• Actividad en la que se construye (codifica) la aplicación utilizando

un lenguaje de programación concreto, y siguiendo, las directrices marcadas por el algoritmo

• Si las actividades anteriores han sido realizadas correctamente, la fase de implementación debería ser bastante trivial

Fases en el desarrollo de una aplicación (cont.)

• Pruebas • Actividad en la que se asegura que la aplicación construida

satisface los requisitos del usuario

• Se debe invertir mucho tiempo en hacer pruebas (¡mucho más que en su implementación!)

• Dos pasos diferenciados• Verificación: ¿Se ajusta la aplicación construida a los requisitos

establecidos?

• Validación: ¿Resuelve la aplicación el problema que realmente tenía el usuario?

Fases en el desarrollo de una aplicación (cont.)

Mantenimiento

Actividad en la que la aplicación se modifica para satisfacer cambios o ampliaciones en los requisitos del usuario, corregir errores, etc.

¡Es la actividad más costosa en el desarrollo de software!(Tener en cuenta que hay programas que están muchos años en funcionamiento y lo usan miles de personas)

Estos costes pueden aliviarse si se hacen bien todo lo anterior

*Otras actividades

Confección de los manuales de usuario

Gestión de versiones

...