BB在线聊天系统详细设计文档.doc_第1页
BB在线聊天系统详细设计文档.doc_第2页
BB在线聊天系统详细设计文档.doc_第3页
BB在线聊天系统详细设计文档.doc_第4页
BB在线聊天系统详细设计文档.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11页BBChatOnline (贝贝在线聊天系统)编号 001 版本 V1.0 详 细 设 计 说 明 书项目名称 BBChatOnline(贝贝在线聊天系统) 项目负责人 唐剑 编写 2010 年 11 月 20 日校对 2010 年 11 月 20 日审核 2010 年 11 月 20 日批准 2010 年 11 月 20 日单位: 无文档修订记录序号修改时间修改人审核人备注12010-11-12唐剑唐剑项目实施的硬件条件22010-11-15唐剑唐剑项目实施的软件条件32010-11-15唐剑唐剑项目实施的框架建设42010-11-15唐剑唐剑测试52010-11-15唐剑唐剑部署6目录目录3引言4系统设计的原则5系统模块设计7系统软件和硬件方案设计8数据库结构设计9系统建模设计12系统详细设计方案15售后服务42引言文档目的目标客户、设计人员、以及开发人员通过此详细设计文档对BBChatOnline系统进行设计和开发预期读者项目经理,设计人员,开发人员,测试人员,部署人员,维护人员作用为了让会员可以在网在进行实行的聊天和发送站内信息,个人资料修改,管理员后台管理等功能。文档背景系统名称及版本号BBChatOnline系统 版本号:1.0。任务提出者唐剑 任务承接者及实施者唐剑 第 11 页 共 42 页唐剑系统设计的原则本系统的设计遵循如下原则:量身定制,完全符合BBChatOnline系统的实际需求充分尊重项目提出者的需求意愿,充分沟通和交流,做好需求分析。立足于项目提出者的现有业务流程,系统追求完全服务于项目提出者现有业务实现的目标。在此基础上根据公司已有经验向项目提出者提出合理化建议。系统功能完备,用户操作简易系统既要强调功能的完善性,又要强调操作的简易性。把复杂的事情简单化。系统的操作界面设计要符合办公人员平时使用电脑的习惯以及客户对终端机易掌握性,以人性化的设计方式来完成整个系统的整体设计,使原先枯燥烦琐的工作通过本系统能够快速简单地完成。技术先进性和原有系统的兼容性采用JAVA 与建模技术,采用各项先进的、成熟的技术,以保证系统的稳定性以及系统在实施后的可维护性,平台无关性,同时保证系统的生命力。达到终端机的零维护和服务器端的高效能的设计目标。可扩展性系统设计充分考虑系统本身的可扩展性,为系统今后的功能扩展做好充分的准备,使系统的扩展易于实现,产品开发完成后,能够保障新功能的开发和加入快速方便,不影响原有系统的技术结构,可不断升级和扩充。以严格的软件工程流程控制整个系统的软件开发,保证系统的可靠性和稳定性。 系统和数据的安全性客户授权访问。系统有严格的权限管理和分配,对任何数据的访问对访问者都要进行严格的身份认证。可维护性系统易于管理,减少管理工作量和恢复故障时间。系统模块设计引言贝贝在线聊天系统概述功能概述登录注册模块用户可以在本网站进行会员注册,和登录。聊天平台模块1、聊天平台的聊天室创建,聊天室信息修改与管理。2、同聊天室的会员可以进行即时聊天。3、点对点私密聊天。4、查看在线用户站内邮件模块会员可以对站内的会员发送邮件,接收他人发来的邮件,以及邮件管理,和新邮件的检测。个人资料管理模块用户可以查看自己的信息,可以修改自己的信息,和上传头像,修改密码,修改密保等。关于我们模块介绍我们自己曾经实现过的项目和一次资料,以及部分问题解决。后台管理模块管理员可以对站内的邮件进行管理,对用户进行管理,对聊天室进行管理,提升和取消用户权限。系统软件和硬件方案设计系统软件结构所采用的平台和技术如下:操作系统:windowsXP或更高版本 数据库管理系统:SQLServer2005框架: struts2.1,Spring2.5,hibernate3.2,ajax,jquery-ajax编程语言:java 运行环境:JVM 1.6开发工具: myEclipse 8.0,Dreamweaver 8.0,PhotoShop CS3,SQL2005系统硬件结构硬件配置:客户端 P4 2.0GHZ以上 CPU+256M以上 内存+ 40G以上硬盘 主服务器端 CPU:酷睿26570系列,2.1GHZ, 内存:Kingston DDRII 667 2G 硬盘:320显卡 ATI4570 数据库结构设计用户表(users): 保存用户基本资料列名数据类型键空值说明userIDint主键(identity)否用户IDuserNamevarChar(20)unique否用户名userPasswordvarchar(20)否用户密码userTypenvarchar(10)否用户类型(管理员,普通用户 ,默认为普通用户)userSexnchar(10)否用户性别(男, 女,默认为男)userAgeint否用户年龄userMSNnvarchar(50)否用户userQQint否用户QQuserEmailchar(50)否用户电子邮件userProvincenvarchar(20)允许用户所在省userCitynvarchar(40)允许用户所在城市userPhonechar(12)否用户电话userHeadPortraitnText允许用户头像路径userOnlineStatunchar(10)否用户在线状态(在线,离开,默认为离开)userImmediateStatunchar(20)否用户即时状态userLastLoginDatedatetime否用户最后登录时间userLoginCountint否用户登录次数userQuestionnvarchar(100)允许用户密保问题userAnswernvarchar(100)允许用户密保答案用户属性表(userProperty): 保存用户属性列名数据类型键空值说明upIdint主键(identity)否用户属性IDuserIDint外键(关联users.userId)否用户IDuserCallnvarchar(20)允许用户昵称(默认为”无名”)roomCountint否用户所创建的房间,最大为5个chatStatusnvarchar(20)否用户聊天状态(在线,离开,默认为离开)presentRoomIDint否用户当前所在房间房间表(room): 保存房间信息列名数据类型键空值说明roomIDint主键(identity)否房间IDroomNameintunique否房间IDroomPasswordnvarchar(20)允许房间密码roomTypeint否房间类型roomMaxOnlineint否最大在线人数roomHostint外键(关联users.userId)否房主IDroomPeopleCountint否现有人数roomOnlineCountint否在线人数邮件接收表(emails): 保存被用户接收的邮件信息列名数据类型键空值说明eIdint主键(identity)否邮件IDsendUserIdintunique否发送人IDsendUserCallnvarchar(20)否发送人昵称reciveUserIdint外键(关联users.userId)否接收人IDreciveUserCallnvarchar(20)否接收人昵称emailTitlenvarchar(100)否邮件标题emailContentntext否邮件内容emailViewStatusnvarchar(4)否邮件状态,表示是否被用户查看(是,否,默认为否)emailDatedatetime否邮件发出日期邮件发送表(emailsSended): 保存已发邮件信息列名数据类型键空值说明esIdint主键(identity)否已发邮件IDsendUserIdintunique否发送人IDsendUserCallnvarchar(20)否发送人昵称reciveUserIdint外键(关联users.userId)否接收人IDreciveUserCallnvarchar(20)否接收人昵称emailTitlenvarchar(100)否邮件标题emailContentntext否邮件内容emailDatedatetime否邮件发出日期数据库触发器,分别在emails和emailsSended两个表上,触发器名所在表功能trg_Emailsemails当邮件日期大于30或者是接收邮件表里的条目大于了1000条时,删除邮件日期最早的条目trg_EmailsSendedemailsSended当邮件日期大于30或者是接收邮件表里的条目大于了1000条时,删除邮件日期最早的条目系统建模1、用例设计:2、类设计:3、组件设计:8、部署设计:系统详细设计方案类和方法设计:IUserDAO接口: 数据库管理层package com.yourcompany.dao;import com.yourcompany.hibernate.pojo.Users;import com.yourcompany.hibernate.pojo.UserProperty;import java.util.Vector;import com.yourcompany.hibernate.pojo.Room;import com.yourcompany.hibernate.pojo.Emails;import java.util.List;import com.yourcompany.hibernate.pojo.EmailsSended;package com.yourcompany.dao;import com.yourcompany.hibernate.pojo.Users;import com.yourcompany.hibernate.pojo.UserProperty;import java.util.Vector;import com.yourcompany.hibernate.pojo.Room;import com.yourcompany.hibernate.pojo.Emails;import java.util.List;import com.yourcompany.hibernate.pojo.EmailsSended;public interface IUserDAO public abstract Users isValidUser(Users u);public abstract boolean insert(Users u);public abstract boolean delete(Users u);public abstract boolean update(Users u);public abstract boolean insertUserProperty(UserProperty up);public abstract Vector selectRoom(Room r, String hql, String arr);public abstract Vector selectUserProperty(UserProperty up, int String, String arr);public abstract boolean updateUserProperty(UserProperty up);public abstract boolean updateRoom(Room r);public abstract boolean insertRoom(Room r);public abstract boolean deleteRoomById(Room r);public abstract Vector selectUserByOnline(UserProperty up);public abstract boolean saveEmail(Emails e);public abstract List selectEmail(String hql, Integer params);public abstract boolean deleteEmail(Emails e);public abstract boolean updateEmail(String hql, Integer params);public abstract boolean saveEmailsSended(EmailsSended e);public abstract List selectEmailsSended(String hql, Integer params);public abstract boolean deleteEmailsSended(EmailsSended es);public abstract int userCompute(String hql);public abstract boolean deleteUserPropertyByUpId(UserProperty up);public abstract void deleteObjectByEId(String hql, int eId);package com.yourcompany.dao;import com.yourcompany.hibernate.pojo.Users;import com.yourcompany.hibernate.pojo.UserProperty;import java.util.Vector;import com.yourcompany.hibernate.pojo.Room;import com.yourcompany.hibernate.pojo.Emails;import java.util.List;import com.yourcompany.hibernate.pojo.EmailsSended;IUserDAO实现类UserDAOImpl:package com.yourcompany.dao;import com.yourcompany.hibernate.pojo.Users;import com.yourcompany.hibernate.pojo.UserProperty;import java.util.Vector;import com.yourcompany.hibernate.pojo.Room;import com.yourcompany.hibernate.pojo.Emails;import java.util.List;import com.yourcompany.hibernate.pojo.EmailsSended;public class UserDAOImpl implements IUserDAO, IUserDAO /* *see com.yourcompany.dao.IUserDAO#isValidUser(com.yourcompany.hibernate.pojo.Users) */public Users isValidUser(Users u) /访问数据库,验证用户名和密码处理return null; /* *see com.yourcompany.dao.IUserDAO#insert(com.yourcompany.hibernate.pojo.Users) */public boolean insert(Users u) /插入Users表处理return false; /* *see com.yourcompany.dao.IUserDAO#delete(com.yourcompany.hibernate.pojo.Users) */public boolean delete(Users u) /删除Users表处理return false; /* *see com.yourcompany.dao.IUserDAO#update(com.yourcompany.hibernate.pojo.Users) */public boolean update(Users u) /更新Users表处理return false; /* *see com.yourcompany.dao.IUserDAO#insertUserProperty(com.yourcompany.hibernate.pojo.UserProperty) */public boolean insertUserProperty(UserProperty up) /插入UserProperty表处理return false; /* *see com.yourcompany.dao.IUserDAO#selectRoom(com.yourcompany.hibernate.pojo.Room, java.lang.String, java.lang.String) */public Vector selectRoom(Room r, String hql, String arr) /通过SQL语句和参数,查询Room表return null; /* *see com.yourcompany.dao.IUserDAO#selectUserProperty(com.yourcompany.hibernate.pojo.UserProperty, int, java.lang.String) */public Vector selectUserProperty(UserProperty up, int String, String arr) /通过SQL语句和参数,查询UserProperty表return null; /* *see com.yourcompany.dao.IUserDAO#updateUserProperty(com.yourcompany.hibernate.pojo.UserProperty) */public boolean updateUserProperty(UserProperty up) /更新UserProperty表处理return false; /* *see com.yourcompany.dao.IUserDAO#updateRoom(com.yourcompany.hibernate.pojo.Room) */public boolean updateRoom(Room r) /更新Room表处理return false; /* *see com.yourcompany.dao.IUserDAO#insertRoom(com.yourcompany.hibernate.pojo.Room) */public boolean insertRoom(Room r) /插入Room表处理return false; /* *see com.yourcompany.dao.IUserDAO#deleteRoomById(com.yourcompany.hibernate.pojo.Room) */public boolean deleteRoomById(Room r) /通过roomId删除Room表return false; /* *see com.yourcompany.dao.IUserDAO#selectUserByOnline(com.yourcompany.hibernate.pojo.UserProperty) */public Vector selectUserByOnline(UserProperty up) /根据字段查询在线用户return null; /* *see com.yourcompany.dao.IUserDAO#saveEmail(com.yourcompany.hibernate.pojo.Emails) */public boolean saveEmail(Emails e) /插入Emails表处理return false; /* *see com.yourcompany.dao.IUserDAO#selectEmail(java.lang.String, java.lang.Integer) */public List selectEmail(String hql, Integer params) /通过SQL语句查询Emails表return null; /* *see com.yourcompany.dao.IUserDAO#deleteEmail(com.yourcompany.hibernate.pojo.Emails) */public boolean deleteEmail(Emails e) /删除Emails表return false; /* *see com.yourcompany.dao.IUserDAO#updateEmail(java.lang.String, java.lang.Integer) */public boolean updateEmail(String hql, Integer params) /更新Emails表return false; /* *see com.yourcompany.dao.IUserDAO#saveEmailsSended(com.yourcompany.hibernate.pojo.EmailsSended) */public boolean saveEmailsSended(EmailsSended e) /插入EmailsSended表return false; /* *see com.yourcompany.dao.IUserDAO#selectEmailsSended(java.lang.String, java.lang.Integer) */public List selectEmailsSended(String hql, Integer params) /通过SQL语句查询EmailsSended表return null; /* *see com.yourcompany.dao.IUserDAO#deleteEmailsSended(com.yourcompany.hibernate.pojo.EmailsSended) */public boolean deleteEmailsSended(EmailsSended es) /删除EmailsSended表return false; /* *see com.yourcompany.dao.IUserDAO#userCompute(java.lang.String) */public int userCompute(String hql) /通过SQL语句查询用户表的用户return 0; /* *see com.yourcompany.dao.IUserDAO#deleteUserPropertyByUpId(com.yourcompany.hibernate.pojo.UserProperty) */public boolean deleteUserPropertyByUpId(UserProperty up) /删除UserProperty表return false; /* *see com.yourcompany.dao.IUserDAO#deleteObjectByEId(java.lang.String, int) */public boolean deleteObjectByEId(String hql, int eId) /删除UserProperty表return false; IServices接口: 业务管理层package com.yourcompany.services;import com.yourcompany.hibernate.pojo.Users;import com.yourcompany.hibernate.pojo.UserProperty;import java.util.Vector;import com.yourcompany.hibernate.pojo.Room;import com.yourcompany.hibernate.pojo.Emails;import java.util.List;import com.yourcompany.hibernate.pojo.EmailsSended;public interface IServices public abstract Users login(Users u);public abstract boolean insertUsers(Users u);public abstract boolean deleteUsers();public abstract boolean selectUsers();public abstract boolean updateUsers(Users u);public abstract boolean isExsitUserName(Users u);public abstract boolean insertUserProperty(UserProperty up);public abstract Vector selectRoom(Room r, String hql, String arr);public abstract Vector selectUserProperty(UserProperty up, String hql, String arr);public abstract boolean joinRoom(UserProperty up, Room r);public abstract boolean exitRoom(UserProperty up, Room r);public abstract boolean updateRoom(Room r);public abstract boolean checkRoomNameIsExsit(Room r, String hql, String arr);public abstract boolean insertRoom(Room r);public abstract boolean deleteRoomById(Room r);public abstract boolean updateUserProperty(UserProperty up);public abstract Vector selectUserByOnline(UserProperty up);public abstract boolean sendEmail(Emails e);public abstract List selectEmail(String hql, String arr);public abstract boolean deleteEmail(Emails e);public abstract boolean updateEmail(String hql, String arr);public abstract boolean saveEmailsSended(EmailsSended es);public abstract List selectEmailsSended(String hql, String arr);public abstract boolean deleteEmailsSended(EmailsSended es);public abstract int userCompute(String hql);public abstract boolean deleteUserPropertyByUpId(UserProperty up);public abstract boolean deleteObjectByEId(String hql, int eId);IServices实现类ServicesImpl:package com.yourcompany.services;import com.yourcompany.dao.IUserDAO;import com.yourcompany.hibernate.pojo.Users;import com.yourcompany.hibernate.pojo.UserProperty;import java.util.Vector;import com.yourcompany.hibernate.pojo.Room;import com.yourcompany.hibernate.pojo.Emails;import java.util.List;import com.yourcompany.hibernate.pojo.EmailsSended;public class ServicesImpl implements IServices, IServices public IUserDAO userDAO;/spring中注入此Bean public IUserDAO getUserDAO(IUserDAO userDAO) return null; public void setUserDAO(IUserDAO userDAO) this.userDAO = userDAO; /* *see com.yourcompany.services.IServices#login(com.yourcompany.hibernate.pojo.Users) */public Users login(Users u) /访问userDAO中的方法实现用户登录功能return null; /* *see com.yourcompany.services.IServices#insertUsers(com.yourcompany.hibernate.pojo.Users) */public boolean insertUsers(Users u) /访问userDAO中的方法实现用户插入功能return false; /* *see com.yourcompany.services.IServices#deleteUsers() */public boolean deleteUsers() /访问userDAO中的方法实现用户删除功能return false; /* *see com.yourcompany.services.IServices#selectUsers() */public boolean selectUsers() /访问userDAO中的方法实现用户查询功能return false; /* *see com.yourcompany.services.IServices#updateUsers(com.yourcompany.hibernate.pojo.Users) */public boolean updateUsers(Users u) /访问userDAO中的方法实现用户更新功能return false; /* *see com.yourcompany.services.IServices#isExsitUserName(com.yourcompany.hibernate.pojo.Users) */public boolean isExsitUserName(Users u) /访问userDAO中的方法实现用户是否存在功能return false; /* *see com.yourcompany.services.IServices#insertUserProperty(com.yourcompany.hibernate.pojo.UserProperty) */public boolean insertUserProperty(UserProperty up) /访问userDAO中的方法实现用户属性插入功能return false; /* *see com.yourcompany.services.IServices#selectRoom(com.yourcompany.hibernate.pojo.Room, java.lang.String, java.lang.String) */public Vector selectRoom(Room r, String hql, String arr) /访问userDAO中的方法实现查询房间功能return null; /* *see com.yourcompany.services.IServices#selectUserProperty(com.yourcompany.hibernate.pojo.UserProperty, java.lang.String, java.lang.String) */public Vector selectUserProperty(UserProperty up, String hql, String arr) /访问userDAO中的方法实现查询用户属性功能return null; /* *see com.yourcompany.services.IServices#joinRoom(com.yourcompany.hibernate.pojo.UserProperty, com.yourcompany.hibernate.pojo.Room) */public boolean joinRoom(UserProperty up, Room r) /访问userDAO中的方法实现用户进入房间功能return false; /* *see com.yourcompany.services.IServices#exitRoom(com.yourcompany.hibernate.pojo.UserProperty, com.yourcompany.hibernate.pojo.Room) */public boolean exitRoom(UserProperty up, Room r) /访问userDAO中的方法实现用户退出房间功能return false; /* *see com.yourcompany.services.IServices#updateRoom(com.yourcompany.hibernate.pojo.Room) */public boolean updateRoom(Room r) return false; /* *see com.yourcompany.services.IServices#checkRoomNameIsExsit(com.yourcompany.hibernate.pojo.Room, java.lang.String, java.lang.String) */public boolean checkRoomNameIsExsit(Room r, String hql, String arr) /访问userDAO中的方法实现检查房间名是否存在功能return false; /* *see com.yourcompany.services.IServices#insertRoom(com.yourcompany.hibernate.pojo.Room) */public boolean insertRoom(Room r) /访问userDAO中的方法实现插入房间功能return false; /* *see com.yourcompany.services.IServices#deleteRoomById(com.yourcompany.hibernate.pojo.Room) */public boolean deleteRoomById(Room r) /访问userDAO中的方法实现通过房间ID删除房间功能return false; /* *see com.yourcompany.services.IServices#updateUserProperty(com.yourcompany.hibernate.pojo.UserProperty) */public boolean updateUserProperty(UserProperty up) /访问userDAO中的方法更新用户属性功能return false; /* *see com.yourcompany.services.IServices#selectUserByOnline(com.yo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论