农村劳动力技能培训系统的UML分析和设计

时间:2022-09-04 03:20:09

农村劳动力技能培训系统的UML分析和设计

摘要:简要介绍了农村劳动力技能培训系统的UML分析设计,给出了系统的用例图、总体结构图和类图,并对部分系统的动态行为用顺序图和状态图进行了描述。该系统已投入实际运行,效果良好,对同类软件的开发具有参考价值。

关键词:农村劳动力技能培训系统;UML;用例图;类图

0 引言

农村劳动力技能培训是将农村部分富余劳动力通过培训和岗前培训转移到非农领域就业,该工作主要是以政府推动、学校主办、部门监管、农民受益为原则。农村劳动力技能培训工作主要由市、县、乡和各级培训机构分级负责共同完成。市级工作由农业和农村工作办公室统一负责,主要是监督和领导辖区范围内市级各责任部门及各县(区)的所有农村劳动力技能培训工作;各县(区)农村劳动力技能培训工作由各县(区)农村劳动力技能培训工作领导小组负责,监督和领导管辖本县(区)范围内的农村劳动力技能培训工作;各乡(镇)的农村劳动力技能培训工作由各乡(镇)农村劳动力技能培训工作领导小组负责,管辖本乡(镇)范围内的农村劳动力技能培训工作。

目前,农村劳动力技能培训工作主要有两大块,一块是对本地区的农村劳动力资源状况进行普查;另一块是对农村劳动力实施技能培训。农村劳动力资源状况普查一般是每4至5年开展一次,任务是调查收集本辖区范围内当前农村劳动力的基本资源状况,如农村劳动力文化程度、年纯收入、有无劳动能力、从事的行业和从事的行业性质等等。该工作目前主要由各县(区)农村劳动力技能培洲工作领导小组规划组织,各乡(镇)农村劳动力技能培训工作领导小组领导,各培训机构负责实施完成。农村劳动力技能培训是每年都要进行的一项日常主要工作,就浙江省内调查该项培训工作,主要有两种模式,一种是由各乡(镇)成立的农村劳动力技能培训领导小组负责领导,各类职业学校、成人学校或农校负责实施各村的农村劳动力技能培训;另一种是由县(区)管理机构直接委托各类民办机构,由各类民力机构牵头负责实施各村的农村劳动力技能培训。培训经费支出主要是各类培训机构的培训费用以及对参与培训的农村劳动力人员进行经费补贴两部分,经费来源一般每年由市、县(区)和乡(镇)三级政府根据劳动力培训人数确定。

我们的目标是建立一个基于Web的由市、县(区)和乡(镇)三级政府、培训机构和培训人员使用的,具有上述功能的农村劳动力技能培训办公系统。

1 农村劳动力技能培训系统UML分析设计

统一建模语言(UML)是以可视化方式描述软件系统的结构和行为的标准语言。UML版本自1997年UML 1.1公布以来几经修订,到近年来UML2.0的,UML逐渐成熟。UML不仅支持面向对象的需求分析,还支持软件开发各个过程。同时通过对软件系统的可视化建模,可直观地描述出系统的流程、交互形式及系统的结构框架,而且能形成良好和规范的软件文档,方便软件的维护工作。基于以上原因,我们使用了UML对农村劳动力技能培训办公系统进行了分析和设计。

1.1 用例图

用例图是UML用来表达系统功能性需求的模型,它是从用户的观点来描述系统功能的可视化视图。用例是系统中的一个功能单元,可以被描述为参与者与系统之间的一次交互作用。用例图是从用户需求中提取,以黑盒的方式描述的开发系统的功能需求。图1是农村劳动力技能培训办公系统的用例图。从图1中可以粗略了解整个应用系统的轮廓。该系统有7种类型的用户,其中市级用户分两种:一种是市级一般用户,使用“管理计划”、“管理进展”、“管理经费”这3个主要用例描述对辖区范围内的培训计划制订、培训进展情况以及培训经费到帐使用情况的管理;另一种是市管理员,他除了继承市级一般用户的权限以外,主要是使用“管理用户”和“备份数据库”这2个用例,实现对市级用户开户及管理,以及对数据库备份的功能。县区级用户也分两种:一种是县区一般用户,使用“管理计划”、“管理进展”、“管理经费”、“管理文件”、“审核”这5个主要用例,完成辖区范围内的培训计划制订、培训进展情况、培训经费到帐使用情况的管理,培训文件的管理以及培训项目和培训人员资格的审查等功能;另一种是县区管理员,他除了继承县区一般用户的权限以外,还继承乡镇用户和培训机构用户的权限,主要是使用“管理用户”和“规划系统”这2个用例对县区范围内的所有系统用户,包括乡镇用户和培训机构用户进行规划和管理。乡镇用户也分两种:一种是乡镇一般用户,使用“管理劳动力”这个主要用例,完成对乡镇劳动力普查资料的管理工作;另一种是乡镇录入用户,使用“录入普查数据”这个主要用例,完成在WEB客户端大量批处理的普查数据录入任务。而培训机构用户使用“管理项目”、“招生”、“管理班级”、“培训统计”这4个主要用例,完成培训项目的制订申报、培训招生、培训班级的管理以及对培训的完成情况进行各种统计的功能。需要指出的是“登录”用例是所有用户使用其他用例前必须运行的用例,只有运行了“登录”用例后,系统才根据用户的不同身份进入相应的操作界面。

1.2 包图

在UML中可以用包图将整个系统的结构表达出来。包图由包和包之间的联系构成。包图的图形节点是包,节点之间用弧(依赖或泛化)连接。包是一种分组机制,它把一些模型元素组织成语义上相关的组,便于开发和维护人员进行交流。

农村劳动力技能培训办公系统为三层体系结构。所谓三层体系结构是由表示层、应用逻辑层和存储层组成。表示层即用户界面部分,它主要负责与用户交互,基本上不处理应用业务过程,而将请求转发给应用逻辑层;应用逻辑层即业务处理部分,它专门负责管理业务过程的任务和规则;存储层即数据存储部分,它专门负责与数据库的管理与通讯。图2是系统的体系结构包图,图中的虚线表示包之间的依赖关系。用户界面包中是农村劳动力技能培训系统的所有视图相关类;业务处理包中是农村劳动力技能培训系统中的所有领域相关类;数据存储包中是农村劳动力技能培训系统中的所有与数据库打交道的数据存储相关类。当用户使用用户界面包中的视图类发出业务请求时,它将请求转发给业务处理包中的领域类进行业务处理。当领域类需要进行数据库操作时,它是通过数据存储包中的数据存储类对数据库进行读写操作的。

1.3 类图

类图是UML中的核心图,是系统逻辑视图的表示方法。类是具有相同结构、相同特性、相同关系和相同语义的对象的集合。通过类图可以描述以下基本元素:类以及类属性和操作;不同类之间的关联、聚合、相关和继承关系;类的实例数量特性和遍历方向、角色名等。总之,类图展示了一组类、接口和协作及它们问的关系。系统可有多个类图,单个类图仅表达了系统的一个方面。通过分析用例图,可以发现相关的类并确定类之间的关联和其内部结构。限于篇幅,下面只给出业务处理包中的主要关系类图以及类中主要的属性和操作,如图3所示。

图3中学员类是农村劳动力类的子类,系统管理员类是系统用户的子类,可以用带三角形的空心箭头表示它们之间的泛化关系;培训项目类与班级类之间存在依赖关系,可以用带虚线的箭头来表示这种关系;图中关联两端的符号修饰,表明两个类之间是一对一、―对多或者多对多的关系。类图之所以是UML中的核心图,因为目前只有类图才能在实现阶段完全生成框架代码,因此类图提供的信息越多越详细对后续的代码生成越有好处。

1.4 顺序图和状态图

类图是UML的静态结构图,从类图中我们不能知道类与类之间如何协作完成系统的功能。为了描述系统的功能是如何完成的,UML中可以使用多种视图、从不同的角度去描述对象的行为和对象之间的交互。这种行为建模能力,在UML2.0中发生了比较大的变化。UML2.0中协作图已不用了,变为通讯图(Communication Diagrams),增加了消息的并行表示方法;顺序图增加了多个片断,允许在一个顺序图中显示更复杂的选择,同时顺序图片断支持顺序图元素的重用;新增时序图和交互概观图两种交互图;活动图不再与状态机结合在一起,支持大量的附加流特征,不再把重点放在各种状态转换上,而是放在沿着各个活动边沿流动的令牌流上;状态图的变化不大。UML2.0的这些行为建模能力,并不是要求在任何情况下都要画所有的视图,而是要根据项目的实际需要建立不同的模型视图。在本例中,选择使用UML2.0顺序图和状态图。在顺序图中,我们能够清晰、明确地显示控制流,以及对象间消息传递的时间顺序。为了说明7种不同的用户的登录过程,在这里使用UML2.0顺序图来描述,如图4所示。

图4中使用了两个交互片断,第一个交互片断是根据记录数是否大于0来判断用户名和密码是否正确,并作出不同处理;第二个交互片断是嵌套于第―个交互片断的else中,它根据输入次数是否大于3,相应作出不同处理,以控制非法用户的多次登录。需要说明的是,在操作6和7中,七种不同用户是根据系统用户“所属地区种类”和“用户性质”这两种属性判断出来的。“所属地区种类”有市、县(区)、乡(镇)、培训机构这4种值;“用户性质”有一般用户、系统管理员、录入用户这3种值。对于市级和县(区)级用户的“用户性质”只有一般用户、系统管理员两种值;对于乡(镇)级用户的“用户性质”只有一般用户、录入用户两种值:对于培训机构用户的“用户性质”只有―般用户―科值。因此,市级用户根据“用户性质”分别进入市一般用户操作界面和市系统管理员操作界面;县(区)级用户根据“用户性质”分别进入县(区)一般用户操作界面和县(区)系统管理员操作界面;乡(镇)级用户根据“用户性质”分别进入乡(镇)―般用户操作界面和乡(镇)录入用户操作界面;培训机构用户的“用户性质”只有一种,只进入培训用户操作界面。也就是说,七种不同的用户将从同一登录页面进入不同的操作页面。因为篇幅限制,系统的其它顺序图此处从略。

状态图是类图的补充,借助它可为单个类或对象的动态行为建模,一个类或对象的所有可能状态以及事件发生时状态的转移条件,在状态图中能够清晰、明确地看到。一般只对有多个状态并且行为受外界影响而发生变化的类绘制状态图,而不必为每个类绘制状态图Ⅲ。本系统中培训班级具有多个状态,如图5所示。从图中可以清楚地看出培训班级在整个生命周期的全部状态,以及什么事件触发状态的转换。任何一个培训班级从申报班级招生开始,总处于其中某一状态,直到培训完全结束成为历史状态为止。

2 结束语

使用UML进行软件分析设计主要是建立系统的功能模型、静态模型和动态模型。应用UML的用例图、包图、类图、顺序图、状态图等能恰到好处地从这三个方面描述待开发的软件系统。特别需要说明的是,使用UML建立的系统模型,结构紧凑,模块清晰,功能明确;并且在用例图和顺序图的构建过程中,用户大量参与了系统的结构、流程和界面设计,这使得系统的用户能够很自然地接受整个系统的概念设计,保证了系统的生命力。目前该系统已在浙江省部分市投入运行,运行情况良好。实践证明,使用UML进行分析设计可以提高系统的开发效率和维护成本。

上一篇:契约对重构中行为保持的作用 下一篇:一种基于消息槽的K资源互斥算法