domingo, 26 de febrero de 2017

"La programación y sus lenguajes explicado para no informáticos"



El tema 2 trata de como se forma un lenguaje, para ello va a ser necesario saber que es información; los procesos que se necesitan para llegar a esta; como se representa la información dependiendo del elemento, ya que no es lo mismo pasar información a imagen, que transformar esa información en un audio. Finalmente llegaremos al lenguaje de programación, este sistema se instala en un etapa del proceso de Software llamada implementación. Cabe destacar, que en este tema hablaremos de los diferente procesos de creación de Software, la "calidad" tan subjetiva que pueden llegar a tener y sobre aspectos éticos como la confiabilidad. Este tema lo terminaremos con la evolución de la informática y por tanto con la evolución de los lenguajes de programación. 


¿Qué es información?
La información se hace presente mediante palabras o figuras, una serie de conocimientos que permiten ampliar o precisar otros que se poseen sobre una materia determinada. 
La información es el resultado del sumario de datos simples de una investigación, creación, descubrimiento... En el momento que se tienen datos e información pasada (experiencias) se consigue el conocimiento. Es decir, hay un proceso jerárquico para llegar al conocimiento o la sabiduría, esta ultima es el máximo nivel. Por ello, es muy importante que lo datos sean verdaderos y exactos porque sino se llegaría a concluir en un conocimiento falso. 




LA INFORMACIÓN EN EL ÁMBITO DE LA INFORMÁTICA
El proceso jerárquico es diferente en la informática en cuestión de herramientas; ya que es una jerarquía de lo mas físico (HARDWARE) hasta el mayor nivel de abstracción (Aplicación); este último nivel es el dominio de la información; esta etapa es la más delgada porque la mayoría de los procesos subyacen como soluciones predefinidas en el motor de la información. 




TEORÍA DE LA INFORMACIÓN 
La Teoría de la información de Claude E. Shanon, dice que existen 6 elementos: fuente, elemento codificador, Mensaje, Canal Descodificador y Receptor. 

El modelo de Shannon  es la representación de la información; en el cual se muestra la posible distorsión de esta. 
Nos centraremos en la representación de la información en Internet; en el cual se hace a través del sistema binario. El sistema binario es un sistema de numeración en el que los números se representan utilizando las cifras 0 y 1, es decir solo 2 dígitos ( bi= dos). 
Se utilizan los dígitos 1 y 0 por las señales eléctricas, siendo la señal positiva (+5KW) y negativa (-5KW). Esto en la informativa y en electrónica tiene mucha importancia ya que los ordenadores trabajan internamente con 2 niveles: hay o no hay de Tensión, hay o no hay corriente, pulsando o sin pulsar, etc.
Siendo la mínima unidad el bit; con este sistema se puede representar cualquier tipo de información desde un numero natural hasta los textos; pero estos numero deben mantenerse dentro de un rango y una presión limitada.




Hay diferentes códigos para destinos elementos; Texto: ASCII; Sonido: WAV; Imagen: DXF...

EL LENGUAJE BINARIO PARA LOS REPRESENTAR TEXTOS
La misma lógica que se utiliza para representar los números se puede utiliza para representar texto. Lo que necesitamos es un esquema de codificación, es decir, un código que nos haga equivalencias entre un número binario y una letra de abecedario. 
Por ejemplo, 0100 0001 es el número binario que representa la letra A. 
Varios códigos estándar para convertir texto en binario se han desarrollado a lo largo de los años, los más famosos y utilizados son ASCII Y Unicode. 



ASCII, el Código Estándar Americano para el intercambio de Información; fue desarrollado a partir de los códigos telegráficos, pero con el paso del tiempo fue adaptado para a representación de textos en código binario en los años 1960 y 1970. La versión original de ASCII utiliza 8 bits para representar cualquier carácter, con una total de 128. 

El código estándar actual es Unicode, a pesar de ser muy parecido a ASCII, Unicode contiene más de 110 000 caracteres, cubriendo la mayor parte de as lenguas impresas del mundo. La diferencia entre Unicode y ASCII es, que tiene versiones de 16 y 32 bits; esto le permite la representación de casi cualquier tipo de lenguaje.  
El problema que tienen ambos códigos es la limitación a 256 símbolos, esto hace que haya dificultades para la representación de algunos lenguajes.





REPRESENTACION DE IMÁGENES
Las imágenes se muestran en pantalla como una matriz de puntos de distintos colores (pixels). Para representar una imagen se  puede hacer de dos formas describiendo dichos pixels( imagen raster) o enumerando una serie instrucciones para construir la imagen final 

(imagen vectorial)

  • Imagen Vectorial; son gráficos formulados a base de curva y líneas. Las imágenes  vectoriales componen de contornos y rellenos definidos, matemáticamente mediante precisas ecuaciones.


  • Imagen Raster, estan formadas por pixel; estos pixels tienen uno o más valores que describen su color. 




Los formatos más comunes para representar imágenes en Internet son GIF y JPEG. 


 GIF,formato de 8 bits, es decir, una imagen puede utilizar hasta 256 colores diferentes. Cada pixel va asociado a un indice de la paleta de colores no a un color. GIF es adecuado para dibujos y texto pero poco recomendable para fotografías.






JPEG, formato de 24 bits; esto permite almacenar 16 777 216 colores, más de los que distingue el ojo. Cada pixel va asociado  a un valor que representa su color en formato RGB. JPEG es adecuado para fotografías. 





 

Los formatos vectoriales permiten describir una imagen en base a un número limitado de objetos. Líneas. Curvas. Polígonos.  Estos sistemas se utilizan para producir fichero muy pequeños y adecuado para la transmisión por Internet. 

Los formatos más comunes son Flash(su principal finalidad es el desarrollo de clips multimedia y no los gráficos vectoriales, producto de Macromedia) y VML(su finalidad es la visualización de gráficos vectoriales vinculados a SVG, producto creado por Microsoft). 

REPRESENTACIÓN DE AUDIO 
Hay muchos formatos para la transmisión de audio a través de Internet: MIDI, MOD. AU, MP3, MP4... Los más populares son los formatos MP3 Y MP4; estos formatos comprimen a costa de sacrificar la calidad del sonido; pero la compresión es razonable. Voice XML es un vocabulario para construir interfaces de voz.  

REPRESENTACIÓN DE VIDEO
Existen múltiples formatos pero los más extendidos son Quick Time y MPEG. Este último, permite almacenar audio/video; cabe destacar que los archivos MP3 son archivos MPEG. MPEG utiliza técnicas de compresión para reducir el tamaño final e fichero sin afectar a la calidad de la imagen o del sonido. 




Par la representación en Internet de contenido y presentación se usa el lenguaje HTML surgió para poder representar hipertexto, el problema es que mezcla contenido y presentación; para tratar de solucionar esto se propuso XML. 

LOS LENGUAJES DE PROGRAMACIÓN EN EL MODELO DE INGENIERÍA DEL SOFTWARE


Antes de hablar sobre los lenguajes del Software, es necesario saber que es la Ingeniería del Software; esta tiene como objetivo hacer un software de calidad tanto con aspectos técnicos y no técnicos. El software, son programas de ordenador, normalmente creado por grupos de ingenieros,  asociados a un producto o a una aplicación. Además, implica la correcta documentación, instalación, uso y mantenimiento. 
La calidad de un software es relativa; depende del punto de vista y del producto que estamos construyendo. Hay dos tipos de calidad:
   - Calidad Externa, hay un observador externo, usuario. 
  - Calidad Interna, es la calidad de la estructura internad del Software, son capaces de examinarla los informáticos. 
La calidad mas importante es la que se sabe vender; ya que Windows tiene una calidad interna nefasta, pero con el uso de un buen Marketing de cada externa consigue que su producto sea el más consumido. 





Las características más importantes de la calidad son la funcionalidad(hay funcionalidad correcta se si comporta de acuerdo a las funciones que debe proveer); confiabilidad(confianza del usuario en el software; probabilidad baja de que el software funcione de forma no adecuada); usabilidad (facilidad de uso para los usuarios) y robustez (comportamiento razonable en circunstancias especiales). Adquirir un producto de calidad en la actualidad es sencillo ya que hay responsabilidad profesional y prácticas consensuadas para tener productos de alta calidad sin errores; sin embargo, hace unos años lo importante era que funcionara, no existían prácticas consensuadas. 

El procedimiento a seguir en un proyecto de Ingeniera de Software son la definición de requerimientos, análisis, diseño, implementación, pruebas y mantenimiento. Para ello son necesarias aplicaciones como, Bohm(práctica del conocimiento científico al diseño y construcción de programas); IEEE(se encarga del desarrollo, operación y mantenimiento del software);por lo tanto se puede entender como aplicación todos lo producido durante el proceso por el cual se desarrolla el software. 
El proceso de software, es la manera en que los requerimientos son trasladados al producto software. Este proceso tiene una serie de etapas:

1. ¿Comprar o desarrollar? Para la producción de un software se necesita saber si es conveniente desarrollarlo, si va a solucionar los problemas existentes y si la tecnología actual podría crearlo.

2. Planificación y seguimiento del proyecto; en esta fase se concretan las herramientas necesarias para la producción (editores de texto, gestión de configuraciones, soportes a la especificación..)

3. Análisis completo de los problemas del usuario y por tanto de requerimientos; estableciendo que debe ofrecer el software. Esta tarea tiene una complejidad extra debido a las dificultades en la compresión, en dificultades accidentales(falta de requerimientos, objetivo equivocado... En la videoconferencia se hablo de la construcción de un puente por dos países, estos países usaron medidas de longitud diferentes y en el momento de unión de los puentes, una mitad estaba por encima de la otra)

4. Arquitectura y Diseño; como se proyectaran los requerimientos en el software, dueño previo a la codificación.

5. Pruebas del software,¿Adecuación del sistema a los requerimientos funcionales y no funcionales?; estas pruebas empiezan junto al análisis de requerimientos y continua durante todo el desarrollo del software.


Hay varios modelos de desarrollo de Software:

1. Modelo de ingeniería del Proceso 

2. Modelo del Ciclo de Vida del Software  



3. Modelo De Cascada; con este modelo hay un alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseño; pero hay bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida.  



4. Desarrollo Evolutivo; en este modelo hay una serie de inconvenientes como poca visibilidad en el proceso, se requiere de habilidades especiales y sistemas procedente especificados. Se usa para sistemas interactivos pequeños o medianos; partes de sistemas grandes o sistemas de corta vida. 




Durante el proceso de desarrollo del Software, hay aspectos éticos como la confidencialidad, derechos de propiedad intelectual... debido a la competencia entre empresas o solamente por la dependencia de la empresa del software, es decir la empresa tiene beneficios  o poder de mercado gracias al sistema software. 

En la etapa de implementación se añade lenguaje de programación, hay multitud de lenguajes ya que ni dos sirven para lo mismo. Para ello se selecciona un programa con un compilador ; a continuación se seleccionan unos ficheros que formaran ese programa. 








Hay cuatro niveles en los lenguajes de programación:
1. Código máquina




2. Código ensamblador, se usan identificados en lugar de códigos reales para las operaciones, los valores y las localidades.



3. Código alto nivel, es parecido a la sintaxis matemática y de sintaxis de lengua inglesa.  


4. Código lenguaje natural 




La evolución del lenguaje 


La primera experiencia fue en 1957, FORTRAN( FORmula TRANlation); su objetivo era tener un lenguaje parecido al lenguaje matemático, debido a su facilidad de uso y bajo costo de desarrollo de programas. Fortran tuvo éxito ya que sobrevive hoy día; tiene gran cantidad de adeptos, portabilidad de programas y es la opción preferida de los científicos.

La evolución de este lenguaje llego a los lenguajes de alto nivel; que tiene numerosos beneficios como la creación de programas que nunca hubiesen escrito los autores en ensamblador; la transportabilidad y la legibilidad, los programas escritos en lenguajes de alto nivel son mucho más ágiles de leer, modificar y mejorar. 
Los lenguajes se encuentra en la memoria del ordenador; una buena memoria sabe gestionar de forma adecuada el sistema. 


Un poco de historia ....

En 1950, tras la Segunda Guerra Mundial se crean los primeros ordenadores para descifrar códigos; usaban lenguaje ensamblador y lenguajes experimentales de alto nivel; los métodos que tenían eran subprogramas y estrujador de datos.

En 1956, los ordenadores son pequeños, lentos y caros, con sistemas de almacenamiento masivo en cinta magnética. Utilizaban lenguajes como FORTRAN, LISP Y COBOL; los métodos que tenían eran optimizados de código, compiladores, manejo de almacenamiento dinámico y optimizaron de código. 

En 1961, los ordenadores empiezan a aumentar su tamaño y mantienen su alto precio, su sistema de almacenamiento es de disco magnético. Los lenguajes que usaban estos ordenadores son SNOBOL APL, FORTRAN IV Y COBOL 61. Estos ordenadores ya tenían sistemas operativos, multiprogramación, computadoras orientadas a la sintaxis y un propósito general en el diseño del lenguaje.Desde 1966 hasta 1970; los ordenadores son compatibles con conjuntos de instrucciones, tienen varios tamaños, velocidad y coste. Los sistemas de almacenamiento masivo grandes y caros. Estos ordenadores tenían sistemas operativos interactivos, microprogramación y usaban los primeros lenguajes estándar como BASIC,APL 360.En 1971 los ordenadores ya usaban el lenguaje PASCAL y tenían pruebas de corrección de programas e ingeniería de software. a partir de 1976 los ordenadores son potentes y baratos, usaban el lenguaje FORTRAN 77 y tenían sistemas distribuidos de computación; además, eran de confiabilidad y facilidad de mantenimiento. 



En 1981, los ordenadores ya son de uso personal, laboral y de ocio, usaban el lenguaje ADA 83. Entre 1986-1990, hay microordenadores y se contaba con Internet; utilizaban el leguaje FORTRAN 90, C++ Y SML; además tenían modelo Cliente- Servidor. En 1991 se incorpora a los ordenadores voz, video, fax y multimedia. En 1996 se inventan los PCs portátiles y gigabytes se almacenamiento en disco duro.  
A partir de 2005 hay redes sin cable, integración de dispositivos como el móvil, hipermedia y Terabytes de almacenamiento en disco; se usa un lenguaje dependiendo de la plataforma. 




La finalidad de la evolución de los lenguajes de programación, es llegar a un "lenguaje ideal", este lenguaje debe ser multiuso, portable, aceptado por todo el mundo, fácil de usar y con una sintaxis fácil de entender. 





La evolución de la informática ha sido muy rápida y eficaz; debido a que en los últimos años los informáticos han podido conseguir un lenguaje de alto nivel; además gracias a la inteligencia artificial cada vez resulta más fácil llegar al objetivo de un lenguaje natural. La programación empezó en un mundo devastador debido a la Segunda Guerra Mundial, los programas solo tenían la finalidad de descifrar códigos de los bandos enemigos; pero en la actualidad gracias la programación se ha podido conseguir numerosos logros para el ser humano. En este momento, los programas tienen infinitos objetivos pero desde mi punto de vista el objetivo principal es ayudar al ser humano a poder desarrollar un mundo mejor.Por ello, este es el principio de una etapa prospera en descubrimientos tecnológicos que cada vez están más cerca de nosotros. 








Bibliografía:





  • (https://es.slideshare.net/cristina20g/imagen-raster-e-imagen-vectorial-10586253)
  • (http://www.areatecnologia.com/sistema-binario.htm)












    1. 1 comentario:

      1. Estoy totalmente de acuerdo ya que gracias a la revolución tecnológica el ser humano ha podido hacer cosas grandiosas como llegar a la Luna.

        ResponderEliminar