Diseño a nivel de sistema. Parte 3: Vincular System Composer y la cadena de herramientas MathWorks

En los dos primeros partes del tutorial analizamos la construcción de la arquitectura del sistema y el diseño a nivel del sistema y, al mismo tiempo, observamos el Compositor del sistema. La arquitectura del sistema en sí es excelente, pero debe asegurarse de que esté conectada con el sistema desarrollado. La falta de dicha conexión en las herramientas tradicionales que usan SysML o UML, por cierto, fue la razón de la creación de System Composer. El hecho es que muchas empresas ya usan el paradigma del diseño orientado a modelos (MOS) para el desarrollo, y tuvieron que usar herramientas de terceros para la ingeniería de sistemas, lo cual era inconveniente. System Composer fue creado para cerrar esta brecha. En esta parte final del tutorial, mostraré cómo usar System Composer junto con la cadena de herramientas MathWorks para el diseño orientado a modelos.

Arquitectura vinculante a los requisitos


Primero, definamos cuáles son los requisitos. Los requisitos son lo que debe hacer el sistema. Sus diferencias con las especificaciones técnicas son que los requisitos son una descripción del funcionamiento del sistema. MATLAB / Simulink tiene una herramienta de gestión de requisitos de requisitos de Simulink. Le permite importar requisitos de sistemas externos, como IBM DOORS, y escribirlos en el Editor de requisitos nativo. Los requisitos mismos se almacenan en archivos especiales con la extensión * .slreqx. Cree los requisitos y guárdelos en el archivo AccessControl.slreqx. Formularemos los requisitos a partir del razonamiento de la primera parte:

  • Se debe proporcionar la lectura de la etiqueta RFID.
  • Los datos recuperados de la etiqueta RFID deben transferirse a una base de datos externa
  • Según la respuesta de la base de datos, se genera una prohibición o permiso
  • El usuario debe ser notificado del estado de acceso
  • El bloqueo se desbloquea según el estado de acceso

Estos requisitos se crearon en el Editor de requisitos, una herramienta de creación de requisitos incluida con los requisitos de Simulink y guardada en un archivo. Si abre este archivo en el modelo usando Perspectiva de requisitos, veremos lo siguiente:



Para adjuntar un requisito a un elemento de arquitectura, simplemente transfiera el requisito al elemento de arquitectura deseado con el mouse.

¿Y qué pasa si los requisitos han cambiado, como suele ser el caso en las primeras etapas de diseño? ¿Cómo analizar su impacto en nuestra arquitectura? Afortunadamente, Simulink Requisitos le permite realizar un seguimiento de los cambios en los requisitos y marca los elementos arquitectónicos que se vieron afectados por estos cambios:



Para analizar la cobertura de una arquitectura con requisitos, en la pestaña Requisitos, seleccione Compartir y luego Generar matriz de trazabilidad. Se creará una matriz de trazabilidad que muestre gráficamente las relaciones de requisitos y elementos. Esta matriz es una tabla, cuyas columnas son los elementos de arquitectura o modelo, las filas son los requisitos en sí mismos y las celdas contienen notas gráficas sobre la relación entre los requisitos y los elementos.

Y si hace clic en el botón Resaltar enlaces faltantes, los elementos descubiertos en la matriz se resaltarán en amarillo:



El análisis de la integridad de los requisitos y su trazabilidad es un proceso muy importante si crea un sistema crítico para la seguridad, no importa para un avión, automóvil o reactor nuclear. ¡Para tales sistemas no debe haber elementos descubiertos por los requisitos! Si está interesado en cómo se desarrollan estos sistemas y cómo se desarrollan en el paradigma MOS, escriba en los comentarios, ya que el tema es muy extenso y extenso y va más allá del alcance del tutorial.

Arquitectura Analítica en MATLAB


Dado que System Composer es parte de la cadena de herramientas MathWorks, podemos analizar las propiedades de la arquitectura, hacer informes y más. El análisis de la arquitectura le permite calcular la cantidad de horas de trabajo requeridas para implementar el sistema, el peso mínimo y las dimensiones, TDP, etc. Y si llevamos a cabo un análisis sistemático, y no una sola vez, entonces podemos ver la dinámica del desarrollo de nuestro sistema, así como encontrar áreas problemáticas.

Digamos que para nuestro ACS queremos calcular el número de horas de trabajo. Todos los componentes tienen una propiedad de carga de trabajo común, y obviamente necesitamos sumar los valores de estas propiedades. Para hacer esto, creemos una instancia de arquitectura para el análisis haciendo clic en el Modelo de análisis y luego seleccione el Componente genérico para el análisis:



Luego haga clic en el botón Instanciar y obtenga el siguiente resultado:



Aquí podemos asignar los valores de la propiedad Workload a cada elemento y hacer clic en el botón Actualizar para actualizar estos valores en la arquitectura misma. Y no tenemos que hacer clic, porque la instancia existe por separado de la arquitectura, y podemos jugar con los valores de las propiedades para encontrar compromisos del proyecto o encontrar valores de propiedades óptimos. El análisis en sí se realiza mediante una función separada creada en MATLAB. Aquí, por ejemplo, está el código para nuestra función "analítica":

function AccessControl_simple_analytics(instance,varargin)
if instance.isComponent()
workload = 0;    
    for child=instance.Components
        child_workload = child.getValue("GenericComponent.Workload");
        workload = workload + child_workload;
    end
instance.setValue("GenericComponent.Workload",workload);
end
end

Una vez creada la función, haga clic en Analizar y selecciónela en el menú Seleccionar función. Ahora, cuando se presiona el botón Analizar, se resumirá el valor de la propiedad Carga de trabajo:



este fue un ejemplo extremadamente simple de análisis de arquitectura y en tareas reales de combate, análisis, se utiliza todo el espectro de capacidades analíticas de MATLAB, como ajuste de curvas, análisis de regresión, etc.

Lo principal aquí es que podemos y debemos realizar un análisis sistemático de nuestra arquitectura para desarrollar el proyecto.

La relación de los componentes y su implementación.


Y finalmente, System Composer no es una herramienta separada que existe por separado de Simulink. Después de definir la arquitectura, cada uno de sus componentes se puede vincular a un modelo Simulink, ¡mientras puede seleccionar un modelo existente o crear un modelo automáticamente! Esto le permite ejecutar simulaciones y explorar las características de comportamiento del sistema directamente en System Composer.



Lo más importante, si se crea un modelo a partir de un componente, los puertos de entrada y salida con las interfaces necesarias se generan automáticamente en el modelo. Esta es una cuestión muy importante, ya que la integración de componentes generalmente se ralentiza debido a las interfaces de componentes inconsistentes, y las interfaces preconstruidas resuelven este problema. Cada modelo generado se puede entregar a un artista específico y estar tranquilo de que luego se integrará en la arquitectura

recomendaciones


En el transcurso de tres artículos, mostré las técnicas básicas de diseño a nivel de sistema. Es hora de hacer balance.

El diseño a nivel del sistema requiere un análisis bastante detallado de la tarea y requiere herramientas intuitivas. System Composer es una herramienta fácil de aprender y aprovecha al máximo la metodología de diseño orientada al modelo para crear y analizar arquitecturas de sistemas, así como las capacidades analíticas de MATLAB.

El uso de System Composer para un análisis exhaustivo de las decisiones de diseño nos permite comprender la naturaleza de los componentes e identificar posibles cuellos de botella en el sistema que de otro modo se encontrarían en las últimas etapas de desarrollo. Se pueden usar varios métodos para el análisis, desde el análisis del flujo de datos hasta el análisis numérico.

Y, como puede ver, el diseño a nivel del sistema no da nada de miedo, y las herramientas que admiten el diseño del sistema lo ayudan con esto.

¿Quiere saber más? Realizamos un seminario web introductorio sobre ingeniería de sistemas y, como parte de este seminario web, acabo de mostrar este tutorial. Y mi colega Mikhail Peselnik dijo por qué es necesaria la ingeniería de sistemas. El seminario web en sí está aquí .

All Articles