转自http://blog.csdn.net/li_canhui/article/details/6927540

1概述

1.1编写目的

指出编写《需求规格说明书》的目的。下面是示例:

编写此文档的目的是进一步定制软件开发的细节问题,希望能使本软件开发工作更具体。为了使用户、软件开发者及分析和测试人员对该软件的初始规定有一个共同的理解,它说明了本软件的各项功能需求、性能需求和数据需求,明确标识各项功能的具体含义,阐述实用背景及范围,提供客户解决问题或达到目标所需要的条件或权能,提供一个度量和遵循的基准。具体而言,编写软件需求说明的目的是为所开发的软件提出:

a)       软件设计总体要求,作为软件开发人员、软件测试人员相互了解的基础。

b)       功能、性能要求,数据结构和采集要求,重要的接口要求,作为软件设计人员进行概要设计的依据。

c)       软件确认测试的依据。

1.2编写依据

指明该《需求规格说明书》的依据。一般可以写依据XXX软件的方案书,策划书等。

1.3术语和缩略词

缩写、术语及符号

解 释

2软件概要

2.1软件总体描述

从总体上描述该软件的情况,包括软件的形式(网站,运行时系统,插件等)和软件的主要的功能,使读者对该软件有一个整体的认识。一般一两段话即可。

2.2软件设计约束及有关说明

软件设计的约束以及有关说明如下所示。

开发环境:

编程语言:

遵循的规范:软件的设计和开发过程需要严格按照合同要求,根据软件的设计方案来进行。软件开发过程应遵循软件工程规范,对过程和版本进行管理和控制。

测试环境:可以写明在什么单位测试,测试单位使用的软硬件环境。

软件交付形式:

软件交付日期:

其他:见合同。

2.3使用者特点

指明软件的使用者具有的特定。示例:

本软件主要在甲方工作环境中使用,使用者包括项目管理人员,开发人员及工程师等,使用者在计算机的应用、使用上不存在障碍,都在计算机的操作和使用方面得到过相关的培训。

 

3开发和运行环境

3.1硬件环境

XXX软件的运行环境为个人计算机。详细要求见表3.1。

表3. 1 软件运行环境硬件要求

需求名称

详细要求

CPU

内存

硬盘

3.2支持软件环境

需求名称

详细要求

操作系统

3.3接口

3.3.1           外部接口

说明软件运行时和外部环境的接口,包括软件的界面表现形式等方面。示例:

外部接口的用户界面部分按Windows应用软件用户界面的规范来设计,界面设计风格与XXX环境保持一致,采用XXX以及对话框等方式作为用户界面,便于用户使用。

3.3.2           软件接口

说明软件与它运行的软件环境之间的接口。示例:

本软件运行于XXX软件及以上版本上,整个环境需要运行在Windows某某版本及更高版本并装有XXX(依赖软件)的操作系统之上。

3.3.3           硬件接口

指明软件和运行的硬件环境的接口。

Inter或其他系列的微型计算机,内存XXXG以上,硬盘XXXG以上。

3.3.4           内部接口

说明软件内部各个模块之间的接口或规范,软件各个模块间数据交换的格式等。示例:

软件内部的接口是通过XXX来进行交换的。用户使用XXX软件……可以说软件的各个模块之间主要通过XXX来进行关联,传送数据并交换信息,从而降低软件模块间的耦合程度。

3.4控制和操作

说明使用软件时需要进行的控制和操作方式。示例:

XXX软件最终交付形式为XXX。控制该软件运行的方法为通过鼠标双击或命令行启动XXX环境,然后通过鼠标启动XXX。

XXX软件提供XXX等功能,各个功能项的设置及使用应符合人们使用计算机的操作习惯,通过常用的鼠标点击,键盘输入以及菜单等形式来完成启动和使用软件的过程,控制信号均由鼠标和键盘进行输入。


4详细需求

4.1性能需求

4.1.1           精度要求

要按照严格的数据格式输入,对符合数据格式要求的输入进行提示。

4.1.2           时间特性要求

软件启动时间:

系统实时响应时间:软件使用过程中,对用户在各个功能模块的鼠标点击、键盘输入等操作事件的响应时间需在用户能够容忍的范围之内,一般要求小于1秒。

数据的转换和传送时间:对软件不同模块间的数据交互,要求数据的转换和传送时间不得超过XXX。

数据更新时间:XXX。

4.1.3           灵活性要求

XXX软件能够支持鼠标、键盘等多种操作方式的使用。软件的设计和实现需要考虑到运行环境的变化,并能够在运行环境变化的情况下正常使用。同时,软件需要兼容其他软件接口的变化,以保证在不同运行环境,不同软件接口的情况下的正常使用。具体要求如下:

操作方式上的变化:软件应支持多种操作方式,例如鼠标、键盘和菜单等。

运行环境的变化:软件的设计和实现需要考虑其运行环境的变化,并能对不同的运行环境提供支持。具体而言,软件应支持Windows某某版本及以上版本的操作系统,支持XXX环境。

同其他软件接口的变化:当其他软件的接口发生变化时,XXX软件应能够适应接口的变化。

精度和有效时限的变化:灵活性要求软件能够方便的适应精度和有效时限的变化。

计划的变化或改进:软件应具有足够的灵活性,以适应将来有可能会出现的需求更改或增加。

4.2功能需求

经过多次需求调研,现提出XXX软件的功能需求。XXX软件包括XXX、XXX等等模块,软件的组织结构图如图4.1所示。

图4.1XXX软件研究内容

给出整个软件的用例图见图4. 2。

图4.2软件用例图

XXX软件的主要功能模块划分,以及各个模块主要的功能描述见表4. 1所示。

表4.1XXX软件功能模块

XXX软件

模块名称

功能描述

XXX模块

XXX模块

XXX模块

XXX模块

XXX模块

XXX模块

下面以分节的形式,详细介绍软件的各个功能模块,每个功能模块占一节,如4.2.1,4.2.2等等。在介绍每个功能模块时,首先给出该模块功能的总体描述,然后给出本模块的用例图,然后,在本小节内部,再往下分一级标题,分不同的点来介绍本模块的各个功能。

4.3数据需求

4.3.1           数据采集的要求:

输入源:手工键盘输入;

输入介质和设备:键盘,鼠标;

4.3.2           数据输出要求:

输出介质和设备:显示器、文件;


5故障处理需求

5.1软件运行故障

在使用软件的过程中,当出现计算机断电,计算机内存不足等情况时,XXX软件将出现运行故障。运行故障发生时,软件的各个功能模块将无法正常使用,启动相关功能按钮都无法进行正常的操作。

对由于计算机断电引发的软件运行故障,用户在重新给计算机供电后,可以通过重新启动计算机,并启动XXX软件的方式恢复软件的正常运行与使用。对由于计算机内存不足引发的软件运行故障,建议暂时关闭软件。用户应检查并解决计算机内存不足的问题,内存使用情况正常后,XXX软件将恢复正常的运行与使用。

出现软件运行故障并进行修复后,应确保XXX软件功能的完整性,不能发生因软件运行故障而导致工具无法继续使用的情况。

5.2软件使用故障

在软件的使用过程中,如果出现软件使用故障,应当具有报警信息提示。

1)       当软件依赖的文件损毁或丢失时,软件以对话框的形式进行提示,报告损毁或丢失的文件等相关错误,以帮助用户及时修复软件的正常功能。

2)       对软件需要用户输入项的情况,如果发生缺少输入项、输入项格式错误或不符合规则等情况,软件应以合理的方式予以提示。

3)       为了防止用户由于未及时保存而导致信息丢失的情况,软件提供定时保存机制,每隔一定时间自动对信息进行保存,从而保证用户数据的安全。


6质量需求

1)       软件的功能实现必须符合常用的主流XX软件的使用方法和操作习惯。

2)       XXX工具的需要满足操作简单的要求,能够使用户没有障碍的使用该工具进行一系列的开发工作。

3)       要求可配置型强,便于使用者对工具的使用以及定制。

4)       采用可行、合理、高效的方式进行开放性的设计和实现。

5)       软件具有很强的适应能力,并且便于维护,不仅能很好的满足当前的需求,而且应当为后期可能的开发的工作提供很好的扩展和维护接口。


7其他需求

7.1易用性需求

作为一款XXX,XXX软件的设计和实现遵循易用性原则,工具的安装和入门,工具的用户界面布局,使用工具的操作方式等方面都应符合主流XX软件的设计风格与要求。

1)       操作简单,设计合理。

2)       进行XXX时,XX提供XXX等功能,以实现XXX。

3)       使用XXX的过程中应有必要的操作提示信息。

7.2安全性需求

为了对软件的安装和使用进行统一的管理,安装XXX后,需要的到管理人员的授权才能使用该工具。软件采用激活码-注册的方式达到这一要求。启动并使用软件时,应对软件的授权信息进行检查,缺少授权信息情况软件将自动关闭。

点此下载《需求规格说明书模板》

软件需求规格说明书(转自http://blog.csdn.net/li_canhui/article/details/6927540)的更多相关文章

  1. 【软件需求工程与建模 - 小组项目】第6周 - 成果展示2 - 软件需求规格说明书V4.3

    成果展示2 - 软件需求规格说明书V4.3

  2. 失物找寻APP软件需求规格说明书——第三次团队作业

    ⭐对于软件需求规格说明书的理解 在没写这份软件需求规格说明书的时候我们组成员都不是很理解它的必要性,当然,写完之后才知道它的作用. 软件需求说明书的存在是为了使用户和软件开发者双方对该软件的初始规定有 ...

  3. 软件测试之BUG分析定位概述(QA如何分析定位BUG)【转自 https://blog.csdn.net/kaka1121/article/details/51538979】

    你是否遇到这样的场景? QA发现问题后找到DEV说: 不好了,你的程序出问题了! DEV(追查半小时之后): 唉,是你们测试环境配置的问题 唉,是你们数据不一致 唉,是你们**程序版本不对 唉,是** ...

  4. 程序员的沟通之痛https://blog.csdn.net/qq_35230695/article/details/80283720

    个人理解: 一般刚工作的程序员总觉得技术最重要.但是当工作年限超过3年.或者岗位需要涉及汇报.需求对接等就会发现沟通非常重要.也许在大公司还不那么明显,但是在小公司.小团队或者创业,沟通甚至可以说是第 ...

  5. [转帖] select、poll、epoll之间的区别总结[整理] + 知乎大神解答 https://blog.csdn.net/qq546770908/article/details/53082870 不过图都裂了.

    select.poll.epoll之间的区别总结[整理] + 知乎大神解答 2016年11月08日 15:37:15 阅读数:2569 http://www.cnblogs.com/Anker/p/3 ...

  6. http://blog.csdn.net/LANGXINLEN/article/details/50421988

    GitHub上史上最全的Android开源项目分类汇总 今天在看博客的时候,无意中发现了 @Trinea在GitHub上的一个项目 Android开源项目分类汇总, 由于类容太多了,我没有一个个完整地 ...

  7. 为什么领域模型对于架构师如此重要? https://blog.csdn.net/qq_40741855/article/details/84835212

    为什么领域模型对于架构师如此重要? https://blog.csdn.net/qq_40741855/article/details/84835212 2018年12月05日 14:30:19 绝圣 ...

  8. 手把手教你如何玩转消息中间件(ActiveMQ) https://blog.csdn.net/cs_hnu_scw/article/details/81040834

    #情景引入小白:起床起床起床起床....快起床~我:怎么了又,大惊小怪,吓到我了.小白:我有事有事想找你,十万火急呢~~我:你能有什么事?反正我不信..那你说说看~~小白:就是我有两个小表弟,叫大白和 ...

  9. 使用C++扩展Python的功能 转自:http://blog.csdn.net/magictong/article/details/8897568#comments

    使用C++扩展Python的功能 环境 VS2005Python2.5.4 Windows7(32位) 简介 长话短说,这里说的扩展Python功能与直接用其它语言写一个动态链接库,然后让Python ...

随机推荐

  1. python List使用

    1.enumerate 用在遍历中,返回下标和数据 name_arr = ["shijingjing", "renjiangfeng", "anqi& ...

  2. MyBean - 单实例插件改进和VCL插件的改进

      BeanFactory中添加VclOwners:TComponent属性, 在getBean创建VCL插件的时候,Tcomponent.Create(VclOwners) 这样在清理DLL时就会释 ...

  3. 【ARM】2410裸机系列-uart串口通信

    开发环境 (1)硬件平台:FS2410 (2)主机:Ubuntu 12.04 FS2410串口的原理图 串口UART寄存器配置   配置TXD0与RXD0(GPH2.GPH3) 设置波特率(UBRDI ...

  4. vue实现点击区域外部的区域,关闭该区域

    var _this = this; document.addEventListener('click',function(e){ console.log(_this.$refs.configforms ...

  5. JAVA反射的使用之ResultSet的自动转换

    Hello,大家好,上篇文章我们说了下反射的基本情况和简单使用,那么本篇文章我们就使用反射写一个工具类.用来将数据库查询结果的ResultSet转换为指定类型的对象.使用反射来实现ResultSet内 ...

  6. js实现文本框文本域光标处插入图片文本的插件(并且光标在插入内容的内容后显示)

    js: /******************************************* * * 插入光标处的插件 * @authors Du xin li * @update    2015 ...

  7. WebSocket通信协议 API简介

    WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如 Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从ch ...

  8. C#学习笔记(17)——C#中接口的作用

    说明(2017-7-17 23:50:48): 原文: 接口的作用 接口的作用(C#)(另一篇) C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体 ...

  9. docker探索-docker私有仓库搭建(九)

    前言 本文讲解搭建docker的私有仓库,和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库 一.环境 ip 主机名 操作系统 角色 19 ...

  10. MongoDB不支持批量插入

    mongodb的结构与关系型数据库不同,它类似树状结构,可以很方便对每个分支进行操作,但它没有像mysql那样insert(value.value.value...)那样的语法,也不支持transac ...