Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Durante la actividad de captura, recopilamos todos los requisitos de varias fuentes. Durante las
actividades de análisis y negociación, analizamos y entendemos esos requisitos. Ahora, debemos
preparar un documento formal que explique esos requisitos. Esa es la especificación de
requisitos. Para ser precisos, es el proceso de documentar todas las necesidades y restricciones
del usuario y del sistema de manera clara y precisa.
Los requisitos del sistema se pueden llamar la versión ampliada de los requisitos del usuario. Los
requisitos del sistema actúan como punto de partida para cualquier nuevo diseño de sistema.
Estos requisitos son una descripción detallada de los requisitos del usuario que el sistema debe
satisfacer.
Los requisitos funcionales, como sugiere su nombre, describen las funciones del sistema que se
va a diseñar. Es una descripción de lo que será el sistema y cómo funcionará para satisfacer las
necesidades del usuario. Proporcionan una descripción clara de cómo se supone que el sistema
debe responder a un comando en particular, las características y lo que esperan los usuarios.
Los requisitos no funcionales explican las limitaciones y restricciones del sistema a diseñar. Estos
requisitos no tienen ningún impacto en la funcionalidad de la aplicación. Además, existe una
práctica común de subclasificar los requisitos no funcionales en varias categorías, como
Interfaz de usuario
Confiabilidad
La Seguridad
Rendimiento
Mantenimiento
Estándares
Subclasificar los requisitos no funcionales es una buena práctica. Ayuda a la hora de crear una
lista de verificación de los requisitos que se deben cumplir en el sistema a diseñar.
Los requisitos no funcionales son tan importantes como los requisitos funcionales. Si los
requisitos funcionales especifican lo que debe hacer un sistema, los requisitos no funcionales
describen cómo lo hará el sistema. Por ejemplo, la nueva aplicación nos proporcionará la lista
final de todos los usuarios conectados. Eso es parte de los requisitos funcionales. Si el requisito
dice que el sistema solo funcionaría en un sistema Windows y Linux, eso sería parte de los
requisitos no funcionales.
La única diferencia entre los dos es que el sistema no puede funcionar sin satisfacer todos los
requisitos funcionales. Por otro lado, el sistema le dará el resultado deseado incluso cuando no
satisfaga los requisitos no funcionales.
Hay muchos beneficios de tener una especificación de requisitos. Algunos de ellos se enumeran a
continuación:
Ayuda a garantizar que todas las partes interesadas tengan un entendimiento común del
sistema que se va a desarrollar. Esto evita cualquier malentendido durante las etapas
posteriores del desarrollo.
Sirve como punto de referencia para todas las partes interesadas durante el proceso de
desarrollo.
Ayuda a identificar cualquier brecha en los requisitos en una etapa temprana.
Reduce el costo general y el tiempo de desarrollo, ya que evita la repetición del trabajo
debido a cambios en los requisitos.
EARS sería una metodología efectiva aquí. Significa enfoque fácil para la sintaxis de requisitos.
En este método, escribimos un lenguaje claro, conciso y comprensible. Esto mejora todo el flujo
de trabajo de ingeniería de requisitos y simplifica el trabajo al hacer que las cosas sean bastante
fáciles de entender.
Para lograr esto, aquí hay algunos principios que deben tenerse en cuenta al escribir los
requisitos. Implican:
Cada requisito debe tener la forma de una oración completa. No se deben utilizar viñetas,
acrónimos, abreviaturas o palabras de moda. Trate de hacer oraciones cortas, directas y
completas.
Asegúrese de que cada requisito tenga un sujeto, un predicado y un verbo adecuados. El
tema sería el tipo de usuario o el sistema del que estamos hablando. El predicado serían
las condiciones o acciones o resultados deseados que esperamos. Debemos usar palabras
como 'deberá', 'voluntad' y 'debe' para expresar algún tipo de necesidad, y palabras como
'puede' para expresar opcionalidad en el requisito.
Cada requisito debe explicar de manera eficiente el resultado final que deseamos del
sistema.
Además, el requisito debe describir la calidad que esperamos del sistema. Ayuda cuando
medimos el resultado final y vemos si el requisito se implementa correctamente o no.
Las personas a veces mezclan los conceptos de software y las especificaciones de requisitos
comerciales. En realidad, ambos son bastante diferentes.
Preciso – El objetivo de un documento SRS es que sea fácil de comprender. Nada debe
quedar poco claro, por lo que no hay disputas entre las partes interesadas.
Mensurable – Los requisitos en su documento SRS deben ser medibles, por lo tanto, el
producto terminado puede validarse y certificarse según los requisitos.
Finalizar el proyecto – El documento SRS debe incluir suficiente información para que su
equipo de desarrollo y evaluadores completen el producto y garanticen que cumple con los
requisitos del usuario sin errores.
Factible – Los requisitos deben reflejar el estado real de las cosas, incluido el costo, el
cronograma y la tecnología. No deberían depender de futuros avances tecnológicos.
Planes de pago – Debido a que las circunstancias pueden cambiar en el lugar de trabajo,
su documento SRS debe ser lo suficientemente adaptable para adaptarse a los cambios.
No incluya material superfluo en varias secciones que deberán actualizarse cada vez que
haya un turno.
Verificable – Todos los miembros del equipo de desarrollo deben tener acceso al
documento para que puedan consultarlo tantas veces como sea necesario. Debido a que
los requisitos deben ser claros, los miembros del equipo no quieren más información.
Todos deben estar accesibles en el documento SRS.
Consistente – Los requisitos deben ser compatibles. No debe haber ninguna contradicción
entre las partes de su documento de requisitos. El documento debe estar estructurado de
manera consistente y la terminología debe usarse de la misma manera en todo el
documento.
Sin restricciones de implementación – En general, un documento SRS debe ser lo
suficientemente detallado para realizar el trabajo, pero no tan específico como para
detener el desarrollo. Gran parte del desarrollo se basa en servicios de terceros sobre los
que los desarrolladores no tienen control.
Preciso – Los requisitos especificados en los documentos deben ser muy precisos para
evitar cualquier tipo de confusión. No deben tener lagunas, ambigüedades, subjetividad,
superlativos o comparaciones.
Impulsores del negocio – Las razones por las que el cliente busca construir un sistema
se describen en esta sección. Esta sección incluye además los problemas que enfrenta el
cliente con el sistema actual y las oportunidades que brindará el nuevo sistema.
Modelo de negocio – El modelo de negocio que el sistema debe soportar se analiza en
esta sección. Además, incluye varios otros detalles como el contexto organizacional y
comercial, las principales funciones comerciales y los diagramas de flujo de procesos del
sistema.
Requisitos funcionales y del sistema – Esta sección normalmente detalla los requisitos
que están organizados en una estructura jerárquica. Los requisitos funcionales se
encuentran en el nivel superior y los requisitos detallados del sistema se enumeran como
subelementos.
Casos de uso del sistema – Esta sección consta de un diagrama de casos de uso del
lenguaje de modelado unificado (UML) que explica todas las entidades externas clave que
interactuarán con el sistema y los diferentes casos de uso que tendrán que realizar.
Requerimientos Técnicos – Esta sección analiza todos los requisitos no funcionales que
conforman el entorno técnico y las limitaciones técnicas en las que operará el software.
Cualidades del sistema – En esta sección, se definen las numerosas cualidades del
sistema, como la confiabilidad, la facilidad de servicio, la seguridad, la escalabilidad, la
disponibilidad y la mantenibilidad.
Limitaciones y supuestos – Esta sección describe todas las limitaciones impuestas al
diseño del sistema desde el punto de vista del cliente. Las diversas suposiciones del
equipo de ingeniería sobre qué esperar durante el desarrollo también se analizan aquí.
Criterios de aceptación – En esta sección se analizan los detalles de todas las
condiciones que deben cumplirse antes de que el sistema se entregue a los clientes
finales.
Estructura de un SRS:
1. Introducción -
1.1. Propósito
Aquí, explique el objetivo y la estructura de la documentación del software SRS: los tipos de
requisitos que se abordarán, así como el personal que lo utilizará.
Describa en qué situaciones su equipo utilizará el SRS. Por lo general, se utiliza en los siguientes
casos:
1.4. Alcance
Esta parte cubre el alcance del producto, por lo que deberá brindar una descripción general
rápida del sistema: su propósito principal, función y posición. Es comparable a cómo explicaría un
producto en una reunión de partes interesadas, excepto que se permite profundizar en detalles
técnicos.
Todos los tipos de usuarios que se espera que interactúen con el sistema
Todas las partes esenciales de la arquitectura.
Los componentes antes mencionados constituyen una definición. Las definiciones brindan
información sobre la función, las tecnologías subyacentes, las personas objetivo, las entidades
comerciales (usuarios, clientes, intermediarios) y las partes interesadas. Puede usar un acrónimo
para escribir su SRS más rápidamente si así lo desea. El documento será legible siempre que la
tabla de definiciones lo tenga incluido.
A lo largo de su documento, el equipo usa con frecuencia ciertas palabras. Eliminar cualquier
posible malentendido, permitir que nuevos desarrolladores se incorporen y resolver situaciones
conflictivas será más fácil si aclara el significado de estas palabras.
2. Descripción general
En la segunda parte, describe a los lectores las características principales del producto, los
usuarios objetivo y el alcance del sistema. Esta descripción se concentra solo en las
características clave y la arquitectura del software sin entrar en detalles sobre complementos y
conexiones.
Esta parte es una cuestión de elección, por lo que algunas organizaciones optan por no incluirla
en su documentación de ingeniería de SRS. Creemos que es mejor enumerar los problemas que
desea resolver con su funcionalidad en este momento. Será útil más adelante durante las
funciones de lluvia de ideas y monitoreo. Puede volver a esta sección en cualquier momento
durante el proceso de desarrollo del producto y ver si el equipo de experiencia del usuario no se
ha desviado del camino previsto.
Las necesidades se refieren a problemas que los usuarios podrán resolver con el sistema. Puede
dividir estas necesidades en subcategorías si trata con una audiencia altamente segmentada.
Trate de no entrar en detalles sobre las necesidades de cada usuario. Debe dejar algo de espacio
para la interpretación, en caso de que un problema resulte ser más importante de lo que pensó
inicialmente.
Las suposiciones son las suposiciones del equipo sobre el producto y sus capacidades que serán
correctas en el 99 % de las situaciones. Es natural suponer, por ejemplo, que una plataforma que
ayuda a los conductores a navegar de noche se utilizará principalmente en modo nocturno.
Esta parte cubre las características del producto y los criterios de ejecución en detalle. Debido a
que las dos secciones anteriores abordan el producto como un todo, aquí encontrará una
descripción más completa.
Los requisitos funcionales se establecen en una lista de funciones que se llevarán a cabo en un
sistema. Estos criterios tienen que ver con "¿qué se creará?" en lugar de "cómo" y "cuándo".
Los requisitos funcionales son una parte importante de una especificación de requisitos del
sistema. Para cubrir todas las características necesarias del sistema, necesitará 4-5 páginas de
información. Algunos equipos los desglosan por temas para que el documento sea más fácil de
leer.
Por lo general, los componentes de diseño de SRS se denominan independientes del back-end y
la lógica empresarial. Esto tiene sentido ya que los diseñadores en lugar de los desarrolladores
manejan la mayor parte de esta área, pero también porque es donde comenzará el proceso de
desarrollo del producto.
Según el proyecto, los requisitos de la interfaz externa pueden ser de cuatro tipos:
Interfaz de usuario
Interfaz de software
Interfaz de hardware
Interfaz de comunicaciones
Los requisitos de la interfaz externa describen los elementos de la página que serán visibles para
el cliente final. Pueden incluir la lista de páginas, elementos de diseño, temas estilísticos clave,
incluso elementos artísticos y más si son esenciales para el producto.
Los requisitos del sistema del producto establecen las condiciones en las que se puede utilizar.
Por lo general, pertenecen a las especificaciones y características del hardware. Los requisitos de
hardware de SRS a menudo se definen por rangos mínimos y máximos, así como por un umbral
óptimo de rendimiento del producto.
Crear requisitos del sistema antes de comenzar a crear un producto puede parecer difícil, pero es
esencial. Los desarrolladores deben cumplir con los requisitos de hardware para no tener que
reiniciar el proyecto más tarde. Las aplicaciones móviles (con muchas variables a considerar) y
las aplicaciones que necesitan una alta reactividad (juegos, cualquier producto con VR/AR o IoT)
son particularmente vulnerables.
Para muchas organizaciones, esta parte de un SRS es la más difícil. Si los requisitos funcionales
abordan la cuestión de qué crear, los estándares no funcionales definen cómo. Establecen los
criterios de acuerdo con la eficacia con la que debe operar el sistema. Los umbrales de
rendimiento, seguridad y facilidad de uso están todos incluidos en esta área.
El valor real es lo que dificulta la definición de requisitos no funcionales. Es difícil definir frases
como "simultaneidad" o "portabilidad", ya que pueden tener varias interpretaciones para todas las
partes involucradas. Como resultado, recomendamos otorgar una puntuación a cada requisito no
funcional. Puede revisar los requisitos de su proyecto en cualquier momento para ver si el sistema
actual satisface las expectativas iniciales.