แบบจำลองสถาปัตยกรรม
สถาปัตยกรรมซอฟต์แวร์เกี่ยวข้องกับโครงสร้างระดับสูงของนามธรรมของระบบซอฟต์แวร์โดยใช้การสลายตัวและองค์ประกอบด้วยรูปแบบสถาปัตยกรรมและคุณลักษณะด้านคุณภาพ การออกแบบสถาปัตยกรรมซอฟต์แวร์ต้องเป็นไปตามข้อกำหนดด้านฟังก์ชันการทำงานและประสิทธิภาพที่สำคัญของระบบรวมทั้งเป็นไปตามข้อกำหนดที่ไม่สามารถใช้งานได้เช่นความน่าเชื่อถือความสามารถในการปรับขนาดการพกพาและความพร้อมใช้งาน
สถาปัตยกรรมซอฟต์แวร์ต้องอธิบายถึงกลุ่มของส่วนประกอบการเชื่อมต่อการโต้ตอบระหว่างส่วนประกอบเหล่านั้นและการกำหนดค่าการปรับใช้ของส่วนประกอบทั้งหมด
สถาปัตยกรรมซอฟต์แวร์สามารถกำหนดได้หลายวิธี -
UML (Unified Modeling Language) - UML เป็นหนึ่งในโซลูชันเชิงวัตถุที่ใช้ในการสร้างแบบจำลองและการออกแบบซอฟต์แวร์
Architecture View Model (4+1 view model) - แบบจำลองมุมมองสถาปัตยกรรมแสดงถึงข้อกำหนดด้านการทำงานและไม่ใช้งานได้ของซอฟต์แวร์แอปพลิเคชัน
ADL (Architecture Description Language) - ADL กำหนดสถาปัตยกรรมซอฟต์แวร์อย่างเป็นทางการและตามความหมาย
UML
UML ย่อมาจาก Unified Modeling Language เป็นภาษาภาพที่ใช้ในการสร้างพิมพ์เขียวซอฟต์แวร์ UML ถูกสร้างโดย Object Management Group (OMG) ร่างข้อกำหนด UML 1.0 ได้รับการเสนอต่อ OMG ในเดือนมกราคม 1997 ซึ่งทำหน้าที่เป็นมาตรฐานสำหรับการวิเคราะห์ความต้องการซอฟต์แวร์และเอกสารการออกแบบซึ่งเป็นพื้นฐานสำหรับการพัฒนาซอฟต์แวร์
UML สามารถอธิบายเป็นภาษาการสร้างแบบจำลองภาพวัตถุประสงค์ทั่วไปเพื่อแสดงภาพระบุสร้างและจัดทำเอกสารระบบซอฟต์แวร์ แม้ว่าโดยทั่วไปจะใช้ UML เพื่อสร้างแบบจำลองระบบซอฟต์แวร์ แต่ก็ไม่ได้ จำกัด อยู่ในขอบเขตนี้ นอกจากนี้ยังใช้เพื่อสร้างแบบจำลองระบบซอฟต์แวร์ที่ไม่ใช่เช่นขั้นตอนกระบวนการในหน่วยการผลิต
องค์ประกอบเป็นเหมือนส่วนประกอบที่สามารถเชื่อมโยงในรูปแบบต่างๆเพื่อสร้างภาพ UML ที่สมบูรณ์ซึ่งเรียกว่าไฟล์ diagram. ดังนั้นจึงเป็นสิ่งสำคัญมากที่จะต้องเข้าใจแผนภาพต่างๆเพื่อนำความรู้ไปใช้ในระบบชีวิตจริง เรามีแผนภาพสองประเภทกว้าง ๆ และยังแบ่งออกเป็นหมวดหมู่ย่อยอีก ได้แก่Structural Diagrams และ Behavioral Diagrams.
แผนภาพโครงสร้าง
แผนภาพโครงสร้างแสดงลักษณะคงที่ของระบบ ลักษณะคงที่เหล่านี้แสดงถึงส่วนต่างๆของแผนภาพซึ่งเป็นโครงสร้างหลักดังนั้นจึงมีเสถียรภาพ
ชิ้นส่วนคงที่เหล่านี้แสดงโดยคลาสอินเทอร์เฟซอ็อบเจ็กต์ส่วนประกอบและโหนด แผนภาพโครงสร้างแบ่งย่อยได้ดังนี้ -
- แผนภาพคลาส
- แผนภาพวัตถุ
- แผนภาพส่วนประกอบ
- แผนภาพการปรับใช้
- แผนภาพแพ็คเกจ
- โครงสร้างคอมโพสิต
ตารางต่อไปนี้ให้คำอธิบายสั้น ๆ ของไดอะแกรมเหล่านี้ -
ซีเนียร์ | แผนภาพและคำอธิบาย |
---|---|
1 | Class แสดงถึงการวางแนววัตถุของระบบ แสดงให้เห็นว่าคลาสมีความสัมพันธ์กันอย่างไร |
2 | Object แสดงถึงชุดของอ็อบเจ็กต์และความสัมพันธ์ที่รันไทม์และยังแสดงถึงมุมมองแบบคงที่ของระบบ |
3 | Component อธิบายส่วนประกอบทั้งหมดความสัมพันธ์ระหว่างกันปฏิสัมพันธ์และส่วนต่อประสานของระบบ |
4 | Composite structure อธิบายโครงสร้างภายในของส่วนประกอบรวมถึงคลาสทั้งหมดส่วนต่อประสานของส่วนประกอบ ฯลฯ |
5 | Package อธิบายโครงสร้างแพ็คเกจและองค์กร ครอบคลุมคลาสในแพ็คเกจและแพ็คเกจภายในแพ็คเกจอื่น |
6 | Deployment แผนภาพการทำให้ใช้งานได้คือชุดของโหนดและความสัมพันธ์ โหนดเหล่านี้เป็นเอนทิตีทางกายภาพที่มีการปรับใช้คอมโพเนนต์ |
แผนภาพพฤติกรรม
แผนภาพพฤติกรรมโดยพื้นฐานแล้วจะจับภาพลักษณะไดนามิกของระบบ แง่มุมแบบไดนามิกเป็นส่วนที่เปลี่ยนแปลง / เคลื่อนไหวของระบบ UML มีแผนภาพพฤติกรรมประเภทต่อไปนี้ -
- ใช้แผนภาพกรณี
- แผนภาพลำดับ
- แผนภาพการสื่อสาร
- แผนภาพแผนภูมิสถานะ
- แผนภาพกิจกรรม
- ภาพรวมการโต้ตอบ
- แผนภาพลำดับเวลา
ตารางต่อไปนี้ให้คำอธิบายสั้น ๆ ของแผนภาพเหล่านี้ -
ซีเนียร์ | แผนภาพและคำอธิบาย |
---|---|
1 | Use case อธิบายความสัมพันธ์ระหว่างฟังก์ชันการทำงานและตัวควบคุมภายใน / ภายนอก ตัวควบคุมเหล่านี้เรียกได้ว่าเป็นนักแสดง |
2 | Activity อธิบายขั้นตอนการควบคุมในระบบ ประกอบด้วยกิจกรรมและการเชื่อมโยง โฟลว์อาจเป็นแบบลำดับพร้อมกันหรือแยกกลุ่มก็ได้ |
3 | State Machine/state chart แสดงถึงการเปลี่ยนแปลงสถานะของระบบที่ขับเคลื่อนด้วยเหตุการณ์ โดยพื้นฐานแล้วจะอธิบายถึงการเปลี่ยนแปลงสถานะของคลาสอินเทอร์เฟซ ฯลฯ ใช้เพื่อให้เห็นภาพปฏิกิริยาของระบบโดยปัจจัยภายใน / ภายนอก |
4 | Sequence แสดงภาพลำดับของการโทรในระบบเพื่อดำเนินการฟังก์ชันเฉพาะ |
5 | Interaction Overview รวมแผนภาพกิจกรรมและลำดับเพื่อให้ภาพรวมขั้นตอนการควบคุมของระบบและกระบวนการทางธุรกิจ |
6 | Communication เช่นเดียวกับแผนภาพลำดับยกเว้นว่าจะเน้นที่บทบาทของวัตถุ การสื่อสารแต่ละครั้งจะเชื่อมโยงกับลำดับลำดับหมายเลขและข้อความในอดีต |
7 | Time Sequenced อธิบายการเปลี่ยนแปลงตามข้อความในสถานะเงื่อนไขและเหตุการณ์ |
แบบจำลองมุมมองสถาปัตยกรรม
โมเดลคือคำอธิบายที่สมบูรณ์พื้นฐานและเรียบง่ายของสถาปัตยกรรมซอฟต์แวร์ซึ่งประกอบด้วยหลายมุมมองจากมุมมองหรือมุมมองเฉพาะ
มุมมองคือการแสดงทั้งระบบจากมุมมองของชุดความกังวลที่เกี่ยวข้อง ใช้เพื่ออธิบายระบบจากมุมมองของผู้มีส่วนได้ส่วนเสียที่แตกต่างกันเช่นผู้ใช้ปลายทางนักพัฒนาผู้จัดการโครงการและผู้ทดสอบ
4 + 1 ดูโมเดล
แบบจำลองมุมมอง 4 + 1 ได้รับการออกแบบโดย Philippe Kruchten เพื่ออธิบายสถาปัตยกรรมของระบบที่เน้นซอฟต์แวร์โดยอาศัยการใช้มุมมองที่หลากหลายและพร้อมกัน มันคือmultiple viewแบบจำลองที่เน้นคุณสมบัติและข้อกังวลต่างๆของระบบ เป็นมาตรฐานของเอกสารการออกแบบซอฟต์แวร์และทำให้ผู้มีส่วนได้ส่วนเสียทั้งหมดเข้าใจการออกแบบได้ง่าย
เป็นวิธีการตรวจสอบสถาปัตยกรรมสำหรับการศึกษาและจัดทำเอกสารการออกแบบสถาปัตยกรรมซอฟต์แวร์และครอบคลุมทุกแง่มุมของสถาปัตยกรรมซอฟต์แวร์สำหรับผู้มีส่วนได้ส่วนเสียทั้งหมด มีมุมมองที่สำคัญสี่ประการ -
The logical view or conceptual view - อธิบายรูปแบบวัตถุของการออกแบบ
The process view - อธิบายกิจกรรมของระบบจับภาพการทำงานพร้อมกันและการซิงโครไนซ์ของการออกแบบ
The physical view - อธิบายถึงการทำแผนที่ซอฟต์แวร์กับฮาร์ดแวร์และสะท้อนถึงแง่มุมที่กระจายออกไป
The development view - อธิบายองค์กรแบบคงที่หรือโครงสร้างของซอฟต์แวร์ในการพัฒนาสภาพแวดล้อม
โมเดลมุมมองนี้สามารถขยายได้โดยเพิ่มอีกหนึ่งมุมมองที่เรียกว่า scenario view หรือ use case viewสำหรับผู้ใช้ปลายทางหรือลูกค้าของระบบซอฟต์แวร์ มีความสอดคล้องกับมุมมองอื่น ๆ อีกสี่มุมมองและใช้เพื่อแสดงสถาปัตยกรรมที่ทำหน้าที่เป็นมุมมอง "บวกหนึ่ง" แบบจำลองมุมมอง (4 + 1) รูปต่อไปนี้อธิบายสถาปัตยกรรมซอฟต์แวร์โดยใช้โมเดลมุมมองพร้อมกันห้ามุมมอง (4 + 1)
ทำไมถึงเรียกว่า 4 + 1 แทนที่จะเป็น 5?
use case viewมีความสำคัญเป็นพิเศษเนื่องจากมีรายละเอียดความต้องการระดับสูงของระบบในขณะที่มุมมองอื่น ๆ ให้รายละเอียดว่าข้อกำหนดเหล่านั้นรับรู้ได้อย่างไร เมื่อมุมมองอื่น ๆ ทั้งสี่มุมมองเสร็จสมบูรณ์มันซ้ำซ้อนอย่างมีประสิทธิภาพ อย่างไรก็ตามมุมมองอื่น ๆ ทั้งหมดจะเป็นไปไม่ได้หากไม่มี ภาพและตารางต่อไปนี้แสดงมุมมอง 4 + 1 โดยละเอียด -
ตรรกะ | กระบวนการ | การพัฒนา | ทางกายภาพ | สถานการณ์ | |
---|---|---|---|---|---|
คำอธิบาย | แสดงส่วนประกอบ (Object) ของระบบตลอดจนปฏิสัมพันธ์ | แสดงกระบวนการ / กฎเวิร์กโฟลว์ของระบบและวิธีการสื่อสารของกระบวนการโดยเน้นที่มุมมองแบบไดนามิกของระบบ | ให้มุมมอง Building Block ของระบบและอธิบายการจัดระเบียบแบบคงที่ของโมดูลระบบ | แสดงการติดตั้งการกำหนดค่าและการปรับใช้แอปพลิเคชันซอฟต์แวร์ | แสดงให้เห็นว่าการออกแบบเสร็จสมบูรณ์โดยดำเนินการตรวจสอบความถูกต้องและภาพประกอบ |
ผู้ดู / ผู้ถือหุ้น | ผู้ใช้ปลายทางนักวิเคราะห์และนักออกแบบ | ผู้ประกอบและนักพัฒนา | โปรแกรมเมอร์และผู้จัดการโครงการซอฟต์แวร์ | วิศวกรระบบผู้ปฏิบัติงานผู้ดูแลระบบและผู้ติดตั้งระบบ | มุมมองทั้งหมดของมุมมองและผู้ประเมินของพวกเขา |
พิจารณา | ความต้องการการทำงาน | ข้อกำหนดที่ไม่ใช่หน้าที่ | องค์กรโมดูลซอฟต์แวร์ (การใช้การจัดการซอฟต์แวร์ซ้ำข้อ จำกัด ของเครื่องมือ) | ข้อกำหนดที่ไม่สามารถใช้งานได้เกี่ยวกับฮาร์ดแวร์พื้นฐาน | ความสอดคล้องและความถูกต้องของระบบ |
UML - แผนภาพ | คลาสสถานะวัตถุลำดับแผนภาพการสื่อสาร | แผนภาพกิจกรรม | ส่วนประกอบแผนภาพแพ็คเกจ | แผนภาพการปรับใช้ | ใช้แผนภาพกรณี |
ภาษาคำอธิบายสถาปัตยกรรม (ADL)
ADL เป็นภาษาที่จัดเตรียมไวยากรณ์และความหมายสำหรับการกำหนดสถาปัตยกรรมซอฟต์แวร์ เป็นข้อกำหนดสัญกรณ์ที่มีคุณลักษณะสำหรับการสร้างแบบจำลองสถาปัตยกรรมแนวคิดของระบบซอฟต์แวร์ซึ่งแตกต่างจากการนำไปใช้งานของระบบ
ADL ต้องรองรับส่วนประกอบสถาปัตยกรรมการเชื่อมต่ออินเทอร์เฟซและการกำหนดค่าซึ่งเป็นส่วนประกอบของคำอธิบายสถาปัตยกรรม เป็นรูปแบบของนิพจน์สำหรับใช้ในคำอธิบายสถาปัตยกรรมและให้ความสามารถในการย่อยสลายส่วนประกอบรวมส่วนประกอบและกำหนดส่วนต่อประสานของส่วนประกอบ
ภาษาคำอธิบายสถาปัตยกรรมเป็นภาษาข้อกำหนดที่เป็นทางการซึ่งอธิบายคุณลักษณะของซอฟต์แวร์เช่นกระบวนการเธรดข้อมูลและโปรแกรมย่อยตลอดจนส่วนประกอบฮาร์ดแวร์เช่นโปรเซสเซอร์อุปกรณ์บัสและหน่วยความจำ
ยากที่จะจำแนกหรือแยกความแตกต่างของ ADL และภาษาโปรแกรมหรือภาษาโมเดล อย่างไรก็ตามมีข้อกำหนดต่อไปนี้สำหรับภาษาที่จะจัดประเภทเป็น ADL -
มันควรจะเหมาะสมสำหรับการสื่อสารสถาปัตยกรรมไปยังทุกฝ่ายที่เกี่ยวข้อง
ควรเหมาะสำหรับงานสร้างสถาปัตยกรรมการปรับแต่งและการตรวจสอบความถูกต้อง
ควรเป็นพื้นฐานสำหรับการนำไปใช้งานต่อไปดังนั้นจึงต้องสามารถเพิ่มข้อมูลลงในข้อกำหนด ADL เพื่อเปิดใช้งานข้อกำหนดสุดท้ายของระบบที่ได้มาจาก ADL
ควรมีความสามารถในการแสดงรูปแบบสถาปัตยกรรมทั่วไปส่วนใหญ่
ควรสนับสนุนความสามารถในการวิเคราะห์หรือจัดเตรียมการใช้งานต้นแบบอย่างรวดเร็ว