Thiết kế ở cấp độ hệ thống. Phần 1. Từ ý tưởng đến hệ thống

Chào mọi người. Tôi thường áp dụng các nguyên tắc kỹ thuật hệ thống vào công việc của mình và muốn chia sẻ cách tiếp cận này với cộng đồng.

Kỹ thuật hệ thống - không có tiêu chuẩn, mà nói một cách đơn giản, đó là quá trình phát triển một hệ thống dưới dạng các thành phần khá trừu tượng, không tham chiếu đến các mẫu thiết bị cụ thể. Trong quá trình này, các thuộc tính của các thành phần hệ thống và các kết nối giữa chúng được thiết lập. Ngoài ra, cần đảm bảo hệ thống đồng bộ, tối ưu và đáp ứng yêu cầu. Trong hướng dẫn này, tôi sẽ trình bày các kỹ thuật kỹ thuật hệ thống bằng cách sử dụng ví dụ về thiết kế một hệ thống kiểm soát truy cập (ACS) khá đơn giản.

Hình thành kiến ​​trúc ban đầu

Khi một hệ thống, bất kể thế nào, mới bắt đầu được phát triển, các hình chữ nhật có mũi tên sẽ xuất hiện trong đầu chúng ta hoặc trên giấy. Những hình chữ nhật như vậy là các thành phần hệ thống. Và các mũi tên là kết nối giữa các thành phần. Và rất thường xuyên, chúng tôi không có thời gian để ngồi suy nghĩ xem tất cả các thành phần mà chúng tôi đã xác định sẽ hoạt động với nhau như thế nào, và cuối cùng, chúng tôi bắt đầu tạo ra một loạt những chiếc nạng, đưa ra những thiết kế dư thừa.

Điều quan trọng cần nhớ là từ quan điểm của hệ thống và kiến ​​trúc của nó, một thành phần là một thứ khá trừu tượng. Ví dụ: nếu hệ thống của chúng tôi có một bộ vi điều khiển, thì ở cấp độ kiến ​​​​trúc, điều quan trọng đối với chúng tôi là đó là một bộ vi điều khiển chứ không phải STM32, Arduino hay Milander. Hơn nữa, chúng tôi thường không rõ ràng chính xác những gì sẽ có trong hệ thống và chúng tôi chuyển sang kỹ thuật hệ thống để phát triển các yêu cầu đối với thiết bị, phần mềm, v.v.

Đối với ví dụ của chúng tôi với ACS, chúng tôi sẽ cố gắng hình thành mục đích của nó. Điều này sẽ giúp chúng tôi xác định các thành phần của nó. Vì vậy, nhiệm vụ của hệ thống kiểm soát truy cập là cho phép một lượng người hạn chế vào phòng. Tức là nó là một chiếc khóa thông minh. Do đó, chúng ta có thành phần đầu tiên - một loại thiết bị khóa và mở khóa cửa! Hãy gọi cho anh ấy Khóa cửa

Làm sao chúng ta biết rằng một người có thể vào bên trong? Chúng ta không muốn bố trí người canh gác và kiểm tra hộ chiếu, phải không? Hãy cung cấp cho mọi người những thẻ đặc biệt có thẻ RFID, trên đó chúng tôi sẽ ghi lại ID duy nhất hoặc dữ liệu khác cho phép chúng tôi nhận dạng chính xác một người. Sau đó, chúng ta sẽ cần một số thiết bị có thể đọc được các thẻ này. Tuyệt vời, chúng ta có thêm một thành phần nữa, đầu đọc RFID

Hãy nhìn lại những gì chúng ta có. đầu đọc RFID đọc một số dữ liệu, hệ thống kiểm soát truy cập sẽ thực hiện điều gì đó với dữ liệu đó và trên cơ sở đó, điều gì đó được kiểm soát Khóa cửa. Hãy đặt câu hỏi sau - nơi lưu trữ danh sách những người có quyền truy cập? Tốt nhất trong cơ sở dữ liệu. Do đó, hệ thống của chúng tôi phải có khả năng gửi yêu cầu và xử lý phản hồi từ cơ sở dữ liệu. Vì vậy, chúng tôi có thêm một thành phần - DBHandler. Vì vậy, chúng tôi đã nhận được một mô tả cực kỳ trừu tượng, nhưng đủ để bắt đầu, về hệ thống. Chúng tôi hiểu nó phải làm gì và hoạt động như thế nào.

Thay vì dùng một mảnh giấy, tôi sẽ sử dụng System Composer, một công cụ đặc biệt để mô hình hóa kiến ​​trúc hệ thống trong môi trường Simulink và tạo ra 3 thành phần. Ở trên tôi đã mô tả các kết nối giữa các thành phần này, vì vậy hãy kết nối chúng ngay lập tức:

Thiết kế ở cấp độ hệ thống. Phần 1. Từ ý tưởng đến hệ thống

Mở rộng kiến ​​trúc

Hãy nhìn vào sơ đồ của chúng tôi. Có vẻ như mọi thứ đều ổn nhưng thực tế thì không phải vậy. Hãy nhìn hệ thống này từ quan điểm của người dùng - người dùng mang thẻ đến đầu đọc và...? Làm thế nào để người dùng biết họ được phép hoặc bị từ chối truy cập? Cần phải bằng cách nào đó thông báo cho anh ấy về điều này! Vì vậy, hãy thêm một thành phần nữa - thông báo người dùng, Thông báo người dùng:

Thiết kế ở cấp độ hệ thống. Phần 1. Từ ý tưởng đến hệ thống

Bây giờ chúng ta hãy đi xuống mức độ trừu tượng thấp hơn. Hãy thử mô tả một số thành phần chi tiết hơn một chút. Hãy bắt đầu với thành phần đầu đọc RFID. Trong hệ thống của chúng tôi, thành phần này chịu trách nhiệm đọc thẻ RFID. Đầu ra của nó phải chứa một số dữ liệu (UID, dữ liệu người dùng ...). Nhưng chờ đã, RFID, giống như NFC, chủ yếu là phần cứng chứ không phải phần mềm! Do đó, chúng ta có thể giả định rằng chúng ta có riêng chip RFID, chip này truyền dữ liệu “thô” đến một loại bộ tiền xử lý nào đó. Vì vậy, chúng tôi có một phần cứng trừu tượng có thể đọc thẻ RFID và phần mềm trừu tượng có thể chuyển đổi dữ liệu sang định dạng mà chúng tôi cần. Hãy gọi họ Cảm Biến RFID и Trình phân tích cú pháp RFID tương ứng. Làm cách nào để hiển thị điều này trong System Composer? Bạn có thể loại bỏ một thành phần đầu đọc RFID và đặt hai thành phần thay thế, nhưng tốt hơn hết là không nên làm điều này, nếu không chúng ta sẽ mất khả năng đọc của kiến ​​trúc. Thay vào đó, hãy vào bên trong RFIDReader và thêm 2 thành phần mới:

Thiết kế ở cấp độ hệ thống. Phần 1. Từ ý tưởng đến hệ thống

Tuyệt vời, bây giờ chúng ta hãy chuyển sang phần thông báo cho người dùng. Làm thế nào hệ thống sẽ thông báo cho người dùng rằng anh ta bị từ chối hoặc được phép truy cập vào cơ sở? Một người cảm nhận tốt nhất âm thanh và thứ gì đó nhấp nháy. Do đó, bạn có thể phát ra một tín hiệu âm thanh nhất định để người dùng chú ý và nhấp nháy đèn LED. Hãy thêm các thành phần thích hợp vào Thông báo người dùng:

Thiết kế ở cấp độ hệ thống. Phần 1. Từ ý tưởng đến hệ thống

Chúng tôi đã tạo ra kiến ​​trúc cho hệ thống của mình, nhưng có điều gì đó không ổn với nó. Cái gì? Hãy nhìn vào tên kết nối. trong xe buýt и Ra ngoài xe buýt - những cái tên không hoàn toàn bình thường sẽ giúp ích cho nhà phát triển. Họ cần được đổi tên:

Thiết kế ở cấp độ hệ thống. Phần 1. Từ ý tưởng đến hệ thống

Vì vậy, chúng tôi đã xem xét cách áp dụng các phương pháp kỹ thuật hệ thống ở mức gần đúng nhất. Câu hỏi đặt ra: tại sao lại sử dụng chúng? Hệ thống này còn nguyên thủy và có vẻ như công việc được thực hiện là không cần thiết. Bạn có thể ngay lập tức viết mã, thiết kế cơ sở dữ liệu, viết truy vấn hoặc hàn. Vấn đề là nếu bạn không suy nghĩ thấu đáo về hệ thống và hiểu cách các thành phần của nó được kết nối với nhau thì việc tích hợp các thành phần hệ thống sẽ mất nhiều thời gian và khá vất vả.

Điểm chính của phần này là:

Việc sử dụng các phương pháp kỹ thuật hệ thống và mô hình kiến ​​trúc trong phát triển hệ thống cho phép giảm chi phí tích hợp các thành phần và cải thiện chất lượng của hệ thống đã phát triển.

Nguồn: www.habr.com

Thêm một lời nhận xét