Professional Documents
Culture Documents
Desarrollo de software.
Caso prctico
En BK Programacin todos han vuelto ya de sus vacaciones.
Les espera un septiembre agitado, pues acaban de recibir una peticin por parte de una cadena
hotelera para desarrollar un proyecto software.
Ana, cuya especialidad es el diseo grfico de pginas web, acaba de terminar el Ciclo de Grado
Medio en Sistemas Microinformticos y Redes y realiz la FCT en BK Programacin. Trabaja en la
empresa ayudando en los diseos, y aunque est contenta con su trabajo, le gustara participar
activamente en todas las fases en el proyecto. El problema es que carece de los conocimientos
necesarios.
Le comenta sus planes a su amigo Antonio (que tiene conocimientos bsicos de informtica), y ste
se une a ella.
1 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Caso prctico
Todos en la empresa estn entusiasmados con el proyecto que tienen
entre manos. Saben que lo ms importante es planificarlo todo de
antemano y elegir el tipo de software ms adecuado. Ana les escucha
hablar y no llega a entender por qu hablan de "tipos de software". Acaso
el software no era la parte lgica del ordenador, sin ms? Cules son los
tipos de software?
Segn su funcin se distinguen tres tipos de software: sistema operativo, software de programacin y
aplicaciones.
El sistema operativo es el software base que ha de estar instalado y configurado en nuestro ordenador para que
las aplicaciones puedan ejecutarse y funcionar. Son ejemplos de sistemas operativos: Windows, Linux,
Mac OS X ...
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 aplicacin informtica.
Tambin aprenders a distinguir los diferentes lenguajes de programacin y los procesos que ocurren hasta que
el programa funciona y realiza la accin deseada.
Para saber ms
En el siguiente enlace encontrars ms informacin de los tipos de software existente, as como
ejemplos de cada uno que te ayudarn a profundizar sobre el tema.
2 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Reflexiona
Hay varios sistemas operativos en el mercado: Linux, Windows, Mac OS X etc. El ms conocido es
Windows. A pesar de eso, por qu utilizamos cada vez ms Linux?
3 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Caso prctico
Despus de saber ya diferenciar los distintos tipos de software,
Ana se le plantea otra cuestin: El software, sea del tipo que
sea, se ejecuta sobre los dispositivos fsicos del ordenador.
Qu relacin hay entre ellos?
Como sabemos, al conjunto de dispositivos fsicos que conforman un ordenador se le denomina hardware.
Existe una relacin indisoluble entre ste y el software, ya que necesitan estar instalados y configurados
correctamente para que el equipo funcione.
Todas las aplicaciones necesitan recursos hardware durante su ejecucin (tiempo de CPU, espacio en
memoria RAM, tratamiento de interrupciones, gestin de los dispositivos de Entrada/Salida, etc.).
Ser siempre el sistema operativo el encargado de controlar todos estos aspectos de manera "oculta" para
las aplicaciones (y para el usuario).
Hay multitud de lenguajes de programacin diferentes (como ya veremos en su momento). Sin embargo,
todos tienen algo en comn: estar escritos con sentencias de un idioma que el ser humano puede aprender
y usar fcilmente. Por otra parte, el hardware de un ordenador slo es capaz de interpretar seales
elctricas (ausencias o presencias de tensin) que, en informtica, se traducen en secuencias de 0 y 1
(cdigo binario).
Esto nos hace plantearnos una cuestin: Cmo 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 traduccin de cdigo) para
que el ordenador ejecute las instrucciones escritas en un lenguaje de programacin.
Autoevaluacin
Para fabricar un programa informtico que se ejecuta en una computadora:
Hay que escribir las instrucciones en cdigo binario para que las entienda el hardware.
Slo es necesario escribir el programa en algn lenguaje de programacin y se ejecuta
directamente.
4 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Hay que escribir el programa en algn Lenguaje de Programacin y contar con herramientas
software que lo traduzcan a cdigo binario.
Los programas informticos no se pueden escribir: forman parte de los sistemas operativos.
5 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Caso prctico
En BK programacin ya estn manos a la obra. Ada rene a toda
su plantilla para desarrollar el nuevo proyecto.
Ella sabe mejor que nadie que no ser sencillo y que habr que
pasar por una serie de etapas. Ana no quiere perderse la
reunin, quiere descubrir por qu hay que tomar tantas
anotaciones y tantas molestias antes incluso de empezar.
El proceso de desarrollo, que en un principio puede parecer una tarea simple, consta de una serie de pasos de
obligado cumplimiento, pues slo 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 veremos con ms detenimiento a lo largo de la unidad, el desarrollo de software es un proceso que
conlleva una serie de pasos. Genricamente, estos pasos son los siguientes:
Como vamos a ver en el siguiente punto, segn el orden y la forma en que se lleven a cabo las etapas hablaremos
de diferentes ciclos de vida del software.
La construccin de software es un proceso que puede llegar a ser muy complejo y que exige gran
coordinacin y disciplina del grupo de trabajo que lo desarrolle.
Reflexiona
Segn estimaciones, el 26% de los grandes proyectos de software fracasan, el 48% deben
modificarse drsticamente y slo el 26% tienen rotundo xito. La principal causa del fracaso de un
proyecto es la falta de una buena planificacin de las etapas y mala gestin de los pasos a seguir.
Por qu el porcentaje de fracaso es tan grande? Por qu piensas que estas causas son tan
determinantes?
6 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Diversos autores han planteado distintos modelos de ciclos de vida, pero los
ms conocidos y utilizados son los que aparecen a continuacin:
Es prcticamente imposible que se pueda utilizar, ya que requiere conocer de antemano todos los
requisitos del sistema. Slo es aplicable a pequeos desarrollos, ya que las etapas pasan de una a otra sin
retorno posible. (se presupone que no habr errores ni variaciones del software).
Es el modelo perfecto si el proyecto es rgido (pocos cambios, poco evolutivo) y los requisitos estn
claros.
7 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Autoevaluacin
Si queremos construir una aplicacin pequea, y se prev que no sufrir grandes cambios
durante su vida, sera el modelo de ciclo de vida en espiral el ms recomendable?
S.
No.
8 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
En el diseo del proyecto, en la codificacin de nuestro diseo a partir de su apariencia visual, deteccin de
errores
El desarrollo rpido de aplicaciones o RAD es un proceso de desarrollo de software que comprende el desarrollo
iterativo, la construccin de prototipos y el uso de utilidades CASE. Hoy en da se suele utilizar para referirnos al
desarrollo rpido de interfaces grficas de usuario o entornos de desarrollo integrado completos.
La tecnologa CASE trata de automatizar las fases del desarrollo de software para que mejore la calidad del
proceso y del resultado final.
CLASIFICACIN
Normalmente, las herramientas CASE se clasifican en funcin 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
Para saber ms
En el siguiente enlace se presenta una ampliacin de los tipos y ayudas concretas de la herramientas
CASE.
9 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Caso prctico
Una de los aspectos del proyecto que ms preocupa a Ada es la
eleccin del lenguaje de programacin a utilizar.
Ya dijimos anteriormente que los programas informticos estn escritos usando algn lenguaje de programacin.
Por tanto, podemos definir un Lenguaje de Programacin como un idioma creado de forma artificial, formado por
un conjunto de smbolos y normas que se aplican sobre un alfabeto para obtener un cdigo, que el hardware de la
computadora pueda entender y ejecutar.
Los lenguajes de programacin son los que nos permiten comunicarnos con el hardware del
ordenador.
En otras palabras, es muy importante tener muy clara la funcin de los lenguajes de programacin. Son los
instrumentos que tenemos para que el ordenador realice las tareas que necesitamos.
Hay multitud de lenguajes de programacin, cada uno con unos smbolos y unas estructuras diferentes. Adems,
cada lenguaje est enfocado a la programacin de tareas o reas determinadas. Por ello, la eleccin del lenguaje
a utilizar en un proyecto es una cuestin de extrema importancia.
Los lenguajes de programacin han sufrido su propia evolucin, como se puede apreciar en la figura siguiente:
Lenguaje mquina:
Sus instrucciones son combinaciones de unos y ceros.
Es el nico lenguaje que entiende directamente el ordenador. (No necesita traduccin).
Fue el primer lenguaje utilizado.
Es nico para cada procesador (no es portable de un equipo a otro).
Hoy da nadie programa en este lenguaje.
Lenguaje ensamblador:
Sustituy al lenguaje mquina para facilitar la labor de programacin.
En lugar de unos y ceros se programa usando mnemotcnicos (instrucciones complejas).
Necesita traduccin al lenguaje mquina para poder ejecutarse.
Sus instrucciones son sentencias que hacen referencia ala ubicacin fsica de los archivos en el
equipo.
Es difcil de utilizar.
Lenguaje de alto nivel basados en cdigo:
Sustituyeron al lenguaje ensamblador para facilitar ms la labor de programacin.
En lugar de mnemotcnicos, se utilizan sentencias y rdenes derivadas del idioma ingls. (Necesita
traduccin al lenguaje mquina).
Son ms cercanos al razonamiento humano.
Son utilizados hoy da, aunque la tendencia es que cada vez menos.
Lenguajes visuales:
Estn sustituyendo a los lenguajes de alto nivel basados en cdigo.
10 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Para saber ms
En el siguiente enlace, vers la evolucin entre los distintos tipos de Lenguajes de Programacin en la
historia.
11 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
CONCEPTO
CARACTERSTICAS
Podemos clasificar los distintos tipos de Lenguajes de Programacin en base a distintas caractersticas:
A pesar de la inmensa cantidad de lenguajes de programacin existentes, Java, C, C++, PHP y Visual
Basic concentran alrededor del 60% del inters de la comunidad informtica mundial.
Para saber ms
En la pgina web siguiente encontrars un resumen de las caractersticas de los Lenguajes de
Programacin ms utilizados en la actualidad.
12 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Sentencias secuenciales.
Sentencias selectivas (condicionales).
Sentencias repetitivas (iteraciones o bucles).
Los lenguajes de programacin que se basan en la programacin estructurada reciben el nombre de lenguajes de
programacin estructurados.
Para saber ms
En el siguiente enlace encontrars un breve documento donde se explica para qu sirve cada
sentencia de control con unos sencillos ejemplos escritos usando el lenguaje C.
La programacin estructurada fue de gran xito por su sencillez a la hora de construir y leer programas. Fue
sustituida por la programacin modular, que permita dividir los programas grandes en trozos ms pequeos
(siguiendo la conocida tcnica "divide y vencers"). A su vez, luego triunfaron los lenguajes orientados a objetos y
de ah a la programacin visual (siempre es ms sencillo programar grficamente que en cdigo, no crees? ).
INCONVENIENTES
Todo el programa se concentra en un nico bloque (si se hace demasiado grande es difcil manejarlo).
No permite reutilizacin eficaz de cdigo, ya que todo va "en uno". Es por esto que a la programacin
estructurada le sustituy la programacin modular, donde los programas se codifican por mdulos y
bloques, permitiendo mayor funcionalidad.
13 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Los lenguajes de programacin orientados a objetos tratan a los programas no como un conjunto ordenado de
instrucciones (tal como suceda en la programacin estructurada) sino como un conjunto de objetos que colaboran
entre ellos para realizar acciones.
A pesar de eso, alrededor del 55% del software que producen las empresas se hace
usando esta tcnica.
Razones:
El cdigo es reutilizable.
Si hay algn error, es ms fcil de localizar y depurar en un objeto que en un
programa entero.
Caractersticas:
Los objetos del programa tendrn una serie de atributos que los diferencian
unos de otros.
Se define clase como una coleccin de objetos con caractersticas similares.
Mediante los llamados mtodos, los objetos se comunican con otros producindose un cambio de estado
de los mismos.
Los objetos son, pues, como unidades individuales e indivisibles que forman la base de este tipo de
programacin.
Principales lenguajes orientados a objetos: Ada, C++, VB.NET, Delphi, Java, PowerBuilder, etc.
Para saber ms
En el siguiente enlace hay un documento muy interesante de introduccin a la programacin orientada
a objetos, en concreto, del lenguaje C++.
14 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Caso prctico
En la reunin de BK acerca del nuevo proyecto Ada, la
supervisora, dej bien claro que lo primero y ms importante es
tener claro qu queremos que haga el software y con qu
herramientas contamos: lo dems vendra despus, ya que si
esto no est bien planteado, ese error se propagar a todas las
fases del proyecto.
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. ANLISIS DE REQUISITOS.
Se especifican los requisitos funcionales y no funcionales del sistema.
2. DISEO.
Se divide el sistema en partes y se determina la funcin de cada una.
3. CODIFICACIN.
Se elige un Lenguajes de Programacin y se codifican los programas.
4. PRUEBAS.
Se prueban los programas para detectar errores y se depuran.
5. DOCUMENTACIN.
De todas las etapas, se documenta y guarda toda la informacin.
6. EXPLOTACIN.
Instalamos, configuramos y probamos la aplicacin en los equipos del cliente.
7. MANTENIMIENTO.
Se mantiene el contacto con el cliente para actualizar y modificar la aplicacin el futuro.
Autoevaluacin
Crees que debemos esperar a tener completamente cerrada una etapa para pasar a la
siguiente?
S.
No.
15 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.1.- Anlisis.
Esta es la primera fase del proyecto. Una vez finalizada, pasamos a la
siguiente (diseo).
Requisitos:
Funcionales: Qu funciones tendr que realizar la aplicacin. Qu respuesta dar la aplicacin ante todas
las entradas. Cmo se comportar la aplicacin en situaciones inesperadas.
No funcionales: Tiempos de respuesta del programa, legislacin aplicable, tratamiento ante la
simultaneidad de peticiones, etc.
Lo fundamental es la buena comunicacin entre el analista y el cliente para que la aplicacin que se va a
desarrollar cumpla con sus expectativas.
Todo aquello que no se detecte, o resulte mal entendido en la etapa inicial provocar un
fuerte impacto negativo en los requisitos, propagando esta corriente degradante a lo
largo de todo el proceso de desarrollo e incrementando su perjuicio cuanto ms
tarda sea su deteccin (Bell y Thayer 1976)(Davis 1993).
Como ejemplo de requisitos funcionales, en la aplicacin para nuestros clientes de las tiendas de cosmtica,
habra que considerar:
16 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.2.- Diseo.
Caso prctico
Juan est agobiado por el proyecto. Ya han mantenido
comunicaciones con el cliente y saben perfectamente qu debe
hacer la aplicacin. Tambin tiene una lista de las caractersticas
hardware de los equipos de su cliente y todos los requisitos.
Tiene tanta informacin que no sabe por dnde empezar.
Durante esta fase, donde ya sabemos lo que hay que hacer, el siguiente
paso es Cmo hacerlo?
Design is not just what it looks like and feels like. Design is how it works.
Steve Jobs ("El diseo no es slo lo que parece y cmo parece. Diseo es cmo se
trabaja").
Reflexiona
Segn estimaciones, las organizaciones y empresas que crecen ms son las que ms dinero invierten
en sus diseos.
17 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Caso prctico
En BK, ya tienen el proyecto dividido en partes.
Consiste en elegir un determinado lenguaje de programacin, codificar toda la informacin anterior y llevarlo a
cdigo fuente.
Esta tarea la realiza el programador y tiene que cumplir exhaustivamente con todos los datos
impuestos en el anlisis y en el diseo de la aplicacin.
Cdigo Ejecutable: Es el cdigo binario resultante de enlazar los archivos de cdigo objeto con ciertas
rutinas y bibliotecas necesarias. El sistema operativo ser el encargado de cargar el cdigo
ejecutable en memoria RAM y proceder a ejecutarlo. Tambin es conocido como cdigo mquina y ya s
es directamente inteligible por la computadora.
Los programas interpretados no producen cdigo objeto. El paso de fuente a ejecutable es directo.
18 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Caso prctico
Juan y Mara ya han decidido el Lenguajes de Programacin que
van a utilizar.
Saben que el programa que realicen pasar por varias fases antes
de ser implementado en los equipos del cliente. Todas esas
fases van a producir transformaciones en el cdigo. Qu
caractersticas ir adoptando el cdigo a medida que avanza por
el proceso de codificacin?
19 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.4.1.- Fuente.
El cdigo fuente es el conjunto de instrucciones que la computadora deber realizar, escritas por los
programadores en algn lenguaje de alto nivel.
Este conjunto de instrucciones no es directamente ejecutable por la mquina, sino que deber ser traducido al
lenguaje mquina, que la computadora ser capaz de entender y ejecutar.
Un aspecto muy importante en esta fase es la elaboracin previa de un algoritmo, que lo definimos como un
conjunto de pasos a seguir para obtener la solucin del problema. El algoritmo lo diseamos en pseudocdigo
y con l, la codificacin posterior a algn Lenguaje de Programacin determinado ser ms rpida y directa.
La culminacin de la obtencin de cdigo fuente es un documento con la codificacin de todos los mdulos,
funciones, bibliotecas y procedimientos necesarios para codificar la aplicacin.
Puesto que, como hemos dicho antes, este cdigo no es inteligible por la mquina, habr que TRADUCIRLO,
obteniendo as un cdigo equivalente pero ya traducido a cdigo binario que se llama cdigo objeto. Que no ser
directamente ejecutable por la computadora si ste ha sido compilado.
Un aspecto importante a tener en cuenta es su licencia. As, en base a ella, podemos distinguir dos tipos de
cdigo fuente:
Cdigo fuente abierto. Es aquel que est disponible para que cualquier usuario pueda estudiarlo,
modificarlo o reutilizarlo.
Cdigo fuente cerrado. Es aquel que no tenemos permiso para editarlo.
Autoevaluacin
Para obtener cdigo fuente a partir de toda la informacin necesaria del problema:
Se elige el Lenguaje de Programacin ms adecuado y se codifica directamente.
Se codifica y despus se elige el Lenguaje de Programacin ms adecuado.
Se elige el Lenguaje de Programacin ms adecuado, se disea un algoritmo y se codifica.
20 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.4.2.- Objeto.
El cdigo objeto es un cdigo intermedio.
Es el resultado de traducir cdigo fuente a un cdigo equivalente formado por unos y ceros que an no puede ser
ejecutado directamente por la computadora.
Consiste en un bytecode (cdigo binario) que est distribuido en varios archivos, cada uno de los cuales
corresponde a cada programa fuente compilado.
Slo se genera cdigo objeto una vez que el cdigo fuente est libre de errores sintcticos y semnticos.
El proceso de traduccin de cdigo fuente a cdigo objeto puede realizarse de dos formas:
a. Compilacin: El proceso de traduccin se realiza sobre todo el cdigo fuente, en un solo paso. Se crea
cdigo objeto que habr que enlazar. El software responsable se llama compilador.
b. Interpretacin: El proceso de traduccin del cdigo fuente se realiza lnea a lnea y se ejecuta
simultneamente. No existe cdigo objeto intermedio. El software responsable se llama intrprete. El
proceso de traduccin es ms lento que en el caso de la compilacin, pero es recomendable cuando el
programador es inexperto, ya que da la deteccin de errores es ms detallada.
El cdigo objeto es cdigo binario, pero no puede ser ejecutado por la computadora
Para saber ms
En el siguiente enlace podrs visitar una pgina web, que te permitir aprender ms acerca de la
generacin de cdigos objeto:
21 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.4.3.- Ejecutable.
El cdigo ejecutable, resultado de enlazar los archivos de cdigo objeto, consta de un nico archivo que puede
ser directamente ejecutado por la computadora. No necesita ninguna aplicacin externa. Este archivo es ejecutado
y controlado por el sistema operativo.
Para obtener un slo archivo ejecutable, habr que enlazar todos los archivos de cdigo objeto, a travs de un
software llamado linker (enlazador) y obtener as un nico archivo que ya s es ejecutable directamente por la
computadora.
Para saber ms
En el siguiente enlace podrs visitar una pgina web, que te permitir aprender ms acerca de la
generacin de ejecutables:
Ese bytecode, a travs de la mquina virtual (se ver en el siguiente punto), pasa a
cdigo mquina, ya directamente ejecutable por la computadora.
Autoevaluacin
Relaciona los tipos de cdigo con su caracterstica ms relevante, escribiendo el nmero
asociado a la caracterstica en el hueco correspondiente.
Ejercicio de relacionar
Tipo de
Relacin. Caractersticas.
cdigo.
Cdigo
3. Escrito en Lenguaje Mquina y directamente ejecutable.
Ejecutable
Enviar
22 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Con el uso de mquinas virtuales podremos desarrollar y ejecutar una aplicacin sobre
cualquier equipo, independientemente de las caractersticas concretas de los
componentes fsicos instalados. Esto garantiza la portabilidad de las aplicaciones.
Cuando el cdigo fuente se compila se obtiene cdigo objeto (bytecode, cdigo intermedio).
Para ejecutarlo en cualquier mquina se requiere tener independencia respecto al hardware concreto que se vaya
a utilizar.
Para ello, la mquina virtual asla la aplicacin de los detalles fsicos del equipo en cuestin.
Funciona como una capa de software de bajo nivel y acta como puente entre el bytecode de la aplicacin y los
dispositivos fsicos del sistema.
La mquina virtual acta de puente entre la aplicacin y el hardware concreto del equipo
donde se instale.
Para saber ms
En el siguiente enlace te presentamos el proceso de instalacin de la JVM (Mquina Virtual de Java) y
su apariencia.
23 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
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.
Para saber ms
El uso creciente de frameworks hace que tengamos que estar reciclndonos constantemente. En el
siguiente enlace, hay un documento muy interesante de sus principales caractersticas, ventajas y
formas de uso:
Caractersticas de frameworks.
Ejemplos de Frameworks:
.NET es un framework para desarrollar aplicaciones sobre Windows. Ofrece el "Visual Studio .net" que nos
da facilidades para construir aplicaciones y su motor es el ".Net framework" que permite ejecutar dichas
aplicaciones. Es un componente que se instala sobre el sistema operativo.
Spring de Java. Son conjuntos de bibliotecas (API's) para el desarrollo y ejecucin de aplicaciones.
Debes conocer
El proceso de instalacin y configuracin del framework Spring de Java, as como varios ejemplos de
uso. En el siguiente enlace encontrars una gua muy til detallando los pasos a seguir:
24 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
El Entorno de Ejecucin est formado por la mquina virtual y los API's (bibliotecas de clases estndar,
necesarias para que la aplicacin, escrita en algn Lenguaje de Programacin pueda ser ejecutada). Estos dos
componentes se suelen distribuir conjuntamente, porque necesitan ser compatibles entre s.
El entorno funciona como intermediario entre el lenguaje fuente y el sistema operativo, y consigue ejecutar
aplicaciones.
Sin embargo, si lo que queremos es desarrollar nuevas aplicaciones, no es suficiente con el entorno de ejecucin.
Adelantndonos a lo que veremos en la prxima unidad, para desarrollar aplicaciones necesitamos algo ms. Ese
"algo ms" se llama entorno de desarrollo.
Autoevaluacin
Seala la afirmacin falsa respecto de los entornos de ejecucin:
Su principal utilidad es la de permitir el desarrollo rpido de aplicaciones.
Acta como mediador entre el sistema operativo y el cdigo fuente.
Es el conjunto de la mquina virtual y bibliotecas necesarias para la ejecucin.
25 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Concepto.
Componentes.
Una Mquina virtual Java (JMV o JVM si consideramos las siglas en ingls), que es el programa que
interpreta el cdigo de la aplicacin escrito en Java.
Bibliotecas de clase estndar que implementan el API de Java.
Las dos: JMV y API de Java son consistentes entre s, por ello son distribuidas conjuntamente.
Lo primero es descargarnos el programa JRE. (Java2 Runtime Environment JRE 1.6.0.21). Java es software libre,
por lo que podemos descargarnos la aplicacin libremente.
Una vez descargado, comienza el proceso de instalacin, siguiendo los pasos del asistente.
Debes conocer
El proceso de descarga, instalacin y configuracin del entorno de ejecucin de programas. En el
siguiente enlace, se explican los pasos para hacerlo bajo el sistema operativo Linux.
Para saber ms
En el siguiente enlace encontrars un tutorial del lenguaje Java, con sus principales caractersticas y
rdenes y comandos principales.
26 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.6.- Pruebas.
Caso prctico
Mara rene todos los cdigos diseados y los prepara para
implementarlos en el equipo del cliente.
Una vez obtenido el software, la siguiente fase del ciclo de vida es la realizacin de pruebas.
Normalmente, stas se realizan sobre un conjunto de datos de prueba, que consisten en un conjunto seleccionado
y predefinido de datos lmite a los que la aplicacin es sometida.
Entre todas las pruebas que se efectan sobre el software podemos distinguir bsicamente:
PRUEBAS UNITARIAS
Consisten en probar, una a una, las diferentes partes de software y comprobar su funcionamiento (por separado,
de manera independiente). JUnit es el entorno de pruebas para Java.
PRUEBAS DE INTEGRACIN
Se realizan una vez que se han realizado con xito las pruebas unitarias y consistirn en comprobar el
funcionamiento del sistema completo: con todas sus partes interrelacionadas.
La prueba final se denomina comnmente Beta Test, sta se realiza sobre el entorno de produccin 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).
Autoevaluacin
Si las pruebas unitarias se realizan con xito, es obligatorio realizar las de integracin?
S, si la aplicacin est formada por ms de cinco mdulos diferentes.
S, en cualquier caso.
Para saber ms
27 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Puedes visitar la siguiente pgina web, donde se detallan los tipos de pruebas que suelen hacer al
software y la funcin de cada una.
28 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.7.- Documentacin.
Caso prctico
Ada ha quedado dentro de dos das con su cliente. Pregunta a
Mara por todos los dossiers de documentacin. La plida
expresin de la joven hace que Ada arda en desesperacin:
"No habis documentado las etapas? Cmo voy a
explicarle al cliente y sus empleados el funcionamiento del
software? Cmo vamos a realizar su mantenimiento?".
Para dar toda la informacin 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 documentacin permitir la reutilizacin de parte de los programas en otras aplicaciones,
siempre y cuando se desarrollen con diseo modular.
Descripcin de la
funcionalidad de la
aplicacin.
Forma de comenzar a
El diseo de la ejecutar la aplicacin. Toda la informacin necesaria
aplicacin. Ejemplos de uso del para:
Quedan La codificacin de programa.
Puesta en marcha.
reflejados: los programas. Requerimientos
Explotacin.
Las pruebas software de la
Seguridad del sistema.
realizadas. aplicacin.
Solucin de los
posibles problemas
que se pueden
presentar.
Al personal informtico
Al personal tcnico en responsable de la instalacin,
A quin va A los usuarios que van a usar
informtica (analistas y en colaboracin con los
dirigido? la aplicacin (clientes).
programadores). usuarios que van a usar la
aplicacin (clientes).
29 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
30 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.8.- Explotacin.
Caso prctico
Llega el da de la cita con la cadena hotelera. Ada y Juan se dirigen al hotel sonde se va a instalar y
configurar la aplicacin. Si todo va bien, se ir implementando en los dems hoteles de la cadena.
Ada no quiere que se le pase ni un detalle: lleva consigo la gua de uso y la gua de instalacin.
Despus 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 explotacin.
Aunque diversos autores consideran la explotacin 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.
En ella, asignamos los parmetros de funcionamiento normal de la empresa y probamos que la aplicacin es
operativa. Tambin puede ocurrir que la configuracin la realicen los propios usuarios finales, siempre y cuando
les hayamos dado previamente la gua de instalacin. Y tambin, si la aplicacin es ms sencilla, podemos
programar la configuracin de manera que se realice automticamente tras instalarla. (Si el software es "a
medida", lo ms aconsejable es que la hagan aquellos que la han fabricado).
Una vez se ha configurado, el siguiente y ltimo paso es la fase de produccin normal. La aplicacin pasa a manos
de los usuarios finales y se da comienzo a la explotacin del software.
Es muy importante tenerlo todo preparado antes de presentarle el producto al cliente: ser el momento
crtico del proyecto.
31 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
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. Ests contento o contenta porque eso significa un
ingreso extra. Te paras un momento...Dnde estn los cdigos? Qu haca exactamente la
aplicacin? Cmo se dise? No lo recuerdas... Probablemente hayas perdido un ingreso extra y
unos buenos clientes.
32 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
5.9.- Mantenimiento.
Caso prctico
Ada rene por ltima vez durante estas semanas a su equipo.
Todos celebran que el proyecto se ha implementado con xito y
que sus clientes han quedado satisfechos.
Sera lgico pensar que con la entrega de nuestra aplicacin (la instalacin y configuracin 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 construccin de software es muy diferente.
Por su naturaleza, el software es cambiante y deber actualizarse y evolucionar con el tiempo. Deber ir
adaptndose de forma paralela a las mejoras del hardware en el mercado y afrontar situaciones nuevas que no
existan cuando el software se construy.
Adems, siempre surgen errores que habr que ir corrigiendo y nuevas versiones del producto mejores que las
anteriores.
Por todo ello, se pacta con el cliente un servicio de mantenimiento de la aplicacin (que tambin tendr un coste
temporal y econmico).
Su duracin es la mayor en todo el ciclo de vida del software, ya que tambin comprende las actualizaciones y
evoluciones futuras del mismo.
Los tipos de cambios que hacen necesario el mantenimiento del software son los siguientes:
Autoevaluacin
Cul es, en tu opinin, la etapa ms importante del desarrollo de software?
El anlisis de requisitos.
La codificacin.
Las pruebas y documentacin.
La explotacin y el mantenimiento.
33 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Las sentencias secuenciales son aquellas que se ejecutan una detrs de la otra, segn el orden en que hayan sido
escritas.
Ejemplo en lenguaje C:
Son aquellas en las que se evala una condicin. Si el resultado de la condicin es verdad es ejecutan una serie
de accin o acciones y si es falso se ejecutan otras.
then Todas las acciones que se encuentren tras esta palabra reservada se ejecutarn si la condicin del if es
cierta (en C, se omite esta palabra).
else Todas las acciones que se encuentren tras esta otra palabra reservada se ejecutarn si la condicin 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 harn que stas se repitan mientras o hasta que una determinada
condicin sea falsa (o verdadera).
while marca el comienzo del bucle y va seguido de la condicin de parada del mismo.
do a partir de esta palabra reservada, se encontrarn 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;
num = 0;
while (num<=10) { printf("Repeticin numero %d\n", num);
num = num + 1;
};
34 de 35 25/03/2014 18:44
ED01_Contenidos http://adistancia.educantabria.es/aula/pluginfile.php/27541/mod_resour...
Recurso (1) Datos del recurso (1) Recurso (2) Datos del recurso (2)
35 de 35 25/03/2014 18:44