การออกแบบระดับระบบ ตอนที่ 1 จากแนวคิดสู่ระบบ

สวัสดีทุกคน. ฉันมักจะใช้หลักการทางวิศวกรรมระบบในงานของฉัน และต้องการแบ่งปันแนวทางนี้กับชุมชน

วิศวกรรมระบบ - ไม่มีมาตรฐาน แต่พูดง่ายๆ ก็คือกระบวนการพัฒนาระบบที่เป็นส่วนประกอบที่ค่อนข้างเป็นนามธรรม โดยไม่ต้องอ้างอิงถึงตัวอย่างอุปกรณ์เฉพาะ ในระหว่างกระบวนการนี้ คุณสมบัติของส่วนประกอบของระบบและการเชื่อมต่อระหว่างส่วนประกอบเหล่านั้นจะถูกสร้างขึ้น นอกจากนี้ จำเป็นต้องทำให้ระบบสอดคล้องและเหมาะสมที่สุด และระบบตรงตามข้อกำหนด ในบทช่วยสอนนี้ ฉันจะแสดงเทคนิคทางวิศวกรรมระบบโดยใช้ตัวอย่างการออกแบบระบบควบคุมการเข้าออก (ACS) ที่ค่อนข้างเรียบง่าย

การสร้างสถาปัตยกรรมเบื้องต้น

เมื่อระบบไม่ว่าจะเป็นอะไรก็ตาม เพิ่งเริ่มได้รับการพัฒนา สี่เหลี่ยมที่มีลูกศรปรากฏขึ้นในหัวของเราหรือบนกระดาษ สี่เหลี่ยมดังกล่าวคือ ส่วนประกอบ ระบบ และลูกศรอยู่ สัมพันธ์ ระหว่างส่วนประกอบ และบ่อยครั้งที่เราไม่มีเวลานั่งคิดว่าส่วนประกอบทั้งหมดที่เรากำหนดไว้จะทำงานร่วมกันได้อย่างไร และในท้ายที่สุด เราก็เริ่มสร้างไม้ค้ำยันขึ้นมาจำนวนหนึ่ง โดยมีการออกแบบที่ซ้ำซ้อน

สิ่งสำคัญคือต้องจำไว้ว่าจากมุมมองของระบบและสถาปัตยกรรม ส่วนประกอบเป็นสิ่งที่ค่อนข้างเป็นนามธรรม ตัวอย่างเช่น หากระบบของเรามีไมโครคอนโทรลเลอร์ ในระดับสถาปัตยกรรม สิ่งสำคัญสำหรับเราก็คือไมโครคอนโทรลเลอร์ ไม่ใช่ STM32, Arduino หรือ Milander ยิ่งไปกว่านั้น บ่อยครั้งที่เรายังไม่ชัดเจนเลยว่าจะมีอะไรอยู่ในระบบอย่างแน่นอน และเราหันไปหาวิศวกรรมระบบเพื่อพัฒนาข้อกำหนดสำหรับอุปกรณ์ ซอฟต์แวร์ ฯลฯ

สำหรับตัวอย่างของเรากับ ACS เราจะพยายามกำหนดวัตถุประสงค์ของมัน สิ่งนี้จะช่วยเราในการระบุส่วนประกอบของมัน ดังนั้น หน้าที่ของระบบควบคุมการเข้าออกคือการอนุญาตให้คนเข้าห้องในวงจำกัด นั่นคือมันเป็นล็อคอัจฉริยะ ดังนั้นเราจึงมีองค์ประกอบแรก - อุปกรณ์บางชนิดที่ล็อคและปลดล็อคประตู! ลองโทรหาเขาสิ ล็อคประตู

เราจะรู้ได้อย่างไรว่าบุคคลสามารถเข้าไปข้างในได้? เราไม่อยากเอายามมาตรวจพาสปอร์ตใช่ไหม? มามอบการ์ดพิเศษที่มีแท็ก RFID ให้กับผู้คน ซึ่งเราจะบันทึก ID ที่ไม่ซ้ำหรือข้อมูลอื่น ๆ ที่ช่วยให้เราสามารถระบุตัวบุคคลได้อย่างแม่นยำ จากนั้นเราจะต้องมีอุปกรณ์ที่สามารถอ่านแท็กเหล่านี้ได้ เยี่ยมเลย เรามีองค์ประกอบอีกอย่างหนึ่ง เครื่องอ่าน RFID

ลองดูอีกครั้งว่าเราได้อะไรมาบ้าง เครื่องอ่าน RFID อ่านข้อมูลบางอย่าง ระบบควบคุมการเข้าใช้งานทำอะไรบางอย่างกับมัน และบนพื้นฐานของสิ่งนี้ บางสิ่งจะถูกควบคุม ล็อคประตู. ลองถามคำถามต่อไปนี้ - จะเก็บรายชื่อผู้ที่มีสิทธิ์การเข้าถึงได้ที่ไหน? ดีที่สุดในฐานข้อมูล ดังนั้นระบบของเราจึงต้องสามารถส่งคำขอและดำเนินการตอบกลับจากฐานข้อมูลได้ ดังนั้นเราจึงมีองค์ประกอบอีกอย่างหนึ่ง - ดีบีแฮนด์เลอร์. ดังนั้นเราจึงได้รับคำอธิบายของระบบที่เป็นนามธรรมมาก แต่ก็เพียงพอที่จะเริ่มต้นด้วย เราเข้าใจว่ามันควรจะทำอะไรและทำงานอย่างไร

แทนที่จะใช้กระดาษ ฉันจะใช้ System Composer ซึ่งเป็นเครื่องมือพิเศษสำหรับการสร้างแบบจำลองสถาปัตยกรรมระบบในสภาพแวดล้อม Simulink และสร้าง 3 องค์ประกอบ ข้างต้นฉันได้อธิบายการเชื่อมต่อระหว่างส่วนประกอบเหล่านี้ ดังนั้นมาเชื่อมต่อกันทันที:

การออกแบบระดับระบบ ตอนที่ 1 จากแนวคิดสู่ระบบ

การขยายสถาปัตยกรรม

ลองดูแผนภาพของเรา ดูเหมือนว่าทุกอย่างจะเรียบร้อยดี แต่ในความเป็นจริงกลับไม่ใช่เลย ดูระบบนี้จากมุมมองของผู้ใช้ - ผู้ใช้นำการ์ดไปที่เครื่องอ่านและ...? ผู้ใช้จะรู้ได้อย่างไรว่าพวกเขาได้รับอนุญาตหรือถูกปฏิเสธการเข้าถึง? มีความจำเป็นต้องแจ้งให้เขาทราบเกี่ยวกับเรื่องนี้! ดังนั้นเรามาเพิ่มองค์ประกอบอีกหนึ่งอย่าง - การแจ้งเตือนผู้ใช้ แจ้งผู้ใช้:

การออกแบบระดับระบบ ตอนที่ 1 จากแนวคิดสู่ระบบ

ตอนนี้เรามาดูระดับนามธรรมที่ต่ำกว่ากัน ลองอธิบายส่วนประกอบบางอย่างโดยละเอียดมากขึ้นอีกหน่อย เริ่มจากส่วนประกอบกันก่อน เครื่องอ่าน RFID. ในระบบของเรา ส่วนประกอบนี้มีหน้าที่ในการอ่านแท็ก RFID ผลลัพธ์ควรมีข้อมูลบางส่วน (UID ข้อมูลผู้ใช้...) แต่เดี๋ยวก่อน RFID ก็เหมือนกับ NFC ที่เป็นฮาร์ดแวร์เป็นหลัก ไม่ใช่ซอฟต์แวร์! ดังนั้นเราจึงสรุปได้ว่าเรามีชิป RFID แยกต่างหากซึ่งส่งข้อมูล "ดิบ" ไปยังตัวประมวลผลล่วงหน้าบางประเภท ดังนั้นเราจึงมีฮาร์ดแวร์เชิงนามธรรมที่สามารถอ่านแท็ก RFID ได้ และซอฟต์แวร์เชิงนามธรรมที่สามารถแปลงข้อมูลเป็นรูปแบบที่เราต้องการได้ มาโทรหาพวกเขากันเถอะ RFIDเซนเซอร์ и RFIDParser ตามลำดับ จะแสดงสิ่งนี้ใน System Composer ได้อย่างไร? คุณสามารถลบส่วนประกอบออกได้ เครื่องอ่าน RFID และใส่สององค์ประกอบแทน แต่เป็นการดีกว่าที่จะไม่ทำเช่นนี้ ไม่เช่นนั้นเราจะสูญเสียความสามารถในการอ่านของสถาปัตยกรรม ให้เราเข้าไปข้างใน RFIDReader และเพิ่มส่วนประกอบใหม่ 2 ชิ้นแทน:

การออกแบบระดับระบบ ตอนที่ 1 จากแนวคิดสู่ระบบ

เยี่ยมเลย ตอนนี้เรามาดูการแจ้งเตือนผู้ใช้กันดีกว่า ระบบจะแจ้งเตือนผู้ใช้ว่าถูกปฏิเสธหรืออนุญาตให้เข้าใช้สถานที่ได้อย่างไร? บุคคลรับรู้เสียงและสิ่งที่กระพริบได้ดีที่สุด ดังนั้นคุณสามารถส่งสัญญาณเสียงบางอย่างเพื่อให้ผู้ใช้ให้ความสนใจและกระพริบไฟ LED มาเพิ่มส่วนประกอบที่เหมาะสมลงไป แจ้งผู้ใช้:

การออกแบบระดับระบบ ตอนที่ 1 จากแนวคิดสู่ระบบ

เราได้สร้างสถาปัตยกรรมของระบบของเรา แต่มีบางอย่างผิดปกติ อะไร มาดูชื่อการเชื่อมต่อกัน อินบัส и เอาท์บัส - ไม่ใช่ชื่อปกติที่จะช่วยนักพัฒนาได้ พวกเขาจำเป็นต้องเปลี่ยนชื่อ:

การออกแบบระดับระบบ ตอนที่ 1 จากแนวคิดสู่ระบบ

ดังนั้นเราจึงดูว่าวิธีการทางวิศวกรรมระบบนำไปใช้อย่างไรในการประมาณคร่าวๆ คำถามเกิดขึ้น: ทำไมต้องใช้มันเลย? ระบบนี้เป็นระบบดั้งเดิม และดูเหมือนว่างานที่ทำเสร็จแล้วนั้นไม่จำเป็น คุณสามารถเขียนโค้ด ออกแบบฐานข้อมูล เขียนคำสั่ง หรือประสานได้ทันที ปัญหาคือถ้าคุณไม่คิดผ่านระบบและเข้าใจว่าส่วนประกอบต่างๆ เชื่อมโยงกันอย่างไร การรวมส่วนประกอบต่างๆ ของระบบจะใช้เวลานานและค่อนข้างเจ็บปวด

ประเด็นหลักจากส่วนนี้คือ:

การใช้วิธีการทางวิศวกรรมระบบและการสร้างแบบจำลองสถาปัตยกรรมในการพัฒนาระบบช่วยให้สามารถลดต้นทุนในการรวมส่วนประกอบและปรับปรุงคุณภาพของระบบที่พัฒนาแล้ว

ที่มา: will.com

เพิ่มความคิดเห็น