viernes, 13 de mayo de 2011

PARTE I: REQUERIMIENTO DE SOFTWARE

¿Qué es un requerimiento, establezca ejemplos?
En Ingeniería de Software el término requerimiento hace referencia a algo que se le pide o solicita a alguien, en este caso seria el programador o quien se va a encargar de diseñar el software y esta relacionado con las características que se desea que posea un sistema o un software o las tareas relacionadas con los requerimientos de un sistema. Una colección de requerimientos describe las características o atributos del sistema deseado Dentro de estos requerimientos o requisitos podemos mencionar:

Características del producto
Tareas que debe realizar

Ejemplos
No se puede aceptar devoluciones en el modulo de facturación, las devoluciones se debe ejecutar en su modulo correspondiente (devoluciones)
Todo proveedor deberá registrarse con su numero de rif, de no ser asi no se dara entrada en la base de datos de proveedores
Solo puede imprimirse 20 items por factura, si la venta excede ese número deberá imprimirse la diferencia de ítems en una nueva factura

¿Qué es la Ingeniería de requerimientos, establezca ejemplos?
En la ingeniería de sistemas y la ingeniería de software, la Ingeniería de requerimientos comprende todas las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requisitos de los inversores.
 Muchas veces se habla de requerimientos en vez de requisitos; esto se debe a una mala traducción del inglés. La palabra requirement debe ser traducida como requisito, mientras que requerimiento se traduce al inglés como request.

 Requisitos  funcionales: puede ser una descripción de lo que un sistema debe hacer. Este tipo de requisito específica algo que el sistema entregado debe ser capaz de realizar.

Ejemplos:
El sistema debe validar las disponibilidad de inventario antes de aceptar las transacciones de ventas de los clientes
El sistema debe generar un reporte de pedidos ordenado por fecha y proveedor

Requisitos no funcionales: especifican algo sobre el propio sistema, y cómo debe realizar sus funciones. Algunos ejemplos de aspectos solicitarles son la disponibilidad, el mantenimiento, la facilidad de uso, entre otros.
Ejemplos
El respaldo debe ser ejecutado automáticamente entre las 11pm y la 1am todos los días
El sistema debe estar en línea con la base de datos central el 99% de su tiempo

¿Cuál es la importancia de la ingeniería de requerimientos, establezca ejemplos?
La importancia de la ingeniería de requerimientos radica en hacer que los mismos alcancen un estado óptimo antes de alcanzar la fase de diseño en el proyecto. Los buenos requisitos deben ser medibles, comprobables, sin ambigüedades o contradicciones.
  • Permite gestionar las necesidades del proyecto en forma estructurada: Cada actividad de la IR consiste de una serie de pasos organizados y bien definidos.
  • Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados: La IR proporciona un punto de partida para controles subsecuentes y actividades de mantenimiento, tales como estimación de costos, tiempo y recursos necesarios.
  • Disminuye los costos y retrasos del proyecto: Muchos estudios han demostrado que reparar errores por un mal desarrollo no descubierto a tiempo, es sumamente caro; especialmente aquellas decisiones tomadas durante la RE.
  • Mejora la calidad del software: La calidad en el software tiene que ver con cumplir un conjunto de requerimientos (funcionalidad, facilidad de uso, confiabilidad, desempeño, etc.).
  • Mejora la comunicación entre equipos: La especificación de requerimientos representa una forma de consenso entre clientes y desarrolladores. Si este consenso no ocurre, el proyecto no será exitoso.
  • Evita rechazos de usuarios finales: La ingeniería de requerimientos obliga al cliente a considerar sus requerimientos cuidadosamente y revisarlos dentro del marco del problema, por lo que se le involucra durante todo el desarrollo del proyecto.



¿Cuáles son las actividades (Ejemplos) de la ingeniería de requerimientos?
En el proceso de Ingeniería de Requerimientos son esenciales diversas actividades, sin embargo, en un proceso de ingeniería de requerimientos efectivo, estas actividades son aplicadas de manera continua y en orden variado.

Dependiendo del tamaño del proyecto y del modelo de proceso de software utilizado para el ciclo de desarrollo, las actividades de la Ingeniería de Requerimientos varían tanto en número como en nombres.

A pesar de las diferentes interpretaciones que cada desarrollador tenga sobre el conjunto de actividades, podemos identificar y extraer cinco actividades principales que son:
  • Análisis del Problema:
  • Evaluación y Negociación
  • Especificación
  • Validación
  • Evolución
Ejemplo de análisis del Problema:
"El cliente se queja mucho por la enorme fila que debe formar para realizar una transacción bancaria".
Perspectiva del cliente = Pérdida de tiempo
Perspectiva del banco = Posibles pérdidas de clientes

Posibles soluciones pueden ser, determinar por qué demoran los cajeros, colocar una nueva caja (implica contratación de nuevos cajeros), abrir una nueva sucursal (involucra personal nuevo y estudio de mercado), realizar transacciones por otros medios (teléfono, internet, mediante cajeros automáticos, autobancos,).
Como puede verse, múltiples soluciones aplican para el mismo problema, sin embargo, sólo una de ellas será la más factible. Las soluciones iníciales, deben ser definidas tomando en cuanta tanto la perspectiva técnica como la del negocio.

¿Cuales son las técnicas y herramientas en la Ingeniería de requerimientos, ejemplos de sus usos, ventajas y desventajas?
Existen varias técnicas para la IR, sin embargo, se van a estudiar sólo algunas de ellas. Cada técnica puede aplicarse en una o más actividades de la IR; en la práctica, la técnica más apropiada para cada actividad dependerá del proyecto que esté desarrollándose.
Alguna de estas Actividades son:
Entrevistas y Cuestionarios
Las entrevistas y cuestionarios se emplean para reunir información proveniente de personas o de grupos. Durante la entrevista, el analista conversa con el encuestado; el cuestionario consiste en una serie de preguntas relacionadas con varios aspectos de un sistema.
Las preguntas que deben realizarse en esta técnica, deben ser preguntas de alto nivel y abstractas que pueden realizarse al inicio del proyecto para obtener información sobre aspectos globales del problema del usuario y soluciones potenciales.

Lluvia de Ideas (Brainstorm)


Este método comenzó en el ámbito de las empresas, aplicándose a temas tan variados como la productividad, la necesidad de encontrar nuevas ideas y soluciones para los productos del mercado, encontrar nuevos métodos que desarrollen el pensamiento creativo a todos los niveles.

Pero pronto se extendió a otros ámbitos, incluyendo el mundo de desarrollo de sistemas; básicamente se busca que los involucrados en un proyecto desarrollen su creatividad, promoviendo la introducción de los principios creativos.

Principios de la lluvia de ideas
  • Aplazar el juicio y no realizar críticas, hasta que no agoten las ideas, ya que actuaría como un inhibidor. Se ha de crear una atmósfera de trabajo en la que nadie se sienta amenazado.
  • Cuantas más ideas se sugieren, mejores resultados se conseguirán: "la cantidad produce la calidad". Las mejores ideas aparecen tarde en el periodo de producción de ideas, será más fácil que encontremos las soluciones y tendremos más variedad sobre la que elegir.
  • La producción de ideas en grupos puede ser más efectiva que la individual.
  • Tampoco debemos olvidar que durante las sesiones, las ideas de una persona, serán asociadas de manera distinta por cada miembro, y hará que aparezcan otras por contacto.

No hay comentarios:

Publicar un comentario