Julio 2009

“if you want to know what it’s like to be a woman in open source, go and get your nails done at a salon”

Presentación de OSCON 2009 articulando como mujeres son excluidas en comunidades de software libre y sugerencias para evitarlo:

http://infotrope.net/blog/2009/07/25/standing-out-in-the-crowd-my-oscon-keynote/

Tagged with: ,

precioso video de Sour

Banda Sour

Tagged with:

Gestion de Configuraciones

Es el desarrollo y aplicacion de estandares y procedimientos para gestionar un sistema software evolutivo.  Porque se necesita gestionar?

  • es facil perder la pista de los cambios que se han incorporado dentro de cada version
  • pueden existir varias versioens en desarrollo y en uso al mismo tiempo
  • se podria hacer un esfuerzo inutil modificando la version erronea de un sistema, entregar una version incorrecta a los clientes o perder la pista de donde ha sido guardado el codigo fuente

Los procedimientos de gestion de configuraciones definen:

  • como registrar y procesar los cambios propuestos al sistema
  • como relacionar estos con los componentes del sistema
  • los metodos utilizados para identificar las diversas versiones del sistema

Las herramientas de gestion de configuraciones se utilizan para:

  • almacenar las versiones de los componentes del sistema
  • construir sistemas a partir de estos componentes
  • llevar el registro de entregas de las versiones del sistema a los clientes

Planificacion

  1. Definicion de lo que se debe gestionar  (fuentes, ejecutables, documentos, datos, etc) y el esquema formal para identificar estas identidades (nombre, version, tipo, proyecto, informacion del cambio o la version).
  2. Un enunciado de quien toma la responsabilidad de los procedimientos y quien envia las enttidades controladas al equipo de gestion de configuraciones.
  3. Las politicas de gestion de configuraciones utilizadas para gestionar el control de los cambios y las versoines
  4. Descripcion de las herramientas a utilizar y el proceso a aplicar cuando se utilizan.
  5. Definicion de la baase de datos que se utilizara para registrar la informacion de la configuracion.

Fuente: Ingenieria del Software de Ian Sommerville

Montevideo Telefonia Libre?

Interesante proyecto, Mesh Potato es basicamente para hacer llamadas telefonicas sobre una red Mesh : http://www.villagetelco.org/

Tagged with:

Mujeres y Software Libre en Uruguay

Donde estan?

Evolucion del Software

cuanto mas complejo es un componente o sistema, mas caro es de mantener

Leyes de Lehman sobre evolucion de los sistemas.

  • Cambio Continuado: un programa usado en un entorno real necesariamente debe cambiar o se volvera progresivamente menos util en ese entorno.
  • Complejidad creciente: a medida que un programa en evolucion cambia, su estructura tiende a ser cada vez mas compleja.
  • Evolucion prolognada del programa:  sugiere que los grandes sistemas tienen su propia dinamica que se establece en una etapa temprana en el proceso de desarrollo. Esta determina las tendencias generales del proceso de mantenimiento del sistema y limita el numero de posibles cambios en el sistema.
  • Estabilidad organizacional: la mayoria de los proyectos de programacion grandes trabajan en lo que se denomina un estado saturado. Un cambio en los recursos o en eel personal tiene efectos imperceptibles en la evolucion a largo plazo del sistema.
  • Conservacion de la familiaridad: durante el tiempo de vida de un sistema, el cambio incremental en cada entrega es aproximadamente constante.
  • Crecimiento continuado: la funcionalidad ofrecida por los sistemas tiene que crecer continuamente paraa mantener la satisfaccion de los usuarios.
  • Decremento de la calidad: la calidad de los sistemas comenzara a disminuir a menos que dichos sistemas se adapten a los cambios en su entorno de funcionamiento.
  • Realimentacion del sistema: los procesos de evolucion incorporan sistemas de realimentacion multiagente y multibucle y estos deben ser tratados como sistemas de realimentacion para lograr una mejora significativa del producto.

Mantenimiento del software

Es el proceso general de cambiar un sistema despues de que este ha sido entregado.

  1. Mantenimiento corrrectivo  o para reparar defectos del software.
  2. Mantenimiento adaptativo o para adaptar el software a diferentes entornos operativos.
  3. Mantenimiento perfectivo o para aniadir o modificar las funcionalidades del sistema.

Los costos claves que distinguen el desarrollo del mantenimiento y conducen a costos de mantenimiento mas elevados, son:

  1. Estabilidad del equipo: usualmente el equipo de desarrollo se disuelve luego de entregar el programa y un nuevo equipo toma el mantenimiento.
  2. Responsabilidad contractual: usualmente los desarrolladores  no toman decisiones para contemplar el mantenimiento.
  3. Habilidades del personal: se relega el mantenimiento a principiantes y gente no familiarizada con el dominio de la aplicacion.
  4. Edad y estructura del programa: Aveces no se desarrollan las aplicaciones con tecnicas de ingenieria de software, no bien estructurados y a medida que pasa el tiempo la estructura tiende a degradarse con los cambios.

Predeccion del mantenimiento

Se deberia intentar predecir que cambios del sistema son probables y que partes del sistema son probablemente los mas dificiles de mantener. Tambien se deberia predecir los costos de mantenimiento durante un periodo de tiempo determinado. Estas predicciones dependen de:

  • la aceptacion o no de un cambio en el sistema depende de la mantenibilidad de los componentes del sistema afectados por el cambio.
  • la implementacion de los cambios del sistema tiende a degradarlo y por lo tanto reduce su mantenibilidad.
  • los costos del mantenimiento dependen del numero de cambio y los costos de la implementacion dependen de la mantenibilidad de los componentes del sistema.

La prediccion del numero de peticiones de cambios del sistema requiere entender la relacion entre el sistema y su entorno. Y para evaluar las relaciones entre un sistema y su entorno hay que tener en cuenta:

  • el numero y la complejidad de las interfaces del sistema
  • el numero de requerimientos del sistema intrinsecamente volatiles
  • los procesos de  negocios en los que se utiliza el sistema

Fuente: Ingenieria del Software de Ian Sommerville