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