Examen omar
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
454
On Slideshare
440
From Embeds
14
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 14

http://omarg5495.blogspot.com 12
http://omarg5495.blogspot.mx 1
http://omarg5495.blogspot.com.es 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. UNIVERSIDAD NACIONAL DE CHIMBORAZO ESCUELA: INGENIERÍA INDUSTRIAL NOMBRE: OMAR GAIBOR DOCENTE: ING. PATRICIO VILLACRÉS TEMA: HERRAMIENTAS DEL SOFTWARE LIBRE PARA INGENIERÍA
  • 2. MARZO 2013 – JULIO 2013 Ingeniería de software Ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software, y el estudio de estos enfoques, es decir, la aplicación de la ingeniería al software. Es la aplicación de la ingeniería al software, ya que integra matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la ingeniería. En el 2004, en los Estados Unidos, la Oficina de Estadísticas del Trabajo (U. S. Bureau of Labor Statistics) contó 760.840 ingenieros de software de computadora. El término "ingeniero de software", sin embargo, se utiliza en forma genérica en el ambiente empresarial, y no todos los ingenieros de software poseen realmente títulos de ingeniería de universidades reconocidas. Algunos autores consideran que "desarrollo de software" es un término más apropiado que "ingeniería de software" para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software. Indistintamente se utilizan los términos "ingeniería de software" o "ingeniería del software". En Hispanoamérica el término usado normalmente es el primero de ellos. La creación del software es un proceso intrínsecamente creativo y la ingeniería del software trata de sistematizar este proceso
  • 3. con el fin de acotar el riesgo del fracaso en la consecución del objetivo creativo por medio de diversas técnicas que se han demostrado adecuadas en base a la experiencia previa. La IS se puede considerar como la ingeniería aplicada al software, esto es, por medios sistematizados y con herramientas preestablecidas, la aplicación de ellos de la forma más eficiente para la obtención de resultados óptimos; objetivos que siempre busca la ingeniería. No es sólo de la resolución de problemas, sino más bien teniendo en cuenta las diferentes soluciones, elegir la más apropiada. Índice • 1 Implicaciones socioeconómicas • 1.1 Económicamente • 1.2 Socialmente • 2 Metodología • 2.1 Etapas del proceso • 2.1.1 Análisis de requisitos • 2.1.2 Especificación • 2.1.3 Arquitectura • 2.1.4 Programación • 2.1.5 Prueba • 2.1.6 Documentación • 2.1.7 Mantenimiento • 3 Modelos y filosofías de desarrollo de software • 3.1 Naturaleza de la IS • 3.1.1 Matemáticas • 3.1.2 Creación • 3.1.3 Gestión de Proyectos • 3.1.4 Arte • 4 Responsabilidad • 5 Educación ética • 5.1 Organizaciones Implicaciones socioeconómicas La ingeniería de software afecta a la economía y las sociedades de variadas formas. Económicamente En los Estados Unidos, el software contribuyó a una octava parte de todo el incremento del PIB durante la década de 1990 (alrededor de 90,000 millones de dólares por año), y un noveno de todo el crecimiento de productividad durante los últimos años de la década (alrededor de 33.000 millones de dólares
  • 4. estadounidenses por año). La ingeniería de software contribuyó a US$ 1 billón de crecimiento económico y productividad en esa década. Alrededor del globo, el software contribuye al crecimiento económico en formas similares, aunque es difícil de encontrar estadísticas fiables. [cita requerida] Además, con la industria del lenguaje está hallando cada vez más campos de aplicación a escala global. Socialmente La ingeniería de software cambia la cultura del mundo debido al extendido uso de la computadora. El correo electrónico (E-mail), la WWW y la mensajería instantánea permiten a la gente interactuar en nuevas formas. El software baja el costo y mejora la calidad de los servicios de salud, los departamentos de bomberos, las dependencias gubernamentales y otros servicios sociales. Los proyectos exitosos donde se han usado métodos de ingeniería de software incluyen a GNU/Linux, el software del transbordador espacial, los cajeros automáticos y muchos otros. Metodología Un objetivo de décadas ha sido el encontrar procesos y metodologías, que sean sistemáticas, predecibles y repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del producto software. Etapas del proceso La ingeniería de software requiere llevar a cabo numerosas tareas agrupadas en etapas, al conjunto de estas etapas se le denomina ciclo de vida. Las etapas comunes a casi todos los modelos de ciclo de vida son las siguientes: Análisis de requisitos Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere habilidad y experiencia para reconocer requisitos incompletos, ambiguos o contradictorios. El resultado del análisis de requisitos con el cliente se plasma en el documento ERS, Especificación de Requisitos del Sistema, cuya estructura puede venir definida por varios estándares, tales como CMMI. Asimismo, se define un diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software. La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en
  • 5. gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aún no está formalizada, ya se habla de la Ingeniería de requisitos. La IEEE Std. 830-1998 normaliza la creación de las especificaciones de requisitos de software (Software Requirements Specification). No siempre en la etapa de "análisis de requisitos" las distintas metodologías de desarrollo llevan asociado un estudio de viabilidad y/o estimación de costes. El más conocido de los modelos de estimación de coste del software es el modelo COCOMO Especificación La especificación de requisitos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de las necesidades del negocio (definidas por la alta dirección), así como la interacción con los usuarios funcionales para la recolección, clasificación, identificación, priorización y especificación de los requisitos del software. Entre las técnicas utilizadas para la especificación de requisitos se encuentran: • Caso de uso, • Historias de usuario, Siendo los primeros más rigurosas y formales, los segundas más ágiles e informales. Arquitectura La integración de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto. El arquitecto de software es la persona que añade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnológicas. La arquitectura de sistemas en general, es una actividad de planeación, ya sea a nivel de infraestructura de red y hardware, o de software. La arquitectura de software consiste en el diseño de componentes de una aplicación (entidades del negocio),
  • 6. generalmente utilizando patrones de arquitectura. El diseño arquitectónico debe permitir visualizar la interacción entre las entidades del negocio y además poder ser validado, por ejemplo por medio de diagramas de secuencia. Un diseño arquitectónico describe en general el cómo se construirá una aplicación de software. Para ello se documenta utilizando diagramas, por ejemplo: • Diagramas de clases • Diagramas de base de datos • Diagrama de despliegue • Diagrama de secuencia Siendo los dos primeros los mínimos necesarios para describir la arquitectura de un proyecto que iniciará a ser codificado. Depende del alcance del proyecto, complejidad y necesidades, el arquitecto elige qué diagramas elaborar. Las herramientas para el diseño y modelado de software se denominan CASE, (Computer Aided Software Engineering) entre las cuales se encuentran: • Enterprise Architect • Microsoft Visio for Enterprise Architects Programación Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, pero no necesariamente es la que demanda mayor trabajo y ni la más complicada. La complejidad y la duración de esta etapa está íntimamente relacionada al o a los lenguajes de programación utilizados, así como al diseño previamente realizado. Prueba Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación del problema. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral, para así llegar al objetivo. Se considera una buena práctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la programó, idealmente un área de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un área de pruebas, la primera es que esté compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa que la documentación entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. El segundo enfoque es tener un
  • 7. área de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en qué condiciones puede fallar una aplicación y que pueden poner atención en detalles que personal inexperto no consideraría. Documentación Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML),diagramas de casos de uso, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema. Mantenimiento Fase dedicada a mantener y mejorar el software para corregir errores descubiertos e incorporar nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo del software inicial. Alrededor de 2/3 del tiempo de ciclo de vida de un proyecto4 está dedicado a su mantenimiento. Una pequeña parte de este trabajo consiste eliminar errores (bugs); siendo que la mayor parte reside en extender el sistema para incorporarle nuevas funcionalidades y hacer frente a su evolución. Modelos y filosofías de desarrollo de software La ingeniería de software dispone de varios modelos, paradigmas y filosofías de desarrollo, en los cuales se apoya para la construcción del software, entre ellos se puede citar: • Modelo en cascada o Clásico (modelo tradicional) • Modelo de prototipos • Modelo en espiral • Desarrollo por etapas • Desarrollo iterativo y creciente o Iterativo e Incremental • RAD (Rapid Application Development) • Desarrollo concurrente • Proceso Unificado • RUP (Proceso Unificado de Rational) Naturaleza de la IS La ingeniería de software tiene que ver con varios campos en diferentes formas: Matemáticas Los programas tienen muchas propiedades matemáticas. Por
  • 8. ejemplo la corrección y la complejidad de muchos algoritmos son conceptos matemáticos que pueden ser rigurosamente probados. El uso de matemáticas en la IS es llamado métodos formales. Creación Los programas son construidos en una secuencia de pasos. El hecho de definir propiamente y llevar a cabo estos pasos, como en una línea de ensamblaje, es necesario para mejorar la productividad de los desarrolladores y la calidad final de los programas. Este punto de vista inspira los diferentes procesos y metodologías que se encuentran en la IS. Gestión de Proyectos El desarrollo de software de gran porte requiere una adecuada gestión del proyecto. Hay presupuestos, establecimiento de tiempos de entrega, un equipo de profesionales que liderar. Recursos (espacio de oficina, insumos, equipamiento) por adquirir. Para su administración se debe tener una clara visión y capacitación en Gestión de Proyectos. Arte Los programas contienen muchos elementos artísticos. Las interfaces de usuario, la codificación, etc. Incluso la decisión para un nombre de una variable o una clase. Donald Knuth es famoso por argumentar a la programación como un arte. Responsabilidad La responsabilidad en la ingeniería del software es un concepto complejo, sobre todo porque al estar los sistemas informáticos fuertemente caracterizados por su complejidad, es difícil apreciar sus consecuencias. En la ingeniería del software la responsabilidad será compartida por un grupo grande de personas, que comprende desde el ingeniero de requisitos, hasta el arquitecto software, y contando con el diseñador, o el encargado de realizar las pruebas. Por encima de todos ellos destaca el director del proyecto. El software demanda una clara distribución de la responsabilidad entre los diferentes roles que se dan en el proceso de producción. El ingeniero del software tiene una responsabilidad moral y legal limitada a las consecuencias directas.
  • 9. Educación ética Organizaciones • IEEE Computer Society • Association for Computing Machinery (ACM) • Software Engineering Institute (SEI) • British Computer Society (BCS) • RUSSOFT Association • Society of Software Engineers Lista de software Creación de documentos e informes OpenOffice.org Es una suite de oficina inspirada en la de Microsoft. Si estás totalmente acostumbrado a las herramientas de M$, ésta es tu opción. Además trae el OpenOffice Draw, que es un programa de dibujo vectorial similar al Corel Draw. Hay muchos otros paquetes similares (KOffice, SIAG Office, GNOME Office…) y también programas como Abiword y Gnumeric, todos con sus pros y sus contras. LaTeX ¿Realmente pensás hacer el informe de tu tesis en M$ Word…? LaTeX es un lenguaje para crear documentos. El método es bastante similar a la creación de un programa. Tenés que escribir el “código fuente” de tu documento (en cualquier editor de texto plano), y después compilarlo. Tiene una fuerte orientación a las matemáticas, permitiendo escribir fórmulas y símbolos de todo tipo. Además, es totalmente estable. La curva de aprendizaje es inversa a la de programas como M$ Word: al principio cuesta arrancar, pero una vez que te sentís cómodo, podés hacer un informe técnico de calidad profesional en poco tiempo. El formato de los documentos creados en LaTeX es generalmente Postscript (PS) o PDF, pero pueden ser fácilmente convertidos a otros formatos como HTML o incluso texto plano. Este documento fue creado en LaTeX.
  • 10. Kile Sirve para editar archivos fuente de LaTeX, con syntax highlighting y macros para los comandos LaTeX más utilizados. Ayuda muchísimo en el ciclo de editar/compilar/ver resultado. LyX Es un front-end de LaTeX, casi WYSIWYG (What You See Is What You Get), permitiendo crear documentos con la calidad de LaTeX, pero con la facilidad de los procesadores de textos usuales. DocBook Es otro lenguaje de creación de documentos similar a LaTeX, pero basado en XML / SGML. Edición de imágenes / bitmaps The GIMP Es el programa de edición de bitmaps. Le pisa los talones al Photoshop. Dia Permite dibujar todo tipo de diagramas, grafos, cuadros sinópticos, etc, que pueden ser exportados a Postscript (para incluir, por ejemplo, en un documento LaTeX). XFig Es un programa para crear gráficos vectoriales (es decir, para dibujo general). Las imágenes creadas pueden ser convertidas a muchos formatos usando el programa transfig. Permite incluir fórmulas de LaTeX en los dibujos, por lo que es ideal para acompañar los documentos LaTeX con figuras. Inkscape Un programa de dibujo vectorial, similar al Corel Draw. Gráfica de datos / funciones matemáticas Gnuplot Puede graficar datos numéricos o funciones matemáticas, en 2D y 3D. Es muy flexible y totalmente configurable, pero para usarlo bien hay que aprender el lenguaje, ya que es un programa manejado mediante línea de comandos. Kile Ya fue mencionado, pero acá está de nuevo, porque trae un front-end gráfico para gnuplot. Significa que podés usar gnuplot sin aprender los comandos. Sistemas de álgebra y cálculo simbólico Maxima
  • 11. Es un sistema de álgebra bastante completo. YACAS Otro sistema de álgebra, de propósito general, liviano y fácil de usar. Pari-GP Es un paquete para teoría numérica asistida por computadora. Giac/XCas Otro sistema de álgebra, disponible como un programa independiente, o bien como una librería C++. Mathomatic Un sistema de álgebra de propósito general, altamente portable. Qalculate! A primera vista parece una calculadora de escritorio sencilla, pero bajo su interfaz simple e intuitiva se esconde un paquete matemático muy completo y fácil de usar, que permite hacer cálculo numérico y simbólico, conversión de unidades, gráficos (usando gnuplot) y muchas cosas más. Herramientas/Lenguajes de cálculo numérico Octave Un sistema de cálculo numérico muy completo con un lenguaje casi compatible con Matlab. Utiliza a Gnuplot como back-end para graficar. Scilab Otro paquete de cálculo numérico. Tal vez ofrece más funcionalidades que Octave, pero su lenguaje es menos compatible con Matlab. Yorick Es un lenguaje de programación interpretado, para cálculos y simulaciones numéricas. PDL Perl Data Language añade al lenguaje Perl la habilidad de almacenar y manipular grandes cantidade de datos en arreglos n-dimensionales, que son el pan y la manteca de la computación científica. La idea es transformar a Perl en un lenguaje numérico similar a Matlab. Se incluye un entorno interactivo de línea de comandos, además del módulo Perl (PDL) para usar en scripts. Euler Es un laboratorio numérico y un lenguaje de programación. El sistema puede manejar números, vectores y matrices reales, complejos y en forma de intervalos. También existe una versión con interfaz gráfica, Euler for GTK+.
  • 12. Compiladores/Intérpretes gcc GNU Compiler Collection, (y no GNU C Compiler). Es el compilador de GNU, que contiene front-ends para C, C++, Objective-C, Fortran, Java, y Ada. Está incluido en cualquier distribución de GNU/Linux (de hecho, casi todo el sistema operativo se compila en gcc). Free Pascal Es un compilador Pascal semánticamente compatible con TP 7.0, así como la mayoría de las versiones de Delphi. GNU Pascal El compilador Pascal de GNU, que utiliza a gcc como back- end. Es compatible con Borland Pascal, y soporta muchas de sus unidades (units). Perl Perl es un lenguaje interpretado de alto nivel, optimizado para procesar archivos de texto arbitrarios, extraer datos de ellos, e imprimir informes basados en esa información. Python Un lenguaje de programación interpretado, interactivo y orientado a objetos, que combina una gran potencia con una alta claridad en la sintaxis. Esta característica hace que Python sea ideal, tanto para el que está dando sus primeros pasos en programación, como para el programador avanzado. PHP Lenguaje de programación interpretado, fuertemente orientado a desarrollo web. gprolog Un intérprete/compilador Prolog, que cumple casi completamente con el estándar ISO Prolog, añadiendo algunas extensiones bastante útiles. Incluye resolución de condiciones sobre dominios finitos (FD), y una potente interfaz bidireccional entre Prolog y C. SWI-Prolog Otro intérprete/compilador Prolog con licencia libre. Incluye recolector de basura (garbage collection) e interfaz C/C++, y ofrece una buena performance general. Entornos de programación (IDEs – Integrated Development Environments) Anjuta Es un IDE para crear aplicaciones GNOME/Gtk+ con Glade, o simplemente para crear aplicaciones genéricas, en C/C++, o cualquier otro lenguaje.
  • 13. KDevelop Puede generar aplicaciones genéricas, o GUIs usando Qt, KDE o GNOME, en C/C++. Kylix Kylix := Delphi in [Linux]. Es software propietario, pero el Kylix Personal Edition es gratuito. ViM / Emacs Son dos editores de texto plano tan flexibles que pueden utilizarse como entornos de programación para prácticamente cualquier lenguaje. Quanta Plus Es un entorno de desarrollo para HTML con soporte PHP. Está diseñado para el desarrollo rápido de sitios web. Eclipse Un entorno de desarrollo integrado, especialmente orientado a proyectos en Java. Mono Entorno de desarrollo .NET. Debugging gdb El debugger de GNU. Puede depurar cualquier programa compilado en gcc con la opción -g. Se maneja mediante línea de comandos. DDD Data Display Debugger es un front-end gráfico muy completo para varios debuggers, incluyendo el gdb, y para varios lenguajes (C/C++, Java, Pascal…). insight Es otro front-end gráfico para gdb. Herramientas auxiliares para programación Doxygen Sistema para generar automáticamente la documentación de programas escritos en C/C++. Umbrello Modelador UML. RCS / CVS / Subversion / Darcs Sistemas de control de versiones. 2.10 Redes Ethereal Sniffer y analizador de tráfico de red, gráfico. tcpdump
  • 14. Sniffer y analizador de tráfico de red, de consola. Apache Servidor web. 2.11 Electrónica Spice Es la versión original del programa de simulación creado en la Universidad de California, Berkeley. Se maneja mediante línea de comandos, así que no esperes ver un programa de dibujo de esquemáticos con lucecitas y colores. El circuito a simular debe ser ingresado en un archivo de texto, y el Spice se limita a simularlo y entregarte los resultados. El paquete viene con nutmeg, que es un programa que sirve para interpretar y graficar los datos de la simulación, pero no es demasiado flexible. Debido a problemas de licenciamiento, el Spice no puede ser distribuido en binarios, así que es necesario bajar el código fuente y compilarlo. Si usás Debian, en: http://www.eda.ei.tum.de/~mcp/spicedeb/ se explica cómo crear un paquete .deb a partir del código fuente del spice3f5. ngspice Es un proyecto que tiene como objetivo crear una versión mejorada del spice (con algunos bugs arreglados) y con licencia GPL. El paquete viene con ngnutmeg, que es similar al nutmeg del spice. Sirve para graficar los datos de salida de las simulaciones. Gnucap GNU Circuit Analysis Package. Este simulador no está basado en Spice, y su funcionamiento es algo diferente. La principal ventaja de esto es que se trata de un software enteramente libre. Se incluyen modelos para BJT, MOSFET y diodos. Oregano Es un front-end gráfico para spice, ngspice o Gnucap. Permite dibujar los circuitos con una interfaz amigable y simularlos fácilmente. Richard Hult, el autor de Oregano, abandonó el proyecto hace algún tiempo, y algunos miembros del LUGFI decidieron continuarlo. Aun está en desarrollo. Kicad
  • 15. Un grupo de programas para la creación de esquemáticos y circuitos impresos. La interfaz es similar a la de Orcad. Electric Es un sistema de dibujo asistido, simulación y producción de circuitos eléctricos, muy completo y sofisticado, pero también bastante difícil de usar. TkGate Es un simulador de circuitos digitales, con una interfaz amigable e intuitiva, y varias características interesantes, como un compilador genérico de microcódigo/macrocódigo para crear archivos de inicialización de memorias. Xcircuit Es un programa que permite dibujar circuitos eléctricos (aunque puede ser utilizado también para dibujar otras cosas). Es liviano, fácil de usar y produce resultados con calidad profesional y en formato EPS, por lo que resulta ideal para incluir circuitos en documentos LaTeX. También permite generar archivos Spice para simular el circuito. gEDA GPL Electronic Design Automation. La buena noticia es que GNU/Linux ya cuenta con un sistema integrado de diseño electrónico, que contiene herramientas para creación de esquemáticos, simulación y producción de circuitos, distribuido íntegramente como software libre. La mala noticia es que aun está en fase de desarrollo. Programación de microcontroladores Una lista (no completa) de los distintos ensambladores, compiladores, simuladores, depuradores y programadores de micros: sdcc, ASEM-51, uisp, avrp, … HERRAMIENTAS DE SOFTWARE LIBRE APLICADAS EN LA INGENIERIA Objetivos: Conocer los conceptos relativos a la ingeniería del software. Diseñar un software orientado a objetos con el lenguaje UML. Diseñar juegos de pruebas y métodos de control de calidad. Construir programas en entorno GNU. Trabajar con las herramientas de control de versiones. Gestionar el software y trabajar con los sistemas de empaquetamiento de programas. Documentar el software. Conocer y utilizar los recursos existentes y las comunidades virtuales. Contenido Programático
  • 16. Programa del curso Ingeniería del software en entornos del software libre: Introducción a la ingeniería del software Control de calidad y pruebas Comprovación del software Control de calidad Black-box testing White-box testing: GDB Desarrollo de un plan de control de calidad Sistemas de gestión de errores: Bugzilla Construcción de software en entorno GNU AutoMake Libtool Control de versions (CMS) Empaquetamiento y distribución de software Sistemas de creación de documentación HTML, XML, DocBook Doxygen Comunidades virtuales y recursos existentes Freshmeat SourceForge Librerías estándar de programación Qué es Linux? Linux es, en un sentido muy amplio, un sistema operativo. Sin embargo, más purista y específicamente, Linux es un kernel. El kernel de un sistema operativo, se refiere a su núcleo. El kernel de un sistema operativo se encarga de gestionar los recursos de la memoria, habilitar el acceso a los sistemas de archivos, administrar recursos de red, y muchas cosas más. 1. ¿Y qué es GNU/Linux? GNU/Linux es todo el conjunto de herramientas que hacen a Linux un sistema operativo. GNU significa GNU is Not Unix y es el proyecto mundial, de software libre, iniciado en 1984 por Richard M. Stallman. GNU es lo que hace a Linux ser libre y abierto. 2. ¿Linux es gratis? No: Linux es libre. El tipo de licencia que Linux posee es denominada GPL, que fue desarrollada por el proyecto GNU. La licencia GPL permite cuatro libertades fundamentales: • Libertad de uso. • Libertad de aprendizaje. • Libertad de modificación. • Libertad de redistribución. 3. ¿Linux es software libre?
  • 17. Así es. Precisamente por poseer la licencia GNU/GPL. 4. ¿Dónde consigo Linux? Cuando una persona "quiere Linux", lo que generalmente busca (o necesita) es una distribución (comúnmente llamada distro). Una distribución es un conjunto de aplicaciones y herramientas que conviven con el núcleo de Linux cumpliendo fundamentalmente tres funciones: • Instalación del sistema operativo. • Configuraciones del sistema operativo, principalmente de las piezas de hardware. • Manejo de software. Para mayor información sobre las distribuciones de Linux, Linux en peru, vea mas información en el Portal de SomoLibres.org ademas de la sección de distribuciones. 5. ¿Quién es el dueño de Linux? Nadie. Comúnmente se confunde a Linux como una empresa, y se cree que como Microsoft.com pertenece a la empresa Microsoft, entonces Linux.com será el sitio oficial de la empresa Linux, o algo similar. Nada de ello. Linux no lo posee nadie, ni siquiera su creador, Linus Torvalds, es dueño de Linux. Él únicamente posee el registro del nombre, pero el proyecto como tal es 100% libre. 6. ¿Hay que saber programar para usar Linux? No. 7. Linux gráficamente, ¿es como MS-DOS? Lo que mucha gente cree es que Linux, gráficamente, es como MS-DOS, es decir, con una interfaz de texto, de consola. No. Las diversas interfaces gráficas de Linux y sus escritorios, como GNOME o KDE superan enormemente a Windows®, tanto en desempeño, como en atractivo visual. 8. ¿Tengo que ser un gurú de la computación para usar Linux? No. Las versiones más recientes de distribuciones como RedHat y Mandrake dotan al usuario de una enorme facilidad de instalación y configuración de su sistema. 9. ¿Puedo tener Windows y Linux en la misma computadora? Sí. 10.Instalando Linux, ¿podré hacer todo lo que hacía en Windows? Usar Word, Excel; navegar por Internet; chatear, etc. Desde luego. Para cualquier tarea de oficina se pueden usar OpenOffice.org, KOffice, StarOffice, etc. Y puedes usar una gran cantidad de navegadores, y mensajeros instantáneos, como aMSN o GAIM.
  • 18. En el marco del Programa Iberoamericano de Ciencia y Tecnología para el Desarrollo, se han llevado a cabo Talleres Anuales de Herramientas de Cálculo en Ingeniería en Alimentos, teniendo sede en España y numerosos países de Latinoamérica. El siguiente sitio web: reúne más de 90 herramientas de cálculo y aplicaciones (software) de descarga libre, desarrolladas a lo largo de más de 8 años en los principales centros de investigación en ingeniería química de Iberoamérica. Si bien concentrándose principalmente en ingeniería de alimentos, también incluye programas de cálculo de equipos (evaporadores, secadores, extracción líquido-líquido), cálculos de fenomenos de transporte de calor y masa, programas de ajuste de datos, cálculo de sistemas coloidales y otros. Se incluye la documentación para cada programa y los nombres y afiliación de los autores. Visite la página web. ¿Qué es un GLUG? GNU/Linux es un movimiento mundial sin una estructura central, burocratizada o entidad para controlar, coordinar o dirigir sus objetivos. Mientras esta situación es una parte poderosa del sentido y calidad técnica de GNU/Linux como un sistema operativo de una computadora, puede jugar en contra para ubicar recursos humanos capacitados o educar usuarios. En gran medida un GLUG local provee las respuestas a esta clase de cuestiones. Debido a que no hay una una corporación de GNU/Linux capaz de bindar informacion o soporte especializado, el GLUG local cumple los mismos roles que una oficina regional de una gran corporación multinacional. Funciones de un GLUG: Difusión El GLUG local juega un indispensable rol en promover el uso de GNU/Linux. Si una persona conoce acerca de GNU/Linux a través del esfuerzo de un GLUG local, entonces esa persona, como un nuevo usuario GNU/Linux, tiene una gran ventaja: ella ya esta conciente de la existencia de una organización que la ayudará a instalar, configurar y mantener GNU/Linux. Por está razón, es importante que
  • 19. los GLUGs locales promuevan GNU/Linux porque su difusión es efectiva, bien soportada y libre. Educación Podemos elegir el objetivo de educación simplemente porque no hay otra entidad local de la cual usuarios GNU/Linux puedan recibir educación con orientación técnica. Por otro lado un GLUG puede compartir la capacitación laboral, ya que cada trabajador que expande sus habilidades en computación participando en un GLUG local, es un trabajador menos que la empresa tiene que entrenar. Aún usando y administrando una PC GNU/Linux en casa, que no es lo mismo que administrar un data warehouse corporativo o sistemas de gran envergadura, es mucho más complejo, más reconfortante y más educativo que administrar una PC con Windows 95 en casa. Este objetivo no solo puede servir para capacitar laboralmente, sino que puede convertirse en un servicio a la comunidad, ya que como la tecnología de Información se vuelve una parte vital de la economía global, un GLUG local puede introducir GNU/Linux en escuelas, pequeños negocios, organizaciones comunitarias y sociales, y otros entornos no corporativos. Esta tarea de promoción también ayuda al entrenamiento del público en general acerca de GNU/Linux como un sistema operativo estilo Unix libre, gratuito, etc. Como más y más de estas clase de organizaciones buscan establecer una presencia en Internet o proveer acceso remoto a sus trabajadores, estudiantes o miembros, se originan oportunidades para los GLUGs locales de participar en la vida de su comunidad educándolos acerca de un sistema operativo libre y disponible gratuitamente. Esta clase de servicio a la comunidad permite al usuario medio de GNU/Linux emular la clase de generosidad que ha caracterizado a GNU/Linux y la comunidad de software libre desde un comienzo. Soporte La queja más frecuente de los nuevos usuarios de GNU/Linux, una vez que tienen instalado el sistema, es la empinada curva de aprendizaje que no es única de los GNU/Linux sino es una característica de todos los modernos Unix. Una vez que esa curva es alcanzada, nos encontramos con el poder y flexibilidad de un sistema operativo complejo. Un GLUG local es el único recurso que un nuevo usuario tiene disponible para aplanar la curva de aprendizaje. Pero aún si un nuevo usuario GNU/Linux no conoce esto todavía, el necesita más que soporte técnico, el mundo de GNU/Linux y el software libre se mueven rápidamente. Los GLUGs locales forman un invaluable conducto de información acerca de GNU/Linux. El movimiento GNU/Linux tiene recursos como GNU/Linux Journal y GNU/Linux Gazette www.ssc.com="" lg="", pero muchos usuarios desconocen estos recursos. El GLUG local debe ser una fuente de información acerca de bugs reparados, problemas de seguridad, parches, nuevos kernels, etc. Información vital para usuarios nuevos y experimentados. Por otro lado los GLUGs tienen la oportunidad de dar soporte a negocios y organizaciones locales. Este soporte tiene dos aspectos. Primero, pueden soportar organizaciones y negocios que quieren usar GNU/Linux como parte de su esfuerzo en Tecnología de Información y computación. Segundo, pueden dar soporte a negocios y organizaciones locales que desarrollen para GNU/Linux, soporten o instalen GNU/Linux. Si los GLUGs locales pueden jugar un rol en ayudar a usuarios de negocios a evaluar soluciones comerciales de GNU/Linux, entonces más vendedores de software se verán
  • 20. estimulados para considerar GNU/Linux en sus desarrollos y planificaciones. Socialización Compartir experiencias, formando amistades y generando admiración y respeto mutuo. La socialización en GNU/Linux, a diferencia del mundo real, puede ocurrir a través de listas de correo,Foros o quizas Usenet, pero la mejor forma de hacerlo es a través de seres humanos de carne y hueso y no por voces incorporadas de una lista de correo, Forum o grupo de Usenet. Actividades de un GLUG Las dos maneras básicas que un GLUG puede realizar las funciones descriptas anteriormente son: primero efectuar reuniones en un espacio físico y segundo comunicarse a través del ciberespacio. Se pueden efectuar reuniones sociales, presentaciones técnicas, Instalaciones y configuraciones de GNU/Linux, llevando a cabo actividades como enseñar a miembros acerca de GNU/Linux, comparar GNU/Linux con otros sistemas operativos, discutir las formas en que GNU/Linux puede ser promovido, discutir el negocio de un grupo de usuarios, comer, beber y ser felices. Pero el ingrediente masimportante son las ganas, persistencia y sobre todo un grupo Unido. Que sea todo por el Software Libre y las comunidades van a funcionar a trabajar. Pero es importante que los colegios y Universidades empieze esta aventura. No solo tu ganaras sino tu Colegio, Universidad, Localidad, Región y sobre todo el Pais. Blog: http://omarg5495.blogspot.com/