Documentos de Académico
Documentos de Profesional
Documentos de Cultura
26 de septiembre de 2019
Índice
1. Introducción 1
1.1. Contenido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Saberes previos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3. Objetivos de la lectura . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Análisis 2
2.1. Análisis de requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. ¿Para que analizar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3. Documento de análisis . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Stakeholders 4
3.1. Stakeholder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Ejemplo 1: Stakeholders en un “software a la medida” . . . . . . . . . 5
3.3. Ejemplo 2: Stakeholders en un “software de licenciamiento” . . . . . . 5
3.4. Ejemplo 3: Stakeholders en un “software propio” . . . . . . . . . . . . 6
4. Actividades 7
4.1. Tipos de actividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2. Toma de requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.3. Análisis de requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.4. Especificación de requerimientos . . . . . . . . . . . . . . . . . . . . . 9
5. Requerimientos 10
5.1. ¿Que son los requerimientos? . . . . . . . . . . . . . . . . . . . . . . . 10
5.2. Tipos de requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.2.1. Requerimientos del Usuario VS del Sistema . . . . . . . . . . . 12
1
5.2.2. Requerimientos Funcionales VS No Funcionales . . . . . . . . . 12
5.3. Tipos de Requerimientos No Funcionales . . . . . . . . . . . . . . . . 13
5.4. Propiedades de Software . . . . . . . . . . . . . . . . . . . . . . . . . 14
6. Resumen 15
1. Introducción
1.1. Contenido
En este capı́tulo damos un marco conceptual del análisis de requerimientos con
énfasis en adoptar un lenguaje formal que permita comprender todos los conceptos y
procesos que lo rodean. Al final presentamos un resumen de los conceptos presentados
y consideraciones importantes para esta etapa del desarrollo.
• Estructuras de datos.
2
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
• Comprenda la importancia del Análisis del problema como parte del Análisis de
requerimientos.
3
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
• Priorizar necesidades y tomar desiciones a lo largo del proyecto.
Aunque en muchas ocasiones se ha criticado esta etapa por ser muy demandante y
poco útil, los resultados de un buen análisis se ven reflejados en la ausencia de conflictos
durante el desarrollo y pruebas del sistema.
• Usuarios y responsabilidades
• Glosario de términos
• Requerimientos funcionales
• Requerimientos no funcioanels
• etc.
Este documento puede ser muy extenso o muy simple, dependiendo del proyecto y la
forma de trabajar.
Lo que no debemos olvidar es que no necesariamente debe ser un solo documento,
que no tiene un formato especı́fico y que en lugar de ser una carga para el proyecto debe
ser una ayuda.
4
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
Antes de seguir avanzando en el análisis de requerimientos, es importante darle su
importancia al término Stakeholder. Aunque se ha hecho un intento por no utilizar
términos ajenos a nuestro idioma en esta lectura, ésta palabra es muy usada en proyectos
y sobretodo en sistemas, se maneja en su forma original por no tener equivalente en
español.
3. ¿Que es el Stakeholder?
En el contexto de la administración ed proyectos el Stakeholder tiene una connotación
mas clara que en los libros de Ingenierı́a de software. Cuando se está hablando de análisis
de requerimientos el término se refiere a un grupo mas especı́fico como se explica a
continuación.
3.1. Stakeholder
Stakeholder
En el ámbito de proyectos, se refiere a cualquier persona involucrada o afectada direc-
tamente o indirectamente por el proyecto.
Stakeholder/Cliente
En el ámbito del análisis de software, se refiere a cualquier persona involucrada o afectada
directamente o indirectamente por las condiciones que cumpla o no el sistema a ser
desarrollado o mejorado. En este caso se deben contemplar al menos tres figuras:
Clientes: Principales interesados en que el sistema sea desarrollado.
A esto hay que aclarar que los Stakeholders pueden ser una sola persona o un gru-
po muy diverso. a continuación lo explicaremos presentando tres casos hipotéticos de
proyectos a desarrollar.
El usuario: Serán todos los empleados que usarán el sistema, pueden ser: Directivos,
cajeros, asistentes, supervisores, etc.
5
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
El cliente: Será el director responsable del proyecto o el directivo cuya cabeza depende
de que el proyecto tenga éxito. También es quien se verá afectado directamente
de su éxito y muy probablemente no sea usuario final del sistema. En este grupo
entrarı́a también la empresa pues habrán ganancias derivadas del desempeño del
sistema.
El patrocinador: Todos aquellos dentro de la empresa que pueden influir en los recursos
(principalmente tiempo y dinero) con los que cuenta el proyecto.
En este ejemplo, el usuario es importante por que el sistema debe resolver sus proble-
mas en la operación: registrar, consultar, comprar, facturar, etc. Por otro lado, el cliente
debe resolver los problemas propios del negocio o actividad que realiza en la empresa
de manera mas general: reducir gastos, evitar pérdidas, controlar el almacén, facilitar
el control o monitoreo, etc. Por último, el patrocinador debe contemplarse por que el
debe garantizar que la solución sea factible y viable: Que se cuenten con los recursos
(tiempo y costo) propicios para el proyecto y que la solución sea mejor que inversión a
corto o mediano plazo. Como podemos ver no es posible dejar fuera a ninguno de estos
tres personajes.
El usuario: Serán todos los posibles usuarios y que componen un segmento de mercado.
Pueden ser personas fı́sicas que adquieran el software para uso personal o que
grandes empresas las adquirirán para su uso dentro de su compañı́a.
El patrocinador: Todos aquellos dentro de la empresa que pueden influir en los recursos
(principalmente tiempo y dinero) con los que cuenta el proyecto.
En este ejemplo, la razón por la cual se deben tomar en cuenta a las tres figuras
principales parece diferente: El usuario es por la misma razón, necesito saber de que
forma resolver sus problemas en la realización de su trabajo, pero en este caso con
la caracterı́stica de que no lo tengo a la mano como en el caso anterior. Si se desea
acceder a el será necesario buscarlo, contactarlo y encuestarlo. El cliente de la misma
6
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
forma definirá el éxito del proyecto, pues decidirı́a si comprarlo o no, solo que el no
tendrá conocimiento del producto hasta que se encuentre plenamente desarrollado, si el
sistema no “parece” resolver sus problemas de negocio no se interesará en adquirirlo.
El patrocinador decidirá en función de lo que el vendedor y el cliente le cuenten del
producto y su juicio para suponer que se puede realizar el gasto de adquisición, que sea
propicio para la empresa y que no haya una mejor oferta. En este ejemplo agregamos a
un jugador “externo” que desde el punto de vista de la administración de proyectos es
un stakeholder muy importante, y es la competencia, pues ellos tienen productos, con
caracterı́sticas y precios que competirán con nuestro sistema.
Aunque no lo hayamos mencionado todo lo anterior aplica también cuando se trata
de una sola persona comprando un antivirus, paquete de oficina, de diseño gráfico, etc.
El usuario: Serán todos los posibles usuarios y podrı́an ser incluso miembros del equipo
de analistas o programadores.
El cliente: Puede ser el principal director de la empresa, puede ser otro director o puede
ser el mismo lı́der del proyecto. En muchos casos ni siquiera es claro.
En este caso la gestión del proyecto se complica mucho, pues los recursos, personal
tiempos y demás son compartidos, no hay una toma clara de desiciones y si bien todos
los jugadores están disponibles y muy juntos la organización es mucho mas difı́cil.
7
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
4.1. Tipos de actividades
Toma de requerimientos: Actividades relacionadas con la obtención de requerimientos
en todas sus fases.
Aunque cada uno de estos grupos de actividades es de suma importancia, esta lectura
y la mayorı́a de los libros de Ingenierı́a de Software se enfocan en las tres primeras.
Invitamos al lector a investigar al respecto. La Validación de requerimientos está siempre
mejor explicada cuando se habla de calidad de software, y es parte de la siguiente lectura.
Mientras que la Administración de requerimientos se considera mas bien un tema de
Administración de proyectos.
A continuación describimos a grandes rasgos la naturaleza de los tipos de actividades
del Análisis de Requerimientos.
• Elaboración de prototipos.
• Investigación documental.
• Estudios de mercado.
• Observación de la operación.
8
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
Dependiendo de la forma en que se toman requerimientos se pueden usar las diferen-
tes herramientas que se listan. Las entrevistas permiten obtener información de primera
mano, se recomienda mantener grupos pequeños o usar Team Kawakita Jiro. Un pro-
totipo ayuda a dirigir las ideas y discutir una solución propuesta sobre todo cuando las
ideas no son claras. Manuales, procedimientos, formatos, facturas, reportes, etc. son la
historia de la empresa y permite conocer muchos datos importantes para el sistema. La
observación de la operación permite validar argumentos y observar las cosas que no se
dicen en una entrevista.
• Análisis FODA.
• Análisis de información.
• Análisis de problemática.
• Pruebas de concepto.
9
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
Figura 1: El análisis es un trabajo arduo y concienzudo
• Casos de uso.
• CRC’s.
Este trabajo se refiere a integrar y organizar una descripción del sistema a desarrollar.
Este trabajo incluye una gran variedad de herramientas, de las cuales la mayorı́a están
basadas en diagramas. Especı́ficamente los CRC’s y Casos de uso, son herramientas
textuales. La precisión y economı́a de lenguaje es muy importante en esta etapa, ya que
el documento resultante es utilizado por casi todo el equipo de trabajo.
5. Tipos de requerimientos
Para finalizar, daremos una definición y clasificación para los requerimientos de un
sistema. Los requerimientos son simples declaraciones pero clasificarlos nos ayudan a
comprender: como escribirlos, dónde utilizarlos, su importancia, su origen y su impor-
tancia dentro de un proyecto.
Requerimiento
Expresan las necesidades a cubrir por un producto o proceso. Generalmente describen
las caracterı́sticas que el diseño debe cumplir.
10
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
La IEEE lo define como “una condición o capacidad requerida por un usuario para
resolver un problema o alcanzar un objetivo”.
Estas expresiones pueden ser de muchos tipos y represadas de muchas formas. Para
aclarar un poco pongamos unos ejemplos:
• Una pantalla de consultas que permita saber si el asegurado tiene al corriente los
pagos de su póliza y los servicios que cubre la misma.
• Migrar los 5TB de información de la base de datos actual a la nueva base de datos.
• Llevar el registro de las ventas del mes para llevar el control de inventarios.
11
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
• Actualizar la imagen corporativa de todas las pantallas del sistema. Para mejorar
la imagen corporativa.
• Agregar comunicación con el servidor a la app de reportes. Para que los reportes
generados tengan información de último minuto y los vendedores en sitio puedan
tomar mejores desiciones.
• Una pantalla de consultas que permita saber si el asegurado tiene al corriente los
pagos de su póliza y los servicios que cubre la misma. Para agilizar el la atención
de siniestros via telefónica.
• Migrar los 5TB de información de la base de datos actual a la nueva base de datos.
Para que el nuevos sistema pueda operar.
• El sistema debe tener una alta usabilida. Para que los usuarios usen la aplicación
de manera voluntaria.
Podemos sacar algunas conclusiones. Por un lado la motivación del usuario en oca-
siones es obvia y parece no ser importante redactarla. Por otro lado, algunas de ellas,
si no se especificaban podrı́a llegarse a una solución errónea o inadecuada (en el caso
del monitoreo de vehı́culos por ejemplo, agregar la motivación ayuda comprender la im-
portancia de que el sistema contemple la capacidad de los vehı́culos y que tan vacı́os
están). A continuación daremos nombre a estas dos partes del requerimeinto.
12
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
Sentencia que describe una caracterı́stica o capacidad del sistema.
Ası́, un Requerimiento de Usuario debe verse reflejado en los Requerimientos del
Sistema y cada Requerimiento del Sistema proviene de una necesidad o Requerimiento de
Usuario. Llevar el control de la relación existente entre Requerimientos del usuario y del
sistema hasta los artefactos de programación se llama Trazabilidad de requerimientos.
Cuales requerimientos se deben escribir y como deben organizarse en un documento
es una cuestión de estilo que depende: de las capacidades del equipo de desarrollo, las
caracterı́sticas del proyecto, la madurez del negocio, el tiempo que se pueda invertir en
ello y la metodologı́a de desarrollo. Sin embargo, la Trazabilidad de los requerimientos
es un asunto de vital importancia para la gestión de proyectos grandes y es un tema de
la siguiente lectura. Describir los requerimientos del usuario junto con los del sistema
puede ser un trabajo muy arduo, pero omitirlos puede llevar a graves equivocaciones la
final del proyecto, como siempre es la experiencia y madurez del equipo de trabajo los
que duran cual es la mejor opción.
La segunda clasificación de requerimientos que veremos tiene que ver con la natura-
leza de los requerimientos del sistema.
Requerimientos funcionales
Son los que describen una función del sistema. Generalmente se refieren a cálculos,
detalles técnicos, manipulación o procesamientos especı́ficos.
Requerimientos no funcionales
Describen formas especı́ficas en que los requerimientos funcionales deben realizarse.
Generalmente se convierten en criterios para evaluar la forma en que los requerimientos
funcionales deben operar.
Esta clasificación es importante para la etapa de análisis, ya que dependiendo del tipo
de requerimiento el proceso de análisis es distinto. Los requerimientos no funcionales
son tratados con especial cuidado en el análisis.
13
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
Del Negocio: Todos los requerimientos que provienen del comportamiento propio de la
organización, del negocio o de la operación del usuario.
Esta clasificación nos sirve pues podemos modelar un sistema aplicando diferentes
técnicas. Por ejemplo, para capturar, analizar o modelar todos los requerimientos del
negocio s pueden usar técnicas de arquitectura de negocios, Las de interacción con el
usuario técnicas de modelado de interfaces y dispositivos de entradas y salidas. Los de
plataforma mediante el diseño arquitectónico del sistema. El de información median-
te esquemas de modelado de información y las propiedades de software generalmente
se modelan mediante la definición y aplicación de técnicas avanzadas y métricas de
software.
Por último, no se debe olvidar que cada Requerimiento No Funcional puede afecta
a todos los demás, esta parte del análisis es la mas compleja y no se deben tomar a la
ligera.
• Accessibilidad
• Disponibilidad
• Certificación
• Despliegabilidad
14
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
• Eficiencia
• Efectividad
• Explotabilidad
• Robustez
• Tolerancia a fallos
• Estabilidad
• Extensibilidad
• Mantenibilidad
• Operabilidad
• Desempeño
• Precio
• Privacidad
• Portabilidad
• Calidad
• Recuperabilidad
• Confiabilidad
• Reusabilidad
• Seguridad
La forma de lidiar con cada una de ellas es muy particular y requiere de la aplicación
de distintas ramas de la computación. Ası́, mismo recordamos que cada una de estas
propiedades afectan directamente a la mayorı́a de los requerimientos funcionales por lo
que no pueden tratares por separado ni al final del desarrollo.
15
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
Figura 2: Clasificación de requerimientos.
6. Resumen de la lectura
El análisis de requerimientos es un trabajo difı́cil que puede involucrar muchas ac-
tividades dependiendo de la naturaleza de cada proyecto. Presentamos cinco de los
principales grupos de actividades en el análisis como se puede ver en la figura ??
Los requerimientos son sentencias sobre las caracterı́sticas del sistema y se subdivi-
den en requerimientos de usuario y del sistema, y estos ñultimos en Funcionales y no
funcionales como se puede ver en las figuras 25 y 26.
Los requerimientos no funcionales representan un conjunto mas grande que solo las
propiedades no funcionales de software.
Varios autores presentan diferentes clasificaciones para los requerimientos no fun-
cionales. Sommerville en particular presenta una clasificación orientada al origen de los
requerimientos, sin embargo todos los requerimientos mencionados en esa y otras clasi-
ficaciones pueden caber aquı́.
Referencias
[1] Ian Sommerville. “Ingenierı́a de software”. México. Pearson education.
16
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
Figura 3: Clasificación de requerimientos.
[2] Roger Pressman. “Ingenierı́a de software, Un enfoque práctico”. México. Pearson educa-
tion.
[3] Shari Lawrence Pfleeger. “Ingenierı́a de software”. México. Pearson education, 2a Ed.
[5] Frank Tsui. “Software Project Management”. México. Pearson education, 2a Ed.
[6] Grady Booch. “El Lenguaje Unificado de Modelado”. México. Pearson education.
17
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com
Figura 4: Relaciones entre los requerimientos.
18
Av. Juan de Dios Bátiz esq. Miguel Othón de Mendizabal S/N Col. Lindavista, GAM, D. F.T 57296000 Ext. 52032 B ulises.velez@gmail.com