OOAD Exam module 1

OOAD Exam module 1

📝 SET A (Questions 1–60)

OOAD & Fundamentals (1–15)

  1. What is the main goal of OOAD?

    • A) Writing code faster
    • B) Designing UI screens
    • C) Bridging requirements to code design
    • D) Database optimization
  2. OOAD focuses mainly on:

    • A) Algorithms
    • B) Objects, responsibilities, and interactions
    • C) Network protocols
    • D) UI color schemes
  3. Which statement best describes an object?

    • A) A database table
    • B) A function
    • C) An entity with identity, state, and behavior
    • D) A UML diagram
  4. Which is state of an object?

    • A) drive()
    • B) deposit()
    • C) balance
    • D) approve()
  5. Which is behavior?

    • A) roomNumber
    • B) status
    • C) createdAt
    • D) cancel()
  6. Class vs Object: which is correct?

    • A) Object is a blueprint
    • B) Class is a runtime entity
    • C) Class defines, Object is an instance
    • D) They are identical
  7. Which paradigm best matches real-world domains?

    • A) Procedural
    • B) Functional
    • C) Object-Oriented
    • D) Assembly
  8. OOAD happens mainly in which phase?

    • A) Deployment
    • B) Testing
    • C) Analysis & Design
    • D) Maintenance
  9. Which is an example of overengineering?

    • A) No design at all
    • B) One class does everything
    • C) Too many patterns for simple needs
    • D) No documentation
  10. เป้าหมายของ OOAD คืออะไร?

    • A) โค้ดสั้นที่สุด
    • B) ออกแบบให้เปลี่ยนแปลงง่าย
    • C) ใช้ framework เยอะ
    • D) ทำ UI สวย
  11. Which is NOT a benefit of OOAD?

    • A) Maintainability
    • B) Flexibility
    • C) Faster CPU execution
    • D) Clear responsibilities
  12. OOAD helps reduce:

    • A) RAM usage
    • B) Rework
    • C) Internet latency
    • D) Compilation errors
  13. Which artifact comes first?

    • A) Code
    • B) Test cases
    • C) Requirements
    • D) Deployment scripts
  14. OOAD is different from OOP because:

    • A) OOAD is coding
    • B) OOP is planning
    • C) OOAD is design thinking
    • D) OOP ignores objects
  15. Which best describes identity?

    • A) Attribute value
    • B) Unique existence of an object
    • C) Method name
    • D) Data type

Requirements & Inception (16–30)

  1. Requirements inception means:

    • A) Writing code
    • B) Testing system
    • C) Clarifying problem & scope
    • D) Deploying MVP
  2. What is a stakeholder?

    • A) Database admin
    • B) Anyone affected by the system
    • C) Only developers
    • D) Only users
  3. Functional Requirement (FR) describes:

    • A) Performance
    • B) Security
    • C) System behavior
    • D) Constraints
  4. Non-Functional Requirement (NFR) describes:

    • A) Business logic
    • B) Quality attributes
    • C) UI layout
    • D) Use case steps
  5. Which is an FR?

    • A) System responds in 2 seconds
    • B) Only staff can approve
    • C) User can cancel booking
    • D) Data encrypted at rest
  6. Which is an NFR?

    • A) Create booking
    • B) Approve request
    • C) Cancel request
    • D) Response time ≤ 2 seconds
  7. “The system should be fast” is:

    • A) Good requirement
    • B) Testable
    • C) Vague
    • D) Functional
  8. Acceptance criteria are used to:

    • A) Design UI
    • B) Define “done”
    • C) Write code
    • D) Create DB schema
  9. Which word should be avoided in requirements?

    • A) Shall
    • B) Must
    • C) Easy
    • D) Allow
  10. ข้อใดคือ requirement ที่ดี?

    • A) ระบบต้องใช้ง่าย
    • B) ระบบต้องเร็ว
    • C) ผู้ใช้ใหม่จองห้องได้ภายใน 2 นาที
    • D) ระบบต้องดี
  11. Which requirement level answers “Why”?

    • A) System
    • B) User
    • C) Business
    • D) Technical
  12. Traceability links:

    • A) Code → UI
    • B) Requirement → Test
    • C) DB → Server
    • D) Class → Table
  13. Which is NOT a requirement smell?

    • A) Ambiguous
    • B) Testable
    • C) Bundled
    • D) Contradictory
  14. MoSCoW “Must” means:

    • A) Optional
    • B) Nice-to-have
    • C) Critical
    • D) Postponed
  15. In inception, system boundary defines:

    • A) UI layout
    • B) Scope (inside/outside)
    • C) Database schema
    • D) Coding style

Use Cases (31–45)

  1. A use case focuses on:

    • A) UI clicks
    • B) Actor goals
    • C) Code structure
    • D) Database
  2. Actor can be:

    • A) Only humans
    • B) Only admins
    • C) External systems
    • D) Only users
  3. Which is a good use case name?

    • A) Booking page UI
    • B) Manage system
    • C) Submit Booking Request
    • D) Database insert
  4. Primary actor is:

    • A) The system
    • B) External service
    • C) Main goal achiever
    • D) Database
  5. Use case level we focus most on:

    • A) Summary
    • B) User-goal
    • C) Sub-function
    • D) Technical
  6. Preconditions describe:

    • A) UI steps
    • B) System state before start
    • C) Error handling
    • D) Code logic
  7. Alternative flows capture:

    • A) Happy path
    • B) UI design
    • C) Exceptions & edge cases
    • D) Database errors only
  8. Which should be avoided in use cases?

    • A) Clear steps
    • B) Consistent terms
    • C) UI button color
    • D) Actor goals
  9. System boundary helps prevent:

    • A) Bugs
    • B) Scope creep
    • C) Refactoring
    • D) Testing
  10. “Click green button” is:

    • A) Good use case step
    • B) UI-driven detail
    • C) Actor goal
    • D) Business rule
  11. Which is a sub-function use case?

    • A) Submit Booking
    • B) Approve Booking
    • C) Validate Time Slot
    • D) Cancel Booking
  12. Use case diagram mainly shows:

    • A) Detailed logic
    • B) Scope & actors
    • C) Database design
    • D) Algorithms
  13. Use cases help discover:

    • A) UI color
    • B) Missing rules
    • C) Server specs
    • D) IDE settings
  14. Actor roles should be:

    • A) Person names
    • B) Job titles
    • C) Roles (Student, Staff)
    • D) Emails
  15. Use case narratives include all EXCEPT:

    • A) Preconditions
    • B) Postconditions
    • C) Class attributes
    • D) Main flow

Domain Model & Responsibility (46–60)

  1. Domain model represents:

    • A) Code classes
    • B) DB tables
    • C) Problem domain concepts
    • D) UI components
  2. Which should NOT appear in domain model?

    • A) Room
    • B) BookingRequest
    • C) Controller
    • D) TimeSlot
  3. Domain model is:

    • A) Technology dependent
    • B) Conceptual
    • C) Physical schema
    • D) Implementation
  4. Multiplicity 0..* means:

    • A) Exactly one
    • B) Optional one
    • C) Many or none
    • D) One or more
  5. Inheritance should be used when:

    • A) Convenient
    • B) True “is-a” relationship
    • C) Many attributes
    • D) Performance needed
  6. Glossary is used to:

    • A) Store code
    • B) Share vocabulary
    • C) Design UI
    • D) Optimize DB
  7. Responsibility refers to:

    • A) Only data
    • B) Only behavior
    • C) What object knows & does
    • D) UI logic
  8. GRASP stands for:

    • A) Design patterns
    • B) Responsibility assignment principles
    • C) UML notation
    • D) Testing strategy
  9. Information Expert principle assigns responsibility to:

    • A) UI
    • B) Controller
    • C) Class with needed data
    • D) Database
  10. Creator principle suggests creation responsibility goes to:

    • A) Random class
    • B) UI
    • C) Aggregating class
    • D) External system
  11. Low coupling means:

    • A) Many dependencies
    • B) Few dependencies
    • C) Big classes
    • D) Shared state
  12. High cohesion means:

    • A) Many unrelated tasks
    • B) Clear focused responsibility
    • C) Many methods
    • D) Large file
  13. “God class” is a sign of:

    • A) High cohesion
    • B) Good design
    • C) Low cohesion
    • D) Polymorphism
  14. Which improves maintainability?

    • A) Tight coupling
    • B) High cohesion
    • C) UI logic in domain
    • D) Mixed responsibilities
  15. ความรับผิดชอบ (Responsibility) ที่ดีควร:

    • A) ทำทุกอย่าง
    • B) กระจายไปทั่ว
    • C) ชัดเจนและเฉพาะเจาะจง
    • D) ผูกกับ UI

ANSWER SHEET — SET A (1-60)

  1. C
  2. B
  3. C
  4. C
  5. D
  6. C
  7. C
  8. C
  9. C
  10. B
  11. C
  12. B
  13. C
  14. C
  15. B
  16. C
  17. B
  18. C
  19. B
  20. C
  21. D
  22. C
  23. B
  24. C
  25. C
  26. C
  27. B
  28. B
  29. C
  30. B
  31. B
  32. C
  33. C
  34. C
  35. B
  36. B
  37. C
  38. C
  39. B
  40. B
  41. C
  42. B
  43. B
  44. C
  45. C
  46. C
  47. C
  48. B
  49. C
  50. B
  51. B
  52. C
  53. B
  54. C
  55. C
  56. B
  57. B
  58. C
  59. B
  60. C

📝 SET B (Questions 61-120)

Requirements & FR / NFR (61–80)

  1. ข้อใดเป็น Functional Requirement (FR)?

    • A) ระบบต้องรองรับผู้ใช้ 200 คน
    • B) ระบบตอบสนองภายใน 2 วินาที
    • C) ผู้ใช้สามารถยกเลิกคำขอได้ก่อนอนุมัติ
    • D) ข้อมูลต้องถูกเข้ารหัส
  2. “Only staff can approve requests” จัดเป็น:

    • A) FR
    • B) NFR ด้าน security
    • C) Business requirement
    • D) UI rule
  3. ข้อใดคือ NFR ด้าน usability?

    • A) ผู้ใช้สร้าง booking ได้
    • B) ผู้ใช้ใหม่ทำรายการได้ภายใน 2 นาที
    • C) ระบบบันทึก booking
    • D) ระบบส่ง notification
  4. คำว่า “shall” ใน requirement หมายถึง:

    • A) ตัวเลือก
    • B) คำแนะนำ
    • C) ข้อบังคับ
    • D) สมมติฐาน
  5. ข้อใดเป็น requirement smell?

    • A) Testable
    • B) Measurable
    • C) Ambiguous
    • D) Consistent
  6. “The system shall generate reports and send notifications” เป็นปัญหาเพราะ:

    • A) เขียนดีเกินไป
    • B) Bundled requirement
    • C) เป็น NFR
    • D) ไม่ใช่ระบบ
  7. Acceptance criteria ควร:

    • A) กำกวม
    • B) วัดผลไม่ได้
    • C) ตรวจสอบ pass/fail ได้
    • D) เขียนหลัง coding
  8. Requirement ใดตอบคำถาม “What users need”?

    • A) Business
    • B) User
    • C) System
    • D) Technical
  9. Traceability สำคัญเพราะ:

    • A) ลดโค้ด
    • B) พิสูจน์ว่าระบบตรง requirement
    • C) ออกแบบ UI
    • D) เพิ่ม performance
  10. ข้อใดไม่ควรเขียนเป็น requirement?

    • A) สิ่งที่ต้องทำ
    • B) ข้อจำกัด
    • C) เทคโนโลยีที่ต้องใช้
    • D) คุณภาพระบบ
  11. “Must use microservices” ถือเป็น:

    • A) FR
    • B) NFR
    • C) Design decision
    • D) Acceptance criteria
  12. NFR มักเกี่ยวข้องกับ:

    • A) Verb
    • B) Scenario
    • C) Quality attribute
    • D) Actor
  13. ข้อใดเป็น NFR ด้าน reliability?

    • A) ระบบไม่ล่มเมื่อ restart
    • B) ผู้ใช้สร้าง booking
    • C) Staff อนุมัติ request
    • D) ระบบแจ้งเตือน
  14. MoSCoW – “Could” หมายถึง:

    • A) ต้องมี
    • B) ควรมี
    • C) ถ้ามีก็ดี
    • D) ห้ามมี
  15. Requirement ที่ดีต้อง:

    • A) กว้าง
    • B) กำกวม
    • C) ตรวจสอบได้
    • D) ยาว
  16. ข้อใดคือ FR?

    • A) ระบบเข้ารหัสข้อมูล
    • B) ระบบเก็บข้อมูล 2 ปี
    • C) ผู้ใช้ดูสถานะ booking
    • D) ระบบตอบสนองเร็ว
  17. “Fast” ควรถูกแทนด้วย:

    • A) คำอื่น
    • B) ตัวเลขที่วัดได้
    • C) UI
    • D) Code
  18. Acceptance criteria ควรเขียน:

    • A) หลัง deploy
    • B) พร้อม requirement
    • C) หลังสอบ
    • D) หลัง debug
  19. Requirement level ที่ละเอียดที่สุดคือ:

    • A) Business
    • B) User
    • C) System
    • D) Vision
  20. Inception สิ้นสุดเมื่อ:

    • A) เขียนโค้ดเสร็จ
    • B) เข้าใจ scope และ requirement
    • C) Deploy ระบบ
    • D) สอบผ่าน

Use Case & Boundary (81–100)

  1. Use case เน้น:

    • A) UI
    • B) Actor goal
    • C) Database
    • D) Algorithm
  2. Actor ต้อง:

    • A) อยู่ในระบบ
    • B) เป็นคนเท่านั้น
    • C) อยู่นอก system boundary
    • D) เป็น admin
  3. “Approve Booking Request” เป็น use case ระดับ:

    • A) Summary
    • B) User-goal
    • C) Sub-function
    • D) Technical
  4. Preconditions คือ:

    • A) สิ่งที่เกิดหลังจบ
    • B) เงื่อนไขก่อนเริ่ม
    • C) Error
    • D) UI state
  5. Trigger คือ:

    • A) กฎ
    • B) เหตุการณ์เริ่ม use case
    • C) Postcondition
    • D) Test
  6. ข้อใดไม่ควรอยู่ใน use case?

    • A) Actor action
    • B) System response
    • C) SQL query
    • D) Business rule
  7. Alternative flow ใช้สำหรับ:

    • A) Happy path
    • B) UI
    • C) Exception
    • D) Class design
  8. Use case diagram แสดง:

    • A) Logic ลึก
    • B) Scope และ actor
    • C) Database
    • D) Code
  9. Actor ควรตั้งชื่อเป็น:

    • A) ชื่อคน
    • B) Email
    • C) Role
    • D) Function
  10. System boundary ใช้เพื่อ:

    • A) ปรับ UI
    • B) กัน scope creep
    • C) Optimize DB
    • D) Test code
  11. “Click submit button” เป็น:

    • A) Goal
    • B) Implementation detail
    • C) UI detail
    • D) Business rule
  12. Use case ระดับ summary:

    • A) รายละเอียดมาก
    • B) ภาพรวมกระบวนการ
    • C) Reusable
    • D) Technical
  13. Sub-function use case คือ:

    • A) Submit request
    • B) Cancel booking
    • C) Validate permission
    • D) View status
  14. Use case ที่ดีควรมี:

    • A) อย่างน้อย 1 alternative flow
    • B) UI mockup
    • C) Code snippet
    • D) DB schema
  15. Postcondition บอก:

    • A) ก่อนเริ่ม
    • B) หลังจบ
    • C) ระหว่าง
    • D) ก่อน test
  16. Use case narrative ไม่ควร:

    • A) สอดคล้อง glossary
    • B) ใช้คำสม่ำเสมอ
    • C) อิง UI
    • D) แสดง intent
  17. Actor สามารถเป็น:

    • A) Scheduler
    • B) External system
    • C) ทั้ง A และ B
    • D) ไม่มีข้อใด
  18. Use case ช่วยหา:

    • A) Missing rule
    • B) สีปุ่ม
    • C) Framework
    • D) IDE
  19. Boundary ผิดพลาดจะทำให้:

    • A) Code ช้า
    • B) Scope ใหญ่เกิน
    • C) Bug
    • D) Test fail
  20. Use case “Manage system” เป็นตัวอย่างของ:

    • A) ดี
    • B) ชัดเจน
    • C) กว้างเกินไป
    • D) Sub-function

Domain Model & Responsibility (101–120)

  1. Domain model คือ:

    • A) UML code diagram
    • B) Conceptual model
    • C) DB schema
    • D) API design
  2. ข้อใดไม่ใช่ domain concept?

    • A) Room
    • B) BookingRequest
    • C) Controller
    • D) User
  3. Domain model ควร:

    • A) อิง framework
    • B) Technology-independent
    • C) มี service
    • D) มี UI
  4. Multiplicity 1..* หมายถึง:

    • A) 0 หรือ 1
    • B) อย่างน้อย 1
    • C) เท่ากับ 1
    • D) มากสุด 1
  5. Inheritance ใช้เมื่อ:

    • A) สะดวก
    • B) Is-a relationship
    • C) Has-a
    • D) Performance
  6. Glossary มีไว้เพื่อ:

    • A) เก็บโค้ด
    • B) ป้องกันความหมายสับสน
    • C) ออกแบบ UI
    • D) Test
  7. Responsibility คือ:

    • A) Attribute
    • B) Method
    • C) สิ่งที่ object ต้องทำ/รู้
    • D) UI action
  8. GRASP ใช้เพื่อ:

    • A) เขียน code
    • B) Assign responsibility
    • C) วาด UML
    • D) Test
  9. Information Expert ควร:

    • A) รับทุกอย่าง
    • B) อยู่ที่ UI
    • C) อยู่ที่ class ที่มีข้อมูล
    • D) อยู่ที่ controller เสมอ
  10. Creator principle:

    • A) UI สร้าง object
    • B) Class ใกล้ชิดสร้าง object
    • C) DB สร้าง
    • D) Actor สร้าง
  11. Low coupling หมายถึง:

    • A) พึ่งพากันมาก
    • B) แยกอิสระ
    • C) Class ใหญ่
    • D) Code ยาว
  12. High cohesion หมายถึง:

    • A) หลายหน้าที่
    • B) หน้าที่ชัด
    • C) มีหลาย dependency
    • D) ทำทุกอย่าง
  13. God class เป็น:

    • A) Best practice
    • B) Anti-pattern
    • C) GRASP
    • D) Requirement
  14. Domain model ไม่ควรมี:

    • A) Status
    • B) Attribute
    • C) Database key
    • D) Relationship
  15. Business rule ควรถูก:

    • A) ฝังใน UI
    • B) เขียนเป็น note
    • C) ไม่สนใจ
    • D) ใส่ DB เท่านั้น
  16. Concept hunting เริ่มจาก:

    • A) Verb
    • B) Noun
    • C) Code
    • D) DB
  17. BookingRequest เป็น:

    • A) Entity
    • B) Event/Transaction
    • C) UI
    • D) Service
  18. Responsibility assignment ที่ดีช่วย:

    • A) Code ช้า
    • B) Maintainability
    • C) Bug เพิ่ม
    • D) Coupling สูง
  19. Controller ใน GRASP คือ:

    • A) UI
    • B) DB
    • C) Object รับ system event
    • D) Actor
  20. “SystemManager” class มักบ่งบอกถึง:

    • A) High cohesion
    • B) Good design
    • C) God class
    • D) Polymorphism

ANSWER SHEET — SET B (61–120)

  1. C
  2. B
  3. B
  4. C
  5. C
  6. B
  7. C
  8. B
  9. B
  10. C
  11. C
  12. C
  13. A
  14. C
  15. C
  16. C
  17. B
  18. B
  19. C
  20. B
  21. B
  22. C
  23. B
  24. B
  25. B
  26. C
  27. C
  28. B
  29. C
  30. B
  31. C
  32. B
  33. C
  34. A
  35. B
  36. C
  37. C
  38. A
  39. B
  40. C
  41. B
  42. C
  43. B
  44. B
  45. B
  46. B
  47. C
  48. B
  49. C
  50. B
  51. B
  52. B
  53. B
  54. C
  55. B
  56. B
  57. B
  58. B
  59. C
  60. C

📝 SET C (Questions 121-180)

Scenario-based / วิเคราะห์จริง

  1. นักศึกษาส่งคำขอจองห้อง → ใครควรตรวจสอบเวลาซ้อน?
  • A) UI
  • B) BookingRequest
  • C) Room / Schedule
  • D) User
  1. การ “approve request” เปลี่ยน:

    • A) UI
    • B) Status
    • C) Actor
    • D) Boundary
  2. ถ้าระบบอนุญาตเฉพาะ Staff อนุมัติ → เป็น:

    • A) FR
    • B) NFR
    • C) Business rule
    • D) ทั้ง B และ C
  3. “Cancel after approved” ควร:

    • A) อนุญาต
    • B) ป้องกันด้วย rule
    • C) เป็น UI choice
    • D) Ignore
  4. Object ที่เหมาะเป็น Creator ของ BookingRequest คือ:

    • A) UI
    • B) User หรือ BookingService
    • C) Database
    • D) Actor
  5. ถ้า requirement เขียนว่า “ระบบดีและใช้ง่าย” ปัญหาคือ:

    • A) สั้น
    • B) Vague
    • C) FR
    • D) NFR
  6. Use case ที่รวมหลาย goal เป็น:

    • A) ดี
    • B) Bundled
    • C) Summary
    • D) Sub-function
  7. Domain model มี “Manager” หลายตัว แสดงว่า:

    • A) ดี
    • B) High cohesion
    • C) Design smell
    • D) Correct
  8. Polymorphism ช่วยลด:

    • A) Performance
    • B) If-else
    • C) Memory
    • D) Storage
  9. “PaymentMethod.pay()” เป็นตัวอย่างของ:

    • A) Inheritance
    • B) Encapsulation
    • C) Polymorphism
    • D) Coupling
  10. ถ้า UI เรียก DB ตรง → เป็น:

    • A) Loose coupling
    • B) Tight coupling
    • C) GRASP
    • D) MVC
  11. Acceptance criteria แบบ Given–When–Then ช่วย:

    • A) เขียน code
    • B) Test scenario
    • C) Design UI
    • D) DB
  12. Use case ที่ดีควร:

    • A) ยาว
    • B) ครอบคลุมทุก feature
    • C) ชัดเจนทีละ goal
    • D) อิง framework
  13. Status เช่น REQUESTED, APPROVED ควรอยู่ใน:

    • A) UI
    • B) Domain model
    • C) DB เท่านั้น
    • D) Test
  14. “Validate permission” เหมาะเป็น:

    • A) User-goal
    • B) Sub-function
    • C) Summary
    • D) Actor
  15. Business rule “ห้ามจองเวลาซ้อน” ควร:

    • A) อยู่ใน UI
    • B) อยู่ใน Domain logic
    • C) อยู่ใน DB อย่างเดียว
    • D) Ignore
  16. ถ้า class ทำ login + booking + report:

    • A) High cohesion
    • B) Low coupling
    • C) God class
    • D) GRASP
  17. การใช้ inheritance ผิดจะทำให้:

    • A) Cohesion สูง
    • B) Coupling สูง
    • C) Simpler
    • D) Faster
  18. OOAD เน้น “ก่อนเขียนโค้ด” เพื่อ:

    • A) ช้า
    • B) ลด rework
    • C) ใช้ AI
    • D) เขียน UML
  19. Domain model v1 ควรมีประมาณ:

    • A) 1–3 class
    • B) 50 class
    • C) 10–15 class
    • D) ไม่จำกัด
  20. Glossary ช่วยให้:

    • A) Code เร็ว
    • B) ทีมเข้าใจตรงกัน
    • C) DB เล็ก
    • D) UI สวย
  21. Actor “Scheduler” จัดเป็น:

    • A) Human
    • B) External system
    • C) Role
    • D) UI
  22. Use case เขียน “Call API” เป็น:

    • A) ดี
    • B) Implementation detail
    • C) Goal
    • D) Rule
  23. Responsibility ที่ดีควร:

    • A) กระจาย
    • B) ซ้ำ
    • C) ชัดเจน
    • D) อยู่ที่ UI
  24. FR ต้อง:

    • A) วัดผลไม่ได้
    • B) Test ได้
    • C) เป็น design
    • D) เป็น code
  25. NFR ที่ดีต้อง:

    • A) กำกวม
    • B) วัดได้
    • C) เป็น UI
    • D) เป็น DB
  26. Requirement ที่ขัดกันจะทำให้:

    • A) Code เร็ว
    • B) Design unstable
    • C) Bug น้อย
    • D) Test ง่าย
  27. “Support all users” เป็น:

    • A) Specific
    • B) Scope-free
    • C) Measurable
    • D) Good
  28. Domain model ไม่ควรรีบ:

    • A) เขียน
    • B) Collapse เป็น DB
    • C) Review
    • D) ใช้
  29. GRASP ช่วย:

    • A) วาด UI
    • B) ตัดสินใจ design
    • C) เขียน SQL
    • D) Deploy
  30. ถ้าเปลี่ยน DB แล้ว UI พัง แสดงว่า:

    • A) Loose coupling
    • B) Tight coupling
    • C) High cohesion
    • D) Polymorphism
  31. “ApproveBookingController” ทำหน้าที่:

    • A) Domain entity
    • B) Controller
    • C) Actor
    • D) Repository
  32. Responsibility mapping มาจาก:

    • A) Code
    • B) Use case steps
    • C) DB
    • D) UI
  33. Actor vs User ต่างกันตรง:

    • A) Actor เป็น role
    • B) User เป็น class เสมอ
    • C) Actor อยู่ในระบบ
    • D) User เป็น external
  34. Use case ที่ดีต้อง:

    • A) ยึด UI
    • B) ยึด intent
    • C) ยึด code
    • D) ยึด DB
  35. Domain model attribute ควร:

    • A) ทุก field
    • B) มีความหมายทางธุรกิจ
    • C) UI only
    • D) Technical
  36. “Only staff can approve” ควรอยู่ใน:

    • A) UI
    • B) Business rule
    • C) Database
    • D) CSS
  37. OOAD + Agile หมายถึง:

    • A) Design ครั้งเดียว
    • B) Iterative
    • C) No design
    • D) Big upfront
  38. Vertical slice คือ:

    • A) UI only
    • B) DB only
    • C) End-to-end feature
    • D) Diagram
  39. If requirement unclear ผลคือ:

    • A) Code stable
    • B) Design drift
    • C) Test ง่าย
    • D) Performance ดี
  40. “BookingService” ที่ทำทุกอย่างคือ:

    • A) High cohesion
    • B) God class
    • C) GRASP
    • D) MVC
  41. Sub-function use case มัก:

    • A) เริ่มก่อน
    • B) เขียนหลัง
    • C) reuse ได้
    • D) เป็น UI
  42. Domain model ควร sync กับ:

    • A) Code เสมอ
    • B) Use case & glossary
    • C) DB only
    • D) Framework
  43. Acceptance criteria ใช้ใน:

    • A) Test
    • B) Demo
    • C) Grading
    • D) ทั้งหมด
  44. Object responsibility ที่ดีช่วย:

    • A) Debug ยาก
    • B) Change ง่าย
    • C) Code ยาว
    • D) Dependency เยอะ
  45. OOAD artifact ใดมาก่อน?

    • A) Sequence diagram
    • B) Domain model
    • C) Requirements
    • D) Code
  46. Use case ที่ไม่มี exception:

    • A) สมบูรณ์
    • B) ผิด
    • C) เสี่ยง bug
    • D) ถูก
  47. “User logs in” เป็น:

    • A) Use case goal
    • B) Sub-function
    • C) Business rule
    • D) UI
  48. Domain model ไม่ควร:

    • A) เปลี่ยน
    • B) Iterative
    • C) Fix ตายตัว
    • D) Review
  49. Business rule ควร:

    • A) Test ได้
    • B) กำกวม
    • C) ซ่อน
    • D) Ignore
  50. “Check permission” เหมาะกับ:

    • A) Controller
    • B) Domain logic
    • C) UI
    • D) Actor
  51. If-else เยอะ แสดงว่า:

    • A) Polymorphism ดี
    • B) ออกแบบไม่ดี
    • C) High cohesion
    • D) Loose coupling
  52. OOAD ช่วยให้:

    • A) Code เร็วเสมอ
    • B) เปลี่ยน requirement ง่าย
    • C) No refactor
    • D) Bug หาย
  53. Status transition ควรอยู่:

    • A) UI
    • B) Domain object
    • C) DB trigger
    • D) Actor
  54. Use case กับ Domain model เชื่อมกันผ่าน:

    • A) UI
    • B) Glossary
    • C) Framework
    • D) IDE
  55. Actor ไม่ควรเป็น:

    • A) Role
    • B) External system
    • C) Class ภายใน
    • D) Scheduler
  56. Acceptance criteria ที่ดีต้อง:

    • A) เขียนคลุมเครือ
    • B) วัดไม่ได้
    • C) ชัดเจน
    • D) เป็น code
  57. Domain model ที่ดี:

    • A) ใหญ่
    • B) เล็กแต่ชัด
    • C) มี service
    • D) มี UI
  58. OOAD เป้าหมายสูงสุดคือ:

    • A) UML สวย
    • B) Design ที่เปลี่ยนได้
    • C) Code น้อย
    • D) AI
  59. “ความรับผิดชอบของ object” ที่ดีควร:

    • A) ซ้อนกัน
    • B) ชัดและไม่ทับกัน
    • C) อยู่ใน UI
    • D) รวมทุกอย่าง

ANSWER SHEET — SET C (121-180)

  1. C
  2. B
  3. D
  4. B
  5. B
  6. B
  7. B
  8. C
  9. B
  10. C
  11. B
  12. B
  13. C
  14. B
  15. B
  16. B
  17. C
  18. B
  19. B
  20. C
  21. B
  22. B
  23. B
  24. C
  25. B
  26. B
  27. B
  28. B
  29. B
  30. B
  31. B
  32. B
  33. B
  34. A
  35. B
  36. B
  37. B
  38. B
  39. C
  40. B
  41. B
  42. C
  43. B
  44. D
  45. B
  46. C
  47. C
  48. B
  49. C
  50. A
  51. B
  52. B
  53. B
  54. B
  55. B
  56. C
  57. C
  58. B
  59. B
  60. B