第一篇:网上书店项目设计书
开卷有益网上书店项目设计书
开卷有益 网上书店项目设计书
课程名称网站规划建设与管理维护
专业 班级 提交人
2013年9月29日 开卷有益网上书店项目设计书
开卷有益网上书店项目设计书
一、项目概述:
1.1项目名称:开卷有益网上书店项目设计书。
1.2项目背景:随着Internet的迅速发展,当今电子商务已接被广大的互联网 用户所接受,网购的火爆程度有目共睹。网上书店作为其中的一部分也有了迅速的发展。为了方便广大用户因为所在地区的原因,造成“有书没人买,有人没书买”的现象,充分利用现代信息化、因特网的优势,建立网上书店系统,实施把书店“搬”到网上的方案。就网上书店而言,由于网络已经覆盖全球,信息量大而独具优势。国内著名的两大书店,当当网与卓越网,他们售书的理念很简单,读者可以自己寻找自己喜爱的书,对于读者来说,无需为寻找一本自己想要的书好奔波于城市的各个角落,无需因为时间问题而错过了新书的首发式,或者因为时间问题而去不了书店,网上书店系统,只需你有一台可以连上互联网的电脑,就可以按照自己的兴趣检索到自己想要的书本。对于那些没有时间经常去传统书店或其住所离传统书店较远的读者来说,具有实际意义。因此网上售书必将有长足的发展。本系统的主要目的是实现图书的在线销售,包括管理库房中的图书,以及管理用户的购物车,从而实现书籍预订、结账、查看订单等一系列功能,实现书店和用户双赢的局面。
1.3项目目标:实现网上书店系统的基本功能,包括两大部分:用户客户端和管 理员服务器端。用户客户端完成会员的注册(包括登录名、密码、真实姓名、收货地址、联系方式等信息的填写),登录(登录后会员可查看自己的账户信 息,对个人信息的修改,查看订单状态,与客服人员的在线交流,对书籍和 服务进行评价);图书浏览(可以使用搜索引擎或其他方式查找到自己喜爱的 图书)、预订(如果想要购买的图书目前暂时缺货,可以预订图书,图书到货 后,管理员向会员发出到货信息,以便会员购买)、购买(购买图书)、留言 簿(与在线客服的交流以及评价图书及服务)等一系列购书功能。管理员服 务器端完成对图书、会员的各种信息的管理(包括书目的增删改,库存信息 的管理及会员订单的处理等)。
1.4项目内容:开卷有益网上书店采用现有的各种网络技术,构建一个拥有全面 书籍的多级查询、选择、订购的网上销售系统,为顾客提供方便、快捷、安 全的网上购物环境。
1.5项目的投资规模和建设周期:项目建设预计投入30万元,用于平台搭建、软硬件资源的购买、技术支持及管理和人员的费用,项目建设周期约需要5 个月。
1.6项目的收益:建设网上书店将取得以下几方面收益:
a.网上销售带来的业务量的增加:预计从网站运营起半年内书店销售收入增
长7%,二年内销售收入增长88%。
b.网上销售带来的成本节约:预计书本销售成本可以减少15%~33%。
c.品牌增值带来的收益:网上书店的运作将扩大“开卷有益”的知名度,提升 “开卷有益”品牌,最终使开卷有益书店成为全国地区有影响力的网上书店 开卷有益网上书店项目设计书
企业。
二、项目可行性分析:
2.1网上书店设计: 会员(注册用户):通过填写个人信息,经过系统认证的用户,完成每个用户的书籍预订、购书、查看订单、留言簿等功能。
管理员:有权对图书的信息进行录入、修改、删除等功能;进行图书的入库、出库、盘点,系统出错或有需要时,人工进行用户汇款信息录入、修改、删除等功能;查看、删除、回复会员的留言;管理图书的销售等一系列信息。订单:用户为购买货物而填写的关于书目、送货地址、付款方式等信息的表单;订单可以有几种状态:1)订单生成在审核中2)订单通过审核,正在配货3)订单中的货物已发货,但用户未接收4)订单配送完成5)在15天退换货的阶段6)用户收货15天后,没有退换货,交易完成。
客户端:会员完成图书浏览、搜索、预订、购书、查看订单、评论留言等一系列过程的平台。后台管理系统:管理员通过用户名和密码的验证后,管理有关图书的订单、库存、销售,会员的管理,评论留言的管理等的信息的平台。2.2产品目标与范围
网上书店系统是一个中小型的电子商务系统,可以为各类用户提供方便的在线买书环境,要符合目前国内流行的电子商务模式——B/S架构,三层运行模式,同时适用于Intranet/Internet。浏览器为第一层,作为系统的应用界面;应用逻辑服务为第二层;数据链接为第三层,作为系统的数据存取服务。用户可以在系统中实现注册、浏览图书、搜索查询图书、预订图书、下定单、付款、确认收货等功能,登录该网站后,先进行注册,在会员登录并且购得图书后,提交购书单给图书管理员,并同时将费用通过网上银行、电汇、邮寄或货到付款的方式交付到图书管理员处。图书管理员进货后,整理归类,并将书目信息发布到网上,管理员通过用户管理、订单管理、图书管理、销售管理、库存管理等管理功能来对系统进行维护更新。2.3假设与约束
为了使网上书店获得更好的安全性、扩展性和更高的执行效能,整个系统采取分布式部署的方案,将承载关键业务逻辑的应用程序服务器(或应用程序服务器集群)和承载业务数据的数据库服务(或数据库服务器集群)隔离开来。实现管理与数据的分离,便于管理和维护。
网上书店面向全球互联网用户,进行相关交易前必须注册为本网站平台会员,才能拥有相应权限。应用本平台必须保证电脑或其它访问本平台的软件有杀毒防毒能力,对于因客户中毒而产生的交易损失本平台不负任何责任。平台用户应妥善保管好个人密码,不要将密码泄露给它人,一旦发现丢失或被盗,需尽快提供相关证明交于客服人员进行相关账户冻结与资料的修改。2.4项目工作范围
项目规划,计划分为两部分:客户端和服务器端
客户端部分:用户注册及用户信息修改;站内搜索引擎;书籍浏览;书籍预订;购书;查看定单;查看购买历史;留言簿;服务器端;
图书库信息维护:图书数据录入、修改、删除等功能; 开卷有益网上书店项目设计书
图书库管理:入库、出库、盘点;
用户汇款管理:用户汇款信息录入、修改、删除等功能; 图书销售管理:销售日报、月报,销售排行榜,TOP10; 管理留言簿:查看,回复,删除 2.5 应交付成果 2.5.1 需完成的软件 程序的名称:网上书店系统、编程语言:C++、支撑系统的数据库:SQL SERVER 2008。2.5.2需提交用户的文档:《网上书店项目计划书》、《网上书店需求规格说明书》、《网上书店概要设计说明书》、《网上书店详细设计说明书》、《测试分析报告》、《用户手册》
2.6 项目开发环境:操作系统:windows
7、开发工具:visual studio 2010 数据库系统:SQL SERVER 2008、硬件配置:Intel core2 T6500、内存2G、320G硬盘
三、项目团队组织:
3.1 组织结构
所需角色:项目经理、计划经理、系统分析员、构架设计师、设计员 组织结构:
四、项目总体规划:
4.1网站目标定位:开卷有益书店的主要业务室销售书籍,定位于热爱阅读的广大人群,为他们提供方便、时尚的订购服务。
4.2网站商务规划:
(1)商务模式:开卷有益书店的商务对象以普通消费者为主,主要采用网上商店+连锁经营的B2C电子商务模式。
(2)主要业务流程:顾客选择要购买的书籍——下订单——支付货款——网
站把订单通知物流部门——物流部门配送——通知顾客开卷有益网上书店项目设计书
配送成功。
图1: 开卷有益网上书店的业务流程
(3)赢利方式:开卷有益书店主要通过在线销售书籍,争取更多的交易机会、扩大销售量,从而增加书店的收入。此外,根据顾客的订单按需进货可大大降低书籍的库存,节约成本,提高书店的综合效益。
五、支持条件:
5.1用户界面
人性化界面,全新感觉,操作简便,一目了然,视图优美等特点。并且采用菜单界面驱动方式,给操作用户带来了极大的便利。
5.2硬件接口
本软件不需要特定的硬件或硬件接口进行支撑。586以上PC机均可运行此软件。
5.3软件接口
运行于Windows2000及更高版本的操作系统之上。
5.4故障处理
正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。调试中遇到的问题及解决的方案:
1)遇到跳出“数据库已经关闭”提示信息阻止程序运行时
可以查看一下进行此项操作时,操作的表是否已经被关闭了或者是在没有关闭此表的情况下又一次运用打开语句打开此表。2)关于空记录带来的麻烦
有些空记录往往会使程序无法运行。此时你可用“if not isnull”语句先判断一下是否为空记录,再操作。
六、预算: 开卷有益网上书店项目设计书
设备成本包括:1台主流计算机 大约3500元
七、关键问题:
因为开发人员目前还在学习阶段,开发过程会比较缓慢,因此时间是最大的风险,不能完全投入到开发工作中,不可避免会有设计上的不足和缺陷。程序的调试是最大的困难。
八、专题策划要点:
重点在于各种相关文档的编写,这些文档质量的好坏,决定了日后软件的开发速度、可执行性、可维护性。
第二篇:网上书店项目概述(范文)
网上书店项目概述
网上购书系统由3部分组成:用户管理、购书网站和订单处理中心。其中,用户管理负责用户注册及用户登陆;购书网站是一个Web应用程序,用户可以通过Web浏览器登录到此网站,在此网站,用户可以搜索要找的书,察看书的详细信息并购书;订单处理中心用来管理购物网站转过来的订单。
用户管理主要包括一下功能: 注册用户信息
1)对于新用户,单击“注册”按钮,进入用户注册页面; 2)填写相关注册信息,填写完毕后单击“确定”按钮; 3)弹出“注册成功”对话框,即成功注册。用户登录验证
1)对于已注册用户,进入用户登录页面; 2)填写您的用户名和密码; 3)单击“登录”按钮; 4)用户名和密码正确,登录成功,进入购书网站;否则返回。浏览图书
网站的书籍列表要列出当前网站所有的图书名称。当用户单击某一图书名称时,要列出该书的详细信息(包括书名、作者、单价)。查找图书
用户可以在网站的查找框中输入一个书名,单击“查找”按钮可以网站是否有此书,系统将查找结果(如果有此书,返回书的详细信息;如果没有,返回当前没有此书的信息)返回给用户。 购物车管理
用户可以随时查看自己的购物车,可以添加或删除购物车中的商品。购书
在浏览图书时,用户可以在查看选中图书的详细信息时添加次书到购物车,添加完毕可以选择继续购物或是结算。如果选择结算,要填一个购书登记表,该表包括以下内容:购书人姓名、地质、E-mail、所购图书的列表、总价。订单处理中心的功能:
订单处理中心是一个Web应用程序,在此将列出所有等待处理的订单,每一笔订单包含购书人姓名、地质、E-mail、所购图书的列表、总价。其中,所购图书列表包括各个书籍信息的明细内容,总价是系统自动计算的。
以上是该项目的需求分析,请由此画出该系统的用例图、类图、状态图、活动图、顺序图、协作图、构件图以及部署图。
实习一(2学时)
一、实验名称:
UML用例图建模(2学时)
二、实验目的与要求:
了解和掌握Rose或PowerDesign建模工具的使用 掌握怎样进行案例需求分析; 掌握UML用例图建模技术
三、实验内容:
通过《网上书店系统》的需求分析,完成用例图的设计和绘制。掌握需求分析和绘制用例图。
四、实验步骤:
步骤1:对《网上书店系统》文字描述进行需求分析。步骤2:找到系统所有用户、用例:
步骤3:采用Rose或PowerDesign或Visio画出用例图; 步骤4:对用例图进行细化和完善; 步骤5:保存实验结果,撰写实验报告。
实习二(2学时)
一、实验名称:
UML类图建模(2学时)
二、实验目的与要求:
了解和掌握Rose或PowerDesign或Visio建模工具的使用 掌握怎样进行系统分析,并进行UML静态建模分析; 掌握UML类图建模技术
三、实验内容:
通过《网上书店系统》的需求分析,完成主要类图的设计和实现。掌握系统静态分析和绘制类图。
四、实验步骤:
步骤1:对《网上书店系统》文字描述以及上次实习的用例图进行系统分析。步骤2:找到系统涉及到的实体—〉类:
步骤3:采用Rose或PowerDesign或Visio画出类图; 步骤4:对类图进行细化和完善; 步骤5:保存实验结果,撰写实验报告。五.实验结果
实习三(2学时)
一、实验名称:
时序图和协作图建模(2学时)
二、实验目的与要求:
了解和掌握Rose或PowerDesign或Visio建模工具的使用 掌握怎样进行系统分析,并进行UML动态建模分析; 掌握UML时序图和协作图建模技术
三、实验内容:
通过《网上书店系统》的进一步分析,绘制其中主要的时序图和协作图。掌握系统动态分析和绘制时序图和协作图。
四、实验步骤:
步骤1:以《网上书店系统》用例图、类图为基础进行系统分析。步骤2:找到系统通过类图无法完整描述相互交互的过程:
步骤3:采用Rose或PowerDesign或Visio画出这些过程的时序图或协作图; 步骤4:对时序图或协作图进行细化和完善; 步骤5:保存实验结果,撰写实验报告。
五.实验结果
实习四(2学时)
一、实验名称:
状态图和活动图建模(2学时)
二、实验目的与要求:
了解和掌握Rose或PowerDesign或Visio建模工具的使用 掌握怎样进行系统分析,并进行UML动态建模分析; 掌握UML状态图和活动图建模技术
三、实验内容:
通过《网上书店系统》的进一步分析,绘制其中主要的状态图和活动图。掌握系统动态分析和绘制状态图和活动图。
四、实验步骤:
步骤1:以《网上书店系统》用例图、类图为基础进行系统分析。步骤2:找到系统类图无法清晰描述现实对象的类:
步骤3:采用Rose或PowerDesign或Visio画出这些类或者对象的状态图或活动图;
步骤4:对状态图或活动图进行细化和完善; 步骤5:保存实验结果,撰写实验报告。五.结果
实习五(4学时)
一、实验名称:
综合实验--《网上书店系统》UML建模(4学时)
二、实验目的与要求:
了解和掌握Rose或PowerDesign或Visio建模工具的使用 掌握软件分析设计过程,能熟练运用UML建模技术; 掌握UML构件图和部署图建模技术
三、实验内容:
通过该系统的分析和设计,整合前4次实验,并进行进一步的细化和完善,提交整个系统的UML分析结果(包括后期的构件图,部署图)。
四、实验步骤:
步骤1:以《网上书店系统》描述为用例图、类图以及其他动态图为基础进行构件部署的设计。
步骤2:采用Rose或PowerDesign或Visio画出构件图和部署图: 步骤3:对构件图和部署图进行细化和完善;
步骤4:重新从系统需求描述出发,验证和补充用例图、类、时序图、协作图、状态图、活动图、构件图以及部署图;
步骤5:采用包图,对所有分析模型进行分层次整合; 步骤6:对UML建模必要的图添加注释;
步骤7:对系统分析和设计进行整理,撰写实验报告 五.实验结果
第三篇:网上书店项目总结报告
数据库代码:
/*================*/ /* DBMS name:
Microsoft SQL Server 2008
*/ /* Created on:
2011-11-2 9:27:06
*/ /*================*/
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('Administrators')and o.name = 'FK_ADMINIST_REFERENCE_USERS')alter table Administrators
drop constraint FK_ADMINIST_REFERENCE_USERS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('Re_status')and o.name = 'FK_RE_STATU_REFERENCE_ADMINIST')alter table Re_status
drop constraint FK_RE_STATU_REFERENCE_ADMINIST go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('books')and o.name = 'FK_BOOKS_REFERENCE_BOOKTYPE')alter table books
drop constraint FK_BOOKS_REFERENCE_BOOKTYPE go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('books')and o.name = 'FK_BOOKS_REFERENCE_PUBLISH')alter table books
drop constraint FK_BOOKS_REFERENCE_PUBLISH go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('booktype')and o.name = 'FK_BOOKTYPE_REFERENCE_BOOKTYPE')alter table booktype
drop constraint FK_BOOKTYPE_REFERENCE_BOOKTYPE go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('leaveWords')and o.name = 'FK_LEAVEWOR_REFERENCE_USERS')alter table leaveWords
drop constraint FK_LEAVEWOR_REFERENCE_USERS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('limite')and o.name = 'FK_LIMITE_REFERENCE_ADMINIST')alter table limite
drop constraint FK_LIMITE_REFERENCE_ADMINIST go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('model')and o.name = 'FK_MODEL_REFERENCE_LIMITE')alter table model
drop constraint FK_MODEL_REFERENCE_LIMITE go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('orders')and o.name = 'FK_ORDERS_REFERENCE_SHIPPED')alter table orders
drop constraint FK_ORDERS_REFERENCE_SHIPPED go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('orders')and o.name = 'FK_ORDERS_REFERENCE_BOOKS')alter table orders
drop constraint FK_ORDERS_REFERENCE_BOOKS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('orders')and o.name = 'FK_ORDERS_REFERENCE_USERS')alter table orders
drop constraint FK_ORDERS_REFERENCE_USERS go if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('sales')and o.name = 'FK_SALES_REFERENCE_ORDERS')alter table sales
drop constraint FK_SALES_REFERENCE_ORDERS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('shipped')and o.name = 'FK_SHIPPED_REFERENCE_SALES')alter table shipped
drop constraint FK_SHIPPED_REFERENCE_SALES go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('shoppingcar')and o.name = 'FK_SHOPPING_REFERENCE_BOOKTYPE')alter table shoppingcar
drop constraint FK_SHOPPING_REFERENCE_BOOKTYPE go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('shoppingcar')and o.name = 'FK_SHOPPING_REFERENCE_BOOKS')alter table shoppingcar
drop constraint FK_SHOPPING_REFERENCE_BOOKS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('shoppingcar')and o.name = 'FK_SHOPPING_REFERENCE_USERS')alter table shoppingcar
drop constraint FK_SHOPPING_REFERENCE_USERS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('users')and o.name = 'FK_USERS_REFERENCE_LIMITE')alter table users
drop constraint FK_USERS_REFERENCE_LIMITE go
if exists(select 1
from sysobjects
where id = object_id('Administrators')
and
type = 'U')
drop table Administrators go
if exists(select 1
from sysobjects
where id = object_id('Re_status')
and
type = 'U')
drop table Re_status go
if exists(select 1
from sysobjects
where id = object_id('books')
and
type = 'U')
drop table books go
if exists(select 1
from sysobjects
where id = object_id('booktype')
and
type = 'U')
drop table booktype go
if exists(select 1
from sysobjects
where id = object_id('booktype2')
and
type = 'U')
drop table booktype2 go
if exists(select 1
from sysobjects
where id = object_id('discount')
and
type = 'U')
drop table discount go
if exists(select 1
from sysobjects
where id = object_id('leaveWords')
and
type = 'U')
drop table leaveWords go
if exists(select 1
from sysobjects
where id = object_id('limite')
and
type = 'U')
drop table limite go
if exists(select 1
from sysobjects
where id = object_id('model')
and
type = 'U')
drop table model go
if exists(select 1
from sysobjects
where id = object_id('orders')
and
type = 'U')
drop table orders go
if exists(select 1
from sysobjects
where id = object_id('publish')
and
type = 'U')
drop table publish go
if exists(select 1
from sysobjects
where id = object_id('sales')
and
type = 'U')
drop table sales go
if exists(select 1
from sysobjects
where id = object_id('shipped')
and
type = 'U')
drop table shipped go
if exists(select 1
from sysobjects
where id = object_id('shoppingcar')
and
type = 'U')
drop table shoppingcar go
if exists(select 1
from sysobjects
where id = object_id('users')
and
type = 'U')
drop table users go
/*================*/ /* Table: Administrators
*/ /*================*/ create table Administrators(Administrator_id
varchar(50)
not null,Username
varchar(20)
null,Administrator_name
varchar(20)
not null,Administrator_password varchar(50)
not null,“Administrator_e-mall” varchar(30)
null,constraint PK_ADMINISTRATORS primary key(Administrator_id))go
/*================*/ /* Table: Re_status
*/ /*================*/ create table Re_status(Administrator_id
varchar(50)
not null,Username
varchar(10)
not null,Re_status_date
datetime
not null,Subject
varchar(10)
not null,re_ststus_texe
varchar(2000)
null,Re_status
varchar(2)
not null,constraint PK_RE_STATUS primary key(Administrator_id))go
/*================*/ /* Table: books
*/ /*================*/ create table books(bookID
varchar(50)
not null,Smalltype_id
varchar(50)
null,Pub_id
varchar(50)
null,title
varchar(80)
not null,price
double precision
not null,author
varchar(10)
not null,Version
varchar(20)
null,Publishdate
datetime
null,introduction
varchar(2000)
null,type
varchar(50)
not null,stock_qty
int
null,constraint PK_BOOKS primary key(bookID))go
/*================*/ /* Table: booktype
*/ /*================*/ create table booktype(Smalltype_id
varchar(50)
not null,Bigtype_id
varchar(50)
not null,Bigtype_name
varchar(50)
not null,constraint PK_BOOKTYPE primary key(Smalltype_id))go
/*================*/ /* Table: booktype2
*/ /*================*/ create table booktype2(Smalltype_id
varchar(50)
not null,Smalltype_name
varchar(50)
not null,Bigtype_id
varchar(50)
not null,constraint PK_BOOKTYPE2 primary key(Smalltype_id))go
/*================*/ /* Table: discount
*/ /*================*/ create table discount(datetime
varchar(10)
not null,discount
double precision
not null,remark
datetime
not null,constraint PK_DISCOUNT primary key(datetime))go
/*================*/ /* Table: leaveWords
*/ /*================*/ create table leaveWords(Lword_id
varchar(50)
not null,use_Username
varchar(20)
null,Username
varchar(6)
not null,Subject
varchar(6)
not null,Submit_date
datetime
null,Lword_texe
varchar(4000)
null,Re_status
varchar(10)
null,constraint PK_LEAVEWORDS primary key(Lword_id))go
/*================*/ /* Table: limite
*/ /*================*/ create table limite(username
varchar(20)
not null,Administrator_id
varchar(50)
null,user_limite
varchar(2)
not null,constraint PK_LIMITE primary key(username))go
/*================*/ /* Table: model
*/ /*================*/ create table model(model_id
varchar(10)
not null,username
varchar(20)
null,modelname
varchar(20)
not null,remark
varchar(20)
not null,constraint PK_MODEL primary key(model_id))go
/*================*/ /* Table: orders
*/ /*================*/ create table orders(Order_id
varchar(50)
not null,bookID
varchar(50)
null,Username
varchar(20)
null,Ship_id
varchar(50)
null,shipaddress
varchar(50)
not null,Order_date
datetime
not null,Book_id
varchar(50)
not null,quantity
int
not null,status
varchar(2)
not null,constraint PK_ORDERS primary key(Order_id))go
/*================*/ /* Table: publish
*/ /*================*/ create table publish(Pub_id
varchar(50)
not null,Pub_name
varchar(50)
not null,Pub_phone
varchar(15)
not null,Pub_add
varchar(50)
not null,constraint PK_PUBLISH primary key(Pub_id))go
/*================*/ /* Table: sales
*/ /*================*/ create table sales(Sale_id
varchar(50)
not null,Order_id
varchar(50)
null,Sale_date
datetime
null,Saler
varchar(20)
not null,Sale_status
varchar(2)
null,constraint PK_SALES primary key(Sale_id))go
/*================*/ /* Table: shipped
*/ /*================*/ create table shipped(Ship_id
varchar(50)
not null,Sale_id
varchar(50)
null,receive_name
varchar(10)
not null,receive_address
varchar(50)
not null,Ship_date
datetime
not null,Ship_man
varchar(10)
not null,receive_postcode
varchar(6)
not null,receive_telephone
varchar(20)
not null,constraint PK_SHIPPED primary key(Ship_id))go
/*================*/ /* Table: shoppingcar
*/ /*================*/ create table shoppingcar(shoppingcarid
varchar(10)
not null,Smalltype_id
varchar(50)
null,bookID
varchar(50)
null,Username
varchar(20)
null,totalprice
double precision
not null,constraint PK_SHOPPINGCAR primary key(shoppingcarid))go
/*================*/ /* Table: users
*/ /*================*/ create table users(Username
varchar(20)
not null,lim_username
varchar(20)
null,Password
varchar(10)
not null,degree
varchar(2)
not null,Phone
varchar(15)
null,“E-mall”
varchar(30)
null,Address
varchar(100)
not null,True_name
varchar(10)
not null,Postcode
varchar(6)
not null,constraint PK_USERS primary key(Username))go
alter table Administrators
add constraint FK_ADMINIST_REFERENCE_USERS foreign key(Username)
references users(Username)go
alter table Re_status
add constraint FK_RE_STATU_REFERENCE_ADMINIST foreign key(Administrator_id)
references Administrators(Administrator_id)go
alter table books
add constraint FK_BOOKS_REFERENCE_BOOKTYPE foreign key(Smalltype_id)
references booktype(Smalltype_id)go
alter table books
add constraint FK_BOOKS_REFERENCE_PUBLISH foreign key(Pub_id)
references publish(Pub_id)go
alter table booktype
add constraint FK_BOOKTYPE_REFERENCE_BOOKTYPE foreign key(Smalltype_id)
references booktype2(Smalltype_id)go
alter table leaveWords
add constraint FK_LEAVEWOR_REFERENCE_USERS foreign key(use_Username)
references users(Username)go
alter table limite
add constraint FK_LIMITE_REFERENCE_ADMINIST foreign key(Administrator_id)
references Administrators(Administrator_id)go
alter table model
add constraint FK_MODEL_REFERENCE_LIMITE foreign key(username)
references limite(username)go
alter table orders
add constraint FK_ORDERS_REFERENCE_SHIPPED foreign key(Ship_id)
references shipped(Ship_id)go
alter table orders
add constraint FK_ORDERS_REFERENCE_BOOKS foreign key(bookID)
references books(bookID)go
alter table orders
add constraint FK_ORDERS_REFERENCE_USERS foreign key(Username)
references users(Username)go
alter table sales
add constraint FK_SALES_REFERENCE_ORDERS foreign key(Order_id)
references orders(Order_id)go
alter table shipped
add constraint FK_SHIPPED_REFERENCE_SALES foreign key(Sale_id)
references sales(Sale_id)go
alter table shoppingcar
add constraint FK_SHOPPING_REFERENCE_BOOKTYPE foreign key(Smalltype_id)
references booktype2(Smalltype_id)go
alter table shoppingcar
add constraint FK_SHOPPING_REFERENCE_BOOKS foreign key(bookID)
references books(bookID)go
alter table shoppingcar
add constraint FK_SHOPPING_REFERENCE_USERS foreign key(Username)
references users(Username)go
alter table users
add constraint FK_USERS_REFERENCE_LIMITE foreign key(lim_username)
references limite(username)go
DB类:
using System;using System.Collections.Generic;using System.Text;
namespace DBLib { ///
/// 提供访问SQL Server的基本方法
/// public class DB { public DB(){ }
//connStr为访问SQL Server2000的连接字符串
//下面是临时调试使用的方法,直接设置联接字符串。
string connStr = “server=.;database=bookstore;integrated security=SSPI”;
#region 获取查询结果,DataSet GetSqlDataSet(string sqlString)///
/// public DataSet GetSqlDataSet(string sqlString){ //定义返回变量
//实例化数据集DataSet,对象名为ds DataSet ds = new DataSet();try { //实例化连接对象SqlConnection,对象名为sqlConn SqlConnection sqlConn = new SqlConnection(connStr);
//用查询的SQL(sqlString)语句和连接对象sqlConn实例化数据接口SqlDataAdapter //对象名为da SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
//da.Fill(ds)是数据接口(SqlDataAdapter)提供的方法
//具体作用为:
//打开与数据库的连接
//将查询的SQL语句发送到数据库服务器 //接受返回的查询结果
//并将结果填充到数据集对象ds中
//关闭与数据库的连接 da.Fill(ds);} catch(Exception e){ //抛出捕捉到的异常
throw(e);} //返回查询到的结果
return ds;} #endregion
#region 执行增、删或改的SQL语句 int ExecuteSql(string sqlString)///
/// 返回值为受影响的行数(记录数)
/// sqlString 参数为增、删或改的SQL语句
/// public int ExecuteSql(string sqlString){ int i = 0;try { ////实例化连接对象SqlConnection,对象名为sqlConn SqlConnection sqlConn = new SqlConnection(connStr);
//用查询的SQL(sqlString)语句和连接对象sqlConn实例化SqlCommand //对象名为sqlCmd SqlCommand sqlCmd = new SqlCommand(sqlString, sqlConn);
//打开与数据库的连接 sqlConn.Open();
//将增、删或改的SQL语句发送到数据库服务器
//并接受返回的结果,返回的结果为受影响的行数(记录数)i = sqlCmd.ExecuteNonQuery();
//关闭与数据库的连接 sqlConn.Close();} catch(Exception e){ Exception ee = new Exception(sqlString + e.Message);throw(ee);} return i;} #endregion
} }
Administrators类: using System;using System.Collections.Generic;using System.Text;
namespace DBlib { class Administrators { string Administrator_id;public string Administrator_Id { get { return Administrator_id;} set { Administrator_id = value;} } string Username;public string UserName { get { return Username;} set { Username = value;} } string Administrator_name;public string Administrator_Name { get { return Administrator_name;} set { Administrator_name = value;} } string Administrator_password;public string Administrator_Password { get { return Administrator_password;} set { Administrator_password = value;} } string Administrator_e_mall;public string Administrator_E_Mall { get { return Administrator_e_mall;} set { Administrator_e_mall = value;} } DB db = new DB();public bool Insert(){ try { string sql = “insert into Administrators(Administrator_id ,Username,Administrator_name,Administrator_password,Administrator_e_mall)values('” + this.Administrator_id + “','” + this.Username + “','” + this.Administrator_name + “','” + this.Administrator_password + “','” + this.Administrator_e_mall + “')”;db.ExecuteSql(sql);return true;} catch { return false;} } public bool Delete(){ try { string sql = “delete from Administrators where Administrator_id='” + this.Administrator_id + “'”;db.ExecuteSql(sql);return true;} catch { return false;} } public bool Update(){ try { string sql = “update Administrators set Administrator_id='” + this.Administrator_id + “',Username='” + this.Username + “',Administrator_name='” + this.Administrator_name + “',Administrator_password='” + this.Administrator_password + “',Administrator_e_mall='” + this.Administrator_e_mall + “'”;db.ExecuteSql(sql);return true;} catch { return false;} } public DataSet SelectAll(){
string sql = “select * from Administrators”;DataSet ds = db.GetSqlDataSet(sql);return ds;} public DataSet Select(){
string sql = “select * from Administrators where Administrator_name like '%” + this.Administrator_name + “%'”;DataSet ds = db.GetSqlDataSet(sql);return ds;}
public bool IsExist(){ string sql = “select * from Administrators where Administrator_id='” + this.Administrator_id + “'”;DataSet ds = db.GetSqlDataSet(sql);if(ds.Tables[0].Rows.Count == 1){ return true;} else { return false;} } } }
第四篇:网上书店-系统分析设计文档
网上书店系统analysis & design 目录:
1.登录包
1.1 class diagram
LoginForm为boundary class CheckAndReadFrormUserList为control class UserList 为 entity class
在登录界面中 点击登录 调用CheckAndReadFrormUserList()函数,该函数作用:在数据库中搜索登录用户名和密码若存在则能登陆,否则登陆失败。1.2 sequence diagram
1.3 collaboration diagram 注册包
2.1 class diagram
UserRegrist为boundary class CheckAndSaveIntoUserList为control class UserList为 entity class
在注册界面中 点击注册 调用CheckUserList()函数,该函数作用:在数据库中搜索登录用户名若不存在则继续,否则提示该用户名以存在。继续则调用SaveIntoUserList(),该函数作用:将用户信息存入数据库中 2.2 sequence diagram
2.3 collaboration diagram 订购图书包 3.1 class diagram
BookList为boundary class CheckAndSaveIntoOrderList为control class OrderList为 entity class
在物品界面中 点击订购 调用SaveIntoOrderList()函数,该函数作用:将该图书信息存入数据库中,继续调用showMybook()函数,该函数作用:将该用户订购的所有图书列表显示。3.2 sequence diagram
3.3 collaboration diagram 订单及送货管理 4.1 class diagram
OrderForm为boundary class DoWithOrderList为control class OrderList为 entity class
进入订单及送货管理页面 调用showorderList()函数,该函数作用:显示所有订单,若要删除订单,调用delorderinfo()函数,该函数作用:将选定列订单删除。
4.2 sequence diagram
4.3 collaboration diagram
5.进书、库存管理
5.1 class diagram
StockForm为boundary class DoWithStockList为control class StockList为 entity class
进入订单及送货管理页面 调用showall()函数,该函数作用:显示所有进书信息,若要修改信息,调用changeinfo()函数,该函数作用:将选定列重新更新到数据库中。
5.2 sequence diagram
5.3 collaboration diagram
6.客户信息管理
6.1 class diagram
UserForm为boundary class DoWithUserList为control class UserList为 entity class
进入客户信息管理页面 调用showUserList()函数,该函数作用:显示所有用户信息,若要修改信息,调用alterUserinfo()函数,该函数作用:将选定列重新更新到数据库中。
6.2 sequence diagram
6.3 collaboration diagram
7.账目管理
7.1 class diagram
AccountForm为boundary class DoWithAccountList为control class AaccountList为 entity class
进入账目管理页面 调用showaccountlist()函数,该函数作用:显示所有图书账目信息,若要修改信息,调用alteraccountlist()函数,该函数作用:将选定列重新更新到数据库中。
7.2 sequence diagram
7.3 collaboration diagram
第五篇:网上书店系统分析与设计(定稿)
系统分析与设计大作业
学号:090300235 班级: 09信管1班 姓名: 伍恒 1系统的功能和结构说明:
功能要求
本系统主要分为管理员,工作人员,会员和游客四大模块。
管理员: 进入管理页面,可以维护客户注册信息、维护图书信息、处理订单信息、报表维修、商品销售。
工作人员: 进入工作管理页面,可以对图书(或商品)信息进行录入、删除、浏览、查询、修改(商品销售)、维护个人信息、维护订单信息(接收订单并发货、拒绝订单、查询库存)。
会员: 进入登入页面,可以对图书信息进行查询、浏览,并可以维护个人信息,维护订单信息(订单状态查询、订单删除或增加)。
游客: 进入网站后,只能进行基本的信息浏览和查询。
管理员可以维护客户注册信息、维护图书信息、处理订单信息、报表维修、商品销售。工作人员的相对权限下可以对图书(或商品)信息进行录入、删除、浏览、查询、修改(商品销售)、维护个人信息、维护订单信息(接收订单并发货、拒绝订单、查询库存)。游客身份只能进行基本的信息浏览和查询,但是游客可以在线注册为会员,成为会员后在相对权限下可以对图书信息进行查询、浏览,并可以维护个人信息,维护订单信息(订单状态查询、订单删除或增加)。
2系统需求分析和设计文档:
本系统描述通过包含因特网在内的计算机网络来购买、销售和交换商品、服务信息的进程。随着社会的发展,网络的普及,网上购物已成为在线业务的首要载体。B2C可以绕过中介(如批发商、销售商或经销商)建立与客户的直接关系。网站还能够为用户提供商品的具体信息,用户能够在线购买商品,确信自己的订单。同时网站还提供关于商品或电子零售商的选择建议和评级。网站来源信息,为网络销售人员从不同地方分析网站运营的效果提供方便,至少能够看出部分常用网站推广措施所带来的访问量,如分类目录、搜索引擎自然检索、投放于网站上的在线显示类网络广告等。网上销售为人们提供更广阔的环境:人们不受时间的限制,不受空间的限制,不受传统购物的诸多限制,能够随时随地在网上交易。更广阔的市场:在网上这个世界将会变得很小,一个商家能够面对全球的消费者,而一个消费者能够在全球的任何一家商家购物。更快速的流通和低廉的价格:电子商务减少商品流通的中间环节,节省大量的开支,从而也大大降低商品流通和交易的成本。更符合时代的要求:如今人们越来越追求时尚、讲究个性,注重购物的环境,网上购物,更能体现个性化的购物进程。
系统可行性分析及功能和操作环境:
伴随着Internet正向我们大踏步走来,电子商务将成为21世纪主流的商业模式。网上书店将是随着这些网络技术的发展而出现的一种新型图书销售渠道。它通过人与电子通信方式的结合,依靠计算机网络,以通讯技术为基础,实现图书销售的网上交易。网上书店同传统的店面书店相比,网上书店的经营 方式和销售渠道是全新的;它24小时的全天候和全方位服务是店面书店所不能比及的;成本低廉更是开设网上书店的主要原因。而与其他商品相比,书籍运送几乎不怕碰撞碎裂,不具时效性;同时书本具有功能单一,形式简单,易于判断和选择而独具优势,最适合于网上交易;再次是单价低,降低了消费者第一次在网络购物的门槛,所以网上书店成了电子商务的先锋。对现有系统的分析
由于假定目前还未开设网上书店,所以没有原型系统,则: 处理流程和数据流程 :暂时不考虑 工作负荷 :暂时不考虑
费用支出:如人力、设备、空间、支持性服务、材料等项开支 :暂时不考虑 人员:列出所需人员的专业技术类别和数量 :暂时不考虑 设备 :暂不考虑
局限性:暂时不考虑 需求调查和分析
网上书店同传统的店面书店相比,网上书店的经营方式和销售渠道是全新的,它解决了许多传统书店的局限性:它24小时的全天候和全方位服务是店面书店所不能比及的;成本低廉更是开设网上书店的主要原因。而与其他商品相比,书籍运送几乎不怕碰撞碎裂,不具时效性;同时书本具有功能单一,形式简单,易于判断和选择而独具优势,最适合于网上交易;再次是单价低,降低了消费者第一次在网络购物的门槛,所以开设网上书店为广大读者提供了很大的便利性,具有很大的发展潜力。需求预测
为了是经营者实现更有效的的管理,要求网站具有如下功能:
功能 :对书店的图书信息和用户(书店工作人员,网站注册用户即潜在购书者)信息的进行有效的管理;对图书的进存销等环节进行信息化管理;实现读者网上浏览图书,网上购书的可能;通过论坛同读者进行有效的沟通;通过聊天室实现作者和读者的实时交流;处理读者网上的投诉和建议。
性能:数据库的录入;图书检索;用户信息查询;图书信息查询;论坛和bbs互动;网上购书;
安全与保密要求 :书店中所有的图书能够供用户随时查阅;用户的个人信息可以由用户自己修改,添加;书店图书的信息只能由书店管理人员添加,修改;所有注册用户信息只能由书店管理人员查询。可行性分析
技术可行性分析 对系统的简要描述
随着计算机、网络通讯和信息技术,特别是Java技术的发展。电子商务在国际上得到广泛的应用,取得了巨大的成功。我国也不例外,特别是各大电子商务网站从无到有,得到很大的发展,并取得成功。为了适应新环境下的新的销售模式和顾客销售方式的改变,开发的这个网上书店电子商务网站是基于Internet/Intranet 及Web技术,建立以Browser/Server 为结构模式、以数据库为后台核心应用、以服务,销售为目的信息平台。
功能 :对书店的图书信息和用户(书店工作人员,网站注册用户即潜在购书者)信息的进行有效的管理;对图书的进存销等环节进行信息化管理;实现读者网上浏览图书,网上购书的可能;通过论坛同读者进行有效的沟通;通 过聊天室实现作者和读者的实时交流;处理读者网上的投诉和建议。
性能:数据库的录入;图书检索;用户信息查询;图书信息查询;论坛和bbs互动;网上购书;
安全与保密要求 :书店中所有的图书能够供用户随时查阅;用户的个人信息可以由用户自己修改,添加;书店图书的信息只能由书店管理人员添加,修改;所有注册用户信息只能由书店管理人员查询。
运行环境 服务器端 :
操作系统 :WINDOWS,LINUX/UNIX及任何能运行Java虚拟机的平台;
Java Runtime Environment :version5.0以上。
Web Server:Tomcat 5.0以上。
客户端操作系统 :任何pc平台;
浏览器 :Internet Explorer,Netscape Navigator。
目标
本系统希望通过构建一个J2EE架构的电子商务网站,利用日益繁荣的互联网,为传统的书店打造一个新的销售平台。本系统希望通过电子信息化的手段对书店的进存销等环节进行管理,以达到人力与设备费用的减少,服务能力的提高,管理信息服务的改进,工作人员利用率的提高等目标。
3系统分析相关模型图
3.1用例图
用例图(管理员)
用例图(游客,会员)
用例图(员工)
用例描述
用例名:登录(权限管理——管理员、工作人员、会员、游客)角色:管理员、工作人员、会员、游客 目标:实现管理权限
前置条件:对具有不同权限的用户分配一定的权限管理 用例描述:用户登陆并进行相应的权限操作
用例名:信息管理(录入、删除、浏览、查询、修改)——管理员
(个人信息维护)——工作人员、管理员 角色:管理员,工作人员
目标:对员工信息进行录入、删除、浏览、查询、修改等基本操作 前置条件:对具有不同权限的用户分配一定的权限管理 用例描述:管理员和工作人员进行相应的权限操作
用例名:商品信息管理(销售及商品信息维护)——管理员
(订单)——工作人员
(浏览、查询)——会员、游客 角色:管理员、工作人员、会员、游客
目标:对商品销售、下订单及商品信息和库存进行录入、删除、浏览、查询、修改等基本操作
前置条件:对具有不同权限的用户分配一定的权限管理 用例描述:用户对图书信息进行和相应的权限操作
用例名:查询(管理员对商品销售及相关信息的情况查询、员工对订单的库存信息的查询、会员和游客对图书的相关信息的查询)角色:管理员、工作人员、会员、游客
目标:管理员对商品销售及相关信息的情况查询、员工对订单的库存信息的查询、会员和游客
对图书的相关信息的查询
前置条件:1.对具有不同权限的用户分配一定的权限管理 2.查询信息必须是确实存在的 用例描述:用户在相应的权限操作下对信息进行查询
用例名:订单信息管理(订单信息管理)——管理员
(订单信息处理——接收订单并发货、拒绝订单、查询库存)——工作人员
(订单信息处理——订购货品、订单增加、订单删除、订单信息查询)——会员
角色:管理员、工作人员、会员
目标:对订单信息进行维护和处理(包括:接收订单并发货、拒绝订单、查询库存、订购货品、订单增加、订单删除、订单信息查询)前置条件:1.对具有不同权限的用户分配一定的权限管理 2.游客是不能下订单的
用例描述:用户在相应的权限操作下对订单信息进行管理或处理
用例名:维护(商品信息维护、员工信息维护、报表维护)——管理员
(个人信息维护、订单维护)——会员 角色:管理员、会员
目标:管理员对商品信息维护、员工信息和报表进行维护操作,而会员对个人信息维护和订单信息维护
前置条件:1.对具有不同权限的用户分配一定的权限管理 2.维护信息必须是确实存在的
用例描述:用户在相应的权限操作下对信息进行查询
3.2活动图
工作人员工作活动图
3.3域模型类图
系统域模型类图
4系统设计相关的模型图
4.1设计类图
系统设计类图
类图说明:
1、Tourist类是游客的类,其属性只有name,有注册(enroll)、图书查询(book_search),l浏览(browsing)三个操作。
2、Customers类是会员的类,其属性有用户名(username)、密码(password),其中操作有个人信息维护(person_search)、书籍订单(book_order)、订单维护(list_service)、图书查询(book_search),订单状态查询(list_search)。
3、Orders类是订单类,包裹订单名(order_id)、用户名(user_id)、图书名(good_id)、订货日期(data_id)等属性。其中操作有增加(add)、删除(delete)、订单查询(list_search)。
4、Staff类是工作人员的类,其属性有员工姓名(staff_name)、员工数量(staff_num)、其操作有缺货拒绝(good_refuse)、图书入库(good_in)、库存查询(stock_search)。
5、Manager类是管理员的类,其属性只有姓名(name)。其中操作有图书信息维护(good_service)、员工信息维护(staff_service)、销售查询(sale_search)、报表维修(list_service)。
6、Book类是图书类,其属性有图书编号(book_id),书名(book_name),书的价格(book_price),书的摘要(book_digest)。其操作有,图书查询(book_search)。
协作图和序列图都可以表示各对象间的交互关系,但它们的侧重点不同。序列图用消息的几何排列关系来表达消息的时间顺序,各角色之间的相关关系是隐含的。协作图用各个角色的几何排列图形来表示角色之间的关系,并用消息来说明这些关系。在实际中可以根据需要选用这两种图。
一个协作图描述了系统中为实现某些服务所涉及的对象扮演的角色及其相互之间的交互。协作图着重于有协作关系的对象之间的交互和链接(指对象实例之间的物理或概念上的链接,一个链接是某关联的一个实例)。它可用于图示系统中的操作执行、用例执行或一个简单的交互场景。协作图描述了对象及其之间的链接,还描述了链接的对象之间如何发送消息
4.2协作图
会员网上订书协作图
4.3系统顺序图
会员订书顺序图
注册顺序图
4.4包图
系统包图
通过这次实践,我学到了很多东西,用例图描述了希望用户如何使用一个系统。用例图显示了谁将是相关用户、用户希望系统提供什么服务,以及用户需要为系统提供的服务,使系统的用户更容易的理解这些元素的用途。在创建之前确定参与者是有:管理员、工作人员、会员、游客。
通过分析用例和问题域,得到相关的类。类图描述了类、接口、协作以及它们之间关系的图。用来显示系统中各个类的静态结构,描述了类之间的联系,还包过了类的属性和操作。
在描述对象之间的交互时,用到了时序图,以时间为序,来描述对象及对象之间传递消息的时间顺序,表示用例之间行为顺序,当执行一个用例行为时,时序图中每条消息对应了一个类操作中引起转换的触发事件。
系统权限及功能:管理员可以维护客户注册信息、维护图书信息、处理订单信息、报表维护、商品销售。工作人员在相对权限下可以对图书(或商品)信息进行录入、删除、浏览、查询、修改(商品销售)、维护个人信息、维护订单信息(接收订单并发货、拒绝订单、查询库存)。游客身份只能进行基本的信息浏览和查询。但是游客可以在线注册为会员,成为会员后在相对的权限 下对图书信息进行图书信息进行查询、浏览,并且可以维护个人信息,维护订单信息(订单状态查询、订单删除或增加)。
参考资料
1.《系统分析设计》
(美)John W.Satzinger 2.《软件工程(第二版)》
张海潘 3.《面向对象设计UML实践》(英)Mark Priestley