lunes, 3 de septiembre de 2018

Software


   ¿Software?
                  Es el conjunto de programas informáticos, procedimientos, reglas, documentación y datos asociados, que forman parte de las operaciones de un sistema informático.
El software o soporte de software se conoce como software.   de un sistema informático , que incluye el conjunto de componentes lógicos necesarios que hacen posible la realización de tareas específicas.    
Software ( pronunciación  AFI : [ˈsɒftwɛəʳ] ) es una palabra  inglesa , que en español no tiene una traducción adecuada al contexto, por lo que suele usarse sin traducción y así fue admitida por la  Real Academia Española (RAE). Aunque puede que no sea estrictamente lo mismo, suele sustituirse por expresiones como programas o aplicaciones (de ordenador ) o software (de ordenador).       
El software es lo que se llama un producto en ingeniería de software .    

¿Historia del software?

La primera teoría sobre software fue propuesta por Alan Turing en su ensayo de 1935 sobre números computables, con una aplicación destinada a la toma de decisiones. El término "software" fue utilizado por primera vez por escrito por John W. Tukey en 1958. El estudio de los campos académicos del software se divide en informática e ingeniería de software.
Etapa de software
Primera etapa (1950 – 1965)
·         El software estaba en su infancia.
·         Distribución limitada
·         Software personalizado
·         El software fue desarrollado y utilizado por la misma persona u organización.
Segunda etapa (1965 – 1975)
  Multiprogramación
  Sistema multiusuario
  Base de datos
  El software como producto
  Mayores costos de mantenimiento
  El software fue desarrollado para ser comercializado.

Tercera etapa (1975 – 1985

¿Tipos de software?
El software se puede clasificar en tres tipos:
·         Software de sistema :  Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático particular que se utiliza, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicación, impresoras, pantallas, teclados, etc. El software del sistema proporciona al usuario y al programador  interfaces controladores , herramientas y utilidades de soporte de alto nivel apropiados  que permiten el mantenimiento  general del sistemalos siguientes:
·         Sistemas operativos
·         Controladores de dispositivo
·         Herramientas diagnosticas
·         servidores
·         utilidades

·         Software de programación :  Es el conjunto de herramientas que permiten al  programador  desarrollar programas informáticos, utilizando diferentes alternativas y  lenguajes de programación , de manera práctica. Incluyen básicamente:
·         editores de texto
·         compiladores
·         intérpretes
·         enlazadores
·         depuradores
·         Entornos de Desarrollo Integrados ( IDE ): Agrupa las herramientas anteriores, normalmente en un entorno visual, de tal forma que el programador no necesite introducir múltiples  comandos  para compilar, interpretar,  depurar , etc. Suelen tener una  interfaz gráfica de usuario  ( GUI ) avanzada .

·         Software de aplicación : Es aquel que permite a los usuarios realizar una o varias tareas específicas, en cualquier ámbito de actividad que pueda ser automatizado o asistido, con especial énfasis en el empresarial. Incluye entre muchos otros:
·         Aplicaciones para  sistemas de control  y  automatización industrial 
·         aplicaciones de oficina
·         software educativo
·         Software de negocios
·         Base de datos
·         Telecomunicaciones  (por ejemplo Internet y toda su estructura lógica)
·         videojuegos
·         software medico
·         Software de  cálculo numérico y simbólico .
·         programa CAD _
·         Software de control numérico ( CAM )

¿Qué es el software libre?
El software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. Más precisamente, se refiere a cuatro libertades de los usuarios de software: La libertad de usar el programa, para cualquier propósito.   
El término software libre se refiere al conjunto de   software ( programa informático ) que, a elección expresa de su autor, puede ser copiado, estudiado, modificado, utilizado libremente para cualquier propósito y redistribuido con o sin cambios o mejoras. 1 2 Su definición está asociada al nacimiento del movimiento del software libre , encabezado por Richard Stallman y la posterior fundación en 1985 de la Free Software Foundation , que sitúa la libertad del usuario de la computadora comofundamental 3 . Proviene del término inglés software libre           , que presenta ambigüedad entre los significados "gratis" y "gratis" asociados a la palabra libre . Esta es la razón por la que generalmente se considera software libre y no software que se puede modificar sin restricciones de licencia. En este sentido, es necesario subrayar que la libertad tiene que ver con el uso y no con la gratuidad.     

¿Historia del Software Libre?
Entre las décadas de los 60 y 70,  el software no era considerado un producto sino un complemento que los proveedores de las grandes computadoras de la época (los mainframes ) ofrecían a sus clientes para que pudieran utilizarlos. En esa cultura, era común que los programadores y desarrolladores de software compartieran libremente sus programas entre ellos. Este comportamiento fue particularmente común en algunos de los grupos de usuarios más grandes de la época, como DECUS (DEC Computer Users Group). A fines de la década de 1970, las empresas comenzaron a imponer restricciones a los usuarios mediante acuerdos de licencia..            

Menciona las cuatro libertades del software libre

0.    La libertad de usar el programa, para cualquier propósito (Uso)
1.    La libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus propias necesidades (Estudio)
2.    La libertad de distribuir copias del programa, con las que puedes ayudar a otros usuarios (Distribución)
3.    La libertad de mejorar el programa y hacer públicas esas mejoras a otros, para que toda la comunidad se beneficie (Mejora)
Las libertades 1 y 3 requieren acceso al código fuente porque es muy poco probable estudiar y modificar software sin su código fuente.

¿Ventajas del software libre?

1. Escrutinio público: dado que hay muchas personas que tienen acceso al código fuente, lo que conduce a un proceso de corrección de errores muy dinámico, no es necesario esperar a que el proveedor del software publique una nueva versión.
2. Independencia del proveedor:
b. Software de dominio público: Este tipo de software no tiene licencias de uso, por lo que corre el riesgo de dejar de serlo si alguien lo utiliza para apropiarse de él.
a Al tener el código fuente, cualquiera puede continuar brindando soporte, desarrollo u otros servicios para el software.
b. No estamos sujetos a las condiciones de mercado de nuestro proveedor, es decir que si sale del mercado porque no le conviene y si se descontinúa el soporte, podemos contratar a otra persona.
1. Gestión del idioma:
b. Traducción: cualquier persona capacitada puede traducir y adaptar software libre a cualquier idioma.
C. Corrección ortográfica y gramatical: una vez traducido, el software libre puede presentar errores de este tipo, que pueden ser corregidos más rápidamente por una persona capacitada.
1. Mayor seguridad y privacidad:
b. Los sistemas de almacenamiento y recuperación de información son públicos. Cualquiera puede ver y comprender cómo se almacenan los datos en un determinado formato o sistema.
C. Es más difícil introducir código malicioso como: espía (por ejemplo, keylogger), control remoto (por ejemplo, troyano), entrada al sistema (por ejemplo, puerta trasera), etc.
1. Garantía de continuidad: el software libre puede seguir utilizándose incluso después de la desaparición de quien lo desarrolló, dado que cualquier técnico informático puede seguir desarrollándolo, mejorándolo o adaptándolo.
2. Ahorro de costes: en este tema hay que distinguir cuatro grandes costes: adquisición, implantación (esta a su vez formada por costes de migración e instalación), soporte o mantenimiento e interoperabilidad. El software libre reduce principalmente el costo de adquisición ya que al otorgar la libertad de distribuir copias puedo ejercerla con la compra de una sola licencia y no con tantos equipos como los que poseo (como ocurre con la mayoría del software propietario). Cabe aclarar que también hay una disminución importante en el costo de soporte, no ocurriendo lo mismo con los costos de implementación e interoperabilidad.

¿Desventajas del software libre?

Si observamos la situación actual, es decir la existencia de la mayoría de Software Propietario, tenemos:
1. Dificultad en el intercambio de archivos: esto ocurre mayoritariamente en documentos de texto (generalmente creados con Microsoft Word), ya que si queremos abrir ellos con un Software Libre (por ejemplo, Open Office o La
TeX) nos da error o se pierden datos. Pero está claro que si Microsoft Word hubiera creado sus documentos en un formato abierto (o público), esto no hubiera pasado.
2. Mayores costos de implementación e interoperabilidad: dado que el software constituye “algo nuevo”, esto implica enfrentar un costo de aprendizaje, instalación, migración, interoperabilidad, etc., cuyo monto puede reducirse por: mayor facilidad en las instalaciones y/o o en uso, uso de emuladores (por ejemplo, si el usuario usa Microsoft Windows, la solución sería instalar alguna distribución GNU/Linux y luego un emulador de Windows, como Wine, VMWare. Terminal X, Win4Lin). Vale aclarar que el costo de la migración se refiere al software, ya que en términos de hardware, el Software Libre generalmente no tiene mayores requerimientos que el Software Propietario.

¿Qué es el software propietario?

Hace referencia a cualquier programa de ordenador en el que los usuarios tienen posibilidades limitadas de utilizarlo, modificarlo o redistribuirlo (con o sin modificaciones), o cuyo código fuente no está disponible o el acceso a él está restringido .
 El software propietario o privativo se refiere a   software cuyo código fuente no tiene libre acceso al mismo, que solo está disponible para su desarrollador y no se permite que terceros lo modifiquen, adapten o incluso lean libremente. El término ha sido creado para designar el antónimo del concepto de software libre , por lo que se le han asignado implicaciones políticas relacionadas con el mismo en diversos sectores. Para la Free Software Foundation (FSF), este concepto se aplica a cualquier programa informático que no sea libre o sólo parcialmente libre ( semi-libre).           ), ya sea porque su uso, redistribución o modificación está prohibido, o porque requiere el permiso expreso del propietario del software.

¿Historia del software propietario?

En la década de 1960, Bell Laboratories proporcionó el código fuente de su sistema operativo UNIX, y más tarde comenzó a existir lo que se conoce como software de código cerrado. Sin embargo, cabe señalar que, en los inicios de la era informática, era común que los grupos científicos estuvieran dispuestos a ceder su código a terceros sin pagar por él, ya que no existía una política que lo regulara y además era un beneficio común para conocer los desarrollos de otras personas en busca de la estandarización. 
El paso del tiempo es en 1979 cuando el gobierno de los Estados Unidos obliga a  IBM a distinguir entre software y hardware que hasta ese momento no se distinguían claramente, dando lugar a los primeros intentos de cerrar el código del programa. Incluso entonces, encontraste páginas y páginas llenas de código libre en revistas como Creative Computing y Byte.         

¿Ventajas del software propietario?


Facilidad de adquisición (puede venir preinstalado con la compra de la PC, o puedes encontrarlo fácilmente en las tiendas).
– Existencia de programas diseñados específicamente para desarrollar una tarea.
- Las empresas que desarrollan este tipo de software son generalmente grandes y pueden dedicar muchos recursos, sobre todo económicos, al desarrollo y la investigación.
– Interfaces gráficas mejor diseñadas.
– Más compatibilidad en el campo de multimedia y juegos.
– Mayor compatibilidad con el hardware.

Desventajas del software propietario

No hay aplicaciones para todas las plataformas (Windows y Mac OS).
- Imposibilidad de copia.
- Imposibilidad de mediación.
– Restricciones de uso (marcadas por la licencia).
- Imposibilidad de redistribución.
– Generalmente son menos seguros.
– El costo de las aplicaciones es mayor.
– El soporte de la aplicación es exclusivo del propietario.
– El usuario que adquiere software propietario es 100% dependiente de la empresa propietaria
.

¿Funciones de software?
Ø  Administrar los recursos de la computadora
Ø  Proporcionar las herramientas para optimizar estos recursos.
Ø  Actuar como intermediario entre el usuario y la información almacenada.

Quién usa el software por primera vez y en qué año
 Por  John W. Tukey en 1957 .  

 ¿Cuál es el proceso de creación de software?

Un proceso se define como el  conjunto ordenado de pasos a seguir para llegar a la solución de un problema o para obtener un producto, en este caso particular, lograr un producto de software que resuelva un problema específico.
El proceso de creación de software puede llegar a ser muy complejo, dependiendo de su tamaño, características y criticidad. Por ejemplo, la creación de un sistema operativo es una tarea que requiere proyecto, gestión, numerosos recursos y todo un equipo de trabajo disciplinado. En el otro extremo, si se trata de un programa simple (por ejemplo, resolver una ecuación cuadrática), puede hacerlo fácilmente un solo programador (incluso un aficionado). Es así como se suelen dividir en tres categorías según su tamaño (líneas de código ) o costo:  "pequeño""mediano"  y  "grande" . Existen varias metodologías para estimarlo, que proporciona métodos y un software (programa) que calcula y proporciona una aproximación de todos los costos de producción en un "proyecto de software" (relación horas/hombre, costo monetario, número de líneas fuente según el lenguaje utilizado, etc.).
Considerando los grandes, es necesario realizar tareas complejas, tanto técnicas como de gestión, gestión fuerte y análisis varios (entre otras cosas), la complejidad de esto ha llevado a desarrollar una ingeniería específica para encargarse de su estudio y implementación. : se le conoce como  Ingeniería de Software .
Mientras que en las medianas, pequeños equipos de trabajo (incluso un  solo programador-analista con experiencia) pueden realizar la tarea. Aunque, siempre en casos medianos y grandes (ya veces también en algunos casos pequeños, dependiendo de su complejidad), se deben seguir ciertos pasos que son necesarios para la construcción del software. Tales etapas, si bien deben existir, son flexibles en su forma de aplicación, según la metodología o  proceso de desarrollo  elegido y utilizado por el equipo de desarrollo o por el analista-programador solitario (si aplica).
Los “procesos de desarrollo de software” tienen reglas preestablecidas, y deben ser aplicadas en la creación de software de mediana y gran escala, ya que de lo contrario lo más probable es que el proyecto no pueda concluir o terminar sin cumplir con los objetivos previstos. . . , y con una variedad de fallas inaceptables (fallan, en definitiva). Entre tales "procesos" hay variantes ágiles o ligeras (ejemplo  XP ), pesadas y lentas (ejemplo  RUP ) e intermedias. Suelen aplicarse según el tipo y tamaño del software a desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo. Algunos de esos procesos son Programación Extrema  (  eXtreme Programming  o XP),  Rational  Unified Process (en inglés Rational Unified Process o RUP), Feature Driven Development ( FDD ), etc.
Cualquiera que sea el "proceso" que se utilice y aplique al desarrollo de software (RUP, FDD, XP, etc.), y casi independientemente de él, siempre se debe aplicar un "modelo de ciclo de vida".
Se estima que, del total de grandes proyectos de software emprendidos, el 28% fracasa, el 46% cae en modificaciones severas que lo retrasan y el 26% es completamente exitoso.
Cuando un proyecto falla, rara vez es por fallas técnicas, la principal causa de fallas y fracasos es la falta de aplicación de una buena metodología o proceso de desarrollo. Entre otras, una fuerte tendencia, desde hace unas décadas, es mejorar metodologías o procesos de desarrollo, o crear otros nuevos y concienciar a los profesionales de TI.  su uso adecuado. Normalmente los especialistas en el estudio y desarrollo de estas áreas (metodologías) y áreas afines (como los modelos e incluso la propia gestión de proyectos) son los ingenieros de software, esa es su orientación.Los especialistas en cualquier otra área del desarrollo informático (analista, programador, Lic. en informática, ingeniero informático, ingeniero en sistemas, etc.) suelen aplicar sus conocimientos especializados pero utilizando modelos, paradigmas y procesos ya desarrollados.
Es habitual en el desarrollo de software de tamaño medio que los equipos humanos implicados apliquen metodologías propias, normalmente híbridas de los procesos anteriores y en ocasiones con criterios propios.
El proceso de desarrollo puede implicar muchas y variadas tareas, desde administrativas hasta técnicas y de gestión y gestión. Pero, casi estrictamente, los mínimos siempre se cumplen; que se puede resumir de la siguiente manera:
·         Captura, elicitación, especificación y análisis de  requisitos  (ERS)
·         diseño
·         Codificación
·         Pruebas (unitarias e integradoras)
·         Instalación y producción
·         mantenimiento
En las etapas anteriores, sus nombres pueden variar ligeramente, o ser más globales, o por el contrario, ser más refinados; por ejemplo indicar como una sola fase (a efectos documentales e interpretativos) de "análisis y diseño"; o indicar como "implementación" lo que se dice como "codificación"; pero en rigor, todos existen y básicamente incluyen las mismas tareas específicas.
La sección 4 de este artículo proporciona más detalles sobre cada una de las etapas indicadas.



2 comentarios: