You are on page 1of 31

1

1
1
1
1
1
E
E
E
N
N
N
T
T
T
O
O
O
R
R
R
N
N
N
O
O
O
S
S
S

D
D
D
E
E
E

D
D
D
E
E
E
S
S
S
A
A
A
R
R
R
R
R
R
O
O
O
L
L
L
L
L
L
O
O
O

D
D
D
e
e
e
s
s
s
a
a
a
r
r
r
r
r
r
o
o
o
l
l
l
l
l
l
o
o
o

d
d
d
e
e
e

a
a
a
p
p
p
l
l
l
i
i
i
c
c
c
a
a
a
c
c
c
i
i
i
o
o
o
n
n
n
e
e
e
s
s
s

w
w
w
e
e
e
b
b
b

J
J
J
o
o
o
s
s
s

L
L
L
u
u
u
i
i
i
s
s
s

C
C
C
o
o
o
m
m
m
e
e
e
s
s
s
a
a
a

a
a
a

Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

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

2
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo


En este tema, nuestro inters se centra en las aplicaciones 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.
Parasaberms
En el siguiente enlace encontrars ms informacin de los tipos de software existente, as
comoejemplosdecadaunoqueteayudarnaprofundizarsobreeltema.
http://www.tiposdesoftware.com/
Reflexiona
Hay varios sistemas operativos en el mercado: Linux, Windows, Mac OS X etc. El ms conocido es
Windows.Apesardeeso,porquutilizamoscadavezmsLinux?

3
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

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

4
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

Esto nos hace plantearnos una cuestin: Cmo ser capaz el ordenador de "entender"
algo escrito en un lenguaje que no es el suyo?
Como veremos a lo largo de esta unidad, tendr que pasar algo (un proceso de
traduccin de cdigo) para que el ordenador ejecute las instrucciones escritas en un
lenguaje de programacin.
Autoevaluacin
Para fabricar un programa informtico que se ejecuta en una computadora:
Hay que escribir las instrucciones en cdigo binario para que las entienda el hardware.
Slo es necesario escribir el programa en algn lenguaje de programacin y se ejecuta
directamente.
Hay que escribir el programa en algn Lenguaje de Programacin y contar con
herramientas software que lo traduzcan a cdigo binario.
Los programas informticos no se pueden escribir: forman parte de los sistemas
operativos.

5
Instalacinyusodeenttornosdedesarrollo ENTORNOSSDEDESARR ROLLO

6
3.- De
Caso prct
En BK prog
proyecto.
Ella sabe m
no quiere p
molestias a
Entendemo
idea hasta
El proceso
serie de p
programas
usuarios fin
Como vere
proceso qu
Etapas en
Como vam
etapas habl
La constru
exige gran
Reflexiona
Segnestim
drsticamen
falta de un
porcentaje
3.1.- C
Ya hemos
programa e
Cada etapa
presente u
del softwar
Diversos a
vida, pero
continuaci
esarro
tico
gramacin ya
mejor que na
perderse la r
ntes incluso
os por Desa
que un prog
o de desarro
pasos de o
creados so
nales (aque
emos con m
ue conlleva u
el desarroll
mos a ver en
laremos de
uccin de s
n coordinac
a
maciones,el
nteysloel
a buena pla
defracasoe
iclos de
visto que la
es lo que se
a vendr ex
unidad dedic
re.
autores han
los ms co
n:
ollo d
a estn mano
adie que no s
reunin, quie
de empezar
arrollo de So
grama est i
ollo, que en
obligado cu
on eficient
llos que van
ms detenim
una serie de
lo de softwa
n el siguient
diferentes c
software es
cin y discip
26%delosg
26%tienen
anificacin d
stangrande
e vida d
a serie de p
conoce com
xplicada co
cado a las
n planteado
nocidos y u
de soft
os a la obra.
ser sencillo
ere descubri
r.
oftware tod
implementa
n un princip
umplimiento
es, fiables,
n a utilizar e
miento a lo l
e pasos. Gen
are:
e punto, seg
ciclos de vid
s un proce
plina del gr
grandesproy
rotundoxi
de las etapa
e?Porqup
del softw
pasos a segu
mo Ciclo de
on ms deta
fases del d
distintos m
utilizados so
tware.
Ada rene a
o y que habr
ir por qu ha
do el proces
ado en el ord
pio puede pa
o, pues s
seguros y
el programa
largo de la u
nricamente
gn el orden
da del softw
so que pue
rupo de tra
yectosdesof
to.Laprinci
s y mala ge
piensasque
ware.
uir para des
e Vida del S
alle en el p
desarrollo y
modelos de
on los que a
.
a toda su pla
que pasar
ay que toma
o que ocurr
denador y fu
arecer una
lo as pod
y responden
a).
unidad, el d
e, estos paso
n y la forma
ware.
ede llegar a
abajo que l
ftwarefracas
palcausade
estin de los
estascausas
arrollar un
Software.
unto de la
y ejecucin
e ciclos de
aparecen a
ntilla para de
por una ser
ar tantas ano
re desde qu
funcionando
tarea simpl
dremos gar
n a las nec
desarrollo d
os son los s
a en que se
a ser muy
lo desarroll
san,el48%d
elfracasode
s pasos a se
ssontandet
esarrollar el n
rie de etapas
otaciones y t
e se concib
o.
le, consta d
rantizar qu
cesidades d
de software
siguientes:
lleven a cab
complejo y
le.
debenmodif
unproyecto
eguir. Por q
terminantes?
nuevo
s. Ana
tantas
be una
e una
e los
de los
es un
bo las
y que
ficarse
oesla
qu el
?
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

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

7
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

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
Parasaberms

8
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

En el siguiente enlace se presenta una ampliacin de los tipos y ayudas concretas de la


herramientasCASE.
http://temariotic.wikidot.com/tema58boe13021996

9
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

4.- Lenguajes de programacin.


Caso prctico
Una de los aspectos del proyecto que ms preocupa a Ana 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:
o Sus instrucciones son combinaciones de unos y ceros.
o Es el nico lenguaje que entiende directamente el ordenador. (No necesita
traduccin).
o Fue el primer lenguaje utilizado.
o Es nico para cada procesador (no es portable de un equipo a otro).
o Hoy da nadie programa en este lenguaje.
Lenguaje ensamblador:
o Sustituy al lenguaje mquina para facilitar la labor de programacin.
o En lugar de unos y ceros se programa usando mnemotcnicos (instrucciones
complejas).
o Necesita traduccin al lenguaje mquina para poder ejecutarse.
o Sus instrucciones son sentencias que hacen referencia ala ubicacin fsica de
los archivos en el equipo.
o Es difcil de utilizar.

10
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

Lenguaje de alto nivel basados en cdigo:


o Sustituyeron al lenguaje ensamblador para facilitar ms la labor de
programacin.
o En lugar de mnemotcnicos, se utilizan sentencias y rdenes derivadas del
idioma ingls. (Necesita traduccin al lenguaje mquina).
o Son ms cercanos al razonamiento humano.
o Son utilizados hoy da, aunque la tendencia es que cada vez menos.
Lenguajes visuales:
o Estn sustituyendo a los lenguajes de alto nivel basados en cdigo.
o En lugar de sentencias escritas, se programa grficamente usando el ratn y
diseando directamente la apariencia del software.
o Su correspondiente cdigo se genera automticamente.
o Necesitan traduccin al lenguaje mquina.
o Son completamente portables de un equipo a otro.
Parasaberms
En el siguiente enlace, vers la evolucin entre los distintos tipos de Lenguajes de
Programacinenlahistoria.
http://www.monografias.com/trabajos38/tiposlenguajesprogramacion/tiposlenguajes
programacion.shtml
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

11
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

o Lenguajes de Programacin De alto nivel: por su esencia, estn ms prximos


al razonamiento humano.
o 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:
o Lenguajes de Programacin Estructurados: Usan la tcnica de programacin
estructurada. Ejemplos: Pascal, C, etc.
o Lenguajes de Programacin Orientados a Objetos: Usan la tcnica de
programacin orientada a objetos. Ejemplos: C++, Java, Ada, Delphi, etc.
o 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.
Parasaberms
EnlapginawebsiguienteencontrarsunresumendelascaractersticasdelosLenguajesde
Programacinmsutilizadosenlaactualidad.
http://www.larevistainformatica.com/LENGUAJESDEPROGRAMACIONlistado.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.
Parasaberms
Enelsiguienteenlaceencontrarsunbrevedocumentodondeseexplicaparaqusirvecada
sentenciadecontrolconunossencillosejemplosescritosusandoellenguajeC.
http://www.juntadeandalucia.es/educacion/adistancia/cursos/file.php/420/ED01/ED01_Web/index.
html#anexo_i_sentencias_de_control_de_la_programacin_estructurada.html

12
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

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

13
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

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.
Parasaberms
Enelsiguienteenlacehayundocumentomuyinteresantedeintroduccinalaprogramacin
orientadaaobjetos,enconcreto,dellenguajeC++.
http://mat21.etsii.upm.es/ayudainf/aprendainf/Cpp/manualcpp.pdf

14
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

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

15
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

Crees que debemos esperar a tener completamente cerrada una etapa para pasar a la
siguiente?
S.
No.
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.

16
Citas para pensar
Todoaquelloquenosedetecte,oresultemalentendidoenlaetapainicialprovocarun
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
tardaseasudeteccin(BellyThayer1976)(Davis1993).
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

17
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.
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-estruc
sistema global, para poder dividirlo y afrontar las partes por separado.
tural de los requerimientos del
En este punto, se deben tomar decisiones importantes, tales como:
Entidades y relaciones de las bases de datos.
e va a utilizar. Seleccin del lenguaje de programacin que s
Seleccin del Sistema Gestor de Base de Datos.
Etc.
Citas para pensar
Design is not just what it looks like and feels like. Designishowitworks.Steve Jobs ("El
diseonoessloloquepareceycmoparece.Diseoescmosetrabaja").
Reflexiona
Segnestimaciones,lasorganizacionesyempresasquecrecenmssonlasquemsdineroinvierten
ensusdiseos.
5.3.- Codificacin. Tipos de cdigo.
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

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. Modularidad: que est dividido en trozos ms pequeos.
2. Correccin: que haga lo que se le pide realmente.
3. Fcil de leer: para facilitar su desarrollo y mantenimiento futuro.
4. Eficiencia: que haga un buen uso de los recursos.
5. 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 directo.
5.4.- Fases en la obtencin de cdigo.

18
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

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?
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 (Cada parte, con una funcionalidad concreta, en que se divide una
aplicacin), funciones (Parte de cdigo muy pequea con una finalidad muy concreta.),
bibliotecas y procedimientos (Igual que las funcin, pero al ejecutarse no devuelven ningn
valor.) 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.

19
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

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
rpidamenteytengamenoserrores.
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 resultante de la traduccin de cdigo de alto nivel
que an no puede ser ejecutado.) 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 (Software que traduce, de una sola vez, un programa escrito en un
lenguaje de programacin de alto nivel en su equivalente en lenguaje mquina.).
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 (Software que traduce, instruccin a instruccin, un programa
escrito en un lenguaje de alto nivel en su equivalente en lenguaje mquina). 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

Parasaberms
Enelsiguienteenlacepodrsvisitarunapginaweb,quetepermitiraprendermsacerca
delageneracindecdigosobjeto:
http://www.monografias.com/trabajos11/compil/compil2.shtml#co

20
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

21
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. Pequeo software encargado de
unir archivos para generar un programa ejecutable.) y obtener as un nico archivo que ya s
es ejecutable directamente por la computadora.
Parasaberms
Enelsiguienteenlacepodrsvisitarunapginaweb,quetepermitiraprendermsacerca
delageneracindeejecutables:
http://www.palomatica.info/juckar/sistemas/software/generacion_de_ejecutable.html
En el esquema de generacin de cdigo ejecutable, vemos el proceso
A partir de un editor, escribimos el lenguaje fuente con algn Lenguaje
A continuacin, el cdigo fuente se compila obteniendo cdigo objeto o
Ese bytecode, a travs de la mquina virtual (se ver en el siguiente
completo para la generacin de ejecutables.
de programacin. (En el ejemplo, se usa Java).
bytecode.
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
2

1. Escrito en Lenguaje Mquina pero no ejecutable.
Cdigo Objeto
1

2. Escrito en algn Lenguaje de Programacin de alto nivel,
pero no ejecutable.
Cdigo
Ejecutable
3

3. Escrito en Lenguaje Mquina y directamente ejecutable.

El cdigo fuente escrito en algn lenguaje de programacin de alto nivel, el objeto escrito en lenguaje mquina sin ser
ejecutableyelcdigoejecutable,escritotambinenlenguajemquinayyasejecutableporelordenador,sonlasdistintas
fasespordondepasannuestrosprogramas.
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.
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

22
Esta capa de software desempea un papel muy importante en el funcionamiento de los
lenguajes de programacin, tanto compilado como interpretado.
cretas de los componentes
fsicos instalados. Esto garantiza la portabilidad (Capacidad de un programa para ser ejecutado
Conseguir que las aplicaciones sean portables.
moria no utilizada.
Comunicarse con el sistema donde se instala la aplicacin (husped), para el control
rocesos.
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
Funciona como una capa de software de bajo nivel y acta como puente entre el bytecode de
La Mquina Virtual protege direcciones de memoria.
Con el uso de mquinas virtuales podremos desarrollar y ejecutar una aplicacin sobre
cualquier equipo, independientemente de las caractersticas con
encualquierarquitecturafsicadeunequipo.) de las aplicaciones.
Las funciones principales de una mquina virtual son las siguientes:
Reservar memoria para los objetos que se crean y liberar la me
de los dispositivos hardware implicados en los p
Cumplimiento de las normas de seguridad de las aplicaciones.
CARACTERSTICAS DE LA MQUINA VIRTUAL
concreto que se vaya a utilizar.
Para ello, la mquina virtual asla la aplicacin de los detalles fsicos del equipo en cuestin.
la aplicacin y los dispositivos fsicos del sistema.
La Mquina Virtual verifica todo el bytecode antes de ejecutarlo.
La mquina virtual acta de puente entre la aplicacin y el hardware concreto del
equipo donde se instale.
Parasaberms
EnelsiguienteenlacetepresentamoselprocesodeinstalacindelaJVM(MquinaVirtual
deJava)ysuapariencia.
www.unabvirtual.edu.co/ayuda/manuales_pdf/maquinavirtualjava.pdf http://
Un framework (Plataforma, entorno, marco de trabajo del desarrollo rpido de aplicaciones)
a al programador, en base a la cual podemos desarrollar proyectos
sin partir desde cero.
etc., que ayuda a desarrollar y unir los diferentes mdulos o partes de
un proyecto.
5.5.1.- Frameworks.
es una estructura de ayud
Se trata de una plataforma software donde estn definidos programas soporte, bibliotecas,
lenguaje interpretado,
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

23
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.
digo para otras aplicaciones.
o Diseo uniforme del software.
s de un computador a otro, ya que los bytecodes
nguaje fuente podrn ser ejecutados sobre
tacin del framework en nuestro equipo consume
recursos del sistema.
Ventajas de utilizar un framework:
o Desarrollo rpido de software.
o Reutilizacin de partes de c
o Portabilidad de aplicacione
que se generan a partir del le
cualquier mquina virtual.
Inconvenientes:
o Gran dependencia del cdigo respecto al framework utilizado (sin cambiamos
de framework, habr que reescribir gran parte de la aplicacin).
o La instalacin e implemen
bastantes
Parasaberms
El uso creciente de frameworks hace que tengamos que estar reciclndonos
consta ay un documento muy interesante de sus ntemente. En el siguiente enlace, h
principalescaractersticas,ventajasyformasdeuso:
.maestrosdelweb.com/editorial/losframeworksdephpagilizantutrabajo/ http://www
ce el
"Visual Studio .net" que nos da facilidades para construir aplicaciones y su motor es el
e permite ejecutar dichas aplicaciones. Es un componente que se
instala sobre el sistema operativo.
Ejemplos de Frameworks:
.NET es un framework para desarrollar aplicaciones sobre Windows. Ofre
".Net framework" qu
Spring de Java. Son conjuntos de bibliotecas (API's) para el desarrollo y ejecucin de
aplicaciones.
Debesconocer
El proceso de instalacin y configuracin del framework Spring de Java, as como varios
ejemplosdeuso.Enelsiguienteenlaceencontrarsunaguamuytildetallandolospasosa
seguir:
p://pablolg.wikispaces.com/file/view/spring_tutorial_v0.271.pdf htt
Un entorno d oftware para
la ejecucin de programas. En ocasiones pertenece al propio sistema operativo, pero tambin
pendiente que funcionar por debajo de la aplicacin.
5.5.2.- Entornos de ejecucin.
e ejecucin es un servicio de mquina virtual que sirve como base s
se puede instalar como software inde
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.
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

24
Durante la ejecucin, los entornos se encargarn de:
Configurar la memoria principal disponible en
Enlazar los archivos del programa con las bibliotecas existentes y con los
bibliotecas son el conjunto de
as que sirven para desarrollar o comunicar componentes software pero que
El Entorno de Ejecucin est formado por la mquina virtual y los API's (bibliotecas de clases
crita en algn Lenguaje de Programacin pueda
ser ejecutada). Estos dos componentes se suelen distribuir conjuntamente, porque necesitan
ones.
Ese "algo ms" se llama entorno de desarrollo.
el sistema.
subprogramas creados. Considerando que las
subprogram
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:
estndar, necesarias para que la aplicacin, es
ser compatibles entre s.
El entorno funciona como intermediario entre el lenguaje fuente y el sistema operativo, y
consigue ejecutar aplicaci
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.
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.
En esta seccin de va a explicar el funcionamiento, instalacin, configuracin y primeros
aje Java (se hace extensible a los dems lenguajes de
programacin).
Se denomina JRE al Java RuntimeEnvironment (entorno en tiempo de ejecucin Java).
El JRE se compone de un conjunto de utilidades que permitir la ejecucin de programas java
Componentes.
5.5.3.- Java runtimeenvironment.
pasos del RuntimeEnvironment del lengu
Concepto.
sobre cualquier tipo de plataforma.
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

25
JRE est formado por:
Una Mquina virtual Java (JMV o JVM si consideramos las siglas en ingls), que es el
la aplicacin escrito en Java.
Bibliotecas de clase estndar que implementan el API de Java.
API de Java son consistentes entre s, por ello son distribuidas
conjuntamente.
ent JRE 1.6.0.21).
bremente.
mienza el proceso de instalacin, siguiendo los pasos del asistente.
programa que interpreta el cdigo de
Las dos: JMV y
Lo primero es descargarnos el programa JRE. (Java2 RuntimeEnvironm
Java es software libre, por lo que podemos descargarnos la aplicacin li
Una vez descargado, co
Debesconocer
Elprocesodedescarga,instalacinyconfiguracindelentornodeejecucindeprogramas.
Enelsiguienteenlace,seexplicanlospasosparahacerlobajoelsistemaoperativoLinux.
http://www.java.com/es/download/help/linux_install.xml
Parasaberms
En el siguiente enlace encontrars un tutorial del lenguaje Java, con sus principales
caractersticasyrdenesycomandosprincipales.
http://ww Java2.pdf w.tecnun.es/asignaturas/Informat1/AyudaInf/aprendainf/Java/
a 5.6.- Prueb s.
Caso prctico
Mara re liente. ne todos los cdigos diseados y los prepara para implementarlos en el equipo del c
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.
e la aplicacin es sometida.
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 qu
La realizacin de pruebas es imprescindible para asegurar la validacin y verificacin
del software construido.
:
Consisten en probar, una a una, las diferentes partes de software y comprobar su
ra
Java.
PRUEBAS DE INTEGRACIN
Entre todas las pruebas que se efectan sobre el software podemos distinguir bsicamente
PRUEBAS UNITARIAS
funcionamiento (por separado, de manera independiente). JUnit es el entorno de pruebas pa
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

26
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
tilizado por el cliente (a ser posible, en los equipos del
cliente y bajo un funcionamiento normal de su empresa).
produccin donde el software va a ser u
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.
Parasaberms
Puedes visitar la siguiente pgina web, donde se detallan los tipos de pruebas que suelen
haceralsoftwareylafuncindecadauna.
http://www.sistedes.es/TJISBD/Vol1/No4/articles/pris07rajactps.pdf
5.7.- Documentacin.
Caso prctico
Ada ha quedado dentro de dos das con su cliente. Pregunta a Mara por todos los dossiers de
documentaci No habis n. La plida expresin de la joven hace que Ada arda en desesperacin: "
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.
Para dar toda la informacin a los usuarios de nuestro software y poder acometer futuras
Tenemos que ir documentando el proyecto en todas las fases del mismo, para pasar de una a
permitir la reutilizacin de parte
de los programas en otras aplicaciones, siempre y cuando se desarrollen con diseo modular.
documentos en el desarrollo de software:
Por qu hay que documentar todas las fases del proyecto?
revisiones del proyecto.
otra de forma clara y definida. Una correcta documentacin
Distinguimos tres grandes
Documentos a elaborar en el proceso de desarrollo de software


GUA
TCNICA
GUA DE USO
GUA DE
INSTALACIN
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

Quedan
reflejados:
El diseo de
la aplicacin.
La codifica-
cin de los
programas.
Las pruebas
realizadas.
Descripcin de la
funciona-lidad de la
aplicacin.
Forma de comenzar a
ejecu-tar la aplicacin.
Ejemplos de uso del
progra-ma.
Requerimientos software
de la aplicacin.
Solucin de los posibles
problemas que se pueden
presentar.
Toda la informacin
necesaria para:
Puesta en marcha.
Explotacin.
Seguridad del sistema.
A quin
va
dirigido?
Al personal
tcni-co en
informtica
(analistas y pro-
gramadores).
A los usuarios que van a usar
la aplicacin (clientes).
Al personal informtico res-
ponsable de la instalacin,
en colaboracin con los
usuarios que van a usar la
aplicacin (clientes).
Cul es
su
objetivo?
Facilitar un co-
rrecto desarrollo,
realizar correc-
ciones en los pro-
gramas y permitir
un
mantenimiento
futuro.
Dar a los usuarios finales toda
la informacin necesaria para
utilizar la aplicacin.
Dar toda la informacin
nece-saria para garantizar
que la implantacin de la
aplicacin se realice de
forma segura, confiable y
precisa.
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.

27
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

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
venderloabuenprecioaunaempresa.Alcabodeunpardemesestepidenqueactualicesalgunas
delasfunciones,paratenermayorfuncionalidad.Estscontentoocontentaporqueesosignificaun
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
unosbuenosclientes.
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?
Seralgicopensarqueconlaentregadenuestraaplicacin(lainstalacinyconfiguracindenuestro
proyectoenlosequiposdelcliente)hemosterminadonuestrotrabajo.
Encualquierotrosectorlaboralestoesas,peroelcasodelaconstruccindesoftwareesmuy
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.

28
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

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.

29
Instalacinyusodeentornosdedesarrollo ENTORNOSDEDESARROLLO

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:
pr i nt f ( " decl ar aci n de var i abl es" ) ;
i nt numer o_ent er o;
espaci o=espaci o_i ni ci o + vel oc*t i empo;
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 ifes falsa.
Ejemplo en lenguaje C:
i f ( a >= b)
c= a- b;
el se
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).

30
ENTORNOSDEDESARROLLO Instalacinyusodeentornosdedesarrollo

31
Ejemplo en lenguaje C:
i nt num;
num= 0;
whi l e ( num<=10) {
pr i nt f ( " Repet i ci n numer o %d\ n" , num) ;
num= num+ 1;
};
Anexo.- Licencias de recursos.
Datos del recurso (1)
Autora: Scott Schram.
Licencia: CC by 2.0.
Procedencia: http://www.flickr.com/photos/schram/21742249/
Autora: Francisco Palacios.
Licencia: CC by -NC-ND 2.0.
Procedencia: http://www.flickr.com/photos/wizard_/3303810302/
Autora: fsse8info.
Licencia: CC by -SA 2.0.
Procedencia: http://www.flickr.com/photos/fsse-info/3276664015/

You might also like