DMS10需求说明书.docx
《DMS10需求说明书.docx》由会员分享,可在线阅读,更多相关《DMS10需求说明书.docx(14页珍藏版)》请在冰豆网上搜索。
![DMS10需求说明书.docx](https://file1.bdocx.com/fileroot1/2022-12/7/7a7691ed-f39e-4a56-8cce-4a1d09f1cc38/7a7691ed-f39e-4a56-8cce-4a1d09f1cc381.gif)
DMS10需求说明书
DMS1.0
通用数据挖掘系统V1.0
需求说明书
Version1.0
文档编号TTS***
2013-7-23
版本
标题
内容
作者
时间
v1.0
需求说明书
唐亮
2013-07-23
1.编写目的
本文档的目的是明确项目的业务背景、业务范围、定义项目的专业名词,分析项目的核心功能和系统需求。
期望读者包括:
项目发起人、最终用户、项目投资方、项目管理团队、项目执行团队,以及其他项目干系人。
2.参考文档
【无】
3.名称解释
DMS:
数据挖掘系统(DataMiningSystem)
用户:
需要使用Unix实验室出租业务的客户,用户通过电信公司提供的帐号和密码登录指定的Unix机器,并使用Unix服务。
终端机器:
用户通过一台本地终端机器来访问我们的Unix机器,并使用Unix服务,该本地终端就是我们所说的终端机器。
在我们的程序中要记录这一终端的IP,做为向用户收费的依据之一。
登录日志文件:
在Unix机器中自动记录用户登入/登出日志的文件,该文件为:
/var/adm/wtmpx;在我们的程序中该文件也可以是程序外部指定的另一个文件。
我们的程序需要提取该文件的数据来匹配出用户登入/登出的记录,并将其作为将来的收费依据。
用户登入记录:
在登录日志文件中记录的用户登入Unix系统的日志记录,该日志记录包含用户的登录名,用户登入Unix的时刻,登录的终端机器IP等信息。
用户登出记录:
在登录日志文件中记录的用户登出Unix系统的日志记录,该日志记录包含用户的登录名,用户登出Unix的时刻,登录的终端机器IP等信息。
我们需要将用户的登入记录和登出记录匹配起来,得到一条条完整的登录信息,并计算出用户本次登录的时长。
用户的登录记录:
将用户的登入记录和登出记录按照对应关系匹配起来,形成一条完整的登录记录,登录记录中包含以下信息:
用户登录名,登入时刻,登出时刻,登录时长,登录终端机器IP等。
匹配的登入/登出记录:
等同于用户的登录记录。
未匹配的登入记录:
在登录日志文件中理论上一条登入记录跟一条登出记录匹配,但有可能在我们采集数据时用户还没有登出,所以日志文件中可能出现没有登出记录与之匹配的登入记录,这些登入记录我们将其保存在一个指定的文件中,在下次采集时再读取。
4.项目背景
5.项目业务背景
在电信的业务中,有一种Unix实验室出租业务。
只要用户向电信运营商申请一个Unix帐号,就可以远程登录Unix实验室,并使用Unix系统。
用户使用电信运营商提供的Unix实验室的服务需要缴纳一定的费用,电信运营商需要一套数据采集系统,把用户登录实验室的时间长度数据采集起来,便于在指定的时间范围内作为对用户的收费依据。
要求数据采集系统必须采集如下信息:
登录用户名,登录的时间,登出的时间,登录总的在线时间,登录的实验室IP,用户的终端IP等信息。
DMS1.0项目需要开发这样一个通用的数据采集系统程序,来采集Unix机器记录的用户登入和登出的原始记录,并将这些记录解析匹配成用户的登录记录,并将其以可阅读的文本形式保存在文件中。
6.项目业务原理
任何用户登录Unix系统,Unix系统都会记录用户的登录信息,所有用户登入/登出的信息都保存在Unix的系统日志文件中。
数据采集系统就是通过读取Unix系统日志文件中用户登入/登出信息,并找出成对的登入/登出记录,得到用户登录实验室的登入时刻、登出时刻、登录时间长度等电信用户收费需要使用的数据,最后把匹配处理好的数据保存成电信工作人员可以阅读的文本文件,做为电信收费依据。
用户登录Unix系统的日志记录文件在Unix的/var/adm目录下,文件名是wtmpx,日志记录文件是一个二进制文件,在Unix中可以使用last指令查看,last命令格式为:
last[-a][-nnumber|-number][-ffilename][name|tty]
wtmpx文件中一条登录记录包含372字节,每条记录包含的数据项格式说明如下表1-1所示:
(其中黄色背景标识的数据项就是要采集的数据项)
位置范围
字节长度
含义
000-031
32
/*用户登录名*/
032-035
4
/*inittabid*/
036-067
32
/*devicename(console,lnxx)*/
068-071
4
/*进程ID*/
072-073
2
/*登录类型7-登入,8登出*/
074-075
2
/*processtermination*/
076-077
2
/*exitstatus*/
2
/*这是C数据类型补齐产生的空位*/
080-083
4
/*登录时刻*//*单位是秒*/
084-087
4
/*andmicroseconds*/
088-091
4
/*sessionID,usedforwindowing*/
092-111
20
/*reservedforfutureuse*/
112-113
2
/*significantlengthofut_host*/
114-371
257
/*登录IP*/
【表1:
用户登录记录数据项格式】
登录记录总数计算公式为:
登录记录总数=日志文件大小/372。
数据名
数据含义
是否需要采集
备注说明
logname
用户登录名
是
匹配同一次登录会话的必须数据之一
pid
进程ID
匹配同一次登录会话的必须数据之二
type
登录类型7-登入,8登出
type的值在1-8之间,但只处理7与8两种情况
logtime
登录时刻*//*单位是秒
是
要采集的数据,logtime是登入或登出时刻
logip
登录IP
是
要采集的数据
表1-2:
要读取的原始记录数据
数据名
数据含义
备注说明
logname
用户登录名
logintime
登入时刻
logouttime
登出时刻
durations
登录时间长度
单位秒
logip
登录终端的ip地址
表1-3:
匹配登录记录数据
用户的登录记录数据匹配好后需要按照一定的格式保存在本地文件中,这些文件都是可阅读的文本文件,其文件格式为:
一行代表一条登录记录,每条登录记录使用如下字段:
UID,登录时间,登出时间,登录时长,终端IP。
字段间使用制表符(’\t’)分隔,如下图所示:
UID登录时间登出时间登录时长(秒)终端IP
Louis2009-03-2516:
37:
502009-03-2516:
58:
121222192.168.1.121
Killer2009-03-2612:
10:
102009-03-2612:
30:
201210192.168.1.221
图1-1:
保存的数据文件的格式
7.功能概述
DMS1.0系统主要实现以下核心功能:
数据读取,数据匹配,数据保存。
8.数据读取
该功能模块的主要任务是读取Unix机器的用户登录记录文件,将文件的信息解析为程序对象,以方便匹配模块的匹配。
9.数据匹配
该模块的主要任务是将数据读取模块读取到的数据按照登入/登出的关系匹配成一条完整的登录记录。
10.数据保存
11.系统用例
12.
用例图
【DMS1.0系统用例图】
13.用例描述
13.1.1.数据采集
用例名称
数据采集
功能简述
DMS管理员运行DMS程序,完成数据采集的功能
前置条件
DMS程序已正确安装并部署到被采集机器上
基本流
1.DMS管理员启动DMS程序
2.DMS程序读取上次未匹配的登入记录
3.读取用户登录数据文件
4.得到用户登入/登出记录列表
5.将用户的登入和登出记录按照对应关系匹配成完整的登录记录
6.将不能成功匹配的登入记录写到文件中保存
7.将匹配好的登录记录写到文件中保存
分支与异常
第2步,若上次未匹配的登入记录文件不存在,则跳过到第3步。
第3步,若读取用户登录数据文件失败,则报告异常。
第6步,若指定的写出目录不存在,则创建目录。
第6步,若创建目录或写文件失败,则报告异常。
第7步,若指定的写出目录不存在,则创建目录。
第7步,若创建目录或写文件失败,则报告异常。
后置条件
无
备注
无
13.1.2.数据读取
用例名称
数据读取
功能简述
DMS程序读取系统数据文件和上次未匹配的登入记录,形成用户登录记录列表。
前置条件
DMS程序启动
基本流
1.根据系统配置信息确定上次未匹配的登入记录文件的位置。
2.读取上次未匹配的登入记录,形成用户登录记录列表。
3.根据系统配置信息确定用户登录数据文件的位置。
4.读取数据文件,将文件内容解析成用户登录记录。
5.将上一步中解析得到的用户登录记录添加到列表中。
6.返回用户登录记录列表。
分支与异常
第2步,若上次未匹配的登入记录文件不存在,则跳过到第3步。
第4步,若用户登录数据文件不存在,则报告异常。
后置条件
无
备注
无
13.1.3.读取上次未匹配的登入记录
用例名称
读取上次未匹配的登入记录
功能简述
DMS程序读取上次未匹配的登入记录,形成用户登录记录列表。
前置条件
DMS程序启动
基本流
1.根据系统配置信息确定上次未匹配的登入记录文件的位置。
2.读取文件内容,将数据解析成用户登入记录。
3.创建内存列表,保存读取到的登入记录数据。
4.清空未匹配的登入记录文件。
分支与异常
第2步,若上次未匹配的登入记录文件不存在,则结束此用例。
第2步,若读取文件失败,则报告异常。
第4步,若清空文件失败,则报告异常。
后置条件
无
备注
无
13.1.4.读取用户登录数据文件
用例名称
读取用户登录数据文件
功能简述
DMS程序读取用户登录数据文件,形成用户登录记录列表。
前置条件
DMS程序启动
基本流
1.根据系统配置信息确定数据文件位置。
2.备份数据文件,并删除原始数据文件。
3.根据系统配置信息确定上次未匹配的登入记录文件的位置。
4.读取上次未匹配的登入记录,形成用户登录记录列表。
5.读取数据文件,将文件内容解析成用户登录记录。
6.将上一步中解析得到的用户登录记录添加到列表中。
7.返回用户登录记录列表。
分支与异常
第2步,若找不到数据文件,则报告异常。
第2步,若备份数据失败,则报告异常。
第3步,若上次未匹配的登入记录文件不存在,则跳过到第4步。
第4步,若读取备份数据文件失败,则报告异常。
第6步,若指定的写出目录不存在,则创建目录。
第6步,若创建目录或写文件失败,则报告异常。
第7步,若指定的写出目录不存在,则创建目录。
第7步,若创建目录或写文件失败,则报告异常。
后置条件
无
备注
无
13.1.5.数据匹配
用例名称
数据匹配
功能简述
DMS程序读取系统数据文件和上次未匹配的登入记录,形成用户登录记录列表。
前置条件
DMS程序启动
基本流
1.根据系统配置信息确定数据文件位置。
2.备份数据文件,并删除原始数据文件。
3.根据系统配置信息确定上次未匹配的登入记录文件的位置。
4.读取上次未匹配的登入记录,形成用户登录记录列表。
5.读取数据文件,将文件内容解析成用户登录记录。
6.将上一步中解析得到的用户登录记录添加到列表中。
7.返回用户登录记录列表。
分支与异常
第2步,若找不到数据文件,则报告异常。
第2步,若备份数据失败,则报告异常。
第3步,若上次未匹配的登入记录文件不存在,则跳过到第4步。
第4步,若读取备份数据文件失败,则报告异常。
第6步,若指定的写出目录不存在,则创建目录。
第6步,若创建目录或写文件失败,则报告异常。
第7步,若指定的写出目录不存在,则创建目录。
第7步,若创建目录或写文件失败,则报告异常。
后置条件
无
备注
无
13.1.6.匹配登录记录
用例名称
匹配登录记录
功能简述
将用户登入/登出记录按照对应关系匹配成用户登录记录,以便计算用户登录时长。
前置条件
得到用户登入/登出数据集合
基本流
1.根据系统配置信息确定数据文件位置。
2.备份数据文件,并删除原始数据文件。
3.根据系统配置信息确定上次未匹配的登入记录文件的位置。
4.读取上次未匹配的登入记录,形成用户登录记录列表。
5.读取数据文件,将文件内容解析成用户登录记录。
6.将上一步中解析得到的用户登录记录添加到列表中。
7.返回用户登录记录列表。
分支与异常
第2步,若找不到数据文件,则报告异常。
第2步,若备份数据失败,则报告异常。
第3步,若上次未匹配的登入记录文件不存在,则跳过到第4步。
第4步,若读取备份数据文件失败,则报告异常。
第6步,若指定的写出目录不存在,则创建目录。
第6步,若创建目录或写文件失败,则报告异常。
第7步,若指定的写出目录不存在,则创建目录。
第7步,若创建目录或写文件失败,则报告异常。
后置条件
无
备注
无
13.1.7.保存未匹配的登入记录
用例名称
保存未匹配的登入记录
功能简述
将匹配之后剩余的登入记录数据保存到文件中,以便下次匹配。
前置条件
匹配完成
基本流
1.根据系统配置信息确定数据文件位置。
2.备份数据文件,并删除原始数据文件。
3.根据系统配置信息确定上次未匹配的登入记录文件的位置。
4.读取上次未匹配的登入记录,形成用户登录记录列表。
5.读取数据文件,将文件内容解析成用户登录记录。
6.将上一步中解析得到的用户登录记录添加到列表中。
7.返回用户登录记录列表。
分支与异常
第2步,若找不到数据文件,则报告异常。
第2步,若备份数据失败,则报告异常。
第3步,若上次未匹配的登入记录文件不存在,则跳过到第4步。
第4步,若读取备份数据文件失败,则报告异常。
第6步,若指定的写出目录不存在,则创建目录。
第6步,若创建目录或写文件失败,则报告异常。
第7步,若指定的写出目录不存在,则创建目录。
第7步,若创建目录或写文件失败,则报告异常。
后置条件
无
备注
无
13.1.8.数据保存
用例名称
数据保存
功能简述
程序将匹配好的用户登录数据以可读的方式保存为本地文件。
前置条件
用户登录记录已经匹配完成
基本流
1.根据系统配置信息确定要保存的文件位置。
2.获得文件输出流。
3.包装成字符输出流。
4.遍历匹配的用户登录记录集合,拿到一条匹配的用户登录数据记录。
5.将匹配的用户登录数据记录按照指定格式转化为字符串。
6.将字符串写到流中。
7.循环4-6步,直到所有匹配的登录记录处理完成。
8.关闭流对象并返回。
分支与异常
第1步,若文件位置不存在,则报告异常。
第2步,若打开文件输出流失败,则报告异常。
第6步,若写出文件失败,则报告异常。
后置条件
无
备注
无
14.性能需求
【描述系统性能方面的需求】