แบบจำลองฟังก์ชัน (Function Model) คืออะไร? เจาะลึกการออกแบบระบบ
สรุปใจความสำคัญ
- แบบจำลองฟังก์ชันเน้นการแสดงผลในรูปแบบกราฟิกเพื่ออธิบายกระบวนการและกิจกรรมภายในระบบ
- การแยกส่วนฟังก์ชัน (Functional Decomposition) ช่วยให้ระบบมีความเป็นโมดูล ทำให้ง่ายต่อการพัฒนาและบำรุงรักษา
- Data Flow Diagrams (DFD) เป็นหนึ่งในเครื่องมือยอดนิยมที่ใช้มุมมองเชิงฟังก์ชันในการวิเคราะห์ระบบ
ในทางวิศวกรรมระบบ (Systems Engineering), วิศวกรรมซอฟต์แวร์ (Software Engineering) และวิทยาการคอมพิวเตอร์ แบบจำลองฟังก์ชัน (Function Model หรือ Functional Model) คือการนำเสนอโครงสร้างของฟังก์ชันต่างๆ ภายในระบบหรือขอบเขตที่กำหนด ซึ่งฟังก์ชันเหล่านี้อาจอยู่ในรูปแบบของกิจกรรม (Activities), การดำเนินการ (Actions), กระบวนการ (Processes) หรือการปฏิบัติการ (Operations)
แบบจำลองฟังก์ชันมีความคล้ายคลึงกับแบบจำลองกิจกรรม (Activity Model) หรือแบบจำลองกระบวนการ (Process Model) โดยเป็นการแสดงผลในรูปแบบกราฟิกเพื่ออธิบายการทำงานขององค์กรภายในขอบเขตที่กำหนด โดยมีวัตถุประสงค์หลักเพื่ออธิบายกระบวนการทำงาน ช่วยในการค้นหาความต้องการด้านข้อมูล ระบุโอกาสในการปรับปรุง และเป็นพื้นฐานในการคำนวณต้นทุนของผลิตภัณฑ์และบริการ
ประวัติความเป็นมา
การสร้างแบบจำลองฟังก์ชันในด้านวิศวกรรมระบบและซอฟต์แวร์มีจุดเริ่มต้นในช่วงทศวรรษ 1950 และ 1960 อย่างไรก็ตาม การจำลองฟังก์ชันของกิจกรรมในองค์กรนั้นมีรากฐานย้อนกลับไปถึงปลายศตวรรษที่ 19
- ปลายศตวรรษที่ 19: เริ่มมีการใช้แผนภาพเพื่อแสดงกิจกรรมทางธุรกิจ กระบวนการ และการดำเนินการ
- ต้นศตวรรษที่ 20: เริ่มมีวิธีการที่มีโครงสร้างในการบันทึกกิจกรรมกระบวนการทางธุรกิจ เช่น Flow Process Chart ที่นำเสนอโดย Frank Gilbreth ในปี 1921 ซึ่งกลายเป็นเครื่องมือสำคัญในหลักสูตรวิศวกรรมอุตสาหการ
- ทศวรรษ 1940: การเกิดขึ้นของวิศวกรรมระบบที่ Bell Telephone Laboratories เพื่อจัดการกับความซับซ้อนของระบบในภาพรวม
- ทศวรรษ 1950-1960: การพัฒนา Functional Flow Block Diagram (FFBD) โดย TRW Incorporated และการนำไปใช้โดย NASA เพื่อให้เห็นลำดับเหตุการณ์ในระบบอวกาศและภารกิจการบิน
หัวข้อสำคัญในการสร้างแบบจำลองฟังก์ชัน
มุมมองเชิงฟังก์ชัน (Functional Perspective)
ในวิศวกรรมระบบและซอฟต์แวร์ แบบจำลองฟังก์ชันจะถูกสร้างขึ้นด้วย มุมมองเชิงฟังก์ชัน (Functional Modeling Perspective) ซึ่งเน้นไปที่การอธิบายกระบวนการที่มีพลวัต (Dynamic Process) โดยมีแนวคิดหลักคือ "กระบวนการ" (Process) ซึ่งอาจเป็นฟังก์ชัน การแปลงค่า กิจกรรม หรือภารกิจ
ตัวอย่างที่ชัดเจนของภาษาการจำลองที่ใช้มุมมองนี้คือ Data Flow Diagrams (DFD) ซึ่งใช้สัญลักษณ์ 4 ประการในการอธิบายกระบวนการ ได้แก่:
- Process (กระบวนการ): แสดงการแปลงจากข้อมูลนำเข้า (Input) เป็นข้อมูลส่งออก (Output)
- Store (แหล่งเก็บข้อมูล): การเก็บรวบรวมข้อมูลหรือวัสดุ
- Flow (การไหล): การเคลื่อนที่ของข้อมูลหรือวัสดุในกระบวนการ
- External Entity (เอนทิตีภายนอก): สิ่งที่อยู่นอกระบบที่จำลองไว้ แต่มีปฏิสัมพันธ์กับระบบ
การแยกส่วนฟังก์ชัน (Functional Decomposition)
การแยกส่วนฟังก์ชัน (Functional Decomposition) คือกระบวนการย่อยฟังก์ชันที่มีความสัมพันธ์กันออกเป็นส่วนประกอบย่อยๆ เพื่อให้สามารถเข้าใจส่วนประกอบเหล่านั้นได้ชัดเจนขึ้น หรือเพื่อให้ได้การนำเสนอที่กระชับขึ้น โดยมีเงื่อนไขว่าส่วนประกอบย่อยเหล่านี้เมื่อนำมารวมกันแล้วต้องสามารถสร้างฟังก์ชันเดิมกลับคืนมาได้
การแยกส่วนฟังก์ชันมีบทบาทสำคัญในหลายด้าน:
- การเขียนโปรแกรมคอมพิวเตอร์: มุ่งเน้นการทำให้กระบวนการเป็นโมดูล (Modularize) เช่น ระบบจัดการห้องสมุดที่ถูกแบ่งเป็น โมดูลคลังสินค้า, โมดูลข้อมูลผู้ใช้ และโมดูลการประเมินค่าธรรมเนียม
- วิศวกรรมระบบ: เป็นวิธีการวิเคราะห์ระบบวิศวกรรม โดยพยายามแบ่งระบบออกเป็นบล็อกที่แต่ละบล็อกมีหน้าที่การทำงานที่บริสุทธิ์ (Pure Function) ซึ่งช่วยให้สามารถนำกลับมาใช้ใหม่ (Reuse) หรือเปลี่ยนทดแทนได้ง่ายขึ้น และทำให้ส่วนต่อประสาน (Interface) ระหว่างบล็อกมีความเรียบง่ายและเป็นมาตรฐาน
วิธีการสร้างแบบจำลองฟังก์ชัน
แนวทางเชิงฟังก์ชันถูกขยายผลไปสู่เทคนิคการเขียนแผนภาพและการใช้สัญลักษณ์ที่หลากหลาย โดยหนึ่งในเทคนิคที่สำคัญคือ แผนภาพบล็อกฟังก์ชัน (Function Block Diagram) ซึ่งใช้เพื่ออธิบายฟังก์ชันและความสัมพันธ์ของระบบ โดยสามารถแสดงผลได้ดังนี้:
- ฟังก์ชันของระบบที่แสดงด้วยบล็อก (Blocks)
- ข้อมูลนำเข้าของบล็อกที่แสดงด้วยเส้น (Lines)
- ความสัมพันธ์ระหว่างฟังก์ชันต่างๆ
- ลำดับการทำงานและเส้นทางการไหลของวัสดุหรือข้อมูล
คำถามที่พบบ่อย
แบบจำลองฟังก์ชันแตกต่างจากแบบจำลองกระบวนการอย่างไร?
แม้จะมีความคล้ายได้กันมาก แต่แบบจำลองฟังก์ชันมุ่งเน้นที่ 'สิ่งที่ระบบต้องทำ' (What the system does) ในขณะที่แบบจำลองกระบวนการมักจะเน้นที่ 'วิธีการทำ' (How it is done) และลำดับขั้นตอนการทำงานในรายละเอียด
ประโยชน์ของการทำ Functional Decomposition คืออะไร?
ช่วยให้สามารถย่อยปัญหาที่ซับซ้อนให้กลายเป็นส่วนเล็กๆ ที่จัดการได้ง่ายขึ้น ลดความซับซ้อนของ Interface และทำให้ส่วนประกอบของระบบสามารถนำกลับมาใช้ใหม่ (Reuse) ได้
สัญลักษณ์พื้นฐานใน Data Flow Diagram (DFD) มีอะไรบ้าง?
ประกอบด้วย 4 สัญลักษณ์หลัก คือ Process (กระบวนการ), Store (แหล่งเก็บข้อมูล), Flow (การไหลของข้อมูล) และ External Entity (เอนทิตีภายนอก)