美國宇航局編寫任務關鍵程式碼的規則

當你是NASA的時候,開發關鍵的應用程式(比如控制飛機和航天器的程式碼),程式碼質量和安全是最重要的。這就是為什麼他們一直在研究編碼標準或規則,以確保關鍵軟體的可靠性。...
Illustration for article titled NASA's Rules for Writing Mission Critical Code

當你是NASA的時候,開發關鍵的應用程式(比如控制飛機和航天器的程式碼),程式碼質量和安全是最重要的。這就是為什麼他們一直在研究編碼標準或規則,以確保關鍵軟體的可靠性。

該指南是由加州理工學院噴氣推進實驗室(JPL)根據與美國宇航局的合同制定的,目前正在噴氣推進實驗室進行實驗,結果令人鼓舞。由於C語言的悠久歷史和廣泛的工具支援,該指南主要關註用C語言編寫的程式碼,但也可以適用於其他程式語言,即使您的軟體程式不會用於發射飛機。

這裡有10條規則,使集合變得足夠小和清晰以便於記憶。其中一些是良好編碼風格和實踐的廣泛接受的標準,例如在最小範圍級別宣告資料物件(第6條規則)和每天至少使用一個原始碼分析器檢查程式碼(第10條規則)。有些可能看起來很嚴格或有限制,例如第四條規則:

函式的長度不應超過以標準參考格式列印在一張紙上的長度,每個語句一行,每個宣告一行。通常,這意味著每個函式不超過60行程式碼。

理由:每個函式都應該是程式碼中的一個邏輯單元,可以作為一個單元來理解和驗證。要理解一個邏輯單元在計算機顯示器上跨越多個螢幕或列印時跨越多個頁面要困難得多。過長的函式通常是程式碼結構不良的標誌。

然而,正如指導方針所指出的,這些規則旨在使關鍵任務程式碼更清晰、更易於分析,並最終更安全。

檢視下麵的PDF,瞭解十條規則及其原理。

透過JAXenter開發安全關鍵程式碼(PDF)的十條規則的威力

旅行者雷尼攝。

  • 發表於 2021-05-18 18:20
  • 閱讀 ( 24 )
  • 分類:網際網路

你可能感興趣的文章

識別符號(identifier)和關鍵字(keyword)的區別

...存資料的記憶體位置。函式是執行特定任務的語句塊。在編寫程式時,重要的是要給出有意義的名稱,因為這樣可以提高程式碼的可讀性。因此,程式設計師可以建立名稱來標識它們。它們被稱為識別符號。識別符號是給變數、...

  • 發佈於 2020-10-19 15:19
  • 閲讀 ( 48 )

原始碼(source code)和位元組碼(bytecode)的區別

...程式可以向計算機發出指令。它是用一套特定的程式語言編寫的。程式語言有很多種。大多數程式語言都是高階程式語言。用高階語言編寫的程式很容易被人或程式設計師理解。這些程式稱為原始碼。機器無法理解它們。因此,...

  • 發佈於 2020-10-19 15:49
  • 閲讀 ( 59 )

原始碼(source code)和目的碼(object code)的區別

...任務的一組指令。它們的指令是由程式設計師用程式語言編寫的。因此,開發一個軟體意味著開發一套程式。編寫程式的活動稱為程式設計。開發完整軟體所遵循的過程稱為軟體開發生命週期(SDLC)。SDLC中涉及的步驟使我們能...

  • 發佈於 2020-10-19 18:56
  • 閲讀 ( 189 )

不涉及程式碼的程式設計師的10個愛好

... 你最好去美國參加定向運動,加入附近的定向運動俱樂部。地理快取只需要你的**就可以自己完成,所以對大多數人來說這可能是一個更容易的開始。在我們第一次介紹geocaching時瞭...

  • 發佈於 2021-03-13 06:43
  • 閲讀 ( 48 )

用java編寫多執行緒程式碼的4種方法

多執行緒是一種編寫程式碼以並行執行任務的方法。從Java1.0的早期開始,Java就對編寫多執行緒程式碼提供了極好的支援。最近對Java的增強增加了在Java程式中構建多執行緒程式碼的方式。 ...

  • 發佈於 2021-03-14 04:48
  • 閲讀 ( 50 )

7個簡單的windows指令碼,為您節省時間和精力

對於初學者來說,開始編寫指令碼是非常可怕的。不過,在Windows10 PC上使用指令碼有一些主要的好處。如果您剛剛開始,使用他人編寫的Windows指令碼通常可以讓您對工作方式有一個很好的瞭解。 ...

  • 發佈於 2021-03-15 21:37
  • 閲讀 ( 56 )

人工智慧將如何塑造惡意軟體的未來

...對人工智慧開發人員很有用,因為他們不需要為每個場景編寫程式碼。他們讓人工智慧知道什麼是對的,什麼是錯的,然後讓它透過試錯來學習。 ...

  • 發佈於 2021-03-19 04:54
  • 閲讀 ( 44 )

想學程式設計嗎?你應該知道的5個關鍵術語

... 雖然文字編輯器只關注您正在編寫的程式碼,但是IDE是一個沙盒,它允許您編寫、編譯(從文字轉換為計算機語言)、測試和除錯(或更正)應用程式。“整合開發環境”中的單詞環境是關鍵:使用IDE...

  • 發佈於 2021-03-23 09:19
  • 閲讀 ( 56 )

如何在windows和mac上自動將檔案從一個資料夾移動到另一個資料夾

... 如果您以前從未編寫過批處理指令碼,請不要擔心。事實上,要為這個任務建立一個指令碼,您只需複製並貼上下面的程式碼,指定資料夾,就可以了。 ...

  • 發佈於 2021-03-27 06:07
  • 閲讀 ( 61 )

如何在linux上使用awk命令

...酷的功能。 awk是怎麼得名的 awk命令的名字是使用1977年編寫原始版本的三個人的縮寫:阿爾弗雷德·阿霍、彼得·溫伯格和布萊恩·克尼漢。這三個人來自傳說中的AT&T貝爾實驗室Unix pantheon。在許多其他國家的貢獻下,特設工...

  • 發佈於 2021-04-02 15:02
  • 閲讀 ( 49 )
ghze1559
ghze1559

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦