• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            需求說明書

            更新時間:2023-02-28 07:15:59 閱讀: 評論:0

            胎夢-魚出水

            需求說明書
            2023年2月28日發(作者:最浪漫的求婚)

            需求規格說明書(ISO標準版)

            編者說明:

            當需求調查、分析工作告一段落時,你就需要將這些需求進行規格化

            描述,整理成文,即軟件需求規格說明書,也就是SRS。這是在軟件項目

            過程中最有價值的一個文檔。ISO所提供的標準雖然已經時間久遠,但還

            是頗具參考價值的。

            1.引言

            編寫的目的

            [說明編寫這份需求說明書的目的,指出預期的讀者。]

            背景

            a.待開發的系統的名稱;

            b.本項目的任務提出者、開發者、用戶;

            c.該系統同其他系統或其他機構的基本的相互來往關系。

            定義

            [列出本文件中用到的專門術語的定義和外文首字母組詞的原詞

            組。]

            參考資料

            [列出用得著的參考資料。]

            2.任務概述

            目標

            [敘述該系統開發的意圖、應用目標、作用范圍以及其他應向讀者

            說明的有關該系統開發的背景材料。解釋被開發系統與其他有關系統之

            間的關系。]

            用戶的特點

            [列出本系統的最終用戶的特點,充分說明操作人員、維護人員的

            教育水平和技術專長,以及本系統的預期使用頻度。]

            假定和約束

            [列出進行本系統開發工作的假定和約束。]

            3.需求規定

            對功能的規定

            [用列表的方式,逐項定量和定性地敘述對系統所提出的功能要求,

            說明輸入什么量、經怎么樣的處理、得到什么輸出,說明系統的容量,

            包括系統應支持的終端數和應支持的并行操作的用戶數等指標。]

            對性能的規定

            精度

            [說明對該系統的輸入、輸出數據精度的要求,可能包括傳

            輸過程中的精度。]

            時間特性要求

            [說明對于該系統的時間特性要求。]

            靈活性

            [說明對該系統的靈活性的要求,即當需求發生某些變化時,

            該系統對這些變化的適應能力。]

            輸入輸出要求

            [解釋各輸入輸出數據類型,并逐項說明其媒體、格式、數值范圍、

            精度等。對系統的數據輸出及必須標明的控制輸出量進行解釋并舉例。]

            數據管理能力要求(針對軟件系統)

            [說明需要管理的文卷和記錄的個數、表和文卷的大小規模,要按

            可預見的增長對數據及其分量的存儲要求作出估算。]

            故障處理要求

            [列出可能的軟件、硬件故障以及對各項性能而言所產生的后果和

            對故障處理的要求。]

            其他專門要求

            [如用戶單位對安全保密的要求,對使用方便的要求,對可維護性、

            可補充性、易讀性、可靠性、運行環境可轉換性的特殊要求等。]

            4.運行環境規定

            設備

            [列出運行該軟件所需要的硬設備。說明其中的新型設備及其專

            門功能,包括:

            a.處理器型號及內存容量

            b.外存容量、聯機或脫機、媒體及其存儲格式,設備的型號

            及數量

            c.輸入及輸出設備的型號和數量,聯機或脫機;

            d.數據通信設備的型號和數量

            e.功能鍵及其他專用硬件]

            支持軟件

            [列出支持軟件,包括要用到的操作系統、編譯程序、測試支持

            軟件等。]

            接口

            [說明該系統同其他系統之間的接口、數據通信協議等。]

            控制

            [說明控制該系統的運行的方法和控制信號,并說明這些控制信

            號的來源。]

            需求規格說明書(Volere版)

            編者說明:

            AtlanticSystemGuild()公司所提供的Volere需求過程與軟件需

            求規格說明書模板則充分利用了現代軟件工程思想與技術,是一個十分實

            用、完善的SRS模板。其所提供的Volere需求記錄卡也十分實用,強烈

            推薦。

            注:從AtlanticSystemGuild公司網站上獲得,并稍做修改

            1.產品的目標

            該項目工作的用戶問題或背景

            [對引發開發任務的工作和情況的描述。同時也應描述用戶希望用

            將要交付的軟件來完成的工作。]

            [該節內容為該項目提供了合法的理由,你應該考慮用戶的問題是

            否嚴重,是否應該解決和為什么應該解決。]

            產品的目標

            [用一句話或很少的幾句話來說明“我們希望該產品做什么”換言

            之,即開發該產品的真正原因。

            [項目如果沒有一個表述清晰、易于理解的目標,就會迷失在產品

            開發的沙漠中。產品必須帶來某種優勢。典型的優勢是產品會增加組織

            在市場上的價值,減少運作成本,或提供更好的客戶服務。這個優勢應

            該是可度量的,這樣才能夠讓您確定交付的產品是否達到目標。]

            2.客戶、顧客和其它風險承擔者

            客戶是為開發付費的人,并將成為所交付產品的擁有者

            [這一項必須給出客戶的姓名,三個以內是合理的。]

            [客戶最終將接受該產品,因此必須對交付的產品滿意。如果你無

            法找到一個客戶的姓名,那么也許你就不應該構建該產品。]

            顧客是將花錢購買該產品的人

            [也給出姓名和相關的信息]

            其它風險承擔者

            [其他的一些人或組織的名稱,他們或者受到產品的影響,或影響

            產品。]

            1)經理或項目負責人;

            2)業務領域專家;

            3)技術人員;

            4)系統開發者;

            5)市場人員;

            6)產品經理;

            7)測試和質量保證人員;

            8)審查員,諸如安全審查員或審計人員;

            9)律師;

            10)易用性專家;

            11)你所處行業的專業人員。

            3.產品的用戶

            產品的用戶

            [產品的潛在用戶或操作員的列表。針對每種類型的用戶,提供以

            下信息:]

            1)用戶分類

            2)用戶工作的任務;

            3)主要相關的經驗;

            4)技術經驗;

            5)其他用戶特征:包括身體、智力、工作態度、對技術的態度、

            教育程度、語言技能、年齡、性別等。

            [用戶是為了完成工作而與產品交互的人,你了解用戶,就越

            可能提交適合用戶工作方式的產品。]

            對用戶設的優先級

            [在每類用戶后面附上一個優先級,這區別了用戶的重要性和優先

            地位:]

            1)關鍵用戶:對產品的后續成功至關重要;

            2)次要用戶:他們使用產品,但對產品的長期成功并無影響;

            3)不重要的用戶:不常用、未授權和沒有技能的用戶。

            [如果認為某些用戶對產品或組織更重要,那么應該寫明,因

            為它會影響你設計產品的方式。]

            4.需求限制條件

            解決方案限制條件

            [此處明確了限制條件,它們規定了解決問題必須采取的方式。您

            可以認為它們是指令式的解決方案。仔細描述該解決方案,以及測試是

            否符合的度量標準。如果可能,您應該解釋使用該解決方案的原因。]

            [換一句話說,就是要求軟件解決方案滿足哪些限制條件!]

            實現環境

            [此處描述產品將被實施的技術環境和物理環境。]

            [該環境也將成為設計解決方案時的限制條件之一。]

            伙伴應用

            [此處描述那些不屬于產品的一部分,但產品卻又必須與其協作的

            應用程序。]

            COTS

            [此處描述實現產品需求所必須使用的COTS(商業組件)。]

            預期的工作場地環境

            [此處描述用戶工作和使用該產品的工作場地。此處應該描述任何

            可能對產品設計產生影響的工作場地特征。]

            開發者構建該產品需要多少時間

            [任何已知的最后期限,或商業機會的時限,應在此處說明。]

            該產品的財務預算是多少

            [該產品的預算,以金錢的形式或可得資源的形式說明。]

            5.命名標準和定義

            [定義項目中使用到的所有術語,包括同義詞。這里的內容就是一個字

            典,包括在需求規格說明書中使用的所有名稱的含義。這個字典應該使用

            你的組織或行業使用的標準名稱。這些名稱也應該反映出在工作領域中當

            前使用的術語。該字典包括項目中用到的所有名稱。請仔細地選擇名稱,

            以避免傳達不同的、不期望的含義。為每個名字寫下簡明扼要的定義,這

            些定義必須經過相應的風險承擔者同意。]

            6.相關事實

            [可能對產品產生影響的外部因素,但不是命令式的需求限制條件。]

            7.假定

            [列出開發者所做的假設。]

            [將所有的假設列在此的目的是讓每一個項目成員都意識到這個假

            設。]

            8.產品的范圍

            工作的上下文范圍

            [上下文范圍圖用來表示將要開發的系統、產品與其它系統之間的

            關系,以確定系統邊界。]

            工作切分

            [一個事件清單,確定系統要響應的所有業務事件。清單包括:]

            1)事件名稱

            2)輸入和輸出

            產品邊界

            [你可以使用用例圖(u-ca)來確定了用戶與產品之間的邊

            界。]

            9.功能性需求與數據需求

            功能性需求

            [對產品必須執行的動作的描述。]

            [每個功能性需求必須有一個驗收標準。]

            數據需求

            [與產品/系統有密切關系的主題域相關的業務對象、實體、類的

            說明書。]

            [進行問題域建模,生成相應的類圖。]

            10.觀感需求

            [一些與產品的用戶界面相關的需求描述。]

            11.易用性需求

            易于使用

            [描述如何構建符合最終用戶期望的產品。]

            學習的容易程序

            [學習使用該產品應該多容易的說明。通常是有學習時間來衡量。]

            12.性能要求

            速度需求

            [明確完成特定任務需要的時間,這常常指響應時間。]

            安全性的需求

            [對可能造成人身傷害、財產損失和環境破壞所考慮到的風險進行

            量化描述。]

            精度需求

            [對產品產生的結果期望的精度進行量化描述。]

            可靠性和可用性需求

            [本節量化產品所需的可靠性。這常常表述為允許的兩次失敗之間

            無故障運行時間,或允許的總失敗率。]

            容量需求

            [本節明確處理的吞吐量和產品存儲數據的容量。]

            13.操作需求

            預期的物理環境

            [本節明確產品將操作的物理環境,以及這種環境引起的任何特殊

            需求。]

            預期的技術環境

            [硬件和其它組成新產品操作環境的設備的規范。]

            伙伴應用程序

            [對產品必須與之交互的其它應用程序的描述。]

            14.可維護性和可移植性需求

            維護該產品需要多容易

            [對產品作特定修改所需時間的量化描述。]

            是否存在一些特殊情況適用于該產品的維護

            [關于預期的產品發布周期和發布將采取的形式的規定。]

            可移植性需求

            [對產品必須支持的其他平臺或環境的描述。]

            15.安全性需求

            該產品是保密的嗎

            [關于該被授權使用該產品,以及在什么樣的情況下授權等方面的

            描述。]

            文件完整性需求

            [關于需要的數據庫和其他文件完整性方面的說明。]

            審計需求

            [關于需要的審計檢查方面的說明。]

            16.文件和政策需求

            [本節包括針對社會和政策的因素的規格說明,這些因素會影響產品的

            可接受性。如果你開發的產品是針對外國市場的,可能要特別注意這些需

            求。]

            [問一下是否產品的目標是你所不熟悉的文化環境,是否其它國家的人

            或其他類型的組織的人會使用該產品。人們是否有與你的文化不同的習慣、

            節日、迷信、文化上的社會行為規范。]

            17.法律需求

            該產品是否受到某些法律的管制

            [明確該產品的法律需求的描述。]

            是否有一些必須符合的標準

            [明確適用的標準和參考的詳細標準的描述。]

            問題

            [對未確定但可能對產品產生重要影響的因素的問題描述。按照需求分

            析的術語還說,就是TBD(ToBeDefine)的問題。]

            解決方案

            是否有一些制造好的產品可以購買

            [應該調查現存產品清單,這些產品可以作為潛在的解決方案。]

            該產品是否可使用制造好的組件

            [描述可能用于該產品的候選組件,包括采購的和公司自己的產品。

            列出來源。]

            是否有一些我們可以復制的東西

            [其他相似產品的清單。]

            20.新問題

            新產品會在當前環境中帶來什么問題

            [關于新產品將怎樣影響當前的實現環境的描述。]

            新的開發是否將影響某些已實施的系統

            [關于新產品將怎樣與現存系統協同工作的描述。]

            是否我們現有的用戶會受到新開發的敵對性影響

            [關于現有用戶可能產生的敵對性反應的細節。]

            預期的實現環境會存在什么限制新產品的因素

            [關于新的自動化技術、新的組織結構方式的任何潛在問題的描

            述。]

            是否新產品會帶來其他問題

            [確定我們可能不能處理的情況。]

            21.任務

            為提交該產品已經做了哪些事

            [用來開發產品的生命周期和方法的細節。畫一個高層的過程圖展

            示各項任務和它們之間的接口,這可能是溝通這方面信息的最好辦法。]

            開發階段

            [關于每個開發階段和操作環境中的組件的規格說明。]

            22.移交

            我們要讓已有數據和過程配合新產品,有什么特殊要求

            [一個移交活動的列表,一個實現的時間表。]

            為了新產品,哪些數據必須修改/轉換

            [數據轉換任務清單,同時確定新產品需要轉換的數據。]

            23.風險

            當你開發該產品時,要面對什么風險

            你制定了怎樣的偶然緊急情況計劃

            24.費用

            [需求的其他費用是你必須投入到產品構建中去的錢或工作量。當需

            求規格說明書完成時,你可以使用一種估算方法來評估費用,然后以構建

            所需的資金或時間的形式表述出來。]

            25.用戶文檔

            [用戶文檔的清單,這些文檔將作為產品的一部分交付。]

            26.后續版本的需求

            [這里記錄下一些希望今后版本中實現的需求。]

            Volere需求記錄卡

            編者說明:

            正如前面所述,AtlanticSystemGuild還提供了一個配套的Volere

            需求記錄卡,這個記錄卡十分實用。建議大家在需求調查、分析過程中,

            將需求記錄在一系列的Volere需求記錄卡上,這個卡讓你能夠很好的理

            清需求之間的關系,需求提出的背景,用戶對需求的期望,有了這些素材,

            整理SRS時將變得更加簡單。

            注:顧客滿意度是指完成該項功能顧客滿意的程度,而顧客不滿意度

            則是指未實現該功能顧客不滿意的程度。

            需求#:需求類型:事件/

            用例#:

            描述:

            理由:

            來源:

            驗收標準:

            Volere

            軟件需求規格說明書(RUP版)

            編者說明:

            如果在需求分析時采用了用例(Uca)技術,那么該需求規格說

            明書將更加符合你的需要。當然,你也可以結合Volere需求規格說明書

            對該模板進行必要的修改。

            1.文檔概述

            [該部分主要是對軟件需求規格說明書文檔進行基本的描述,包括該

            文檔的目的、范圍、術語定義、參考資料以及概要。]

            [軟件需求規格說明書用來系統、完整地記錄系統的軟件需求。該軟

            件需求說明書的基礎是用例分析技術。因此該文檔中應包括用例模型、補

            充規約等內容。]

            目的

            [在此小節中,主要對軟件需求規格說明書的目的做一概要性說明,

            通常軟件需求規格說明書應詳細地說明應用程序、子系統的外部行為,

            還要說明非功能性需求、設計約束,以及其它的相關因素。]

            范圍

            [系統是有范圍的,而不是無限擴展的,對于無限擴展的需求是無

            法進行描述的。因此,在本小節應該對該說明書所涉及的項目范圍進行

            清晰的界定。指定該規格說明書適用的軟件應用程序、特性或者其它子

            系統分組、其相關的用例模型。當然在此也需要列出會受到該文檔影響

            的其它文檔。]

            定義、首字母縮寫詞和縮略語

            [與其它文檔一樣,該文檔也需要將本文檔中所涉及的所有術語、

            縮略語進行詳細的定義。還有一種可簡明的做法,就是維護在一個項目

            詞匯表中,這樣就可以避免在每個文檔中都重復很多內容。]

            參考資料

            [在這一小節中,應完整地列出該文檔引用的所有文檔。對于每個

            引用的文檔都應該給出標題、標識號、日期以及來源,為閱讀者查找這

            些文檔提供足夠詳細的信息。]

            概述

            [在本小節中,主要是說明軟件需求規格說明書各個部分所包含的

            主要內容,就像一個文章摘要一樣。同時也應該對文檔的組織方式進行

            解釋。]

            2.整體說明

            [在本節中,將對整個軟件需求進行總體性的描述,以期讓讀者對整

            個軟件系統的需求有一個框架性的認識。也就是說,該節中主要包括影響

            產品及其需求的一般因素,而不列舉具體的需求。主要包括產品總體效

            果、產品功能、用戶特征、約束、假設與依賴關系、需求子集等方面的內

            容。]

            用例模型

            [在本小節中,將列出該軟件需求的用例模型,該模型處于系統級,

            對系統的特性進行宏觀的描述。在此應該列出所有的用例和Actor的名

            稱列表,并且對其做出簡要的說明,以及在圖中的各種關系。]

            假設與依賴關系

            [在軟件系統的開發過程中,存在許多假設和依賴關系。在本小節

            中應列舉出所有的重要的技術可行性假設、子系統或構件可用性假設,

            以及一些可行性的假設。]

            3.具體需求

            [如果說第二章節是框架,那么本節就是血肉。在本節中,應該詳細

            列出所有的軟件需求,其詳細程序應使設計人員能夠充分理解并且進行設

            計的要求,同時也應該給予測試人員足夠的信息,以幫助他們來驗證系統

            是否滿足了這些需求。整個需求的組織可以采用用例描述進行。]

            用例描述

            [如果你使用用例建模技術,那么你已經通過用例定義了系統的大

            部分功能性需求和一些非功能性需求。因此,在軟件需求規格說明書只

            需將這些具體的用例描述,整理在一起,全部放在該小節之中。當然也

            可以將用例描述做為附件,在此列出引用,只是這樣做并不利于閱讀。

            建議在組織形式上采用以“軟件需求”為線索,在每個需求中,填入對

            應的1個或幾個用例描述。]

            補充需求

            [由于用例畢竟主要針對功能性需求,因此還會有一些其它的補充

            需求遺漏,因此在本小節中就是將這些東西補充出來。這些補充需求大

            部分集中在非功能需求之上,包括以下幾個方面的內容:]

            1)易用性:例如指出普通用戶和高級用戶要高效地執行某個特定

            操作所需的培訓時間;指出典型任務的可評測任務次數;或者

            指出需要滿足的可用性標準(如IBM的CUA標準、Microsoft

            的GUI標準。

            2)可靠性:包括系統可用性(可用時間百分比、使用小時數、維

            護訪問權、降紙模式操作等);平均故障間隔時間(MTBF,通常

            表示為小時數,但也可表示為天數、月數或年數);平均修復時

            間(MTTR,系統在發生故障后可以暫停運行的時間);精確度(指

            出系統輸出要求具備的精密度、分辨率和精確度);最高錯誤或

            缺陷率(通常表示為bugs/KLOC,即每千行代碼的錯誤數目或

            bugs/function-point,即每個功能點的錯誤數目);錯誤或缺

            陷率(按照小錯誤、大錯誤和嚴重錯誤來分類:需求中必須對

            “嚴重”錯誤進行界定,例如:數據完全丟失或完全不能使用

            系統的某部分功能)。

            3)性能:包括對事務的響應時間(平均、最長);吞吐量(例如每

            秒處理的事務數);容量(例如系統可以容納的客戶或事務數);

            降級模式(當系統以某種形式降級時可接受的運行模式);資源

            利用情況:內存、磁盤、通信等。

            4)其它:包括用戶界面要求、聯機幫助系統要求、法律許可、外

            購構件,以及操作系統、開發工具、數據庫系統等設計約束。

            4.支持信息

            [支持信息用于使軟件需求規格說明書更易于使用。它包括:目錄、

            索引、附錄等。]

            計算機軟件需求說明編制指南(國標版)

            編者說明:

            軟件需求規格說明是十分重要的文檔,因此為開發團隊提供一份詳細

            的編制指南是十分有意義和必要的。本文檔就是一個編制指南的例子,你

            可以根據該指南,結合自己的實際情況進行修改。

            1.引言

            目的和作用

            本指南為軟件需求實踐提供了一個規范化的方法。本指南不提倡把

            軟件需求說明(SoftwareRequirementsSpecifications,以下簡稱

            SRS)劃分成等級,避免把它定義成更小的需求子集。

            本指南適用對象:

            1)軟件客戶(Customers),以便精確地描述他們想獲得什么樣

            的產品。

            2)軟件開發者(Suppliers),以便準確地理解客戶需要什么樣

            的產品。

            對于任一要實現下列目標的單位和(或)個人:

            1)要提出開發規范化的SRS提綱;

            2)定義自己需要的具體的格式和內容;

            3)產生附加的局部使用條款,如SRS質量檢查清單或者SRS作

            者手冊等。

            SRS將完成下列目標:

            1)在軟件產品完成目標方面為客戶和開發者之間建立共同協議創

            立一個基礎。對要實現的軟件功能做全面描述,幫助客戶判斷

            所規定的軟件是否符合他們的要求,或者怎樣修改這種軟件才

            能適合他們的要求;

            2)提高開發效率。編制SRS的過程將使客戶在設計開始之前周密

            地思考全部需求,從而減少事后重新設計、重新編碼和重新測

            試的返工活動。在SRS中對各種需求仔細地進行復查,還可以

            在開發早期發現若干遺漏、錯誤的理解和不一致性,以便及時

            加以糾正;

            3)為成本計價和編制計劃進度提供基礎。SRS提供的對被開發軟

            件產品的描述,是計算機軟件產品成本核算的基礎,并且可以

            為各方的要價和付費提供依據。SRS對軟件的清晰描述,有助

            于估計所必須的資源,并用作編制進度的依據;

            4)為確認和驗證提供一個基準。任何組織將更有效地編制他們的

            確認和驗證計劃。作為開發合同的一部分,SRS還可以提供一

            個可以度量和遵循的基準(然而,反之則不成立,即任一有關

            軟件的合同都不能作為SRS。因為這種文件幾乎不包括詳盡的

            需求說明,并且通常不完全的);

            5)便于移植。有了SRS就便于移值軟件產品,以適應新的用戶或

            新的機種。客戶也易于移植其軟件到其他部門,而開發者同樣

            也易于把軟件移植到新的客戶;

            6)作為不斷提高的基礎。由于SRS所討論的是軟件產品,而不是

            開發這個產品的設計。因此SRS是軟件產品繼續提高的基礎。

            雖然SRS也可能要改變,但是原來的SRS還是軟件產品改進的

            可靠基礎。

            范圍

            本指南適用于編寫軟件需求規格說明,它描述了一個SRS所必須的

            內容和質量,并且在第6章中提供了SRS大綱。

            2.引用標準

            GB8566計算機軟件開發規范

            GB8567計算機軟件產品開發文件編制指南

            GB/T11457軟件工程術語

            3.定義

            GB/T11457所列術語和下列定義適用于本指南。

            合同(contract):是由客戶和開發者共同簽署的具有法律約束力的文

            件。其中包括產品的技術、組織、成本和進度計劃要求等內容。

            客戶(customer):指個人或單位,他們為產品開發提供資金,通常(但

            有時也不必)還提出各種需求。文件中的客戶和開發者也可能是同一個組

            織的成員。

            語言(language):是具有語法和語義的通信工具,包括一組表達式、

            慣例和傳遞信息的有關規則。

            分割(partitioning):把一個整體分成若干部分。

            開發者(supplier):指為客戶生產某種軟件產品的個人或集團。在本

            指南中,客戶和開發者可能是同一個組織的成員。

            用戶(ur):指運行系統或者直接與系統發生交互作用的個人或集團。

            用戶和客戶通常不是同一些人。

            4.編寫SRS的背景信息

            SRS的基本要求

            SRS是對要完成一定功能、性能的軟件產品、程序或一組程序的說

            明。對SRS的描述有兩項基本要求:

            1)必須描述一定的功能、性能;

            2)必須用確定的方法敘述這些功能、性能。

            SRS的環境

            必須認識到SRS在整個軟件開發規范(見GB8566)所規定的有關

            階段都起作用。正因為如此,SRS的起草者必須特別注意不要超出這種

            作用的范圍。這意味著要滿足下列要求:

            1)SRS必須正確地定義所有的軟件需求;

            2)除設計上的特殊限制之外,SRS中一般不描述任何設計、驗證或

            項目管理細節。

            SRS的特點

            無歧義性

            當且僅當它對每一個需求只有一種解釋時,SRS者是無歧義的。

            1)要求最終產品的每一個特性用某一術語描述;

            2)若某一術語在某一特殊的行文中使用時具有多種歧義,那么

            對該術語的每種含義作出解釋并指出其適用場合。

            需求通常是用自然語言編寫的,使用自然語言的SRS起草者

            必須特別注意消除其需求的歧義性。提倡使用形式化需求說明語

            言。

            完整性

            如果一個SRS能滿足下列要求,則該SRS就是完整的:

            1)包括全部有意義的要求,無論是關系到功能的、性能的、設

            計約束的,還是關系到屬性或外部接口方面的需求;

            2)對所有可能出現的輸入數據的響應予以定義,要對合法和非

            合法的輸入值的響應做出規定;

            3)要符合SRS要求。如果個別章節不適用,則在SRS中要保留

            章節號;

            4)填寫SRS中的全部插圖、表、圖示標記和參照,并且定義全

            部術語和度量單位。

            關于使用“待定”一詞的規定

            任何一個使用“待定”的SRS都是不完全的。

            1)若萬一遇到使用“待定”一詞時,作如下處理:

            對產生“待定”一詞的條件進行描述,使得問題能被解

            決;

            描述必須干什么事,以刪除這個“待定”;

            2)包含有“待定”一詞的任何SRS的項目文件應該:

            標識與此特定文件有關的版本號或敘述其專門的發布號;

            拒絕任何仍標識為“待定”一詞的SRS章節的許諾。

            可驗證性

            當且僅當SRS中描述的每一個需求都是可以驗證的,該SRS

            才是可以驗證的;當且僅當在某一性能價格比可取的有限處理過

            程,人或機器能通過該過程檢查軟件產品能否滿足需求時,才稱

            這個需求是可以驗證的。

            一致性

            當且僅當SRS中各個需求的描述是不矛盾時SRS才是一致的。

            可修改性

            如果一個SRS的結構和風格在需求有必要改變時是易于實現

            的、完整性的、一致的,那么這個SRS就是可以修改的。可修改

            性要求SRS具備以下條件:

            1)具有一個有條不紊的易于使用的內容組織,具有目錄表,索

            引和明確的交叉引用表;

            2)沒有冗余。即同一需求不能在SRS中出現多次。

            冗余本身不是錯誤,但是容易發生錯誤。冗余可增加SRS

            的可讀性,但是在一個冗余文件被更新時容易出現問題。

            例如:假設一個明確的需求在兩個地方詳細列出,后來

            發現這個需求需要改變,若只修改一個地方,于是SRS

            就變得不一致了。

            不管冗余是否必須,SRS一定要包含一個詳細的交叉引用

            表,以便SRS具備可修改性。

            可追蹤性

            如果每一個需求的源流是清晰的,在進一步產生和改變文件

            編制時,可以方便地引證每一個需求,則該SRS就是可追蹤的。

            建議采用如下兩種類型的追蹤:

            1)向后追蹤(即向已開發過的前一階段追蹤)。根據先前文件

            或本文件前面的每一個需求進行追蹤。

            2)向前追蹤(即是向由SRS派生的所有文件追蹤)。根據SRS

            中具有唯一的名字和參照號的每一個需求進行追蹤。

            當SRS中的一個需求表達另一個需求的一種指派或者是派生

            的,向前、向后的追蹤都要提供。例如:

            1)從總的用戶響應時間需求中分配給數據庫操作響應時間;

            2)識別帶有一定功能和用戶接口的需求的報告格式;

            3)支持法律或行政上需要的某個軟件產品(例如,計算稅收)。

            在這種情況下,要指出軟件所支持的確切的法律或行政文件。

            當軟件產品進入運行和維護階段時,SRS的向前可追蹤性顯得

            特別重要。當編碼和設計文件作修改時,重要的是要查清這些修

            改所影響的全部需求。

            運行和維護階段的可使用性

            SRS必須滿足運行和維護階段的需要,包括軟件最終替換。

            1)維護常常是由與原來開發無聯系的人來進行的。局部的改變

            (修正)可以借助于好的代碼注釋來實現。對于較大范圍的

            改變。設計和需求文件是必不可少的,這里隱含了兩個作用:

            如條指出,SRS必須是可修改的;

            SRS中必須包括一個記錄,它記錄那些應用于各個成分的

            所有具體條文。例如:它們的危急性(如故障可能危及

            完全或導致大量財政方面和社會方面的損失);它們僅與

            暫時的需要相關(如支持一種可立即恢復原狀的顯示);

            它們的來源(如某功能是由已存在的軟件產品的全部拷

            貝復制而成)。

            2)要求在SRS中清楚地寫明功能的來源和目的,因為對功能的

            來源和引入該功能的目的不清楚的話,通常不可能很好地完

            成軟件的維護。

            SRS的編制者

            軟件開發的過程是由開發者和客戶雙方同意開發什么樣的軟件協

            議開始的。這種協議要使用SRS的形式,應該由雙方聯合起草。這是因

            為:

            1)客戶通常對軟件設計和開發過程了解較少,而不能寫出可用的

            SRS;

            2)開發者通常對于客戶的問題和意圖了解較少,從而不可能寫出一

            個令人滿意的系統需求。

            SRS的改進

            軟件產品的開發過程中,在項目的開始階段不可能詳細說明某些細

            節,在開發過程中可能發現SRS的缺陷、缺點和錯誤之類的問題,所以

            可能要對SRS進行改進。

            在SRS的改進中,應注意如下事項:

            1)盡管可以預見校正版本的開發以后不可避免,而對需求還必須盡

            可能完全、清楚地描述。

            2)一旦最初識別出項目的變化,應引入一個正式的改變規程來標識、

            控制、追蹤和報告項目的改變。批準了的需求改變,用如下的方

            法編入SRS之中:

            提供各種改變后的正確的、完全的審查記錄;

            允許對SRS當前的和被替代部分的審查。

            SRS的編制工具

            編制SRS最顯而易見的方法是用自然語言來描述。盡管自然語言是

            豐富多彩的,但不易精確,用形式化的方法較好。

            形式化說明方法

            在SRS中是否使用形式化方法要依據下列因素:

            1)程序規模和復雜性;

            2)客戶合同中是否要求使用;

            3)SRS是否是一個合同工具或僅僅是一個內部文件;

            4)SRS文件是否成為設計文件的根據;

            5)具有支持這種方法的計算機設備。

            生產工具

            軟件產品生產中有多種生產工具。比如,計算機的字處理器

            就是非常有用的生產輔助工具。一個SRS通常有若干作者。可能

            經歷若干版本,并且要進行多次重新組織內容。故生產工具是必

            要的。

            表達工具

            在SRS中有許多詞匯,特別是許多名詞和動詞,專門涉及到

            系統的實體和許多活動,所以表達SRS需要若干工具。比如:

            1)可以驗證實體或活動,無論在SRS中什么地方都是同一

            名字。

            2)可以標識一個特殊的實體或動作在規格說明中的描述位

            置。

            此外,可以使用若干種形式化方法,以便允許自動處理SRS

            內容,只要作某些限制就可以做到:

            用一些表格或圖示法來顯示需求。

            用詳細分層體系自動檢查SRS的需求,這里每一個分層自身

            是完全的,但是也可以擴展為下一層,或是上一層的一個組成成

            分。

            自動檢查SRS具有在條描述的部分或全部特點。

            5軟件需求

            SRS中每一個軟件需求是要求開發軟件產品的某些基本功能和性能的

            一個陳述。

            表達軟件需求的方法

            軟件需求可以用若干種方法來表達:

            1)通過輸入、輸出說明;

            2)使用代表性的例子;

            3)用規范化的模型。

            輸入、輸出說明

            用輸入輸出序列來描述一個軟件產品所要求的特性是很有

            效的。

            途徑

            根據被描述的軟件的性質,至少有三種不同的途徑:

            1)有些軟件產品(如報表系統)要求著重說明輸出。一般情況

            下,致力于輸出的系統主要是在數據文卷上操作。用戶的輸

            入通常是致力于提供控制信息和啟動數據文卷的處理;

            2)有些軟件產品需要著重說明輸入、輸出特性。關注輸入、輸

            出的系統主要是在當前的輸入上操作,要求生成與輸入相匹

            配的輸出(類似于數據轉換例行程序或一個數學函數包);

            3)還有一些系統(如過程控制系統)要求記憶它們的狀態。可

            以根據本次輸入和上一次輸入進行應答。也就是說,它的行

            為如同一個有限狀態機。在此種情況下,既要關注輸入/輸

            出對,又要關注這些輸入/輸出對的次序。

            困難

            多數軟件產品可能接收無限的序列作為輸入,于是,為了通

            過輸入輸出序列完整地說明產品的特性,就要求SRS包括一個無

            限長的輸入和所需的輸出充列。然而,用這樣的途徑不可能完整

            地描述軟件所要求的一切特性。

            典型例子

            一種選擇是用典型例子來說明要求的特性。例如,假設一個

            系統中當接收“0”時用“1”來回答。顯然,要列出全部輸入和

            輸出序列是不可能的。然而,用典型的序列可以十分清楚地理解

            系統的特性。下面是一組四種對話的典型的例子,用它描述系統

            特性。

            0101

            0

            01

            010101

            這些對話僅提供了要求的輸入和輸出之間的關系,但是不能

            完全描述系統的特性。

            模型

            另一種表達需求的方法是模型的方式,這是表達復雜需求的

            精確和有效方法。至少可以提出三種可供使用的通用模型:數學

            型、功能型、計時型。應注意區別各種模型的應用場合,參考。

            數學模型

            數學模型是使用數學關系描述軟件特性的模型。數學模型對

            某些特殊應用領域是特別有用的。例如,導航、線性規劃、計量

            經濟、信號處理和氣象分析等。

            用數學模型能夠對中所討論的典型例子描述如下:

            (01)*。

            這里,“*”號表示括號內的字符串可以重復一次或多次。

            功能模型

            功能模型是提供從略語以輸出映象的模型。象有限狀態機或

            Petri網,這些功能模型可以有助于標識和定義軟件的各種特點,

            或者可以表示系統所要進行的操作。

            對前面用數學模型描述的例子。可用圖1所示的有限狀態機

            形式的功能模型來描述。圖中進入的箭頭表示啟動狀態。雙線的

            方框表示接收狀態。在各線記號x/y的含義是:x代表接受的輸入,

            而y是產生的輸出。

            計時模型

            計時模型是一種增加了時間限制的模型。這種模型對于表達

            軟件特性的形式和細節特別有用。尤其是實時系統或考慮人為因

            素的系統。

            計時模型可以把下列限制加到圖1的模型中去:

            1)激活因素0將在進入S1狀態30S之內出現;

            2)響應1將在進入S2狀態2S之內出現。

            其他模型

            除了上面提及的模型外。對一些特殊的應用還有一些特別有

            用的模型。例如,編譯程序的說明可以使用屬性文法,工資單系

            統可以使用表格。要注意的是,對SRS使用形式需求語言,通常

            含有使用特殊模型的意思。

            警告

            無論使用哪一類型的模型,都要在SRS中或在SRS涉及到的

            一個文件中對它嚴格定義。這個定義應該規定:

            1)模型中的參數所要求的范圍;

            2)使用時的限定值;

            3)結果的精確度;

            4)負載的能力;

            5)要求的執行時間;

            6)缺省或失敗時的響應。

            必須注意,在需求的定義域內要保持一個模型定義。每當一

            個SRS使用一個模型時:

            1)它意味著此模型提供一個十分有效和精確的方法說明需

            求;

            2)并不意味著軟件產品的實現必須基于這個模型。

            一個模型用于解釋文件所寫的需求是有效的,但是對于實際

            軟件的實現可能并不是最適宜的。

            軟件需求的注釋

            有關軟件產品的所有需求,并不是同等重要的。某些需求可能是基

            本的,例如是對于生命攸關的應用。而另一些可能并不那么重要。

            SRS中每一個需求必須進行注釋,以便區別其重要的程度。

            有這種方法注釋需求,可以:

            1)幫助客戶對每個需求給予更周密的考慮,通常可以在需求中澄

            清隱藏的假設;

            2)幫助開發者做出正確的設計決定,并對軟件產品不同部分作出

            相應的努力。

            穩定性

            注釋需求的一種方法是使用穩定性量綱。當一個需求在軟件

            預期的生存期間內描述不改變的話,可以認為該需求是穩定的,

            否則可以認為是易變的。

            必要性等級

            注釋的另一種方法是把需求分成必須保證級、期望級和任選

            級。

            5)必須保證是指軟件必須和這些需求相一致,否則該軟件不可

            能被接受;

            6)期望是指這些需求將提高軟件產品的功能,但如果缺省的話

            也是可接受;

            7)任選是給開發者一個機會,可以提供某些超出SRS規定的目

            標。

            注意事項

            在注釋需求之前,必須徹底理解這種注釋的實質性含義。

            在表達需求時遇到的共同弊病

            SRS的基本點是它必須說明由軟件獲得的結果,而不是獲得這些結

            果的手段。編寫需求的人必須描述的基本問題是:

            1)功能——所設計的軟件要做什么;

            2)性能——是指軟件功能在執行過程中的速度、可使用性、響應

            時間、各種軟件功能的恢復時間、吞吐能力、精度、頻率等等;

            3)強加于實現的設計限制——在效果、實現的語言、數據庫完整

            性、資源限制、操作環境等等方面所要求的標準;

            4)屬性——可移植性、正確性、可維護性及安全性等方面的考慮

            因素;

            5)外部接口——與人、硬件、其他軟件和其他硬件的相互關系。

            編寫需求的人應當避免把設計或項目需求寫入SRS之中,應當對說

            明需求設計約束與規劃設計兩者有清晰的區別。

            在SRS中嵌入了設計

            在SRS中嵌入設計說明,會過多地約束軟件設計,并且人為

            地把具有潛在危險的需求放入SRS中。

            1)SRS必須描述在干什么數據上、為誰完成什么功能、在什么

            地方、產生什么結果。SRS應把注意力集中在要完成的服務

            目標上。通常不指定如下的設計項目:

            把軟件劃分成若干模塊;

            給每一個模塊分配功能;

            描述模塊間的信息流程或者控制流程;

            選擇數據結構。

            2)把設計完全同SRS隔離開來始終是不現實的。安全和保密方

            面的周密考慮可能增加一些直接反映設計約束的需求。例如:

            在一些分散的模塊中保持某些功能;

            允許在程序的某些區域之間進行有限的通訊;

            計算臨界值的檢查和。

            3)通常應考慮到,若要為軟件選擇高層次的設計,就可能需要

            大量的資源(可能占整個產品開發成本的10%-20%以上)。

            有兩種選擇:

            不顧本指南的警告,在SRS中描述了設計。這意味著,

            或者將一個潛在不適當的設計作為一個需求進行描述

            (因為,若要得到好的設計,所花費的時間是不夠的),

            或者在需求階段花費了過多的時間(因為在SRS完成之

            前整個設計分析都要完成);

            采用本指南中條中的建議,用模型設計描述需求,這種

            模型設計只用于輔助描述需求,而不使之成為實際的設

            計。

            在SRS中嵌入了一些項目要求

            SRS應當是描寫一個軟件產品,而不是描述生產軟件產品的過

            程。

            項目要求表達客戶和開發者之間對于軟件生產方面合同性事

            宜的理解(因此不應當包括在SRS中)例如:

            1)成本;

            2)交貨進度;

            3)報表處理;

            4)軟件開發方法;

            5)質量保證;

            6)確認和驗證的標準;

            7)驗收過程。

            項目需求在另外文件中描述。在SRS中提供的只是關于軟件

            產品本身的需求。

            6SRS大綱

            本章著重討論SRS的每一個基本部分,可以作為一個SRS的大綱。表1

            給出該大綱目錄,表2至表5給出大綱中第3章的具體需求內容。各開發

            者和客戶應當根據所描述的實際情況,按本指南有關規定編寫自己的SRS。

            前言(SRS第1章)

            本章提供整個SRS綜述。

            目的(SRS的條)

            在這一條包括下列內容:

            1)描述實際SRS的目的;

            2)說明SRS所預期的讀者。

            范圍(SRS的條)

            1)通常應考慮到,若要為軟件選擇高層次的設計,就可能需要

            大量的資源(可能占整個產品開發成本的10%-20%以上)。

            1前言

            目的

            范圍

            定義、縮寫詞、略語

            參考資料

            2項目概述

            產品描述

            產品功能

            有兩種選擇:

            2)用一個名字標識被生產的軟件產品。比如:×××數據庫系

            統,報表生成程序等等;

            3)說明軟件產品將干什么,如果需要的話,還要說明軟件產品

            不干什么;

            4)描述所說明的軟件的應用。應當:

            盡可能精確地描述所有相關的利閃、目的、以及最終目

            標。

            如果有一個較高層次的說明存在,則應該使其和高層次

            說明中的類似的陳述相一致(例如,系統的需求規格說

            明)。

            定義、縮寫詞、略語(SRS的條)

            本條中必須提供全部需求的術語、縮寫詞及略語的定義,以

            便對SRS進行適當的解釋。這些信息可以由SRS的附錄提供。也

            可以參考其他的文件。

            參考資料(SRS的條)

            本條應包括:

            1)在SRS中各處參照的文件的全部清單,如經核準的計劃任務

            書,上級機關批文、合同等;

            2)列出其他參考資料,如屬本項目的其他已發表的文件和主要

            文獻等。每一個文件、文獻要有標題,索引號或文件號,發

            布或發表日期以及出版單位;

            3)詳細說明可以得到該參考文件的來源。這個信息可以通過引

            用附錄或其他文件提供。

            項目概述(SRS第2章)

            本章應描述影響產品和其需求的一般因素,本章不說明具體的需求,

            而僅使需求更易于理解。

            產品描述(SRS的條)

            這一條是把一個產品用其他有關的產品或項目來描述。

            1)如果這個產品是獨立的,而且全部內容自含,應在此說明;

            2)如果SRS定義的產品是一個較大的系統或項目中的一個組

            成部分,那么本條應包括如下內容:

            要概述這個較大的系統或項目的每個組成部分的功能,

            并說明其接口;

            指出該軟件產品主要的外部接口。在這里,不要求對接

            口詳細地描述,詳細描述放在SRS其他章條中;

            描述所使用的計算機硬件、外圍設備。這里僅僅是一個

            綜述性描述。

            在本條的描述中,用一個方框圖來表達一個較大的系統或項

            目的主要組成部分、相互聯系和外部接口是非常有幫助的。

            本條既不用來強迫進行設計方案的描述,也不是描述在解決

            問題時的設計約束。本條應對在以后具體需求一章中說明的設計

            約束提供理由。

            產品功能(SRS的條)

            本條是為將要完成的軟件功能提供一個摘要。例如,對于一

            個記帳程序來說,SRS可以用這部分來描述:客戶帳目維護、客戶

            財務報表和發票制作,而不必把功能所要求的大量的細節描寫出

            來。

            有時,如果存在較高層次的規格說明時,則功能摘要可直接

            從中取得,這個較高層次的規格說明為軟件產品分配了特殊的功

            能,為了清晰起見,請注意:

            1)編制功能的一種方法是制作功能表,以便客戶或者第一次讀

            這個文件的人都可以理解;

            2)用方框圖來表達不同的功能和它們的關系也是有幫助的。但

            要牢記,這樣的圖不是產品設計時所需求的,而只是一種有

            效的解釋性的工具。

            這一條不用作陳述具體需求,只是對后來SRS中具體需求一

            章中為什么要描述的某些需求提供理由。

            用戶特點(SRS的條)

            本條要描述影響具體需求的產品的最終用戶的一般特點。

            許多人在軟件生存周期的操作和維護階段與系統相關。而這

            些人中有用戶、操作員、維護人員和系統工作人員。這些人的某

            些特點,象教育水平、經驗、技術、專長等,都是施加于系統操

            作環境的重要約束。

            如果系統的大多數用戶是一些臨時用戶,那么就要求系統包

            含如何完成基本功能的提示,而不是假設用戶已經從過去的會議

            或從閱讀用戶指南中了解到這些細節。

            這一條的內容不能用來陳述具體需求或強加若干特殊的設計

            約束,本條應對在SRS的具體需求一章之中的某些具體需求或設

            計約束的描述提供理由。

            一般約束(SRS的條)

            本條對設計系統陽限制開發者選擇的其他一些項作一般性描

            述。而這些項將限定開發者在設計系統時的任選項。這些包括:

            1)管理方針;

            2)硬件的限制;

            3)與其他應用間的接口;

            4)并行操作;

            5)審查功能;

            6)控制功能;

            7)所需的高級語言;

            8)通信協議;

            9)應用的臨界點;

            10)安全和保密方面的考慮。

            本條不陳述具體需求或具體設計約束:而對SRS的具體需求

            一章中為什么要確定某些具體需求和設計約束提供理由。

            假設和依據(SRS的條)

            本條列出影響SRS中陳述的需求的每一個因素。這些因素不

            是軟件的設計約束,但是它們的改變可能影響到SRS中的需求。

            例如:假定一個特定的操作系統是在被軟件產品指定的硬件上使

            用的,然而,事實上這個操作系統是不可能使用的,于是,SRS就

            要進行相應的改變。

            具體需求(SRS的第3章)

            本章應包括軟件開發者在建立設計時需要的全部細節。這是SRS

            中篇幅最大和最重要的部分。

            1)根據本指南第4章所規定的準則(如可驗證性、無歧義性等),

            對每一個需求細節作具體描述;

            2)在SRS的前言、項目概述、附錄部分的有關討論中,要提供對

            任何一個具體需求交叉引用的背景;

            3)具體需求分類的方法如下:

            功能需求;

            性能需求;

            設計約束;

            屬性;

            外部接口需求。

            本章中要注意的二點是:

            1)符合邏輯的和可讀的方式組織;

            2)詳細描述每個需求,使該需求應達到目標能夠用指定的方法進

            行客觀的驗證。

            具體需求的內容

            功能需求

            本條描述軟件產品的輸入怎樣變換成輸出。即軟件必須完成

            的基本動作。對于每一類功能或者有時對于每一個功能,需要具

            體描述其輸入、加工和輸出的需求。這通常由四個部頒組成:

            1)引言

            這部分描述的是功能要達到的目標、所采用的方法和技術,

            還應清楚說明功能意圖的由來和背景。

            2)輸入

            這部分應包括:

            詳細描述該功能的所有輸入數據,如:輸入源、數量、

            度量單位、時間設定、有效輸入范圍(包括精度和公差);

            操作員控制細節的需求。其中有名字、操作員活動的描

            述、控制臺或操作員的位置。例如:當打印檢查時,要

            求操作員進行格式調整;

            指明引用接口說明或接口控制文件的參考資料。

            3)加工

            定義輸入數據、中間參數,以獲得預期輸出結果的全部操作。

            它包括如下的說明:

            輸入數據的有效性檢查;

            操作的順序,包括事件的時間設定;

            異常情況的響應,例如,溢出、通信故障、錯誤處理等;

            受操作影響的參數;

            降級運行的要求;

            用于把系統輸入變換成相應輸出的任何方法(方程式、

            數學算法、邏輯操作等);

            輸出數據的有效性檢查。

            4)輸出

            這部分應包括:

            詳細描述該功能所有輸出數據,例如:輸出目的地、數

            量、度量單位、時間關系、有效輸出的范圍(包括精度

            和公差)、非法值的處理、出錯信息;

            有關接口說明或接口控制文件的參考資料。

            此外,對著重于輸入輸出行為的系統來說,SRS應指定所有有

            意義的輸入、輸出對及其序列。當一個系統要求記憶它的狀態時,

            需要這個序列,使得它可以根據本次輸入和以前的狀態作出響應。

            也就是說,這種情況猶如有限狀態機。

            設計約束

            設計約束受其他標準、硬件限制等方面的影響。

            1)其他標準的約束:本項將指定由現有的標準或規則派生的要

            求。例如:報表格式、數據命名、財務處理、審計追蹤等等。

            2)硬件的限制:本項包括在各種硬件約束下運行的軟件要求,

            例如,應該包括:硬件配置的特點(接口數,指令系統等)、

            內存儲器和輔助存儲器的容量。

            屬性

            在軟件的需求之中有若干個屬性,下面指出其中的幾個(注

            意:對這些決不應理解為是一個完整的清單)。

            1)可用性:可以指定一些因素,如檢查點、恢復和再啟動等,

            以保證整個系統有一個確定的可用性級別。

            2)安全性:這里指的是保護軟件的要素,以防止各種非法的訪

            問、使用,修改、破壞或者泄密。這個領域的具體需求必須

            包括:

            利用可靠的密碼技術;

            掌握特定的記錄或歷史數據集;

            給不同的模塊分配不同的功能;

            限定一個程序中某些區域的通信;

            計算臨界值的檢查和。

            3)可維護性:這里規定若干需求以確保軟件是可維護的。例如:

            軟件模塊所需要的特殊的耦合矩陣;

            對微型裝置指定特殊的數據/程序分割要求。

            4)可轉移/轉換性:這里規定把軟件從一種環境移植到另一種

            環境所要求的用戶程序,用戶接口兼容方面的約束等等。

            5)警告:指定所需屬性十分重要,它使得人們能用規定的方法

            去進行客觀的驗證。

            外部接口要求

            1)用戶接口:提供用戶使用軟件產品是地的接口需求。例如,

            如果系統的用戶通過顯示終端進行操作,就必須指定如下要

            求:

            對屏幕格式的要求;

            報表或菜單的頁面打印格式和內容;

            輸入輸出的相對時間;

            程序功能鍵的或用性。

            2)硬件接口:要指出軟件產品和系統硬部件之間每一個接口的

            邏輯特點。還可能包括如下事宜:支撐什么樣的設備,如何

            支撐這些設備,有何約定。

            3)軟件接口:在這里應指定需使用的其他軟件產品(例如,數

            據管理系統,操作系統,或者數學軟件包),以及同其他應

            用系統之間的接口。對每一個所需的軟件產品,要提供名

            字、助記符、規格說明號、版本號、來源等內容。對于每

            一個接口,這部分應說明與軟件產品相關的接口軟件的目的,

            并根據信息的內容和格式定義接口,這里不必詳細描述任何

            已有完整文件的接口,只要引用定義該接口的文件即可。

            4)通信接口:這里指定各種通信接口,例如,局部網絡的協議

            等等。

            其他需求

            根據軟件和用戶組織的特性等,某些需求放在下面各項中描

            述。

            1)數據庫:本項對作為產品的一部分進行開發的數據庫規定一

            些需求,它們可能包括:

            在條中標識的信息類別;

            用的頻率;

            存取能力;

            數據元素和文卷描述符;

            數據元素、記錄和文卷的關系;

            靜態和動態的組織;

            數據保存要求。

            注:如果使用一個現有的數據庫包,這個包應在“軟件接口”中命名,并

            在那里詳細說明其用法。

            2)操作:這里說明用戶要求的常規的和特殊的操作。

            在用戶組織之中各種方式的操作。例如,用戶初始化操

            作;

            交互作用操作的同期和無人操作的周期;

            數據處理支持功能;

            后援和恢復操作。

            注:這里的內容有時是用戶接口的一部分。

            3)場合適應性需求:這里包括:

            對給定場合、任務或操作方式的任何數據或初始化順序

            的需求進行定義。例如,柵值,安全界限等等。

            指出場合或相關任務的特點,這里可以被修改以使軟件

            適合特殊配制的要求。

            具體要求的組織

            本條通常是SRS所有部分中最大并且最復雜的部分。

            1)可以根據軟件實現功能的基本類型,將本條分成若干段。例

            如:考慮一個大的交互記帳系統,在里層可以分為操作軟件

            (它支持近乎實時的事務處理)、支撐軟件(聯機功能、磁

            盤備份、裝入磁帶等等)以及診斷軟件(診斷硬件、通信等),

            外一層是應收款帳以及應付款帳等等;

            2)結構細分的目的是提高SRS的可讀性,而不是進行概要設計。

            對于SRS中的第3章的具體需求部分的最好的組織方案取決

            于所說明的軟件產品的應用范圍和性質。文中最后部分提供了四

            種可能的組織方案。

            1)大綱1中首先說明全部功能需求,然后說明四種類型的接口

            要求,最后是其他需求;

            2)大綱2中,把對應每個特定功能的四種接口需求和該功能需

            求放在一起描述,然后說明其他需求;

            3)大綱3中,與功能需求有關的全部內容放在一起首先說明,

            然后是其他需求的描述。對每一種外部接口的需求重復上述

            過程;

            4)大綱4中,接口需求和其余的需求作為每一個功能需求的附

            屬部分來說明。

            SRS的具體需求的組織形式必須選擇可讀性最好的方法來描

            述。

            支持信息

            支持信息是指目錄表,附錄和索引。以便使SRS易于使用。

            1)目錄表和索引很重要,而且應按照可以接受的好的文件規則來

            編寫。

            2)對一個實際的需求規格說明來說,若有必要應該編寫附錄。附

            錄中可能包括:

            輸入輸出格式樣本,成本分析研究的描述或用戶調查結果;

            有助于理解SRS的背景信息;

            軟件所解決問題的描述;

            用戶歷史、背景、經歷和操作特點;

            交叉訪問表。按先后次序進行編排,使一些不完全的軟件需

            求得以完善(參見條和條);

            特殊的裝配指令用于編碼和媒體,以滿足安全、輸出、初始

            裝入或其他要求。

            3)當包括附錄時,SRS必須明確地說明附錄是不是需求要考慮的

            部分。

            SRS大綱1

            3具體需求

            功能需求

            功能需求1

            引言輸入加工輸出

            功能需求2

            ……

            功能需求n

            外部接口需求

            SRS大綱2

            3具體需求

            功能需求

            功能需求1

            規格說明

            .1引言.2輸入.3加工.4輸出

            外部接口

            .1用戶接口.2硬件接口.3軟件接口

            .4通信接口

            SRS大綱3

            3具體需求

            功能需求

            功能需求1

            引言輸入加工輸出

            性能需求

            設計約束

            .1其他標準的約束.2硬件的限制…………

            屬性

            .1安全性.2可維護性…………

            其他需求

            .1數據庫.2操作.3場合適應性

            …………

            用例說明模板1(經典模板)

            編者說明:

            隨著UML的日益普及,用例(Uca)分析技術也在需求實踐中廣

            泛被采用。但是也有許多團隊在使用該技術時,只畫出了用例圖,而缺少

            了用例說明,其實這是一個嚴重的誤區。而本模板就將指導你編寫該說明。

            1.用例名稱

            簡要說明

            [簡要說明用例的作用和目的。該小節的篇幅不要太長。]

            2.上下文圖

            SRS大綱4

            3具體需求

            功能需求1

            引言輸入加工輸出

            外部接口

            用戶接口硬件接口

            軟件接口通信接口

            性能需求

            [在此小節中,有一個只包括本用例和所有與該用例相關的Actor和

            其它用例組成的,一個用例圖的局部。]

            3.事件流

            基本流

            [當Actor采取行動時,用例也就隨即開始。用例總是由Actor啟動

            的,用例應說明Actor的行為及系統的響應,可按照Actor與系統進行對

            話的形式來逐步引入用例。]

            [要注意的是,用例描述應該說明系統內發生的事情,而不是事件發

            生的方式與原因。如果進行了信息交換,則需指出來回傳遞的具體信息。

            例如,只表述主角輸入了客戶信息就不夠明確。最好明確地說主角輸入了

            客戶姓名和地址。當然你也可以通過項目詞匯表來定義這些信息,使得用

            例中的內容被簡化,從而不致于讓用例描述陷入過多的細節內容。]

            [如果存在一些相對比較簡單的備選流,只需少數幾句話就可以說明

            清楚,那么也可以直接在這一部分中描述。但是如果比較復雜,還是應該

            單獨放在備選流小節中描述。]

            [一幅圖勝過千言萬語,因此建議在這一小節中,除了敘述性文字之

            外,你還可以引用UML中的活動圖、順序圖、協作圖、狀態圖等手段,對

            其進行補充說明。]

            備選流

            第一備選流

            [正如前面所述,對于較復雜的備選流應單獨地說明。]

            備選支流

            [如果能使表達更明確,備選流又可再分為多個支流。]

            第二備選流

            [在一個用例中很可能會有多個備選流。為了使表達更清晰,

            應將各個備選流分開說明。使用備選流可以提高用例的可讀性,

            并防止將用例分解為過多的層次。應切記,用例只是文本說明,

            其主要目的是以清晰、簡潔、易于理解的方式記錄系統的行為。]

            4.非功能需求

            [在這個小節中,主要對該用例所涉及的非功能性需求進行描述。由

            于其通常很難以在事件流中進行表述,因此單列為一小節進行闡述。這些

            需求通過包括法律法規、應用程序標準、質量屬性(可用性、可靠性、性

            能、支持性等)、兼容性、可移植性,以及設計約束等方面的需求。在這

            些需求的描述方面,一定要注意使其可度量、可驗證,否則就容易流于形

            式,形同擺設。]

            5.前置條件

            [用例的前置條件是執行用例之前必須存在的系統狀態。]

            6.后置條件

            [用例的后置條件是用例一執行完畢系統可能處于的一組狀態。]

            7.擴展點

            [此用例的擴展點,通常是用例圖中的extent關系。]

            用例說明模板2(單列表格式)

            編者說明:

            如果你覺得文本描述不夠清晰,也可以采用如本文檔模板所示的表格

            式的描述方式。

            用例#[用例名應是一個動詞短語,應讓讀者一目了然地從名

            字中就可以知道該用例的目標。]

            使用語境[用例目標,是一個較長的描述,甚至包括觸發條件。]

            范圍[用例的設計范圍,在設計時將系統作為一個黑盒來考

            慮。]

            級別[概要、用戶目標、子功能三者之一。]

            主執行者[也就是該用例的主Actor,在此應列出其名稱,并簡

            要描述。]

            項目相關

            人員利益

            項目相關人員利益

            [項目相關人員名稱][項目相關人員取得的利

            益]

            …………

            前置條件[也就是激發該用例,所應該滿足的條件。]

            后置條件[也就是該用例完成之后,將執行什么動作。]

            成功保證[描述當目標完成后,環境的變化情況。]

            觸發事件[什么引發用例,例如時間事件。]

            描述步驟活動

            1[在這里寫出觸發事件到目標完成以及清除

            的步驟。]

            2[……]

            3

            擴展步驟分支動作

            1a[引起分支的條件]

            [活動或子用例名稱]

            技術和數

            據變化

            1[變化列表]

            用例說明模板3(雙列表格式)

            編者說明:

            本模板是對上一模板的補充,如果你想更好地捕捉系統的響應,那么

            就可以采用本表格所示的格式。

            有時,為了更好地捕獲系統的響應,對于場景描述(主成功場景、擴

            展場景)在上表的基礎上變成如下表所示的雙列:

            步驟用戶系統

            用例說明模板4(文本式)

            編者說明:

            相信用過用例分析技術的,對用例應該多少細有很大的疑問,而

            AlistairCockburn率先將其進行分級:概要、用戶目標、子功能,如果

            你對他的思想有認同,則該模板就適合于你。

            1.用例名:

            [用例名應是一個動詞短語,應讓讀者一目了然地從名字中就可以知

            道該用例的目標。]

            2.使用語境:

            [用例目標,是一個較長的描述,甚至包括觸發條件。]

            3.范圍:

            [用例的設計范圍,在設計時將系統作為一個黑盒來考慮。]

            4.級別:

            [用來表示該用例是在描述哪個級別上的功能,通常包括概要、用戶目

            標、子功能三種。這三種級別的劃分是AlistairCockburn在《編寫有效

            用例》一書是提出的。]

            5.主執行者:

            [也就是該用例的主Actor,在此應列出其名稱,并給予簡要描述。]

            1.項目相關人員利益

            [說明該用例對項目相關人員能夠帶來什么好處。]

            2.前置條件:

            [也就是激發該用例,所應該滿足的條件。]

            3.后置條件:

            [也就是該用例完成之后,將執行什么動作。]

            4.成功保證:

            [描述當目標完成后,環境的變化情況。]

            5.觸發事件:

            [什么引發用例,例如時間事件。]

            6.主成功場景

            [在這里寫出觸發事件到目標完成以及清除的步驟。]

            [步驟編號#:動作描述]

            [步驟編號#:動作描述]

            ……

            7.擴展:

            [在這里寫出擴展情況,每次寫一個擴展,每個擴展都應指向主場景

            的特定步驟。]

            [被改變步驟條件:動作或子用例]

            [被改變步驟條件:動作或子用例]

            ……

            8.技術和數據變化列表

            [在這里寫出場景中因技術或數據變化而引起的可能分支。]

            [步驟或變化編號#:變化列表]

            [步驟或變化編號#:變化列表]

            ……

            9.相關信息

            [項目所需要的所有附加信息。]

            本文發布于:2023-02-28 07:15:59,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/167753975921544.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:需求說明書.doc

            本文 PDF 下載地址:需求說明書.pdf

            標簽:需求說明書
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 天堂网国产| 精品国产自线午夜福利| 亚洲天堂免费av在线观看| 综合色一色综合久久网| 欧美成人h亚洲综合在线观看| 日韩区中文字幕在线观看| 久久国产热这里只有精品| 亚洲区一区二区三区视频| 亚洲男女羞羞无遮挡久久丫| 国产精品毛片一区视频播| 在线日韩日本国产亚洲| 又大又粗欧美成人网站| 亚洲视频免| 26uuu另类亚洲欧美日本| 午夜视频免费观看一区二区| 国产av一区二区午夜福利| 欧美精品亚洲精品日韩专| 成年无码av片在线蜜芽| 亚洲中文字幕无码不卡电影| 久久精品人成免费| 国产乱子伦视频在线播放| 图片区小说区亚洲欧美自拍| 日韩精品一区二区三区蜜臀| 久久99精品国产麻豆婷婷| 国产亚洲精品97在线视频一| 免费观看的AV毛片的网站不卡| 国产精品XXXX国产喷水| 久久这里精品国产99丫E6| 久久91精品国产91久久麻豆| 亚洲人妻精品一区二区| 亚洲AV成人无码久久精品四虎| av一区二区中文字幕| 国产精品爆乳在线播放| 69精品无人区国产一区| 五月综合激情婷婷六月| 2020国产欧洲精品网站| 在线观看AV永久免费| 国产精品原创不卡在线| 色综合 图片区 小说区| 国产女主播免费在线观看| 亚洲国产成人久久综合三区|