Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 1
Tema 1
id=7088
Desarrollo de software.
Caso práctico
En BK Programación todos han vuelto ya de sus vacaciones.
Les espera un septiembre agitado, pues acaban de recibir una petición por parte
de una cadena hotelera para desarrollar un proyecto software.
Aviso legal
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 1/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 2/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Todos en la empresa están entusiasmados con el proyecto
que tienen entre manos. Saben que lo más importante es
planificarlo todo de antemano y elegir el tipo de software
más adecuado. Ana les escucha hablar y no llega a
entender por qué hablan de "tipos de software". ¿Acaso el
software no era la parte lógica del ordenador, sin más?
¿Cuáles son los tipos de software?
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 3/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
En este tema, nuestro interés se centra en las aplicaciones informáticas: cómo se desarrollan
y cuáles son las fases por las que necesariamente han de pasar.
A lo largo de esta primera unidad vas a aprender los conceptos fundamentales de software y las
fases del llamado ciclo de vida de una aplicación informática.
También aprenderás a distinguir los diferentes lenguajes de programación y los procesos que
ocurren hasta que el programa funciona y realiza la acción deseada.
Reflexiona
Hay varios sistemas operativos en el mercado: Linux, Windows, Mac OS X, etc. El
más conocido es Windows. A pesar de ello, ¿por qué utilizamos cada vez más
Linux?
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 4/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Todas las aplicaciones necesitan recursos hardware durante su ejecución (tiempo de CPU,
espacio en memoria RAM, tratamiento de interrupciones, gestión de los dispositivos de
E/S, etc.). Será siempre el sistema operativo el encargado de controlar todos estos
aspectos de manera "oculta" para las aplicaciones (y para el usuario).
Ya hemos dicho que una aplicación no es otra cosa que un conjunto de programas, y que
éstos están escritos en algún lenguaje de programación que el hardware del equipo debe
interpretar y ejecutar.
Esto nos hace plantearnos una cuestión: ¿Cómo será capaz el ordenador de "entender"
algo escrito en un lenguaje que no es el suyo?.
Como veremos a lo largo de esta unidad, tendrá que pasar algo (un proceso de traducción
de código) para que el ordenador ejecute las instrucciones escritas en un lenguaje de
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 5/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
programación.
Autoevaluación
Para fabricar un programa informático que se ejecuta en una computadora:
Hay que escribir las instrucciones en código binario para que las entienda el
hardware.
Sólo es necesario escribir el programa en algún lenguaje de programación y
se ejecuta directamente.
Hay que escribir el programa en algún Lenguaje de Programación y contar
con herramientas software que lo traduzcan a código binario.
Los programas informáticos no se pueden escribir: forman parte de los
sistemas operativos.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 6/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
En BK programación ya están manos a la obra.
Ada reúne a toda su plantilla para desarrollar el
nuevo proyecto.
Entendemos por Desarrollo de Software todo el proceso que ocurre desde que se concibe
una idea hasta que un programa está implementado en el ordenador y funcionando.
El proceso de desarrollo, que en un principio puede parecer una tarea simple, consta de una
serie de pasos de obligado cumplimiento, pues sólo así podremos garantizar que los programas
creados son eficientes, fiables, seguros y responden a las necesidades de los usuarios finales
(aquellos que van a utilizar el programa).
Como vamos a ver en el siguiente punto, según el orden y la forma en que se lleven a cabo las
etapas hablaremos de diferentes ciclos de vida del software.
Reflexiona
Según estimaciones, el 26% de los grandes proyectos de software fracasan, el
48% deben modificarse drásticamente y sólo el 26% tienen rotundo éxito. La
principal causa del fracaso de un proyecto es la falta de una buena planificación
de las etapas y mala gestión de los pasos a seguir. ¿Por qué el porcentaje de
fracaso es tan grande? ¿Por qué piensas que estas causas son tan
determinantes?
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 7/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Mostrar retroalimentación
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 8/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Diversos autores han planteado distintos modelos de ciclos de vida, pero los más conocidos y
utilizados son los que aparecen a continuación:
Es uno de los modelos más utilizados. Proviene del modelo anterior, pero se introduce una
realimentación entre etapas, de forma que podamos volver atrás en cualquier momento
para corregir, modificar o depurar algún aspecto. No obstante, si se prevén muchos
cambios durante el desarrollo no es el modelo más idóneo.
Son más modernos que los anteriores. Tienen en cuenta la naturaleza cambiante y
evolutiva del software.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 9/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
bastante complejo.
Autoevaluación
Si queremos construir una aplicación pequeña, y se prevé que no sufrirá
grandes cambios durante su vida, ¿sería el modelo de ciclo de vida en
espiral el más recomendable?
Sí.
No.
Solución
1. Incorrecto
2. Opción correcta
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 10/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
¿En qué fases del proceso nos pueden ayudar? En el diseño del proyecto, en la codificación de
nuestro diseño a partir de su apariencia visual, detección de errores…
La tecnología CASE trata de automatizar las fases del desarrollo de software para que mejore la
calidad del proceso y del resultado final. En concreto, estas herramientas permiten:
CLASIFICACIÓN
Normalmente, las herramientas CASE se clasifican en función de las fases del ciclo de vida del
software en la que ofrecen ayuda:
Ejemplos de herramientas CASE libres son: ArgoUML, Use Case Maker, ObjectBuilder…
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 11/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 12/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Ya dijimos anteriormente que los programas informáticos están escritos usando algún lenguaje
de programación. Por tanto, podemos definir un Lenguaje de Programación como un idioma
creado de forma artificial, formado por un conjunto de símbolos y normas que se aplican sobre
un alfabeto para obtener un código, que el hardware de la computadora pueda entender y
ejecutar.
Los lenguajes de programación son los que nos permiten comunicarnos con el
hardware del ordenador.
En otras palabras, es muy importante tener muy clara la función de los lenguajes de
programación. Son los instrumentos que tenemos para que el ordenador realice las tareas que
necesitamos.
Hay multitud de lenguajes de programación, cada uno con unos símbolos y unas estructuras
diferentes. Además, cada lenguaje está enfocado a la programación de tareas o áreas
determinadas. Por ello, la elección del lenguaje a utilizar en un proyecto es una cuestión de
extrema importancia.
Los lenguajes de programación han sufrido su propia evolución, como se puede apreciar en la
figura siguiente:
Lenguaje máquina:
Sus instrucciones son combinaciones de unos y ceros.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 13/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Lenguaje ensamblador:
Sustituyó al lenguaje máquina para facilitar la labor de programación.
En lugar de unos y ceros se programa usando mnemotécnicos (instrucciones
complejas).
Necesita traducción al lenguaje máquina para poder ejecutarse.
Sus instrucciones son sentencias que hacen referencia a la ubicación física de los
archivos en el equipo.
Es difícil de utilizar.
Lenguajes visuales:
Están sustituyendo a los lenguajes de alto nivel basados en código.
En lugar de sentencias escritas, se programa gráficamente usando el ratón y
diseñando directamente la apariencia del software.
Su correspondiente código se genera automáticamente.
Necesitan traducción al lenguaje máquina.
Son completamente portables de un equipo a otro.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 14/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
CONCEPTO
CARACTERÍSTICAS
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 16/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Sentencias secuenciales.
Sentencias selectivas (condicionales).
Sentencias repetitivas (iteraciones o bucles).
La programación estructurada fue de gran éxito por su sencillez a la hora de construir y leer
programas. Fue sustituida por la programación modular, que permitía dividir los programas
grandes en trozos más pequeños (siguiendo la conocida técnica "divide y vencerás"). A su vez,
luego triunfaron los lenguajes orientados a objetos y de ahí a la programación visual (siempre es
más sencillo programar gráficamente que en código, ¿no crees? ).
INCONVENIENTES
Todo el programa se concentra en un único bloque (si se hace demasiado grande es difícil
manejarlo).
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 17/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
No permite reutilización eficaz de código, ya que todo va "en uno". Es por esto que a la
programación estructurada le sustituyó la programación modular, donde los programas se
codifican por módulos y bloques, permitiendo mayor funcionalidad.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 18/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
A pesar de eso, alrededor del 55% del software que producen las
empresas se hace usando esta técnica.
Razones:
El código es reutilizable.
Si hay algún error, es más fácil de localizar y depurar en un objeto
que en un programa entero.
Scott Schram.. Logo Java. (CC
BY)
Características:
Los objetos del programa tendrán una serie de atributos que los diferencian unos de otros.
Se define clase como una colección de objetos con características similares.
Mediante los llamados métodos, los objetos se comunican con otros produciéndose un
cambio de estado de los mismos.
Los objetos son, pues, como unidades individuales e indivisibles que forman la base de
este tipo de programación.
Principales lenguajes orientados a objetos: Ada, C++, VB.NET, Delphi, Java, PowerBuilder, etc.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 19/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 20/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Ya hemos visto en puntos anteriores que debemos elegir un modelo de ciclo de vida para el
desarrollo de nuestro software.
Independientemente del modelo elegido, siempre hay una serie de etapas que debemos seguir
para construir software fiable y de calidad.
1. ANÁLISIS DE REQUISITOS.
Se especifican los requisitos funcionales y no funcionales del sistema.
2. DISEÑO.
Se divide el sistema en partes y se determina la función de cada una.
3. CODIFICACIÓN.
Se elige un Lenguajes de Programación y se codifican los programas.
4. PRUEBAS.
Se prueban los programas para detectar errores y se depuran.
5. DOCUMENTACIÓN.
De todas las etapas, se documenta y guarda toda la información.
6. EXPLOTACIÓN.
Instalamos, configuramos y probamos la aplicación en los equipos del cliente.
7. MANTENIMIENTO.
Se mantiene el contacto con el cliente para actualizar y modificar la aplicación el futuro.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 21/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Autoevaluación
¿Crees que debemos esperar a tener completamente cerrada una etapa para
pasar a la siguiente?
Sí.
No.
Incorrecto. Recuerda que hay que dejar siempre una "puerta abierta" para
volver atrás e introducir modificaciones.
Solución
1. Incorrecto
2. Opción correcta
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 22/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.1.- Análisis.
Esta es la primera fase del proyecto. Una vez finalizada,
pasamos a la siguiente (diseño).
Requisitos:
Funcionales: Qué funciones tendrá que realizar la aplicación. Qué respuesta dará la
aplicación ante todas las entradas. Cómo se comportará la aplicación en situaciones
inesperadas.
No funcionales: Tiempos de respuesta del programa, legislación aplicable, tratamiento
ante la simultaneidad de peticiones, etc.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 23/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Como ejemplo de requisitos funcionales, en la aplicación para nuestros clientes de las tiendas
de cosmética, habría que considerar:
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 24/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.2.- Diseño.
Caso práctico
Decide hablar con Ada. Su supervisora, amable como siempre, le sugiere que
empiece a dividir el problema en las partes implicadas.
Design is not just what it looks like and feels like. Design is how it
works.
Steve Jobs ("El diseño no es sólo lo que parece y cómo parece.
Diseño es cómo se trabaja").
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 25/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Reflexiona
Según estimaciones, las organizaciones y empresas que crecen más son las que
más dinero invierten en sus diseños.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 26/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
El código objeto no es directamente inteligible por el ser humano, pero tampoco por la
computadora. Es un código intermedio entre el código fuente y el ejecutable y sólo existe
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 27/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 28/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Juan y María ya han decidido el Lenguajes de
Programación que van a utilizar.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 29/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.4.1.- Fuente.
El código fuente es el conjunto de instrucciones que la computadora deberá realizar, escritas
por los programadores en algún lenguaje de alto nivel. Este conjunto de instrucciones no es
directamente ejecutable por la máquina, sino que deberá ser traducido al lenguaje máquina, que
la computadora será capaz de entender y ejecutar.
Un aspecto importante a tener en cuenta es su licencia. Así, en base a ella, podemos distinguir
dos tipos de código fuente:
Código fuente abierto. Es aquel que está disponible para que cualquier usuario pueda
estudiarlo, modificarlo o reutilizarlo.
Código fuente cerrado. Es aquel que no tenemos permiso para editarlo.
Autoevaluación
Para obtener código fuente a partir de toda la información necesaria del
problema:
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 30/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Muy bien. El diseño del algoritmo (los pasos a seguir) nos ayudará a que la
codificación posterior se realice más rápidamente y tenga menos errores.
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 31/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.4.2.- Objeto.
El código objeto es un código intermedio. Es el resultado de traducir código fuente a un código
equivalente formado por unos y ceros que aún no puede ser ejecutado directamente por la
computadora. Es decir, es el código resultante de la compilación del código fuente. Consiste en
un bytecode (código binario) que está distribuido en varios archivos, cada uno de los cuales
corresponde a cada programa fuente compilado.
Sólo se genera código objeto una vez que el código fuente está libre de
errores sintácticos y semánticos.
El proceso de traducción de código fuente a código objeto puede realizarse de dos formas:
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 32/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.4.3.- Ejecutable.
El código ejecutable, resultado de enlazar los archivos de código objeto, consta de un único
archivo que puede ser directamente ejecutado por la computadora. No necesita ninguna
aplicación externa. Este archivo es ejecutado y controlado por el sistema operativo.
Para obtener un sólo archivo ejecutable, habrá que enlazar todos los archivos de código objeto,
a través de un software llamado linker (enlazador) y obtener así un único archivo que ya sí
es ejecutable directamente por la computadora.
Autoevaluación
Relaciona los tipos de código con su característica más relevante,
escribiendo el número asociado a la característica en el hueco
correspondiente.
Ejercicio de relacionar
Tipo de
Relación. Características.
código.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 33/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Tipo de
Relación. Características.
código.
Enviar
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 34/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Reservar memoria para los objetos que se crean y liberar la memoria no utilizada.
La máquina virtual aísla la aplicación de los detalles físicos del equipo en cuestión.
Cuando el código fuente se compila se obtiene código objeto (bytecode, código
intermedio). Para ejecutarlo en cualquier máquina se requiere tener independencia
respecto al hardware concreto que se vaya a utilizar. La máquina virtual funciona como
una capa de software de bajo nivel y actúa como puente entre el bytecode de la aplicación
y los dispositivos físicos del sistema.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 35/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.5.1.- Frameworks.
Un framework es una estructura de ayuda al programador,
en base a la cual podemos desarrollar proyectos sin partir desde
cero. Se trata de una plataforma software donde están definidos
programas soporte, bibliotecas, lenguaje interpretado, etc., que
ayuda a desarrollar y unir los diferentes módulos o partes de un
proyecto.
Inconvenientes:
Gran dependencia del código respecto al framework utilizado (sin cambiamos de
framework, habrá que reescribir gran parte de la aplicación).
La instalación e implementación del framework en nuestro equipo consume
bastantes recursos del sistema.
Características de frameworks.
Ejemplos de Frameworks:
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 36/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Debes conocer
El proceso de instalación y configuración del framework Spring de Java, así como
varios ejemplos de uso. En el siguiente enlace encontrarás una guía muy útil
detallando los pasos a seguir:
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 37/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Enlazar los archivos del programa con las bibliotecas existentes y con los subprogramas
creados. Considerando que las bibliotecas son el conjunto de subprogramas que sirven
para desarrollar o comunicar componentes software pero que ya existen previamente y los
subprogramas serán aquellos que hemos creado a propósito para el programa.
El entorno de ejecución está formado por la máquina virtual y los API's (bibliotecas de
clases estándar, necesarias para que la aplicación, escrita en algún Lenguaje de
Programación, pueda ser ejecutada). Estos dos componentes se suelen distribuir
conjuntamente, porque necesitan ser compatibles entre sí.
Autoevaluación
Señala la afirmación falsa respecto de los entornos de ejecución:
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 38/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Solución
1. Opción correcta
2. Incorrecto
3. Incorrecto
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 39/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Concepto
Se denomina JRE al Java Runtime Environment (entorno en fsse8info.. Apariencia del JRE. (CC BY-SA)
tiempo de ejecución Java).
Componentes
Una máquina virtual Java (JMV o JVM si consideramos las siglas en inglés), que es el
programa que interpreta el código de la aplicación escrito en Java.
Las dos: JMV y API de Java son consistentes entre sí, por ello son distribuidas
conjuntamente.
Debes conocer
El proceso de descarga, instalación y configuración del entorno de ejecución de
programas para Windows y/o Linux
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 40/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 41/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.6.- Pruebas.
Caso práctico
María reúne todos los códigos diseñados y los
prepara para implementarlos en el equipo del
cliente.
Una vez obtenido el software, la siguiente fase del ciclo de vida es la realización de pruebas.
Normalmente, éstas se realizan sobre un conjunto de datos de prueba, que consisten en un
conjunto seleccionado y predefinido de datos límite a los que la aplicación es sometida.
Entre todas las pruebas que se efectúan sobre el software podemos distinguir básicamente:
PRUEBAS UNITARIAS
PRUEBAS DE INTEGRACIÓN
Se realizan una vez que se han realizado con éxito las pruebas unitarias y consistirán en
comprobar el funcionamiento del sistema completo: con todas sus partes interrelacionadas.
La prueba final se denomina comúnmente Beta Test, ésta se realiza sobre el entorno de
producción donde el software va a ser utilizado por el cliente (a ser posible, en los equipos del
cliente y bajo un funcionamiento normal de su empresa).
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 42/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Autoevaluación
Si las pruebas unitarias se realizan con éxito, ¿es obligatorio realizar las de
integración?
Solución
1. Incorrecto
2. Opción correcta
Tipos de Pruebas
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 43/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.7.- Documentación.
Caso práctico
Ada ha quedado dentro de dos días con su cliente.
Pregunta a María por todos los dossiers de
documentación. La pálida expresión de la joven
hace que Ada arda en desesperación: "—¿No
habéis documentado las etapas? ¿Cómo voy a
explicarle al cliente y sus empleados el
funcionamiento del software? ¿Cómo vamos a
realizar su mantenimiento?".
¿Por qué hay que documentar todas las fases del proyecto? Para dar toda la información a los
usuarios de nuestro software y poder acometer futuras revisiones del proyecto.
Tenemos que ir documentando el proyecto en todas las fases del mismo, para pasar de una a
otra de forma clara y definida. Una correcta documentación permitirá la reutilización de parte de
los programas en otras aplicaciones, siempre y cuando se desarrollen con diseño modular.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 44/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Descripción de
la funcionalidad
de la
aplicación.
Forma de
comenzar a
ejecutar la Toda la información
El diseño de la
aplicación. necesaria para:
aplicación.
Ejemplos de
Quedan La codificación de Puesta en marcha.
uso del
reflejados: los programas. Explotación.
programa.
Las pruebas Seguridad del
Requerimientos
realizadas.
software de la sistema.
aplicación.
Solución de los
posibles
problemas que
se pueden
presentar.
Al personal informático
responsable de la
¿A quién Al personal técnico en A los usuarios que
instalación, en
va informática (analistas y van a usar la
colaboración con los
dirigido? programadores). aplicación (clientes).
usuarios que van a usar la
aplicación (clientes).
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 45/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.8.- Explotación.
Caso práctico
Llega el día de la cita con la cadena hotelera. Ada y Juan se dirigen al hotel donde
se va a instalar y configurar la aplicación. Si todo va bien, se irá implementando
en los demás hoteles de la cadena.
Ada no quiere que se le pase ni un detalle: lleva consigo la guía de uso y la guía
de instalación.
Después de todas las fases anteriores, una vez que las pruebas nos demuestran que el
software es fiable, carece de errores y hemos documentado todas las fases, el siguiente paso
es la explotación. Aunque diversos autores consideran la explotación y el mantenimiento como
la misma etapa, nosotros vamos a diferenciarlas en base al momento en que se realizan.
En este momento, se suelen llevan a cabo las Beta Test, que son las últimas pruebas que
se realizan en los propios equipos del cliente y bajo cargas normales de trabajo.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 46/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Reflexiona
Realizas un proyecto software por vez primera y no te das cuenta de
documentarlo. Consigues venderlo a buen precio a una empresa. Al cabo de un
par de meses te piden que actualices algunas de las funciones, para tener mayor
funcionalidad. Estás contento o contenta porque eso significa un ingreso extra. Te
paras un momento...¿Dónde están los códigos? ¿Qué hacía exactamente la
aplicación? ¿Cómo se diseñó? No lo recuerdas... Probablemente hayas perdido
un ingreso extra y unos buenos clientes.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 47/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
5.9.- Mantenimiento.
Caso práctico
Sería lógico pensar que con la entrega de nuestra aplicación (la instalación y configuración de
nuestro proyecto en los equipos del cliente) hemos terminado nuestro trabajo. En cualquier otro
sector laboral esto es así, pero el caso de la construcción de software es muy diferente.
Los tipos de cambios que hacen necesario el mantenimiento del software son los siguientes:
Autoevaluación
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 48/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
El análisis de requisitos.
La codificación.
Las pruebas y documentación.
La explotación y el mantenimiento.
Solución
1. Opción correcta
2. Incorrecto
3. Incorrecto
4. Incorrecto
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 49/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Todos en la empresa están sorprendidos del entusiasmo de Ana ante los nuevos
proyectos que BK programación tiene por delante. Juan, que acabó el Ciclo
Superior de Desarrollo de Aplicaciones Informáticas (DAI) hace algunos años, se
muestra inquieto porque es consciente de que en sólo unos cuatro años han
salido muchas herramientas nuevas en el mercado y necesita reciclarse. Escucha
a Ana decir que está estudiando los entornos de desarrollo.
Una de ellas era la fase de codificación, en la cual se hacía uso de algún lenguaje de
programación para pasar todas las acciones que debía llevar a cabo la aplicación a algún
lenguaje que la máquina fuera capaz de entender y ejecutar.
Los primeros entornos de desarrollo integrados nacieron a principios de los años 70, y se
popularizaron en la década de los 90. Tienen el objetivo de ganar fiabilidad y tiempo en los
proyectos de software. Proporcionan al programador una serie de componentes con la misma
interfaz gráfica, con la consiguiente comodidad, aumento de eficiencia y reducción de tiempo de
codificación.
En este tema, nuestro interés se centra en conocer los entornos de desarrollo, los tipos, en
función de su licencia y del lenguaje de programación hacia el cual están enfocados.
Instalaremos NetBeans bajo Ubuntu y veremos cómo se configura y cómo se generan
ejecutables, haciendo uso de sus componentes y herramientas.
Reflexiona
Según datos, casi todas las personas que empiezan a programar utilizan un editor
simple de textos y un compilador-depurador instalado en su equipo. Sin embargo,
prácticamente todas acaban utilizando un entorno de desarrollo.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 51/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Éste primer IDE estaba basado en consola de comandos exclusivamente (normal por otro lado,
si tenemos en cuenta que hasta la década de los 90 no entran en el mercado los sistemas
operativos con interfaz gráfica). Sin embargo, el uso que hace de la gestión de archivos,
compilación y depuración; es perfectamente compatible con los IDE actuales.
A nivel popular, el primer IDE puede considerarse que fue el IDE llamado Maestro. Nació a
principios de los 70 y fue instalado por unos 22.000 programadores en todo el mundo. Lideró
este campo durante los años 70 y 80.
El uso de los entornos integrados de desarrollo se ratifica y afianza en los 90 y hoy en día
contamos con infinidad de IDE, tanto de licencia libre como no.
Microsoft Visual
Basic, C/C++, C#. Propietario.
Studio.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 52/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Juan, que asume por fin su
desconocimiento, habla con Ana para
que le pase sus apuntes de entornos de
desarrollo. Ésta se muestra encantada,
y le anima a matricularse al ciclo de
Desarrollo de Apliaciones
Multiplataforma (DAM) a distancia. Juan
se muestra reacio (ya he estudiado el
ciclo y durante cuatro años he cumplido
con éxito en la empresa). Pero piensa
que quizás debería reciclarse si no quiere quedarse atrás en los proyectos Juan
aprendió a programar usando un editor simple de textos, ¿qué ventajas tendrá
programando con un IDE?
Como sabemos, los entornos de desarrollo están compuestos por una serie de herramientas
software de programación, necesarias para la consecución de sus objetivos. Estas herramientas
son:
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 53/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Autoevaluación
Un entorno integrado de desarrollo está compuesto por:
Solución
1. Incorrecto
2. Incorrecto
3. Opción correcta
4. Incorrecto
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 54/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Juan ha buscado por Internet distintos entornos de
desarrollo para aplicarlos en la fase de codificación.
No hay que pagar por ellos, y aunque los más conocidos y utilizados son Eclipse y NetBeans,
hay bastantes más.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 55/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Tipos de entornos de desarrollo propietarios jongalloway.. Microsoft Visual Studio. (CC BY-NC-
más relevantes en la actualidad. SA)
Lenguajes que
IDE Sistema Operativo
soporta
Autoevaluación
Relaciona los siguientes entornos de desarrollo con sus características,
escribiendo el número asociado a la característica en el hueco
correspondiente.
Ejercicio de relacionar
Entorno de
Relación Características.
desarrollo.
Enviar
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 57/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Caso práctico
Juan aprendió a programar utilizando un editor de
textos, un compilador y un depurador. Todas estas
herramientas se instalaban de forma
independiente. A Ana le cuesta creer que los
programadores tuvieran que buscar estas
herramientas e instalarlas por separado. –En un
entorno se integran todas estas cosas y muchas
más, y sin salir del mismo puedes programar en
varios lenguajes y puedes documentar y…. —Ya lo veo, —le replica Juan—.
¿Cuántos componentes tiene el entorno en total?
Los entornos de desarrollo, ya sean libres o propietarios, están formados por una serie de
componentes software que determinan sus funciones.
Interfaz gráfica: Nos brinda la oportunidad de programar en varios lenguajes con un mismo
IDE. Es una interfaz agradable que puede acceder a innumerables bibliotecas y plugins,
aumentando las opciones de nuestros programas.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 58/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
En el siguiente enlace accederás a una página web donde se detallan todos los
componentes del entorno de desarrollo, junto con sus funciones.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 59/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
MODELOS DE CICLO DE
VIDA: https://www.incibe.es/file/N85W1ZWFHifRgUc_oY8_Xg
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 60/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Las sentencias secuenciales son aquellas que se ejecutan una detrás de la otra, según el orden
en que hayan sido escritas.
Ejemplo en lenguaje C:
Son aquellas en las que se evalúa una condición. Si el resultado de la condición es verdad es
ejecutan una serie de acción o acciones y si es falso se ejecutan otras.
<strong>then</strong> → Todas las acciones que se encuentren tras esta palabra reservada se
ejecutarán si la condición del if es cierta (en C, se omite esta palabra).
<strong>else</strong> → Todas las acciones que se encuentren tras esta otra palabra
reservada se ejecutarán si la condición de if es falsa.
Ejemplo en lenguaje C:
if (a >= b)
c= a-b;
else
c=a+b;
Un bucle iterativo de una serie de acciones harán que éstas se repitan mientras o hasta que una
determinada condición sea falsa (o verdadera).
while → marca el comienzo del bucle y va seguido de la condición de parada del mismo.
do → a partir de esta palabra reservada, se encontrarán todas las acciones a ejecutar mientras
se ejecute el bucle (en C, se omite esta palabra).
done → marca el fin de las acciones que se van a repetir mientras estemos dentro del bucle (en
C, se omite esta palabra).
Ejemplo en lenguaje C:
int num;
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 61/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
num = 0;
while (num<=10) { printf("Repetición numero %d
", num);
num = num + 1;
};
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 62/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Historial de actualizaciones
Ubicación: Se arregla el término Validación del glosario que no funcionaba en el punto 5.6.
Se añaden más enlac
Mejora (tipo 1): Se arregla el término Validación del glosario que no funcionaba en el punto
5.6. Se añaden más enlaces de refuerzo y ampliación en el punto 6.
Ubicación: Se arregla el término Validación del glosario que no funcionaba en el punto 5.6.
Se añaden más enlac
Mejora (tipo 1): Se arregla el término Validación del glosario que no funcionaba en el punto
5.6. Se añaden más enlaces de refuerzo y ampliación en el punto 6.
Ubicación: Todo
Mejora (tipo 1): Incluir licencias en las imágenes y quitar Anexo de licencias.
Ubicación: No especificada.
Mejora (tipo 2): Incluir la parte teórica de los entornos de desarrollo que estaba en la unidad
2. Tabla con todos los entornos y sus características más importantes
Ubicación: Arreglo de enlaces y añadir términos del glosario
Mejora (tipo 1): Arreglo de enlaces y añadir términos del glosario
Ubicación: Arreglo de enlaces y añadir términos del glosario
Mejora (tipo 1): Arreglo de enlaces y añadir términos del glosario
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 63/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
Mejora (tipo 1): Corrección de la ortografía y reestruccturación del texto para mejorar la
comprensión lectora del documento.
Ubicación: Otros materiales
Mejora (tipo 1): Actualización del mapa conceptual
Ubicación: Varias Ubicaciones
Mejora (tipo 2): Incorporación de nuevos para saber mas. Corrección de formatos,
eliminación de texto redundante, corrección de diversos formatos.
Ubicación: Arreglo de enlaces y añadir términos del glosario
Mejora (tipo 1): Arreglo de enlaces y añadir términos del glosario
Versión: 01.00.04 Fecha subida: 27/11/14 Autoría: Antonio José López Jiménez
Versión: 01.00.03 Fecha subida: 02/10/14 Autoría: Antonio José López Jiménez
Versión: 01.00.02 Fecha subida: 30/09/14 Autoría: Antonio José López Jiménez
Versión: 01.00.01 Fecha subida: 21/04/14 Autoría: Antonio José López Jiménez
Mejora: No especificada.
Mejora: No especificada.
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 64/65
20/10/2017 https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088
https://educacionadistancia.juntadeandalucia.es/cursos/blocks/recopila/recopila.php?id=7088 65/65