D2
DAY 2 MASTER TEXTBOOK & QUIZ Chapter 1 · Module Structure (Static View) · 20 Questions
DAY 2 COMPLETE COMPENDIUM 10–15 MIN STUDY TIME 5 MODULE STRUCTURES

DAY 2: CHAPTER 1 — MODULE STRUCTURE
(มองโค้ดบนดิสก์ / STATIC VIEW)

เจาะลึกโครงสร้างแบบสถิต (Build-time View) ที่อยู่บนดิสก์และระบบควบคุมเวอร์ชัน องค์ประกอบความสัมพันธ์ และ 5 โครงสร้างย่อย (Decomposition, Uses, Layer, Class, Data Model) ที่กำหนดความง่ายในการแก้ไขโค้ด (Modifiability) และการแบ่งทีมพัฒนา พร้อม ควิซทดสอบความรู้ 20 ข้อ และเฉลยวิเคราะห์อย่างละเอียด

PART 1.1 STATIC / BUILD-TIME VIEW

นิยามของ Module Structure (มุมมองสถิตบนดิสก์)

ในหมวดหมู่แรกของ 3 Primary Structures สถาปัตยกรรมจะมองซอฟต์แวร์ในรูปแบบของโค้ดที่อยู่บนดิสก์ก่อนการรันประมวลผล:

Build-Time Focus
1. ELEMENTS MODULES

Modules (หน่วยโค้ด/ข้อมูล)

คือ หน่วยของโค้ดหรือข้อมูล (Code/Data Units) ที่ถูกกำหนดขอบเขตหน้าที่ความรับผิดชอบเชิงคำนวณ (Computational Responsibilities) ไว้อย่างชัดเจน

รูปธรรมตัวอย่าง:

Classes, Interfaces, Packages, Namespaces, Subsystems, Layers หรือไฟล์ซอร์สโค้ดใน Git Repository

⚡ จุดสังเกต: ยังไม่มี Thread, ไม่มี Memory Address ใน RAM
2. RELATIONS CODE RELATIONS

Code & Dependency Relations

ความสัมพันธ์ระหว่างโมดูลที่ปรากฏในโครงสร้างซอร์สโค้ด กำหนดการพึ่งพาและการจัดวางลำดับชั้น

ความสัมพันธ์หลัก:
  • is-part-of: การเป็นส่วนย่อยของโมดูลใหญ่
  • uses / depends-on: การเรียกใช้หรือพึ่งพาโค้ด
  • is-a / inherits-from: การสืบทอดคุณสมบัติ
  • allowed-to-use: กฎชั้นอนุญาตให้เรียกใช้
⚡ สถาปัตยกรรมจะคุมไม่ให้เกิด Cyclic Dependencies
3. PROPERTIES MODULE METADATA

คุณสมบัติของโมดูล

ข้อกำหนดและขอบเขตเฉพาะตัวที่ระบุว่าโมดูลนั้นทำอะไร และคนภายนอกเรียกใช้งานอย่างไรได้บ้าง

ข้อมูลที่บันทึก:
  • ขอบเขตความรับผิดชอบ (Primary Responsibilities)
  • จุดเชื่อมต่อสาธารณะ (Public API / Interface)
  • ผู้รับผิดชอบดูแล (Owner Team / Developer)
  • ข้อจำกัดการใช้งานและการทดสอบ
⚡ เป็นสัญญา (Contract) ระหว่างทีมพัฒนา
ENGINEERING VALUE

เป้าหมายทางวิศวกรรมสูงสุด: ควบคุม Modifiability & Work Assignment

Module Structure คือเครื่องมืออันดับ 1 ของสถาปนิกในการควบคุมและประเมิน Modifiability (ความง่ายในการแก้ไข) เพราะเมื่อ Business Requirement เปลี่ยนแปลง การแก้ไขย่อมเกิดขึ้นกับบรรทัดโค้ดในโมดูลบนดิสก์ ยิ่งไปกว่านั้น มันยังทำหน้าที่เป็น Work Assignment Structure ในการแบ่งทีมพัฒนาตามขอบเขตงานอย่างไม่ก้าวก่ายกัน

Golden Architectural Rule LOCAL CHANGE แก้โค้ดจบในโมดูลเดียว ไม่พังรวนทั้งแอป
PART 1.2 SEI ARCHITECTURE CATALOG

5 โครงสร้างย่อยในหมวด Module Structure (5 Key Module Views)

มาตรฐาน SEI จำแนก Module Structure ออกเป็น 5 โครงสร้างย่อยที่นำไปประยุกต์ใช้งานจริงอย่างเป็นรูปธรรม:

5 Sub-Structures
STRUCTURE 1 OF 5

1. Decomposition Structure (โครงสร้างการย่อยโมดูล)

Relation: is-a-submodule-of

แก่นทางวิศวกรรม (Engineering Essence)

ช่วยให้ระบบขนาดใหญ่ถูกย่อยเป็นชิ้นส่วนเล็กๆ แบบ Top-down จนมนุษย์สามารถทำความเข้าใจได้ง่าย เป็นจุดเริ่มต้นแรกสุดของการออกแบบระบบ สถาปนิกใช้มุมมองนี้ในการจัดสรรว่า หากมี Requirement เปลี่ยนแปลง การแก้ไขจะถูกจำกัดวงเป็น Local Change หรือจะระบาดกลายเป็น Nonlocal Change

Local vs Nonlocal Change: - Local Change: การแก้ไขจำกัดอยู่ภายใน Submodule เดียว (ต้นทุนต่ำ ดีเยี่ยม)
- Nonlocal Change: ต้องแก้โค้ดลุกลามข้ามหลายโมดูล (สัญญาณเตือนว่า Decomposition ไม่ Cohesive)

การนำไปใช้จริงในองค์กร (Practical Use)

Decomposition มักถูกใช้เป็น Dominant Structure เพราะมันสะท้อนตรงกับโครงสร้างโฟลเดอร์/แพ็กเกจในซอร์สโค้ด และเป็นฐานในการตั้งชื่อทีมพัฒนา (Work Assignment) เช่น ทีม Order Management, ทีม Payment, ทีม Catalog

Catchphrase สำหรับจดจำ: "ย่อยใหญ่เป็นย่อย คุมขอบเขตงาน ลดภาระสมอง เป็นฐานโฟลเดอร์โครงการ"
PART 2.0 DAY 2 EXAM SUITE

ควิซทดสอบความรู้ 20 ข้อ (Day 2 Comprehensive Quiz)

ครอบคลุมทั้ง 6 หมวดเนื้อหา Module Structure: นิยาม, Decomposition, Uses, Layer, Class/Data Model และการนำไปใช้จริง

Progress 0 / 20 ตอบแล้ว
Score 0 / 20
Filter by Topic:
PART 3.0

สารบัญเฉลยเร็ว (Day 2 Fast Answer Key Matrix)

ตารางตรวจสอบคำตอบที่ถูกต้องรวดเร็วทั้ง 20 ข้อประจำ Day 2

ข้อ 1: B
ข้อ 2: C
ข้อ 3: B
ข้อ 4: C
ข้อ 5: A
ข้อ 6: A
ข้อ 7: C
ข้อ 8: B
ข้อ 9: B
ข้อ 10: B
ข้อ 11: B
ข้อ 12: B
ข้อ 13: B
ข้อ 14: B
ข้อ 15: A
ข้อ 16: B
ข้อ 17: A
ข้อ 18: A
ข้อ 19: B
ข้อ 20: B
บันทึกสำเร็จ