Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ingeniería de requerimientos
Objetivos
comprender los conceptos de los requisitos del usuario y del sistema y por qué
actividades;
Contenido
Ingeniería de requerimientos
Los requisitos para un sistema son las descripciones de los servicios que un
de una función del sistema. Davis (Davis 1993) explica por qué existen estas
diferencias:
abstracta para que una solución no esté predefinida. Los requisitos deben estar
escritos para que varios contratistas puedan ofertar por el contrato, ofreciendo,
quizás, diferentes formas de satisfacer las necesidades de la organización del
una definición del sistema para el cliente con más detalle para que el cliente
que debe hacer el sistema. Los requisitos del usuario y los requisitos del
Ingenieros de clientes
Arquitectos de sistemas.
Desarrolladores de software
Estudios de viabilidad
principio del proceso de ER. Debería responder tres preguntas clave: (1) ¿El
sistema contribuye a los objetivos generales de la organización? (2) ¿Se puede
tecnología actual? y (3) ¿Se puede integrar el sistema con otros sistemas que
se utilizan?
Debe escribir los requisitos en diferentes niveles de detalle porque los diferentes
tipos de lectores los usan de diferentes maneras. La Figura 4.2 muestra los tipos
de lectores del usuario y los requisitos del sistema. Los lectores de los requisitos
del sistema. Los lectores de los requisitos del sistema deben saber con mayor
precisión qué hará el sistema porque les preocupa cómo respaldará los procesos
muchas otras personas tienen algún tipo de interés en el sistema. Las partes
alguna manera y, por lo tanto, cualquier persona que tenga un interés legítimo
en él. Las partes interesadas van desde los usuarios finales de un sistema hasta
los gerentes y las partes interesadas externas, como los reguladores, que
certifican la aceptabilidad del sistema. Por ejemplo, las partes interesadas del
pacientes.
algunos tratamientos.
adecuadamente.
Este RE en etapa inicial establece una visión de alto nivel de lo que el sistema
podría hacer y los beneficios que podría proporcionar. Estos pueden entonces
sistema.
mayoría de los sistemas grandes, todavía es el caso de que hay una fase de
puede ser parte del contrato de desarrollo del sistema. Por supuesto, se
puede utilizar un enfoque ágil para obtener los requisitos de forma simultánea a
4.1.1
Los requisitos del sistema de software a menudo se clasifican como requisitos
funcionales o no funcionales:
desarrolla con más detalle, este requisito puede generar otros requisitos que
menudo genera o restringe otros requisitos. Por lo tanto, los requisitos del
sistema no solo especifican los servicios o las características del sistema que
lugar de las necesidades específicas de los usuarios del sistema. Pueden ser
particulares.
El problema con los requisitos del dominio es que los ingenieros de software
http://software-engineering-book.com/web/domain-requirements/
Requerimientos funcionales:
como requisitos del usuario, los requisitos funcionales deben estar escritos en
lenguaje natural para que los usuarios y administradores del sistema puedan
entenderlos. Los requisitos funcionales del sistema amplían los requisitos del
funciones del sistema, sus entradas y salidas, y las excepciones en detalle. Los
cubren lo que debe hacer el sistema a requisitos muy específicos que reflejan
2. El sistema generará cada día, para cada clínica, una lista de pacientes que
3).
sistema. Por supuesto, esto retrasa la entrega del sistema y aumenta los
costos.
establece que un usuario podrá buscar en las listas de citas de todas las
Es posible que tengan una cita en una clínica, pero en realidad van a otra
de la clínica.
sistema busca ese nombre en todas las citas en todas las clínicas. Sin
función de búsqueda puede requerir que el usuario elija una clínica y luego
realice la búsqueda de los pacientes que asistieron a esa clínica. Esto implica
más información del usuario y, por lo tanto, lleva más tiempo completar la
búsqueda.
Idealmente, la especificación de requisitos funcionales de un sistema debe ser
requisitos para sistemas de software muy pequeños. Una razón es que es fácil
y complejos. Otra razón es que los sistemas grandes tienen muchas partes
sistema.
requerimientos no funcionales
Los requisitos no funcionales son a menudo más críticos que los requisitos
encontrar formas de evitar una función del sistema que realmente no satisface
funcionarán correctamente.
posible que deba organizar el sistema para minimizar las comunicaciones entre
los componentes.
Seguridad / seguridad |
Además, también puede generar requisitos que limitan los requisitos existentes;
restricción presupuestaria
usabilidad.
desarrolladores. Los ejemplos incluyen los requisitos del proceso operativo que
general.
para todas las clínicas durante las horas normales de trabajo (lunes a viernes,
08: 30-17: 30). El tiempo de inactividad dentro de las horas normales de trabajo
instrumentación de software para contar los errores cometidos por los usuarios
El personal médico podrá utilizar todas las funciones del sistema después de
muestra las métricas que puede usar para especificar propiedades del sistema
funcionales.
funcionales puede ser muy alto, y los clientes que pagan por el sistema pueden
entrelazan.
disponible.
alrededor de la espiral puede variar para que la espiral pueda salir después de
que se hayan obtenido algunos o todos los requisitos del usuario. El desarrollo
Especificación de requisitos
Requisitos
Validación de requerimientos
sonsacamiento
sonsacamiento
Prototipos
Comentarios
los requisitos
que realizan las partes interesadas y cómo podrían utilizar un nuevo sistema
articular lo que quieren que haga el sistema; pueden hacer demandas poco
1. Descubrimiento de requisitos y
organización
3. Requisitos
priorización y negociación
comunes y conflictos.
Los factores políticos pueden influir en los requisitos de un sistema. Los
gerentes pueden exigir requisitos específicos del sistema porque estos les
análisis.
compromisos de requisitos .
Obtener conocimiento del dominio a través de entrevistas puede ser difícil, por
dos razones:
de trabajo. Es imposible para ellos discutir los requisitos del dominio sin utilizar
2. Algunos interesados conocen tanto el dominio que les resulta difícil explicarlo
ejemplo, para un bibliotecario, no hace falta decir que todas las adquisiciones
requisitos.
Las entrevistas no son una técnica efectiva para obtener conocimiento sobre
1. Debe ser de mente abierta, evitar ideas preconcebidas sobre los requisitos y
quieres" resultará en información útil. Les resulta mucho más fácil hablar en un
desarrollador.
requisitos del sistema. Sin embargo, las entrevistas por sí solas pueden perder
información esencial y, por lo tanto, deben usarse junto con otras técnicas de
obtención de requisitos.
4.3.1.2 Etnografía
del sistema de software. Una razón por la cual muchos sistemas de software se
operación práctica del sistema. Por lo tanto, es muy importante que, durante el
ayudar a derivar los requisitos para que el software respalde estos procesos.
que ayuda a descubrir los requisitos implícitos del sistema que reflejan las
formas reales en que trabajan las personas, en lugar de los procesos formales
A las personas a menudo les resulta muy difícil articular los detalles de su
que no son obvios para las personas, solo pueden aclararse cuando un
autoorganizarse para que los miembros conozcan el trabajo del otro y puedan
trabajo.
el trabajo de oficina. Encontró que las prácticas laborales reales eran mucho
más ricas, más complejas y más dinámicas que los modelos simples asumidos
La diferencia entre el trabajo asumido y el real fue la razón más importante por
sistema de alerta de conflicto que detecta aeronaves con rutas de vuelo que se
audibles incluso cuando los aviones están muy separados. Los controladores
pueden discutirse con el etnógrafo. Luego debe buscar las respuestas a estas
preguntas durante la siguiente fase del estudio del sistema (Sommerville et al.
Informe etnográfico
reuniones de análisis
desarrollo
análisis de requerimientos
Evaluación de prototipo
comentaristas han sugerido que Nokia utilizó la etnografía para descubrir cómo
teléfonos sobre esa base; Apple, por otro lado, ignoró el uso actual y
revolucionó el móvil
industria telefónica con la introducción del iPhone. Los estudios etnográficos
pueden revelar detalles críticos del proceso que a menudo pasan por alto otras
técnicas de obtención de requisitos. Sin embargo, debido a su enfoque en el
usuario final, este enfoque no es efectivo para descubrir requisitos
organizativos o de dominio más amplios o para sugerencias de innovaciones.
Por lo tanto, debe usar la etnografía. como una de una serie de técnicas para la
obtención de requisitos.
4.3.2 Historias y escenarios A las personas les resulta más fácil relacionarse
con ejemplos de la vida real que con descripciones abstractas. No son buenos
para decirle los requisitos del sistema. Sin embargo, pueden describir cómo
manejan situaciones particulares o imaginar cosas que podrían hacer en una
nueva forma de trabajar. Las historias y los escenarios son formas de capturar
este tipo de información. Luego puede usarlos cuando entrevista a grupos de
partes interesadas para discutir el sistema con otras partes interesadas y
desarrollar un sistema más específico. requisitos Las historias y los escenarios
son esencialmente lo mismo. Son una descripción de cómo se puede usar el
sistema para alguna tarea en particular. Describen qué hacen las personas,
qué información usan y producen, y qué sistemas pueden usar en este
proceso. La diferencia está en la forma en que se estructuran las descripciones
y en el nivel de detalle presentado. Las historias se escriben como texto
narrativo y presentan una descripción de alto nivel del uso del sistema; Los
escenarios generalmente se estructuran con información específica recopilada,
como entradas y salidas. Encuentro que las historias son efectivas para
establecer el "panorama general". Las partes de las historias pueden
desarrollarse con más detalle y representarse como escenarios. La Figura 4.9
es un ejemplo de una historia que desarrollé para comprender los requisitos
para el entorno de aprendizaje digital ¡Aprenda que presenté en el Capítulo 1.
Esta historia describe una situación en una escuela primaria (primaria) donde el
maestro está utilizando el entorno para apoyar proyectos estudiantiles en la
industria pesquera. Puedes ver que esta es una descripción de muy alto nivel.
Su propósito es facilitar la discusión sobre cómo se podría usar el sistema
¡Aprende y actuar como un punto de partida para obtener los requisitos para
ese sistema
4.3 4 Obtención de requisitos 119 Compartir fotos en el aula
A Pp Py
4.9. La diferencia clave entre este sistema y otros sistemas es que un maestro
modera las fotos cargadas para verificar que sean adecuadas para compartir.
Puede ver que esta es una descripción mucho más detallada que la historia de
la Figura 4.9, por lo que puede usarse para proponer requisitos para el sistema
¡Learn. Al igual que las historias, los escenarios se pueden usar para facilitar
las discusiones con las partes interesadas que a veces pueden tener diferentes
fotografías digitales para cargar en el sitio para compartir imágenes. Estas fotos
se guardan en una tableta o una computadora portátil. Han iniciado sesión con
éxito en KidsTakePics.
Normal: el usuario elige cargar fotos y se le solicita que seleccione las fotos
el que se almacenarán las fotos. Los usuarios también deben tener la opción
de ingresar palabras clave que deben asociarse con cada foto cargada. Las
fotos cargadas se nombran creando una conjunción del nombre de usuario con
genera un mensaje en pantalla para el usuario que indica que esta verificación
se ha realizado.
Qué puede salir mal: ningún moderador está asociado con el proyecto
proyecto. Los usuarios deben ser informados de una posible demora en hacer
Las fotos con el mismo nombre ya han sido cargadas por el mismo usuario. Se
debe preguntar al usuario si desea volver a cargar las fotos con el mismo
eligen volver a subir las fotos, se sobrescriben los originales. Si eligen cambiar
moderación". Las fotos son visibles para el moderador y para el usuario que las
cargó.
Especificación de requisitos
del usuario y del sistema deben ser claros, inequívocos, fáciles de entender,
Los requisitos del usuario para un sistema deben describir los requisitos
funcionales y no funcionales para que sean entendibles por los usuarios del
sistema que no tienen un conocimiento técnico detallado. Idealmente, deberían
diagramas intuitivos.
NE DE iieÍ
Lenguaje natural
frases
Estructurado natural
idioma
Notaciones gráficas
Especificaciones matematicas
para definir los requisitos funcionales del sistema. Los diagramas de uso y
sistema. (Discuto este enfoque, en el Capítulo 10, que cubre la confiabilidad del
sistema).
requisitos
4.4.1
Los requisitos del sistema son versiones ampliadas de los requisitos del
usuario que los ingenieros de software utilizan como punto de partida para el
proporcionar los requisitos del usuario. Se pueden usar como parte del contrato
1. Puede que tenga que diseñar una arquitectura inicial del sistema para
sistema. Hicimos esto cuando definimos los requisitos para el sistema ¡Learn,
2. En la mayoría de los casos, los sistemas deben interactuar con los sistemas
3. Puede ser necesario el uso de una arquitectura específica para satisfacer los
requisitos
innecesariamente altos).
3.6 El sistema ejecutará una rutina de autocomprobación cada minuto con las
ser imposible.)
sistema
4.4.2
las omisiones sean menos probables y los requisitos más fáciles de verificar.
Sugiero que, siempre que sea posible, debe escribir el requisito en una o dos
Siempre que sea posible, debe evitar el uso de jerga, abreviaturas y siglas.
5. Siempre que sea posible, debe intentar asociar una justificación con cada
requisito del usuario. La razón debe explicar por qué se ha incluido el requisito
y quién propuso el requisito (la fuente del requisito), para que sepa a quién
La figura 4.12 ilustra cómo se pueden usar estas pautas. Incluye dos requisitos
Especificaciones estructuradas
123
los requisitos porque tienen una formación diferente para el usuario. Es fácil
fusionar varios requisitos en una sola oración, y estructurar los requisitos del
sistema, defina una o más plantillas estándar para los requisitos y represente
este caso, una que define cómo calcular la dosis de insulina que se
función.
Figura 4.13 El
Lectura actual de azúcar (r2), las dos lecturas anteriores (rO y r1). Lectura
Dos lecturas previas para poder calcular la tasa de cambio del nivel de azúcar.
Ninguna.
especificación estructurada
más eficazmente. Sin embargo, a veces todavía es difícil escribir los requisitos
gráficos del sistema. Estos pueden mostrar cómo proceden los cálculos, cómo
cambia el estado del sistema, cómo interactúan los usuarios con el sistema y
Las tablas son particularmente útiles cuando hay una serie de posibles
situaciones alternativas y necesita describir las acciones a tomar para cada una
Condición ito)
Caída del nivel de azúcar (r2 <r1) CompDose = 0
redondeado = O entonces
UNA
Recepcionista medico
2 >> 2. Médico
información personal.
Los casos de uso son una forma de describir las interacciones entre los
Capítulo 5).
proceso, que pueden ser humanos u otros sistemas, están representados como
figuras de palo. Cada clase de interacción se representa como una elipse con
pueden agregar puntas de flecha a las líneas para mostrar cómo se inicia la
interacción. Esto se ilustra en la Figura 4.15, que muestra algunos de los casos
sus usuarios u otros sistemas. Cada caso de uso debe documentarse con una
en sus pantallas, pero solo el médico que inicia puede editar el registro.
para ayudar a coordinar acciones. Se supone que una llamada telefónica para
es que son demasiado finos para ser útiles para analizar los requisitos. Las
interacción del sistema. En consecuencia, considero que los casos de uso son
los casos de uso más adelante en el Capítulo 5, que muestra cómo se usan
único a través del caso de uso. Por lo tanto, habría un escenario para la
requisitos del usuario para un sistema como una especificación detallada de los
requisitos del sistema. En ocasiones, los requisitos del usuario y del sistema se
integran en una sola descripción. En otros casos, los requisitos del usuario se
sistema.
requisitos detallado.
Los métodos ágiles sostienen que los requisitos cambian tan rápidamente que
documento formal, los enfoques ágiles a menudo recopilan los requisitos de los
Para los sistemas empresariales donde los requisitos son inestables, creo que
este enfoque es bueno. Sin embargo, creo que todavía es útil escribir un breve
sistema.
ingenieros responsables del desarrollo del software. La figura 4.16 muestra los
requisitos 127
Figura 4.16 Usuarios de un documento de requisitos
Gerentes
Ingenieros de sistemas
Prueba del sistema Utilice los requisitos para que los ingenieros desarrollen
SIGLO DE DELE
Use los requisitos para comprender el sistema y las relaciones entre sus
partes.
debe ser un compromiso. Tiene que describir los requisitos para los clientes,
evolución prevista del sistema. Esta información ayuda a los encargados del
brevemente las funciones del sistema y explicar cómo funcionará con otros
software.
Aquí, usted describe los servicios provistos para el usuario. Los requisitos de
Sistema Este capítulo incluye modelos de sistemas gráficos que muestran las
sistema.
etc.
Figura 4.17 La estructura de un requisito OCUTACIÓN Naturalmente, la
información incluida en un documento de requisitos depende de tipo de
software que se está desarrollando y el enfoque de desarrollo que se utilizará.
Se podría producir un documento de requisitos con una estructura como la que
se muestra en la Figura 4.17 para un sistema de ingeniería complejo que
incluye hardware y software desarrollado por diferentes compañías. Es
probable que el documento de requisitos sea largo y detallado. Por lo tanto, es
importante incluir una tabla completa de contenido e índice de documentos
para que los lectores puedan encontrar fácilmente la información que
necesitan. Por el contrario, el documento de requisitos para un producto de
software interno dejará de lado muchos de los capítulos detallados sugeridos
anteriormente. La atención se centrará en definir los requisitos del usuario y los
requisitos del sistema no funcionales de alto nivel. Los diseñadores y
programadores del sistema utilizan su criterio para decidir cómo cumplir con los
requisitos de usuario del sistema.
Normas del documento de requisitos Varias organizaciones grandes, como el
Departamento de Defensa de EE. UU. Y el IEEE, han definido estándares para
los documentos de requisitos. Suelen ser muy genéricos pero, sin embargo,
son útiles como base para desarrollar estándares organizacionales más
detallados. El Instituto de Ingenieros Eléctricos y Electrónicos de EE. UU.
(IEEE) es uno de los proveedores de estándares más conocidos, y han
desarrollado un estándar para la estructura de los documentos de requisitos.
Este estándar es el más apropiado para sistemas como el comando militar y los
sistemas de control que tienen una larga vida útil y generalmente son
desarrollados por un grupo de organizaciones. http://software-engineering-
book.com/web/requirements-standard/ Validación de requerimientos La
validación de requisitos es el proceso de verificar que los requisitos definen el
sistema que el cliente realmente desea. Se superpone con la obtención y el
análisis, ya que se ocupa de encontrar problemas con los requisitos. La
validación de requisitos es de vital importancia porque los errores en un
documento de requisitos pueden generar costos de reprocesamiento extensos
cuando se descubren estos problemas durante el desarrollo o después de que
el sistema esté en servicio. El costo de solucionar un problema de requisitos
haciendo un cambio en el sistema suele ser mucho mayor que reparar errores
de diseño o codificación. Un cambio en los requisitos generalmente significa
que el diseño y la implementación del sistema también deben cambiarse.
Además, el sistema debe volver a probarse. Durante el proceso de validación
de requisitos, se deben llevar a cabo diferentes tipos de verificaciones de los
requisitos en el documento de requisitos. Estos controles incluyen:
l. Verificaciones de validez Verifican que los requisitos reflejen las necesidades
originalmente.
requisitos que definan todas las funciones y las restricciones previstas por el
contratista, los requisitos del sistema siempre deben escribirse de manera que
sean verificables. Esto significa que debe poder escribir un conjunto de pruebas
que puedan demostrar que el sistema entregado cumple con cada requisito
especificado.
O Revisiones de requisitos
Una revisión de requisitos es un proceso en el que un grupo de personas del
http://software-engineering-book.com/web/requirements-reviews/
o en conjunto:
desarrollo.
las pruebas para los requisitos se diseñan como parte del proceso de
para poder evaluar el impacto de los cambios en los requisitos. Por lo tanto,
comenzar tan pronto como esté disponible una versión borrador del documento
de requisitos.
Los procesos de desarrollo ágiles se han diseñado para hacer frente a los
4.6.1
Algunos requisitos son más susceptibles de cambio que otros. Los requisitos
duraderos son los requisitos que están asociados con las actividades centrales
http://software-engineering-book.com/web/changing-requirements/
Planificación de la gestión de requisitos.
haciendo que las secciones del documento sean lo más modulares posible. Por
paso. Una vez que se han realizado cambios en el sistema, es fácil olvidar
PUNTOS CLAVE
cálculos.
requisitos.
software.
requisitos del sistema. Debe organizarse para que tanto los clientes del sistema
OTRAS LECTURAS
//dx.doi.org/10.1109/ MS.2005.13.
http://dx.doi.org/10.1109/FOSE.2007.17.
Dominar el proceso de requisitos, 3ª ed. Un libro bien escrito y fácil de leer que
SITIO WEB
www.pearsonglobaleditions.com/Sommerville
http: //software-engineering-book.com/videos/requirements-and-design/
CEREMONIAS
4.1.
4.2.
4.3.
4.4,
4.5.
4.6.
4.7.
4.8.
4.9.
4.10.