martes, 26 de agosto de 2014

Fundamentos y Evolución de Proyectos de Desarrollo de SOFTWARE

Fundamentos à Evolución de proyectos de desarrollo
(Sistemas de producción)

1. INTRODUCCIÓN


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 EVOLUCIÓN


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


3 comentarios:

  1. tito flores vicente28 de agosto de 2014, 14:21

    Muy buena la Tematica Acerca Evolucion del Software y aclaracion de tipos de Sistemas

    ResponderEliminar
  2. una corrección es
    CLASIFICACION DEL SOFTWARE no LASIFICACION DEL SOFTWARE :-)

    ResponderEliminar
  3. joselo abapinta diego5 de septiembre de 2014, 17:14

    interesante el tema ing.

    ResponderEliminar