Unidad 1: Bases del desarrollo de software
Sesión 1: Introducción al desarrollo de software
Antes de empezar a construir aplicaciones o programas informáticos, es importante que comprendas qué es el desarrollo de software y su importancia en el avance tecnológico que vivimos en la actualidad. Por esta razón, en esta primera sesión se abordan diferentes aspectos relacionados con esta disciplina.
¿QUÉ SABES SOBRE...?
- ¿Qué es el desarrollo de software?
- ¿Qué habilidades se requieren para desarrollar software?
- ¿En qué campos se emplea el desarrollo de software?
1.1 EL MUNDO DEL DESARROLLO DE SOFTWARE
El desarrollo de software se ha convertido en una de las principales actividades o profesiones a nivel mundial por la alta demanda de aplicaciones que se requieren día a día. El avance tecnológico ha generado nuevos retos y nuevas necesidades lo cual hace al desarrollo de software un escenario con amplias opciones laborales.
Actualmente, hay cuatro grandes campos de acción en la cual puedes trabajar siendo desarrollador de software:
- Desarrollo de aplicaciones de escritorio: Las empresas, instituciones educativas, fundaciones, entidades gubernamentales, las personas, etc…, tienen necesidades y problemas que pueden ser solucionados ya sea, mejorando la versión de un software o aplicación que ya usan o creando un software nuevo, estas se crearán para los sistemas operativos más usados con un enfoque a computadores personales (por eso son lamadas "de escritorio").
- Desarrollo de apps para dispositivos móviles: la creciente demanda de dispositivos móviles también ha incrementado la demanda en la creación de aplicaciones para ofrecer diversos servicios, desde la sincronización del correo electrónico al dispositivo hasta la solicitud de un servicio de transporte, particularmente aprovechan las opciones y características propias de estas terminales a nivel de hardware e interacción (GPS,acelerómetros, llamadas, etc.).
- Desarrollo de aplicaciones para web: El acceso a internet no solo permitió un avance significativo en el crecimiento de la información sino también en ámbitos como la comunicación, la producción de contenidos, la publicidad y el mercado. Esto ha generado una demanda fuerte en la creación de plataformas a nivel web que permitan a los usuarios comunicarse de forma más eficiente, trabajar en equipo y acceder a la comprar de productos y servicios de forma online, en este punto no se trabaja sólo con computadores convencionales, ya que abarca hardware como televisores inteligentes y hasta refrigeradores con conexión a internet o hardware usado como accesorio como bandas de deporte o relojes inteligentes.
- Desarrollo de videojuegos: Uno de los campos más retadores y apasionantes que existe actualmente. El consumo actual de videojuegos y la exigencia de crear experiencias de juego novedosas y atractivas exige constantemente personas con un nivel de conocimiento alto en desarrollo de software. Además, el mercado es tan variado que no sólo se crean videojuegos para computadores o consolas de última generación, sino también para dispositivos móviles. Es un campo que exige un nivel de conocimiento en desarrollo de software muy alto.
En cualquiera de los campos que se mencionaron anteriormente, es importante que tengas en cuenta que en este mundo del desarrollo de software lo importante siempre es elegir una línea en la cual te sientas a gusto con lo que haces, que siempre estés dispuesto a ser creativo, a innovar, a cometer errores y aprender de ellos, a trabajar en equipo y a divertirte, porque esto definirá cómo aplicarás tus conocimientos para mejorar y aportar a la solución de problemas y necesidades de tu entorno.
1.2 ¿QUÉ ES EL DESARROLLO DE SOFTWARE?
Antes de decidir un enfoque o línea de trabajo es importante comprender lo que significa desarrollo de software, y antes de mencionar cualquier definición es necesario que tengas muy claro lo siguiente: desarrollo de software no es programar. Es posible que esta frase te deje confundido, pero, aunque la programación hace parte del desarrollo de software, no es lo que lo define.
Desarrollar implica procesos más complejos, comienza con el análisis de una situación particular y concluye, muy posiblemente, con la creación de una aplicación o incluso con el soporte de la misma, pero en este recorrido se requieren diferentes habilidades y destrezas para garantizar que el producto realizado aporte a la solución de la situación planteada.
En ese sentido, consideramos que conceptualmente el desarrollo de software se define como el proceso de resolución de un problema o necesidad que involucra el análisis, diseño, documentación y creación de un programa informático en el cual intervienen habilidades como la creatividad, la abstracción, la traducción entre diferentes tipos de representación, conocimientos sobre hardware, entre otros.
Por esta razón, el desarrollo de software no es una actividad que se realiza en su gran mayoría de forma individual, por el contrario, está muy relacionada con el trabajo en equipo.
1.3 ¿CÓMO SE TRABAJA EN DESARROLLO DE SOFTWARE?
Existen diferentes formas en las que puedes trabajar como desarrollador. Por un lado, si eres contratado por una empresa es posible que trabajes sólo o en grupo, eso depende de los proyectos que desarrolle la empresa; y, por otro lado, si creas tu propia empresa es probable que, inicialmente, trabajes sólo y luego empieces a contratar personas para que realicen el desarrollo mientras que tú te dedicas a crear y dirigir proyectos. En ese sentido, debes estar preparado para cualquiera de estas situaciones.
Generalmente, los grandes proyectos que involucran la creación de aplicaciones, son proyectos en los que se trabaja en equipo con personas de perfiles diferentes. Por ejemplo, en el desarrollo de un software especializado para una empresa, es posible que exista una persona que lidere el proyecto desde el aspecto del diseño y la programación, uno o varios diseñadores gráficos para la parte visual y uno o varios programadores para la construcción del software. Si el software es, por ejemplo, para una institución educativa, en el equipo es muy probable que también participen docentes o expertos. Es muy importante que estés dispuesto a dialogar con tus compañeros de equipo para llegar a acuerdos que permitan que el proyecto salga adelante y cumpla las expectativas y los requerimientos que fueron establecidos.
Sin embargo, si los proyectos son pequeños, es posible que puedas desarrollarlo tú sólo, pero tendrías que tener algunos conocimientos de diseño gráfico para el desarrollo de la interfaz gráfica, también conocimientos de diseño y desarrollo de Bases de Datos si el proyecto requiere conexión guardar información en un servidor o conocimientos tecnológicos si por ejemplo se van a construir versiones para diferentes sistemas operativos. En este caso, debes estar preparado para afrontar los diferentes problemas que se pueden presentar desde cualquiera de los aspectos mencionados.
1.4 METODOLOGÍA PARA EL DESARROLLO DE SOFTWARE
Como se mencionó anteriormente, desarrollar software implica análisis, diseño y creación de un programa informático para suplir una necesidad o solucionar un problema, por esta razón siempre es importante seguir una metodología para lograr un desarrollo óptimo y eficiente.
Existen diferentes metodologías para desarrollar software, y es muy posible que si trabajas en una empresa de desarrollo se emplee una metodología específica, diferente a la que emplean otras empresas. En este caso vamos a utilizar una metodología que aborda de forma general los diferentes procesos que se deben llevar a cabo en la creación de un software y que comprende las siguientes etapas o fases:
- Análisis de requerimientos
- Diseño
- Construcción
- Evaluación
1.4.1 Análisis de requerimientos
Si estás construyendo un software ya sea para suplir una necesidad o ya sea porque que te contrataron para hacer un software específico, siempre es importante definir con claridad cuáles son los requerimientos que debe cumplir este software. Los requerimientos hacen referencia a la lista de requisitos que se deben cumplir en el software de acuerdo a las necesidades que va a suplir o el problema que va a resolver. Por esta razón cuando queremos hacer un desarrollo siempre es recomendable hacerse por lo menos las siguientes preguntas:
- ¿Cuál es el objetivo del software?
- ¿Qué acciones va a realizar el software?
- ¿Qué personas van a utilizar el software?
- ¿Qué restricciones debe tener el software?
- ¿El software es para una plataforma específica o multiplataforma?
Posiblemente puede que surjan otros cuestionamientos que te permitan definir aún mejor los requerimientos, pero con estas preguntas garantizas tener un panorama muy aterrizado de lo que se desea desarrollar. Al final de las preguntas, los requerimientos se pueden escribir en una lista que permita ir verificando que cada uno de estos se estén cumpliendo en las siguientes etapas del desarrollo de software. A continuación, se muestra un ejemplo en el cual, para un software específico, se definen los requerimientos:
Objetivo
Crear un software para calcular los impuestos que deben pagar las empresas por un trabajador que tiene un contrato a término fijo por nómina.
Requerimientos
- El software debe permitir el registro de un usuario al sistema.
- El software debe solicitar al usuario que ingrese su nombre de usuario y contraseña
- El software debe validar la información ingresada por el usuario: el nombre de usuario no puede tener espacios y la contraseña no puede tener una longitud de caracteres mayor a 20.
- El software debe permitir calcular la retención en la fuente de un salario de un trabajador
- El software debe permitir calcular los parafiscales de acuerdo a un salario de un trabajador
- El software debe permitir calcular el impuesto de solidaridad de acuerdo a un salario de un trabajador
1.4.2 Diseño
Después de establecer los requerimientos en la fase de diseño se establece gráficamente la lógica con la cual se va a desarrollar el software estableciendo el funcionamiento del software, la interacción con el usuario, el manejo de la información, los procedimientos que se van a realizar, la validación de la información y el manejo de errores. Si hacemos una analogía con la Arquitectura, el diseño correspondería a la realización de los planos de una estructura, y así como la estructura no se puede construir sin tener los planos validados y evaluados un software no se puede realizar si no el diseño no está bien elaborado. El diseño de software generalmente se realiza utilizando diagramas, esquemas y prototipos gráficos que dependen de la forma como se desea el software. Sobre el diseño se profundizará en la sesión 2 de nuestro de módulo.
1.4.3 Construcción
Posterior al establecimiento de todos los diagramas que muestran de forma gráfica toda la lógica y funcionalidad de nuestro software, en la construcción iniciamos con el proceso de diseño gráfico y programación. Por un lado, el diseño gráfico es la elaboración de todos los recursos gráficos que van a aparecer en el software (botones, imágenes, animaciones, etc…) y generalmente este proceso lo realiza un diseñador gráfico. Por otro lado, la programación hace referencia a la construcción del código con base en el diseño realizado y representa la estructura de todo el software, es decir, lo que permite que un dispositivo lo lea, lo ejecute y realice las acciones para las que fue creado. Sobre la programación se profundizará en la sesión 3 de nuestro módulo.
1.4.4 Evaluación
Finalmente, después de hacer la construcción completa del software, se debe revisar que se esté cumpliendo con todos los requerimientos establecidos en la primera etapa y que sea coherente con el diseño de la segunda etapa, luego hacer las pruebas correspondientes con usuarios para determinar si existe algún error y finalmente determinar las acciones a realizar para hacer los ajustes y la mejora al software, ello incluye la documentación tanto del usuario final como la de nivel más técnico (también llamado admin). La evaluación es un factor muy importante porque da toda la información para mejorar el producto y sacar nuevas versiones.
ACTIVIDAD DE APRENDIZAJE 1
Propósito Buscar, analizar y clasificar ofertas en el mercado laboral para desarrolladores de software y determinar los perfiles más solicitados por los empleadores.
Descripción En esta actividad el estudiante deberá realizar una búsqueda en la web sobre diferentes ofertas laborales para desarrolladores de software y analizar cuáles son los perfiles más buscados. Para esto el estudiante deberá consultar, en una fecha específica, diferentes páginas web en las cuales se publiquen ofertas laborales que le permita hacer un análisis y una clasificación de los diferentes perfiles solicitados.
Criterios de evaluación (I) Busca ofertas de empleo para desarrolladores de software en diferentes páginas web
Clasifica las ofertas de empleo de acuerdo a los perfiles solicitados en cada oferta.
Determina cuál es el perfil más solicitado por los empleadores
Sesión 2: Bases del diseño
Uno de los aspectos más relevantes dentro del proceso de desarrollo de software es hacer un diseño adecuado del mismo, ya que de esto dependerá el éxito en la construcción y en su aplicación. Por esta razón abordamos este aspecto antes de introducir las bases de la programación.
¿QUÉ SABES SOBRE…?
¿Qué es el diseño de software?
¿Qué habilidades se requieren para diseñar software?
¿Qué tipos de diagramas se utilizan para diseñar software?
2.1 QUÉ ES DISEÑAR SOFTWARE
Como se mencionó anteriormente, el diseño de software es correspondiente a la creación de planos de una estructura arquitectónica, no es posible hacer la estructura sin los planos como es un riesgo programar un software sin sus diagramas. En ese sentido, diseñar es representar gráficamente el funcionamiento y la lógica de un software haciendo uso de diferentes símbolos y convenciones aceptados de forma general por la comunidad de desarrolladores de software del mundo.
Dentro de este diseño no solo se tiene en cuenta el funcionamiento desde el aspecto estructural sino también desde aspecto visual y así como como en la arquitectura existen diferentes tipos de planos, en el diseño de software también. Por esta razón, debes tener claro que si deseas ser un desarrollador competente debes ser muy cuidadoso y exigente con el diseño.
2.2 QUÉ HABILIDADES SE REQUIEREN PARA DISEÑAR SOFTWARE
Representar gráficamente la lógica y el funcionamiento no es un proceso complejo, pero si requiere que desarrolles diferentes habilidades para lograr un óptimo diseño. A continuación, se describen las más relevantes:
Abstracción: Es una de las habilidades más importantes que debes emplear. La abstracción te permite traducir los requerimientos de un software en procedimientos, secuencias y acciones de manera gráfica y de la forma más general posible que se pueda. El nivel de complejidad de la abstracción depende de la complejidad del software que se desea desarrollar.
Optimización: Esta habilidad te permite analizar un diseño y comprobar si existen redundancias o procesos repetitivos. La optimización te permite crear un diseño simplificado y eficiente.
Estructuración: Esta habilidad te permite crear un diseño organizado y coherente lo cual facilita el proceso de lectura y comprensión por parte de otros desarrolladores y optimiza el proceso de creación del software.
Es muy probable que existan otras habilidades que se requieran para el diseño, pero si utilizas en todos tus diseños por lo menos estas habilidades que se mencionaron estás garantizando un muy buen trabajo.
2.3 QUÉ ES UN ALGORITMO
Al inicio de esta sesión se mencionó que el diseño correspondía al funcionamiento y lógica de un software, y dentro de estos dos aspectos se encuentra un concepto muy importante dentro del desarrollo de software al cual se le denomina algoritmo.
Es importante que entiendas que un software se conforma de múltiples procedimientos, secuencias y acciones que derivan de los requerimientos establecidos en la fase de análisis, y así mismo estos requerimientos son considerados situaciones problema que se deben solucionar dentro del software. En ese sentido, un algoritmo, como lo describe Joyanes (2008), se considera como un método para resolver una situación problema mediante una serie de pasos precisos, definidos y finitos, que en términos del desarrollo establecería la forma como definimos esos procedimientos, secuencias y acciones para cumplir con los requerimientos establecidos.
Teniendo en cuenta la idea mencionada anteriormente, un software puede ser el resultado de un solo algoritmo o de múltiples algoritmos relacionados entre sí y se evidencia tanto en el diseño como en la programación. Inclusive, se podría afirmar que en el desarrollo de software lo que se hace constantemente es diseñar y programar algoritmos, lo que varía es la forma cómo creamos los algoritmos y como los relacionamos ya que esto depende del modelo de programación en el cual esté ubicado el desarrollador.
Para darte una idea más concreta de un algoritmo analicemos un ejemplo básico en el cual se plantea una situación problema con sus respectivos requerimientos:
Situación problema
Crear un software que permita a un usuario calcular un promedio simple de 3 datos numéricos ingresados.
Requerimientos:
El software debe permitirle al usuario ingresar la información de los datos numéricos
El software debe calcular un promedio simple a partir de los datos ingresados
El software debe mostrar al usuario el resultado correcto del promedio simple
Descripción del algoritmo
• Paso 1: Solicitar al usuario que ingrese el primer valor
• Paso 2: Solicitar al usuario que ingrese el segundo valor
• Paso 3: Solicitar al usuario que ingrese el tercer valor
• Paso 4: Con los datos ingresados, calcular el promedio simple sumando los tres valores ingresados por el usuario y dividiendo el resultado entre 3.
• Paso 5: Mostrar en pantalla el valor del promedio simple obtenido
Como puedes evidenciar, en este ejemplo se describen cada uno de los pasos que se deben realizar para calcular el promedio simple de tres valores numéricos ingresados respondiendo a los requerimientos establecidos para el desarrollo de nuestro software lo cual correspondería a un algoritmo.
El ejemplo anterior conlleva a mencionar algunas características de los algoritmos que debes tener presente dentro del desarrollo de software:
Tiene un inicio y un final
Tiene un orden para realizar cada paso
Tiene un número determinado de pasos
Está conformado por tres momentos:
a. Entrada: Donde se solicita la información que se requiere para ejecutar el programa
b. Proceso: Donde se realizan las acciones o procedimientos con los datos ingresados
c. Salida: Donde se obtiene y se publica un resultado de acuerdo a las acciones y procedimientos realizados.
Finalmente, es muy importante que tengas en cuenta que un algoritmo no es el diseño de un software, sino que hace parte del diseño en el sentido que nos permite definir los procedimientos, secuencias y acciones que se deben realizar lo cual facilita la representación por medio de símbolos y diagramas correspondientes para el caso. Esto desde el aspecto estructural. Sin embargo, no permite establecer el aspecto visual que tiene que ver con el desarrollo de la interfaz gráfica del software.
2.4 QUÉ ES UN DIAGRAMA DE FLUJO
Un diagrama de flujo es una representación que muestra cómo funciona un software indicando visualmente que operaciones se requieren y en qué orden o secuencia deben ser ejecutadas para dar solución a la situación problema planteada. Para construir un diagrama de flujo debes utilizar los siguientes símbolos:
Aunque cada uno de estos símbolos tiene una función determinada, cuando construyes diagramas de flujo debes colocar dentro de los símbolos la información que se requiere dependiendo de los requerimientos. En el siguiente ejemplo podrás observar cómo se representaría el algoritmo descrito anteriormente del caso del promedio simple:
Como puedes observar, en el diagrama se representa cada uno de los pasos descritos en el algoritmo y en la estructura se puede ver que existe un inicio, un fin, datos de entrada, procesos y datos de salida.
2.5 UML Y LOS DIAGRAMAS DE ACTIVIDADES
UML (Unified Modeling Lenguage) que significa lenguaje de modelado unificado es un tipo de lenguaje gráfico utilizado principalmente para diseñar software dentro del paradigma de la Programación Orientada a Objetos (POO). Es considerado un lenguaje universal cuyas técnicas y notaciones son utilizados por diferentes desarrolladores a nivel mundial.
Dentro del UML existen diferentes modelos para representar el desarrollo de un software los cuales se mencionan a continuación:
Diagrama de Casos de Uso
Diagrama de Clases
Diagrama de Secuencias
Diagrama de Estados
Diagrama de Colaboración
Aunque en este módulo la competencia no está relacionada con la POO, para el diseño de Software si es posible utilizar algunas de las técnicas y notaciones de este lenguaje en otros paradigmas o modelos de programación diferentes. En este caso particular se va a emplear el Diagrama de Actividades como método para diseñar software.
2.5.1 Diagrama de actividades
Los diagramas de actividades permiten diseñar algoritmos de forma similar a como se hace en un diagrama de flujo, la única diferencia es que en este tipo de diagramas las entradas, los procesos y las salidas se consideran actividades y estas se representan con un único símbolo. Para construir un diagrama de actividades debes emplear los siguientes símbolos:
Haciendo un proceso similar con el algoritmo del ejemplo del promedio simple, el diagrama de actividades que se puede diseñar para este caso es el siguiente:
Como puedes observar, los diagramas de actividades son más extensos porque describen de forma más completa cada una de las acciones que se plantean dentro de un algoritmo, incluyendo la información que le saldrá al usuario en pantalla.
Sin embargo, es muy importante que tengas en cuenta que, aunque los diagramas de flujo y actividades en esencia son similares, se emplean dentro de modelos de programación muy diferentes, pero esto se abordará en las sesiones posteriores.
ACTIVIDAD DE APRENDIZAJE 2
Propósito
Analizar una situación problema, plantear un algoritmo que dé solución al problema planteado y compartir el planteamiento en el aula virtual.
Descripción
En esta actividad el estudiante deberá analizar un problema y proponer un algoritmo describiendo cada uno de los pasos que se deben llevar a cabo para dar solución a la situación problema planteada. Para esto, debe escribir una lista de procesos y comprobar que la secuencia responde a los requerimientos establecidos en el problema. Posterior a esto debe compartir su propuesta en el espacio previsto en el aula virtual.
Criterios de evaluación (CI - P)
Analiza una situación problema dado
Plantea un algoritmo que dé solución al problema planteado
Comparte el algoritmo por medio del aula virtual
Problema
Se desea construir un programa que permita determinar el IVA correspondiente al valor de un producto ingresado.
Requerimientos
El software debe mostrar al usuario un mensaje de bienvenida
El software se debe solicitar al usuario que ingrese el costo del producto
El software debe calcular el valor del IVA del producto
El software debe mostrar al usuario el valor del IVA y el valor neto del producto después de descontar el IVA
A partir del caso anterior, plantear un algoritmo para dar solución al problema planteado.
Sesión 3: Bases de la programación
Posterior al diseño de un software, el siguiente paso es realizar el proceso de traducción adecuado para poder pasar a la fase de programación haciendo uso de uno o varios lenguajes de programación. Por esta razón, en esta sesión se aborda los aspectos básicos de este proceso dentro del desarrollo de software.
¿QUÉ SABES SOBRE…?
¿Qué es la programación?
¿Qué tipos de lenguajes de programación existen?
¿Qué es un pseudocódigo?
3.1 QUÉ ES LA PROGRAMACIÓN
Existen diversos autores que abordan conceptualmente la programación, en este caso se mencionarán las definiciones de dos autores en particular.
Por un lado, para Llanos (2010), la programación consiste en “la acción de escribir una lista de instrucciones que debe ejecutar un computador, es decir, la construcción de un programa”; y, por otro lado, Martínez (2013), considera que “la programación es una disciplina que requiere simultáneamente del uso de cierto grado de creatividad, un conjunto de conocimientos técnicos asociados y la capacidad de operar constantemente con abstracciones (tanto simbólicas como enteramente mentales)”.
Ambas definiciones son complementarias ya que efectivamente la programación es un proceso de escritura de instrucciones en un lenguaje específico a partir de un diseño establecido, pero en el cual se requieren habilidades para interpretar los requerimientos, procesos y acciones asociados al desarrollo de un software y utilizar la tecnología adecuada para su funcionamiento. Por esta razón, dentro de este campo, es la actividad que al final define cómo se va a construir ese software, en qué lenguaje se va a codificar y qué recursos tanto de hardware como de software se requieren para su ejecución.
3.2 QUÉ ES UN LENGUAJE DE PROGRAMACIÓN
Los lenguajes de programación son lenguajes que le permiten a un desarrollador construir programas que sean comprensibles para los computadores o dispositivos ya que éstos no están creados para que entiendan el lenguaje humano. Aunque el diseño es comprensible para las personas, un computador necesita saber cuáles son los pasos que debe seguir y los procedimientos que debe realizar y utilizar los recursos de hardware necesarios para esto, y esta parte no se establece necesariamente en un diseño.
Haciendo una analogía con la arquitectura, si el diseño de programas es correspondiente a los planos de una estructura, el lenguaje de programación termina siendo como el material y los insumos para construir dicha estructura, solo que en este caso sería el desarrollo de un software. Es muy importante que tengas en cuenta que por ser lenguaje tiene dos aspectos esenciales que se deben tener muy en cuenta: reglas sintácticas y reglas semánticas. Las reglas sintácticas hacen referencia a la escritura, y en programación se deben seguir de forma muy estricta para que un software funcione; y las reglas semánticas hacen referencia al significado que se le atribuye a las palabras dentro del lenguaje, ya que dependiendo de esto un programa puede generar un resultado u otro.
3.3 TIPOS DE LENGUAJES DE PROGRAMACIÓN
Si la computadora o dispositivos no entienden nuestro lenguaje, entonces ¿cuál entienden?... La respuesta es simple: código binario y hexadecimal. Por esta razón hay distintos tipos de lenguajes de programación con objetivos y funcionalidades diferentes, y para hablar de esto es necesario mencionar algunas definiciones que se han dado al respecto.
Por una parte, al lenguaje que entiende los dispositivos en general se le denomina lenguaje de máquina y el código de los programas que se ejecutan bajo este lenguaje se le denomina código máquina. Por otra parte, la escritura de un programa en un lenguaje de programación se le denomina código fuente y para que un computador o dispositivo entienda este código debe haber un programa que traduzca el código fuente a código máquina. Este proceso de traducción puede hacerse utilizando dos tipos de traductores:
Intérpretes: Son traductores que a medida que van traduciendo el código lo van ejecutando - esto es común en los programas que funcionan en los navegadores (web)
Compiladores: Son traductores que traducen todo el código en una sola operación y luego ejecutan el código máquina obtenido - es más común para las aplicaciones que funcionan en dispositivos específicamente o en clientes (Pc o Mac)
Así mismo existen diferentes tipos de lenguajes que se pueden clasificar de la siguiente forma:
Lenguajes de alto nivel: Son lenguajes muy cercanos al lenguaje humano, generalmente requieren de compiladores para hacer la traducción y posterior ejecución del código que se construye. Tienen la ventaja de que son independientes de la maquina por lo que garantiza portabilidad y migración a otras máquinas.
Lenguajes de bajo nivel: Son lenguajes muy cercanos al lenguaje de máquina, tienen la ventaja de ser más veloces ya que no se requiere de un proceso de compilación, pero tienen la desventaja que dependen del dispositivo en el cual se está creando el código, impidiendo la posibilidad de hacer un software portable.
En la actualidad se trabajan en gran medida los lenguajes de programación de alto nivel.
3.4 QUÉ ES UN PSEUDOCÓDIGO
El pseudocódigo es un proceso que se encuentra en el intermedio entre el diseño y la programación ya que, aunque se utiliza para crear instrucciones de un algoritmo en nuestro lenguaje natural, simula el proceso de programación. Por esta razón, se aborda en esta sesión y no en la de diseño.
Para hacer un pseudocódigo es necesario tener en cuenta, por un lado, los pasos que conforman el algoritmo a programar, y por otro lado, el diseño del algoritmo. Como es un proceso de simulación, para realizar y probar el pseudocódigo se va a emplear un software denominado PSeInt .
Para construir un pseudocódigo de cualquier algoritmo diseñado, debes tener en cuenta algunas convenciones:
Existen más expresiones, pero se considera que estas son las más básicas. Ahora bien, teniendo en cuenta esto, si nos guiamos por el diagrama de flujo del caso del promedio simple abordado en las sesiones anteriores, el pseudocódigo sería el siguiente:
Al ejecutar este pseudocódigo en el software PSeInt te saldrá una pantalla como la que se observa a continuación:
Como puedes observar, en la ejecución se muestra al usuario en qué momento inicia la aplicación, cuáles son los valores de entrada, cuál es el valor de salida y cuándo finaliza la aplicación. Los procesos son acciones que hace internamente el software y que el usuario no necesariamente debe conocer.
Con esto ya tendrías las suficientes bases tanto de diseño como de programación para empezar a realizar tus primeros proyectos como desarrollador de software.
ACTIVIDAD DE APRENDIZAJE 3
Propósito
Buscar en la web cuáles son los 3 lenguajes de programación más usados por desarrolladores en el momento, en qué tipos de proyectos se utilizan y hacer una descripción breve para compartir por el aula virtual.
Descripción
En esta actividad el estudiante deberá realizar una búsqueda en internet en diferentes sitios que le permitan determinar cuáles son los lenguajes de programación más demandados en el campo de desarrollo de software y en qué tipos de proyectos se utilizan. Para esto, el estudiante podrá consultar en blogs, wikis, páginas web de desarrolladores, entre otras, para hacer la descripción de lo que se solicita y luego compartir su resultado en el espacio correspondiente en el aula virtual.
Criterios de evaluación (I)
Consulta en la web sobre los lenguajes de programación más usados en el momento
Realiza una pequeña descripción de la consulta indicando los proyectos en los cuales se emplean estos lenguajes de programación
Comparte su descripción por medio del aula virtual