-
El diseño del software En la actualidad se ha escuchado mucho hablar de la expresión “software libre”y cada vez lo está con mayor frecuencia en los medios de comunicación y conversaciones de profesionales,
- pero aún se desconocen muchos aspectos al respecto, sin embargo el software libre no es un tema nuevo. Es tan antiguo como las propias computadoras, y sus raíces son todavía más profundas.
-
El software comercial
-
es el software libre
- El Software Libre son programas de ordenador que pueden ser utilizados,copiados, modificados y redistribuidos libremente por sus usuarios.
- cobran dinero por el producto, su distribución o soporte sin embargo, no es obligatorio que se así, puede ser vendido comercialmente e incluye archivos fuente. Suele estar disponible gratuitamente en Internet o a precio del coste de la distribución a través de otros medios
Los costos reales del software no son inmensos, representando el 80% o más de los gastos totales del sistema
- El equivalente de software libre es el término open source software ('programas de fuente abierta'), promovido por Eric Raymond y la Open Source Initiative.Filosóficamente, el término es muy distinto, ya que hace énfasis en la disponibilidad de código fuente no en la libertad.
-
La ingeniería de software
- va a crear modelos de situaciones físicas en un programa de cómputo
- un principio fundamental de la ingeniería de software es diseñar productos que minimicen la distancia entre el problema y la solución.
- La distancia que existe entre la realidad modelada y el modelo, se ha considerado como la distancia entre el problema y la solución computacional del mismo
-
Software Libre tienen cuatro libertades
- Libertad 1: la libertad de usar el programa para lo que quieran. El usuario puede utilizar el programa para el fin que desee, sin tener que pedir permiso al programador del software.
- Libertad 2: la libertad de estudiar el funcionamiento del programa, y de modificarlo. Para poder disfrutar de esta libertad, es necesario el acceso al código fuente del programa. Si el código fuente no es claro y en la práctica no se puede estudiar, a los efectos de esta libertad no se considera código fuente. Para considerarse libre, el programa debe permitirle la modificación efectiva, y no debe haber impedimentos o restricciones para mezclarse con otras rutinas o programas libres.
- Libertad 3: la libertad de redistribuir copias. El usuario puede redistribuir copias de los programas tanto en su versión ejecutable como su código fuente.
- Libertad 4: la libertad de redistribuir copias de sus versionas modificadas. El usuario dispone de la libertad de redistribuir copias del programa modificado, ya sea bajo una licencia libre, o privativa (no libre), a elección del usuario. Si la licencia de un programa requiere que las versiones redistribuidas sean privativas, entonces el programa no es libre. Para poder disfrutar de esta libertad, es necesario el acceso al código fuente del programa.
-
El diseño del software
- La verificación y validación se utilizan para establecer la conveniencia o equivalencia de un producto para las funciones de sus operaciones.
- El mantenimiento implica corregir errores que no se descubrieron en anteriores etapas del ciclo, mejorar el software y aumentar los servicios de éste a medida que surgen nuevas necesidades.
- Una vez codificado el software, comienza la prueba, centrándose en la lógica interna del software Esta fase suele ser (aunque no necesariamente) la más larga del ciclo de vida.
- Más tarde se traduce el diseño a una forma legible para la máquina. Durante el paso de codificación, también conocido como programación, se realiza esta tarea.
- Es en esta fase donde se lleva a cabo la definición de los algoritmos
- Su objetivo es diseñar la estructura que va a tener el software y diseñar los componentes de esa estructura de manera que satisfagan la especificación de los requerimientos.
- es el proceso de representar las funciones del sistema de software a fin de poderlas transformar con facilidad en una o más aplicaciones.
- Cada fase es finalizada por una verificación y validación, actividades cuyos objetivos son eliminar algunos posibles problemas que puedan originarse en cada fase.
-
Condiciones para que un programa sea libre
- Un programa es Software Libre si y solo si ofrece las cuatro libertades. Para determinarlo, hay que tener en cuenta:
- La licencia (debe ser una licencia libre, que garantice las cuatro libertades, de forma nítida e irrevocable. No se consideran libres las licencias que permiten su revocación total o parcial.)
- La distribución (debe poder obtenerse el código fuente, debe poder modificarse efectivamente)
- Libre, no gratis: El Software Libre debe ofrecer las cuatro libertades pero ello no implica necesariamente un coste cero. Es por lo tanto una cuestión de derechos y libertades, y no de precio.
- Libre, no "abierto": Hay quien denomina al Software Libre como "código abierto" o "software de fuentes abiertas" ("open source" software). Aunque se puedan referir a programas similares, la idea que proyecta el término "abierto" no incluye los valores y derechos relacionados con la llibertad.
-
Organizaciones
- si las ideas del software libre son cercanas a Stallman, éstas son las más cercanas a Linus Torvalds, no les importa que todo el software del mundo sea libre sino que creen que sería mejor contar con el código fuente para modificarlo a gusto. Se agrupanen la Open Source Initiative (OSI - Iniciativa por el código fuente abierto).
- la filosofía del software libre está teñida de utopía, pero este tono o matiz hizo pensar a otros ideólogos y desarrolladores del software libre que esto podía echar atrás a las empresas a participar en algo tan "hippy". Por este motivo surgió la idea de llamar al software libre como software "abierto" y elaborando un discurso diferente al de GNU.
-
Establecen 10 principios:
- 1.Libre redistribución: el software debe poder ser regalado o vendido libremente.
- 2. Código fuente: el código fuente debe estar incluido u obtenerse libremente.
- 3. Trabajos derivados: la redistribución de modificaciones debe estar permitida.
- 4. Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas sólo como parches.
- 5. Sin discriminación de personas o grupos: nadie puede dejarse fuera.
- 6. Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos.
- 7. Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa.
- 8. La licencia no debe ser específica de un producto: el programa no puede licenciarse solo como parte de una distribución mayor.
- 9. La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto.
- 10. La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.
-
Origenes
- En 1984, Richard Stallman comenzó a trabajar en el proyecto GNU, y un año más tarde fundó la Free Software Foundation (FSF). Stallman introdujo la definición 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.
- 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 1971, cuando la informática todavía no había sufrido su gran boom, 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.
- 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.
- 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.