Você está na página 1de 38

ED01_Contenidos

1 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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?

29/06/2013 13:08

ED01_Contenidos

2 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

1.- Software y programa. Tipos de software.

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?

Es de sobra conocido que el ordenador se compone de dos partes


bien diferenciadas:
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:
Descripcin de la imagen

aplicaciones
En este tema, nuestro inters se centra en las
informticas: cmo se desarrollan y cules 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 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.

29/06/2013 13:08

ED01_Contenidos

3 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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?

29/06/2013 13:08

ED01_Contenidos

4 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

2.- Relacin hardware-software.

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:

Descripcin de la imagen

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.
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).
b. Desde el punto de vista de las aplicaciones
Ya hemos dicho que una aplicacin no es otra cosa que un conjunto de programas, y que stos estn
escritos en algn lenguaje de programacin que el hardware del equipo debe interpretar y ejecutar.
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.

29/06/2013 13:08

ED01_Contenidos

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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.
Muy bien. Esa es la idea

5 de 38

29/06/2013 13:08

ED01_Contenidos

6 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

3.- Desarrollo de software.

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?

Porque los errores en la planificacin inicial se propagarn en cascada al resto de etapas


del desarrollo.

29/06/2013 13:08

ED01_Contenidos

7 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

3.1.- Ciclos de vida del software.


Ya hemos visto que la serie de pasos a seguir para desarrollar un
programa es lo que se conoce como Ciclo de Vida del Software.
Cada etapa vendr explicada con ms detalle en el punto de la presente
unidad dedicado a las fases del desarrollo y ejecucin del software.
Diversos autores han planteado distintos modelos de ciclos de vida, pero
los ms conocidos y utilizados son los que aparecen a continuacin:

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.

29/06/2013 13:08

ED01_Contenidos

8 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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.
Efectivamente, por las caractersticas de esta aplicacin, pensaramos mejor en el modelo
en cascada con realimentacin.

29/06/2013 13:08

ED01_Contenidos

9 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

3.2.- Herramientas de apoyo al desarrollo del software.


En la prctica, para llevar a cabo varias de las etapas vistas en el punto
anterior contamos con herramientas informticas, cuya finalidad
principal es automatizar las tareas y ganar fiabilidad y tiempo.
Esto nos va a permitir centrarnos en los requerimientos del sistema y el
anlisis del mismo, que son las causas principales de los fallos del
software.
Las herramientas CASE son un conjunto de aplicaciones que se utilizan
en el desarrollo de software con el objetivo de reducir costes y tiempo del proceso, mejorando por tanto la
productividad del proceso.
En qu fases del proceso nos pueden ayudar?
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.
En concreto, estas herramientas permiten:
Mejorar la planificacin del proyecto.
Darle agilidad al proceso.
Poder reutilizar partes del software en proyectos futuros.
Hacer que las aplicaciones respondan a estndares.
Mejorar la tarea del mantenimiento de los programas.
Mejorar el proceso de desarrollo, al permitir visualizar las fases de forma grfica.
CLASIFICACIN
Normalmente, las herramientas CASE se clasifican en funcin de las fases del ciclo de vida del software en
la que ofrecen ayuda:
U-CASE: ofrece ayuda en las fases de planificacin y anlisis de requisitos.
M-CASE: ofrece ayuda en anlisis y diseo.
L-CASE: ayuda en la programacin del software, deteccin de errores del cdigo, depuracin de
programas y pruebas y en la generacin de la documentacin del proyecto.
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.
Ayudas concretas de CASE.

29/06/2013 13:08

ED01_Contenidos

10 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

4.- Lenguajes de programacin.

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:

Caractersticas de los Lenguajes de Programacin


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.

29/06/2013 13:08

ED01_Contenidos

11 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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.
En lugar de sentencias escritas, se programa grficamente usando el ratn y diseando
directamente la apariencia del software.
Su correspondiente cdigo se genera automticamente.
Necesitan traduccin al lenguaje mquina.
Son completamente portables de un equipo a otro.

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.

29/06/2013 13:08

ED01_Contenidos

12 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

4.1.- Concepto y caractersticas.


Ya sabemos que los lenguajes de programacin han evolucionado, y siguen hacindolo, siempre hacia la
mayor usabilidad de los mismos (que el mayor nmero posible de usuarios lo utilicen y exploten).
La eleccin del lenguaje de programacin para codificar un programa depender de las
caractersticas del problema a resolver.
CONCEPTO
Un lenguaje de programacin es el conjunto de:
Alfabeto: conjunto de smbolos permitidos.
Sintaxis: normas de construccin permitidas de los smbolos del
lenguaje.
Semntica: significado de las construcciones para hacer
acciones vlidas.
CARACTERSTICAS
Podemos clasificar los distintos tipos de Lenguajes de Programacin en base a distintas caractersticas:
Segn lo cerca que est del lenguaje humano
Lenguajes de Programacin De alto nivel: por su esencia, estn ms prximos al
razonamiento humano.
Lenguajes de Programacin De bajo nivel: estn ms prximos al funcionamiento interno de la
computadora:
Lenguaje Ensamblador.
Lenguaje Mquina.
Segn la tcnica de programacin utilizada:
Lenguajes de Programacin Estructurados: Usan la tcnica de programacin estructurada.
Ejemplos: Pascal, C, etc.
Lenguajes de Programacin Orientados a Objetos: Usan la tcnica de programacin orientada
a objetos. Ejemplos: C++, Java, Ada, Delphi, etc.
Lenguajes de Programacin Visuales: Basados en las tcnicas anteriores, permiten programar
grficamente, siendo el cdigo correspondiente generado de forma automtica. Ejemplos:
Visual Basic.Net, Borland Delphi, etc.

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.

29/06/2013 13:08

ED01_Contenidos

13 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

4.2.- Lenguajes de programacin estructurados.


Aunque los requerimientos actuales de software son bastante ms
complejos de lo que la tcnica de programacin estructurada es capaz,
es necesario por lo menos conocer las bases de los Lenguajes de
Programacin estructurados, ya que a partir de ellos se evolucion hasta
otros lenguajes y tcnicas ms completas (orientada a eventos u objetos)
que son las que se usan actualmente.
La programacin estructurada se define como una tcnica para escribir
lenguajes de programacin que permite slo el uso de tres tipos de
sentencias o estructuras de control:
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.
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.

29/06/2013 13:08

ED01_Contenidos

14 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

4.3.- Lenguajes de programacin orientados a objetos.


Despus de comprender que la programacin estructurada no es til cuando los programas se hacen muy
largos, es necesaria otra tcnica de programacin que solucione este inconveniente. Nace as la
Programacin Orientada a Objetos (en adelante, P.O.O.).
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.

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.

Su primera desventaja es clara: no es una programacin tan intuitiva como la


estructurada.
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++.
Aprender a programar con C++.

(0.44 MB)

29/06/2013 13:08

ED01_Contenidos

15 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

5.- Fases en el desarrollo y ejecucin del software.

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.
Muy bien, vas captando la idea.

29/06/2013 13:08

ED01_Contenidos

16 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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.

Citas para pensar


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:
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.

29/06/2013 13:08

ED01_Contenidos

17 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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.

Citas para pensar


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.

29/06/2013 13:08

ED01_Contenidos

18 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

5.3.- Codificacin. Tipos de cdigo.

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.

Durante la fase de codificacin se realiza el proceso de programacin.


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.
Las caractersticas deseables de todo cdigo son:
1.
2.
3.
4.
5.

Modularidad: que est dividido en trozos ms pequeos.


Correccin: que haga lo que se le pide realmente.
Fcil de leer: para facilitar su desarrollo y mantenimiento futuro.
Eficiencia: que haga un buen uso de los recursos.
Portabilidad: que se pueda implementar en cualquier equipo.

Durante esta fase, el cdigo pasa por diferentes estados:


Cdigo Fuente: es el escrito por los programadores en algn
editor de texto. Se escribe usando algn lenguaje de
programacin de alto nivel y contiene el conjunto de
instrucciones necesarias.
Cdigo Objeto: es el cdigo binario resultado de compilar el
cdigo fuente.
La compilacin es la traduccin de una sola vez del programa, y
se realiza utilizando un compilador. La interpretacin es la
traduccin y ejecucin simultnea del programa lnea a lnea.
El cdigo objeto no es directamente inteligible por el ser humano, pero tampoco por la computadora.
Es un cdigo intermedio entre el cdigo fuente y el ejecutable y slo existe si el programa se
compila, ya que si se interpreta (traduccin lnea a lnea del cdigo) se traduce y se ejecuta en un
solo paso.
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

29/06/2013 13:08

ED01_Contenidos

19 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

directo.

29/06/2013 13:08

ED01_Contenidos

20 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

5.4.- Fases en la obtencin de cdigo.

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?

29/06/2013 13:08

ED01_Contenidos

21 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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. Se debe partir de las etapas anteriores de anlisis y diseo.
2. Se disear un
algoritmo que simbolice los pasos a seguir para la resolucin del problema.
3. Se elegir una Lenguajes de Programacin de alto nivel apropiado para las caractersticas del
software que se quiere codificar.
4. Se proceder a la codificacin del algoritmo antes diseado.
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.
Muy bien. El diseo del algoritmo (los pasos a seguir) nos ayudar a que la codificacin
posterior se realice ms rpidamente y tenga menos errores.

29/06/2013 13:08

ED01_Contenidos

22 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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.
bytecode (cdigo binario) que est distribuido en varios archivos, cada uno de los cuales
Consiste en un
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:
Generacin de cdigo objeto.

29/06/2013 13:08

ED01_Contenidos

23 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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:
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.

Generacin de cdigo ejecutable.

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

1. Escrito en Lenguaje Mquina pero no ejecutable.

Cdigo Objeto

2. Escrito en algn Lenguaje de Programacin de alto nivel,


pero no ejecutable.

Cdigo
Ejecutable

3. Escrito en Lenguaje Mquina y directamente ejecutable.

Reiniciar

Mostrar las respuestas

Tu puntuacin es 0/3.
El cdigo fuente escrito en algn lenguaje de programacin de alto nivel, el objeto escrito en
lenguaje mquina sin ser ejecutable y el cdigo ejecutable, escrito tambin en lenguaje

29/06/2013 13:08

ED01_Contenidos

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

mquina y ya s ejecutable por el ordenador, son las distintas fases por donde pasan
nuestros programas.

24 de 38

29/06/2013 13:08

ED01_Contenidos

25 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

5.5.- Mquinas virtuales.


Una mquina virtual es un tipo especial de software cuya misin es separar el
funcionamiento del ordenador de los componentes hardware instalados.
Esta capa de software desempea un papel muy importante en el funcionamiento
de los lenguajes de programacin, tanto compilados como interpretados.
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.
Las funciones principales de una mquina virtual son las siguientes:
Conseguir que las aplicaciones sean portables.
Reservar memoria para los objetos que se crean y liberar la memoria no utilizada.
Comunicarse con el sistema donde se instala la aplicacin (husped), para el control de los
dispositivos hardware implicados en los procesos.
Cumplimiento de las normas de seguridad de las aplicaciones.
CARACTERSTICAS DE LA MQUINA VIRTUAL
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 verifica todo el bytecode antes de ejecutarlo.
La Mquina Virtual protege direcciones de memoria.

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)

29/06/2013 13:08

ED01_Contenidos

26 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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)

29/06/2013 13:08

ED01_Contenidos

27 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

5.5.2.- Entornos de ejecucin.


Un entorno de ejecucin es un servicio de mquina virtual que sirve como base software para la ejecucin
de programas. En ocasiones pertenece al propio sistema operativo, pero tambin se puede instalar como
software independiente que funcionar por debajo de la aplicacin.
Es decir, es un conjunto de utilidades que permiten la ejecucin de programas.
Se denomina runtime al tiempo que tarda un programa en ejecutarse en la computadora.
Durante la ejecucin, los entornos se encargarn de:
Configurar la memoria principal disponible en el sistema.
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 sern aquellos que
hemos creado a propsito para el programa.
Depurar los programas: comprobar la existencia (o no existencia) de errores semnticos del lenguaje
(los sintcticos ya se detectaron en la compilacin).
Funcionamiento del entorno de ejecucin:
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.
Muy bien, lo has entendido perfectamente.

29/06/2013 13:08

ED01_Contenidos

28 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

5.5.3.- Java runtime environment.


En esta seccin de va a explicar el funcionamiento, instalacin,
configuracin y primeros pasos del Runtime Environment del lenguaje
Java (se hace extensible a los dems lenguajes de programacin).
Concepto.
Se denomina JRE al Java Runtime Environment (entorno en tiempo de
ejecucin Java).
El JRE se compone de un conjunto de utilidades que permitir la
ejecucin de programas java sobre cualquier tipo de plataforma.
Componentes.
JRE est formado por:
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.
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)

29/06/2013 13:08

ED01_Contenidos

29 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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
aplicacin.

Mara,

tenemos

que

PROBAR

la

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


verificacin del software construido.

para

asegurar

la

validacin

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.
Muy bien, vas captando la idea.

29/06/2013 13:08

ED01_Contenidos

30 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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)

29/06/2013 13:08

ED01_Contenidos

31 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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?".

Todas las etapas en el desarrollo de software deben quedar perfectamente documentadas.

Por qu hay que documentar todas las fases del proyecto?


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.
Distinguimos tres grandes documentos en el desarrollo de software:

Documentos a elaborar en el proceso de desarrollo de software


GUA TCNICA

Quedan
reflejados:

A quin
va
dirigido?

El diseo de la
aplicacin.
La codificacin de
los programas.
Las
pruebas
realizadas.

Al personal tcnico en
informtica (analistas y
programadores).

GUA DE USO
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 los usuarios que van a


usar la aplicacin (clientes).

GUA DE INSTALACIN

Toda la informacin necesaria


para:
Puesta en marcha.
Explotacin.
Seguridad del sistema.

Al
personal
informtico
responsable de la instalacin,
en colaboracin con los
usuarios que van a usar la
aplicacin (clientes).

29/06/2013 13:08

ED01_Contenidos

32 de 38

Cul es
su
objetivo?

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

GUA TCNICA

GUA DE USO

GUA DE INSTALACIN

Facilitar
un
correcto
desarrollo,
realizar
correcciones
en
los
programas y permitir un
mantenimiento futuro.

Dar a los usuarios finales


toda
la
informacin
necesaria para utilizar la
aplicacin.

Dar toda la informacin


necesaria para garantizar que
la
implantacin
de
la
aplicacin se realice de forma
segura, confiable y precisa.

29/06/2013 13:08

ED01_Contenidos

33 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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

29/06/2013 13:08

ED01_Contenidos

34 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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.

29/06/2013 13:08

ED01_Contenidos

35 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

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.

29/06/2013 13:08

ED01_Contenidos

36 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

La explotacin y el mantenimiento.
Efectivamente. Si esta etapa no est lograda, las dems tampoco lo estarn.

29/06/2013 13:08

ED01_Contenidos

37 de 38

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

Anexo I.- Sentencias de control de la programacin


estructurada.
SENTENCIAS SECUENCIALES
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:

printf (declaracin de variables);


int numero_entero;
espacio=espacio_inicio + veloc*tiempo;

SENTENCIAS SELECTIVAS (CONDICIONALES)


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.
if seala la condicin que se va a evaluar
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;

SENTENCIAS REPETITIVAS (ITERACIONES O BUCLES)


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;
};

29/06/2013 13:08

ED01_Contenidos

http://catedu.es/fpmoodle/file.php/105/ED01/ED01_Web/index.html

Anexo.- Licencias de recursos.


Licencias de recursos utilizados en la Unidad de Trabajo.
Recurso (1)

Datos del recurso (1)


Autora: Scott Schram.
Licencia: CC by 2.0.
Procedencia:
http://www.flickr.com/photos
/schram/21742249/

Recurso (2)

Datos del recurso (2)


Autora: fsse8info.
Licencia: CC by -SA 2.0.
Procedencia:
http://www.flickr.com/photos
/fsse-info/3276664015/

Autora: Francisco Palacios.


Licencia: CC by -NC-ND 2.0.
Procedencia:
http://www.flickr.com/photos
/wizard_/3303810302/

38 de 38

29/06/2013 13:08

Você também pode gostar