รูปแบบการวิเคราะห์ซอฟต์แวร์คืออะไร?

รูปแบบการวิเคราะห์ซอฟต์แวร์เป็นวิธีการออกแบบโปรแกรมคอมพิวเตอร์โดยใช้กระบวนการเชิงนามธรรมหรือรูปแบบเท่ากับการทำงานของโปรแกรมที่กำลังพัฒนา แนวคิดคือการเปรียบเทียบรูปแบบบางประเภทที่ทำงานได้อย่างมีประสิทธิภาพในบางบริบทโดยปกติในโลกแห่งความเป็นจริงจากนั้นจึงใช้ตรรกะเดียวกันและบางครั้งคำศัพท์ของรูปแบบกับโปรแกรมที่กำลังออกแบบ โดยการประเมินการทำงานโดยรวมของโปรแกรมหรือโมดูลด้วยวิธีนี้เป้าหมายคือการหารูปแบบที่เล็กลงในระหว่างการวิเคราะห์ซอฟต์แวร์และอาจมีรูปแบบการออกแบบที่เหมาะสมเพื่อเริ่มต้นหารายละเอียดการใช้งานจริง แตกต่างจากรูปแบบการออกแบบที่มักใช้เพื่อช่วยในการนำการออกแบบและรหัสไปใช้รูปแบบการวิเคราะห์ซอฟต์แวร์มีวัตถุประสงค์เพื่อจัดทำกรอบการคิดเกี่ยวกับโครงการเพื่อให้มองเห็นความซับซ้อนได้ดีขึ้น ไม่มีคำจำกัดความที่เป็นทางการสำหรับการใช้หรือการพัฒนารูปแบบการวิเคราะห์ซอฟต์แวร์แม้ว่าจะมีหลายตัวอย่างของรูปแบบอยู่

ในช่วงเริ่มต้นของการพัฒนาซอฟต์แวร์รูปแบบการวิเคราะห์ซอฟต์แวร์มีจุดประสงค์เพื่อช่วยในการจัดโครงสร้างมุมมองที่กว้างของโปรแกรมและความสัมพันธ์ของส่วนต่าง ๆ ของโปรแกรม รูปแบบนั้นมีไว้สำหรับการวิเคราะห์เชิงนามธรรมอย่างไรก็ตามไม่ใช่สำหรับการทำงานในรายละเอียดที่เล็กกว่าของแอปพลิเคชันเช่นวิธีการเฉพาะตัวแปรหรือรูปแบบไฟล์ เหตุผลหนึ่งที่ทำให้เกิดนามธรรมก็คือแนวคิดของรูปแบบการวิเคราะห์ซอฟต์แวร์เพียงอย่างเดียวสามารถปรับเปลี่ยนได้เพียงเล็กน้อยจากนั้นนำกลับมาใช้ใหม่สำหรับซอฟต์แวร์อื่น ๆ ที่ในความเป็นจริงแล้วอาจมีการทำงานที่แตกต่างกัน

เมื่อพัฒนารูปแบบการวิเคราะห์ซอฟต์แวร์ตัวอย่างที่ใช้งานจริงมักใช้บ่อยที่สุด ตัวอย่างหนึ่งอาจใช้ที่ทำการไปรษณีย์เป็นรูปแบบการวิเคราะห์ซอฟต์แวร์สำหรับเซิร์ฟเวอร์ข้อความอย่างง่าย ในตัวอย่างนี้ตัวอักษรจะแสดงถึงข้อความและตราประทับอาจแสดงถึงการตรวจสอบเซิร์ฟเวอร์บางประเภท กล่องจดหมายกลายเป็นคิวข้อความและเวลาการรับและส่งจะถูกผูกไว้กับกระบวนการส่งและรับ ด้วยวิธีนี้โครงสร้างที่ซับซ้อนของแอ็พพลิเคชันสามารถแยกออกและคิดในรูปแบบที่เป็นรูปธรรมมากขึ้นจนคำศัพท์ของแหล่งที่มาของรูปแบบมักจะสามารถแปลเป็นชื่อของคลาสหรือส่วนประกอบของโปรแกรมในระหว่างนั้น การดำเนินงาน

ภาวะแทรกซ้อนอาจเกิดขึ้นเมื่อใช้รูปแบบการวิเคราะห์ซอฟต์แวร์โดยเฉพาะอย่างยิ่งสำหรับโปรแกรมที่มีขนาดใหญ่มาก การทำให้โปรแกรมง่ายขึ้นมากเกินไปในระหว่างการพัฒนาจึงเป็นไปได้ดังนั้นระบบย่อยบางระบบอาจในระหว่างการนำไปใช้งานจะไม่ตกอยู่ในรูปแบบการวิเคราะห์ที่เกิดขึ้นจริง อีกทางหนึ่งรูปแบบอาจถูกจัดโครงสร้างเพื่อให้เหตุการณ์ในโปรแกรมนั้นถูกสร้างแบบจำลองในลักษณะที่ตรงกับรูปแบบและมีความชัดเจน แต่อาจไม่จำเป็นต้องมีประสิทธิภาพมากนัก