Download Algunos Fundamentos Teóricos de la Programación de
Document related concepts
Transcript
Algunos Fundamentos Teóricos de la Programación de Computadores Alejandra Duque Ceballos Ingeniera Electrónica, Universidad Autónoma de Manizales. Estudiante Maestría en Gestión y Desarrollo de Proyectos de Software Abstract. Se presentan los datos teóricos relevantes para el entendimiento de los conceptos básicos de la programación, se nombran clasificaciones y tipos relevantes para dar una idea general al nuevo y futuro programador. Keywords: historia de la programación, lenguajes, alto nivel, bajo nivel, programación estructurada, programación orientada a objetos, Uml, Eiffel. 1 Introduction Con este artículo se pretende dar a conocer parte de los fundamentos teóricos necesarios para hacer que el estudiante se familiarice con algunas de las clasificaciones comunes de los lenguajes de programación. Este artículo ofrece una visión muy general de los conceptos informativos básicos de los diferentes tipos de programación. 1.1 Fundamentos La programación es un conjunto de símbolos y sintaxis y se utiliza para controlar el comportamiento lógico de una máquina. Un lenguaje de programación permite especificar al programador de una forma más precisa sobre qué datos debe operar una computadora y que acciones tomará bajo ciertas circunstancias, y todo esto es por medio de un lenguaje de intenta estar relativamente cercano al lenguaje humano. [1] 1.2 Clasificación por su nivel de abstracción Se puede hablar de dos clases grandes de lenguajes clasificados por su nivel de abstracción, el primero de ellos de bajo nivel, que no necesitan ser traducidos porque son legibles directamente por la máquina, por esto consumen poca y valiosa memoria, ya que ahorran tiempo de ejecución. El segundo es de Alto nivel, el cuál es normalmente fácil de aprender porque están formados por elementos de lenguajes comunes o naturales para los humanos, como el inglés; de esta forma, se tiene la sensación que el computador entiende lo que le decimos o que habla nuestro idioma, lo cuál no es cierto, ya que en su interior solo acepta el lenguaje binario (1 y 0), es muy rígido y sistemático y no tienen cabida las ambigüedades. [2] Fig 1. Clasificación de los lenguajes de acuerdo a su paradigma. (http://www.desarrolloweb.com/articulos/2358.php) 1.3 Clasificación de acuerdo a su Paradigma De acuerdo a su paradigma se dividen en varios tipos, uno de ellos es el lenguaje estructurado. 1.3.1 Lenguaje Estructurado Surge a finales de los 60’s, proponía soluciones fiables y eficientes y se facilitaba su comprensión. Cualquiera de estos programas se puede escribir únicamente utilizando 3 tipos de instrucciones de control: • Secuencial. • Condicional. • Iteración. En este tipo de programación existen mas estructuras, pero cada una de ellas se puede construir mediante las tres anteriores. Se modela mediante diagramas de flujo, el cual es la representación gráfica de un flujo de una secuencia de rutinas y se llama de esa forma porque utiliza símbolos conectados por medio de flechas para indicar la secuencia de la operación. Fig 2. Ejemplo Diagrama de Flujo En este tipo de programación se plantea el problema como un todo y se divide en partes o segmentos más pequeños o de menor complejidad, una vez terminado cada uno de los segmentos se procede a unificar, la programación estructurada permite realizar correcciones o modificaciones de forma sencilla. Algunos lenguajes de programación son: Basic, C, C++, Visual Basic. Entre otras ventajas que se pueden listar están: • Reducción de los costos del mantenimiento de los programas. • Los programas pueden ser leídos de forma secuencial y más rápidamente. • Facilita la documentación. • Con la programación modular se puede separar en bloques un programa que inicialmente sea muy extenso. • Se utiliza comúnmente para programar dispositivos electrónicos como microprocesadores y microcontroladores. Posee también ciertas desventajas: • Puede obtener un bloque único de programa, que cuando se hace muy grande puede resultar molesto y problemático para su manejo y mantenimiento. • La solución de los problemas se orientan a la máquina. [1] 1.3.2 Programación Orientada a Objetos Se suele abreviar con POO u OOP, es un paradigma de la programación, y es una forma mas cercana a como se expresarían las cosas en la vida real. Los programas se escriben en términos de objetos, propiedades y métodos y por esto es que debemos aprender a ver las cosas de otra forma. Durante mucho tiempo los programadores se han dedicado a escribir código, y reescribirlo de nuevo cuando lo necesitan, pero la POO a logrado que el código sea reutilizado y así optimizar su trabajo. No es difícil programar en POO, puede ser algo subjetiva ya que existen muchas formas de hacer lo mismo, pero no todas son las correctas. Se pueden listas unas ventajas: • Uniformidad: la representación de los objetos lleva implica el análisis, el diseño y la codificación de los mismos. • Comprensión: Tanto los datos que componen los objetos, como los procedimientos que los manipulan, están agrupados en clases, que se corresponden con las estructuras de información que el programa trata. • Flexibilidad. Al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cambio que se realice sobre ellos quedará reflejado automáticamente en cualquier lugar donde estos datos aparezcan. • Estabilidad. Dado que permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo. • Reusabilidad. La noción de objeto permite que programas que traten las mismas estructuras de información reutilicen las definiciones de objetos empleadas en otros programas e incluso los procedimientos que los manipulan. De esta forma, el desarrollo de un programa puede llegar a ser una simple combinación de objetos ya definidos donde estos están relacionados de una manera particular. Uno de los puntos clave a remarcar en esta introducción es que la programación orientada a objetos no sustituye a ninguna metodología ni lenguaje de programación anterior. Todos los programas que se realizan según OOD (Object Oriented Design), se pueden realizar igualmente mediante programación estructurada. [3] Se puede observar una desventaja como: • Para realizar una operación se necesitan más líneas que en la programación estructurada. • Consumen mucha memoria del equipo de cómputo.[4] Algunos lenguajes de OOP son: Smalltalk, Eiffel, Java. 1.3.2 UML (Unified Modeling Language - Lenguaje Unificado de Modelado), es un popular lenguaje de modélalo de sistemas, Se trata de un lenguaje gráfico para construir, documentar, visualizar y especificar un sistema de software. Entre otras palabras, UML se utiliza para definir un sistema de software [5]. Es útil para crear un modelo del sistema, en el cual se puede representar procesos de negocios, funciones, esquemas de bases de datos, expresiones de lenguajes de programación, etc. No necesariamente para aplicaciones que serán programadas en OOP. La versión 2 de UML se vale de 13 diagramas diferenciados en 3 categorías: • Diagramas de estructura: Diagrama de clases Diagrama de componentes Diagrama de objetos Diagrama de estructura compuesta (UML 2.0) Diagrama de despliegue Diagrama de paquetes • Diagramas de comportamiento: Diagrama de actividades Diagrama de casos de uso Diagrama de estados • Diagramas de interacción: Diagrama de secuencia Diagrama de comunicación Diagrama de tiempos (UML 2.0) Diagrama de vista de interacción (UML 2.0) [6] Algunos programas que sirven para modelar UML son: StarUML, Magig Draw, PaceStar, etc. References 1. Gallego Fernandez, M. Isabel. Medina Llinás, Manuel. Algorítmica y Programación para Ingenieros. Edicions UPC, Págs 19 – 25. (2000). 2. Tipos de Lenguajes de Programaciíon. http://www.monografias.com/trabajos38/tiposlenguajes-programacion/tipos-lenguajes-programacion.shtml 3. Programación orientada a Objetos, http://www.monografias.com/trabajos14/progorie/progorie.shtml 4. Lo mínimo sobre programación orientada a objetos, studies.ac.upc.edu/EPSC/TCP/documentos/ActivitatPOO+PM.doc 5. Eriksson, Hans-Erik. UML 2 ToolkitPágs 2 – 10 (2008). 6. Maksimchuk, A. Robert: UML for Mere Mortals, Addison Wesley Professional. Págs. 20 – 25 (2004).