移动公司计费帐务管理系统
需求说明
Version 2.0
Date:12/26/2006
修改/变更控制
Date 日期Version 版本Author 作者Reason 原因
Wen Draft 12/21/2006 1.0 Alex
Li Review 12/23/2006 1.1 Steven
Li Final Release 12/25/2006 2.0 Steven
第一章项目背景
朗新,语出《淮南子》:“朗而新之”,配以红日为辅助图形的标识,取意日出东方,霾雾散尽,天宇朗澄新气象。正是东方博大精深的人文精神与西方现代化优秀的管理模式相结合,造就了朗新以一个开拓者的高姿态屹立于科技信息产业。
朗新信息科技长期致力于为电信行业提供电信业务和运营支持系统(BSS/OSS)的建设和服务,为电力行业提供关键业务解决方案和服务,拥有成熟的解决方案、丰富的工程实施经验、良好的售后服务体系和最大的市场占有率。朗新是中国电信本地计费帐务系统的核心设计和标准制定厂家,是全国唯一具有全省范围集中计费帐务系统成功实施经验的厂家。朗新还是唯一一个参与国电公司电力营销管理系统技术规范制定的厂家,目前国电公司指定的3个试点省(浙江、湖北和辽宁)中浙江和湖北的电力营销管理信息系统已由朗新承担全部软件开发和系统集成工作。
本系统是朗新信息科技有限公司为某市移动开发的计费账务系统的一个模块——业务管理模块。该系统采用JSP/Servlet+JavaBean开发。
第二章术语解释
2.1 操作员(Operator)
指的是本管理系统的使用者。分为管理员(Administrator)和一般的操作人员(Operator)两种。管理员的权限要比一般的操作人员大。管理员具有管理一般操作员的权限等。具体分工请阅读后面的内容。
2.2 客户(Customer)
指实体的人或单位,包含的信息包括客户名称、证件类型、证件号码等。
2.3 用户(User)
指客户在系统中订购的子业务,如一个人可以申请2个手机号码,一个GSM一个CDMA,这两个子业务在系统中就是2个用户。
2.4 账户(Account)
用户的付费相关信息,如分现金账户和银行账户,银行账户记录银行帐号和账户名。在当前,只需要考虑现金账户即可。
三户的关系:
一个客户可以一对多个用户(一个人可以拥有多个手机号码),一个用户必须指定一个账户(必须有一个账户给用户收费),一个账户可以为
多个用户付费(合账)。
2.5 合账
是将一个用户的费用信息如每月的话费等记入另一个已存在的账户上,一般在单位账户为员工统一缴纳费用时使用。
2.6 资源
指手机号码以及对应的卡号(SIM卡或者UIM卡)。
第三章软件需求
3.1 系统登录
输入操作员代码和密码校验是否为合法的操作员,验证成功后进入系统,并且根据操作员的角色(管理员还是一般操作员)显示不同的菜单。
3.2 系统管理
此部分功能只有管理员有权限。
3.2.1 操作员管理
1.录入操作员编号、姓名及密码;
2.指定操作员角色:管理员还是一般的操作员。
3.2.2 资源管理
此部分功能只有管理员有权限。
由界面输入号段或指定一个含有号码信息的文本文件生成资源表,资源表需要记录手机号码、手机卡类型(UIM或者SIM)、手机卡号、号码状态等。
3.2.3 配置业务费用
此部分功能只有管理员有权限。包括费用细项管理和业务费用两个任务。
费用细项是对各项费用进行配置,即各个收费项目所收取的费用进行配置。目前需要考虑的费用有开户费、漫游费、押金、入网费、选号费。管理员可以对各项费用的金额进行配置。
业务费用是在各个业务中需要收取的费用。目前只要考虑开户和变更通话级别/漫游状态的时候涉及的业务费用。考虑到可扩展性,需要让各项费用可以随时配置。此功能模块即对开户和变更通话级别/漫游状态的业务费用进行配置,以及各项费用。
首先,配置各项费用。
其次,选择要配置费用的业务(目前只考虑开户这项业务,注意“开户业务”和“开户费”的区别,“开户业务”是一项业务,而“开户费”是一个收费项。“开户业务”可能需要收取“开户费”、“入网费”、“选号费”等。这个功能就是用于配置“开户业务”需要收取哪些费用的),选择需要收取的费用(从上一步中配置的费用列表中选择)。
3.3 业务受理
此部分功能对所有操作员都有权限。
业务受理功能包括以下内容:
3.3.1 录入客户信息
z根据证件类型和号码判断是否为新客户
z如果为已存在客户显示客户资料
z如果是新客户输入其它客户信息
3.3.2 录入用户信息
z输入号码及卡号,校验输入的资源状态是否为可用
z录入通话级别和漫游状态
3.3.3 录入账户信息
z根据账号判断是否为新账户;
z如果将新用户的账户指定到一个已存在的账户成为合账,需要校验账户有效性;
z如果新建账户,并且为银行账户还需录入开户银行帐号和账户名。
3.3.4 保存相关信息
z显示需要收取的业务费用(列出“业务费用配置”中所配置的费用,计算费用总和);
z提交录入的数据建立三户资料及相关关系,修改资源状态,记录业务费用。
第四章软硬件需求
4.1 硬件
客户端硬件要求:
z中央处理器:PIII500 MHz以上处理器
z内存:64 M以上内存
z硬盘:10G以上可用硬盘空间
z其他:鼠标、键盘
应用服务器端硬件需求:
z中央处理器:PIII500 MHz以上处理器
z内存:512 M以上内存
z硬盘:20G以上可用硬盘空间
z其他:鼠标、键盘
数据库服务器:同应用服务器
4.2 软件
服务器端操作系统:Windows2000 Server
开发工具:JBuilder9.0
数据库:Oracle(8.2及以上)
WEB应用服务器软件:Tomcat(4.1以上版本)
客户端运行环境:能运行IE5及以上浏览器的操作系统
第五章用例分析
5.1 顶层用例
Business Operation
操作员具有三个用例:登录/退出、系统管理以及业务受理。
5.2 登录/退出
5.2.1 登录
用例名称登录
功能简述操作员进行任何的操作,都必须首先登录到这个系统。此用例用于处理操作员的登录
后置条件是否登录成功、操作员的角色
前置条件无
基本流1、操作员在图形界面中输入操作员代码和密码,并提交;
2、判断操作员输入的操作员代码和密码是否匹配,并且确定操作员的
角色(管理员还是一般操作员)。
扩展流
备注
5.2.2 退出
用例名称退出
功能简述当操作员完成所有的操作后,应该退出。此功能提供给操作员退出此系统
后置条件退出是否成功的信息
前置条件登录成功
基本流1、用户退出本系统
2、返回到登录界面
扩展流
备注
5.3 系统管理
本用例包括操作员管理、资源管理两个子用例。这两个子用例之间是相互独立的,没有必然的联系。
5.3.1 操作员管理
用例名称操作员管理
功能简述管理员输入新增的操作员的代码、姓名、密码、角色(一般操作员还是管理员)
后置条件新增操作员是否成功的信息
前置条件登录成功,并且具有管理员身份。
基本流1、管理员输入新增的操作员的代码、姓名、密码、角色;
2、提交保存到数据库中;
3、返回操作的结果。
扩展流
备注只有系统管理员角色(Administrator)有权限完成此功能。
5.3.2 资源管理
用例名称资源管理
功能简述此功能主要是对手机号码这个资源进行管理。
后置条件业务受理能够进行的前提
前置条件登录成功,并且句有管理员身份。
基本流分成两种情况:
1)直接在界面上输入号段;
2)指定号段的类型(SIM/UIM)、状态
3)根据指定的号段,产生相应数量的号码资源,并且保存资源
或者
1)从一个包含有号码信息的文本文件中读取信息
2)分析这个文件并且从中读取号码资源
3)保存资源
扩展流
备注只有管理员有此权限
5.3.3 费用细项管理
用例名称费用细项管理
功能简述此功能主要是对各项收费内容所收取的费用进行管理。
后置条件业务受理能够进行的前提
前置条件登录成功,并且具有管理员身份。
基本流 1)列出各个收费项目;
2)在对应的收费项目中输入需要收取的费用;
3)保存各个项目的费用。
扩展流
备注只有管理员有此权限
5.3.4 配置业务费用
用例名称业务费用管理
功能简述对各个业务所需要收取的费用进行管理(但并不在此对具体的费用进行管理,而是从费用细项列表中选择,根据选择的要收取的收费项来计算)后置条件业务受理能够进行的前提
前置条件登录成功,并且具有管理员身份
基本流 1)列出所有需要收费的业务(目前只有开户这一项业务)和各项收费项目,如果此业务费用曾经经过配置,需要显示当前已经选定收费
的项目;
2)选择要进行配置的业务;
3)配置此业务需要收取的费用;
4)保存业务费用。
扩展流
备注只有管理员有此权限
5.4 业务受理
本用例包括录入客户信息、录入用户信息、录入账户信息等子用例。只有三户信息齐全,此业务才算完整。
5.4.1 录入客户信息
用例名称录入客户信息
功能简述此功能是业务受理的第一步。用于输入客户信息。
后置条件录入用户信息
前置条件登录成功
基本流1、选择证件类型,输入证件号;
2、根据证件类型和号码判断是否为老客户
3、如果为老客户,显示信息
4、否则输入客户姓名、性别、生日、通信地址等
5、保存客户信息
扩展流
备注
5.4.2 录入用户信息
用例名称录入用户信息
功能简述此功能是业务受理的第二步。用于输入用户信息。
后置条件录入账户信息
前置条件录入客户信息成功
基本流1、输入号码;
2、检查号码是否可用;
3、选择通话级别和漫游状态;
4、保存用户信息以及客户和用户的关系,将手机资源列表中对应手机
号的可用状态改成不可用(因为号码已经被占用)。
5、检查输入的账号是否已经在数据库表中存在,如果存在,形成“合
账”,需要检查对应账户中的余额是否大于“开户”所需要的费用;
如果账号不存在,那么需要进行新增账号的操作。(见下一用例)
扩展流
备注
5.4.3 录入账户信息
用例名称录入账户信息
功能简述此功能是业务受理的第三步。用于输入账户信息。
后置条件业务处理成功与否信息
前置条件录入用户信息成功
基本流1、如果合账,则显示账户的信息:账号、余额、账户持有人姓名、通信地址等。否则:
2、新建一个账号(此账号为上一个用例中输入),输入账户持有人姓
名、通信地址、金额等;
3、保存账户信息以及用户和账户之间的关系。
扩展流
备注
第六章数据模型
说明:本节给出数据模型和数据库设计的参考实现,可以根据自己的理解,自行设计数据库表,或者可以在此参考实现上做适当修改。
6.1 E-R图
根据前面用例的描述,可以画出ER图如下:
注意,在这个ER图中,Customer和User是一对多的关系,也就是说,一个Customer 可能申请多个手机号码,这就会对应多个User,而Account和User之间也是一对多的关系:一个Account可以给多个用户缴费。Charge和Charge_Rules之间是一对多的关系。
6.2 系统数据模型定义注解
实体名语意
TOperator 用于记录本系统的使用者
TCustomer 用于记录客户信息
Tuser 用于记录用户信息
TAccount 用于记录账户信息
Tmobile 用于记录手机号码资源信息
Tcharge 用于记录各个收费项目名称和所收取费用
Tcharge_Rule 用于记录各项业务的收费规则
6.3 TOperator定义说明
6.3.1 表格字段定义
字段名数据类型语意
Operator_ID Char(10) 操作员的编号,作为实体的唯一标识,在登录的时候需要输入此ID,PK
Operator_Name Varchar2(20) 对应此编号的操作员姓名,只作为显示使用
Operator_Pwd Varchar2(20) 此操作员的密码,在登录本系统的时候需要使用
Is_Admin Char(1) 此操作员是否具有管理员的角色,’Y’表示是管理员,’N’表示。默认值为’N’
6.3.2 表格定义说明
TOperator表格用于保存本系统的使用者的信息。Operator_ID是操作人员的唯一标识,
根据移动公司的员工编码而来,是这个表的主键,在操作者登录本系统的时候需要输入(还
有一个需要输入的是密码)。Operator_Name是对应此操作者的姓名,主要用于显示目的。Operator_Pwd是操作员的密码,在登录本系统的时候需要输入。Is_Admin是对于操作员角
色的一个标志:如果此标志位为Y,则说明此操作员具有管理员的身份,可以管理其他的操
作员、进行一些系统级别的操作(如资源管理),而如果它的值是N,表示这个操作员是一
般的操作员,并不具备管理员身份,不能进行只有管理员才能进行的操作。
6.3.3 TOpeartor样本数据
Operator_ID Operator_Name Operator_Pwd Is_Admin A100000001 章三Zhang3 Y C1022001222 李四Li4haha N A1023456789 王五19710312 N
6.4 TCustomer定义说明
6.4.1 表格字段定义
字段名数据类型语意
Customer_ID Number(8)
客户序号,是一个自动增长的数据,作为主键使用,主要是为了方便
在程序中唯一表示一个客户,没有特殊的含义
ID_Type Char(1)
客户的证件类型,目前只需要考虑:居民身份证、军官证、护照三种
类型
ID_Number Varchar2(20)
身份证件号码
Customer_Name Varchar2(20)
客户姓名
Customer_Birthday Date 客户生日
Customer_Sex Char(2) 客户性别
Customer_Address Varchar2(50) 客户联系地址
6.4.2 表格定义说明
TCustomer用于保存客户信息。客户包括单位或者个人。在此只考虑个人客户。Customer_ID是表示这个客户的唯一标识,它是一个自动生成的编码,没有物理上对应的含义,主要目的是为了我们在编写程序的时候将它作为唯一的客户标识。ID_Type字段用于标示客户的身份证件的类型,在本系统中,只考虑居民身份证、军官证、护照三种情况,可以分别用字母“D”、“A”、“P”来表示。ID_Number用于保存客户的身份证件号码。Customer_Name、Customer_Birthday、Customer_Sex、Customer_Sex分别表示客户姓名、生日、性别、联系地址等。
6.4.3 TCustomer样本数据
Customer_
ID ID_Ty
pe
ID_Number Customer_Name Customer_Birthday Csutome
r_Sex
Customer_Addr
ess
1 D
xxxxxxxxxx LiSi 1980-1-1 F xxxx
2 A xxxxxx WangLiu 1967-10-2
3 M xxxxxx
3 P xxxxxxxx
Tom
Hanks 1950-1-1 F Xx
6.5 TAccount定义说明
6.5.1 表格字段定义
字段名数据类型语意
Account_ID number(8) 账号。主键。
Contact_Person Varchar2(10) 账号对应的联系人姓名
Contact_Address Varchar2(50) 账号对应的联系人地址
Account_Balance Number(10,2) 账户中的余额
6.5.2 表格定义说明
TAccount用于保存账户的信息。Account_ID是账号,它是主键,由系统自动生成。
Contact_Person、Contact_Address分别表示对应此账户的联系人和联系人地址,
Account_Balance表示账户余额。
6.4.3 TAccount样本数据
Account_ID Contact_Person Contact_Address Account_Balance
100001 黎明HK … 100.00
103456 张学友BJ … 98.67
122001 Bill S.J. 80.09
6.6 TMobiles定义说明
6.6.1 表格字段定义
字段名数据类型语意
Mobile_Number Varchar2(11) 手机号码,作为主键
Mobile_Type char(3) 手机号码类型,可以是SIM或者UIM
Card_Number Varchar2(13) 卡号
Is_Available Char(1) 此号码是否可用
6.6.2 表格定义说明
TMobiles用于保存手机号码资源。Mobile_Number是手机号码。Mobile_Type是手机号码类型,可以是GSM的SIM卡或者CDMA的UIM卡。Card_Number是对应这个手机号码的卡号(卡的系列号),而Is_Available是这个号码是否可用。
6.6.3 TMobiles样本数据
Mobile_Number Mobile_Type Card_Number Is_Available
1391000xxxx SIM 12998888812121 Y
133xxxxxxx UIM 12114221411243 Y
131xxxxxxxx UIM 21414312409823 Y
6.7 TUser定义说明
6.7.1 表格字段定义
字段名数据类型语意
User_ID Number(8)
用户ID,自动生成。
Mobile_Number Varchar2(11) 手机号码,是TMobiles的外键,引用到TMobiles.Mobile_Number Roaming_Status Char(1) 漫游状态,分为:省内漫游(’P’)、国内漫游(’D’)和国际漫游(’I’)
三种
Com_Level Char(1) 通话级别。分为本地通话(’L’)、国内长途(’D’)和国际长途(’I’)Customer_ID Number(8) 客户ID,是Tcusomer的外键,引用到TCustomer.Customer_ID Account_ID Number(8) 账号,是TAccount的外键,引用到TAccount.Account_ID
6.7.2 表格定义说明
Tuser表格用于保存用户信息。User_ID是用户的唯一标识,由sequence自动产生,作
为这个table的PK;Mobile_Number是手机号码,引用到TMobiles.Mobile_Number;Roaming_Status表示用户手机的漫游状态,分为省内(Province)漫游,用’P’来表示,国内(Domestic)漫游,用’D’来表示,国际(International)漫游,用’I’表示,默认为省内漫游;Com_Level表示通话级别,分为本地(Locale)、国内(Domestic)和国际(International)
三级,分别用’L’、’D’、’I’表示,默认为’L’;Customer_ID表示对应的客户,引用到TCustomer.Customer_ID;Account_ID表示对应的账户,引用到TAccount.Account_ID。
6.7.3 TUser样本数据
Mobile_Number Mobile_Type Card_Number Is_Available Fee 1391000xxxx SIM 12998888812121 Y 50.00 133xxxxxxx UIM 12114221411243 Y 25.00 131xxxxxxxx UIM 21414312409823 Y 25.00
6.8 TCharge定义说明
6.8.1 表格字段定义
字段名数据类型语意
Charge_Code Char(1) 费用代码,PK。A-开户费,B-漫游费,C-押金,D-入网费,E-选号费
Charge_Name Varchar2(10) 费用名称
Charge Number(6,2)
业务费用
6.8.2 表格定义说明
TCharge用于保存业务费用细项,如开户费用、漫游费用等。Charge_Code是业务的代
码,主要用于程序中,分别用A、B、C、D、E表示开户费、漫游费、押金、入网费和选号
费。Charge_Name保存此项业务的名称,用于显示给使用者。Charge字段用于保存此项业
务所收取的费用。
6.8.3 TCharge样本数据
Charge_Code Charge_Name Charge
A 开户费10.00
B 漫游费 5.00
C 押金100.00
D 入网费50.00
E 选号费10.00
6.9 TCharge_Rule定义说明
6.9.1 表格字段定义
字段名数据类型语意
Func_ID Char(1) ID,PK,用于表示功能的唯一标识,目前只需要有表示“开户”功能的'O' Func_Name Varchar2(10)
功能名称,目前只要考虑开户和变更通话级别/漫游状态两种情况Charge_Code Char(1) PK,是TCharge的外键,引用到TCharge.Charge_Code。
6.9.2 表格定义说明
这个表格用于保存业务收费规则,比如,在开户的时候,需要收取“开户费”、“选号费”等。Func_ID表示功能的ID,目前只有表示“开户”功能的“O”。Func_Name表示功能名称,目前可以为“开户”,而Charge_Code是TCharge的外键。由Func_ID和Charge_Code 组合成为主键。
6.9.3 TCharge_Rule样本数据
Charge_Code Rule_ID Func_Name
O 开户 A
O 开户 E
说明:表示开户需要收取“开户费(对应Charge_Code为A)”和“选号费(对应Charge_Code为E)”,从TCharge表中取得对应的收费,共计10.00+10.00=20.00元。
6.10 创建数据库表的脚本
以下数据库脚本适用于Oracle数据库,其他数据库请根据下面的脚本和相应的数据库改写:
create table TOperator(Operator_ID char(10) primary key,
Operator_Name varchar2(20) not null,
Operator_Pwd varchar2(20) not null,
Is_Admin char(1) default 'N'
);
---------Add an administrator----------
insert into TOperator values('A000000001','管理员','admin','Y');
create table TCustomer(Customer_ID number(8) primary key,
ID_Type char(1) not null,
ID_Number varchar2(20) not null,
Customer_Name varchar2(20) not null,
date,
Customer_Birtyday
Customer_Sex char(2) default '男',
varchar2(50)
Customer_Address
);
--------------sequence for TCustomer.Customer_ID------------ CREATE SEQUENCE customer_sequence
INCREMENT BY 1
START WITH 1
NOMAXV ALUE
NOCYCLE
CACHE 10;
create table TAccount(Account_ID number(8) primary key, Contact_Person varchar2(10) not null,
varchar2(50),
Contact_Address
Account_Balance number(10,2) default 0.0
);
---------sequence for TAccount.Account_ID------------
CREATE SEQUENCE account_sequence
INCREMENT BY 1
START WITH 1
NOMAXV ALUE
NOCYCLE
CACHE 10;
create table TMobile(Mobile_Number varchar2(11) primary key, Mobile_Type char(3) not null,
Card_Number varchar2(13) not null,
Is_Available char(1) default 'Y',
);
create table TUser(User_ID number(8) primary key,
TMobile(Mobile_Number), Mobile_Number
references
Roaming_Status char(1) default 'P',
Com_Level char(1) default 'L',
references TCustomer(Customer_ID), Customer_ID
references TAccount(Account_ID)
Account_ID
);
----------sequence for https://www.doczj.com/doc/67898962.html,er_ID--------------
CREATE SEQUENCE user_sequence
INCREMENT BY 1
START WITH 1000
NOMAXV ALUE
NOCYCLE
CACHE 10;
create table TCharge(Charge_Code char(1) primary key,
Charge_Name varchar2(10) not null,
Charge number(6,2) not null
);
-----Init the TCharge------------
insert into TCharge values('A','开户费',10.00);
insert into TCharge values('B','漫游费',5.00);
insert into TCharge values('C','押金',100.00);
insert into TCharge values('D','入网费',50.00);
insert into TCharge values('E','选号费',10.00);
create table TCharge_Rule(Func_ID char(1) not null,
Charge_Code
TCharge(Charge_Code),
references
Func_Name varchar2(10) not null,
key(Func_ID,Charge_Code)
primary
);
说明:在这个数据库创建脚本中,指定了数据库表之间的外键约束。考生可以在考试的时候取消这些数据库表在数据库层级的外键约束,而将它们之间的对应关系通过程序来控制。
第七章图形用户界面设计
7.1 登录
图1 登录表单
在上图所示的登录表单中输入登录ID和密码,点击“进入系统”按钮登录,如果登录成功,那么显示相应权限(根据是管理员还是一般操作员角色区分)的操作菜单(图2),否则,退回到本登录页面,提示重新登录。
7.2 新增操作员
图3 新增操作员
如果用户具有管理员权限,可以进行新增操作员的操作。点击图2的左边菜单中的“新增操作员”,进入图3所示的表单,在各个表单项中输入对应的数据,提交到数据库。需要注意的是,需要验证输入的管理员登录ID是否在数据库中已经存在。如果新增操作员成功,
提示成功信息,否则,提示失败信息。