Design no nível do sistema. Parte 3: Vinculando o System Composer e o MathWorks Toolchain

Nos dois primeiros Em algumas partes do tutorial, analisamos a construção da arquitetura do sistema e o design no nível do sistema e, ao mesmo tempo, o System Composer. A arquitetura do sistema em si é excelente, mas é necessário garantir que ele esteja conectado ao sistema desenvolvido. A falta dessa conexão nas ferramentas tradicionais usando SysML ou UML, a propósito, foi o motivo da criação do System Composer. O fato é que muitas empresas já usam o paradigma Model-Oriented Design (MOS) para desenvolvimento e tiveram que usar ferramentas de terceiros para engenharia de sistemas, o que foi inconveniente. O System Composer foi criado para preencher essa lacuna. Nesta parte final do tutorial, mostrarei como usar o System Composer junto com a cadeia de ferramentas MathWorks para design orientado a modelo.

Vinculando arquitetura a requisitos


Primeiro, vamos definir quais são os requisitos. Requisitos são o que o sistema deve fazer. Suas diferenças em relação às especificações técnicas são que os requisitos são uma descrição do funcionamento do sistema. O MATLAB / Simulink possui uma ferramenta de gerenciamento de requisitos do Simulink. Ele permite importar requisitos de sistemas externos, como o IBM DOORS, e gravá-los no Editor de Requisitos nativo. Os requisitos em si são armazenados em arquivos especiais com a extensão * .slreqx. Crie os requisitos e salve-os no arquivo AccessControl.slreqx. Formularemos os próprios requisitos a partir do raciocínio da primeira parte:

  • A leitura da etiqueta RFID deve ser fornecida.
  • Os dados recuperados da etiqueta RFID devem ser transferidos para um banco de dados externo
  • Com base na resposta do banco de dados, uma proibição ou permissão é gerada
  • O usuário deve ser notificado do status de acesso
  • O bloqueio é desbloqueado com base no status do acesso

Esses requisitos foram criados no Editor de Requisitos, uma ferramenta de criação de requisitos incluída no Simulink Requirements e salva em um arquivo. Se você abrir esse arquivo no próprio modelo usando a Perspectiva de Requisitos, veremos o seguinte:



Para anexar um requisito a um elemento da arquitetura, basta transferir o requisito para o elemento da arquitetura desejado com o mouse.

E se os requisitos forem alterados, como costuma acontecer nos estágios iniciais do design? Como analisar seu impacto em nossa arquitetura? Felizmente, o Simulink Requirements permite rastrear alterações nos requisitos e marca os elementos arquiteturais que foram afetados por essas alterações:



Para analisar a cobertura de uma arquitetura com requisitos, na guia Requisitos, selecione Compartilhar e, em seguida, Gerar Matriz de Rastreabilidade. Será criada uma matriz de rastreabilidade que exibe graficamente os relacionamentos de requisitos e elementos. Essa matriz é uma tabela, cujas colunas são os elementos da arquitetura ou modelo, as linhas são os próprios requisitos e as células contêm notas gráficas sobre o relacionamento entre os requisitos e os elementos.

E se você clicar no botão Realçar Links ausentes, os elementos descobertos na matriz serão destacados em amarelo:



A análise da abrangência da cobertura dos requisitos e sua rastreabilidade é um processo muito importante se você criar um sistema que é crítico para a segurança, não importa para um avião, carro ou reator nuclear. Para tais sistemas, não deve haver elementos descobertos pelos requisitos! Se você estiver interessado em saber como esses sistemas são desenvolvidos e como são desenvolvidos no paradigma MOS, escreva nos comentários, pois o tópico é muito extenso e longo e vai além do escopo do tutorial.

Análise de Arquitetura na MATLAB


Como o System Composer faz parte da cadeia de ferramentas MathWorks, podemos analisar as propriedades da arquitetura, fazer relatórios e muito mais. A realização de uma análise da arquitetura permite calcular o número de horas de trabalho necessárias para a implementação do sistema, o peso e dimensões mínimos, TDP e assim por diante. E se conduzirmos uma análise sistematicamente, e não apenas uma vez, poderemos ver a dinâmica do desenvolvimento do nosso sistema, bem como encontrar áreas problemáticas.

Digamos que, para o nosso ACS, queremos calcular o número de horas de trabalho. Todos os componentes têm uma propriedade comum de Carga de trabalho e, obviamente, precisamos adicionar os valores dessas propriedades. Para fazer isso, vamos criar uma instância de arquitetura para análise clicando no Modelo de Análise e, em seguida, selecione o GenericComponent para análise:



Em seguida, clique no botão Instanciar e obtenha o seguinte resultado:



Aqui, podemos atribuir os valores da propriedade Carga de trabalho a cada elemento e clicar no botão Atualizar para atualizar esses valores na própria arquitetura. E não precisamos clicar, porque a instância existe separadamente da arquitetura e podemos brincar com os valores das propriedades para encontrar comprometimentos no projeto ou encontrar os valores ideais das propriedades. A análise em si é realizada por uma função separada criada no MATLAB. Aqui, por exemplo, está o código para nossa função "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

Após a criação da função, clique em Analisar e selecione-a no menu Selecionar Função. Agora, quando o botão Analyze é clicado, o valor da propriedade Workload será somado:



Este foi um exemplo extremamente simples de análise de arquitetura e, em tarefas reais de combate e análise, todo o espectro de recursos analíticos do MATLAB é usado, como ajuste de curvas, análise de regressão, etc.

O principal aqui é que podemos e devemos conduzir uma análise sistemática de nossa arquitetura para desenvolver o projeto.

A relação dos componentes e sua implementação


E, finalmente, o System Composer não é uma ferramenta separada que existe separadamente do Simulink. Após definir a arquitetura, cada um de seus componentes pode ser vinculado a um modelo Simulink, enquanto você pode selecionar um modelo existente ou criar um modelo automaticamente! Isso permite executar simulações e explorar as características comportamentais do sistema diretamente no System Composer.



Mais importante, se um modelo é criado a partir de um componente, as portas de entrada e saída com as interfaces necessárias são geradas automaticamente no modelo. Essa é uma ninharia muito importante, pois a integração de componentes geralmente diminui devido a interfaces de componentes inconsistentes e as interfaces pré-criadas resolvem esse problema. Cada modelo gerado pode ser dado a um artista específico e ter a calma de que mais tarde será integrado à arquitetura

achados


Ao longo de três artigos, mostrei as técnicas básicas de design no nível do sistema. É hora de fazer um balanço.

Projetar no nível do sistema requer uma análise bastante detalhada da tarefa e ferramentas intuitivas. O System Composer é uma ferramenta fácil de aprender e aproveita ao máximo a metodologia de projeto orientada a modelo para criar e analisar arquiteturas de sistema, bem como os recursos analíticos do MATLAB.

O uso do System Composer para uma análise aprofundada das decisões de projeto nos permite entender a natureza dos componentes e identificar possíveis gargalos no sistema que, de outra forma, seriam encontrados nos estágios finais do desenvolvimento. Vários métodos podem ser usados ​​para análise - da análise de fluxo de dados à análise numérica.

E, como você pode ver, o design no nível do sistema não é nada assustador, e as ferramentas que suportam o design do sistema o ajudam.

Quer saber mais? Realizamos um webinar introdutório sobre engenharia de sistemas e, como parte deste webinar, acabei de mostrar este tutorial. E meu colega Mikhail Peselnik disse por que a engenharia de sistemas é necessária. O webinar em si está aqui .

All Articles