Articulo de referencia

Análisis de requisitos

Una perspectiva de ingeniería de sistemas sobre el análisis de requisitos [ 1 ] En ingeniería de sistemas e ingeniería de software , el análisis de requisitos se centra en las t...

Una perspectiva de ingeniería de sistemas sobre el análisis de requisitos [ 1 ]

En ingeniería de sistemas e ingeniería de software , el análisis de requisitos se centra en las tareas que determinan las necesidades o condiciones para cumplir con el producto o proyecto nuevo o modificado, teniendo en cuenta los requisitos posiblemente conflictivos de las diversas partes interesadas , analizando , documentando , validando y gestionando los requisitos del software o del sistema . [ 2 ]

El análisis de requisitos es fundamental para el éxito o el fracaso de los sistemas o proyectos de software . [ 3 ] Los requisitos deben estar documentados, ser procesables, medibles, comprobables, [ 4 ] rastreables, [ 4 ] relacionados con las necesidades u oportunidades comerciales identificadas y definidos con un nivel de detalle suficiente para el diseño del sistema .

Descripción general

Conceptualmente, el análisis de requisitos incluye tres tipos de actividades:

  • Recopilación de requisitos : (por ejemplo, el acta constitutiva o la definición del proyecto), documentación de procesos de negocio y entrevistas con las partes interesadas. Esto también se conoce como recopilación o descubrimiento de requisitos.
  • Requisitos de registro: Los requisitos pueden documentarse de diversas formas, que suelen incluir una lista resumida, y pueden incluir documentos en lenguaje natural, casos de uso , historias de usuario , especificaciones de procesos y una variedad de modelos, incluidos modelos de datos.
  • Análisis de requisitos: determinar si los requisitos establecidos son claros, completos, únicos, concisos, válidos, coherentes e inequívocos, y resolver cualquier conflicto aparente. El análisis también puede incluir la estimación de requisitos.

El análisis de requisitos puede ser un proceso largo y agotador que requiere habilidades psicológicas complejas. Los nuevos sistemas modifican el entorno y las relaciones interpersonales, por lo que es fundamental identificar a todas las partes interesadas, considerar sus necesidades y asegurar que comprendan las implicaciones de los nuevos sistemas. Los analistas pueden emplear diversas técnicas para obtener los requisitos del cliente. Estas incluyen el desarrollo de escenarios (representados como historias de usuario en metodologías ágiles ), la identificación de casos de uso , la observación del entorno laboral o la etnografía , la realización de entrevistas o grupos focales (denominados en este contexto talleres de requisitos o sesiones de revisión de requisitos), y la creación de listas de requisitos. Se puede utilizar la creación de prototipos para desarrollar un sistema de ejemplo que pueda ser presentado a las partes interesadas. Cuando sea necesario, el analista empleará una combinación de estos métodos para establecer los requisitos exactos de las partes interesadas, de modo que se produzca un sistema que satisfaga las necesidades del negocio. [ 5 ] [ 6 ] La calidad de los requisitos puede mejorarse mediante estos y otros métodos:

  • Visualización. Utilizar herramientas que promuevan una mejor comprensión del producto final deseado, como la visualización y la simulación.
  • Uso coherente de plantillas. Elaboración de un conjunto coherente de modelos y plantillas para documentar los requisitos.
  • Documentar las dependencias . Documentar las dependencias e interrelaciones entre los requisitos, así como cualquier suposición y agrupación.

Temas de análisis de requisitos

Identificación de las partes interesadas

Consulte el análisis de las partes interesadas para obtener información sobre las personas u organizaciones (entidades jurídicas como empresas y organismos de normalización) que tienen un interés legítimo en el sistema. Estas pueden verse afectadas por él, ya sea directa o indirectamente.

Un nuevo enfoque importante en la década de 1990 fue la identificación de las partes interesadas . Cada vez se reconoce más que las partes interesadas no se limitan a la organización que emplea al analista. Otras partes interesadas incluyen:

  • Cualquier persona que opere el sistema (operadores normales y de mantenimiento)
  • Cualquier persona que se beneficie del sistema (beneficiarios funcionales, políticos, financieros y sociales).
  • Cualquier persona involucrada en la compra o adquisición del sistema. En una organización de productos de consumo masivo, la gestión de producto, el marketing y, a veces, las ventas actúan como consumidores sustitutos (clientes del mercado masivo) para orientar el desarrollo del producto.
  • organizaciones que regulan aspectos del sistema (reguladores financieros, de seguridad y otros).
  • personas u organizaciones que se oponen al sistema (partes interesadas negativas; véase también Caso de mal uso )
  • organizaciones responsables de los sistemas que interactúan con el sistema en fase de diseño.
  • aquellas organizaciones que se integran horizontalmente con la organización para la cual el analista está diseñando el sistema.

Sesiones de Desarrollo Conjunto de Requisitos (JRD)

Los requisitos suelen tener implicaciones interfuncionales desconocidas para las partes interesadas y, a menudo, se pasan por alto o se definen de forma incompleta durante las entrevistas. Estas implicaciones interfuncionales pueden identificarse mediante sesiones de JRD (Requerimientos de Requisitos Conjuntos) en un entorno controlado, facilitadas por un facilitador capacitado (analista de negocios). En estas sesiones, las partes interesadas participan en debates para obtener los requisitos, analizar sus detalles y descubrir las implicaciones interfuncionales. Un secretario se encargará de documentar la discusión, lo que permitirá al analista de negocios dirigirla hacia la generación de requisitos adecuados que cumplan con el objetivo de la sesión.

Las sesiones JRD son análogas a las sesiones de diseño conjunto de aplicaciones . En las primeras, las sesiones recogen los requisitos que guían el diseño, mientras que en las segundas se recogen las características de diseño específicas que deben implementarse para satisfacer los requisitos recogidos.

Listas de requisitos con formato de contrato

Una forma tradicional de documentar los requisitos ha sido mediante listas de requisitos con formato de contrato. En un sistema complejo, dichas listas de requisitos pueden ocupar cientos de páginas.

Una metáfora apropiada sería una lista de la compra larguísima. Este tipo de listas están muy mal vistas en el análisis moderno, ya que han demostrado ser un rotundo fracaso en el cumplimiento de sus objetivos ; sin embargo, todavía se ven hoy en día.

Fortalezas

  • Proporciona una lista de verificación de los requisitos.
  • Proporcionar un contrato entre el/los patrocinador/es del proyecto y los desarrolladores.
  • Para un sistema grande, se puede proporcionar una descripción de alto nivel a partir de la cual se pueden derivar los requisitos de nivel inferior.

Debilidades

  • Estas listas pueden ocupar cientos de páginas. No pretenden ser una descripción accesible para el lector de la aplicación deseada.
  • Estas listas de requisitos resumen todos los requisitos, por lo que ofrecen poco contexto. El analista de negocio puede incluir el contexto de los requisitos en la documentación de diseño adjunta.
    • Esta abstracción no pretende describir cómo encajan o funcionan conjuntamente los requisitos.
    • La lista puede no reflejar las relaciones y dependencias entre los requisitos. Si bien una lista facilita la priorización de cada elemento, eliminar uno fuera de contexto puede invalidar por completo un caso de uso o requisito empresarial.
    • Esta lista no sustituye la necesidad de revisar cuidadosamente los requisitos con las partes interesadas para lograr una mejor comprensión compartida de las implicaciones para el diseño del sistema/aplicación deseado.
  • El simple hecho de crear una lista no garantiza que esté completa. El analista de negocios debe esforzarse de buena fe por descubrir y recopilar una lista sustancialmente completa y confiar en que las partes interesadas señalen los requisitos faltantes.
  • Estas listas pueden crear una falsa sensación de entendimiento mutuo entre las partes interesadas y los desarrolladores; los analistas de negocio son fundamentales para el proceso de traducción.
  • Es prácticamente imposible descubrir todos los requisitos funcionales antes de que comience el proceso de desarrollo y pruebas. Si estas listas se tratan como un contrato inmutable, los requisitos que surjan durante el proceso de desarrollo pueden generar una solicitud de cambio controvertida.

Alternativa a las listas de requisitos

Como alternativa a las listas de requisitos, el desarrollo ágil de software utiliza historias de usuario para sugerir requisitos en un lenguaje cotidiano.

Objetivos medibles

Las mejores prácticas consideran la lista de requisitos como meras pistas y se preguntan repetidamente "¿por qué?" hasta descubrir los objetivos reales del negocio. Los interesados ​​y los desarrolladores pueden entonces diseñar pruebas para medir el grado de avance de cada objetivo. Estos objetivos cambian más lentamente que la larga lista de requisitos específicos pero no cuantificados. Una vez establecido un pequeño conjunto de objetivos críticos y cuantificables, se pueden llevar a cabo prototipados rápidos y fases de desarrollo iterativas cortas para generar valor real para los interesados ​​mucho antes de que el proyecto haya llegado a su mitad.

Prototipos

Un prototipo es un programa informático que muestra parte de las propiedades de otro programa, permitiendo a los usuarios visualizar una aplicación que aún no se ha desarrollado. Un ejemplo común de prototipo es la maqueta , que ayuda a los futuros usuarios y otras partes interesadas a hacerse una idea de cómo será el sistema. Los prototipos facilitan la toma de decisiones de diseño, ya que permiten visualizar y compartir aspectos de la aplicación antes de su desarrollo. La introducción de prototipos suele conllevar mejoras significativas en la comunicación entre usuarios y desarrolladores. Las primeras versiones de las aplicaciones reducen la necesidad de realizar cambios posteriores y, por lo tanto, disminuyen considerablemente los costes generales.

Los prototipos pueden ser diagramas planos (a menudo denominados wireframes ) o aplicaciones funcionales con funcionalidades sintetizadas. Los wireframes se crean en diversos documentos de diseño gráfico y, con frecuencia, se elimina todo el color del diseño (es decir, se utiliza una paleta de grises) cuando se espera que el software final tenga un diseño gráfico . Esto ayuda a evitar confusiones sobre si el prototipo representa la apariencia visual final de la aplicación.

Casos de uso

Un caso de uso es una estructura para documentar los requisitos funcionales de un sistema, generalmente de software, ya sea nuevo o en proceso de modificación. Cada caso de uso proporciona un conjunto de escenarios que describen cómo el sistema debe interactuar con un usuario humano u otro sistema para lograr un objetivo empresarial específico. Los casos de uso suelen evitar la jerga técnica, prefiriendo el lenguaje del usuario final o del experto en el dominio . Con frecuencia, los ingenieros de requisitos y las partes interesadas colaboran en la elaboración de los casos de uso.

Los casos de uso son herramientas aparentemente sencillas para describir el comportamiento de software o sistemas. Un caso de uso contiene una descripción textual de cómo se espera que los usuarios interactúen con el software o sistema. Los casos de uso no deben describir el funcionamiento interno del sistema ni explicar cómo se implementará. En cambio, muestran los pasos necesarios para realizar una tarea sin presuposiciones secuenciales.

Especificación de requisitos

La especificación de requisitos es la síntesis de los hallazgos del descubrimiento sobre las necesidades empresariales actuales y la evaluación de estas necesidades para determinar y especificar lo que se requiere para satisfacerlas dentro del alcance de la solución en cuestión. El descubrimiento, el análisis y la especificación permiten pasar de la comprensión del estado actual a un estado futuro deseado. La especificación de requisitos puede abarcar la amplitud y profundidad del estado futuro que se pretende alcanzar, o bien centrarse en deficiencias específicas que deben subsanarse, como errores prioritarios del sistema de software que deben corregirse y mejoras que deben implementarse. Dado que cualquier proceso empresarial de gran envergadura casi siempre emplea sistemas y tecnologías de software y datos, la especificación de requisitos suele asociarse con la creación de sistemas de software, las compras, las estrategias de computación en la nube, el software integrado en productos o dispositivos, u otras tecnologías. La definición más amplia de especificación de requisitos incluye o se centra en cualquier estrategia o componente de la solución, como la formación, las guías de documentación, el personal, las estrategias de marketing, el equipo, los suministros, etc.

Tipos de requisitos

Los requisitos se clasifican de varias maneras. A continuación se muestran clasificaciones comunes de requisitos relacionados con la gestión técnica: [ 1 ]

Requisitos del negocio

Declaraciones de objetivos a nivel empresarial, sin referencia a funcionalidades detalladas. Se trata generalmente de capacidades de alto nivel (software y/o hardware) necesarias para lograr un resultado empresarial.

Requisitos del cliente

Declaraciones de hechos y supuestos que definen las expectativas del sistema en términos de objetivos de la misión, entorno, restricciones y medidas de eficacia e idoneidad (MOE/MOS). Los clientes son aquellos que realizan las ocho funciones primarias de la ingeniería de sistemas, con especial énfasis en el operador como cliente clave. Los requisitos operativos definirán la necesidad básica y, como mínimo, responderán a las preguntas planteadas en la siguiente lista: [ 1 ]

  • Distribución o despliegue operativo : ¿Dónde se utilizará el sistema?
  • Perfil o escenario de la misión : ¿Cómo logrará el sistema su objetivo de misión?
  • Rendimiento y parámetros relacionados : ¿Cuáles son los parámetros críticos del sistema para cumplir la misión?
  • Entornos de utilización : ¿Cómo se deben utilizar los distintos componentes del sistema?
  • Requisitos de eficacia : ¿Qué tan eficaz o eficiente debe ser el sistema para cumplir su misión?
  • Ciclo de vida operativo : ¿Cuánto tiempo utilizará el sistema el usuario?
  • Entorno : ¿En qué entornos se espera que el sistema funcione de manera eficaz?

Requisitos arquitectónicos

Los requisitos arquitectónicos explican lo que se debe hacer al identificar la arquitectura de sistemas necesaria de un sistema .

Requisitos de comportamiento

Los requisitos de comportamiento explican lo que se debe hacer al identificar el comportamiento necesario de un sistema.

Requisitos funcionales

Los requisitos funcionales explican qué se debe hacer al identificar la tarea, acción o actividad necesaria que debe realizarse. El análisis de requisitos funcionales se utilizará como las funciones de nivel superior para el análisis funcional. [ 1 ]

Requisitos no funcionales

Los requisitos no funcionales son aquellos que especifican criterios que pueden utilizarse para evaluar el funcionamiento de un sistema, en lugar de comportamientos específicos.

Requisitos de rendimiento

El grado de ejecución de una misión o función se mide generalmente en términos de cantidad, calidad, cobertura, puntualidad o disponibilidad. Durante el análisis de requisitos, los requisitos de rendimiento (qué tan bien debe realizarse) se desarrollarán de forma interactiva en todas las funciones identificadas, basándose en los factores del ciclo de vida del sistema, y ​​se caracterizarán en términos del grado de certeza de su estimación, el grado de criticidad para el éxito del sistema y su relación con otros requisitos. [ 1 ]

Requisitos de diseño

Los requisitos de "construcción", "codificación" y "compra" para los productos, así como los requisitos de "cómo ejecutar" para los procesos, se expresan en paquetes de datos técnicos y manuales técnicos. [ 1 ]

Requisitos derivados

Requisitos que se deducen o se transforman a partir de requisitos de nivel superior. Por ejemplo, un requisito de largo alcance o alta velocidad puede resultar en un requisito de diseño de bajo peso. [ 1 ]

Requisitos asignados

Un requisito se establece dividiendo o asignando de otro modo un requisito de alto nivel en varios requisitos de nivel inferior. Ejemplo: Un artículo de 100 libras que consta de dos subsistemas podría resultar en requisitos de peso de 70 libras y 30 libras para los dos artículos de nivel inferior. [ 1 ]

Entre los modelos de categorización de requisitos más conocidos se encuentran FURPS y FURPS+, desarrollados en Hewlett-Packard .

Problemas de análisis de requisitos

Cuestiones de las partes interesadas

Steve McConnell, en su libro Desarrollo rápido , detalla varias maneras en que los usuarios pueden obstaculizar la recopilación de requisitos:

  • Los usuarios no entienden lo que quieren o no tienen una idea clara de sus requisitos.
  • Los usuarios no se comprometerán a un conjunto de requisitos escritos.
  • Los usuarios insisten en nuevos requisitos una vez que se han fijado el costo y el cronograma.
  • La comunicación con los usuarios es lenta.
  • Los usuarios a menudo no participan en las reseñas o son incapaces de hacerlo.
  • Los usuarios carecen de conocimientos técnicos avanzados.
  • Los usuarios no entienden el proceso de desarrollo.
  • Los usuarios desconocen la tecnología actual.

Esto puede dar lugar a que los requisitos del usuario cambien continuamente incluso cuando ya se haya iniciado el desarrollo del sistema o del producto.

Problemas de ingenieros/desarrolladores

Los posibles problemas causados ​​por ingenieros y desarrolladores durante el análisis de requisitos son:

  • La inclinación natural a escribir código puede llevar a que la implementación comience antes de que se complete el análisis de requisitos, lo que podría resultar en cambios en el código para cumplir con los requisitos reales una vez que se conozcan.
  • El personal técnico y los usuarios finales pueden tener vocabularios diferentes. Por consiguiente, pueden creer erróneamente que están completamente de acuerdo hasta que se les entrega el producto terminado.
  • Es posible que los ingenieros y desarrolladores intenten adaptar los requisitos a un sistema o modelo existente, en lugar de desarrollar un sistema específico para las necesidades del cliente.

Soluciones intentadas

Una de las soluciones que se han intentado para solucionar los problemas de comunicación ha sido contratar especialistas en análisis de negocios o de sistemas.

Las técnicas introducidas en la década de 1990, como la creación de prototipos , el Lenguaje Unificado de Modelado (UML), los casos de uso y el desarrollo ágil de software, también pretenden ser soluciones a los problemas que se presentaban con los métodos anteriores.

Además, ha surgido en el mercado una nueva clase de herramientas de simulación o definición de aplicaciones. Estas herramientas están diseñadas para superar la brecha de comunicación entre los usuarios de negocio y el departamento de TI, y también para permitir que las aplicaciones se sometan a pruebas de mercado antes de que se genere cualquier código. Las mejores de estas herramientas ofrecen:

  • Pizarras electrónicas para esbozar flujos de aplicación y probar alternativas.
  • capacidad de capturar la lógica empresarial y las necesidades de datos
  • capacidad de generar prototipos de alta fidelidad que imiten fielmente la aplicación final
  • interactividad
  • Capacidad para añadir requisitos contextuales y otros comentarios.
  • capacidad para que los usuarios remotos y distribuidos ejecuten e interactúen con la simulación

Véase también

Referencias

  1. 1 2 3 4 5 6 7 8 Fundamentos de Ingeniería de Sistemas Archivado el 22/07/2011 en Wayback Machine Defense Acquisition University Press, 2001
  2. Kotonya, Gerald; Sommerville, Ian (1998). Ingeniería de requisitos: Procesos y técnicas . Chichester, Reino Unido: John Wiley and Sons. ISBN 9780471972082.
  3. Alain Abran; James W. Moore; Pierre Bourque; Robert Dupuis, eds. (marzo de 2005). «Capítulo 2: Requisitos de software» . Guía del cuerpo de conocimientos de ingeniería de software ( ed. 2004). Los Alamitos, CA: IEEE Computer Society Press. ISBN  0-7695-2330-7Archivado del original el 23 de marzo de 2009. Consultado el 8 de febrero de 2007. En la industria del software se reconoce ampliamente que los proyectos de ingeniería de software son extremadamente vulnerables cuando estas actividades se realizan de forma deficiente.
  4. 1 2 Project Management Institute 2015 , pág. 158, §6.3.2.
  5. Amin, Tauqeer ul; Shahzad, Basit (2024-09-01). "Mejora de la obtención de requisitos en proyectos de software a gran escala con menor participación del cliente: un modelo rentable propuesto" . Requirements Engineering . 29 (3): 403– 418. doi : 10.1007/s00766-024-00425-2 . ISSN 1432-010X . 
  6. Pacheco, Carla; García, Ivan; Reyes, Miryam (agosto de 2018). "Técnicas de obtención de requisitos: una revisión sistemática de la literatura basada en la madurez de las técnicas" . IET Software . 12 (4): 365–378 . doi : 10.1049/iet-sen.2017.0144 . ISSN 1751-8806 . 

[ 1 ]

Bibliografía

  • Brian Berenbach; Daniel Paulish; Juergen Katzmeier; Arnold Rudorfer (2009). Ingeniería de requisitos de software y sistemas: En la práctica . Nueva York: McGraw-Hill Professional. ISBN 978-0-07-160547-2.
  • Hay, David C. (2003). Análisis de requisitos: De la perspectiva empresarial a la arquitectura (1.ª  ed.). Upper Saddle River, NJ: Prentice Hall. ISBN 0-13-028228-6.
  • Laplante, Phil (2009). Ingeniería de requisitos para software y sistemas (1.ª  ed.). Redmond, WA: CRC Press. ISBN 978-1-4200-6467-4Archivado del original el 22/10/2014 . Consultado el 14/10/2011 .
  • Project Management Institute (1 de enero de 2015). Análisis de negocios para profesionales . Project Management Inst. ISBN 978-1-62825-069-5.
  • McConnell, Steve (1996). Desarrollo rápido: Cómo controlar los cronogramas de software (1.ª  ed.). Redmond, WA: Microsoft Press. ISBN 1-55615-900-5.
  • Nuseibeh, B.; Easterbrook, S. (2000). Ingeniería de requisitos: una hoja de ruta (PDF) . ICSE '00. Actas de la conferencia sobre el futuro de la ingeniería de software . pp. 35–46 . CiteSeerX 10.1.1.131.3116 . doi : 10.1145/336512.336523 . ISBN   1-58113-253-0. Archivado del original (PDF) el 06-11-2015 . Consultado el 28-08-2015 .
  • Andrew Stellman y Jennifer Greene (2005). Gestión de proyectos de software aplicada . Cambridge, MA: O'Reilly Media. ISBN 0-596-00948-8.
  • Karl Wiegers y Joy Beatty (2013). Requisitos de software (3.ª  ed.). Redmond, WA: Microsoft Press. ISBN 978-0-7356-7966-5.
  • Entrada de enciclopedia revisada por pares sobre ingeniería y análisis de requisitos.
  • Proceso de definición de requisitos de las partes interesadas de la Universidad de Adquisiciones de Defensa --- Proceso de definición de requisitos de las partes interesadas en Wayback Machine (archivado el 23 de diciembre de 2015)
  • Guía del documento de requisitos del sistema MIL-HDBK 520
  1. Anderson, Charlotte (2022-06-08). "Por qué necesita la identificación y el análisis de las partes interesadas | Acorn" . Acorn PLMS . Recuperado el 2024-01-19 .