2008-09-27 17 views
12

Tôi đã nghe nói rằng ngành công nghiệp ô tô có cái gì gọi là Misra C.Mã hóa cho độ tin cậy/tính khả dụng/bảo mật cao - tôi đọc tiêu chuẩn nào?

các tiêu chuẩn có liên quan cho các ngành công nghiệp độ tin cậy cao/sẵn/bảo mật khác, chẳng hạn như

  • là gì Space
  • Máy bay
  • Ngân hàng/tài chính
  • Ô tô
  • Y tế
  • Quốc phòng/Quân sự
  • ???

-Adam

+0

Đó là một câu hỏi chung lớn. Làm thế nào về một cái gì đó cụ thể hơn một chút? Ngôn ngữ? Nền tảng? Quốc gia (ví dụ: ngoài Hoa Kỳ!) –

+0

Tôi đã hỏi một câu hỏi tương tự cách đây một thời gian và [this] (http://stackoverflow.com/questions/81832/what-is-the-best-resource-for-learning-about -safety-critical-systems-developmen # 81869) là câu trả lời duy nhất tôi nhận được. Tuy nhiên tôi rất quan tâm để xem những gì mọi người phải nói. – mdec

Trả lời

6

Kiểm tra Trung tâm chuyến bay vũ trụ Goddard và coding standards. Một trong các tiêu chuẩn C, mà tôi đã sử dụng trong mã của riêng tôi, là các tiêu đề phải được khép kín và chúng cung cấp một cách đơn giản để thực thi điều đó - tiêu đề của mô-đun phải là tệp đầu tiên được bao gồm trong mô-đun, vì vậy nếu tệp không bị khép kín, nó sẽ không biên dịch.

+1

Ôi trời ơi. Tôi thích nó. – TraumaPony

+0

Xem [Tôi có nên sử dụng '# include' trong tiêu đề] hay không (http://stackoverflow.com/questions/1804486/should-i-use-include-in-headers) để biết thông tin về vị trí hiện tại của mã hóa GSFC cho C . –

4

nếu bạn đang yêu cầu cụ thể về mã hóa, các Misra trình bày một số hướng dẫn để tránh sai lầm phổ biến trong C.

Tuy nhiên, có rất nhiều phần mềm hơn để tốt hơn mã hóa. "Kinh thánh" của ngành hàng không cho phát triển sw là DO-178B. Nó cho bạn biết những câu hỏi nào cần được giải quyết trong các giai đoạn thiết kế khác nhau và cách các câu trả lời nên được ghi chép lại. Đó là số lượng giấy tờ ENORMOUS, nhưng nếu bạn đang cố giữ máy bay trong không khí, bạn muốn điểm yếu nhất là con người (phi công) chứ không phải phần mềm.

+0

Có sẵn liên kết có sẵn cho điều đó không? –

+0

http://en.wikipedia.org/wiki/DO-178B – TraumaPony

2

Bạn có thể thấy nó có tính hướng dẫn để xem xét một số yêu cầu của Carrier Grade Linux. Trong khi họ (như tên cho thấy!) Được xác định yêu cầu Linux, họ đang làm như vậy để sử dụng trong phân khúc sẵn sàng cao của thiết bị viễn thông.

1

NIST cung cấp toàn bộ tài liệu liên quan, bạn có thể đi sâu vào và nghiên cứu công việc của mình - nhưng có rất nhiều thứ, và tất cả đều khá dài, vì vậy tôi không có một tài liệu cụ thể để chỉ cho bạn.
Nếu bạn muốn cụ thể hơn với nhu cầu của mình, tôi có thể thu hẹp nó xuống một chút ...

Ngoài ra, Carnegie Mellon là khá chắc chắn khi nói đến quá trình phát triển về độ tin cậy, dễ dàng đủ để tìm tiêu chuẩn của họ nhưng cũng khá tiết.

Ngoài ra, các ngành cụ thể thường có tiêu chuẩn riêng, tùy thuộc vào quốc gia. Ví dụ, ngành công nghiệp thẻ tín dụng - PCI-DSS; Ngành ngân hàng tại EU - Basel II; Y tế - HIPAA (mặc dù đó là khá cao cấp); bất cứ điều gì liên quan đến chính phủ Hoa Kỳ, các tài liệu NIST khác nhau; v.v.

3

Đối với lập trình hệ thống độ tin cậy cao trong Ada, có: ISO/IEC TR 15942:"Information technology — Programming languages — Guide for the use of the Ada programming language in high integrity systems":

Giới thiệu

Là một xã hội, chúng tôi đang ngày càng phụ thuộc vào hệ thống toàn vẹn cao: cho các hệ thống an toàn (ví dụ như máy bay bay bằng dây), để bảo mật hệ thống (để bảo vệ thông tin số kỹ thuật số) hoặc cho hệ thống tài chính (e. g., máy rút tiền). Vì độ phức tạp của các hệ thống này tăng lên, do đó, thực hiện các yêu cầu về các kỹ thuật được cải tiến để sản xuất phần mềm thành phần của hệ thống. Các hệ thống toàn vẹn cao này phải được hiển thị là có thể dự đoán đầy đủ trong hoạt động và có tất cả các thuộc tính bắt buộc là chúng. Chỉ có thể đạt được điều này bằng cách phân tích phần mềm, ngoài việc sử dụng thử nghiệm động thông thường. Hiện tại, không có ngôn ngữ cấp cao chính thống nơi tất cả các chương trình bằng ngôn ngữ đó là đảm bảo có thể dự đoán được và có thể phân tích. Do đó, đối với bất kỳ sự lựa chọn nào là ngôn ngữ triển khai, nó là cần thiết để kiểm soát các cách mà ứng dụng sử dụng. Ngôn ngữ Ada [ARM] được thiết kế với các cơ chế cụ thể để kiểm soát việc sử dụng các khía cạnh nhất định của ngôn ngữ. Hơn nữa,

  1. Ngữ nghĩa của chương trình Ada được rõ ràng, thậm chí do lỗi tình huống. Cụ thể, hiệu ứng của một chương trình có thể được dự đoán từ định nghĩa ngôn ngữ với một số ít phụ thuộc triển khai hoặc tương tác giữa các ngôn ngữ tính năng.

  2. Việc nhập mạnh mẽ trong ngôn ngữ có thể được sử dụng để giảm phạm vi phân tích (và chi phí) để xác minh các thuộc tính chính .

  3. Ngôn ngữ Ada đã được sử dụng thành công trên nhiều ứng dụng toàn vẹn cao . Điều này chứng minh rằng Ada trình biên dịch đã được xác thực có chất lượng theo yêu cầu cho các ứng dụng như vậy.

  4. Hướng dẫn có thể được cung cấp để tạo thuận lợi cho việc sử dụng ngôn ngữ và để khuyến khích phát triển các công cụ để xác minh thêm.

Ada là do lý tưởng cho triển khai phần mềm toàn vẹn cao và tài liệu này cung cấp hướng dẫn tại các điều khiển được yêu cầu trên sử dụng Ada để đảm bảo rằng chương trình này thể dự đoán được và analysable.

Các vấn đề liên quan