(计算机科学与技术专业论文)自动排班系统的设计与实现.pdf_第1页
(计算机科学与技术专业论文)自动排班系统的设计与实现.pdf_第2页
(计算机科学与技术专业论文)自动排班系统的设计与实现.pdf_第3页
(计算机科学与技术专业论文)自动排班系统的设计与实现.pdf_第4页
(计算机科学与技术专业论文)自动排班系统的设计与实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,i , j j 独创性( 或创新性) 声明 j i i i l lifi i i ii ii i i ii i iu l y 17 6 0 0 2 6 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 kpt 本人签名: 萎盘巍 日期: 丝血:主:丝 关于论文使用授权的说明 本人完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在 校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国 家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校 可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段 保存、汇编学位论文。 本学位论文不属于保密范围,适用本授权书。 本人签名: 导师签名: 堡妻毒嗍丝垒:丝 日期:j _ o ( o 、弓 o h ! j 童 i 一 自动排班系统的设计与实现 摘要 排班系统是许多单位的一项日常管理工作内容,一种公平、合理 的排班方法对于调动积极性、提高工作效率都具有十分重要的意义。 目前大多单位通过手工方式来完成排班,费时费力且容易出错,随着 信息化的发展,需要利用计算机实现自动排班。 本系统是以实现排班系统的信息化来提高排班工作的质量和效 率为目的。在需求分析阶段,首先描述排班规则、用例分析和模块划 分内容,其次阐述了管理值班表模块、设置假期模块和维护规则模块 等功能性需求。在系统设计部分,主要对系统架构、类、功能与数据 库等方面进行了设计。本文首次构建了分块算法,按照i v l v c 模型的要 求进行了编码,开发出系统并投入实际使用。 通过自动排班系统能准确快速地生成值班表,支持手动调整和值 班表的打印导出功能,并提供值班人员的各班次的值班计数的统计查 询功能,实现了通过日历友好界面设置值班日期的属性,方便地维护 对日期类型、日期分类、班次名称、优先级等属性及其间的关系,可 对性别规则和系统参数进行赋值,添加输入性规则来完成值班人员的 预留值班或禁止值班,维护值班人员与新人员的计数初始化等功能。 通过测试,自动排班系统提高了排班工作的质量和效率,且具有 操作简单、功能完整、扩展性好的特点。 关键词:自动排班系统排班规则分块算法m v c 模型 _ 0 h叶一 d e s i g na n dm l e m 匝n 1 l t i o no f a u t o 队t i cs c h e d u l i n gs y s t e m a b s t r a c t s c h e d u l i n gs y s t e mi so n eo fd a i l ym a n a g i n gc o n t e n to fm a n yu n i t s af a i ra n d r e a s o n a b l es c h e d u l i n gm e t h o di sg r e a ts i g n i f i c a n c ef o rm o t i v a t i o nt oi m p r o v ew o r k e f f i c i e n c y c u r r e n t l yt h es c h e d u l i n gs y s t e mm o s t l yc a nb ed o n eb ym a n u a l l y , a sa r e s u l to ft i m e - c o n s u m i n ga n de r r o r s w i t ht h ei n f o r m a t i o nt e c h n o l o g yd e v e l o p m e n t , s c h e d u l i n gc a l lb ed o n eb yc o m p u t e r s t h ep u r p o s eo fa u t o m a t i cs c h e d u l i n gs y s t e mi si m p r o v e m e n tt h eq u a l i t ya n d e f f i c i e n c yo fs c h e d u l i n gw o r k i nt h er e q u i r e m e n t sa n a l y s i sp h a s e , f i r s t l yd e s c r i b e s s c h e d u l i n gr u l e s ,u s e c a s ea n a l y s i sa n dm o d u l e s s e c o n d l yd e s c r i b e st h em a n a g e m e n t o nd u t y , s e t sd a t ea n dm a i n t a i n sr u l e si nf u n c t i o n a lr e q u i r e m e n t s f o rd e s i g ns e c t i o n , c o v e r i n ga r c h i t e c t u r e ,c l a s s ,f u n c t i o n sa n dd a t a b a s ed e s i g n t h ep a p e rw a sf i r s t p r o p o s e ds u b - b l o c ka l g o r i t h m ,a c c o r d a n c ew i t ht h er e q u i r e m e n t so fm v c m o d e lf o r c o d i n gs y s t e ma n db e i n gp u ti n t op r a c t i c a lu s e t h r o u g ha u t o m a t i cs c h e d u l i n gs y s t e mc a na c c u r a t e l ya n dq u i c k l yg e n e r a t et h e d u t yt a b l e s ,s u p p o r t i n gf o rm a n u a la d j u s t m e n t ,t a b l ep r i n t e da n de x p o r t e df u n c t i o n s t h es y s t e mp r o v i d ed u t yp e r s o n n e lo nd u t ye a c hf r e q u e n c yc o u n to ft h es t a t i s t i c a l q u e r i e sa n d s e t sd u t yp r o p e r t i e st h r o u g hf r i e n d l yi n t e r f a c e ,m a i n t a i n sd a t et y p e , d a t e ,c l a s s i f i c a t i o n ,p r i o r i t ya n dr e l a t i o n s h i p s t h es y s t e mc a ns e tg e n d e r - a s s i g n m e n t r u l e sa n ds y s t e mp a r a m e t e r s ,a l s oa d dt h er u l e st oc o m p l e t et h ei m p o r t a t i o no fd u t y r e s e r v eo f f i c e ro nd u t yo rp r o h i b i tt h ed u t y t h r o u g ha u t o m a t i cs c h e d u l i n gs y s t e mc a n m a i n t a i np e r s o n n e lo nd u t ya n ds e tn e ws t a f fc o u n t i n g t h r o u g ht h et e s t ,a u t o m a t i cs c h e d u l i n gs y s t e mh a si m p r o v e dt h eq u a l i t ya n d e f f i c i e n c yo ft h es c h e d u l i n gw o r k t h es y s t e mi ss i m p l e ,f u l l - f e a t u r e e d ,e x t e n d e ra n d g o o ds p e c i f i c k e yw o r d s :a u t o m a t i cs c h e d u l i n gs y s t e m ,s c h e d u l i n gr u l e , s u b b l o c ka l g o r i t h m ,m v cm o d e l 一 目录 第一章引言l 1 1 课题背景一1 1 2 课题目标1 1 3 论文结构2 第二章相关技术介绍3 2 1b s 结构3 2 2j s p s e r v l e t 技术一3 2 3m v c 模型4 2 4s t r u t s 2 框架5 2 5e c s i d e 分页5 2 6 本章小结6 第三章系统的需求分析7 3 1 系统的业务描述7 3 1 1 系统的排班规则7 3 1 2 系统的用例分析8 3 1 3 系统的模块划分8 3 。1 4 系统的功能点1 0 3 2 系统的需求分析l o 3 2 1 管理值班表模块1 0 3 2 2 查看统计值班信息模块l l 3 2 3 设置假期模块l l 3 2 4 维护规则模块1 2 3 2 5 管理值班人员模块1 3 3 2 6 非功能性需求1 4 3 3 本章小结:1 4 第四章系统的设计1 5 4 1 系统的架构设计15 4 1 1 系统的技术架构15 4 1 2 系统的业务架构1 6 4 2 系统的类设计1 6 4 3 系统的功能模块及页面设计2 0 4 3 1 值班表管理2 0 4 3 2 查看统计值班信息2 3 4 3 3 设置假期2 4 4 3 4 维护规则2 6 4 3 5 管理值班人员2 8 4 4 系统的数据库设计2 8 4 4 1 基础数据2 8 4 4 2 逻辑结构2 9 4 4 3 数据字典设计3 0 4 5 系统的部署设计3 4 4 5 1 环境说明3 5 4 5 2 服务端部署3 5 4 5 3 应用部署3 6 4 6 本章小结3 7 第五章算法设计3 8 5 1 串行算法3 8 5 2 分块算法4 0 5 3 分块算法与串行算法的对比分析4 3 5 4 本章小结4 3 第六章系统的实现4 4 6 1 系统部分功能的实现4 4 6 1 1 分块算法的实现4 4 6 1 2 日期设置的实现4 9 6 1 3a c t i o n 的配置5 0 6 1 4 数据持久化的实现5 1 6 1 5e c s i d e 分页应用5 1 6 1 6 值班表的下载实现5 3 6 2 开发过程中出现的难点及解决办法5 5 6 3 系统的测试5 6 6 4 本章小结5 7 第七章结束语5 8 7 1 论文工作总结5 8 7 2 问题和展望5 9 参考文献6 0 致谢6 2 北京邮电大学软件学院工学硕士论文 第一章引言 本章主要介绍课题背景、课题目标与论文结构的内容。在课题背景中,主要 介绍了排班工作的现状,以引出利用计算机进行排班的研究课题,随后在课题目 标中,对自动排班系统的目标进行了描述,最后介绍论文的组成结构。 1 1 课题背景 在日常工作中,工作人员排班是一个常见而又现实的问题。所谓排班问题i l 】, 实质上是根据工作计划,产生一段时间内、满足一定约束条件的工作时间表的过 程。人员排班的本质是一个组合优化问题,当问题规模庞大时,会变得十分复杂。 目前排班系统主要是基于手工排班的方式来考虑的【2 】,大多数单位的值班计 划都是由某位工作人员负责,利用e x c e l 表格或者统计报表来制定值班计划。手 工排班方式有费时费力、盲目性、繁琐性、易出错等缺点,很难保证排班结果的 最优。 基于手工排班的诸多缺点,利用计算机进行自动排班的想法自然而生。排班 系统由计算机、信息处理、知识数据库和构件组成【3 】,其是在相应相关软件引导 下的计算机信息处理系统。排班系统不是为了寻找一个最优解,而是通过使用一 些方法来找到一个令人满意的方案。 目前排班系统普遍存在几个问题【4 】:软件开发中普遍存在着重复劳动,不 能以已有的工作为基础,不能充分利用过去应用系统开发中积累的知识和经验来 集中于单个系统的设计和开发;现行排班软件适应性差,应变能力弱。 排班系统在许多领域中都有应用,如医院护士的值班【5 墙】,政府办公室的值 班工作【9 - l o 】等领域,但国内外对排班系统的研究不多。不同的排班目标,不同的 排班算法,但相互之间具有参考价值。 1 2 课题目标 通过排班系统,实现公平有序,避免人为因素的干扰,排班要求平均分配各 种班次,尽可能使每位值班人员所值班次的种类和数量相等,具备一定的调配规 则,尤其在发生临时变化时,可以手动调整值班人员。自动排班表将实现下一个 月的排班或预览更多月份的值班安排,并且具有方便下载和查阅的功能,可进行 假期的设置,规则的维护和值班人员的管理。 北京邮电大学软件学院工学硕士论文 为了达到系统目标,需要充分调研,具体分析排班流程,理清排班规则中的 关系,分析系统的主要功能模块和特定的非功能要求,完成系统设计,结合高效 的排班算法,实现系统的编码和测试。 1 3 论文结构 通过对课题的研究分析,本文的论文结构划分为七章,具体是: 第一章,引言部分主要介绍课题的相关背景,课题目标和论文结构。 第二章,简要介绍系统在设计、实现阶段采用的相关技术。 第三章,系统的需求分析,主要介绍系统的业务描述,系统的功能模块间的 划分及功能点。 第四章,系统的设计,包括架构设计、类的设计、数据库表的设计和功能模 块及主要界面的设计。 第五章,算法设计,针对串行算法的不足,创新地设计了分块算法。 第六章,系统的实现环节,按照设计完成编码,实现各功能点及页面。 第七章,总结与展望,总结论文的主要工作及本文的研究成果,并指出进一 步的研究工作。 2 北京邮电大学软件学院工学硕士论文 第二章相关技术介绍 本章阐述了系统在设计、编码实现等环节采用的相关技术。系统采用b s 结 构,使用开源框架s t r u t s 2 进行开发,基于m v c 模型进行架构,应用j s p s e r v l e t 技术和e c s i d e 组件。 2 1b s 结构 b s ( b r o w s e s e r v e r ) 和c s ( c l i e n t s c r v c r ) 是当今世界开发模式的两大主流 技术【u 。1 2 1 。在过去的十几年中,基于c s 的网络计算模式,为实现企业级的信息 共享起到了十分重要的作用,但c s 结构的固有弱点,如软件实现复杂度高、维 护代价高、不能跨平台运行等。随着计算机网络技术和i n t e m e t 的迅速发展,c s 模式正向基于w e b 的b s 模式转变。在b s 结构即浏览器来实现,极少部分事 务逻辑在浏览器端实现,但是主要事务逻辑在服务器端实现。b s 结构最大的优 点是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能连接服 务器的电脑,客户端的维护是零且具有使用范围广、使用方便等特点,能够满足 授权用户在不同地点统计查询的要求。系统的扩展性非常好,只要能上网,再由 系统管理员分配一个用户名和密码,就可以使用了。基于本系统的业务特点,系 统选择采用b s 结构。 2 2j s p s e r v l e t 技术 j s p 技术【1 3 】是一种建立在s e r v l e t 规范提供的功能之上的动态网页技术。j s p 网页可以在h t m l 文件中加入j a v a 程序片段,通过” ”来定义开始和 结束的。通常,w e b 服务器遇到j s p 网页请求时,首先执行程序片段,将结果以 h t m l 格式返回给客户端。j s p 提供一套标签可以与h t m l 融合的很好。s e r v l e t 是j a v a 技术中用于连接主页和应用程序的接口的一种技术。s e r v l e t 运行在 s e r v l e t 容器中,可以自动生成h t m l 页面,最常用的用途是扩展w e b 服务器, 由于s e r v l e t 在服务器端运行,因此它不依赖于浏览器的兼容器。t o m c a t 0 4 是一 个免费开源的s e r v l e t 容器,还具有传统w e b 服务器的功能,处理h t m l 页面, 配置j n d i 等,t o m c a t 完全是纯j a v a 实现,因此它是平台无关的,在任何平台 上运行完全相同,在w i n d o w s 和l i n u x 平台上的安装与配置基本相同。t o m c a t 的运行需要环境变量j a v ah o m e ,而且最新的s e r v l e t 和j s p 规范总能在t o m c a t 北京邮电大学软件学院工学硕士论文 中得到体现。从理论上说,j s p 和s c r v l e t 是可以相互替代的,但在不同的侧重方 面,有不同的优势。 2 3m v c 模型 m v c 英文即m o d e l v i e w c o n t r o l l e r t ”l ,即把一个应用的输入、处理、输出 流程按照m o d e l ,v i e w ,c o n t r o l l e r 的方式进行分离,这样一个应用被分成三层: 模型层,视图层和控制层。 视图( v i e w ) 代表用户交互界面,对于w e b 应用来说,可以概括为h t m l 界面,但又可能为x h t m l 、x m l 和a p p l e t 。随着应用的复杂性和规模性的不 断变化,界面的处理变得越来越具有挑战性。一个应用可能有很多不同的视图, m v c 设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请 求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型( m o d e l ) 处理,比如用户在界面上设置了日期的节假日属性,则将该设置的数据传递给控 制和模型。 模型( m o d e l ) - 就是业务流程状态的处理以及业务规则的制定。业务流程 的处理过程对其他层来说是看不见的,模型接受视图请求的数据,并返回最终的 处理结果。业务模型的设计可以说是m v c 最主要的核心。m v c 设计模式告诉 我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要。所以对于一个 开发人员,要专注于业务模型的设计。抽象与具体既不能太近,也不能隔的太远。 m v c 并没有提供模型的设计方法,而只告诉我们应该组织管理这些模型,以便 于模型的重构和提高重用性。 控制( c o n t r o l l e r ) 可以理解为从用户接受请求,将模型与视图匹配在一起, 共同完成用户的请求。划分控制层的作用也很明显,它能清楚地告诉我们,它就 是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户 请求。控制层并不做任何的数据处理。例如,用户单击一个连接,控制层接受请 求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选 择符合要求的视图返回给用户。因此,一个模型可以对应多个视图,一个视图可 能对应多个模型。 模型、视图与控制器的分离,使得一个模型可以具有多令显示视图。如果用 户通过某个视图的控制器改变了模型的数据,所有其他依赖于这些数据的视图都 用反映到这些变化。因此,无论何时发生了数据变化,控制器都会将变化通知所 有的视图,导致显示的更新。 4 北京邮电大学软件学院工学硕士论文 2 4s t r u t s 2 框架 s t r u t s 2 是一个全新的基于m v c 的w e b 编程框架【1 6 1 ,在很多方面采纳了 w e b w o r k 的设计思想,可以认为s t r u t s 2 是s t r u t s 和w e b w o r k 整合优化后的新一 代的w e b 编程框架。 其中s t r u t s 2 的a c t i o n 类不再依赖于s t r u t s 框架,任何类都可以作为s t r u t s 2 的a c t i o n ,内置了v a l i d a t i o n 服务,支持多种视图技术,如j s p 、v e l o c i t y 、c s s 、 f r e e m a r k e r 、x s l t 等等,s t r u t s 2 的数据传递可以通过a c t i o n c o n t e x t 、v a l u e s t a c k 以及o g n l 实现。 s t r u t s 2 的控制器是一个过滤器,其类型是o r g a p a c h e s t r u t s 2 d i s p a t c h e r f i l t e r d i s p a t c h e r ,在w e b x m l 中部署,当f i l t e r d i s p a t c h e r 受到一个请求后,根据配置信 息查找处理此请求的i n t e r c e p t o r s a c t i o n 类,自动创建实例并调用方法,指向结果 来调用视图层的组件r e s u l t 生成响应;而s t r u t s 2 中的模型包括a c t i o n 和 i n t e r c e p t o r ,其中a c t i o n 是一个简单的j a v a b e a n 对象,不需要依赖于s t r u t s 2 框架, 因此独立性和复用性很好,适合于数据访问d a o 交互。a c t i o n 的开发式基于 s t r u t s 2 的项目的核心任务。为m o d e l 对象提供配置信息可以在x m l 文件中指定, 也可以在a c t i o n 类源代码中指定,其中x m l 默认配置s t r u t s x m l 文件。 2 5e c s i d e 分页 e c s i d e 是一个基于j s p t a g 的开源列表组件【l 。7 1 ,源自著名开源列表组件 e x t r e m e c o m p o n e n t s ,改名为g t - g r i d ,它是一组可以快速实现强大的列表的j s p 标签。工作原理:将要展现的列表的数据集合,放入r e q u e s t p a g e c o n t e x t s e s s i o n 内( 使用s e t a t t r i b u t e 方法,可以在a c t i o n s e r v l e t 里完成,也可在j s p 页面内完成) , 然后页面跳转到使用e c s i d e 标签的j s p 页面,此时e c s i d e 就能展现出所需要的列 表。简单的流程:1 ) 客户端请求a c t i o n s e r v l e t ( 如h t t p :1 0 1 9 5 1 2 9 1 0 1 t e s t u s e r l i s t d o ) ;2 ) a c t i o n 接受到请求后,调用相应的b o d a o ,执行取列表数据的方法; 3 ) 取得数据后( 通常是一个v o m a p 的l i s t ) ,将数据放入r e q u e s t 内( 使用 r e q u s e t s e t a t t r i b u t e ( k e y ,v a l u e ) 方法) ;4 ) 将请求f o r w a r d 到使用e c s i d e 标签的j s p 页面;5 ) e c s i d e 将展现出列表。主要增强的功能如下: l 增加了列表内部滚动条,实现列表头固定,列表体滚动的功能; 2 增加页面变量,用来标示当前纪录在全部记录中的行数; 3 增加了打印功能; 4 支持预查询功能,在查看第n 页的时候,把n + 1 页的数据也查询出来( 隐 北京邮电大学软件学院工学硕士论文 藏着) ,加快查看下一页的速度; 5 增加导出方式( 通过e c - t a b l e 的x l s f i l e n a m ep d f f i l e n a m ec s v f i l e n a m e 属 性) ,其中将导出e x c e l 使用的组件由p o i 切换成了j ) 【l ,x l s 导出方式修改,原始 的导出是导出的v o m a p 里的原始数值,目前是导出页面实际显示的内容。 2 6 本章小结 本章主要是介绍系统在设计、开发环节所涉及的相关技术。系统采用b s 结 构,在开发过程中,系统采用的是s t r u t s 2 开源框架,其是m v c 模型的典型应用, 在编码上实现分层编码,在视图层的部分页面中使用了j s p s e r v l e t 技术,同时 针对本系统表单居多的特点,调用e c s i d e 组件来处理表格。 6 北京邮电大学软件学院工学硕士论文 第三章系统的需求分析 通过系统调研后,本章首先介绍了系统的业务描述,包括排班规则、系统模 块的划分、系统用例分析等内容,随后对系统的功能性需求进行了详细阐述,并 对特殊的非功能性需求进行了规范。 3 1 系统的业务描述 系统的业务描述是对排班系统的相关业务知识的阐述,具体包括排班规则, 用例分析,模块划分和系统的功能点方面的内容。 3 1 1 系统的排班规则 排班规则是系统的核心,也是系统自动排序的依据。排班规则主要涉及设置 假期模块和管理值班人员模块。 核心排班规则:值班表是每月生成一次,每班次都为2 人值班,其中一人为 处级干部,一人为科级干部,科级要与处级干部的性别一致,值班计数采用从 2 0 0 9 1 1 到当前的统计数量。班次类别的优先顺序为假期值班,普通公休日值班, 工作日夜班。要对假期值班中的班次,设置不同的优先等级。每次安排值班时, 都要从相应的班次类别下的值班计数最少的人员开始排起,若计数相同的,按照 姓氏笔画顺序排列。每位值班人员安排完一个班次后,在相应的班次类别计数上 增加一次。当一组值班人数少于当月计划值班数时,则将该组所有值班人员进行 新一轮排列,再按照以上规则进行选取安排。对于重大节日和敏感时期,可以手 动调整值班人员值守重点班次,其他人员按原顺序顺延。 设置假期模块中的规则:班次类别的维护,对下个月的假期进行手动初始化 工作。针对不同的假期,需要设置不同的优先级数值。尽量使值班春节的人不值 班国庆,也不安排值班下一个春节。对于假期时长的计算,如春节7 天,均为假 期值班,不认为是3 个假期值班,4 个普通公休日值班。本系统目前不区别对待 白班和夜班,默认白班在夜班之前。 管理值班人员模块中的规则:用户手动设置新员工的排班时间,新员工的值 班计数初始数据,赋值当时的“参与排班人数( 同级别) ”的平均值。对于离职, 抽调、复岗、病休、孕产期、哺乳期、其他等特殊原因的值班人员,用户根据情 况修改值班状态。对于值班人员升迁,从科级到处级,带入原始的各班次计数( 科 级) ,不进行换算,直接参与处级的值班。 7 北京邮电大学软件学院工学硕:亡论文 3 1 2 系统的用例分析 图3 1 系统的用户用例图 参照u m l 设计模式【l 引,画出系统的用户用例图,如图3 - 1 所示,用户的操 作功能分为四部分,具体如下: 值班表管理:通过预定义规则,生成值班表,这是系统的主要功能。用户通 过系统,可以对生成的值班表进行多种操作,如手动调整、打印、导出值班表等 操作。 假期班次设置:用户需要设置下个月的值班日期的所属类别,尤其是法定节 假日和需要变更属性的日期。对假期,班次名称等进行相应的设置,一般不需要 维护,操作频繁的是日期属性设置功能。 规则维护:用户通过系统维护值班规则的模块。主要是对输入性规则的增加、 删除和修改,可选性规则的勾选、赋值操作。 值班人员维护:用户通过系统管理值班人员的模块。对人员的级别、值班状 态、联系方式等基本信息进行维护,并添加新员工信息及其值班计数的初始化。 3 1 3 系统的模块划分 整体上,系统中的主要功能为生成值班表,手动调整,导出打印值班表,查 看统计值班信息,设置假日和班次,可选性规则维护,输入性规则维护( 预留规 则与禁止规则) 和管理值班人员( 包括新员工的值班计数初始化设置) 功能。具 体的系统模块图,如图3 2 所示。用户可以使用各功能模块,可通过连接打印机, 完成对值班表的打印操作。 北京邮电大学软件学院工学硕士论文 查看统计 生成值班表手动调箍 值班信息 i 徉菁著统k - , 导出,打印值设置假日 一连蝴印| 班表 和班次 管理 值班人员 ( 新员工录入) 可选性规则维护输入性规则维护 图3 - 2 系统模块图 通过分析,部分功能可以归并到一个模块,如手动调整和导出打印都是对值 班表的操作;可选性规则维护和输入性规则维护都是属于规则维护的范畴。功能 经过归并之后,系统分为五个模块:值班表管理,查看统计值班信息,设置日期, 维护规则和管理值班人员模块。如图3 3 所示,其中设置日期模块,将原先的班 次名称,班次类别,日期属性设置,节假日优先级,白夜班等错综复杂的相互关 系分成了两块:一块是设置日期的类型,这块是每次生成值班表都需要设置并保 存一次的部分。该块主要完成值班日期的班次类型的设置,如设置法定节假日是 哪些日期。另一块是设置各种关系的功能,此功能很少被修改,只在特定需要增 加新的节假日或者变更节假日的属性的时候,才会维护这部分内容。对于维护规 则模块,本系统直接将内嵌性规则写入了排班算法。通过树形的模块功能图,更 直观、清楚地熟悉系统各功能间的关系。 图3 - 3 系统模块功能图 9 北京邮电大学软件学院工学硕士论文 3 1 4 系统的功能点 系统用例图和系统模块划分,均从整体上描述系统的功能。对于各模块下的 小功能点,如图3 - 4 所示,对系统每个功能点进行描述,细化维护功能到增加、 删除和修改的功能点。 排班系统 3 2 系统的需求分析 图3 - 4 系统功能点图 自动排班系统的需求分析包括管理值班表模块、查看统计值班信息模块、设 置假期、维护规则、管理值班人员与非功能性需求共六部分,本节详细阐述系统 的需求分析的方面的内容。 3 2 1 管理值班表模块 自动排班系统的核心模块是管理值班表模块。对于其它模块,要么是为它服 务的,要么是基于它应用的。如设置假期模块,是设置值班日期的属性及具体的 值班班次的;对于维护规则模块,是对排班算法进行一些约束的,查看统计值班 信息模块对以往生成的值班表或值班记录进行一些查询或统计的功能。 管理值班表模块具体包括的诸多功能,依次为:生成值班表,查询值班表, 手动调整值班表,打印值班表和导出值班表。 对于生成值班表,页面上是一个普通的按钮,但所包含的却是管理值班表模 块的核心。点击按钮,后台执行的是排班算法。如果成功运行,则会输出值班计 l o 北京邮电大学软件学院工学硕士论文 划;如果报错,则会引起很大的困难,甚至是灾难性的。生成值班表本质是排班 算法的一种表现方式,它关联到值班日期,班次,排班规则和值班人员等许多系 统模块或参数设置。因此焦点不在j s p 页面,而是后台的排班算法。对于值班表 的参数初始化工作需要在相应的模块中完成,此处必须要有生成值班表的时间, 格式为x x x x 年x x 月。 设置手动调整值班表的功能,因为自动排班算法不是十全十美的,基于可能 个别值班人员有临时情况,需要对某月值班计划做个别调整进行设置的。若需要 大面积的调整,可在规则维护模块中进行设置,使生成的值班表接近最优结果。 设置手动调整的功能是为了处理个别的调整。对于手动方式,缘由人脑是世界上 最智能的大脑,也有这样调整值班表的代价会最小的因素。计算机按照排班算法 生成值班计划,加上工作人员的手动调整,则会产生出最符合具体条件和最理想 的值班计划。如想调整6 月5 日值班人员,则需要调出6 月份的值班表进行手动 调整并保存,该调整不对后续月份的值班计划进行重新计算。 对于打印、导出和查询值班表的功能是对值班表的一种应用方式。对于打印 和导出功能是表单最常用的用途,导出的方式以及打印值班计划的模板都还需要 讨论,如需要调用计算机系统自带的打印参数选择功能与导出具体地址的设置。 对于查看过去某个月的值班计划或预知下个月的值班计划,通过生成下个月的值 班表,再查询。如果有必要将值班计划发布到其他的系统上,如办公自动化系统, 需要创建系统间的接口,简化的值班表页面作为一个链接放到其他系统上,只允 许查看而不能修改。 3 2 2 查看统计值班信息模块 设置了查看统计值班信息模块是为了查看特定条件下的值班记录信息,对于 前面的查询值班表功能是以“月 为单位的值班记录的查看。 本模块包括两部分内容:一是查看值班信息,设置查询条件,如值班人员姓 名,值班班次,值班日期等条目,既可以查询特点的单条件值班记录,也可以采 用组合条件来查找值班记录;二是统计值班信息部分,主要是统计每个值班人员 在一段时间内的十七类班次名称下的值班状况。从值班计数上,可以一目了然地 获知值班人员的值班情况。 3 2 3 设置假期模块 虽然系统的核心是排班算法,但算法的参数初始化也至关重要。如何f 确初 始化值班日期,班次名称,班次种类等内容呢? 几乎每个月都有法定节假日,很 容易发生两个法定节假日撞车,诸如五月和十月。系统根据设置节日的优先级来 北京邮电大学软件学院工学硕士论文 排除它们的冲突,优先级相同的,可按照节日出现的日期来排序。对于具体如何 设置,是需要细究的。 设置假期模块包括初始化假期值班的日期,假期名称与班次名称之间的关 系,班次名称与班次类别之间的划分内容。 在初始化假期值班的日期功能中,主要是确定每一个值班日期的属性。每一 次生成新的值班表都需要进行此设置,否则会报错。具体的步骤是首先通过开源 的日历控件来计算正常的值班日期属性,然后根据每年1 2 月底国家国务院发布 的关于新一年的所有法定节假日的放假通知,设置需要变更的值班日期的属性。 具体包括普通工作日变更为某法定节假日,周六周日变成某法定节假日,周六周 日变成普通工作日。如不能准确地进行值班日期的调整或变更内容,直接影响生 成的值班计划准确性。 在假期名称与班次名称页面中,涉及很多小功能点,如维护节假日与班次名 称的对应关系,增加新的法定节假日,班次的名称命名,某节日的班次是否安排 值班,节假日的优先级设置。如何利用节假日的名称与白班,夜班进行有效的组 合,从而确定该节假日对应的值班班次,这将直接影响计数规则下的班次类别中 的值班计数。此外,法定节假日的优先级设置是为了解决法定节假日间的冲突。 对于班次名称与班次类别之间的划分功能,因为排班规则中的计数规则是根 据某班次类别下的所有值班班次的计数之和来排序的,所以要区分开哪些班次是 属于法定节假日的,哪些班次是普通的周六日的。固然可以通过班次名称对应的 假期名称,再对假期名称进行分类,形成班次类别与班次名称的间接关系,但间 接关系可能会复杂化数据库表间的逻辑关系。 3 2 4 维护规则模块 俗话说:“没有规矩,不成方圆”。同样在排班系统中,若没有排班规则,更 别谈值班计划了。排班规则模块是描述规则内容的模块。本系统将规则分成三种 规则:输入性规则,可选性规则和内嵌性规则。 输入性规则主要是指预留值班和禁止值班部分。预留值班是指某值班人员想 在下个月的值班计划中值班某天的某个班次。禁止值班是指某人不想在下个月或 未来的值班计划中不值班某天的某个班次。设置输入性规则需要必备值班人员姓 名,值班日期,班次名称,值班状态( 值班不值班) 来形成一条输入性规则, 将输入性规则按照操作的时间从前往后排列存储。若修改某人的输入性规则,可 按照新的操作时间进行存储。若系统只输入值班人员a 预留下个月份的某班次 的值班的规则,系统将率先安排a 的预留值班。若先输入2 0 0 9 7 5 安排a 值班 夜班,随后输入2 0 0 9 7 5 不能安排a 值班,则系统最后按照a 值班进行处理, 1 2 北京邮电大学软件学院工学硕士论文 对于可选性规则,即排班算法的参数设置,可通过选项或文本框来进行可选 性规则的赋值。目前有两条可选性规则内容:其一是科级干部与处级值班干部的 性别一致;其二是各班次类别下的值班计数的统计时间是2 0 0 9 年1 月1 日( 默 认值) 开始统计。设置可选性规则,目的是防止取消性别规则或者若干年后需要 调整统计时间,基于系统可扩展性的角度进行设置。 对于内嵌性规则,可理解为不附加输入性规则内容,默认可选性规则取值的 排班规则。内嵌性规则在每次生成值班表的过程中都是确定的不变的,不需要维 护。简要列举内嵌规则内容,如下: 1 在日期类别下,首先按值班计数排序,计数相同时,按照姓氏笔画排序。 2 如人数不够当月值班数,则对( 当月值班数人数) 的班次,进行再轮转。 3 班次类别班次相互独立。 4 。同一大类,要考虑人选后置。 5 值班表按“月生成。 6 所有班次的值班人员数量一致,均为2 人,一名处级一名科级。 7 节假日的确定,如国庆放假7 天,则7 天是一样的,均是国庆班次。 8 如果职位升迁,则原来的数据直接带入,不进行变化处理。 3 2 5 管理值班人员模块 管理值班人员模块,是指对值班人员的管理。该模块主要包括值班人员基本 信息的查看与维护,新值班人员的初始化值班计数和级别维护的内容。 对于浏览值班人员的基本信息查看,是指对值班人员的姓名、性别、级别、 值班状态等属性的查看。方便了解值班人员的状况,尤其是活跃的值班人员。 对于维护值班人员,主要是姓名、级别、值班状态等信息的变更和添加新人 员功能。如某人从科级升为处级,则需要变更其级别。如孕妇、外调、退休等各 种原因不能参与值班工作的,需要变更其值班状态为停用的,反之为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论