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