1、课程设计报告开课学期: 2012-2013 学年第 2 学期 课程名称: 软件工程课程设计 学 院: 信息科学与工程学院 专 业: 计算机科学技术 班 级: 计算机 1008 学 号: 20101221149 姓 名: 刘成启 设计题目: 企业内部消息通讯管理系统 任课教师: 马坤 2013 年 3 月 8 日1 项目计划 .31.1 引言 .31.1.1 编写目的 .31.1.2 定义 .31.2项目概述 .31.2.1 工作内容 .31.2.2 程序 .31.2.3 文档 .31.2.4 运行硬件环境: .41.2.5 验收标准 .41.3实施计划 .41.3.1任务分解 .41.4人员组
2、织及分工 .42 可行性研究 .42.1 经济可行性 .42.2 操作可行性 .52.3 技术可行性 .53 需求分析 .53.1 功能分析 .53.1.1 注册 .53.1.2 登陆 .53.1.3 私聊 .53.1.4 群聊 .63.1.5 创建分组 .63.1.6 创建群 .63.1.7 查找好友并加为好友 .63.1.8 查找群并加入群 .63.1.9 文件共享 .63.1.10 下载文件 .73.2 性能分析 .74 概要设计 .84.1 功能模块图 .84.2 系统总体结构 .94.3 数据库设计 .105 详细设计 .105.1 文件传输客户端界面 .115.2 文件传输服务器端
3、界面 .116 测试计划 .117 总结 .111 项目计划1.1 引言1.1.1 编写目的模仿腾讯 QQ,针对中小企业(200 人以下)设计即时通讯系统。系统应包括客户端和服务器端。系统应保存所有的消息通讯记录。系统要考虑局域网通讯的特点,设计大型文件(超过 1G)的文件传输、后台管理等机制(参考 QQ 中转站) 。1.1.2 定义模仿腾讯 QQ,针对中小企业(200 人以下)设计即时通讯系统。系统应包括客户端和服务器端。系统应保存所有的消息通讯记录。系统要考虑局域网通讯的特点,设计大型文件(超过 1G)的文件传输、后台管理等机制(参考 QQ 中转站) 。1.2项目概述1.2.1 工作内容项
4、目小组根据时间先后安排,分别对项目进行开发:各项主要工作:需求分析需要对各个学生进行调研。负责软件开发的同学对调查结果进行分析,拟订实现方案(如程序结构,流程,数据结构等) 。软件编程的同学对软件进行集中开发。软件审核的同学对软件进行评定,审核。1.2.2 程序程序名称:企业内部消息通讯管理系统使用语言:java存储形式:磁盘 1.2.3 文档许提交的文档:01 项目计划02 可行性研究03 需求分析04 概要设计05 详细设计06 测试计划1.2.4 运行硬件环境:运行软件环境:Windows xp Eclipse 或 myeclipse1.2.5 验收标准系统运行流畅1.3实施计划1.3.
5、1任务分解项目计划及可行性研究 调研需求分析 分析概要设计 设计详细设计 开发测试计划 测试1.4人员组织及分工组长:李宏建开发设计人员:刘成启 宋希宾 徐波 陈强 李宏建 测试人员:刘成启 徐波 2 可行性研究2.1 经济可行性 :本系统需要一个 mysql 数据库服务器,由于使用人数比较少,安装一个免费的 mysql 数据库完全可以应付需要,所以成本就不用考虑了。2.2 操作可行性:只要一台以上计算机连接在同一个局域网内,本系统就可以安装使用,所以操作上完全不存在问题。2.3 技术可行性:本系统采用 Java 语言,是基于 CS 架构的。开发这个系统需要开发者对 socket 编程和 ja
6、va Swing 这两方面的技术比较熟。由于本人长期从事于 java 语言编程,所以技术方面是可行的。3 需求分析(系统应具备的主要功能、预期目标)3.1 功能分析3.1.1 注册服务器收到用户的注册请求,便开始接受客户传递的信息,诸如客户的呢称,性别,籍贯,个人资料等,接受完毕后,便通过 Jdbc-Odbc 与后台数据库连接,然后向数据库添加记录,如果成功,便向客户返回其号码。客户收到服务器返回的信息后,便打开主登陆窗口。3.1.2 登陆在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始通过 JdbcOdbc 读取数据库,然后与用户输入的信息比较,
7、如果成功,便打开主程序窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在icq 表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量(Vector)用以存储好友的呢称,号码。3.1.3 私聊私聊就是两个聊天。客户端首先发送消息到服务器端,服务器端根据发送人信息和接收者信息来转发。例如服务器接收到一个 A 发给 B 的消息先判断 B是否已经在线,如果在线就将信息发送过去。B 接收到 A 发来的信息,如果是未建立对话窗口,就询问是否建立对话,否则就丢弃信息。3.1.4 群聊群聊,就是多人一起聊天。过程与私聊差
8、不多。唯一的不同就是服务器会将信息转发给指定群的所有成员。3.1.5 创建分组用户注册以后默认的好友分组只有一个。用户在执行添加分组操作以后,客户端分将一个这个动作的信息发送给服务器端(主要是 FromClientlisten) 。服务器端的 fromClientListen 接收到这个请求,会进行数据库操作,将要添加的分组信息插入到数据库中。如果成功,则返回这个分组的信息给客户端,否则返回错误提示信息。3.1.6 创建群用户注册以后群个数为 0。用户在执行添加群操作以后,客户端分将一个这个动作的信息发送给服务器端(主要是 FromClientlisten) 。服务器端的fromClientL
9、isten 接收到这个请求,会进行数据库操作,将要添加的群信息插入到数据库中。如果成功,则返回这个群的信息给客户端,否则返回错误提示信息。3.1.7 查找好友并加为好友输入要查找的用户 ID 号,客户端发送一个查询信息给服务器端,如果找到就返回用户服务信息。打开一个用户信息显示界面,该界面会提供一个“添加为好友”按钮,点击后可将此人加为好友。如果未找到,弹出一个信息提示框。3.1.8 查找群并加入群输入要查找的群 ID 号,客户端发送一个查询信息给服务器端,如果找到就返回用户服务信息。打开一个群信息显示界面,该界面会提供一个“加入此群”按钮,点击后可将此人加为好友。如果未找到,则弹出一个信息提
10、示框。3.1.9 文件共享在启动文件传输服务器的共享文件功能之前,要设置它的 IP 号和端口,如果设置不好。好友将无法下看到这些共享的文件。还有一个重要的步骤就是添加共享文件或目录。最后启动文件共享。3.1.10 下载文件使用文件传输的客户端要正确配置好服务器的 IP 和端口号,以及下载好的文件的存放目录。如果其中之一配置不好,文件下载将会失败。设置好以后,点击“连接”按钮,如果配置正确,这时将会看到服务器共享的文件。目前不能支持文件夹下载,当看到一个文件夹以后,可以双击该文件夹并查看文件夹里面的文件。3.2 性能分析本系统由于采用免费的 mysql 数据库软件,连接数最多不能超过 200,所
11、以并发访问数据库的人数不能超过 200 人。用例图系统用例图4 概要设计4.1 功能模块图本系统主要由由两个子系统组成:1)文件传输系统;2)聊天子系统。文件传输系统的功能主要有:1)共享文件;2)查看并下载文件。聊天子系统的功能有:1)注册;2)登陆;3)添加群;4)查找群5)私聊;6)群聊;7)查看好友资料;8)查找好友;9)添加好友;10)创建好友分组。JICQ(javaQQ 通信系统)通信(聊天) 文件传输注册登陆私聊 群聊 查看好友资料 查找好友 添加好友查找群 添加群 创建好友分组 共享文件 查看共享文件并下载图一用户是系统中唯一的活动者,各 usecase 是系统所提供的服务。QQ 初始界面 usecase 图用户成功登录后的系统顶层 usecase 图即时聊天子系统 usecase 图联系人管理子系统 usecase 图