软件需求规格说明书
文件编号:2020.1.10
版本:1.0
编写人 |
王占坤 |
日期 |
2019-01-10 |
评审 |
评审号/日期 |
||
批准 |
状态 |
||
发布范围 |
项目组 |
修改历史
日期 |
版本 |
作者 |
修改内容 |
2019-1-10 |
1.0 |
王占坤 |
新建 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
目录
1引言. 4
1.1 目的. 4
1.2 背景. 4
1.3 术语. 4
1.4 预期读者与阅读建议. 4
1.5 参考资料. 4
1.6 需求描述约定. 4
2.项目概述. 5
2.1 系统功能. 5
2.2 业务描述. 6
2.3 数据流程描述 (可选) 6
2.4 用户的特点. 6
2.5 运行环境要求. 6
2.6 设计和实现上的限制. 6
3.功能需求的描述. 6
4.非功能需求. 8
4.1 系统性能要求. 8
4.2 系统安全及保密要求. 9
4.3 系统备份与恢复要求. 9
4.4 系统日志. 9
5.外部接口说明. 9
6.其他需求. 9
7 需求变更识别. 9
8.附件. 9
1引言
1.1 目的
通过本文档定义数独定义数独生成与自动求解器产品的需求,以求在项目组员与相关成员之间达成一致的需求描述。
1.2 背景
该项目是软件工程课程的实训要求,旨在通过编写数独软件熟练掌握软件工程的项目经过和要求。
该软件系统的名称为数独生成与自动求解器,英文名称为sudoku。
项目提出者为汤世平老师,开发者为王占坤。
系统应用范围:无。
用户:汤世平老师
1.3 术语
术语 |
说明 |
数独 |
数独是一种数学逻辑游戏,游戏由9×9个格子组成,玩家需要根据格子提供的数字推理出其他格子的数字。 |
1.4 预期读者与阅读建议
预期读者 |
阅读建议 |
项目提出者 |
仔细阅读概述,编写目的,文档约定,系统功能介绍和维度指标说明。 |
系统设计人员 |
仔细阅读文档约定,系统功能介绍和维度指标说明。 各个部门可重点阅读与本部门相关的内容。 |
参加需求评审的人员 |
仔细阅读全部内容。 |
系统设计人员 |
仔细阅读全部内容。 |
系统测试人员 |
仔细阅读文档约定,系统功能介绍和维度指标说明。 |
1.5 参考资料
文档名 |
版本号 |
发表日期 |
来源 |
文档简称 |
软件工程基础-个人项目 |
1.0 |
汤世平老师 |
||
1.6 需求描述约定
1)本系统的需求标识方法:层次化编号方法
模块缩写参照表:
模块名 |
模块缩写 |
模块名 |
模块缩写 |
命令解析 |
SUDOKU01 |
数独生成 |
SUDOKU02 |
数独求解 |
SUDOKU03 |
||
需求层次:分三个层次,用三位字符表示。第一层需求指主功能模块,第二层需求指功能模块的主功能点,第三层次指主功能点下的具体需求。
2)本系统的需求跟踪粒度
跟踪到第二层功能需求。
3)本文档的需求级别定义:
l 本文档统一规定对需求层次为二级以上(功能模板、主功能点)的定义优先级,三层需求依据二层需求的优先级执行。
l 本文档的优先级别分为:紧急、正常、缓
l 同时对于主功能点还描述实现的周期:一期、二期、三期
4)功能描述方法:
本文档从以下几个方面对功能需求进行描述:
a. 业务定义/描述。
b. 输入:提供所有与本功能有关的输入描述,包括:输入数据类型、媒体、格式、数值范围、精度、单位等。
c. 输出-提供与本功能有关所有输出的描述,包括:输出数据类型、方式、格式、精度、单位等,以及图形或显示报告的描述。
d. 业务操作流程
e. 描述正常业务流程,列举异常情况和处理流程。建议使用图示,并配合必要的文字说明
f. 约束条件/特殊考虑
列出在各个工作领域不需计算机化的功能并提供其原因以及特殊条件。
5)界面描述规则
界面描述使用VISIO的界面模型进行描述。
2.项目概述
2.1 系统功能
产品的主要功能有:
l 对外界命令进行解析
用户通过命令行的形式使用该产品,需要对用户命令进行解析。
l 自动生成数独并输出到文件
当用户要求该软件依照需求规则进行数独生成时可以生成指定数量的数独并将其输出到与该软件所在位置的目录的文件中,文件固定命名为sudoku.txt。
l 自动对数独问题进行求解并输出到文件
当用户要求依照需求规则进行数独问题求解时,需要读入用户指定格式的数独问题文件并依据数独规则进行求解,每个问题只需要一个解即可,并将解按照需求规则说明的格式输出到与该软件同级目录的sudoku.txt文件中。
2.2 业务描述
无
2.3 数据流程描述 (可选)
无
2.4 用户的特点
用户非常熟悉计算机命令行,是软件工程专家。
用户不会经常使用该软件,会在收到该软件产品之后进行适当的测试并对其评定。
2.5 运行环境要求
软件运行环境为:
l Windows
l 普通个人电脑
l 其他共享内存的应用程序一般为常用办公软件
l 无特殊软硬件环境要求
2.6 设计和实现上的限制
1. 无编程语言限制
2. 运行环境限制为Windows
3. 需要进行大数据量1e6处理
4. 需要与用户通过命令行进行交互
5.无硬件特殊限制
6. 道德限制,不允许抄袭
7. 经济、法律等限制无
3.功能需求的描述
- 业务定义/描述。
通过命令行输入判断是要依据内嵌的数独生成规则生成指定数量的数独还是要求读入数独问题进行求解;将最终结果输出到sudoku.txt文件中。
- 输入:总计用两种正确输入格式,即
sudoku.txt -c Num
sudoku.exe -s absolute_path_of_puzzlefile
其中Num为整数类型,要求输入范围为1<=Num<=1e6
其中absolute_path_of_puzzlefile为字符串,代指绝对路径,不排除含有中文或其他特殊字符的可能性。
特殊输入为数独问题文件,改文件以0表示空格,题目与题目之间空一行,行末无空格,最后一个题目后无空行。保证改文件格式正确,其中数独问题数量个数为1<=N<=1e6.
- 输出-提供与本功能有关所有输出的描述,包括:输出数据类型、方式、格式、精度、单位等,以及图形或显示报告的描述。
输出只有一种格式,即是文件。文件要求名字为sudoku.txt,位置存放在与sudoku.exe同目录,要求此次输出覆盖上次输出文件。文件内容格式为,数与数之间由空格分开,终局与终局之间空一行,行末无空格。
- 业务操作流程
用户在命令行中输入命令启动该产品,软件对用户命令进行解析,当用户命令行参数个数有误、参数错误则报错并退出。
4.非功能需求
4.1 系统性能要求
a.时间特性
时间测量以秒为单位。
- 要求生成1 – 1e3的数独时在60秒内给出结果
- 在1e3 – 1e6的数据量时,时间越短越好
b.精度要求
输入输出均为自然数且范围限制在1e6(含)之内
c.容错性
1. 不保证输入参数数量正确
2. 不保证输入参数正确
3. 不保证输入路径正确
4. 不保证输入数字符合要求
5. 保证数独问题符合已说明格式
e.可扩充性
编写GUI界面
4.2 系统安全及保密要求
指定可以访问各自功能的用户群,如需要可指定用户访问权和安全包(如有),以便有效控制系统访问和数据访问。
确认审核记录和所有有关报告及接受人。阐述是否任何违反系统访问的内容都需要监控,以及以什么方式监控。
列明所有安全需求,例如数据加密,信息验证等。
4.3 系统备份与恢复要求
无
4.4 系统日志
无
5.外部接口说明
无
6.其他需求
无
7 需求变更识别
无
8.附件
附件可能包括各个模块的具体的功能需求描述、需求跟踪表,或者系统的词汇表、待确定问题列表,以及其它所有能够成为需求基线内容的正式文档。