近来学校的一些科研项目又在申报了,一些学弟开始Q我一些软件工程上书面的问题。大概的总结了下,写到这里。本文涉及到的是需求分析部分的书写,主要是根据国家标准文档中的要求来的。
在互联网公司或者一些敏捷开发的公司里,其实大家都是秉承着重开发,重讨论,而轻文档的态度。这个轻文档并不是指没有文档或者几乎不做文档,而是在严格的文档流程中解脱出来,只把最最实际的部分写出来。这个特征是有互联网本身迭代周期短,版本发布快等特点决定的。而在实际的兼职项目的时候,同学们就要注意了,最重要的应该就是在签合同的时候一定要附上最清楚的一份需求分析,虽然这份需求说明可能不是按照某些标准文档而来的,描述清楚每个功能达到的效果,而这个效果一定要让客户点头确认,而不能出现“应该是”、“可能是”、“也许是”这样的模糊回答。否则在项目后期就会比较难过了。在学校申请的项目和大型公司项目开发中,是重视文档流程的,一部一部来。所以还是看情况来对待文档的深度和标准。
一、目录: 目录要用word的 “引用”—>”目录”,自动生成目录,一般都是要三级目录。通常这部分基本都不需要改结构,直接更新页码即可。
二、内容部分。 国家标准软件需求说明书G856T-88下载
1引言
11编写目的
说明编写这份软件需求说明书的目的,指出预期的读者。
(这部分说明需求分析报告的概况,例如:本X需求分析报告是为S系统而编写的。+S系统的两句话概述。+本X报告旨在使U1(需求者)明确S系统的要求和细节,给U2(开发人员)了解需求实现的难度和困难,最终提供给U3(审核人、管理者)讨论和审核,达到沟通效果)
12背景
说明:
a. 待开发的软件系统的名称;
b. 本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
c. 该软件系统同其他系统或其他机构的基本的相互来往关系。
(这部分可以将a,b,c分为2部分,例子如下:
121项目概况
本需求分析报告所预期开发的软件系统是:S。S是(不是则无)SS系统的某一个功能子模块,S和S1、S2等系统之间的联系,以及概述其他系统的状态等等。
122任务分配
a 任务提出者:xxx
b 软件开发者:xx
c 产品使用者:xx
d 文档编写者:xx
e 预期产品使用者:xx
)
13定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
(这部分很简单,就是描述专业词汇,比如
1 XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。
2 Word2, 解释。。。
)
14参考资料
列出用得着的参考资料,如:
a. 本项目的经核准的计划任务书或合同、上级机关的批文;
b. 属于本项目的其他已发表的文件;
c. 本文件中各处引用的文件、资料、包括所要用到的软件开发标准。 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2任务概述
21目标
叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|
(
本模块开发主要是为SS的整体服务,完成SS工作中的XX部分以及相关的工作。其涉及的范围就是,从下达A、B命令后,到给出C结果的过程。具体描述:B1,来完成B11功能;B2,来完成B22功能; 等等。本部分是(否)耦合在分词工具包其他部分中的,主要为嵌入方式和先后方式相互交互。
图
图1 该系统的组成同其他各部分的联系和接口
)
22用户的特点
列出本软件的最终用户的特点,充分说明 *** 作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束
(例如:二次开发和系统调用人员:具有很高的专业知识水平,理解XX的运行机制。可以对开放代码进行阅读和分析,以完成其系统独特的需求,提供给这部分用户开放API手册和Debug版本的源代码即可;预期这部分用户会占本系统总用户量的多大部分。
xx使用者:具有一定的计算机 *** 作能力和知识,了解xx领域的相关概念和用途。提供给这部分用户 *** 作手册即可。预期这部分使用者主要是来简单的xx *** 作。
维护人员:具有较高的计算机专业水平,可以对常见的系统Bug进行追踪和分析,具有一定的测试能力。 这部分用户主要是采用了本系统之后的后期工作维护者。
等等
)
23假定和约束
列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
(这部分重要是对你有的技术力量、资金状况、人力资源等情况的假设,以使得你可以在什么样的情况和时间范围内完成工作。工期约束,经费约束,人员约束,地理约束,设备约束等几个方面列举说明。)
3需求规定
31对功能的规定
用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行 *** 作的用户数。
(例如:
INPUT输入
PROCESS处理
OUTPUT输出
LOAD负载量
A
预处理,做怎样的动作,
AA
CC
B
BBBB
Bb
v
C
CCCC
cc
v
表一、xx模块IPO表
对IPO表的简单文字描述。
)
32对性能的规定
321精度
说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。
(例如:
Xx目标处理:1Byt–10M,包括左右边界值。
yy精度范围:…
ZZ的精度:由于xx的特殊性,本系统均采用xx型来进行字符统计运算,概率部分以及其他比率部分精度精确到00x%。
)
322时间特性要求
说明对于该软件的时间特性要求,如对:
a. 响应时间;
b. 更新处理时间;
c. 数据的转换和传送时间;
d. 解题时间;等的要求。
(这部分只要一一列举就可以:
由于xxx过程中,需要大量xxxx *** 作或怎样,故xx解题时间占总时间的最大部分。其次就是xx转换和存储的开销。其具体时间特性要求,如下:
a. xx响应时间:xxms左右;
b. yy更新处理时间:yy;
c. zz数据的转换和传送时间:zz;
d. vv解题时间:vv。
等等
)
323灵活性
说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:
a. *** 作方式上的变化;
b. 运行环境的变化;
c. 同其他软件的接口的变化;
d. 精度和有效时限的变化;
e. 计划的变化或改进。
对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
(这部分按列举来即可, 由于本模块第一目的是用于xxx,其次则是xxxx。故本模块的灵活性在于实际应用者的不同。当需求发生某些变化时,该软件对这些变化的适应能力。具体情况如下:
f. *** 作方式上的变化:采用集成运行制和独立运行制两种模式,集成运行制是把本模块嵌入到分词工具包的主框架中,提供给用户具有一定UI的可 *** 作软件;独立运行制是可以独立运行于后台,并提供给各种程序调用的模式的工作方式,以增强其生命力。
g. 运行环境的变化:主采用Windows平台的编译版本运行和调试,在时间允许的情况下,同步开发支持SUSE Linux的服务器版本。;
h. 同其他软件的接口的变化:在尽量保证接口不出现变动的情况下,允许接口的重载和再定义。但接口的命名规则是统一的;
i. 精度和有效时限的变化:精度在必须调整的条件下,可以上下浮动10个百分点;有效时限则依据现实的测试情况允许稍大范围的变化。
j. 计划的变化或改进:工作时间安排会存在必然的浮动,这部分要协同分词工具包课题设计组其他成员一同来进行商定,前期的计划可以稍微有些变动,后期的安排尽量按照计划执行。
等等
)
33输人输出要求
解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
(这部分可以把输入输出分为 331输入要求和332输出要求,如下给出一个单元的例子。
XXX输出
数据名称:XXX输出数据
实际含义:用于XX,表示XXXX
数据类型:Character(字符串)
数据格式:XX
数据约束:由于xxx,,大小在xx以内
)
34数据管理能力要求
说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。
(
根据实际系统要求列举即可
Name名称
Number数量
Size大小
Increase增长
词典xx
xx
xxxx
并行执行,其大小依据实际xx大文本而增长
)
35故障处理要求
列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
(包括软件压力,内存不足,硬件损坏等,这部分可以根据百度到其常见故障。)
36其他专门要求
如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
(例如安全保密性:密钥更换等; 预期扩展:扩展兼容等;OS更换:Slackware转SUSE等
)
4运行环境规定
41设备
列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:
a. 处理器型号及内存容量;
b. 外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;
c. 输入及输出设备的型号和数量,联机或脱机;
d. 数据通信设备的型号和数量;
e. 功能键及其他专用硬件
(列举说明即可)
42支持软件
列出支持软件,包括要用到的 *** 作系统、编译(或汇编)程序、测试支持软件等。
( *** 作系统和版本:xxxx
支撑环境和版本:xxxx
备用IDE环境和版本:xxxx
与该软件有关的软件组件:xxxx
后续可能扩展环境:xxxx
)
43接口
说明该软件同其他软件之间的接口、数据通信协议等。
(例如:
a.用户和主程序调用接口(图中接口1)。这个接口采用封装API形式和函数调用形式,分别以外部调用和内部调用的方式为不同用户提供使用本机械分词工具的入口。例如以xxxx方式调用DLL文件,以xxxx方式调用函数。如下图2所示。
图2软件接口调用图
bxx接口(图中接口2)。这里是一个xxx的接口调用过程。xxxx
)
44控制
说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。
(例如:
下面通过图表的形式,将本模块以及涉及到本模块的软件模块的运行方法、控制信号,以及这些控制信号的来源,其中箭头所指方向对应的模块的控制信号来自箭头另一方向的模块,具体情况如下:
图3 控制流程图
图3的具体说明情况如下表所示:
Name模块名称
Method运行方式
Signal控制信号
Forward控制去向
主程序模块
运行框架
用户调用或运行
1 调用xx模块
2 调用xx方法
3 调用标准输出模块
xxx模块
xxx
xxx调用
Xxx模块
)
附录: 软件设计文档国家标准(GB8567–88)软件设计文档国家标准(GB8567–88)GB8567——88
*** 作手册(GB8567——88)doc 数据库设计说明书(GB8567——88)doc
测试分析报告(GB8567——88)doc 数据要求说明书(GB856T——88)doc
测试计划(GB8567——88)doc 图1doc
概要设计说明书(GB8567——88)doc 文件给制实施规定的实例(GB8567-88)doc
开发进度月报(GB8567——88)doc 详细设计说明书(GB8567——88)doc
可行性研究报告(GB8567——88)doc 项目开发计划(GB856T——88)doc
模块开发卷宗(GB8567——88)doc 项目开发总结报告(GB8567——88)doc
软件需求说明书(GB856T——88)doc 用户手册(GB8567——88)doc
可分五个部分写:需求分析、可行性研究、总体设计、详细设计、编码和测试。
下面简述五个部分应该写什么:
一、需求分析。这里主要写用户对整个数据库设计的要求,以达到什么样的使用结果,也就是用户对系统整体的需求。
二、可行性研究。主要编写整个数据库设计是否可行,是否有足够的技术和财力、人力、物力去完成这个任务。
三、总体设计。需要给出整个系统中各个模块的总体结构,使系统的轮廓变得清晰。
四、详细设计。这个阶段就要写清楚每个模块内部和外部实现所采用的方法和技巧,而且也要给出比较重要的模块的主要算法。
五、编码和测试。选择合适的高级程序设计语言,对于每个模块进行详细的编写代码,实现预期的基本功能;同时对所有已经编写完毕的模块进行软件工程方法学所要求的各种测试,以使软件达到更高的稳定性和安全性
1、数据库(database,DB)
作用是数据库中的数据按一定的数学模型组织、描述和存储,有组织,可共享的数据的集合。具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。
2、硬件
构成计算机系统的各种物理设备,包括存储所需的外部设备。作用是硬件的配置应满足整个数据库系统的需要。
3、软件
包括 *** 作系统、数据库管理系统及应用程序。数据库管理系统是数据库系统的核心软件,作用是在 *** 作系统的支持下工作,科学地组织和存储数据,高效获取和维护数据的系统软件。其主要功能包括数据定义功能、数据 *** 纵功能、数据库的运行管理和数据库的建立与维护。
4、人员
主要分类及其作用是系统分析员和数据库设计人员,负责应用系统的需求分析和规范说明,确定系统的硬件配置,并参与数据库系统的概要设计;应用程序员,负责编写使用数据库的应用程序,利用系统的接口或查询语言访问数据库;数据库管理员负责数据库的总体信息控制。
扩展资料:
数据库系统的模型
1、层次模型:用一颗“有向树”的数据结构来表示各类实体以及实体间的联系,树中每一个节点代表一个记录类型,树状结构表示实体型之间的联系。层次数据模型的提出,首先是为了模拟这种按层次组织起来的事物。层次数据库也是按记录来存取数据的。
2、网状模型:取消了层次模型的不能表示非数状结构的限制,两个或两个以上的结点都可以有多个双亲结点,则此时有向树变成了有向图,该有向图描述了网状模型。网状模型中以记录为数据的存储单位。记录包含若干数据项。
3、关系模型:基本假定是所有数据都表示为数学上的关系。关系数据模型以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型关系来表示。
参考资料来源:百度百科-数据库系统
可以根据软件开发项目的大小来确定需要编写的文档。
小规模软件:软件需求与开发计划。
中规模软件:项目开发计划,软件需求说明,测试计划。
大规模软件:可行性报告、项目开发计划;软件需求说明、数据要求说明;测试计划。
开发计划、测试计划可以根据你的实际情况进行取舍。
1需求规格说明书(流程图、用例图、数据库表说明);
2系统需求说明书(流程图、功能结构图(ER图));
3系统详细设计说明书;
4需求汇总。
软件需求规格说明书
1 引言
11 编写目的
需求分析是软件开发的基础,需求分析得出的结论是软件开发后续阶段的工作依据,直接决定这最终软件是否满足用户的需求,决定着软件开发的成功与否。
开发音像店租赁管理系统的需求分析是通过对音像店管理模式的了解,通过与音像店工作人员的交流,获取音像店管理人员对系统的需求,以及对开发系统各方面的建议而得到的。对其建议进行筛选、归纳和总结,最终确定了用户对该系统的需求。
12 开发背景
系统名称:《音像租赁信息管理系统》
音像租赁行业的自动化水平还比较落后,大多数音像租赁店还处于人工管理阶段,即还是使用纸和笔来对租赁信息进行记录。当同时来办理租赁业务的顾客比较少时,人工管理还应付的过来;但当同时来的顾客比较多时,人工管理的冗繁性、低效性就暴露了出来,同时还面临着出错的可能性。这一缺乏系统、规范的管理手段,严重阻碍了该行业的快速发展。而大多数其他行业如零售、金融等行业早已具备了相关的、较为成熟的管理系统。因此专门为租赁行业开发一个管理系统是很必要的。
2 项目概述
21 项目目标
完成对顾客信息的添加、修改和删除功能。音像制品信息管理主要完成对音像制品信息的添加和修改功能。音像类别信息管理主要完成对音像类别信息的添加和修改功能。基础数据维护的好坏直接决定系统数据存储的安全性和稳定性,通过对基础数据的维护。
音像店租赁行业中主要的业务就是音像商品的租借和归还,本系统的音像商品租赁管理主要完成的是对顾客租借和归还音像商品信息的管理,其中可以准确无误的记录下顾客租借和归还的时间以及当时的 *** 作员。在音像商品租赁管理中可以通过系统的模糊查询功能完成对音像商品信息的查看功能,模糊查询包括按音像商品品名和主演姓名来查询。当顾客来租借音像商品时,管理员可以通过先查看是否有这种音像商品,如果有顾客需要租借的音像商品再进行租借 *** 作,由此可知,查询是为租借服务的。
3 功能需求
31 功能划分
32
音像租赁信息管理系统
退出程序
用户管理
更改密码
音像商品查询
音像商品归还
音像商品租借
音像商品验收
音像商品订购
顾客信息管理
音像类别信息管理
音像商品信息管理
系统维护
租赁管理
音像订购管理
基础数据维护
功能描述
1用户登录和修改密码
音像店租赁管理系统的用户正确输入用户名和密码后,才能进入本系统进行相关 *** 作,当然,用户可以修改自己的信息,权限除外。
2音像制品信息管理
随着科技的高速发展,音像制品行业也越发蓬勃,音像制品信息业越发繁多,手工对音像制品信息进行管理已经满足不了音像制品行业的现状,计算机的到来解决了音像制品信息的添加、修改和删除,可以更加完美的保存好音像制品信息。
3音像类别管理
音像制品行业中,音像类别随着科技的进步也有新类别,类别不同,租借的价格也有所不同,系统需要完成对不同类别音像制品信息的添加和修改。
4顾客信息管理
系统需要录入大量顾客信息,对顾客信息进行管理。
5音像制品的订购和验收管理
为了更好地满足顾客的需求,系统需要不定时的对新出版的音像制品进行订购,经过用户的验收后,录入数据库,实现数据库信息的更新。
6音像制品租借和归还管理
系统要求能够实现音像制品的租借和归还功能,准确记录下租借时间和归还时间,对超过期限给以一定量的罚款,不同类别的音像制品,其罚款金额也同。
7系统维护
系统管理员可以添加新用户来对系统进行维护,也能对新用户信息进行管理,由于该系统基于中小型音像店,当系统用户需要更新时可以通过修改相应的权限来完成。
4 数据处理
数据需求是需求的重要组成部分,用于说明系统的输入、输出数据以及系统内部存储的数据。音像店租赁管理系统中,数据库的内容是系统的最重要部分,系统功能的实现主要用于数据维护和数据的各种显示,其中数据模型则说明了系统所要存储的数据以及数据之间的关系。
41 业务处理流程
42 数据描述
音像实体:
顾客实体:
管理员实体:
E-R图:
5性能需求
·可用性:本软件也可以通过单步跟踪的 *** 作进行检查处理。
安全性:由于软件运行数据放在数据库中,所以参数不容易被错改、破坏,万一参数受到破坏也 不会影响源程序。
·可维护性:本软件利用数据库进行编程,系统结构由程序基本确定,大量的参数及文本内容全部 放于数据库中。修改、更新数据只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性、升级都十分方便。
·兼容性:由于尚未测试,故无法对兼容性进行评析。
详细完整文件,私信我哦
以上就是关于软件需求说明怎么写全部的内容,包括:软件需求说明怎么写、怎样写数据库系统稳定性需求、数据库系统的组成,及各自的作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)