
| 卷 号 | ||
| 卷内编号 | ||
| 密 级 |
| 局域网聊天系统 | |
详细设计说明书 Version: 项 目 承 担 部 门: 08软件第5小组 撰 写 人(签名): 全体成员 完 成 日 期: 2010-7-21 本文档 使 用部门: 08软件第5小组 评 审 日 期: 2010-7-21 | |
编写目的
软件详细设计是软件概要设计的进一步细化,他对系统的各个功能进行了逻辑上的实现。规定了编码的结构和思路,是应用系统进行物理实现的直接基础。
背景
软件系统的名称:局域网聊天系统
本项目的任务提出者: 实习单位
本项目的任务开发者:西南交大08级软件工程第五组
软件系统的用户:同局域网下用户
定义
列出文件中用到的专业术语的定义和外文字母的原词组。
UDP:数据报协议
TCP:传输控制协议
SOCKET:套接字
参考资料
相关项目案例,《计算机软件产品开发文件编制指南》。
“Visual C++ 6 开发使用手册”,机械工业出版社,1999/2,CIP-40581
“TCP/IP进行网际互连”,电子工业出版社,1998/4,ISBN 7-5063-4607- 5/TP.2188
2.程序(模块)系统的组织结构
3.界面设计要求
(1)系统窗口所使用的图标统一
(2)系统:分辨率为800*600、小字体
(3)该系统用户界面可根据模块大致分为:
1、用户总体界面
2、用户聊天界面
3、系统配置界面
4、消息记录界面
5、消息群发界面
总体界面根据功能界面的设计基础上,统一做以下要求:
1、按钮根据摆放位置在考虑美观性的基础上设置大小及字体。
2、弹出的对话框采取统一样式,告知信息必须明确。
3、界面要做到简洁美观大方。
4、编辑框根据形式及摆放位置设置大小及宽度,必须顾及整体的协调性。
4.本软件系统中各程序(模块)的设计说明
系统配置管理模块的设计说明
模 块 详 细 设 计 说 明 表
个人资料模块
编号:
| 模块名称 | 个人资料 | 模块代号 | |||
| 适用范围 | 全局、局部 | 类型 | 窗口、函数、用户对象 | ||
| 模块功能 | 用于用户填写相关个人资料。 | ||||
| 作者 | 周扬 | 编写时间 | 修改人 | ||
| 修改时间 | 修改批准人 | 修改次数 | |||
| 性能要求 | 对精度、灵活性、时间特性等的要求。 | ||||
| 条件 | 已经上线的用户 | ||||
| 输 入 | 给出每一输入项的名称、数据类型和格式。 | ||||
| 输 出 | 给出每一输出项的名称及意义,数据类型和格式,数据值的有效范围,输出方式、数量的说明等 | ||||
| 算法逻辑 | 1.填写信息 2.通过相关变量存入文件 | ||||
| 相关对象及接口 | 包括 昵称m_Name 性别m_Sex 年龄m_Age电子邮件 m_Emai 个人说明m_Information。 通过相关结构体保存至文件 | ||||
| 备注 | 无 | ||||
编号:
| 窗口名 | IDD_PersonalInfor | 说明书编号 | |||||
| 1、窗口对象控件列表 | |||||||
| 对象类型 | 对象名称 | 对象事件 | 对象功能描述 | 用户使用控制 | |||
| 编辑框 | m_Name | Input | 接收输入用户昵称 | 输入信息 | |||
| m_Sex | Input | 接收输入用户性别 | 输入信息 | ||||
| m_Age | Input | 接收输入用户年龄 | 输入信息 | ||||
| m_Email | Input | 接收输入用户EMAIL | 输入信息 | ||||
| m_Information | Input | 接收输入用户个人说明 | 输入信息 | ||||
| 命令按钮 | IDOK2 | clicked | 将用户输入的信息输出到文件 | 点击 | |||
| IDOK | clicked | 取消 | 点击 | ||||
| 2、窗口事件列表 | |||||||
| 事件名 | 事件 类型 | 事件功能描述 | 事件算法逻辑 | ||||
| 无 | |||||||
| 3、窗口函数列表 | |||||||
| 函数名 | 函数类型 (全局、窗口) | 函数功能描述 | 函数算法逻辑 | ||||
| Save_File | 窗口 | 将用户填写的数据存入文件 | 将输入数据保存至相关结构体,运用相关文件操作函数输出至文件 | ||||
编号:
| 模块名称 | 信息屏蔽 | 模块代号 | |||
| 适用范围 | 全局、局部 | 类型 | 窗口、函数、用户对象 | ||
| 模块功能 | 可以将用户不想接受的用户的全部消息进行屏蔽。 | ||||
| 作者 | 周扬 | 编写时间 | 修改人 | ||
| 修改时间 | 修改批准人 | 修改次数 | |||
| 性能要求 | 对精度、灵活性、时间特性等的要求。 | ||||
| 条件 | 已经上线的用户 | ||||
| 输 入 | 选择想屏蔽的用户 | ||||
| 输 出 | 对屏蔽的用户的消息不再显示。 | ||||
| 算法逻辑 | 1.将用户选择的用户加入屏蔽列表 2.用户接收消息时首先读取屏蔽列表,若发送消息用户不在屏蔽列表中,则显示该用户消息,反之则不显示。 | ||||
| 相关对象及接口 | |||||
| 备注 | |||||
窗 口 对 象 说 明 表
编号:
| 窗口名 | IDD_BlackList | 说明书编号 | |||||
| 1、窗口对象控件列表 | |||||||
| 对象类型 | 对象名称 | 对象事件 | 对象功能描述 | 用户使用控制 | |||
| 编辑框 | m_BlackIp | Input | 接收输入想屏蔽的IP地址 | 输入信息 | |||
| 数据显示 | BlackList | View | 显示已经添加至黑名单的IP | 查看 | |||
| 命令按钮 | On_Add | clicked | 执行添加黑名单IP | 点击 | |||
| On_Del | clicked | 执行删除黑名单IP | 点击 | ||||
| 2、窗口事件列表 | |||||||
| 事件名 | 事件 类型 | 事件功能描述 | 事件算法逻辑 | ||||
| 无 | |||||||
| 3、窗口函数列表 | |||||||
| 函数名 | 函数类型 (全局、窗口) | 函数功能描述 | 函数算法逻辑 | ||||
| Add_List | 窗口 | 添加屏蔽黑名单信息 | 将用户输入的IP添加至列表 | ||||
| Del_List | 窗口 | 删除屏蔽黑名单信息 | 删除选定信息 | ||||
编号:
| 模块名称 | 上线提示 | 模块代号 | |||
| 适用范围 | 全局、局部 | 类型 | 窗口、函数、用户对象 | ||
| 模块功能 | 上线提示可以设置用户上线的时候是否提示其他用户你上线了。用户有是、否两个选择 | ||||
| 作者 | 周扬 | 编写时间 | 修改人 | ||
| 修改时间 | 修改批准人 | 修改次数 | |||
| 性能要求 | 对精度、灵活性、时间特性等的要求。 | ||||
| 条件 | 已经上线的用户 | ||||
| 输 入 | 勾选或者取消上线提示复选框。 | ||||
| 输 出 | 对其他用户提示该用户上线或不提示。 | ||||
| 算法逻辑 | 1、由该用户机向所有其他在线用户广播消息。具体参见消息群发系统算法 | ||||
| 相关对象及接口 | 无 | ||||
| 备注 | 无 | ||||
窗 口 对 象 说 明 表
编号:
| 窗口名 | IDD_Setting | 说明书编号 | |||||
| 1、窗口对象控件列表 | |||||||
| 对象类型 | 对象名称 | 对象事件 | 对象功能描述 | 用户使用控制 | |||
| 复选框 | IDC_CHECK1 | Check | 是否对用户上线提示 | 勾选与否 | |||
| 命令按钮 | On_Submit | clicked | 提交 | 点击 | |||
| On_cancel | clicked | 取消 | 点击 | ||||
| 2、窗口事件列表 | |||||||
| 事件名 | 事件 类型 | 事件功能描述 | 事件算法逻辑 | ||||
| 无 | |||||||
| 3、窗口函数列表 | |||||||
| 函数名 | 函数类型 (全局、窗口) | 函数功能描述 | 函数算法逻辑 | ||||
| Save_Setting | 窗口 | 将设置保存至文件 | 使用文件操作相关函数保存 | ||||
模 块 详 细 设 计 说 明 表
编号:
| 模块名称 | 用户扫描 | 模块代号 | |||
| 适用范围 | 全局 | 类型 | 窗口 | ||
| 模块功能 | 用户扫描模块扫描局域网,并将在线用户显示在列表中。在软件打开时,自动调用该模块扫描,根据本机IP扫描本IP段。并可以随时进行刷新。 还能够自己确定所需扫描IP段起始地址进行扫描。 | ||||
| 作者 | 傅泽华 | 编写时间 | 修改人 | ||
| 修改时间 | 修改批准人 | 修改次数 | |||
| 性能要求 | |||||
| 条件 | 流程方法、流程节点维护好。 | ||||
| 输 入 | 所需扫描IP起始地址、点击扫描按钮 | ||||
| 输 出 | 将在线用户的IP、主机名、用户名显示在列表中 | ||||
| 算法逻辑 | 若用户自行填写所需IP的起始地址(可缺省),并点击扫描按钮,则 1.首先判断输入框是否为空,若是,则跳到第三步;若否,则检查所输入的IP是否在一个网段上 2.如果不在一个网段,提示用户IP不在一个网段上,仍旧扫描该网段,系统循环向输入的IP地址段的IP发送消息,然后跳到第四步 3.如果在一个网段上,系统循环向输入的IP地址段的IP发送消息根据返回消息判断用户是否在线。如果用户在线,则将该IP地址的计算机名,和IP地址显示在列表中 | ||||
| 相关对象及接口 | 无 | ||||
| 备注 | 无 | ||||
窗 口 对 象 说 明 表
编号:
| 窗口名 | IDD_MYQQ_DIALOG | 说明书编号 | |||||
| 1、窗口对象控件列表 | |||||||
| 对象类型 | 对象名称 | 对象事件 | 对象功能描述 | 用户使用控制 | |||
| 列表控件 | IDC_USER_LIST | double clicked | 打开对所选用户聊天的对话框 | ||||
| right clicked | 打开对所选用户操作的可选菜单,菜单功能有是否屏蔽该用户、发起与该用户的对话、查看该用户个人资料和是否进行上线提示(?) | ||||||
| 编辑框 | IDC_EDIT_IP | modified | 编辑扫描的IP起始地址 | ||||
| 按钮 | IDC_SCAN_BUTTON | clicked | 对所输入的IP段进行扫描,若输入为空则默认扫描本IP段,并将在线用户显示在用户列表 (IDC_USER_LIST)中 | ||||
| IDC_REFRESH_BUTTON | clicked | 刷新当前IP段,并将刷新后的在线用户显示在用户列表中(IDC_USER_LIST) | |||||
| 静态文本 | IDC_USER_NUM | 无 | 显示当前在线用户个数 | ||||
| 2、窗口事件列表 | |||||||
| 事件名 | 事件 类型 | 事件功能描述 | 事件算法逻辑 | ||||
| close | 系统 | 释放所用的数据存储。 | |||||
| open | 系统 | 接收参数,获得当前操作员所保存的评审方法信息,并恢复在评审方法数据窗口中。 | |||||
| 3、窗口函数列表 | |||||||
| 函数名 | 函数类型 (全局、窗口) | 函数功能描述 | 函数算法逻辑 | ||||
| OnInitDialog | 窗口 | 初始化表格列名 | |||||
| OnPaint | 窗口 | 画出用户列表的表单 | |||||
模 块 详 细 设 计 说 明 表
编号:
| 模块名称 | 在线交流 | 模块代号 | |||
| 适用范围 | 全局 | 类型 | 窗口 | ||
| 模块功能 | 用户双击在线用户列表中的一项,然后弹出一个对话框,在该对话框中与指定用户进行交流。该交流窗口可显示指定用户的个人资料,可以清屏,可以显示与该用户的历史聊天记录,可直接关闭。 | ||||
| 作者 | 傅泽华 | 编写时间 | 修改人 | ||
| 修改时间 | 修改批准人 | 修改次数 | |||
| 性能要求 | |||||
| 条件 | 流程方法、流程节点维护好。 | ||||
| 输 入 | 双击在线用户列表中的一项,输入消息内容并点击发送按钮 | ||||
| 输 出 | 在对话框中的消息记录中显示聊天记录 | ||||
| 算法逻辑 | 在线交流在双击在线用户列表中的一项后,弹出一个对话框 1.在对话框中输入需要发送的消息内容,点击发送按钮 2.消息将会在对话框中的消息记录里面显示。我在“时间”说:**** 对方接受到消息后,如果还没有打开与发送端机器的对话,则重新打开一个对话框。并将消息显示在对话框的消息记录里面。否则,直接在消息记录中增加接收到的消息。消息记录为:“计算机名(IP地址)”在“时间”说:***** | ||||
| 相关对象及接口 | 无 | ||||
| 备注 | 无 | ||||
窗 口 对 象 说 明 表
编号:
| 窗口名 | IDD_CHARTING_DIALOG | 说明书编号 | |||||
| 1、窗口对象控件列表 | |||||||
| 对象类型 | 对象名称 | 对象事件 | 对象功能描述 | 用户使用控制 | |||
| 列表控件 | IDC_SHOW_LIST | 无 | 显示用户聊天记录,当前本机用户记录格式为“我在“时间”说:****”,对方用户记录格式为“计算机名或者昵称(IP地址)”在“时间”说:*****” | ||||
| 编辑框 | IDC_CHART_EDIT | modified | 编辑用户发送消息内容 | ||||
| 按钮 | IDC_SEND_BUTTON | clicked | 发送所编辑的消息,并将其显示在聊天记录 列表中 (IDC_SHOW_LIST) | ||||
| IDC_CLOSE_BUTTON | clicked | 关闭当前的消息对话框 | |||||
| IDC_SHOWNOTES_BUTTON | clicked | 打开一个新窗口并在新窗口中显示本机用户与该选中用户的历史聊天记录 | |||||
| IDC_CLEAR_BUTTON | clicked | 清除聊天记录列表中 (IDC_SHOW_LIST)的全部聊天记录 | |||||
| 静态文本 | IDC_NAME_STATIC | 无 | 显示聊天对象的昵称 | ||||
| IDC_SEX_STATIC | 无 | 显示聊天对象的性别 | |||||
| IDC_PCNAME_STATIC | 无 | 显示聊天对象的主机名称 | |||||
| IDC_IP_STATIC | 无 | 显示聊天对象的IP地址 | |||||
| IDC_ADDITION_STATIC | 无 | 显示聊天对象的个人说明 | |||||
| 2、窗口事件列表 | |||||||
| 事件名 | 事件 类型 | 事件功能描述 | 事件算法逻辑 | ||||
| close | 系统 | 释放所用的数据存储。 | |||||
| open | 系统 | 接收参数,获得当前操作员所保存的评审方法信息,并恢复在评审方法数据窗口中。 | |||||
| 3、窗口函数列表 | |||||||
| 函数名 | 函数类型 (全局、窗口) | 函数功能描述 | 函数算法逻辑 | ||||
| OnInitDialog | 窗口 | 初始化表格列名 | |||||
| OnPaint | 窗口 | 画出用户列表的表单 |
编号:
| 模块名称 | 消息群发 | 模块代号 | |||
| 适用范围 | 局部 | 类型 | 窗口、函数 | ||
| 模块功能 | 向所有在线用户发送消息 | ||||
| 作者 | 杨凯 | 编写时间 | 修改人 | ||
| 修改时间 | 修改批准人 | 修改次数 | |||
| 性能要求 | 对精度、灵活性、时间特性等的要求。 | ||||
| 条件 | 已经上线的用户 | ||||
| 输 入 | 用户将要发送的消息 | ||||
| 输 出 | 将消息发送并显示 | ||||
| 算法逻辑 | 依次向每个用户发送消息 | ||||
| 相关对象及接口 | |||||
| 备注 | |||||
编号:
| 窗口名 | IDD_sendall | 说明书编号 | |||||
| 1、窗口对象控件列表 | |||||||
| 对象类型 | 对象名称 | 对象事件 | 对象功能描述 | 用户使用控制 | |||
| 编辑框 | m_editsend | 无 | 输入想发送的消息 | 点击 | |||
| 编辑框 | m_editprint | 无 | 显示发送的消息 | ||||
| 命令按钮 | On_send | clicked | 执行发送 | 点击 | |||
| On_close | clicked | 关闭窗口 | 点击 | ||||
| 2、窗口事件列表 | |||||||
| 事件名 | 事件 类型 | 事件功能描述 | 事件算法逻辑 | ||||
| 无 | |||||||
| 3、窗口函数列表 | |||||||
| 函数名 | 函数类型 (全局、窗口) | 函数功能描述 | 函数算法逻辑 | ||||
| Sendall | 窗口 | 发送消息 | |||||
| Send_print | 窗口 | 显示发送的消息 | |||||
消息查询模块
模 块 详 细 设 计 说 明 表
编号:
| 模块名称 | 消息查询 | 模块代号 | |||
| 适用范围 | 全局 | 类型 | 对话框 | ||
| 模块功能 | 用于查询消息记录及浏览消息记录 | ||||
| 作者 | 杨凯 | 编写时间 | 修改人 | ||
| 修改时间 | 修改批准人 | 修改次数 | |||
| 性能要求 | |||||
| 条件 | 流程方法。 | ||||
| 输 入 | 所查询的计算机名称或者日期范围 | ||||
| 输 出 | 查询出来的消息记录 | ||||
| 算法逻辑 | 1.显示异常信息。 2.接受输入里所选定的计算机名称或日期区间, | ||||
| 相关对象及接口 | |||||
| 备注 | |||||
窗 口 对 象 说 明 表
编号:
| 窗口名 | w_chatview | 说明书编号 | ||||||||
| 1、窗口对象控件列表 | ||||||||||
| 对象类型 | 对象名称 | 对象事件 | 对象功能描述 | 用户使用控制 | ||||||
| 编辑框 | IDC_EDIT1 | 无 | 显示聊天记录 | |||||||
| IDC_EDIT2 | 选中 | 接受输入日期区间 | ||||||||
| 静态文本框 | IDC_STATIC1 | 无 | 提示用户选中所要查看聊天记录的计算机名 | |||||||
| IDC_STATIC2 | 无 | 提示用户输入日期的格式
| ||||||||
| 命令按钮 | IDC_BUTTON1 | ckicked | 翻到上一页 | |||||||
| IDC_BUTTON2 | ckicked | 翻到下一页 | ||||||||
| IDC_BUTTON3 | ckicked | 按日期查询 聊天记录 | ||||||||
| IDC_BUTTON4 | ckicked | 关闭对话框 | ||||||||
| IDC_BUTTON4 | ckicked | 删除当前页聊天记录 | ||||||||
| 2、窗口事件列表 | 获得某纳税户在核实、认定、处理阶段的案件数量 | |||||||||
| 事件名 | 事件 类型 | 事件功能描述 | ||||||||
| close | 系统 | 释放所用的数据存储。 | ||||||||
| open | 系统 | 开辟存储空间 | ||||||||
| 3、窗口函数列表 | 改变数据窗口大小 | |||||||||
| 函数名 | 函数类型 (全局、窗口) | 函数功能描述 | 函数算法逻辑 | |||||||
| Search_enablenext | 窗口 | 使按钮“下一页”可用 | ||||||||
| Search_enablepre | 窗口 | 使按钮“上一页”可用 | ||||||||
| Search_initedit | 窗口 | 初始化编辑框显示列表框中第一个人的聊天记录的第一页 | |||||
| Search_initlist | 窗口 | 搜寻保存的聊天记录并将这组用户显示在列表里 | |||||
| Search_disablenext | 窗口 | 使按钮“下一页”不可用 | |||||
| Search_disablelast | 窗口 | 使按钮“上一页”不可用 | |||||
| Search_shownext | 窗口 | 显示下一页聊天记录 | |||||
| Search_showlast | 窗口 | 显示上一页聊天记录 |
模 块 详 细 设 计 说 明 表
编号:PS1001
| 模块名称 | 信息记录 | 模块代号 | PS1001 | ||
| 适用范围 | 全局 | 类型 | 函数 | ||
| 模块功能 | 在聊天同时可以自动将聊天记录保存到文件中 | ||||
| 作者 | 编写时间 | 修改人 | |||
| 修改时间 | 修改批准人 | 修改次数 | |||
| 性能要求 | |||||
| 条件 | 流程方法、流程节点维护好。 | ||||
| 输 入 | 聊天记录 | ||||
| 输 出 | 保存聊天记录的文件 | ||||
| 算法逻辑 | 在文件中建立关于用户名及日期的索引 | ||||
| 相关对象及接口 | |||||
| 备注 | |||||
模 块 相 互 关 系 表
模块
| 名称 | 相关模块名称 | 相互关系描述 (调用/被调用) |
| 在线交流系统 | 用户扫描系统 | 调用 |
| 消息群发系统 | 在线交流系统 | 调用 |
| 系统配置系统 | 消息群发系统 | 调用 |
| 在线交流系统 | 信息记录系统 | 调用 |
