Requisitos

Índice
- Introducción
- Objetivos
- 1.Introducción a los requisitos
- 2.Obtención de los requisitos
- 3.Gestión de requisitos
- 4.Documentación de los requisitos
- 5.Casos de uso
- 5.1.¿Qué es un caso de uso?
- 5.2.Actores y stakeholders
- 5.3.Anatomía de un caso de uso
- 5.3.1.Nombre
- 5.3.2.Actores
- 5.3.3.Objetivos y ámbito
- 5.3.4.Precondiciones y garantías mínimas
- 5.3.5.Escenarios
- 5.4.Clasificación de casos de uso
- 5.4.1.Nivel de los objetivos
- 5.4.2.Ámbito
- 5.5.Identificación y descripción de casos de uso
- 5.6.Casos especiales
- Resumen
- Actividades
- Ejercicios de autoevaluación
- Solucionario
- Glosario
- Bibliografía
Introducción
Objetivos
-
Saber identificar los requisitos candidatos de un sistema de información.
-
Saber seleccionar los requisitos del producto de software que hay que desarrollar.
-
Saber identificar similitudes y diferencias entre tres técnicas de documentación de requisitos: el estándar IEEE-830, las historias de usuario y los casos de uso.
-
Saber documentar la funcionalidad de un producto de software usando la técnica de los casos de uso.
1.Introducción a los requisitos
1.1.¿Qué son los requisitos?
1.2.Los stakeholders
1.3.Tipo de requisitos
1.3.1.Requisitos funcionales
1.3.2.Requisitos no funcionales
1.4.Los requisitos a lo largo del desarrollo
-
Obtención de los requisitos: identificar cuáles son los requisitos que los diferentes stakeholders quieren que cumpla el sistema
-
Gestión de los requisitos: como parte de la gestión del proyecto, hay que decidir qué requisitos son más prioritarios, identificar los contradictorios, decidir qué queremos implementar primero, etc.
-
Documentación de los requisitos: crear un documento o un modelo con los requisitos del sistema (con independencia de si este artefacto forma parte o no de la documentación final del sistema).
-
Verificación del sistema: comprobar si el sistema desarrollado cumple o no los requisitos.
2.Obtención de los requisitos
-
Identificar los stakeholders del sistema.
-
Identificar los requisitos de cada uno de los stakeholders.
2.1.Identificación de stakeholders
2.1.1.Brainstorming o lluvia de ideas
2.1.2.Modelización de roles de usuario
-
Papel de usuario: estudiante.
-
No es necesariamente experto en informática, a pesar de que tiene experiencia en el uso de Internet y está predispuesto a usar el campus virtual. Quiere poder plantear consultas a los profesores, comunicarse con los otros estudiantes que estén haciendo las mismas asignaturas y llevar a cabo la entrega de las actividades, todo esto de manera no presencial.

2.1.3.Representantes de los stakeholders
2.2.Identificación de requisitos
2.2.1.Entrevistas y cuestionarios
-
Elegir correctamente a los entrevistados. Debemos asegurarnos de la variedad y representatividad de la muestra; en nuestro caso, hay que haber identificado correctamente a los stakeholders y asegurarnos de que aquellos a quienes entrevistamos son una muestra significativa y representativa de ellos.
-
Evitar las respuestas condicionadas. Cualquiera de nosotros, ante la pregunta "¿Querrías que el sistema diera respuesta en menos de un segundo?", respondería que sí, dado que entendemos que si decimos que no, el sistema será muy lento. Esta respuesta, sin embargo, no significaría que realmente nuestro límite esté en un segundo (quizá estamos dispuestos a esperar dos o tres antes de desesperarnos), pero el modo como se ha formulado la pregunta ha condicionado nuestra respuesta.
-
Evitar respuestas limitadas por el conocimiento actual. A pesar de que es muy importante tener en cuenta el conocimiento actual, a veces puede ser contraproducente, dado que nos puede limitar la capacidad de innovar y encontrar soluciones mejores que las actuales.
-
Aportar información sobre el coste de las alternativas. Si alguien nos pregunta si queremos que un sistema haga X y no nos dice el coste de ello, lo más probable es que la respuesta sea un sí con mayúsculas (¡con independencia del valor de X!). En cambio, si nos dicen que el coste de desarrollar X supone que el proyecto se retrase un año, probablemente la respuesta sea diferente.
2.2.2.Observación y prototipado
2.2.3.Listas predefinidas
-
Rendimiento (volumen de usuarios, volumen de datos, etc.)
-
Requisitos lógicos de la base de datos (tipo de acceso, frecuencia de los accesos, entidades, relaciones y restricciones de integridad, etc.)
-
Restricciones de diseño (otros estándares, limitaciones de hardware, etc.)
-
Otros atributos:
-
fiabilidad
-
disponibilidad
-
seguridad (uso de criptografía, informes sobre las acciones de los usuarios, etc.)
-
mantenibilidad
-
portabilidad
-
Requisitos de presentación
Requisitos de usabilidad y humanidad
-
Eficiencia de uso: rapidez y precisión con la que el usuario usa el producto.
-
Facilidad de memorización: qué volumen de información debe memorizar un usuario no habitual del sistema.
-
Tasa de errores: cuántas veces se puede equivocar el usuario intentando llevar a cabo alguna tarea.
-
Satisfacción: cuál es el nivel de satisfacción general con el producto una vez se ha usado.
-
Retroalimentación: cuánta información necesita el usuario para confiar en que el producto está haciendo lo que se supone que debe hacer.
Requisitos de cumplimiento
Requisitos operacionales y de entorno
Requisitos de mantenimiento y apoyo
Requisitos de seguridad
Requisitos culturales y políticos
Requisitos legales
2.3.Dependencias entre requisitos
3.Gestión de requisitos
3.1.Valoración de requisitos
3.1.1.Unidades de valoración
3.1.2.Comparación y triangulación
3.1.3.Planning poker

3.2.Priorización de requisitos
3.2.1.Votación con número limitado de votos
3.3.Selección de requisitos
4.Documentación de los requisitos
4.1.Calidades de una buena especificación de requisitos
-
Correcta. Una especificación de requisitos es correcta si todos los requisitos que documenta lo son realmente; es decir, si todos los requisitos enumerados son necesidades que el software debe satisfacer. Probablemente, ésta es la propiedad más difícil de comprobar, dado que, en realidad, no sabremos si la especificación es correcta hasta que el software esté funcionando y los stakeholders vean realmente satisfechas sus necesidades.
-
No ambigua. La especificación de requisitos no es ambigua si cada requisito enumerado tiene una única interpretación posible. Para conseguir este objetivo hay que usar un lenguaje muy claro y aquellos términos que puedan llevar a múltiples interpretaciones deben ser definidos correctamente en un glosario. Otra aproximación es hacer especificaciones de requisitos mediante lenguajes formales. En todo caso, hay que tener muy presente que la especificación debe estar clara tanto para quien la escribe como para quien la lee y que, probablemente, estos dos grupos pueden tener un background diferente y entender de manera diferente un mismo lenguaje.
-
Completa. Para que sea completa, la especificación de requisitos debe enumerar todos los requisitos de todos los stakeholders, definir el comportamiento del sistema especificado para todo tipo de entradas de datos y situaciones y, finalmente, etiquetar y referenciar todas las tablas, figuras y diagramas del documento. Hay que tener en cuenta que la complementación es muy difícil de lograr, dado que el número de combinaciones de situaciones y datos de entrada que permitan que el sistema se comporte de una u otra manera puede ser infinito y, por lo tanto, es fácil que nos dejamos algún caso. Además, hay que distinguir entre los requisitos que hemos seleccionado para nuestro sistema (que sí necesitamos que estén todos) y los requisitos que habíamos identificado para nuestro sistema antes de realizar la selección (que a menudo no es necesario que queden documentados o, cuando menos, no con tanto detalle).
-
Consistente. Decimos que una especificación de requisitos es consistente si ningún subconjunto de los requisitos enumerados entra en conflicto; por lo tanto, una especificación no consistente no es realizable, dado que no podemos desarrollar ningún software que satisfaga requisitos contradictorios.
-
Requisitos etiquetados. Cada requisito de la especificación debería ser etiquetado con información relevante para la gestión de requisitos, como puede ser la importancia y el coste. Otro factor que puede ser importante es la estabilidad, dado que algunos requisitos serán más estables que otros, en el sentido de que se espera que sufran menos cambios a lo largo del tiempo.
-
Verificable. Una especificación es verificable si lo es cada uno de los requisitos que enumera y un requisito es verificable si existe algún proceso finito y de coste efectivo para determinar si un software satisface o no el requisito.
-
Modificable. Consideramos que una especificación de requisitos es modificable si la estructura y la redacción permiten hacer cambios de manera fácil y consistente. Para ello, el documento debe estar muy estructurado (con su tabla de contenidos, índice, referencias cruzadas, etc.) y no ser redundante. A pesar de que la redundancia no es, por sí misma, un error, puede llevar a errores cuando se modifica la especificación de requisitos, dado que un cambio en alguna parte del documento que no actualice también lo que es redundante con lo que se ha cambiado introduciría inconsistencias.
-
Trazable. Finalmente, una especificación es trazable si cada requisito enumerado está claramente identificado y facilita la referencia en los artefactos desarrollados a lo largo del proyecto, ya sean otros documentos (por ejemplo, de diseño), el software desarrollado, las pruebas de software, etc. La trazabilidad es especialmente importante cuando el proyecto está a medio desarrollar o ya totalmente desarrollado, dado que, si un requisito cambia, hecho que sucede a menudo, nos interesará saber qué documentos, software, pruebas y otros materiales habrá que cambiar como consecuencia de ello.
4.2.Buenas prácticas
1. Propósito del proyecto
2. Los clientes y otros stakeholders
3. Usuarios del producto
Restricciones del proyecto
4. Restricciones obligatorias
5. Convenciones de nombres y definiciones
6. Hechos y asunciones relevantes
Requisitos funcionales
7. Alcance del proyecto
8. Alcance del producto
9. Requisitos funcionales y de datos
Requisitos no funcionales
10. Requisitos de presentación
11. Requisitos de usabilidad y humanidad
12. Requisitos de rendimiento
13. Requisitos operacionales y de entorno
14. Requisitos de mantenimiento y soporte
15. Requisitos de seguridad
16. Requisitos culturales y políticos
17. Requisitos legales
Otras cuestiones
18. Temas abiertos
19. Soluciones prefabricadas
20. Problemas nuevos
21. Tareas
22. Migración al nuevo producto
23. Riesgos
24. Costes
25. Documentación de usuario y formación
26. Sala de espera
27. Ideas y soluciones
4.3.Historias de usuario
-
Una descripción escrita de la historia (sirve como recordatorio de que existe la historia y es útil para planificar, etc.).
-
Una serie de conversaciones que sirven para definir y aclarar los detalles de la historia.
-
Un conjunto de pruebas que documentan los detalles y que permiten determinar cuándo está completamente implementada la historia.
-
Verificar que si se adjunta un archivo en formato PDF, DOC, DOCX u ODT, éste se guarda y se asocia al usuario.
-
Verificar que si el profesor limita los formatos, sólo se aceptan entregas en los formatos indicados por el profesor.
-
Verificar que si se adjunta un archivo en un formato incorrecto, se avisa al usuario.
-
Verificar que si se intenta hacer la entrega fuera de las fechas de la actividad, se muestra un error al usuario.
-
Verificar que si el usuario sale sin adjuntar el archivo, el sistema le avisa y le pide confirmación.
-
Verificar que sólo se puede hacer la entrega en aquellas asignaturas en las que está matriculado el usuario.

5.Casos de uso
5.1.¿Qué es un caso de uso?
Un caso de uso "[...] es una descripción de un conjunto de secuencias de acciones, incluyendo variantes, que ejecuta un sistema para producir un resultado observable y de valor para un actor".
VV. AA. (2010). Unified Modeling Language™ (UML®). Object Management Group
"Un caso de uso captura un contrato entre los stakeholders de un sistema en cuanto a su comportamiento [...]. El sistema responde [...] protegiendo los intereses de los stakeholders".
Alistair Cockburn (2001). Writing Effective Use Cases. Addison-Wesley

5.2.Actores y stakeholders
Más formalmente, "un actor representa un conjunto coherente de roles que los usuarios del caso de uso tienen al interactuar con éste".
VV. AA. (2010). Unified Modeling Language™ (UML®). Object Management Group
5.2.1.Actores principales y de apoyo
5.3.Anatomía de un caso de uso
5.3.1.Nombre
5.3.2.Actores
5.3.3.Objetivos y ámbito
5.3.4.Precondiciones y garantías mínimas
5.3.5.Escenarios
-
Interacciones entre el usuario y el sistema: qué hace el usuario en este punto de la interacción ("El usuario indica el tema y el contenido del mensaje") o qué respuesta da el sistema ("El sistema muestra las prácticas para entregar este mes").
-
Validaciones por parte del sistema: "El sistema valida que el usuario tenga acceso al foro".
-
Cambios en el estado interno del sistema: "El sistema graba que el usuario ha leído el mensaje".
5.4.Clasificación de casos de uso
5.4.1.Nivel de los objetivos
-
Usuario (user goals): son los más importantes, dado que son los objetivos concretos que los actores principales quieren conseguir al usar el sistema (por ejemplo, "Escribir un mensaje al foro" o "Entregar una práctica").
-
General (summary goals): son el nivel más general y nos sirven para dar contexto y agrupar los objetivos de usuario (por ejemplo, "Resolver una duda en el foro" o "Cursar una asignatura").
-
Tarea (subfunctions): son el nivel más concreto y sólo ofrecen una parte del valor que el actor espera (por ejemplo, "Adjuntar un archivo a un mensaje" o "Poner una calificación de una entrega a un alumno").

-
Escribir un mensaje al foro.
-
Leer un mensaje o respuesta del foro.
-
Escribir una respuesta a un mensaje del foro.
5.4.2.Ámbito
-
Ámbito de organización: estamos modelizando como caso de uso el comportamiento de la organización como un todo o de una de sus unidades, por ejemplo un departamento. Todos los sistemas (informáticos o no) y las personas de dentro de la organización que define el ámbito forman parte del sistema que documentamos y, por lo tanto, no aparecen como actores. En cambio, otras personas, organizaciones o sistemas con quienes interactúa la organización analizada serán actores.
-
Ámbito de sistema: estamos modelizando un sistema informático (normalmente el que queremos desarrollar). Todos los componentes (de software o hardware) del sistema son internos y, por lo tanto, no aparecen como actores.
-
Ámbito de subsistema: estamos modelizando una parte del sistema informático, como un componente. Los otros componentes y todos los usuarios directos del componente serán actores en nuestro modelo. Este ámbito sólo es relevante cuando queremos dejar explícitamente fuera de estudio una parte del sistema.

5.5.Identificación y descripción de casos de uso
5.5.1.Identificación de actores y objetivos
5.5.2.Escenarios alternativos y extensiones
5.5.3.Relaciones entre casos de uso: inclusión
Inclusión por reutilización
Inclusión por descomposición
Separación de una extensión en un caso de uso incluido

5.5.4.Relaciones entre casos de uso: extensión


5.6.Casos especiales
5.6.1.Autenticación de usuarios
5.6.2.Alta de usuario
5.6.3.Mantenimientos (CRUD)

5.6.4.Casos de uso parametrizados

-
De qué hacemos el mantenimiento (en este caso, de asignaturas).
-
Cuáles son los datos de los que hay que informar al crear una nueva instancia (en este caso, nombre y número de créditos).
-
Qué datos son modificables (en este caso, nombre y número de créditos).
-
Qué datos se muestran en la lista (en este caso, de nuevo, nombre y número de créditos).
-
Qué datos se pueden usar para filtrar la busca (en este caso, sólo el nombre de la asignatura).
-
Qué datos se pueden usar para reordenar la busca (en este caso, nombre y número de créditos).
-
Qué verificaciones hay que hacer al borrar una entidad (en este caso, que la asignatura no se imparta en el semestre actual).


5.6.5.Modelización basada en casos de uso de procesos de negocio
Resumen
Actividades
-
El sistema debe funcionar sobre plataforma Linux y Windows.
-
Usaremos un índice con los campos nombre y descripción del producto Apache Lucene para que los usuarios puedan buscar los productos con cualquier palabra clave.
-
La web debe funcionar sobre los navegadores más usados.
-
Usaremos el bastimento .Net Entity Framework para acceder a la base de datos.
-
Los usuarios podrán rellenar la solicitud fácilmente.
-
La persona que quiere comprar la entrada.
-
La persona que atiende la centralita telefónica de atención al usuario.
-
Los propietarios de los teatros.
-
Los actores de las obras.
-
El acomodador del teatro.
-
Las personas que van al teatro pero que no han comprado directamente la entrada.
-
El personal de la taquilla del teatro.
-
Los administradores de sistemas de la empresa en los que están hospedados los servidores.
-
Los desarrolladores de la aplicación.
-
El comercial que debe convencer a los teatros de que entren en la Red y pongan sus entradas a la venta por medio de la aplicación.
-
El software que usan los teatros para gestionar las ventas de entradas en la taquilla.
-
Los desarrolladores del software que usan los teatros para gestionar las ventas de entradas en la taquilla.
-
El jefe de proyecto.
-
¿Creéis que se deberían poder adjuntar fotografías a los anuncios?
-
¿Creéis que se deberían añadir más campos?
-
¿Os parece bien que los anuncios caduquen automáticamente al cabo de un mes?
-
¿Un usuario debería poder modificar un anuncio una vez publicado?
-
El requisito A tardaremos un día en implementarlo.
-
El requisito B es casi el doble de complicado que A.
-
El requisito C es el doble de complicado que B.
-
El requisito D es el triple de complicado que B.
-
El requisito E es el triple de complicado que C.
-
El requisito F es más complicado que C pero menos que D.
-
El requisito G está entre B y C.
-
El requisito H está entre el doble de C y el doble de F.

Ejercicios de autoevaluación
-
Consideraciones sobre la imagen corporativa de la organización.
-
Satisfacción de los usuarios.
-
Accesibilidad por parte de personas discapacitadas.
-
Tiempo medio entre caídas del sistema.
-
Requisitos sobre cómo se deben programar las entregas de los diferentes artefactos y versiones del sistema.
-
Sistemas operativos que necesita soportar el sistema.
-
Unidades que se usarán para mostrar longitudes, pesos, etc.
-
Lenguajes en los que se puede mostrar la interfaz del sistema.
Solucionario

-
"El sistema debe funcionar sobre plataforma Linux y Windows" es difícil de verificar, dado que no indica qué versiones concretas de Linux y Windows se deben soportar. Una versión correcta sería: "El sistema debe funcionar sobre plataforma Linux (núcleo 2.6 y entorno gráfico Gnome 2.32) y Windows 7".
-
"Usaremos un índice con los campos nombre y descripción del producto Apache Lucene para que los usuarios puedan buscar los productos con cualquier palabra clave" no tiene una visión global del sistema (Lucene es un detalle de implementación que no interesa a los usuarios). La versión correcta sería "Los usuarios podrán hacer búsquedas de productos por palabras clave".
-
"La web debe funcionar sobre los navegadores más usados" es difícil de verificar. Una versión correcta sería "La web se visualizará correctamente con los navegadores Internet Explorer, Firefox, Chrome y Safari en su versión más reciente en el momento de poner el proyecto en producción y la versión inmediatamente anterior". A pesar de que no indica versiones completas, es fácil de verificar en el momento de poner el proyecto en producción.
-
"Usaremos el bastimento .Net Entity Framework para acceder a la base de datos" no es un requisito desde el punto de vista del usuario (si no es que hay algún stakeholder que nos lo ha pedido). En este caso, no tiene sentido reescribirlo.
-
"Los usuarios podrán rellenar la solicitud fácilmente". También es difícil de verificar. Una versión verificable: "Un usuario sin entrenamiento debe poder rellenar correctamente la solicitud sin ayuda exterior en menos de cinco minutos".
-
La persona que quiere comprar la entrada es un stakeholder, dado que es un usuario (y, por lo tanto, un actor) del sistema.
-
La persona que atiende la centralita telefónica de atención al usuario es un stakeholder potencial, puesto que, para resolver las incidencias de los usuarios, es probable que necesite acceder al sistema como usuaria.
-
Los propietarios de los teatros son stakeholders, dado que, en última instancia, serán ellos quienes pondrán el dinero para financiar el desarrollo.
-
Los actores de las obras no son stakeholders, ya que no les afecta el sistema.
-
El acomodador del teatro es un stakeholder, dado que tiene, como mínimo, una necesidad que cubrir: que el sistema le diga cuál es el asiento que debe ocupar cada persona (aunque sea imprimiendo una entrada con el número de asiento).
-
Las personas que van al teatro pero que no han comprado directamente la entrada no son stakeholders, puesto que no tienen ningún interés ni interacción con el sistema.
-
El personal de la taquilla del teatro es stakeholder, dado que el sistema afecta a su manera de trabajar y, en todo caso, su trabajo es complementario al del nuevo sistema. Podría ser que fueran actores si usan el nuevo sistema para vender las entradas que se compran en la taquilla.
-
Los administradores de sistemas de la empresa en los están hospedados los servidores son stakeholders, ya que deben poder administrar el nuevo sistema.
-
Los desarrolladores de la aplicación no son stakeholders.
-
El comercial que debe convencer a los teatros de que entren en la Red y pongan sus entradas a la venta por medio de la aplicación es un stakeholder, ya que necesita que el sistema sea fácil de vender.
-
El software que usan los teatros para gestionar las ventas de entradas a la taquilla no es un stakeholder, a pesar de que podría ser un actor.
-
Los desarrolladores del software que usan los teatros para gestionar las ventas de entradas en la taquilla son stakeholders, dado que necesitan que el nuevo sistema se pueda integrar con el software que han desarrollado.
-
El jefe de proyecto no es un stakeholder.
-
El funcionario que gestiona las solicitudes.
-
El funcionario que gestiona el presupuesto.
-
La persona de la empresa que pide la ayuda.
-
Los diferentes gobiernos (local, autonómico, etc.).
-
Las empresas que imparten la formación.
-
En "¿Creéis que se deberían poder adjuntar fotografías a los anuncios?" no se indica el coste de añadir esta funcionalidad al sistema, por lo que es difícil que nos digan que no. Una manera más correcta sería: "¿Creéis que se deberían poder adjuntar fotografías?". Tened en cuenta que añadir esta funcionalidad implicará que no se pueda poner fecha de caducidad a los anuncios.
-
"¿Creéis que se deberían que añadir más campos?" es una pregunta demasiado abierta. Sería mejor "¿Qué campo añadiríais?" o, mejor todavía, sugerir qué campos se pueden añadir.
-
"¿Os parece bien que los anuncios caduquen automáticamente al cabo de un mes?" es una pregunta correcta para un cuestionario.
-
"¿Un usuario debería poder modificar un anuncio una vez publicado?" tiene el mismo problema que la primera pregunta: dado que no da ninguna indicación del coste, la respuesta natural a la respuesta es sí. Una posible solución: "¿Un usuario debería poder modificar un anuncio una vez publicado?". En caso afirmativo, "¿Qué funcionalidad deberíamos sacrificar para incorporar ésta?".
-
Rendimiento
-
El sistema debe soportar 2.000 usuarios conectados al mismo tiempo.
-
El sistema debe guardar los datos relativos a dos millones de solicitudes.
-
-
Requisitos lógicos de la base de datos
-
El sistema debe guardar, para un pedido, qué productos se compraron, qué cantidad de cada producto y cuál era el precio.
-
La suma de los importes de los pagos de un pedido debe ser igual a la suma del valor de los productos comprados.
-
-
Restricciones de diseño
-
El sistema debe funcionar sobre un teléfono móvil con 256 MB de RAM, procesador ARM v8 y sistema operativo Android.
-
El diseño del sistema debe seguir la compilación de buenas prácticas y patrones de la organización.
-
-
Fiabilidad
-
En el caso de problemas con el servidor de bases de datos, en ningún caso puede quedar el sistema en un estado inconsistente.
-
El sistema debe guardar automáticamente el trabajo realizado para recuperarlo automáticamente en el caso de caída no prevista.
-
-
Disponibilidad
-
El sistema debe poder operar de manera que, si cae un servidor, otro se encargue de continuar dando servicio a los usuarios.
-
El sistema debe poder estar disponible el 90% del tiempo.
-
-
Seguridad
-
El sistema debe registrar los accesos a información sobre clientes realizados por los usuarios.
-
El sistema debe impedir que los usuarios de una oficina accedan a los datos personales de los clientes de otra oficina.
-
-
Mantenibilidad
-
El sistema debe tener en cuenta que, en el futuro, se incorporarán nuevos proveedores para el servicio de mensajería y se querrá poder cambiar entre éstos fácilmente.
-
El sistema debe registrar, en el caso de error inesperado, información sobre la transacción en curso y también el punto exacto en el que se ha producido el error para facilitar el diagnóstico.
-
-
Portabilidad
-
El sistema debe poder funcionar sobre un sistema gestor de bases de datos diferente del actual.
-
El sistema debe poder funcionar sobre los sistemas operativos Linux 2.6, Windows 7 y MacOS X 10.6.
-
Actor
|
Nivel
|
Objetivo
|
---|---|---|
Visitante, miembro
|
Global
|
Resolver una duda propia
|
Visitante, miembro
|
Usuario
|
Encontrar una respuesta
|
Visitante
|
Usuario/tarea
|
Registrarse como miembro
|
Visitante, miembro
|
Tarea
|
Leer una pregunta con sus respuestas
|
Miembro
|
Usuario
|
Crear una pregunta
|
Miembro
|
Tarea
|
Redactar la pregunta
|
Miembro
|
Tarea
|
Ver la lista de sus preguntas
|
Miembro
|
Global
|
Resolver una duda a algún otro
|
Miembro
|
Usuario
|
Encontrar una pregunta para intervenir en ella
|
Miembro
|
Tarea
|
Ver la lista de preguntas con pocas o ninguna respuesta
|
Miembro
|
Tarea
|
Redactar una respuesta
|
Moderador
|
Global
|
Moderar la comunidad
|
Moderador
|
Usuario
|
Encontrar intervenciones poco adecuadas
|
Moderador
|
Tarea
|
Ver la lista de intervenciones sospechosas
|
-
Consideraciones sobre la imagen corporativa de la organización (de presentación).
-
Satisfacción de los usuarios (usabilidad y humanidad).
-
Accesibilidad por parte de personas discapacitadas (usabilidad y humanidad).
-
Tiempo medio entre caídas del sistema (consecución).
-
Requisitos sobre cómo se deben programar las entregas de los diferentes artefactos y versiones del sistema (operacionales y de entorno).
-
Sistemas operativos que debe soportar el sistema (mantenimiento y soporte).
-
Unidades que se usarán para mostrar longitudes, pesos, etc. (culturales y políticos).
-
Lenguajes en los que se puede mostrar la interfaz del sistema (culturales y políticos).
Glosario
- actor m
- Alguien que tiene comportamiento en un caso de uso. Puede ser una persona, pero también una organización o un sistema (de software o de otro tipo) externo al sistema que analizamos.
- actor de apoyo m
- Actor externo al sistema que proporciona un servicio en el sistema.
- actor iniciador m
- Actor que inicia la interacción con el sistema. Puede ser el actor principal, pero también puede ser un intermediario entre éste y el sistema. También puede ser que el caso de uso se inicie de manera automática o en reacción a un acontecimiento externo, caso en el que el actor iniciador sería el reloj o este acontecimiento, respectivamente.
- actor principal m
- Stakeholder que efectúa una petición al sistema para recibir uno de los servicios y así satisfacer un objetivo.
- ámbito (de un caso de uso) m
- Definición de qué es lo que consideramos un sistema analizado: qué queda dentro y qué queda fuera de éste. Existen tres grandes tipos de ámbitos: organización, sistema y subsistema.
- ámbito de organización m
- Ámbito en el que el sistema analizado es una organización o negocio. Todos los sistemas (informáticos o no) y las personas de dentro de la organización analizada forman parte del sistema que documentamos y, por lo tanto, no aparecen como actores.
- ámbito de sistema m
- Ámbito en el que el sistema analizado es un sistema informático (normalmente el que queremos desarrollar). Todos los componentes del sistema son internos y, por lo tanto, no aparecen como actores.
- ámbito de subsistema m
- Ámbito en el que el sistema analizado en el caso de uso es una parte de un sistema informático, quizá un subsistema o un bastimento. Los otros componentes del sistema informático y todos los usuarios directos del componente serán actores en el modelo.
- artefacto m
- En el contexto de la ingeniería del software, cada uno de los documentos, modelos, programas, etc., que se generan como resultado del trabajo del ingeniero.
- autenticación f
- Acto de establecer o confirmar la autenticidad de alguien (normalmente el usuario del sistema informático); es decir, confirmar que el usuario es, efectivamente, quien dice ser. Una manera típica de autenticación es pedir al usuario una contraseña que sólo la persona que dice ser conoce.
- backlog m
- Lista de historias de usuario, ya sea de todas las historias de un proyecto en desarrollo (product backlog) o de las que se incluyen en una iteración.
- brainstorming m
- Lluvia de ideas. Técnica de trabajo en grupo diseñada para generar un gran número de ideas para solucionar un problema. En el contexto de la ingeniería del software se puede usar, por ejemplo, para identificación de stakeholders y para identificar requisitos, entre otros usos.
- caso de uso m
- Documento que recoge el contrato entre el sistema y sus stakeholders. Describe el comportamiento del sistema y las interacciones en varios escenarios y muestra cómo el sistema responde a las peticiones y los objetivos de los stakeholders.
- caso de uso de extensión m
- Caso de uso que describe una extensión de otro caso de uso (que denominamos de base).
Ved extensión - caso de uso de base m
- Caso de uso del que hay una extensión descrita en otro caso de uso (que denominamos
de extensión).
Ved extensión - checklist f
- Término inglés para lista predefinida.
- create, read, update and delete
- Funcionalidades básicas del almacenamiento persistente que, a menudo, se ofrecen a
los usuarios de los sistemas informáticos para el mantenimiento de ciertos datos.
Se pueden documentar como casos de uso individuales o agrupar en un caso de uso que
agrupe varias de estas operaciones cuando se realizan sobre unos mismos datos.
Sigla CRUD - disponibilidad f
- Capacidad de un sistema informático de estar disponible para sus usuarios. Si un usuario no puede acceder al sistema por el motivo que sea, decimos que el sistema "no está disponible". Normalmente, la no disponibilidad se mide en porcentaje de tiempo (90%, 99%, etc.).
- escenario m
- Secuencia de acciones e interacciones que se producen en un caso de uso bajo ciertas condiciones, expresadas sin (o con pocas) ramificaciones condicionales.
- escenario principal m
- Escenario descrito completamente por un caso de uso desde el inicio del caso de uso hasta su compleción y que lleva al actor principal a cumplir su objetivo. A pesar de que es un escenario de éxito, no debe ser necesariamente el único del caso de uso.
- extends
- Nombre oficial de la relación de extensión entre casos de uso en UML.
Ved extensión (2) - extensión (de un caso de uso) f
- 1. Un fragmento de escenario que empieza bajo cierta condición desde otro escenario. 2. Relación entre dos casos de uso en la que un caso de uso que denominamos de extensión describe una extensión de otro caso de uso que denominamos de base, de tal manera que el caso de uso de base no tiene ninguna referencia al caso de uso de extensión, sino que el caso de uso de extensión indica dónde del caso de uso de base se produce la extensión.
- fiabilidad f
- Capacidad de un sistema informático de proporcionar información correcta de manera segura (es decir, tolerando posibles errores por parte de los usuarios o del hardware).
- garantía mínima (de un caso de uso) f
- Aquello que podemos asegurar que sucederá al finalizar el caso de uso, sea cual sea el escenario en el que se produzca.
- historia de usuario f
- Técnica de documentación de requisitos que pone énfasis en la comunicación verbal y minimiza la documentación escrita. Una historia de usuario está formada por tres componentes: el nombre, la conversación entre los desarrolladores y los clientes y la lista de pruebas que hay que hacer para verificar que se ha implementado correctamente.
- include
- Nombre oficial de la relación de inclusión entre casos de uso en el lenguaje UML.
Ved inclusión - inclusión (entre casos de uso) f
- Relación entre dos casos de uso en la que en un paso de un escenario de un caso de uso se llama a otro caso de uso (que denominamos subcaso de uso).
- mantenibilidad f
- Capacidad de un sistema informático de ser fácil de mantener. Es decir, que sea tan fácil corregir los errores que se encuentren (mantenimiento correctivo) como añadir nuevas funcionalidades (mantenimiento evolutivo).
- pila de producto f
- Ved backlog
- portabilidad f
- Capacidad de un sistema informático de funcionar sobre más de una plataforma tecnológica o de funcionar sobre una plataforma diferente a aquella para la que fue desarrollado.
- precondición f
- Condición que se ha de cumplir previamente. En el caso de los casos de uso, condiciones que se deben dar antes de poderse ejecutar el caso de uso.
- product backlog
- Ved backlog
- prototipo m
- Producto que se crea para demostrar la funcionalidad del producto final. El prototipo sólo sirve para obtener información sobre cómo debe ser el producto final, pero no forma parte de él (es decir, una vez obtenida la información que se quería obtener el prototipo se descarta), por lo que ni siquiera es necesario usar la misma tecnología que se empleará para producir el producto final.
- rendimiento m
- Medida de la relación entre el volumen de trabajo realizado y el consumo de recursos empleado.
- representante (de un stakeholder) m
- Persona que actúa como intermediario entre el stakeholder y el equipo de desarrollo.
- requerimiento m
- Acción o efecto de requerir. A menudo se emplea como sinónimo de requisito.
- requisito m
- Condición exigida o necesaria para una cosa. En el campo de la ingeniería del software, necesidad o restricción que afecta a un producto de software y define qué soluciones son adecuadas (lo cumplen) y cuáles no (no lo cumplen) desde el punto de vista de esta necesidad o restricción. Una solución será adecuada si satisface todos los requisitos del sistema.
- requisito candidato m
- Necesidades o restricciones obtenidas en una primera etapa de obtención de requisitos que se convertirán en requisitos sólo si son seleccionadas como tales a la hora de definir el alcance del proyecto que se ha de desarrollar.
- requisito funcional m
- Requisito que describe la funcionalidad esperada del sistema; es decir, que describe
el comportamiento del sistema ante los estímulos que le llegan del exterior.
Ved también requisito no funcional - requisito no funcional m
- Requisito que restringe el conjunto de soluciones posible, normalmente a modo de restricción, sin hablar de la funcionalidad.
- seguridad f
- Capacidad de un sistema informático de proteger la información ante robos, usos fraudulentos, corrupción de los datos, etc.
- stakeholder m
- Persona o entidad con un interés sobre el producto que estamos desarrollando.
- subcaso de uso m
- Caso de uso que es incluido en otro caso de uso.
Ved inclusión - triangulación f
- Técnica de valoración que consiste en obtener la estimación de un requisito a partir de dos requisitos previamente estimados (uno más complejo y otro más sencillo).
- usabilidad f
- Capacidad de un sistema informático de ser fácil de utilizar.
- usuario m
- Persona que utiliza un sistema informático.