Island Hopper News系统详细设计文档Word下载.docx
《Island Hopper News系统详细设计文档Word下载.docx》由会员分享,可在线阅读,更多相关《Island Hopper News系统详细设计文档Word下载.docx(20页珍藏版)》请在冰点文库上搜索。
第1章引言
1.1编写目的
需求分析说明书是为软件的开发者能更好的理解开发的需求,避免由于对问题认识的不清或错误理解而增加更多的开发成本。
需求分析是软件系统生存期中定义阶段的最后一个步骤。
是作为整个软件开发范围的指南,是软件开发人员开发出正确的符合用户要求的软件的重点。
是为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档该文档将最终交给软件具体开发人员进行具体的开发,其针对的对象是软件开发人员。
1.2背景
设计这个应用程序是为一个虚构的公司--IslandHopperPublishing解决商业问题。
这个公司在PugetSound区的一个小岛上,过去一直印刷一个叫IslandHopperNews的周报。
IslandHopperNews的编辑想把报纸转为电子报纸,那样的话居民们就能够整年都看到最新的岛上新闻。
把整个报纸转为电子报纸是一个巨大的挑战,编辑认为它不仅仅意味着比创建一串网页和把它们集合到服务器上。
为了把IslandHopperNews变成一个真正伟大的电子报纸,需要转变的不仅是它本身,但是许多幕后的,通常的印刷报纸的处理工作是手工的,而不是自动地。
由于早已被手工处理的纯数字所搅乱,更不用说用手工来做所有工作带来的沉闷,编辑决定尽可能的使出版过程自动化。
希望做一个自动的广告分类系统,实现出版过程的自动化。
1.3定义
a.B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器(Browser),如Chorme或InternetExplorer,服务器安装数据库。
浏览器通过WebServer同数据库进行数据交互。
b.三层结构:
三层客户机/服务器应用程序使用一个中间或中间层,应用程序服务器,它在客户机应用程序和后端数据库之间操作。
中间层存储了系统的商业逻辑,并协调客户机上与后端数据库交互的显示。
1.4参考资料
a.参考书籍:
软件工程---方法与实践,许家怡等编著,电子工业出版社
b.使用的软件:
eclipse6.5版,mysql,Windows7及以上版本的操作系统以及IE6.0以上版本的浏览器。
第2章系统概述
2.1系统功能框架
本系统的开发主要分为以下几层:
表示层、业务层、DAO层、持久层。
业务层和DAO层都通过接口与其它层进行连接从而减小了各层之间的耦合度,实现高内聚、低耦的思想。
分层结构图如下所示。
图2-1系统分层结构
DAO层
DAO层完成连接数据库增删改等实现细节,例如SQL语句怎么写、怎样把对象放入数据库等等。
DAO将底层数据访问操作和业务层逻辑分离开,对业务层提供面向对象的数据访问接口。
而业务层调用DAO接口实现各种业务方法,如验证用户密码是否正确。
Service业务层
业务层位于上层的表示层和控制层,依赖于下层的业务层的实现(DAO),而下层业务层不应该依赖于上层的表示层和控制器的实现。
业务层提供了处理应用程序的业务逻辑和业务校验,如验证用户登录系统的密码是否正确;
提供了管理事务,允许与其它层相互作用的接口。
Servcie层是面向功能的,一个功能模块比如说银行等级并完成一次存款,把请求给Service层,Service层将这个功能分解成许多步骤调用底层的DAO来实现这次存款。
有时,会看到Servcie层和DAO层的方法是类似的,是因为Service层的需求不是很复杂,不用再对Service层完成太多包装或者处理就可以直接调用DAO的方法。
Action控制层
控制层的控制器Action接受用户的输入并调用业务层的业务方法和表示层的组件去完成用户的请求。
当Web应用单击Web页面中的提交按钮来发送HTML表单时,控制器接受请求并调用相应的业务层方法去处理请求,然后调用相应的视图来显示业务层返回的数据。
Struts中的控制器由ActionServlet类和Action类来实现,ActionServlet主要负责接受HTTP请求信息,根据配置文件struts-config.xml的配置信息,把请求转发给适当的Action对象。
如果该Action对象不存在,ActionServlet会先创建这个Action对象,Action充当用户请求和业务逻辑处理之间的适配器,其功能是将请求与业务逻辑分开,Action根据用户请求调用相关的业务逻辑组件,Action类侧重控制应用程序的流程,而不是实现应用程序的逻辑。
Spring
服务器各种组件的生成都是由Spring容器来控制,被看作是Spring中的一个Bean,它可享受Spring提供的所有服务(依赖注入、实例管理、事务管理等)。
JSP视图层
视图是用户看到并与之交互的界面,视图向用户显示相关的数据,并能接受用户的输入数据,但不能进行任何实际的业务处理。
视图可以向业务层查询业务状态,但不能改变业务层,视图还可以接受模型发出的数据更新事件,从而对用户界面进行同步更新。
视图其实就是一组JSP文件,在这些JSP文件中没有业务逻辑,也没有业务层信息,只有标签,这些标签可以是标准的JSP标签或客户端标签,如Struts标签库中的标签。
使用框架的最大好处是不仅在于减少重复开发工作量,缩短开发时间,降低开发成本,同时,使程序设计更加合理,程序运行更加稳定等。
基于这些原因,基本上现在开发中,都会选择某些合适的开发框架,从而达到快捷,高效的目的。
2.2开发技术与工具
主要开发工具为:
Eclipse8.6、Mysql6.0、Tomcat6.0
主要技术包括:
J2EE轻量级框架S2SH
S2SH集成框架是Struts、Spring和Hibernate三种技术的有机融合,是目前应用最广泛的JavaEE架构。
在S2SH集成框架中,Struts的作用是提供MVC模型,将界面、业务逻辑和数据分离,并提供一个高可扩展的架构。
Spring作为核心,向上整合MVC框架,向下整合ORM框架,使用Spring的IoC容器来管理各组件之间之间的依赖关系,Spring的声明事务将负责逻辑层组件的事务管理。
而Hibernate提供了一个抽象的数据服务视图,将用户对数据库的访问进行高度抽象。
Struts是目前创建Web应用最常用的表现层MVC框架实现,是JakartaApache的一个开源项目。
基于Model2的Struts框架利用控制器和定制标签库将应用中的模型和视图分离,达到了层间松散耦合的效果,同时提高系统的灵活性、重用性和维护性。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
2.3用户特点
由于系统的界面清晰,美观,操作简单、方便,所以操作人员只需具备一定的电脑操作技能即可。
管理员(维护人员)不需要任何数据库专业知识技能,本系统可以极大地提高工作效率,预期使用频率较高。
第3章功能需求
3.1功能描述
1.用户登录与注册
用户要使用该系统提供的各项功能,就必须先登录,因此注册登录模块是必须最先实现的,该系统拟采用SSH整合方式实现该功能模块,建立用户的DAO对象,使用Hibernate完成对象与数据库中用户表的映射,编写业务层逻辑组件,并采用Struts2完成RegisterAction的编写,实现对注册用户增加、删除和修改等操作;
2.广告管理
支持(增加、删除和更新)分类广告。
广告部雇员如果要对广告进行管理,必须首先要登录系统,登陆成功后,雇员判断广告的合法性,若合法,向顾客(会员)发送“请及时付费”的通知,顾客(会员)付费后,广告部雇员将广告文本输入到IslandHopperPublishing公司数据库的分类广告表,收取支票。
否则拒绝用户请求;
如果一个顾客(会员)想改变广告的文本,或者在印刷前撤销广告,需要顾客用电话和e-mail和分类广告部联系,提交改变请求。
分类广告部雇员修改数据库中的广告文本,或者从数据库中删除广告。
3顾客(会员)记录
支持(增加、删除和更新)顾客记录。
为了更新和删除,广告部雇员如果要对顾客(会员)记录进行操作,必须首先要登录系统,登陆成功后,用户(广告部雇员)必须首先在数据库检索顾客记录,然后进行相应的操作。
4.分类目录
广告部雇员登录系统后,可以对分类目录进行添加、修改、查询和删除等操作。
5.发票
顾客(会员)付费后,系统为其自动生成付款的发票的ID,会计部雇员登录
系统后,可以对发票明细进行修改等,然后将发票送给顾客。
6.费用支付
会计部雇员付款时,必须首先检索数据库以得到顾客的记录,他们也必须知道这笔费用对应的发票编号。
然后将费用和记账信息输入到IslandHopperPublishing公司数据库中的会计和顾客信息表中。
3.2功能建模
系统主要包括的功能包括用户注册与登录(用户注册、登录验证、用户修改密码等)、广告(添加、删除、浏览、修改)、会员记录(添加、删除、查询、更新)、分类目录(添加、删除、浏览、修改)、发票(添加、修改、删除、查询发票明细)、费用支付(添加、修改、删除、查询账目)系统系统用例分析如图3-1所示。
3.1.1用例图
1.建立系统用例模型
(1)角色的确定
在UML中,角色代表位于系统之外和系统进行交互的一类对象。
用它可以对软件系统与外界发生的交互进行分析和描述。
在本系统的UML建模中,可以创建一下角色:
财务部雇员;
顾客;
雇员;
广告部雇员;
会员;
银行;
游客。
(2)创建用例
IslandHopperPublishing应用系统根据业务流程可以分为以下的几个用例:
1、与会员有关的用例:
登陆;
修改广告;
放置广告;
浏览分类广告。
2、与游客有关的用例:
浏览分类广告;
注册。
3、与财务部雇员有关的用例:
管理广告;
登陆后台。
4、与广告部雇员有关的用例;
登陆后台;
管理发票。
(3)建立用例图
整个系统的用例图如图所示
图3-1
3.1.2类图
类图(Classdiagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。
结合3.2功能描述的分析,可以识别出“IslandHopperPublishing应用系统”中的一些类。
边界类:
放置广告界面、会员注册界面、分类广告显示界面、广告管理界面、顾客记录管理界面、付款界面
控制类:
AdvertisementAction类、CategoryAction类、PaymentAction类、
InvoiceAction类、CustomerAction类
实体类:
表3-1所示
序号
类名称
类说明
1
员工
抽象出来的员工
2
会计部雇员
进行财务管理的员工
3
广告部雇员
进行广告管理的员工
4
用户
抽象出来的普通顾客
5
会员
享有系统特殊功能的顾客
6
分类广告
广告基本信息
7
分类目录
分类目录基本信息
8
支付
支付信息
9
发票
发票信息
图3-2员工实体类类图
图3-3系统实体类类图
整个系统主要包括分类广告模块、会员模块、分类目录模块、发票模块、支付模块。
图3-4分类广告模块类图
图3-5会员模块类图
图3-6分类目录模块类图
图3-7发票模块类图
图3-8支付模块类图
3.1.3活动图
2.建立系统动态模型
(1)活动图
此图是描述放置广告的活动图。
在图中,会员,广告部雇员,会计部雇员三者发生了相互关系。
涉及会员提交广告信息,广告部雇员判断是否合法,会计部雇员换算,并放置广告。
用泳道对三类对象的活动进行描述。
图3-9
经过可视化建模可以较清楚的了解整个广告放置的业务流程。
3.1.4时序图
时序图通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
发票管理时序图
图3-10
广告管理时序图
图3-11
会员登录用例场景分析
图3-12
浏览分类广告信息时序图
图3-13
提交广告信息时序图
图3-14
注册时序图
图3-15
3.1.4协作图
发票管理协作图
图3-16
广告管理协作图
图3-17
会员登录协作图
图3-18
浏览分类广告协作图
图3-19
提交广告信息协作图
图3-20
注册信息协作图
图3-21