You are on page 1of 29

TEMA 2:

DESARROLLO DE SOFTWARE
Contenido:
1. Software y programa. Tipos de Software.
2. Relacin Hardware-Software.
3. Desarrollo de Software

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

Desarrollo de software.
1.- Software y programa. 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.
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:

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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.
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.
http://www.tiposdesoftware.com/

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?

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

2.- Relacin hardware-software.


Como sabemos, al conjunto de dispositivos fsicos que conforman un ordenador
se les denomina hardware. El software son los programas que se ejecutarn sobre los
dispositivos fsicos.

Existe una relacin indisoluble entre el hardware y el software, ya que necesitan estar
instalados y configurados correctamente para que el equipo funcione.

La primera arquitectura hardware con programa almacenado se estableci en 1946


por John Von Neumann:

Esta relacin softwarehardware 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).

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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. Sin embargo, todos
tienen algo en comn: estar escritos con sentencias de un idioma que el ser
humano puede aprender y usar fcilmente.
Por otra parte, el hardware de un ordenador slo es capaz de interpretar
seales elctricas (ausencias o presencias de tensin) que, en informtica, se
traducen en secuencias de 0 y 1 (cdigo binario).
Esto nos hace plantearnos una cuestin: Cmo ser capaz el ordenador de
"entender" algo escrito en un lenguaje que no es el suyo?
Como veremos a lo largo de esta unidad, tendr que pasar algo (un
proceso de traduccin de cdigo) para que el ordenador ejecute las instrucciones
escritas en un lenguaje de programacin.

Autoevaluacin
Para fabricar un programa informtico que se ejecuta en una computadora:
Hay que escribir las instrucciones en cdigo binario para que las entienda el hardware.
Slo es necesario escribir el programa en algn lenguaje de programacin y se ejecuta
directamente.
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.

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

3.- Desarrollo de software.


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 pueed e llegar a ser muy complejo y que
n coordinac
c in y disciplina del grupo de trabajo que lo desarrolle.
exige gran
Reflexiona
Segn estimaciones,
el 26% de los grandes proyectos de software fracasan, el 48% ddeben modificarse
m
drsticamente y slo el 26% tienen rotundo xito. La principal causa del fracaso de un proyecto es la
falta de una buena planificacin
a
de las etapas y mala gestin de lospasos a seguir. Por qqu el
porcentaje de fracaso es tan grande?
e Por qu piensas que estas causas son tan determinantes?

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:

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

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

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

Para saber ms

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


herramientas CASE.
http://temariotic.wikidot.com/tema58boe13021996

EJERCICIO 1: Crea un documento en el que aparezcan los nombres de 2


ejemplos de herramientas UCASE, 2 de MCASE y 2 herramientas LCASE.
Descrbelas brevemente y sbelo a moodle:
Ejercicio01-Nombre-Apellidos.doc

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

4.- Lenguajes de programacin.


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.

EJERCICIO 2: Crea un documento en el que se vea el cdigo fuente de un programa que


muestre por pantalla Hola Mundo en los siguientes lenguajes de programacin:
Ensamblador, C, Java, ObjectiveC, C++, C#, Python, Ada, Visual Basic .NET, Delphi, Pascal,
HTML, PHP y JavaScript. Sbelo a moodle:
Ejercicio02-Nombre-Apellidos.doc
10

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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

Para saber ms: En el siguiente enlace, vers la evolucin entre los distintos tipos
de Lenguajes de Programacin en la historia.
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

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

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

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

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

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

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.

Los principales lenguajes orientados a objetos son: 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++.
http://mat21.etsii.upm.es/ayudainf/aprendainf/Cpp/manualcpp.pdf

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.

14

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

5.- Fases en el desarrollo y ejecucin del


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

15

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

5.1.- Anlisis.
Esta es la primera fase del proyecto. 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).

16

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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.
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,
decidiendo qu har exactamente cada parte.
En definitiva, debemos crear un modelo funcionalestructural 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. Designishowitworks.Steve Jobs ("El
diseo no es slo lo que parece y cmo parece. Diseo es cmo se trabaja").

Reflexiona
Segn estimaciones, las organizaciones y empresas que crecen ms son las que ms dinero invierten
en sus diseos.
17

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

5.3.- Codificacin. Tipos de cdigo.


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

18

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

5.4.- Fases en la obtencin de cdigo.


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

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

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.

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

Para saber ms
En el siguiente enlace podrs visitar una pgina web, que te permitir aprender ms acerca
de la generacin de cdigos objeto:
http://www.monografias.com/trabajos11/compil/compil2.shtml#co

20

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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.
Para saber ms
En el siguiente enlace podrs visitar una pgina web, que te permitir aprender ms acerca
de la generacin de ejecutables:
http://www.palomatica.info/juckar/sistemas/software/generacion_de_ejecutable.html

En el esquema de generacin de cdigo ejecutable, vemos el


proceso completo para la generacin de ejecutables.
A partir de un editor, escribimos el lenguaje fuente con algn
Lenguaje de programacin. (En el ejemplo, se usa Java).
A continuacin, el cdigo fuente se compila obteniendo cdigo
objeto o bytecode.
Ese bytecode, a travs de la mquina virtual (se ver en el
siguiente punto), pasa a cdigo mquina, ya directamente ejecutable
por la computadora.
Autoevaluacin
Relaciona los tipos de cdigo con su caracterstica ms relevante, escribiendo el nmero
asociado a la caracterstica en el hueco correspondiente.
Ejercicio de relacionar
Tipo de cdigo. Relacin.
Cdigo Fuente

Cdigo Objeto

Cdigo
Ejecutable

Caractersticas.
1. Escrito en Lenguaje Mquina pero no ejecutable.
2. Escrito en algn Lenguaje de Programacin de alto nivel,
pero no ejecutable.
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
ejecutable y el cdigoejecutable, escrito tambin en lenguaje mquina y ya s ejecutable por el ordenador, son las distintas
fases por donde pasan nuestros programas.

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

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

Esta capa de software desempea un papel muy importante en el funcionamiento


de los lenguajes de programacin, tanto compilado como interpretado.
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 (Capacidad de un programa
para ser ejecutado en cualquier arquitectura fsica de un equipo.) 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.
http://www.unabvirtual.edu.co/ayuda/manuales_pdf/maquinavirtualjava.pdf

5.5.1.- Frameworks.
Un framework (Plataforma, entorno, marco de trabajo del desarrollo rpido de
aplicaciones) 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.

22

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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:


o Desarrollo rpido de software.
o Reutilizacin de partes de cdigo para otras aplicaciones.
o Diseo uniforme del software.
o 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:
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 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:
http://www.maestrosdelweb.com/editorial/losframeworksdephpagilizantutrabajo/

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:
http://pablolg.wikispaces.com/file/view/spring_tutorial_v0.271.pdf

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

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

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 bibliotecas son el conjunto de
las
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.

5.5.3.- Java runtimeenvironment.


En esta seccin de va a explicar el funcionamiento, instalacin, configuracin y
primeros pasos del RuntimeEnvironment del lenguaje Java (se hace extensible a los dems
lenguajes de programacin).
Concepto.
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
sobre cualquier tipo de plataforma.
Componentes.
24

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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 RuntimeEnvironment 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.
http://www.java.com/es/download/help/linux_install.xml
Para saber ms
En el siguiente enlace encontrars un tutorial del lenguaje Java, con sus principales
caractersticas y rdenes y comandos principales.
http://www.tecnun.es/asignaturas/Informat1/AyudaInf/aprendainf/Java/Java2.pdf

5.6.- Pruebas.
Una vez obtenido el software, la siguiente fase del ciclo de vida es la realizacin de
pruebas.
Normalmente, stas se realizan sobre un conjunto de datos de prueba, que
consisten en un conjunto seleccionado y predefinido de datos lmite a los que la aplicacin
es sometida.
La realizacin de pruebas es imprescindible para asegurar la validacin y verificacin
del software construido.
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

25

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

Se realizan una vez que se han realizado con xito las pruebas unitarias y
consistirn en comprobar el funcionamiento del sistema completo: con todas sus partes
interrelacionadas.
La prueba final se denomina comnmente Beta Test, sta se realiza sobre el
entorno de produccin donde el software va a ser utilizado por el cliente (a ser posible, en
los equipos del cliente y bajo un funcionamiento normal de su empresa).
El perodo de prueba ser normalmente el pactado con el cliente.

Autoevaluacin
Si las pruebas unitarias se realizan con xito, es obligatorio realizar las de integracin?
S, si la aplicacin est formada por ms de cinco mdulos
diferentes. S, en cualquier caso.
Para saber ms
Puedes visitar la siguiente pgina web, donde se detallan los tipos de pruebas que
suelen hacer al software y la funcin de cada una.
http://www.sistedes.es/TJISBD/Vol1/No4/articles/pris07rajactps.pdf

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

26

ENTORNOS DE DESARROLLO

Quedan
reflejados
:

A quin
va
dirigido?

Cul es
su
objetivo?

Instalacin y uso de entornos de desarrollo

Documentos a elaborar en el proceso de desarrollo de software


GUA
GUA DE
GUA DE USO
TCNICA
INSTALACIN
El diseo de Descripcin
de
la Toda
la
informacin
la aplicacin.
funcionalidad
de
la necesaria para:
La
codifica
aplicacin.
Puesta en marcha.
cin de los Forma de comenzar a Explotacin.
programas.
ejecutar la aplicacin.
Seguridad del sistema.
Las pruebas Ejemplos de uso del
realizadas.
programa.
Requerimientos software
de la aplicacin.
Solucin de los posibles
problemas
que
se
pueden presentar.
Al
personal A los usuarios que van a usar Al personal informtico
tcnico en
la aplicacin (clientes).
responsable
de
la
informtica
instalacin,
en
(analistas
y
colaboracin
con
los
programadores).
usuarios que van a usar
la aplicacin (clientes).
Facilitar
un Dar a los usuarios finales toda
correcto
la informacin necesaria
desarrollo,
para utilizar la aplicacin.
realizar correc
ciones en los
programas
y
permitir
un
mantenimiento
futuro.

Dar toda la informacin


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

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

Instalacin y uso de entornos de desarrollo

ENTORNOS DE DESARROLLO

Es recomendable que los futuros clientes estn presentes en este momento e irles
comentando cmo se va planteando la instalacin.
En este momento, se suelen llevan a cabo las Beta Test, que son las ltimas pruebas
que se realizan en los propios equipos del cliente y bajo cargas normales de trabajo.
Una vez instalada, pasamos a la fase de configuracin.
En ella, asignamos los parmetros de funcionamiento normal de la empresa y probamos
que la aplicacin es operativa. Tambin puede ocurrir que la configuracin la realicen los
propios usuarios finales, siempre y cuando les hayamos dado previamente la gua de
instalacin. Y tambin, si la aplicacin es ms sencilla, podemos programar la configuracin
de manera que se realice automticamente tras instalarla. (Si el software es "a medida", lo
ms aconsejable es que la hagan aquellos que la han fabricado).
Una vez se ha configurado, el siguiente y ltimo paso es la fase de produccin
normal. La aplicacin pasa a manos de los usuarios finales y se da comienzo a la
explotacin del software.
Es muy importante tenerlo todo preparado antes de presentarle el producto al cliente:
ser el momento crtico del proyecto.
Reflexiona
Realizas un proyecto software por vez primera y no te das cuenta de documentarlo. Consigues
venderlo a buen precio a una empresa. Al cabo de un par de meses te piden que actualices algunas
de las funciones, para tener mayor funcionalidad. Ests contento o contenta porque eso significa un
ingreso extra. Te paras un momento...Dnde estn los cdigos? Qu haca exactamente la
aplicacin? Cmo se dise? No lo recuerdas... Probablemente hayas perdido un ingreso extra y
unos buenos clientes.

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

28

ENTORNOS DE DESARROLLO

Instalacin y uso de entornos de desarrollo

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.

31

You might also like