Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare una empresa de Scribd logo
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 00001110
00000000 00011000 00011100 00011110
00000101 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 00001110
00000000 00011000 00011100 00011110
00000101 00001110 00011110 00000100
lenguaje ensamblador
SUM b, c, X
SUM d, e, Y
DIV 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 programador
Pascal, 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
 ...

Más contenido relacionado

3 Conceptos progamacion-tema3

  • 1. TEMA: Conceptos de Programación
  • 2. ¿Qué entiende la computadora?
  • 3. 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
  • 4. • 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
  • 5. 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
  • 6. 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
  • 7. 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 00001110 00000000 00011000 00011100 00011110 00000101 00001110 00011110 00000100
  • 8. 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)
  • 9. 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 00001110 00000000 00011000 00011100 00011110 00000101 00001110 00011110 00000100 lenguaje ensamblador SUM b, c, X SUM d, e, Y DIV X, Y, a Lenguaje de alto nivel a = (b + c)/(d + e)
  • 10. ¿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 programador Pascal, 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.
  • 11. 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)
  • 12. 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
  • 13. 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
  • 14. 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.
  • 15. 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
  • 16. ¿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
  • 17. 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
  • 18. 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.
  • 19. 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
  • 20. 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?
  • 21. 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  ...