中国电信计费帐务系统20规范之面向对象方法系统设计描述报告CHP5.docx
《中国电信计费帐务系统20规范之面向对象方法系统设计描述报告CHP5.docx》由会员分享,可在线阅读,更多相关《中国电信计费帐务系统20规范之面向对象方法系统设计描述报告CHP5.docx(87页珍藏版)》请在冰豆网上搜索。
中国电信计费帐务系统20规范之面向对象方法系统设计描述报告CHP5
第五部分
本地电信业务
计费帐务系统
功能设计
(面向对象方法描述)
1概述
在用面向对象方法设计本地计费帐务系统过程中,对系统中出现的各种不同类(class)的描述可以分成两个方面:
静态特征和动态特征。
对于静态特征和动态特征的描述方法,我们选择了UML(unifiedmodelinglanguage)标记方法。
其中的静态特征主要有类(包含类名,属性,方法)、类结构图。
动态特征主要有序列图(sequencediagram)和协作图(collaborationdiagram),序列图和协作图是对同一过程的不同描述方法,序列图关心的是类(或对象)之间按时间顺序的互操作过程,协作图关心的是类(或对象)之间的消息传递过程。
由于在本地电信业务计费帐务系统(简称:
本地计费帐务系统)的设计过程中,我们先用结构化方法设计系统,然后增补了面向对象的系统设计,所以在面向对象的系统设计中我们充分地利用了结构化设计的结果,对于对象的方法涉及的功能,我们用结构化设计中的事务和处理来给出说明。
对于本文中涉及到的事件、处理等内容请参见《功能设计(结构化方法描述)》。
2类及类结构图
2.1类的层次关系
在本地计费帐务系统的设计中,对业务相关的类划可分成四个不同的层次,它们分别是:
数据库表类,实体类,操作类,界面类。
数据库表类的作用是封装对关系型数据库中的表及对表操作的引用(Reference)。
实体类的作用是将相关的数据库表类进行聚合形成体现业务概念的业务实体并封装相应的操作。
操作类的作用是将实现相关业务功能的业务实体进行聚合并封装业务功能的实现方法。
界面类的作用是体现业务功能的表现形式。
2.2数据库表类
数据库表类对应关系型数据库中的表。
数据库表类的作用是对数据库表中的数据,以及对表中数据的增、删、改动作的引用进行封装。
数据库表类的属性是对数据库表中字段描述的引用,数据库表类的方法是对属性存取的引用,在系统中不体现业务概念。
在本地计费帐务系统中,每一个数据库表对应一个数据库表类。
对于数据库表的详细说明,参见《本地计费帐务系统数据库设计》。
2.3实体类
数据文件的引用或相关的数据库表类聚合后形成实体类。
实体类包含了相应实体(与计费系统相关)的所有属性。
实体类的属性集合表达了本地计费帐务系统中的业务实体。
在系统中,实体类的方法是具有业务意义的最小操作单元。
在本地计费帐务系统中,有以下实体类:
DATA_SOURCE(原始文件)
FORMATED_DATA_FILE(格式化数据文件)
EXT_SUBSCRIBER_FILE(格式化代收用户文件)
TRUSTED_ACCT_FILE(格式化代收帐目记录)
TOLL_FILE(格式化计时记录)
METER_FILE(格式化表底记录)
OTHER_METERAGE_FILE(其它格式化计量收费记录,如按流量、内容服务等计量收费)
O_TICKET(话单)
O_CALL_TICKET(记时话单)
O_METER_READING(表底话单)
O_METERAGE_TICKET(计量收费话单,如按流量、内容服务等计量收费)
O_SERVICE(用户)
O_ACCOUNT(帐户)
O_BILL_ITEM(帐单项)
O_BILL(销帐记录)
O_BILL_FORMAT(帐单格式)
O_INVOICE(发票记录)
O_PAYMENT(付款记录)
O_PREPAY_BALANCE(预付费余额)
O_PREPAY_DEDUCT(预扣记录)
O_BILL_ITEM_TYPE(帐单项类型)
O_ACCOUNT_ITEM(帐目)
O_TARIFF(资费)
O_BASIC_TARIFF(基本资费)
O_TICKET_TARIFF(话单资费)
O_TOLL_TARIFF(长话资费)
O_LATN_CALL_TARIFF(本地话单资费)
O_FAULT_RECORD(障碍记录)
O_WORK_ORDER(工单)
O_DISCOUNT_RULE(优惠规则)
O_ACCOUNT_ITEM_DISCOUNT(帐目优惠)
O_AMOUNT_BASED_DISCOUNT(记次优惠)
O_VALUE_BASED_DISCOUNT(总额优惠)
O_TICKET_BASED_DISCOUNT(话单优惠)
O_STAFF(员工)
O_SETT_TICKET(结算话单)
O_SETT_ITEM(结算)
2.4操作类
操作类的作用是将实现相关业务功能的业务实体进行聚合并封装业务功能的实现方法。
操作类的方法对应了本地计费帐务系统中的事务或事务中的处理单元。
操作类的属性是为完成相应事务或事务中的处理单元所需的业务实体。
在本地计费帐务系统中,有以下操作类:
OP_DATA_COLLECT(数据采集)
OP_RATING(话单计费)
OP_TRUSTED_CHARGE(代收数据帐务处理)
OP_RENT_CHARGE(设备帐固定费处理)
OP_USAGE_CHARGE(设备帐计量费处理)
OP_ACCOUNT_CHARGE(合同帐处理)
OP_DISCOUNT(优惠处理)
OP_PAID(销帐)
OP_PREPAID(预付费缴费)
OP_OWE(欠费催缴)
OP_CREDIT(信用度评估)
OP_WORK_ORDER("九七"工程工单)
OP_ARCHIVING(数据归档)
OP_INQUIRY(综合查询)
OP_STATISTIC(综合统计)
OP_SETTLEMENT(结算和分摊处理)
2.5界面类
界面类的作用是实现业务功能的表现形式。
界面类的设计不包含在本次设计的范围之内。
2.6类结构图
说明:
三角箭头表示继承关系,菱形箭头表示聚合(aggregation)关系。
3类的详细描述
3.1数据库表类
数据库表类是对一类记录数据的集合,具有记录集的特性,所以我们定义了RECORD_SET(记录集)类,作为被所有数据库表类继承的类。
RECORD_SET类的具体结构如下:
类名
RECORD_SET
继承
成员
变量名
类型
说明
from_sub_stmt
CHAR
SQL语句的from子句
where_sub_stmt
CHAR
SQL语句的where子句
other_sub_stmt
CHAR
SQL语句的其他子句
State
CHAR
当前游标状态
方法
格式
说明
Open
构造SQL,打开数据库记录游标,或获取记录集
Requery
重新打开数据库记录游标,或重新获取记录集
Close
将修改写入数据库,关闭记录游标
MoveFirst
将游标或指针移到第一条符合条件的记录
MovePrevious
将游标或指针移到上一条符合条件的记录
MoveNext
将游标或指针移到下一条符合条件的记录
MoveEnd
将游标或指针移到最后一条符合条件的记录
Get
取当前指针记录,虚方法
Put
修改当前记录,虚方法
GetNewID
生成新记录的ID,虚方法
GetNewSeqNumber
生成新记录的顺序号,虚方法
EmptyAllFields
清除主关键字外的,所有字段所映射的内存变量
Delete
删除数据库表记录
Insert
向数据库表插入记录
GetByPrimaryKey
按主关键字(组)获取记录,虚方法,包含Open和Get操作
每一个数据库表类除拥有RECORD_SET的所有属性和方法外,还应有对相应的数据库表的所有字段属性以及对字段属性数据的获取(get)、存放(set)方法。
对于数据库表的详细说明,参见《本地计费帐务系统数据库设计报告》。
3.2实体类
在本地计费帐务系统中,实体类的详细描述如下:
DATA_SOURCE(原始文件)
类名
DATA_SOURCE
继承
成员
变量名
类型
说明
identifier
NUMBER
原始数据文件标识
name
CHAR
原始数据文件名字
size
NUMBER
文件大小
type
CHAR
原始数据文件类型
c_begin_DT
DATE&TIME
生成开始时间
c_end_DT
DATE&TIME
生成结束时间
p_begin_DT
DATE&TIME
处理开始时间
p_end_DT
DATE&TIME
处理结束时间
state
CHAR
状态
方法
格式
说明
Open()
打开原始数据文件
Close()
关闭原始数据文件
Save()
存储原始数据文件
Check()
检查原始数据文件的合法性
Read()
读文件记录
Write()
写文件记录
WriteLog()
生成并写入日志
Rollback()
获取文件回退
FORMATED_DATA_FILE(格式化数据文件)
类名
FORMATED_DATA_FILE
继承
成员
变量名
类型
说明
identifier
NUMBER
格式标准化文件标识
data_source
NUMBER
数据源原始数据文件标识
recordcount
NUMBER
文件记录数
c_begin_DT
DATE&TIME
生成开始时间
c_end_DT
DATE&TIME
生成结束时间
p_begin_DT
DATE&TIME
处理开始时间
p_end_DT
DATE&TIME
处理结束时间
state
CHAR
状态
方法
格式
说明
Open()
打开格式标准化数据文件
Close()
关闭格式标准化数据文件
Save()
存储格式标准化数据文件
Read()
读文件记录
Write()
写文件记录
Check()
检查格式标准化数据文件的合法性
WriteLog()
生成并写入日志
Formating()
格式标准化,虚方法
Rollback()
格式标准化回退,虚方法
CreateHeader()
生成文件头,虚方法
CreateTail()
生成文件尾,虚方法
WriteError()
写异常记录,虚方法
PreProcess()
对格式标准化话单进行预处理,虚方法
PreProcessRollBack()
对预处理回退,虚方法
EXT_SUBSCRIBER_FILE(格式化代收用户文件)
类名
EXT_SUBSCRIBER_FILE
继承
FORMATED_DATA_FILE
成员
变量名
类型
说明
access_number
CHAR
代收业务接入号
owner
CHAR
代收业务公司名
name
CHAR
用户名
address
CHAR
用户地址
方法
格式
说明
Formating()
格式标准化
Rollback()
格式标准化回退
CreateHeader()
生成文件头
CreateTail()
生成文件尾
WriteError()
写异常记录
TRUSTED_ACCT_FILE(格式化代收帐目记录)
类名
TRUSTED_ACCT_FILE
继承
FORMATED_DATA_FILE
成员
变量名
类型
说明
access_number
CHAR
代收业务接入号
owner
CHAR
代收业务公司名
account_item_type_id
NUMBER
帐目类型标识
related_acc_nbr
CHAR
关联电话号码
charge
NUMBER
费用
方法
格式
说明
Formating()
格式标准化
Rollback()
格式标准化回退
CreateHeader()
生成文件头
CreateTail()
生成文件尾
WriteError()
写异常记录
TOLL_FILE(格式化计时记录)
类名
TOLL_FILE
继承
FORMATED_DATA_FILE
成员
变量名
类型
说明
latn_number
CHAR
本地网号
calling_area_code
CHAR
主叫号码区号
calling_number
CHAR
主叫号码
called_area_code
CHAR
被叫号码区号
called_number
CHAR
被叫号码
start_time
DATE&TIME
起始时间
duration
NUMBER
时长
rate
NUMBER
费率
long_cash
NUMBER
长途费用
free_flag
CHAR
优惠标记
free_rate
NUMBER
优惠率
call_type
NUMBER
业务种类标识
方法
格式
说明
Formating()
格式标准化
Rollback()
格式标准化回退
CreateHeader()
生成文件头
CreateTail()
生成文件尾
WriteError()
写异常记录
PreProcess()
对格式标准化话单进行预处理
PreProcessRollBack()
对预处理回退
OTHER_METERAGE_FILE(其它格式化计量记录)
类名
OTHER_METERAGE_FILE
继承
FORMATED_DATA_FILE
成员
变量名
类型
说明
latn_number
CHAR
本地网号
calling_area_code
CHAR
主叫号码区号
calling_number
CHAR
主叫号码
called_area_code
CHAR
被叫号码(或服务号码)区号
called_number
CHAR
被叫号码(或服务号码)
start_time
DATE&TIME
起始时间
duration
NUMBER
时长、流量或内容服务次数等
rate
NUMBER
费率
long_cash
NUMBER
长途费用
free_flag
CHAR
优惠标记
free_rate
NUMBER
优惠率
call_type
NUMBER
业务种类标识
方法
格式
说明
Formating()
格式标准化
Rollback()
格式标准化回退
CreateHeader()
生成文件头
CreateTail()
生成文件尾
WriteError()
写异常记录
PreProcess()
对格式标准化话单进行预处理
PreProcessRollBack()
对预处理回退
METER_FILE(格式化表底记录)
类名
METER_FILE
继承
FORMATED_DATA_FILE
成员
变量名
类型
说明
calling_area_code
CHAR
主叫号码区号
calling_number
CHAR
主叫号码
meter_type
CHAR
计次类型
meter_reading
NUMBER
计次次数
方法
格式
说明
Formating()
格式标准化
Rollback()
格式标准化回退
CreateHeader()
生成文件头
CreateTail()
生成文件尾
WriteError()
写异常记录
PreProcess()
对格式标准化话单进行预处理
PreProcessRollBack()
对预处理回退
O_TICKET(话单)
类名
O_TICKET
继承
TICKET
成员
变量名
类型
说明
usage_charge
USAGE_CHARGE
service
O_SERVICE
方法
格式
说明
Save()
将更改的数据写入数据库中
Load()
根据条件将数据获取到对象中
Last()
寻找符合条件的上一条记录
Next()
寻找符合条件的下一条记录
GetUsageCharge()
读取话单对应的话单费用
Rating()
对话单进行批价处理(虚方法)
RatingRollback()
对话单进行批价处理回退(虚方法)
MarkUsageChargeDerelict()
将话单费用标记为“无主”
O_CALL_TICKET(记时话单)
类名
O_CALL_TICKET
继承
CALL_TICKET
成员
变量名
类型
说明
usage_charge
USAGE_CHARGE
service
O_SERVICE
方法
格式
说明
Save()
将更改的数据写入数据库中
Load()
根据条件将数据获取到对象中
Last()
寻找符合条件的上一条记录
Next()
寻找符合条件的下一条记录
GetUsageCharge()
读取话单对应的话单费用
MarkUsageChargeDerelict()
将话单费用标记为“无主”
Rating()
对计时话单进行批价处理
RatingRollback()
对计时话单进行批价处理回退
O_METERAGE_TICKET(其它计量话单)
类名
O_METERAGE_TICKET
继承
CALL_TICKET
成员
变量名
类型
说明
usage_charge
USAGE_CHARGE
service
O_SERVICE
方法
格式
说明
Save()
将更改的数据写入数据库中
Load()
根据条件将数据获取到对象中
Last()
寻找符合条件的上一条记录
Next()
寻找符合条件的下一条记录
GetUsageCharge()
读取话单对应的话单费用
MarkUsageChargeDerelict()
将话单费用标记为“无主”
Rating()
对计量话单进行批价处理
RatingRollback()
对计量话单进行批价处理回退
O_METER_READING(表底话单)
类名
O_METER_READING
继承
METER_READING
成员
变量名
类型
说明
usage_charge
USAGE_CHARGE
service
O_SERVICE
方法
格式
说明
Save()
将更改的数据写入数据库中
Load()
根据条件将数据获取到对象中
Last()
寻找符合条件的上一条记录
Next()
寻找符合条件的下一条记录
GetUsageCharge()
读取话单对应的话单费用
MarkUsageChargeDerelict()
将话单费用标记为“无主”
Rating()
对表底话单进行批价处理
RatingRollback()
对表底话单进行批价处理回退
O_SERVICE(用户)
类名
O_SERVICE
继承
SERVICE,EXT_SUBSCRIBER
成员
变量名
类型
说明
customer
CUSTOMER
address
ADDRESS
number_group
NUMBER_GROUP
exchange
EXCHANGE
account
O_ACCOUNT
product
PRODUCT
billing_cycle_type
BILLING_CYCLE_TYPE
方法
格式
说明
Create()
生成一个service
Destruct()
注销一个service
Save()
将更改的数据写入数据库中
Load()
根据条件将数据获取到对象中
Last()
寻找符合条件的上一条记录
Next()
寻找符合条件的下一条记录
GetCustomer()
获取客户信息
GetAddress()
获取地址信息
GetNumberGroup()
获取占用号段信息
GetExchange()
获取局向信息
GetAccount()
获取付费合同号信息
GetProduct()
获取占用资源信息
GetBillingCycleType()
获取帐务周期信息
Rename()
对service进行改名
Move()
对service进行移机
ChangeAccNumber()
对service进行改号
Transfer()
对service进行过户
ChangeNumGroup()
对service进行占用号码段资源修改
ChangeProduct()
对service进行占用资源修改
ChangeBillingType()
对service进行帐务周期类型修改
OtherChange()
对service进行其它业务数据修改
O_ACCOUNT(帐户)
类名
O_ACCOUNT
继承
ACCOUNT
成员
变量名
类型
说明
bank_branch
BANK_BRANCH
bank_account
BANK_ACCOUNT
customer
CUSTOMER
service
SERVICE
credit_history
CREDIT_HISTORY
address
ADDRESS
bill_format
O_BILL_FORMAT
方法
格式
说明
Create()
生成一个account
Destruct()
注销一个account
Save()
将更改的数据写入数据库中
Load()
根据条件将数据获取到对象中
Last()
寻找符合条件的上一条记录
Next()
寻找符合条件的下一条记录
GetBankAccount()
获取银行帐号信息
GetBankBranch()
获取银行信息
GetCustomer()
获取付费人信息
GetService()
获取由此合同号付费的用户信息
GetCreditHistory()
获取此合同号的信用度历史信息
GetAddress()
获取付费人地址信息
GetBillFormat()
获取此合同号客户化帐单格式信息
Rename()
更改account的付费人
ModifyAddress()
更改account的付费人地址
ModifyAccount()
更改account的付费信息,如托收银行信息,银行帐号