# data[].attributes.body
En este taller se dará respuesta a una serie de interrogantes los cuales nos permitirán conocer mas a fondo los diferentes conceptos básicos, herramientas y metodologías a la hora de desarrollar un proyecto de Software, así mismo de forma mas general daré a conocer mi visión de como la materia me ayudo a reforzar y obtener nuevos conocimientos.

# data[].attributes.body
Juan Esteban Ramírez Ríos
Estudiante de desarrollo de Software ITM.
2022-1

# data[].attributes.headline
1. Herramientas de Software y su contribución.

# data[].attributes.subject
1. Herramientas de Software y su contribución.

# data[].attributes.body
En el mundo del desarrollo de software es muy importante mantenerse actualizado con todas las novedades que día a día se van presentando, hacer uso de herramientas que le permitan a usted y a la compañía ser mas productivo son el pilar que llevara al éxito cualquier proyecto propuesto. La humanidad viene teniendo un crecimiento exponencial en la dependencia del mundo digital, el tema de la globalización a permitido abrir fronteras inimaginables y han contribuido con la eficiencia, la productividad, el conocimiento y calidad de vida de las personas, así que si una empresa emplea las herramientas necesarias para suplir las necesidades del momento hará parte de toda esta contribución digital.  Algunos ejemplos: Github,Git y Postman.

# data[].attributes.headline
2. Servicios que proporcionan las Plataformas de Desarrollo de Software.

# data[].attributes.subject
2. Servicios que proporcionan las Plataformas de Desarrollo de Software.

# data[].attributes.body
Entornos de desarrollo integrado o interactivo (IDE). Estas aplicaciones ofrecen un espacio de trabajo donde el programador puede escribir código. Esta tarea se puede realizar desde un simple editor de texto, o en un entorno especializado con pareo de llaves, herramientas de autocompletado preinstaladas y resalte de sintaxis.

Compiladores. Son aplicaciones de traducción que pasan de un lenguaje de programación a otro. El funcionamiento usual es que el código fuente sea transformado en código máquina o bytecode. Suelen estar incluidos dentro de una suite de programación.

Intérpretes informáticos o interpretadores. El intérprete analiza y ejecuta programas de manera progresiva según sea necesario, de forma que estiman instrucción a instrucción el correcto funcionamiento del mismo.

Enlazadores. Se conoce como enlazador a un software especializado de programación que gestiona los objetos y bibliotecas necesarias, conectándolos cuando sea oportuno y limpiando los recursos que no están en uso. El objetivo último del enlazador es generar un fichero ejecutable.

Depuradores o debuggers. Este software de programación tiene como cometido la detección de errores en el código fuente para que estos puedan ser localizados con mayor facilidad por el programador, estudiados y eliminados posteriormente.

Fuente:
Lázaro, A. A. (2019, 5 noviembre). Mejores software de programación. Profesional Review. https://www.profesionalreview.com/2019/11/09/mejores-software-programacion/

# data[].attributes.body
Es una de las técnicas más sencillas para previsualizar cómo va a quedar la aplicación a desarrollar, en cuestión de diseño, y sin tener que empezar a programar ni una línea de código.

Hacer un prototipo te ahorrará mucho tiempo y trabajo. Además, te va a permitir ver de manera muy fiel cómo va a quedar la app y si es necesario optimizar el diseño, apariencia y usabilidad de la misma.
El prototipo será la primera entrega que muestres a un cliente para validación.

Fuente:
Y. (2021, 2 agosto). Crear un prototipo de app móvil: cómo definir tu aplicación. Yeeply. https://www.yeeply.com/blog/como-definir-tu-aplicacion-movil-hacer-prototipo-de-app/

# data[].attributes.body
Es un concepto que hace referencia a la facilidad con la que puede ser utilizada una interfaz, independientemente del tipo de aplicación. Se trata de un concepto de gran importancia ya que se encuentra totalmente ligado a la Experiencia de Usuario (UX) y a la Interfaz de Usuario (UI). Si un usuario no es capaz de saber utilizar una aplicación, la abandonará de inmediato.

La usabilidad se basa en el Diseño Centrado en Usuario (DCU) el cual, se basa en las necesidades del usuario de manera en que se desarrolla por y para él.

1. Facilidad de aprendizaje: hace referencia a cómo de rápido puede un usuario que nunca ha hecho uso de la interfaz, ejecutar tareas básicas.

2. Eficacia de uso: hace referencia a la rapidez con la que un usuario ejecuta tareas básicas.

3. Facilidad del sistema para ser recordado: hace referencia a si un usuario que ya ha utilizado la interfaz anteriormente, recuerda cómo se utilizaba.

Fuente:
Conecta Software. (2021, 14 agosto). Usabilidad. https://conectasoftware.com/glosario/usabilidad/

# data[].attributes.body
Los más populares son MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Todas ellas bases de datos relacionales. También es muy popular MongoDB, que es una base de datos no relacional o NoSQL. Además podríamos agregar Access, que no sería tanto un sistema gestor de base de datos, sino un programa de ofimática capaz de trabajar con datos en tablas, de modo similar que los SGBD.

Fuente:
Bases de datos. (2019). Desarrollo Web. https://desarrolloweb.com/home/bases-de-datos

# data[].attributes.headline
6. Características y limitantes del Software para computadoras.

# data[].attributes.subject
6. Características y limitantes del Software para computadoras.

# data[].attributes.body
La mayoría de los programas de software están diseñados para funcionar con el sistema operativo de una sola empresa, por ejemplo solo Windows (Microsoft) o solo macOS (Apple).

Un software indicará claramente qué sistemas operativos admite y será muy específico si es necesario incluyendo la versión o versiones de ese SO que admite.

Por ejemplo, un programa de software de producción de video podría decir que es compatible con Windows 10, Windows 8 y Windows 7, pero no es compatible con versiones anteriores de Windows como Windows Vista y XP.

Los desarrolladores de software también suelen lanzar versiones adicionales de su software que funcionan con otros sistemas operativos o versiones diferentes.

Volviendo al ejemplo del programa de producción de video, esa compañía también podría lanzar otra versión del programa con exactamente las mismas características pero para que funcione con macOS, el lugar de con Windows.

También es importante saber si su sistema operativo es de 32 bits o de 64 bits.

Fuente:
Tipos de Sistemas Operativos Usos e Historia. (2019). Sistemas operativos. https://www.areatecnologia.com/sistemas-operativos.htm#Tipos_de_Sistemas_Operativos

# data[].attributes.headline
7. Entorno de ejecución de aplicaciones móviles.

# data[].attributes.subject
7. Entorno de ejecución de aplicaciones móviles.

# data[].attributes.body
provee de todos los elementos necesarios para la creación y desarrollo de software a los programadores, es decir contiene elementos que serán de gran ayuda a los mismos, en el momento de escribir aplicaciones compatibles con ese sistema operativo.

Entre los servicios que los programadores pueden encontrar, se destacan un gestor de aplicaciones y una serie de interfaces programables (APIs) o "Application Programming Interface" abiertas.

En este sentido, como podremos notar con una simple observación, la mayoría de las aplicaciones comparten ciertas características de diseño, como por ejemplo los botones para confirmar, barras de desplazamiento, tipografías y demás elementos gráficos.

Fuente:
Marker, G. (2021, 1 junio). Sistemas operativos para móviles. Tecnología + Informática. https://www.tecnologia-informatica.com/sistemas-operativos-moviles/

# data[].attributes.body
SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña (~275 kiB)²​ biblioteca escrita en C. SQLite es un proyecto de dominio público creado por D. Richard Hipp.

https://es.wikipedia.org/wiki/SQLite

# data[].attributes.body
El siguiente motor que vale la pena revisar es PostgreSQL nacido en UC Berkeley a mediados de los 80. Este motor es uno de los más utilizados en el mundo y se considera hoy el más avanzado entre los motores relacionales open source. Suele ser considerado como alternativa a MySQL.

También soporta transacciones ácidas e incluye un optimizador de consultas sofisticado y mecanismos de respaldo muy sólidos para situaciones de desastres.

Suarez, M. (2022, 21 marzo). Motores de bases de datos: ¿cuáles son los principales y cómo elegirlos? Clase Ejecutiva UC. https://www.claseejecutiva.com.co/blog/articulos/motores-de-bases-de-datos/

# data[].attributes.body
Pasemos ahora al líder, representado por el motor de Oracle. Creado por Larry Ellison en 1979 se ha mantenido como el líder indiscutido por décadas. A lo largo de sus 41 años el software ha evolucionado y ha contribuido a innovaciones que se han incorporado en otros motores.

Este es un software propietario, es decir se requiere comprar una licencia para usarlo. Ofrece transacciones ácidas y soporte de datos semiestructurados además del modelo relacional clásico (XML, JSON, RDF).

Suarez, M. (2022, 21 marzo). Motores de bases de datos: ¿cuáles son los principales y cómo elegirlos? Clase Ejecutiva UC. https://www.claseejecutiva.com.co/blog/articulos/motores-de-bases-de-datos/

# data[].attributes.body
Cassandra fue creada por dos ingenieros de Facebook como una solución para los severos problemas de escalamiento que estaba enfrentando la aplicación debido a un crecimiento extraordinario en el número de usuarios.

Soporta un modelo de datos que se conoce como Wide Column y la principal característica es la capacidad de escalamiento, permitiendo ir a volúmenes de datos y número de transacciones muy grandes mediante sharding automático y un enfoque descentralizado.

Suarez, M. (2022, 21 marzo). Motores de bases de datos: ¿cuáles son los principales y cómo elegirlos? Clase Ejecutiva UC. https://www.claseejecutiva.com.co/blog/articulos/motores-de-bases-de-datos/

# data[].attributes.body
Rey de los motores de bases de datos no relacionales (NoSQL) en el sentido de popularidad. Se trata de MongoDB.

Este motor, open source, creado en 2009, ha sido diseñado desde el inicio para manejar data semiestructurada en forma de documentos JSON lo cual permite en muchos casos un enganche más natural con el código de las aplicaciones que lo utilizan (JSON viene desde el mundo JavaScript).

Suarez, M. (2022, 21 marzo). Motores de bases de datos: ¿cuáles son los principales y cómo elegirlos? Clase Ejecutiva UC. https://www.claseejecutiva.com.co/blog/articulos/motores-de-bases-de-datos/

# data[].attributes.body
Es básicamente el mismo software del motor MySQL

Es una buena elección para quienes buscan independencia total de Oracle y más “pureza” desde el punto de vista open source.

Suarez, M. (2022, 21 marzo). Motores de bases de datos: ¿cuáles son los principales y cómo elegirlos? Clase Ejecutiva UC. https://www.claseejecutiva.com.co/blog/articulos/motores-de-bases-de-datos/

# data[].attributes.body
Hoy en día SQL Server compite con Oracle el liderazgo en el mundo de las soluciones comerciales (no open source).
Otro aspecto que ha potenciado a este motor es que se integra muy bien con la plataforma Cloud (Azure) de esta compañía.

un motor en esencia relacional especialmente apropiado para organizaciones en que existe un ecosistema de la compañía. Aunque suele resultar algo menos costoso que las licencias de Oracle.

Suarez, M. (2022, 21 marzo). Motores de bases de datos: ¿cuáles son los principales y cómo elegirlos? Clase Ejecutiva UC. https://www.claseejecutiva.com.co/blog/articulos/motores-de-bases-de-datos/

# data[].attributes.body
Es un motor tremendamente popular y probablemente el más utilizado en el contexto de aplicaciones web, incluyendo algunas de las más grandes.

Soporta transacciones ácidas y particionamiento horizontal (sharding). Aunque creada para soportar el modelo relacional ha sido extendida para manejar también datos semiestructurados (JSON).

Suarez, M. (2022, 21 marzo). Motores de bases de datos: ¿cuáles son los principales y cómo elegirlos? Clase Ejecutiva UC. https://www.claseejecutiva.com.co/blog/articulos/motores-de-bases-de-datos/

# data[].attributes.body
D : Dato.

I : Información.

S : Sabiduría.

C : Conocimiento.

# data[].attributes.body
Es la parte que interactúa con los usuarios, por eso decimos que está del lado del cliente.

Es la parte de un programa o dispositivo a la que un usuario puede acceder directamente. Son todas las tecnologías de diseño y desarrollo web que corren en el navegador y que se encargan de la interactividad con los usuarios.

# data[].attributes.body
Es todo lo que corre en el servidor lo que no ve ejemplo la contraseña es secreta es seguro.

Es la parte que se conecta con la base de datos y el servidor que utiliza dicho sitio web, por eso decimos que el backend corre del lado del servidor.

Backend es la capa de acceso a datos de un software o cualquier dispositivo, que no es directamente accesible por los usuarios, además contiene la lógica de la aplicación que maneja dichos datos. El Backend también accede al servidor, que es una aplicación especializada que entiende la forma como el navegador solicita cosas.

# data[].attributes.body
Juan Esteban Ramírez Ríos:
En este camino de mis primeros meses he aprendido en general toda la parte técnica y de código, metiéndome minuciosamente a lo que es desarrollar en si, pero te das cuenta que eso no basta, también hay que tener en cuenta  de todo lo que hay a nuestro al rededor como futuros profesionales, de como el mundo esta cambiando y de como nuestra profesión puede contribuir mundo, de eso es lo que se ha encargado la materia de formación profesional me ha ayudado a ver el camino que tengo por delante, a ver cuales son las mejores practicas para ser un profesional integro y capaz, además, he conocido y aprendido a manejar diversas herramientas que no conocía, las cuales seguiré utilizando ya que me ayudaran a mostrar un perfil mas profesional.

# data[].attributes.body
En conclusión el campo del desorillo de Software tiene una amplia demanda y hay un mundo completo delante, es decir hay muchos caminos para recorrer, cómo lo son el Software para PC, dispositivos móviles, en la nube (web), además de infinidad de herramientas de bases de datos y entornos de desarrollo para cada uno de los lenguajes que son aplicados de acuerdo a las necesidades, dispositivos o utilidades que se le quiera dar.