Professional Documents
Culture Documents
Pgina 1 de 28
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.
Ada, la supervisora de proyectos de BK Programacin, se rene con Juan y Mara (trabajadores de la empresa) para empezar a planificar el proyecto.
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.
Antonio se ha enterado de la posibilidad de estudiar el nuevo Ciclo de Grado Superior de Diseo de Aplicaciones Multiplataforma a distancia, y est dispuesta a hacerlo.
(No tendra que dejar el trabajo).
Le comenta sus planes a su amigo Antonio (que tiene conocimientos bsicos de informtica), y ste se une a ella.
Despus de todo qu pueden perder?
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 2 de 28
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?
hardware y
software.
El software es el conjunto de programas informticos que actan sobre el hardware para ejecutar lo que el usuario desee.
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 ...
El software de programacin es el conjunto de herramientas que nos permiten desarrollar programas informticos, y las aplicaciones
informticas son un conjunto de programas que tienen una finalidad ms o menos concreta. Son ejemplos de aplicaciones: un procesador
de textos, una hoja de clculo, el software para reproducir msica, un videojuego, etc.
A su vez, un programa es un conjunto de instrucciones escritas en un lenguaje de programacin.
En definitiva, distinguimos los siguientes tipos de software:
En este tema, nuestro inters se centra en las
necesariamente han de pasar.
aplicaciones informticas: cmo se desarrollan y cules son las fases por las que
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.
Descripcin de la imagen
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.
Ampliacin sobre los tipos de software.
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?
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 3 de 28
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.
El software e se ejecutar sobre los dispositivos fsicos.
La primera arquitectura hardware con programa almacenado se estableci en 1946 por John Von Neumann:
Esta relacin software-hardware la podemos poner de manifiesto desde dos puntos de vista:
a. Desde el punto de vista del sistema operativo
El sistema operativo es el encargado de coordinar al hardware durante el funcionamiento del ordenador, actuando como
intermediario entre ste y las aplicaciones que estn corriendo en un momento dado.
Descripcin de la imagen
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.
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.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 4 de 28
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.
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 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:
Etapas en el desarrollo de software:
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?
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 5 de 28
Siempre se debe aplicar un modelo de ciclo de vida al desarrollo de cualquier proyecto software.
1.- Modelo en Cascada
Es el modelo de vida clsico del software.
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).
2.- Modelo en Cascada con Realimentacin
Es uno de los modelos ms utilizados. Proviene del modelo anterior, pero se introduce una realimentacin entre etapas, de forma que podamos volver atrs en cualquier
momento para corregir, modificar o depurar algn aspecto. No obstante, si se prevn muchos cambios durante el desarrollo no es el modelo ms idneo.
Es el modelo perfecto si el proyecto es rgido (pocos cambios, poco evolutivo) y los requisitos estn claros.
3.- Modelos Evolutivos
Son ms modernos que los anteriores. Tienen en cuenta la naturaleza cambiante y evolutiva del software.
Distinguimos dos variantes:
3.1.- Modelo Iterativo Incremental
Est basado en el modelo en cascada con realimentacin, donde las fases se repiten y refinan, y van propagando su mejora a las fases siguientes.
3.2.- Modelo en Espiral
Es una combinacin del modelo anterior con el modelo en cascada. En l, el software se va construyendo repetidamente en forma de versiones que son cada vez
mejores, debido a que incrementan la funcionalidad en cada versin. Es un modelo bastante complejo.
Resumen textual alternativo
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.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 6 de 28
Para saber ms
En el siguiente enlace se presenta una ampliacin de los tipos y ayudas concretas de la herramientas CASE.
Ayudas concretas de CASE.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 7 de 28
Caso prctico
Una de los aspectos del proyecto que ms preocupa a Ada es la eleccin del lenguaje de programacin a utilizar.
Necesita tener muy claros los requerimientos del cliente para enfocar correctamente la eleccin, pues segn sean stos unos
lenguajes sern ms efectivos que otros.
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:
Para saber ms
En el siguiente enlace, vers la evolucin entre los distintos tipos de Lenguajes de Programacin en la historia.
Evolucin de los Lenguajes de Programacin.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 8 de 28
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.
Caractersticas de los Principales Lenguajes de Programacin.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 9 de 28
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.
Sentencias de Control de la Programacin Estructurada.
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? ).
VENTAJAS DE LA PROGRAMACIN ESTRUCTURADA
Los programas son fciles de leer, sencillos y rpidos.
El mantenimiento de los programas es sencillo.
La estructura del programa es sencilla y clara.
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.
Ejemplos de lenguajes estructurados: Pascal, C, Fortran.
La Programacin estructurada evolucion hacia la Programacin modular, que divide el programa en trozos de cdigo llamados mdulos con una funcionalidad concreta,
que podrn ser reutilizables.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 10 de 28
En la P.O.O. los programas se componen de objetos independientes entre s que colaboran para realizar acciones.
Los objetos son reutilizables para proyectos futuros.
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++.
Aprender a programar con C++. (0.44 MB)
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 11 de 28
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.
Por dnde empezamos? pregunta Juan.
ANLISIS de REQUISITOS contesta Ada.
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.
Estas etapas son:
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.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 12 de 28
5.1.- Anlisis.
Esta es la primera fase del proyecto. Una vez finalizada, pasamos a la siguiente (diseo).
Es la fase de mayor importancia en el desarrollo del proyecto y todo lo dems depender de lo bien detallada que est. Tambin es la ms
complicada, ya que no est automatizada y depende en gran medida del analista que la realice.
Es la primera etapa del proyecto, la ms complicada y la que ms depende de la capacidad del analista.
Qu se hace en esta fase?
Se especifican y analizan los requisitos funcionales y no funcionales del sistema.
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.
La culminacin de esta fase es el documento ERS (Especificacin de Requisitos Software).
En este documento quedan especificados:
La planificacin de las reuniones que van a tener lugar.
Relacin de los objetivos del usuario cliente y del sistema.
Relacin de los requisitos funcionales y no funcionales del sistema.
Relacin de objetivos prioritarios y temporizacin.
Reconocimiento de requisitos mal planteados o que conllevan contradicciones, etc.
Como ejemplo de requisitos funcionales, en la aplicacin para nuestros clientes de las tiendas de cosmtica, habra que considerar:
Si desean que la lectura de los productos se realice mediante cdigos de barras.
Si van a detallar las facturas de compra y de qu manera la desean.
Si los trabajadores de las tiendas trabajan a comisin, tener informacin de las ventas de cada uno.
Si van a operar con tarjetas de crdito.
Si desean un control del stock en almacn.
Etc.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 13 de 28
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.
Decide hablar con Ada. Su supervisora, amable como siempre, le sugiere que empiece a dividir el problema en las partes
implicadas.
Vale, Ada, pero, cmo lo divido?
Durante esta fase, donde ya sabemos lo que hay que hacer, el siguiente paso es Cmo hacerlo?
Se debe dividir el sistema en partes y establecer qu relaciones habr entre ellas.
Decidir qu har exactamente cada parte.
En definitiva, debemos crear un modelo funcional-estructural de los requerimientos del sistema global, para poder dividirlo y afrontar las
partes por separado.
En este punto, se deben tomar decisiones importantes, tales como:
Entidades y relaciones de las bases de datos.
Seleccin del lenguaje de programacin que se va a utilizar.
Seleccin del Sistema Gestor de Base de Datos.
Etc.
Reflexiona
Segn estimaciones, las organizaciones y empresas que crecen ms son las que ms dinero invierten en sus diseos.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 14 de 28
Caso prctico
En BK, ya tienen el proyecto dividido en partes.
Ahora llega una parte clave: codificar los pasos y acciones a seguir para que el ordenador los ejecute. En otras palabras, programar
la aplicacin. Saben que no ser fcil, pero afortunadamente cuentan con herramientas CASE que les van a ser de gran ayuda. A
Ana el gustara participar, pero cuando se habla de "cdigo fuente", "ejecutable", etc. sabe que no tiene ni idea y que no tendr ms
remedio que estudiarlo si quiere colaborar en esta fase del proyecto.
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.
Las caractersticas deseables de todo cdigo son:
1.
2.
3.
4.
5.
Los programas interpretados no producen cdigo objeto. El paso de fuente a ejecutable es directo.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 15 de 28
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?
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 16 de 28
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.
Para obtener el cdigo fuente de una aplicacin informtica:
1.
2.
3.
4.
mdulos,
funciones, bibliotecas y
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.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 17 de 28
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.
Es decir, es el cdigo resultante de la compilacin del cdigo fuente.
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
intrprete. El proceso de traduccin es ms lento que en el caso de la compilacin, pero es recomendable cuando el programador es inexperto, ya
responsable se llama
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:
Generacin de cdigo objeto.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 18 de 28
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
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:
Generacin de cdigo ejecutable.
En el esquema de generacin de cdigo ejecutable, vemos el proceso completo para la generacin de ejecutables.
A partir de un editor, escribimos el lenguaje fuente con algn Lenguaje de programacin. (En el ejemplo, se usa Java).
A continuacin, el cdigo fuente se compila obteniendo cdigo objeto o bytecode.
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 cdigo.
Relacin.
Caractersticas.
Cdigo Fuente
Cdigo Objeto
Cdigo Ejecutable
Enviar
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 19 de 28
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.
Gua rpida de instalacin de JVM. (0.15 MB)
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 20 de 28
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 estn definidos programas soporte, bibliotecas, lenguaje interpretado, etc., que ayuda a desarrollar y
unir los diferentes mdulos o partes de un proyecto.
Con el uso de framework podemos pasar ms tiempo analizando los requerimientos del sistema y las especificaciones tcnicas de nuestra
aplicacin, ya que la tarea laboriosa de los detalles de programacin queda resuelta.
Ventajas de utilizar un framework:
Desarrollo rpido de software.
Reutilizacin de partes de cdigo para otras aplicaciones.
Diseo uniforme del software.
Portabilidad de aplicaciones de un computador a otro, ya que los bytecodes que se generan a partir del lenguaje fuente podrn
ser ejecutados sobre cualquier mquina virtual.
Inconvenientes:
Gran dependencia del cdigo respecto al framework utilizado (sin cambiamos de framework, habr que reescribir gran parte de la aplicacin).
La instalacin e implementacin del framework en nuestro equipo consume bastantes recursos del sistema.
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:
Instalacin y configuracin del Spring de Java. (0.11 MB)
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 21 de 28
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.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 22 de 28
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.
Instalacin y configuracin del JRE de Java.
Para saber ms
En el siguiente enlace encontrars un tutorial del lenguaje Java, con sus principales caractersticas y rdenes y comandos principales.
Tutorial de Java Primeros pasos. (1.96 MB)
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 23 de 28
5.6.- Pruebas.
Caso prctico
Mara rene todos los cdigos diseados y los prepara para implementarlos en el equipo del cliente.
Juan se percata de ello, y le recuerda a su amiga que an no los han sometido a pruebas. Juan se acuerda bien de la vez que le
pas aquello: hace dos aos, cuando fue a presentar una aplicacin a sus clientes, no paraba de dar errores de todo tipo los
clientes, por supuesto, no la aceptaron y Juan perdi un mes de duro trabajo y estuvo a punto de perder su empleo
No tan deprisa Mara, tenemos que PROBAR la aplicacin.
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.
La realizacin de pruebas es imprescindible para asegurar la
validacin y
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).
El perodo de prueba ser normalmente el pactado con el cliente.
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
Puedes visitar la siguiente pgina web, donde se detallan los tipos de pruebas que suelen hacer al software y la funcin de cada una.
Tipos de Pruebas. (0.02 MB)
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 24 de 28
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?".
Quedan
reflejados:
El diseo de la aplicacin.
La codificacin de los programas.
Las pruebas realizadas.
GUA DE USO
GUA DE INSTALACIN
Descripcin de la funcionalidad de
la aplicacin.
Forma de comenzar a ejecutar la
aplicacin.
Ejemplos de uso del programa.
Requerimientos software de la
aplicacin.
Solucin de los posibles problemas
que se pueden presentar.
A quin va
dirigido?
Cul es su
objetivo?
la
la
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 25 de 28
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.
La explotacin es la fase en que los usuarios finales conocen la aplicacin y comienzan a utilizarla.
La explotacin es la instalacin, puesta a punto y funcionamiento de la aplicacin en el equipo final del cliente.
En el proceso de instalacin, los programas son transferidos al computador del usuario cliente y posteriormente configurados y verificados.
Es recomendable que los futuros clientes estn presentes en este momento e irles comentando cmo se va planteando la instalacin.
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.
Una vez instalada, pasamos a la fase de configuracin.
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.
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.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 26 de 28
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.
Esto an no ha terminado comenta Ada, nos quedan muchas cosas por hacer. Esta tarde me reno con los clientes. Cmo
vamos a gestionar el mantenimiento de la aplicacin?
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.
La etapa de mantenimiento es la ms larga de todo el ciclo de vida del software.
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).
El mantenimiento se define como el proceso de control, mejora y optimizacin del software.
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:
Perfectivos: Para mejorar la funcionalidad del software.
Evolutivos: El cliente tendr en el futuro nuevas necesidades. Por tanto, sern necesarias modificaciones, expansiones o eliminaciones de cdigo.
Adaptativos: Modificaciones, actualizaciones... para adaptarse a las nuevas tendencias del mercado, a nuevos componentes hardware, etc.
Correctivos: La aplicacin tendr errores en el futuro (sera utpico pensar lo contrario).
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.
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 27 de 28
Ejemplo en lenguaje C:
if (a >= b)
c= a-b;
else
c=a+b;
Ejemplo en lenguaje C:
int num;
num = 0;
while (num<=10) {
printf("Repeticin numero %d\n", num);
num = num + 1;
};
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016
ED01_Contenidos
Pgina 28 de 28
Recurso (2)
Autora: fsse8info.
Licencia: CC by -SA 2.0.
Procedencia:
info/3276664015/
http://www.flickr.com/photos/fsse-
http://moodle.teleformacionfp.aragon.es/pluginfile.php/5605/mod_resource/content/0/... 26/10/2016