sábado, 17 de mayo de 2014

El Software

El software es un ingrediente indispensable para el funcionamiento del computador. Está formado por una serie de instrucciones y datos, que permiten aprovechar todos los recursos que el computador tiene, de manera que pueda resolver gran cantidad de problemas. Un computador en si, es sólo un conglomerado de componentes electrónicos; el software le da vida al computador, haciendo que sus componentes funcionen de forma ordenada.


El software es un conjunto de instrucciones detalladas que controlan la operación de un sistema computacional.

Funciones del software:
  • Administrar los recursos de computacionales
  • Proporcionar las herramientas para optimizar estos recursos.
  • Actuar como intermediario entre el usuario y la información almacenada
“Software” es una palabra proveniente del inglés (literalmente: partes blandas o suaves), que en español no posee una traducción adecuada al contexto, por lo cual se usa sin traducir y así fue admitida por la Real Academia Española (RAE). Aunque puede ser estrictamente lo mismo, suele sustituirse por expresiones tales como (programas informáticos) o aplicaciones (informáticas) o soportes lógicos.
Software es lo que se denomina producto, en ingeniería de software.

La historia del software como se ha visto, no surge con los equipos electrónicos, -aunque es con ellos que adopta el nombre- está presente desde el empleo de ábacos o sumadoras mecánicas. Sin embargo, en estos casos, el software no se encuentra incorporado en el equipo. Es aportado por el operario. La máquina analítica de Charles Babbage, incidentalmente, tuvo su software, y fue una amiga de éste, la legendaria lady Lovelace, quien aportó el software que no se llegó a usar, dado que la máquina nunca se completó. En el ENIAC el control de las operaciones estaba parcialmente integrado en el equipo. Dicho control era realizado por un circuito que requería un alambrado específico para cada aplicación. Imaginemos lo engorroso que resultaba re alambrar el circuito cada vez que cambiaba el uso del ENIAC.
Características del software

1. El software se desarrolla o construye; no se manufactura en el sentido clásico. 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.

2. El software no se desgasta
El 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.

3. A pesar de que la industria tiene una tendencia hacia la construcción por componentes, la mayoría del software aún se construye a la medida. Un componente de software se debe diseñar e implementar de forma que puede utilizarse en muchos programas diferentes.
Los componentes reutilizables modernos encapsulan tanto los datos como el proceso se aplican a estos, lo que permite al ingeniero de software crear nuevas aplicaciones nuevas a partir de partes reutilizables. Características del software como parte de un sistema.

Sistema mínimo
En ocasiones, un programa debe ser asociado a un procesador antes de ser usado, lo cual forma un sistema mínimo. Tal es el caso, aunque no muy común, de los programas que son parte integral de un procesador (chip en una computadora) y que están “microprogramados”.

Sistema típico
Con más frecuencia, la computadora y los productos de software son administrados por un sistema operativo, el cual interactúa a través de equipo periférico (hardware) con un operador y otros equipos como los dispositivos de almacenamiento, monitores, impresoras, entre otros.

Sistema complejo
Los sistemas más difíciles de asegurar la calidad son aquellos donde se involucra el control -a través de la computadora- de sistemas electrónicos, dispositivos mecánicos o hidráulicos, procesos o plantas.
Características del entorno de los productos de software a utilizar en esta propuesta. Para facilitar su conceptualización, se proponen definiciones sencillas y prácticas a continuación:

Aplicación
Representación del giro sobre el cual el software va dirigido (negocios, ingeniería, medicina, entre otros). Ambiente de Uso Espacio físico y condiciones en que se utiliza el software. Riesgos y consecuencias de fallas Lo que puede implicar que el software falle. Computadora anfitriona La computadora donde correrá el software. Madurez del desarrollador Experiencia en el desarrollo de software similar. Experiencia del usuario La familiaridad de los usuarios con computadoras o software similares Apoyo de los desarrolladores Asesoría o ayuda por parte de los desarrolladores. Experiencia de los desarrolladores Tiempo trabajado en desarrollos de software similares. Interacción con el usuario final Comunicación ente usuarios y desarrolladores. Restricciones comerciales Falta de presupuesto o de tiempo. Metodología de desarrollo El uso de algún método establecido para la creación del software. Lenguajes de programación El lenguaje o paquete computacional seleccionado para desarrollar el software.

Importancia del software
La palabra software se refiere a las instrucciones que se incorporan a un sistema informático para que este lleve a cabo una determinada función. Partiendo de esta sencilla definición, el campo que se esconde detrás es inmenso, porque engloba desde pequeñas aplicaciones para llevar a cabo tareas muy específicas, a archiconocidos sistemas operativos con capacidad para realizar miles de funciones.
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. Imaginaos una orquesta tocando una pieza: el director sería la parte central del ordenador, los músicos, el hardware periférico, y el software, la partitura de esa pieza. Está claro que sin partitura no habrá música, pero también que sin músicos tampoco. Continuando el símil, si en el caso de las partituras son los compositores quienes las crean, en el caso de la informática son los programadores, quienes diseñan el software para que cumpla con la función deseada. En grandes programas, como por ejemplo los sistemas operativos, existen equipos de cientos y miles de personas que trabajan en ellos durante largos periodos de tiempo, sobre todo debido a su complejidad. Y de hecho empresas como Apple, Microsoft, Google… son básicamente empresas dedicadas al software y su desarrollo, lo cual nos permite hacernos una pequeña idea del valor del software. Contra esta corriente de grandes empresas que obtienen beneficio económico del software, hay una corriente mundial que aboga por el software libre o gratuito, pero bueno, esa es otra historia.

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.
  • Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
  • 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.
  • Implementación
  • Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una aplicación dependen del tipo de modelo de ciclo de vida acordado entre el cliente y el equipo de desarrolladores.

Modelos de ciclo de vida
Para facilitar una metodología común entre el cliente y la compañía de software, los modelos de ciclo de vida se han actualizado para reflejar las etapas de desarrollo involucradas y la documentación requerida, de manera que cada etapa se valide antes de continuar con la siguiente etapa. Al final de cada etapa se arreglan las revisiones de manera que (texto faltante).

Modelo de cascada
El modelo de ciclo de vida en cascada comenzó a diseñarse en 1966 y se terminó alrededor de 1970. Se define como una secuencia de fases en la que al final de cada una de ellas se reúne la documentación para garantizar que cumple las especificaciones y los requisitos antes de pasar a la fase siguiente:


Modelo V
El modelo de ciclo de vida V proviene del principio que establece que los procedimientos utilizados para probar si la aplicación cumple las especificaciones ya deben haberse creado en la fase de diseño.
El software es la parte lógica de computadora, que permite el manejo de los recursos y la realización de tareas específicas, también denominados programas.


Se clasifica en 2 partes:

Software de sistemas
Son aquellos programas que permiten la administración de la parte física o los recursos de la computadora, es la que interactúa entre el usuario y los componentes hardware del ordenador. Se clasifican el Sistemas Operativos Monousuarios y Multiusuarios.

Software de Aplicación
Son aquellos programas que nos ayudan a tareas específicas como edición de textos, imágenes, cálculos, etc. también conocidos como aplicaciones.
El software de aplicación esta diseñado y escrito para realizar tareas específicas personales, empresariales o científicas como el procesamiento de nóminas, la administración de los recursos humanos o el control de inventarios. Todas éstas aplicación es procesan datos (recepción de materiales) y generan información (registros de nómina), para el usuario. Es un programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo. Posee ciertas características que le diferencia de un sistema operativo (que hace funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso general) y de un lenguaje (con el cual se crean los programas informáticos). Suele resultar una solución informática para la automatización de ciertas tareas complicadas como puede ser la contabilidad o la gestión de un almacén. Ciertas aplicaciones desarrolladas ‘a medida’ suelen ofrecer una gran potencia ya que están exclusivamente diseñadas para resolver un problema específico.
Otros, llamados paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de cálculo y de base de datos.
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 (manual de referencia, plantillas de teclado y demás).
Software de Uso Específico
Hablar de este tipo de software nos referimos al software desarrollado específicamente para un problema especifico de alguna organización o persona, utilizar este software requiere de un experto en informática para su creación o adaptación, son los programas que usan las escuelas para registrar las calificaciones de los alumnos y generar certificados, los que usan los bancos para el control de las cuentas, entre otros.

Clasificación del 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 y se clasifican en:
De acuerdo a su costo:
  • De costo cero: es simplemente aquel software que no tiene costo alguno, es decir, que hacer un pago es nulo debido a que es gratis.
  • De costo mayor a cero: se conoce como software "comercial o de pago", es el que se necesita realizar algún pago para hacer uso del mismo.
De acuerdo a la apertura de su código fuente:
  • De código fuente abierto: conocido también como “fuente abierta" u "open source" es el que permite tener acceso a el código fuente a través de cualquier medio ya sea acompañado con el programa ejecutable, a través de internet, pagando una suma de dinero, entre otros.
  • De código fuente cerrado: denominado como "software cerrado" es aquel software que no tiene disponible el código fuente por ningún medio, ni siquiera pagando.
De acuerdo a su protección: 
  • De dominio publico: simplemente es aquel que no tiene protección alguna que cualquier usuario pude utiliza, hacerle modificaciones, y ser el autor de el mismo
  • Protegido por licencias: es el tipo de software protegido con una licencia de uso.
De acuerdo a su legalidad: 
  • Legal: es el que no posee ningún tipo de restricción para los usuarios, no tiene reglas o normas. Un software con su respectiva licencia original y con su certificado de autenticidad.
  • Ilegal: es el que circula para los usuarios rompiendo ciertas reglas. se tiene licencia para usarlo en una sola computadora pero se instala en mas de una, no obtengo la licencia pero se puede utilizar mediante artificios (cracks, patchs,loaders, entre otros).
 De acuerdo a su filosofía: 
  • Propietario: es el que tiene la propiedad absoluta de este y no puede ser utilizado al menos de una autorización mediante algunas medidas en cuanto a su uso, redistribución y/o modificación están prohibidos o restringidos de modo tal que no es posible llevarlos a cabo.
  • Libre: es el tipo de software que le da al usuario la libertad de usarlo, estudiarlo, modificarlo, mejorarlo, adaptarlo y redistribuirlo, con la única restricción de no agregar ninguna restricción adicional al software.

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 (semilibre), sea porque su uso, redistribución o modificación está prohibida, o requiere permiso expreso del titular del software.

Características del Software de Propietario
       ·         Este software no te pertenece no puedes hacerle ningún tipo de modificación al código fuente.
    ·         No puedes distribuirlo sin el permiso del propietario.
     ·         El usuario debe realizar cursos para el manejo del sistema como tal debido a su alta capacidad de uso.
      ·         Este posee accesos para que el usuario implemente otro tipo de sistema en el.
      ·         Cualquier ayuda en cuanto a los antivirus.

Software en Venezuela
En el proceso de construcción del Socialismo Bolivariano que se viene gestando en Venezuela desde Febrero del año 1999, se ha considerado estratégico la formulación de Políticas Públicas que promuevan la Soberanía Tecnológica del Estado Venezolano, así como, la democratización y apropiación social de las Tecnologías de Información y Comunicación por parte de los ciudadanos y las ciudadanas de nuestro país.
Es por ello, que el Gobierno Venezolano, ha asumido como prioridad para el desarrollo económico, social y político del país, así como para la seguridad y soberanía nacional y tecnológica, el uso  prioritario y la aplicación del Software Libre como primer paso para alcanzar esos ideales, ya que la adopción del mismo conforma una de las bases para constituir un desarrollo tecnológico orientado al desarrollo social y la eficiencia productiva, gracias a la posibilidad que brinda de socializar tanto los productos como el uso de esos productos que hayan sido desarrollados bajo estos estándares propios del Software Libre.
Por las razones antes expuestas, nuestro país ha marcado una pauta importante en América Latina, al reconocer, desde la propia Constitución de la República Bolivariana de Venezuela (específicamente a través de su Artículo 110), como de interés público la ciencia, la tecnología, el conocimiento, la innovación y sus aplicaciones, los servicios de información, como vías para lograr ese desarrollo económico, social y político del país, para luego, en el año 2004 y a través del Decreto N° 3.390, iniciar importantes esfuerzos orientados a asumir el uso y aplicación prioritaria del Software Libre desarrollado con Estándares Abiertos en la Administración Pública Venezolana, como instrumento para alcanzar nuestra soberanía e independencia tecnológica.
Y para fortalecer cada día más nuestro orgullo como Venezolanos, debemos hacer referencia también a la distribución venezolana GNU/Linux llamada Canaima, la cual fue liberada por el Centro Nacional de Tecnologías de Información (CNTI), ente adscrito al Ministerio del Poder Popular para la Ciencia, Tecnología e Industrias Intermedias, en fecha del mes de Octubre del año 2008 cuando publicó la versión 2.0 de este proyecto, que ha contado con la participación y colaboración de más de una decena de Organizaciones y que en principio fue adaptado para satisfacer las necesidades ofimáticas de la Administración Pública, en cumplimiento con el referido Decreto N° 3.390, siendo una de las 100 distribuciones de Linux más visitadas en el mundo, según la reconocida página Distrowatch y que en el mes de mayo del año en curso, ha sido ubicada en el lugar 60 de dicho ranking.

Decreto Nº 3390 23 de Diciembre de 2004
De conformidad con lo dispuesto en los artículos 110 y 226 de la Constitución de la República Bolivariana de Venezuela, 12 y 47 de la Ley Orgánica de la Administración Pública y, 2º, 19 y22 del Decreto con Rango y Fuerza de Ley Orgánica de Ciencia y Tecnología e Innovación, en Consejo de Ministros,


CONSIDERANDO
Que es prioridad del Estado incentivar y fomentar la producción de bienes y servicios para satisfacer las necesidades de la población,
CONSIDERANDO
Que el uso del Software Libre desarrollado con Estándares Abiertos fortalecerá la industria del software nacional, aumentando y fortaleciendo sus capacidades,
CONSIDERANDO
Que la reducción de la brecha social y tecnológica en el menor tiempo y costo posibles, con calidad de servicio, se facilita con el uso de Software Libre desarrollado con Estándares Abiertos,
CONSIDERANDO
Que la adopción del Software Libre desarrollado con Estándares Abiertos en la Administración Pública y en los servicios públicos, facilitará la interoperabilidad de los sistemas de información del Estado, contribuyendo a dar respuestas rápidas y oportunas a los ciudadanos, mejorando la gobernabilidad,
CONSIDERANDO
Que el Software Libre desarrollado con Estándares Abiertos, permite mayor participación de los usuarios en el mantenimiento de los niveles de seguridad e interoperabilidad.
DECRETA
Artículo 1º.
La Administración Pública Nacional empleará prioritariamente Software Libre desarrollado con Estándares Abiertos, en sus sistemas, proyectos y servicios informáticos. A tales fines, todos los órganos y entes de la Administración Pública Nacional iniciarán los procesos de migración gradual y progresiva de éstos hacia el Software Libre desarrollado con Estándares Abiertos.
Artículo 2º.
 A los efectos del presente Decreto se entenderá por “Software Libre”
Programa de computación cuya licencia garantiza al usuario acceso al código fuente del programa y lo autoriza a ejecutarlo con cualquier propósito, modificarlo y redistribuir tanto el programa original como sus modificaciones en las mismas condiciones de licenciamiento acordadas al programa original, sin tener que pagar regalías a los desarrolladores previos.

Piratería del software
Es un acto ilegal en donde una tercera persona, sin autorización del autor ni de la empresa productora, realiza copias de los discos compactos para venderlas y quedarse con todas las ganancias. Como este sujeto no pasa por controles de calidad ni utiliza productos de garantizados, ofrece al público discos más baratos pero de menor calidad y sin garantía de un funcionamiento óptimo. Incurre en el delito de plagio quien difunde como propia una obra ajena, copiándola, reproduciéndola textualmente o tratando de disimular la copia mediante ciertas alteraciones atribuyéndose o atribuyendo a otro la autoría o titularidad.

Tipos de piratería de software
Dos de las formas más comunes de piratería de software:
Copias realizadas por el usuario final: amigos que se prestan discos entre sí, u organizaciones que no reportan el número real de instalaciones del material que realizaron.
Falsificación: duplicación y distribución a gran escala de software copiado ilegalmente.
El pirata provoca el desempleo, se enriquece ilícitamente y roba la Estado los tributos que debería pagar. Y lo que es más grave: promueve la fuga de talentos.

Piratería de Software en la Internet
Si bien Internet aumenta ampliamente las oportunidades para vender productos y servicios, también crea nuevas oportunidades para robar software. En efecto, el robo y la distribución de software amenazan con socavar el tremendo potencial de innovación, puestos de trabajo e ingresos que conlleva Internet.
Hasta hace poco, la copia no autorizada de software requería el intercambio físico de discos. Pero, a medida que Internet continuamente se vuelve más sencilla, rápida y menos cara, la piratería de software avanza al mismo ritmo. Internet viabiliza el paso de los productos de un ordenador a otro, sin ninguna transacción de discos y poco riesgo de detección. Algunos esquemas de piratería incluso involucran a ordenadores sin el conocimiento del propietario. La piratería que en el pasado requería la comprensión de complejos códigos informáticos ahora se puede realizar con el clic de un mouse. Y, de acuerdo con estimaciones recientes, aproximadamente 100 millones de norteamericanos ahora tienen acceso a Internet, con lo cual los piratas de software cuentan con un mercado ascendente.

La industria de alta tecnología está impulsando la revolución de la información, que a su vez es la piedra angular de la nueva economía. Las empresas miembros de BSA son los productores líderes de software, hardware y tecnologías innovadoras y han desempeñado un papel clave en el suministro de infraestructuras críticas para Internet y el comercio electrónico. Estamos a favor de la tecnología y nos abocamos a la promesa de las nuevas tecnologías, como las conexiones en redes par a par. En el centro de estas tecnologías se encuentra la propiedad intelectual. Si bien Internet nos ha facilitado a todos nosotros el intercambio de información, nada supone que debamos abandonar nuestras leyes. Los avances en las nuevas tecnologías dependen de una fuerte protección de la propiedad intelectual.

No hay comentarios:

Publicar un comentario