资源描述
实 验 报 告
课程名称 面向对象分析与设计
专业班级 ____ ____
学 号 __ ___
姓 名 ___ ____
同组成员
实验日期 _
成 绩 ____________ ___________
工资管理系统
1.1 系统的功能需求
工资管理系统涉及员工管理、工资管理、销售奖金管理、保险费用管理等。
1.工资管理
在取得授权的情况下,有关人员要进行如下工作。
(1) 工资录入
工资管理员录入员工的工资,修改录入的犯错(维护),形成工资表。
(2)销售奖金录入
工资管理员录入员工的销售奖金,修改录入的犯错(维护),形成销售奖金表。
(3)保险费用的录入
工资管理员录入员工的若干保险费用,修改录入的犯错(维护),形成保险费用登记表。
(4)计算工资
工资管理员按工作证号码来进行工资的计算记录,然后生成报表再上报给财务部。
(5)计算销售奖金
工资管理员按照工作证号码进行工资销售奖金的计算记录,然后生成报表上报给财务部。
(6)计算若干保险的扣除费用
工资管理员按照工作证号码进行若干保险的计算记录,然后生成报表上报给财务部、
(7)工资或销售奖金、保险费用查询
公司员工可以根据自己的工作证号码查询自己的工资或销售奖金及保险费用。
工资管理的重要业务流程:
此处给出以上7个业务之间的流程图(用活动图描述)
1.2 建立需求模型
对工资管理系统先划分子系统,然后再通过建立用况模型,对需求进行捕获与描述。
1.2.1 划分子系统
限定工资管理系统的功能为:工资管理、记录部门、财务系统、员工管理。对上述的每个功能,用一个子系统来实现。下图给出了这些子系统以及它们之间的依赖。
工资管理系统中子系统以及它们之间的依赖:
此处给出子系统的部署图如下
上图中的子系“财务系统”要分别使用子系统“员工管理”、“工资管理”中的员工号码、员工姓名、员工工资。子系统“工资管理”要分别使用子系统“记录部门”和“员工管理”中的员工信息和记录的工资信息。子系统“记录部门”要使用子系统“员工管理”中的员工信息。
1.2.2 辨认参与者
子系统“工资管理”的人员用户有工资管理员和员工。与子系统“工资管理”有关的子系统有“记录部门”、“员工管理”和“财务系统”,这些子系统是“工资管理”的参与者。
1.2.3 辨认用况
对1.1节的中的用况需求,现归纳整理如下。
1. 工资管理
(1)录入与维护工资、销售奖金及保险费用
工资管理员需录入员工的工资、销售奖金及若干保险费用信息做出工资表、销售奖金表及保险费用表。
(2)计算工资或销售奖金及保险费用
工资管理员按工作证号码进行计算做出工资报表、销售奖金报表及保险费用表。
(3)查询工资、销售奖金或保险费用
员工查询自己的工资、销售奖金及保险费用。
(4)登录
工资管理员和员工进入该子系统都需要登录。
1.2.4 对需求进行捕获与描述
通过到目前为止掌握的需求,初步了解了系统所要完毕的功能。下面进一步建立参与者与用况之间的关系,并对用况进行具体的描述。
图1.3为子系统“工资管理”的用况图。
一方面,使用系统的员工和工资管理员都先要进行登录。参与者“工资管理员”通过用况“录入与维护工资、销售奖金及保险费用”来录入、修改,形成工资表、销售奖金表及保险费用表;再通过用况“计算工资、销售奖金及保险费用”生成工资报表、销售奖金报表及保险费用表并予以发布。所发布的工资报表、销售奖金报表及保险费用表供参与者“员工”、“财务系统”和“工资管理员”使用。员工要通过用况“查询工资、销售奖金及保险费用”来得知自己的工资、销售奖金及保险费用。
此处规定给出各个用况的相关活动图
如下是对上述各用况的描述。
用况:录入与维护工资、销售奖金及保险费用
【前置条件:工资管理员已经登录成功】
工资管理员选择工资录入与维护、销售奖金录入与维护、保险费用的录入与维护。
系统呈现出供录入和修改工资、销售奖金及保险费用的界面
工资管理员解决完数据(录入、修改)后,发控制命令
若为保存,系统进行存储,并告知成绩管理员是否成功
若为取消,退出本功能
用况:计算工资、销售奖金及保险费用
【前置条件:工资管理员已经登录成功】
工资管理员发出进行工资、销售奖金及保险费用计算的请求
按工作证号生成工资、销售奖金及保险费用报表,并发送到子系统“财务系统”中
用况:查询工资、销售奖金及保险费用
【前置条件:员工已经登录成功】
交互内容见表1.1中编号为1的那栏的输入/输出部分。
1.3系统分析
在掌握了上述的需求后,下面开始使用面向对象方法进行系统分析。
1.3.1 寻找类
工资管理
在子系统“工资管理”中,也要设立两个类“员工”和“工资管理员”,用它们分别模拟相应的参与者。
工资管理中的对象是工资和销售奖金及保险费用,因而设立类“工资构成”、“销售奖金表”及“保险费用表”。各种工资构成很多,需要设立类“工资表”,它与类“工资构成”形成组合关系。
子系统“工资管理”需要从工资管理部门获取信息,需要设立需接口“工资管理”。子系统“工资管理”要向财务系统提供数据,需要设立供接口“财务系统”。
1.3.2 建立状态机图
对于上述所找到的类,现在按照上述的分析能理解它们的职责了。现针对子系统“工资管理”中的类“工资表”绘制一个状态机图。
按照问题域,可为类“工资表”的对象设立了5个状态,分别为:初始、初始化、查询、关闭和终止。
施加在工资表上的时间有:发布、查询和关闭。这些事情都是针对工资表所发消息的响应。
下图展示的是针对工资表的状态机图。
图 工资表的状态机图
1.3.3 建立类图
对在1.3.1节中找到的各个类进行考察,分别定义它们的属性和操作,考虑它们之间的关系,绘制出类图。
(1)类“员工”
该类中属性有“姓名”、“工作证号”、“密码”和“职务”,操作有“登入”、“查询”、“修改密码”、“查询工资”和“查询年终奖金”。
(2)类“工资”
该类中有属性“工作证号”和“工资”。
(3)类“工资表”
该类中有属性“姓名”、“工作证号”、“时间”和“工资额”。它与类“工资”构成组合关系,在其中要设立操作“生成工资构成”、“查询工资构成”。它尚有一个操作“查询工资”,供员工查询工资之用。
(4)类“销售奖金表”
该类中有属性“姓名”、“工作证号”、“时间”和“销售奖金额”。它与类“工资”构成组合关系,在其中要设立操作“生成销售奖金构成”、“查询销售奖金构成”。它尚有一个操作“查询销售奖金额”,供员工查询销售奖金之用。
(5)类“保险费用表”
该类中有属性“姓名”、“工作证号”、“时间”和“保险费用”。它与类“工资”构成组合关系,在其中要设立操作“生成年保险费用构成”、“查询保险费用构成”。它尚有一个操作“查询保险费用”,供员工查询保险费用。
(6)类“工资管理员”
该类中有属性“姓名”、“工作证号”和“密码”;属性有“登入”、“录入与维护工资”、“修改密码”、“生成工资表”、“生成销售奖金表”、“生成保险费用表”、“计算工资”、“计算销售奖金”、“计算保险费用”、“向财务部发工资表”、“向财务部发销售奖金表”及“向财务部发保险费用表”。
上述的六个类及其间的关系如下图所示。
图 工资管理部分分类图
工资管理员按工作证号输入与维护工资构成,为此在类“工资管理员”与类“工资表”之间设立一个关联“录入与维护工资表”。工资管理员还要生成工资报表,因此在类”工资管理员与类“工资表”间设立一个关联“计算”。
员工要查询工资情况,因而在类“员工”和“工资表”间设立关联“查询工资”。
类“销售奖金表”及类“保险费用表”和类“工资管理员”、类“员工”之间的关联建立与上述类似。
1.3.4 建立顺序图
在上一节中,以文字的形式说明了类之间的关联作用。这种说明往往不能清楚的描述事物间的交互情况,这就需要使用交互图来予以准确的表达。对于员工查询工资来讲,下图给出针对员工以及员工工资查询有关的对象建立的顺序图
图 员工以及与员工查询工资有关的对象之间的交互情况(一)
图 员工以及与员工查询工资有关的对象之间的交互情况(二)
1.4 系统设计
1.4.1 问题域部分设计
工资查询子系统通过数据库与其他子系统互换数据,即,通过需接口从数据库中获取数据,通过供接口向数据库写入数据。故需要按照供需双方共同约定的借口规约设计相应的数据库表的结构,并在接口相关的类操作中构造SQL语句即可。
1.4.2 界面部分设计
应当针对表1-1中的内容进行界面设计,按照第8章的规定设计出所有界面。
下图 所示的是用户登入界面,该界面也合用于员工。
下二图 是在登入成功后,系统给出的选择时间界面。
图 登入界面
图 选择时间界面
在选择时间并拟定后,出现下图所示的界面。
图1-10 工资
1.4.3 数据管理部分设计
类“工资”和“工资表”构成了组合关系,对他们分别设立两张表,并在与类“工资”相应的表中用外键隐含它与类“工资报表”的关联。对于类“员工”和类“工资管理员”也分别设立一张表,用于存储相应的对象。
下面给出了类“工资”和类“工资表”所相应的数据库表的结构。
表 类“工资”所相应的数据库表的结构
本表的主关键字为工作证号
表 类“工资表”所相应的数据库表的结构
本表的主关键字为工作证号+时间,外键为工作证号。
表 类“销售奖金”所相应的数据库表的结构
本表的主关键字为工作证号+时间,外键为工作证号
表 类“保险费用”所相应的数据库表的结构
本表的主关键字为工作证号+时间,外键为工作证号
展开阅读全文