Vous êtes sur la page 1sur 15

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

Tema 1: Desarrollo de software

1. CONCEPTOS: PROGRAMA INFORMTICO. LENGUAJES DE


PROGRAMACIN. TRADUCTORES DE LENGUAJE (CDIGO
FUENTE, CDIGO OBJETO Y CDIGO EJECUTABLE).
2. GENERACIONES, LENGUAJES Y ORDENADORES (LECTURA
RECOMENDADA).
3. TIPOS DE PROGRAMACIN.
4. FASES DEL DESARROLLO DE UNA APLICACIN: ANLISIS,
DISEO, CODIFICACIN, PRUEBAS, DOCUMENTACIN,
EXPLOTACIN Y MANTENIMIENTO, ENTRE OTRAS.
4.1. INGENIERA DEL SOFTWARE
4.2. PRINCIPALES METODOLOGAS DE DESARROLLO
4.3. METODOLOGA DE DESARROLLO METRICA

5. PRCTICAS
5.1. INTRODUCCIN
5.2. SESIONES DE TRABAJO
5.3. CATALOGACIN
5.4. DIAGRAMA DE REPRENTACIN
5.5. PRESENTACIONES
5.6. ANLISIS DE IMPACTO IMPACTO EN LA ORGANIZACIN
5.7. COSTES / BENEFICIOS

-1-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

1. Conceptos: Programa informtico. Lenguajes de


programacin. Traductores (Cdigo fuente, cdigo objeto
y cdigo ejecutable).
PROGRAMA INFORMTICO

La definicin de la RAE es: Conjunto unitario de instrucciones que permite a un


ordenador realizar funciones diversas, como el tratamiento de textos, el diseo
de grficos, la resolucin de problemas matemticos, el manejo de bancos de
datos, etc. Pero normalmente se entiende por Programa un conjunto de
instrucciones ejecutables por un ordenador.
Aplicacin. Software formado por uno o ms programas, la documentacin
de los mismos y los archivos necesarios para su funcionamiento, de modo que
el conjunto completo de archivos forman una herramienta de trabajo en un
ordenador.
Normalmente en el lenguaje cotidiano no se distingue entre aplicacin y
programa; en nuestro caso entenderemos que la aplicacin es un software
completo que cumple la funcin completa para la que fue diseado, mientras
que un programa es el resultado de ejecutar un cierto cdigo entendible por el
ordenador.
LENGUAJE DE PROGRAMACIN

Para el desarrollo o construccin de un Programa se utiliza uno o varios


Lenguajes

de

Programacin,

podemos

decir

que

un

lenguaje

de

programacin (Ver anexo I) es una notacin o conjunto de smbolos y


caracteres combinados entre s de acuerdo con una sintaxis ya definida para
posibilitar la transmisin de instrucciones a la CPU, dichos smbolos son
traducidos a un conjunto de seales elctricas representadas en cdigo binario
(0 y 1) que es el nico cdigo comprensible por el microprocesador.

-2-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

Los lenguajes de programacin se clasifican en dos grandes grupos:


Lenguajes de bajo nivel
o Lenguaje mquina. Prcticamente no utilizado.
o Lenguaje Ensamblador.
Lenguajes de alto nivel.
Pueden

establecerse

actualmente

varias

subdivisiones en los lenguajes de alto nivel pero


dependen de los autores y no estn estandarizadas.
Lenguajes de Bajo Nivel
LENGUAJES MQUINA
Son

los

escritos

en

lenguaje

directamente

entendible

por

la

computadora, dado que sus instrucciones son cadenas binarias. El cdigo


mquina es el cdigo binario. El conjunto de instrucciones depende de la
CPU del ordenador.
Ventajas:

Velocidad, se transfiere el cdigo a la memoria directamente.

Inconvenientes:

Lentitud y dificultad en la codificacin.

Dificultad en la depuracin y puesta a punto.

Los programas slo son ejecutables en el mismo procesador.

LENGUAJE ENSAMBLADOR
Son algo ms fciles de utilizar que los lenguajes mquinas, pero
tambin dependen de la mquina en la que se utilice.
El lenguaje por excelencia es el ensamblador (assembly languaje).
Las instrucciones se denominan nemotcnicos ADD, SUB, MOV, etc.
El lenguaje escrito no puede ser ejecutado directamente por la
mquina, requiere un traductor. El original se denomina programa fuente y el
-3-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

traducido u objeto con extensin. COM ya es ejecutable por el ordenador. El


traductor se denomina ensamblador (assembler) no confundir con el lenguaje
de programacin ensamblador que tiene su estructura y gramtica definida. La
ventaja frente al lenguaje mquina es que es algo ms fcil la codificacin.
Inconvenientes:

Dependencia de la mquina, microprocesador.

La creacin de los programas es mucho ms compleja que los de alto nivel.


especialmente debido a la necesidad del conocimiento del interior del
ordenador.
Se utilizan de forma reducida en programas de aplicaciones en tiempo

real, control de procesos y de dispositivos electrnicos.


Lenguajes de Alto Nivel
Son los ms utilizados al estar diseados para que los programas se
entiendan de forma ms clara y fcil que los lenguajes mquina y
ensambladores. Pueden ser ejecutados en cualquier ordenador de forma
independiente al microprocesador utilizado. Esta caracterstica los hace
portables o transportables.
Ventajas:

Tiempo de formacin relativamente corto para los programadores.

Las reglas de escritura se parecen a las utilizadas en el lenguaje humano,


while, until, declare, etc.

Las modificaciones y puesta a punto de programas son ms fciles.

Portabilidad.

Inconvenientes:

Se explotan peor los recursos de la mquina.

La conversin a programa ejecutable es ms compleja.

Aumento de la ocupacin de memoria.

Su ejecucin es ms lenta.

-4-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

Los lenguajes de alto nivel son muy numerosos aunque el uso ms


frecuente se centra en:
C/C++, COBOL, Pascal/Delphi, Quick/Visual Basic.
estn muy extendidos:
Ada-95, Mdula-2, Prolog, LISP, Smalltalk, Eiffel.
en el mundo profesional:
Delphi, Visual Basic, C++Builder, Power Builder, Java.
en el mundo Internet:
Java Script, Vbscript, PHP, ASP, JSP.
TRADUCTORES DE LENGUAJE

Los Traductores son programas que traducen los programas fuente


(cdigo fuente) escritos en lenguajes de alto nivel a programa

ejecutable

(cdigo mquina), se dividen en intrpretes y compiladores.


Intrpretes
Un intrprete traduce un cdigo fuente en lenguaje mquina tambin. El
intrprete difiere del compilador en que ejecuta cada orden una vez que se
traduce.
Programa fuente Interprete Traduccin y ejecucin en lnea
Compiladores
Es un programa que traduce los programas escritos en lenguajes de alto
nivel a lenguaje mquina. Los programas obtenidos de la compilacin de
un programa fuente se denominan programas objeto o cdigo objeto. ste
programa obtenido no es directamente ejecutable pues es simplemente la
traduccin lnea a lnea del fuente.
Programa fuente Compilador Programa objeto
La compilacin y sus fases
Una vez obtenido un cdigo objeto mediante la compilacin, se hace
necesario el montaje de sus mdulos mediante un programa montador o

-5-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

enlazador (Linker). Este proceso genera un programa en cdigo mquina


directamente ejecutable.
Las fases del proceso de compilacin:
Programa fuente

Compilador

Programa objeto Montador

Programa ejecutable (cdigo ejecutable o cdigo mquina)


Los pasos para convertir un programa escrito en programa ejecutable son:

Escritura del programa fuente mediante un editor y almacenar en disco.

Compilacin

Verificar errores de compilacin. Listado de errores segn programa.

Obtencin del programa objeto.

Montaje mediante un enlazador y obtencin de programa ejecutable.

Ejecucin del programa, si no existen errores se tendr la salida adecuada.

En la actualidad casi todas las herramientas de programacin tienen


un IDE o Entorno Integrado de Desarrollo, ste consta de un editor con las
funciones necesarias para la compilacin y una serie de funciones que facilitan
la depuracin de los programas.

-6-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

Cuando un programa obtiene una salida que no es la esperada, se


dice que posee errores. Los errores son uno de los caballos de batalla de los
programadores ya que a veces son muy difciles de encontrar (de ah que hoy
en da en muchas aplicaciones se distribuyan parches para subsanar errores
no encontrados en la creacin de la aplicacin).
La labor del programador es predecir, encontrar y subsanar (si es
posible) o al menos controlar los errores. Una mala gestin de errores causa
experiencias poco gratas al usuario de la aplicacin.

-7-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

2. Generaciones, lenguajes y ordenadores

(lectura recomendada).

En el siguiente artculo podemos comprobar que todo est relacionado,


los conceptos no se pueden aislar en le mundo de la informtica, esta situacin
ha provocado que se est utilizando un concepto ms amplio para hablar de
informtica: las TICS, Tecnologas de la Informacin y la Comunicacin.
Fuente: www.jorgesanchez.net
Charles Babbage defini a mediados del siglo XIX lo que l llam la mquina
analtica. Se considera a esta mquina el diseo del primer ordenador. La
realidad es que no se pudo construir hasta el siglo siguiente. El caso es que su
colaboradora Ada Lovelace escribi en tarjetas perforadas una serie de
instrucciones que la mquina iba a ser capaz de ejecutar. Se dice que eso
signific el inicio de la ciencia de la programacin de ordenadores.
En la segunda guerra mundial debido a las necesidades militares, la ciencia de
la computacin prospera y con ella aparece el famoso ENIAC (Electronic
Numerical Integrator And Calculator), que se programaba cambiando su
circuitera. Esa es la primera forma de programar (que an se usa en
numerosas mquinas) que slo vale para mquinas de nico propsito. Si se
cambia el propsito, hay que modificar la mquina.
Cdigo mquina. Primera generacin de lenguajes (1GL)
No mucho ms tarde apareci la idea de que las mquinas fueran capaces de
realizar ms de una aplicacin. Para lo cual se ide el hecho de que hubiera
una memoria donde se almacenaban esas instrucciones. Esa memoria se poda
rellenar con datos procedentes del exterior. Inicialmente se utilizaron
tarjetas perforadas para introducir las instrucciones.
Durante mucho tiempo esa fue la forma de programar, que teniendo en
cuenta que las mquinas ya entendan slo cdigo binario, consista en
introducir la programacin de la mquina mediante unos y ceros. El llamado
cdigo maquina. Todava los ordenadores es el nico cdigo que entienden, por
lo que cualquier forma de programar debe de ser convertida a cdigo
mquina.
Slo se ha utilizado por los programadores en los inicios de la informtica. Su
incomodidad de trabajo hace que sea impensable para ser utilizado hoy en
da.
Pero cualquier programa de ordenador debe, finalmente, ser convertido a
este cdigo para que un ordenador puede ejecutar las instrucciones de dicho
programa.
Un detalle a tener en cuenta es que el cdigo mquina es distinto para cada
tipo de procesador. Lo que hace que los programas en cdigo mquina no sean
portables entre distintas mquinas.
Lenguaje ensamblador. Segunda generacin de lenguajes (2GL)
En los aos 40 se intent concebir un lenguaje ms simblico que permitiera
no tener que programar utilizando cdigo mquina. Poco ms tarde se ide el
lenguaje ensamblador, que es la traduccin del cdigo mquina a una forma
-8-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

ms textual. Cada tipo de instruccin se asocia a una palabra mnemotcnica


(como SUM para sumar por ejemplo), de forma que cada palabra tiene
traduccin directa en el cdigo mquina.
Tras escribir el programa en cdigo ensamblador, un programa (llamado
tambin ensamblador) se encargar de traducir el cdigo ensamblador a
cdigo mquina. Esta traduccin es rpida puesto que cada lnea en
ensamblador tiene equivalente directo en cdigo mquina (en los lenguajes
modernos no ocurre esto).
La idea es la siguiente: si en el cdigo mquina, el nmero binario 0000
significa sumar, y el nmero 0001 significa restar. Una instruccin mquina
que sumara el nmero 8 (00001000 en binario) al nmero 16 (00010000 en
binario)
sera: 0000 00001000 00010000
Realmente no habra espacios en blanco, el ordenador entendera que los
primeros cuatro BITS representan la instruccin y los 8 siguientes el primer
nmero y los ocho siguientes el segundo nmero (suponiendo que los nmeros
ocupan 8 bits). Lgicamente trabajar de esta forma es muy complicado. Por
eso se podra utilizar la siguiente traduccin en ensamblador: SUM 8 16
Que ya se entiende mucho mejor.
Puesto que el ensamblador es una representacin textual pero exacta del
cdigo mquina; cada programa slo funcionar para la mquina en la que fue
concebido el programa; es decir, no es portable.
La ventaja de este lenguaje es que se puede controlar absolutamente el
funcionamiento de la mquina, lo que permite crear programas muy
eficientes.
Lo malo es precisamente que hay que conocer muy bien el funcionamiento de
la computadora para crear programas con esta tcnica. Adems las lneas
requeridas para realizar una tarea se disparan ya que las instrucciones de la
mquina son excesivamente simples.
Lenguajes de alto nivel. Lenguajes de tercera generacin (3GL)
Aunque el ensamblador signific una notable mejora sobre el cdigo mquina,
segua siendo excesivamente crptico. De hecho para hacer un programa
sencillo requiere miles y miles de lneas de cdigo.
Para evitar los problemas del ensamblador apareci la tercera generacin de
lenguajes de programacin, la de los lenguajes de alto nivel. En este caso el
cdigo vale para cualquier mquina pero deber ser traducido mediante
software especial que adaptar el cdigo de alto nivel al cdigo mquina
correspondiente. Esta traduccin es necesaria ya que el cdigo en un lenguaje
de alto nivel no se parece en absoluto al cdigo mquina.
Tras varios intentos de representar lenguajes, en 1957 aparece el que se
considera el primer lenguaje de alto nivel, el FORTRAN (FORmula
TRANslation), lenguaje orientado a resolver frmulas matemticos. Por
ejemplo la forma en FORTRAN de escribir el texto Hola mundo por pantalla es:
PROGRAM HOLA
PRINT *, 'Hola, mundo!'
END
1 Ejemplo

tomado de la pgina http://www.victorsanchez2.net

-9-

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

Poco a poco fueron evolucionando los lenguajes formando lenguajes cada vez
mejores. As en 1958 se crea LISP como lenguaje declarativo para expresiones
matemticas.
Programa que escribe Hola mundo en lenguaje LISP:
(format t "Hola, mundo!")
En 1960 la conferencia CODASYL se creo el COBOL como lenguaje de
gestin en 1960. En 1963 se creo PL/I el primer lenguaje que admita la
multitarea y la programacin modular. En COBOL el programa Hola mundo
sera ste (como se ve es un lenguaje ms declarativo):
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
MAIN SECTION.
DISPLAY "Hola mundo"
STOP RUN.
BASIC se creo en el ao 1964 como lenguaje de programacin sencillo de
aprender en 1964 y ha sido, y es, uno de los lenguajes ms populares. En 1968
se crea LOGO para ensear a programar a los nios. Pascal se creo con la
misma idea acadmica pero siendo ejemplo de lenguaje estructurado para
programadores avanzados. El creador del Pascal (Niklaus Wirdth) creo Modula
en 1977 siendo un lenguaje estructurado para la programacin de sistemas
(intentando sustituir al C).
Programa que escribe por pantalla Hola mundo en lenguaje Pascal):
PROGRAM HolaMundo;
BEGIN
Writeln('Hola, mundo!');
END.

Lenguajes de cuarta generacin (4GL)


En los aos 70 se empez a utilizar ste trmino para hablar de lenguajes en
los que apenas hay cdigo y en su lugar aparecen indicaciones sobre qu es
lo que el programa debe de obtener. Se consideraba que el lenguaje SQL (muy
utilizado en las bases de datos) y sus derivados eran de cuarta generacin. Los
lenguajes de consulta de datos, creacin de formularios, informes,... son
lenguajes de cuarto nivel. Aparecieron con los sistemas de base de datos
Actualmente se consideran lenguajes de ste tipo a aquellos lenguajes que se
programan sin escribir casi cdigo (lenguajes visuales), mientras que tambin
se propone que ste nombre se reserve a los lenguajes orientados a objetos.

- 10 -

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

Lenguajes orientados a objetos


En los 80 llegan los lenguajes preparados para la programacin orientada a
objetos todos procedentes de Simula (1964) considerado el primer lenguaje
con facilidades de uso de objetos. De estos destac inmediatamente C++.
A partir de C++ aparecieron numerosos lenguajes que convirtieron los
lenguajes clsicos en lenguajes orientados a objetos (y adems con mejoras
en el entorno de programacin, son los llamados lenguajes visuales): Visual
Basic,Delphi (versin orientada a objetos de Pascal), Visual C++,...
En 1995 aparece Java como lenguaje totalmente orientado a objetos y en el
ao 2000 aparece C# un lenguaje que toma la forma de trabajar de C++ y del
propio Java.
El programa Hola mundo en C# sera:
using System;
class MainClass
{
public static void Main()
{
Console.WriteLine("Hola, mundo!");
}
}
Lenguajes para la Web
La popularidad de Internet ha producido lenguajes hbridos que se mezclan
con el cdigo HTML con el que se crean las pginas web. HTML no es un
lenguaje en s sino un formato de texto pensado para crear pginas web. stos
lenguajes se usan para poder realizar pginas web ms potentes.
Son lenguajes interpretados como JavaScript o VBScript, o lenguajes
especiales para uso en servidores como ASP, JSP o PHP. Todos ellos permiten
crear pginas web usando cdigo mezcla de pgina web y lenguajes de
programacin sencillos.
Ejemplo, pgina web escrita en lenguaje HTML y JavaScript que escribe en
pantalla Hola mundo :
<html>
<head>
<title>Hola Mundo</title>
</head>
<body>
<script type="text/javascript">
document.write("Hola mundo!");
</script>
</body>
</html>

- 11 -

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

3. Tipos de programacin.
Ya sabemos que son los programas, los lenguajes, su evolucin pero a la
hora de programar hay que distinguir distintos tipos de programacin, estos
tipos no siempre estn condicionado al tipo de lenguaje, en muchas
ocasiones dependen directamente ms del programador y de su metodologa
de trabajo que del propio lenguaje, vamos a aclarar este concepto.
La programacin consiste en pasar algoritmos a algn lenguaje de ordenador a
fin de que pueda ser entendido por el ordenador. La programacin de
ordenadores comienza en los aos 50 y su evolucin a pasado por diversos
pasos.
La programacin se puede realizar empleando diversas tcnicas o mtodos.
Esas tcnicas definen los distintos tipos de programaciones.

Programacin desordenada (no estructurada)


Se llama as a la programacin que se realizaba en los albores de la
informtica

(aunque

desgraciadamente

en

la

actualidad

muchos

programadores siguen emplendola). En este estilo de programacin,


predomina el instinto del programador por encima del uso de cualquier mtodo
lo que provoca que la correccin y entendimiento de este tipo de programas
sea casi ininteligible.
Ejemplo de uso de esta programacin (listado en Basic clsico):
10 X=RANDOM()*100+1;
20 PRINT escribe el nmero que crees que guardo
30 INPUT N
40 IF N>X THEN PRINT mi numero es menor GOTO 20
50 IF N<X THEN PRINT mi numero es mayor GOTO 20
60 PRINT Acertaste!
El cdigo anterior crea un pequeo juego que permite intentar adivinar un
nmero del 1 al 100.

- 12 -

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

Programacin estructurada
En esta programacin se utiliza una tcnica que genera programas que slo
permiten utilizar tres estructuras de control:
Secuencias (instrucciones que se generan secuencialmente)
Alternativas (sentencias if)
Iterativas (bucles condicionales)
El listado anterior en un lenguaje estructurado sera (listado en Pascal):
PROGRAM ADIVINANUM;
USES CRT;
VAR x,n:INTEGER;
BEGIN
X=RANDOM()*100+1;
REPEAT
WRITE(Escribe el nmero que crees que guardo);
READ(n);
IF (n>x) THEN WRITE(Mi nmero es menor);
IF (n<x) THEN WRITE(Mi nmero es mayor);
UNTIL n=x;
WRITE(Acertaste);
La ventaja de esta programacin est en que es ms legible (aunque en este
caso el cdigo es casi ms sencillo en su versin desordenada). Todo
programador debera escribir cdigo de forma estructurada.
Programacin modular
Completa la programacin anterior permitiendo la definicin de mdulos
independientes cada uno de los cuales se encargar de una tarea del
programa.
De esta forma el programador se concentra en la codificacin de cada mdulo
haciendo ms sencilla esta tarea. Al final se deben integrar los mdulos para
dar lugar a la aplicacin final.
El cdigo de los mdulos puede ser invocado en cualquier parte del cdigo.
Realmente cada mdulo se comporta como un subprograma que, partir de
unas

determinadas

entradas

obtienen

unas

salidas

concretas.

Su

funcionamiento no depende del resto del programa por lo que es ms fcil


encontrar los errores y realizar el mantenimiento.
- 13 -

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

Programacin orientada a objetos


Es la ms novedosa, se basa en intentar que el cdigo de los programas se
parezca lo ms posible a la forma de pensar de las personas. Las
aplicaciones se representan en esta programacin como una serie de
objetos independientes que se comunican entre s.
Cada objeto posee datos y mtodos propios, por lo que los programadores se
concentran en programar independientemente cada objeto y luego generar el
cdigo que inicia la comunicacin entre ellos.
Es la programacin que ha revolucionado las tcnicas ltimas de programacin
ya que han resultado un importante xito gracias a la facilidad que poseen de
encontrar fallos, de reutilizar el cdigo y de documentar fcilmente el
cdigo.

- 14 -

Tema 1. Desarrollo de Software.

Entornos de Desarrollo

ANEXO I. HISTORIA DE LOS LENGUAJES DE PROGRAMACIN:

Ejercicio 1.Hacer un esquema - resumen del tema.


Ejercicio 2.Hacer una lista con los conceptos del tema vistos hasta ahora,
definiendo a continuacin cada uno de ellos.

- 15 -

Vous aimerez peut-être aussi