转自:http://blog.sina.com.cn/s/blog_ec1f61c60102vegd.html
软件开发文档的编写---软件研制任务书
(2015-03-14 17:55:03)
一. 简介
二. 模板说明:
1. 2. 范围/引文
3. 运行环境要求
3.1 硬件环境
(1) 对于嵌入式软件,应包括承载软件功能的主芯片(CPU、FPGA等),主要板载外设等情况的介绍;对于处理器能力、资源等方面的属性,条目化地简要介绍就可以了,
描述内容
不必过度展开,
目的是为了帮助相关读者(如评审专家)建立理解
;
(2) 对于计算机类软件,如果对处理器能力、内存数量、网络通信能力或其他资源、能力有特殊要求的话,可在此说明。
(3)本小节和下一小节的相关内容可能和“设计约束”(见本文第5章)有关系,注意相关内容的一致性;
3.2 软件环境
4. 技术(任务)要求
4.1 功能
(1)对功能进行条目化描述,并对每项功能进行唯一性标识;
(2)功能性需求是软件需求中最重要的部分,相对的,其他所有的需求被合称为“非功能性需求”。功能性 需求就是描述软件“是什么”、“做什么”。其他需求都和功能性需求有关系,某种程度上是对功能性要求的补充描述。
(3)从软件要“做什么”的角度写,从“需求”和“任务”的角度写,尽量不涉及“怎样做”的问题,这是整个任务书编写中最重要的原则,具体见体系《软件设计与编程指南》中的相关描述。
4.2 性能
(1)对性能进行条目化描述,并对每项性能进行标识;
(2)本节中提到的
“性能”主要是软件整体的外在表现属性,如
响应时间、
实时性、处理
吞吐量、负载
能力等;
(3)
属于某一功能的性能,如RS422接口的波特率偏差性能要求,应该在对应的功能(或接口)中描述,在此处保持对该性能描述的引用即可。
4.3 输入/输出
(1)输入输出不是指接口层面的东西,而是更偏向于应用层面的数据和控制元素,是软件功能层面的数据输入或经过处理后的结果输出。例如,软件输入的图像帧的来源、格式、频度,软件接受外界中断的数量、来源、优先级等。
(2)输入/输出信息要条目化(建议表格化),有的
输入输出
在功能中已经有说明,但是在本节强调的是它的完整的属性,需要在此处比较明确地列出来。
(3)
输入/输出项
和具体功能或协议之间在描述的时候可以建立起引用关系,对理解输入/输出项以及相应的功能都有帮助。
4.4 数据处理要求
4.5 接口
(1)
标识
每个外部接口并分小节描述;
(2)外部接口的边界是控制器或FPGA的管脚,而不是板级外设(或电路)的对外接口,如DSP通过EMIF总线连接了一个芯片,通过这个芯片实现了以太网接口,那么外部接口应该识别为DSP的总线,而不是RJ45接口;
(3)但是,通知配置该芯片,响应其中断,访问其内存,芯片的确在DSP的完全控制之下,而且RJ45接口也是系统重要的外部接口,外部关注RJ45超过DSP的EMIF接口,RJ45接口也是确认测试的主要对象。因此,在描述此接口的时候,需要如实介绍这些情况,画一个框图,把关系说清楚,需求上就是明确的了;
(4)接口的描述,仅限于信号、时序等接口物理层特性相关的内容,关注接口所提供的传输机制,而和接口有一定关系的软件应用层协议应该在“功能”中描述,例如,RS422的起始位、停止位、校验位等要求属于接口的内容,而通过这个接口传输的具体数据及协议不应在本节描述。
4.6 固件
4.7 关键性要求
4.7.1 可靠性
(1)对可靠性要求分条描述并标识;
(2)本节关注的是可靠性指标和软件健壮性方面的要求,以及局部软、硬件失效的情况下,软件的表现(如功能降级要求)等。这里主要是提可靠性“要求”,建议
不要
写成为了保证可靠性而采取的具体应对方法,更不要出现“模块、部件”等设计相关的内容。本节相关的可靠性要求是要经过需求分析、设计、验证和确认过程,来逐渐具体化并得到落实的内容;
4.7.2 安全性
(1)要求参见“可靠性”一节;
(2)参照模板要求。
4.7.3 保密性
5. 设计约束
(1)仔细甄别真正成为设计约束的项目,采用的开发工具或测试工具不一定是设计约束,每项设计约束都应得到确认;
(2)
设计方法、设计规则、编程规则也可以“标准”(
7.2节)的形式出现,如果没有形成“标准”的东西,可以在本节中描述;
(3)
重用性和可移植性因对设计的影响程度而作为设计约束对待。
6. 管理要求
7. 质量控制要求
7.1 软件等级相关的要求
7.2 标准
7.3 文档
7.4 配置管理
7.5 测试要求
7.6 对分承制方的要求
8. 验收与交付
(1)验收准则、验收程序、验收环境;
(2)交付形式、数量、装载媒体等;
(3)规定必须交付的文档清单(参见7.3节);
(4)需要时,规定软件的版权保护要求。
9. 维护与保障
(1)规定软件验收(或移交)后出现问题的处理原则;
(2)说明软件改进、适应和完善性维护工作的要求;
(3)其他软件维护、培训等技术保障要求。
10. 其他要求
11. 注释
---------------------------------------------------
提示信息:
a. 不要面面俱到,可以引用相关协议和手册,把相关资料组织好,为后续需求分析活动打下基础;
b.
推荐的任务书规模和代码规模的关系;小型<10页,中<15页,大< 30;
c. 一个严格的管理者,在权威的保障下,可以很快地把一套完善体系推广开来,并取得效果,如同抓学习成绩,的确大家都很辛苦,但是这样的做法并非常态;毕竟,只有理解并来自内在动力才能做好,才有长期效果,“知之者不如好
之
者,好
之
者不如乐
之
者”;
d. 文档中除了“要求”就是对要求理解而做的解释和说明 ;
e. 系统概述就是对文档理解而做的解释性铺垫,而且只是为本文档的理解而做的铺垫,不必写的过度,对不同的文件也不必一样,因为不同的文件需要的系统解释程度是不同的;
f. 给出V型图,看到
文档和开发活动之间的关联关系;
指出这种关联关系的作用---只有到V型的另一侧,才能看出之前文档编写的问题,才能体会编写文档对项目的重要意义;并提醒大家
运用
经典方法开发软件的重要意义。
g. 从概括到具体,从对真实世界问题的含蓄定义最终到软件
解决方案的要素关联。就是从需求到设计的过程。