首页 详细设计

详细设计

举报
开通vip

详细设计通用数据挖掘系统V3.0 详细设计说明书 Version 3.0 文档编号 TTS*** 2012-04-11 达内IT 集团 文档历史 版本 标题 内容 作者 时间 1. 编写目的 描述DMS3.0项目的系统结构,数据实体,类的定义,类功能的实现,部署要求,运行环境等内容,该文档用来指导程序员完成程序代码实现。文档的主要读者包括:项目分析人员,项目设计人员,项目经理,程序员,测试人员,部署...

详细设计
通用数据挖掘系统V3.0 详细 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 书 Version 3.0 文档编号 TTS*** 2012-04-11 达内IT 集团 文档历史 版本 标题 内容 作者 时间 1. 编写目的 描述DMS3.0项目的系统结构,数据实体,类的定义,类功能的实现,部署 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 ,运行环境等内容,该文档用来指导程序员完成程序代码实现。文档的主要读者包括:项目分析人员,项目设计人员,项目经理,程序员,测试人员,部署人员,项目技术支持人员等。 2. 参考文档 【1】 《DMS3.0需求说明书》;文档编号:TTS***;版本号v1.0 【2】 《DMS3.0概要设计说明书》文档编号:TTS***;版本号v1.0 3. 名称解释 DMS:数据挖掘系统(Data Mining System) 系统架构:描述系统的核心功能组件和组件间的相互关联。 数据实体:描述系统需要采集,处理和保存的数据的结构。 用户登入/登出记录:在登录日志文件中记录的用户登入Unix系统的日志记录,该日志记录包含用户的登录名,用户登入Unix的时刻,登录的终端机器IP等信息。 用户的登录记录:将用户的登入记录和登出记录按照对应关系匹配起来,形成一条完整的登录记录,登录记录中包含以下信息:用户登录名,登入时刻,登出时刻,登录时长,登录终端机器IP等。 匹配的登入/登出记录:等同于用户的登录记录。 未匹配的登入记录:在登录日志文件中理论上一条登入记录跟一条登出记录匹配,但有可能在我们采集数据时用户还没有登出,所以日志文件中可能出现没有登出记录与之匹配的登入记录,这些登入记录我们将其保存在一个指定的文件中,在下次采集时再读取。 4. 系统架构综述 DMS3.0由以下几个功能模块组成: 数据读取模块,数据匹配模块,数据发送模块,数据接收模块,数据保存模块和数据整合模块,每个模块的核心功能如下: 数据读取模块:负责从用户登录记录文件和未匹配登录记录文件中读取用户的登录记录数据,将其转化为LogRec对象,然后传递给数据匹配模块匹配。 数据匹配模块:负责将用户登录记录数据,按照登入/登出的关系匹配起来,形成匹配的用户登录记录数据(MatchedLogRec对象),并计算出每次登录的时间长度。 数据发送模块:将匹配好的用户登录记录通过网络发送到采集系统服务器。 数据接收模块:服务器端接收匹配好的用户登录记录数据。 数据保存模块:将接受到的用户登录记录数据保存到数据库的用户登录记录明细表中。 数据整合模块:将用户登录记录明细表中的数据整合成日报表,月报表和年报表。 5. 静态结构设计 6. 数据实体类 根据需求分析,我们设计出以下数据实体类: 1, LogRec:登入/登出记录类,用来表示一条原始的用户登入/登出记录。 2, MatchedLogRec:匹配的登录记录类,用来表示一条匹配的用户登录记录。 以下分别对这两个实体类的设计作出说明: 6.1.1. 登入/登出记录数据类 1,登入/登出记录类(LogRec)类图: 2,登入/登出记录类(LogRec)成员变量说明: 成员变量定义 成员变量说明 备注 char logname[32] 用户登录名 int pid 用户登录的进程ID short type 登录记录类型 7=登入;8=登出 int  logtime 用户登入/登出时刻(秒) 原日志中数据单位是秒 char logip[257] 用户登录IP 6.1.2. 匹配的用户登录记录类 1,匹配的用户登录记录类(MatchedLogRec)类图: 2,匹配的用户登录记录类(MatchedLogRec)成员变量说明: 成员变量定义 成员变量说明 备注 char logname[32] 用户登录名 char logip[32] 用户登录终端IP int  logintime 用户登入时刻(秒) 原日志中数据单位是秒 int  logoutTime 用户登出时刻(秒) 原日志中数据单位是秒 int  durations 用户在线时间长度(秒) char labip[257] 实验室IP 7. 数据库表设计 根据需求,设计出如下数据库表结构: 表结构: 用户登录记录明细表: 字段 类型 长度 约束 备注 登录记录编号 Number 15 PK 系统自动生成 用户ID char 32 NOT NULL 实验室IP char 20 NOT NULL 用户终端IP char 257 NOT NULL 登入时间 Number 20 NOT NULL 登出时间 Number 20 NOT NULL 登录时长 Number 12 由登出时间-登入时间求得 用户登录记录日报表: 字段 类型 长度 约束 备注 用户ID char 32 PK 实验室IP char 20 PK 日登录时长 Number 12 NOT NULL 登出时间 Date 用户登录记录月报表: 字段 类型 长度 约束 备注 用户ID char 32 PK 实验室IP char 257 PK 月登录时长 Number 12 NOT NULL 登出时间 Date 用户登录记录年报表: 字段 类型 长度 约束 备注 用户ID char 32 PK 实验室IP char 20 PK 年登录时长 Number 12 NOT NULL 登出时间 Date 8. 总体类图 【客户端类图】 【服务端类图】 9. Client 类 Client类封装数据采集系统客户端的所有功能。 9.1.1. Client类定义     9.1.2. Client类方法说明 1)sendLogs方法定义: 方法原型 public void sendLogs() 方法功能 执行数据采集客户端的完整过程  logReader 负责读取数据  logSender 负责发送数据 参数说明 无 返回类型 void 抛出异常 调用类的异常 10. LogReader类 logReader类封装了日志读取的所有功能 10.1.1. LogReader类定义 10.1.2. LogReader成员变量说明 成员变量定义 成员变量说明 char  logFileName[50] 用户登录日志文件名 char  backFileName[50] 日志备份文件名 char  failLoginsFileName[50] 未匹配成功的登录记录保存文件名 logins  list 保存登录记录的集合 logouts list 保存登出记录的集合 matches list 保存匹配成功记录的集合 10.1.3. LogReader类方法说明 1) readLogs方法: 方法原型 public List readlogs() 方法功能 读取日志文件总调度函数  得到匹配好的集合 参数说明 无 返回类型 List 抛出异常 调用函数中可能抛出的异常 readLogs方法活动图: 2) backup方法: 方法原型 private:void  backup() 方法功能 备份日志文件  把变化的文件处理成不变的  把日志文件改名即可, 系统会自动生成wtmpx文件 参数说明 无 返回类型 void 抛出异常 读取数据失败抛出BackupException                           3) readFailLogins方法: 方法原型 public: void  readFailLogins 方法功能 读取上一次没有匹配的 登入记录 参数说明 无 返回类型 void 抛出异常 读取数据失败抛出ReadFailLoginException readFailLogins方法活动图: 4) readBackupFile方法: 方法原型 public: void  readBackupFile 方法功能 读取备份的日志文件  把读取到的数据放入对应的属性中 参数说明 无 返回类型 Void 抛出异常 读取数据失败抛出ReadBackFileException 4) matchLogRec方法: 方法原型 public void matchLogRec() 方法功能 将用户登入/登出记录匹配为完整的登录记录 logins ,logouts进行匹配存入matches 参数说明 无 返回类型 void 抛出异常 匹配数据失败抛出MatchLogRecException matchLogRec方法活动图: 6)  saveFailLogins方法: 方法原型 public void saveFailLogins()  方法功能 将匹配失败的日志记录存到文件 参数说明 无 返回类型 无 抛出异常 匹配数据失败抛出SaveFailLoginsException   11. LogSender类 11.1.1. LogSender类定义 11.1.2. LogSender类成员变量说明 成员变量定义 成员变量说明 char  failSendFileName[50] 发送失败记录的保存文件名 int  fd 采集系统服务器网络描述符 unsigned short port 服务器的端口 char  serverIp[20] 要连接的服务器ip 11.1.3. LogSender类方法说明 1)sendMatches方法: 方法原型 public void sendMatches(list*matches) 方法功能 发送匹配日志集合到服务端 参数说明 matches 存储发送数据的集合 返回类型 Void 抛出异常 建立连接失败抛出SendDataException sendMatches方法活动图:   2)initSocket方法: 方法原型 public void initNetWork() 方法功能 根据ip和port  以及serverIp建立到服务端的socket连接 初始化网络 参数说明 无 返回类型 void 抛出异常 建立连接失败抛出SendDataException 3)readSendfailed方法: 方法原型 public void readSendfailed (list*matches) 方法功能 读取发送失败的数据文件 参数说明 matches: 匹配的用户日志记录列表指针 返回类型 void 抛出异常 发送数据失败抛出SendDataException 4)saveSendfailed方法: 方法原型 public void saveSendfailed (list*matches) 方法功能 存储发送失败的数据  以备下次读取发送 参数说明 matches: 匹配的用户日志记录列表指针 存储时 把集合中剩余的数据存储到文件 返回类型 void 抛出异常 发送数据失败抛出SendDataException 12. Server类 12.1.1. Server类定义 Server成员变量说明 成员变量定义 成员变量说明 char  labIp[20] 实验室ip Int  fd 网络套接字描述符 DataReciveThread  productor 接收数据的线程 DataSaveThread    customer 存储数据的线程 UserData        dataPool 线程共享数据缓冲池 1.1.1. Server类方法说明 1) initSocket方法 方法原型 public  void  initSocket( ) 方法功能 初始化服务,启动Socket 的bind  listen  和accept 参数说明 无 返回类型 void 抛出异常 DmsServerException 创建ServerSocket过程中发生的异常 2) startService方法 方法原型 public  void  startService( ) 方法功能 响应客户连接请求,开启线程为客户服务 参数说明 无 返回类型 void 抛出异常 DMSServerException 创建相应客户请求过程中发生的异常   1.1.2. DataReciveThread类说明                 成员说明:         threadid  创建线程时使用  标示一个线程对象         方法说明:           run 完成具体的数据接收工作           start 完成线程的创建和启动线程           reciveData(void *)  创建线程时调用的线程函数 1.1.3. DataSaveThread类说明               成员说明:         threadid  创建线程时使用  标示一个线程对象         logDao  向数据库中存储数据的对象         方法说明:           run 完成具体的调用dao的工作           start 完成线程的创建和启动线程           saveData(void *)  创建线程时调用的线程函数 1.1.4. LogDao类说明 方法说明: connect        连接数据库 saveData      存储数据  根据日志记录的退出时间放入相应的日志表中               如退出时间是8日 则放入logdetail08日志表中 commitData    提交事务 disconnect    断开连接 1.1.5. UserData类说明     UserData成员变量说明 成员变量定义 成员变量说明 deque    data 缓冲客户端的数据池的真正存储容器 pthread_mutex_t    mutex 控制线程安全的互斥量 pthread_cont_t      con_p 控制是否生产的条件量 pthread_cont_t      con_c 控制是否消费的条件量 UserData类方法说明 push_data方法: 方法原型 public:void  push_data(LogData rec) 方法功能 向缓冲池中加入数据 参数说明 LogData  rec是要往数据库表中存储的数据 返回类型 void 抛出异常 无 pop_data方法: 方法原型 public:LogData pop_data() 方法功能 从缓冲池中取出数据 参数说明 无 返回类型 LogData  2. 异常设计 3. 客户端异常类结构图: 4. 客户端异常类说明 异常类名 异常类责任说明 备注 DmsReadException 数据读取异常。 BackupException 备份异常。 ReadFailLoginException 读取未匹配的登入数据异常。 MatchLogRecException 匹配日志记录异常。 SendDataException 发送数据异常 数据整合:            前置条件:数据已经按照登出的日期放入到了对应的详细日志表中  数据按照01到31编号。 三种类型的整合: 天整合:把每个用户 一天的使用服务器的时间做一个统计  一个用户 一天只有一条记录。规则是统计当前对应日期的前一天的数据 并把统计好的数据放入对应的天表中。             月整合:每个用户一个月对应一条数据    但这个整合不是一个月执行一次  而是一天执行一次。当进行天整合的时候要同时执行月整合  看月表中有没有这个用户的信息,如果有 则对这个用户进行更新操作,如果没有这个用户的信息则进行插入操作!             年整合:每个用户一年对应一条数据  执行的频率是一个月执行一次。当前月执行的是上一个月数据的整合,如果发现年表中已经有这个用户的信息则进行更新操作,否则就是插入操作!
本文档为【详细设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_650122
暂无简介~
格式:doc
大小:249KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-09-27
浏览量:14