Ingeniería de Requerimientos de Desarrollo de Software

Ingeniería de Requerimientos de Desarrollo de Software

En las empresas, siempre hay necesidad de nuevo software, y cuando la tuya necesite crear un sistema nuevo, es necesario que primero pases por un proceso llamado "levantamiento de requisitos".

Parecería obvio que son los levantamientos de requisitos, pero es importante que conozcas que hay procesos estandarizados por la Ingeniería de Requerimientos de Desarrollo de Software. Además, se pueden usar para desarrollar todo tipo de programas y es absolutamente crítico para el éxito de cualquier proyecto.

En esta parte del ciclo de vida del desarrollo de software, captamos y analizamos los requisitos del sistema para determinar sus 3 características principales: funcionamiento, interfaz y limitaciones. Y buscamos lograr una comprensión clara de lo que debe hacer el programa antes de escribir cualquier una sola línea de código. Esto evita el desperdicio de recursos y permite la detección temprana de errores, lo que puede significar un ahorro de tiempo y dinero.

El desarrollador debe ser capaz de entender las necesidades y objetivos del cliente, así como tener una idea clara del alcance del proyecto. Para ello, debe hacer preguntas, negociar con el cliente y brindar consultoría cuando sea necesario.

Si la fase de requisitos no se lleva a cabo de forma correcta, las probabilidades de que haya que rehacer el proyecto por completo o incluso abandonarlo son altas.

¿Qué es un requerimiento en software?

No alt text provided for this image

Un requisito de software es cualquier término que defina las características y funciones de una aplicación o sistema. Los requerimientos generales se determinan en 3 fases: requisitos de usuario, requisitos de sistema y requisitos de documentos del software. Además, estos pueden ser funcionales y no funcionales y más adelante te explico que significa cada uno de ellos.

Requerimientos de usuario

En estos se especifica la interacción del sistema con el usuario, además de las metas del sistema y el flujo de información.

Para definirlos es importante usar un lenguaje común (no técnico), hacerlo claro, definir requerimientos precisos y evitar conjugar múltiples requerimientos, dentro de un requerimiento. También es recomendado crear un formato estándar para tener consistencia en el levantamiento.

Requerimientos de sistema

Los requerimientos de sistema se refieren a especificaciones técnicas que incluyen la consistencia del programa. También nos ayudan a definir la arquitectura inicial del sistema y su estructura ordenando los requerimientos.

Para obtener mejores resultados, al definir estos requerimientos se recomienda utilizar un lenguaje estructurado, donde también se establecen las generalidades y los términos del diseño.

Estas especificaciones también se pueden apoyar de documentos PDL (page description language) que ofrecen detalles específicos de la implementación como extractos de código.

Requerimientos de documentación

El documento de requerimientos es el lugar donde se articula lo que debe hacer el producto final y cómo debe comportarse. Los documentos de requisitos pueden adoptar muchas formas diferentes, pero todos sirven para el mismo propósito: ayudar a garantizar que el producto final satisfaga las necesidades del cliente.

Los documentos de requisitos pueden usarse para seguir el progreso, identificar los riesgos potenciales y medir si un proyecto es viable o no. En resumen, la documentación de requisitos es esencial para garantizar el éxito de los proyectos de desarrollo de software. Así que, si estás trabajando en un proyecto de desarrollo de software, asegúrate de crear un documento de requisitos, ya que podría ser la diferencia entre el éxito y el fracaso.

Requerimientos estándar IEEE 830

No alt text provided for this image

En 1998 el Comité de Desarrollo de Software (Software Engineering Standards Comittee) desarrolló el estándar IEEE 830 que da las reglas que las especificaciones de requerimientos de software deben cumplir y estos pueden ser funcionales o no funcionales.

Los principales objetivos que se identifican en la especificación de requisitos del software son los siguientes:

1. Ayudar a los clientes a describir claramente lo que quieren de un programa de software.

2. Ayudar a los desarrolladores a entender lo que quiere el cliente, incluso si ellos mismos no saben exactamente lo que quieren.

3. Servir de base para el desarrollo de normas ERS (especificación de requisitos de software) específicas para cada organización. Esto ayudará a los desarrolladores a entender exactamente lo que quiere el cliente.

Requerimientos Funcionales

No alt text provided for this image

Los requisitos funcionales son las cosas que debe hacer un programa informático. Hay dos tipos de requisitos funcionales: los del usuario y los del sistema. Los requisitos de usuario indican los servicios que debe prestar el sistema y su funcionamiento. Los requisitos del sistema establecen en detalle los servicios y las limitaciones del sistema.

Estos definen como se relaciona el programa con el contexto y que servicios necesitan para actual. Generalmente, cuando no se definen bien claramente, el desarrollador los interpreta de manera que el desarrollo se simplifique, lo que usualmente es contrario a lo que el cliente desea y genera trabajo adicional, que representa tiempo y presupuesto mal invertido.

Requerimientos no funcionales

No alt text provided for this image

Los requisitos no funcionales son importantes porque describen cosas que el producto debe tener y que pueden no ser obvias para el usuario. Esto incluye cualidades como el rendimiento, el diseño y las restricciones de la aplicación. Los requisitos no funcionales también pueden estar relacionados con las propiedades emergentes del sistema. Las propiedades emergentes son cosas que ocurren como resultado del funcionamiento del sistema y que pueden no haber sido planificadas.

Estos incluyen las restricciones que se tienen para el desarrollo del sistema, como tiempo de respuesta, capacidad. Además, se dividen en requerimientos de producto, organizacionales y externos.

Los requerimientos a tomar en cuenta

A nivel granular, el estándar actualmente, toman en cuenta lo siguiente: ambiente físico, interfaces, usuarios y factores humanos, funcionalidad, documentación, datos, recursos, seguridad y aseguramiento de la calidad.

Ambiente físico

  • Ubicación del equipo del sistema, o sea “donde vive”
  • Especificar si hay más de una ubicación
  • Restricciones ambientales

Interfaces

  • La entrada de datos viene de uno o más sistemas
  • La salida de datos va a uno o más sistemas
  • Si se requiere formatear los datos

Usuarios y factores humanos

  • Quien usa el sistema
  • Si se necesitan varios tipos de usuarios
  • Habilidades de los usuarios
  • Sí se requiere entrenamiento de los usuarios
  • Facilidad de uso y comprensión del sistema para el usuario
  • Dificultad para hacer uso indebido del sistema

Funcionalidad

  • Que hace el sistema
  • Cuando lo hace
  • Existen varios tipos de operación
  • Cómo y cuando puede mejorar el sistema

Documentación

  • Cuanta documentación se requiere
  • Debe estar en línea o físico
  • A que audiencia se orienta la documentación

Datos

  • Formato de los datos de entrada y salida
  • Tiempos de envío y recepción de datos
  • Exactitud de los datos
  • Si se requiere cálculo de datos
  • Cuántos datos fluyen en el sistema
  • Si se deben retener datos en el sistema

Recursos

  • Recursos materiales, personales o de otro tipo que se requieren
  • Habilidades del equipo de desarrollo
  • Espacio que requiere el sistema
  • Requerimientos de energía, si hay
  • Cronograma de desarrollo
  • Límite económico

Seguridad

  • Si se debe controlar el acceso a la información
  • Si se deben aislar los datos de un usuario con los de otro
  • Cómo se aíslan los programas del usuario de otros programas y el sistema operativo
  • Frecuencia de las copias de respaldo

Aseguramiento de la calidad

  • Requerimientos de confiabilidad, disponibilidad, facilidad y otros atributos de calidad
  • Demostración de características a terceros
  • Si el sistema debe detectar y aislar defectos
  • Promedio de tiempo prescrito entre fallas
  • Tiempo de recuperación entre fallas
  • Acciones de mantenimiento
  • Medidas de eficiencia

Conclusión

En conclusión, la ingeniería de requisitos es un paso importante en el ciclo de vida del desarrollo de software, ya que permite comprender claramente lo que debe hacer un programa antes de escribir cualquier código. Esto evita el desperdicio de esfuerzos y permite la detección temprana de errores, lo que puede ahorrar tiempo y dinero. Para desarrollar software con éxito, es esencial utilizar la ingeniería de requisitos.

Referencias

Software Análisis de requisitos y especificación de una aplicación

Capítulo 6. Ingeniería de Requerimientos. Castañeda, F.

Erika Arrigui Arias

Administración de Empresas

10 meses

Que buena redacción, queda realmente clara la importancia de los requerimientos de Desarrollo del Software

Inicia sesión para ver o añadir un comentario.

Otros usuarios han visto

Ver temas