sábado, 21 de mayo de 2011

Intelectuales con Licencia



Licencia LGPL - “Lesser Gnu Public Licence”

Si bien la licencia GPL ofrece grandes beneficios, hay algunas veces en la que ofrece ciertas restricciones. Un ejemplo es que un software que utiliza algún componente GPL, debe sí o sí ser licenciado bajo la misma, es decir no se pueden utilizar partes o bibliotecas de software GPL en un software propietario o distribuido bajo otra licencia.

Estas restricciones traen algunos problemas. Por ejemplo si una empresa comercial desea utilizar únicamente una biblioteca GPL pequeña dentro de su software, estaría obligada a distribuir todo su software bajo GPL, lo cual posiblemente no decida hacer y para algunos casos como el de bibliotecas de propósitos generales esto tampoco ayuda a la mejora de la propia biblioteca ya que no sería elegida por ejemplo para convertirse en un estándar. Por eso apareció la licencia LGPL, en un primer momento llamada Library GPL en referencia a que fue especialmente utilizada para bibliotecas, pero luego se popularizó y comenzó a utilizarse inclusive en muchos programas completos debido a sus beneficios comerciales (permite utilizarse junto a software no libre) y cambió su nombre a Lesser GPL que significa GPL menos restrictiva.

Licencias BSD y BSD modificada – originalmente de “Berkley Software Distribution”

La licencia BSD es similar a las anteriores, aunque más permisiva y que como principal característica permite también el enlace con software no libre (tal como lo permite LGPL), por ser sin copyleft.

Una de sus principales desventajas es una cláusula que indica que debe incluirse una frase específica junto con el software que se distribuya. La cláusula en cuestión es la siguiente:

All advertising materials mentioning features or use of this software must display the following acknowledgement:This product includes software developed by the University of California, Berkeley and its contributors.
Esto trajo algunos inconvenientes porque esa frase en algunos casos debía incluirse una vez por cada componente de licencia BSD que incluyera el software. Lo que se hizo fue modificar la licencia a partir de 1999 apareciendo la llamada licencia BSD modificada sin la cláusula de publicidad.

Licencia MIT – Originalmente X11

Es una licencia originaria del Massachusetts Institute of Technology. Permite usar el software libremente, copiarlo, publicarlo, distribuirlo, sub-licenciarlo, siempre que se incluya la nota de copyright en todas las distribuciones.

Licencia Artística - Licencia Artística 2.0

Es otra de las licencias mas utilizadas, aunque en mucho menor medida que las anteriores y de la que hay distintas versiones. Propone "algun control artístico por parte del autor". Algunas de las características son ciertas restricciones al modificar el software o modificarlo con menos restricciones para usarlo dentro de una organización (y en ese caso no distribuirlo), dejar bien claras diferencias entre la llamada "versión estándar" del software que es el original o modificado bajo restricciones especificadas y otras versiones. Es una licencia ligada a algunos programas desarrollados bajo el lenguaje Perl y es una licencia que se utiliza también en la distribución de ese lenguaje. Estas no son las únicas licencias sobre software libre o semi libre sino que existe una larga lista de licencias que se ajustan mejor a uno u otro caso.

domingo, 15 de mayo de 2011




LOS FACTORES DE LA CALIDAD DEL SOFTWARE Y LOS DEFECTOS

Originalmente, la calidad de un programa o sistema se evaluaba de acuerdo al número de defectos por cada mil líneas de código.
En 1988, un estudio realizado en los EEUU, demostró que se introducían cerca de sesenta defectos por cada mil líneas de código (60 def/KLOC), hoy se le adicionan otros factores a la calidad del software.
Los factores que determinan la calidad del software se clasifican en tres grupos:

Operaciones del producto: características operativas
Corrección: Grado en que un programa satisface sus especificación y logra los objetivos marcados por el usuario. (¿Hace lo que se le pide?).
Fiabilidad: Grado en que se puede esperar que un programa lleve a cabo las funciones esperadas con la precisión requerida. (¿Lo hace de forma fiable todo el tiempo?).
Eficiencia: Cantidad de recursos de computadoras y de código requeridos por el programa para realizar sus funciones con los tiempos de respuesta adecuados. (¿Qué recursos hardware y software necesito?).
Integridad: Grado en que puede controlarse el acceso al software o a los datos por usuarios no autorizados. (¿Puedo controlar su uso?).
Facilidad de uso: Esfuerzo necesario para aprender, utilizar, preparar las entradas e interpretar las salidas de un programa. (¿Es fácil y cómodo de manejar?).

Revisión del producto: capacidad para soportar cambios.
Facilidad de mantenimiento: Esfuerzo requerido para localizar y arreglar un error en un programa. (¿Puedo localizar los fallos?).
· Flexibilidad: Esfuerzo requerido para modificar un programa. (¿Puedo añadir nuevas opciones?).
· Facilidad de prueba: Esfuerzo requerido para probar un programa de forma que se asegure que realiza la función requerida. (¿Puedo probar todas las opciones?).
Transición del producto: adaptabilidad a nuevos entornos.

· Portabilidad: Esfuerzo requerido para transferir un programa desde un entorno HW y/o SW a otro. (¿Podré usarlo en otra máquina?).
· Reusabilidad: Grado en que un programa o componente SW se puede reutilizar en otras aplicaciones. (¿Podré utilizar alguna parte del software en otra aplicación?).
· Interoperatividad: Esfuerzo requerido para acoplar un sistema con otras aplicaciones o sistemas. (¿Podrá comunicarse con otras aplicaciones o sistemas informáticos?).