sábado, 6 de setiembre de 2008

Ingeniería de Requerimientos

entrevista_de_trabajo Una de las principales partes en la Ingeniería de software es la Ingeniería de Requerimientos, debido a que cumple un papel primordial en el proceso de producción de software, ya que enfoca un área fundamental: la definición de lo que se desea producir.

Su principal tarea consiste en la generación de especificaciones correctas que describan con claridad, sin ambigüedades ni contradicciones, en forma consistente y compacta, el comportamiento del sistema; de esta manera, se pretende minimizar los problemas relacionados al desarrollo de software.

También se le conoce como Análisis de requerimientos o como especificación de requerimientos.

La ingeniería de requerimientos puede ser un proceso largo y arduo para el que se requiere de habilidades psicológicas. Los nuevos sistemas cambian el entorno y las relaciones entre la gente, así que es importante identificar a todas las personas implicadas, considerar sus necesidades y asegurar que entienden las implicaciones de los nuevos sistemas. Los analistas pueden emplear varias técnicas para obtener los requisitos del cliente. Entre estas técnicas están las entrevistas, o talleres con grupos para crear listas de requisitos. Técnicas más modernas incluyen los prototipos, y utilizan casos de uso. Cuando sea necesario, el analista empleará una combinación de estos métodos para establecer los requisitos exactos de las personas implicadas, para producir un sistema que resuelva las necesidades del negocio.

tomaRequerimientos

Estudios realizados muestran que más del 53% de los proyectos de software fracasan por no realizar un estudio previo de requisitos. Otros factores como falta de participación del usuario, requerimientos incompletos y el cambio a los requerimientos, también ocupan sitiales altos en los motivos de fracasos.

Los costos de volver a formular los requerimientos una vez puesto en marcha el desarrollo del proyecto son muy altos, y más aún si es que no se tiene una estrategia flexible a los cambios.

Como se puede apreciar, definir adecuadamente los requerimientos y saber gestionarlos es esencial para el exito del desarrollo de algun software y para la buena calidad de éste.

Importancia de la Ingeniería de Requerimientos

La Ingeniería de Requerimientos es importante en el desarrollo de un software debido a que:

  • Permite gestionar las necesidades del proyecto en forma estructurada.
  • Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados.
  • Disminuye los costos y retrasos del proyecto.
  • Mejora la calidad del software.
  • Mejora la comunicación entre equipos.
  • Evita rechazos de usuarios finales.

Enlaces de interés:

viernes, 15 de agosto de 2008

Ingeniería de software - Introducción

Este es el inicio de este blog donde postearé información relacionada a la Ingeniería de software, además de agregar mi opinión personal respecto a cada tópico que publique. Espero sirva a otros mi pequeño aporte y claro está que este blog estará abierto a cualquier comentario o critica.

Empezaré por dar una definición sencilla de lo que es la IS. Wikipedia (La enciclopedia más grade jamás conocida) la define como "La disciplina dentro de la informática encargada de la creación de software de calidad."

No está de más aclarar que no solo se considera Software a una aplicación o a un programa de computación, sino que también se considera parte del software a la documentación generada durante el desarrollo del proyecto.

El surgimiento de esta "rama" se debió en parte a que en las últimas décadas del siglo XX, las reducciones de costo en hardware llevaron a que el software fuera un componente que participa en muchos de los dispositivos usados por las sociedades industrializadas.

El término "ingeniero de software" se utiliza en forma genérica en el ambiente empresarial y laboral, y no todos los ingenieros de software poseen realmente títulos de Ingeniería de universidades reconocidas. Esta es una de la principales criticas que recibe esta "Ingeniería", debido a que no se ajusta a los modelos ortodoxos de definición y clasificación propios de las ingenierías (cálculo y rigor científico).

Algunas personas piensan que Desarrollo de Software es un término más apropiado que Ingeniería de Software para el proceso de crear software. Expertos en el tema creen que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.

A su vez se le puede considerar como la ingeniería aplicada al software, esto es en base a herramientas preestablecidas, la aplicación de las mismas de la forma más eficiente y óptima; 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.

A mi parecer esta ultima definición es más acertada, pero bueno esto estará por mucho tiempo en debate (al menos eso creo) debido a que cada quien defenderá su opinión, el analista, el ingeniero e incluso el programador.

Enlaces de interés: