系统分析与设计实例.docx
- 文档编号:26051434
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:36
- 大小:712.81KB
系统分析与设计实例.docx
《系统分析与设计实例.docx》由会员分享,可在线阅读,更多相关《系统分析与设计实例.docx(36页珍藏版)》请在冰豆网上搜索。
系统分析与设计实例
1绪论
1.1背景及现状分析
1.1.1网上购书系统背景
从第一台电脑的诞生就注定要改变整个人类的生活方式。
Internet在全球的普及使得改变人类生活成为现实。
我们传统的生活方式大多都是身体力行的,无论是买东西,和人打交道等等。
在取得同样目标的前提下,我们或许早就厌烦了每件事情都必需要自己亲力亲为的方式。
互联网,让我们有了第二种选择。
从前我们读书看书都必须要有书本才行,而且是要纸质书本。
这就给我们带来了很多问题了。
纸质书无论是数量上还是质量上有可能都无法完全满足所有人的需要。
另一方面,纸质书是一种实物,因此,纸质书容易破损、丢失,而且购物、转借都必须像其他事情一样亲力亲为,这对于现在高节奏的生活方式无疑是一个累赘。
那么是否有种更简便的方式呢?
现在我们知道那就是网上书店了。
自从internet在世界上开始流行,其后,又随着通信技术,网络技术,安全技术等新技术的不断出现,使得我们生活在网上都成了可能。
书籍永远是人类进步的阶梯。
在各种各样的购物网站的不断涌现,网上购书网站也如雨后春笋般出现了。
因为网上书店有着与传统购书很大的优势。
网上书店最大的功能就是方便了读者更好的购书。
由于互联网的存在,使得网上的信息的全面性,因此读者可以在网上书店中快速准确的找到自己所需要的书籍,而非在传统购书中要到处跑书店所带来的繁琐。
网上书店中读者可以很容易的找到自己所需要的书籍,同样这相对于自己跑大书店然后慢慢找要省时间的多。
另一方面就是网上书店可以在线购买,这同样比传统购书的现金支付要方便的多。
从这么多方面来看,我们认识到了网上书店最大的优势就是便利。
1.1.2国内外网上购书系统发展情况
网上书店也是电子商务的一块内容。
我们知道电子商务最早开始的就是美国等国外发达国家了。
到现在,可以说发达的国家的电子商务系统已经发展得相当之成熟了。
大家耳熟能详的著名的网上书店就是亚马逊(Amazon)书店。
它是世界上销售量最大的书店。
大概能提供310万册的图书,比全球任何一家书店的存书都要多15倍以上。
亚马逊书店的1600名员工人均销售额37.5万美元,比全球最大的拥有2.7万名员工的Bames&Noble图书公司要高3倍以上。
这一切的实现,电子商务在其中所起的作用十分关键。
我们所知道的很多计算机科学方面的书,如很多O'Reilly等出版的书籍都在亚马逊网上书店上有很高星级的评价。
而且这些都是世界知名的。
在国内也有很多专门的网上书店。
如比较知名的有卓越网,当当网,还有就是综合型的网上购物网站,如淘宝网、当当网、卓越网等等。
在我国虽然不是电子商务的先驱,但无疑随着Internet的恩惠,我们普通人也享受到了网上书店带来的不一般的便利。
现在越来越多的人已经习惯于在网上书店上买书。
不但是因为网上购书更便捷,拥有更丰富的书籍信息,而且一般而言,网上购书的成本要低于传统的书店购书。
很明显网上书店不需要太多的书城,只需要一个书库就行了。
能同时为供应商和消费者节约很多成本。
从近年来的统计来看,网上书店正越来越受到消费者的青睐,这个主要的群体自然是学者学生之类的。
网上书店同时也为缓解就业压力等又指出了一个方向。
我们有理由相信,随着互联网,通信技术,支付技术和安全手段等不断的发展,网上书店是属于一个朝阳产业。
1.1.3网上购书存在的一些问题
网上购书主要面临着如下的几大问题:
(1)网上购书的地域性还是比较明显的,并没有完全做到完全的无界限性。
这主要表现在网上商店主要集中在北京、上海、广州等一线大城市。
同时网上购书环境差别也比较大。
一线城市的购书到货满意度无论是到货率还是到货时间,都比较有保证,而其他非一线城市则较难令人满意。
究其原因也是多方面的,如体现在卖方的积极性,快递的效率,交通的效率等等。
(2)网上书籍价格参差不齐。
同一商品在同一地域经不同卖家的价格有时会相差很大,这有偏离网上购书的价廉物美的设想。
而且由于购书网上的卖家参差不齐,对于买家的正确购物有一定的误导性。
(3)网站服务有待加强。
网上购书最大的特点也是缺点是你看不到卖家本人,你看不到真正的实物,甚至你看不到自己的钱去了哪。
这样就会有很多问题产生,而这些问题产生后就需要网站客服的支持和解答。
虽然现在的网站都设有客服,总的来说也有客服人员,由于问题的复制性,问题的真正的解决率实际并不很高。
(4)网上购书的真实性。
网上都可以是虚的。
因此必需要有能完全保证无论是买家,卖家,商品的真实性。
但实际上,网上的假货,问题货,盗版货都还是很多,这为消费者造成了一定的威胁。
(5)网上购书的安全性。
这其实也是所有参与网上购书人员最为关心的一个问题了。
网购的安全性也涉及到多方面,比如网上的个人资料,网上的金钱交易等。
网站在这方面应该予以更多的重视。
同时应呼吁政府对网上市场的规范出台相应的法规,以进一步净化网购的环境和保证网购的完全。
1.2系统目标
本系统需要实现的目标简要概括如下:
(1)用户管理功能。
提供基本的用户注册和登录功能。
对于非注册用户,只能浏览、搜索书籍,不能查看用户信息,使用购物车等功能;对于注册用户,除了非注册用户功能外,还可以使用购物车,订单管理,用户信息修改,发表评论等。
(2)书籍管理功能。
所有人员可以浏览书籍,搜索书籍。
注册用户可以在购物车中增删书籍;管理员可以增加、更新、删除书籍信息。
(3)购物车功能。
购物车方便了用户的购买行为。
可以一次添加多种商品,统一结算等。
(4)订单处理。
注册用户确认购物后的一种凭证。
用户可以查看所有的订单情况。
(5)管理员功能。
这里管理员也充当了商家的功能。
可以查看、修改会员信息,删除会员。
对书籍的全部操作,对评论,订单,库存等的操作等。
1.3开发工具简述
1.3中技术可行性中已经简要说明了开发本系统可能用到的一些技术。
这里简要的对几种开发技术进行论述。
页面表现层。
本系统的页面显示层所使用的语言框架有:
HTML,CSS,Velocity和少量JavaScript等。
这里重点说明下Velocity模板技术。
Velocity是一个基于java的模板引擎(templateengine)。
它允许任何人仅仅简单的使用模板语言(templatelanguage)来引用由java代码定义的对象。
当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。
Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。
Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。
Velocity也可以为Turbineweb开发架构提供模板服务(templateservice)。
Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
本系统中的webx框架对velocity进行过一些重构,使得velocity更易于使用。
Web层。
Web层主要采用了基于Turbine风格的Web框架。
该框架与主流的struts等MVC框架类似。
不过web框架中添加了十分灵活的pipeline的管道机制,十分丰富的Service服务,如FormService,PullService等。
并可以通过简单的配置文件实现很多丰富的功能。
使用spring的IOC框架进行依赖注入,方便的将分离的DAO层,AO层,Manage层,Module等通过注入方式联系起来,这样有利于模块的分块,层次清晰,也有利于重构。
主要的业务处理由spring的CommandDispatcher实现。
十分灵活,透明。
业务层。
Web框架很好的分离了业务层和web层。
Web层的主要操作都在Module中的Action中完成;业务层从层次上来说,大致包括AO,Manage等。
业务层与web层的分离,完全符合高内聚,低耦合的要求。
数据访问层。
数据访问层使用的框架为ibatis。
iBATIS提供的持久层框架包括SQLMaps和DataAccessObjects(DAO),相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,ibatis是一种“半自动化”的ORM实现,iBATIS需要开发人员自己来写sql语句,这可以增加了程序的灵活性,在一定程度上可以作为ORM的一种补充,程序设计人员应该结合自己的项目的实际情况,来选择使用不同的策略。
iBATIS和Hibernate都做了映射,但iBATIS是把实体类和sql语句之间建立了映射关系,这种策略可以允许开发人员自己来写合适的sql语句,而Hibernate在实体类和数据库之间建立了映射关系,sql对于开发人员是不可见的,对于那些数据量非常大的应用,无法去优化sql语句。
所谓“半自动”,可能理解上有点生涩,纵观目前主流的ORM,无论Hibernate还是ApacheOJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制,程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate或者OJB提供的方法完成持久层操作,程序员甚至不需要对SQL的熟练掌握,Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。
而已ibatis比hibernate较容易掌握,根据需要,本系统采用较小巧灵活的ibatis采用ORM工具。
数据库采用开源的MySql5.1。
开源的MySql在开源社区里一直在不断壮大。
MySql虽然比SQLServer,Oracle小,但它的功能一点也不弱。
对于本系统来说,使用MySql完全可以胜任。
加上它的小巧免费,决定采用Mysql作为数据库。
2系统分析
2.1系统可行性分析
系统可行性分析的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决,系统方案在经济上、技术上和操作上等是否可以实现和接受。
因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行系统分析和设计的过程。
(1)技术可行性
本系统运行在windows上,硬件上不存在问题。
实现技术上,采用较经典的基于MVC的web框架;表现层使用velocity模板技术,web层使用具有Apache的一个开源框架Turbine风格的集合了spring框架的WEB框架,数据访问层使用IBATIS框架,数据库使用Mysql5.1版。
部署在Tomcat上运行。
所有这些技术和产品都已较为成熟,技术可行性应该是没有问题的。
(2)经济可行性
从绪论中的可以看到,网上书店与传统书店相比具有十分明显的优势,从计划到系统实现,我们所使用的所有技术都是免费开源的。
从硬件角度来看,一个小型的网上书店只需要一台较好的windows作为服务器就可以满足要求,可以说运行的成本是十分低廉的;但同时带来的效益完全可以有利可图。
因此经济上也是可行的。
(3)操作可行性
本系统的界面操作都较为简洁、方便,完全可以满足一般人群的操作需求。
不用太多的计算机知识,友好的图形和提示可以上新手尽快上手。
(4)其他方面
在其他方面,如是否符合当地法律法规,利益冲突等方面都是可行的。
综上所述,本购书系统中技术上、经济上、操作上和其他方面都是可行的,因此,继续本系统的分析论述。
2.2系统功能需求分析
网上购书系统要求模拟现实中的买书场景,我们以此来进行需求分析。
(1)基本业务功能
用户可以注册登录网站,对自己基本信息进行维护,浏览查找自己所需要的书籍,添加到购物车,在购物车中可以添加删除数据,查看购物车中内容,下订单。
(2)基本数据维护功能
管理员可以对所有书籍进行管理,包括添加、删除、更新等操作;对会员可以进行查看、修改、删除等操作;库存管理和订单处理。
具体的购书系统管理功能图如下:
图2-1系统管理功能图
2.3系统业务流分析
业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向。
业务流程图表示业务的流向。
图2-2系统业务流程图
2.4系统数据流分析
数据流程图(DFD)是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合的反映出信息在系统中的流动、处理和存储情况。
数据流程图是表示操作或数据的方向。
数据流分析是从现在业务中抽取由计算机自动或半自动完成的那一部分活动的过程。
各符号的表示如2-3所示:
图2-3各符号的表示
2.4.1顶层数据流程图
顶层数据流程图主要介绍了整个系统的运行边界,如图3-9所示,展现了在线购书系统的数据数据需求和生成数据的功能。
图2-4顶层数据流图
2.4.2一层数据流程图
图2-5一层数据流图
2.4.3二层数据流图
图2-6购物车数据流图
图2-7用户信息管理数据流图
图2-8订单管理数据流图
图2-9评论管理数据流图
图2-10评论管理数据流图
图2-11库存管理数据流图
2.5数据字典的定义
数据字典是关于数据信息的集合,是在数据流图的基础上,对其中出现的每个数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等进行定义的工具。
其作用是在软件分析和设计的过程中,提供关于数据的描述信息。
数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。
2.5.1数据项的定义
数据项编号:
i-01
数据项的名称:
用户编号
简述:
用户在网站的标识
类型及宽度:
int,8位
取值范围:
数字
数据项编号:
i-02
数据项的名称:
用户名
简述:
用户自己取的名字,用以唯一标识用户名
类型及宽度:
字符,50位
取值范围:
文本
数据项编号:
i-03
数据项名称:
密码
简述:
登录时用以检验用户名的输入是否正确
类型及宽度:
字符,50位
取值范围:
文本
数据项编号:
i-04
数据项的名称:
角色
简述:
分配用户的权限
类型及宽度:
短整型,2位
取值范围:
0或1(0表示会员,1表示管理员)
数据项编号:
i-05
数据项名称:
书籍编号
简述:
唯一标识书籍
类型及宽度:
字符,25位
取值范围:
文本
数据项编号:
i-06
数据项的名称:
书籍名
简述:
用来标识书籍名称
类型及宽度:
字符型,25位
取值范围:
文本
数据项编号:
i-07
数据项的名称:
类目编号
简述:
用来对书籍进行按类目分类
类型及宽度:
字符,25位
取值范围:
文本
数据项编号:
i-08
数据项的名称:
类目名称
简述:
用来标识类目名
类型及宽度:
字符型,25位
取值范围:
文本
数据项编号:
i-09
数据项的名称:
订单号
简述:
用来唯一标识一笔订单
类型及宽度:
长整型,32位
取值范围:
数字
数据项编号:
i-10
数据项的名称:
订单状态
简述:
用于标识订单的状态
类型及宽度:
字符,2位
取值范围:
p(等待),y(成功)n,(失败)
数据项编号:
i-11
数据项的名称:
评论编号
简述:
用于唯一标识每条评论的编号,自动产生
类型及宽度:
整型,8位
取值范围:
数字
数据项编号:
i-12
数据项的名称:
评论内容
简述:
对于每本书籍的评论信息
类型及宽度:
字符
取值范围:
文本
2.5.2数据流的定义
数据流编号:
D-01
数据流的名称:
用户信息
简述:
用于记录用户的一些基本信息
数据流来源:
用户表
数据流去向:
用户
数据流组成:
用户编号+用户名+用户密码+权限+其他信息
数据流编号:
D-02
数据流的名称:
订单信息
简述:
用于记录用户所生产订单的信息
数据流来源:
购物车
数据流去向:
订单表
数据流组成:
订单号+用户编号+书籍编号+订单状态+收件人姓名+收件人地址+支付帐号+支付日期+总价
数据流编号:
D-03
数据流的名称:
书籍信息
简述:
记录书籍信息
数据流来源:
书籍表
数据流去向:
用户
数据流组成:
书籍编号+书籍名+书籍类目+书籍图标+书籍描述
数据流编号:
D-04
数据流的名称:
评论信息
简述:
记录评论内容
数据流来源:
用户
数据流去向:
评论表
数据流组成:
评论编号+书籍编号+用户编号+评论内容+评论时间
数据流编号:
D-05
数据流的名称:
购物车信息
简述:
记录购物车中的基本信息
数据流来源:
购物车
数据流去向:
填写订单处理
数据流组成:
用户编号+书籍编号+书籍单价+书籍描述
2.5.3数据存储的定义
数据存储编号:
F-01
数据存储名称:
用户表
简述:
用于描述会员的基本信息
数据存储组成:
用户编号+用户名+用户密码+权限+其他信息
关键字:
用户编号
相关联的处理:
查看会员信息,更新会员信息,添加到购物车
数据存储编号:
F-02
数据存储名称:
书籍表
简述:
用于描述书籍的基本信息
数据存储组成:
书籍编号+书籍名+书籍类目+书籍图标+书籍描述
关键字:
书籍编号
相关联的处理:
查看书籍信息,更新书籍信息,添加到购物车
数据存储编号:
F-03
数据存储名称:
订单表
简述:
用于描述订单的基本信息
数据存储组成:
订单号+用户编号+书籍编号+订单状态+收件人姓名+收件人地址+支付帐号+支付日期+总价
关键字:
订单号
相关联的处理:
填写订单信息,查看订单,生成订单
数据存储编号:
F-04
数据存储名称:
评论表
简述:
用于描述评论的基本信息
数据存储组成:
评论编号+书籍编号+用户编号+评论内容+评论时间
关键字:
评论编号
相关联的处理:
添加评论信息,删除评论信息
2.5.4数据处理逻辑的定义
处理逻辑编号:
P1.1.2
处理逻辑名称:
添加到购物车
简述:
用户将书籍添加到购物车
输入的数据流:
书籍信息,会员信息
处理:
把选中的数据添加到购物车
输出的数据流:
购物车信息
处理逻辑编号:
P1.2.2
处理逻辑名称:
更新会员信息
简述:
修改会员信息并保存
输入的数据流:
会员信息
处理:
修改会员信息并保存
输出的数据流:
会员信息
处理逻辑编号:
P1.3.2
处理逻辑名称:
生成订单
简述:
用户对购物车中的书籍进行购买
输入的数据流:
会员信息
处理:
购物车中信息转化为订单信息
输出的数据流:
订单信息
3系统设计
系统分析阶段解决了管理信息系统“做什么”的问题,而在系统设计阶段将解决“怎么做”的问题。
它是管理信息系统开发周期中的第三个阶段,在这个阶段中,我根据信息分析中所描述的新系统逻辑模型,考虑到用户实际的资源、技术条件、经济条件及时间进度要求,由逻辑(非技术)模型导出物理(技术)模型。
3.1系统总体结构设计
系统总体结构设计是根据信息分析数据流程图的结果,按照结构化的系统设计方法而进行的。
结构化设计的基础是模块化。
在线购书系统的功能结构图如图4-1所示:
图3-1系统功能结构图
对该功能结构图的具体论述如下:
(1)用户管理模块
用户注册,登录:
用户需输入基本的用户名和密码,还可再完善输入其他电话,电子邮件,住址等信息
②用户信息修改:
用户可以修改自己的个人信息和密码及其他相关信息;
③用户信息查看:
会员可以查看自己的个人信息。
用户查看订单:
用户可以查看已经生成的订单信息,并进行一些操作
发表评论:
用户可以对书籍发表评论信息。
(2)书籍管理模块
1书籍浏览:
用户可以对所有书籍进行浏览
2书籍更新:
只有管理员可以对所有书籍进行添加、删除、更新等操作
3书籍搜索:
可以输入查询条件退书籍进行搜索
(3)购物车模块
1更新购物车:
用户可以查看购物车中的书籍信息,并可以添加和删除购物车中书籍。
2查看购物车:
用户可以随时查看购物车中的信息,包括书籍信息,价格信息等
3生成订单:
用户可以确定购物中需购物的书籍,然后下订单,生成订单信息。
(4)管理员模块
1用户管理:
对用户的信息进行审核,对不符合者进行删除,也可以根据客户的需要对它的基本信息进行修改;
2库存管理:
可以查看各书籍的库存量,并可以随时更新库存信息。
3订单处理:
对用户的订单进行处理。
4评论管理:
对用户的评论信息的一些操作
3.2系统数据库的设计
数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。
数据库设计是需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系的、数据冗余少、存取效率高、能满足多种查询要求的数据模型。
3.2.1数据库的概念设计
概念设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
其主要工作就是设计概念模型,该模型能将用户的数据明确的表达出来。
概念模型是一种面向问题的模型,它反映了用户的实现环境,并指出了从用户角度看到的数据库,它是处理多种应用数据的方法的组合。
概念模型与单独的应用无关,与数据库管理系统及数据库的实现无关,因此,它是用户与设计人员之间的桥梁,它既是明确表达用户需求的一个模型,又是设计数据结构的基础。
概念模型的设计方法有多种,其中实体—联系模型(E—R模型)是一个典型代表,它是描述现实世界的一个简明而有利的工具。
3.2.2实体-联系图
该系统的全局实体-联系图如图4-2所示:
图3-2全局E-R图
其中各个实体的属性显示如下:
图3-3用户实体
图3-4书籍实体
图3-5类目实体
图3-6评论实体
图3-7订单实体
3.2.3数据库的逻辑设计
逻辑设计的主要任务就是设计数据的结构,即按照数据库管理系统提供的数据模型,转换已设计的概念模型,实质上是把概念模型(即E-R模型)转换为所选用的DBMS所支持的模式。
逻辑设计的主要目的是保证数据共享,消除数据冗余,实现数据的逻辑独立性,易懂易用,有利于数据的完整性及安全性控制,且尽量降低开销。
逻辑设计过程主要是把概念设计阶段的概念模型转化为数据库所能识别的表模型,也即数据库模式设计。
关系模型的特点之一是概念的单一性。
无论是实体还是实体间的联系都用关系来表示。
关系这个特点使得转换工作比较直接。
具体的转换原则如下:
(1)一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的关键字就是关系的关键字。
(2)一个1:
1的联系转换为一个关系。
每个实体的关键字都是关系的候选关键字。
(3)一个1:
n的联系转换为一个关系。
多个实体的关键字是关系的关键字。
(4)一个n:
m的联系转换为一个关系。
联系中的各实体关键字的组合组成关系的关键字(组合关键字)。
(5)具有相同关键字的关系可以合并。
根据上述规则,对图所示的E-R图进行转换,可以得到各“关系”(带“—”的为关键字,“﹏﹏”的为外部关键字):
用户(用户id,用户名,密码,角色,电子邮件,地址,邮编,电话,信用卡号,信用卡类型,信用卡过期时间)
书籍(书籍id,类目id,书名,描述,图标,库存,单价)
类目表(类目id,类目名,图标,描述)
订单(订单id,用户id,书籍id,订单中分项号,数量,状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统分析 设计 实例