Professional Documents
Culture Documents
DESARROLLO DE SOFTWARE
Contenido:
1. Software y programa. Tipos de Software.
2. Relacin Hardware-Software.
3. Desarrollo de Software
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.
ENTORNOS DE DESARROLLO
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?
ENTORNOS DE DESARROLLO
Existe una relacin indisoluble entre el hardware y el software, ya que necesitan estar
instalados y configurados correctamente para que el equipo funcione.
ENTORNOS DE DESARROLLO
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.
ENTORNOS DE DESARROLLO
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?
ENTORNOS DE DESARROLLO
ENTORNOS DE DESARROLLO
CLASIFICACIN
Normalmente, las herramientas CASE se clasifican en funcin de las fases del ciclo de
vida del software en la que ofrecen ayuda:
ENTORNOS DE DESARROLLO
Para saber ms
ENTORNOS DE DESARROLLO
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.
ENTORNOS DE DESARROLLO
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
CARACTERSTICAS
Podemos clasificar los distintos tipos de Lenguajes de Programacin en base a
distintas caractersticas:
Segn lo cerca que est del lenguaje humano
11
ENTORNOS DE DESARROLLO
Sentencias secuenciales.
Sentencias selectivas (condicionales).
Sentencias repetitivas (iteraciones o bucles).
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
INCONVENIENTES
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
15
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
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.
Reflexiona
Segn estimaciones, las organizaciones y empresas que crecen ms son las que ms dinero invierten
en sus diseos.
17
ENTORNOS DE DESARROLLO
18
ENTORNOS DE DESARROLLO
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
ENTORNOS DE DESARROLLO
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
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
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.
ENTORNOS DE DESARROLLO
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
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:
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
ENTORNOS DE DESARROLLO
ENTORNOS DE DESARROLLO
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.
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
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?
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
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
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:
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