J2EE 课程设计实训项目——《蓝梦网上商城》——系统UML包图的设计
J2EE 课程设计实训项目——《蓝梦网上商城》——在系统表示层页面中应用OSCache缓存技术

J2EE 课程设计实训项目——《蓝梦网上商城》——在系统表示层页面中应用OSCache缓存技术1.1.1应用OSCache缓存框架改善系统运行性能(实现页面中的动态内容的缓存)1、添加OSCache的系统包文件到本项目中(1)主要的jar包文件:oscache-2.3.2.jar和commons-logging.jar文件(已经在前面加入过,则不再需要)(2)最后为下面的结果状态2、将oscache.properties、oscache.tld放入WEB-INF\class目录中(1)导入这两个文件(2)最后为下面的状态3、修改web.xml文件以增加下面的内容,增加对OSCache提供的taglib的支持(1)对于JSP1.2的Web应用系统为下面的状态<taglib><taglib-uri>oscache</taglib-uri><taglib-location>/WEB-INF/classes/oscache.tld</taglib-location> </taglib>(2)对JSP2.0的Web应用,则不再需要了上面的设置注意:可以在IDE中通过帮助来获得我们的JSP版本。
4、在需要缓存的页面中添加下面的内容(1)对于JSP1.2的Web应用系统为下面的状态<%@ taglib uri="oscache" prefix="cache" %>(2)对于JSP2.0的Web应用系统为下面的状态<%@ taglib uri="/WEB-INF/classes/oscache.tld" prefix="cache" %> (3)根据应用的要求添加对应的标签<cache:cache key="allTitleInfoList" refresh="false" scope="session"> //页面中待缓存的动态数据</cache:cache>5、测试上面的缓存的页面效果。
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统需求分析与建模实例

《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统需求分析与建模实例1.1.1网上购物系统业务流程分析1、可行性研究的前提由于近几年互联网形态下的外部大的市场环境日趋成熟,从而对传统产业的影响不可忽视。
目前我国的大中城市,电脑和网络的应用已经非常普遍,互联网的迅速崛起便催生出网上购物,这一新兴购物方式。
随着经济的发展和人们思想意识的逐渐开放,更多的人加入到买电脑上网的行列。
网上购物人群迅速扩大,各种网络设施的完善,经济的持续发展及人们生活水平的提高,网上购物已逐渐成为人们习惯性的行为。
其次,网络正在冲击着人们的传统消费习惯和思维、生活方式。
越来越多的人们逐渐习惯于到网上查找信息,当他产生某种需求到网上查找相关产品和企业信息时就成了潜在的客户,当信息能满足他的需要的时候,便成为了该应用系统的客户。
2、网上购物业务流程概述顾客首先访问网上购物网站,浏览网页。
接着如果是新用户就登录注册界面,输入相关信息进行注册,立刻成为用户。
老用户就直接登录界面。
注册成为会员后,就能够享受到商场提供的各种方便的服务,可以利用商品查询的功能,快捷地查询到自己需要购买的商品,为顾客实现不出门也能方便快捷地了解到自己需要购买的商品的价格,生产日期。
找到自己需要购买的商品以后,就可以进行购物了。
在需要购买的商品点击购买按扭,进入订货界面,进行订货。
客户可以查询自己的订单,看看是否交易成功。
成功后就进行付款,最后可以选择继续购买还是注销退出,实现网上购物整个活动过程。
3、用户购物子系统用例图1.1.2网上购物系统业务功能分析《网上购物系统》的建构主要分为两部分:前台客户功能和后台管理功能。
整个系统将实现以下功能。
1、前台客户功能1)用户注册2)用户登录3)用户信息修改4)商品查询5)购物车6)订单查询7)用户留言8)结账2、后台管理功能1)商品维护2)查看用户3)查看留言3、前台业务功能分析4、后台业务功能分析1.1.3系统各个用例的事件流建模1、用户模块——用户登录子功能模块(1)功能解释后台管理登录时,要求检验用户名、密码、校验码。
《J2EE系统架构和程序设计》课程设计实训项目——蓝梦集团网上求职招聘系统项目系统设计评审总结报告说明书

《J2EE系统架构和程序设计》课程设计实训项目——蓝梦集团网上求职招聘系统项目系统设计评审总结报告说明书1.1.1系统设计评审会议记录1、会议时间XX月XX日2、会议人员张三(组长),李四(组员),王五(组员)3、会议地点教学楼4064、会议目的本次设计和开发评审会议的目的是小组全体人员对软件设计的技术文档进行评价,以判断确定设计和开发能否实现软件产品预先定义的规格,同时通过评审标识出与规格和标准的偏差,它向管理部门提供充足的证据以证明:1)设计是否符合了其规格要求;2)设计是否满足相关法律、法规以及企业标准的要求;3)软件产品的更改得到了恰当地实施;4)软件产品的更改只对那些规格发生了更改的系统区域有影响,没有引入新的问题5、会议讨论范围会议讨论对软件设计和开发的原始设计以及设计与开发的更改进行评审。
6、角色和职责(1)主审人主审人是技术评审的指挥人员,负责评审活动的组织、结论、书面报告和问题跟踪,主审人由张三同志承担。
(2)评审专家评审专家应由满足要求的技术人员担任,负责向评审组成员提出自己的评审意见和建议。
评审专家是由李四、王五同志承担。
(3)质量保证人员由杨六同志承担。
(4)会议记录员由赵七同志承担。
(5)顾客和用户代表由章八、王九同志承担。
(6)相关领导和部门管理人员无。
7、评审时机在项目的详细设计文档出来后,由项目开发组长和技术总工共同组织本项目的设计评审会议,对项目的设计结果进一步理性地思考,对项目的设计结果(架构和类)进一步完善和重构,并考虑如何应用有关的设计模式(架构和编程实现等方面)优化系统的设计以最终达到系统的可扩展性、可维护性。
8、评审的基本要求(1)项目的设计评审会议在本次执行,不排除在项目开发过程中出现变动,再次召开评审会议的可能。
(2)评审结论应明确;(3)评审资料应及时归档。
9、评审依据(1)立项说明书,软件需求规格说明书,软件概要设计文档和软件详细设计文档。
(2)软件设计文档国家标准GB8567—88 中的相关规定。
J2EE 课程设计实训项目——《蓝梦网上商城》——系统详细设计说明书(第3部分)

J2EE 课程设计实训项目《蓝梦网上商城》系统详细设计说明书编写人(签字):日期:年月日用户方项目代表(签字):日期:年月日开发方项目代表(签字):日期:年月日质量保证代表(签字):日期:年月日1目录第1章引言···············································································错误!未定义书签。
1.1编写目的 ········································································错误!未定义书签。
J2EE 课程设计实训项目《蓝梦网上商城》——对系统业务处理层用户信息组件添加AOP ThrowsAdvice拦截器组件

J2EE 课程设计实训项目——《蓝梦网上商城》——对系统业务处理层的用户信息组件添加AOP ThrowsAdvice拦截器组件1.1.1对系统业务处理层中的相关组件添加AOP ThrowsAdvice拦截器组件1、org.springframework.aop.ThrowsAdvice接口(1)应用的目标若想要在业务组件(erInfoManageImple)中的某些方法出现com.px1987.webshop.service.ServiceException异常抛出时产生AOP通知并将异常信息以Log的形式记录下来,我们可以使用Throws Advice。
(2)要求在Spring中想要实现Throws Advice,必須实现org.springframework.aop.ThrowsAdvice接口,然而这个接口并沒有定义任何的方法,它只是一个标签(tag)。
(3)org.springframework.aop.ThrowsAdvice接口的定义2、定义的方式(1)afterThrowing方法的一般的定义方式因此,我们可以在代码中定义任意的方法名称,只要它是以下的形式就可以:public void afterThrowing(Method targetMethod, Object[] methodArgs, Object targetClass,Throwable exceptionClass);其中targetMethod、methodArgs与targetClass都是可以省略的,方法中必须要有的是exceptionClass,在异常发生时,会检验所设定的Throws Advice中是否有符合异常类型的响应方法afterThrowing,如果有的话就通知它执行。
(2)afterThrowing方法可以是下面的各种形式public void afterThrowing(Exception ex)public void afterThrowing(RemoteException)public void afterThrowing(Method method, Object[] args, Object target, Exception ex)public void afterThrowing(Method method, Object[] args, Object target, ServletException ex)所应该注意的是,我们只能通知方法,并传入异常对象,我们并不能在Throws Advice 中将异常处理掉,异常处理仍然是应用系统程序本身所要负责的。
J2EE 课程设计实训项目——《蓝梦网上商城》——应用Spring JavaMail邮件抽象实现项目中的邮件自动发送功能

J2EE 课程设计实训项目——《蓝梦网上商城》——应用Spring JavaMail 邮件抽象实现项目中的邮件自动发送功能1.1.1应用Spring JavaMail邮件抽象实现项目中的邮件自动发送功能1、Spring JavaMail概述E-mail是一个优秀的通知系统,也充当一个基本的工作流系统的角色。
Spring使发送邮件变得非常容易,它隐藏底层邮件系统的复杂性。
Spring邮件支持的主要接口叫做MailSender。
它还提供了一个SimpleMailMessage类来封装一条消息的公共属性(from, to, subject, message)。
如果我们想发送带附件的邮件,则可以用MimeMessagePreparator来创建和发送消息。
下面给出一个在本项目中的实现示例。
2、修改webShopUserInfoIoC.xml文件以添加与Spring邮件抽象实现相关的组件(1)定义一个org.springframework.mail.javamail.JavaMailSenderImpl组件对象<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value=""/><property name="username" value="trainict"/><property name="password" value="6407"/></bean>(2)并将该组件对象注入到我们的Spring事件广播的响应的组件SpringActionEventResponse类中<bean id="springActionEventResponse" class="com.px1987.webshop.business.springevent.SpringActionEventResponse"> <property name="mailSender"><ref bean="mailSender"/></property></bean>(3)到目前为止的配置示例如下<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "/dtd/spring-beans-2.0.dtd"><beans><bean id="userInfoCRUDImple" class="erInfoCRUDImple" scope="prototype"> </bean><bean id="orderInfoCRUDImple" class="com.px1987.webshop.dao.crud.OrderInfoCRUDImple" scope="prototype"> </bean><bean id="goodsInfoCRUDImple" class="com.px1987.webshop.dao.crud.GoodsInfoCRUDImple" scope="prototype"> </bean><bean id="userInfoDAOServiceImple" class="erInfoDAOServiceImple" scope="prototype"> <property name="userInfoCRUDImple"><ref bean="userInfoCRUDImple"/></property><property name="orderInfoCRUDImple"><ref bean="orderInfoCRUDImple"/></property><property name="goodsInfoCRUDImple"><ref bean="goodsInfoCRUDImple"/></property></bean><bean id="orderInfoDAOServiceImple" class="com.px1987.webshop.service.OrderInfoDAOServiceImple" scope="prototype"> <property name="userInfoCRUDImple"><ref bean="userInfoCRUDImple"/></property><property name="orderInfoCRUDImple"><ref bean="orderInfoCRUDImple"/></property><property name="goodsInfoCRUDImple"><ref bean="goodsInfoCRUDImple"/></property></bean><bean id="goodsInfoDAOServiceImple" class="com.px1987.webshop.service.GoodsInfoDAOServiceImple" scope="prototype"> <property name="userInfoCRUDImple"><ref bean="userInfoCRUDImple"/></property><property name="orderInfoCRUDImple"><ref bean="orderInfoCRUDImple"/></property><property name="goodsInfoCRUDImple"><ref bean="goodsInfoCRUDImple"/></property></bean><bean id="userInfoManageImple" class="erInfoManageImple"scope="prototype"><property name="userInfoDAOServiceImple"><ref bean="userInfoDAOServiceImple"/></property><property name="springActionEventResponse"><ref bean="springActionEventResponse"/></property></bean><bean id="springActionEventResponse"class="com.px1987.webshop.business.springevent.SpringActionEventResponse"> <property name="mailSender"><ref bean="mailSender"/></property></bean><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value=""/><property name="username" value="trainict"/><property name="password" value="12345678"/></bean></beans>3、在我们的Spring事件广播的响应的组件SpringActionEventResponse类中增加一个名称为mailSender的JavaMailSenderImpl成员属性对象,并提供set方法import org.springframework.mail.javamail.JavaMailSender;…private JavaMailSender mailSender=null;public void setMailSender(JavaMailSender mailSender){this.mailSender = mailSender;}4、编程我们的邮件发送功能代码package com.px1987.webshop.business.springevent;import org.springframework.context.ApplicationListener;import org.springframework.context.ApplicationEvent;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.MailException;import org.springframework.mail.javamail.MimeMessagePreparator;import javax.mail.internet.MimeMessage;import javax.mail.MessagingException;import javax.mail.internet.InternetAddress;import javax.mail.Message;public class SpringActionEventResponse implements ApplicationListener { private JavaMailSender mailSender=null;public void setMailSender(JavaMailSender mailSender) {this.mailSender = mailSender;}String userMail=null;String userName=null;String userPassWord=null;public SpringActionEventResponse() {}public void onApplicationEvent(ApplicationEvent applicationEvent) {//识别事件源对象是否为指定的事件类型if (applicationEvent instanceof SpringActionEvent) {userMail=((SpringActionEvent)applicationEvent).getOneUserInfo().getUserMail();userName=((SpringActionEvent)applicationEvent).getOneUserInfo().getUserName();userPassWord=((SpringActionEvent)applicationEvent).getOneUserInfo().getUserPassWord();MimeMessagePreparator preparator = new MimeMessagePreparator() { public void prepare(MimeMessage mimeMessage) throws MessagingException{mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(userMail));mimeMessage.setFrom(new InternetAddress("trainict@"));mimeMessage.setText("您在本系统中的注册用户名称为:"+userName+ "密码为:"+userPassWord);}};try{mailSender.send(preparator);}catch (MailException ex) {System.err.println("邮件发送过程中出现了错误:"+ex.getMessage());return;}System.out.println("我们已经将您的ID及密码等信息发送到您的邮箱"+userMail);}}}。
J2EE 课程设计实训项目——《蓝梦网上商城》——应用Spring框架中 的“Open Session in View模式”
J2EE 课程设计实训项目——《蓝梦网上商城》——应用Spring框架中的“Open Session in View模式”1.1.1在Spring框架与Hibernate框架相互整合的应用中应用Spring框架中的“OpenSession in View模式”(实现方式一)1、Spring提供了OpenSessionInViewerFilter和OpenSessionInViewInterceptor两种组件(1)功能使用它们中的任一个都能获得同样的功能。
(2)两者唯一不同点其中interceptor在Spring容器中运行,并且在web应用的上下文中配置(WebApplicationContext);而Fitler在Spring前就已经运行,并且需要在web.xml中配置。
不管使用哪一个,他们都会在请求绑定到Session的当前线程期间打开Hibernate Session。
(3)实现的原理Open Session In View在request把session绑定到当前thread期间一直保持hibernate session在open状态,使session在request的整个期间都可以使用,如在View层里PO也可以lazy loading数据。
当View 层逻辑完成后,才会通过Filter的doFilter方法或Interceptor的postHandle方法自动关闭session。
(4)HibernateDaoSupport透明地使用Hibernate 的Session一旦绑定到线程,打开的Hibernate 的Session能被DAO的实现类透明地使用。
Session 会持续打开允许延迟加载访问数据库。
一旦View逻辑完成,Hibernate 的Session会被关闭,无论是在Filter的doFilter方法中还是在Interceptor的postHandle方法中。
2、Interceptor配置示例此时可以使用Spring的AOP配置,将这个Interceptor配置到我们所需要的层次上去。
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统功能模块设计及系统数据库表结构设计实例
《J2EE系统架构和程序设计》课程设计实训项目——某网上购物系统详细设计中的功能模块设计及系统数据库表结构设计实例1.1.1系统用户注册及登录模块1、本模块主要包括如下的系统功能(1)用户注册(2)用户登录(3)用户信息修改2、本模块的功能设计属性及接口参数功能public UserBean Connectiong conUserClass user 用户注册信息添加到数据库1.1.2商品查询模块1、本模块主要包括如下的系统功能(1)显示最新商品信息(2)根据关键词查询(3)根据分类查询(4)根据鲜花类型查询(5)根据价格查询(6)根据厂商查询2、本模块的功能设计属性及接口参数功能public GoodsBean()public int getAllpage()public int getAllpagesort()public int getAllpageByprice() public int getAllpageByMaterial() public collectiong getAllgoods() public collection getGoodsBySortpublic collection getGoodsByPricepublic collection getGoodsByMaterialpublic collection getGoodsByID public collection getGoodsByName public collection getGoodsByPrice public collection getGoodsByLower Selectpublic collection getGoodsByHighest Selectpublic boid addGoodspublic boid deleteGoodspublic boid modifyGoods String sString sString sInt sString sInt ageCountString sInt ageCountString sInt ageCountString sString sString sString mString nString mString n建立数据库连接获得全部查询商品信息根据商品类型获得商品信息根据商品价格活的商品信息根据商品花材获得商品信息分页显示所获得所有商品信息分页显示根据商品类型获得商品信息分页显示根据商品价格活的商品信息分页显示根据商品花材获得商品信息根据商品ID获得商品信息根据商品名称获得商品信息根据商品销售价格获得商品信息根据商品名称和类型获得商品信息根据商品名称类型价格获得商品信息添加商品信息删除商品信息修改商品信息1.1.3购物车模块1、本模块主要包括如下的系统功能(1)向购物车中添加商品(2)从购物车中删除商品(3)查看购物车(4)生成订单(5)查看历史订单(6)查看订单明细2、本模块的功能设计属性及接口参数功能1.1.4系统管理员对系统信息管理模块1、本模块主要包括如下的系统功能(1)商品管理包括商品的添加、删除、修改(2)订单管理包括订单的添加、删除、修改(3)用户管理包括添加、删除、修改(4)厂商管理包括厂商的添加、删除、修改1.1.5系统安全管理模块1、本模块主要包括如下的系统功能(1)记录用户登录时间(2)记录用户登录IP(3)记录用户离开时间2、本模块的功能设计属性及接口参数功能1.1.6用户留言模块1、本模块主要包括如下的系统功能(1)用户添加留言(2)显示所有用户留言2、本模块的功能设计属性及接口参数功能1.1.7系统数据库表结构设计1、系统用户Customer数据库表2、产品信息Product数据库表3、类别Main_type数据库表4、系统管理员信息Admin数据库表5、订单信息Orders数据库表6、订单详细信息OrderDetail数据库表7、支付信息Payment数据库表1.1.8系统信息安全设计本系统将从网络通讯、操作系统、数据库管理系统、应用系统、计算机病毒的防治等五个方面为系统提供安全保障。
J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统项目中的用户信息业务处理功能组件
J2EE 课程设计实训项目——《蓝梦网上商城》——实现系统项目中的用户信息业务处理功能组件1.1.1实现系统项目中的用户信息业务处理功能组件1、添加与Spring相关的系统包(1)在Web-INF/lib目录下添加下面的各个文件spring.jar、aopalliance.jar、cglib-nodep-2.1_3.jar、spring-mock.jar、quartz-1.6.0.jar(定时器)、mail.jar和activation.jar(JMail相关的文件)而commons-logging.jar、log4j-1.2.14.jar已经在前面的Struts中添加过。
(2)实现过程如下2、用户信息管理的接口(1)接口名称为UserInfoManageInterface,包名称为er(2)设计该接口中的各个成员package er;import com.px1987.webshop.business.vobject.*;import com.px1987.webshop.service.*;import java.util.*;public interface UserInfoManageInterface{public boolean doUserLogin(UserInfoVO oneUserInfoVO) throws ServiceException;public boolean doUserRegister(UserInfoVO oneUserInfoVO) throws ServiceException;public boolean doUpdateOneUserInfo(UserInfoVO oneUserInfoVO) throws ServiceException;public boolean doUpdateOneRegisterUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws ServiceException;public boolean doUpdateOneAdminUserPassWord(UserInfoVO oneUserInfoVO,String newPassWord) throws ServiceException;public boolean doCheckUserNameExist(String userName,Integer type_User_Admin) throws ServiceException;public String doGetOneRegisterUserPassWord(UserInfoVO oneRegisterUserInfoVO) throws ServiceException;public String doGetOneAdminUserPassWord(UserInfoVO oneAdminUserInfoVO) throws ServiceException;public UserInfoVO doGetOneRegisterUserInfo(String registerUserID) throws ServiceException;public UserInfoVO doGetOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws ServiceException;public UserInfoVO doGetOneAdminUserInfo(String adminUserID) throws ServiceException;public UserInfoVO doGetOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws ServiceException;public UserInfoBaseVO doGetOneUserInfo(String userName,String userPassWord, Integer type_User_Admin) throws ServiceException;public ArrayList doGetAllUserNameInfo(String userName) throws ServiceException;public boolean doDeleteOneRegisterUserInfo(String registerUserID) throws ServiceException;public boolean doDeleteOneRegisterUserInfo(UserInfoVO oneRegisterUserInfoVO) throws ServiceException;public boolean doDeleteOneAdminUserInfo(String adminUserID) throws ServiceException;public boolean doDeleteOneAdminUserInfo(UserInfoVO oneAdminUserInfoVO) throws ServiceException;public ArrayList doGetAllRegisterUserInfo() throws ServiceException;public ArrayList doGetSomeRegisterUserInfo(Map registerUserInfos) throws ServiceException;public ArrayList doGetAllAdminUserInfo() throws ServiceException;public ArrayList doGetSomeAdminUserInfo(Map adminUserInfos) throws ServiceException;}3、用户信息管理的接口UserInfoManageInterface的实现类(1)用户信息管理的接口UserInfoManageInterface的实现类------类名称为UserInfoManageImple,包名称为er(2)将产生出下面的状态(3)并在其中提供一个“UserInfoDAOServiceInterface userInfoDAOServiceImple=null;”的对象声明,同时为它提供set方法。
J2EE 课程设计实训项目——《蓝梦网上商城》——对系统持久层中的DAO组件进行单元测试(第2部分)
J2EE 课程设计实训项目——《蓝梦网上商城》——对系统持久层中的DAO组件进行单元测试(第2/3部分)8、添加对DAO组件GoodsInfoCRUDImple类进行测试的TestCase类(1)新增一个测试用例,类名称为TestGoodsInfoCRUDImple,包名称为com.px1987.webshop.testdao,基类为junit.framework.TestCase,被测试的类选择为com.px1987.webshop.dao.crud.GoodsInfoCRUDImple(2)进入到下一步,并选择我们需要进行测试的方法(3)将产生出下面的结果(4)编程该测试用例类中的各个测试方法package com.px1987.webshop.testdao; import junit.framework.*;import com.px1987.webshop.dao.crud.*;import com.px1987.webshop.dao.exception.DAOException;import java.util.*;import com.px1987.webshop.dao.pobject.*;public class TestGoodsInfoCRUDImple extends TestCase{private GoodsInfoCRUDInterface goodsInfoCRUDImple = null;public TestGoodsInfoCRUDImple(String arg0){super(arg0);}protected void setUp() throws Exception{super.setUp();goodsInfoCRUDImple=new GoodsInfoCRUDImple();}protected void tearDown() throws Exception{goodsInfoCRUDImple=null;super.tearDown();}public void testInsertOneGoodsInfo() throws DAOException{GoodsInfoPO oneGoodsInfoPO=new GoodsInfoPO();//不需要设置该值,可以由Hibernate自动来实现添加// oneGoodsInfoPO.setId(new Integer(1));oneGoodsInfoPO.setGoodsName("海尔电冰箱");oneGoodsInfoPO.setGoodsKind(1);oneGoodsInfoPO.setGoodsPrice(1500.50f);oneGoodsInfoPO.setOffPrice(0.8f);oneGoodsInfoPO.setHitNumber(1000);oneGoodsInfoPO.setBuyNumber(1200);oneGoodsInfoPO.setImageFile("../webResource/goodsImage/goods.jpg");oneGoodsInfoPO.setGoodsDescriptor("海尔新一代的电冰箱。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
J2EE 课程设计实训项目——《蓝梦网上商城》——系统UML包图的设计“蓝梦网上商城”的UML包图的设计
1、UML中的包图(Package Diagram)
(1)包图是保持系统整体结构简明、清晰的重要工具
通过给出包可以列出各个包之间的关系。
包图由包和包之间的联系构成,它是维护和控制系统总体结构的重要建模工具。
(2)在Rose中包图是通过类图来体现的
并且注意如果某个包为其它包的子包,则应该将子包放入到父包的里面。
2、本系统中的包图中表示层的各个组件所在的包
(1)新建某个包
(2)输入包的名称
(3)在该包中再新建其各个子包
本系统分为四个----- JSP表示组件包、ViewHelp表示逻辑JavaBean组件包、ViewHelp 表示逻辑标签组件包。
3、本系统中的包图中的控制层的各个组件所在的包
(1)新建某个包
(2)输入包的名称
(3)在该包中再新建其各个子包
本系统分为四个-----前端控制器组件包、后端控制器组件包、过滤器组件包、监听器组件包
4、本系统中的包图中的业务层的各个组件所在的包
(1)新建某个包
(2)输入包的名称
(3)在该包中再新建其各个子包
本系统分为四个-----用户信息管理包、商品信息管理包、购物车信息管理包、订单信息管理包
5、本系统中的包图中的数据访问层的各个组件所在的包
(1)新建某个包
(2)输入包的名称
(3)在该包中再新建其各个子包
本系统分为四个----- DAO服务组件包、DAO CRUD组件包、数据连接组件包、持久实体组件包
6、本系统中的包图设计
由于在Rose中包图是通过类图来体现的,并且注意如果某个包为其它包的子包,则应该将子包放入到父包的里面,因此新建一个类图。
(1)新建一个类图
(2)并且输入名称:蓝梦网上商城前台服务的UML包图
(3)在该包图中分别添加前面的各个包及对应的子包(直接拖入)
(4)设置各个子包之间的关联关系(在父包之外进行)
注意:也可以是双向关联。
(5)最后为下面的状态
(6)在各个父包加入对应的子包-----再将这些子包拖入到对应的父包中以体现包含关系
(7)最后为下面的状态
(8)再设置各个父包之间的关联关系。