Tema 2 de Informática
Tema 2 de Informática
1
Índice
Índice ........................................................................................................................................2
Programación de aplicaciones sencillas. ........................................................................3
Conceptos de clases y objetos...........................................................................................7
Diagrama de flujo:................................................................................................... 10
Lectura y escritura de datos. ........................................................................................... 12
Tipos de operadores: ................................................................................................. 13
Estructuras de almacenamiento..................................................................................... 16
Entornos de programación. ............................................................................................. 17
Tipos de entornos de programación y ejemplos ................................................ 18
Por la plataforma en la que se ejecutan:............................................................... 18
Entornos para la creación de aplicaciones para móviles ......................................... 19
¿Qué son los entornos de desarrollo de apps? ...................................................... 20
Características esenciales de un entorno de desarrollo ....................................... 22
Elaboración de programas ............................................................................................... 22
1. Análisis.......................................................................................................................... 23
2. Diseño............................................................................................................................ 23
3. Codificación o construcción..................................................................................... 23
4. Explotación o implantación ..................................................................................... 24
5. Mantenimiento............................................................................................................ 24
Depuración de programas. .............................................................................................. 25
¿Por Qué Es Importante la Depuración? ................................................................... 25
Etapas Críticas en la Depuración ................................................................................ 25
Elementos del Depurador: Breakpoints y Ejecución Paso a Paso...................... 26
Fundamentos del software adaptativo. ........................................................................ 27
Características del Software Adaptativo................................................................... 28
Bibliografía ........................................................................................................................... 30
2
Programación de aplicaciones sencillas.
La programación de aplicaciones es el proceso de escribir este código para que
la computadora haga lo que tú quieres. En el caso de un juego, esto podría
incluir:
Desarrollar nuevas ideas para impulsar los negocios para los que trabaje.
3
Para poder hacer esto es necesario conocer una serie de lenguajes de
programación o códigos, con los que poder crear desde cero las aplicaciones
móviles o bien modificarlas partiendo de una tecnología pre desarrollada.
Crear una aplicación móvil es cualquier cosa menos fácil, sobre todo si lo haces
a lo loco y no tienes en cuenta una serie de aspectos. Vas a necesitar tiempo,
conocimientos específicos y, generalmente, hacer una inversión económica.
Tanto si quieres crear una aplicación desde cero, como para complementar la
web de un negocio existente o como parte de una estrategia de marketing, es
fundamental que estudies tu idea pormenorizadamente.
Analiza en primer lugar qué quieres hacer, después piensa cómo vas a
desarrollarlo y por último los medios con los que cuentas. Una buena idea es
investigar el mercado existente y ver si hay algún hueco en el que puedas
innovar. Si no sabes cómo hacerlo te contamos cómo detectar nichos de
mercado en el siguiente artículo.
2. Dirígete a tu público.
Cuando ya tengas clara la idea que vas a usar para crear tu app es importante
que analices el mercado y veas si hay sitio para ella. Además, este es el
momento de hacer los cambios necesarios para adaptar tus objetivos. Céntrate
en conocer mejor el perfil al que te diriges, estudia su comportamiento, los
hábitos que tiene, sus gustos, etc.
4
Hay aplicaciones móviles que se basan en distintas tecnologías para su
funcionamiento, además de diferentes opciones a la hora de programarlas.
Estudia cada variable para tener claro cuál se adapta mejor a lo que necesita el
negocio y a los recursos con los que cuentas.
• Apps nativas
• Aplicaciones web progresivas
• Apps híbridas
Para poder definir las partes de las que estará formada la aplicación móvil de tu
negocio, cómo disponer los distintos elementos, elegir una paleta de color o
dónde colocar las distintas llamadas a la acción es recomendable contar con un
diseñador web que pueda crear un “boceto” de la app.
Debes saber que en este punto es donde realmente cobra importancia el papel
de un experto en programación de apps, ya que aquí es donde sucede la
magia. Tienes varias opciones:
2. Contrata un programador
Es posible que no tengas la formación necesaria para hacer una app aún,
aunque ojo, que si estás leyendo esto es probable que la tengas pronto. En
este caso debes saber que los programadores de apps están muy demandados
y que si te especializas en esto no te faltará el trabajo.
Para un negocio esta es la opción más costosa, pero también con la que
conseguir un nivel de personalización mayor. Ya que un programador de apps
5
puede crear una de la nada ajustándose a todos los requisitos particulares del
proyecto.
Mucha gente se salta este paso cuando hacen la programación de una app y la
verdad es que es imprescindible. Antes de publicar nada es fundamental
revisar todas y cada una de las funciones, así como llevar a cabo una serie de
pruebas. Para ello puedes usar beta testers que te indiquen los fallos existentes
para poder hacer los cambios necesarios en la programación de la app.
1. Análisis
2. Diseño
3. Codificación
6
Como se ha visto en una sección anterior, la tarea aquí es la de traducir a un
lenguaje de programación la solución obtenida en la fase de diseño.
4. Explotación
5. Mantenimiento
Programación imperativa
Programación funcional
Programación lógica
Programación declarativa
Los pasos que debes seguir para conseguir el resultado buscado son:
1. Inicio.
8
2. Coge una sartén.
3. Pon la sartén sobre la placa.
4. Añade aceite a la sartén.
5. Enciende el fuego.
6. Espera a que se caliente el aceite.
7. Parte un huevo.
8. Agrega el contenido al aceite.
9. Espera a que esté frito.
10. Retira la sartén del fuego.
11. Apaga el fuego.
12. Retira el huevo del aceite.
13. Ponlo en un plato.
14. Fin.
Esa es la receta, los pasos. Pero, esto es un ejemplo muy simple, no hay
complicaciones. Para casos más complejos, un diagrama de flujo y el
pseudocódigo aclararía mucho. Este paso es vital, de ello dependerá si vas a poder
implementar el programa escribiendo código fuente o no. Aquí es donde
flaquean los que simplemente aprenden leyendo libros de programación o
modificando códigos.
9
Diagrama de flujo:
10
• Líneas de flujo: son flechas que indican la dirección del flujo que sigue la
ejecución del programa. Entrelazan la secuencia de pasos u operaciones
que se deben hacer desde el inicio hasta el final.
Eso en cuanto a los símbolos más básicos. Pero también debes respetar unas
reglas:
Estas son algunas de las reglas, pero ahora vamos a ver un ejemplo del diagrama
para nuestra receta (aunque no sea del todo adaptable al diagrama de flujo, pero
para que te hagas una idea):
11
Fig 2. diagrama de flujo para hacer huevo frito. Ejemplo.
Los tipos de datos compuestos que son aquellos cuyos valores pueden
englobar a varios datos simultáneamente. Los tipos de datos compuestos son:
el tipo conjunto (que permite expresar el caso del conjunto de letras de una
palabra), el tipo array1 (que recoge los ejemplos de vectores, crucigramas o
una baraja), el tipo registro (con cuyos valores se pueden representar fichas de
12
alumnos), y el tipo archivo (en uno de cuyos valores se puede almacenar una
carta).
Tipos de operadores:
Los tipos de operadores más comunes en programación se dividen en varias
categorías según su función. Aquí tienes algunos de los tipos de operadores
más comunes:
Operadores aritméticos:
== (igual a): Devuelve True si los dos valores son iguales; de lo contrario,
devuelve False.
13
!= (diferente de): Devuelve True si los dos valores no son iguales; de lo
contrario, devuelve False.
< (menor que): Devuelve True si el valor de la izquierda es menor que el valor
de la derecha; de lo contrario, devuelve False.
> (mayor que): Devuelve True si el valor de la izquierda es mayor que el valor
de la derecha; de lo contrario, devuelve False.
Operadores lógicos:
Operadores de asignación:
14
= (asignación): Asigna el valor de la derecha a la variable de la izquierda.
//= (división entera y asigna): Realiza una división entera del valor actual de la
variable de la izquierda por el valor de la derecha y luego asigna el resultado a
la variable de la izquierda.
15
fig 7. Ejemplo operador de pertenencia «in»
Estructuras de almacenamiento.
Repetición o ciclo: Así como los condicionales, los ciclos también realizan
preguntas. La diferencia es que hacen la misma pregunta una y otra vez hasta
que cierta tarea haya sido elaborada.
16
Entornos de programación.
Un entorno de programación es un programa o conjunto de programas que engloban
todas las tareas necesarias para el desarrollo de un programa o aplicación. Estas
tareas son básicamente las siguientes:
Editores:
Una vez editado nuestro programa, es necesario que este sea procesado y
transformado en órdenes que puedan ser ejecutadas por el ordenador. Estas órdenes
deben estar en código máquina, el único lenguaje que la máquina entiende. Los
procesadores de lenguaje cumplen esta función, y dentro de ellos destacan los
traductores, compiladores e intérpretes.
17
Algunos lenguajes combinan ambas estrategias. Java, por ejemplo, usa traductores
para generar un código intermedio que luego es ejecutado mediante un intérprete
llamado máquina virtual Java.
Enlazadores
Depuradores
Una vez que hemos editado y compilado un programa, lo siguiente es ejecutarlo. Sin
embargo, es común que, aunque el programa no tenga errores de sintaxis, no haga lo
que esperamos. Ahí es donde entran los depuradores. Estos programas nos permiten
ejecutar el código paso a paso, y además nos dan la posibilidad de ver el valor de las
variables y los datos, lo que hace mucho más fácil encontrar errores que de otro modo
serían difíciles de detectar.
18
Por otro lado, están los entornos de programación en la nube, que te permiten
trabajar directamente desde tu navegador, sin importar en qué dispositivo
estés. Esto es perfecto si te gusta la flexibilidad de trabajar desde cualquier
lugar. AWS Cloud9, Codeanywhere y CodePen son algunos ejemplos de este
tipo, y tienen la ventaja de ser accesibles en cualquier momento y desde
cualquier lugar con conexión a Internet.
1. Desarrollo móvil:
• Android Studio: Es el entorno de desarrollo más común para crear
aplicaciones para Android.
• Xcode: Este se utiliza para desarrollar aplicaciones para dispositivos
Apple, como el iPhone o el iPad.
2. Desarrollo de videojuegos:
• Unreal Engine y Unity: Son dos de los entornos más utilizados para
hacer videojuegos. Ofrecen herramientas muy potentes para crear
mundos virtuales, gráficos y todo lo que necesita un juego.
3. Desarrollo para IoT (Internet de las Cosas):
Aunque no hay un único entorno para esto, hay varias herramientas que
ayudan a crear aplicaciones para dispositivos que forman parte del Internet de
las Cosas, como sensores, cámaras inteligentes, entre otros.
4. Gestión de bases de datos:
Algunos entornos están especializados en gestionar bases de datos, facilitando
tanto el diseño como la manipulación de los datos. Estos entornos permiten
configurar y gestionar de forma eficiente la información.
Cada uno de estos entornos está pensado para facilitar el trabajo en diferentes
tipos de proyectos, por lo que elegir el adecuado depende del tipo de
aplicación que quieras desarrollar.
19
(Integrated Development Environments ), que facilitan la programación al integrar
herramientas y recursos en una sola plataforma.
1. Aplicaciones nativas:
a. Se desarrollan exclusivamente para un sistema operativo, como Android
o iOS.
b. Están escritas en lenguajes como Java o Kotlin para Android, y Swift u
Objective-C para iOS.
c. Su principal ventaja es el alto rendimiento, ya que están diseñadas
específicamente para aprovechar al máximo las características del
dispositivo, como la cámara, los sensores o el almacenamiento.
d. Sin embargo, requieren mayor inversión de tiempo y recursos, ya que el
desarrollo para cada plataforma es independiente.
2. Aplicaciones híbridas:
a. Mezclan características de las apps nativas y web.
b. Utilizan tecnologías web como HTML, CSS y JavaScript, que se
envuelven en una capa nativa para poder distribuirse a través de tiendas
de aplicaciones.
c. Son más económicas y rápidas de desarrollar porque el mismo código
puede utilizarse en múltiples plataformas. Sin embargo, pueden tener
un rendimiento inferior al de las apps nativas.
3. Aplicaciones web:
a. Son sitios web optimizados para dispositivos móviles y no requieren
instalación.
b. Pueden ejecutarse en cualquier dispositivo con un navegador web, lo
que las hace muy accesibles.
c. Aunque son económicas de crear, no tienen acceso completo a las
funciones del dispositivo y suelen ofrecer un rendimiento inferior.
20
• Editores de código: Permiten escribir el código fuente del programa.
• Compiladores o intérpretes: Transforman el código en un formato que el
dispositivo pueda entender.
• Depuradores: Ayudan a identificar y corregir errores en el código.
• Simuladores o emuladores: Permiten probar la aplicación en un entorno virtual
antes de ejecutarla en un dispositivo real.
1. Android Studio:
a. Es el entorno oficial para el desarrollo de aplicaciones Android.
b. Incluye herramientas de diseño visual, un emulador avanzado, soporte
para lenguajes como Java y Kotlin, y una integración directa con
servicios de Google.
c. Facilita la creación de aplicaciones optimizadas para dispositivos
Android de diferentes tamaños y versiones.
2. Xcode:
a. Es el entorno de desarrollo para aplicaciones iOS, utilizado para
dispositivos como iPhones y iPads.
b. Ofrece un editor de código intuitivo, herramientas de diseño visual y un
simulador de iOS para pruebas.
c. Es compatible con el lenguaje Swift, conocido por su simplicidad y
eficiencia.
3. Flutter:
a. Este framework, desarrollado por Google, permite crear aplicaciones
multiplataforma con un solo código base.
b. Usa el lenguaje Dart y proporciona widgets personalizables para diseñar
interfaces atractivas y funcionales.
c. Es ideal para proyectos que necesitan ser lanzados en Android e iOS
simultáneamente.
4. React Native:
a. Desarrollado por Facebook, es otra opción para crear aplicaciones
híbridas.
b. Utiliza JavaScript y ofrece un rendimiento cercano al de las aplicaciones
nativas.
21
c. Su comunidad activa proporciona múltiples recursos y bibliotecas que
facilitan el desarrollo.
Elaboración de programas
El proceso de creación de un programa es mucho más que sentarse a escribir líneas
de código. Es un trabajo organizado que pasa por varias etapas, y cada una tiene su
propia importancia para que el resultado final sea un software funcional, estable y útil.
A continuación, te explico las fases principales de este proceso, intentando que sea
claro y con ejemplos que lo hagan más cercano.
22
1. Análisis
El análisis es como la base de todo el proyecto. En esta etapa, lo primero que se hace
es definir exactamente qué se necesita. Es un momento clave porque, si no queda
claro qué se espera del programa, todo lo que viene después puede fallar. Aquí es
cuando el analista (el que estudia el problema y propone soluciones) habla con el
cliente o usuario para entender cuáles son sus necesidades.
Por ejemplo, imagina que te piden desarrollar una app para organizar eventos. En esta
fase, habría que averiguar qué funciones necesita: ¿Debe enviar notificaciones?
¿Permitir registro de asistentes? ¿Incluir un calendario interactivo? Todo esto se
recoge en lo que llamamos especificaciones funcionales, que sirven como guía para
las siguientes fases.
2. Diseño
El diseño es el paso en el que las ideas del análisis se convierten en algo más técnico.
Aquí se planifica cómo se hará el programa, teniendo en cuenta los recursos
disponibles.
Por ejemplo:
Además, en esta etapa se define cómo será la interfaz del programa (lo que el usuario
ve y usa) y cómo se organizarán las partes internas del software para que todo
funcione correctamente. Es como cuando haces un boceto detallado antes de
construir algo: te aseguras de que todo encaje y tenga sentido
3. Codificación o construcción
Aquí es donde empieza el trabajo práctico: se escribe el código del programa. Lo que
antes eran ideas y planos ahora se convierte en realidad. Se elige un lenguaje de
programación (como Python, Java o C++) y se empieza a construir cada parte del
programa.
Pero no se trata solo de escribir código. También hay que probarlo continuamente
para asegurarse de que no hay errores. Por ejemplo, si en la app de eventos añades
una función para enviar notificaciones, debes probar que estas llegan a tiempo, al
destinatario correcto y con el mensaje adecuado.
23
La codificación requiere paciencia y atención al detalle. Incluso un pequeño error
(como olvidar un punto y coma) puede hacer que el programa no funcione.
4. Explotación o implantación
Esta etapa es como la gran inauguración: el programa se pone en marcha en el
entorno real donde va a ser usado. Aquí se hacen las últimas comprobaciones para
asegurarse de que todo funciona como se espera.
Por ejemplo, en nuestra app de eventos, esta sería la etapa en la que la gente empieza
a usarla, y tú te aseguras de que las notificaciones llegan, el calendario funciona y
todo está en orden.
5. Mantenimiento
Aunque parezca que el trabajo termina cuando el programa se lanza, no es así. El
mantenimiento es una fase constante y crucial, ya que asegura que el programa siga
funcionando bien a medida que pasa el tiempo.
En algunos casos, si la app necesita cambios importantes, podría ser necesario volver
a empezar todo el ciclo de desarrollo.
1. Análisis: Se identifican las necesidades del cliente y los requisitos del sistema.
2. Diseño: Se planifica cómo se construirá el programa.
3. Codificación: Se escribe y prueba el código.
4. Explotación: Se instala y se pone en marcha el programa.
5. Mantenimiento: Se corrigen errores y se hacen mejoras continuas.
24
Depuración de programas.
La depuración es una de las partes más importantes cuando estamos desarrollando
un programa. En programación, se llama debugging al proceso de encontrar y
corregir errores (o "bugs") en el código.
26
proceso: los breakpoints (puntos de ruptura) y la ejecución paso a paso.
Vamos a ver cómo funciona cada una de ellas.
Otra herramienta muy útil es la ejecución paso a paso. Esto significa que
podemos hacer que el programa se ejecute línea por línea, lo que nos permite
ver con detalle cómo avanza el flujo del programa. Si notamos que el
comportamiento no es el esperado en alguna parte, podríamos estar cerca de
descubrir un error.
3 tipos de Adaptación:
28
• Mejora de la experiencia del usuario: La capacidad de personalización permite
que el software se adapte mejor a las preferencias individuales de los usuarios.
• Optimización de recursos: Al adaptarse a las condiciones del sistema o el
entorno, el software puede operar de manera más eficiente, utilizando los
recursos de manera óptima.
• Resiliencia: El software adaptativo puede seguir funcionando correctamente a
pesar de cambios inesperados en el entorno.
Tendencias Futuras
Conclusión
29
El software adaptativo representa un paso importante hacia un futuro donde los
sistemas informáticos son más flexibles, inteligentes y capaces de ajustarse a su
entorno. Si bien tiene sus desafíos, las ventajas que ofrece, como la mejora de la
experiencia del usuario y la optimización de recursos, lo convierten en una tendencia
clave en el desarrollo de software para el futuro.
Bibliografía
➢ Architecnología. Programación por etapas. Recuperado de
https://architecnologia.es/programacion-etapas-programacion
➢ Depuración de programas. Recuperado de
https://sarreplec.caib.es/pluginfile.php/10237/mod_resource/content/3/7_
depuracin_de_programas.html
➢ Elaboración de programas. Recuperado de
https://sites.google.com/view/gerardo-isaias-espinoza-leal/unidad-3/3-9-
elaboración-de-programas
➢ Entornos de programación. Recuperado de
http://descargas.pntic.mec.es/mentor/visitas/nav_Inici_Progr/lenguajes/le
n20.html
➢ Entornos para la creación de aplicaciones para móviles. Recuperado de
https://www.liderlogo.es/diseno-web/entornos-de-desarrollo-de-apps/
➢ El desarrollo adaptivo de software. Recuperado de
https://es.slideshare.net/slideshow/eldesarrolloadaptativodesoftwarepptx
/265264701
➢ Funciones de un programador. Recuperado de
https://gemini.google.com/app/d13bfec3c46e59da
➢ Fundamentos del software adaptivo. Recupeerado de
https://es.slideshare.net/slideshow/eldesarrolloadaptativodesoftwarepptx
/265264701
31