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?
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
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
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.
Recomendado por LinkedIn
Requerimientos no funcionales
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
Interfaces
Usuarios y factores humanos
Funcionalidad
Documentación
Datos
Recursos
Seguridad
Aseguramiento de la calidad
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
Administración de Empresas
10 mesesQue buena redacción, queda realmente clara la importancia de los requerimientos de Desarrollo del Software
--
11 meses❤️