第一篇:网上书店信息系统分析设计报告
网上书店网站实验报告
1、项目说明
网上书店:顾名思义,网站式的书店。是一种高质量,更快捷,更方便的购书方式。网上书店不仅可用于图书的再线销售,也有音碟、影碟的在线销售。而且网站式的书店对图书的管理更加合理化,信息化。售书的同时还具有书籍类商品管理、购物车、订单管理、会员管理等功能,非常灵活的网站内容和文章管理功能。但网上书店的真实性是消费者的最大顾虑,这也是网上书店还不被大多数消费者所接受的原因之一。
在网上书店买书,可以查到所买图书的更多信息,因为网上书店是一个网站,它有它独特的售书方式和功能。如用户注册会员功能等,会员类型有:高级会员、金牌会员等。有的网上书店有会员积分设置,如达到一定积分时自动成为高级会员,高级会员会有优惠和特别的服务。还有就是支付方式了,一般网上书店都有三种类型的支付方式:汇款类支付、在线支付、其他支付方式,其中在线支付只要到支付平台开户后,将所获开户信息填入即可。当在网上书店购书后,用户所购图书都在网站上有记录,方便用户查询。
2、需求分析
网上书店和现实书店区别比较:
网上书店的优势:涉及范围广,经营成本低,劣势:信用度如果低,影响
生意;
现实书店的优势:直观,信用度高。劣势:涉及范围有限,经营成本高;
现在有部分现实书店已经开始从网上书店进货了。本系统开发的目的是为 了学习这样去做一个交互式的网页以及了解这种强大的网络编程工具,方 便客户端和浏览器端之间的交流。
数据库采用实用,易学的SQL Sever 2000,以Tomcat作为JSP的WEB服务器,XP作为系统运行平台。
3、总体设计
(1)实验目的:
1.利用本次机会来了解JSP一般的技术及使用模式,并能够使用这种技术,建立
一个简单的论坛网站。
2.通过本次学习,使自己巩固所学过的书本理论知识,加深对相关内容的理解。
(2)实验要求:
要基本了解JSP编程技术,学会使用JSP开发一个小型网站的基本知识,巩固数据库基本理论,并用于开发一个小型的网站。
三技术简介
JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分。(3)系统设计特点:
网上书店具有:
(1)提供了全面,详细的图书购物入口,轻松实现快捷购买。
(2)可以通过不同分类进行导航,用最方便,最快捷的方式找到你需要的图书。
(3)提供了图书购物所需的各种工具与网站,满足你的图书购买需求。
(4)公正性很强(大站.专站.小站)排列顺序分明.公平公正的图书网址TOP排行
4、数据库设计
本系统使用数据库引擎为HSQLDB。数据库文件SIMS(student information management system)。该系统表: 1 图书基本信息表(book)图书分类基本信息表(bookcat)客户基本信息表(storeuser)订单信息表(orders)订单条目详细信息表(orderdetails)
== 1 =========================================== 字段名 描述
类型
id 图书编号
int catid 图书分类编号 int
name 图书名称
varchar price 图书价格
int saleprice 销售价格
int descript 图书介绍
varchar author 图书作者
varchar contents 图书目录
varchar image 图书封面图片存放路径 varchar
== 2 =========================================== 字段名 描述
类型
id 图书分类编号 int
catname 图书分类名称 varchar
== 3 =========================================== 字段名 描述
类型
username 用户名
varchar password 密码
varchar name 客户姓名
varchar tel 客户电话
varchar
address 客户地址
varchar email 客户电子邮件地址 varchar
== 4 =========================================== 字段名 描述
类型
id 订单编号 int
username 订单对应用户名 varchar time 产生订单的时间 smalldatetime delivery 订单对应送货方式 varchar payment 订单对应付款方式 varchar
== 5 =========================================== 字段名 描述
类型
orderid 订单编号
int bookid 图书编号
int count 订购数量
int price 该条目对应价格 int 建立数据库1、2、数据库连接
package s2jsp.lg.dao.impl;import java.sql.*;public class BaseDao {
public final static String DRIVER = “com.microsoft.jdbc.sqlserver.SQLServerDriver”;
// 数据库驱动
public final static String URL
= “jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=bbs”;
// url
public final static String DBNAME = “";
// 数据库用户名
public final static String DBPASS = ”sa“;
// 数据库密码
/**
* 得到数据库连接
* @throws ClassNotFoundException
* @throws SQLException
* @return 数据库连接
*/
public Connection getConn()throws ClassNotFoundException, SQLException{
Class.forName(DRIVER);
//注册驱动
Connection conn = DriverManager.getConnection(URL,DBNAME,DBPASS);
//获得数
据库连接
return conn;
//返回连接
}
/**
* 释放资源
* @param conn 数据库连接
* @param pstmt PreparedStatement对象
* @param rs 结果集
*/
public void closeAll(Connection conn, PreparedStatement pstmt, ResultSet rs){
/* 如果rs不空,关闭rs */
if(rs!= null){
try { rs.close();} catch(SQLException e){e.printStackTrace();}
}
/* 如果pstmt不空,关闭pstmt */
if(pstmt!= null){
try { pstmt.close();} catch(SQLException e){e.printStackTrace();}
}
/* 如果conn不空,关闭conn */
if(conn!= null){
try { conn.close();} catch(SQLException e){e.printStackTrace();}
}
}
/**
* 执行SQL语句,可以进行增、删、改的操作,不能执行查询
* @param sql 预编译的 SQL 语句
* @param param 预编译的 SQL 语句中的‘?’参数的字符串数组
* @return 影响的条数
*/
public int executeSQL(String preparedSql,String[] param){
Connection
conn = null;
PreparedStatement pstmt = null;
int
num
= 0;
/* 处理SQL,执行SQL */
try {
conn = getConn();
// 得到数据库连接
pstmt = conn.prepareStatement(preparedSql);
// 得到PreparedStatement对象
if(param!= null){
for(int i = 0;i < param.length;i++){
pstmt.setString(i+1, param[i]);
// 为预编译sql设置参数
}
}
num = pstmt.executeUpdate();
// 执行SQL语句
} catch(ClassNotFoundException e){
e.printStackTrace();
// 处理ClassNotFoundException异常
} catch(SQLException e){
e.printStackTrace();
// 处理SQLException异常
} finally {
closeAll(conn,pstmt,null);
// 释放资源
}
return num;
} }
5.详细设计
(1)JSP概述
网上书店系统中把数据库的连接参数写在dbconn.properties文件中,再用一个Java类来生成一个数据库连接对象以供其他程序使用。网上书店的首页显示的内容最多,但源代码并不长,原因是:一是因为一些多个页面共用的代码被放入另一个文本文件或JSP文件中,在需要的地方包含进来,减少了代码量,提高了代码的可复用程度;二是系统较好地进行了模块化的设计与开发,在JSP页面中很少用到Java代码,所有业务逻辑都用Java类来完成,JSP页面中只是简单的展现数据。JSP是Sun公司在Java和Servlet技术基础上推出的一种新型的服务器端动态脚本技术。它已经逐渐成为架设电子商务网站的主流技术。它的以下特点决定了本系统为什么采用JSP作为Web应用程序的开发工具。⒈JSP将内容的生成和显示进行分离 2.JSP程序运行在服务端
3.高性能的编译运行机制 4.继承了Java的跨平台特性 5.可重用组件 6.可扩展标签库 7.强大的数据库支持
(2)封装的操作;
*/ public class bookTypeOPBean extends dbOpertaion{ public ArrayList bookTypeArray=new ArrayList();public String bookTypeIdStr=new String(”“);/**。
(3)构造函数,将所有书藉类型信息查询出来:
*/
public bookTypeOPBean(){ String sqlString=”select * from book_type“;ResultSet rs=this.executeQuery(sqlString);try{ int i=0;while(rs.next()){ bookTypeBean bookType=new bookTypeBean();bookType.setBookTypeId(rs.getInt(”type_id“));bookType.setBookTypeName(rs.getString(”type_name“));bookTypeArray.add(i,bookType);i++;} } catch(SQLException e){ e.printStackTrace();bookTypeArray=null;} } /**
(4)通过书藉分类名称查找类型信息:
*/
public bookTypeBean selectBookTypeByName(String bookTypeName){ if(bookTypeName==null)return null;bookTypeBean bookType=new bookTypeBean();String sqlString=”select * from book_type where type_name= '“+bookTypeName+”'“;ResultSet rs=this.executeQuery(sqlString);try{ int i=0;if(rs.next()){ bookType.setBookTypeId(rs.getInt(”type_id“));bookType.setBookTypeName(rs.getString(”type_name“));} } catch(SQLException e){ e.printStackTrace();}
return bookType;} /**
(5)根据属性bookTypeIdStr查找书藉类型信息:
*/ public bookTypeBean selectBookTypeId(){ int bookTypeId=0;if(bookTypeIdStr!=null&&bookTypeIdStr.length()>1)try{ bookTypeId=Integer.parseInt(bookTypeIdStr);}catch(Exception e){ e.printStackTrace();} if(bookTypeId==0)return null;bookTypeBean bookType=new bookTypeBean();String sqlString=”select * from book_type where type_id=“+bookTypeId;ResultSet rs=this.executeQuery(sqlString);try{ if(rs.next()){ bookType.setBookTypeId(rs.getInt(”type_id“));bookType.setBookTypeName(rs.getString(”type_name“));} } catch(SQLException e){ e.printStackTrace();}
return bookType;} /**
(6)更新书藉分类:
* @param bookTypeId:类型ID号
* @param bookTypeName:类型名称
* @return int:返回更新的行数
*/ public int updateBookType(int bookTypeId,String bookTypeName){ if(bookTypeId==0||bookTypeName==null||bookTypeName.length()<=0)return 0;//------构造SQL语句------String sqlString=”update book_type set type_name='“+bookTypeName + ”' where type_id=“+bookTypeId;//------执行SQL语句------int i=this.executeUpdate(sqlString);return i;} /**
(7)新增一个书藉类型:
*/ public int insertBookType(String bookTypeName){ int i=0;//------构造SQL语句------String sqlString=”insert into book_type(type_name)values('“+bookTypeName+”')“;//------执行SQL语句------i=this.executeUpdate(sqlString);return i;} /**
(8)删除一个书藉类型:
* @param bookTypeId:要删除的类型ID号
* @return int:返回删除的类型个数
*/ public int deleteBookType(int bookTypeId){ int i=0;//------构造SQL语句------String sqlString=”delete book_type where type_id="+bookTypeId;
//------执行SQL语句------i=this.executeUpdate(sqlString);return i;} public ArrayList getBookTypeArray(){ return bookTypeArray;} public void setBookTypeArray(ArrayList bookTypeArray){ this.bookTypeArray = bookTypeArray;} public String getBookTypeIdStr(){ return bookTypeIdStr;} public void setBookTypeIdStr(String bookTypeIdStr){ this.bookTypeIdStr = bookTypeIdStr;} }(9)网上书店系统中所有的报错信息都保存在一个“.properties”文件中,文件内容如下:book.bookNameNull=书藉名没有输入!
book.typeIdNull=书藉所属类型没有选择!
book.priceNotFloat=价格不为数字!
book.priceRebateNotFloat=折扣输入不正确!
book.publishDateError=出版日期输入有误!
book.pageCountError=页数不为数字!
addbook.insertError=插入新书时出错!
updatebook.updateError=更新书藉信息时出错!
bookType.bookTypeHaved=书藉类型已存在!
bookType.insertError=插入新的书藉类型时出错!
booktype.updateError=更新书藉类型信息时出错!
user.userNameNull=用户名输入为空!
user.userPasswordNull=用户密码输入为空!
user.passwordNotEqual=两次输入的密码不一致!
user.insertError=插入新的用户时出错!
user.certCodeError=验证码不对!
user.userError=用户名或密码输入有误!
user.sessionError=用户会话已失效!
orderform.newError=生成新的订单时出错!
orderform.saveError=保存订单时出错!
(10):CREATE TABLE members(member_id
int auto_increment primary key,member_login
varchar(20)NOT NULL,member_password
varchar(20)NOT NULL,member_level
int NOT NULL DEFAULT 1,first_name
varchar(50)NOT NULL,last_name
varchar(50)NOT NULL,email
varchar(50)NOT NULL,phone
varchar(50)NULL,address
varchar(50)NULL,notes
text NULL,card_type_id
int NULL,card_number
varchar(50)NULL);(11):CREATE TABLE items(item_id
int auto_increment primary key,category_id
int NOT NULL,name
varchar(255)NOT NULL,author
varchar(100)NULL,price
float NOT NULL,product_url
varchar(255)NULL,image_url
varchar(100)NULL,notes
text NULL,is_recommended
tinyint NULL DEFAULT 0,rating
int default 0,rating_count
int default 0);用户手册:
(1)本程序运行环境为JDK1.4.2,可在windows98/windows2000/windows XP下运行。
(2)为了发布应用程序,我把本JAVA应用程序中涉及到的类文件压缩成一个JAR文件,名为StudentManager.jar,现在只要将StudentManager.jar文件拷贝到任何一个安装了JAVA运行环境(版本应为1.4.0及以上)的计算机上,双击鼠标就可以运行JAVA应用程序了。但如果计算机上安装了中文版的WinRAR解压缩软件并将该JAR文件与压缩软件做了关联,WinRAR解压缩软件会自动运行进行解压缩操作,使的JAVA程序无法运行。因此,创建了一个StudentManager.bat的批处理文件。所以,只要双击这个批处理文件就可以直接运行本程序了,省去了每次运行程序都要运行JDK软件的麻烦。
7.参考书籍
1.java面向对象程序设计(清华大学出版社)2.java课程设计(清华大学出版社)
3.java信息系统设计与开发实例(机械工业出版社)
8.心得体会:
通过这次课程设计我对JAVA面向对象的编程语言有了深刻的了解,对JAVA语言的简洁性和高效性有了自己进一步的体会,同时对JAVA的一些设计模式也有了一个大致的认识与了解,这门语言对于异常的控制非常有用,写出来的程序有更高的容错能力,系统稳定性也很好。
在整个程序的设计过程中,对软件编程的流程,包括需求分析、概要设计、详细设计等步骤又有了一个新的认识,尤其是需求分析的好坏在整个程序的设计中有着举足轻重的作用。需求分析没有做好,后面的步骤很容易受到负面的影响。
另外,在程序设计过程中,我们加强了团队的合作,了解了团队精神对于程序设计是至关重要的,这将会对我们以后的工作有很大的启发。
八.教师评语
第二篇:网上书店-系统分析设计文档
网上书店系统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
第三篇:案例—网上书店系统分析
实验案例—某网上书店系统分析
实验案例—某网上书店系统分析
– 实验简介
– 建立需求模型概述
– 建立需求模型详细步骤 – 建立分析模型概述 – 建立分析模型详细步骤
实验简介
· 本实验本实验在“实验案例—某网上书店系统规划 报告”的基础上,对要实现的电子商务系统进行需 求调查,使用UML用例图和活动图来描述调查得 到的需求。然后,对调查得到的需求进行详细的 分析和描述,以掌握需求调查的方法和技巧,学 会编写需求模型报告。
· 本实验还要根据形成的需求模型一步步得到分析 模型,使用类图和协作图来分析各个用例,画出 系统的分析类和用例实现过程,学会编写需求模
型报告。
建立需求模型概述
–建立用例模型的体系结构图 –用例图的画法
–创建“图书选购”活动图 –对用例进行描述
建立用例模型的体系结构图
根据对实验案例—某网上书店系统规划报告中功 能模块的分析,结合对实际电子商务系统的调 查,最终得出系统的体系结构图。网上书店体系 结构图如下图所示。
建立需求模型概述
建立用例模型的体系结构图
在UML中,这种体系结构的表现方式是通过 分组元素(即包元素)来实现的,在
Rational Rose中应该按如下步骤建立该需求 体系结构。
首先在Rational Rose的Use Case View中的 Main用例图中使用 建立“网上书店系统” 包,如下图所示。
建立需求模型概述
建立用例模型的体系结构图
然后双击该包图,进 入下一级用例图中,建立“管理员子系统 ” 和“用户子系统 ”两个 包,再分别双击两个 包,进入相应的包以 建立下一级结构,最 终得到系统的体系结 构。用例模型的体系
结构图如左图所示。
建立需求模型概述
用例图的画法
· 建立了用例模型的体系结构图之后,下面以用户 子系统的“图书选购”功能为例介绍用例图的画法。在“图书选购”上单击右键,建立“图书选购”用例 图,如下图所示。
建立需求模型概述
用例图的画法
· 在这个用例中,有一 个参与者(即顾客)和一个用例(即图书 选购),根据分析可 知,“图书选购”用例 可以分解成两个用 例,即“浏览图书”和 “加入购物车”,最终 得到用例图“图书选
购”,如左图所示。
建立需求模型概述
创建―图书选购‖活动图
· 在上述步骤中仅仅画出“图书选购”的用例图,是不能够准 确地表达“图书选购”这一用例的商业流程的,还需要对这 一用例进行解释和说明,活动图就是一个对用例进行解释 说明的很好的工具,下面是创建“图书选购”活动图的过程。首先在“图书选购”包中通过单击右键创建“图书选购”活动 图,如下图所示。
建立需求模型概述
创建―图书选购‖活动图
· 然后根据需求调查的结果,画出活动图。使用泳 道来区分活动的发出者,如下图所示。
图中的 和 分别表 示用例的启动和终止。要注意区分图中状态 机的图标 和活动图 中活动图标 的不 同,用来表示一个
个的活动。
建立需求模型概述
对用例进行描述
· 接下来的工作是对用例进行描述,也就是对需求 进行文档化描述。事实上有许多种描述方法,既 可以只用一段自然文字和使用结构化的一段文字 描述,也可以使用图形进行描述(事实上,活动 图就是对用例的一种描述)。下面通过使用 usecase.org给出的用例的文档化模版对用例进 行描述。
建立需求模型概述
对用例进行描述 “图书选购” 3.1 简单描述
本用例允许用户在线选购图书。3.2 前置条件
用户选书前必须登录。3.3 后置条件
用户选择自己需要的图书,并将其添加到购物车中。3.4 事件流
3.4.1 基流
当用户想要进行图书选购时,用例启动。
(1)用户单击选择选书页面。(2)系统显示图书列表。(3)用户提出选购某书。
(4)系统检查是否缺货(E-1),购物车中加入相应的图书信息。
3.4.2 替代流
E-1:缺货时,屏幕显示缺货信息页面。用户选择缺货策略(放
弃还是等待直到有货)。
建立需求模型概述
对用例进行描述
· 在usecase.org给出的用例文档化模版 中,前置条件说明了用例开始前应该使 系统所处的状态,后置条件说明了用例 结束后对系统的改变。基流也叫做事件 的成功流,说明了在整个过程中没有任 何错误的情况下用例的事件流程。
建立需求模型概述
对用例进行描述
· 实际上,作为用例 描述,应该可以在 用例模型中显示,Rational Rose在用 例中添加了用例描 述的功能。用户双 击用例“图书选购” 图标,得到它的细
建立需求模型概述
节界面,如左图所 示。
对用例进行描述
· 在Documentation文本框中添加用例的描 述和非功能性需求。
· 对体系结构中的每个包的每个元素都做完 以上几项(即用例图、活动图和用例)描 述之后,就基本完成了需求模型的建立。这里说基本并不是完全的意思,即在系统 的开发进程中发现一些新的需求和描述不 正确的需求时,可继续在此基础上对其进
行修改和维护。
建立需求模型概述
建立需求模型详细步骤
1.用户注册
2.用户登录
3.图书选购
4.购物车管理
5.查看订单 6.图书管理 7.订单管理
····
···
建立需求模型详细步骤
1.用户注册—使用用例图
建立需求模型详细步骤
1.用户注册—使用活动图
建立需求模型详细步骤
1.用户注册——进行需求描述 “用户注册” 1.1 简单描述
本用例用于用户的注册和个人信息的填写。1.2 前置条件 无。
1.3 后置条件
用例成功后,添加一名新用户。1.4 事件流 1.4.1 基流
当用户希望注册个人信息以使用本系统时,用例启动。
(1)系统转到用户注册页面,提示用户输入个人信息。(2)用户输入个人信息。
(3)系统检查信息是否有效(E-1)(是否已注册,邮箱是否可用,密码是否过于简单),将信息存入数据库。1.4.2 替代流
E-1:如果用户输入的注册信息无效,系统显示错误信息并转到 错误页面,用户重新填写信息,或者取消注册,用例结束。
建立需求模型详细步骤
2.用户(管理员)登录—使用用例
图
建立需求模型详细步骤
2.用户(管理员)登录—使用活动
图
建立需求模型详细步骤
2.用户(管理员)登录—进行用例
描述 “用户(管理员)登录 2.1 简单描述
本用例用于用户登录系统。
2.2 前置条件
无。2.3 后置条件
用例成功后,用户登录进入系统。
2.4 事件流 2.4.1 基流
当用户提出登录进入系统请求时,用例启动。
(1)系统转到用户登录页面,提示用户输入用户名和密码。(2)用户填写用户名和密码信息。
(3)用户验证输入的用户名和密码,若正确(E-1),则转到首页,系统激活这一用户。
2.4.2 替代流
E-1:如果输入无效的用户名和(/或)密码,系统显示错误信息,用户 可以选择返回基硫的起始点,重新输入正确的用户名和(/或)密码;或者 取消登陆,用例结束。建立需求模型详细步骤
3.图书选购—使用用例图
建立需求模型详细步骤
3.图书选购—使用活动图
建立需求模型详细步骤
3.图书选购—进行用例描述 “图书选购” 3.1 简单描述
本用例允许用户在线选购图书。3.2 前置条件
用户选书前必须登录。3.3 后置条件
用户选择自己需要的图书,并将其添加到购物车中。3.4 事件流 3.4.1 基流
当用户想要进行图书选购时,用例启动。(1)用户单击选择选书页面。(2)系统显示图书列表。(3)用户提出选购某书。
(4)系统检查是否缺货(E-1),购物车中加入相应的图书信息。3.4.2 替代流
E-1:缺货时,屏幕显示缺货信息页面。用户选择缺货策 略(放弃还是等待直到有货)。
建立需求模型详细步骤
4.购物车管理—使用用例图
第四篇:网上书店系统分析与设计(定稿)
系统分析与设计大作业
学号: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
第五篇:信息系统分析与设计心得报告
信息系统分析与设计
专 业:信息与计算科学班 级:姓 名:学 号:指导老师:
—认知实习报告 信122
河北建筑工程学院数理系
二零一五年七月
《信息系统分析与设计》
《信息系统分析与设计》这门课程是我们在大三下半学期开设的一门学科。它主要从信息系统的基本概念出发,按照信息系统的生命周期,系统、详细地阐述了信息系统分析与设计的理论、方法和工具。是计算机专业类学生所要学的一门必不可少的课程。
《信息系统分析与设计》一书通过信息系统基础、信息系统概论、信息系统建设、信息系统模型、信息系统规划、领域分析、需求分析、信息系统体系结构设计、详细设计、实现与测试、信息系统管理、信息系统的应用等十二章的内容让我们对这门课程有了一个初步的认知。并且通过不断地学习逐步加深我们对这一学科的认识。
信息系统是利用现代信息技术,处理组织中的信息、业务、管理和决策等问题,并为组织目标服务的综合系统。在长达16周的学习之后,我们迎来了期待已久课程设计。在平时,我们每堂课都有认真的在听讲,并且从不迟到、不早退,更没有逃过课。因此,我们有些自大的认为自己已经对这门课有了一定的了解,所学的东西都很扎实了,已经可以独立地解决一些简单的问题了。但是通过这一次课程设计,彻底地暴露了我们学习中的不足。做一个管理信息系统,并没有我们以为的那么简单。在开始设计之前,我们要进行一些系统调查,要了解这一系统是否满足大众的需要,确定我们的设计切实可行而不是在做无用功。同时也要考虑经济、技术、社会等多方面的因素,才能确定是否应设计这一系统。
因为自己对知识的了解不够深刻,使得我在课程设计中走了很多弯路,好多东西自己都不是很了解,只有通过不断地翻阅书籍和上网查询才能够的已解决。不过我很珍惜这些弯路,它们使我的不足点充分的表露了出来。正所谓人在年轻时所犯的错误都会是今后宝贵的经验。现在在学校中犯错误,总要好过今后在工作中犯错误。同时,我在知道了自己的这些不足之后,尽自己所能的有针对性的对自己学习中的缺陷进行弥补,这样也能够更好地完善自己的知识体系。
在课程设计后,老师还给我们安排了一周的课程实习,实习范围很广,不限时间、不限地点,给了我们一个充分发挥的空间。不过要求对实习过程有一个深刻的思考、总结。在我看来,仅一周的时间用来实习是不够的。例如在大型企业的一个比较复杂的部门实习,一周的时间仅够我们熟悉业务,根本不能对所实习的项目有一个更深入的了解,更不要说是有所感悟了。所以,在这周内我并没有专门的寻找实习单位,而是针对我以前就从事的家教工作进行了深入的思考。
随着信息技术日新月异的发展,互联网已经涉及到了人们生活的方方面面,成为人们工作和生活中必不可少的组成部分。而我的家教工作也是在互联网上的中介系统找到的,通过教一定的押金给管理者,然后负责联系学生,给我们安排工作。不过,我发现这样的安排虽然减少了我们寻找工作的时间,但是却不能了解我们的服务对象的状况。我们不知道学生的具体情况,无法针对性的制定教学计划;学生对老师也不熟悉,不知道老师的教学路线。这样会加长师生的磨合期,不利于家教工作的进行。
因此,在学习了《信息系统分析与设计》这门课程后,在信息系统已经广泛应用于国民经济和人们生产生活的各个方面的今天,我觉得我们可以设计一个家教信息管理系统。
当今时代的两个显著特点就是世界经济一体化和以计算机为代表的信息技术的快速发展。我要设计的家教信息管理系统要经得起环境的挑战,可以随着计算机软件和网络技术不断地前进而前进,随着环境不断地变化而变化的。家教信息管理系统要逐步发展,能更好地适应社会的发展需求。
这个家教信息管理系统应是建立在互联网基础上的一种信息交流平台,面向所有网民提供服务。无论是找家教的学生还是做家教的教师,都可以通过该平台进行信息方面的交流。任何网友都可以自由地查看、搜索、发布该家教信息平台的信息。这个系统是区别于传统的家教中介的系统。
我计划开发家教管理系统是为了可以更好的了解家教教师、学生的特点。对系统的初步要求为:
1、系统可以管理家教教师的基本情况。
2、家教老师可以在网站上注册,发布自己的基本信息,然后想要寻找家教的学生就可以看到教师发布的信息。在家教信息管理系统上,想要辅导的学生可以根据自己的需求寻找与自己最贴合家教。
3、学生也可以在网站注册,发布一些自己的对老师的需求,而同时老师也可以通过这些需求寻找学生。
4、系统也提供了聊天功能,师生可以先通过交谈再确定两人之间是否合适。
5、注册的学生可以发表帖子,讨论话题,发表评论,也可以找到志同道合的朋友,共同学习。
针对系统功能我设计了功能模块图:
这只是我的一个初步的想法。具体的实现还要经过仔细调查之后才能开始。家教信息管理系统是我在学习了《信息系统分析与设计》之后,结合自己的家教体验所设计的。通过对实习的深入思考,对家教信息管理系统的思考,我对《信息系统分析与设计》这门课不仅仅是了解的更深入了,而且也有了一定的兴趣。并不像以前只是为了学习而学习,而是为了兴趣而学习。因此,我为自己今后的学习做了一个简单的规划,希望通过这些规划能够更好地充实自己,提高自己的能力。1、2、3、4、5、6、熟练掌握信息系统分析与设计的基本理论知识。熟练掌握信息系统的分析方法、设计方法和实现技术。培养学习组织、分析研究的基本能力。
培养综合运用所学知识分析和解决问题的基本能力。了解本专业发展前景以及与本专业相关领域的发展动态。寻找一些实习机会,培养实际工作的能力。
7、深入了解信息系统设计及开发方法的实际应用,掌握软件工具及其应用情况;了解本专业业务范围内的计算机运用生产与应用方法、信息组织形式、软件开发纪实过程及常用技术方法。
8、了解所学专业在国民经济建设中的地位、作用和发展趋势,重点掌握一些信息管理技术的发展前沿。