软件工程(二)—— 软件需求与软件需求规约

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Alexshi5/article/details/87957100

一、需求与需求获取

1、需求定义

         一个需求是描述了待开发产品/系统功能上的能力、性能参数或其他性质。

对于一个单一的需求,必须具有以下5个基本性质:

① 必要的,该需求是用户所需要的;

② 无歧义的,该需求只能用一种方式来解释;

③ 可测试的,该需求是可进行测试的;

④ 可跟踪的,该需求是可以从一个开发阶段跟踪到另一个开发阶段的;

⑤ 可测量的,该需求是可以测量的。

2、需求分类

        需求可以分为两大类:一类是功能需求,一类是非功能需求。而非功能需求又可分为性能需求、外部接口需求、设计约束和质量属性需求。

(1) 功能需求

        功能需求规约了系统或系统构件必须要执行的功能。它是整个需求的主体,即没有功能需求,就没有派生的其他功能需求,就没有性能、外部接口、设计约束和质量属性等非功能需求。

(2) 性能需求

        性能需求规约了一个系统或系统构件在性能方面必须具有的一些特性。性能需求隐含了一些满足功能需求的设计方案,经常对设计会产生一些关键的影响。

(3) 外部接口需求

        外部接口需求规约了系统和系统构件必须与之交互的用户、硬件、软件或数据库元素,其中也可能规约交互格式、时间或其他因素等。

        接口需求可以分为7类:用户接口、硬件接口、软件接口、通信接口、内存约束、运行、地点需求。

(4) 设计约束

        它也是一种需求,它限制了软件系统或软件系统构件的设计方案的范围。它需求考虑各个方面的问题,如:法规政策、硬件限制、与其他应用的接口、并发操作、审计功能、控制功能、高级语言需求、握手协议、应用的关键程序、安全和保密等。

(5) 质量属性

        质量属性规约了软件产品所具有的一个性质必须在质量方面达到一个所期望的水平。如:可靠性、存活性、可维护性、用户友好性等。

3、需求发现技术

        常用的需求发现技术通常包括下面几个:

① 自悟

        需求人员把自己作为系统的最终用户,审视该系统并提出问题。

② 交谈

        为了确定系统应该提供的功能,需求人员通过提出问题/用户回答这一方式,直接询问用户需要的是一个什么样的系统。

③ 观察

        通过观察用户执行其现行的任务和过程,或观察他们如何操作与所期望的新系统有关的现有系统,了解系统运行的环境。

④ 小组会

        举行客户和开发人员的联席会议,与客户组织的一些代表共同开发需求。

⑤ 提炼

        复审技术文档,并提取相关的信息。

二、需求规约

1、需求规约定义

        需求规约是一个软件产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型。它一般需求满足4个基本性质,即:重要性和稳定性程度、可修改的、完整的、一致的。

2、需求规约(规格说明书)的表达

        在实际工程中,需求规约的表达主要存在3种不同的风格。

① 非形式化的需求规约

        它以一种自然语言来表达需求规约,如同使用自然语言写了一篇文章。

② 半形式化的需求规约

        它是以半形式化符号体系来表达需求规约。因此,半形式化规约的编制应遵循一个标准的表示模板或约定。

③ 形式化的需求规约

        它是以一种基于良好数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。

3、需求规约的作用

需求规约的作用主要有以下4点:

① 需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现;

② 对于项目的其余大多数工作,需求规约是一个管理控制点;

③ 对于产品/系统的设计,需求规约是一个正式的、受控的起始点;

④ 需求规约是创建产品验收测试计划和用户指南的基础,即基于需求需求规约一般还会产生另外两个文档——初始测试计划和用户系统操作描述。

需求规约不应该实现的两个作用:

① 它不是一个设计文档,这是一个用于设计的文档;

② 它不是进度或规划文档,不应该包含项目成本、交付进度、报告规范、软件开发方法、质量保证规程、配置管理信息、验证和确认流程、验收和安装流程等信息。

猜你喜欢

转载自blog.csdn.net/Alexshi5/article/details/87957100
今日推荐