<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.3">Jekyll</generator><link href="https://jcmonsalveg.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://jcmonsalveg.github.io/" rel="alternate" type="text/html" /><updated>2023-03-20T22:07:19+00:00</updated><id>https://jcmonsalveg.github.io/feed.xml</id><title type="html">Juan Carlos Monsalve G</title><subtitle>Estudiante de Ingeniería de Software, con especial interés por el desarrollo backend con Python. Tecnologías: Python | Django | MySQL | MongoDB | GitHub</subtitle><entry><title type="html">Entorno básico para el desarrollo web con JAVA</title><link href="https://jcmonsalveg.github.io/2023/03/19/entorno-basico-desarrollo-java-web.html" rel="alternate" type="text/html" title="Entorno básico para el desarrollo web con JAVA" /><published>2023-03-19T00:00:00+00:00</published><updated>2023-03-19T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2023/03/19/entorno-basico-desarrollo-java-web</id><content type="html" xml:base="https://jcmonsalveg.github.io/2023/03/19/entorno-basico-desarrollo-java-web.html">&lt;p&gt;Se me han terminado ya las vacaciones y comienzo un nuevo semestre en la Ingeniería de Software, aprovecho entonces este reinicio de actividades académicas para retomar la publicación de entradas en este blog sobre Ingeniería. En esta ocasión estaremos abordando algunos conceptos sobre el desarrollo de aplicaciones web con JAVA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué aplicaciones necesito?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bueno, vamos entonces a instalar las siguientes aplicaciones:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;JDK en su versión 11. Entorno de Ejecución de java.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;MariaDB 11. Permite la gestión de la base de datos.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;NetBeans 14. Entorno de Desarrollo integrado que nos permitirá realizar todo el código de nuestra aplicación web.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Apache tomcat 9.0.73 permite levantar el servidor web desde NetBeans para poder correr nuestro proyecto de manera local.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="Java" /><summary type="html">Se me han terminado ya las vacaciones y comienzo un nuevo semestre en la Ingeniería de Software, aprovecho entonces este reinicio de actividades académicas para retomar la publicación de entradas en este blog sobre Ingeniería. En esta ocasión estaremos abordando algunos conceptos sobre el desarrollo de aplicaciones web con JAVA.</summary></entry><entry><title type="html">Design Thinking y diseño de Software</title><link href="https://jcmonsalveg.github.io/2022/12/08/design-thinking-y-diseno-de-sofrware.html" rel="alternate" type="text/html" title="Design Thinking y diseño de Software" /><published>2022-12-08T00:00:00+00:00</published><updated>2022-12-08T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/12/08/design-thinking-y-diseno-de-sofrware</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/12/08/design-thinking-y-diseno-de-sofrware.html">&lt;p&gt;Bueno, continuamos abordando diferentes conceptos relacionados con la Ingeniería de Software, en esta ocasión le tocó el turno al Design Thinking aplicado al campo del diseño de software. Si se realiza una traducción literal de esta expresión tendríamos algo más o menos como: pensamiento de diseño, pero… ¿qué es realmente el design thinking?. Hay quienes lo definen como método, otros como metodología, algunos más como proceso, cuyo principal objetivo es el conocimiento del usuario, comprender sus gustos, deseos, necesidades, si bien el producto que se requiere diseñar es importante, el centro de este proceso es la persona. El design Thinking provee una serie de pasos, como se puede observar en el mapa conceptual: la empatía, definir de manera clara un problema viable y significtivo, generar ideas, diseñar posibles soluciones, esta fase se puede llevar a través de múltiples métodos y por último evaluar.&lt;/p&gt;

&lt;h2 id=&quot;cómo-se-relaciona-el-design-thinking-con-el-diseño-de-software&quot;&gt;¿Cómo se relaciona el Design Thinking con el diseño de Software?&lt;/h2&gt;

&lt;p&gt;El design thinking no es una herramienta, método o estrategia propio del campo de la ingeniería, pero si que tiene un amplio nivel de aplicación sobre todo en lo que tiene que ver con las fases iniciales del ciclo de vida del software, dependiendo, además de la metodología de desarrollo de software seleccionada. Quizá las fases donde pueda llevar a tener un nivel más amplio de implementación es en la fase de requerimientos o requisitos y en la fase de diseño de software.&lt;/p&gt;

&lt;p&gt;En la fase de requerimientos existe una comunicación fundamental entre el cliente y el ingeniero de requerimientos, pues es aquí donde se busca conocer las necesidades fundamentales del cliente, ¿qué es lo que se espera del software?, ¡¿cuàles son los requsitos funcionales y no funcionales?. El Design Thinking brinda herramienta muy importantes para esta fase, veamos. Al definir el enfoque en valores humanos, los autores de la propuesta, hacen énfasis en la empatía que se debe tener por las personas a las cuales se les está diseñando, ese vínculo especial donde tratamos de comprender al máximo las necesidades del cliente, no se trata de salir a la ligera, elaborar un listado y fase siguiente… no, el vìnculo entre el cliente y el ingeniero de requerimientos, desde el punto de vista de la empatía, debe ser fuerte, de tal manera que se llegue a tener un conocimiento profundo de aquellas necesidades, deseos, que luego se podrán hacer “tangibles” (digo tangibles como concretos, alcanzados…) en un producto de software. Cada uno de los pasos elementos del design thinking nos llevan de vuelta al cliente:&lt;/p&gt;

&lt;p&gt;La empatía, aquella relación que permite un conocimiento profundo, la observación y el diálogo, las preguntas, todos aquellos elementos que permitan conocer al cliente y comprender sus necesidades.
En la definición se busca establecer con claridad el proyecto, qué es lo que se debe lograr?
En la fase de idear se da inicio al diseño a partir de diferentes ideas, se crean lluvias de ideas las cuales permiten pensar en soluciones.
En prototipar comienza a tomar forma la vía de solución, pensar más en el problema. Estas fases no tienen por que ir de manera lineal, se pueden intercalar, una adelante, luego la otra, volver sobre la anterior…
La fase de evaluar permite tener una realimentación de lo construído y pensado hasta el momento, ese feedback es fundamental para determinar si se marcha por el camino correcto.&lt;/p&gt;

&lt;p&gt;Al igual que en la fase de requerimientos, en la fase de diseño debe continuar esta relación empática con el cliente, siempre buscando compartir ideas,  generar un feedback de manera constante, que permita avanzar rápidamente, además, en el desarrollo del producto. Cada uno de los pasos formulados anteriormente, y los cuales se abordan de manera detallada en el documento general de la propuesta, el cual aparece en las referencias, tienen una total aplicación en las diferentes fases del desarrollo de software, si bien en los requerimientos y en el diseño, como punto de partida tienen una especial aplicación, también las fases siguientes, a manera de iteraciones, tienen total aplicación.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/Design-Thinking.jpg&quot; alt=&quot;Mapa conceptual&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Referencias:&lt;/p&gt;

&lt;p&gt;Plattner, Hasso. 2012. Guía del proceso creativo Mini guía: una introducción al Design Thinking.Institute of Desing at Stanford.
Recuperado de https://dschool-old.stanford.edu/sandbox/groups/designresources/wiki/31fbd/attachments/027aa/GUÍA%20DEL%20PROCESO%20CREATIVO.pdf&lt;/p&gt;</content><author><name></name></author><category term="Generales" /><summary type="html">Bueno, continuamos abordando diferentes conceptos relacionados con la Ingeniería de Software, en esta ocasión le tocó el turno al Design Thinking aplicado al campo del diseño de software. Si se realiza una traducción literal de esta expresión tendríamos algo más o menos como: pensamiento de diseño, pero… ¿qué es realmente el design thinking?. Hay quienes lo definen como método, otros como metodología, algunos más como proceso, cuyo principal objetivo es el conocimiento del usuario, comprender sus gustos, deseos, necesidades, si bien el producto que se requiere diseñar es importante, el centro de este proceso es la persona. El design Thinking provee una serie de pasos, como se puede observar en el mapa conceptual: la empatía, definir de manera clara un problema viable y significtivo, generar ideas, diseñar posibles soluciones, esta fase se puede llevar a través de múltiples métodos y por último evaluar.</summary></entry><entry><title type="html">Conclusiones sobre paradigmas</title><link href="https://jcmonsalveg.github.io/2022/11/30/conclusiones-paradigmas.html" rel="alternate" type="text/html" title="Conclusiones sobre paradigmas" /><published>2022-11-30T00:00:00+00:00</published><updated>2022-11-30T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/11/30/conclusiones-paradigmas</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/11/30/conclusiones-paradigmas.html">&lt;p&gt;El tema de la ingeniería de software es bastante dinámico, basta con comentar que hasta hace poco tiempo era inexistente como carrera de formación profesional y eran los ingenieros de sistemas quienes se dedicaban al estudio de este campo, pero con el paso del tiempo ha ido creciendo tanto que se ha ganado su lugar en la academia y en la industria.&lt;/p&gt;

&lt;p&gt;Los paradigmas de programación han ido surgiendo en función de como han ido evolucionando las necesidades en el campo del software: la aparición de nuevas tecnologías, de nuevos campos de aplicación y de nuevas formas de análisis y enfrentamiento de los problemas han posibilitado el nacimiento de los paradigmas que tenemos hoy.&lt;/p&gt;

&lt;p&gt;Antes se hablaba de tecnología y solo se pensaba en un computador de escritorio, hoy la tecnología ha invadido todos los espacios donde habita el ser humano, el surgimiento de una enorme cantidad de nuevos dispositivos irá cambiando este campo (el de la ingeniería de software) a gran velocidad, muy pronto los actuales paradigmas de programación serán insuficientes para atender las nuevas demandas de tecnología.&lt;/p&gt;

&lt;p&gt;De igual manera continuarán apareciendo cada vez más nuevos lenguajes de programación relacionados con nuevos paradigmas de programación, además los estándares relacionados con la calidad en el desarrollo de software irán mutando con el objetivo de dar respuesta a las nuevas demandas de la sociedad, a los campos de aplicación.&lt;/p&gt;</content><author><name></name></author><category term="Paradigmas para el desarrollo de software" /><summary type="html">El tema de la ingeniería de software es bastante dinámico, basta con comentar que hasta hace poco tiempo era inexistente como carrera de formación profesional y eran los ingenieros de sistemas quienes se dedicaban al estudio de este campo, pero con el paso del tiempo ha ido creciendo tanto que se ha ganado su lugar en la academia y en la industria.</summary></entry><entry><title type="html">Programación Orientada a Objetos</title><link href="https://jcmonsalveg.github.io/2022/11/25/programacion-orientada-a-objetos.html" rel="alternate" type="text/html" title="Programación Orientada a Objetos" /><published>2022-11-25T00:00:00+00:00</published><updated>2022-11-25T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/11/25/programacion-orientada-a-objetos</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/11/25/programacion-orientada-a-objetos.html">&lt;p&gt;La Programación Orientada a Objetos, conocida como POO, es un paradigma, es decir, una forma de programar que tiene ya una larga historia. Al contrario de lo que muchos podrían pensar, esta viene aproximadamente de los años 60, es decir que puede tener ya unos 55 años de existencia, al parecer surge en el año 1967, en Noruega, con un lenguaje de programación llamado Simula 67. Dicho lenguaje de programación usaba ya conceptos como clases y subclases.&lt;/p&gt;

&lt;p&gt;La programación orientada a objetos se presenta, entonces, según Shvets (2019) “basado en el concepto de envolver bloques de información y su comportamiento relacional, en lotes especiales llamados objetos, que se construyen a partir de un grupo de “planos” definidos por un programador, que se denominan clases” (p. 8)&lt;/p&gt;

&lt;p&gt;El centro de la programación orientada a objetos son, de acuerdo a lo anterior, los objetos, que se instancian desde otros elementos conocidos como clases. Cada una de las clases tiene propiedades y métodos. Las propiedades hacen referencia a características y los métodos a cosas que hace dicha clase. Esta forma de programación brinda una manera distinta de organizar el código, que permite un mantenimiento y actualización del sistema mucho más ágil.&lt;/p&gt;

&lt;p&gt;Algunos conceptos fundamentales de la programación orientada a objetos son: clases, objetos, herencia, abstracción, encapsulamiento, polimorfismos, entre otros. Entre los lenguajes de programación que soportan la orientación a objetos tenemos: Ruby, Python, Java, C++, PHP… entre muchos otros.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/POO.png&quot;&gt;Esquema Programación Orientada a Objetos&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Referencias&lt;/p&gt;

&lt;p&gt;Shvets, A. (2019). Sumérgete en los patrones de diseño. https://refactoring.guru/es/.&lt;/p&gt;</content><author><name></name></author><category term="Paradigmas para el desarrollo de software" /><summary type="html">La Programación Orientada a Objetos, conocida como POO, es un paradigma, es decir, una forma de programar que tiene ya una larga historia. Al contrario de lo que muchos podrían pensar, esta viene aproximadamente de los años 60, es decir que puede tener ya unos 55 años de existencia, al parecer surge en el año 1967, en Noruega, con un lenguaje de programación llamado Simula 67. Dicho lenguaje de programación usaba ya conceptos como clases y subclases.</summary></entry><entry><title type="html">Paradigmas para el desarrollo de Software</title><link href="https://jcmonsalveg.github.io/2022/11/18/paradigmas-para-el-desarrollo-de-software.html" rel="alternate" type="text/html" title="Paradigmas para el desarrollo de Software" /><published>2022-11-18T00:00:00+00:00</published><updated>2022-11-18T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/11/18/paradigmas-para-el-desarrollo-de-software</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/11/18/paradigmas-para-el-desarrollo-de-software.html">&lt;p&gt;Es mucha la información que podemos encontrar sobre este tema, continuamos entonces aportando un poco, solo a manera de introducción, sobre éste a través de un esquema donde se presentan los principales elementos de los paradigmas de desarrollo de software tomando como insumo central el referenciado al final de este texto.Además, se incluyen algunos conceptos relacionados con los modelos o metodologías para el desarrollo de software. Si bien el nombre central en el mapa es el de paradigmas, es importante aclarar que los modelos no dependen directamente de los paradigmas, pero si que que están relacionados.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/v2Paradigmas-para-el-Desarrollo-de-Software.png&quot;&gt;Mapa conceptual sobre paradigmas&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Los iconos empleados en la construcción del mapa mental fueron todos tomados de: https://www.flaticon.es/ se reconoce la propiedad sobre los derechos de autor de cada uno de sus autores.&lt;/p&gt;

&lt;p&gt;Referencias&lt;/p&gt;

&lt;p&gt;Lis, G, Pantaleo, L. (2018). Capítulo 3. Paradigmas y lenguajes de programación. En Lis, G, Pantaleo, L., Ingeniería de Software (1ª Ed). pp. (38 - 51). Recuperado de la base de datos Alfaomega Cloud.&lt;/p&gt;</content><author><name></name></author><category term="Paradigmas para el desarrollo de software" /><summary type="html">Es mucha la información que podemos encontrar sobre este tema, continuamos entonces aportando un poco, solo a manera de introducción, sobre éste a través de un esquema donde se presentan los principales elementos de los paradigmas de desarrollo de software tomando como insumo central el referenciado al final de este texto.Además, se incluyen algunos conceptos relacionados con los modelos o metodologías para el desarrollo de software. Si bien el nombre central en el mapa es el de paradigmas, es importante aclarar que los modelos no dependen directamente de los paradigmas, pero si que que están relacionados.</summary></entry><entry><title type="html">Introducción a los paradigmas para el desarrollo de Software</title><link href="https://jcmonsalveg.github.io/2022/11/10/introduccion-paradigmas.html" rel="alternate" type="text/html" title="Introducción a los paradigmas para el desarrollo de Software" /><published>2022-11-10T00:00:00+00:00</published><updated>2022-11-10T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/11/10/introduccion-paradigmas</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/11/10/introduccion-paradigmas.html">&lt;p&gt;Desarrollar Software es una tarea cada vez más necesaria y más demandada en la sociedad actual, pues la base de este modelo de sociedad que hemos construído es la información y la información se soporta en software, en aplicaciones que día a día ocupan un espacio muy importante en los diferentes sectores de la sociedad: la educación, la economía, el comercio, la salud, los ámbitos de gestión pública, en todas partes se usa software.&lt;/p&gt;

&lt;p&gt;Este software, cuya demanda aumenta de manera exponencial es elaborado a partir de unos paradigmas de programación, es decir, de maneras, estilos, formas de programar, que a su vez se soportan en lenguajes de programación. Cada lenguaje de programación soporta uno o varios paradigmas de programación.&lt;/p&gt;

&lt;p&gt;Durante los inicios de la computación este campo de conocimiento (el de los paradigmas de programaciòn) era inexistente, pues las primeras computadores, grandes piezas mecánicas, tenían funciones muy específicas y no contaban con el abanico tan amplio que cuentan hoy de posibilidades en cuanto al desarrollo de su software, una de las primeras técnicas de programación eran las citas perforadas, pero con el avance de la tecnología, la implementación de los microprocesadores y de los sistemas operativos comienza el desarrollo del software a crecer, por ende los lenguajes de programación y así mismo el ejercicio de pensamiento y estudio sistemático de esta práctica.&lt;/p&gt;

&lt;p&gt;Estaremos abordando algunos conceptos relacionados con los paradigmas de programación, lenguajes relacionados y calidad en el desarrollo de software en este blog, espero que lo disfrutes. Cualquier comentario para mejorar el contenido del blog será bien recibido a través del enlace “contáctame”.&lt;/p&gt;</content><author><name></name></author><category term="Paradigmas para el desarrollo de software" /><summary type="html">Desarrollar Software es una tarea cada vez más necesaria y más demandada en la sociedad actual, pues la base de este modelo de sociedad que hemos construído es la información y la información se soporta en software, en aplicaciones que día a día ocupan un espacio muy importante en los diferentes sectores de la sociedad: la educación, la economía, el comercio, la salud, los ámbitos de gestión pública, en todas partes se usa software.</summary></entry><entry><title type="html">Otras razones para tener un blog sobre Ingeniería de Software</title><link href="https://jcmonsalveg.github.io/2022/11/04/Otras-razones-para-tener-un-blog-sobre-Ingenieria-de-software.html" rel="alternate" type="text/html" title="Otras razones para tener un blog sobre Ingeniería de Software" /><published>2022-11-04T00:00:00+00:00</published><updated>2022-11-04T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/11/04/Otras-razones-para-tener-un-blog-sobre-Ingenieria-de-software</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/11/04/Otras-razones-para-tener-un-blog-sobre-Ingenieria-de-software.html">&lt;p&gt;Con el auge de los creadores de contenido, el video ha ido ganando cada vez más terreno entre los usuarios frecuentes de la web… video a través de plataformas como YouTube, Instagram, Twitch, etc… de manera personal, tengo que confesarlo, muchas de las dudas técnicas que surgen durante mis espacios de programación suelo consultarlas en YouTube… además del ya famosísimo Stack overflow, pero este es otro tipo de espacio, ya todos lo sabemos. Se ha ido perdiendo poco a poco el gusto por la lectura como fuente principal de información y formación.&lt;/p&gt;

&lt;h2 id=&quot;cuál-es-el-problema&quot;&gt;¿Cuál es el problema?&lt;/h2&gt;

&lt;p&gt;Bueno, y cuál es entonces el problema?… ninguno. A la final todos logramos resolver nuestras dudas, generalmente a través de estos espacios… pero se ha olvidado un &lt;strong&gt;espacio fundamental que todo desarrollador debe consultar de primera mano&lt;/strong&gt; se trata de la documentación de la tecnología que se esté aprendiendo.&lt;/p&gt;

&lt;h2 id=&quot;qué-tiene-que-ver-entonces-esto-con-el-título-de-este-post&quot;&gt;¿Qué tiene que ver entonces esto con el título de este post?&lt;/h2&gt;

&lt;p&gt;Pues es algo sencillo… y ahora si vamos al grano: la documentación de cada tecnología, es decir, de cada lenguaje de programación está en formato de texto, páginas y páginas de texto que debemos leer para poder comprender una tecnología… ahí es donde radica la importancia de un &lt;strong&gt;blog sobre ingeniería de software&lt;/strong&gt; nos acostumbramos poco a poco a leer sobre tecnología, no perdamos el buen hábito de la lectura, que en ocasiones queda a un lado por el exceso de consumo de video.&lt;/p&gt;

&lt;p&gt;Para quienes inician en este mundo del desarrollo de software: &lt;strong&gt;la documentación de tu lenguaje de programación es la fuente principal de consulta&lt;/strong&gt;, tanto durante tu aprendizaje inicial como después… siempre habrá alguna duda para atender, algún concepto para recordar o algún nuevo concepto para aprender. Después de la documentación sobre nuestro lenguaje, están los blog de carácter técnico, aquellos donde podremos consultar, también, la información sobre aquella tecnología que estemos aprendiendo.&lt;/p&gt;</content><author><name></name></author><category term="Generales" /><summary type="html">Con el auge de los creadores de contenido, el video ha ido ganando cada vez más terreno entre los usuarios frecuentes de la web… video a través de plataformas como YouTube, Instagram, Twitch, etc… de manera personal, tengo que confesarlo, muchas de las dudas técnicas que surgen durante mis espacios de programación suelo consultarlas en YouTube… además del ya famosísimo Stack overflow, pero este es otro tipo de espacio, ya todos lo sabemos. Se ha ido perdiendo poco a poco el gusto por la lectura como fuente principal de información y formación.</summary></entry><entry><title type="html">Ambiente de trabajo de un Ingeniero de Software</title><link href="https://jcmonsalveg.github.io/2022/10/26/Ambiente-de-trabajo-de-un-ingeniero-de-software.html" rel="alternate" type="text/html" title="Ambiente de trabajo de un Ingeniero de Software" /><published>2022-10-26T00:00:00+00:00</published><updated>2022-10-26T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/10/26/Ambiente-de-trabajo-de-un-ingeniero-de-software</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/10/26/Ambiente-de-trabajo-de-un-ingeniero-de-software.html">&lt;p&gt;Como ya se han podido dar cuenta quienes han estado leyendo los post sobre ingeniería de software y otros temas relacionados,  nos adentramos en un nuevo mundo, en un campo de conocimiento que crece a una velocidad vertiginosa, donde se desarrollan nuevas tecnologías cada día, donde se diseñan nuevas formas de hacer las cosas, de enfrentar los retos que se presentan en esta industria.&lt;/p&gt;

&lt;p&gt;El día de hoy quiero compartir un esquema, un mapa mental, que presenta algunos datos tomados de primera mano, es decir, de quienes están ya laborando en el mundo de la ingeniería, esta información no parte de artículos de investigación, las fuentes principales para este trabajo fueron dos: (1) ingenieros de software que ya se encuentran en la industria en diferentes posiciones, además información de (2) ofertas laborales recientes publicadas por empresas de software, creo que es la manera más adecuada de tener información actualizada y confiable.&lt;/p&gt;

&lt;p&gt;Hasta hace algunos años era suficiente con dominar bien un lenguaje de programación, quizá JAVA o PHP eran el único conocimiento que necesitaba quien deseaba vincularse como ingeniero de software, ahora existe una enorme cantidad de &lt;strong&gt;tecnologías, recursos, herramientas, formas de hacer las cosas, metodologías&lt;/strong&gt;, que un ingeniero de software debe manejar para desempeñarse adecuadamente dentro de esta industria, si bien el mapa mental no da cuenta exacta de todos estos elementos, si traté de tomar la mayor cantidad de conceptos que pude para dar una idea clara del sector.&lt;/p&gt;

&lt;p&gt;Si hay por ahí algún ingeniero de software leyendo esto y encuentra algún error, le agradezco me lo haga saber a través de &lt;a href=&quot;https://linkedin.com/in/juancmg&quot;&gt;Mi LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Los iconos empleados en la construcción del mapa mental fueron todos tomados de: https://www.flaticon.es/ se reconoce la propiedad sobre los derechos de autor de cada uno de sus autores.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/2Ambiente-de-Trabajo_-Ingenieros-de-Software.png&quot;&gt;Clic para ver el mapa conceptual Ambiente de trabajo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Referencias&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Por temas de confidencialidad no se publican datos personales ni nombres reales de las empresas, los entrevistados fueron:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Un ingeniero de software Colombiano que reside en Alemania, donde trabaja como Ingeniero de Software.&lt;/li&gt;
  &lt;li&gt;Tres ingenieros de Software trabajan desde la ciudad de Medellín para tres empresas distintas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Además se consultaron ofertas laborales publicadas en diferentes sitios web:&lt;/strong&gt;
– https://www.jobbank.gc.ca/home
– https://ticjob.co/
– https://recruitee.com/&lt;/p&gt;</content><author><name></name></author><category term="Generales" /><summary type="html">Como ya se han podido dar cuenta quienes han estado leyendo los post sobre ingeniería de software y otros temas relacionados,  nos adentramos en un nuevo mundo, en un campo de conocimiento que crece a una velocidad vertiginosa, donde se desarrollan nuevas tecnologías cada día, donde se diseñan nuevas formas de hacer las cosas, de enfrentar los retos que se presentan en esta industria.</summary></entry><entry><title type="html">¿Por qué un blog sobre Ingeniería de Software?</title><link href="https://jcmonsalveg.github.io/2022/10/20/Por-que-un-blog-sobre-Ingenier%C3%ADa-de-software.html" rel="alternate" type="text/html" title="¿Por qué un blog sobre Ingeniería de Software?" /><published>2022-10-20T00:00:00+00:00</published><updated>2022-10-20T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/10/20/Por-que-un-blog-sobre-Ingenier%C3%ADa-de-software</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/10/20/Por-que-un-blog-sobre-Ingenier%C3%ADa-de-software.html">&lt;p&gt;Bueno, si se le pregunta por Ingeniería de software a una persona que no tiene mucho contacto con este mundo, pensará que es algo relacionado con computadores, hasta ahí. Otros quizá puedan avanzar un poco más y digan que tiene que ver con programas de computador, con aplicaciones, etc.&lt;/p&gt;

&lt;p&gt;Si se le pregunta a una persona con conocimiento básicos en el área, de inmediato vendrán a su mente imágenes sobre código, lenguajes de programación.&lt;/p&gt;

&lt;p&gt;Es frecuente, muy frecuente, en este mundo, hacer mucho énfasis en la codificación, en la programación, en la red muy común encontrar abundamente información sobre programación, miles y miles de manuales, video tutoriales, cursos enteros, bootcamps, todos sobre codificación… pero muy pocos recursos sobre otros temas, también muy importantes, relacionados con este campo de conocimiento, en este espacio trataré de compartir recursos, tanto sobre programación, como sobre otras áreas de la ingeniería de software cuyo conocimiento es fundamental en la actualidad para tener una panorámica amplia sobre el tema.&lt;/p&gt;

&lt;p&gt;Ingeniería de software &lt;strong&gt;no es solo código&lt;/strong&gt; 💻 si bien la codificación es, por decirlo de alguna parte, parte importante al final del camino, hay otros temas como requisitos, diseño, bases de datos, testing, calidad de software, patrones de diseño, patrones de arquitectura… muchos otros aspectos, muy importantes en el mundo de la ingeniería, y que en ocasiones quedan opacados por el código, ahi es donde &lt;strong&gt;radica la importancia de este espacio&lt;/strong&gt;, pues trataré de presentar una panorámica más amplia de lo que generalmente vemos.&lt;/p&gt;</content><author><name></name></author><category term="Generales" /><summary type="html">Bueno, si se le pregunta por Ingeniería de software a una persona que no tiene mucho contacto con este mundo, pensará que es algo relacionado con computadores, hasta ahí. Otros quizá puedan avanzar un poco más y digan que tiene que ver con programas de computador, con aplicaciones, etc.</summary></entry><entry><title type="html">Calidad en el desarrollo de software</title><link href="https://jcmonsalveg.github.io/2022/10/19/Calidad-en-el-desarrollo-de-software.html" rel="alternate" type="text/html" title="Calidad en el desarrollo de software" /><published>2022-10-19T00:00:00+00:00</published><updated>2022-10-19T00:00:00+00:00</updated><id>https://jcmonsalveg.github.io/2022/10/19/Calidad-en-el-desarrollo-de-software</id><content type="html" xml:base="https://jcmonsalveg.github.io/2022/10/19/Calidad-en-el-desarrollo-de-software.html">&lt;p&gt;La calidad en el desarrollo de software debe ser una constante en todo el ciclo de vida del software. Cuando se habla de calidad no se hace referencia a un único elemento o a un sólo momento en todo ese ciclo de vida, en términos de Sánchez, Salvador. Sicilia, Miguel Ángel. Rodríguez (2011) la elaboración de software de calidad debe tener en cuenta una serie de elementos, «buenos ingredientes, construidos, ensamblados y verificados en un proceso de calidad» (p. 378), no se trata, entonces, solo de los «ingredientes», sino también del proceso (el marco general). En términos de la ingeniería de software, podría decirse entonces: análisis de requisitos, la selección de los lenguajes de programación, marcos de trabajo, aplicación de principios, lo cual se ve reflejado en las características del producto final y la funcionalidad del mismo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo podríamos definir entonces la calidad del Software?&lt;/strong&gt;, para Pressman 👨(2010) la calidad es entendida, en el marco del software, como un «proceso eficaz de software que se aplica de manera que crea un producto útil que proporciona valor medible a quienes lo producen y a quienes lo utilizan» (p. 340). El mismo autor, destaca más adelante, citando a Mc Call, Richards y Walters, que existen tres factores que afectan la calidad del software: las características operativas, la capacidad del software para ser modificado y la adaptabilidad a nuevos ambientes. (p. 342).&lt;/p&gt;

&lt;p&gt;Creo que va quedando algo claro hasta el momento y es que la calidad del software es un tema complejo, pero a la vez bastante necesario, teniendo en cuenta la alta demanda del mismo en la actualidad y las implicaciones en términos económicos, tanto para los clientes, como para las empresas proveedoras de software, qué pasa si una empresa que desarrolla software invierte 3 ó 4 meses en un producto que no cumple con las expectativas del cliente en términos de calidad y/o de funcionamiento?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Referencias&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pressman, R. S. (2010). Ingeniería del software un enfoque práctico (7ed ed.). McGraw-Hill.&lt;/p&gt;

&lt;p&gt;Sánchez, Salvador. Sicilia, Miguel Ángel. Rodríguez, D. (2011). Ingeniería del Software un enfoque desde la guía SWEBOK. Alfaomega.&lt;/p&gt;</content><author><name></name></author><category term="Calidad" /><summary type="html">La calidad en el desarrollo de software debe ser una constante en todo el ciclo de vida del software. Cuando se habla de calidad no se hace referencia a un único elemento o a un sólo momento en todo ese ciclo de vida, en términos de Sánchez, Salvador. Sicilia, Miguel Ángel. Rodríguez (2011) la elaboración de software de calidad debe tener en cuenta una serie de elementos, «buenos ingredientes, construidos, ensamblados y verificados en un proceso de calidad» (p. 378), no se trata, entonces, solo de los «ingredientes», sino también del proceso (el marco general). En términos de la ingeniería de software, podría decirse entonces: análisis de requisitos, la selección de los lenguajes de programación, marcos de trabajo, aplicación de principios, lo cual se ve reflejado en las características del producto final y la funcionalidad del mismo.</summary></entry></feed>