Chương 3. Giao diện hệ thống, thiết bị và hệ thống điều khiển

3.8 Điều khiển bằng phần mềm

Kỹ thuật hệ thống

Kỹ thuật hệ thống là cách tiếp cận hệ thống trong việc thiết kế và phát triển các sản phẩm cũng như các hệ thống. Hình 3.10 chỉ ra mối quan hệ giữa các khả năng kỹ thuật chính với hệ cơ điện tử. Các khả năng lực kỹ thuật hệ thống bao gồm các khả năng về cơ khí, điện và phần mềm. Có một vài nhiệm vụ quan trọng mà các kỹ sư hệ thống cần thực hiện, bắt đầu bằng việc thu thập các yêu cầu, tiếp đến là thông qua việc kiểm tra, xác nhận hệ thống và sản phẩm hoàn chỉnh. Sau khi thu thập và phân tích các yêu cầu, các kỹ sư hệ thống cần phân chia chức năng của các yêu cầu giữa các thành phần cơ khí, điện và phần mềm dựa trên ba khả năng liên quan. Đây là một phần trong việc thực thi các kỹ thuật hệ thống một cách đồng thời. Như đã chỉ ra trong hình, phần mềm cũng có vai trò tương đương trong việc phát triển hệ thống cơ điện tử. Trước kia, đôi khi người ta cho rằng phần mềm không phải là một bộ phận độc lập, cấu thành nên hệ thống cơ điện tử. Mặc dù cụm từ “Phần cứng làm tăng chi phí, phần mềm tạo thêm giá trị” không hoàn toàn đúng, nhưng đôi khi các kỹ sư phần mềm vẫn cảm thấy rằng khả năng của họ không được đánh giá ngang bằng với các ngành kỹ thuật truyền thống. Một điều cuối cùng nữa là rất nhiều hệ cơ điện tử là các hệ thống an toàn như hệ thống túi khí trong ôtô. Vì vậy việc chịu được lỗi trong phần mềm cũng là vấn đề quan trọng như trong phần cứng.

Kỹ thuật phần mềm

Kỹ thuật phần mềm liên quan đến cả quy trình phát triển cơ điện tử và “sản phẩm” cơ điện tử hoàn chỉnh. Có hai phương pháp cơ bản với những biến thể khác nhau được dùng trong quá trình. Phương pháp thứ nhất được gọi là phương pháp “thác nước” (waterfall), ở đó quá trình sẽ tiến triển từ giai đoạn này sang giai đoạn khác (ví dụ như từ phân tích đến thiết kế) với các điểm kiểm tra được đánh dấu dọc theo quá trình. Phương pháp thứ hai với tên gọi phương pháp “xoắn ốc” (spiral) được áp dụng khi các yêu cầu là không cố định. Trong phương pháp này có việc tạo mẫu để khách hàng và/hoặc các kỹ sư hệ thống có thể cải tiến các yêu cầu khi biết thêm các thông tin về hệ thống. Trong cả hai phương pháp, khi các yêu cầu về việc chia nhỏ phần mềm của hệ thống cơ điện tử được thể hiện, các kỹ sư phần mềm nên chia nhỏ chức năng thành các phần nhỏ hơn của thiết kế phần mềm. Các thông số như thời gian, chi phí phát triển, dung lượng bộ nhớ và lượng thông tin được truyền cũng cần được lên kế hoạch và lưu lại. Người ta có thể sử dụng các cấp khác nhau của mô hình SEI CMM (Software Engineering Institute’s Capability Maturity Model) để thực hiện các thao tác trên. Rõ ràng việc phát triển phần mềm không phải là một công việc dễ dàng như người ta vẫn nghĩ và một hệ thống chỉ có thể duy trì ở mức “90% hoàn thiện” trong suốt quá

Lớp phần mềm Cơ điện tử

HÌNH 3.11 Lớp phần mềm Cơ điện tử

trình phát triển. Giải pháp đầu tiên cho vấn đề này thường là phân công thêm nhiều kỹ sư phần mềm hơn cho dự án. Tuy nhiên, không phải giải pháp này lúc nào cũng thực hiện được bởi có sự khác nhau về kiến thức của những người mới như Frederick Brooks đã chỉ ra trong cuốn sách quan trọng của mình mang tựa đề The Mythical Man Month (Addison-Wesley 1995).

Thiết kế phần mềm

Có lẽ các phần quan trọng nhất trong thiết kế phần mềm cho hệ cơ điện tử là có thể thấy được từ cấu trúc phân tầng ở hình 3.11. Bắt đầu từ các yêu cầu đến phần cứng, sự phân tầng này nhằm phục vụ một số mục đích khác nhau. Mục đích quan trọng nhất là nó tách các chức năng cơ điện tử khỏi quá trình vận hành. Hiểu một cách đơn giản là tầng ở trên không can hệ tới cách thực hiện nhiệm vụ của tầng dưới. Thay vào đó, mỗi tầng được chỉ thị bởi tầng ở trên nó và nhận dịch vụ hoặc trạng thái từ tầng bên dưới nó. Việc vượt qua ranh giới của hơn một tầng là một kỹ thuật không được khuyến khích và sau này có thể gây rắc rối cho quy trình thiết kế. Nên nhớ rằng việc trừu tượng hoá quy trình là rất hữu ích vì một hệ thống cơ điện tử có các thành phần cơ khí, điện và phần mềm được phát triển đồng thời. Một thay đổi trong giao diện bộ cảm biến hoặc cơ cấu chấp hành chỉ đòi hỏi sự thay đổi ở tầng ngay trên nó là tầng điều khiển. Trong điều kiện kinh doanh hiện nay, rất khó cho những người làm việc ở các tầng khác nhau hợp tác với nhau. Hơn nữa, việc thiết kế phần mềm diễn ra ở nhiều nơi, nhiều quốc gia lại không mấy phổ biến. Nếu không có sự phân chia rõ ràng giữa những tầng này thì rất dễ xảy ra xung đột.

Để biết thêm thông tin chi tiết về vấn đề này và những vấn đề khác trong kỹ thuật phần mềm như sự hợp lại, sự cố kết và tái sử dụng phần mềm, hãy xem chương 49 trong cuốn sách này, hoặc xem cuốn “Software Engineering: A practitioner’s Approach của Roger Pressman (McGraw Hill 2000), và cuốn “Code Complete” của Steve McConnel (Microsoft Press 1993).

Rate this post