Download tema 4: fundamentos de software

Document related concepts

Máquina virtual wikipedia , lookup

Middleware wikipedia , lookup

Virtualización de escritorio wikipedia , lookup

Computación grid wikipedia , lookup

Computación distribuida wikipedia , lookup

Transcript
TEMA 4: FUNDAMENTOS DE SOFTWARE.
1. INTRODUCCION
Es sabido por todos hoy en día que la informática ha sufrido grandes
cambios a lo largo de su historia de vida y quién sabe los cambios que están
por venir. Lo cierto es que uno de sus grandes avances se ha producido
precisamente entorno al software, al que precisamente dedicaremos este
capítulo. En él, veremos, de manera sencilla, qué es el software y sus
distintos tipos, así como su evolución histórica. El interés de este capítulo
reside en dar a nuestros lectores una idea del software que actualmente
existe en el mercado (tipos y características básicas) para que de ese modo
pueda comprender lo importante que es para una empresa y sus recursos
humanos la utilización del adecuado software según las necesidades.
2. CONCEPTOS DE SOFTWARE Y EVOLUCION
Para llegar a comprender qué es el software, debemos empezar la
exposición por describir los elementos que componen un ordenador.
Podríamos hacer una gran lista de elementos, pero en definitiva, el
ordenador se compone de dos partes: hardware y software.
El hardware, como ya se expuso en el capítulo anterior, es la parte física o
material de todo ordenador y el software es la parte inmaterial, intangible
del mismo. Metafóricamente serían el cuerpo (hardware) y el alma
(software) del sistema informático.
Pues bien, una vez que nos hacemos una idea, a grosso modo, podemos
exponer una definición de software.
El software de un ordenador es un conjunto de programas (un programa es
una secuencia de instrucciones que son interpretadas por un ordenador,
dando como fruto un resultado pretendido y determinado) cuya función
principal es hacer que el ordenador funcione, haciendo que las actuaciones y
tareas a realizar por éste sigan un esquema lógico y predeterminado de
funcionamiento.
Un ordenador, por sí mismo, no es capaz de hacer algo, necesita de alguien
que lo dirija y le de una serie de instrucciones. Ese alguien es el usuario y
las instrucciones vienen dadas en los programas. Finalmente es el usuario
quien, en definitiva, le dice al ordenador qué tiene que hacer y cuándo, pues
el cómo viene especificado en los programas, es decir, en el software.
Desde otra óptica, podemos decir que el software es aquel elemento que
hace de unión entre el hombre y la máquina (el hardware).
Como un ordenador no puede comunicarse con el hombre por sí solo y el
hombre tampoco puede hacerlo con el ordenador, ya que ambos utilizan
lenguajes diferentes, el software es el que se encargaría de disminuir o
eliminar esa barrera de incomprensión actuando de intermediario y
estableciendo procedimientos de comunicación entre ambos.
La evolución que han tenido los sistemas operativos se ha producido de
manera paralela al desarrollo del hardware. Para exponer su proceso
histórico vamos a servirnos de la clasificación por etapas temporales o
generaciones; de este modo, se puede observar que se ha producido hasta
cuatro generaciones de sistemas operativos y que son las que ahora vamos a
desarrollar.
1ª generación (1945 – 1955)
En este período de tiempo es cuando surgen las primeras computadoras en
donde los programadores programaban directamente el hardware de la
misma. En realidad no podemos decir que existiera un sistema operativo,
pero sí que se empezó a vislumbrar su futuro nacimiento. Era una época en
la que las computadoras no eran más que máquinas de cálculo constituidas
mediante bulbos. Ocupaban una habitación completa debido a sus grandes
dimensiones y trabajaban muy lentamente.
Su programación se realizaba con lenguaje máquina, necesitándose el
empleo de conexiones para controlar las funciones básicas de la máquina.
Para conseguir una visión simple, se trataba de computadoras o máquinas
enchufadas a tableros.
Principalmente las operaciones realizadas por estas máquinas eran de
cálculo matemático.
No es hasta comienzos de los años 50 cuando se incorporaron las tarjetas
perforadas en las que se escribían los programas para su posterior lectura
con lo que se mejoró la rutina de los procesos.
Entre las personas que fueron capaces de crear máquinas como éstas
estaban JhonVonNewman, HowardAiken, J. Prespe R. Eckert y
WilliamsMauchley.
2ª generación (1955 – 1965)
Es la empresa General Motors la que implanta por primera vez un sistema
operativo en su ordenador IBM 170.
En esta generación surge el sistema de procesamiento por lotes en donde el
trabajo se agrupaba cuando sus secuencias de pasos resultaba repetitiva,
con lo que se ahorraba tiempo en la realización de las mismas. Consistía en el
procesamiento de trabajos según el orden de admisión o entrada, de tal
modo que hasta que no finalizara una tarea no se podía comenzar con la
siguiente.
3ª generación (1965 – 1980)
Surgen los denominados circuitos integrados y la multiprogramación.
Fue IBM en su línea 360, quien empleó por vez primera un sistema operativo
utilizando circuitos integrados que permitían dar soporte simultáneamente a
trabajos por lotes, compartiendo tiempos y procesos. Se trataba de un
sistema operativo enorme y complejo que funcionaba con un gran volumen de
información.
También surge el concepto de multiprogramación. Las computadoras
adquieren la capacidad de leer el contenido de las tarjetas y pasarlo al disco
(en la parte de memoria libre que le quedara), con el objetivo de
incrementar la productividad de la UCP al reducir tiempos muertos.
En esta generación los ordenadores son de propósito general.
4ª generación (1980 – actualidad)
Surgen los sistemas operativos en red y distribuidos a los que
posteriormente nos referiremos en el apartado 2.1.1. de este capítulo.
También surgen los ordenadores personales y las estaciones de trabajo y se
produce uno de los grandes avances en los sistemas operativos: las
interfaces amigables que hacen al usuario el trabajo mucho más fácil. Se
hacen muy populares el MS-DOS, UNIX y Windows, con sus diferentes
versiones.
Se utilizan circuitos integrados VLSI (VeryLargeScaleIntegration) y
aparecen los microprocesadores.
Los grandes adelantos de esta época son:

El concepto de máquina virtual, que trata de emular a otras máquinas.

El uso de los sistemas de gestión de bases de datos.

La conectividad entre ordenadores brindando la oportunidad del
traspaso de información de ordenador a ordenador, donde quiera que
estén situados (véase capítulo 8).
3. LASIFICACION DEL SOFTWARE
El software se puede dividir.
3.1 SOFTWARE DE BASE
El software de base o software de sistema, es aquel conjunto de programas
que tienen como misión facilitar el uso del ordenador por parte de los
usuarios y además comunicarlo con sus periféricos, asignándolos y
administrándolos.
Entre sus funciones se podrían citar las siguientes:

Establece una relación muy básica entre la máquina y la persona o
usuario, haciendo de intermediario.

Cumple con funciones que para el usuario serían muy engorrosas o muy
difíciles de ejecutar.

Hace que el usuario trabaje con su ordenador de manera sencilla y
cómoda.

Controla las operaciones que realiza la máquina.
Este tipo de software se puede dividir en sistema operativo y en programas
de utilidades.
3.3.1 SISTEMAS OPERATIVOS
Entendemos por sistema operativo aquel conjunto de programas orientados
a controlar todos los dispositivos del ordenador, dirigiendo sus operaciones
básicas. Como resultado de ello facilita y mejora el rendimiento de los
procesos que suceden en el ordenador, como por ejemplo, controlar la
impresora, el monitor, coordinar el solapamiento de varios programas para
que actúen conjuntamente, permitir trabajar simultáneamente con varios
periféricos diferentes, etc...
En resumen, básicamente, podemos concluir que el sistema operativo
persigue los objetivos de:

Servir de nexo de unión o interfaz entre el hardware y el usuario, de
manera sencilla y amigable.

Optimizar los recursos del ordenador (software y hardware).
Dentro de los sistemas operativos se puede hacer una clasificación
atendiendo al servicio que ofrecen, la cual se muestra en la figura 4.3.
Veamos cada uno de ellos más detenidamente.
Monousuario.
Los sistemas operativos monousuarios son aquellos que dan servicio a un sólo
usuario, independientemente del número de procesadores que tenga la
computadora o el número de tareas que el mismo usuario pueda ejecutar al
mismo tiempo.
Normalmente, los típicos PC (ordenadores personales), se han incluido en
esta clasificación.
Multiusuario.
En este caso, los sistemas operativos dan servicio a varios usuarios a la vez,
bien sea empleando varios terminales conectados a la computadora u
ordenador central, o bien a través de sesiones remotas dentro de una red
de comunicaciones.
Monotarea.
Se trata de sistemas operativos que tan sólo permiten que el usuario realice
una tarea y que para la ejecución de otra debe terminar la anterior, es
decir, no se pueden llevar a cabo varias tareas a la vez.
Multitarea.
El sistema operativo multitarea es aquel permite que el usuario realice
varias tareas de manera simultánea.
Uniproceso.
Si el sistema operativo es uniproceso sólo es capaz de utilizar un sólo
procesador del sistema. Un ejemplo de este tipo de sistemas operativo sería
el MS-DOS.
Multiproceso.
En este caso el sistema operativo es capaz de usar varios procesadores del
sistema, de tal manera que podría distinguiendo su trabajo entre ellos.
Estos sistemas operativos pueden trabajar de dos formas bien distintas, de
manera simétrica o de manera asimétrica.
Cuando trabaja de manera simétrica, los procesos que se ejecutan serán
enviados de manera indistinta a cualquier procesador en función de su
disponibilidad, siendo tal vez ésta la manera más equilibrada de trabajar. En
cambio, cuando opera de forma asimétrica, es el propio sistema operativo el
que determina el procesador principal que posteriormente distribuirá la
carga a los demás como si de un “jefe” se tratara.
Existe otra forma de clasificación de los sistemas operativos, atendiendo a
la manera de ofrecer sus servicios. Así, existirían dos tipos de sistemas
operativos:
Sistemas operativos en red.
Son aquellos que gozan de la capacidad de interactuar con otros sistemas
operativos ubicados en otras computadoras mediante una red de
transmisión. Esta interconexión permitiría el intercambio de información
entre distintos ordenadores tales como archivos de datos, imágenes o
sonidos; así como la ejecución de comandos remotos y cualquier posibilidad
de trabajo que permita dicha red (ver epígrafe 3.3 del capítulo 8).
Sistemas operativos distribuidos.
Este tipo de sistema operativo engloba los servicios del tipo anterior y
además integra otros recursos como impresoras, unidades centrales de
procesos, memoria, etc., en una sola máquina, de este modo, el usuario podrá
emplear el recurso que necesite con independencia de su ubicación,
compartiendo con otros usuarios dispositivos y datos.
3.1.2 PROGRAMAS DE UTILIDADES
Son aquellos programas cuya función es facilitar la comunicación con el
usuario, proporcionando un entorno de trabajo adecuado para la ejecución
de aplicaciones u otros programas.
3.2 SOFTWARE DE APLICACION
Podríamos definir el software de aplicación como un conjunto de programas
que ayudan a resolver las necesidades de los usuarios.
La diferencia que existe entre un programa de aplicación y un programa de
utilidad estriba en que éstos últimos sirven para que el usuario se relacione
con el ordenador, facilitando su uso, mientras que los de aplicación ayudan al
usuario en la realización de tareas que anteriormente se realizaban
manualmente.
Gracias al software de aplicación, el hombre utiliza el ordenador para que su
trabajo se convierta en algo más liviano y le ayude en gran medida en todas
aquellas actividades de carácter repetitivo. Como ejemplos de estas
aplicaciones tenemos:

Procesadores de texto.

Editores.

Hojas de cálculo.

Sistemas de gestión de bases de datos.

Programas de comunicaciones.

Paquetes integrados.

Etc.
Resulta muy útil diferenciar, dentro del software de aplicación, entre
aplicaciones verticales y horizontales.
3.2.1 SOFTWARE VERTICAL Y HORIZONTAL
El software vertical es un conjunto de programas de aplicación que están
orientados a un tipo concreto de usuarios (médicos, ingenieros,
economistas,...) o a un tipo determinado de negocio (farmacias, notarías,
video clubs, etc) y tratan de resolver todas sus necesidades.
Tradicionalmente, en las empresas existían muchas aplicaciones verticales,
pero hoy en día han perdido importancia. La mayoría se realizaban mediante
el sistema “llave en mano”, que resolvían todas las necesidades de la
empresa. En la actualidad se emplean más las aplicaciones horizontales.
Por su parte, el software horizontal, tiene como objetivo resolver
problemas o necesidades concretas, cuya utilidad puede ir dirigida a una
amplia variedad de usuarios. Por ejemplo, podríamos citar como aplicaciones
horizontales un procesador de texto, una hoja de cálculo, un sistema de
gestión de bases de datos, etc.
Independientemente de la anterior clasificación, no podíamos concluir este
apartado sin citar otra clasificación del software de aplicación, a saber,
estándar o a medida.
3.2.2 SOFTWARE ESTANDAR Y A MEDIDA
El software estándar ha sido realizado de forma genérica para un conjunto
indeterminado de usuarios, de tal manera que una vez terminado, puede ser
utilizado con una serie de variantes por un gran número de ordenadores.
Aunque se realiza de forma genérica, normalmente ofrece la posibilidad de
parametrización en el momento de su instalación, es decir, adaptarlo, en
definitiva, a las circunstancias de uso.
El software a medida es aquel que ha sido diseñado por analistas y
programadores para resolver las necesidades concretas de un usuario.
Esta diferenciación resulta muy importante y a la hora de tener que decidir
acerca de uno u otro, deberíamos tener presentes cuáles son las ventajas
que de ellos se derivan.

Una ventaja de la programación a medida es que se adapta muy bien a
las necesidades reales. Pero a veces surgen controversias entre las
personas que tienen que trabajar con esos programas y los
informáticos.

Una desventaja de la programación a medida es su elevado coste.
Adquirir un programa estándar es relativamente barato frente a uno
a medida, que requiere de la contratación de unos programadores, que
a veces se llevan varios años trabajando en el desarrollo de ese
software. Por ejemplo, un programa de contabilidad puede costar en
el mercado entre 70.000 y 150.000 pesetas, pero realizarlo supondría
un gasto de millones de pesetas.

Otra desventaja de la programación a medida es el coste de
oportunidad, que es muy elevado, ya que se pierde mucho tiempo en
programar; además, existe mucha gente formada para la
programación estándar, pero no para la programación a medida.

Un nuevo inconveniente de la programación a medida es el
desconocimiento que se suele tener acerca del funcionamiento real
del programa. Cuando se acaba de hacer el programa es cuando
realmente empiezan los problemas: ¿funcionará bien?, ¿se quedará
bloqueado?, ¿tendrá problemas con su codificación?...Cuando llega ese
momento, el programa hay que probarlo y el usuario normalmente no
tiene tiempo para ello. En definitiva, el programa a medida conlleva un
problema de seguridad en cuanto a su funcionamiento esperado.

Una ventaja de los programas estándar es que suelen pasar unos test
de seguridad y de auditoría informática, lo cual asegura, en principio,
su buen funcionamiento.

Por último, un nuevo inconveniente de la programación a medida es que
en el sector de la informática no existe una gran movilidad laboral.
Esto quiere decir que llegado un momento, un programador puede
pedir un aumento de sueldo, por ejemplo, con la amenaza de
marcharse a otra empresa. Esto pone de manifiesto la dependencia a
los programadores y que sin ellos sería muy difícil trabajar con los
programas.
Por todo lo dicho anteriormente parece comprensible que la mayoría de las
empresas se decanten por el software estándar.
3.2.3 OTRO TIPO DE SOFTWARE
Finalmente, existe otra clasificación del software de aplicación, en función
de su forma de adquisición o explotación. Así, podemos encontrar:

Software de dominio público (freeware): se trata de software que
podemos adquirir gratis (Véase epígrafe 3.4.6 del capítulo 9).

Shareware: habrá que pagar al autor del mismo un precio estipulado
si es que se va a utilizar frecuentemente con fines profesionales
(Véase epígrafe 3.4.6 del capítulo 9).

Software comercial: es el software que hay que adquirir previamente
abonando su precio.

Software de alquiler o en régimen de outsourcing: existe una nueva
posibilidad de utilización de software que actualmente está
adquiriendo más fuerza. Se trata de la utilización del software a
través de redes telemáticas (especialmente Internet). En este caso
no se adquiere el software, sino que se utiliza de forma remota,
estando los programas y los datos ubicados físicamente en los
ordenadores de las empresas que prestan este tipo de servicio, las
cuales se denominan Proveedores de Servicios de Aplicación ( ASP o
Net Sourcing). Este sistema cuanta además con una serie de ventajas
e inconvenientes, a saber:
En relación a las ventajas de los Sistemas ASP, caben comentar las
siguientes:

No se necesita instalación de los programas y de sus constantes
actualizaciones, ya que se ocupa la empresa prestadora del servicio.

Los datos son almacenados y copiados regularmente con copias de
seguridad por parte de la empresa que gestiona esta actividad, con lo
que la empresa usuaria se despreocupa de una de las principales
fuentes de problemas dentro del mundo de la informática.

Los costes inherentes a este servicio son claramente inferiores a los
de la adquisición y actualización del software.
En relación a los inconvenientes de los Sistemas ASP, caben comentar los
siguientes:

Dependencia de una red telemática, con lo que si ocurriera algún
problema con la misma, sería imposible realizar el servicio (cortes de
la red, etc)

Algunas personas son reticentes a estos servicios de carácter
telemático debido a problemas de seguridad, aunque hoy en día se ha
avanzado tanto en ello, que estos temores van siendo superados.

Dependencia con la empresa prestadora del servicio, ya que si ésta no
actúa correctamente, el servicio no se produciría (huelgas, paros
productivos o de servicios,...)
Hay que decir que en el contrato que se pacte entre empresa usuaria y
prestadora del servicio se pueden incluir cláusulas en las que se establezcan
posibles problemas del ejercício de esta actividad y quién responde ante
estos.
3.2.3 OTRO TIPO DE SOFTWARE
Finalmente, existe otra clasificación del software de aplicación, en función
de su forma de adquisición o explotación. Así, podemos encontrar:

Software de dominio público (freeware): se trata de software que
podemos adquirir gratis (Véase epígrafe 3.4.6 del capítulo 9).

Shareware: habrá que pagar al autor del mismo un precio estipulado
si es que se va a utilizar frecuentemente con fines profesionales
(Véase epígrafe 3.4.6 del capítulo 9).

Software comercial: es el software que hay que adquirir previamente
abonando su precio.

Software de alquiler o en régimen de outsourcing: existe una nueva
posibilidad de utilización de software que actualmente está
adquiriendo más fuerza. Se trata de la utilización del software a
través de redes telemáticas (especialmente Internet). En este caso
no se adquiere el software, sino que se utiliza de forma remota,
estando los programas y los datos ubicados físicamente en los
ordenadores de las empresas que prestan este tipo de servicio, las
cuales se denominan Proveedores de Servicios de Aplicación ( ASP o
Net Sourcing). Este sistema cuanta además con una serie de ventajas
e inconvenientes, a saber:
En relación a las ventajas de los Sistemas ASP, caben comentar las
siguientes:

No se necesita instalación de los programas y de sus constantes
actualizaciones, ya que se ocupa la empresa prestadora del servicio.

Los datos son almacenados y copiados regularmente con copias de
seguridad por parte de la empresa que gestiona esta actividad, con lo
que la empresa usuaria se despreocupa de una de las principales
fuentes de problemas dentro del mundo de la informática.

Los costes inherentes a este servicio son claramente inferiores a los
de la adquisición y actualización del software.
En relación a los inconvenientes de los Sistemas ASP, cabe comentar los
siguientes:

Dependencia de una red telemática, con lo que si ocurriera algún
problema con la misma, sería imposible realizar el servicio (cortes de
la red, etc)

Algunas personas son reticentes a estos servicios de carácter
telemático debido a problemas de seguridad, aunque hoy en día se ha
avanzado tanto en ello, que estos temores van siendo superados.

Dependencia con la empresa prestadora del servicio, ya que si ésta no
actúa correctamente, el servicio no se produciría (huelgas, paros
productivos o de servicios,...)
Hay que decir que en el contrato que se pacte entre empresa usuaria y
prestadora del servicio se pueden incluir cláusulas en las que se establezcan
posibles problemas del ejercicio de esta actividad y quién responde ante
estos.