O que é um padrão de análise de software?
Um padrão de análise de software é um método de projetar um programa de computador, equiparando processos ou padrões abstratos com o funcionamento do programa que está sendo desenvolvido. O conceito é comparar algum tipo de padrão que funcione de maneira eficaz em algum contexto, geralmente no mundo real, e depois aplicar a mesma lógica e, às vezes, a terminologia do padrão ao programa que está sendo projetado. Ao avaliar o funcionamento geral de um programa ou módulo dessa maneira, o objetivo é encontrar padrões menores durante a análise de software e, potencialmente, padrões de design apropriados para começar a elaborar detalhes reais da implementação. Ao contrário dos padrões de design que geralmente são usados para ajudar a projetar a implementação e o código, um padrão de análise de software tem mais destinado a fornecer uma estrutura para pensar em um projeto para que as complexidades sejam melhor visualizadas. Não existe uma definição formal para o uso ou desenvolvimento de um padrão de análise de software, embora existam vários exemplos de padrões.
No início STAGES of Software Development, um padrão de análise de software visa ajudar a estruturar a visão ampla de um programa e como suas peças se relacionam. O padrão é destinado à análise abstrata, no entanto, e não para elaborar os detalhes menores de um aplicativo, como métodos individuais, variáveis ou formatos de arquivo. Uma razão para a abstração é, portanto, o conceito de um único padrão de análise de software pode ser modificado apenas ligeiramente e depois reutilizado para outro software que pode, na realidade, estar executando uma tarefa totalmente diferente.
Ao desenvolver o padrão de análise de software, os exemplos do mundo real são usados com mais frequência. Um exemplo pode estar usando um correio como um padrão de análise de software para um servidor de mensagens simples. Neste exemplo, as letras representariam uma mensagem e um carimbo pode representar algum tipo de validação do servidor. Uma caixa de correio se torna uma fila de mensagens, e o pick-uP e os tempos de entrega estão vinculados a enviar e receber processos. Dessa maneira, a estrutura complexa da aplicação pode ser abstraída e pensada de uma maneira mais concreta, tanto que a terminologia da fonte do padrão geralmente pode se traduzir nos nomes das classes ou componentes do próprio programa durante a implementação.
As complicações podem ocorrer ao usar um padrão de análise de software, especialmente para programas muito grandes. É possível simplificar demais um programa durante o desenvolvimento, para que alguns subsistemas possam, durante a implementação, não se enquadrar estritamente dentro do padrão analítico uma vez realizado. Como alternativa, um padrão pode ser tão estruturado que os eventos dentro do programa são modelados de uma maneira que corresponda ao padrão e são claros, mas podem não ser necessariamente muito eficientes.