ฉันขอแตกต่าง: UML สามารถใช้สำหรับสถาปัตยกรรมแอปพลิเคชัน แต่มักใช้สำหรับสถาปัตยกรรมทางเทคนิค (เฟรมเวิร์กคลาสหรือไดอะแกรมลำดับ ... ) เนื่องจากนี่คือที่ที่ไดอะแกรมเหล่านั้นสามารถซิงค์กับการพัฒนาได้ง่ายที่สุด .
สถาปัตยกรรมแอปพลิเคชันเกิดขึ้นเมื่อคุณใช้ข้อกำหนดการทำงานบางอย่าง (ซึ่งอธิบายถึงลักษณะและขั้นตอนการดำเนินการโดยไม่ต้องตั้งสมมติฐานเกี่ยวกับการนำไปใช้ในอนาคต) และคุณแปลงเป็นข้อกำหนดทางเทคนิค
ข้อกำหนดเหล่านี้แสดงถึงแอปพลิเคชันที่คุณต้องการสำหรับการปรับใช้ตามความต้องการทางธุรกิจและการทำงานบางอย่าง
ดังนั้นหากคุณต้องการประมวลผลพอร์ตการลงทุนทางการเงินขนาดใหญ่หลาย ๆ พอร์ต (ข้อกำหนดการทำงาน) คุณอาจกำหนดได้ว่าคุณต้องแบ่งข้อกำหนดขนาดใหญ่นั้นออกเป็น:
- ผู้มอบหมายงานเพื่อกำหนดการคำนวณจำนวนมากเหล่านั้นไปยังเซิร์ฟเวอร์ต่างๆ
- ตัวเรียกใช้งานเพื่อให้แน่ใจว่าเซิร์ฟเวอร์การคำนวณทั้งหมดเปิดใช้งานแล้วก่อนที่จะเริ่มประมวลผลพอร์ตการลงทุนเหล่านั้น
- GUI เพื่อแสดงสิ่งที่เกิดขึ้น
- ส่วนประกอบ "ทั่วไป" ในการพัฒนาอัลกอริทึมพอร์ตโฟลิโอที่เฉพาะเจาะจงโดยไม่ขึ้นอยู่กับสถาปัตยกรรมแอปพลิเคชันที่เหลือเพื่ออำนวยความสะดวกในการทดสอบหน่วย แต่ยังรวมถึงการทดสอบการทำงานและการถดถอยด้วย
โดยพื้นฐานแล้วการคิดเกี่ยวกับสถาปัตยกรรมแอปพลิเคชันคือการตัดสินใจว่า "กลุ่มไฟล์" ใดที่คุณต้องพัฒนาในลักษณะที่สอดคล้องกัน (คุณไม่สามารถพัฒนาในไฟล์กลุ่มเดียวกับตัวเรียกใช้งาน, GUI, ผู้มอบหมายงาน, ... : พวกเขา จะไม่สามารถพัฒนาไปในจังหวะเดียวกันได้)
เมื่อมีการใช้สถาปัตยกรรมถูกกำหนดไว้อย่างดีแต่ละองค์ประกอบของมันมักจะเป็นผู้สมัครที่ดีสำหรับการกำหนดค่าองค์ประกอบที่เป็นกลุ่มของไฟล์ที่สามารถ versionned เป็นทั้งหมดลง (ระบบควบคุม Version) VCS ความหมายทุกไฟล์ของมันจะเป็น ติดป้ายกำกับทุกครั้งที่คุณจำเป็นต้องบันทึกสแนปชอตของแอปพลิเคชันนั้น (อีกครั้งเป็นการยากที่จะติดป้ายกำกับระบบทั้งหมดของคุณแต่ละแอปพลิเคชันไม่สามารถอยู่ในสถานะที่เสถียรพร้อมกันได้)