【摘要】随着人类社会的发展,要求每个紧跟时代的人都要不断的进行自我提高。因此,学习与再学习始终伴随着我们,其中有关的培训机构有着为可替代的作用,在这种形势下,如何更好的对培训工作进行管理,就成了我们需要解决的一个问题,因此,开发一套完善的培训管理系统就成不可少了,本文介绍了在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++)中属性及操作的公有行及私有性,类/对象的接口就是它的属性及操作,而私有部分则是操作的具体实现。