Contenido

Artefactos EA: nomenclatura, contenido y relaciones

El estereotipo a usar para cada tipo de elemento es el que aparece indicado en la primera fila de la tabla correspondiente. Por ejemplo, `Participante (estereotipo "Participante")'. Ese es el tipo de elemento que debe seleccionarse (de la "Toolbox" correspondiente) para crear el elemento.

Aunque no se indique explícitamente en la normativa, cualquier tipo de elemento se puede agrupar por subsistemas, utilizando para la nomenclatura de dichos elementos los dos niveles de numeración (YYY-XXX, donde YYY corresponde al subsistema y XXX al elemento en cuestión). En la normativa se indica en aquellos en los que es aconsejable (siempre y cuando existan subsistemas), pero se pueden usar ambas alternativas en cualquier tipo de elemento, agruparlos por subsistemas (YYY-XXX) o no (XXX).

Con carácter general para todos los estereotipos usados en los aplicativos software, las relaciones a incluir deben ser únicamente las descritas en esta normativa. La inclusión de otro tipo de relaciones puede dar lugar a errores a la hora de generar la documentación asociada o al exportar la información a otras herramientas. Si bien en cada uno de los estereotipos se describen las relaciones que debe tener con el resto, en caso de duda, en el apartado correspondiente a las matrices de trazabilidad se puede consultar la obligatoriedad de cada una de las relaciones, en la tabla con las comprobaciones a realizar (aquellas relaciones que no aparezcan en la tabla no son obligatorias).

No deberán embeberse unos elementos del modelado dentro de otros, salvo en los casos contemplados en la normativa, como puede ser el caso de los procesos de negocio asociados a casos de uso concretos.

En todos los elementos modelados, pero sobre todo en las clases y tablas, existen muchos más campos en cada uno de los estereotipos correspondientes además de los que aparecen en este documento. Es recomendable, aunque no vayan a ser revisados o incluidos en la documentación asociada, incluir la mayor cantidad de información posible, y cuanto más detallada mejor, puesto que será de gran ayuda tanto a la hora de consultar la información en el futuro como por ejemplo para generar código fuente o scripts de manera automática.

Por último el campo estado debe cumplimentarse conforme a las siguientes instrucciones:

  • Propuesto (Proposed): Cuando se trate de un elemento de nueva creación, que ha sufrido cambios desde la anterior entrega, o que en la anterior entrega no fue aprobado, en definitiva, cuando se trate de un elemento a revisar.
  • Aprobado (Approved): Una vez revisada la entrega, aquellos elementos que se encuentren en el estado propuesto y que no presenten carencias ni errores deberán actualizar el valor del campo estado pasando de propuesto a aprobado (este estado aprobado será el que presenten en la siguiente entrega salvo que sufran cambios, en dicho caso deberán volver a aparecer en el estado propuesto).
  • N/A (no aplica): Se utilizará este valor para especificar diferentes circunstancias. Los elementos con este valor en el campo estado, salvo excepciones concretas en determinados proyectos, no serán tenidos en cuenta en la revisión. Es conveniente en estos elementos indicar en la descripción el motivo por el que están en ese estado. Para distinguir el motivo por el que están en el estado N/A se deberá seleccionar según dicho motivo uno de los siguientes valores disponibles:
    • N/A - Borrado logico. Para indicar que un elemento no debe tenerse en cuenta porque se ha prescindido de él, pero sin eliminarse del modelado, para poder consultarlo a modo de histórico.
    • N/A - Borrador. Para indicar que el elemento está en borrador, ya que realmente pertenece a futuras entregas.
    • N/A - Previo normativa. Para indicar que se trata de elementos ya existentes antes de la aplicación de la normativa, y que por tanto no la cumplen (ya sea total o parcialmente).
    • N/A. En los casos de prueba de integración predefinidos se usará este valor en el caso de que para el aplicativo en cuestión no aplique la realización de ese caso de prueba de integración predefinido. También se utilizará cuando el motivo sea uno distinto a los recogidos en los anteriores puntos y para mantener la compatibilidad con las entregas realizadas basadas en versiones anteriores a la v01r09 de la normativa, en las cuales sólo se contemplaba este valor genérico para el N/A.

Participante

Participante (estereotipo "Participante")
NomenclaturaPARXXX - Nombre (XXX será un número de tres dígitos que no podrá repetirse para dos elementos del mismo tipo. En caso de ser necesario se podrán utilizar más de tres dígitos. Esto será de aplicación para todos los elementos excepto que se indique lo contrario.)
Observaciones

Para diferenciar claramente a los actores (y sistemas) de los participantes y evitar confusiones, se ha optado por modelar a los participantes relacionados con el aplicativo con un estereotipo propio, que visualmente además se diferencia del estereotipo "Actor":

 

Se ha creado un estereotipo que modifica al predefinido de Enterprise Architect (Actor). Este estereotipo está disponible en la plantilla dentro de "Modelado del Sistema" (Toolbox).

Relaciones

Los participantes estarán relacionados con los diferentes elementos del modelado de una u otra manera según el tipo de participante:

  • Aquellos participantes que sean responsables del modelado de un elemento estarán asociados al mismo mediante el tipo de enlace "Realization" con origen en el participante y destino en el elemento modelado.
  • Aquellos participantes que sean responsables de la generación de la documentación de un apartado concreto estarán asociados al mismo mediante el tipo de dependencia "Invokes" con origen en el participante y destino en el apartado cuya documentación se va a generar. Como aclaración se recomienda dar a la relación el nombre "Genera documentación" como aparece en el ejemplo de la plantilla.
  • Aquellos participantes que sean los responsables funcionales asociados a un requisito concreto estarán asociados al mismo mediante el tipo de enlace "Association" con origen en el participante y destino en el requisito.
Dado que los participantes pueden estar relacionados con cualquier elemento del modelado, en los siguientes elementos no se volverá a repetir esta información.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNamePARXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

Aunque sólo aparece N/A, se contemplan en realidad las diferentes variantes:

- N/A - Borrado lógico

- N/A - Borrador

- N/A - Previo normativa

- N/A

Esto será de aplicación para todos los elementos excepto que se indique lo contrario.

AliasXAliasPARXXX 

Versión

(versión y release)
XVersionvXXrXXEn el último apartado de este documento se recoge la información relacionada con el versionado y la entrega. Esto será de aplicación para todos los elementos excepto que se indique lo contrario.
InteresadoXModelado del Sistema (interesado)

No

Indica si el participante debe tener acceso a la documentación asociada a la aplicación.
Departamento Modelado del Sistema (Departamento)  
Nombre Modelado del Sistema (Nombre)  
Rol Modelado del Sistema (Rol)  
Teléfono Modelado del Sistema (Teléfono)  


Objetivo del Sistema 

Objetivo del Sistema (estereotipo "Feature")
NomenclaturaOBJXXX - Nombre
Observaciones 
RelacionesLos objetivos estarán relacionados con los diferentes tipos de requisitos (excepto con los de información) como se verá al llegar a ellos.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameOBJXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasOBJXXX 
PrioridadXPriority

Low

Medium

High

 
Versión(versión y release)XVersionvXXrXX 


Requisito Funcional 

Requisito Funcional (estereotipo "Requirement")
NomenclaturaRFXXX - Nombre
Observaciones 
RelacionesLos requisitos funcionales estarán relacionados con los objetivos que los originaron. Se debe usar el tipo de enlace "Realization" con origen en el requisito funcional y destino en el objetivo.
Los requisitos funcionales estarán relacionados además con los requisitos de información y con los casos de uso, como se verá al llegar a ellos.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameRFXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasRFXXX 
PrioridadXPriority

Low

Medium

High

 
Versión(versión y release)XVersionvXXrXX 


Requisito de Integración

Requisito de Integración (estereotipo "Requirement")
NomenclaturaRINTXXX - Nombre
Observaciones 
RelacionesLos requisitos de integración estarán relacionados con los objetivos que los originaron. Se debe usar el tipo de enlace "Realization" con origen en el requisito de integración y destino en el objetivo.
Los requisitos de integración estarán relacionados además con los requisitos de información y con los casos de uso, como se verá al llegar a ellos.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameRINTXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasRINTXXX 
PrioridadXPriority

Low

Medium

High

 
Versión(versión y release)XVersionvXXrXX 


Requisito no Funcional 

Requisito no Funcional (estereotipo "Requirement")
NomenclaturaRFNXXX - Nombre
Observaciones 
RelacionesLos requisitos no funcionales estarán relacionados con los objetivos que los originaron. Se debe usar el tipo de enlace "Realization" con origen en el requisito no funcional y destino en el objetivo.
Los requisitos no funcionales estarán relacionados además con los requisitos de información y con los casos de uso, como se verá al llegar a ellos.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameRFNXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasRFNXXX 
PrioridadXPriority

Low

Medium

High

 
Versión(versión y release)XVersionvXXrXX 


Requisito de Información 

Requisito de Información (estereotipo "Requirement")
NomenclaturaRIXXX - Nombre
Observaciones 
RelacionesLos requisitos de información estarán relacionados con los requisitos (funcionales, no funcionales y/o de integración) que los originaron, se debe usar el tipo de enlace "Realization" con origen en el requisito de información y destino en el requisito que lo originó.
Los requisitos de información podrán estar también relacionados con otros requisitos de información (un requisito de información es parte de otros más amplios). Se debe usar el tipo de enlace "Realization" con origen en el requisito de información que forma parte de otro más amplio.
Podrán existir requisitos de información que sólo tengan relación con otros requisitos de información, siempre que estos últimos tengan relación con otros requisitos funcionales, no funcionales y/o de integración.
Los requisitos de información estarán relacionados además con las tablas, como se verá al llegar a ellas, aunque puede darse el caso de que haya requisitos de información sin tablas asociadas (por ejemplo los datos del usuario pueden leerse de un certificado digital), en ese caso deberá indicarse en el requisito de información (en la descripción) explicando donde estará almacenada la información asociada a dicho requisito de información.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameRIXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasRIXXX 
PrioridadXPriority

Low

Medium

High

 
Versión(versión y release)XVersionvXXrXX 

 

Subsistema 

Subsistema (estereotipo "Package")
NomenclaturaSUBXXX - Nombre
Observaciones 
RelacionesLos subsistemas podrán estar relacionados con otros subsistemas (un subsistema es usado por otros). Se debe usar el tipo de enlace "Realization" con origen en el subsistema que es usado por otro.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameSUBXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasSUBXXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 

 

Actor 

Actor (estereotipo "Actor")
NomenclaturaACTXXX - Nombre
Observaciones 
RelacionesLos actores estarán relacionados con los casos de uso en los que intervienen, como se verá al llegar a ellos. También podrán estar relacionados con otros actores. Un actor es una instancia concreta de otro actor más genérico (un médico de un hospital concreto por ejemplo es una instancia del tipo de actor médico), o bien un actor es una ampliación de otro (por ejemplo disponiendo de más permisos). En el primer caso se debe usar el tipo de enlace "Generalization" con origen en el actor que es una instancia de otro más genérico. En el segundo caso se debe usar el tipo de enlace "Realization" con origen en el actor que amplía al otro.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameACTXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasACTXXX 
Versión(versión y release)XVersionvXXrXX

 


Sistema 

Sistema (estereotipo "Actor")
NomenclaturaSISXXX - Nombre
ObservacionesSegún UML, un actor modela un rol externo jugado por un usuario o cualquier otro sistema, es decir, que con el estereotipo "Actor" se podrían modelar ambos, usuarios y sistemas. Sin embargo, para diferenciar claramente ambos tipos de actores y evitar confusiones, se ha optado por usar para los sistemas que interactúan con el aplicativo una nomenclatura propia.
RelacionesLos sistemas estarán relacionados con los casos de uso en los que intervienen, como se verá al llegar a ellos.
También se relacionarán con las interfaces a través de servicios consumidas por la aplicación, identificando al sistema que provee la interfaz consumida, como se verá al llegar a ellos.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameSISXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasSISXXX 
Versión(versión y release)XVersionvXXrXX 


Caso de Uso 

Caso de Uso (estereotipo "UseCase")
NomenclaturaCUYYY-XXX - Nombre (YYY coincidirá con el número asociado al subsistema al que pertenece el caso de uso (SUBYYY - Nombre), XXX será un número de tres dígitos que no podrá repetirse. En caso de ser necesario se podrán utilizar más de tres dígitos.).
En el caso de no agrupar los casos de uso por subsistemas se usará la notación habitual con sólo un nivel (CUXXX).
ObservacionesSe ha incluido un ejemplo de secuencia normal en todos los casos de uso de la plantilla.

Se ha incluido un ejemplo de secuencia alternativa en el caso de uso "CU001-002 - Listado" de la plantilla.

Se ha incluido un ejemplo de excepción en el caso de uso "CU001-001 - Alta" de la plantilla.

Se ha incluido un ejemplo de extend en el caso de uso "CU001-004 - Modificacion" de la plantilla. Los casos de uso que extienden a otros normalmente empiezan su secuencia normal a partir del último paso de la secuencia normal del caso de uso al que extienden, pero puede darse el caso de que no sea así, empezando desde un paso intermedio de la secuencia normal, o incluso desde un paso cualquiera de otra secuencia. El caso de uso extendido debe incluirse como una referencia en el primer paso de la secuencia normal como se puede ver en el ejemplo, y en el caso de que no se inicie desde el último paso de la secuencia normal del caso de uso extendido, se indicará además el paso desde el que se inicia (y la secuencia si no es la normal).

Se ha añadido un ejemplo de include en los casos de uso "CU001-002 - Listado" y "CU001-003 - Busqueda" de la plantilla. Para cada include, en el caso de uso incluido, debe especificarse una secuencia alternativa que debe tener como punto de entrada el primer paso de la secuencia normal. El caso de uso que lo incluye debe añadirse como una referencia en el primer paso de la secuencia alternativa como se puede ver en el ejemplo. Del mismo modo, en el caso de uso que incluye al otro, el caso de uso incluido debe añadirse también como una referencia en el paso correspondiente.
RelacionesLos casos de uso estarán relacionados con los requisitos (funcionales, no funcionales y/o de integración) que los originaron. Se debe usar el tipo de enlace "Realization" con origen en el caso de uso y destino en el requisito que lo originó.

Los actores y sistemas estarán relacionados con los casos de uso en los que intervienen. Se debe usar el tipo de enlace "Association".

Los casos de uso estarán relacionados además con las pantallas e informes, las interfaces a través de servicios, las clases, los casos de prueba y los casos de prueba funcionales de interoperabilidad, como se verá al llegar a cada uno de estos elementos.

Los casos de uso podrán también interaccionar entre sí mediante extensión e inclusión. Para representarlo se deben usar los tipos de relación "extend" e "include" respectivamente, con origen en el caso de uso que extiende o incluye al otro.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameCUYYY-XXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasCUYYY-XXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 
Precondición Constraint (Type = Pre-Condition)PrecondicionSe debe incluir la descripción en el campo correspondiente. Si hay más de una al resto se le añadirá una pequeña descripción a continuación de "Precondicion"
Postcondición Constraint (Type = Post-Condition)PostcondicionSe debe incluir la descripción en el campo correspondiente. Si hay más de una al resto se le añadirá una pequeña descripción a continuación de "Postcondicion"
Secuencia normalXScenarios (Type = Basic-Path)Secuencia normalSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification" tomando como referencia el ejemplo de la plantilla.
Secuencia alternativa Scenarios (Type = Alternate)Secuencia alternativa - NombreSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification", así como el punto de entrada, todo ello tomando como referencia el ejemplo de la plantilla. Puede haber más de una en cada caso de uso.
Excepción Scenarios (Type = Exception)Excepcion - NombreSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification", así como el punto de entrada, todo ello tomando como referencia el ejemplo de la plantilla. Puede haber más de una en cada caso de uso.
 


Pantalla 

Pantalla (estereotipo "Screen")
NomenclaturaPANTXXX - Nombre
Observaciones 
RelacionesLas pantallas estarán relacionadas con los casos de uso de los que derivan. Se debe usar el tipo de enlace "Realization" con origen en la pantalla y destino en el caso de uso que la originó.

También se relacionarán con otras pantallas e informes utilizando el tipo de enlace "Association". Se deberá indicar para cada una de estas relaciones su nombre y una breve descripción de la misma, así como el sentido. Se han incluido ejemplos en la plantilla en el diagrama de navegabilidad.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNamePANTXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasPANTXXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 


Informe 

Informe (estereotipo "Class" - "model document")
NomenclaturaINFXXX - Nombre
Observaciones 
RelacionesLos informes estarán relacionados con los casos de uso de los que derivan. Se debe usar el tipo de enlace "Realization" con origen en el informe y destino en el caso de uso que lo originó.

También se relacionarán con pantallas utilizando el tipo de enlace "Association". Se deberá indicar para cada una de estas relaciones su nombre y una breve descripción de la misma, así como el sentido. Se han incluido ejemplos en la plantilla en el diagrama de navegabilidad.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameINFXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasINFXXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 


Interface 

Interface (estereotipo "Interface")
NomenclaturaINTXXX - Nombre
ObservacionesEn la etapa de análisis deberían aparecer los servicios asociados a cada interfaz. No es necesario llegar al máximo nivel de detalle, que se incluiría durante el diseño del sistema, pero sí al menos indicar aquellos servicios relevantes desde el punto de vista funcional.
RelacionesLos interfaces estarán relacionados con los casos de uso de los que derivan. Se debe usar el tipo de enlace "Realization" con origen en el interfaz y destino en el caso de uso que lo originó.

Cada interfaz tiene asociado un elemento del tipo "Exposed Interface", del tipo "Provided" si es un interfaz que el aplicativo provee y del tipo "Required" si es un interfaz que el aplicativo consume.

En el caso de interfaz de consumo de servicios, deberá asociarse también el interfaz al sistema que proporciona dicho servicio usando el tipo de relación "Association".

Los interfaces estarán relacionados además con las clases que los implementan y con los casos de prueba (de cualquier tipo; software, de integración y funcionales de interoperabilidad), como se verá al llegar a estos elementos.
 
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameINTXXX - Nombre 
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasINTXXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 
ServiciosSólo en entregas asociadas a la fase de Diseño del SistemaDetails (Operations) Se debe incluir el nombre (Name), el alcance (Scope) y la descripción (Notes) de manera obligatoria, y el tipo (Type) y los parámetros (Nombre, tipo y descripción en los campos "Parameter", "Type" y "Notes" respectivamente dentro de la pestaña "Parameter") si se conocen.

Junto con la descripción (también en "Notes") debe ir una estimación de uso (en la plantilla se puede ver un ejemplo). Esto será obligatorio en el caso de consumo de servicios y aconsejable en el caso de provisión.

También es necesario indicar el tipo de servicio (HTTP, FTP, SOAP u Otro). También en el campo "Notes".
 


Clase 

Clase (estereotipo "Class")
NomenclaturaCLYYY-XXX - Nombre(YYY coincidirá con el número asociado al subsistema al que pertenece la clase (SUBYYY - Nombre), XXX será un número de tres dígitos que no podrá repetirse. En caso de ser necesario se podrán utilizar más de tres dígitos.). En el caso de no agrupar las clases por subsistemas se usará la notación habitual con sólo un nivel (CLXXX).
ObservacionesEn la etapa de análisis deberían aparecer además de las clases y las relaciones existentes entre ellas, los principales atributos y métodos de las mismas. No es necesario llegar al máximo nivel de detalle, que se incluiría durante el diseño del sistema, pero sí al menos indicar aquellos métodos y atributos relevantes desde el punto de vista funcional.

En el caso de clases de los tipos interface y enumeration, los estereotipos a usar serán "Interface" y "Enumeration" respectivamente, será la única diferencia. Se utilizan estos estereotipos en estos casos para permitir tanto la generación de código como la ingeniería inversa. Todo lo demás (nomenclatura, campos obligatorios, etc.) es idéntico al resto de clases.
RelacionesLas clases estarán relacionadas con los casos de uso que las originaron, se debe usar el tipo de enlace "Realization" con origen en la clase y destino en el caso de uso que la originó. Las clases estarán también relacionadas con las interfaces a través de servicios que implementan, se debe usar el tipo de enlace "Realization" con origen en la clase y destino en el interfaz que implementa.

Las clases estarán relacionadas entre sí mediante diversos tipos de relaciones.

Podrán existir clases que sólo tengan relación con otras clases, siempre que estas últimas tengan relación con casos de uso.

Dentro de la plantilla, en el diagrama "Clases SUB001 - Subsistema 1 (Logico)" se puede ver un ejemplo de las diferentes relaciones descritas para las clases.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameCLYYY-XXX - NombreEn el caso de las clases, la nomenclatura es de obligado cumplimiento para el campo alias, pero no para el campo nombre. Los elementos incluidos en la plantilla a modo de ejemplo sirven únicamente como referencia para el modelado, normalmente el nombre de las clases seguirá la nomenclatura habitual de cada aplicativo (convenciones Java, Visual Basic, etc.).
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasCLYYY-XXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 
AlcanceXScope

Package

Private

Protected

Public

 
AtributosSólo en entregas asociadas a la fase de Diseño del SistemaDetails (Attributes) Se debe incluir el nombre (Name), el alcance (Scope) y, la descripción (Notes) de manera obligatoria, y el tipo (Type) si se conoce.
MétodosSólo en entregas asociadas a la fase de Diseño del SistemaDetails (Operations) Se debe incluir el nombre (Name), el alcance (Scope) y la descripción (Notes) de manera obligatoria, y el tipo (Type) y los parámetros (Nombre, tipo y descripción en los campos "Parameter", "Type" y "Notes" respectivamente dentro de la pestaña "Parameter") si se conocen.
 


Tabla 

Tabla (estereotipo "Table")
NomenclaturaTABYYY-XXX - Nombre(YYY coincidirá con el número asociado al subsistema al que pertenece la tabla (SUBYYY - Nombre), XXX será un número de tres dígitos que no podrá repetirse. En caso de ser necesario se podrán utilizar más de tres dígitos.). En el caso de no agrupar las tablas por subsistemas se usará la notación habitual con sólo un nivel (TABXXX).
ObservacionesEn la etapa de análisis deberían aparecer además de las tablas y las relaciones existentes entre ellas, los principales campos de las mismas. No es necesario llegar al máximo nivel de detalle (restricciones, índices, triggers, etc.), que se incluiría durante el diseño del sistema, pero sí al menos indicar aquellos elementos relevantes desde el punto de vista funcional
RelacionesLas tablas estarán relacionadas con los requisitos de información que las originaron. Se debe usar el tipo de enlace "Realization" con origen en la tabla y destino en el requisito de información que la originó.

Las tablas estarán relacionadas entre sí mediante diversos tipos de relaciones. Dentro de la plantilla, en el diagrama "Modelo de Datos (Fisico)" se puede ver un ejemplo detallado.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameTABYYY-XXX - NombreEn el caso de las tablas, La nomenclatura es de obligado cumplimiento para el campo alias, pero no para el campo nombre. Los elementos incluidos en la plantilla a modo de ejemplo sirven únicamente como referencia para el modelado, normalmente el nombre de las tablas seguirá la nomenclatura específica para base de datos del SAS.
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasTABYYY-XXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 
CamposSólo en entregas asociadas a la fase de Diseño del SistemaTable Detail (Columns) Se debe incluir el nombre (Name), el tipo ("Type" y además "Length" y "Scale" cuando aplique) y la descripción de manera obligatoria, y las columnas "PK" y "Not Null" cuando aplique.
RestriccionesSólo en entregas asociadas a la fase de Diseño del SistemaTable Detail (Constraints) Se debe incluir el nombre (Name), el tipo (Type), la descripción (Notes) y, cuando aplique, los campos relacionados (Involved Columns) y/o la condición (Condition).

Se modelarán de igual manera índices y triggers (en el campo "Statement" deberá incluirse la sentencia completa de creación del trigger).
 


Caso de Prueba 

Caso de Prueba (estereotipo "Caso de Prueba")
NomenclaturaCPYYY-XXX - Nombre(YYY coincidirá con el número asociado al subsistema al que pertenece el caso de prueba (SUBYYY - Nombre), XXX será un número de tres dígitos que no podrá repetirse. En caso de ser necesario se podrán utilizar más de tres dígitos.).

En el caso de no agrupar los casos de prueba por subsistemas se usará la notación habitual con sólo un nivel (CPXXX).
ObservacionesSe ha creado un estereotipo que amplía al predefinido de Enterprise Architect ("Use Case" - "testcase"). Este estereotipo está disponible en la plantilla dentro de "Modelado del Sistema" (Toolbox). Como ejemplos de secuencia alternativa y excepción se pueden tomar los mismos que en los casos de uso.
RelacionesLos casos de prueba estarán relacionados con los casos de uso cuyo comportamiento comprueban. Se debe usar el tipo de enlace "Realization" con origen en el caso de prueba y destino en el caso de uso.

Los casos de prueba podrán estar relacionados con las interfaces a través de servicios cuyo comportamiento comprueban. Se debe usar el tipo de enlace "Realization" con origen en el caso de prueba y destino en la interfaz a través de servicios. No es necesario indicar que web services del interfaz a través de servicio están asociadas al caso de prueba.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameCPYYY-XXX - Nombre 
DescripciónXDescription En este apartado se incluirán en caso de ser necesario las evidencias asociadas a las pruebas llevadas a cabo por el proveedor.
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasCPYYY-XXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 
Prueba de autorizaciónXModelado del Sistema (Prueba de autorizacion)

No

Indica si el caso de prueba pertenece al conjunto de casos de prueba de autorización.
Resultado de la ejecución del proveedor Modelado del Sistema (Resultado ejecucion proveedor)

Favorable

No favorable

Indica el resultado de la ejecución del caso de prueba por parte del proveedor (obligatorio en la entrega asodicada a la fase de construcción)
Smoke testXModelado del Sistema (Smoke test)

No

Indica si es un caso de uso del tipo Smoke test
Precondición Constraint (Type = Pre-Condition)PrecondicionSe debe incluir la descripción en el campo correspondiente. Si hay más de una al resto se le añadirá una pequeña descripción a continuación de "Precondicion"
Criterios de aceptación Constraint (Type = Post-Condition)Criterios de AceptacionSe debe incluir la descripción en el campo correspondiente.
Secuencia normalXScenarios (Type = Basic-Path)Secuencia normalSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification" tomando como referencia el ejemplo de la plantilla.
Secuencia alternativa Scenarios (Type = Alternate)Secuencia alternativa - NombreSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification", así como el punto de entrada, todo ello tomando como referencia el ejemplo de la plantilla. Puede haber más de una en cada caso de uso.
Excepción Scenarios (Type = Exception)Excepcion - NombreSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification", así como el punto de entrada, todo ello tomando como referencia el ejemplo de la plantilla. Puede haber más de una en cada caso de uso.
 


Caso de Prueba de Integración 

Caso de Prueba de Integración (estereotipo "Caso de Prueba")
NomenclaturaCPIXXX - Nombre
ObservacionesSe ha creado un estereotipo que amplía al predefinido de Enterprise Architect ("Use Case" - "testcase"). Este estereotipo está disponible en la plantilla dentro de "Modelado del Sistema" (Toolbox). Se han incluido los siguientes casos de prueba predefinidos:
 

BDU:

  • CPI-BDU1 - Busqueda BDU por NUSS
  • CPI-BDU2 - Busqueda BDU por NUHSA
  • CPI-BDU3 - Busqueda BDU por IPF
  • CPI-BDU4 - Busqueda BDU por NUHSA no Existente
  • CPI-BDU5 - Busqueda BDU por NUSS no Existente
  • CPI-BDU6 - Busqueda BDU por IPF no existente
  • CPI-BDU7 - Alta a Nuevo Usuario en BDU
  • CPI-BDU8 - Alta de Nuevo Usuario ya existente en BDU
  • CPI-BDU9 - Alta de Nuevo Usuario con un DNI erróneo
  • CPI-BDU10 - Alta de Nuevo Usuario sin indicar un campo obligatorio
 

ESB:

 
  • Provisión de servicios
    • CPI-ESB1 - Mensaje correcto
    • CPI-ESB2 - Ticket caducado
    • CPI-ESB3 - Encoding UF-8
    • CPI-ESB4 - Ticket caducado pero valido en fecha
    • CPI-ESB5 - Ticket incorrecto
    • CPI-ESB6 - Mensaje no cumple esquema
    • CPI-ESB7 - Ticket a futuro
    • CPI-ESB8 - Rendimiento
  • Consumo de servicios
    • CPI-ESB9 - Mensaje con esquema correcto
    • CPI-ESB10 - Mensaje con contenido correcto
    • CPI-ESB11 - Mensaje con nodos correcto
    • CPI-ESB12 - Envio encoding UF-8
    • CPI-ESB13 - Recepcion encoding UF-8
    • CPI-ESB14 - Reintentos

MACO:

  • CPI-MACO1 - Validar operador para el acceso al sistema en MACO
  • CPI-MACO2 - No validar operador en MACO con contraseña incorrecta
  • CPI-MACO3 - No validar operador en MACO con nombre de usuario incorrecto
  • CPI-MACO4 - No validar operador en MACO en estado operador bloqueado
  • CPI-MACO5 - Prevalidar el operador correctamente
  • CPI-MACO6 - No prevalidar operador con contraseña incorrecta
  • CPI-MACO7 - No prevalidar operador con nombre de usuario incorrecto
 

REST:

 
  • Provisión de servicios
    • CPI-REST1 - Numero de pagina negativo
    • CPI-REST2 - Numero de pagina no numerico
    • CPI-REST3 - Paginacion
    • CPI-REST4 - Numero de pagina no indicado
    • CPI-REST5 - Numero de pagina maximo
    • CPI-REST6 - Query params
    • CPI-REST7 - Consulta correcta
    • CPI-REST8 - Ticket incorrecto
    • CPI-REST9 - Ticket caducado
    • CPI-REST10 - Sin ticket
    • CPI-REST11 - Ticket sin permiso
    • CPI-REST12 - Recurso no existente
    • CPI-REST13 - Operación no existente
    • CPI-REST14 - Version no existente
    • CPI-REST15 - Error semantico
    • CPI-REST16 - Error interno
    • CPI-REST17 - Servicio no disponible
    • CPI-REST18 - Respuesta inválida
  • Consumo de servicios
    • CPI-REST19 - Numero de pagina negativo
    • CPI-REST20 - Numero de pagina no numerico
    • CPI-REST21 - Paginacion
    • CPI-REST22 - Numero de pagina no indicado
    • CPI-REST23 - Numero de pagina maximo
    • CPI-REST24 - Query params
    • CPI-REST25 - Consulta correcta
    • CPI-REST26 - Ticket incorrecto
    • CPI-REST27 - Ticket caducado
    • CPI-REST28 - Sin ticket
    • CPI-REST29 - Ticket sin permiso
    • CPI-REST30 - Recurso no existente
    • CPI-REST31 - Operación no existente
    • CPI-REST32 - Version no existente
    • CPI-REST33 - Error semantico
    • CPI-REST34 - Error interno
    • CPI-REST35 - Servicio no disponible
    • CPI-REST36 - Respuesta inválida
RelacionesLos casos de prueba de integración estarán relacionados con las interfaces a través de servicios cuyo comportamiento comprueban. Se debe usar el tipo de enlace "Realization" con origen en el caso de prueba de integración y destino en la interfaz a través de servicios.

En los casos de prueba asociados a servicios concretos dentro de una interfaz no es necesario llegar al detalle de crear una relación entre el caso de prueba y el web service concreto del interfaz, basta con la relación entre el caso de prueba y la interfaz. Es en el caso de prueba concreto asociado a cada servicio donde se detalla el servicio que se está probando.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameCPIXXX - Nombre 
DescripciónXDescription En este apartado se incluirán en caso de ser necesario las evidencias asociadas a las pruebas llevadas a cabo por el proveedor.
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasCPIXXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 
Prueba de autorizaciónXModelado del Sistema (Prueba de autorizacion)

No

Indica si el caso de prueba pertenece al conjunto de casos de prueba de autorización.
Resultado de la ejecución del proveedor Modelado del Sistema (Resultado ejecucion proveedor)

Favorable

No favorable

Indica el resultado de la ejecución del caso de prueba por parte del proveedor (obligatorio en la entrega asodicada a la fase de construcción)
Smoke testXModelado del Sistema (Smoke test)

No

Indica si es un caso de uso del tipo Smoke test
Precondición Constraint (Type = Pre-Condition)PrecondicionSe debe incluir la descripción en el campo correspondiente. Si hay más de una al resto se le añadirá una pequeña descripción a continuación de "Precondicion"
Criterios de aceptación Constraint (Type = Post-Condition)Criterios de AceptacionSe debe incluir la descripción en el campo correspondiente.
Secuencia normalXScenarios (Type = Basic-Path)Secuencia normalSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification" tomando como referencia el ejemplo de la plantilla.
Secuencia alternativa Scenarios (Type = Alternate)Secuencia alternativa - NombreSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification", así como el punto de entrada. Se puede tomar como ejemplo el caso de prueba de la plantilla "CP001-001 - Alta". Puede haber más de una en cada caso de uso.
Excepción Scenarios (Type = Exception)Excepcion - NombreSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification", así como el punto de entrada, todo ello tomando como referencia el ejemplo de la plantilla. Puede haber más de una en cada caso de uso.

 

La forma de trabajar con los casos de prueba predefinidos es la siguiente:

  • Los casos de prueba correspondientes a MACO y a BDU son genéricos, no están asociados a un servicio concreto como ocurre con los correspondientes al ESB, y deben ejecutarse siempre (en caso de que no apliquen debe modificarse su estado indicando "N/A"). Estos casos de prueba no deben eliminarse ni modificarse (ni siquiera su nomenclatura que es específica), salvo para añadir las relaciones con las interfaces de servicio que deban ser probadas por cada uno de ellos            así como el resultado de las pruebas llevadas a cabo por el proveedor. 
  • Los casos de prueba asociados al ESB y a los servicios REST deben ejecutarse todos ellos para cada uno de los servicios incluidos en los interfaces existentes (los del ESB en todos los servicios SOAP, excepto MACO y BDU, y los REST en todos los servicios REST). En este caso los casos de prueba se han incluido a modo de plantilla, para cada servicio deberán crearse los casos de prueba correspondientes a partir de los predefinidos ya existentes (los predefinidos incluidos a modo de plantilla no deben modificarse ni eliminarse). En estos casos de prueba específicos para cada uno de los servicios creados a partir de los casos de prueba predefinidos se deberán hacer los siguientes cambios:
    • Cambiar su estado a "Proposed".
    • En su descripción sustituir "[INDICAR SERVICIO]" por el nombre del servicio correspondiente.
    • Cambiar su nombre (y su alias) de acuerdo a la nomenclatura correspondiente a los casos de prueba de integración. Por ejemplo:

CPI-ESB1 - Mensaje correcto -> CPI001 - Mensaje correcto SERVICIO1

             CPI002 - Mensaje correcto SERVICIO2

          -

  • Se debe añadir la relación con la interface de servicio a la que pertenece el servicio a probar. 
  • Si es necesario añadir más casos de prueba además de los predefinidos (tanto para MACO y BDU como para ESB y REST) se crearán siguiendo las indicaciones anteriores y ajustándose a la nomenclatura y al formato descritos en la tabla que las precede.


Caso de Prueba Funcional de Interoperabilidad 

Caso de Prueba Funcional de Interoperabilidad (estereotipo "Caso de Prueba")
NomenclaturaCPFIXXX - Nombre
ObservacionesSe ha creado un estereotipo que amplía al predefinido de Enterprise Architect ("Use Case" - "testcase"). Este estereotipo está disponible en la plantilla dentro de "Modelado del Sistema" (Toolbox).
RelacionesLos casos de prueba funcionales de interoperabilidad estarán relacionados con las interfaces a través de servicios cuyo comportamiento comprueban. Se debe usar el tipo de enlace "Realization" con origen en el caso de prueba funcional de interoperabilidad y destino en la interfaz a través de servicios. No es necesario indicar que web services del interfaz a través de servicio están asociadas al caso de prueba funcional de interoperabilidad.

Los casos de prueba funcionales de interoperabilidad podrán estar relacionados con los casos de uso cuyo comportamiento comprueben. Se debe usar el tipo de enlace "Realization" con origen en el caso de prueba funcional de interoperabilidad y destino en el caso de uso.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameCPFIXXX - Nombre 
DescripciónXDescription En este apartado se incluirán en caso de ser necesario las evidencias asociadas a las pruebas llevadas a cabo por el proveedor.
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasCPFIXXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 
Prueba de autorizaciónXModelado del Sistema (Prueba de autorizacion)

No

Indica si el caso de prueba pertenece al conjunto de casos de prueba de autorización.
Resultado de la ejecución del proveedor Modelado del Sistema (Resultado ejecucion proveedor)

Favorable

No favorable

Indica el resultado de la ejecución del caso de prueba por parte del proveedor (obligatorio en la entrega asodicada a la fase de construcción)
Smoke testXModelado del Sistema (Smoke test)

No

Indica si es un caso de uso del tipo Smoke test
Precondición Constraint (Type = Pre-Condition)PrecondicionSe debe incluir la descripción en el campo correspondiente. Si hay más de una al resto se le añadirá una pequeña descripción a continuación de "Precondicion"
Criterios de aceptación Constraint (Type = Post-Condition)Criterios de AceptacionSe debe incluir la descripción en el campo correspondiente.
Secuencia normalXScenarios (Type = Basic-Path)Secuencia normalSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification" tomando como referencia el ejemplo de la plantilla.
Secuencia alternativa Scenarios (Type = Alternate)Secuencia alternativa - NombreSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification", así como el punto de entrada, todo ello tomando como referencia el ejemplo de la plantilla. Puede haber más de una en cada caso de uso.
Excepción Scenarios (Type = Exception)Excepcion - NombreSe deben incluir la descripción en el campo "Description" y los pasos en "Structured Specification", así como el punto de entrada, todo ello tomando como referencia el ejemplo de la plantilla. Puede haber más de una en cada caso de uso.


Excepción 

Excepción (estereotipo "Excepcion")
NomenclaturaEXCXXX - Nombre
ObservacionesSe ha creado un estereotipo que amplía al predefinido de Enterprise Architect ("Class" - "exception"). Este estereotipo está disponible en la plantilla dentro de "Modelado del Sistema" (Toolbox).
RelacionesLas excepciones estarán relacionadas con las clases que las generan, se debe usar el tipo de enlace "Usage" con origen en la clase que genera la exepción y destino en la excepción.

Las excepciones podrán estar relacionadas entre sí mediante diversos tipos de relaciones, al igual que ocurre con las clases. Podrán existir excepciones que sólo tengan relación con otras excepciones, siempre que estas últimas tengan relación con clases.
CampoObligatorioUbicaciónFormatoObservaciones
NombreXNameEXCXXX - NombreEn el caso de las excepciones, la nomenclatura es de obligado cumplimiento para el campo alias, pero no para el campo nombre. Los elementos incluidos en la plantilla a modo de ejemplo sirven únicamente como referencia para el modelado, normalmente el nombre de las clases seguirá la nomenclatura habitual de cada aplicativo (convenciones Java, Visual Basic, etc.).
DescripciónXDescription  
EstadoXStatus

Approved

Proposed

N/A

 
AliasXAliasEXCXXX 
ComplejidadXComplexity

Easy

Medium

Dificult

 
Versión(versión y release)XVersionvXXrXX 
CausaXModelado del Sistema (Causa) Causa de la excepción.
MensajeXModelado del Sistema (Mensaje) Mensaje de error reportado.