[Project Combat: Nucleic Acid Detection Platform] Capítulo 1 Engenharia reversa

introdução

Prepare-se para fazer uma série de projetos de combate, selecione alguns projetos representativos com dificuldade moderada e escala apropriada e analise-os de diferentes ângulos e profundidades. Muitos iniciantes reclamam que não há projetos práticos, e não há nada de novo na má gestão de alunos, gestão de bibliotecas, e-commerce e outros projetos utilizados em escolas/instituições. Recentemente, por motivos de trabalho, trouxe um lote de projetos de combate reais para a universidade. Por meio desse projeto de combate real, ganhei alguma experiência, então resolvi os projetos de combate reais desta vez. Espero que seja útil para iniciantes.

Esta série não apresentará os vários usos de muitas tecnologias. É mais sobre apresentar todo o trabalho que um projeto experimentou desde o início. Em muitos casos, ele não escolherá uma tecnologia muito útil. Pode escolher alguns métodos relativamente estúpidos, como: escolha usar in MyBatise , porque espero que os iniciantes prestem mais atenção ao pensamento e às habilidades básicas de resolução de problemas, em vez de exibir algumas ferramentas. Quando suas funções básicas estiverem esgotadas, é hora de pensar em procurar ferramentas mais convenientes.MyBatisPlusMyBatis

Todo mundo já experimentou o teste de ácido nucleico, e agora o teste de ácido nucleico é inseparável da plataforma de teste de ácido nucleico.Eu me pergunto se os programadores já pensaram em como essa plataforma é realizada.

Estou interessado em participar do teste de ácido nucleico como voluntário e tenho algum conhecimento sobre esta plataforma. Este projeto não é complicado em termos de função. As tabelas de banco de dados envolvidas podem não ter 20, mas a lógica de negócios é interligada. .

Ao mesmo tempo, envolve múltiplos fins e múltiplos papéis. Os iniciantes podem ter alguns conceitos superficiais sobre o design de projetos multiterminais.

Do ponto de vista da demanda, não é uma simples adição, exclusão, modificação e consulta.Muitas vezes há um relacionamento entre as páginas, portanto não será tão chato de fazer.

Quando a simultaneidade não é necessária, o projeto pode ser muito simples, o que é muito adequado para iniciantes praticarem;

Considerando a simultaneidade, é muito adequado para redismicrosserviços e outras otimizações, e também pode ser otimizado em profundidade.

Pode-se dizer que, de muitas perspectivas, este projeto é um dado de ensino muito bom.

Portanto, o primeiro projeto desta série adota a ideia de engenharia reversa para fazer "Nucleic Acid Detection Platform"

Projeto de Combate: Plataforma de Detecção de Ácido Nucleico Capítulo 1 Engenharia Reversa

insira a descrição da imagem aqui

Objetivos deste capítulo

Concluir a análise de necessidades do projeto

Ponto-chave: Deduza funções invisíveis com base em funções visíveis

Visão Geral do Projeto

A plataforma de projeto de teste é uma plataforma de teste desenvolvida pela Neusoft, e vídeos de treinamento relacionados também podem ser encontrados na Internet. Para entender os requisitos claramente, você deve assistir aos vídeos de treinamento com atenção.

https://www.bilibili.com/video/av596102734/?vd_source=cd85f68bf727f315e1776859a5694e1f

Além disso, há um artigo oficial da conta apresentando o APP do coletor

https://mp.weixin.qq.com/s/USOiDdhrOy0zxK3WjAH1kQ

Este é um vídeo de treinamento relativamente antigo. Na verdade, foi atualizado para oferecer suporte à leitura de código QR para coletar e detectar informações de pessoas, o que melhora muito a eficiência do trabalho.

Através do vídeo, podemos perceber que o projeto envolve os seguintes tipos de pessoas (ou funções) que utilizam a plataforma:

  1. Coletores: APPconcluindo a tarefa de coletar informações de teste de ácido nucleico
  2. Pessoal de transbordo: APPconcluindo as tarefas de coleta de informações necessárias durante o processo de transbordo
  3. Testadores: Envie os resultados do teste por meio da plataforma
  4. Usuários comuns (pessoas comuns): Consultar os resultados do teste de ácido nucleico por meio da plataforma. Após a atualização atual, os usuários comuns ainda precisam gerar códigos de teste de ácido nucleico por meio da plataforma para coletar informações durante o teste de ácido nucleico e consultar pontos de coleta de teste de ácido nucleico por meio de contas oficiais e outras plataformas

análise de demanda

Os alunos que cursam desenvolvimento de software sabem que o software precisa ser analisado primeiro, mas esse projeto é desenvolvido por engenharia reversa, e alguns dos requisitos já estão disponíveis a partir das informações pesquisadas na Internet, só precisamos classificá-los. O mais importante é o fluxograma abaixo.

O que é engenharia reversa?

O Baidu tem a resposta para essa pergunta, mas é um pouco difícil de entender, e a palavra soa grandiosa, mas em termos leigos, na verdade é uma imitação. É isso mesmo, a engenharia reversa é extremamente vergonhosa em muitos campos e muitas vezes é apelidada de imitação e plágio.No entanto, na indústria de software, a engenharia reversa é uma habilidade essencial para a melhoria do aprendizado e análise de demanda e deve ser dominada.

Processo de negócio

Fluxogramas em vídeos de treinamento

De acordo com o fluxograma, podemos ver o fluxo de trabalho geral do teste de ácido nucleico. Como pessoas comuns, devemos pelo menos passar pelas mãos do pessoal de coleta, pessoal de transferência e agências de teste para provar que estamos seguros. Além disso, testes de ácido nucleico para todos os funcionários são realizados várias vezes a cada turno, e muita mão de obra, recursos materiais e financeiros são usados ​​a cada vez. Pessoas loucas.

No entanto, os usuários da plataforma global envolvem um grande número de pessoas, sejam eles coletores ou pessoal de transbordo, podem ser jovens de 20 anos ou mais de 50 tios e tias. O design do APP deve considerar o sistema Fácil de usar. Portanto, as funções desta plataforma podem não ser complicadas, mas devem ser fáceis de usar. De qualquer forma, a análise de demanda ainda precisa listar as funções.Vamos dar uma olhada nas funções visíveis que podem ser encontradas nos dados.

Lista de funções: É um método muito simples e eficaz para análise de requisitos. Engenheiros experientes podem conhecer a estrutura geral do sistema apenas olhando a lista de funções. No cérebro, todo o sistema se desenvolve (naobu) em um instante. Como engenheiro júnior, você deve praticar frequentemente o método de listagem de funções.

função visível

A função visível aqui referida refere-se aos pontos de função extraídos dos materiais de formação, artigos e interface que podem ser visualizados após o download da APP, que inclui grosso modo os seguintes conteúdos:

equipe de cobrança

  • Cadastro: Como o pessoal da coleta envolve diversas áreas, a função de cadastramento é aberta para facilitar o cadastramento do pessoal da coleta, havendo uma distinção entre voluntários e equipe médica.

  • Conecte-se:

  • Selecione o ponto de coleta

    • Selecione pontos de coleta em escala
    • Código do site de varredura normalizado
  • Digitalize o código da caixa para abrir a caixa

  • Escaneie o código do tubo de ensaio para abrir o tubo

  • ID da digitalização

  • Tubo de vedação

  • Sele a caixa

  • Alterar senha: Embora esta função não esteja disponível no processo, APPela está disponível nele

  • esqueça a senha

As informações que podem ser vistas na Internet incluem apenas esses conteúdos, e esses são apenas os primeiros grandes conteúdos do processo. Não há outras funções, portanto, podemos apenas compensar.

Brainstorming do processo geral

Os processos e funções que vimos são apenas uma pequena parte de toda a plataforma, e o fluxograma no vídeo de treinamento está definitivamente incompleto e mostra apenas a parte relacionada ao pessoal de aquisição. Se você quiser fazer perguntas neste momento, você tem que fazer perguntas. Muitas coisas parecem ser um dado adquirido, mas na verdade alguém está nos bastidores. Por exemplo, quando estamos fazendo a coleta de ácido nucleico, o pessoal vai escanear o tubo de ensaio e escaneie o código da caixa de transbordo. Aí vem o problema:

  • De onde vêm os códigos de barras dos códigos dos tubos de ensaio e dos códigos das caixas? Tem algo a ver com a plataforma ao imprimir códigos de barras e quem é o responsável por imprimi-los.

Problemas semelhantes são:

  • Existem muitos dados no ponto de coleta, de onde vêm esses dados?
  • Províncias, cidades, distritos, ruas e instituições hospitalares saem automaticamente quando se cadastram.De onde vêm esses dados?
  • Qual é a relação entre as agências de teste e o pessoal de coleta? Por que você precisa se vincular ao se registrar?
  • Qual é a função do pessoal de transferência?
  • O pessoal receptor da agência de testes parece fazer apenas uma operação: receber o código da caixa. Em seguida, os dados dos resultados do teste também são carregados pela agência de testes, como eles os carregaram e quem os carregou
  • O resultado do teste é carregado no Excel, é possível usar qualquer formulário do Excel?
  • O teste gerará custos, quem pagará os custos, quem receberá e como serão calculados os custos?
  • O que acontece se você testar positivo? Como os funcionários do governo em todos os níveis sabem que testaram positivo?

Se você pensar sobre esses problemas, você pode pensar muito.Se esses problemas forem colocados no desenvolvimento ágil, eles são histórias de usuários e também podem ser considerados problemas a serem resolvidos pela plataforma.

E para alguns problemas, não precisamos apenas considerar como fazer o sistema, mas também projetar como o sistema de software opera em combinação com o modo de trabalho offline, por exemplo:

  • Os códigos das caixas coletoras e dos tubos de ensaio são impressos casualmente? Esses códigos já são gerados no banco de dados na hora da impressão?

Após essas reflexões e suplementos cerebrais, pode-se obter uma solução completa, que não deve incluir apenas a parte do software, mas também o fluxo de trabalho offline. Assim, o fluxograma é o seguinte:

Fluxograma de brainstorming

Nota: Ao olhar para o fluxograma, você também deve prestar atenção à descrição do requisito ao lado dele.

função invisível

Resumindo o processo de constituição do cérebro, podemos obter as seguintes funções invisíveis:

Equipe de transferência

  • Registro, pessoal de transferência também precisa de muitos voluntários para participar, também deve precisar da função de registro
  • Conecte-se
  • Escaneie o código da caixa após selar
  • Confirmar inspeção

Recebendo pessoal da agência de testes

  • Para fazer login, a agência de testes é altamente profissional e deve ser um membro da equipe da agência de testes, porque algumas funções de registro podem não estar abertas, ele é atribuído pelo operador da plataforma ou atribuído pela agência de testes. Podemos compensar os operadores de plataforma para serem responsáveis ​​pela alocação
  • Escaneie o código da caixa de transbordo
  • Confirme o recebimento

A pessoa que carrega os resultados do teste da agência de testes

Este tipo de pessoal pode estar na mesma categoria do pessoal receptor, mas considerando que é melhor usar funções como impressão de códigos de barras e upload de resultados de testes EXCEL em um computador, esse tipo de pessoal deve ser separado.

  • O login e o upload dos resultados do teste devem ser funções mais importantes, deve haver um login e a conta não deve ser registrada. Porque é tão importante.
  • Carregue os resultados do teste EXCEL. O arquivo EXCEL carregado deve ter um formato fixo e não será capaz de reconhecer nada que seja carregado casualmente. Porque deve haver uma função de modelo de upload de dados de exportação/download, e a função de upload do EXCEL deve ser mais provável de ser usada no computador. Portanto, é possível que o upload dos resultados do teste EXCEL não seja uma função utilizada pelo destinatário.
  • Baixe o modelo de upload de dados
  • Para consultas/estatísticas de registro de testes, você deve saber que a agência de testes cobra uma taxa, mas essa taxa é paga pelo governo, e deve haver uma função de relatório para contar o volume de testes, o que é conveniente para acordo com o governo.

Operadores de plataforma

Se não houver acidente, a plataforma deve ser implantada em uma cidade, então deve haver uma organização responsável por operar e gerenciar toda a plataforma. Esse operador deve estar a cargo de um determinado departamento governamental. Pode-se inferir dos cérebros de os tipos anteriores de pessoal Parte da função do operador está fora.

  • Conecte-se
  • Agência de testes de manutenção, agência de testes de manutenção recebendo pessoal, pessoal de upload de dados
  • ponto de coleta de manutenção
  • Alarme positivo, esta função definitivamente existirá, não pergunte por que
  • Estatísticas de dados, contando o número de testes por agências de teste, relacionados a dinheiro, não pergunte por quê

requisitos não Funcionais

Muitos engenheiros ignoram esse requisito durante o estágio de pesquisa de requisitos.Os requisitos funcionais determinam a carga de trabalho do código em movimento, mas a quantidade de trabalho valioso para um projeto geralmente é determinada por requisitos não funcionais. Por exemplo:

  • A plataforma deve ser capaz de suportar 200.000 pessoas para usá-la online ao mesmo tempo
  • É necessário que o servidor seja recuperado em 30 minutos em caso de travamento, e o terminal possa continuar coletando trabalho, e os dados serão sincronizados automaticamente depois que o servidor estiver online.

Você já viu, apenas um requisito como esse pode valer a carga de trabalho de todo o desenvolvimento de requisitos funcionais.

Então o programador perguntou, se você tiver sorte o suficiente para fazer pesquisa de demanda no futuro, você deve fazer pesquisa de demanda não funcional.

O método de pesquisa é realmente muito simples. Basta preparar um conjunto de questionários de pesquisa de demanda não funcionais e respondê-los um a um. É claro que, no processo de comunicação com os clientes, as pessoas podem perguntar sobre o valor do investimento (tempo, dinheiro) corresponder a essas necessidades. Você tem que ter uma ideia em mente. Se eu tiver tempo mais tarde, escreverei um artigo sobre o questionário de pesquisa de requisitos não funcionais e os amigos interessados ​​​​não se perderão.

Para este projeto, acho que pode haver os seguintes requisitos não funcionais:

  • A interface é limpa e elegante, sem design de entretenimento
  • Ele pode suportar o uso normal de ácido nucléico para todos os cidadãos de uma cidade. (A população varia de um milhão a dezenas de milhões, o que é quase uma ordem de grandeza)
  • A velocidade de impacto da página é de 1,5 segundos. (Está coletando ali, APPnão pode ser alguns segundos de cada vez, a resposta deve ser rápida)
  • Desempenho estável, alta disponibilidade, APPnem o terminal nem o servidor podem travar facilmente e podem funcionar continuamente por mais de 12 horas, por que 12 horas, porque o pessoal do teste de ácido nucleico trabalha durante o dia, você deve pelo menos garantir que o sistema esteja funcionando normalmente durante o dia, se houver algum problema, para manter o sistema após a pausa na coleta de ácido nucléico. (É um trabalho árduo? É assim que os programadores trabalham horas extras)
  • Se o servidor travar, os coletores APPainda poderão funcionar e serão sincronizados automaticamente após a recuperação do servidor
  • O tempo de recuperação da falha do servidor não excede 30 minutos (o tempo é muito longo, APPos dados acumulados no terminal são demais, uma vez que ocorre um problema e uma grande quantidade de dados é perdida, esse problema é muito problemático)
  • Pode suportar o uso normal da maioria dos telefones Android
  • Em termos de segurança, uma pequena quantidade de dados inúteis pode ser permitida no final da coleta, mas os resultados do teste devem ser absolutamente seguros e não podem ser roubados ou adulterados. As informações de identidade do residente e as informações telefônicas devem ser mantidas estritamente confidenciais e não devem ser vazadas.

Bem, isso é quase todas as necessidades possíveis que posso imaginar. Pode-se dizer que esse requisito não é baixo, mas não há como, uma plataforma que envolve tantas pessoas deve ter requisitos muito altos de estabilidade e segurança.

No entanto, se formos um projeto de treinamento de mão júnior, não o consideraremos por enquanto ou consideraremos uma pequena parte dele.

Análise de Dificuldades Técnicas

Se você é freelancer ou patrão, ao receber um projeto, você deve avaliar a dificuldade técnica do projeto para decidir qual preço cotar e o prazo de construção. Portanto, este passo deve ser considerado mais importante.

Do ponto de vista funcional, toda a lista de projetos não apresenta dificuldades. Além do banco de dados CRUD, existem apenas os seguintes pontos técnicos:

  • A impressão de códigos de barras é bastante difícil de fazer sozinho, especialmente no modo B/S, mas existe uma coisa muito útil para impressão na WEB chamada lodup. Embora haja uma taxa, ainda é possível usá-lo como um programa de demonstração.
  • Escaneando o código, você pode saber este ponto após uma pesquisa, e existem muitas bibliotecas de classes que podem suportá-lo.Na verdade, escanear o código é transformar o código em uma string, e a lógica é muito simples.
  • Importar e exportar EXCEL, bem, o famoso POI dá conta disso, e também é possível usar o framework de otimização de POI EasyExcel.
  • Código de verificação de celular, isso requer uma plataforma de código de verificação de celular de terceiros, todos eles fornecem APIinterfaces e não é difícil.

OK No geral, sem considerar a quantidade de simultaneidade e estabilidade, este projeto não é muito difícil e existem componentes de terceiros correspondentes que podem completar as partes difíceis. Alunos interessados, entrem em contato comigo três vezes e vamos juntos desvendar o mistério da plataforma de teste de ácido nucleico.

Acho que você gosta

Origin blog.csdn.net/aley/article/details/127938623
Recomendado
Clasificación