| ถาม | อธิบายความสำคัญของ "การรวบรวมและวิเคราะห์ความต้องการ (Requirements Gathering and Analysis)" ในขั้นตอนการออกแบบระบบ และหากขั้นตอนนี้นำไปสู่ข้อผิดพลาดจะส่งผลกระทบต่อโครงการอย่างไร | 
| ตอบ | การรวบรวมและวิเคราะห์ความต้องการเป็นขั้นตอนที่สำคัญที่สุดในการออกแบบระบบ เพราะเป็นรากฐานของทุกสิ่งที่จะตามมาในโครงการ การทำความเข้าใจอย่างถ่องแท้ว่าผู้ใช้ต้องการอะไร ปัญหาคืออะไร และระบบต้องทำอะไรได้บ้าง จะช่วยให้มั่นใจได้ว่าระบบที่พัฒนาขึ้นจะตอบโจทย์ทางธุรกิจได้อย่างแท้จริงและเป็นที่ยอมรับของผู้ใช้งาน หากเกิดข้อผิดพลาดในขั้นตอนนี้ เช่น การเก็บความต้องการไม่ครบถ้วนหรือไม่ถูกต้อง จะส่งผลกระทบอย่างรุนแรงต่อโครงการดังนี้:
 * งบประมาณและเวลาที่เกินกว่าแผน: เมื่อพบข้อผิดพลาดในภายหลัง จะต้องใช้เวลาและทรัพยากรจำนวนมากในการแก้ไข
 * ความล้มเหลวของโครงการ: ระบบที่พัฒนาออกมาอาจใช้งานไม่ได้จริง ไม่ตรงตามเป้าหมาย หรือผู้ใช้ไม่ยอมรับ ทำให้โครงการล้มเหลวในที่สุด
 * ความไม่พอใจของผู้ใช้งาน: ผู้ใช้งานจะไม่ได้รับเครื่องมือที่ช่วยแก้ปัญหาของพวกเขาได้จริง ซึ่งจะทำให้ประสิทธิภาพในการทำงานลดลงและขาดความเชื่อมั่นในทีมพัฒนา
 | 
| ถาม | อธิบายความแตกต่างระหว่างการออกแบบระบบเชิงตรรกะ (Logical Design) และการออกแบบระบบเชิงกายภาพ (Physical Design) พร้อมยกตัวอย่างสิ่งที่ต้องพิจารณาในแต่ละขั้นตอน | 
| ตอบ | * การออกแบบระบบเชิงตรรกะ (Logical Design): เป็นการออกแบบที่เน้น "สิ่งที่ระบบควรจะทำ" และ "ข้อมูลที่ระบบควรจะจัดเก็บ" โดยไม่สนใจเทคโนโลยีหรือแพลตฟอร์มที่ใช้จริงในภายหลัง เป็นการกำหนดโครงสร้างระบบในเชิงแนวคิดและตรรกะ สิ่งที่ต้องพิจารณา ในขั้นตอนนี้ได้แก่: - การออกแบบกระบวนการ (Process Design): กำหนดขั้นตอนการทำงานของระบบ
 - การออกแบบข้อมูล (Data Design): กำหนดเอนทิตี ความสัมพันธ์ และแอตทริบิวต์ของข้อมูล
 - การออกแบบส่วนติดต่อผู้ใช้ (Interface Design): ออกแบบหน้าจอการใช้งานคร่าวๆ
 * การออกแบบระบบเชิงกายภาพ (Physical Design): เป็นการนำการออกแบบเชิงตรรกะมาแปลงเป็นแผนปฏิบัติการที่สามารถนำไปสร้างจริงได้ โดยระบุถึงรายละเอียดทางเทคนิคทั้งหมด สิ่งที่ต้องพิจารณา ในขั้นตอนนี้ได้แก่:
 - การเลือกเทคโนโลยี: การตัดสินใจเลือกภาษาโปรแกรม, ฐานข้อมูล, และเซิร์ฟเวอร์
 - การออกแบบตารางฐานข้อมูล: การกำหนดชนิดข้อมูล (Data Type), ดัชนี (Index), และความสัมพันธ์ของตารางจริงในฐานข้อมูล
 - การออกแบบความปลอดภัย: กำหนดสิทธิ์การเข้าถึงข้อมูลและมาตรการป้องกันต่างๆ
 สรุปคือ การออกแบบเชิงตรรกะคือการ "วาดภาพรวม" ของระบบ ส่วนการออกแบบเชิงกายภาพคือการ "สร้างพิมพ์เขียว" เพื่อนำไปสร้างจริง
 | 
| ถาม | ระบบการจัดการเอกสาร (Document Management System - DMS) สามารถออกแบบโดยใช้สถาปัตยกรรมแบบ 3 ชั้น (3-Tier Architecture) ได้อย่างไรบ้าง และการออกแบบเช่นนี้มีประโยชน์อะไร | 
| ตอบ | สถาปัตยกรรมแบบ 3 ชั้นประกอบด้วย 3 ส่วนหลักคือ ชั้นนำเสนอ (Presentation Tier), ชั้นตรรกะทางธุรกิจ (Business Logic Tier), และชั้นข้อมูล (Data Tier) ระบบ DMS สามารถออกแบบโดยใช้สถาปัตยกรรมนี้ได้ดังนี้: 1.  ชั้นนำเสนอ (Presentation Tier): ส่วนนี้คือส่วนติดต่อผู้ใช้งาน เช่น เว็บเบราว์เซอร์หรือแอปพลิเคชันบนมือถือที่ผู้ใช้ใช้ในการอัปโหลด, ค้นหา, หรือดูเอกสาร
 2.  ชั้นตรรกะทางธุรกิจ (Business Logic Tier): ส่วนนี้คือส่วนประมวลผลคำสั่งทั้งหมด เช่น การตรวจสอบสิทธิ์การเข้าถึงเอกสาร, การแปลงไฟล์, การสร้างเวอร์ชันใหม่ของเอกสารเมื่อมีการแก้ไข
 3.  ชั้นข้อมูล (Data Tier): ส่วนนี้คือฐานข้อมูลหรือคลังข้อมูลที่ใช้จัดเก็บไฟล์เอกสารและข้อมูลเมตา (Metadata) ของเอกสาร เช่น ชื่อไฟล์, วันที่สร้าง, ผู้สร้าง
 ประโยชน์ของการออกแบบเช่นนี้คือ:
 * ความยืดหยุ่นและการบำรุงรักษา: สามารถแก้ไขหรืออัปเกรดแต่ละชั้นได้อย่างอิสระโดยไม่ส่งผลกระทบต่อชั้นอื่น
 * ความปลอดภัยที่เพิ่มขึ้น: ชั้นข้อมูลถูกแยกออกจากผู้ใช้โดยตรง ทำให้เพิ่มความปลอดภัยในการเข้าถึงข้อมูล
 * การขยายขนาด (Scalability): สามารถเพิ่มประสิทธิภาพการประมวลผลของแต่ละชั้นได้ตามความต้องการที่เพิ่มขึ้นอย่างอิสระ เช่น หากมีผู้ใช้งานจำนวนมากก็สามารถเพิ่มเซิร์ฟเวอร์ในชั้นนำเสนอหรือชั้นตรรกะทางธุรกิจได้
 |