Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Definición de requerimiento
1
1.2. Clasificación de los requerimientos
2
1.2. Clasificación de los requerimientos
3
1.2. Clasificación de los requerimientos
4
1.2. Clasificación de los requerimientos
Requerimientos
Funcionales
Clasificación
Requerimientos
de Usuario Requerimientos
No Funcionales
Requerimientos
Funcionales
Requerimientos Requerimientos
de Sistema No Funcionales
Requerimientos
de Dominio
5
1.2. Clasificación de los requerimientos
En este gráfico se puede observar los tipos de requerimientos existentes en base al tipo
de modificaciones:
Volátiles
6
1.2.1 Funcionales
7
1.2.1 Funcionales
Profundizando en las causas de estos problemas, las situaciones observadas con mayor
frecuencia son:
8
1.2.1 Funcionales
Siguiendo estas prácticas podemos asegurar una mejor aceptación de los requerimientos
funcionales cuando llegue el momento de la implementación.
9
1.2.1 Funcionales
❑ El sistema enviará un correo electrónico cuando se registre alguna de las siguientes transacciones: pedido de venta de cliente,
despacho de mercancía al cliente, emisión de factura a cliente y registro de pago de cliente.
❑ Se permitirá el registro de pedidos de compra con datos obligatorios incompletos, los cuales podrán completarse posteriormente
modificando el pedido. Antes de poder aprobarse los datos del pedido deben estar completos.
❑ Al aprobar un pedido, la solicitud pasará al siguiente paso del flujo de trabajo (workflow) de aprobación configurado en el sistema.
❑ El sistema permitirá a los usuarios autorizados el ingresar planes y cronogramas de proyecto.
❑ El sistema permitirá aprobar, cambiar o actualizar planes y cronogramas de proyecto.
❑ La solución validara automáticamente el cliente asociado a una orden con el sistema de gestión de contactos.
❑ El campo de monto acepta únicamente valores numéricos con dos decimales.
❑ El campo fecha de transacción acepta únicamente fechas anteriores al día de hoy (día actual).
❑ El campo nombre acepta caracteres alfabéticos únicamente.
❑ El campo dirección acepta caracteres alfabéticos, numéricos y especiales.
10
1.2.1 Funcionales
❑ El software podrá ser utilizado en los sistemas operativos Windows, Linux y OSX.
❑ La aplicación debe poder utilizarse sin necesidad de instalar ningún software adicional además de un
navegador web.
❑ La aplicación debe poder utilizarse con los navegadores web Chrome, Firefox e Internet Explorer.
11
1.2.2 No Funcionales
12
1.2.2 No Funcionales
13
1.2.2 No Funcionales
Requerimientos No Funcionales de Producto
Suele referirse a limites o restricciones sobre el comportamiento del sistema, por lo cual establece límites y restricciones sobre lo que
los diseñadores (arquitectos de software) e ingenieros de software pueden hacer.
Algunos de estos requerimientos pueden ser fáciles de cuantificar, por ejemplo el desempeño y la confiabilidad, pero otros son más
difíciles como por ejemplo usabilidad y adaptabilidad.
❑ Requerimientos de usabilidad: La usabilidad se define como el esfuerzo que necesita hacer un usuario para aprender, usar,
ingresar datos e interpretar los resultados obtenidos de un software de aplicación. En tiempos recientes, la usabilidad ha adquirido
mucha importancia, en especial ante la demanda de desarrollo de software para móviles y tabletas.
❑ Requerimientos de eficiencia: Relacionado con desempeño en cuanto a tiempo de respuesta, número de operaciones por
segundo, entre otras mediciones, así como consumo de recursos de memoria, procesador, espacio en disco o red.
❑ Requerimientos de dependibilidad: Engloba varios atributos.
▪ Disponibilidad: Disposición del sistema para prestar servicio correctamente.
▪ Confiabilidad: Continuidad del servicio prestado por el sistema.
▪ Seguridad industrial: Ausencia de consecuencias catastróficas para el usuario o el ambiente.
▪ Integridad: Ausencia de alteraciones inadecuadas al sistema.
▪ Mantenibilidad: Posibilidad de realizar modificaciones o reparaciones a un proceso sin afectar la continuidad del servicio.
❑ Requerimientos de seguridad: Capacidades funcionales o no funcionales que debe tener un sistema para cumplir atributos en el
área de seguridad de tecnología de información, seguridad de datos, seguridad lógica, control de acceso a información
(restricciones de acceso), autenticidad de la información, privacidad, entre otros aspectos.
Considerar los requerimientos de producto es vital para lograr la integración continua de aplicaciones y el desarrollo de cambios que
sean rápidos pero sostenibles en el tiempo. Este nuevo paradigma es necesario para implementar las nuevas tecnología de
información y aplicaciones de software como la movilidad, internet de las cosas, analítica avanzada de datos (Big Data), evolución de
los sistemas a la nube y tecnología de información escalable.
14
1.2.2 No Funcionales
Requerimientos No Funcionales Organizacionales
Se derivan de las políticas y procedimientos de la organización como por ejemplo estándares de procesos o
requerimientos de implementación.
Las herramientas para la gestión de desarrollo de software que conocemos, se definen como
requerimientos no funcionales organizacionales.
15
1.2.2 No Funcionales
Requerimientos No Funcionales Externos
Estos derivan del entorno organizacional (no entorno técnico) en el cual se desarrolla el sistema y
pueden hacerse tanto sobre el producto (el software desarrollado) o también sobre el proceso de
desarrollo de software.
Este tipo de requerimientos incluyen limitaciones de índole económica, interacción o necesidad del
sistema de interoperar con otros sistemas, requerimientos regulatorios en el área de salud,
seguridad industrial o protección de datos, requerimientos legales concernientes con licencias,
regulaciones o certificaciones que necesita el producto según la industria en el que se desempeñe,
entre otros.
❑ Requerimientos regulatorios: Leyes y reglamentos que establecen que debe hacer el sistema y
como debe hacerlo para cumplirlas. El foco de un sistema o nueva funcionalidad puede ser
exclusivamente para cumplir una regulación.
❑ Requerimientos éticos: Requerimientos que aseguran que el sistema será aceptable para el
usuario, público en general y se adapta a las costumbres de la sociedad en la que se desenvuelve
o a la que presta servicios.
❑ Requerimientos legislativos: Características que debe cumplir el sistema para cumplir con la ley,
por ejemplo en el área de contabilidad (normas contables y estándares financieros),
requerimientos de seguridad industrial (para sistemas críticos), entre otros aspectos.
16
1.2.2 No Funcionales
Eficiencia
❑ El sistema debe ser capaz de procesar N transacciones por segundo. Esto se medirá por medio de la
herramienta SoapUI aplicada al Software Testing de servicios web.
❑ Toda funcionalidad del sistema y transacción de negocio debe responder al usuario en menos de 5 segundos.
❑ El sistema debe ser capaz de operar adecuadamente con hasta 100.000 usuarios con sesiones concurrentes.
❑ Los datos modificados en la base de datos deben ser actualizados para todos los usuarios que acceden en
menos de 2 segundos.
❑ Los permisos de acceso al sistema podrán ser cambiados solamente por el administrador de acceso a datos.
❑ El nuevo sistema debe desarrollarse aplicando patrones y recomendaciones de programación que
incrementen la seguridad de datos.
❑ Todos los sistemas deben respaldarse cada 24 horas. Los respaldos deben ser almacenados en una localidad
segura ubicada en un edificio distinto al que reside el sistema.
❑ Todas las comunicaciones externas entre servidores de datos, aplicación y cliente del sistema deben estar
encriptadas utilizando el algoritmo RSA.
❑ Si se identifican ataques de seguridad o brecha del sistema, el mismo no continuará operando hasta ser
desbloqueado por un administrador de seguridad.
17
1.2.2 No Funcionales
Usabilidad
❑ El tiempo de aprendizaje del sistema por un usuario deberá ser menor a 4 horas.
❑ La tasa de errores cometidos por el usuario deberá ser menor del 1% de las transacciones
totales ejecutadas en el sistema.
❑ El sistema debe contar con manuales de usuario estructurados adecuadamente.
❑ El sistema debe proporcionar mensajes de error que sean informativos y orientados a usuario
final.
❑ El sistema debe contar con un módulo de ayuda en línea.
❑ La aplicación web debe poseer un diseño “Responsive” a fin de garantizar la adecuada
visualización en múltiples computadores personales, dispositivos tableta y teléfonos inteligentes.
❑ El sistema debe poseer interfaces gráficas bien formadas.
18
1.2.2 No Funcionales
Ejemplos de requerimientos no funcionales de producto
Dependibilidad
❑ El sistema debe tener una disponibilidad del 99,99% de las veces en que un usuario intente
accederlo.
❑ El tiempo para iniciar o reiniciar el sistema no podrá ser mayor a 5 minutos.
❑ La tasa de tiempos de falla del sistema no podrá ser mayor al 0,5% del tiempo de operación
total.
❑ El promedio de duración de fallas no podrá ser mayor a 15 minutos.
❑ La probabilidad de falla del Sistema no podrá ser mayor a 0,05.
19
1.2.2 No Funcionales
20
1.3 Proceso de la Ingeniería de los Requerimientos
21
1.3 Proceso de la Ingeniería de los Requerimientos
Por esto, el proceso de Ingeniería de Requerimientos describe de manera detallada y precisa cada
uno de los aspectos del ciclo de vida de un conjunto de requerimientos. Este proceso presenta dos
grandes ramas: El Desarrollo de requerimientos, y la Administración de requerimientos.
Ingeniería de
Requerimientos
Desarrollo Administración
22
1.3.1. Elicitación
Elicitar un requerimiento significa, indagar, investigar, comprender: una situación que
necesita solventarse, una necesidad que debe ser cubierta, una funcionalidad que ha de
ser creada. Con la salvedad de que todo lo que capturemos en la elicitación debe ser
traducido y documentado para que cualquier persona que se involucre en el proyecto lo
entienda y pueda aportar para llevar a cabo la actividad que le corresponda. Es decir;
analistas, diseñadores, programadores, arquitectos de software, tester, etc., al leer el
requerimiento empezaran a proyectar como solucionarlo.
La elicitación de requerimientos es una de las principales tareas que debe llevarse a cabo
para la correcta implementación de un desarrollo software. Su incorrecta especificación
genera costos innecesarios a lo largo del proyecto e inclusive, su completo fracaso.
23
1.3.2. Interpretación
Normalmente, las personas se encuentran con dificultades para comprender documentos de este
tamaño, sobre todo si lo leen cuidadosamente. Es casi imposible leer un documento de
especificación de gran tamaño, pues difícilmente una persona puede memorizar los detalles del
documento. Esto causa problemas y errores que no son detectados hasta después de haberse
construido el sistema.
Dependiendo del tamaño del proyecto y del modelo de proceso de software utilizado para el ciclo
de desarrollo, las actividades de la IR varían tanto en número como en nombres.
24
1.3.2. Interpretación
La tabla siguiente muestra algunos ejemplos de las actividades identificadas para cada proceso.
Tabla Actividades de la IR para diferentes modelos de procesos de Ingeniería de Software
MODELO Oliver and Steiner EIA / IS-632 IEEE Std 1220- 1994 CMM nivel Repetitivo RUP
1996 (2)
25
1.3.2. Interpretación
26
1.3.3. Estructuración análisis y documentación
27
1.3.3. Estructuración análisis y documentación
Para construir algo primero debe entenderse lo que debe ser ese algo. El
proceso de entender y documentar una aplicación software se llama “Análisis
de requerimientos”. En general los requerimientos expresan qué se supone
debe hacer una aplicación y no intentan expresar como logra estas funciones.
Unos de los principales objetivos de UML es hacer que este análisis sea lo
suficientemente intuitivo para que los clientes y expertos en el dominio que
solicitan el producto puedan comprenderlo, y lo suficientemente formal y
riguroso para que se establezca una formulación no ambigua que pueda ser
utilizada por los técnicos que la desarrollan.
28
1.3.3. Estructuración análisis y documentación
29
1.3.3. Estructuración análisis y documentación
1. Identificar al cliente.
2. Entrevistar al cliente.
❑ Identificar deseos y necesidades
❑ Utilizar las herramientas de expresión de requerimientos (las ofrecidas
por UML)
❑ Bosquejar las interfaces de usuario (protocolos y GUIs)
❑ Identificar las plataformas hardware que debe soportar el software
3. Elaborar un documento de los requerimientos de usuario (Debe validarse
con el cliente)
4. Inspeccionar los requerimientos de usuario
5. Elaborar los requerimientos detallados mediante documentos gráficos y
textuales
30
1.3.3. Estructuración análisis y documentación
31
1.3.3. Estructuración análisis y documentación
El documento debe ser breve (2 o 3 páginas) y debe ser realizado por una o dos
personas y aceptado por todos los promotores.
❑ Usuarios del producto
❑ Los que encargan y financian el producto
❑ Responsable de la empresa
❑ Administradores
❑ Programadores
El documento debe contener:
❑ La naturaleza y objetivos del producto.
❑ Las características más relevantes.
❑ La oportunidad de mercado del producto.
❑ Análisis de riesgos para el desarrollo del proyecto.
32
1.3.3. Estructuración análisis y documentación
El contexto o dominio del sistema es la descripción del entorno donde opera el sistema y
las interacciones que se producen con él.
33
1.3.3. Estructuración análisis y documentación
Los diagramas de caso de uso constituyen un método alternativo y complementario a los diagramas
de contexto para formular los requerimientos del sistema. Un caso de uso describe una interacción
entre el sistema y un agente externo que se denomina actor:
Los diagramas de casos de uso hacen referencia a la funcionalidad del sistema y no hacen referencia
a la implementación. Los casos de uso constituyen una representación de la funcionalidad que se
utiliza como guía de las restantes fases (análisis, diseño, codificación, prueba y despliegue)
34
1.3.3. Estructuración análisis y documentación
Documentación
35
1.3.4. Negociación
36
1.3.5. Verificación y Validación
Permite demostrar que los requerimientos definidos en el sistema son los que
realmente quiere el cliente, además revisa que no se haya omitido ninguno, que
no sean ambiguos, inconsistentes o redundantes.
37
1.3.5. Verificación y Validación
Los dos procesos en conjunto van asegurar que el software que se desarrolla
está acorde a su especificación y cumple con las necesidades de los clientes.
38
1.3.5. Verificación y Validación
39
1.4. La Ingeniería de Requerimientos como parte del contexto de la
ingeniería
El proceso de recopilar, analizar y verificar las necesidades del cliente o usuario para un sistema es llamado
ingeniería de requerimientos. La meta de la ingeniería de requerimientos (IR) es entregar una especificación de
requerimientos de software correcta y completa.
“Ingeniería de Requerimientos ayuda a los ingenieros de software a entender mejor el problema en cuya solución
trabajarán. Incluye el conjunto de tareas que conducen a comprender cuál será el impacto del software sobre el
negocio, qué es lo que el cliente quiere y cómo interactuarán los usuarios finales con el software”. (Pressman,
2006: 155)
“La ingeniería de requerimientos es el proceso de desarrollar una especificación de software. Las especificaciones
pretender comunicar las necesidades del sistema del cliente a los desarrolladores del sistema”. (Sommerville,
2005: 82)
En síntesis, el proceso de ingeniería de requerimientos se utiliza para definir todas las actividades involucradas en
el descubrimiento, documentación y mantenimiento de los requerimientos para un producto de software
determinado, donde es muy importante tomar en cuenta que el aporte de la IR vendrá a ayudar a determinar la
viabilidad de llevar a cabo el software (si es factible llevarlo a cabo o no), pasando posteriormente por un
subproceso de obtención y análisis de requerimientos, su especificación formal, para finalizar con el subproceso
de validación donde se verifica que los requerimientos realmente definen el sistema que quiere el cliente.
40
1.5. Los diferentes niveles de Requerimientos
❑ Nivel Organizacional
❑ Nivel Producto
❑ Nivel Proyecto
41
1.5.1. Nivel Organizacional
Son una consecuencia de las políticas y procedimientos
existentes en la organización: procesos estándar
utilizados, de fechas de entrega, documentación a
entregar.
Ejemplo:
42
1.5.2. Nivel Producto
Especifican el comportamiento del producto obtenido: velocidad
de ejecución, memoria requerida, porcentaje de fallos
aceptables.
Ejemplo:
43
1.5.2. Nivel Producto
En esta figura se puede apreciar mejor la relación entre los diferentes artefactos, tipos de
requerimientos y atributos de los mismos en un proyecto de software, desarrollado con Análisis y
diseño orientado a objetos. En este caso se utilizan tecnologías particulares como los casos de uso.
Requerimientos
del Negocio
Requerimientos Atributos de
de Usuarios Calidad
Requerimientos
No Funcionales
Documento de Casos de Uso
Restricciones
Requerimientos Requerimientos
del Sistema Funcionales SRS
(Especificación de
Requerimientos de
Software)
44
1.5.3. Nivel Proyecto
Incluyen los objetivos del negocio, la visión del producto y el alcance del
proyecto. Los requerimientos que se presentan en este nivel, son los más
importantes a cumplir. También debe tomarse en cuenta que cubren aspectos
muy generales acerca del funcionamiento real del producto requerido.
45
1.6. Administración de los Requerimientos
46
1.6. Administración de los Requerimientos
47
1.6. Administración de los Requerimientos
Etapas:
Durante esta etapa, para cada proyecto, es necesario establecer el nivel de detalle. Se tiene que
decidir sobre:
48
1.6. Administración de los Requerimientos
❑ Almacenar requerimientos.
❑ Administrar los cambios.
❑ Administrar el rastreo.
49
1.6. Administración de los Requerimientos
Administración de cambios.
50
1.6. Administración de los Requerimientos
En definitiva, podríamos destacar tres importantes actividades dentro del proceso de gestión de
cambios:
Evaluar el impacto
La primera tarea a realizar tras recibir una petición de cambio es valorar el impacto del mismo. Para
ello se deberá ir recorriendo todo el árbol de requerimientos viendo como les afecta el cambio, y aquí
es donde entra la trazabilidad de los requerimientos.
Una vez analizado el impacto del cambio, se debe tomar una decisión. Si se acepta el cambio, tras
negociarlo con el cliente, se continuará con la actividad de implementar el cambio. En caso contrario,
se deberá negociar con el cliente el siguiente paso a realizar.
Si se ha aceptado el cambio, hay que reflejar ese cambio en todos los productos que resulten afectados
por dicho cambio (si el cambio es mínimo algunos productos como el plan del proyecto, puede que no
sea necesario modificar). Además se deberá generar un nuevo punto de partida (línea base) de
requerimientos.
51
1.6. Administración de los Requerimientos
Trazabilidad
52
1.6. Administración de los Requerimientos
El uso de matrices de trazabilidad es una buena técnica para llevar a cabo esta actividad de forma eficiente. A
continuación se propone una posible matriz de trazabilidad:
En la matriz se irán registrando los requerimientos de negocio. Por cada requerimiento de negocio se identificarán
los requerimientos de usuario correspondientes. De cada requerimiento de usuario se identificarán cuáles son los
requerimientos de sistema asociados a cada uno de ellos…. Y así sucesivamente se irá rellenando toda la matriz de
requerimientos
53
1.6. Administración de los Requerimientos
En este caso los requerimientos (A) representan los requerimientos que originan las dependencias y los
requerimientos (B) serían los requerimientos que dependen de otros requerimientos, de los requerimientos (A).
Vamos a poner un ejemplo para verlo más claro.
Por ejemplo, se puede ver como los requerimientos 1,3 y 7 dependen del requerimiento 5, o que el requerimiento
3, además de depender del requerimiento 5 también depende del requerimiento 6. De esta forma se puede ver de
qué manera se relacionan los requerimientos, para analizar mejor el impacto de los cambios.
54
1.6. Administración de los Requerimientos
Una correcta administración se lleva a cabo mediante la especificación de Requerimientos de Software (ERS), lo cual
trae beneficios durante las siguientes fases del ciclo de vida de sistema. La ERS documenta el conjunto completo de
capacidades del sistema y provee de los siguientes beneficios:
❑ Asegura al cliente que el desarrollador entiende sus necesidades y que está respondiendo a ellas.
❑ Una oportunidad para una retroalimentación entre el cliente y el proveedor.
❑ Un método para que el cliente y proveedor o desarrollador puedan identificar tempranamente problemas y
malentendidos mientras los costos de corregirlos son relativamente bajos.
❑ Una base para la calificación y calidad del sistema para establecer que este cumple con las necesidades del
cliente.
❑ Protección para el proveedor, dando una línea base para las capacidades del sistema y una base que determine
cuando la construcción del sistema está completa.
❑ Soporte para el desarrollador en la planificación, diseño y desarrollo del programa.
❑ Ayuda en la evaluación de los efectos de los cambios en los requerimientos.
❑ Incrementa la protección en contra de malentendidos entre el cliente y el proveedor mientras se desarrolle el
software.
(Para mayor información consultar 1.5 Procesos para la administración de requerimientos, página 37)
Consultada 19 de febrero 2019 |
http://fcasua.contad.unam.mx/apuntes/interiores/docs/2012/informatica/2/1216.pdf
55
Referencias Bibliográficas
▪ Sommerville, I. (2016). Software Engineering. (10 ed.). Pearson Addison Wesley.
▪ Sánchez Alonso, S. y Sicilia Urban, M.A. y Rodríguez García, D. (2012). Ingeniería de software.
Un enfoque desde la guía SWEBOK. Alfaomega.
56