Software

25
CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS #2 “MIGUEL BERNARD” SOFTWARE Computación básica 1 Profesor: Arreguin Rodríguez Leonel Alumno: López López Eduardo Grupo: 1IM12 Ciclo Escolar: 2015 – 2016

Transcript of Software

Page 1: Software

CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS #2“MIGUEL BERNARD”

SOFTWARE

Computación básica 1

Profesor: Arreguin Rodríguez LeonelAlumno: López López EduardoGrupo: 1IM12Ciclo Escolar: 2015 – 2016

Introducción

En este trabajo dedicado al software, hablaremos de cómo está formado, sus diferentes funciones, etc.; y cuán importante es para el funcionamiento del computador, ya que prácticamente si el, este no funcionaria.

Page 2: Software

Este es el que va a controlar los equipos, es el que da las instrucciones para que funcionen adecuadamente, transfiere datos tanto en la misma memoria como para el usuario cuando este la necesite.

El software es tan complejo que posee infinidad de programas para diferentes funcionamientos en particular; para que haya un orden a la hora de trabajar con él; y así al usuario no se le haga tan complicado.Este programa es muy importante, como también son importante los diferentes elementos que lo rodean para poder funcionar, ya que requiere de una serie de sistemas o programas que lo ayudan a realizar mejor sus funciones. El software requiere ser estudiado detenidamente ya que son muchos elementos que lo conforman, y si no sabemos sus funciones no podemos manejar correctamente al computador.

Concepto:

El anglicismo "software" es el más ampliamente difundido al referirse a este concepto, especialmente en la jerga técnica; en tanto que el término sinónimo «logicial», derivado del término francés logiciel, es utilizado mayormente en países y zonas de influencia francesa. Su abreviatura es Sw.

Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de las operaciones de un sistema de computación.

Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuente, binario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.

El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la información procesada por los sistemas informáticos: programas y datos.

El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables» con una aplicación al problema de decisión.

Software. Definición

El software son las instrucciones electrónicas que van a indicar al ordenador que es lo que tiene que hacer. También se puede decir que son los programas usados para dirigir las funciones de un sistema de computación o un hardware.

Tipos:

a.- Sistema operativo: es el software que controla la ejecución de todas las aplicaciones y de los programas de software de sistema.

b.- Programas de ampliación: o también llamado software de aplicación; es el software diseñado y escrito para realizar una tarea específica, ya sea personal, o de procesamiento. Aquí se incluyen las bases de datos, tratamientos de textos, hojas electrónicas, gráficas, comunicaciones, etc.

Page 3: Software

c.- Lenguajes de programación: son las herramientas empleadas por el usuario para desarrollar programas, que luego van a ser ejecutados por el ordenador.

Visión general

Hay un número de áreas donde es notable la evolución de la ingeniería de software:

Surgimiento como una profesión: Hoy en día, menos mujeres trabajan en ingeniería de software que en otras profesiones, una situación cuya causa no se identifica claramente. A menudo es atribuido a la discriminación sexual, cibercultura o sesgo en la educación. ¿Quién? Muchas organizaciones académicas y profesionales consideran esta situación desequilibrada y están tratando de resolverlo.

Procesos: Los procesos se han convertido en una gran parte de la ingeniería de software y son aclamados por su potencial para mejorar el software y duramente criticados por su potencial para constreñir a los programadores.

Costo de hardware: el costo relativo del software versus el hardware ha cambiado sustancialmente en los últimos 50 años. Cuando los mainframes eran costosos y requerían una gran cantidad de personal se soporte, las pocas organizaciones que los compraban también tuvieron los recursos para financiar proyectos de ingeniería de software a la medida, grandes y costosos. Los computadores son ahora mucho más numerosos y mucho más potentes, lo cual tiene varios efectos en el software. El mercado más grande puede soportar grandes proyectos para crear software comercialmente, como los hechos por empresas como Microsoft. Las máquinas baratas permiten a cada programador tener un terminal capaz de una compilación bastante rápida. Los programas en cuestión pueden usar técnicas como la recolección de basura, que los hacen más fáciles y rápidos de escribir. Por otro lado, menos organizaciones están interesadas en emplear programadores para grandes proyectos de software a la medida, y en su lugar utilizan software comercial tanto como sea posible.

  Sistemas Operativos

Son una serie de programas que administran los recursos del computador. Este indica como interactuar con el usuario y como usar los dispositivos: discos duros, teclado y monitor.

Función:

Es el núcleo de toda la actividad del software.

Monitorea y controla todas las entradas y salidas de sistemas de computación.

Este responde a las indicaciones provenientes del usuario, o de un conjunto previamente definido de comandos.

Controla la ejecución de varios programas, simultáneamente.

Actúa como traductor, entre las operaciones y la respuesta de la máquina.

Informa al usuario de cualquier error que presente la máquina.

Page 4: Software

Este posee un programa llamado "manipulador de discos" opera con un circuito electrónico llamado controlador de discos, este ayuda a traducir las ordenes de los programas para encontrar la pista adecuada.

Componentes: El sistema operativo es generalmente diseñado por el fabricante y por ello no es posible definir uno estándar; aunque hay un conjunto de funciones básicas o componentes que todo sistema debe considerar, y son:

Controlar las operaciones de entrada y salida.

Cargar, inicializar y supervisar la ejecución de los trabajos.

Detectar errores.

Controlar las interrupciones causadas por los errores.

Asignar memoria a cada tarea.

Manejar el multiproceso, la multiprogramación, memoria virtual, etc.

Los sistemas operativos se clasifican en:

Usuario único: es de tipo simple, ya que se dedica a un solo programa a la vez.

Usuario múltiple: es de tipo general, ya que puede satisfacer las exigencias de usuarios múltiples con los recursos de programas y máquina de que se dispone. Puede ser de varios tipos:

Multiprogramación: es un caso en la que múltiples programas pueden almacenarse en la memoria y ejecutarse siguiendo un nivel de prioridades.

Tiempo compartido: permite que cada programa actúe durante cierto tiempo (apropiado para programas interactivos).

Lotes: es una colección de programas, escritos en COBOL o FOLTRAN, se incorpora al ordenador y se procesa.

Tiempo Real: en este la respuesta al ordenador debe ser lo bastan rápida como para proporcionar una decisión en tiempo real.

Generaciones del software:

Primera generación Primera generación:

1950 - 1960 Distribución limitada Software “a medida” Sistemas constituidos por tubos de vacío, desprendían bastante calor y tenían una vida relativamente corta. Alto consumo de energía. El voltaje de los tubos era de 300v y la posibilidad de fundirse era grande. Máquinas grandes y pesadas. Se construye el ordenador ENIAC de grandes dimensiones (30 toneladas). ENIAC

Segunda generación:

Page 5: Software

Transistor como potente principal. El componente principal es un pequeño trozo de semiconductor, y se expone en los llamados circuitos transistores. Disminución del tamaño Disminución del consumo y de la producción de calor Su fiabilidad alcanza metas inimaginables con los efímeros tubos al vacío Mayor rapidez, la velocidad de las operaciones ya no se mide en segundos sino en menos BURROUGH Memorias internas de núcleos de ferrita Instrumentos de almacenamiento: cintas y discos Mejoran los dispositivos de entrada y salida, para la mejor lectura de tarjetas perforadas, se disponía de células fotoeléctricas. Introducción de elementos modulares. Las impresoras aumentan su capacidad de trabajo. Lenguaje de programación más potente. Aplicaciones comerciales en aumento. Tercera generación 1980 Sistemas distribuidos

Tercera generación:

Sistemas distribuidos Incorporación de “Inteligencia” Hardware bajo coste Circuitos integrados desarrollado en 1958 por Jack Kilbry. Circuitos integrados, miniaturización y reunión de centenares de elementos en una placa de silicio o (chip) Menor consumo de energía Apreciable reducción de espacio Aumento de fiabilidad y flexibilidad PC XT

Historia y evolución del software

1. Es el equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos (hardware). Desde los comienzos del software hasta hoy en día se puede decir que se divide en cuatro eras:

2. 1950 – 1965 Se trabajaba con la idea de “Codificar y Corregir”. No existía un planteamiento previo. No existía documentación de ningún tipo. Existencia de pocos métodos formales y pocos creyentes en ellos. Desarrollo a base de prueba y error.

3. 1965 – 1972 Se busca simplificar código. Aparición de Multiprogramación y Sistemas Multiusuarios. Sistemas de Tiempo Real apoyan la toma de decisiones. Aparición de Software como producto. (Casas de Software). INICIO DE LA CRISIS DEL SOFTWARE. Se buscan procedimientos para el desarrollo del Software.

4. 1972 – 1985 Nuevo Concepto: Sistemas Distribuidos. Complejidad en los Sistemas de Información. Aparecen: Redes de área local y global, y Comunicadores Digitales. Amplio Uso de Microprocesadores.

5. 1985 - 1995 aprox. Impacto Colectivo de Software. Aparecen: Redes de Información, Tecnologías Orientadas a Objetos. Aparecen: Redes Neuronales, Sistemas Expertos y SW de Inteligencia Artificial. La información como valor preponderante dentro de las Organizaciones.

6. 2000 hasta hoy en día Utiliza algunos requisitos de las eras anteriores solo que aumenta la omnipresencia de la web, la reutilización de información y componentes de software

7. Codificar: Transformar mediante las reglas de un código la formulación de un mensaje. Hardware: Componente físico de la computadora. Por ejemplo: el monitor, la impresora o el disco rígido. El hardware por sí mismo no hace que una máquina funcione. Es necesario, además, instalar un Software adecuado. Microprocesador: Es la parte más

Page 6: Software

importante del ordenador, se encarga de realizar todos los cálculos y controla su funcionamiento. La velocidad de este "cerebro" determina la del ordenador

8. Multiprogramación: Se denomina multiprogramación a la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo”. Multiusuario: Capacidad de algunos sistemas para ofrecer sus recursos a diversos usuarios conectados a través de terminales. Preponderante: Que prepondera, prevalece o tiene cualquier tipo de superioridad respecto a aquello con lo que es comparado

Software de Aplicación

Este describe programas que son para el usuario, así descrito para poder realizar casi cualquier tarea. Este es aquel cuyo que puede ser utilizado en cualquier instalación informática, independiente del empleo que vayamos a hacer de ella. Como existen muchos programas se dividen en varias categorías:

Aplicaciones de negocios: en esta se encuentran los procesadores de palabras, hojas de cálculos, base de datos, Graficadores.

Aplicaciones de Utilería

Aplicaciones Personales

Aplicaciones de Entretenimiento

Procesadores de palabras: Estos permiten hacer cambios y correcciones con facilidad, permiten revisar la ortografía e incluso la gramática de un documento, cambiar la apariencia de la letra, agregar gráficos, fusionar listas de direcciones con cartas con envío de correo en grupo, general tablas de contenido, etc. También se puede usar para crear cualquier tipo de documento (carta de negocio, documentos legales).

Hojas de cálculo: son procesadores de números tridimensionales. Se pueden crear hojas de trabajo donde puedes colocar textos, números o formulas en las celdas, obteniendo una hoja contable computarizada. También puede crear gráficas y tablas para mostrar gráficamente relaciones entre números.

Graficadores: Se utilizan para crear ilustraciones desde cero (0) los; usuarios pueden pintar con dispositivos electrónicos de señalamiento en vez de lápices o brochas. Otro tipo de software para gráfico son las aplicaciones para presentaciones de gráficos con este se crean gráficas y tabla a color y de calidad profesional basados en datos numéricos de otro programa (hoja de cálculo).

Manejador de base de datos: Se utiliza para organizar los datos guardados en la computadora y permite buscar datos específicos de diferentes maneras. También archivan los datos en orden alfabético esto permite obtener la información que se desean más fácilmente.

Programas de utilidad

Page 7: Software

Stat: es uno de los más útiles dentro del CP/M ya que tiene diversos usos relacionados con el manejo de fichero y discos, sus funciones son:

Obtención información sobre el espacio libre del disco y el estatus de protección del mismo

Obtención de un estado de fichero de un disco (tamaño del mismo, estatus de información y el espacio libre del disco)

Modificación del estatus de protección. Es posible proteger o desproteger tanto ficheros como discos en su totalidad

Protección de ficheros contra el comando DIR

Obtiene información sobre el usuario en que se está trabajando

Obtención de las características del disco (capacidad Kbytes, número de registro, etc.)

Pip:

Este copia de un fichero a sobre el mismo disco

Copia de un fichero de un disco a otro.

Concatenación de fichero (unir varios fichero a uno solo, empleando uno o varios discos)

Copia de un fichero desde un disco a un periférico o viceversa.

Copia de datos entre dispositivos.

Ed:

Se pueden crear varios ficheros

Se pueden modificar los ficheros

En una sesión de trabajo este puede indicar la línea donde se va a realizar la siguiente operación, por medio de un puntero

Se puede introducir texto en mitad de una línea ya sea mayúscula o minúscula

El trabajo de una edición se puede o no salvar

Submit:

Relacionado con la ejecución de un fichero especial que contienen una secuencia de comandos CP/M

Se manifiesta en el momento de realizar varias operaciones de forma repetida

Para utilizar el programa es necesario crear el fichero especial que procesa el comando. Este fichero desaparece al acabar el procedimiento de todo la secuencia de comandos.

Xsub:

Page 8: Software

Este programa aumenta la automatización el procedimiento de los ficheros.

Es posible modificar un programa, ejecutarlo, responder a sus peticiones durante la ejecución, etc.

Asm

Es el programa ensamblador del CP/M que permite pasar de código fuente ensamblador a código del 8080.

Estos programas para hacer utilizados deben sufrir una segunda conversión a ficheros .COM mediante el programa de utilidad LOAD.COM.

Se puede especificar la unidad de disco de los ficheros de entrada como los de salida.

Load

Este programa (LOAD.COM) tiene como misión convertir ficheros de formato hexadecimal (.HEEX) en fichero ejecutables con código maquina (.COM)

Ddt (DDT.COM)

Es una herramienta para la producción en ensamblador

Permite ver comprobar y verificar programas en código máquina, así como depurar esto de forma dinámica, durante ejecuciones realizadas paso a paso

Este se carga sobre la CCP (sección de memoria que contiene el procesador de programas de consola)

Lectura de un fichero en memoria

Listado de una zona de memoria cuyo contenido es un programa (código hexadecimal y código sin ensamblar de cada instrucción)

Movimiento de bloque de memoria a otra dirección

Dump

Sacar por pantalla los contenidos de un fichero con códigos de máquina, en formato exadesimal

También es posible sacar el contenido de ficheros .COM

Este comando es similar a la opción "D" dentro del programa de DDT

Sysgen

Es la copia del sistema operativo CP/M de un disco a otro

En los equipos que incorpora disco duro, este comando es capaz de realizar copias de sistema operativos

¿Se puede utilizar un computador sin sistema operativo?

Page 9: Software

NO. Por qué unos de los pasos por el cual la computadora de pasar al ser encendida, es el de buscar un programa llamado "SISTEMA OPERATIVO". Este es el que va a indicar al usuario como usar los dispositivos: discos duros, teclado y monitor. La computadora una vez encontrado carga este programa en su memoria. Este programa también se encarga de controlar otras funciones básicas de la computadora y por ello se mantiene activo hasta que la maquina sea apagada.

¿Cuál interface es más cómoda para el usuario, una con intérpretes de comando o una interface gráfica?

La interface más cómoda es la interface gráfica, ya que es de mayor comodidad para el usuario.

Este implementa un concepto de ventanas, un papel para insertar datos o información que un programa o comando ha generado, con este se puede cambiar el tamaño o forma para ver la información dentro de ella.

Este implementa menús, iconos y caja de diálogos que facilitan el uso de esta interface.

Los menús ofrecen opciones de comando, este utilizado con el mouse o el teclado para mayor comodidad del usuario. Adicionalmente están los iconos los cuales, pueden ser utilizados por cualquier persona que nunca antes haya trabajado con computadora. Por tal motivo, la interface grafica es más cómoda que los intérpretes de comando, puesto que estos requieren que el usuario posea un conocimiento previo del programa.

Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.

Tendencias actuales en la ingeniería de software

La ingeniería de software es una disciplina joven y aún está en desarrollo. Las direcciones en que la ingeniería de software se está desarrollando incluyen:

Aspectos:

Los aspectos ayudan a los ingenieros de software a lidiar con los atributos de calidad al proporcionar herramientas para añadir o quitar código repetitivo de muchas áreas en el código fuente. Los aspectos describen cómo todos los objetos o funciones deben comportarse en circunstancias particulares. Por ejemplo, los aspectos pueden agregar control de depuración, registro o bloqueo en todos los objetos de un tipo particular. Los investigadores actualmente están trabajando para comprender cómo utilizar aspectos para diseñar el código de propósito general. Conceptos relacionados incluyen programación generativa y plantillas.

Ágil:

El desarrollo ágil de software guía a los proyectos de desarrollo de software que evolucionan rápidamente con cambiantes expectativas y mercados competitivos. Los

Page 10: Software

proponentes de este método creen que procesos pesados, dirigidos por documentos (como TickIT, CMM e ISO 9000) están desapareciendo en importancia. Algunas personas creen que las empresas y agencias exportan muchos de los puestos de trabajo que pueden ser guiados por procesos pesados. Conceptos relacionados incluyen la programación extrema, scrum y lean software development.

Experimental:

La ingeniería de software experimental es una rama de la ingeniería de software interesada en la elaboración de experimentos sobre el software, en la recolección de datos de los experimentos y en la elaboración de leyes y teorías desde estos datos. Los proponentes de este método defienden que la naturaleza del software es tal que podemos hacer avanzar el conocimiento en software a través de sólo experimentos.

Model-driven:

El diseño manejado por modelos desarrolla modelos textuales y gráficos como artefactos primarios de diseño. Hay disponibles herramientas de desarrollo que usan transformación de modelo y generación de código para generar fragmentos de código bien organizado que sirven como base para producir aplicaciones completas.

Líneas de productos de software:

Las líneas de producción de software es una forma sistemática para producir familias de sistemas de software, en lugar de crear una sucesión de productos completamente individuales. Este método destaca una extensiva, sistemática, reutilización de código formal, para intentar industrializar el proceso de desarrollo de software.

El futuro de la Conferencia de ingeniería de Software (FOSE), celebrada en ICSE 2000, documenta el estado del arte de SE en 2000 y lista muchos problemas a resolver en la próxima década. El FOSE sigue la pista de las conferencias ICSE 20006 y el ICSE 20077 y también ayudar a identificar el estado del arte en ingeniería de software.

Características del Software

El software tiene tres características principales:

1) Características operativas

2) Características de transición

3) Características de revisión

Características operativas del Software

Son factores de funcionalidad, es como se presenta el software, es la “parte exterior” del mismo. Incluye aspectos como:

Corrección: El software que estamos haciendo debe satisfacer todas las especificaciones establecidas por el cliente.

Usabilidad / Facilidad de aprendizaje: Debe ser sencillo de aprender.

Integridad: Un software de calidad no debe tener efectos secundarios.

Page 11: Software

Fiabilidad: El producto de software no debería tener ningún defecto. No sólo esto, no debe fallar mientras la ejecución.

Eficiencia: Forma en que el software utiliza los recursos disponibles. El software debe hacer un uso eficaz del espacio de almacenamiento y el comando ejecutar según los requisitos de tiempo deseados.

Seguridad: Se deben tomar medidas apropiadas para mantener los datos a salvo de las amenazas externas

Características de transición del Software

Interoperabilidad: Es la capacidad para el intercambio de información con otras aplicaciones.

Reutilización: Es poder utilizar el código de software con algunas modificaciones para diferentes propósitos.

Portabilidad: Capacidad para llevar a cabo las mismas funciones en todos los entornos y plataformas.

Características de revisión de Software

Son los factores de ingeniería, la “calidad interior ‘del software como la eficiencia, la documentación y la estructura. Incluye aspectos como:

Capacidad de mantenimiento: El mantenimiento del software debe ser fácil para cualquier tipo de usuario.

Flexibilidad: Los cambios en el software debe ser fácil de hacer.

Extensibilidad: Debe ser fácil de aumentar nuevas funciones.

Escalabilidad: Debe ser muy fácil de actualizar para más trabajo.

Capacidad de prueba: Prueba del software debe ser fácil.

Modularidad: Debe estar compuesto por unidades y módulos independientes entre sí.

Programación de software

Un programa informático es el resultado final de un proceso que empieza con el planteamiento de un problema. Un programa es un conjunto de instrucciones escritas con un lenguaje de programación y que serán ejecutadas en un ordenador.

Cada PC reconoce un lenguaje propio, denominado lenguaje máquina o ensamblador, que consta de unas instrucciones muy a bajo nivel, en las cuales se accede directamente a los elementos físicos de la máquina como por ejemplo los registros.

Por ejemplo son del tipo: copia lo que hay en una posición concreta de la memoria a un registro concreto o suma lo que hay en dos registros o copia lo que hay en un registro a

Page 12: Software

otra posición de memoria. La unidad de control (a la unidad central de proceso o CPU) es quien es capaz de entender estas instrucciones sencillas y controlar su ejecución.

Como ya sabes, cada máquina tiene una configuración física diferente, y también un lenguaje ensamblador diferente. Por ejemplo, es diferente el ensamblador de un PC que el de un Mac.

Software libre:

El término software. Libre refiere el conjunto de software que por elección manifiesta de su autor, puede ser copiado, estudiado, modificado, utilizado libremente con cualquier fin y redistribuido con o sin cambios o mejoras. Su definición está asociada al nacimiento del movimiento de software libre, encabezado por Richard Stallman y la consecuente fundación en 1985 de la Free Software Foundation, que coloca la libertad del usuario informático como propósito ético fundamental. Proviene del término en inglés free software, que presenta ambigüedad entre los significados «libre» y «gratis» asociados a la palabra free.

Un programa informático es software libre si otorga a los usuarios todas estas libertades de manera adecuada. De lo contrario no es libre. Existen diversos esquemas de distribución que no son libres, y si bien podemos distinguirlos en base a cuánto les falta para llegar a ser libres, su uso bien puede ser considerado contrario a la ética en todos los casos por igual.

El software libre suele estar disponible gratuitamente, o al precio de coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar «software libre» a «software gratuito» (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente. Análogamente, el software gratis o gratuito incluye en ocasiones el código fuente; no obstante, este tipo de software no es «libre» en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.

Tampoco debe confundirse software libre con «software de dominio público». Éste último es aquel que no requiere de licencia, pues sus derechos de explotación son para toda la humanidad, porque pertenece a todos por igual. Cualquiera puede hacer uso de él, consignando su autoría original. Este software sería aquel cuyo autor lo dona a la humanidad o cuyos derechos de autor han expirado. Si un autor condiciona su uso bajo una licencia, por muy débil que sea, ya no es del dominio público.

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

Page 13: Software

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.

Es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, modificado y redistribuido libremente. Según la Free Software Fundación, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modificado.

El software libre suele estar disponible gratuitamente, o al precio de costo de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar software libre a "software gratuito" (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente ("software comercial").

Análogamente, el "software gratis" o "gratuito" incluye en ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.

Historia del Software libre:

Entre los años 1960 y 1970, el software no era considerado un producto sino un añadido que los vendedores de las grandes computadoras de la época (las mainframes) aportaban A sus clientes para que éstos pudieran usarlos. En dicha cultura, era común que los programadores y desarrolladores de software compartieran libremente sus programas unos con otros. Este comportamiento era particularmente habitual en algunos de los mayores grupos de usuarios de la época, como DECUS (grupo de usuarios de computadoras DEC). A finales de la década de 1970, las compañías iniciaron el hábito de imponer restricciones a los usuarios, con el uso de acuerdos de licencia.

En 1971, cuando la informática todavía no había sufrido su gran auge, las personas que hacían uso de ella, en ámbitos universitarios y empresariales, creaban y compartían el software sin ningún tipo de restricciones.

Con la llegada de los años 1980 la situación empezó a cambiar. Las computadoras más modernas comenzaban a utilizar sistemas operativos privativos, forzando a los usuarios a aceptar condiciones restrictivas que impedían realizar modificaciones a dicho software.

En caso de que algún usuario o programador encontrase algún error en la aplicación, lo único que podía hacer era darlo a conocer a la empresa desarrolladora para que ésta lo solucionara. Aunque el programador estuviese capacitado para solucionar el problema y

Page 14: Software

lo desease hacer sin pedir nada a cambio, el contrato le impedía que modificase el software.

En 1971, el estadounidense Richard Matthew Stallman, estudiante de Física de la Universidad de Harvard, formó parte como hacker del Laboratorio de Inteligencia Artificial del Instituto Tecnológico de Massachusetts.

En los años 1980, la cultura hacker que constituía la vida de Stallman empezó a disolverse bajo la presión de la comercialización en la industria del software. Los demás compañeros de Stallman, también hackers del laboratorio, fundaron la compañía Symbolics que intentaba reemplazar el software libre producido en las instalaciones por software no libre de su propiedad. Stallman contó, años después, que por aquellos años, en el laboratorio donde trabajaba, habían recibido una impresora donada por una empresa externa. El dispositivo, que era utilizado en red por todos los trabajadores, parecía no funcionar a la perfección, dado que cada cierto tiempo el papel se atascaba. Como agravante, no se generaba ningún aviso que se enviase por red e informase a los usuarios de la situación.

La pérdida de tiempo era constante, ya que en ocasiones, los trabajadores enviaban por red sus trabajos a imprimir y al ir a buscarlos se encontraban la impresora atascada y una cola enorme de trabajos pendientes. Richard Stallman decidió arreglar el problema, e implementar el envío de un aviso por red cuando la impresora se bloqueara. Para ello necesitaba tener acceso al código fuente de los controladores de la impresora. Pidió a la empresa propietaria de la impresora lo que necesitaba, comentando, sin pedir nada a cambio, qué era lo que pretendía realizar. La empresa se negó a entregarle el código fuente. En ese preciso instante, Stallman se vio en una encrucijada: debía elegir entre aceptar el nuevo software propietario firmando acuerdos de no revelación y acabar desarrollando más software propietario con licencias restrictivas, que a su vez deberían ser más adelante aceptadas por sus propios colegas. Stallman renunció a su empleo, viviendo de realizar programas libres y vender las copias en cintas y el día 27 de septiembre de 1983, anunció en varios grupos de noticias de Usenet el inicio del Proyecto GNU, que perseguía crear un sistema operativo completamente libre. En 1985, Stallman fundó la organización Free Software Foundation (FSF) e introdujo la definición formal de software libre y el concepto de "copyleft", que desarrolló para otorgar libertad a los usuarios y para restringir las posibilidades de apropiación del software.

CARACTERISTICAS DEL SOFTWARE LIBRE:

Se encuentra disponible el código fuente del software, por lo que puede modificarse el software sin ningún límite.Libertad de estudiarlo y adaptarlo.Libertad de distribuir copias.Libertad de mejora y publicación de cambios.

Page 15: Software

Libertad de usar el programa con cualquier propósito.

VENTAJAS DEL SOFTWARE LIBRE:

El usuario no comete delito por tenerlo o usarlo.Amplísima gama y variedad de herramientas libres.Actualizaciones periódicas con alta frecuencia.100% libre de virus.Altísimo nivel de estabilidad comprobada.Protege y defiende la SOBERANIA.Tiene una gran comunidad de apoyo y soporte.Diversidad de soluciones informáticas.Costo.Flexibilidad de las soluciones informáticas.Independencia tecnológica.

DESVENTAJAS DEL SOFTWARE LIBRE:

El hardware debe ser de calidad y estándares abiertos.Carece de una estructura ampliada mercadeo (marketing).Algunas aplicaciones específicas no están en el mercado.Requiere profesionales debidamente calificados para la administración del sistema (es un sistema administrado).Dificultad en el intercambio de archivos.Algunas aplicaciones (bajo Linux) pueden llegar a ser algo complicadas de instalar.Inexistencia de garantía por parte del autor.Interfaces gráficas menos amigables.Poca estabilidad y flexibilidad en el campo de multimedia y juegos.Menor compatibilidad con el hardware.

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.

CARACTERISTICAS DEL SOFTWARE PROPIETARIO:

Este software no te pertenece no puedes hacerle ningún tipo de modificación al código fuente.

Page 16: Software

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.

VENTAJAS DEL SOFTWARE PROPIETARIO:

Propiedad y decisión de uso del software por parte de la empresa.Soporte para todo tipo de hardware.Mejor acabado de la mayoría de aplicaciones.Las aplicaciones número uno son propietarias.Menor necesidad de técnicos especializados.El ocio para ordenadores personales está destinado al mercado propietario.Mayor mercado laboral actual.Mejor protección de las obras con copyright.Unificación de productos.Facilidad de adquisición (puede venir preinstalado con la compra del PC, o 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 por lo general grandes y pueden dedicar muchos recursos, sobretodo económicos, en el desarrollo e investigación.Interfaces gráficas mejor diseñadas.Más compatibilidad en el terreno de multimedia y juegos.Mayor compatibilidad con el hardware.

DESVENTAJAS DEL SOFTWARE PROPIETARIO:

No existen aplicaciones para todas las plataformas (Windows y Mac OS).Imposibilidad de copia.Imposibilidad de modificación.Restricciones en el uso (marcadas por la licencia).Imposibilidad de redistribución.Por lo general suelen ser menos seguras.El coste de las aplicaciones es mayor.El soporte de la aplicación es exclusivo del propietario.El usuario que adquiere software propietario depende al 100% de la empresa propietaria.

Software Propietario vs Software Libre

Es desarrollado por una comunidad de voluntarios, y cualquier persona puede participar en el proceso de construcción del software. Esto implica que el código fuente ha de ser abierto para todo el mundo, sin restricciones.

Page 17: Software

Podemos distribuir el software libremente entre familiares, amigos, compañeros de trabajo, ya que las licencias libres nos lo permite (la más habitual es la GPL), teniendo en cuenta que hemos de seguir la normativa que ésta marca.Tenemos la seguridad que miles de voluntarios cooperan en la continua mejora del software, corrigiendo posibles errores y poniendo rápidamente el producto al alcance de todos.Aunque software, libre no implica necesariamente que el producto sea gratuito, lo habitual es que podamos obtener los programas descargándolos libremente de internet o a través de distribuciones.El opuesto del Software libre es el denominado software propietario, aquel que es imposible de utilizar en otro hardware, o terminal modificar, o transferir sin pagar derechos a su inventor o creador. El Software propietario costa de estas características.Dependencia de un proveedor: La licencia deja claro que el software sigue siendo propiedad de la empresa productora del mismo y que el usuario no está facultado a realizar ningún cambio en él, ni tampoco analizarlo para determinar cómo realiza sus funciones.Es desarrollado por una empresa y no difunde sus especificidades. El código es cerrado, nadie puede ver cómo está elaborado el programa.La licencia nos limita a usar ese software por una sola persona (quien lo adquiere). No se puede redistribuir, a no ser que la licencia lo permita.Al no tener acceso al código fuente, no podemos corregir los posibles errores que tenga el programa, ni adaptarlo a nuestras necesidades. Dependemos de las variaciones que la empresa propietaria realice con las nuevas versiones.Lo habitual es tener que pagar por adquirir estos programas, y muchos de ellos ya sabemos que no son precisamente baratos y asequibles.Libertad de ejecutar el programa, con cualquier propósito. Libertad de estudiar cómo funciona el programa y de adaptarlo a sus necesidades. Libertad de redistribuir copias del programa. Libertad de mejorar el programa y redistribuir dichas modificaciones.

Conclusión:

La definición más completa sobre software es: El software, como programa, consiste en un código en un lenguaje máquina específico para un procesador individual. El código es una secuencia de instrucciones ordenadas que cambian el estado del hardware de una computadora. Puede distinguirse en tres categorías: software de sistema, software de

Page 18: Software

programación y aplicación de software. De todas maneras esta distinción es arbitraria y muchas veces un software puede caer unas varias categorías. Los códigos que se utilizan para la programación de Software pueden ser numero vinarios, como los que se aprenden en Algebra, pueden tener caracteres, también números, símbolos, letras, etc. Software de sistema: ayuda a funcionar al hardware y a la computadora. Incluye el sistema operativo, controladores de dispositivos, herramientas de diagnóstico, servidores, sistema de ventanas, utilidades y más. Su propósito es evitar lo más posible los detalles complejos de la computación, especialmente la memoria y el hardware. Software de programación: provee herramientas de asistencia al programador. Incluye editores de texto, compiladores, intérprete de instrucciones, enlazadores, debuggers, etc. Un Hardware si Software es simplemente materia muerta, es como el alma del cuerpo en un ser humano, el software hace que se ejecuten todas las aplicaciones cargadas en el sistema, así como que los Hardware se inicien y empiecen a trabajar. Software de aplicación: permite a los usuarios finales hacer determinadas tareas. Algún software de aplicación son los navegadores, editores de texto, editores gráficos, antivirus, mensajeros. El software puede clasificarse según su licencia y/o forma de distribución. Existen varios dilemas que limitan la evolución de este tipo de proyectos, por ejemplo, los parásitos que obtienen beneficios sin brindar ninguna aportación, como empresas que utilizan software libre y reciben beneficios económicos gracias a ello, o programadores que utilizan programas o código para realizar proyectos por los que ellos si obtendrán remuneración. Otro gran problema que detiene el desarrollo del Software libre es la piratería, ya que anula la principal ventaja del software libre, el costo, y brinda mayor difusión a los programas propietarias manteniéndolos en el mercado como el estándar, y esto desencadena una serie de obstáculos como el hecho de que las personas que utilizan software pirata como particulares, estarán acostumbrados a ese programa, por ende las empresas lo utilizaran en sus oficina, o al revés, si en una compañía se utiliza un software, y se capacita a los empleados para trabajar con él, obliga de cierta manera al trabajador a emplear solo ese software, ya sea por compatibilidad o porque es el único que sabe utilizar. El desarrollo de software pirata hace que no sean tan confiables como lo deberían de ser, así que mejor hay que comprar Software con licencias, porque si hay algún inconveniente podemos reportarlo y arreglar el asunto poniéndonos en contacto con el vendedor. El software libre es un proyecto que está en contra del software donde nos propone que no haiga reglas en el software donde el usuario tenga mayor control sobre su equipo o PC. El software es todo lo que no podemos ver o tocar físicamente de nuestro equipo, es entonces todos los programas que vemos a través de la pantalla o monitor. Lo más interesante y bueno a mi parecer es que puedes tú mismo puedas crear software sin necesidad que una empresa venda lo que tú quieras conseguir, solo necesitas tener las herramientas necesarias y también el conocimiento de los códigos de programación.

Page 19: Software