Skip to content

Latest commit

 

History

History
57 lines (53 loc) · 7.27 KB

8.0.Software Design.md

File metadata and controls

57 lines (53 loc) · 7.27 KB

"" 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 สามารถทำความเข้าใจเกี่ยวกับมุมมองที่เป็นนามธรรมของระบบ และสามารถพูดคุยเกี่ยวกับระบบโดยรวม ไม่ต้องสับสนกับรายละเอียด
  • ช่วยอำนวยความสะดวกในการจัดทำเอกสารสถาปัตยกรรม
  • จุดมุ่งหมายหลักของเอกสารคือการสร้างแบบจำลองระบบที่มีองค์ประกอบต่าง ๆ อย่างสมบูรณ์ พร้อมทั้งแสดงการเชื่อมต่อระหว่างองค์ประกอบเหล่านั้น