複製鏈接
請複製以下鏈接發送給好友

軟件規格説明

鎖定
軟件研究人員往往根據自己的研究對象和研究範圍對軟件規格説明做了相應的限定和要求。例如, 軟件工程的傳統觀點假定軟件需求規格説明在需求分析的基礎上產生, 軟件設計規格説明在軟件設計的基礎上產生。然而, 根據程序設計方法學的觀點, 則乾脆把對程序的要求統稱為程序規格説明。
中文名
軟件規格説明
設計規格
軟件的設計加以説明
接    口
軟件與其環境之間、軟件
説    明
對軟件所應具備的功能作出規定

軟件規格説明簡介

對軟件所應滿足的要求,以可驗證的方式作出完全、精確陳述的文件。“規格説明”一詞與其他工業產品的“規格説明書”有相似的含義。不過,在軟件領域中,它已成為一個特定的技術用語。軟件產品與使用環境之間的關係,軟件產品內部各組成部分之間的接口往往十分複雜,並且在發展過程中軟件產品要經歷多次變換,以各種不同形式出現於不同的階段。因此,對軟件的各組成部分之間、各發展階段之間的接口關係應當規定得十分準確。軟件規格説明須用某種語言書寫。自然語言的陳述中常存在歧義性,易引起誤解。因而,最好使用人工語言或者人工語言與自然語言的混合形式書寫軟件的規格説明。這種語言就叫作規格説明語言。大型軟件的規格説明往往十分冗長,因而希望這種語言易於用計算機處理,以便能用機器檢查軟件規格説明中有無遺漏或自相矛盾的地方。軟件規格説明的內容可根據不同場合的需要而有所側重。

軟件規格説明功能規格説明

對軟件所應具備的功能作出規定;

軟件規格説明性能規格説明

對軟件所應具備的性能,如計算精度、響應速度和佔用存儲空間的大小等作出規定;

軟件規格説明接口規定説明

對軟件與其環境之間、軟件各組成部分之間的接口關係作出規定;

軟件規格説明設計規格説明

對軟件的設計加以説明。典型的內容包括使用的算法、控制邏輯、數據結構、模塊間接口關係,以及輸入-輸出格式等。

軟件規格説明説明標準

軟件規格説明的使用者包括用户、設計人員、程序員、管理人員等, 涉及產品鑑定、質量保證、配置管理、軟件維護、人員培訓、市場分析、軟件版權等諸多問題。可以把軟件規格説明看成是一個具有概述、圖示、例子等多視角的信息庫。它既是用户和開發者的一份協議, 又是指導軟一件開發、測試和維護的依據。
標準化的軟件規格説明以統一的形式為各類相關人員提供各自所需要的信息。實踐表明,廣泛推行軟件規格説明標準有助於提高軟件開發的效率和質量。軟件工程只有在廣泛採用各種標準化技術以後方能成為一門真正的工程學科。
但是涉及軟件規格説明的標準太多了, 以至於讓人無所適從。閉由靜態和動態的觀點可知軟件規格説明的標準化工作應從產品和過程兩方面展開。根據軟件開發的特點, 軟件規格説明標準應加大軟件過程標準化的比重。但是, 目前關於軟件柳格説明的標準往往主要是軟件產品“ 了的標準。近年來新提出的軟件過程模型(和快速原型模型、增量開發模型、面向對象噴泉開發模型) 的標準化工作則顯得很薄弱。
關於軟件規格説明的國際或國家標準址一用範圍廣, 具有較高的理論價值。相比之下, 根據~ 應用領域的特點, 結合具體開發方法而制定的軟件規格説明標準則具有更好的實用性。因而,國外許多大公司都制定有自己的軟件規格説明標準。我國一些部門和單位也進行過類似的工氣作。開發這種具體部門運用的軟件規格説明標準要考慮以下問題。
1滿足軟件規格説明國家標準的要求, 可以補充國家標準未涉及的內容, 但不能違背軟件工程原理。
2針對不同使用者, 提供所需要的信息。例如, 為用户提供一個相當於用户使用手冊的規格説明, 為開發者提供一個相當於設計任務書的規格説明。
3容易使用和更改。
4有衡量軟件規格説明質量的客觀性手段。
5結合應用領域的特點及具體的開發方法, 綜合使用標準的代價( 如在維護一致性上的時間) 和收益( 如可靠性、維護性的提高)。 [1] 

軟件規格説明軟件規格説明方法

目前, 對軟件規格説明認識的深度遠不如軟件設計和程序開發。所以, 儘管大多數人認為軟件規格説明應與軟件設計和實現充分分離, 但是軟件規格説明中的許多觀點不可避免地繼承了軟件設計和實現的經驗。軟件規格説明方法研究的問題是如何產生軟件規格説明。可以從空間和時間兩方面來考察軟件規格説明。
1從空間的角度考察
從空間的角度觀察, 廣義上來説, 軟件規格説明描述的是整個軟件系統; 狹義來説, 軟件規格説明描述的是軟件系統的組成部件。
軟件規格説明方法主要提供分解和精化的手段。例如, 結構化分析設計方法和逐步求精法均提供了這種手段。反過來, 軟件規格説明方法還要提供抽象的手段。在產生軟件規格説明的過程中需要對其組成部件進行抽象. 否則, 如果每一個組成部件都以自己特有的行為方式運轉, 不同的組成部件交織在一起, 那麼軟件規格説明可能同軟件實現一樣複雜。這樣也就失去了軟件規格説明存在的意義。過程抽象和數據抽象是兩種有用的抽象方法。過程抽象把一組輸人映射到一組輸出上, 包含了數據抽象, 並通過數據抽象的行為來定義。數據抽象提供了一組數據以及施加在這組數據上的操作。儘管這些操作也可視為一種過程抽象, 但是把數據抽象當作一個整體更能體現出它和現實世界實體的對應關係。
2從時間的角度考察
從時間的角度來觀察, 廣義來説, 軟件規格説明方法適用於整個軟件生命週期; 狹義上來説, 軟件規格説明方法僅適用於軟件生命週期的特定階段。
在軟件生命週期的某些階段採用軟件規格説明方法往往要等到以後的階段中方顯示出它的促進作用。例如, 軟件設計規格説明劃分了軟件模塊使用者和實現者的責任, 避免了編碼階段可能出現的混亂。所以, 研究軟件規格説明方法既要考慮到特定開發階段的特點, 又要聯繫整個軟件生命週期, 統籌規劃。軟件工程的傳統觀點認為軟件規格説明方法僅針對於開發前期的需求分析和軟件設計。目前, 軟件過程是一個很活躍的研究領域。把軟件生命週期分解成一系列軟件過程便形成了軟件過程模型, 不同的分解方法對應於不同的過程模型。研究軟件規格説明方法同軟件過程結合起來更有利於改進整體的效果。這樣就擴充了軟件規格説明的傳統觀點。困擴充後的軟件規格説明方法要包括:
① 源規格説明
② 目標規格説明
③ 從源規格説明開發出目標規格説明的方法
④ 驗證源規格説明到目標規格説明的更換是否正確的方法。
應用領域和程序是軟件規格説明抽象層次的兩個極端。以下分別從這兩個極端考察軟件規格説明。
( 1) 從應用領域考察
軟件開發的起點是根據用户需求產生軟件需求規格説明。這是軟件規格説明方法中的一個難點。應用領域包含着動態與靜態、數據流與控制流、決策與計算、串行處理與並行處理等多種差別。我們可以從具體應用領域出發,探索適合特定應用領域的軟件規格説明方法。於是,“ 需求工程” 這一概念便應運而生。商業上的應用總是顯得迫不及待。各種各樣的應用生成器a( 即ilc at io n ge en ar ot sr ) 紛紛推出. 這種工具通過分析應用領域的特點, 開發出專用問題描述語言, 並提供解決該語言所能描述問題的算法。當前應用生成器主要包括報表生成器, 屏幕窗口菜單生成器, 查詢語言等。
(2 ) 從程序出發考察程序是軟件在最低抽象層次的上的描述。開發軟件規格説明不能不考慮在計算機上實現的可能性。大多數高級語言( 如F O R T R A N、P as ed ) 均是基於過程的計算模型。這種模型反映了計算機硬件的處理機制。現代提出的新型計算模型則偏重於反映人們思考方式的特點。例如, 函數模型, 邏輯模型, 面向對象模型等。由此可見, 程序設計語言正吸取着軟件規格説明中的精華, 使自身抽象層次不斷提高。第四代語言(4 G L ) 在一定程度上提高了軟件開發效率, 已被廣泛應用於各種決策支持系統, 計算機輔助軟件開發環境、專家系統、數據庫等。但現有的第四代語言工具往往具有通用性不強、抽象層次不高等缺點, 所以, 不適合作為軟件規格説明語言。
軟件維護和重用應在比程序更高的層次上進行。從原有的程序出發, 反向推導出軟件規格説明是逆向工程的主要工作。這方面的研究也有利於加深對軟件規格説明方法的理解。 [1] 

軟件規格説明表示方式

軟件開發人員和用户之間以及軟件開發人員內部之間的交流在相當程度上決定了軟件規格説明的質量。表示方式就是這種交流的媒介。這是關於軟件規格説明的爭論較多的話題。目前認為, 軟件規格説明表示方式要:
①適用於不同的應用領域
② 有良好的數學基礎
③ 允許表示軟件規格説明的不同側面以及把它們組合成一個完整的軟件規格説明
④能保留待定的問題, 表示方式不強迫做出不願或不能做出的設計決定等。形式化軟件規格説明和圖形軟件規格説明是當前的兩個十分活躍的領域。
1形式化軟件規格説明
形式化軟件規格説明有精確定義的語法和語義, 可進行一致性、完整性檢查, 有利於程序自動化生成, 倍受學術界推崇. 目前, 已研製出許多形式化規格説明語言。這些形式化軟件規格説明語言按語義學方法可以分以下兩類:
( 1 ) 面向模型的語言。這類形式化軟件規格説明語言可根據數學結構(如集合、序列、函數) 描述系統的行為模型。在串行系統中有VDM 語言、Z 語言, 在並行系統和分佈式系統中有PetriNets 、CCS、CSP。
(2 ) 面向特性的語言。這類形式化軟件規格説明語言允許描述系統行為的最小約束, 又可分為兩種: ① 公理類語言, 用一階邏輯描述關於抽象數據類型操作的前後斷言. 包括Larch、Anna 。② 代數類語言, 基於多序代數, 用代數實體的等量關係描述系統的行為特徵, 在串行系統中有Clear、Act One。在並行和分佈式系統中, 面向特性的語言有Temporal Logic、LOTOS。
上述這些形式化規格説明語言均側重於功能描述。在非功能規格説明的形式化方面的研究很不充分。
在充分肯定形式化軟件規格説明的同時, 我們還應認識到: 非形式化的表示方式中也含有形式化的成分, 形式化的表示方式中又包含着非形式化的理解。只有形成了對軟件系統深人的理解, 方能使用形式化描述方法。形式化軟件規格説明不能完全代替非形式化軟件規格説明。形式化軟件規格説明與非形式化軟件規格説明要互相補充清潔屋技術就同時採用非形式化和形式化兩種軟件規格説明表示方式。
2圖形軟件規格説明
正文軟件規格説明包含了大量字符流信息, 以至於讓人難以形成整體的結構框架。圖形比正文有着更多的視覺效果, 如形狀、大小、方向、距離、位置等, 在計算機語言中採用圖形並非近年才有。六十年代出現的流程圖便是早期的圖形語言。用圖形描述軟件規格説明可以做得比正文更好。Jho n 5M和K ar l GB曾提出一種軟件的圖形設計風範。該方法在一種元模型的基礎上用圖形描述解決了軟件開發中的分析、設計、編碼、維護和文檔管理等問題。
許多軟件規格説明方法都引人了一些圖形和符號。圖形規格説明要使用廣泛接受的圖形規範。
圖形軟件規格説明不可能象使用正文語言那樣隨意表達語義。所以圖形軟件規格説明至少是半形式化的表示方式。實現圖形軟件規格説明的硬件障礙正逐漸消失, 商品化的圖形工作站已擁有十分強大的功能, 這更激發了研究圖形軟件規格説明的興趣。
Petri網是一種系統的數學和圖形描述和分析工具。與其它系統模型相比,Petri網的主要特點是: 可確切表示某種事件集合中的因果關係和獨立性, 包括併發關係; 適合描述非順序功能的系統; 易在不同抽象層次上用同樣的描述語言表示系統; 易驗證系統的性質及正確性。正由於這些特點, 目前Petri網已成為計算機科學中的一個重要研究課題和工具。基於Petri網的圖形軟件規格説明可望能有所作為。
關於圖形軟件規格説明其它方面的研究工作是: 圖形肖像和圖形詞彙的定義, 圖形語法和語義, 人機交互模式, 專用圖形軟件規格説明語言和環境等。 [1] 
參考資料
  • 1.    鮑敢峯.軟件規格説明綜述:合肥工業大學,1996年 :第6期