"" Software Design
Architectural design
- Architectural design (การออกแบบทางสถาปัตยกรรม) เกี่ยวข้องกับ
- การจัดองค์ประกอบของระบบซอฟต์แวร์
- การออกแบบโครงสร้างโดยรวมของระบบดังกล่าว
- การออกแบบทางสถาปัตยกรรมเป็นจุดเชื่อมโยงที่สำคัญระหว่างวิศวกรรมการออกแบบ (design engineering) และวิศวกรรมความต้องการ (requirement engineering)
- เป็นการกำหนดองค์ประกอบโครงสร้างหลักในระบบ
- เป็นการกำหนดหรืออธิบายความสัมพันธ์ระหว่างกัน
- ผลลัพธ์ของกระบวนการออกแบบสถาปัตยกรรมคือ
- การอธิบายว่าระบบถูกจัดองค์ประกอบโครงสร้างอย่างไร
- มีการสื่อสารระหว่างองค์ประกอบเหล่านั้นอย่างไร ความเกี่ยวข้องระหว่าง agile และ architecture
- มีการยอมรับโดยทั่วไปว่า ขั้นแรกๆ ของกระบวนการ agile คือการออกแบบสถาปัตยกรรมของระบบ
- Agile ต้องการความรวดเร็ว ซึ่งการออกแบบสถาปัตยกรรมที่ดี จะช่วยให้ระบบสอดคล้องกับวัตถุประสงค์ของ agile
- การปรับเปลี่ยนสถาปัตยกรรมของระบบจะทำให้เกิดต้นทุนที่สูง เนื่องจากกระทบต่อองค์ประกอบย่อย ๆ ของระบบ
- Agile เน้นความกระชับ การตัดสิ่งที่ไม่จำเป็นออกไปให้มากที่สุดจะทำได้เมื่อทีมพัฒนาได้เห็นสถาปัตยกรรมโดยรวมของระบบ
Architectural abstraction
- สถาปัตยกรรมในระบบขนาดเล็ก
- เกี่ยวข้องกับสถาปัตยกรรมของแต่ละโปรแกรม
- ในระดับนี้เราให้ความสำคัญกับวิธีการนำองค์ประกอบต่าง ๆ มารวมนเป็นโปรแกรม
- สถาปัตยกรรมในระบบขนาดใหญ่
- เกี่ยวข้องกับสถาปัตยกรรมของระบบที่ซับซ้อนมาก
- อาจรวมเอาโปรแกรมต่าง ๆ , ระบบอื่น ๆ หรือแม้กระทั่งระบบจากต่างหน่วยงาน เข้าไว้ในระบบเดียวกัน Advantages of explicit architecture
- การสื่อสารของผู้มีส่วนได้ส่วนเสีย
- สถาปัตยกรรมสามารถใช้เพื่อเป็นสิ่งควบคุมประเด็นในการอภิปรายโดยผู้มีส่วนได้เสียของระบบ (focus)
- การวิเคราะห์ระบบ
- สามารถช่วยในการวิเคราะห์ว่าระบบสามารถตอบสนอง non-functional requirements ได้หรือไม่
- สามารถนำกลับมาใช้ใหม่ (reuse) ได้ในปริมาณมาก
- สถาปัตยกรรมเผยให้เห็นสิ่งที่สามารถนำมา reuse ในส่วนต่าง ๆ ของระบบ
- อาจมีการพัฒนาสถาปัตยกรรมที่เอื้อต่อการผลิตแบบ line การผลิตของโรงงาน การวาดแผนผังสถาปัตยกรรมแบบต่าง ๆ
- Block diagram แบบง่าย ๆ และไม่เป็นทางการ
- ใช้แสดงถึงเอนทิตีและความสัมพันธ์
- ใช้บ่อยที่สุดสำหรับการจัดทำเอกสารสถาปัตยกรรมซอฟต์แวร์
- แต่อาจจะถูกปฏิเสธกาใช้งาน เนื่องจา
- ไม่มีความหมายที่ชัดแจ้ง
- ไม่แสดงประเภทของความสัมพันธ์ระหว่างเอนทิตี
- ไม่แสดงคุณสมบัติที่มองเห็นได้ชัดของเอนทิตี Box and line diagrams
- มีความเป็นนามธรรมสูง
- ไม่แสดงลักษณะของความสัมพันธ์ขององค์ประกอบ
- ไม่แสดงรายละเอียดของระบบย่อย
- มีประโยชน์เมื่อ
- สื่อสารกับผู้มีส่วนได้ส่วนเสีย
- วางแผนโครงการ Use of architectural models
- เพื่ออำนวยความสะดวกในการอภิปรายเกี่ยวกับการออกแบบระบบ
- มุมมองในระดับบนของระบบจะเป็นประโยชน์สำหรับการสื่อสารกับ stakeholders และการวางแผนโครงการ เนื่องจากไม่มีรายละเอียดที่รกรุงรัง
- Stakeholders สามารถทำความเข้าใจเกี่ยวกับมุมมองที่เป็นนามธรรมของระบบ และสามารถพูดคุยเกี่ยวกับระบบโดยรวม ไม่ต้องสับสนกับรายละเอียด
- ช่วยอำนวยความสะดวกในการจัดทำเอกสารสถาปัตยกรรม
- จุดมุ่งหมายหลักของเอกสารคือการสร้างแบบจำลองระบบที่มีองค์ประกอบต่าง ๆ อย่างสมบูรณ์ พร้อมทั้งแสดงการเชื่อมต่อระหว่างองค์ประกอบเหล่านั้น