Los requerimientos para un sistema son
descripciones de lo que el sistema debe
hacer: el servicio que ofrece y las
restricciones en su operación. El término
“requerimiento” no se usa de manera
continua en la industria del software. En
algunos casos, un requerimiento es
simplemente un enunciado abstracto de
alto nivel en un servicio que debe
proporcionar un sistema, o bien, una
restricción sobre un sistema.
Los requerimientos del usuario son
enunciados, en un lenguaje natural
junto con diagramas, acerca de qué
servicios esperan los usuarios del
sistema
Los requerimientos del sistema son
descripciones más detalladas de las
funciones, los servicios y las
restricciones operacionales del
sistema de software.
Requerimientos funcionales y no
funcionales
Requerimientos funcionales : Son
enunciados acerca de servicios que el
sistema debe proveer, de cómo debería
reaccionar el sistema a entradas
particulares y de cómo debería
comportarse el sistema en situaciones
específicas.
Anotações:
Requerimientos de dominio
Los requerimientos de dominio se derivan del dominio de aplicación del sistema, más que a partir de las
necesidades específicas de los usuarios del sistema. Pueden ser requerimientos funcionales nuevos por
derecho propio, restricciones a los requerimientos funcionales existentes o formas en que deben realizarse
cálculos particulares.
El problema con los requerimientos de dominio es que los ingenieros de software no pueden entender las
características del dominio en que opera el sistema. Por lo común, no pueden indicar si un requerimiento de
dominio se perdió o entró en conflicto con otros requerimientos.
Requerimientos no funcionales: Son
limitaciones sobre servicios o
funciones que ofrece el sistema.
Incluyen restricciones tanto de
temporización y del proceso de
desarrollo, como impuestas por los
estándares.
Estándares del documento de requerimientos Algunas
organizaciones grandes, como el Departamento de Defensa
estadounidense y el Institute of Electrical and Electronic
Engineers (IEEE), definieron estándares para los documentos
de requerimientos. Comúnmente son muy genéricos, pero
útiles como base para desarrollar estándares organizativos
más detallados. El IEEE es uno de los proveedores de
estándares mejor conocidos y desarrolló un estándar para la
estructura de documentos de requerimientos. Este estándar
es más adecuado para sistemas como comando militar y
sistemas de control que tienen un largo tiempo de vida y,
por lo general, los diseña un grupo de organizaciones.
Los requerimientos funcionales del
sistema varían desde requerimientos
generales que cubren lo que tiene que
hacer el sistema, hasta requerimientos
muy específicos que reflejan maneras
locales de trabajar o los sistemas
existentes de una organización.
En principio, la especificación de los
requerimientos funcionales de un sistema debe
ser completa y consistente.
Totalidad significa que deben definirse todos los
servicios requeridos por el usuario. Consistencia
quiere decir que los requerimientos tienen que evitar
definiciones contradictorias.
documento de requerimientos
de El software
El documento de requerimientos de
software es un comunicado oficial de lo
que deben implementar los
desarrolladores del sistema. Incluye
tanto los requerimientos del usuario
para un sistema, como una
especificación detallada de los
requerimientos del sistema.
Anotações:
Son esenciales los documentos de requerimientos cuando un contratista externo diseña el sistema de software.
Problemas con el uso de lenguaje natural para la especificación
de requerimientos La flexibilidad del lenguaje natural, que es
tan útil para la especificación, causa problemas
frecuentemente. Hay espacio para escribir requerimientos
poco claros, y los lectores (los diseñadores) pueden
malinterpretar los requerimientos porque tienen un
antecedente diferente al del usuario. Es fácil mezclar muchos
requerimientos en una sola oración y quizá sea difícil
estructurar los requerimientos en lenguaje natural.
Especificación de
requerimientos
La especificación de requerimientos es el
proceso de escribir, en un documento de
requerimientos, los requerimientos del
usuario y del sistema. De manera ideal, los
requerimientos del usuario y del sistema
deben ser claros, sin ambigüedades, fáciles de
entender, completos y consistentes.
Los requerimientos del usuario para un sistema deben describir los requerimientos
funcionales y no funcionales, de forma que sean comprensibles para los usuarios
del sistema que no cuentan con un conocimiento técnico detallado. De manera
ideal, deberían especificar sólo el comportamiento externo del sistema. El
documento de requerimientos no debe incluir detalles de la arquitectura o el diseño
del sistema.
Los requerimientos del sistema son versiones extendidas de los
requerimientos del usuario que los ingenieros de software usan
como punto de partida para el diseño del sistema. Añaden detalles y
explican cómo el sistema debe brindar los requerimientos del usuar
io. Se pueden usar como parte del contrato para la implementación
del sistema y, por lo tanto, deben ser una especificación completa y
detallada de todo el sistema.
Especificación en lenguaje natural
el lenguaje natural se usa para
escribir los requerimientos de
software. Es expresivo, intuitivo y
universal. También es
potencialmente vago, ambiguo y su
significado depende de los
antecedentes del lector.
1. Elabore un formato estándar y asegúrese de que todas las definiciones de requerimientos se
adhieran a dicho formato. 2. Utilice el lenguaje de manera clara para distinguir entre
requerimientos obligatorios y deseables. 3. Use texto resaltado (negrilla, cursiva o color) para
seleccionar partes clave del requerimiento. 4. No deduzca que los lectores entienden el
lenguaje técnico de la ingeniería de software. 5. Siempre que sea posible, asocie una razón con
cada requerimiento de usuario. La razón debe explicar por qué se incluyó el requerimiento.
Especificaciones estructuradas
El lenguaje natural estructurado es una manera de escribir requerimientos
del sistema, donde está limitada la libertad del escritor de requerimientos
y todos éstos se anotan en una forma estándar. Para usar un enfoque
estructurado que especifique los requerimientos de sistema, hay que
definir una o más plantillas estándar para requerimientos, y representar
dichas plantillas como formas estructuradas. La especificación puede
estructurarse sobre los objetos manipulados por el sistema, las funciones
que el sistema realiza o los eventos procesados por el sistema.
1. Una descripción de la función o entidad a especificar. 2. Una descripción de sus entradas y sus
procedencias. 3. Una descripción de sus salidas y a dónde se dirigen. 4. Información sobre los
datos requeridos para el cálculo u otras entidades en el sistema que se utilizan (la parte
“requiere”). 5. Una descripción de la acción que se va a tomar. 6. Si se usa un enfoque funcional,
una precondición establece lo que debe ser verdadero antes de llamar a la función, y una
postcondición especifica lo que es verdadero después de llamar a la función. 7. Una descripción
de los efectos colaterales (si acaso hay alguno) de la operación
de ingenieríProcesos a de requerimientos
los procesos de ingeniería de
requerimientos incluyen cuatro
actividades de alto nivel. Éstas se
enfocan en valorar si el sistema es
útil para la empresa (estudio de
factibilidad), descubrir
requerimientos (adquisición y
análisis), convertir dichos
requerimientos en alguna forma
estándar (especificación) y
comprobar que los requerimientos
definan realmente el sistema que
quiere el cliente (validación).
Este modelo en espiral acomoda enfoques al desarrollo,
donde los requerimientos se elaboraron con diferentes
niveles de detalle. El número de iteraciones de la espiral
tiende a variar, de modo que la espiral terminará después
de adquirir algunos o todos los requerimientos del
usuario. Se puede usar el desarrollo ágil en vez de la
creación de prototipos, de manera que se diseñen en
conjunto los requerimientos y la implementación del
sistema.
Adquisición y análisis de requerimientos
Después de un estudio de factibilidad inicial, la
siguiente etapa del proceso de ingeniería de
requerimientos es la adquisición y el análisis
de requerimientos. En esta actividad, los
ingenieros de software trabajan con clientes y
usuarios finales del sistema para descubrir el
dominio de aplicación, qué servicios debe
proporcionar el sistema, el desempeño
requerido de éste, las restricciones de
hardware,
Anotações:
Puntos de vista
Un punto de vista es una forma de recopilar y organizar un conjunto de requerimientos de un grupo de participantes que cuentan con algo en común. Por lo tanto, cada punto de vista incluye una serie de requerimientos del sistema. Los puntos de vista pueden provenir de usuarios finales, administradores, etcétera. Ayudan a identificar a los individuos que brindan información sobre sus requerimientos y a estructurar los requerimientos para análisis.
1. Descubrimiento de requerimientos Éste es el proceso de interactuar con los
participantes del sistema para descubrir sus requerimientos. También los
requerimientos de dominio de los participantes y la documentación se descubren
durante esta actividad.
2. Clasificación y organización de requerimientos Esta
actividad toma la compilación no estructurada de
requerimientos, agrupa requerimientos relacionados y los
organiza en grupos coherentes.
3. Priorización y negociación de requerimientos Inevitablemente, cuando intervienen
diversos participantes, los requerimientos entrarán en conflicto. Esta actividad se
preocupa por priorizar los requerimientos, así como por encontrar y resolver conflictos
de requerimientos mediante la negociación.
Especificación de requerimientos Los
requerimientos se documentan e ingresan en
la siguiente ronda de la espiral.
Descubrimiento de requerimientos
El descubrimiento de requerimientos
(llamado a veces adquisición de
requerimientos) es el proceso de
recopilar información sobre el
sistema requerido y los sistemas
existentes, así como de separar, a
partir de esta información, los
requerimientos del usuario y del
sistema
los requerimientos también pueden
venir del dominio de aplicación y de
otros sistemas que interactúan con
el sistema a especificar. Todos ellos
deben considerarse durante el
proceso de adquisición de
requerimientos.
diferentes fuentes de requerimientos (participantes,
dominio, sistemas) se representan como puntos de
vista del sistema, y cada visión muestra un subconjunto
de los requerimientos para el sistema.
Entrevistas
Las entrevistas formales o informales
con participantes del sistema son
una parte de la mayoría de los
procesos de ingeniería de
requerimientos. En estas entrevistas,
el equipo de ingeniería de
requerimientos formula preguntas a
los participantes sobre el sistema
que actualmente usan y el sistema
que se va a desarrollar.
1. Entrevistas cerradas, donde
los participantes responden a
un conjunto de preguntas
preestablecidas.
Las entrevistas son valiosas para
lograr una comprensión global
sobre qué hacen los
participantes, cómo pueden
interactuar con el nuevo sistema
y las dificultades que enfrentan
con los sistemas actuales.
Sin embargo, las entrevistas no son tan útiles
para comprender los requerimientos desde el
dominio de la aplicación.
Las entrevistas tampoco son una
técnica efectiva para adquirir
conocimiento sobre los requerimientos
y las restricciones de la organización,
porque existen relaciones sutiles de
poder entre los diferentes miembros en
la organización.
Los entrevistadores
efectivos poseen dos
características:
1. Tienen mentalidad
abierta, evitan ideas
preconcebidas sobre los
requerimientos y escuchan
a los participantes. Si el
participante aparece con
requerimientos
sorprendentes, entonces
tienen disposición para
cambiar su mentalidad
acerca del sistema.
2. Instan al
entrevistado con una
pregunta de
trampolín para
continuar la plática,
dar una propuesta de
requerimientos o
trabajar juntos en un
sistema de prototipo.
2. Entrevistas abiertas, en
las cuales no hay agenda
predefinida. El equipo de
ingeniería de
requerimientos explora un
rango de conflictos con los
participantes del sistema y,
como resultado, desarrolla
una mejor comprensión de
sus necesidades
Escenarios
Los escenarios son particularmente útiles para
detallar un bosquejo de descripción de
requerimientos. Se trata de ejemplos sobre
descripciones de sesiones de interacción. Cada
escenario abarca comúnmente una interacción o
un número pequeño de interacciones posibles.
un escenario puede incluir: 1. Una descripción de qué
esperan el sistema y los usuarios cuando inicia el
escenario. 2. Una descripción en el escenario del flujo
normal de los eventos. 3. Una descripción de qué puede
salir mal y cómo se manejaría. 4. Información de otras
actividades que estén en marcha al mismo tiempo. 5. Una
descripción del estado del sistema cuando termina el
escenario.
Casos de uso
Los casos de uso se documentan con el empleo
de un diagrama de caso de uso de alto nivel. El
conjunto de casos de uso representa todas las
interacciones posibles que se describirán en los
requerimientos del sistema. Los actores en el
proceso, que pueden ser individuos u otros
sistemas, se representan como figuras sencillas.
Cada clase de interacción se constituye como
una elipse con etiqueta.
Los casos de uso identifican las
interacciones individuales entre el
sistema y sus usuarios u otros
sistemas. Cada caso de uso debe
documentarse con una
descripción textual. Entonces
pueden vincularse con otros
modelos en el UML que
desarrollará el escenario con más
detalle.
El UML es un estándar de facto para modelado orientado a objetos, así que los
casos de uso y la adquisición basada en casos ahora se utilizan ampliamente
para adquisición de requerimientos.
Etnografía
La etnografía es una técnica de observación que se usa para entender los procesos
operacionales y ayudar a derivar requerimientos de apoyo para dichos procesos. Un analista
se adentra en el ambiente laboral donde se usará el sistema. Observa el trabajo diario y
toma notas acerca de las tareas existentes en que intervienen los participantes. El valor de
la etnografía es que ayuda a descubrir requerimientos implícitos del sistema que reflejan las
formas actuales en que trabaja la gente, en vez de los procesos formales definidos por la
organización
Anotações:
Revisiones de requerimientos
Una revisión de requerimientos es un proceso donde un grupo de personas del cliente del sistema y el desarrollador del sistema leen con detalle el documento de requerimientos y buscan errores, anomalías e inconsistencias. Una vez detectados y registrados, recae en el cliente y el desarrollador la labor de negociar cómo resolver los problemas identificados.
Validación de
requerimientos
La validación de requerimientos es el
proceso de verificar que los
requerimientos definan realmente el
sistema que en verdad quiere el cliente.
Durante el proceso de validación de requerimientos, tienen que
realizarse diferentes tipos de comprobaciones sobre los
requerimientos contenidos en el documento de requerimientos.
Dichas comprobaciones incluyen:
1. Comprobaciones de validez Un
usuario quizá crea que necesita un
sistema para realizar ciertas
funciones. Sin embargo, con mayor
consideración y análisis se logra
identificar las funciones adicionales o
diferentes que se requieran.
2. Comprobaciones
de consistencia Los
requerimientos en el
documento no deben
estar en conflicto.
Esto es, no debe
haber restricciones
contradictorias o
descripciones
diferentes de la
misma función del
sistema.
3. Comprobaciones de
totalidad El documento
de requerimientos debe
incluir requerimientos
que definan todas las
funciones y las
restricciones
pretendidas por el
usuario del sistema.
4. Comprobaciones de
realismo Al usar el
conocimiento de la
tecnología existente,
los requerimientos
deben comprobarse
para garantizar que
en realidad pueden
implementarse.
5. Verificabilidad Para reducir el
potencial de disputas entre cliente y
contratista, los requerimientos del
sistema deben escribirse siempre de
manera que sean verificables.
Administración de
requerimientos
Los requerimientos para los grandes
sistemas de software siempre cambian.
Una razón es que dichos sistemas se
desarrollaron por lo general para
resolver problemas “horrorosos”:
aquellos problemas que no se pueden
definir por completo. Una vez que se
instala un sistema, y se utiliza con
regularidad, surgirán inevitablemente
nuevos requerimientos. Es difícil que los
usuarios y clientes del sistema anticipen
qué efectos tendrá el nuevo sistema
sobre sus procesos de negocios y la
forma en que se hace el trabajo.
Anotações:
Requerimientos duraderos y volátiles
Algunos requerimientos son más susceptibles a cambiar que otros. Los requerimientos duraderos son los requerimientos que se asocian con las actividades centrales, de lento cambio, de una organización. También estos requerimientos se relacionan con actividades laborales fundamentales. Por el contrario, los requerimientos volátiles tienen más probabilidad de cambio. Se asocian por lo general con actividades de apoyo que reflejan cómo la organización hace su trabajo más que el trabajo en sí.
Planeación de la
administración de
requerimientos
La planeación es una primera
etapa esencial en el proceso
de administración de
requerimientos. Esta etapa
establece el nivel de detalle
que se requiere en la
administración de
requerimientos.
Administración del
cambio en los
requerimientos
La administración del cambio en
los requerimientos (figura 4.18)
debe aplicarse a todos los cambios
propuestos a los requerimientos
de un sistema, después de
aprobarse el documento de
requerimientos. La administración
del cambio es esencial porque es
necesario determinar si los
beneficios de implementar nuevos
requerimientos están justificados
por los costos de la
implementación.
Anotações:
Seguimiento de requerimientos
Es necesario seguir la huella de las relaciones entre requerimientos, sus fuentes y el diseño del sistema, de modo que usted pueda analizar las razones para los cambios propuestos, así como el efecto que dichos cambios tengan probablemente sobre otras partes del sistema. Es necesario poder seguir la pista de cómo un cambio se propaga hacia el sistema. ¿Por qué?
1. Análisis del
problema y
especificación del
cambio El proceso
comienza con la
identificación de un
problema en los
requerimientos o, en
ocasiones, con una
propuesta de cambio
específica.
2. Análisis del cambio y
estimación del costo El
efecto del cambio
propuesto se valora
usando información de
seguimiento y
conocimiento general de
los requerimientos del
sistema.
3. Implementación del
cambio Se modifican el
documento de
requerimientos y, donde
sea necesario, el diseño y
la implementación del
sistema. Hay que
organizar el documento
de requerimientos de
forma que sea posible
realizar cambios sin
reescritura o
reorganización extensos.