Extracting Architectural Characteristics from Domain Concerns (การดึง Architectural Characteristics ออกจากประเด็นของ Domain)

architectural characteristics ส่วนใหญ่มาจากการรับฟัง domain stakeholder หลัก ๆ และร่วมมือกับพวกเขาเพื่อกำหนดว่าอะไรสำคัญจากมุมมองทางธุรกิจ แม้เรื่องนี้อาจดูตรงไปตรงมา แต่ปัญหาคือสถาปนิกและ domain stakeholder พูดกันคนละภาษา สถาปนิกพูดถึง scalability, interoperability, fault tolerance, learnability และ availability ในขณะที่ domain stakeholder พูดถึงการควบรวมกิจการ ความพึงพอใจของผู้ใช้ ระยะเวลาออกสู่ตลาด และความได้เปรียบในการแข่งขัน สิ่งที่เกิดขึ้นคือปัญหา “แปลไม่ตรงกัน” (lost in translation) ที่สถาปนิกและ domain stakeholder ไม่เข้าใจกัน สถาปนิกไม่รู้ว่าจะสร้างสถาปัตยกรรมเพื่อรองรับความพึงพอใจของผู้ใช้ได้อย่างไร ส่วน domain stakeholder ก็ไม่เข้าใจว่าทำไมสถาปนิกถึงให้ความสำคัญกับ availability, interoperability, learnability และ fault tolerance ของแอปพลิเคชันมากขนาดนั้น

โชคดีที่เราสามารถ “แปล” จากประเด็นของ domain ให้เป็นภาษาของ architectural characteristics ได้ Table 5-1 แสดงประเด็นของ domain ที่พบบ่อยและ “-ility” ที่สอดคล้องกันซึ่งรองรับประเด็นเหล่านั้น การเข้าใจเป้าหมายหลักของ domain ช่วยให้สถาปนิกแปลประเด็นเหล่านั้นเป็น “-ility” ได้ ซึ่งจะกลายเป็นพื้นฐานของการตัดสินใจด้านสถาปัตยกรรมที่ถูกต้องและอธิบายเหตุผลได้ ตัวอย่างเช่น ประเด็นของ domain เรื่องระยะเวลาออกสู่ตลาดสำคัญกว่า scalability หรือไม่ หรือสถาปนิกควรเน้นที่ fault tolerance, security หรือ performance? บางทีระบบอาจต้องการคุณลักษณะเหล่านี้รวมกันทั้งหมดก็ได้

Table 5-1. การแปลประเด็นของ domain เป็น architectural characteristics | ประเด็นของ Domain | Architectural Characteristics | | --- | --- | | การควบรวมและซื้อกิจการ (Mergers and acquisitions) | Interoperability, scalability, adaptability, extensibility | | ระยะเวลาออกสู่ตลาด (Time to market) | Agility, testability, deployability | | ความพึงพอใจของผู้ใช้ (User satisfaction) | Performance, availability, fault tolerance, testability, deployability, agility, security | | ความได้เปรียบในการแข่งขัน (Competitive advantage) | Agility, testability, deployability, scalability, availability, fault tolerance | | เวลาและงบประมาณ (Time and budget) | Simplicity, feasibility |