软件工程师MYQQ聊天系统例子.docx
- 文档编号:1340428
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:6
- 大小:27.41KB
软件工程师MYQQ聊天系统例子.docx
《软件工程师MYQQ聊天系统例子.docx》由会员分享,可在线阅读,更多相关《软件工程师MYQQ聊天系统例子.docx(6页珍藏版)》请在冰豆网上搜索。
软件工程师MYQQ聊天系统例子
MyQQ聊天工具的设计与实现软件开发流程回顾
项目简介
任务:
MyQQ聊天工具
系统结构:
C/S,通过数据库交换聊天消息,
项目需求描述及效果展示
用户注册用户登录个人信息编辑查找/添加好友查找添加好友好友列表聊天
技术实现:
技术实现:
WinForms+ADO.NET
需求分析——功能分析需求分析——功能分析——
主要功能:
注册与登录好友管理消息管理个人设置
需求分析——界面分析需求分析——界面分析——
需要的界面:
注册界面登录界面登录后的主界面查找/添加好友界面查找添加好友界面聊天界面系统消息界面个人设置界面头像列表界面
需求分析——数据库分析需求分析——数据库分析——
需要的数据表:
Users:
用户表:
Friends:
好友表:
Star:
星座表:
BloodType:
血型表:
FriendshipPolicy:
好友策略表:
Messages:
消息表:
MessageType:
消息类型表:
需求分析——辅助类分析需求分析——辅助类分析——
需要添加的辅助类:
DBHelper类类UserHelper类
小组分工
MyQQ聊天工具
组员B
协助
组长A
协助
组员C
登录后主窗体
查找/添加好友
注册窗体
查找/添加好友
个人信息窗体
辅助类
登录窗体
聊天窗体
头像列表窗体
系统消息窗体
查找/添加功能编码查找添加功能编码
界面设计、界面设计、辅助功能
项目计划
项目准备
项目框架、建库、建表、项目框架、建库、建表、提交计划
第一次集中编码
注册、注册、登录功能
第二次集中编码
查找/添加好友、查找/添加好友、部分聊天功能添加好友
第三次集中编码
个人信息显示、个人信息显示、完整聊天功能
第四次集中编码
个人信息修改、个人信息修改、完善整个功能
项目总结
项目准备:
项目准备:
A任务
搭建项目框架提交小组计划
项目准备:
项目准备:
B任务
建库建表
UsersFriendsFriendShipPolicyStarBloodTypeMessagesMessageType
建关系
第一次集中编码:
第一次集中编码:
A任务
设计注册窗体界面实现用户注册功能
第一次集中编码:
第一次集中编码:
B任务
设计登录后主窗体显示好友列表
第一次集中编码:
第一次集中编码:
C任务
设计登录窗体实现登录功能
第一次集中编码:
第一次集中编码:
难点分析
注册功能难点
//获取自动生成的Id值获取自动生成的IdId值//查询新增加的记录的标识号的SQL语句sql="SELECT@@IdentityFROMUsers";//……//执行查询语句myQQNum=Convert.ToInt32(command.ExecuteScalar());
第一次集中编码:
第一次集中编码:
难点分析
好友列表——第三方控件SideBar第三方控件好友列表
SbGroup类型Items属性Groups属性SbItem类型
第一次集中编码:
第一次集中编码:
难点分析
SideBar
//命名空间usingAptech.UI;//添加组sbFriends.AddGroup("我的好友我的好友");我的好友sbFriends.AddGroup("陌生人陌生人");陌生人显示的文字//添加项SbItemitem=newSbItem((string)dataReader["NickName"],(int)dataReader["FaceId"]);sbFriends.Groups[0].Items.Add(item);显示的图像索引
第二次集中编码:
第二次集中编码:
A任务
查找/添加好友窗体设计查找添加好友窗体设计
第二次集中编码:
第二次集中编码:
B任务
查找/添加好友功能实现查找添加好友功能实现
第二次集中编码:
第二次集中编码:
C任务
聊天窗体设计及功能实现
第二次集中编码:
第二次集中编码:
难点分析
添加好友判断流程
第二次集中编码:
第二次集中编码:
难点分析
操作显示查询好友结果的DataGridView
//判断是否有单元格选中if(dgvBasicResult.SelectedRows.Count==0){//…}
//判断选中行的第一个单元格是否有值if(dgvBasicResult.SelectedRows[0].Cells[0]!
=null){//…}表示空//获得选中行的第一个单元格的值dgvBasicResult.SelectedRows[0].Cells[0].Value
第三次集中编码:
第三次集中编码:
A任务
设计个人信息窗体显示个人信息
第三次集中编码:
第三次集中编码:
B任务
完善登录后主窗体,完善登录后主窗体,扫描未读聊天消息
利用Timer实现
控制好友头像闪烁
来消息,来消息,头像闪烁
第三次集中编码:
第三次集中编码:
C任务
头像列表窗体设计及功能实现
第三次集中编码:
第三次集中编码:
难点分析
头像闪烁效果:
头像闪烁效果:
改变头像显示的图片,改变头像显示的图片,用Timer控制切换控制切换
头像列表:
头像列表:
ListView控件View属性:
LargeIcon属性:
LargeImageList属性:
指定存放大头像图片的图像列表控件属性:
//判断ListView中是否有选中的项中是否有选中的项if(lvFaces.SelectedItems.Count==0){//…}//获得选中的头像的索引intfaceId=lvFaces.SelectedItems[0].ImageIndex;
第四次集中编码:
第四次集中编码:
A任务
个人信息修改功能
第四次集中编码:
第四次集中编码:
B任务
完善登录后主窗体:
完善登录后主窗体:
扫描未读系统消息右键菜单工具条按钮功能
第四次集中编码:
第四次集中编码:
C任务
添加好友请求窗体设计及功能实现
第四次集中编码:
第四次集中编码:
难点分析
登录主窗体的右键菜单中
删除好友功能——从SideBar中移除一项从删除好友功能
//从SideBar中将选中的项移除中将选中的项移除sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);
大小头像切换——SideBar的View属性大小头像切换
//小头像sbFriends.View=SbView.SmallIcon;
本讲内容
MyQQ聊天工具的设计与实现软件开发流程回顾
软件开发流程
比尔盖子是一名建筑工人起初只干一些比较简单的建筑工作凭个人技术和经验,凭个人技术和经验,不需要特别设计,可以顺利完成别设计,
如同编写早期比较小的程序
软件开发流程
新任务:
新任务:
建造一间非常美丽而完整的房间工作变得复杂许多
像不断发展的软件,功能像不断发展的软件,越来越多,越来越多,越来越复杂
软件开发流程
软件复杂性
图形用户界面客户/服务器结构客户服务器结构分布式应用数据通信超大型关系型数据库
项目团队中的角色
比尔想到需要更多的人手帮他终于组成了自己工作团队就像软件中的项目团队
软件项目团队中的角色
项目团队
项目经理技术负责人软件架构师分析师设计人员开发人员测试人员
项目人员构成比例
例子:
例子:
的开发:
微软EXCHANGE2000SERVER的开发:
项目经理:
人项目经理:
25人开发人员:
开发人员:
140人人测试人员:
测试人员:
350人人
WINDOWS2000:
:
项目经理:
项目经理:
250人人开发人员:
开发人员:
1700人人测试人员:
测试人员:
3200人人
软件工程师的工作
项目设计与分析编码编写文档测试团队管理
软件工程师的素质
团队组织和管理能力
良好的编码能力规范化编码习惯具有软件工程的概念
规范意识团队精神
求知欲、求知欲、进取心和学习总结的能力
软件开发过程
“这次不能盲目开工,这次不能盲目开工,这次不能盲目开工我们需要首先好好设计一下!
计一下!
”构想分析设计构造评估
软件的制作过程也非常相似
软件开发过程
建造房屋构想分析设计构造评估维护
软件开发可行性研究与计划需求分析设计开发评估/测试评估测试维护
软件开发过程模型
软件开发需要经历几个步骤具体如何实施,具体项目不同,具体如何实施,具体项目不同,有所区别软件开发过程模型:
制作具体软件时,软件开发过程模型:
制作具体软件时,开发步骤的具体实施方法
瀑布模型
瀑布模型
瀑布模型——“线性顺序模型”线性顺序模型”瀑布模型线性顺序模型可行性研究报告可行性研究与计划将每个都清楚定义了起止点产生明确的交付成果需求分析之间通过文档进行沟通需求说明书每个都必需完成全部规定的任务(文档)每个都必需完成全部规定的任务(文档)后才能够进入下设计文档设计一个
开发程序
测试
测试报告维护
可行性研究与计划
确定项目目的了解系统中客户的期望确定系统的规模论证项目可行性
技术可行性经济可行性操作可行性社会可行性
需求分析
需求是产品的根源需求工作的优劣对产品影响最大
获取需求客户同行、同行、专家已经存在的同类软件产品行业标准、行业标准、规则Internet相关资料相关资料可能遇到的问题用户说不清楚需求误解需求
分析需求
功能需求记录在客户需求说明书中功能需求记录在客户需求说明书中
需求分析
文档介绍产品功能性需求
需求说明书
产品介绍
产品非功能性需求
产品应当遵循的标准和规范
其他需求
设计
目的:
根据用户的需要制定标准,目的:
根据用户的需要制定标准,划分并分配任务
构建原型设计GUI标准设计标准
设计涉及的活动
设计数据库
设计过程模块
分配任务和监督任务
设计编码标准
开发
开发
对用户界面进行最后的修改
构建数据库
通过添加代码使其具备功能
评估/评估/测试
本测试每个单元的功能
数据验证测试单元测试安全性测试安全性测试
测试涉及的活动
强度测试
集成测试
维护
为客户提供故障诊断支持
网络电话上门
应用程序要求的任何软件升级
版本补丁
软件开发过程
比尔通过类似软件瀑布模型的方式成功完成了自己的建筑项目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程师 MYQQ 聊天 系统 例子