软件需求规格说明书范例

完整版(包括图片表格,请访问http://www.omegaxyz.com/2019/07/23/software-specification/)文章目录一、引言1.1定位与目标1.2对象1.3软件需求分析理论1.4软件需求分析目标二、需求概述2.1项目背景2.2需求概述2.3系统结构三、系统功能需求3.1功能总览3.2业务流程图3.3数据流…

大家好,又见面了,我是你们的朋友全栈君。

完整版(包括图片表格,请访问 http://www.omegaxyz.com/2019/07/23/software-specification/

本软件需求规格说明书范例对应的软件测试计划请参照:
http://www.omegaxyz.com/2019/08/02/software-testing/

PDF文档及更多软件测试内容请参考:https://github.com/xyjigsaw/software-testing

文章目录

一、 引言
1.1 定位与目标
1.2 对象
1.3 软件需求分析理论
1.4 软件需求分析目标
二、 需求概述
2.1 项目背景
2.2 需求概述
2.3 系统结构
三、 系统功能需求
3.1 功能总览
3.2 业务流程图
3.3 数据流分析
3.4 数据字典
3.5 E-R图
四、 软硬件及外部系统接口需求
4.1 用户界面
4.2 硬件需求
4.3 运行环境
五、 可靠性与可用性需求
5.1 性能需求
5.2 安全性需求
六、 参考文献

一、 引言

1.1 定位与目标

计算机技术高度发达的今天,利用信息技术对大量复杂的信息进行有效的管理成为一种普遍而实用的手段。一方面,这极大的减少了簿记和人力的开销,另一方面,现代计算机强大的计算能力和网络的普遍部署,大大简化了大量信息的处理和流动。学生在线考试系统是评测学生能力的一个重要组成部分,他对教师的工作效率有很大的提高,它不但可以降低对纸质试卷的要求,同时也体现了节约型社会的要求。该系统涉及了学生在线程序能力测评考试,学习成绩插询,以及很多相关信息的综合处理。为了方便配合教师对学生成绩的进一步了解,开发学生在线考试系统是当务之急。学生在线考试系统把试题、电脑改卷、成绩查询的部分管理工作集成到一个统一的平台,各管理人员分工协作、相互配合,及时了解学生编程水平。同时,也可以方便教师针对学生个体不同情况进行分层次指导。

1.2 对象

本《软件需求规格说明书》的预期读者是:

程序教学平台开发经理
技术部经理
项目组所有人员
测试组人员
SQA 人员
开发公司授权调阅本文档的其他人员

1.3 软件需求分析理论

软件需求分析是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求, 建立可确认的、可验证的一个基本依据。软件需求分析是一个项目的开端, 也是项目实施最重要的关键点。 据有关的机构分析结果表明, 设计的软件产品存在不完整性、 不正确性等问题 80%以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出。因此,一个项目的成功软件需求分析是关键的一步。

1.4 软件需求分析目标

对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整性,促使用户在软件设计启动之前周密地、全面地思考软件需求。了解和描述软件实现所需的全部信息,为软件设计、确认和验证提供一个基准。

为软件管理人员进行软件成本计价和编制软件开发计划书提供依据。

需求分析的具体内容可以归纳为六个方面: 软件的功能需求, 软件与硬件或其他外部系统接口,软件的非功能性需求, 软件的反向需求, 软件设计和实现上的限制,阅读支持信息。

软件需求分析应尽量提供软件实现功能需求的全部信息, 使得软件设计人员和软件测试人员不再需要需求方的接触。 这就要求软件需求分析内容应正确、 完整、一致和可验证。此外,为保证软件设计质量,便于软件功能的休整和验证,软件需求表达无岔意性,具有可追踪性和可修改性。

二、 需求概述

2.1 项目背景

将要开发的软件名为《计算机程序能力在线测评系统》,本项目的提出者是安徽大学计算机科学与技术学院,而开发者是16级安徽大学软件工程班负责,主要用户是安徽大学本科生级研究生, 该软件独立于其他系统,自成一个完整的系统,应用方便。

2.2 需求概述

下面就对算机程序能力在线测评系统的设计进行需求分析。

首先,因为考试是面向特定的某些对象的,所以考试者进入系统应该进行身份验证。考试者进入考试系统后,应该能根据自己的需要选择考试能力水平,所以该 系统还应具有考试难度选择(分为顶级、甲级、乙级)的功能。为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后动态生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考试者交卷。考试者选择答案提交后,应该由计算机自动判卷,得到成绩后显示出来。考试完毕后,可以返回登录界面或查询成绩与排名。

2.3 系统结构

图2.1 系统结构

三、 系统功能需求

3.1 功能总览

表 3.1 功能总览

3.2 业务流程图

完整版(包括图片表格,请访问 http://www.omegaxyz.com/2019/07/23/software-specification/)

该系统是基于网络技术的一种在线测评系统,管理员通过网络对题库进行维护,添加试题、修改试题、删除试题等操作;考生通过系统完成考试、分数查询等操作;系统自动组卷并且完成试卷的批阅、分数的统计等操作。

图3.1 业务流程图

3.3 数据流分析

学生登陆系统后从试题库中选出一套试题,然后开始答题,答题完后提交给系统,由系统完成对试卷的批阅统计出成绩,学生可以登陆查询。 管理员登陆系统后对系统进行维护更新。

图3.2 数据流图

3.4 数据字典

数据项条目,用于标识实体。数据字典是数据库的重要部分,它存放有数据库所用的有关信息,对用户来说是一组只读的表。它是关于数据信息的集合。它是数据流图中所有要素严格定义的场所,这些要素包括数据流、数据流的组成、文件、加工小说明及其他应进入字典的一切数据,其中每个要素对应数据字典中的一项条目。其中,对引用的一些关键字进行说明 : PK(主键 ),FK(外键 ), Check(检 查的范围约束),Not null(不为空值)。

完整版(包括图片表格,请访问 http://www.omegaxyz.com/2019/07/23/software-specification/)

表3.2 考生信息表

编号 字段名称 字段含义 字段类型 字段长度 是否主键 默认值
1 uuid 考生考号 Varchar 10 √
2 name 考生姓名 Varchar 14
3 gender 性别 Bool 1
4 password 密码 Varchar 20 123456
5 mail 邮箱 Varchar 40
6 phone 电话 Varchar 12
表3.3 试题难度系数表

编号 字段名称 字段含义 字段类型 字段长度 是否主键 默认值
1 idl 难度编号 Varchar 3 √
2 dsl 难度描述 Varchar 30 NULL
表3.4 题目信息表

编号 字段名称 字段含义 字段类型 字段长度 是否主键 默认值
1 idq 题目号 Varchar 10 √
2 idl 难度编号 Varchar 3
3 nameq 题目名称 Varchar 10
4 des_q 题目表述 Varchar 100 NULL
5 index_q 索引编号 Varchar 20
6 pass_n 通过人数 Longint 16 0
7 att_n 提交次数 Longint 16 0
表3.5 试卷信息表

编号 字段名称 字段含义 字段类型 字段长度 是否主键 默认值
1 idp 试卷号 Varchar 10 √
2 score_t 总分 Int 8 100
3 nameq 题目名称 Varchar 10
4 des_p 试卷表述 Varchar 100 NULL
5 start_p 开始时间 Date 16 Date()
6 end_p 结束时间 Date 16 Date()
表3.6 管理员信息表

编号 字段名称 字段含义 字段类型 字段长度 是否主键 默认值
1 uuid_a 工号 Varchar 10 √
2 name_a 姓名 Varchar 8
3 password_p 密码 Varchar 20
4 mail_p 邮件 Varchar 40
5 phone_p 联系电话 Varchar 12
表3.7 考场信息表

编号 字段名称 字段含义 字段类型 字段长度 是否主键 默认值
1 uuid_s 考场号 Varchar 10 √
2 name_s 考场名称 Varchar 20
3 des_s 考场描述 Varchar 100

3.5 E-R图

完整版(包括图片表格,请访问 http://www.omegaxyz.com/2019/07/23/software-specification/)

图3.3 试题E-R图

图3.4 考生E-R图

图3.5 成绩单E-R图

四、 软硬件及外部系统接口需求

4.1 用户界面

用户界面是程序中用户能看见并与之交互作用的部分,设计一个好的用户界面是非常重要的,本设计将为用户提供美观,大方,直观,操作简单的用户界面。

4.2 硬件需求

移动终端硬件配置应遵循如下原则:具有高的可靠性,可用性和安全性。【描述系统中软件和硬件每一接口的特征。这种描述可能包括支持的硬件类型、软硬件之间的交流的数据和控制信息的性质以及使用的通信协议。】

4.3 运行环境

Web 浏览器:0+、Chrome、Opera、Safari、Firefox及任何支持HTML5标准的浏览器。
标准分辨率:1024768、19201080、2K
五、 可靠性与可用性需求

5.1 性能需求

处理能力
由于是在线测评系统,其处理能力主要考虑系统能承载的最大并发用户数,按照实际情况的规划,系统至少能承载的最大并发用户数要求达到全校学生总人数*φ,φ为0至1的常数,随服务器容量而定。

响应时间
为了能够快捷地提供在线测评服务,系统应该能够快速地响应在线测评请求。用户最终得到结果的响应时间除了与系统响应速度有关外,还与网络状况有关。因此对Web服务器端需要较高的要求。

表 5.1 相应时间分析

完整版(包括图片表格,请访问 http://www.omegaxyz.com/2019/07/23/software-specification/

5.2 安全性需求

传输的数据都采用高强度的加密算法加密 (DES),使得数据即使泄漏、被截获后,也无法识别相关的数据内容,确保数据安全。对于客户端与服务器交互的数据,使用安全套接子层 (SSL,SSL 加密传输主要是针对 WEB的数据传输,基于重要信息的传输安全考虑而设计的) 进行信息交换,并在客户移动终端和服务器之间重要的信息的交换。

六、 参考文献

[1] 卢正鼎, 张照, 周裕强,等. 面向工程设计应用的数据库管理系统EDDBMS[J]. 计算机研究与发展, 1997(s1):328-332.
[2] 蔡长安, 王琪. 基于B/S模式的学生信息管理系统设计与实现[J]. 计算机工程与设计, 2006, 27(14):2585-2587.
[3] 李文新, 郭炜. 北京大学程序在线评测系统及其应用[J]. 吉林大学学报:信息科学版, 2005(S2):170-177.

更多内容访问 omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
© 2020 • OmegaXYZ-版权所有 转载请注明出处

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/124577.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • PyCharm下如何使用Git「建议收藏」

    PyCharm下如何使用Git「建议收藏」添加SSH公钥任何基于Git的在线代码托管平台都需要配置电脑的SSH公钥以GitHub为例,在个人设置里面找到对应的位置,点击添加按钮,将电脑用户目录下的.ssh文件夹里的id_rsa.pub文件里面的值复制输入进去,设置一个名字就添加成功了利用PyCharm克隆项目打开PyCharm,如果你原来有项目的话,依次点击左上角的File->CloseProject,如果没有直接…

  • java localdatetime转date_java编码格式转换

    java localdatetime转date_java编码格式转换上篇文章介绍了Java8和Java8之前的时间处理的相关类,但是在日常开发中难免会遇到Java8和之前的旧对象互转的需求。我整理了一下之前的内容,做了一个工具类,如下:publicclassDateUtils{/***@Author:zhuoli*@Description:判断unix当前unix时间是否为0点*@paramu…

  • phpStrom隐藏.idea文件[通俗易懂]

    phpStrom隐藏.idea文件[通俗易懂]phpStrom隐藏.idea文件

  • stardict 词典名

    stardict 词典名

  • 线性代数行列式方程求解(正交矩阵的行列式)

    线性代数行列式求值算的可真是让人CPU疼,但计算机是不累的,所以用一个c++程序帮助你验证求解行列式的值吧。本文介绍了三种算法,虽然还没有完成–.–

  • python移动app开发_神奇的Kivy,让Python快速开发移动app

    python移动app开发_神奇的Kivy,让Python快速开发移动app随着移动互联网的不断发展,手机、Pad等移动终端已经被普遍使用,充斥在人们的工作、学习和生活中,越来越多的程序都转向移动终端,各类app应用相拥而至。Kivy作为Python的Android和IOS的app应用开发利器,有着跨平台开发优势,很快得到了普遍运用,并逐渐占据了核心地位。下面我们就看看用Python的Kivy模块是如何开发移动App应用的。Kivy的安装。与Python的其他模块安装一样…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号