【摘要】随着人类社会的发展,要求每个紧跟时代的人都要不断的进行自我提高。因此,学习与再学习始终伴随着我们,其中有关的培训机构有着为可替代的作用,在这种形势下,如何更好的对培训工作进行管理,就成了我们需要解决的一个问题,因此,开发一套完善的培训管理系统就成不可少了,本文介绍了在Visual Foxpro6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发本系统的详细过程,从软件工程的角度进行了科学而严谨的阐述。
1.员工培训管理的软件在国内外的发展情况
近年来,有关员工培训管理的软件很多。但大部分是培训中介组织的一项面向企业的服务,而且还是一些网络版本。比如,在美国有ASTD---American Society for Training and Development、The Distance and Education Training Council Online、TCM’s HR Careers、Resource Software 、Safety Software & Computer Based Training Software Skills Testing Software等;在国内,网络学校及其培训管理软件比较盛行,如中国广播电视大学。真正由企业自身组织的员工培训,据调查的资料可知,到目前为止只有一些国外国企业以及在中国的跨国企业,拥有自己的员工培训管理软件,而且这些也只是作为企业其他软件的一个组成部分出现,如摩托罗拉的员工培训管理就是其人力资源管理软件的一个组成部分,并且还只实现了员工个人信息管理很小的一部分功能。
在国内企业中,尽管领导们都认识到员工培训的重要性,也有一些企业采取了一些有益的措施。他们购买了计算机,也建立起自己的内部网,对员工培训管理采用了一些简单的应用程序,但离使用计算机系统和专门软件来管理还有一段距离。综上所述,无论在国内外,目前还没有一套比较完善的、专门的、适用于各种企业自己使用的企业员工培训管理软件。因此,研究开发出一套比较通用、功能比较完善的企业员工培训管理软件,力求在这一领域取得一些新的成果.
2.面向对象的开发
2.1 面向对象的基本概念
在了解面向对象的开发方法之前,应先了解一些面向对象的基本概念。
1. 什么是面向对象
面向对象有多种不同的解释,本文采用Coad和Yourdon给出的定义:“面向对象=对象+类+继承+通信”。如果一个软件系统是使用这样4个概念设计和实现的, 则可以认为这个软件系统是面向对象的。一个面向对象的程序的每一成分应是对象,计算和控制是通过新的对象的建立和对象之间的通信来执行的。
2. 对象(object)
对象是面向对象开发方法的基本成分。每个对象可用它身的一组属性和它可以执行的一组操作来定义,属性一般只能通过执行对象的操作;来改变。操作又称为方法或服务或函数,它描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。这里,所谓的消息就是一个对象与另一个对象的通信单元,是要求某一个对象执行类中定义的某个操作的规格说明。发送给一个对象的消息定义了一个操作名和一个参数表(可能是空的),并指定某一个对象。而由一个对象接收的消息则调用消息中指定的操作,并将形式参数与参数表中相应的值结合起来。接收对象对消息的处理可以会改变对象中的状态,即改变界说对象的属性,并发送一个消息给自己或另一个对象。可以认为,这种消息的传递大致等价传统开发方法中的函数调用,但执行操作的目的是想修改相关的对象的内部状态。
对象可以是物理对象,还可以是任一类概念实体的实例。比如桌子是一个实体对象,操作系统中的进程、室内的照明的等级、在一个特定审判中律师的作用也是对象。
3.类 (class)
类是一组具有相同数据结构操作的对象的集合。类定义可以视为一个具有类似特性与共同行为的对象的模版,可以来产生对象。在一个类中,每一个对象都是类的实例,它们都可使用类中提供的函数。
4.继承(Inheritance)
继承是使用已存在的定义作为基础建立新定义的技术。新的类的定义可以是既存类所声名的数据和新类所增加的声名的组合。新的类的复用既存的定义,而不要修改既存类。因为这种类的一部分已经实现和测试,故开发费用较少。即存类可当作基本类来引用,则新的类相应的可当作派生类来引用。
5.封装( Encapsulation)
封装是一种组织软件的方法。它的基本思想就是把客观世界中联系紧密的元素及相关操作组织在一起,构造具有独立含义的软件实现,使其相互关系隐藏在内部,而对外仅仅表现为与其他封装体的接口关系。
封装的目的是信息隐藏。不过,信息隐藏是原则,而封装是针对这一原则的实现。
为具体说明这一概念,以下举一个实例。为了定义一辆自行车,首先要定义自行车类,它的属性有frame size(车生尺寸)、wheel size(车轮尺寸)、gear(齿轮)、material(材料)和brand(牌子)。再定义自行车的操作;shift(变速)、move(移动)、repair(修理)。
Bicycle Class:
Attributes:
frame size
fhee l size
gear
material
brand
Operation:
shift
move
repair
这样,整个自行车的描述就由一个类封装起来,要声明一个自行车对象my bike是只需写Bicycle my bike。
如果不考虑某些语言(例如c++)中属性及操作的公有行及私有性,类/对象的接口就是它的属性及操作,而私有部分则是操作的具体实现。
6. 多态性(Poly morphism)
在程序设计语言中,多态性指相同的语言结构可以代表不同类型的实行进行操作,这里的实体包括变量及函数或过程的变元等。
2.2 面向对象分析
面向对象分析OOA(object-oriented analysis)是软件开发过程中的问题定义的阶段。这一阶段最后得到的是对问题论域的清晰、精确的定义。面向对象分析为论域分析和应用分析。论域分析建立大致的系统实现环境,应用分析则根据特定应用的需求进行论域分析。
2.3 面向对象的设计
面向对象分析和面向对象设计之间有密切的衔接关系,从面向对象分析到面向对象设计是一个逐渐扩充模型的过程。分析处理是以问题为中心的,可以不考虑任何与特定计算机有关的问题,而面向对象设计则把我们带进了面向计算机的“实地”开发活动中去。通常,面向对象设计分为两个阶段:高层设计和低层设计。高层设计包括像用户界面那样的问题解决部分。低层设计集中于类的详细设计阶段。通常,利用面向对象设计得到的系统框架如图2-1所示
图2-1 面向对象导出的系统结构
3. 员工培训管理系统初步调查与可行行分析
3.1 确定员工培训管理系统的边界
从广义上讲,系统是个部分的简单组合,它们相互作用,以达到中目的。任何一个系统都是由比它更小的系统组成的,同时它本身又是较大系统的一个组成部分。因此该系统既是比它的小系统的生存环境,又是比它大的系统的一个组成部分,为了达到特定系统的目的。该系统需要与其周围环境,即与系统边界外的任何实体交互作用。实现这一个目标的途径就是确定系统的边界。
企业员工培训管理业务只是企业经营管理业务的一部分。它的生存环境就是企业,它要与企业其他业务进行交互,才能更好的实现它的功能,因此,要设计出一个功能完善的员工培训管理软件,就必须明确员工培训管理业务的边界。这样,既能避免重复性开发,又能更好地针对该业务运行专业开发。
划分企业员工培训管理业务的边界,遵循以下原则:
(1)目标明确。在信息系统中的没一个子系统都是为某一个目标而运行的。系统的边界是否合适,系统内部所有服务是否都为共同的目标而存在,将直接影响到系统的整体功能。员工培训管理系统的目标就是要实现一个节省人力、能使管理流程科学化的系统。
(2)结构清晰。系统与系统之间层次要清楚,比较要分明,这样便于实现总目标要求,使信息交互流畅。
(3)系统与边界界面要清楚。系统有了明确的边界,外界就可以通过输入接口控制系统的行为,有可以通过输出接口观测系统的行为。 根据以上原则所做出的本系统的边界如图3-1所示 |