1.引言
1.1编写目的
本说明书是在充分理解系统需求分析基础上,为后续工作准备的。本手册将进行技术评审和技术的可行性检查,它是详细设计和编码的重要根据,为下一步的详细设计说明提供框架同时也是用户进行交流的文档之一。软件开发小组的每一位参与开发成员应该阅读本说明,以清楚产品在技术方面的要求和实现策略。预期的读者为系统的开发者、使用者和指导老师。
1.2背景
说明:
(1)开发软件系统的名称:网上商城购物系统;
(2)任务提出者:XX;
(3)开发者:计算机科学与技术的小组成员xx;
(4)用户:XX;
(5)本系统将使用SQLServer2000作为数据库存储系统。
1.3定义
(1) Asp(active server pages)是微软公司推出的一种用以取代CGI的技术,基于目前绝大多数网站应用于windows平台,asp是一个位于windows服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式的web服务器应用程序以及EDI(电子数据交换);
(2)ADO:ActiveX Data Object, ActiveX 数据对象;
(3)SQL:Structured Query Language。
1.4参考资料
1、《ASP程序设计及应用》 张景峰主编 第011903号 中国水利水电出版社 2009.1
2、《数据库原理及其教程(第三版)》 黄德才主编 第088716号 科学出版社 2010.6
3、《ASP+SQL Server动态网站开发从基础到实践》 杨世锡,赵辉编著 第377507号 电子工业出版社 2005
4、《ASP+SQL Server项目开发实践》 黄雷编著 第38854号 中国铁道出版社 2006
5、《Dreamweaver 8与ASP动态网站开发自学导航》 戎马工作室编著 第298301号 机械工业出版社 2006
6、《ASP实务经典》 林金霖编著 [M].北京:中国铁道出版社,2001,209
7、《ASP编程基础与实例》丁贵广编著 [M].北京:机械工业出版社,2002,51
2.总体设计
2.1需求规定
[说明对本系统的主要的输入输出项目、处理的功能性能要求。包括]
2.1.1系统功能
A、客户功能
(1)浏览商品信息:任何用户都可以浏览商品信息,课通过商品分类信息查找或者通过搜索栏直接模糊搜索查找相关商品。如有意购买这就必须先注册填写个人信息,然后登陆。
(2)注册:用户必须认真填写个人信息以确保信息正确无误。
(3)登录:登录后的用户可以查看和修改自己的信息。
(4)购物:登录后的用户可以购买自己感兴趣的图书,先加入购物车,然后确定订单。
B、管理员功能
(1)管理员注册:管理员注册直接通过数据库用户添加。
(2)管理员登录:若数据库的管理员信息表中存在此用户、密码正确,此时系统就转入后台管理界面。
(3)管理员登录后可进行注册用户信息进行查询和对自己的信息进行增删改操作,主要负责保持数据库中商品存量与实际库存量保持一致,商品来两不够时采取相应措施。另外还要负责数据库的各种安全性和完整性维护。
2.1.2系统性能
2.1.2.1精度
(1)在执行数据增加(例如向数据库增加新的任务)的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数据。
(2)在执行数据删除操作的时候,不允许因为程序的原因发生多删除数据、删除失败的情况。
(3)数据的修改也要保持对应的准确性。
2.1.2.2时间特性要求
(1)系统的更新处理时间应该在可接受的范围内;
(2)系统的数据查询时间应该在可接受的范围内;
(3)系统的数据统计时间应该在可接受的范围内。
2.1.2.4可靠性
本系统在一定的时间内的实际应用率是比较可靠的。
2.1.2.5灵活性
(1)操作方式上应该能够满足鼠标和键盘任意切换的需要;
(2)能够支持Windows95、Windows98、Windows2000、Windows Me和Windows XP的运行环境;
2.1.3输入输出要求
(1)输入项:系统要求的用户注册信息、用户名、密码、商品搜索窗口、订单信息。
(2)输出项:注册页面、登陆界面、商品分类信息、商品查询信息、订单确认信息。
2.1.4数据管理能力要求
由于企业对人员的历史资料进行永久保存,再加上企业调进或调出人员频繁,因此对数据的存储有一定的要求;要求提供数据的备份功能。
2.1.5故障处理要求
(1) 在用户输入一些不合理的数据时候,能够进行一些合理的提示信息,不能因为输入错误而导致系统的错误,或者程序停止运行;
(2)程序运行时,对服务器和网络通信的故障能够识别并提示,当故障排除后,程序恢复正常运行;
(3)数据库要求有灾难备份机制,以防止数据的全部丢失。
2.1.6其他专门要求
(1)本系统是涉及到买卖双方的交易,因此系统要保证数据的一致性,完整性,准确性的要求要达到99%左右;
(2)本系统是提供给需要建立自己的网上商城的中小企业和网络用户使用,要求操作界面简单方便;
(3)由于本系统是基于Internet网络的,因此安全保密性要更高。
2.2运行环境
[简要地说明对本系统的运行环境的规定。]
2.2.1设备
运行本软件要iquchuliqi在奔腾III以上、内存在256MB以上的计算机。
2.2.2支持软件
(1)本系统只是的操作系统包括:Windows95、Windows98、Windows2000、Windows Me和Windows XP。
(2)本系统支持的数据库:SQL Server 2000。
(3)本系统的开发工具:ASP。
2.2.3接口
不适用。
2.2.4控制
本系统通过“用户验证”模块进行用户登录的控制,根据不同用户的权限调用不同的模块。
2.3基本设计概念和处理流程
2.4结构
2.5功能需求与系统模块的关系
[本条用一张矩阵图说明各项功能需求的实现同各模块的分配关系。]
所得到的
程序
模块
| 功能实现 | 注册用户管理 | 购物车功能 | 订单查询功能 | 推荐商品 | 图书分类列表 | 商品搜索 | 用户登录注册 | 订单管理 | 商品管理 |
| 用户注册 | |||||||||
| 用户登录 | |||||||||
| 用户修改信息 | |||||||||
| 商品查询 | |||||||||
| 在线购物 | |||||||||
| 商品显示 | |||||||||
| 图书管理 | |||||||||
| 订单管理 |
定期备份数据库,维护数据库的完整性、一致性。
2.7尚未解决的问题
如何处理用户在购买商品后的金钱支付交易以及确保交易的安全性。
3.接口设计
3.1用户接口
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到页面的布局,应突出地显示重要以及出错信息。在设计语言上,已决定使用ASP开发程序。本系统提供可视化的操作方式,不提供命令控制语句进行输入控制,从而用户只需要使用鼠标进行命令操作,使用键盘输入系统接受的参数。
总的来说,系统的用户界面应做到可靠性、简单性、易学习和使用。
3.2外部接口
(1)软件接口:服务器程序可使用ASP提供的对SQL SERVER的接口,进行对数据库的所有访问;服务器程序上可使用SQL SERVER的对数据库的备份命令,以做到对数据的保存。
(2)再输入方面,对于键盘、鼠标的输入,可用标准的输入输出,输入进行处理;在输出方面,显示器的连接及使用,也可用标准的输入输出对其进行处理 。
3.3内部接口
内部接口方面,采用共有类的一些方法对外接口,供各模块使用。各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。结构传递的信息将是以数据结构封装的数据,以参数传递或返回值的形式在各模块间传输。
4.运行设计
4.1运行模块组合
网上购物商城程序在有输入时启动接受数据模块,通过各模块之间的调用,读入并对输入进行格式化。在接收数据模块得到充分的数据时,将调用网络传输模块,将数据通过网络送到服务器,并等待接受服务器的返回信息。接收到返回信息后随即调用数据输出模块,对信息进行处理,产生相应的输出。
服务器程序的接受网络数据模块必须始终处于活动状态。接受到数据后,调用数据处理、查询模块对数据库进行访问,完成后调用网络发送模块,将信息返回客户机上。
4.2运行控制
运行控制严格按照各模块间函数调用关系来实现。在各事务中心模块中,需对运行控制进行正确的判断,选择正确的运行控制路径。
在网络传输方面,客户机在发送数据后,将等待服务器的确认收到信号,收到后,再次等待服务器发送回答数据,然后对数据进行确认。服务器在接收到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。
4.3运行时间
在软件的需求分析中,对运行时间的要求必须对作出的操作有较快的反应。所以应该尽量减少数据在网络传输上的开销。其次是服务器性能,这将影响对数据库访问时间即操作时间的长短,影响加大客户机操作的等待时间,所以必须使用IIS的高性能服务器。硬件对本系统的速度影响将会大于软件的影响。
5.系统数据结构设计
[不涉及软件设计可不包含]
5.1逻辑结构设计要点
(1)建立数据库的视图表格,参考下面的物理结构设计。
(2)系统用户信息管理:
(3)前台购物流程管理:
(4)订单处理:
5.2物理结构设计要点
| 管理员表Admin结构 | |||
| 字段名称 | 数据结构 | 是否为空 | 字段说明 |
| AdminId | varchar(20) | 否 | 用户名(PK) |
| PassWD | varchar(20) | 是 | 密码 |
| Name | varchar(50) | 是 | 用户姓名 |
| 用户信息表Users的结构 | |||
| 字段名称 | 数据结构 | 是否为空 | 字段说明 |
| UserId | varchar(20) | 否 | 用户名(PK) |
| Pwd | varchar(20) | 是 | 用户密码 |
| UserName | varchar(50) | 是 | 用户姓名 |
| Sex | bit | 是 | 性别 |
| Address | varchar(1000) | 是 | 地址 |
| varchar(50) | 是 | 电子邮件地址 | |
| Telephone | varchar(100) | 是 | 固定电话 |
| Mobile | varchar(50) | 是 | 移动电话 |
| 公告信息表Board的结构 | |||||
| 字段名称 | 数据结构 | 是否为空 | 字段说明 | ||
| Id | int | 否 | 公告编号的标识 | ||
| Tile | varchar(50) | 是 | 公告题目 | ||
| Content | varchat(1000) | 是 | 公告内容 | ||
| PostTime | datatime | 是 | 提交时间 | ||
| Poster | varchar(20) | 是 | 提交人 | ||
| 商品类别表GoodsType的结构 | |||||
| 字段名称 | 数据结构 | 是否为空 | 字段说明 | ||
| Id | int | 否 | 分类表号的标识 | ||
| Type | varchar(50) | 是 | 分类名称 | ||
| 商品信息表Goods的结构 | |||||
| 字段名称 | 数据结构 | 是否为空 | 字段说明 | ||
| Id | int | 否 | 商品编号的标识 | ||
| TypeId | int | 是 | 商品类别 | ||
| Name | varchar(50) | 是 | 商品名称 | ||
| AN_Number | varchar(50) | 是 | 商品序列号 | ||
| Producer | varchar(50) | 是 | 生产厂家 | ||
| Package | varchar(50) | 是 | 包装类型 | ||
| SalePrice | float | 是 | 销售价格 | ||
| StorePrice | float | 是 | 进货价格 | ||
| Content | varchar(1000) | 是 | 商品简介 | ||
| ReadCount | int | 是 | 阅读次数 | ||
| BuyCount | int | 是 | 销售数量 | ||
| ImageFile | varchar(50) | 是 | 图片文件 | ||
| 购物车表Basket的结构 | |||||
| 字段名称 | 数据结构 | 是否为空 | 字段说明 | ||
| Id | int | 否 | 编号的标识 | ||
| UserId | varchar(20) | 是 | 用户名 | ||
| GoodsId | int | 是 | 商品编号 | ||
| OrderTime | datetime | 是 | 订购时间 | ||
| OrderCount | smallint | 是 | 订购数量 | ||
| SalePrice | float | 是 | 销售价格 | ||
| UserChecked | tinyint | 是 | 用户确认(0-用户订购;1-送至收银台;2-提交订购) | ||
| OrderNumber | varchar(50) | 是 | 订单号 | ||
| PostTime | datetime | 是 | 提交时间 | ||
| AdminChecked | tinyint | 是 | 管理员确认(0-没有提交;1-用户提交;2-处理;3-发货;4-结账) | ||
| 客户投诉表Complain的结构 | |||||
| 字段名称 | 数据结构 | 是否为空 | 字段说明 | ||
| Id | int | 否 | 投诉编号标识 | ||
| PostTime | datetime | 是 | 投诉时间 | ||
| UserId | varchar(20) | 是 | 用户名 | ||
| OrderNumber | varchar(50) | 是 | 订单号 | ||
| Content | varchar(1000) | 是 | 投诉内容 | ||
| Result | varchar(1000) | 是 | 处理结果 | ||
| Flat | bit | 是 | 处理标志(0-未处理;1-已处理) | ||
(1)程序对商品,供货商,订单进行操作时,需要对网上商品库存数据库结构,也就是对数据表进行查询和修改。
(2)程序对各用户进行提示注册,对数据库中未存的用户进行约束。
6.系统出错处理设计
6.1出错信息
| 类别 | 发生情况 | 系统输出信息 | 处理方法 |
用户注册 | 用户注册的用户名已经存在 | 在注册单上输出“该用户已经存在”提示 | 返回注册页面,用户更改用户注册名 |
| 用户没有将必要的注册信息填写完成(标有“*”处为必填项) | 输出“请填写完整的注册资料”提示 | 返回注册页面,用户要将个人信息填写完整 | |
用户登录 | 用户输入的用户名不存在 | 输出“该用户名不存在或者密码错误”提示 | 返回登录页面,用户重新输入登录用户名和登录密码 |
| 用户输入的用户密码不正确 | 输出“该用户名不存在或者密码错误”提示 | 返回登录页面,用户重新输入登录用户名和登录密码 | |
购物车 | 想加入购物车的书籍库存量为0 | 输出“抱歉,当前该书籍没有库存”提示 | 返回上一页面 |
| 去结算中心时购物车内没有物品 | 输出“购物车内没有物品,无法生成订单,请选定书籍”提示 | 停留在购物车页面 | |
| 想要购买的书籍超过库存 | 输出“抱歉,购买的书籍超过库存”提示 | 该种书籍数量设置为1 | |
| 用户信息修改 | 用户没的将必要的用户信息填写完整 | 输出“请写完成必要的用户信息”提示 | 停留在修改页面,用户将个人必要的信息填写完整 |
| 未登录 | 未登录用户试图进入购物车、账户中心 | 输出“请先登录”提示 | 返回登录页面 |
| 用户名密码修改 | 用户提供错误的当前密码 | 输出“请当前密码不匹配,请重新输入”提示 | 返回用户密码修改页面 |
| 用户未提供新密码 | 输出“当前未输入密码,请指定新密码”提示 | 返回用户密码修改页面 | |
| 用户两次输入新密码不匹配 | 输出“请输入新密码确保两次密码匹配”提示 | 返回用户密码修改页面 | |
| 个人订单处理 | 确认订单时所有必须选项(标有“*”的地方为必填项)必须详细填写完整 | 输出“订单信息不完整,请重新填写”提示 | 返回添加书籍页面 |
| 添加新的管理员 | 新添加的管理员名已经存在 | 输出“该管理员以及存在,请重新填写管理员名称”提示 | 返回添加新管理员页面 |
| 没有填写完整的必要信息 | 输出“请当前密码不匹配,请重新输入”提示 | 返回添加新管理员页面 |
当数据库遭到损坏如用户非法使用数据库、硬盘损坏、病毒入侵等。可以通过下面方法进行补救:
1、定期维护数据库,根据信息更新修改数据库信息,保持数据库最近最新。可使用SQL SERVER的数据库维护功能机制。如根据事务日志文件和数据库备份机制以及回滚机制进行数据库的维护。
2、使用降效技术:将磁盘组成镜像磁盘阵列(RAID阵列,其原理就是将一块硬盘的数据以相同位置指向另一块硬盘的位置。RAID1磁盘阵列又称为Mirror或Mirroring(镜像),
因为它就是将一块硬盘的内容完全复制到另一块硬盘上)提供最高的可靠性。当主硬盘崩溃时,镜像硬盘可以暂时代替主硬盘运行工作。
6.3系统维护设计
必须按照软件产品设计的步骤进行开发,并充分考虑可维护性,详细编写各阶段的文档资料,以利于移植或二次开发。
定期维护数据库,根据信息更新数据库信息,保持数据最近最新。可使用SQL SERVER的数据库维护功能机制。例如,定期为数据进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。
详细书写《项目开发计划书》和《需求规格说明书》,有利于系统的维护。通常通过改正性维护,适应性维护,完善性维护,完善性维护,预防性维护4种维护活动来完成系统维护。
由于初次开发系统,开发小组经验较少,因此没有采用外加维护模块。因为维护工作比较简单,仅靠数据库的一些基础维护即可。但便于维护,应该设置三种日志:系统运行日志、操作日志、出错日志。下载本文