1. 程式人生 > >關於GJB438A-97軟體設計文件的疑問

關於GJB438A-97軟體設計文件的疑問

關於GJB438A-97軟體設計文件的疑問

[摘要]本文記錄了對GJB438A-97《武器系統軟體開發文件》的軟體設計文件的一些疑問。

1引言

  GJB438A-97《武器系統軟體開發文件》規定了軟體設計文件編制的格式、內容和要求。在工程實踐中執行該標準時,感到其中有些要求比較難於理解和實施。

GJB438A-97是與GJB2786-96《武器系統軟體開發》配套的標準。GJB2786-96的編制參照採用了DoD-STD-2167A

  查閱了DoD-STD-2167A中關於軟體設計文件的原文,發現GJB438A-97也源於DoD-STD-2167A,但與原文有些差異。下面簡要記錄關於軟體設計文件編這些差異和疑問。

2標識

  GJB438A-97規定軟體設計文件的1.1節是“標識”。對該節的要求是:

  “列出本文件的:

a.已批准的標識號;

b.標題;

c.縮略語;

d.本文件適用的系統和計算機軟體配置項(CSCI),並標識派生該CSCI更高層的規格說明。”

  上述要求使我們把“已批准的標識號”理解為軟體設計文件的標識號,把“縮略語”理解為軟體設計文件中使用的所有縮略語,從而把整個縮略語表都放在了1.1節中。

  DoD-STD-2167A DID SDD中關於“標識”的原文是:

  “This paragraph shall be numbered 1.1 and shall contain the approved identification number, title, and abbreviation, if applicable, of the CSCI and the system to which it this SDD applies. This paragraph shall identify the higher-level specification(s) containing the requirements from which the design of this CSCI was derived.

  從原文中可看出:

a.“已批准的標識號”是指CSCI的標識號;

b.“縮略語”是指CSCI的名稱中用到的縮略語;

  如果某個設計文件中的所有縮略語有多頁,放在1.1節中好象不太合適。

3CSC的概要設計說明

  GJB438A-97關於CSC的概要設計說明有如下要求:

  “各節應提供以下資訊:

a.標識由需求規格說明分配給CSC的需求。如果CSC是由下一級的一些CSC組成的,則可以引用下一級的CSC描述部分資訊或全部資訊;

b.利用執行控制流和資料流來描述CSC的概要設計。如果CSC是由下一級的一些CSC組成,應標識下一級各CSC之間的相互關係。另外,應在軟體需求規格說明規定中標識每個

CSCI的內部介面。這些內部介面應由CSC和它的下一級CSC定位;

c.描述CSC的設計需求和設計約束,如果CSC是由下一級的一些CSC組成,則可引用下一級CSC的部分資訊和全部資訊。”

  對以上描述有如下疑問:

a.“標識由需求規格說明分配給CSC的需求”,需求規格說明還沒有涉及CSC,怎麼能對CSC分配需求?

b.“應在軟體需求規格說明文件中標識每個CSCI的內部介面”,這裡說的是設計文件,怎麼又對軟體需求規格說明文件提出了要求?

c.“內部介面應由CSC和它的下一級CSC定位”,“定位”的含義是什麼?

d.在“則可以引用下一級的CSC描述部分資訊或全部資訊”與“則可引用下一級的CSC的部分資訊和全部資訊”中,為何前一句用“或”,後一句用“和”?

  DoD-STD-2167A DID SDD中與上述要求對應的原文是:

  This subparagraph shall provide the following information:

a.Identify the requirements allocated to the CSC from the applicable requirements specification(s). If the CSC is composed of sub-level CSCs, some or all of this information may be referenced and provided by the sub-level CSC description.

b.Describe the preliminary design of the CSC in terms of execution control and data flow. If a CSC is composed of sublevel CSCs, this description shall identify each CSCI internal interface documented in the Software Requirements Specification, that is to be addressed by the CSC and its sub-level CSCs, as applicable. This information may be referenced rather than duplicated for each sub-level CSC.

c.Identify the derived design requirements for the CSC and any design constraints imposed on or by the CSC. If the CSC is composed of sub-level CSCs, some or all of this information may be referenced and provided by the sub-level CSC description.

  根據原文,似乎要這樣理解:

a.根據適用的需求規格說明標識分配給該CSC的軟體需求。如果CSC由下一級的一些CSC組成,這部分內容可全部或部分地由下一級的CSC提供;

b.利用執行控制流和資料流來描述CSC的概要設計。如果CSC由下一級的一些CSC組成,應指明由該CSC及其下一級CSC處理的軟體需求規格說明中規定的CSCI內部介面。下一級CSC的描述可引用這些內容而不必複述;

c.標識對該CSC衍生的設計要求和設計約束,以及由該CSC提出的設計約束。如果CSC由下一級的一些CSC組成,這部分內容可全部或部分地由下一級的CSC提供。

4下一級CSC的概要設計說明

  GJB438A-97對下一級CSC的概要設計說明有如下規定:

  “從3.2.1.1節開始編號,標識下一級的CSC的名稱和專案唯一標識號及其用途,以及提供3.2.Xc項所需要的資訊。”

  對以上描述有如下疑問:

  3.2.X節要提供CSCabc三項資訊,為什麼對下一級CSC只要求提供c項資訊?

  根據原文“provide the information required by a through c above”,上述描述似乎要改為“提供3.2.X中從ac項所需要的資訊”。

5設計要求及約束

  GJB438A-97規定軟體設計文件的第4.X.Y.1的標題是“(CSU的名稱)的設計及約束”,4.X.Y.2的標題是“(CSU的名稱)的設計”。兩節的標題中都有設計。根據DoD-STD-2167A DID SDD的原文,第4.X.Y.1的標題似乎要改為“(CSU的名稱)的設計要求及約束”。

6程式語言和庫

  GJB438A-97關於程式語言和庫有如下要求:

  “如果CSU不是用CSCI規定語言編寫,那麼要標識這一程式語言,並且闡述使用該語言的基本原理。如果CSU儲存在庫中,則各節要標識庫的名稱和專案唯一的標識號以及描述該庫的設計文件。”

  DoD-STD-2167A DID SDD中與上述要求對應的原文是:

  “If the CSU is to be coded in a programming language other than the specified CSCI language, the programming language shall be identified and the rationale for its use shall be provided. If the CSU resides in a library, this subparagraph shall identify the library by name and project unique identifier, and the design document in which the library description can be found.

  根據原文,似乎要這樣理解:

  “如果CSU的程式設計不使用為CSCI指定的程式語言,那麼應指明該程式語言,並且闡述使用該程式語言的理由。如果CSU是一個庫單元,則應在此指明庫的名稱和專案唯一的標識號以及可找到的描述該庫的設計文件。”

7邏輯流程

  GJB438A-97關於邏輯流程的描述有如下要求:

  “h. 邏輯流程圖。根據ag項描述CSU的邏輯流程,並描述CSU執行時初始化的條件、呼叫的通訊介面的特徵以及其它CSU控制條件。若在CSCI的操作期間序列是被動態的控制,則應描述控制的方法和該方法的邏輯和輸入條件,例如時間變化、優先順序賦值、諸如輸入/輸出、內部儲存器資料傳送的內部操作、離散輸入訊號的讀出以及與CSCI的中斷操作的時間關係;”

  對以上描述有如下疑問:

a.“邏輯流程圖”,從後面的要求中看不出一定要用“圖”來描述;

b.“其它CSU控制條件”為何要在這裡描述?

c.“優先順序賦值”是什麼含義?

d.“與CSCI的中斷操作的時間關係”是什麼含義?

  DoD-STD-2167A DID SDD中與上述要求對應的原文是:

Logic flow. Describe the logic flow of the CSU in terms of the above items. Describe the conditions under which CSU execution is initiated and, if applicable, communication interface features are invoked, and the conditions under which control is passed to other CSUs, as applicable. If sequencing is dynamically controlled during the CSCI's operations, the method for sequence control and the logic and input conditions of that method shall be describe, such as timing variations, priority assignments, internal operations such as data transfer in and out of internal memory, sensing of discrete input signals, and timing relationships between operations with the CSCI.

  根據原文,似乎要這樣理解:

  “h. 邏輯流程。根據ag項內容描述CSU的邏輯流程。要描述啟動CSU執行的條件、被啟用的通訊介面功能(如果有)、把控制傳給其它CSU的條件等。如果在CSCI的操作期間,執行順序是動態控制的,則應描述順序控制的方法以及該方法的邏輯和輸入條件,如定時變更、優先順序分配、諸如內部儲存器的資料移入移出那樣的內部操作、離散輸入訊號的判讀以及CSCI各種操作之間的定時關係。”

8CSCI資料

  GJB438A-97關於CSCI資料的描述有如下要求:

  “為便於可讀和易維護,可用一個或幾個表提供如下資訊,這些資訊可提供給所有的資料元素。”

  最後一句“這些資訊可提供給所有的資料元素”令人費解。根據原文:

  “For ease in readability and maintenance, the information required below be provided in one or more tables. The following information shall be provided for each data element, as applicable;”

  原來最後一句的意思是“對每一個數據元素都要按以下適用的專案來描述:”

  GJB438A-97關於CSCI內部資料有如下描述:

  “(12)資料元素的CSU的專案唯一標識號;”

  對照原文“The CSU project unique identifier(s) where the data element is used”,似乎要理解為“使用該資料元素的CSU的專案唯一標識號;”

9資料檔案與CSC/CSU的交叉索引

  GJB438A-97規定軟體設計文件第6.1節的標題是“CSC/CSU資料檔案的交叉引用”。根據原文“Data file to CSC/CSU cross reference”,似乎要理解為“資料檔案與CSC/CSU的交叉索引”。

10需求可追蹤性

  GJB438A-97關於需求可追蹤性有如下要求:

  “應提供分配給每個CSC的上一級CSU,可追溯到軟體需求規格說明和介面需求規格說明要求的需求。”

  “每個CSC的上一級CSU”顯然是不成立的。

  DoD-STD-2167A DID SDD中對應的原文是:

  “This section shall be numbered 7 and shall provide traceability of the requirements allocated down to the CSU level of each CSC back to the requirements of the Software Requirements Specification and Interface Requirements Specification.

  這似乎要理解為:

“本章應描述每個CSC中,一直到CSU這一級與軟體需求規格說明和介面需求規格說明相互之間的可追蹤性。”

後記

本文素材記於2002年。GJB438A-97現在仍然是有關專案必須遵循的標準之一。

2009531

相關推薦

關於GJB438A-97軟體設計疑問

關於GJB438A-97軟體設計文件的疑問 [摘要]本文記錄了對GJB438A-97《武器系統軟體開發文件》的軟體設計文件的一些疑問。 1引言   GJB438A-97《武器系統軟體開發文件》規定了軟體設計文件編制的格式、內容和要求。在工程實踐中執行該標準時,感到其中有些

如何寫應用軟體設計

    自IT系統誕生至今,如何溝通需求的方法講了不少,如何設計軟體的方法講了不少,如何開發講了不少,現在也開始逐步的講測試了,但是唯獨沒有人系統的講如何寫設計文件,尤其是指派不擅長寫文件的開發人員完成文件時,這項工作就成了一項讓他們“頭疼”的活。   &

【譯】如何寫出一份優秀的軟體設計

作為一名軟體工程師,我花了很多時間閱讀和編寫設計文件。在完成了數百篇這些文件之後,我親眼目睹了優秀設計文件與專案最終成功之間的強烈關聯。 本文試圖描述什麼使設計文件變得更好。 本文分為4個部分: 為什麼要寫一份設計文件 要包含在設計文件中的內容 怎麼寫 相關過程 為什麼

如何寫軟體設計

      對於文件的總結,本該在軟工之後,文件書寫完後進行的。可之前,對於文件的書寫沒有多少感覺。師傅檢查了一遍我的文件,並對文件存在的問題及我的情況進行了分析,讓我重新改一改。這一遍,讓我對文件有

如何寫軟體設計[轉]

軟體設計的不同模型:瀑布式、快速原型法以及迭代式 自從1968年提出“軟體工程”概念以來,軟體開發領域對於借鑑傳統工程的原則、方法,以提高質量、降低成本的探索就從未停止過。而在這個過程中,提出了許多不同的軟體開發模型,典型的有:瀑布式,快速原型法,以及迭代式開發等。 瀑

軟體設計說明書(IEEE標準)

軟體設計文件說明書   1 概述   1.1 系統簡述   對系統要完成什麼,所面向的使用者以及系統執行的環境的簡短描述,這部分主要來源於需求說明書的開始部分。   1.2 軟體設計目標   這部分論述整個系統的設計目標,明確地說明哪些功能是系統決定實現而哪些時不準

軟體設計國家標準

操作手冊(GB8567——88) 1引言 1.1編寫目的 說明編寫這份操作手冊的目的,指出預期的讀者。 1.2前景 說明: a.  這份操作手冊所描述的軟體系統的名稱; b.  該軟體專案的任務提出者、開發者、使用者(或首批使

軟體工程概要設計模型

1.引言 1.1編寫目的 【闡明編寫概要設計說明書的目的,指明讀者物件。】 1.2專案背景 【應包括: a.專案的委託單位、開發單位和主管部門; b.該軟體系統與其他系統的關係。】 1.3定義 【列出本文件中所用到的專門術語的定義和縮寫詞的原文。】 1.4參考資料 【列出

如何寫軟體的需求和設計

程式設計快20年,寫了一些的文件。之前也一直在思考如何寫文件,這個過程中,有幾次提升。一次是在華為,學習如何寫設計文件。另外就是寫需求文件,這次的專案,以前需求寫得也比較多,但都是有足夠的思間來慢慢寫,這次時間比較緊張,所以,思考如何寫作需求。================

軟體架構設計---軟體架構

 軟體架構文件化       記錄軟體架構的活動就是架構編檔過程,也就是架構的文件化。它包含兩個方面:一是過程,編檔過程能促使架構設計師進一步思考,使得架構更加完善;二是結果,描述架構的文件將作為架構開發的成果,供專案關係人使用。     1.架構文件的使用者    

軟體工程詳細設計

三:軟體詳細設計引言編寫目的此需求說明書詳細陳述了“實驗裝置管理系統”的所提供各項功能。其中包括使用者的功能性需求以及非功能性需求,為使用者提供完整且較詳盡的系統功能運作藍圖。同時為設計人員提供一個完整的、可靠的設計約束,以便高質量地設計、編寫程式碼,完成系專案預期目標。還給

設計(內容來自《軟體工程》——機械工業出版社)

設計文件包含以下內容: 1)描述設計工作的整體範圍; 2)說明資料設計;描述資料庫結構、任何外部檔案結構、內部資料結構以及連線資料物件到特定檔案的交叉引用。 3)體系結構設計;指明程式體系結構如何從分析模型匯出,此外,結構圖被用來表示模組的層次結構。 4)表示外部和內

python程序設計——操作

txt load 模塊 use 關閉 過程 RM 文件操作 except 分類 1.文本文件 存儲常規字符串,由若幹文本行組成,每行以換行符‘\n‘結尾 2.二進制文件 把對象以字節串存儲,常見的圖形圖像、可執行文件、數據庫文件office文檔等 1 #創建文件 2

管理感情:吾不喜歡寫設計,是因為沒有完整寫過一次

  每當說起要寫設計文件的時候,吾常常講沒用,當然事實上也沒用:寫的人辛辛苦苦,結果評審時會瀏覽一遍(也是草草了事),之後再也沒有人看過。說小公司這樣,大公司(中興)時也是如此,所以每次都是把已有的文件複製過來,修改一番,評審時都是督促快點……   事實上,工作中:   看文件不如直接看程式

生成資料庫設計

目錄結構  pom.xml依賴 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaL

開發設計格式

需求背景 現在的系統有什麼樣的問題需要解決,業務上要達到的目標是什麼。 技術需求的話主要是目前技術上哪些痛點:是無法靈活支援業務需求變化,還是效能有問題,還是流程上有缺陷等等。 也可以畫圖表示一下系統現狀,現在的服務架構、底層商品模型、流程等。 改動

朱曄的網際網路架構實踐心得S1E9:架構評審一百問和設計五要素

本文我會來說說我認為架構評審中應該看的一些點,以及我寫設計文件的一些心得。助你在架構評審中過五關斬六將,助你寫出能讓人收藏點讚的設計文件。 技術架構評審 架構評審或技術方案評審的價值在於集眾人的力量大家一起來分析看看方案裡是否有坑,方案上線後是否會遇到不可

資料庫:用PowerDesigner工具生成資料庫設計

點選選單選擇Report Wizaed 選擇語言為簡體中文 選擇生成為rtf檔案的專業模式 生成檔案 成功生成文件 若列欄位不合適可以自定義,方法如下 右鍵點選layout,將需要顯示的欄位打鉤即可,Code表示列名稱,

【遊戲設計系列】關於遊戲設計

如何編寫設計文件 設計文件的分類 迷你型設計(mini design) 定義:一週左右完成的設計,一個完整卻簡單的遊戲描述 要求 任何一團隊成員能夠摘錄與閱讀 讀者能夠了解遊戲設計者的設計意圖 讀者

084-【生信軟體】-ANNOVAR軟體幫助

安裝 會郵件收到一個軟體安裝包 annovar.latest.tar/ 包含的perl指令碼 [email protected] /opt/script/tool/annovar Sun Oct 07 16:42 forstart $tree