聊天软件开发计划书
WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】
学校: 中南林业科技大学
组员:赵松,刘彬,张天瑞,邝东凡,段建军,欧阳益湘,彭刚强,赵雨
亭,巫腾飞 组长:赵松 副组长:张天瑞 年级: 2005级 指导老师: 辛动军
目 录
一、面向对象的分析 ❖ 需求陈述 二、系统建摸
① 用户服务模块介绍 ② 管理服务模块 ③ 数据库服务模块 ④ 用户服务模块 ⑤ 成员管理模块 ⑥ 管理员服务模块 ⑦ 用户管理模块 三、UML系统建摸
① 建立用例 ➢ ➢
角色的确定 创建用例
① 建立时序图 ② 协作图的建立 ③ 包图 ➢ ➢
UI package Business package
② 系统的部署 ➢ ➢
组件图 配置图
四、源代码 五、软件截图 六、参考文献 七、组员学习心得
聊天软件软件工程计划书
一:面向对象的分析 1.
需求陈述(全组讨论,邝东凡,段建军写讨论结果的 文档)
(1)能够通过网站注册,申请聊天软件的号码跟密码。注册成功之后保存注册用户的,真实姓名,所在学校,宿舍,班级,院系,性别,出生年月,入学年份,个性签名@,
(2)下载一个客户端软件,输入帐号跟密码,选择登陆状态(上线,隐身)登录。登录框消失,显示主界面。当用户上线时,提示你的好友,你加入的社团等。并显示在线的好友。当打开群,社团,学院聊天室对话框之后显示在线用户。当上线的好友离
开时,自动将好友变为离线状态。当班级或群好友给你发送信息,你又不在的时候,服务器帮你保存资料,当你登陆的时候,将信息发送给你。 (3)主界面包好官方网站的超级链接,用软件的吉祥物显示。 主界面显示用户自己的头像,双击进入用户“我的世界”网叶@ (4)主界面包含用户的好友框。
每个框包含有什么对我们说组件,双击该组件显示有什么对我们说对话框,可以发送消息给我们的服务器
双击好友框的用户,显示好友聊天对话框。聊天对话框,用户可以输入信息,接受信息。可以发送接受文件,支持语音视频聊天。可以选择日常用语。可以下载该好友的资料。
(5)主界面包含社团框
社团框包含该用户加入的社团,
双击一个社团将显示社团对话框,可以群聊,可以显示社团通知,可以显示社团所有的成员。如果社团是你创的,该用户可以管理社团,删除或增加社团成员。 (6)主界面包含学院聊天框。 学院聊天室有若干个学院。
每个学院有10个聊天室,每个聊天室容纳100人。双击一个聊天室,显示聊天室对话窗口。可以发送文字和发送图片。可以显示该聊天室正在聊天的成员。可以推出聊天室,聊天室人满了可选择其他的聊天室 (7) 主界面包含班级框 班级框包含该用户所属的班级
双击班级将显示一个班级对话框,可以群聊,可以显示班级成员,可以下载班级资料,可以发送日常用语。如果班级由该用户创建,用户可以增加删除班级成员,可以上传班级资料。
(8)主界面包含查找按扭,
单击查找按扭显示查找对话框。查找对话框隔根据输入的号码搜索相应的用户或群或院系或社团。如果对方同意,获得对方发的信息,然后在主界面显示该用户或该群或者该院系或该社团。如果对方同意,则相应的刷新主界面。如我家A为好有,他同意,则在好友组增加该好友。
(9)娱乐按扭,双击娱乐按扭,显示娱乐对话框,娱乐对话框有游戏组件。
暂时不做。
(10)主界面包含帮助按扭,双击它显示帮助对话框,告诉你怎么使用这个软件。 (12)主界面有菜单按扭。双击菜单按扭,显示菜单对话框。
**菜单对话框有网上集市按钮,双击显示网上集市对话框。用户可以通过它买卖物品。
用户可把自己要卖的或者要买的东西发送到网上,标好价格,上传图片。 **菜单对话框有查询按钮,双击显示查询对话框,查询对话框包含查询学生成绩组件和查询图书馆信息(可以续借)和四六级成绩查询。输入你的学号,即可查询你的成绩,如果有则显示你的成绩,没有则提示没有。输入你四六级的号码,既可查询成绩。输入书名选择要查的书,输入你的借书证号码跟借书证密码可以查你的借书信息,可以续借。
**菜单对话框包含创建按扭,拥护可以创建社团,班级
这只针对对授权的用户。设置社团,班级名字跟社团,班级宣言。
**菜单对话框包含设置按扭。
双击设置,显示设置框,用户可以设置或修改自己的 头像,个性签名,真实姓名,所在学校,宿舍,班级,院系,社团,性别,出生年月,入学年份,兴趣爱好等。 **菜单对话框包含信息咨询按扭。双击显示信息咨询网叶,包含时尚咨询,足球篮球信息快递,人才市场信息,兼职信息,留学信息。@
**菜单对话框含交友天地,双击显示交友天地网叶友天地对话框包含爱情呼叫组建,寝室联谊组件,同校约战组件。@
**菜单对话框面包含论坛按扭,双击显示论坛网叶,论坛包含文学专区,学校风云榜和注水专区。@
**菜单对话框包含我的仓库。大小为10M.。显示用户现在的仓库资料。用户可以上传资料,设置权限供其他用户下载可以删除资料。 **菜单对话框包含考研专区按扭。
**菜单对话框有院系新闻按扭。双击显示院系新闻网叶。@
软件号码 软件密码 用户 个人资料 妮称 真实姓名,所在学校,宿舍,班级,院, 系,性别,出生年月,入学年份,个性签名,个人爱好,头像。 信息提示框 提示信息
登陆状态 登录框 好友 社团 学院聊天室对话框 服务器 资料
主界面 官方网站 吉祥物 我的世界 好友框 好友组件 好友个性签名 好友名字 好友资料框 有什么对我们说组件 有什么对我们说对话框 好友聊天对话框 信息 文件 日常用语
社团框 社团组件 社团资料框 社团名称 社团号码 社团头像 社团对话框 社团通知 社团成员
学院聊天框 聊天室 聊天室对话窗口 聊天室成员
班级框 班级组件 班级资料框 班级对话框 班级成员 班级资料 查找按扭 查找对话框 娱乐按扭 娱乐对话框
帮助按扭 帮助对话框 帮助信息 菜单对话框 菜单按扭
网上集市按钮 网上集市对话框 物品 价格 图片
查询按钮 查询对话框 查询学生成绩组件 查询图书馆信息 四六级成绩查询 学号
提示 四六级的号码 要查的书 借书证号码 借书证密码 创建按扭 创建对话框 群名字 群宣言 社团,班级名字 社团 班级宣言 设置按扭 设置框
信息咨询按扭 信息咨询网叶 时尚咨询 足球篮球信息快递,人才市场信息,兼职信息,留学信息
交友天地按扭 交友天地对话框 爱情呼叫组件 寝室联谊组件 同校约战组件 论坛按扭
我的仓库按扭 我的仓库框 仓库资料 权限 考研专区按扭 院系新闻按扭
二:系统建摸
1.1.1:用户服务模块
这个模块提供了用户登录,成员管理,用户聊天,,个人设置,资料管理。 用户登录包过用户登录和用户退出。成员管理包过增加成员,删除成员,退出群,加入群。
1.1.2:管理员服务模块
这个模块提供了用户登陆,管理用户,查询。用户登录包含用户登录和用户退出。管理用户包含增加用户,删除用户,更新用户资料。查询用户信息。 1.1.3:数据库服务模块 这个模块提供了自动更新数据库
1.2。1用户服务模块
聊天软件系统 用用管数用户服务模户户理据(1) 用户登录过程如下: 登服员库录务服服 模务务(2)管理员模块:块 模模成用个用户的发送到块员户人 管聊设天 置(3)号码跟 资料管理模块 理服务器选择成发送更新 员管理信息给服
选择资料发送更新(1)增加成员过程: 成员管理
管理类型 输入成员(2) 删除成员 号码 信息给服发送到服 资更新数料管理更新数据库 更新数据库 返回信息 增务器,服加删加成除发送消息入 其余处理类似,因为赶时间,省略了很多东西。选择要删员成群员1.3 管理员服务模块 除的成员 给服务器
1.3.1
(1) 查询过程: 管理员服务给用户。退删出除更新数据群群库
管用查理户(2) 用户登录模块跟上面一样的 询员管理查询数据输入用户登录库 号码 显示查询结果
1.3.2 用户管理模块 :
(1) 增加用户过程:
(2) 删除用户过程用户申请 用户管理 同意申请 更新数据增加三:UML 系统建摸 用户输入用户 1建立用例(张天瑞)
删除用户更新用户资删除该用户 1号码. 1角色的确定 *用户可以向服务器申请号码 *有些用户可以拥有自己的资料仓库
所以,有三个角色,一个是普通用户,一个是VIP用户,还有管理员
1. 2创建用例(如图所示)
2建立时序图 (彭刚强)
1。用户登录的时序图
2.
协作图的建立(刘彬)
用户登录是的协作图 3.
包图,分为三个包,UI package ,Business package , Database package
3.1 UI package(巫腾飞) package(赵雨亭)
4.系统的部署
4. 1组件图(欧阳益湘)
更新数据库
4. 2配置图(赵松)
四:源程序代码
登录界面的代码 /**类名:LoadPane *描述:登陆框 *公司:DoubleZ组合 *作者:张天瑞 *版本:Double *创建时间: .*;
import .*; import .*; import .*; import .*;
public class LoadPane extends JFrame{ static String loadPass=null;
JLabel label1=new JLabel(\"********欢迎使用局域网聊天程序********\"); JLabel label2=new JLabel(\"帐号:\"); JTextField tf1=new JTextField(15); JLabel label3=new JLabel(\"密码:\"); JPasswordField tf2=new JPasswordField(15);
JLabel label4=new JLabel(\"第一次使用请先注册!\");
JButton JButton1=new JButton(\"*登陆*\"); JButton JButton2=new JButton(\"*注册*\");
JButton JButton3=new JButton(\"---------关于----------\"); /*public void getIpNum(){ InetAddress ip=(); }*/
oString(););
ip2=(\".\")+1,()); ip=ip1+ip2; }
catch(Exception e){();} return ip; } public void init(){ Container cp=getContentPane(); Toolkit kit=getToolkit(); Dimension winSize=(); setBounds4+100,4+80, xt\"); ObjectInputStream oos = new ObjectInputStream(in); ArrayList ar=(ArrayList)(); String [] strInfo=(String [])(0); loadPass=strInfo[0]; (); }catch(Exception exc1){();} quals(getMyNum()) &&().equals(loadPass)){ MainBar mainBar=new MainBar(); ();xt\"); if()){ (null, \"大哥,不能多次注册!\
null, , ,
null, null, null); }else if(!()){ OwerPane opDemo1=new OwerPane(); } } }); n\
null, , ,
null, null, null); } }); } public static void main(String[] args){ LoadPane lp=new LoadPane();
}
(\"局域网聊天程序\");
(); ();
(230,200); (false);
(new WindowAdapter(){ public void windowClosing(WindowEvent e){ (0); } }); (true); }
主功能实现代码 /**类名:MainBar *描述:搭建一个主框架 *公司:DoubleZ组合 *作者:张天瑞 *版本:Double *创建时间: .*;
import .*; import .*; import .*; import .*;
public class MainBar extends JFrame{ ImageIcon ic=new ImageIcon(\"\"); JButton showPic=new JButton(ic); etImage(\"\"); etClassName(); QuaquaLookAndFeel className=new QuaquaLookAndFeel(); (className); tart(); etBytes(); (dps); }
catch(Exception e){();}
} etBytes(); (dps);
catch(Exception e){();} }
最近和兄弟们一起做聊天软件,增进了感情不说,也增长了N多知识,这里要感谢下组长赵松,在他的带领和帮住下我们才能如此顺利的把这事情搞定。
曾经看过一本书叫《道法自然》,内容略记得一二,但我最欣赏的是它的书名。软件设计没什么太神秘有东西,只要用心体会,其实一切都很自然。软件的设计之“道”,也不在于设计有多么的华丽、精巧,而在于其朴实、自然,最终达到“以无招胜有招”,进入一个全新的境界。
团队是最重要也是最难的,它是一个项目能否顺利成功的关键。它不仅教我们如何发现市场,如何分析需求,如何挑选团队,如何制定计划。。。。。。而且它还教我们如何做人,如何与人相处,如何管理团队,如何调动队员积极性等等很多东西。其实这一切,不只是用在软件开发上,更可以用在做人,做事,成功等任何方面,让人受益匪浅。在团队管理上,我信任一句话“善用人者为之下”。当然我不否认在工作中,有时候队员也会偷懒,做事拖拖拉拉,不能按时完成分配的任务,甚至不去做等问题。但总体来说,我们的团队是成最和谐最团结的团队,从我们从头到尾没有一人退队,并且最后顺利完成任务,我相信我们是成功的。
相信这次合作带给我们的不仅仅是知识上的进步,更是人生经验的提高。要感谢大家的愉合作,感谢我们有这样一个自我提高的机会。
在做这个软件的过程中,大家通力合作,最终完成了预期目标,虽然我所做的非常有限,但是我也学习到了非常非常多的知识,知道了需求分析的重要性,知道了编写代码的不容易,但是我觉得这是非常值得的,对我们今后走上社会走上工作岗位是非常有用的,我也要感谢这个过程中中同学和老师给我的帮助,今后我一定会继续努力。
在工程中的实现问题就是编码, 这一步是最能体现出团体合作的,由上面所说,模块划分好以后就需要给组内成员分配任务了,按成员分配。成员与成员之前可保持技术上的通信,相互学习交流,以达到共同提高的目的.当组内成员把所有的编码实现后就需要组合了哈,把每一个成员上交的的相应功能的模块接口拼合起来。所以团队协助十分重要。
再次,通过这次的开发学习,我深刻认识到了自己的不足,同时也发现计算机软件的学习并不是想象中那么简单。它需要你坚持不懈的学习与巩固。
感谢这次开发学习的机会,让我收获了知识并且认识到了自己的不足。
做了几周的聊天软件,有很多的心得体会,有关于具体细节方面的,更多的是关于团队合作方面的。
在这学期的软件编程中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。之所以使用java作为我们的编程语言,不仅是因为老师说java在是社会上应用比较多的 编程语言,也因为想通过使用java锻炼自己的语言编程能力,养成良好的java语言编程风格。不管怎样,这些都是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。软件编程是件很辛苦的事情,我想很少有人会一步登天吧。永不言弃才是最重要的。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。而团队合作也是当今社会最提倡的。
首先我收获了团结的精神.我跟东凡负责需求的分析.我们这一组的成员在一起讨论我们软件到底该怎么写.要实现什么功能.从中我学到了协调大家.
另外我学到了一些技术的知识,开始我觉得写一个软件无非就是程序员的工作,现在发现一个软件写出来要经历很多的步骤.公司需要的不仅是程序员.学到了从面对一个问题到做最终解决.要进行很多的分析和处理.学会了怎样解决一个问题.
这次软件工程的课程设计,我们组选择了聊天软件这个课题,我跟段建军一起负责这个软件的需求分析,在为期十多天的设计中,由于是第一次正式的开发一款软件,对于开发流程和一些标准并不是十分熟悉,这使我遇到了许多困难,把这个问题解决了,另一个新的问题又来了。这不能不说是对知识的欠缺。通过这次的课程设计,我懂得了无论什么事都要去做才会发现问题,才有可能去解决问题。对知识的学习,不能潜偿辄止,要深入去学习,去了解,这样才会有所收获。有许多东西,许多事,不是想像中的那么容易,不去实践,永远也不会有提高,尤其是学习计算机。同时,在这次课程设计的过程中,我认识到学好计算机要重视实践操作,不能只是学习和重视书本上的理论知识,所以日后在学习过程中,我会更加注视实践操作,使自己更好地学好这门课程。在请教了同学还有上网查找相关知识之后终于完成了自己的工作,但肯定还有有很多的不完美的地方,希望老师予以指出和改正。
经过这段时间的课程设计,让我看到了自己平时所学到的一点理论知识在实际应用中很有限,有很多的知识漏洞,也暴露出我还有许多之前学习到的的知识都淡忘了。设计过程中明显的准备不充分,使自己遇到了很多的难题,但在和同学们合作讨论下有颇有收获,从中我了解的个人的学识终究是限的,但集体的智慧是无限的。在这次课程设计过程中,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学到的
理论知识与实践相结合起来,从理论中得出结论,将结论辅助与理论,才能真正学到知识并写出有用的程序来为他人服务,更为社会服务,所以提高自己的实际动手能力和独立思考的能力是十分重要的,也让我懂得在接下来的一个月寒假中,要好好的温故知新,加深自己的理论知识,以便在将来的实践中有更多的理论保障,最后感谢我们的辛老师的指导和督促,谢谢组长赵松对我的帮助。
--------
因篇幅问题不能全部显示,请点此查看更多更全内容