Wzorzec analizy oprogramowania to metoda projektowania programu komputerowego poprzez zrównanie abstrakcyjnych procesów lub wzorców z działaniem opracowywanego programu. Koncepcja polega na porównaniu pewnego rodzaju wzorca, który działa skutecznie w pewnym kontekście, zwykle w świecie rzeczywistym, a następnie zastosowanie tej samej logiki, a czasem terminologii wzorca, do projektowanego programu. Oceniając w ten sposób ogólne funkcjonowanie programu lub modułu, celem jest znalezienie mniejszych wzorców podczas analizy oprogramowania i potencjalnie odpowiednich wzorców projektowych, aby rozpocząć opracowywanie rzeczywistych szczegółów implementacji. W przeciwieństwie do wzorców projektowych, które często są używane do wspomagania implementacji projektowania i tworzenia kodu, wzorzec analizy oprogramowania ma raczej na celu zapewnienie ram do myślenia o projekcie, dzięki czemu złożoność jest lepiej wizualizowana. Nie ma formalnej definicji użycia lub rozwoju wzorca analizy oprogramowania, chociaż istnieje kilka przykładów wzorców.
Na początkowych etapach tworzenia oprogramowania wzorzec analizy oprogramowania ma na celu pomoc w konstruowaniu szerokiego widoku programu i wzajemnych powiązaniach jego części. Wzorzec jest jednak przeznaczony do analizy abstrakcyjnej, a nie do opracowywania drobnych szczegółów aplikacji, takich jak poszczególne metody, zmienne czy formaty plików. Jednym z powodów abstrakcji jest to, że koncepcja pojedynczego wzorca analizy oprogramowania może być tylko nieznacznie zmodyfikowana, a następnie ponownie wykorzystana w innym oprogramowaniu, które w rzeczywistości może wykonywać zupełnie inne zadanie.
Podczas opracowywania wzorca analizy oprogramowania najczęściej wykorzystuje się przykłady ze świata rzeczywistego. Jednym z przykładów może być użycie poczty jako wzorca analizy oprogramowania dla prostego serwera wiadomości. W tym przykładzie litery będą reprezentować wiadomość, a stempel może reprezentować pewien rodzaj weryfikacji serwera. Skrzynka pocztowa staje się kolejką wiadomości, a czasy odbioru i nadania są powiązane z procesami wysyłania i odbierania. W ten sposób złożoną strukturę aplikacji można wyabstrahować i przemyśleć w sposób bardziej konkretny, do tego stopnia, że terminologia źródła wzorca często przekłada się na nazwy klas lub komponentów samego programu podczas realizacja.
Komplikacje mogą wystąpić podczas korzystania z wzorca analizy oprogramowania, zwłaszcza w przypadku bardzo dużych programów. Możliwe jest nadmierne uproszczenie programu podczas opracowywania, więc niektóre podsystemy mogą podczas wdrażania nie mieścić się ściśle w ramach wzorca analitycznego po zrealizowaniu. Alternatywnie wzorzec może być tak skonstruowany, że zdarzenia w programie są modelowane w sposób, który pasuje do wzorca i są jasne, ale niekoniecznie muszą być bardzo wydajne.