软体研究人员往往根据自己的研究对象和研究範围对软体规格说明做了相应的限定和要求。例如, 软体工程的传统观点假定软体需求规格说明在需求分析的基础上产生, 软体设计规格说明在软体设计的基础上产生。然而, 根据程式设计方法学的观点, 则乾脆把对程式的要求统称为程式规格说明。
基本介绍
- 中文名:软体规格说明
- 设计规格:软体的设计加以说明
- 接口:软体与其环境之间、软体
- 说明:对软体所应具备的功能作出规定
简介
对软体所应满足的要求,以可验证的方式作出完全、精确陈述的档案。“规格说明”一词与其他工业产品的“规格说明书”有相似的含义。不过,在软体领域中,它已成为一个特定的技术用语。软体产品与使用环境之间的关係,软体产品内部各组成部分之间的接口往往十分複杂,并且在发展过程中软体产品要经历多次变换,以各种不同形式出现于不同的阶段。因此,对软体的各组成部分之间、各发展阶段之间的接口关係应当规定得十分準确。软体规格说明须用某种语言书写。自然语言的陈述中常存在歧义性,易引起误解。因而,最好使用人工语言或者人工语言与自然语言的混合形式书写软体的规格说明。这种语言就叫作规格说明语言。大型软体的规格说明往往十分冗长,因而希望这种语言易于用计算机处理,以便能用机器检查软体规格说明中有无遗漏或自相矛盾的地方。软体规格说明的内容可根据不同场合的需要而有所侧重。
功能规格说明
对软体所应具备的功能作出规定;
性能规格说明
对软体所应具备的性能,如计算精度、回响速度和占用存储空间的大小等作出规定;
接口规定说明
对软体与其环境之间、软体各组成部分之间的接口关係作出规定;
设计规格说明
对软体的设计加以说明。典型的内容包括使用的算法、控制逻辑、数据结构、模组间接口关係,以及输入-输出格式等。
说明标準
软体规格说明的使用者包括用户、设计人员、程式设计师、管理人员等, 涉及产品鉴定、质量保证、配置管理、软体维护、人员培训、市场分析、软体着作权等诸多问题。可以把软体规格说明看成是一个具有概述、图示、例子等多视角的信息库。它既是用户和开发者的一份协定, 又是指导软一件开发、测试和维护的依据。
标準化的软体规格说明以统一的形式为各类相关人员提供各自所需要的信息。实践表明,广泛推行软体规格说明标準有助于提高软体开发的效率和质量。软体工程只有在广泛採用各种标準化技术以后方能成为一门真正的工程学科。
但是涉及软体规格说明的标準太多了, 以至于让人无所适从。闭由静态和动态的观点可知软体规格说明的标準化工作应从产品和过程两方面展开。根据软体开发的特点, 软体规格说明标準应加大软体过程标準化的比重。但是, 目前关于软体柳格说明的标準往往主要是软体产品“ 了的标準。近年来新提出的软体过程模型(和快速原型模型、增量开发模型、面向对象喷泉开发模型) 的标準化工作则显得很薄弱。
关于软体规格说明的国际或国家标準址一用範围广, 具有较高的理论价值。相比之下, 根据~ 套用领域的特点, 结合具体开发方法而制定的软体规格说明标準则具有更好的实用性。因而,国外许多大公司都制定有自己的软体规格说明标準。我国一些部门和单位也进行过类似的工气作。开发这种具体部门运用的软体规格说明标準要考虑以下问题。
1满足软体规格说明国家标準的要求, 可以补充国家标準未涉及的内容, 但不能违背软体工程原理。
2针对不同使用者, 提供所需要的信息。例如, 为用户提供一个相当于用户使用手册的规格说明, 为开发者提供一个相当于设计任务书的规格说明。
3容易使用和更改。
4有衡量软体规格说明质量的客观性手段。
5结合套用领域的特点及具体的开发方法, 综合使用标準的代价( 如在维护一致性上的时间) 和收益( 如可靠性、维护性的提高)。
软体规格说明方法
目前, 对软体规格说明认识的深度远不如软体设计和程式开发。所以, 儘管大多数人认为软体规格说明应与软体设计和实现充分分离, 但是软体规格说明中的许多观点不可避免地继承了软体设计和实现的经验。软体规格说明方法研究的问题是如何产生软体规格说明。可以从空间和时间两方面来考察软体规格说明。
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 ) 面向模型的语言。这类形式化软体规格说明语言可根据数学结构(如集合、序列、函式) 描述系统的行为模型。在串列系统中有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网的图形软体规格说明可望能有所作为。
关于图形软体规格说明其它方面的研究工作是: 图形肖像和图形辞彙的定义, 图形语法和语义, 人机互动模式, 专用图形软体规格说明语言和环境等。