软件工程课程设计实验报告
一、项目开发
引言
编写目的
为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,有必要以文件化的形式,把对于在项目生命周期内的工作任务范围、各项工作的任务分解、项目团队组织结构、各团队成员的工作责任、开发进度、项目内外环境条件、风险对策等内容以书面的方式描述出来,作为项目团队成员以及项目干系人之间的共识与约定,项目生命周期内的所有项目活动的行动基础,项目团队开展和检查项目工作的依据。
本项目开发计划用于从总体上指导工资管理系统项目顺利进行。本项目开发计划面向项目组全体成员。
项目背景
- 项目的委托单位、开发单位和主管部门
本项目由吉林大学计算机科学与技术学院软件工程课程设计提出 - 该软件系统与其他
该系统的使用者为 ACME 公司所有员工。该系统与其他系统没有关联。
定义
【列出本档中用到的专门术语的定义和缩写词的原文。】
略
参考资料
【可包括:
- 项目经核准的计划任务书、合同或上级机关的批文;
- 文档所引用的资料、规范等;列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源。】
二、项目概述
工作内容
本系统旨在开发一个员工工资管理平台,它将实现员工在网上进行提交业务,电子打卡,并查看互个人信息,在网上查询自己的工资详情、打卡信息。管理员可以对业务及员工进行管理。实现工资自动化计算。并且可以通过结算形式打印工资单。
条件与限制
本网站在四周内完成,包括最终成品和各种开发文档。
产品
程序
程序名称:ACME 工资管理系统
使用语言:Python、HTML、JavaScript、CSS
存储形式:开发工程、可执行文件
文档
- 任务书
- 项目开发计划
- 需求规格说明书
- 概要设计
- 详细设计说明书
- 测试计划
运行环境
操作系统:windows
支持环境:django1.3 及以上
数 据 库:MySQL
服务
无
验收标准
功能完整、界面良好、文档齐全
三、实施计划
预算
无
关键问题
风险类别 | 风险描述 | 可能 | 影响 |
---|---|---|---|
规划风险 | 计划是乐观的“最佳实例”(而不是现实的“预期实例”)。 | 0.9 | 0.6 |
产品比估计的大(从准则、功能、模式的角度来看)。 | 0.6 | 0.5 | |
组织风险 | 项目的规划与实现之间搁置的时间太长。 | 0.6 | 0.8 |
技术风险 | 用户权限划分,适用验证码进行验证的技术欠缺。 | 0.6 | 0.6 |
容易出错的模式所需要的测试、设计和执行工作比预料的多。 | 0.7 | 0.9 | |
开发工具不像预料的那样有效,开发者需要时间来创建有关工作或改用新工具。 | 0.5 | 0.8 |
人员组织及分工
黄刚 :代码实现 杨诗欣:需求分析 + 设计文档 + 代码测试 李奇 :需求分析 + 设计文档 + 代码测试 刘圣洁:需求分析 + 设计文档 + 代码测试 刘兴伟:文档整理数据库管理
交付期限
年 06 月 20 日
专题计划要点
质量保证计划:
- 在软件设计过程中构筑软件质量;
- 代码质量保证优先原则;
- 只引用属于自己的存贮空间;
- 防止引用已经释放的内存空间;
- 过程/函数中分配的内存,在过程/函数退出之前要释放;
- 过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出之前要关闭;
- 防止内存操作越界;
- 认真处理程序所能遇到的各种出错情况;
- 系统运行之初,要初始化有关变量及运行环境,防止未经初始化的变量被引用,并对加载到系统中的数据进行一致性检查;
- 严禁随意更改其它模块或系统(不属于自己)的有关设置和配置,不能随意改变与其它模块的接口;
- 注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符,以防止拼写错误;
- 有可能的话,if 语句尽量加上 else 分支,对没有 else 分支的语句要小心对待。switch 语句必须有 default 分支;
- 不使用与硬件或操作系统关系很大的语句,而使用建议的标准语句,以提高软件的可移植性和可重用性;
- 精心构造算法,并对其性能、效率进行测试,对较关键的算法最好使用其它算法来确认;
- 注意表达式是否会上溢、下溢,使用变量时要注意其边界值;
- 系统应具有一定的容错能力,对一些错误事件(如用户误操作等)能进行自动补救;
- 对一些具有危险性的操作代码要仔细考虑,防止对数据、硬件等的安全构成危害,以提高系统的安全性。
开发人员培训计划:由项目经理对欠缺项目所需技术的成员进行实际指导。
四、需求分析
引言
编写目的
本需求说明书是为了构建工资管理系统而编写,主要面向系统开发及设计人员。 本说明书是整个系统构建的依据,它对以后阶段的工作起指导作用,任何系统开发工作都要以此为依据,进行相应的开发,在完成所要求的基础功能的同时,可以做一定的扩展,但是不能偏离本文所既定的系统开发方向。
另一方面,本需求说明书对项目的开发做了详细的规划,确保能够准确及时地完成整个项目的开发。同时本文也是项目完成后系统验收的依据。
项目背景
- 项目的委托单位、开发单位和主管部门
本项目由吉林大学计算机科学与技术课程设计提出 - 该软件系统与其他
该系统的使用者某公司所有员工。该系统与其他系统没有关联。
定义
员工情况 | 公司所有员工,根据薪酬模式分为小时工,月付工和提成工 工资管理人员,负责维护员工信息 |
---|---|
工资结算 | 根据考勤表计算出的工作时间,完成项目统计,以及不同的薪酬计算方式统计每个员工的薪酬 |
销售单 | 销售单的负责员工,销售单的增删改查 |
参考资料
- 项目经核准的计划任务书
- 项目开发计划
- 软件工程文档模板
- 《软件工程导论》——清华大学出版社
任务概述
目标
本系统旨在开发一个工资管理平台,它将实现员工在网上查看自己的工资情况,以及,在网上查询自己的纯成绩及排名、综合成绩及排名。管理员可以对班级及同学进行管理。实现综合成绩自动化计算。并且可以通过图表形式展示班级纯成绩和综合成绩变化情况和排名情况。
运行环境
- 操作系统:windows
- 支持环境:django1.11 及以上
- 数 据 库:MySQL
条件与限制
- 开发期限为 2017 年 5 月 22-日~6 月 12 日共计 22 天。
- 开发语言为 python 语言。
- 开发设备为个人电脑以及机房电脑。
- 界面友好,适当扩展。
- 无经费预算。
- 最终成果为:最终成品和各种开发文档。
五、数据描述
静态数据
所谓静态数据,指在运行过程中主要作为参考的数据,它们在很长一段时间内不会发生变化。具体包括:员工基本信息,管理员基本信息,业务单的统计与更新和员工薪酬更新结算的方式。
动态数据
所谓动态数据,包括所有在运行中要发生变化的数据以及在运行中要输入、输出的数据。具体包括:员工工作时间,业务单的信息,员工打卡情况,员工工资支付方式,员工工资结算。
数据库介绍
描述数据库系统 ER 图
数据词典
数据采集
采集方式为:
-
通过用户直接在软件界面录入信息,然后将录入的信息写入数据库存储
-
通过从公司数据库导出员工信息到 Excel 表,在将信息导入到系统中。
六、功能需求
功能划分
同学用例图 :
用例描述:
员工登录:基本事件路径
- 员工输入正确的 id(由数字组成),正确的密码
- 员工成功登陆系统
员工登录:输入错误信息:可选事件路径
- 输入错误的 id
- 显示登陆错误,重新填写,直到正确
- 输入登录信息为空
- 显示输入信息不能为空,直到填写为止
- 输入错误的密码
- 显示密码错误,重新输入密码直到正确为止
- 用户忘记密码,可找管理员初始化密码
员工退出:基本事件路径
- 员工点击退出按钮
- 弹出提示框是否要退出系统
- 员工点击“是”
- 成功退出
.员工退出:可选事件路径
- 员工点击退出按钮
- 弹出提示框是否要退出系统
- 员工点击“否”
- 没有退出,继续使用系统
员工查看个人详细信息:基本事件路径
- 员工点击查看个人信息按钮
- 系统显示出员工的个人信息,包括工号,姓名,性别,出生日期,民族,籍贯,电话,到职日期
- 点击更新按钮,可以更新员工自己的职位,出生日期,民族,籍贯,电话
员工查看个人工资:基本事件路径(无可选事件路径)
- 员工点击查看个人工资按钮
- 系统显示员工 ID,姓名,员工类别,工作时长,提成,罚款,总工资
员工进行打卡:基本事件路径
- 员工点击打卡按钮
- 系统显示当前时间和签到按钮
- 员工点击签到按钮
- 系统显示当前时间和签退按钮
员工登记业务:基本事件路径
- 员工点击登记业务按钮
- 系统显示业务登记区域,保存按钮和重填按钮
- 员工编辑业务记录内容
- 点击保存按钮保存业务记录,点击重填按钮重新填写业务内容
管理员用例图 :
用例描述:
管理员登录:基本事件路径
- 管理员输入正确的用户名,正确的密码
- 管理员成功登陆系统
管理员登录:输入错误信息:可选事件路径
- 输入错误的用户信息
- 显示输入不正确重新填写,直到正确
- 输入登录信息为空
- 显示输入信息不能为空,直到填写为止
- 输入错误的密码
- 显示输入错误,重新输入密码直到正确为止
- 填写的用户名不存在
- 显示用户名不存在,填写其他的用户名,直到用户名存在为止
管理员退出:基本事件路径
- 管理员点击退出按钮
- 弹出提示框是否要退出系统
- 管理员点击“是”
- 成功退出
.管理员退出:可选事件路径
- 管理员点击退出按钮
- 弹出提示框是否要退出系统
- 管理员点击“否”
- 没有退出,继续使用系统
管理员查看业务信息:基本事件路径
- 管理员点击业务一览按钮
- 系统显示所有业务信息和业务搜索框
- 管理员在搜索栏输入业务 id
- 系统显示该 id 的业务信息
管理员审核业务:基本事件路径
- 管理员点击业务审核按钮
- 系统显示业务 id,业务名称,业务金额,负责人 id,负责人,日期,备注,审核情况,通过情况,审核按钮
- 管理员点击审核按钮
- 业务通过审核
管理员查看员工信息:基本事件路径
- 点击员工一览按钮
- 显示所有员工信息,搜索框,更新按钮
- 管理员在搜索栏输入工号,点击搜索按钮
- 显示该工号员工信息
管理员修改员工信息:可选事件路径
- 管理员点击更新按钮
- 显示职员信息修改界面,显示员工信息,保存按钮和重填按钮
- 管理员编辑员工修改信息
- 点击保存按钮,保存员工信息
管理员修改员工信息:可选事件路径
- 点击重填按钮,重新填写该员工修改信息
管理员添加员工信息:基本事件路径
- 点击添加员工按钮
- 显示添加员工界面,保存按钮,重填按钮
- 管理员填写要添加的员工信息
- 点击保存按钮,保存该员工信息
- 点击重填按钮,重新添加该员工信息
管理员查看工资情况:基本事件路径
- 点击工资一览按钮
- 显示所有员工的工资详情,刷新按钮,搜索栏
- 输入员工工号,点击搜索按钮
- 显示该工号员工的工资详情
- 点击刷新按钮,刷新工资详情
管理员结算工资:基本事件路径
- 点击工资结算按钮
- 显示所有员工的工资详情,每个员工工资详情均有结算按钮
- 若在结算日,结算工资,显示结算后的工资详情
- 若不在结算日,显示未到结算日,不可结算,回到原界面
功能描述
编号说明:01 为管理员适用,02 为同学适用。
编号 | 需求名称 | 描述 |
---|---|---|
0101 | 登录 | 管理员通过用户名和密码登录系统 |
0102 | 退出 | 管理员退出登陆 |
0103 | 修改密码 | 管理员修改密码 |
0104 | 查看业务详情 | 查看所有员工的业务详情 |
0105 | 业务审核 | 审核未通过的业务 |
0106 | 查看员工信息 | 查看员工信息,可通过查询工号查看某个员工信息 |
0107 | 添加员工信息 | 添加员工信息 |
0108 | 查看工资详情 | 查看工资详情,可通过查询工号查看某个员工工资 |
0109 | 结算工资 | 结算工资,只有结算日可结算工资 |
0201 | 登录 | 员工通过用户名和密码登录系统 |
0202 | 退出 | 员工退出登陆 |
0203 | 修改密码 | 员工修改密码 |
0204 | 查看个人详细信息 | 查看个人详细信息 |
0205 | 查看个人工资详情 | 查看个人工资详情 |
0206 | 打卡 | 工作日签到签退 |
0207 | 登记业务 | 登记业务 |
七、性能需求
数据精确度
数据名称 | 数据类型 | 精度 |
---|---|---|
工资 | 整型 | |
日期 | YY-MM-DD |
时间特性
时间特性 | 时间特性要求 |
---|---|
响应时间 | 3 秒内 |
更新处理时间 | 5 秒内 |
数据转换与传输时间 | 2 秒内 |
运行时间 | 24 小时可运行 |
适应性
要求本系统操作简单,运行环境要求比较低,可具有较强适应能力;要达到较强的可扩展性,可以适应一些开发计划的变化;要兼容 ie8 及其以上版本浏览器和 Chrome,Firefox 等所有主流浏览器。
要求满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求,与一般软件没冲突情况。
运行需求
用户界面
要对用户操作有良好的反馈处理,例如:当管理员添加已经存在的员工时的反馈和添加成功时的反馈。
要方便用户操作,如查询排序等功能要尽可能简单,并以易于查看的方式展示内容
硬件接口
处理器要求:PentiumⅡ 或以上
运行环境:python2.5 及以上
内存要求:512MB 以上
软件接口
- 操作系统:windows 系统
- 数据库:MySQL
- 开发工具:pycharm
- 版本管理:SVN
- 开发语言:python,javascripte,HTML,CSS
- 开发框架:django,jQuery,datatables,highchats
故障处理
- 数据库错误操作引起数据库链接断开,重新启动软件即可恢复且数据不丢失。
- 断电导致数据库断开链接,重新启动软件可恢复,数据不丢失。
- 用户的输入有错误的情况,对于用户的输入错误应给出适当的改正提示。
- 提供给超级管理员一个相对对立的站点进行故障处理,这个站点应直接操作数据库中数据,不受业务逻辑的限制。
其它需求
- 安全保密:只有加入系统的用户才可以登陆使用,对管理员和员工账号进行正常区分,并通过这使管理员和员工具有不同的功能。如员工不能查看其他员工的信息和工资情况。
- 可维护性:系统应该阻止代码规范,利用 mvc 原则进行编码,方便系统的维护开发;应具备改正性维护、适应性维护、扩充与完善性维护等。
- 可理解性:系统应提供完全图形化的界面,尽可能的方便用户进行操作,从而以满足各层次的用户需求,并拥有良好的用户体验。
- 运行环境可转换性:只需些许改动,该网站便能移植到另一台系统,具有很高的运行环境可转换性。
八、概要设计
编写目的
建立一个新的工资系统来取代现有的系统,让员工记录考勤信息的电子化和自动生成基于工资工作小时数销售总额(对受委托的雇员)。新系统将是最先进的,将有一个基于 Windows 的桌面界面,让员工进入考勤信息,输入采购订单,改变员工的偏好(如付款方式),和创建各种报表。
本阶段已在系统的需求分析的基础上,对工资系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对工资系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。
项目背景
- 项目的委托单位、开发单位和主管部门
本项目由吉林大学计算机科学与技术课程设计提出 - 该软件系统与其他
该系统的使用者某公司所有员工。该系统与其他系统没有关联。
定义
- 雇员
为拥有并经营工资系统的公司(Acme,Inc.)工作的人员 - 薪资管理员
负责在系统中维护员工和员工信息的人员。 - 项目管理数据库
遗留数据库包含有关项目和费用编号的所有信息。 - 系统时钟
内部系统时钟跟踪时间。内部时钟将自动运行工资单
适当的时候。 - 支付期
员工支付的时间。 - 薪水
在指定的薪酬期内雇员支付了多少钱的记录。 - 付款方法
员工如何付款,接收,邮寄或直接存款。 - 考勤卡
雇员在指定工资期间工作的小时数。 - 采购订单
雇员出售的纪录。 - 受薪雇员
一个收到薪水的雇员。 - 委托员工
收到薪金加佣金的雇员。 - 小时员工
一小时内支付的员工。
用例模型
目标 :
本文档的目的是定义工资单系统的要求。这个补充规范列出了在用例模型的用例中不容易捕获的要求。该补充规范和用例模型共同捕获了一套完整的要求系统。
范围 :
本补充规范适用于由 面向对象 开发的工资单系统员工们。本规范定义了系统的非功能性要求;如可靠性,可用性,性能和可支持性以及许多常用的能需求案例。 (功能要求在用例规范中定义)。
可靠性 :
主要系统必须运行 98%的时间。系统必须运行在工资期间(每个星期五和当月的最后一个工作日)运行时间。
性能
在任何特定的时间,该系统应支持多达 2000 个同时使用的中央数据库用户任何时候最多同时使用 500 个本地服务器的用户。
安全
该制度应防止员工改变任何自己以外的时间表。另外,出于安全原因,只有工资单管理员才能使用该职位信息更改任何员工信息例外的付款方式。
设计约束
该系统应与现有的遗留系统(即项目管理数据库)进行整合 DB2 数据库在 IBM 大型机上运行。系统应通过电子交易界面与现有银行系统进行接口(注:THE 需要定义与外部银行系统的形式接口在此过程中早期定义,或在单独的支持文件中。这个定义不在本课程的范围之内。系统应提供基于 Windows 的桌面界面。
参考资料
- 项目经核准的计划任务书
- 项目开发计划
- 软件工程文档模板
- 史济民等 《软件工程——原理、方法与应用》(第二版) 高等教育出版社
九、任务概述
目标
本系统旨在开发一个员工综合工资管理平台,它将实现员工网上查询系统工作小时数,所有项目的小时总数(即,收费号码),收到的总薪酬年初至今,剩余休假时间等。工资管理人员维护员工信息。工资管理员负责添加新员工,删除员工和更改所有员工信息,如姓名,地址和付款分类(每小时,领薪,委托),以及运行行政报告。
运行环境
- 操作系统:windows
- 支持环境:django1.3 及以上
- 数 据 库:MySQL
需求概述
以员工身份登录
编号 | 需求名称 | 输入 | 处理 | 输出 |
---|---|---|---|---|
01 | 登录 | 用户名,密码 | 验证正确性,登陆 | 错误信息 |
02 | 注册 | 用户名,密码,重复密码 | 根据输入插入用户信息 | 注册成功 |
03 | 登记业务 | 业务名称,业务 ID,金额,负责人,执行日期,备注 | 保存信息 | 登记成功 |
04 | 员工信息 | 无 | 显示该员工相关信息 | 工号,姓名,性别,出生日期,民族,籍贯,电话,到职日期 |
05 | 员工信息更新 | 职位,出生日期,民族,籍贯,电话,Email,到职日期 | 保存信息 | 成功更新信息 |
06 | 查看个人工资 | 无 | 显示该员工工资详情 | ID,姓名,员工种类,工作小时,提成,罚款,总计 |
07 | 打卡 | 点击签到按钮 | 记录签到时间,等待签退 | 签退按钮,显示当前时间 |
以管理员身份登录
编号 | 需求名称 | 输入 | 处理 | 输出 |
---|---|---|---|---|
01 | 登录 | 用户名,密码 | 验证正确性,登陆 | 错误信息 |
02 | 注册 | 用户名,密码,重复密码 | 根据输入插入用户信息 | 注册成功 |
03 | 业务一览 | 无 | 显示所有业务 | 业务 ID,业务名称,金额,负责人 ID,负责人,日期,备注,是否审过,是否通过 |
04 | 搜索 | 业务 ID | 搜索业务 ID | 该业务 ID 对应的相关信息 |
05 | 业务审核 | 无 | 显示所有业务; | 业务 ID,业务名称,金额,负责人 ID,负责人,日期,备注,是否审过,是否通过,审核 |
06 | 员工一览 | 无 | 显示所有员工信息 | 工号,姓名,性别,出生日期,民族,籍贯,电话,到职日期,详情 |
07 | 搜索 | 员工工号 | 显示相关员工信息 | 工号,姓名,性别,出生日期,民族,籍贯,电话,到职日期,详情 |
08 | 更新 | 职位,出生日期,民族,籍贯,电话,Email,到职日期 | 保存信息 | 成功更新信息 |
09 | 添加 | 姓名,性别,出生日期,民族,籍贯,电话,Email,职位,到职日期 | 保存信息 | 成功更新信息 |
10 | 工资一览 | 无 | 显示所有相关信息 | ID,姓名,员工种类,工作小时,提成,罚款,总共 |
11 | 搜索 | ID | 搜索该 id 员工工资; | 该 id 员工工资; |
12 | 刷新 | 点击刷新 | 更新工资详情 | 所有相关员工最新工资详情 |
13 | 工资结算 | 点击结算 | 判断是否到结算日 | 到结算日,结算工资;未到结算日,不可结算 |
条件与限制
- 开发期限为 2017 年 5 月 22-日~6 月 12 日共计 22 天。
- 开发语言为 python 语言。
- 开发设备为个人电脑以及机房电脑。
- 界面友好,适当扩展。
- 无经费预算。
- 最终成果为:最终成品和各种开发文档。
总体设计
处理流程
员工登录后处理流程:
管理员登录后处理流程:
总体结构和模块外部设计
总体结构:
功能分配
模块;功能需求 | 登录模块 | 业务管理模块 | 员工管理模块 | 工资管理模块 |
---|---|---|---|---|
员工登录 | √ | |||
管理员登录 | √ | |||
密码管理 | √ | |||
修改密码 | √ | |||
业务查看 | √ | |||
业务登记 | √ | |||
业务审核 | √ | |||
添加业务 | √ | |||
修改业务 | √ | |||
删除业务 | √ | |||
查看员工 | √ | |||
添加员工 | √ | |||
修改员工 | √ | |||
删除员工 | √ | |||
工资查看 | √ | |||
工资结算 | √ | |||
打卡 | √ |
时序图设计
修改密码
业务审核
工资结算
打卡
接口设计
外部接口
用户界面 :
要对用户操作有良好的反馈处理,例如:当管理员添加已经存在的员工时的反馈和添加成功时的反馈。
要方便用户操作,如查询等功能要尽可能简单,并以易于查看的方式展示内容,例如要通过表格方式展现员工工资情况。
硬件接口 :
- 处理器要求:PentiumⅡ 或以上
- 运行环境:python2.5 及以上
- 内存要求:512MB 以上
软件接口 :
- 操作系统:windows 系统即可
- 数据库:MySQL
- 开发工具:VIM,Chrome
- 版本管理:SVN
- 开发语言:python,javascripte,HTML,CSS
- 开发框架:django,jQuery,datatables,highchats
内部接口
模块间接口采用数据耦合方式,通过参数表传递数据,交换信息。
数据结构设计
逻辑结构设计
- 员工:(工号,姓名,性别,出生日期,民族,籍贯,电话,到职日期,详情)
- 业务:(业务 ID,业务名称,金额,负责人 ID,负责人,日期,备注,是否审过,是否通过)
- 工资:(ID,姓名,员工种类,工作小时,提成,罚款,总共)
物理结构设计
app_card 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
Cardid_id | int | 11 | 否 | 主键 | ID | |
start | int | 11 | 否 | |||
over | int | 11 | 否 | |||
data | data | 30 | 否 | |||
hours | int | 11 | 否 |
app_people 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
peopleid | int | 11 | 否 | 主键 | ID | |
name | varchar | 30 | 否 | |||
nation | varchar | 7 | 否 | |||
sex | tinyint | 1 | 否 | |||
phone | varchar | 11 | 否 | |||
varchar | 254 | 否 | ||||
address | varchar | 50 | 否 | |||
birthday | Data | 否 | ||||
data | Data | 否 | ||||
allsalary | double | 否 | ||||
Ptype_id | int | 11 | 否 | |||
App_salary_type 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
Salary_typeid | int | 11 | 否 | 主键 | ID | |
typename | varchar | 否 | ||||
Hour_pay | double | 否 | ||||
plus_pay | double | 否 | ||||
base_pay | double | 否 | ||||
App_salary 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
Salaryid_id | int | 11 | 否 | 主键 | ID | |
hour | double | 否 | ||||
plus | double | 否 | ||||
forfeit | double | 否 | ||||
sub | double | 否 |
App_user 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
User_id | int | 11 | 否 | 主键 | ID | |
password | varchar | 30 | 否 |
App_yewu 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
yewuid | int | 11 | 否 | 主键 | ID | |
yewupeopleid | int | 11 | 否 | |||
title | varchar | 50 | 否 | |||
money | double | 否 | ||||
person | varchar | 30 | 否 | |||
data | data | 否 | ||||
beizhu | varchar | 100 | 否 | |||
Ispermiss | tinyint | 1 | 否 | |||
isover | tinyint | 1 | 否 | |||
数据结构与程序的关系
; | 登录模块 | 业务管理模块 | 员工管理模块 | 工资管理模块 |
---|---|---|---|---|
app_card | √ | |||
app_people | √ | |||
App_salary_type | √ | |||
App_salary | √ | |||
App_user | √ | |||
App_yewu | √ |
运行设计
运行模块的组合
运行控制
运行控制取决于用户权限,权限不够不能使用超越权限的功能。
所有部分的输入,尽可能采取选择模式,必须录入文本、数字信息的,对录入进行检查判断。
运行时间
- 响应时间:2 秒以内。
- 更新处理时间:2 秒以内。
- 数据转换与传输时间:10 秒以内。
- 查询时间:2 秒以内。
出错处理设计
出错输出信息
对用户的正常错误采用良好的出错处理,给用户丰富的信息反馈;
对于用户恶意的进攻行为,采取不返回任何数据的处理方式
出错处理对策
运行时遇到不可恢复的系统错误 | 保证数据库完好无损 |
---|---|
用户的输入有错误的情况 | 对于用户的输入错误应给出适当的改正提示。 |
对于重大的操作错误 | 采用适用故障处理界面直接操作数据库,进行处理 |
安全保密设计
对员工和管理员进行良好的权限管理,确保系统安全性和暴力破解,
不仅为了用户体验采用前端验证,而且在后端也进行了更加深入的认证;
维护设计
- 设计代码时:强调代码复用,多个组件可以很方便的以“插件”形式服务于整个系统,例如验证码的设置;
- 设计基于§的设计,各个层次鲜明分割,专注于处理不同的事情;
- URL 分派,使用正则表达式匹配 URL;
- 使用 django 的模板系统,利用模板系统自带的继承和包含方便修改和扩展;
- 表单的处理,将所有的表单抽象成类方便进行后台验证;
十、详细设计
编写目的
概要设计后转入详细设计,本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。
项目背景
- 主要负责人员:吉林大学大学计算机科学与技术学院
- 项目的委托单位、开发单位和主管部门
- 本项目由吉林大学计算机科学与技术专业课程设计提出。
- 该软件系统与其他
- 该系统的使用者为企业人员和管理者。该系统与其他系统没有关联。
定义
员工情况 | 公司所有员工,根据薪酬模式分为小时工,月付工和提成工 工资管理人员,负责维护员工信息 |
---|---|
工资结算 | 根据考勤表计算出的工作时间,完成项目统计,以及不同的薪酬计算方式统计每个员工的薪酬 |
销售单 | 销售单的负责员工,销售单的增删改查 |
参考资料
- 项目经核准的计划任务书
- 项目开发计划
- 软件工程文档模板
- 史济民等 《软件工程——原理、方法与应用》(第二版) 高等教育出版社
总体设计
需求概述
本系统将在整个公司的个人员工桌面上运行,对于安全审计的原因,员工只能访问和编辑自己的工卡和采购订单。该系统将保留公司所有员工的信息(顶点目前拥有约 5000 名员工)世界)。系统必须按指定的方法按时支付每位员工的正确数量(见以后可能的付款方式。由于成本的原因,不想取代他们的遗产之一数据库,项目管理数据库,包含有关项目和费用的所有信息数。新系统必须与现有的项目管理数据库(DB2 数据库)一起工作。在 IBM 主机上运行。工资系统将访问,但不更新,在项目中存储的信息管理数据库。
本系统是针对企业对员工的工资结算而开发的,主要用于计算和统计员工一天的工作时间和相对应的工资情况,实现了工资计算智能化。系统有效的实现了工资计算的自动化,减轻管理人员的工作负担,高效率,精确的统计了员工的工作时间,并避免人为操作的错误和不规范行为。该系统将实现员工提交成果网上实现,结果审核通过之后才会发放工资,减少由于人工统计产生的错误以及避免检查时间的浪费。
软件结构
员工工资管理系统总体结构:
程序描述
登录
功能描述:用户输入用户名,密码,登录系统。用户分为两种身份(管理员和员工),管理员可以设置员工。
性能:
可理解性:前台采用了良好的错误提示,而且对于数据的格式,前后端都有验证,也就是说既保证了优雅的用户体验,又确保了系统的安全性
输入项:
表 3-1-1
名称 | 说明 |
---|---|
用户名 | 员工的 id 或管理员的 id |
密码 | 员工或管理员的密码 |
输出项: 表 3-1-2
名称 | 说明 |
---|---|
系统主界面 | 用户名、密码验证通过登录系统成功 |
存储分配:
app_card 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
Cardid_id | int | 11 | 否 | 主键 | ID | |
start | int | 11 | 否 | |||
over | int | 11 | 否 | |||
data | data | 30 | 否 | |||
hours | int | 11 | 否 |
app_people 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
peopleid | int | 11 | 否 | 主键 | ID | |
name | varchar | 30 | 否 | |||
nation | varchar | 7 | 否 | |||
sex | tinyint | 1 | 否 | |||
phone | varchar | 11 | 否 | |||
varchar | 254 | 否 | ||||
address | varchar | 50 | 否 | |||
birthday | Data | 否 | ||||
data | Data | 否 | ||||
allsalary | double | 否 | ||||
Ptype_id | int | 11 | 否 |
App_salary_type 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
Salary_typeid | int | 11 | 否 | 主键 | ID | |
typename | varchar | 否 | ||||
Hour_pay | double | 否 | ||||
plus_pay | double | 否 | ||||
base_pay | double | 否 |
App_salary 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
Salaryid_id | int | 11 | 否 | 主键 | ID | |
hour | double | 否 | ||||
plus | double | 否 | ||||
forfeit | double | 否 | ||||
sub | double | 否 |
App_user 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
User_id | int | 11 | 否 | 主键 | ID | |
password | varchar | 30 | 否 |
App_yewu 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
yewuid | int | 11 | 否 | 主键 | ID | |
yewupeopleid | int | 11 | 否 | |||
title | varchar | 50 | 否 | |||
money | double | 否 | ||||
person | varchar | 30 | 否 | |||
data | data | 否 | ||||
beizhu | varchar | 100 | 否 | |||
Ispermiss | tinyint | 1 | 否 | |||
isover | tinyint | 1 | 否 | |||
测试要点 :
当用户输入正确用户名,密码,验证码时系统的流程图。
流程图:
退出
功能描述:
用户点击退出,则退出系统,将用户重定向到登陆页面
性能:无
输入项:无
输出项:
表 3-1-2
名称 | 说明 |
---|---|
系统登陆界面 | 通过 session 实现用户登出,并将它重定向到登陆页面 |
算法:无 程序逻辑:
接口:
-
硬件接口:无
-
软件接口:无
存储分配:
django_session 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
session_key | varchar | 400 | 否 | 主键 | ID | |
session_data | longtext | 0 | 否 | |||
expire_date | datetime | 0 | 否 |
auth_user 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 主键 | ID | |
username | varchar | 30 | 否 | |||
first_name | varchar | 30 | 否 | |||
last_name | varchar | 30 | 否 | |||
varchar | 75 | 否 | ||||
password | varchar | 128 | 否 | |||
is_staff | tinyint | 1 | 否 | |||
is_active | tinyint | 1 | 否 | |||
is_superuser | tinyint | 1 | 否 | |||
last_login | datetime | 0 | 否 | |||
date_joined | datetime | 0 | 否 |
测试要点:
当用户点击退出时,用户是否真的已经退出
流程图:
修改密码
功能描述:更新用户密码
输入项:
表 3-1-1
名称 | 说明 |
---|---|
新密码 | 用户的新密码 |
确认密码 | 为了确保用户输入了正确的密码,进行相同验证 |
输出项:
表 3-1-2
名称 | 说明 |
---|---|
系统主界面 | 修改成功,进行了重定向 |
错误提示信息 | 密码格式不对 |
接口:
-
硬件接口:无
-
软件接口:无
存储分配:
auth_user 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
id | int | 11 | 否 | 主键 | ID | |
username | varchar | 30 | 否 | |||
first_name | varchar | 30 | 否 | |||
last_name | varchar | 30 | 否 | |||
varchar | 75 | 否 | ||||
password | varchar | 128 | 否 | |||
is_staff | tinyint | 1 | 否 | |||
is_active | tinyint | 1 | 否 | |||
is_superuser | tinyint | 1 | 否 | |||
last_login | datetime | 0 | 否 | |||
date_joined | datetime | 0 | 否 |
限制条件:
登陆实现:session 采用 cookie 实现,则对于禁用 cookie 和不支持 cookie 的环境,无法登陆
测试要点:
当用户输入分别正确的密码,确认密码时,系统的相应行为。
流程图:
打卡
功能描述:员工签到签退打卡。
性能: 输入项:无记录的 card 表项
表 3-1-1
CardID | start | over | date | Hours |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
输出项:有记录的 card 表项
表 3-1-2
CardID | start | over | date | Hours |
---|---|---|---|---|
3 | 8 | 18 | 2017-06-09 | 10 |
算法:无
接口:无
存储分配:有记录的 card 表项
app_card 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
Cardid_id | int | 11 | 否 | 主键 | ID | |
start | int | 11 | 否 | |||
over | int | 11 | 否 | |||
data | data | 30 | 否 | |||
hours | int | 11 | 否 |
限制条件:
- Start:签到时间大于 8,认为迟到
- Over:签退时间小于 17,认为早退
- Over – start < 1 :认为未完成签退
测试要点:
签到签退是否成功,不同时间签到签退有什么不同现象
流程图:
业务审核
功能描述:设置日常活动记录
性能: 无
输入项:未审核的业务
输出项:已审核的业务
算法:无
接口:无
存储分配:
App_yewu 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
yewuid | int | 11 | 否 | 主键 | ID | |
yewupeopleid | int | 11 | 否 | |||
title | varchar | 50 | 否 | |||
money | double | 否 | ||||
person | varchar | 30 | 否 | |||
data | data | 否 | ||||
beizhu | varchar | 100 | 否 | |||
Ispermiss | tinyint | 1 | 否 | |||
isover | tinyint | 1 | 否 |
限制条件:
每次只能审核一项业务,业务审核完成后不能再次审核。
测试要点:
提交的业务在不同条件下能否被审核。
流程图:
结算工资
功能描述:设置员工工资结算表项
性能:记录工资结算情况
输入项:系统时钟 + 工资单(Salary 中 sub>0)
输出项:工资单(salary)
表 3-1-1
姓名 | 工作小时 | 提成 | 罚款 | 总计 |
---|---|---|---|---|
小雪 | 30 | 0 | 0 | 1500 |
算法:无
接口:无
存储分配:
App_salary 的数据字典:
字段名 | 数据类型 | 长度 | 可否为空 | 键引用 | 字段含义 | 备注 |
---|---|---|---|---|---|---|
Salaryid_id | int | 11 | 否 | 主键 | ID | |
hour | double | 否 | ||||
plus | double | 否 | ||||
forfeit | double | 否 | ||||
sub | double | 否 |
限制条件:
-
小时工每周五才能结算
-
其他员工每月 20 日才能结算
测试要点:
- 点击结算后,该员工工资在不同时间日期是否可以结算
流程图:
十一、测试计划
编写目的
测试计划是指导测试过程的纲领性文件,包含了测试项目、测试方案、测试人员、测试进度等内容。通过测试来发现系统还存在的问题并针对相应的问题对系统进行改进。其中分为白盒测试和黑盒测试两大块。
测试计划的读者为参与开发设计的所有人员。
项目背景
- 项目的委托单位、开发单位和主管部门
本项目由吉林大学计算机科学与技术学院课程设计提出。 - 该软件系统与其他
该系统的使用者为吉林大学所有在校学生。该系统与其他系统没有关联。
定义
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
参考资料
- 项目的计划任务书
- 项目开发计划;
- 需求规格说明书;
- 概要设计说明书;
- 详细设计说明书;
- 古乐 史九林编著《软件测试技术概论》清华大学出版社
- 史济民等 《软件工程——原理、方法与应用》(第二版) 高等教育出版社
任务概述
目标
- 测试系统内部逻辑流程是否正常执行。
- 根据需求分析测试系统功能是否实现。
- 测试系统功能是否还存在 BUG。
- 对测试出的系统中存在的问题进行完善修改。
运行环境
- 操作系统:windows
- 支持环境:django1.3 及以上
- 数 据 库:MySQL
需求概述
本系统是针对企业对员工的工资结算而开发的,主要用于计算和统计员工一天的工作时间和相对应的工资情况,实现了工资计算智能化。系统有效的实现了工资计算的自动化,减轻管理人员的工作负担,高效率,精确的统计了员工的工作时间,并避免人为操作的错误和不规范行为。该系统将实现员工提交成果网上实现,结果审核通过之后才会发放工资,减少由于人工统计产生的错误以及避免检查时间的浪费。
条件与限制
本网站在两周内完成,包括最终成品和各种开发文档。无经费预算。
计划
测试方案
白盒测试:根据每个功能的实现选取设计测试用例。
黑盒测试:根据程序功能模块的划分选取测试用例。
测试项目
黑盒测试
- 登录模块
- 业务管理
- 员工管理
- 工资管理
白盒测试
- 登录模块
- 业务管理
- 员工管理
- 工资管理
测试准备
-
选取小组内一名同学进行黑盒测试。
-
对于白盒测试搭建测试环境。
测试机构及人员
测试项目名称及测试内容
黑盒测试
登录模块,测试登录功能是否正常
业务测试,测试业务管理功能是否正常
- 增加功能的测试
- 添加功能的测试
- 删除功能的测试
- 修改功能的测试
员工管理,测试员工管理功能是否正常
- 搜索功能的测试
- 初始化密码的测试
- 添加功能的测试
- 修改功能的测试
工资管理,测试工资管理功能是否正常
- 查看个人工资
- 查看功能的测试
- 功能的测试
- 保存功能的测试
- 打卡功能
- 搜索功能的测试
- 添加功能的测试
- 删除功能的测试
- 修改功能的测试
白盒测试
- 登录模块
- 输入的用户名
- 输入的密码
- 班级管理
- 添加班级(班号,班名)
- 同学管理
- 添加同学(学号、姓名、性别、班级)
- 互评管理
- 互评设置(学期,开始日期、结束日期、优/良/中比例)
- 导入纯成绩
- 导入 Excel 成绩表
- 日常行为活动
- 添加学校活动
- 添加同学活动
- 个性发展活动
- 添加组织管理个性发展分
- 添加创新个性发展分
- 添加其他个性发展分
- 综合测评管理
- 设置学期
- 设置互评最高分/日常行为分最高分/体能分数
- 设置优/良/中分数
- 设置单项最高分/日常行为分基础
- 互评
- 对同学进行互评
- 修改密码
- 对原密码进行修改
测试用例
黑盒测试
登录模块
序号 | 测试内容 | 测试数据 | 测试数据 | 期望结果 |
---|---|---|---|---|
用例说明 | 测试输入 | |||
1 | 6 位及以上存在的用户名、对应的密码,点击登陆 | 员工用户; | 用户名:1011103;密码:000000; | 成功登陆无警告 |
6 位及以上存在的用户名、对应的密码,点击登陆 | B.管理用户 | 用户名:guomeng;密码:gnemoug; | 成功登陆无警告 | |
2 | 错误的用户名、任意密码点击登陆 | A.6 位以下用户名 | 用户名:10111;密码:000000; | 不能成功登陆;显示登陆错误 |
B. 6 位以上不存在的用户名 | 用户名:101110165;密码:000000; | 不能成功登陆;显示登陆错误 | ||
C. 用户名输入为空 | 用户名:;密码:123456; | 不能成功登陆;显示登陆错误 | ||
3 | 正确的用户名错误的密码 | A.密码为空 | 用户名:guomeng;密码:;验证码:按图计算结果输入 | 不能成功登陆;警告:密码必须要填 |
B.不对应用户名的密码 | 用户名:1011103;密码:123456;验证码:按图计算结果输入 | 不能成功登陆;警告:您输入的用户名或密码不正确 |
业务测试
序号 | 测试内容 | 测试数据 | 测试数据 | 期望结果 |
---|---|---|---|---|
用例说明 | 测试输入 | |||
1 | 添加 | A. | 点击添加 | 弹出添加框 |
2 | 删除 | A.选中一项 | 点击删除 | 弹出确认框,确认删除/取消 |
B. 不选中 | 点击删除 | 弹出警告:请选择一行 | ||
3 | 修改 | A. | 点击修改 | 弹出警告:没有权限 |
B. | 点击修改 | 弹出修改框 | ||
4 | 搜索 | A.搜索表单中有的 | 输入已有的字段,点击搜索 | 显示搜索结果 |
B.搜索表单中没有的 | 搜索表单中没有的字段 | 显示搜索结果(无) |
员工信息管理
序号 | 测试内容 | 测试数据 | 测试数据 | 期望结果 |
---|---|---|---|---|
用例说明 | 测试输入 | |||
1 | 添加 | A. | 点击添加 | 弹出弹出添加框 |
2 | 删除 | A.选中一项 | 点击删除 | 弹出确认框,确认删除/取消 |
B. 不选中 | 点击删除 | 弹出警告:请选择一行 | ||
3 | 修改 | A.员工修改 | 点击修改 | 弹出修改框 |
B.管理员修改 | 点击修改 | 请选择一行 | ||
4 | 搜索 | A.搜索表单中有的 | 输入已有的字段,点击搜索 | 显示搜索结果(有输入搜索字段的同学数据) |
B.搜索表单中没有的 | 搜索表单中没有的字段 | 显示搜索结果(无) |
工资管理
查看工资
序号 | 测试内容 | 测试数据 | 测试数据 | 期望结果 |
---|---|---|---|---|
用例说明 | 测试输入 | |||
1 | 查看 | A. 员工用户 | 点击确定 | 弹出自己的工资行 |
B. 管理员用户 | 点击确定 | 弹出所有员工的工资行 | ||
2 | 提交 | A.提交工作成果 | 点击确定 | 显示 提交成功 |
3 | 审核 | A. 管理员用户 | 点击确定 | 审核成功,允许发放工资 |
打卡
序号 | 测试内容 | 测试数据 | 测试数据 | 期望结果 |
---|---|---|---|---|
用例说明 | 测试输入 | |||
1 | 签到 | 早于规定时间 | 点击确定 | 弹出提示框:; 早于上班时间,打卡失败 |
B.晚于规定时间 | 点击确定 | 弹出提示框:;您迟到了! | ||
2 | 签退 | A. 早于规定时间 | 点击确定 | 弹出警告:您早退了 |
B. 晚于规定时间 | 点击确定 | 您已经于下班时间自动签退成功 |
白盒测试
登录模块
测试数据 | 覆盖的节点;① ② ③ ④ ⑤ ⑥ ⑦ ⑧ | 覆盖的边;a b c d e f g h I j |
---|---|---|
Name={小黄};password={123} | √ √ √ √ √ √ | √ √ √ √ √ √ |
Name={043834};password={111} | √ √ √ √ √ √ | √ √ √ √ √ √ |
Name={12324};password={123}1 | √ √ √ √ | √ √ √ √ √ |
打卡管理
测试数据 | 覆盖的节点;② ③ ④ ⑤ ⑥ ⑦ | 覆盖的边;a b c d e f g h i |
---|---|---|
Start=8,over=18 | √ √ √ √ √ √ √ | √ √ √ √ √ √ √ |
Start=8,over=8 | √ √ √ √ √ √ | √ √ √ √ √ √ √ √ |
工资结算
测试数据 | 覆盖的节点;① ② ③ ④ ⑤ ⑥ | 覆盖的边;a b c d e f g |
---|---|---|
User=1(小时工);Date=2017-06-09 | √ √ √ √ | √ √ √ |
User=2(正式工);Date=2017-06-20 | √ √ √ √ | √ √ √ |
User=3(提成工);Date=2017-06-21 | √ √ √ √ | √ √ √ |
步骤及操作
- 以管理员身份登录
管理业务,管理员工信息,管理员工作业提交,管理员工的工资情况 - 员工登录
修改密码、登记业务信息、修改信息、查看个人工资情况、打卡。
允许偏差
输入于显示的结果正确率控制在百分之九十以上正确。允许偏差控制在百分之十以内。
进度
测试在开发完成后由一名同学测试完成。
条件
测试环境:UnitTest
测试资料
需求规格说明书。
十二、评价
范围
白盒测试中只对相对功能进行的测试,而其他逻辑并没有进行测试。
黑盒测试完成程序的大部分功能,可以很好地测试出程序的功能。
准则
以用户的需求为准则,不断修改模块,完善最终的软件。
参考文献
- 利用JSP技术开发基于WEB的人事工资管理系统(大连铁道学院·杜欣然)
- 某区财政局工资管理信息系统的开发与实现(大连理工大学·王颖)
- 基于SSH框架的工资管理系统的设计与实现(电子科技大学·张祎荻)
- 基于B/S架构的工资管理系统设计与实现(电子科技大学·周治)
- 高校教师工资管理信息系统的设计与实现(电子科技大学·姚焕)
- 企业员工工资管理系统分析与设计(吉林大学·李兴旺)
- 基于SSH 的人事工资管理系统的研究与开发(中国海洋大学·李萍)
- 企业员工薪酬与绩效管理系统的设计与实现(电子科技大学·郭廷占)
- 企业员工薪酬与绩效管理系统的设计与实现(电子科技大学·郭廷占)
- 基于J2EE的高校工资管理系统的设计与实现(南昌大学·戴智英)
- 圣奥公司人事工资管理系统的设计与实现(电子科技大学·彭庆娥)
- 企业员工工资管理系统分析与设计(吉林大学·李兴旺)
- 人事工资管理系统的设计与实现(东北大学·钱刚)
- 企业员工工资管理系统分析与设计(吉林大学·李兴旺)
- 企业员工工资管理系统分析与设计(吉林大学·李兴旺)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计工坊 ,原文地址:https://bishedaima.com/yuanma/35730.html