Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Es un conjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una
computadora. Sin programas, estas mquinas no pueden funcionar. Al conjunto general de
programas, se le denomina software, que ms genricamente se refiere al equipamiento lgico o
soporte lgico de una computadora digital.
Es algo necesario para el funcionamiento de una computadora. Puede ser tanto un programa
ejecutable como su cdigo fuente, que es escrito por los programadores. Por otra parte, segn
sus funciones, un programa puede ser clasificado como un software de sistema o un software de
aplicacin.
Permitir a un usuario realizar uno o diversos tipos de trabajo. Esto lo diferencia principalmente de otros tipos de
programas como los sistemas operativos (que hacen funcionar al ordenador), las utilidades (que realizan tareas
de mantenimiento o de uso general), y los lenguajes de programacin (para crear los programas informticos).
Suele resultar una solucin informtica para la automatizacin de ciertas tareas complicadas como pueden ser la
contabilidad, la redaccin de documentos, o la gestin de un almacn. Algunos ejemplos de programas de
aplicacin son los procesadores de textos, hojas de clculo, y base de datos.
Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estn exclusivamente
diseadas para resolver un problema especfico. Otros, llamados paquetes integrados de software, ofrecen
menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de
clculo y de base de datos.
Otros ejemplos de programas de aplicacin pueden ser: programas de comunicacin de datos, Multimedia,
presentaciones, diseo grfico, clculo, finanzas, correo electrnico, compresin de archivos, presupuestos de
Algunas compaas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados
suites o suite ofimtica) que sean satisfactorios para las necesidades ms apremiantes del usuario. Todos y cada
uno de ellos sirven para ahorrar tiempo y dinero al usuario, al permitirle hacer cosas tiles con el ordenador (o
computadora); algunos con ciertas prestaciones, otros con un determinado diseo; unos son ms amigables o
fciles de usar que otros, pero bajo el mismo principio.
Software de aplicacin.
Software del sistema.
Software de red.
Analista funcional.
Analista orgnico.
Analista / programador.
Programador
Esta persona debe tener una autoridad real, una capacidad para tomar decisiones sobre la realizacin del
proyecto siempre respetando los objetivos del proyecto. La falta de autoridad o el exceso de
independencia de algunas reas informticas son la causa de muchas dificultades en los proyectos.
La misin del jefe de proyecto tiene dos vertientes, por un lado la tcnica, ha de concretar objetivos,
adecuar el proyecto a las posibilidades de la empresa, gestionar los recursos, cambiar los mtodos, etc.,
y por otro lado la de gestin de recursos humanos, materiales y de relacin con otros departamentos y
con el usuario o receptor del proyecto informtico.
En definitiva y como resumen las funciones del jefe de proyecto podran resumiese como tres:
Planificar, que es la nica forma de asegurar la finalizacin del proyecto en el plazo adecuado sin dejarlo
en manos de la improvisacin.
Coordinar, para que todas las acciones de los implicados en el proyecto tanto propios (componentes del
equipo de proyecto) como externos (usuarios u otros departamentos o empresas), sean eficaces y no den
lugar a conflictos.
El usuario, como conocedor de las funciones y necesidades a cubrir por el proyecto, debe
tambin ser involucrado en el mismo.
Debe contarse tambin desde el principio con la participacin del personal tcnico de
otros departamentos, como sistemas, seguridad, control de calidad o explotacin, etc.
Es especialmente importante que todos los componentes del equipo tcnico conozcan
con la suficiente antelacin la planificacin del proyecto, para que dispongan de tiempo
suficiente para cumplir los plazos
Vista la funcin del jefe de proyecto, cabe considerar la composicin y funcionalidad del
resto del equipo. No vamos a tener en cuenta el numero de componentes, que variar de
un proyecto a otro, de hecho la funcionalidad de los componentes tampoco es estricta y
puede variar o incluso no ser necesaria la participacin de alguno de ellos.
LAS FUNCIONES PROPIAS DE LOS COMPONENTES DEL PROYECTO SON LAS DE ANLISIS Y
PROGRAMACIN:
Anlisis o Diseo:
Funcional o externo
Programacin:
Codificacin
Estas funciones dan lugar a los puestos de trabajo: Analista funcional, Analista orgnico y Programador.
Exista un puesto eslabn entre el de analista y el programador, es el analista-programador. Este puesto surge
debido a la dbil separacin que existe entre los puestos anteriores, especialmente en proyectos pequeos.
Por otra parte tambin es interesante que el programador tenga algo de conocimiento de anlisis tcnico, ya
que al final esto implica una disminucin de los costes.
Por lo general dentro de un proyecto el numero de programadores puros es mucho mayor que el de analistas,
sin embargo esto tiende a cambiar, lo ideal seria que el anlisis y diseo pudiesen ser introducidos
directamente en programas que de manera automtica generasen el cdigo, eliminando la tediosa tarea de
codificacin y dejndole al tcnico tan solo la tarea de diseo funcional y tcnico. En la actualidad aun es
necesaria una gran cantidad de programadores que realicen estas tareas
Estudio de viabilidad
Identificacin de procesos
En un entorno informtico estable, la decisin de iniciar un proyecto viene dada por las necesidades de:
mantenimiento, modificacin, mejoramiento, reemplazo o capacidad.
El Mantenimiento del programa; es una consecuencia de una omisin realizada en la etapa del diseo del
sistema e involucra solucionar fallas menores del sistema, que obligar a la realizacin de cambios en el
programa; como por ejemplo el descuido de no considerar que puedan ocurrir en el sistema, ciertas
condiciones extraordinarias; como sera el caso de un aumento no previsto del 60 %, en la emisin de
rdenes de compra. Las fallas tambin pueden provenir de otros factores, como ser en el caso de que
existan cambios en las expectativas de los usuarios.
La Modificacin del programa; involucra algo ms que un simple cambio en el programa; involucra un
cambio estructural de una entidad Por ejemplo, un cambio en el nmero de dgitos del cdigo postal, o
en el cdigo de zona telefnica. La diferencia con el Mantenimiento es el grado de importancia.
El Mejoramiento del sistema; es el agregado de capacidades que no formaron parte del sistema de
informacin original; por ejemplo cuando en una divisin se implement un sistema de inventarios, este
sistema no inclua un modulo para calcular la futura demanda de bienes y partes. La inclusin de este
El Reemplazo del sistema; ocurre cuando los sistemas de informacin se tornan fsicamente,
tecnolgicamente o competitivamente obsoletos. Como es el caso de la utilizacin del lser, en el
reconocimiento ptico de caracteres para la lectura del cdigo de barras, remplazando a la entrada por
teclado.
La Nueva Capacidad del sistema; son sistemas de informacin para los cuales no es necesario el uso de
la automatizacin. Estn dados por la capacidad de poder modelizar la aplicabilidad de nuevos sistemas.
Un ejemplo de ello, es la aplicacin de los sistemas expertos.
Un proyecto nace a partir del momento en que se formulan sus necesidades. La persona que se vaya a
encargar de su direccin tiene el deber de estudiarlas con los usuarios (clientes) y hacer el estudio de
viabilidad en sus dos principales vertientes:
Tcnica
Econmica
Se debe llevar a cabo una previsin para realizar la determinada aplicacin de software en una fecha
prevista y ponerlo en marcha con recursos limitados tales como materiales, programas y personas que
no posean necesariamente ni el mismo lenguaje ni los mismos objetivos laborales.
Las razones del fracaso de un proyecto informtico, aparte de las citadas en las archifamosas leyes de
Murphy, son:
Ausencia del estudio de viabilidad para ajustarse a unas necesidades claramente explicitadas y
comprendidas.
Falta de utilizacin de herramientas adecuadas para poder validar el comportamiento del sistema en el
futuro, donde es necesario disponer de una buena herramienta de simulacin.
Ausencia o mal seguimiento que se llevan a cabo en momentos inoportunos o que no se ajustan a la
realidad
Qu es el cdigo fuente?
El trmino cdigo tiene diferentes usos y
significados. Se trata, por ejemplo, de una
combinacin de signos que, dentro de un
sistema establecido, tiene un determinado
valor: El programador tendr que corregir el
cdigo del software para que funcione de
manera correcta.
En el caso de la informtica, se conoce como
cdigo fuente al texto desarrollado en un
lenguaje de programacin y que debe ser
compilado o interpretado para poder ejecutarse
en una computador
Qu es el cdigo fuente?
Texto escrito en un lenguaje de
programacin especfico y que puede ser
ledo por un programador. Debe traducirse
a lenguaje mquina para que pueda ser
ejecutado por la computadora o a
bytecode para que pueda ser ejecutado
por un intrprete. Este proceso se
denomina compilacin.
Qu es el cdigo fuente?
Acceder al cdigo fuente de un programa
significa acceder a los algoritmos
desarrollados por sus creadores. Es la
nica manera de modificar eficaz y
eficientemente un programa.
Qu es el cdigo fuente?
Liberar un cdigo fuente significa compartir ese
texto con cualquier persona que lo desee, esto
implica que cualquiera puede analizarlo,
copiarlo o modificarlo. Las aplicaciones que
liberan sus cdigos suelen ser gratuitas bajo
licencia GNU. La liberacin de un cdigo de un
programa implica ciertos riesgos en cuanto a la
seguridad del mismo, pues su funcionamiento
exacto queda expuesto. El cdigo fuente no
suele liberarse para las aplicaciones
comerciales y no puede obtenerse el cdigo
fuente original a travs de los programas ya
compilados.
Qu es el cdigo fuente?
CDIGO FUENTE
Cada lenguaje de programacin tiene un
su propio cdigo fuente.
A continuacin veremos ejemplos de
cdigos fuente que pertenecen a distintos
lenguajes de programacin.
begin
inc:=alfa;
for i:=1 to n-1 do
begin
x2:=round(x+r*cos(inc));
y2:=round(y+r*sin(inc));
draw(x,y,x2,y2,color);
if r>rMin then rama(x2,y2,r*reduc,inc-(n-2)/n*pi);
inc:=inc+2*pi/n;
end;
end;
begin
inc:=alfa;
for i:=1 to n do
begin
x2:=round(x+r*cos(inc));
y2:=round(y+r*sin(inc));
draw(x,y,x2,y2,color);
rama(x2,y2,r*reduc,inc-(n-2)/n*pi);
inc:=inc+2*pi/n;
end;
end;
const
reduc:array[3..6] of real=(0.63,0.5,0.38,0.32);
rMin:array[3..6] of byte=(1,2,1,1);
var
i:integer;
tecla:char;
BEGIN
for i:=3 to 6 do
begin
graphColorMode;
palette(2);
estrella(160,100,i,45,rMin[i],3,reduc[i],0.1);
read(kbd,tecla);
end;
textMode;
END.
constructor TComponent.Create(AOwner :
TComponent); begin inherited
Create(AOwner); ... end; destructor
TComponent.Destroy; begin ... inherited
destroy; end;
Cdigo objeto
En programacin, se llama cdigo objeto al
cdigo que resulta de la compilacin del cdigo
fuente.
Consiste en lenguaje mquina o bytecode y se
distribuye en varios archivos que corresponden
a cada cdigo fuente compilado. Para obtener
un programa ejecutable se han de enlazar todos
los archivos de cdigo objeto con un programa
llamado enlazador (linker).
Cdigo Objeto
En programacin, cuando se desarrolla un
programa, en la fase de codificacin el
compilador traducir el codigo fuente a
codigo mquina, tambin llamado cdigo
objeto, siempre y cuando, el propio
compilador no detecte ningn error en
dicho cdigo fuente.
Cdigo objeto
Trmino genrico para nombrar las
instrucciones del programa, utilizadas en dos
sentidos generales. El primero se refiere al
cdigo fuente, legible a simple vista, que son las
instrucciones escritas por el programador en un
lenguaje de programacin. El segundo se refiere
al cdigo mquina ejecutable, que son las
instrucciones convertidas de cdigo fuente a
instrucciones que el ordenador o computadora
puede comprender.
Cdigo Objeto
En informtica, cdigo generado por un
compilador o un ensamblador, traducido a
partir del cdigo fuente de un programa.
Casi siempre este trmino se refiere al
cdigo mquina que puede ejecutarse
directamente en la unidad central de
proceso (CPU) del sistema, pero tambin
puede ser cdigo fuente de lenguaje
ensamblador o una variante de cdigo
mquina.
Cdigo Ejecutable
Cdigo ejecutable: resultado de enlazar
uno o varios fragmentos de cdigo objeto.
Constituye un archivo binario con un
formato tal que el sistema operativo es
capaz de cargarlo en la memoria de una
computadora, y proceder a su ejecucin.
El cdigo ejecutable es directamente
inteligible por el procesador.
Cdigo Ejecutable
Cdigo (programa) ejecutable: listo para
ser ejecutado en el computador.
Puede contener errores lgicos
(programa no bien diseado).
Cdigo Ejecutable
Cdigo ejecutable corresponde a las unidades de
programas, donde el ordenador puede realizar las
instrucciones compiladas mediante el compilador y el
enlazador de libreras.
Generalmente se confunde con el cdigo objeto, ya que
al leer su estructura se comprende como smbolos. Pero
en realidad, este cdigo se encuentra empaquetado y
listo para ser ejecutado en cualquier computadora.
Generalmente vienen con la extensin EXE o COM, si
los han de ejecutar computadoras con Sistema
Operativo de Windows o con bits de marca que trae
Linux para ser ejecutable.
El beneficio que esto trae es que al tener el cdigo
ejecutable, podemos saber que la compilacin fue
realizada correctamente y que el programa, si no tiene
errores de manejo, puede funcionar correctamente, ya
que esta libre de errores de variables, signos y dems.
Mquinas Virtuales
En informtica una mquina virtual es un
software que emula a una computadora y
puede ejecutar programas como si fuese
una computadora real. Este software en
un principio fue definido como "un
duplicado eficiente y aislado de una
mquina fsica". La acepcin del trmino
actualmente incluye a mquinas virtuales
que no tienen ninguna equivalencia
directa con ningn hardware real.
Mquina Virtual
Una mquina virtual es simplemente una
computadora abstracta, una computadora
o mquina emulada a partir de software.
Una idea para nada nueva y cuyo trmino
acuo IBM en 1959.
Mquinas Virtuales
Una mquina virtual es como una capa intermedia entre
el hardware de la computadora y algn software y puede
encargarse de funciones como traducir instrucciones o
simular el funcionamiento de una computadora concreta.
Hay desde las ms complejas que emulan una
computadora en su totalidad (Incluyendo tarjetas de
video, discos duros, etc.), hasta otras ms sencillas y
especializadas que brindan solo una capa de
abstraccin entre plataformas de hardware y software
muy concretas.
Mquinas Virtuales
Una caracterstica esencial de las
mquinas virtuales es que los procesos
que ejecutan estn limitados por los
recursos y abstracciones
proporcionados por ellas. Estos
procesos no pueden escaparse de esta
"computadora virtual".
Mquinas Virtuales
Uno de los usos domsticos ms extendidos de
las mquinas virtuales es ejecutar sistemas
operativos para "probarlos". De esta forma
podemos ejecutar un sistema operativo que
queramos probar (GNU/Linux, por ejemplo)
desde nuestro sistema operativo habitual (Mac
OS X por ejemplo) sin necesidad de instalarlo
directamente en nuestra computadora y sin
miedo a que se desconfigure el sistema
operativo primario.
Mquinas Virtuales
Una MV se puede definir sencillamente como una
capa de abstraccin que separa el funcionamiento
de un ordenador de su hardware. Adems, las MV
se dividen en abstractas o tericas, como sera la
mquina de Turing (el primer ejemplo de una MV)
y modelos como el clculo de o lambda, y
concretas o prcticas (a las que se quiere
normalmente se hace referencia al hablar de MV).
En esta seccin se tratarn las MV concretas que,
como se ver, son capas de software que juegan
un papel relevante tanto en el funcionamiento de
los lenguajes compilados como interpretados.
Mquinas Virtuales
Las MV se construyeron para simplificar el
proceso del control del hardware de un ordenador
porque extienden y enmascaran la funcionalidad
del hardware a travs de procedimientos y
datos abstractos. Se pueden identificar dos tipos
de MV concretas: las que juegan un papel en la
preparacin de un programa para su ejecucin
(tiempo de compilacin) y las que permiten la
ejecucin de dicho programa.
Mquinas Virtuales
Las MV se distinguen entre s segn tres
criterios:
La concepcin de las MV que tiene el
desarrollador basada en la definicin del
lenguaje.
Las facilidades disponibles en el hardware
del ordenador.
Las decisiones de implementacin
tomadas por los desarrolladores.
VMWare.
VirtualPC.
VirtualBox.
1.4.-TIPOS DE LENGUAJES
DE PROGRAMACIN.
CLASIFICACIN.
TIPOS DE LENGUAJE DE
PROGRAMACIN
Un lenguaje de programacin es un idioma artificial diseado para
TIPOS DE LENGUAJES DE
PROGRAMACIN
El ordenador slo entiende un lenguaje
conocido como cdigo binario o cdigo
mquina, consistente en ceros y unos. Es
decir, slo utiliza 0 y 1 para codificar
cualquier accin.
TIPOS DE LENGUAJE DE
PROGRAMACIN
Existen tres tipos de lenguajes :
*Los lenguajes de bajo nivel.
LENGUAJE MQUINA
El lenguaje mquina, por lo tanto, no es
comprensible para los seres humanos,
razn por la cual se han desarrollado
lenguajes intermediarios comprensibles
para el hombre. El cdigo escrito en estos
lenguajes intermediarios se transforma en
cdigo mquina para que el procesador
pueda procesarlo.
LENGUAJE ENSAMBLADOR
El lenguaje ensamblador es un derivado del lenguaje
maquina y esta formado por abreviaturas de letras y
nmeros llamadas mnemotcnicos.
Con la aparicin de este lenguaje se crearon los
El lenguaje ensamblador
es un lenguaje de medio
nivel.
Los lenguajes de medio
nivel son lenguajes de
segunda generacin.
1.5.-CARACTERSTICAS DE
LOS LENGUAJES MS
DIFUNDIDOS.
C
Es un lenguaje de propsito general, de alto nivel, (aunque controla
perfectamente las operaciones de bajo nivel), y estructurado.
Es altamente portable de unos sistemas a otros, siendo ese el motivo
C++
Fue creado como un puente entre el lenguaje C y la programacin
orientada a objetos.
Se puede usar en combinacin con C. Cualquier sentencia en C es correcta
en C++.
Es un lenguaje de propsito general.
Es un lenguaje de alto nivel orientado a objetos.
Reutilizacin del cdigo en forma de libreras de usuario.
Como C, genera programas rpidos.
El cdigo es transportable, es decir, un programa ANSI en C o C++ podr
ejecutarse en cualquier mquina y bajo cualquier sistema operativo.
Como C, proporciona un acceso a bajo nivel de hardware slo igualado por
el ensamblador.
JAVA
Es un lenguaje de programacin orientado a objetos.
De propsito general.
El uso de la mquina virtual JVM (Java Virtual Machine) garantiza
la independencia de la plataforma en Java. Si disponemos de una
mquina virtual para nuestra plataforma, podremos ejecutar el
mismo programa escrito en Java sin necesidad de volverlo a
compilar.
En el proceso de compilacin de un programa en Java, se genera un
cdigo intermedio, llamado bytecode, que la mquina virtual
a. Cdigo fuente
b. Cdigo objeto
c. Cdigo ejecutable
COMPILACIN
Aunque el proceso de obtener nuestro cdigo ejecutable
pase tanto por un compilador como por un enlazador, se
suele llamar al proceso completo compilacin.
Fases de la compilacin:
Anlisis lexicogrfico: se leen de manera secuencial todos los
caracteres de nuestro cdigo fuente, buscando palabras
reservadas, operaciones, caracteres de puntuacin y
agrupndolos todos en cadenas de caracteres que se denominan
lexemas.
Anlisis sintctico-semntico: agrupa todos los componentes
lxicos estudiados en el anlisis anterior en forma de frases
gramaticales. Con el resultado del proceso del anlisis sintctico,
se revisa la coherencia de las frases gramaticales, si su
significado es correcto, si los tipos de datos son correctos,.., y
as consecutivamente con todas las reglas semnticas de
nuestro lenguaje.
Concepto de aplicacin
TIPOS DE APLICACIONES:
Aplicaciones verticales: de finalidad especfica para
un tipo muy delimitado de usuarios (mdicos,
abogados, arquitectos),Ejemplo: AUTOCAD.
Aplicaciones horizontales: de utilidad para una
CONCEPTOS PREVIOS
Sistema: Es un conjunto de elementos que interaccionan entre
s, orientados a la consecucin de un objetivo comn. Est
situado en un entorno o ambiente con el que interacta, recibe
entradas y produce salidas. Un sistema puede formar parte de
otro ms general, que sera su entorno, y/o estar formado por
otros sistemas, que en este caso lo tendran a l como entorno
comn, denominndose subsistemas. Ejemplos: una escuela, un
banco, un hospital,
CLASIFICACIN DE SISTEMAS
a) Por su naturaleza:
Naturales: sistemas creados en los que el hombre no
interviene en su creacin.
Artificiales: sistemas creados por el hombre.
b) Por su relacin con el Medio Ambiente:
Abierto: sistemas que interactan con el contexto,
intercambiando elementos, sin esta interaccin no podran
existir.
Cerrado: sistemas aislados, no interaccionan con el
contexto.
MODELO EN CASCADA
ESTUDIO DE FACTIBILIDAD
Cul es el coste?
costes?
Factibilidad Operativa: Puede el software
desarrollarse y ejecutarse en esta organizacin?
Se descartan las alternativas que no cumplen con las tres factibilidades y se prepara un
informe al usuario - cliente, que tiene la siguiente forma:
ANLISIS
La fase de anlisis define los requisitos del software que hay
que desarrollar.
Inicialmente, esta etapa comienza con una entrevista al cliente,
DISEO
En esta etapa se pretende determinar el funcionamiento
de una forma global y general, sin entrar en detalles. Uno
de los objetivos principales es establecer las
consideraciones de los recursos del sistema, tanto fsicos
como lgicos.
Se define por tanto el entorno que requerir el sistema,
CODIFICACIN
Una vez definido el software hay que programarlo.
PRUEBAS
Con una doble funcionalidad: las pruebas buscan confirmar que la codificacin ha
sido exitosa y el software no contiene errores, a la vez que se comprueba que el
software hace lo que debe hacer.
No es un proceso esttico, y es usual realizar pruebas despus de otras etapas,
como la documentacin.
Generalmente, las pruebas realizadas posteriormente a la documentacin se
realizan por personal inexperto en el mbito de las pruebas de software, con el
objetivo de corroborar que la documentacin sea de calidad y satisfactoria para el
buen uso de la aplicacin.
En general, las pruebas las realiza personal diferente al que codific la aplicacin,
DOCUMENTACIN
Por norma general, la documentacin que se realiza de un
software tiene dos caras: la documentacin disponible para el
usuario y la documentacin destinada al propio equipo de
desarrollo.
La documentacin para el usuario debe mostrar una informacin
completa y de calidad que ilustre mediante los recursos ms
adecuados cmo manejar la aplicacin. Una buena
documentacin debera permitir a un usuario cualquiera
comprender el propsito y el modo de uso de la aplicacin sin
informacin previa o adicional.
EXPLOTACIN
Se instala el software para que el usuario interacte con el sistema
en forma autnoma e independiente.
Cabe destacar que en caso de que nuestro software sea una versin
sustitutiva de un software anterior es recomendable valorar la
convivencia de sendas aplicaciones durante un proceso de
adaptacin.
MANTENIMIENTO
Son muy escasas las ocasiones en las que un software no
principio a fin.