Project

General

Profile

Guía funcional de cosmoSys-Req » History » Version 8

Redmine Admin, 09/21/2026 05:22 PM
Synchronized from docs/web/projects

1 5 Redmine Admin
{{>toc}}
2 1 Redmine Admin
# Guía funcional de cosmoSys-Req
3
4
Esta guía explica el modelo funcional que cosmoSys-Req añade a [[csys:cosmoSys]]. Presupone únicamente una idea básica: cosmoSys organiza ítems en árboles de proyectos y les proporciona identidades, relaciones, diagramas, documentos, informes, transferencias y copias.
5
6
No es un procedimiento paso a paso ni una metodología obligatoria de ingeniería de requisitos. Describe qué significa cada campo, estado, relación y validación para que una organización pueda integrarlos correctamente en su proceso.
7
8
## 1. Qué es un requisito en cosmoSys-Req
9
10
Un requisito es un ítem cuyo perfil activa capacidades específicas del dominio. Sigue siendo parte del mismo modelo colaborativo que las tareas, documentos y demás elementos del proyecto, pero dispone de atributos, presentación y validaciones propios.
11
12
El requisito conserva:
13
14
- un CSID estable;
15
- un texto principal;
16
- su posición dentro de la especificación;
17
- relaciones con otros ítems;
18
- fuente de derivación;
19
- tipo y nivel;
20
- información de verificación;
21
- cumplimiento e implementación cuando correspondan;
22
- estado y madurez;
23
- evidencia del significado aprobado.
24
25
La jerarquía indica dónde aparece en el libro. Las relaciones indican de qué depende. La derivación señala de qué requisito procede. Ninguna de estas dimensiones debe utilizarse como sustituta automática de las otras.
26
27 6 Redmine Admin
{{thumbnail(cosmosys-req-overview.png, size=600, title=Modelo funcional de cosmoSys-Req)}}
28
29 1 Redmine Admin
## 2. Identidad y presentación
30
31
Cada requisito recibe un CSID, como `SYS-0042`, mediante los mecanismos comunes de cosmoSys. El identificador no cambia al reorganizar capítulos ni al mover el requisito dentro del mismo árbol de proyectos.
32
33
El capítulo es una representación calculada a partir de la jerarquía. Puede cambiar durante la edición de la especificación.
34
35
En textos y relaciones debe preferirse la identidad estable cuando lo que se quiere conservar es el destino. El capítulo resulta apropiado para presentar la estructura de una edición concreta del documento.
36
37
Un requisito aprobado sigue siendo contenido vigente. Aunque su estado esté cerrado para Redmine, no se presenta como una tarea tachada: el cierre satisfactorio significa consolidación, no desaparición.
38
39 6 Redmine Admin
{{thumbnail(cosmosys-identity-and-chapter.png, size=600, title=Identidad estable y capítulo calculado)}}
40
41 1 Redmine Admin
## 3. Campos propios del requisito
42
43
### Tipo
44
45
El tipo describe la naturaleza del requisito según la taxonomía configurada por el proyecto. Permite distinguir, por ejemplo, requisitos funcionales, de rendimiento, de interfaz o de restricción sin deducirlo del texto.
46
47
### Nivel
48
49
El nivel sitúa el requisito dentro de la descomposición del sistema: misión, sistema, subsistema, componente u otros niveles definidos por el dominio.
50
51
Tipo y nivel son dimensiones diferentes. Un requisito de rendimiento puede existir en varios niveles; un nivel puede contener requisitos de muchos tipos.
52
53
### Justificación
54
55
La justificación explica por qué existe el requisito, qué decisión sostiene o qué razonamiento condujo a formularlo. No sustituye el texto normativo del requisito.
56
57
En consultas e informes puede presentarse debajo de la descripción, como parte del cuerpo, en lugar de convertirse en una columna estrecha difícil de leer.
58
59
### Fuente de derivación
60
61
La fuente identifica el requisito del que procede el actual. Es trazabilidad explícita de origen.
62
63
La acción **Derive** puede crear el nuevo requisito, registrar esta fuente y establecer las relaciones causales correspondientes. La herramienta ayuda a construir una operación coherente, pero el usuario sigue siendo responsable de que la derivación sea técnicamente correcta.
64
65
### Verificación
66
67
Los requisitos pueden conservar métodos y descripción de verificación. Los métodos indican cómo se prevé demostrar el cumplimiento —por ejemplo análisis, inspección, ensayo o demostración— y la descripción explica el caso concreto.
68
69
Definir un método no significa que la verificación ya se haya ejecutado. Planificación, ejecución, resultado y validación deben interpretarse de acuerdo con el proceso de la organización.
70
71
### Cumplimiento e implementación
72
73
Los perfiles que lo necesiten pueden añadir seguimiento de cumplimiento, inclusión o validación en una entrega. Estos campos permiten observar la evolución del producto sin confundirla con la madurez del texto del requisito.
74
75
Un requisito puede estar perfectamente aprobado y todavía no haberse implementado. También puede existir una implementación cuya validación siga pendiente.
76
77
## 4. Variantes suministradas
78
79
cosmoSys-Req incluye inicialmente cuatro trackers que consumen el perfil de requisito con capacidades distintas:
80
81
- `csRq`: requisito canónico, centrado en redacción y revisión;
82
- `csRqm`: añade gestión de trabajo, como asignación, fechas, esfuerzo y progreso;
83
- `csRqr`: añade seguimiento de inclusión y validación en una entrega;
84
- `csRqmr`: combina las capacidades de gestión y entrega.
85
86
La versión objetivo está disponible en todos los requisitos. Las diferencias no se implementan ocultando con CSS campos que siguen activos: cada tracker declara qué campos nativos utiliza, de forma que la edición rápida, la API y las operaciones masivas respeten el mismo contrato.
87
88
Los nombres de trackers son una configuración inicial. La lógica del plugin se apoya en el item profile `requirement`, no en la existencia permanente de esos cuatro nombres.
89
90 7 Redmine Admin
{{thumbnail(cosmosys-req-variants.png, size=600, title=Variantes suministradas del perfil de requisito)}}
91
92 1 Redmine Admin
## 5. Workflow básico
93
94
El ciclo principal distingue tres estados de madurez:
95
96
- `Draft`: el requisito está en elaboración;
97
- `Stable`: el texto está preparado para revisión o uso controlado;
98
- `Approved`: el requisito ha sido aceptado por el proceso correspondiente.
99
100
Los workflows de Redmine determinan quién puede realizar cada transición. La organización puede reservar la aprobación a los roles revisores y permitir que otros participantes redacten o propongan cambios.
101
102
cosmoSys-Req no aprueba automáticamente un requisito porque su texto parezca completo. La transición sigue siendo una decisión humana autorizada.
103
104 6 Redmine Admin
{{thumbnail(cosmosys-req-lifecycle.png, size=600, title=Ciclo de vida del requisito)}}
105
106 1 Redmine Admin
## 6. Cierres satisfactorios y no satisfactorios
107
108
cosmoSys añade a los estados cerrados una semántica de resultado:
109
110
- un cierre **satisfactorio** consolida el ítem;
111
- un cierre **no satisfactorio** lo retira del contenido vigente sin destruir su historia.
112
113
En la configuración de requisitos, `Approved` y los cierres positivos equivalentes representan consolidación. `Rejected` y `Erased` representan cierres negativos.
114
115
### Rejected
116
117
Indica que el requisito fue evaluado y rechazado. Puede existir un workflow de recuperación hacia `Draft` cuando la organización necesita reconsiderarlo.
118
119
### Erased
120
121
Representa una eliminación lógica. El requisito conserva CSID, contenido, historial, posición y relaciones, pero deja de formar parte del contenido positivo ordinario.
122
123
La eliminación lógica protege la trazabilidad y evita reutilizar accidentalmente la identidad de un requisito retirado. La eliminación física puede restringirse mediante permisos y reglas del perfil.
124
125
### Elementos huérfanos
126
127
Si un elemento positivo queda bajo un antecesor `Erased`, no debe desaparecer sin explicación. Árbol e informe pueden rescatarlo bajo un capítulo virtual de elementos huérfanos para que el usuario lo reubique.
128
129
Un elemento negativo bajo otro negativo no necesita aparecer como huérfano: ya forma parte del subárbol retirado.
130
131
Los elementos negativos se conservan en árbol e informe para trazabilidad, pero no participan en diagramas ni DSM ordinarias.
132
133 7 Redmine Admin
{{thumbnail(cosmosys-req-erased-orphans.png, size=600, title=Subárbol retirado y elementos positivos huérfanos)}}
134
135 1 Redmine Admin
## 7. Madurez y dependencias
136
137
Los estados tienen un nivel de madurez. El principio funcional es que un requisito no debería estar más maduro que aquello que lo sostiene.
138
139
Cuando `A blocks B`, A actúa como antecedente de B. Si B está aprobado y A vuelve a borrador, B se considera inconsistente.
140
141
La validación de madurez se activa mediante el item profile. Actualmente el perfil de requisito es el que utiliza esta capacidad; otros perfiles no heredan la regla por el mero hecho de tener relaciones `blocks`.
142
143
La inconsistencia no cambia automáticamente el estado. Se muestra mediante avisos y señales visuales, incluido el rojo de los diagramas. El usuario decide si debe reabrir, revisar o corregir las relaciones.
144
145
La comprobación inmediata de madurez no necesita recorrer toda la cadena para cambiar estados. La evidencia aprobada, descrita a continuación, sí conserva el contexto transitivo necesario para detectar cambios más profundos.
146
147 7 Redmine Admin
{{thumbnail(cosmosys-req-maturity-chain.png, size=600, title=Madurez coherente a lo largo de una cadena bloqueante)}}
148
149 1 Redmine Admin
## 8. Evidencia del texto aprobado
150
151
Comparar sólo estados no basta. Dos requisitos pueden volver a aparecer como `Approved` aunque el texto del antecedente haya cambiado entre ambas aprobaciones. También puede cambiar un dato compartido sin editar directamente el requisito que lo utiliza.
152
153
Cuando un requisito aumenta su madurez por encima del nivel inicial, cosmoSys-Req captura una línea base con:
154
155
- texto fuente;
156
- descripción resuelta;
157
- datos de proyecto utilizados;
158
- contexto transitivo de relaciones `blocks`;
159
- CSID y textos resueltos de los antecedentes;
160
- aristas de la cadena bloqueante;
161
- estado, madurez, fecha y hash de la evidencia.
162
163
Los nodos y aristas se ordenan de forma canónica. Así, aprobar otra vez un antecedente no oculta que cambió su contenido, y restaurar exactamente el texto y la topología anteriores elimina la deriva sin obligar a repetir una aprobación innecesaria.
164
165
### Qué provoca inconsistencia
166
167
- Cambiar la descripción explícita del requisito.
168
- Cambiar el valor o nombre de un `csDatum` utilizado.
169
- Cambiar el texto resuelto de un antecedente bloqueante.
170
- Añadir o retirar un antecedente dentro de la cadena.
171
- Reorganizar las aristas que forman el contexto causal.
172
173
### Qué no debe provocarla
174
175
- Cambiar un dato que el requisito no utiliza.
176
- Reordenar etiquetas efímeras del catálogo documental cuando la cita conserva el mismo marcador estable.
177
- Modificar sólo la presentación HTML sin cambiar el texto canónico.
178
- Alterar temporalmente un antecedente y restaurarlo exactamente antes de la comparación.
179
180
Las etiquetas `RD.n`, `AD.n` y `CD.n` pertenecen a la presentación. El marcador `document:di<ID>` pertenece al texto canónico. Esta separación evita inconsistencias fantasma por una simple renumeración del catálogo y debe mantenerse cubierta por pruebas de regresión.
181 7 Redmine Admin
182
{{thumbnail(cosmosys-req-approved-evidence.png, size=600, title=Composición y comparación de la evidencia aprobada)}}
183 1 Redmine Admin
184
## 9. Cómo se presenta una inconsistencia
185
186
La vista del requisito muestra un aviso y, para su descripción, un diff entre el texto aprobado y el actual. El contexto bloqueante puede señalar que la cadena cambió sin revelar textos que el usuario no está autorizado a consultar.
187
188 8 Redmine Admin
El aviso distingue dos causas. Si cambia un `csDatum`, el diff enfrenta el texto resuelto que se aprobó con el vigente. Si cambia algún contenido o arista de la cadena bloqueante transitiva, el aviso señala que el contexto causal ya no coincide con la evidencia aceptada.
189
190
{{thumbnail(cosmosys-req-datum-change-warning.jpg, size=600, title=Cambio de un dato reflejado en el texto resuelto)}}
191
192
{{thumbnail(cosmosys-req-blocking-chain-change-warning.jpg, size=600, title=Cambio en la cadena bloqueante aprobada)}}
193
194 1 Redmine Admin
Los diagramas utilizan rojo para el requisito o cluster inconsistente. Si es además el protagonista de la vista, su borde grueso debe seguir siendo rojo en lugar de quedar cubierto por el azul habitual de selección.
195
196 8 Redmine Admin
En el ejemplo siguiente aparecen en rojo tanto el requisito inconsistente como su dependiente afectado. La dirección de esa propagación ayuda a distinguir una deriva en el contexto causal de un simple intento de elevar la madurez de un requisito por encima de su antecedente.
197
198
{{thumbnail(cosmosys-req-inconsistent-diagram.jpg, size=600, title=Requisito inconsistente y dependiente afectado)}}
199
200 1 Redmine Admin
Los informes deben transportar el aviso con un refuerzo visual rojo y una señal adicional que no dependa únicamente del color. La apariencia debe sobrevivir a la conversión a ODT, DOCX y PDF.
201
202
Bajar la madurez desactiva la inconsistencia visible sin borrar la línea base. El siguiente aumento de madurez reemplaza la evidencia por la nueva revisión aceptada.
203
204 6 Redmine Admin
{{thumbnail(cosmosys-req-consistency.png, size=600, title=Detección de cambios en el significado aprobado)}}
205
206 1 Redmine Admin
## 10. Datos compartidos mediante csDatum
207
208
Los datos del proyecto pertenecen a cosmoSys base, no exclusivamente al plugin de requisitos. Un requisito puede consumirlos mediante `${Clave}` y `${Clave.value}`.
209
210
Esto permite separar una magnitud repetida de las frases que la utilizan. Cambiar el dato actualiza las presentaciones, mientras la línea base de los requisitos aprobados permite saber cuáles han cambiado de significado.
211
212
Los `csDatum` no necesitan mantener relaciones ordinarias con cada requisito consumidor. El ledger de resolución registra el uso efectivo sin llenar los diagramas de conexiones auxiliares.
213
214
La tabla de datos del informe se construye a partir de las sustituciones utilizadas durante el renderizado. Puede aparecer antes que el contenido aunque se complete después, una vez conocido el ledger final.
215
216
Los valores siguen siendo texto y pueden contener Markdown. Las fórmulas, tipos físicos y cálculos automáticos son una posible extensión futura, no una garantía actual.
217
218 6 Redmine Admin
{{thumbnail(cosmosys-req-engineering-model.png, size=600, title=Datos compartidos y texto resuelto)}}
219
220 1 Redmine Admin
## 11. Derivación
221
222
Derivar significa crear un requisito más concreto a partir de otro y conservar la trazabilidad de esa decisión.
223
224
La operación puede:
225
226
1. crear uno o varios requisitos;
227
2. situarlos en un destino jerárquico compatible;
228
3. registrar el requisito fuente;
229
4. crear relaciones causales de bloqueo;
230
5. conservar proyecto, versión y otros datos pertinentes según el contrato.
231
232
La automatización evita pasos mecánicos incoherentes, pero no decide cuántos requisitos deben derivarse ni si el texto resultante es suficiente.
233
234 6 Redmine Admin
{{thumbnail(requirements-derivation.png, size=600, title=Derivación hacia requisitos disciplinares)}}
235
236 8 Redmine Admin
La interfaz permite escoger cuántos requisitos hermanos se crearán en una sola operación. Después de generarlos, cada derivado sigue siendo un requisito independiente: el usuario puede abrir uno de ellos y cambiar su tipo o disciplina sin imponer ese cambio a los demás.
237
238
{{thumbnail(cosmosys-req-derive-select-three.jpg, size=600, title=Paso 1 crear tres requisitos derivados)}}
239
240
{{thumbnail(cosmosys-req-derive-change-one-to-mechanical.jpg, size=600, title=Paso 2 asignar Mechanical a uno de los derivados)}}
241
242 1 Redmine Admin
## 12. Árbol y especificación
243
244
Los requisitos se organizan bajo ítems estructurales capaces de actuar como capítulos. Un requisito ordinario no debe contener hijos; si un ítem con descendientes aparece en una migración heredada, esa estructura constituye evidencia de que probablemente era información o capítulo y no un requisito.
245
246
Los capítulos calculados ordenan la especificación. El CSID conserva la identidad incluso cuando el requisito cambia de sección.
247
248
Los requisitos aprobados permanecen visibles y reciben una presentación consolidada. Los rechazados o borrados lógicamente pueden reunirse en secciones específicas de trazabilidad en lugar de mezclarse con el contenido vigente.
249
250 8 Redmine Admin
La vista Tree materializa este modelo como un editor navegable en el que se distinguen capítulos estructurales y requisitos, se despliegan subárboles y se revisa la posición real que determina la especificación.
251
252
{{thumbnail(cosmosys-req-tree-editor.jpg, size=600, title=Editor real del árbol de una especificación)}}
253
254 1 Redmine Admin
## 13. Diagramas y DSM de requisitos
255
256
Los diagramas reutilizan las capacidades comunes de cosmoSys:
257
258
- jerarquía de la especificación;
259
- dependencias causales;
260
- vista combinada con contexto de capítulos;
261
- recorrido entre proyectos y niveles;
262
- referencias documentales cuando corresponda.
263
264
Las relaciones externas conservan un indicador de frontera y su propia jerarquía. Mostrar más pasos de la cadena no convierte los requisitos externos en requisitos locales.
265
266
La DSM permite revisar dependencias, buscar ciclos y explorar órdenes de presentación o implementación. Los requisitos retirados mediante cierre negativo no participan en la matriz ordinaria.
267 8 Redmine Admin
268
La siguiente captura muestra en forma de DSM el proyecto público de ejemplo [EPB](https://cosmobots.eu/projects/help-req-sample-epb). Complementa los diagramas conceptuales con la matriz real de requisitos y sus dependencias.
269
270
{{thumbnail(cosmosys-req-dsm-example.jpg, size=600, title=DSM real del proyecto de requisitos EPB)}}
271 1 Redmine Admin
272
## 14. Documentos de referencia
273
274
Un requisito puede citar documentos de referencia, aplicables o de cumplimiento. Cada cita conserva sentido y localización propios.
275
276
La tabla de referencias del requisito y del informe utiliza las etiquetas vigentes `RD.n`, `AD.n` y `CD.n`, pero los textos guardan marcadores internos estables. Reordenar el catálogo actualiza la presentación sin cambiar el documento citado.
277
278
Los placeholders documentales pueden insertar los catálogos en cualquier punto compatible del árbol de la especificación.
279
280
La visibilidad del documento sigue dependiendo de los permisos del usuario. Resolver una etiqueta no debe convertirse en una vía para revelar documentos restringidos.
281
282 6 Redmine Admin
{{thumbnail(cosmosys-document-reference.png, size=600, title=Referencia estable y etiqueta documental calculada)}}
283
284 1 Redmine Admin
## 15. Informes de requisitos
285
286
El informe presenta la especificación como libro, no como una tabla plana. Puede incluir:
287
288
- capítulos e ítems estructurales;
289
- texto normativo;
290
- justificación y otros campos de cuerpo;
291
- metadatos compactos;
292
- diagramas elegidos por requisito;
293
- referencias documentales;
294
- tabla de datos utilizados;
295
- elementos cerrados negativamente;
296
- avisos de inconsistencia.
297
298
Los perfiles deciden qué campos aparecen y en qué forma. El informe muestra la versión configurada como predeterminada del proyecto y transporta metadatos del proyecto a las propiedades de LibreOffice.
299
300
La plantilla controla la apariencia corporativa. El contenido procede del mismo modelo vivo que consulta el equipo.
301
302 6 Redmine Admin
{{thumbnail(cosmosys-req-documentation.png, size=600, title=Un modelo de requisitos con varias salidas documentales)}}
303
304 1 Redmine Admin
## 16. Exportación e importación ODS
305
306
El perfil de proyecto de requisitos selecciona una plantilla ODS que incluye los campos propios del dominio y hojas DSM.
307
308
La exportación puede utilizarse para revisión o trabajo temporal fuera de línea. La importación conserva el preflight común de cosmoSys: analiza identidades, linaje, altas, modificaciones, relaciones y conflictos antes de pedir confirmación.
309
310
Los códigos visibles utilizados provisionalmente durante una migración no sustituyen al CSID. Cuando existe un código externo significativo puede conservarse como `csExtCode` para facilitar trazabilidad y reescrituras posteriores.
311
312
ODS es un canal de intercambio. El proyecto sigue siendo la fuente viva de verdad después de reconciliar la transferencia.
313
314
## 17. Copias y snapshots
315
316
Los requisitos participan en las copias y snapshots comunes de cosmoSys. Una copia fiel conserva estado, identidades cuando sea posible y líneas base aprobadas. Una copia limpia reinicia el estado y no arrastra evidencias de consolidación.
317
318
Preservar CSID exige que no existan colisiones en el árbol de destino. Regenerarlos requiere reescribir referencias internas una vez construido el mapa completo entre origen y destino.
319
320
Una copia de varios proyectos crea primero todos los proyectos e ítems y restaura después sus relaciones. Este orden permite mantener dependencias entre niveles de requisitos incluso cuando el destino recibe identidades nuevas.
321
322
El snapshot declara los plugins y versiones presentes en el origen. El preflight puede advertir diferencias, pero no puede adaptar automáticamente cualquier dato creado por plugins desconocidos.
323 6 Redmine Admin
324
{{thumbnail(cosmosys-portable-transfers.png, size=600, title=Intercambio ODS y paquetes csys)}}
325 1 Redmine Admin
326
## 18. Consultas y navegación
327
328
La pestaña de ítems utiliza consultas de Redmine adaptadas al perfil de proyecto. En requisitos, el contenido consolidado no debe desaparecer por el filtro genérico de «abiertos»: los cierres satisfactorios siguen siendo parte de la especificación.
329
330
Los cierres negativos pueden excluirse de la consulta principal y permanecer accesibles mediante vistas o capítulos de trazabilidad.
331
332
Las columnas útiles incluyen CSID, capítulo, estado, tipo, nivel, versión y otros campos habilitados por el perfil. Los textos largos, como descripción o justificación, resultan más legibles como bloques bajo la fila principal que como columnas estrechas.
333
334
## 19. Permisos y revisión
335
336
Los permisos de [Redmine](https://www.redmine.org/) gobiernan lectura, edición y transiciones. El workflow puede reservar `Stable` o `Approved` a roles específicos.
337
338
Una relación bloqueante ordinaria puede impedir cierres positivos mientras el antecedente permanece abierto. El perfil de requisito permite, sin embargo, que un cierre negativo como `Rejected` siga estando disponible: rechazar algo no afirma que sus dependencias estén satisfechas.
339
340
Recuperar un requisito rechazado requiere una transición definida, por ejemplo `Rejected -> Draft`. Ser administrador no crea una transición que el workflow no contiene.
341
342
## 20. Qué no garantiza cosmoSys-Req
343
344
cosmoSys-Req no determina si un requisito es necesario, verificable o técnicamente correcto. Tampoco demuestra que una relación de derivación represente el razonamiento real del equipo.
345
346
Las líneas base detectan deriva del texto resuelto y del contexto conocido; no congelan transaccionalmente todos los objetos de la instancia. Otro usuario puede modificar información mientras se genera un informe.
347
348
El responsable debe revisar la especificación entregable. La herramienta reduce trabajo mecánico, conserva evidencias y hace visibles incoherencias que de otro modo pasarían inadvertidas, pero no sustituye el juicio de ingeniería.
349
350
## Para seguir
351
352
- [[cosmoSys-Req]] — presentación general del gestor de requisitos.
353
- [[csys:cosmoSys]] — plataforma común sobre la que se construye.
354
- [[csys:Guía funcional de cosmoSys]] — árboles, diagramas, documentos, informes, ODS y copias.
355
- [[Gestor de requisitos]] — introducción general a la disciplina y sus herramientas.
356 4 Redmine Admin
- [Cosmobots](https://cosmobots.eu/) — la asociación sin ánimo de lucro que impulsa el proyecto.