sábado, 26 de abril de 2014

¿Sabes que es un "Software"?



El término "software" fue usado por primera vez por John W. Tukey en 1957.  
El software es una palabra que proviene del idioma inglés, pero que gracias a su constante uso, ha sido aceptada por la Real Academia Española. Según la RAE, el software es un conjunto de programas, instrucciones y reglas informáticas que permiten ejecutar distintas tareas en una computadora.

Se considera que el software es el equipamiento lógico e intangible de un ordenador. En otras palabras, el concepto de software abarca a todas las aplicaciones informáticas, como los procesadores de textos, las planillas de cálculo y los editores de imágenes.

El software es desarrollado mediante distintos lenguajes de programación, que permiten controlar el comportamiento de una máquina. Estos lenguajes consisten en un conjunto de símbolos y reglas sintácticas y semánticas, que definen el significado de sus elementos y expresiones. Un lenguaje de programación permite a los programadores del software especificar, en forma precisa, sobre qué datos debe operar una computadora.

Encontramos en la web un video que te ayudará a entender un poco más este tema: https://www.youtube.com/watch?v=w3TIXIPdbpY&hd=1

Evolución del Software



Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. La programación de computadoras era un "arte de andar por casa" para el que existían pocos métodos sistemáticos. El desarrollo del software se realizaba virtualmente sin ninguna planificación, hasta que los planes comenzaron a descalabrarse y los costos a crecer.


El software es desarrollado mediante distintos lenguajes de programación, que permiten controlar el comportamiento de una máquina. Estos lenguajes consisten en un conjunto de símbolos y reglas sintácticas y semánticas, que definen el significado de sus elementos y expresiones. Un lenguaje de programación permite a los programadores del software especificar, en forma precisa, sobre qué datos debe operar una computadora.

La segunda era en la evolución de los sistemas de computadora se extiende desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre-máquina. Las técnicas interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de sofisticación del hardware y del software. Los sistemas de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos en lugar de en minutos. Los avances en los dispositivos de almacenamiento en línea condujeron a la primera generación de sistemas de gestión de bases de datos.

La segunda era se caracterizó también por el establecimiento del software como producto y la llegada de las "casas de software". El software ya se desarrollaba para tener una amplia distribución en un mercado multidisciplinar.


La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continuó más allá de una década. El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentemente y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos. Las redes de área local y de área global, las comunicaciones digitales de alto ancho de banda y la creciente demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión sobre los desarrolladores del software.  La conclusión de la tercera era se caracterizó por la llegada y amplio uso de los microprocesadores.

La cuarta era de la evolución de sistemas informáticos se aleja de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas se han convertido en la norma.


La industria del software ya es la cuna de la economía del mundo. Las decisiones tomadas por gigantes de la industria tales como Microsoft arriesgan billones de dólares. A medida que la cuarta generación progresa, han comenzado a surgir nuevas tecnologías. Las tecnologías orientadas a objetos están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones. Los sistemas expertos y el software de inteligencia artificial han salido del laboratorio para entrar en aplicaciones prácticas de una gran variedad de problemas del mundo real. El software de redes neuronales artificiales junto con la aplicación de lógica difusa han abierto posibilidades excitantes para el reconocimiento de patrones y habilidades de procesamiento de información de carácter humano.

Para ampliar tus conocimientos en el tema, te traemos este clip, que explica de forma dinámica la evolución del software: https://www.youtube.com/watch?v=oSssWHD1oSI

Características del Software


  1. El Software se desarrolla o construye, no se manufactura en el sentido clásico.
  2. A pesar de que existen similitudes entre el desarrollo del Software y la manufactura del hardware, las dos actividades serian diferentes en lo fundamental. En ambas la alta calidad se alcanza por medio del buen diseño, la fase de manufactura del hardware puede incluir problemas de calidad existentes en el software.
  3. El Software no se desgasta.
  4. Software es inmune a los males ambientales que desgasten el hardware. Por lo tanto la curva de tasas de fallas para el software debería tener la forma de la "curva idealizada". Los defectos sin descubrir causan tasas de fallas altas en las primeras etapas de vida de un programa. Sin embargo, los errores se corrigen y la curva se aplana: El software no se desgasta, pero si se deteriora.
  5. Los componentes re-utilizables modernos encapsulan todos los datos como el proceso se aplican a estos, lo que permite al ingeniero de software crear nuevas aplicaciones a partir de partes reutilizables.
Si quieres leer un poco más sobre este tema, dale click aquí: http://raulydianadapi1.blogspot.com/2009/09/caracteristicas.html

¿Porque es importante el Software?


El software es imprescindible para cualquier sistema informático o basado en informática, puesto que sin él, este no funcionaría. Es el software quien da las órdenes, quien indica que debe hacer cada máquina con sus elementos, cuando y como.
 Un ordenador sin software sería simplemente un conjunto de chips, cables, periféricos e interruptores totalmente inerte y sin función alguna. Es el software quien ordena todo ese material, lo reconoce, le asigna una función según sus características, y permite que funcione todo en su conjunto.

¿Quieres saber más? Te dejamos esta página de referencia: http://www.importancia.org/software.php

Ciclo de vida del Software.


     El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. 

El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.

    Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro de la fase de implementación. El ciclo de vida permite que los errores se detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementación y en los costos asociados. 


El ciclo de vida básico de un software consta de los siguientes procedimientos:

  •   Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.               
 Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
  • Diseño general: requisitos generales de la arquitectura de la aplicación.
  •  Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
  • Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
  • Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada.

    Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.
  • Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
  •  Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).

Clasificación del Software

Software del sistema: Es un conjunto de programas que administran los recursos de la computadora. Ejemplos: Unidad central de proceso, dispositivos de comunicaciones y dispositivos periféricos, el software del sistema administra y controla al acceso del hardware.

Software de aplicaciones: Programas que son escritos para o por los usuarios para realizar una tarea específica en la computadora. Ejemplo: software para procesar un texto, para generar una hoja de cálculo, el software de aplicación debe estar sobre el software del sistema para poder operar.

Software de usuario final: Es el software que permiten el desarrollo de algunas aplicaciones directamente por los usuarios finales, el software del usuario final con frecuencia tiene que trabajar a través del software de aplicación y finalmente a través del software del sistema.

Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluyen básicamente:
    -Editores de texto
    -Compiladores
    -Intérpretes
    -Enlazadores
    -Depuradores

    Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).

Software de Uso General: El software para uso general ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría. La mayoría de software para uso general se vende como paquete; es decir, con software y documentación orientada al usuario (manuales de referencia, plantillas de teclado y demás).

El Software Libre Es un programa o secuencia de instrucciones usada por un dispositivo de procesamiento digital de datos para llevar a cabo una tarea específica o resolver un problema determinado, sobre el cual su dueño renuncia a la posibilidad de obtener utilidades por las licencias, patentes, o cualquier forma que adopte su derecho de propiedad sobre él (o sea, el software libre puede estar licenciado, o protegido por una patente autoral), por lo que puede utilizarse o transferirse sin pago alguno al licenciante, o a su creador.

Software Propietario Es cualquier programa informático en el que el usuario tiene limitaciones para usarlo, modificarlo o redistribuirlo (esto último con o sin modificaciones). (También llamado código cerrado o software no libre, privado o privativo)
Para la Fundación para el Software Libre (FSF) este concepto se aplica a cualquier software que no es libre o que sólo lo es parcialmente, sea porque su uso, redistribución o modificación está prohibida, o requiere permiso expreso del titular del software.


Si quieres aprender un poco más de este tema, chequea este tutorial educativo: https://www.youtube.com/watch?v=5-ATmMl8RdY&hd=1