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