En este ensayo hablaremos sobre que es la carrera en ingeniería de software, que requerimientos se necesitan para poder desarrollar un software de calidad y qué papel juegan los lenguajes de programación. Para que se pueda desarrollar este tipo de temas es necesario que tomemos en cuenta la importancia de la tecnología, como influye en nuestro entorno social, laboral, familiar, cultural, educativo, etc. Porque a donde quiera que demos un vistazo podemos descubrir que la mayoría de actividades que realizamos requieren el uso de las TIC (Tecnologías de la Información y Comunicación). La ingeniería de software, se presenta a sí misma como otra causa valiosa, pero es un enigma: si lee cuidadosamente su literatura y analiza lo que realmente hacen quienes se dedican a ella, entenderemos que la ingeniería de software ha adoptado como estatuto, programar para solucionar lo que usted no puede. Deseamos que puedas descubrir la importancia de nuestra carrera, como es el entorno diario, al cursar esta ingeniería y como nos afectan directamente los múltiples lenguajes de programación, ya que gracias a ellos funcionan diversos sistemas, plataforma, páginas web, teléfonos celulares, APPS (aplicaciones móviles), etc.
Palabras clave: Ingeniería de Software y Lenguajes de Programación
In this test we will talk about which is the career in software engineering, what requirements are needed to be able to develop a quality software and what role do they play in programming languages. In order to develop this type of issues we need to take into account the importance of technology, how it affects our social environment, labor, family, cultural, educational, etc. because everywhere we look we can discover that the majority of activities that we do require the use of the ICT (information and communication). The software engineering, presents itself as another worthwhile cause, but it is an enigma: if you read carefully their literature and analyzes what they really do those who advocate it, we understand that the software engineering has been adopted as a statute, programed to solve what you cannot. We hope that you can discover the importance of our race, as is the environment on a daily basis, to take this engineering and how they affect us directly the multiple programming languages, because they work in different systems, platform, web pages, mobile phones, mobile applications (apps), etc.
Keywords: Software Engineering and Programming Languages.
Este ensayo fue elaborado con el principal propósito de conocer un poco más acerca de la ingeniería de software, ya que quienes colaboramos en este documento somos estudiantes de esta carrera y nos interesa mostrarle a los demás la importancia que tienen los lenguajes de programación esta área, en pleno siglo XXI, donde los avances tecnológicos han tenido una evolución, transformación e innovación en muchos sentidos, ahora es común que las personas hagan uso de los productos de la ingeniería de software, a través de diversos dispositivos que utilizan en su vida cotidiana.
El tema principal de este ensayo es conocer qué relación tienen los lenguajes de programación en la ingeniería de software, ya que al concluir la carrera, no trabajaremos en un entorno laboral como programadores, pero es necesario que un ingeniero en software tenga estos conocimientos, pues los lenguajes de programación forman parte de una de las fases del ciclo de vida del software.
En lo personal la tecnología ha permitido a los seres humanos dar grandes pasos, que a su vez han permitido una extensión muy grande de nuevos descubrimientos, pero también cuando no se tiene el manejo adecuado de esta, produce una adicción y como sabemos todo en exceso daña, lo peor de todo es que no solo te daña a ti mismo, también a las personas que te rodean y el entorno en que te desarrollas.
Por eso es importante que aprendamos a reconocer nuestros límites, cuidemos nuestras relaciones tanto emocionales como laborales y nos demos tiempo de conocer un poco más de cómo se desarrollan esos sistemas complejos bajo los que opera la empresa donde trabajamos, el sistema de la sucursal bancaria que visitamos cada quincena, el sistema del supermercado donde compramos nuestra despensa, en fin, cientos y cientos de sistemas con los que trabajan, porque detrás de un sistema eficaz, bien diseñado, rentable, seguro, rápido, etc., existe un ingeniero de software que dio todo lo posible para satisfacer las necesidades de demanda de su cliente. Te invito a que descubras que el software a pesar de intangible es imprescindible para la creación de un sistema.
“En sentido general, diseñar es una forma de resolución de problemas. El desarrollo de software permite a los ingenieros de software producir diversos modelos que: Caracterizan la solución a implementar, pueden ser analizados y evaluados con el fin de determinar si se satisfacen los requisitos, facilitan el examen y evaluación de alternativas, sirven para planificar las siguientes actividades del desarrollo” (Ruiz, 2008).
Comprender lo que hace un ingeniero en software es cuestión de analizar un poco que para todo problema informático se necesita una persona especializada que pueda resolverlo y no solo para cuestiones informáticas, ya que la mayoría de sistemas que son diseñados por un ingeniero requirieron de una necesidad básica o de una problemática de algún cliente/usuario, esto le permite al ingeniero analizar la situación y optimizar la problemática del cliente dándole alternativas de solución. Necesariamente para poder desarrollar un sistema se lleva a cabo un procedimiento ya que es una las partes fundamentales para el desarrollo de programas sumamente complicados o bien para programas básicos en el área, como por ejemplo una base de datos o un sistema operativo, también debemos tener en cuenta que para poder desarrollar e implementar un software no es una labor sencilla o solo de desarrollo técnico, se ven implicados conocimientos diversos por lo cual es necesario contar con un equipo de tecnología eficaz y desarrolladores competentes.
Haremos el primer énfasis en la relación del tema principal de este ensayo y la ingeniería en software. Un ingeniero al tener una empresa por sí solo no puede desarrollar un software o sistema muy complejo es por eso que en el desarrollo comienza a implicar a terceros, esto significa que la mayoría de los casos se tiene que desarrollar un programa que haga una serie de procedimientos específicos para complacer las necesidades de un cliente y estas no van a ser las mismas del programador. Por lo tanto la terminación de este sistema o software y de su éxito va a consistir primero que nada que el programa o sistema haga lo que está planeado, en segundo lugar que haya sido desarrollado con los recursos necesarios, eficientes y confiables. Lo cual hasta el momento está involucrando a dos actores principales que es el ingeniero en software que es la persona principal que debe comprender el problema para construir una solución, debe calcular y planear el proceso con gran exactitud, evaluar y considerar los diferente errores que vayan saliendo en el desarrollo y tener las etapas bien definidas con avances y entregas inmediatas al cliente para así crear un ambiente de confianza y pueda llegar hasta la finalización del proyecto.
El programador en cambio va a seguir exactamente indicaciones del ingeniero de software, construyendo a través de un lenguaje de programación el sistema deseado, sin margen de error. Ya que en esta etapa errores implican perdidas económicas directamente a la empresa e indirectamente al ingeniero en software y al programador.
Ahora que ya tenemos más claro cuál es su trabajo de un ingeniero no debemos descartar que el desarrollo, mantenimiento e implementación de un software se realiza con el mismo compromiso, seriedad, responsabilidad y entrega con la que se llevaría a cabo cualquier otra tarea propia de un área de ingeniería. En la figura 1 se muestra el proceso para el desarrollo de un software de manera gráfica, es el modelo en cascada, uno de los más comunes utilizados en la Ingeniería de Software, ya que hay ocasiones que es mucho más fácil comprender un tema con un apoyo visual.
Tal vez uno de los aspectos más importantes en el diseño de un sistema es el uso de la tecnología, si este aspecto no se escoge con cautela puede tener graves consecuencias en todo el proceso del modelado del software, en realidad la selección, tiene relación con diferentes cuestiones como el tamaño, rapidez, portabilidad, etc.
Otro punto que se tiene que abordar es cuando se está desarrollando el sistema porque un ingeniero en software debe ser capaz de desplegar estrategias sólidas para que la funcionalidad del sistema sea la adecuada en el entorno de implementación. Este entorno va relacionado con dos divisiones que son el hardware y el software, sabemos que el entorno de hardware va a afectar directamente al software y este a su vez va ser afectado en la plataforma de desarrollo.
Un aspecto importante para la implementación de software es la selección del lenguaje de programación, ya que en algunas ocasiones no tiene que ser necesariamente orientado a objetos, si ya se lo que estás pensando un lenguaje orientado a objetos hace más fácil la implementación y el diseño, pero recuerda que tienes que adaptarte a los requerimientos de tu cliente, sin embargo debes tener claro en tu mente que la elección del lenguaje va a afectar directamente al diseño de tu sistema, pero este diseño no tiene que depender necesariamente de los detalles del lenguaje, ya que muchos lenguajes tienen estructuras muy similares y si en algún momento necesitas cambiar el lenguaje de programación de tu software o sistema no deberías comenzar de nuevo, es decir, rediseñar por completo todo.
Definamos ahora que es un lenguaje de programación:
“Un lenguaje de programación es un convenio entre personas que puede definirse así: Conjunto de reglas o normas que permiten asociar a cada programa correcto un cálculo que será llevado a cabo por una computadora (sin ambigüedades), por tanto, un lenguaje de programación es un convenio o acuerdo acerca de cómo se debe de interpretar el significado de los programas de dicho lenguaje muchas veces se confunden los lenguajes con los compiladores, intérpretes o con los entornos de desarrollo de software” (Almagro, 2011).
Es importante que aprendamos que los lenguajes de programación deben estar definidos por un documento estandarizado y normalmente debe ser ISO/ IEC 14882 la cual nos explica que los lenguajes deben estar bien definidos para poder formar un programa correcto estos lenguajes deben ser definidos dentro de un conjunto y este no debe contener ambigüedades para esto se emplean técnicas diversas como lo son los léxicos, sintaxis y semánticas.
El significado de un lenguaje de programación suele escucharse un poco complicado pero en realidad está asociado a los cálculos exactos que sea capaz de realizar el programa y también son llamados estos procesos semánticas de los lenguajes de programación. Y ¿estos lenguajes para que nos sirven? Principalmente para poder comunicarnos con la computadora ya que para poder darle instrucciones, primero se debe utilizar un intérprete y solo de esta forma podrá realizar las operaciones que deseamos que realice pero no solo sirven para comunicarse con la computadora si no también para poderse comunicar entre personas o más bien entre programadores por medio de algoritmos matemáticos y/ o procesos de índole real.
Como todo buen diseño de área de ingeniería u lenguaje debe contener algunos principios básicos que los hacen único como son: facilidad de escritura, legibilidad, generalidad, emancipación, uniformidad, simplicidad, fiabilidad, expresividad, definición clara y concisa y eficiencia tanto en la traducción como en la ejecución.
Llegando al final de este ensayo, hicimos énfasis en la carrera de ingeniería en software ya que no solo como estudiantes de esta carrera nos parece interesante, sino también porque es una de las áreas más acertada para poder modelar la tecnología, descubrir y crear cosas nuevas que satisfacen las demandas diarias de los clientes.
Los lenguajes de programación juegan un papel importante ya que como abordamos en puntos anteriores, un ingeniero en software no es un programador, es quien guía el proyecto y comprende la problemática para poder crear soluciones pero eso no descarta que no tenga los conocimientos necesarios en el área de los lenguajes de programación, de esta manera concluimos que el verdadero progreso es el que pone la tecnología al alcance de todos, abramos paso a la transformación de la ingeniería, porque esta continuara evolucionando para mejorar a la sociedad.
Almagro, C. U. (Diciembre de 2011). Lenguajes de programación. Obtenido de https://lsi.ugr.es/curena/doce/lp/tr-11-12/lp-c01-impr.pdf
Bembibre., C. (10 de Marzo de 2010). DefiniciónABC. Recuperado el 03 de Noviembre de 2017, de DefiniciónABC: https://www.definicionabc.com/general/estandarizacion
CONCEPTODEFINICION.DE. (27 de Junio de 2014). CONCEPTODEFINICION.DE. Obtenido de CONCEPTODEFINICION.DE: http://conceptodefinicion.de/emancipacion/
Gardey, A. (2005). Definicion.DE. Recuperado el 03 de 11 de 2017, de Definicion.DE: https://definicion.de/requerimiento/
Merino, M. (2011). Definicones.DE. Recuperado el 03 de Noviembre de 2017, de Definiciones.DE: https://definicion.de/integracion/
Muñoz, G. S. (Marzo de 2014). Glosariografico.com. Recuperado el 03 de Noviembre de 2017, de Glosariografico.com: http://www.glosariografico.com/legibilidad
Porto, J. P. (2008). Definición.DE. Recuperado el 1 de Noviembre de 2017, de Definición.DE: https://definicion.de/software/
Ruiz, F. (2008). Diseño de software. Ingenieria de software I. Cantabria. Obtenido de https://www.ctr.unican.es/asignaturas/is1/is1-t04-trans.pdf
[a] Docente del Área Académica de Ingenierías, de la Escuela Superior de Tlahuelilpan, de la Universidad Autónoma del Estado de Hidalgo. monica_cornejo4798@uaeh.edu.mx
[b] Alumno del programa educativo en Ingeniería de Software, de la Escuela Superior de Tlahuelilpan, de la Universidad Autónoma del Estado de Hidalgo. nuyeyvy.garcia@gmail.com
[c] Alumno del programa educativo en Ingeniería de Software, de la Escuela Superior de Tlahuelilpan, de la Universidad Autónoma del Estado de Hidalgo. alondra_48nohemi@hotmail.com
[d] Alumno del programa educativo en Ingeniería de Software, de la Escuela Superior de Tlahuelilpan, de la Universidad Autónoma del Estado de Hidalgo. azpeitianoemi@gmail.com
[e] Alumno del programa educativo en Ingeniería de Software, de la Escuela Superior de Tlahuelilpan, de la Universidad Autónoma del Estado de Hidalgo. saeh_r@hotmail.com