Projete no nível do sistema. Parte 1. Da ideia ao sistema

Olá a todos. Frequentemente aplico princípios de engenharia de sistemas em meu trabalho e gostaria de compartilhar essa abordagem com a comunidade.

Engenharia de sistemas - sem padrões, mas simplesmente, é o processo de desenvolvimento de um sistema como componentes bastante abstratos, sem referência a amostras de dispositivos específicos. Durante este processo, são estabelecidas as propriedades dos componentes do sistema e as conexões entre eles. Além disso, é necessário tornar o sistema consistente e ideal e que o sistema atenda aos requisitos. Neste tutorial mostrarei técnicas de engenharia de sistemas usando o exemplo de projeto de um sistema de controle de acesso (ACS) bastante simples.

Formando a arquitetura inicial

Quando um sistema, seja qual for, apenas começa a ser desenvolvido, retângulos com setas aparecem em nossas cabeças ou no papel. Tais retângulos são componentes sistemas. E as flechas são Conexões entre componentes. E muitas vezes não temos tempo para sentar e pensar em como todos os componentes que definimos funcionarão uns com os outros e, no final, começamos a criar um monte de muletas, criando designs redundantes.

É importante lembrar que do ponto de vista do sistema e de sua arquitetura, um componente é algo bastante abstrato. Por exemplo, se nosso sistema possui um microcontrolador, então no nível arquitetônico só é importante para nós que seja um microcontrolador, e não que seja STM32, Arduino ou Milander. Além disso, muitas vezes não está claro para nós o que exatamente estará no sistema, e recorremos à engenharia de sistemas para desenvolver requisitos para equipamentos, software, etc.

Para o nosso exemplo com ACS, tentaremos formular o seu propósito. Isso nos ajudará a identificar seus componentes. Portanto, a tarefa do sistema de controle de acesso é permitir a entrada de um círculo limitado de pessoas na sala. Ou seja, é uma fechadura inteligente. Conseqüentemente, temos o primeiro componente – algum tipo de dispositivo que tranca e destranca a porta! Vamos ligar para ele Fechadura da porta

Como sabemos que uma pessoa pode entrar? Não queremos colocar vigia e verificar passaportes, não é mesmo? Vamos dar às pessoas cartões especiais com etiquetas RFID, nos quais registraremos identificações exclusivas ou outros dados que nos permitam identificar uma pessoa com precisão. Então, precisaremos de algum dispositivo que possa ler essas tags. Ótimo, temos mais um componente, Leitor RFID

Vejamos novamente o que obtivemos. Leitor RFID lê alguns dados, o sistema de controle de acesso faz algo com eles e, com base nisso, algo é controlado Fechadura da porta. Vamos fazer a seguinte pergunta - onde armazenar a lista de pessoas com direitos de acesso? Melhor em banco de dados. Portanto, nosso sistema deve ser capaz de enviar solicitações e processar respostas do banco de dados. Portanto, temos mais um componente - Manipulador de banco de dados. Portanto, recebemos uma descrição extremamente abstrata, mas suficiente para começar, do sistema. Entendemos o que deve fazer e como funciona.

Em vez de um pedaço de papel, usarei o System Composer, uma ferramenta especial para modelagem de arquiteturas de sistemas no ambiente Simulink, e criarei 3 componentes. Acima descrevi as conexões entre esses componentes, então vamos conectá-los imediatamente:

Projete no nível do sistema. Parte 1. Da ideia ao sistema

Expandindo a arquitetura

Vejamos nosso diagrama. Parece que está tudo bem, mas na realidade não está. Veja este sistema do ponto de vista do usuário - o usuário leva o cartão ao leitor e...? Como um usuário sabe se tem acesso permitido ou negado? É necessário notificá-lo de alguma forma sobre isso! Portanto, vamos adicionar mais um componente - notificação do usuário, Notificação de usuário:

Projete no nível do sistema. Parte 1. Da ideia ao sistema

Agora vamos descer para um nível inferior de abstração. Vamos tentar descrever alguns componentes com mais detalhes. Vamos começar com o componente Leitor RFID. Em nosso sistema, este componente é responsável pela leitura da etiqueta RFID. Sua saída deve conter alguns dados (UID, dados do usuário...). Mas espere, o RFID, assim como o NFC, é principalmente hardware, não software! Portanto, podemos supor que temos separadamente o próprio chip RFID, que transmite dados “brutos” para algum tipo de pré-processador. Portanto, temos um hardware abstrato que pode ler etiquetas RFID e um software abstrato que pode converter dados no formato que precisamos. Vamos ligar para eles Sensor RFID и Parser RFID respectivamente. Como exibir isso no System Composer? Você pode remover um componente Leitor RFID e colocar dois componentes, mas é melhor não fazer isso, caso contrário perderemos a legibilidade da arquitetura. Em vez disso, vamos entrar no RFIDReader e adicionar 2 novos componentes:

Projete no nível do sistema. Parte 1. Da ideia ao sistema

Ótimo, agora vamos notificar o usuário. Como o sistema notificará o usuário de que seu acesso às instalações foi negado ou permitido? Uma pessoa percebe melhor os sons e algo piscando. Portanto, você pode emitir um determinado sinal sonoro para que o usuário preste atenção e piscar o LED. Vamos adicionar os componentes apropriados ao Notificação de usuário:

Projete no nível do sistema. Parte 1. Da ideia ao sistema

Criamos a arquitetura do nosso sistema, mas há algo errado com ele. O que? Vejamos os nomes das conexões. No ônibus и Ônibus externo - nomes não muito normais que ajudariam o desenvolvedor. Eles precisam ser renomeados:

Projete no nível do sistema. Parte 1. Da ideia ao sistema

Portanto, analisamos como os métodos de engenharia de sistemas são aplicados na maior aproximação. Surge a pergunta: por que usá-los? O sistema é primitivo e parece que o trabalho realizado é desnecessário. Você pode escrever código imediatamente, projetar um banco de dados, escrever consultas ou soldar. O problema é que se você não pensar bem no sistema e entender como seus componentes estão conectados entre si, a integração dos componentes do sistema levará muito tempo e será bastante dolorosa.

A principal conclusão desta parte é:

A utilização de métodos de engenharia de sistemas e modelagem de arquitetura no desenvolvimento de sistemas permite reduzir os custos de integração de componentes e melhorar a qualidade do sistema desenvolvido.

Fonte: habr.com

Adicionar um comentário