SlideShare una empresa de Scribd logo
1 de 54
PRINCIPIOS DE PROGRAMACIÓN OBJETIVO: Se trata de revisar y estudiar los principios que rigen el arte de programar computadoras, así como los conceptos fundamentales de la programación, comprenderemos las direcciones de estudio en la programación y los principios para tener buenos hábitos en la programación.
PROGRAMACIÓN BÁSICA Como las computadoras no pueden pensar (al menos hasta ahora), necesitamos darle las instrucciones para que ellas hagan lo que queremos. Un programa contiene un conjunto de instrucciones que la computadora puede utilizar para hacer alguna tarea. Debido a la naturaleza eléctrica de prendido y apagado, las computadoras solamente entienden el lenguaje de 1s y 0s. Este lenguaje se llama lenguaje maquina. Una instrucción típica en lenguaje maquina es 0000100000101111.
	Como las computadoras utilizan millones de circuitos electrónicos, utilizan el 1 para representar cuando tienen corriente y 0 para representar cuando no tienen corriente. 	Al principio, cuando se utilizaban las tarjetas perforadas, utilizaban el mismo principio. Un orificio se representaba con 1 y un no-orificio (no hay hueco) se representaba por un 0.
	Los estados prendido y apagado de los circuitos electrónicos de la computadora, posibilitan el uso del ´algebra booleana, que fue inventada por el matemático ingles George Boole. Los sistemas binarios operan de acuerdo con las reglas de la lógica booleana. Estas regla se utilizan para hacer cálculos con los datos.
	Las computadoras suelen tener un programa especial que se llama ensamblador, que traduce un programa en lenguaje ensamblador a un lenguaje maquina, de modo que la computadora pueda entenderlo y ejecutarlo
[object Object]
Ya que cada procesador tiene su propia arquitectura, un programa en lenguaje ensamblador escrito para un procesador puede no funcionar en una computadora con un procesador diferente.,[object Object]
	COBOL también es un acrónimo que significa COmmon Business Oriented Lenguaje. Se creó en 1960,y podia procesar cálculos simples de grandes cantidades de datos. Los programas escritos en COBOL eran mas largos que aquellos que se escribían en otros lenguajes, pero a la vez, eran mas fáciles de seguir. COBOL fue un lenguaje popular para las aplicaciones orientadas a lo negocios que corran en computadoras grandes como los mainframes, aunque ahora ya no es tan común, aunque aún existe el compilador para este lenguaje.
	BASIC. También es un acrónimo. significa Beginner’sAll/purpose Symbolic Instruction Code. Se desarrollo en 1964 y como su nombre lo sugiere, es un lenguaje fácil de aprender para los estudiantes y principiantes. Hasta hace algún tiempo, las computadoras tenían incluido un interprete de BASIC en su software de fabrica. • C. C se creó en 1972 como un lenguaje para hacer  aplicaciones en el sistema operativo UNIX. A partir de C, se han desarrollado otros lenguajes como C++, C#,C-objetivo, incluso Java, que son lenguajes actuales y ampliamente difundidos y utilizados.
Los lenguajes de alto nivel se parecen más al lenguaje natural  que los lenguajes ensambladores, porque utilizan palabras DR. ABDIEL E. CA´ CERES GONZA´ LEZ 11 como el lenguaje cotidiano (usualmente en ingles) como BEGIN, END o IF. Los compiladores y los interpretes se utilizan para convertir programas de alto nivel a bajo nivel. Cada instrucción de alto nivel se traduce varias instrucciones de bajo nivel. Los lenguajes de cuarta generación (4GLs) tienen comandos que se parecen mucho m´as a los lenguajes humanos. SQL (StructuredQueryLanguage) es un lenguaje de cuarta generación. La mayoria de los lenguajes de cuarta generación se utilizan para manipular bases de datos. Por ejemplo, un comando en SQL es el siguiente: Select * From Empleados  Where Tiempo-Completo = ’SI’ que se puede utilizar (junto con otros comandos) para obtener información de los empleados en una base de datos.
Los lenguajes de cuarta generación son más fáciles de aprender y de manipular, pero son más difíciles de  interpretar por la computadora. La computadora requiere de más recursos para traducir una instrucción en lenguaje de cuarta generación.
Cada lenguaje de programación tiene sus ventajas y desventajas. Por ejemplo, FORTRAN es muy bueno para hacer cálculos numéricos, pero es muy malo para hacer formatos de texto en la pantalla; mientras que COBOL es muy bueno para dar formatos de texto en la pantalla, pero muy malo para hacer cómputo numérico. Si queremos ser programadores profesionales, probablemente deberemos aprender varios lenguajes de programación, porque actualmente los entornos de programación permiten mezclar código de diferentes lenguajes.
Tendencias de la programación En 1966, dos matemáticos publicaron un artículo donde se mostraba que era posible hacer cualquier programa utilizando únicamente tres tipos de estructuras de control: 		1) Secuencias 		2) Opcionales 		3) Repeticiones
Programación estructurada:  En la programación estructurada, los programas grandes son difíciles de comprender si tienen un solo inicio y siguen aplicando operaciones tras operaciones hasta un solo final, de modo que la programación estructurada ofrece la alternativa de hacer módulos de programas más pequeños, que en conjunto puedan  dar  solución al problema. De modo que la programación estructurada incluye. 			• Un desarrollo TOP-DOWN 			• Un diseño Modular El desarrollo TOP-DOWN establece dividir el problema en componentes de tamaño más manejable, resultando en programas más precisos y confiables.
El diseño modular de un programa se complementa con el desarrollo top- down porque los subpasos en el proceso del desarrollo en realidad es hacer más módulos en el programa
Los lenguajes de tercera generación, como Pascal, C y BASIC, siguen la filosofía de la programación estructurada, porque son lenguajes procedurales que necesitan hacer instrucciones paso por paso para llegar al resultado deseado. Los lenguajes de cuarta generación se desarrollaron desde finales de la década de 1970. Cada una de sus instrucciones genera aproximadamente unas 50 instrucciones en lenguaje máquina.  Los programas escritos utilizando esos lenguajes también se pueden corregir rápidamente. Esta clase de lenguajes (4GL) no son procedurales, porque el programador solicita un resultado sin proporcionar los pasos necesarios para obtenerlo.
Por ejemplo, esta solicitud de SQL despliega los Productos de la base de datos Inventario.  GET Productos FROM Inventario
La mayoría de los lenguajes de cuarta generación se utilizan para acceder a las bases de datos, quienes utilizan los siguientes componentes  ,[object Object]
Lenguaje de consulta de la Bases de Datos. El lenguaje de consulta de la base de datos permite los usuarios especificar precisamente qué información desean de la base de datos.,[object Object]
Los lenguajes de cuarta generación son orientados al usuario final, en otras palabras, tienen una interfaz con el usuario muy amigable, de modo que las personas con pocos o nulos conocimientos en lenguajes de programación pueda  aprenderlos fácilmente.  Como la principal aplicación de los lenguajes de cuarta generación es la interacción con las bases de datos, son buenos para extraer datos y presentarlos en un formato específico; sin embargo, tienen compiladores que son muy grandes y lentos, comparados con los compiladores de los lenguajes de tercera generación.
Como ejemplos de los sistemas manejadores de bases de datos (DBMSs) que utilizan lenguajes de cuarta generación incluyen: Informix. Proporciona sistemas manejadores de bases de datos relacionales que corren en diversas plataformas UNix. Las bases de datos relacionales almacenan los datos en forma de tablas relacionadas. Son muy poderosas, porque los datos se pueden ver de diversas maneras, siempre atendiendo las necesidades específicas de cada clase de usuario.
Oracle. Las bases de datos Oracle incluyeron el primer sistema manejador de bases de datos que incorporaron el lenguaje SQL y que se utilizaron en una amplia gama de plataformas. El lenguaje SQL (StructuredQueryLanguage) es el lenguaje de programación estándar de la industria, y se utiliza para extraer información de las bases de datos que son alojadas en el sistema. Oracle ofrece una variedad de herramientas de desarrollo de aplicaciones que incluyen aplicaciones para ser ejecutadas en redes de computadoras.
Programación orientada a objetos:  La programación orientada a objetos (OOP) se convirtió en la alternativa para la programación estructurada a finales de la década de 1980. La OOP crea abstracciones de los objetos del mundo real en la computadora. Esquema de un objeto. Tiene al interior las propiedades (atributos) y para acceder a ellos se hace por medio de las operaciones (métodos).
Cada objeto tiene un conjunto de propiedades y operaciones  o métodos asociados. Por ejemplo, el objeto reloj puede tener las propiedades: horas, minutos, segundos y los métodos  ponerTiempo, tiempoActual. Las propiedades horas, minutos y segundos se pueden manipular solo por medio de los métodos. Los programas orientados a objetos son modulares. Los programas modulares son fáciles de corregir. La tendencia actual es la  programación orientada a objetos, considerando algunas extensiones a esta filosofía de programación.
Como ejemplos de lenguajes orientados a objetos, incluyen: Smaltalk. Smaltalk  fue el primer lenguaje de programación orientado a objetos, ofrece muchas libertades a los programadores, de modo que los programadores deben tener mucho cuidado al manejar la memoria del sistema.
Java. Fue creado por la compañía Sun Microsystems, Java es un lenguaje orientado a objetos similar a C++ pero han mejorado el lenguaje con características que evitan errores de programación comunes, como el manejo de la memoria, donde la responsabilidad recae en un subsistema que se llama recolector de basura. C++. C++ es un super conjunto del lenguaje C. Generalmente es considerado uno de los mejores lenguajes para hacer aplicaciones a gran escala. C#. Fue desarrollado por Microsoft. C# (que se pronuncia C-sharp) es un híbrido de C y C++ que fue desarrollado para competir con Java y con el objetivo de mejorar la productividad en el desarrollo de aplicaciones WEB, manteniendo la flexibilidad y el poder de C y C++.
Los lenguajes de alto nivel tienen algunas ventajas sobre los lenguajes de bajo nivel [4]: 1) Son más legibles: Un buen lenguaje de alto nivel, permitirá que los programas se escriban de manera que recuerden descripciones tipo-idioma-común, muy parecidos a los pseudocódigos. Si se programa cuidadosamente, se puede generar una documentación auto contenida, que es una propiedad deseable cuando se considera que los programas se documentan para que otras personas lean y comprendan lo que se ha escrito.
2) Son más portables: Actualmente, los lenguajes de programación de alto nivel se están volviendo más capaces de ser utilizados en arquitecturas de computadoras diferentes, con ningún cambio; o bien al proporcionar el código fuente y ser recompilado sin modificaciones. 3) Tienen estructura y orientación de objetos: Este es un acuerdo general que empezó con la programación estructurada desde la década de 1960 y posteriormente con el movimiento a la programación orientada a objetos en la década de 1990, de lo que resulto una gran mejora en la calidad y confiabilidad del código. Los lenguajes de alto nivel se pueden diseñar para reforzar esos paradigmas.
4) Tienen mayor generalidad: La mayoría de los lenguajes de alto nivel permiten la escritura de una amplia variedad de programas, para permitir al programador mezclar código de diversos lenguajes para que su aplicación sea mejor. 5) Brevedad: Los programas expresados en lenguajes de alto nivel usualmente son considerablemente más cortos (en términos del numero de líneas de código fuente) que los hechos en lenguajes de programación de bajo nivel.
6) Verificación de tipos: Siendo humano, un programador probablemente cometa muchos errores en el desarrollo de un programa de computadora. Muchos lenguajes de alto nivel  o al menos sus implementaciones pueden, y deben, verificar los errores tanto en tiempo de compilación como en tiempo de ejecución.
C. Principios de una buena programación Los programas de computadoras son útiles cuando se usan, a pesar de lo trivial que pueda sonar esta frase, involucra cuatro características importantes que deben tener los programas para que sean buenos programa y se puedan utilizar. Un buen programa es robusto, eficiente, utilizable y mantenible.
Robusto.Decimos que un programa es robusto cuando es tolerante a las fallas. Podemos probar nuestro programa extensivamente para indicar las fallas que pudieran encontrar los usuarios. Sin embargo, debe haber un balance entre el costo de probar y la necesidad de manipular los errores. Generalmente no es posible probar un sistema para encontrar todas las fallas y hacer un programa que reaccione a cada una de estas fallas.
Eficiente. Los programas deben usar de manera correcta los recursos del sistema en el cual se están ejecutando. En un avión, por ejemplo, el tamaño y el peso de una computadora es limitado. De modo que el software utilizado en esos sistemas debe estar restringido a la capacidad de memoria y a la velocidad del procesador utilizado. Los programas que desperdician memora y recursos del sistema, usualmente no sirven, porque cuando aumenta el volumen de datos, esos programas pueden ocasionar errores fatales. Un error fatal es aquel que hace detener la normal ejecución de un programa, ocasionando en ciertos casos que se deba reiniciar el sistema completo.
Utilizable. Los programas utilizables son aquellos que el usuario final encuentra fáciles de operar. La utilizabilidad depende de algunos factores, como las formas para introducir los datos a la computadora, el diseño de los menús de opciones y la presentación de la información. Los mensajes informativos y los archivos de ayuda mejoran la utilizabilidad. La documentación del usuario offline como los manuales impresos, deben ser fáciles de leer y de seguir en la operación del sistema; asimismo, la ayuda en línea se debe distribuir y buscar más fácilmente.
Mantenible. Un programa mantenible involucra hacer cambios a un programa después de haber sido implementado. Es posible que después de un tiempo, el usuario ya no esté completamente satisfecho con el sistema, entonces se debe modificar. La facilidad con que se puedan hacer esos cambios es lo que hace a un sistema mantenible. Un programador debe, entonces, estar familiarizado con la sintaxis del lenguaje de programación en que fue creado el sistema.
Una excelente recomendación que es muy simple de aplicar para que nuestros programas seas claros y fáciles de seguir, es utilizar identación  en la escritura del código. Como ejemplo, notemos la diferencia entre estos dos segmentos de código. (versionidentada) 		IF edad < 12 THEN clasificacion:="mocoso"; 		ENDIF (version no identada) 	IF edad < 12 THEN clasificacion:="mocoso"; 	ENDIF
Cuando los programas tienen cientos o miles de líneas de código, la identación – o la falta de ella – afectarán significativamente la legibilidad del programa. También los comentarios incrementan la legibilidad de un programa. Todos los lenguajes de programación tienen un modo de insertar texto que no se ejecuta como parte del programa, por ejemplo, C trata cualquier texto entre /* */ como un comentario. /* Este es un comentario, se usan para clarificar el uso de las funciones */ 	IF edad < 12 THEN clasificacion:="mocoso"; 	ENDIF
Un esfuerzo que deberíamos practicar, es escribir variables con un significado que nos haga recordar fácilmente el porqué existe tal variable. Los nombres para las variables, generalmente empiezan con una letra y pueden continuar con mas letras o con números, y a veces también se permiten los guiones y muy pocos símbolos especiales. Estas reglas son muy generales y se permiten nombres como a23 para el nombre de una variable.
Comparemos los siguientes dos fragmentos de código en Pascal y notemos la legibilidad en cada uno de ellos. (variables con significado)  FOR empleado:=1 TO numeroEmpleados DO BEGIN 	PRINT nombreEmpleado; 	PRINTLN salarioEmpleado; END (variables sin significado) FOR e:=1 TO m DO 	BEGIN 	PRINT n; 	PRINTLN s; END
Cualquier persona que lea este último fragmento de código, no sabría lo que significan los símbolos m, n s y e. Pero los ejemplos del código con las variables con significado dan una mejor idea de lo que queremos expresar en el código. A pesar de la recomendación de elegir nombres con significado para las variables, se prefieren nombres cortos  para las variables, veamos; el nombre de la variable salarioDeEmpleadosMensual es menos preferible que salarioMensual.
D. Fases del ciclo de vida del software El software varía en complejidad dependiendo de lo que se requiere hacer. La mayoría de los paquetes de software consisten de muchos módulos, cada módulo es responsable de ciertas tareas específicas. Para simplificar el desarrollo del software, se sigue una serie de pasos que se llaman el ciclo de vida del software, y que son seguidos durante el tiempo que un software existe.
1) Introducción al ciclo de vida del software: Regularmente hay cinco pasos en el ciclo de vida del software: 1) Entender el problema. En la primera fase del ciclo de vida del software, se enlistan las tareas que el software debe desarrollar, los problemas a ser resueltos, y en esta fase se estudian sus causas y efectos. La tarea específica que se requiere del programa se deriva del establecimiento del problema, que es una descripción concisa del problema en cuestión. El software debe proporcionar una solución utilizable a este problema.
2) Diseñar el programa. En la fase de diseño, el objetivo es conocer las relaciones entre los módulos del programa, y garantizar que se cumplen cabalmente los requerimientos solicitados de una manera eficiente, lógica y completa.  Los diseñadores de software consideran los recursos de hardware y software disponibles para poder alcanzar su objetivo. Si se llega a la conclusión de que no es posible utilizar algún hardware o software, se planea utilizar una estrategia diferente. Primero se diseña la estructura general del programa. Entonces el problema se divide en subproblemas en tareas más y más pequeñas hasta que tengan un tamaño manejable.
3) Codificar el programa. Durante la fase de codificación, el programa se escribe en un lenguaje de programación. Hay muchos lenguajes de programación, cada uno de ellos es especialista en algún tipo de problemas. Por ejemplo, FORTRAN es especialista en cálculos numéricos, mientras que LISP es especialista en problemas de inteligencia artificial y procesamiento simbólico.  El código del programa debe desarrollar la tarea solicitada, y debe ser legible de modo que otros programadores lo puedan mantener. Los programas se escriben usualmente en módulos separados, cada módulo desarrolla alguna tarea específica y debe funcionar independientemente y en relación con el resto del programa.
4) Probar el programa. Durante la fase de pruebas, el programa se ejecuta y se revisa. Las tareas deben ejecutarse sin errores en los resultados y también sin errores fatales. Los defectos en los programas se llaman bugs. Se examinan primero los módulos de manera individual, en forma independientemente, luego, se prueba todo el programa para encontrar bugs que puedan ocurrir en la interacción de los módulos.  Cuando se encuentra un bug, se aísla la causa y se resuelve. Este proceso se llama depuración. El programador se debe asegurar de al resolver un bug, no se crean otros más en alguna otra parte del programa.
5) Mantener el programa. Durante la fase de mantenimiento, de determina cualquier error y deficiencia en el programa, y se realizan cualquier acción para resolverla, mientras se preserva la integridad del programa. El uso de notas de diseño, código bien documentado y variables entendibles, pueden ayudar al mantenimiento futuro del programa.
2) Roles en el desarrollo del software:  Una persona por sí sola puede llevar o desarrollar los programas en cada etapa del desarrollo del software, pero usualmente esto es una excepción, la mayoría de los programas son grandes y complejos.
Una compañía de software emplea, frecuentemente, diversos equipos, cada uno de ellos es responsable de una fase diferente en el desarrollo del software Un equipo de desarrollo de software, típicamente está compuesto por varios programadores, al menos un programador analista y al menos un analista de sistemas. Los programadores asistentes usualmente son programadores con poca experiencia. Estos no escriben nuevos programas, en lugar de esto, se dedican a desarrollar trabajos  de mantenimiento acerca de otros programas.  Cuando los programadores han adquirido más experiencia, pueden hacer nuevos programas. Las especificaciones de esos programas ya deben estar analizados y autorizados.
Los programadores experimentados Seniorprogrammer dan las especificaciones del programa y escriben nuevos programas. Ellos no hacen tareas de mantenimiento, sólo se dedican a generar nuevo código.  Un programador analista trabaja muy de cerca con los diseñadores del programa. Además de programar nuevo código, los programadores analistas empiezan a aprender las técnicas y los lineamientos del diseño de software. Un analista de sistemas es un intermediario entre el cliente y los programadores.
Los clientes comunican sus necesidades a los analistas de sistemas. Los analistas traducen esos requerimientos en diseños de programas y se lo comunican a los programadores, quienes hacen de hecho, la programación.

Más contenido relacionado

La actualidad más candente

Lección 1 Introducción a los Lenguajes de Programación
Lección 1   Introducción a los Lenguajes de ProgramaciónLección 1   Introducción a los Lenguajes de Programación
Lección 1 Introducción a los Lenguajes de Programaciónocasas
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programaciónpefrayo5
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOadark
 
Compiladores, interpretadores y lenguajes de bajo, medio y alto nivel
Compiladores, interpretadores y lenguajes de bajo, medio y alto nivelCompiladores, interpretadores y lenguajes de bajo, medio y alto nivel
Compiladores, interpretadores y lenguajes de bajo, medio y alto nivelEstefhany1
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionKarol
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores947369
 
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Alejandro Perez
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionElder Giron
 
TIPOS DE LENGUAJES DE PROGRAMACION
TIPOS DE LENGUAJES DE PROGRAMACIONTIPOS DE LENGUAJES DE PROGRAMACION
TIPOS DE LENGUAJES DE PROGRAMACIONPEDRO Borja
 
5 características del lenguaje cobol
5 características del lenguaje cobol5 características del lenguaje cobol
5 características del lenguaje cobolGili Freire
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2exequiel9035a
 

La actualidad más candente (19)

Lección 1 Introducción a los Lenguajes de Programación
Lección 1   Introducción a los Lenguajes de ProgramaciónLección 1   Introducción a los Lenguajes de Programación
Lección 1 Introducción a los Lenguajes de Programación
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programación
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
 
Compiladores, interpretadores y lenguajes de bajo, medio y alto nivel
Compiladores, interpretadores y lenguajes de bajo, medio y alto nivelCompiladores, interpretadores y lenguajes de bajo, medio y alto nivel
Compiladores, interpretadores y lenguajes de bajo, medio y alto nivel
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Programación de computadores
Programación de computadoresProgramación de computadores
Programación de computadores
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Algoritmos y programas
Algoritmos y programasAlgoritmos y programas
Algoritmos y programas
 
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
Tipos y caracteristicas de lenguajes de programacion. ( adolfo elias).
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
TIPOS DE LENGUAJES DE PROGRAMACION
TIPOS DE LENGUAJES DE PROGRAMACIONTIPOS DE LENGUAJES DE PROGRAMACION
TIPOS DE LENGUAJES DE PROGRAMACION
 
Lenguajes de programación programación visual
Lenguajes de programación  programación visualLenguajes de programación  programación visual
Lenguajes de programación programación visual
 
5 características del lenguaje cobol
5 características del lenguaje cobol5 características del lenguaje cobol
5 características del lenguaje cobol
 
El estudio de los lenguajes de programacion
El estudio de los lenguajes de programacionEl estudio de los lenguajes de programacion
El estudio de los lenguajes de programacion
 
Lenguajes De Programación
Lenguajes De ProgramaciónLenguajes De Programación
Lenguajes De Programación
 
Linea del Tiempo
Linea del TiempoLinea del Tiempo
Linea del Tiempo
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2
 
Presentación1
Presentación1Presentación1
Presentación1
 

Similar a Presentacion de la Unidad 2

Innovaciones realizadas a los programas
Innovaciones realizadas a los programasInnovaciones realizadas a los programas
Innovaciones realizadas a los programasCahydeSwaan
 
Evolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionEvolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionSergio Maidana
 
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...Sarai Rodriguez
 
Lenguajes de programacion
Lenguajes de programacion Lenguajes de programacion
Lenguajes de programacion juanjokobrax
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacionLy Andre
 
Evolucion de los lenguajes de programación
Evolucion de los lenguajes de programaciónEvolucion de los lenguajes de programación
Evolucion de los lenguajes de programaciónfercho-nava
 
Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.francisco dixon
 
8 libro 1 y2
8  libro 1 y2 8  libro 1 y2
8 libro 1 y2 farca26
 
lenguaje de Programacion
lenguaje de Programacionlenguaje de Programacion
lenguaje de ProgramacionLauracks
 
lenguaje de programacion
lenguaje de programacionlenguaje de programacion
lenguaje de programacionpefrayo5
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programaciónCati Oliver
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacionmichelledelgado97
 
Lenguajes de alto_nivel
Lenguajes de alto_nivelLenguajes de alto_nivel
Lenguajes de alto_nivelANALI GOMEZ
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosInfomania pro
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la ProgramaciónAlessandro Viera
 

Similar a Presentacion de la Unidad 2 (20)

Innovaciones realizadas a los programas
Innovaciones realizadas a los programasInnovaciones realizadas a los programas
Innovaciones realizadas a los programas
 
Presentación1
Presentación1Presentación1
Presentación1
 
Evolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacionEvolucion historica del lenguaje de programacion
Evolucion historica del lenguaje de programacion
 
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
 
Lenguajes de programacion
Lenguajes de programacion Lenguajes de programacion
Lenguajes de programacion
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacion
 
Evolucion de los lenguajes de programación
Evolucion de los lenguajes de programaciónEvolucion de los lenguajes de programación
Evolucion de los lenguajes de programación
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
 
Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.
 
Lenguajes
LenguajesLenguajes
Lenguajes
 
Lenguajes
LenguajesLenguajes
Lenguajes
 
8 libro 1 y2
8  libro 1 y2 8  libro 1 y2
8 libro 1 y2
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
lenguaje de Programacion
lenguaje de Programacionlenguaje de Programacion
lenguaje de Programacion
 
lenguaje de programacion
lenguaje de programacionlenguaje de programacion
lenguaje de programacion
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacion
 
Lenguajes de alto_nivel
Lenguajes de alto_nivelLenguajes de alto_nivel
Lenguajes de alto_nivel
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
 
Evolución de la Programación
Evolución de la ProgramaciónEvolución de la Programación
Evolución de la Programación
 

Último

Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 

Último (20)

Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 

Presentacion de la Unidad 2

  • 1.
  • 2. PRINCIPIOS DE PROGRAMACIÓN OBJETIVO: Se trata de revisar y estudiar los principios que rigen el arte de programar computadoras, así como los conceptos fundamentales de la programación, comprenderemos las direcciones de estudio en la programación y los principios para tener buenos hábitos en la programación.
  • 3. PROGRAMACIÓN BÁSICA Como las computadoras no pueden pensar (al menos hasta ahora), necesitamos darle las instrucciones para que ellas hagan lo que queremos. Un programa contiene un conjunto de instrucciones que la computadora puede utilizar para hacer alguna tarea. Debido a la naturaleza eléctrica de prendido y apagado, las computadoras solamente entienden el lenguaje de 1s y 0s. Este lenguaje se llama lenguaje maquina. Una instrucción típica en lenguaje maquina es 0000100000101111.
  • 4. Como las computadoras utilizan millones de circuitos electrónicos, utilizan el 1 para representar cuando tienen corriente y 0 para representar cuando no tienen corriente. Al principio, cuando se utilizaban las tarjetas perforadas, utilizaban el mismo principio. Un orificio se representaba con 1 y un no-orificio (no hay hueco) se representaba por un 0.
  • 5. Los estados prendido y apagado de los circuitos electrónicos de la computadora, posibilitan el uso del ´algebra booleana, que fue inventada por el matemático ingles George Boole. Los sistemas binarios operan de acuerdo con las reglas de la lógica booleana. Estas regla se utilizan para hacer cálculos con los datos.
  • 6. Las computadoras suelen tener un programa especial que se llama ensamblador, que traduce un programa en lenguaje ensamblador a un lenguaje maquina, de modo que la computadora pueda entenderlo y ejecutarlo
  • 7.
  • 8.
  • 9.
  • 10. COBOL también es un acrónimo que significa COmmon Business Oriented Lenguaje. Se creó en 1960,y podia procesar cálculos simples de grandes cantidades de datos. Los programas escritos en COBOL eran mas largos que aquellos que se escribían en otros lenguajes, pero a la vez, eran mas fáciles de seguir. COBOL fue un lenguaje popular para las aplicaciones orientadas a lo negocios que corran en computadoras grandes como los mainframes, aunque ahora ya no es tan común, aunque aún existe el compilador para este lenguaje.
  • 11. BASIC. También es un acrónimo. significa Beginner’sAll/purpose Symbolic Instruction Code. Se desarrollo en 1964 y como su nombre lo sugiere, es un lenguaje fácil de aprender para los estudiantes y principiantes. Hasta hace algún tiempo, las computadoras tenían incluido un interprete de BASIC en su software de fabrica. • C. C se creó en 1972 como un lenguaje para hacer aplicaciones en el sistema operativo UNIX. A partir de C, se han desarrollado otros lenguajes como C++, C#,C-objetivo, incluso Java, que son lenguajes actuales y ampliamente difundidos y utilizados.
  • 12. Los lenguajes de alto nivel se parecen más al lenguaje natural que los lenguajes ensambladores, porque utilizan palabras DR. ABDIEL E. CA´ CERES GONZA´ LEZ 11 como el lenguaje cotidiano (usualmente en ingles) como BEGIN, END o IF. Los compiladores y los interpretes se utilizan para convertir programas de alto nivel a bajo nivel. Cada instrucción de alto nivel se traduce varias instrucciones de bajo nivel. Los lenguajes de cuarta generación (4GLs) tienen comandos que se parecen mucho m´as a los lenguajes humanos. SQL (StructuredQueryLanguage) es un lenguaje de cuarta generación. La mayoria de los lenguajes de cuarta generación se utilizan para manipular bases de datos. Por ejemplo, un comando en SQL es el siguiente: Select * From Empleados Where Tiempo-Completo = ’SI’ que se puede utilizar (junto con otros comandos) para obtener información de los empleados en una base de datos.
  • 13. Los lenguajes de cuarta generación son más fáciles de aprender y de manipular, pero son más difíciles de interpretar por la computadora. La computadora requiere de más recursos para traducir una instrucción en lenguaje de cuarta generación.
  • 14. Cada lenguaje de programación tiene sus ventajas y desventajas. Por ejemplo, FORTRAN es muy bueno para hacer cálculos numéricos, pero es muy malo para hacer formatos de texto en la pantalla; mientras que COBOL es muy bueno para dar formatos de texto en la pantalla, pero muy malo para hacer cómputo numérico. Si queremos ser programadores profesionales, probablemente deberemos aprender varios lenguajes de programación, porque actualmente los entornos de programación permiten mezclar código de diferentes lenguajes.
  • 15. Tendencias de la programación En 1966, dos matemáticos publicaron un artículo donde se mostraba que era posible hacer cualquier programa utilizando únicamente tres tipos de estructuras de control: 1) Secuencias 2) Opcionales 3) Repeticiones
  • 16. Programación estructurada: En la programación estructurada, los programas grandes son difíciles de comprender si tienen un solo inicio y siguen aplicando operaciones tras operaciones hasta un solo final, de modo que la programación estructurada ofrece la alternativa de hacer módulos de programas más pequeños, que en conjunto puedan dar solución al problema. De modo que la programación estructurada incluye. • Un desarrollo TOP-DOWN • Un diseño Modular El desarrollo TOP-DOWN establece dividir el problema en componentes de tamaño más manejable, resultando en programas más precisos y confiables.
  • 17. El diseño modular de un programa se complementa con el desarrollo top- down porque los subpasos en el proceso del desarrollo en realidad es hacer más módulos en el programa
  • 18. Los lenguajes de tercera generación, como Pascal, C y BASIC, siguen la filosofía de la programación estructurada, porque son lenguajes procedurales que necesitan hacer instrucciones paso por paso para llegar al resultado deseado. Los lenguajes de cuarta generación se desarrollaron desde finales de la década de 1970. Cada una de sus instrucciones genera aproximadamente unas 50 instrucciones en lenguaje máquina. Los programas escritos utilizando esos lenguajes también se pueden corregir rápidamente. Esta clase de lenguajes (4GL) no son procedurales, porque el programador solicita un resultado sin proporcionar los pasos necesarios para obtenerlo.
  • 19. Por ejemplo, esta solicitud de SQL despliega los Productos de la base de datos Inventario. GET Productos FROM Inventario
  • 20.
  • 21.
  • 22. Los lenguajes de cuarta generación son orientados al usuario final, en otras palabras, tienen una interfaz con el usuario muy amigable, de modo que las personas con pocos o nulos conocimientos en lenguajes de programación pueda aprenderlos fácilmente. Como la principal aplicación de los lenguajes de cuarta generación es la interacción con las bases de datos, son buenos para extraer datos y presentarlos en un formato específico; sin embargo, tienen compiladores que son muy grandes y lentos, comparados con los compiladores de los lenguajes de tercera generación.
  • 23. Como ejemplos de los sistemas manejadores de bases de datos (DBMSs) que utilizan lenguajes de cuarta generación incluyen: Informix. Proporciona sistemas manejadores de bases de datos relacionales que corren en diversas plataformas UNix. Las bases de datos relacionales almacenan los datos en forma de tablas relacionadas. Son muy poderosas, porque los datos se pueden ver de diversas maneras, siempre atendiendo las necesidades específicas de cada clase de usuario.
  • 24. Oracle. Las bases de datos Oracle incluyeron el primer sistema manejador de bases de datos que incorporaron el lenguaje SQL y que se utilizaron en una amplia gama de plataformas. El lenguaje SQL (StructuredQueryLanguage) es el lenguaje de programación estándar de la industria, y se utiliza para extraer información de las bases de datos que son alojadas en el sistema. Oracle ofrece una variedad de herramientas de desarrollo de aplicaciones que incluyen aplicaciones para ser ejecutadas en redes de computadoras.
  • 25.
  • 26.
  • 27. Programación orientada a objetos: La programación orientada a objetos (OOP) se convirtió en la alternativa para la programación estructurada a finales de la década de 1980. La OOP crea abstracciones de los objetos del mundo real en la computadora. Esquema de un objeto. Tiene al interior las propiedades (atributos) y para acceder a ellos se hace por medio de las operaciones (métodos).
  • 28. Cada objeto tiene un conjunto de propiedades y operaciones o métodos asociados. Por ejemplo, el objeto reloj puede tener las propiedades: horas, minutos, segundos y los métodos ponerTiempo, tiempoActual. Las propiedades horas, minutos y segundos se pueden manipular solo por medio de los métodos. Los programas orientados a objetos son modulares. Los programas modulares son fáciles de corregir. La tendencia actual es la programación orientada a objetos, considerando algunas extensiones a esta filosofía de programación.
  • 29. Como ejemplos de lenguajes orientados a objetos, incluyen: Smaltalk. Smaltalk fue el primer lenguaje de programación orientado a objetos, ofrece muchas libertades a los programadores, de modo que los programadores deben tener mucho cuidado al manejar la memoria del sistema.
  • 30. Java. Fue creado por la compañía Sun Microsystems, Java es un lenguaje orientado a objetos similar a C++ pero han mejorado el lenguaje con características que evitan errores de programación comunes, como el manejo de la memoria, donde la responsabilidad recae en un subsistema que se llama recolector de basura. C++. C++ es un super conjunto del lenguaje C. Generalmente es considerado uno de los mejores lenguajes para hacer aplicaciones a gran escala. C#. Fue desarrollado por Microsoft. C# (que se pronuncia C-sharp) es un híbrido de C y C++ que fue desarrollado para competir con Java y con el objetivo de mejorar la productividad en el desarrollo de aplicaciones WEB, manteniendo la flexibilidad y el poder de C y C++.
  • 31. Los lenguajes de alto nivel tienen algunas ventajas sobre los lenguajes de bajo nivel [4]: 1) Son más legibles: Un buen lenguaje de alto nivel, permitirá que los programas se escriban de manera que recuerden descripciones tipo-idioma-común, muy parecidos a los pseudocódigos. Si se programa cuidadosamente, se puede generar una documentación auto contenida, que es una propiedad deseable cuando se considera que los programas se documentan para que otras personas lean y comprendan lo que se ha escrito.
  • 32. 2) Son más portables: Actualmente, los lenguajes de programación de alto nivel se están volviendo más capaces de ser utilizados en arquitecturas de computadoras diferentes, con ningún cambio; o bien al proporcionar el código fuente y ser recompilado sin modificaciones. 3) Tienen estructura y orientación de objetos: Este es un acuerdo general que empezó con la programación estructurada desde la década de 1960 y posteriormente con el movimiento a la programación orientada a objetos en la década de 1990, de lo que resulto una gran mejora en la calidad y confiabilidad del código. Los lenguajes de alto nivel se pueden diseñar para reforzar esos paradigmas.
  • 33. 4) Tienen mayor generalidad: La mayoría de los lenguajes de alto nivel permiten la escritura de una amplia variedad de programas, para permitir al programador mezclar código de diversos lenguajes para que su aplicación sea mejor. 5) Brevedad: Los programas expresados en lenguajes de alto nivel usualmente son considerablemente más cortos (en términos del numero de líneas de código fuente) que los hechos en lenguajes de programación de bajo nivel.
  • 34. 6) Verificación de tipos: Siendo humano, un programador probablemente cometa muchos errores en el desarrollo de un programa de computadora. Muchos lenguajes de alto nivel o al menos sus implementaciones pueden, y deben, verificar los errores tanto en tiempo de compilación como en tiempo de ejecución.
  • 35. C. Principios de una buena programación Los programas de computadoras son útiles cuando se usan, a pesar de lo trivial que pueda sonar esta frase, involucra cuatro características importantes que deben tener los programas para que sean buenos programa y se puedan utilizar. Un buen programa es robusto, eficiente, utilizable y mantenible.
  • 36. Robusto.Decimos que un programa es robusto cuando es tolerante a las fallas. Podemos probar nuestro programa extensivamente para indicar las fallas que pudieran encontrar los usuarios. Sin embargo, debe haber un balance entre el costo de probar y la necesidad de manipular los errores. Generalmente no es posible probar un sistema para encontrar todas las fallas y hacer un programa que reaccione a cada una de estas fallas.
  • 37. Eficiente. Los programas deben usar de manera correcta los recursos del sistema en el cual se están ejecutando. En un avión, por ejemplo, el tamaño y el peso de una computadora es limitado. De modo que el software utilizado en esos sistemas debe estar restringido a la capacidad de memoria y a la velocidad del procesador utilizado. Los programas que desperdician memora y recursos del sistema, usualmente no sirven, porque cuando aumenta el volumen de datos, esos programas pueden ocasionar errores fatales. Un error fatal es aquel que hace detener la normal ejecución de un programa, ocasionando en ciertos casos que se deba reiniciar el sistema completo.
  • 38. Utilizable. Los programas utilizables son aquellos que el usuario final encuentra fáciles de operar. La utilizabilidad depende de algunos factores, como las formas para introducir los datos a la computadora, el diseño de los menús de opciones y la presentación de la información. Los mensajes informativos y los archivos de ayuda mejoran la utilizabilidad. La documentación del usuario offline como los manuales impresos, deben ser fáciles de leer y de seguir en la operación del sistema; asimismo, la ayuda en línea se debe distribuir y buscar más fácilmente.
  • 39. Mantenible. Un programa mantenible involucra hacer cambios a un programa después de haber sido implementado. Es posible que después de un tiempo, el usuario ya no esté completamente satisfecho con el sistema, entonces se debe modificar. La facilidad con que se puedan hacer esos cambios es lo que hace a un sistema mantenible. Un programador debe, entonces, estar familiarizado con la sintaxis del lenguaje de programación en que fue creado el sistema.
  • 40. Una excelente recomendación que es muy simple de aplicar para que nuestros programas seas claros y fáciles de seguir, es utilizar identación en la escritura del código. Como ejemplo, notemos la diferencia entre estos dos segmentos de código. (versionidentada) IF edad < 12 THEN clasificacion:="mocoso"; ENDIF (version no identada) IF edad < 12 THEN clasificacion:="mocoso"; ENDIF
  • 41. Cuando los programas tienen cientos o miles de líneas de código, la identación – o la falta de ella – afectarán significativamente la legibilidad del programa. También los comentarios incrementan la legibilidad de un programa. Todos los lenguajes de programación tienen un modo de insertar texto que no se ejecuta como parte del programa, por ejemplo, C trata cualquier texto entre /* */ como un comentario. /* Este es un comentario, se usan para clarificar el uso de las funciones */ IF edad < 12 THEN clasificacion:="mocoso"; ENDIF
  • 42. Un esfuerzo que deberíamos practicar, es escribir variables con un significado que nos haga recordar fácilmente el porqué existe tal variable. Los nombres para las variables, generalmente empiezan con una letra y pueden continuar con mas letras o con números, y a veces también se permiten los guiones y muy pocos símbolos especiales. Estas reglas son muy generales y se permiten nombres como a23 para el nombre de una variable.
  • 43. Comparemos los siguientes dos fragmentos de código en Pascal y notemos la legibilidad en cada uno de ellos. (variables con significado) FOR empleado:=1 TO numeroEmpleados DO BEGIN PRINT nombreEmpleado; PRINTLN salarioEmpleado; END (variables sin significado) FOR e:=1 TO m DO BEGIN PRINT n; PRINTLN s; END
  • 44. Cualquier persona que lea este último fragmento de código, no sabría lo que significan los símbolos m, n s y e. Pero los ejemplos del código con las variables con significado dan una mejor idea de lo que queremos expresar en el código. A pesar de la recomendación de elegir nombres con significado para las variables, se prefieren nombres cortos para las variables, veamos; el nombre de la variable salarioDeEmpleadosMensual es menos preferible que salarioMensual.
  • 45. D. Fases del ciclo de vida del software El software varía en complejidad dependiendo de lo que se requiere hacer. La mayoría de los paquetes de software consisten de muchos módulos, cada módulo es responsable de ciertas tareas específicas. Para simplificar el desarrollo del software, se sigue una serie de pasos que se llaman el ciclo de vida del software, y que son seguidos durante el tiempo que un software existe.
  • 46. 1) Introducción al ciclo de vida del software: Regularmente hay cinco pasos en el ciclo de vida del software: 1) Entender el problema. En la primera fase del ciclo de vida del software, se enlistan las tareas que el software debe desarrollar, los problemas a ser resueltos, y en esta fase se estudian sus causas y efectos. La tarea específica que se requiere del programa se deriva del establecimiento del problema, que es una descripción concisa del problema en cuestión. El software debe proporcionar una solución utilizable a este problema.
  • 47. 2) Diseñar el programa. En la fase de diseño, el objetivo es conocer las relaciones entre los módulos del programa, y garantizar que se cumplen cabalmente los requerimientos solicitados de una manera eficiente, lógica y completa. Los diseñadores de software consideran los recursos de hardware y software disponibles para poder alcanzar su objetivo. Si se llega a la conclusión de que no es posible utilizar algún hardware o software, se planea utilizar una estrategia diferente. Primero se diseña la estructura general del programa. Entonces el problema se divide en subproblemas en tareas más y más pequeñas hasta que tengan un tamaño manejable.
  • 48. 3) Codificar el programa. Durante la fase de codificación, el programa se escribe en un lenguaje de programación. Hay muchos lenguajes de programación, cada uno de ellos es especialista en algún tipo de problemas. Por ejemplo, FORTRAN es especialista en cálculos numéricos, mientras que LISP es especialista en problemas de inteligencia artificial y procesamiento simbólico. El código del programa debe desarrollar la tarea solicitada, y debe ser legible de modo que otros programadores lo puedan mantener. Los programas se escriben usualmente en módulos separados, cada módulo desarrolla alguna tarea específica y debe funcionar independientemente y en relación con el resto del programa.
  • 49. 4) Probar el programa. Durante la fase de pruebas, el programa se ejecuta y se revisa. Las tareas deben ejecutarse sin errores en los resultados y también sin errores fatales. Los defectos en los programas se llaman bugs. Se examinan primero los módulos de manera individual, en forma independientemente, luego, se prueba todo el programa para encontrar bugs que puedan ocurrir en la interacción de los módulos. Cuando se encuentra un bug, se aísla la causa y se resuelve. Este proceso se llama depuración. El programador se debe asegurar de al resolver un bug, no se crean otros más en alguna otra parte del programa.
  • 50. 5) Mantener el programa. Durante la fase de mantenimiento, de determina cualquier error y deficiencia en el programa, y se realizan cualquier acción para resolverla, mientras se preserva la integridad del programa. El uso de notas de diseño, código bien documentado y variables entendibles, pueden ayudar al mantenimiento futuro del programa.
  • 51. 2) Roles en el desarrollo del software: Una persona por sí sola puede llevar o desarrollar los programas en cada etapa del desarrollo del software, pero usualmente esto es una excepción, la mayoría de los programas son grandes y complejos.
  • 52. Una compañía de software emplea, frecuentemente, diversos equipos, cada uno de ellos es responsable de una fase diferente en el desarrollo del software Un equipo de desarrollo de software, típicamente está compuesto por varios programadores, al menos un programador analista y al menos un analista de sistemas. Los programadores asistentes usualmente son programadores con poca experiencia. Estos no escriben nuevos programas, en lugar de esto, se dedican a desarrollar trabajos de mantenimiento acerca de otros programas. Cuando los programadores han adquirido más experiencia, pueden hacer nuevos programas. Las especificaciones de esos programas ya deben estar analizados y autorizados.
  • 53. Los programadores experimentados Seniorprogrammer dan las especificaciones del programa y escriben nuevos programas. Ellos no hacen tareas de mantenimiento, sólo se dedican a generar nuevo código. Un programador analista trabaja muy de cerca con los diseñadores del programa. Además de programar nuevo código, los programadores analistas empiezan a aprender las técnicas y los lineamientos del diseño de software. Un analista de sistemas es un intermediario entre el cliente y los programadores.
  • 54. Los clientes comunican sus necesidades a los analistas de sistemas. Los analistas traducen esos requerimientos en diseños de programas y se lo comunican a los programadores, quienes hacen de hecho, la programación.