网上购书电子商务系统——
软件产品开发要求及需求模型
计02 001482 王郭明
001485 孔伟桐
001500 郭 杰
一、 数据流图:
1. 网上购书电子商务系统数据流程图(第一层)
数据流图说明:
1.1 E:外部项
编号 | 名称 | 有关数据流 | 属性描述 |
---|---|---|---|
EBMS1.1 | 顾客 | FBMS1.1 | |
FBMS1.2 | |||
FBMS1.3 | |||
FBMS1.4 | |||
FBMS1.5 | |||
FBMS1.6 | 用户注册、登陆、提交订单、付款; | ||
送货给顾客、给顾客收据等 | |||
EBMS1.2 | 书籍供应厂商 | FBMS1.7 | |
FBMS1.8 | |||
FBMS1.9 | |||
FBMS1.10 | 向厂商购书、付款; | ||
厂商发货、给收据等 |
1.2 P:处理逻辑
编号 | 名称 | 功能描述 | 处理频度 |
---|---|---|---|
PMRS1.1 | 网上售书管理系统(BMS) | 用asp网站管理整个网上书店 | 每笔交易或批量处理 |
1.3 F:数据流
共有FBMS1.1~FBMS1.10这10个数据流,分别描述如下:
(1)数据流名称:FBMS1.1
数据流说明:用户登入
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
Username | 字符型 | 10 | 用户名 |
Password | 字符型 | 15 | 密码 |
(2)数据流名称:FBMS1.2
数据流说明:密码修改
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
Username | 字符型 | 10 | 用户名 |
Password_old | 字符型 | 15 | 旧密码 |
Password_new | 字符型 | 15 | 新密码 |
Password_new2 | 字符型 | 15 | 新密码确认 |
(3)数据流名称:FBMS1.3
数据流说明:顾客的订单
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
ID_Order | 数字型 | 整形 | 顾客的订单编号 |
Username | 字符型 | 10 | 用户名 |
ID_Book | 数字型 | 整形 | 书号 |
Count_Order | 数字型 | 整型 | 订书数量 |
Date_order | 日期/时间 | 顾客订书日期 |
(4)数据流名称:FBMS1.4
数据流说明:送货人给顾客的发货票
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
Username | 字符型 | 10 | 用户名 |
ID_Book | 数字型 | 整形 | 书号 |
Count | 数字型 | 整型 | 数量 |
Price | 货币 | 出版价格 | |
Cost | 货币 | 出售价 | |
TotalCost | 货币 | 总价格 | |
Date_send | 日期/时间 | 向顾客发货日期 |
(5)数据流名称:FBMS1.5
数据流说明:付款(顾客付款给送货人)
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
Username | 字符型 | 10 | 用户名 |
TotalCost | 货币 | 总金额 | |
Date_pay | 日期/时间 | 顾客付款日期 |
(6)数据流名称:FBMS1.6
数据流说明:送货人给顾客的收据(发货票)
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
ID_Receipt | 数字型 | 整形 | 收据编号 |
Username | 字符型 | 10 | 用户名 |
Bookname | 字符型 | 100 | 书名 |
ID_Book | 数字型 | 整形 | 书号 |
Count_Total | 数字型 | 整型 | 库存数量 |
Price | 货币 | 出版价格 | |
Cost | 货币 | 出售价 | |
TotalCost | 货币 | 总价格 | |
Date_receive | 日期/时间 | 从顾客方收款日期 |
(7)数据流名称:FBMS1.7
数据流说明:发给书籍供应厂商的订货单
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
ID_OrderToFact | 数字型 | 整形 | 给厂商的订单编号 |
Bookname | 字符型 | 100 | 应收款金额 |
Author | 字符型 | 100 | 图书作者 |
Publisher | 字符型 | 100 | 出版社 |
FactoryName | 字符型 | 20 | 厂商名称 |
Count_Order | 数字型 | 整型 | 订货数量 |
(8)数据流名称:FBMS1.8
数据流说明:书籍供应厂商的发货单
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
ID_Book | 数字型 | 整形 | 书号 |
Count_Order | 数字型 | 整型 | 发货数量 |
Date_FaSend | 日期/时间 | 厂商发货日期 |
(9)数据流名称:FBMS1.9
数据流说明:付款(给书籍供应厂商)
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
Money_toFa | 货币 | 总金额 | |
Date_payToFa | 日期/时间 | 向厂商付款日期 |
(10)数据流名称:FBMS1.10
数据流说明:书籍供应厂商的收据
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
Money_toFa | 货币 | 总金额 | |
Date_FaGetMoney | 日期/时间 | 厂商收款日期 |
1.4 D:数据存储
编号 | 名称 | 数据内容 | 存储方式 | 存储时间 | 存储位置 |
---|---|---|---|---|---|
DBMS1.1. | 暂存订单 | 用户名,书号, 数量, 顾客订书日期 | 文件 | 每笔 | 数据库 |
DBMS1.2 | 商品库存 | 书号,书名,作者,出版社,库存数量,单价等 | 文件 | 每笔 | 数据库 |
DBMS1.3 | 采购订单 | 书号,书名,作者,数量等 | 文件 | 每笔 | 数据库 |
DBMS1.4 | 销售历史 | 书号,销售数量,推荐程度等 | 文件 | 每笔 | 数据库 |
DBMS1.5 | 应收款明细帐 | 记录销售收入 | 文件 | 每笔 | 数据库 |
DBMS1.6 | 应付款明细帐 | 记录采购支出 | 文件 | 每笔 | 数据库 |
DBMS1.7 | 总帐 | 记录总帐目 | 文件 | 每笔 | 数据库 |
描述如下:
(1)数据存储代号:DBMS1.1
数据存储名称:暂存订单
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
Username | 字符型 | 10 | 用户名 |
ID_Book | 数字型 | 整形 | 书号 |
OrderCount | 数字型 | 整型 | 订书数量 |
Date_order | 日期/时间 | 顾客订书日期 |
(2)数据存储代号:DBMS1.2
数据存储名称:商品库存
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
ID_Book | 字符型 | 20 | 书号 |
Classify | 数字型 | 整形 | 分类(0-computer,1-Novel,2-English, |
3-Ecnomics,4-Cartoon) | |||
BookName | 字符型 | 100 | 书名 |
Author | 字符型 | 100 | 图书作者 |
Publisher | 字符型 | 100 | 出版商 |
Date_Publish | 日期/时间 | 出版日期 | |
PicturePath | 字符型 | 200 | 图片路径 |
Count_Page | 数字型 | 整形 | 页数 |
Version | 字符型 | 20 | 版本 |
Comment | 备注 | 内容简介 | |
Count_Total | 数字 | 整型 | 库存数量 |
Count_Buy | 数字 | 整型 | 已购买数量 |
Count_Browse | 数字 | 整形 | 浏览次数 |
RecomLevel | 数字 | 整型 | 推荐程度:0~5星级 |
Cost | 货币 | 价格 | |
Price | 货币 | 出版价格 | |
Date_Add | 日期/时间 | 上架日期 |
(3)数据存储代号:DBMS1.3
数据存储名称:向厂商采购订单
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
BookName | 字符型 | 100 | 书名 |
Author | 字符型 | 100 | 图书作者 |
Publisher | 字符型 | 100 | 出版社 |
Count_Order | 数字 | 整型 | 数量 |
(4)数据存储代号:DBMS1.4
数据存储名称:销售历史
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
ID_Book | 数字型 | 整形 | 书号 |
Count_Buy | 数字型 | 整型 | 销售数量 |
RecomLevel | 数字 | 整型 | 推荐程度: |
0:强烈推荐 | |||
1:一般推荐 | |||
2:普通 |
(5)数据存储代号:DBMS1.5
数据存储名称:帐目
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
Finance_received | 货币 | 销售收入 | |
Finance_payed | 货币 | 采购支出 | |
Finance_total | 货币 | 总收入 |
2. 网上购书电子商务系统数据流程图(第二层)
数据流图说明:
2.1 E:外部项
无
2.2 P:处理逻辑
编号 | 名称 | 功能描述 | 处理频度 |
---|---|---|---|
PBMS2.1 | 销售子系统 | 接受和处理用户的购书订单 | 每笔交易 |
PBMS2.2 | 采购子系统 | 库存不足时,向厂商购书 | 每笔交易 |
PBMS2.3 | 结算子系统 | 负责系统内所有的帐务管理 | 每笔交易 |
** **
2.3 D:数据存储
同第一层
2.4 F:数据流
第二层的数据流共有FBMS2.1~FBMS2.6这6个数据流,分别描述如下:
(1)数据流名称:FBMS2.1
数据流说明:收款单
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
ReceiptID | 字符型 | 20 | 收款单编号 |
Money_received | 货币 | 应收款金额 | |
Date_receive | 日期/时间 | 收款日期 |
(2)数据流名称:FBMS2.2
数据流说明:订货通知
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
BookID | 字符型 | 20 | 书号 |
Count_Order | 数字型 | 整型 | 订货数量 |
FactoryName | 字符型 | 20 | 厂商名称 |
Date_orderToFactory | 日期/时间 | 向厂商订货日期 |
(3)数据流名称:FBMS2.3
数据流说明:到货通知
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
BookID | 字符型 | 20 | 书号 |
ReceiveCount | 数字型 | 整型 | 订货数量 |
(4)数据流名称:FBMS2.4
数据流说明:付款单
数据项 | 数据类型 | 长度 | 备注 |
---|---|---|---|
PaymentID | 字符型 | 20 | 付款单编号 |
Money_payed | 货币 | 应付款金额 | |
Date_pay | 货币 | 付款日期 |
3. 网上购书电子商务系统数据流程图(第三层)
3.1销售细化
** **
3.2 采购细化
3.3 财务细化
二、 实体关系模型(E-R图)
三、 状态图、顺序图
1.状态图:
2.顺序图(Sequence Diagram)
四、 数据字典
** **数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。数据流图和数据字典共同构成系统的逻辑模型。
数据字典由下列六类元素的定义组成:
(1)数据流
(2)数据项:是“不可再分”的数据单位,是数据的最小组成单位。
(3)数据结构
(4)数据存储:数据存储是数据结构停留或保存的场所。
(5)处理逻辑
(6)外部实体
在第一层和第二层数据流图的定义之后,我们都已经详细定义了数据字典的各元素。
对于各数据项的详细符号描述,见实验二的《软件概要设计说明》中的“软件数据结构设计”。
网上购书电子商务系统——
_ _
软件需求规格说明
计02 001482 王郭明
001485 孔伟桐
001500 郭 杰
A. 引言
本规格说明详细阐述了“网上购书电子商务系统”的总体设计说明、产品功能、用户界面、系统特性、非功能性需求及其他需求。文档具体结构如下:
1 | 2 | 3 | 4 | 5 | ||
---|---|---|---|---|---|---|
A | 引言 | 编写目的 | 预期的读者 | 产品的范围 | ** ** | ** ** |
B | 综合描述 | 产品背景及前景 | 产品功能概述 | 用户类和特征 | 运行环境 | ** ** |
C | 外部接口需求 | 用户界面 | 软件接口 | ** ** | ** ** | ** ** |
D | 系统特性 | 激励/响应序列 | 功能需求 | ** ** | ** ** | ** ** |
E | 其它非功能需求 | 性能需求 | 安全性需求 | 软件质量 | ||
属性 | 业务 | |||||
规则 | 用户 | |||||
文档 | ||||||
F | 其它需求 | ** ** | ** ** | ** ** | ** ** | ** ** |
A.1 编写目的
编写该文档的目的是,对产品进行定义,详尽说明该产品的软件需求。
A.2 预期的读者和阅读建议
本软件需求规格说明的读者,可以是软件开发人员、用户、测试人员或文档的编写人员。
A.3 产品的范围
制作本软件的目的是,借助Internet/Intranet向其他企业和消费者提供产品和信息服务,实现产品和服务向消费者方向的转移。把软件与企业目标或业务策略相联系。
B. 综合描述
这一部分概述了产品“网上购书电子商务系统”的背景情况,主要功能,运行产品的环境,以及使用产品的用户等。
B.1 产品背景及目前存在的问题
因特网的迅猛发展正以前所未有的深度和广度影响和改变着人类生活的各个方面,越来越多的人开始意识到因特网所蕴含的巨大经济价值和无穷商机,并积极投身于电子商务活动。实际上,电子商务是一些商业行为的电子化,例如网上商店、网上贸易等。就网上商店来说,网上书店是目前应用最广、最成功的典范之一。网上书店的崛起对传统的图书流通体系产生了强烈的冲击,有效地缩短了图书流通发行环节,将广大读者、图书、出版者、发行者紧密地结合在一起,大大提高了图书流通率。
世界上第一家网上书店是1991年在美国联机公司在网络上建立的“阅读美国书店”。目前,最负盛名的是美国西雅图亚马逊图书公司的亚马逊网上书店。它创建于1995年,供书品种达310余万种,年顾客达500万人次,其价格优惠20~50%。金融结算制度完善,配送服务高效,实现了零库存运转。英国网上书店较著名的有因特网书店。德国的网上书店主要有图书图书在线网上书店、网上书店。
我国第一家网上书店是 1995年建上的中国书店网上书店。1997年杭州新华书店建立了新华书店系统的第一个网上书店。截止2000年6月,我国除了已建立网站的200多家出版社外,已开通的网上书店有100家左右。比较有影响的有当当网上书店、蔚蓝网络书店、北京图书大厦、全国购书网等。
网上书店虽然拥有比传统书店更广阔的市场,但是我国的网上书店并没有好好把握这个机会,在整体上出现了不少问题:
1. 面对如此庞大的市场范围,大部分网上书店并没有进行认真的市场细分与选择,而是沿袭了大多数传统书店的市场定位,想走“大而全”的路子,可又常常“大而不全”,完全不具备网络时代的个性化色彩。书店里的书目乍一看种类繁多,但各专业细分之后,每个专业的图书品种就不多了,不能满足专业读者的深层次需求。
2. 网站信息量不足。亚马逊网上书店能提供有关书的基本情况以及读者、专家、作者与媒体等各方面的评价,并给每本书设立一个评分等级;而我国有些网上书店却还没有详细的图书介绍。如果只简单列出书名、作者、出版社与定价,却没有相应的介绍资料和图片展示,又如何能吸引读者呢?
3. 售价偏高。据调查,我国大部分网上书店要么打折较少,要么要求订购者支付邮费或手续费。网上书店比传统书店节约了成本,那么在售价方面就必须体现出来。
事实上,网上购书绝不像宣传的那样轻松自如。
B.2 产品功能概述
将库存的图书目录按照不同分类存放在后台数据库里,用户通过Web方式调阅和查询,对销售的图书感兴趣的用户可以通过注册用户信息后下订单购书。主要功能如下:
1、 系统设置:数据库设置,图书类别设置,管理员设置,用户级别设置
2、 图书库管理:实现对图书进行编目、修改、删除、查询功能
3、 图书订购:实现用户在线订购图书
4、 查询功能:查询方式提供模糊查询和分类查询方式
5、 统计功能:提供各种统计功能,如图书销售排行、用户购买统计等
6、 其他:公告、用户投诉等
各功能的具体描述见D。
B.3 用户类和特征
因我们设计的支付方式为送货上门,故该网上书店只面向本地附近用户。用户每次买书都有购买记录,根据用户以往购买书籍的总金额,可对其实行不同程度的优惠。
B.4 运行环境
该网上书店的运行环境要求如下:
操作系统:Microsoft Windows 98/2000/Me/Xp/2003
所需组件:Internet Explorer 6.0
C 外部接口需求
C.1用户界面
这是我们所做“网上购书电子商务系统”与用户进行交流的一个中间体,有着十分重要的作用。所以,我们要求该用户界面友好、清楚明了、突出重点、而且容易使用;另外,该界面还必须能够提供尽量多的功能,以给顾客便捷的服务。
我们的用户界面由注册界面、登陆界面、浏览书籍界面、查询界面、购书界面等各大界面构成,每一个界面都有着各自的作用。
C.2 软件接口
该系统与我们的数据库相连(其中数据库里包括我们所提供的书籍信息,各书籍的价格等数据),同时数据库也用来保存各用户的信息(如:所购买的书籍、会员的等级等)。
D 系统特性
** D.1 激励/响应序列
以下以用户方的激励/响应序列为例进行说明:
l 用户注册:把新用户信息保存到数据里(如:用户名、密码等)
l 用户登陆:判断用户名和密码的正确性,如果判断通过则让用户进入欢迎界面,让其可以进行各种操作。
l 用户修改密码:把用户新密码输入到数据库中,替换原密码。
l 用户浏览:从数据库里调出书籍信息显示
l 用户查询:从数据库里查找相关书籍,如果找到则显示出来,否则显示查找失败
l 用户购书:保存用户所填写订单(包含有所购书籍、数量、价格等信息)
l 用户退出:显示已经退出系统信息
D.2 功能需求
** 这些是必须提交给用户的软件功能,使用户可以使用所提供的特性执行服务或者使用所指定的使用实例执行任务。描述产品如何响应可预知的出错条件或者非法输入或动作。
E 其它非功能需求
E.1 性能需求
** 时间上:相互合作的用户数(注意:这里的用户是指使用该软件的人,而不是登陆系统购买书籍的人)或者所支持的操作、响应时间以及与实时系统的时间关系,必须满足互斥性,即不能同时有几个用户对相同的数据进行操作、修改(同时读除外)。
空间上:对存储器和磁盘空间的需求;对存储在数据库中表的最大行数有一定的需要。
** E.2 安全性需求
1、只有特定的管理人员才能对系统进行管理,才能对数据库进行维护和修改;
2、登陆系统购书的客户的资料,对其他客户都是透明的;
3、客户的密码只能有客户自己进行修改,对管理员也是透明的;管理员唯一能对客户的操作是删除其客户名和密码。
4、客户下订单后不能更改订单的内容。
** E.3 软件质量属性
对使用者: 首先要保证有效性,最好易于扩展,有较好的可移植性。
对客户:操作简单,界面友好,帮助文档充分。
** E.4 业务规则
1.只有拿到客户的付款或向供应厂商付款后,才可以修改帐目。
2.只有客户提交了正确的订单后,才可以修改库存信息。如果客户最终没有按照订单来购书,则重新修改库存信息。
3.只有从供应厂商那里采购到书籍回来,才可以修改库存信息。
E.5 用户文档
用户手册:提供给用户的、指导用户使用该软件的手册。
在线帮助和教程:在网上提供的帮助教程,应该清晰易懂,简明易学。
F 其它需求
F.1 用户管理/统计查询
用户管理 系统管理员拥有最高权限,可添加/删除用户,添加/删除管理员。一般管理员除不能进行用户管理外可进行其他操作。系统管理员可查看一般管理员登录情况的历史记录,反之则不可以。
用户查询 可根据会员ID、住址、级别、总购物金额等条件对用户数据进行综合查询与统计,在多条查询结果中可浏览单个用户的明细资料。
F.2 书籍分类管理
可添加书籍分类,修改书籍分类名称。
F.3 书籍管理/查询
书籍管理 可修改书籍信息。
书籍查询 可根据书籍名、书籍类别、价格范围(市场价、销售价)、库存数量等条件对书籍据进行综合查询,在多条查询结果中可浏览单个书籍的明细数据。
F.4 订单管理/查询
订单管理 可根据订单处理的各个不同阶段修改订单状态,如“已发货”。
订单查询 可按用户名、订单号、订单状态对所有订单进行综合查询,在多条查询结果中可浏览某订单的明细状况。
F.5 销售统计
可按年、月或指定期限对书籍进行销售统计,结果显示各书籍的销售数量、销售金额等。
F.6 页面维护
可对各页面内容进行维护/修改。可更改页面广告条的链接。等等。
网上购书电子商务系统——
软件确认测试计划
计02 001482 王郭明
001500 郭 杰
001485 孔伟桐
** **
** **
本文档说明对需求规格说明规定的各种功能需求的确认测试方案(黑盒测试)。
u 功能测试种类
1.用等价划分法进行输入有效性测试
主要测试程序中各种输入数据的语法是否符合其规范定义,即是否有效。例如:用户输入的用户名、密码等,只有字符组成、字符数等符合一定规则,才可存入数据库或用作程序中的合法变量,等等。
2.用边界值分析法对输入有效性测试进行补充
** 在1的基础上,使输入为边界条件进行测试。
3.用错误推测法进行功能健壮性测试**
主要测试程序中各种功能性操作是否正确。例如:用户注册成功或修改信息后,其信息是否正确存入数据库;用户购买图书后,库存中的图书数量和销售历史是否作了正确的改变、用户信息中的经验值是否作了相应的增加,等等。
** **
u 功能测试的测试用例设计
1.输入有效性测试(等价划分法,边界值分析法)
首先建立输入等价类表(注:"( )"中标注的是各等价类的编号):
输入条件 | 有效等价类 | 无效等价类 | |
---|---|---|---|
用户名:Username | 首字符 | 字母 (1) | 非字母 (2) |
其他字符组成 | 字母或数字 (3) | 非字母或数字 (4) | |
字符数 | 4~10个 (5) | <4个(6),>10个(7) | |
密码:Password | 字符组成 | 字母或数字 (8) | 非字母或数字 (9) |
字符数 | 6~15个 (10) | <6个(11),>15个(12) | |
××编号/××数量: | |||
ID_××/Count_×× | 字符组成 | 数字 (13) | 非数字 (14) |
位数 | 1~10位 (15) | 0位 (16),>10位 (17) | |
××日期:Date_×× | 字符组成 | 四位数字 “-” 两位数字 “-” 两位数字 (18) | 非前述组成 (19) |
月部分数值 | 在1~12之间 (20) | 0或>12 (21) | |
日部分数值 | 在1~31之间 (22) | 0或>31 (23) | |
原价/售价/总价/×金: | |||
Price/Cost/TotalCost | |||
/Money_××/Finance_×× | 字符组成 | 数字("."数字) (24) | 非前述组成 (25) |
小数点后位数 | 0~2位 (26) | >2位 (27) | |
书名/出版商/作者: | |||
BookName/Publisher | |||
/Author | 字符数 | 0~100 (28) | >100 (29) |
图片路径: PicturePath | 字符数 | 0~200 (30) | >200 (31) |
内容简介: Comment | 字符数 | 0~500 (32) | >500 (33) |
推荐程度: RecomLevel | 字符组成 | 数字 (34) | 非数字 (35) |
数值 | 0~5 (36) | 非0~5 (37) | |
分类: classify | 字符组成 | 数字 (38) | 非数字 (39) |
数值 | 0~4 (40) | 非0~4 (41) |
根据该等价类表,设计以下测试用例:
编号 | 测试用例 | 用例覆盖的等价类 |
---|---|---|
1 | 在用户名输入筐中输入“aa3a” | (1),(3),(5)边界 |
2 | 在用户名输入筐中输入“1a” | (2) |
3 | 在用户名输入筐中输入“aaa” | (6) |
4 | 在用户名输入筐中输入“a/a” | (4) |
5 | 在用户名输入筐中输入“a2345678901” | (7)边界 |
6 | 在密码输入筐中输入“abc123” | (8),(10)边界 |
7 | 在密码输入筐中输入“a???bc” | (9) |
8 | 在密码输入筐中输入“a234567890123456” | (12)边界 |
9 | 在密码输入筐中输入“a2345” | (11)边界 |
10 | 管理员向图书库存中加入一个图书条目: |
(13)
(15)
(18)
(20)
(22)
(24)
(26)
(28)
(30)
(32)
(34)
(36)
(38)
(40) |
| 11 | 管理员向图书库存中加入图书条目,其中ID_Book项为: | (14) |
| 12 | 管理员向图书库存中加入图书条目,其中Publisher项为: | (29) |
| 13 | 管理员向图书库存中加入图书条目,其中PicturePath项为: | (31) |
| 14 | 管理员向图书库存中加入图书条目,其中Date_Publish项为: | (19) |
| 15 | 管理员向图书库存中加入图书条目,其中Date_Publish项为: | (21) |
| 16 | 管理员向图书库存中加入图书条目,其中Date_Publish项为: | (23) |
| 17 | 管理员向图书库存中加入图书条目,其中Count_Page项为: | (16)
或(17) |
| 18 | 管理员向图书库存中加入图书条目,其中Comment项为: | (33) |
| 19 | 管理员向图书库存中加入图书条目,其中RecomLevel项为: | (35) |
| 20 | 管理员向图书库存中加入图书条目,其中RecomLevel项为: | (37) |
| 21 | 管理员向图书库存中加入图书条目,其中Cost项为: | (25) |
| 22 | 管理员向图书库存中加入图书条目,其中Cost项为: | (27) |
| 23 | 管理员向图书库存中加入图书条目,其中Classify项为: | (39) |
| 24 | 管理员向图书库存中加入图书条目,其中Classify项为: | (41) |
** **
2.功能健壮性测试(错误推测法)
程序中需要测试以下功能(注:"( )"为功能编号):
输入条件 | 测试标准 |
---|---|
用户登陆 | 1. 正确检查是否存在该用户名 (1) |
2. 若存在该用户名且密码正确,是否能正确登陆 (2) | |
3. 若不存在该用户名或密码错误,是否能给出错误提示 (3) | |
用户注册 | 1.正确检查用户名是否已存在 (4) |
2.若用户名不存在,是否能正确添加该用户 (5) | |
3.若用户名已存在,是否能给出错误提示 (6) | |
用户修改信息 | 1..再次登陆时,可用修改后的密码登陆 (7) |
2.再次登陆后,看到的信息均为修改后的 (8) | |
用户提交订单后 | 正确判断该订单是否可满足 (9) |
用户订单可满足 | 正确开具发货票(即收款单) (10) |
用户购书 | 1.图书库存作相应修改 (11) |
2.用户经验值作相应增加 (12) | |
3.图书销售历史作相应修改,推荐程度作相应 (13) | |
4.应收款明细帐作相应修改 (14) | |
用户订单不可满足 | 1. 产生暂存订单 (15) |
2. 发出订货通知 (16) | |
接到订货通知 | 正确分类合计,产生订货单,发给厂商 (17) |
接到厂方发货单 | 正确核对发货单和原订单 (18) |
发货单核对正确 | 1. 图书库存作相应修改 (19) |
2. 正确发出到货通知 (20) | |
3. 应付款明细帐作相应修改 (21) | |
接到到货通知 | 核对到货通知和暂存订单,判断暂存订单是否可满足 (22) |
** **
根据上表,可设计以下测试用例:
编号 | 测试用例 | 用例覆盖的功能 |
---|---|---|
1 | 用户信息数据库中不存在用户”Jack”, 用该用户名登陆; | |
或存在用户”Jack”,密码为”greatJack”,但用Jack用户名登陆所用密码不是”greatJack”。 | (3) | |
2 | 用户信息数据库中还没有用户”Jack”,用“Jack”名注册。 | (4)(5) |
3 | 用户信息数据库中已存在用户”Jack”,密码为”greatJack”,用该用户名和密码登陆。 | (1)(2) |
4 | 用户信息数据库中已有用户”Jack”,用“Jack”名注册。 | (6) |
5 | 用户信息数据库中已存在用户”Jack”,密码为”greatJack”,用该用户名和密码登陆后,修改某些信息,并修改密码为”greatJacky”,再次登陆。 | (7)(8) |
6 | (接上例)用用户名”Jack”和密码”greatJacky”登陆后,选择几本书产生订单(事先已经知道该订单可满足),并提交。 | (9)(10) |
7 | (接上例)假设用户购买所订图书 | (11)~(14) |
8 | 正确登陆后,选择几本书产生订单(事先已经知道该订单不可满足),并提交。 | (15)(16)(17) |
9 | (接上例)假设已得到了厂方的发货单,且该发货单核对正确 | (18)~(22) |
网上购书电子商务系统——
软件概要设计说明
计02 001500 郭 杰
001485 孔伟桐
001482 王郭明
** **
本文档建立软件总体结构,并建立设计模型。
一、软件总体结构设计: 用系统结构图描述
** 二、软件数据结构设计: 用数据字典描述**
** **在文档《软件开发要求及需求模型》中,已详细定义了软件中各数据项的属性。这里再补充一下对它们的符号描述:
数据项 | 符号描述 | 说明 |
---|---|---|
Username: 用户名 | 4**{ {字母} [{字母}|{数字}] }**10 | 以字母开头。4~10个字符 |
Password: 密码 | 6**{ [{字母}|{数字}] }**15 | 由字母和数字组成。6~15个字符。 |
ID_××: ××编号 | 1{数字}10 | 1~10位数字 |
Count_××: ××数量 | 1{数字}10 | 1~5位数字 |
Date_××: ××日期 | 4{数字}4 “-” 2{数字}2 “-” 2{数字}2 | “年-月-日”形式 |
Price/Cost/TotalCost | ||
/Money_××/Finance_×× | ||
: 原价/售价/总价/××金 | {数字} ( “.” 0{数字}2 ) | 小数点后最多两位 |
BookName/Publisher | ||
/Author:书名/出版商/作者 | 0{可打印字符}100 | 任何可打印字符 |
PicturePath: 图片路径 | 0{可打印字符}200 | 任何可打印字符 |
Comment: 内容简介 | 0{可打印字符}500 | 任何可打印字符 |
RecomLevel**😗* 推荐程度 | 0~5 |
三、软件图形界面设计: 用GUI设计
(一)购书用户界面
1.购书用户界面概览
** **
2.购书用户登陆/注册界面
(1) 购书用户登陆界面
** (2)购书用户注册界面:**
** A.**
** **
** **
** **
** **
** **
** B.**
** C.**
** **
3.购书用户浏览/检索界面
(1)浏览一本图书信息
** **
(2)检索图书——简单检索
** 检索结果显示:**
** **
(3)检索图书——高级检索
** 检索结果显示:**
** **
** (4)将图书加入收藏夹界面(登陆后才可收藏):**
点击收藏后,显示所收藏的图书:
** **
4.购书用户提交订单界面:
在首页中,点击一本图书的“购买”按钮,可对该书下订单;
在收藏夹中,可对所有收藏的图书下订单:
点击下一步:
点击提交订单:
** **
** (4)软件出错处理设计**
** 可让用户提出反馈信息:**
** 或给我们发邮件,点击上图中的“联系我们”即可。**
** **
** **
(二)管理员界面
1.管理员登陆界面
** **
2.查看管理员使用帮助界面:
本站设计了三种权限的管理员:
u 管理员(最高权限,具有下图中所列的各种权限)
u 添加人员(仅可对图书进行添加、修改和删除,以及管理网友对本站的意见)
u 查看人员(仅可管理图书订单,以及管理网友对本站的意见)
对以上权限的说明如下:
** **
3.图书管理界面:
3.1 添加新图书:
3.2 查看与修改图书库存:
3.3 查看与修改订单:
** **
4.用户管理界面:
4.1 查看用户信息:
4.2 修改管理员信息:
** **
5.网站投票管理界面:
6.网站信息管理界面:
6.1 添加首页新闻:
** **
6.2 新闻修改删除:
6.3 首页公告设置:
** **
6.4 查看意见反馈:
7.网站信息设置界面:
网上购书电子商务系统——
软件详细说明
计02 001500 郭 杰
001485 孔伟桐
001482 王郭明
** **
本文档建立软件实现细节,包括控制机制。
(1)模块接口设计:可用系统结构图(或构件图)描述
1.用户登陆/注册、提交订书单模块
2.销售模块
3.采购模块
4.结算模块
** **
(2)模块主要算法设计:可用PDL(或活动图+顺序图(协作图))
活动图:
1.用户登陆、提交订书单活动图
2.销售系统活动图
3.采购系统活动图
4.结算系统活动图
** **
顺序图:
网上购书电子商务系统——
程序模块测试计划
计02 001500 郭 杰
001482 王郭明
001485 孔伟桐
** **
针对主要模块,从接口上进行检验/查错。(灰盒测试)
** **
u 针对系统结构的控制层次,确定模块测试的顺序和资源
u **确认每一个算法实现的前置条件和后置条件,设计相应测试用例,特别注重非法的输入条件 **
** **
**1. 用户注册/登陆/修改信息模块 **
输入条件 | 模块测试项 |
---|---|
用户登陆 | 4. 能在数据库中正确查找该用户名 (1) |
5. 若存在该用户名且密码正确,应能使用户登陆 (2) | |
6. 若不存在该用户名或密码错误,应能给出错误提示 (3) | |
用户注册 | 1.能在数据库中正确查找该用户名是否已存在 (4) |
2.若用户名不存在,数据库应能正确添加该用户 (5) | |
3.若用户名已存在,应能给出错误提示 (6) | |
用户修改信息 | 数据库相应信息应更新为用户的输入 (7) |
** **
测试用例:
编号 | 测试用例 | 用例覆盖的测试项 |
---|---|---|
1.1 | 用户信息数据库中不存在用户”Jack”, 用该用户名登陆; | |
或存在用户”Jack”,密码为”greatJack”,但用Jack用户名登陆所用密码不是”greatJack”。 | (3) | |
1.2 | 用户信息数据库中还没有用户”Jack”,用“Jack”名注册。 | (4)(5) |
1.3 | 用户信息数据库中已存在用户”Jack”,密码为”greatJack”,用该用户名和密码登陆。 | (1)(2) |
1.4 | 用户信息数据库中已有用户”Jack”,用“Jack”名注册。 | (6) |
1.5 | 用户信息数据库中已存在用户”Jack”,密码为”greatJack”,用该用户名和密码登陆后,修改某些信息,并修改密码为”greatJacky”。 | (7) |
2. 用户选书/提交订单模块
输入条件 | 模块测试项 |
---|---|
用户浏览图书 | 用户浏览到的图书应在库存数据库中有记录 (1) |
用户搜索图书 | 可分类搜索,可按照书名关键字、出版年、作者等进行搜索 (2) |
用户将图书放入购物车 | “购物车”中应正确记录用户”放入”的图书信息 (3) |
用户下订单 | 订单中正确记录用户ID、所购书的书号和购买的数量等信息 (4) |
(以下进入“检查订单子模块”) |
** **
测试用例:(接用例1.5)
编号 | 测试用例 | 用例覆盖的测试项 |
---|---|---|
2.1 | 点击某本书的图片链接。 | (1) |
2.2 | 填写所查内容后点击“立即查询”执行查询; | |
或点击“高级查询”按钮进入高级查询页面,填写所查内容后执行查询。 | (2) | |
2.3 | 点击某本书的“购物车”按钮; | |
或点击某本书的图片链接后,在弹出的页面中点击“放入购物车”按钮。 | (3) | |
2.4 | 点击某本书的“购买”按钮; | |
或点击某本书的图片链接后,在弹出的页面中点击“我要立即购买”按钮。 | (4) |
3. 销售模块
**3.1 检查订单子模块 **
输入条件 | 模块测试项 |
---|---|
用户提交订单 | 在库存数据库中检索订单中图书的存量,看是否能满足订单 (1) |
用户订单不可满足 | (进入“订单不可满足子模块”) |
用户订单可满足 | (进入“订单可满足子模块”) |
** **
** 测试用例:(接用例2.4)**
编号 | 测试用例 | 用例覆盖的测试项 |
---|---|---|
3.1.1 | 对用例2.4中下的订单,在库存数据库中搜索核对,得到核对结果。 (若订单可满足则进入“订单可满足子模块”,否则进入“订单不可满足子模块”) | (1) |
**3.2 订单不可满足子模块 **
输入条件 | 模块测试项 |
---|---|
用户订单不可满足 | 3. 程序应能产生暂存订单 (1) |
4. 程序应能发出订货通知 (2) | |
接到到货通知 | 核对到货通知和暂存订单,判断暂存订单是否可满足 (3) |
暂存订单不可满足 | (进入“订单不可满足子模块”) |
暂存订单可满足 | (进入“订单可满足子模块”) |
** **
** 测试用例:(接用例3.1.1)**
编号 | 测试用例 | 用例覆盖的测试项 |
---|---|---|
3.2.1 | 已判定订单不可满足,程序应得到正确的暂存订单和订货通知。 | (1),(2) |
3.2.2 | (进入“采购模块”,得到“到货通知”) | |
核对到货通知和暂存订单,判断暂存订单是否可满足。 | ||
(若可满足则进入“订单可满足子模块”,否则进入“订单不可满足子模块”) | (3) |
3.3 订单可满足子模块
输入条件 | 模块测试项 |
---|---|
用户订单可满足 | 程序产生发货票(也是收款单) (1) |
用户购书 | 1.图书库存数据库中,修改库存数量 (2) |
2.图书库存数据库中,修改图书销售历史和推荐程度 (3) | |
3.用户信息数据库中,增加用户经验值 (4) | |
4.收款单为有效 (5) |
** **
** 测试用例:(接用例3.1.1或用例3.2.2)**
编号 | 测试用例 | 用例覆盖的测试项 |
---|---|---|
3.3.1 | 已判定订单可满足,程序应得到正确的发货票。 | (1) |
3.3.2 | 假设用户购书,得到了有效收款单,程序应对相应数据库做出相应更新。 | (2)(3)(4)(5) |
4. 采购模块
输入条件 | 模块测试项 |
---|---|
接到订货通知 | 程序进行分类合计,产生订货单(发给厂商) (1) |
接到厂方发货单 | 程序核对发货单和原订单 (2) |
发货单核对正确 | 4. 图书库存数据库中,对库存数量等作相应修改 (3) |
5. 程序发出到货通知 (4) | |
6. 程序产生付款单,厂商确认后付款单为有效 (5) |
** **
测试用例:(接用例3.2.2)
编号 | 测试用例 | 用例覆盖的测试项 |
---|---|---|
4.1 | 根据订单,程序进行分类合计,应产生订货单(并假设发给了厂商) | (1) |
4.2 | 自制“厂方发货单”,程序核对发货单和原订单,得到核对结果。 | (2) |
4.3 | 假设核对正确,程序应对相应数据库做出相应更新,并产生付款单。 | (3)(4)(5) |
**5. 结算模块 **
输入条件 | 模块测试项 |
---|---|
有效的收款单 | 应收款明细帐数据库作相应修改 (1) |
有效的付款单 | 应付款明细帐数据库作相应修改 (2) |
定期(或实时)结算 | 汇总应收款明细帐和应付款明细帐,更新总帐数据库 (3) |
** **
测试用例:(接用例3.3.2或用例4.3)
编号 | 测试用例 | 用例覆盖的测试项 |
---|---|---|
5.1 | 根据有效收款单,更新应收款明细帐数据库 | (1) |
5.2 | 根据有效付款单,更新应付款明细帐数据库 | (2) |
5.3 | 根据应收款明细帐和应付款明细帐,更新总帐 | (3) |
网上购书电子商务系统——
用户手册
计02 001485 孔伟桐
001500 郭 杰
001482 王郭明
1 引言
1.1 编写目的
编写该用户手册的目的是:
(1) 使得人们了解、熟悉我们的这个软件;
(2) 使得购买、使用我们软件的人懂得怎样使用我们的软件;
(3) 使得通过该购书系统进行网上购书的用户懂得如何进行购书。
该用户手册适用于购买和使用该软件的人,也适用于利用该软件进行网上购书的用户,更一般地,使用于所有想了解该软件的人。
1.2 背景
该软件名称是“网上购书电子商务系统”,通过此软件所建立起来的网站,主要有两个方面的功能:一是对网站的访问者来说,他们可以在该网站上浏览找书、订书购书;二是对网站的管理员来说,他们可以对网站的库存、用户信息、网站信息等进行管理。
该软件项目由清华大学计算机系计02班郭杰、王郭明和孔伟桐三人首先提出,并共同开发研制而成。该软件首先在清华大学紫荆公寓2#106B安装成功。
2 用途
2.1 功能
本软件系统功能强大,具有很大的灵活性。具体功能如下:
u 对利用该系统进行购书的用户:
2.1.1 登陆/注册:
此处对用户名、密码的构成和长度有一定限制,请注意网页上的提示。
2.1.2 浏览/检索
(1)浏览图书信息
单击图书图片(或图书名等,带链接即可),可以查看图书详细信息。
(2)检索图书——简单检索
页面右上角的“立即查询”可根据所查字段、关键字进行图书查询:
(3)检索图书——高级检索
高级查询可根据 关键字、查找字段、价格范围、图书分类 进行检索:
上图的检索结果如下:
(4)将图书加入收藏夹(登陆后才可收藏):
点击收藏后,显示所收藏的图书(最多只能收藏10种):
2.1.3 购书用户提交订单:
在首页中,点击一本图书的“购买”按钮,可对该书下订单;
在收藏夹中,可对所有收藏的图书下订单:
按照页面提示即可完成订书过程。
2.1.4 用户反馈:
用户可对网站进行“意见反馈”,可选的反馈类型有:简单意见、对网站的意见、产品投诉和服务投诉。,如下图所示:
或给我们发邮件,点击上图中的“联系我们”即可。
u 对购买、使用该软件系统的用户(即管理员):
2.1.5 管理员登陆:
在http://localhost/admin.asp登陆。
2.1.6 查看管理员使用帮助界面:
本站设计了三种权限的管理员:
u 管理员(最高权限,具有下图中所列的各种权限)
u 添加人员(仅可对图书进行添加、修改和删除,以及管理网友对本站的意见)
u 查看人员(仅可管理图书订单,以及管理网友对本站的意见)
对以上权限的说明如下:
2.1.7 图书管理:
(1)添加新图书:
(2) 查看与修改图书库存:
可查看、修改和删除库存图书信息。
(3) 查看与修改订单:
2.1.8 用户管理:
(1)查看用户信息:
(2) 修改管理员信息:
2.1.9 网站投票管理:
可修改、删除现有投票项,可添加新投票项:
2.1.10 网站信息管理:
主要管理网站的如下信息:
(1)添加首页新闻
(2)新闻修改删除
(3)首页公告设置
(4)查看意见反馈
2.1.11 网站信息设置:
2.2 时间特性:
该系统能够提供页面所执行的精确时间,各页面打开后即可查看其加载时间,一般为10~100ms。第一次连接网站可能耗时较长,若浏览器支持cache,则连接几次之后访问速度会很快。
2.3 安全保密
本软件通过对用户的密码、密码提问和回答进行MD5不可逆加密,保证用户的任何个人私隐不会泄漏;并保证用户的资料不会被除超级管理员之外的人修改。
3 运行环境
3.1 硬设备
运行本软件对硬设备需求较小,主要需要一台机器充当服务器,该服务器要求:600M以上主频的CPU,128M以上的内存,足够的硬盘空间——2G以上(以存储数据库)。另外,还要求该服务器必须是联网的,以处理用户的网上订书、购书。
利用该软件进行订书、购书的用户需要通过联网来进行操作。
3.2 支持软件
该软件在Windows操作系统(98,2000,xp等)上运行。要使用我们的软件在自己的机器上建立网站,首先请安装MS Internet Information Server(IIS),这是WINDOWS NT 提供的INTERNET服务的核心,NT的安装光盘上有。
软件源码为asp文件,若要修改源码建议使用MultiMedia DreamWeaver。数据库使用的是Microsoft Access。
3.3 数据结构
该软件运行时需要用到一部分数据库文件,以及大量的ASP文件。这些文件都必须放在服务器上。
4 使用过程
4.1 安装与初始化
安装该软件以建立网站的步骤如下:
1) 首先安装Internet Information Server(IIS)。安装过程是一个微软通常所用的向导方式。 你唯一要作的决定就是你要把软件安装在那里,和你要安装那些组件。
2) 然后在“控制面板”中打开“IIS Manager”,右键点击左部TreeView中的“Web Sites”项,选择“New”->“Web Site…”,即可创建一个新的站点:
在创建过程中,注意选择站点的目录为源程序所在的目录。
3)创建完毕后,可设置站点的名称、主页、IP地址等属性:
**4.2 输入:**我们针对一般的用户(即利用该软件进行网上订书、购书的人)、以及管理员,规定不同的规定输入数据和参量。
对一般用户:
输入条件 | 有效输入 | |
---|---|---|
用户名:username | 字符组成 | 字母或数字 |
字符数 | 4~10个 | |
密码:Password | 字符组成 | 字母或数字 |
字符数 | 6~15个 |
对管理员:
输入条件 | 有效输入 | |
---|---|---|
用户名:username | 字符组成 | 字母或数字 |
字符数 | 4~10个 | |
密码:Password | 字符组成 | 字母或数字 |
字符数 | 6~15个 | |
××编号/××数量: | ||
ID_××/Count_×× | 字符组成 | 数字 |
位数 | 1~10位 | |
××日期:Date_×× | 字符组成 | 四位数字 “-” 两位数字 “-” 两位数字 |
月部分数值 | 在1~12之间 | |
日部分数值 | 在1~31之间 | |
原价/售价/总价/×金: | ||
Price/Cost/TotalCost/Money_×× | ||
/Finance_×× | 字符组成 | 数字("."数字) |
小数点后位数 | 0~2位 | |
书名/出版商/作者: | ||
BookName/Publisher/Author | 字符数 | 0~100 |
图片路径: PicturePath | 字符数 | 0~200 |
内容简介: Comment | 字符数 | 0~500 |
推荐程度: RecomLevel | 字符组成 | 数字 |
数值 | 0~5 |
4.3 输出
对于用户的每一个输入,我们都会提供一个输出来进行响应,如:
当用户输入正确的用户名和密码后,系统会输出用户已登陆的信息;而当用户输入的用户名或密码不正确的时候,系统则会输出登陆失败的相应信息。
当用户确认下订单后,系统输出相应的订单,其订单的内容包括:订单号,图书列表,收货人姓名,收货地址,联系电话,电子邮件,下订单人的留言,下单日期等,以下是一个订单的输出:
** **
** **
4.4 用户的具体购物过程:
1).注册与登陆 如果您是第一次登录精品购书网的主页(jay.net9.org),或者您还没有在精品购书网注册属于自己的帐号,那么精品购书网建议您注册一个属于自己帐号,这样您才能够购买自己想要的书,并且可以享受精品购书网提供给您的各种优惠。
2).查找您想要的图书 您可以自己去浏览以查找想要的图书。如果您觉得这样比较费劲,那么您还可以利用关键字搜索的方式,找到自己想要的书。我们为您提供了立即查询和高级查询两种方式。
在立即查询方式中,您可以选择“书名”、“出版社”、“作者”或“内容简介”作为查询线索,并输入相应的关键字,我们将会进行模糊查询,将所有符合查询条件的书列出。在高级查询中,您可以提供更多的查询线索,包括设定价格范围、图书类别。比如说,您可以设定价格范围为100元以下、图书类别为Novel进行查询,那么,我们将能为您列出所有价格在100元以下的小说类的图书。单击其中一本书的图书名称,您就可以进入到这本书的介绍页面,以便更详细的了解该图书,包括其作者、出版社、版本、页数、市场价、会员价、推荐度和内容简介等等。
3).选购图书与提交订单 您首先需要登陆,才能够选购图书并提交订单。 如果您只想购买一本书,那么,您在找到这本书之后就可以马上下订单了。单击图书介绍页面右侧的“我要立即购买”按钮,将会弹出一个名为“我要下订单”的对话框。在第一步中,您需要设定购买该图书的数量,您同时会看到相应的花费金额,当您确认后,单击“下一步”;在第二步中,您需要填写收货人的姓名性别、地址、电话、电邮,并可以留下简短的留言。填写完毕后,您就可以提交订单了。如果订单提交成功,您将会看到一个消息窗口,它告诉你订单成功提交,以及显示出该订单的订单号、购书列表和收获人的信息。 如果您想要购买若干本不同的图书,那么,我们建议您首先将每一本书放入到收藏夹,等您选购完了所有想要的图书,您再去下订单。具体的方法是:对于您要购买的每一本图书,进入该图书的介绍页面,单击右侧的“放入我的收藏夹”按钮,将会弹出一个名为“我的收藏夹”的对话框,它会列出当前收藏夹内的所有图书,然后,单击“继续采购”按钮,关闭该对话框。直到您将最后一本书放入收藏夹后,单击“我的收藏夹”对话框中的“去下订单”按钮,然后,按照前面一段所述的步骤去下订单即可。
4.5 文卷查询
而为了适应用户的不同需求,我们提供两种不同的查询,一种是立即查询,另一种是高级查询,其中高级查询的功能比立即查询更为强大。
具体查询过程在4。4的(2)中已经说明。
** **
4.6 出错处理和恢复
为了向用户征求意见,我们的软件能够让用户在发现软件的不足与漏洞时,向我们进行反馈(“反馈意见”或“联系我们”即有链接)。