基于RUP的NIT在线学习系统研究与开发
2010-04-07于玉华
于玉华
(河北广播电视大学,河北 石家庄 050071)
基于RUP的NIT在线学习系统研究与开发
于玉华
(河北广播电视大学,河北 石家庄 050071)
统一软件开发过程RUP保障了在预定的进度和范围内完成高质量软件设计,它能够有效地降低成本、减少风险,更好地适应需求变化。NIT在线学习系统的开发,是以RUP思想为主导,通过需求捕获、用例驱动以及迭代和增量的过程完成的。
RUP; NIT; 用例; 迭代
一、引言
随着信息技术的不断发展,人类进入了信息时代,计算机作为信息时代的基本工具,已被广泛地应用于现代生活的各个领域,大大提高了我们的工作效率和管理水平。为了科学、系统地培养应用型计算机技术人才,教育部考试中心推出了“全国计算机应用技术证书考试”——National Applied Information Technology Certificate,简称NIT。NIT是一种以应用技术为主的计算机培训和技能证书考试,具有学习内容的科学性、学习过程的自主性、作业设计的实用性、证书的权威性等自身特点。NIT的教学模式,以“建构主义教学理论”为依据,以学生真正掌握计算机操作技能为目的,通过NIT培训,将赋予个人素质以全新内涵,极大地增强就业竞争能力,适合各种行业人员岗位培训的需要和个人的特定需求。
由于NIT自身特点,使得NIT自问世以来就受到人们的欢迎,参加培训考试的人数不断上升,发展非常迅速。不管从学习者的数量,学习者的类型,学习者的目的,还是从教育者的知识储备,知识更新速度等方面来看,现有的师资、设施以及传统的面授教学方式已不能满足大量学生同时学习的要求,限制了其发展速度,需要一种新的教育方式解决此问题。因此,为了方便广大NIT学生学习与考试,减少教师的辅导工作量,提高管理人员的工作效率,需要充分利用Internet技术,针对NIT学生的实际情况和NIT自身的学习特点,研究开发一个“NIT在线学习系统”。这对于克服NIT传统教学的困难,推动NIT的发展具有重要的意义。
二、RUP核心思想概述
软件开发过程是一个将用户需求转化为软件系统所需要活动的集合。统一软件开发过程——Rational Unified Proeess,简称RUP,是Ratoinal软件公司开发的软件工程过程,其目标是保障开发组织能够在预定的进度和预定范围内开发出满足最终用户需要的高质量软件产品。它汲取了面向对象的软件工程领域多年来的优秀研究成果,利用了新的可视化建模标准UML(Unified Modeling Language),是软件工程发展的新成果。相对于传统的线形瀑布模型,统一软件过程是螺旋形的,是用例驱动的。首先获得并实现了关键用例,由此建立系统的基本构架。再以此构架为中心,进行迭代开发,每一次迭代只开发部分用例,减少了复杂性,降低了成本。它对需求的变化有较强的适应性,能较早产生可运行的版本,及时地得到反馈,降低风险。
1.用例驱动
用例是用户与系统交互的动作集合,是系统执行的一系列有序的动作,对用户产生可观测的、有价值的结果,它获取的是功能需求。RUP是用例驱动的过程,用例不仅是一种确定系统需求的工具,它还能驱动系统分析、设计、实现、测试的进行,这意味着用例不仅启动了开发过程,而且用例驱动整个的软件开发过程,使整个开发过程浑然一体。
2.以构架为中心
软件基本构架是一个关于整体设计的视图,体现了软件的更为重要的特征。构架的产生与系统中的主要用例有较大关系,通过对主要用例的分析而形成系统的构架,而构架本身反过来指导系统的开发过程。用例和构架之间是相互影响、并行进化的。一方面,用例在实现时必须适合于构架;另一方面,构架必须预留空间以实现现在或将来所有需要的用例。
3.迭代和增量
RUP通过一系列的迭代和增量的方法来完成开发。将软件产品开发工作分解成若干小项目,每个小项目是指能导致一个增量的一次迭代。迭代式开发方法是一个不断降低风险的过程,在每一次迭代中,只做一部分获取需求、分析、设计、实现和测试的工作,选择风险最大的用例执行。因此风险在迭代过程中不断地被发现、被降低。
在RUP中,用例驱动、以构架为中心及迭代的增量开发是同等重要的,是RUP的三个关键技术。基本构架提供了指导迭代中的工作的结构,而用例则确定了开发目标并推动每次迭代。即具体的迭代工作,由用例来确定目标,在构架确定的结构上进行。缺乏这三个概念中的任何一个,都将严重降低RUP的价值。
三、基于RUP的NIT在线学习系统开发
1.系统需求分析
软件系统是为了服务于用户而出现的,因此,为了构造一个成功的系统,必须了解用户的需要是什么,并设法去满足这些需要。首先对NIT在线学习系统进行需求捕获,系统需求捕获是指开发人员通过实地调查并与用户的大量接触、与业务专家的深入沟通等方式而获取整个系统的需求信息。需求捕获阶段的主要成果是用例,可方便开发人员与用户进行沟通,使软件开发人员和客户之间在需求方面达成共识。正确地捕获需求,对于开发成功的系统并保持其长久的生命力是必不可少的。
NIT在线学习系统是一个针对NIT教学中自主订制教学任务的实时的、动态的、个性的和多元化的教学环境。NIT学生计算机基础水平不同,根据NIT的特点,应以建构主义理论为指导,充分发挥学生的自主性,应该由学生来主导学习进程、由学生决定如何学习、怎样学习,即由学生自主定制教学任务、自主选择教学任务。该系统要具有较高的数据安全性、通用性、可扩展性和稳定性,适合目前远程教育学习的要求,能充分发挥学生学习主动性和积极性,通过学生自主订制教学任务,为NIT教学过程中的学生和教师提供一个良好的交互式学习环境。
RUP是用例驱动的过程,表明开发过程是沿着一个流——一系列从用例得到的工作流前进的。用例被确定,用例被分析设计,用例被实现,最后用例又成为测试人员构造测试用例的基础。用例和系统需求紧密相联,通过对NIT在线学习系统需求的深入分析研究后捕获用例。NIT在线学习系统有学生、教师、管理员三个参与者。系统用例包括注册、登录、学习素材的下载练习、作业的上传、教学素材的上传、作业批改、在线辅导、用户管理等。用户注册需输入符合规则的用户相关信息,登录需输入正确的用户名和密码。
2.系统设计
(1)系统的体系架构。RUP强调软件开发是以软件构架为中心的,构架就是清晰提供整个系统结构的框架,也就是重要内容的逻辑组织和结构。一个良好的软件体系结构直接决定了软件的质量,因此在线学习系统的构架设计是系统设计的一个重要组成部分。目前网络系统的体系架构主要有两种模式:客户机/服务器模式(Client/Server)简称C/S和Web浏览器/服务器模式(Browser/Server)简称B/S。这两种模式各有优缺点,应用于不同的环境。NIT办学规模不断扩大,学生又分布于全省各地,NIT在线学习系统作为一种信息管理系统,应采用B/S模式来进行开发。B/S模式由客户端浏览器、Web服务器和数据库服务器三部分组成,客户端只是一个简单易用的浏览器软件,简化了系统的开发和维护,使用户的操作变得更简单,它可以在任何时间、任何地点、以任何接入方式实现跨平台的网络实时操作,易于扩展,能够满足大规模学生的学习需求,特别适用于网上信息发布,这是C/S所无法实现的。
(2)系统功能结构。根据系统实际需求,将NIT在线学习系统在功能上划分为在线学习子系统、教师管理子系统、系统管理子系统三部分。系统根据用户身份的不同将用户区分为教师、学生和管理员三种角色,分别赋予不同的权限,从三条不同的通道进入相应子系统。新用户首先要经过注册、身份验证后才能登录。系统用户不同,赋予的权限不同,登录的子系统不同,实现的功能也不同。通过这样一个严格的身份验证和不同权限的设置来保证系统的安全性,保护数据的安全性。
在线学习子系统用户为学生,主要实现学生的在线学习功能,包括边学边练、作业上传、资料下载、在线交流等功能,学生根据自己学习的情况有选择地下载学习,对于已经掌握的内容可以跳过,对于自己的重点难点可以多次重复学习,不再受课堂的时间、地点和教师等多方面因素的制约,根据实际情况能够自主定制学习任务。教师管理子系统用户为教师,主要实现教学管理功能,包括对学生的过程考核、作业评审以及课程资料上传、课程公告、在线交流等功能,每门课程的教师将该门课程每一个教学环节总结成一个个相对独立的教学任务,并将所需的素材说明一并传输到系统平台上,将来在使用这些数据时由学生根据需要有选择的获取,在线学习和下载素材可以同步进行,提高学生的在线学习效率。系统管理子系统用户为管理员,需保证系统运行的可靠性、可控性,主要实现用户管理、教学资源管理、系统维护、信息发布等功能,用户管理需根据不同的用户身份赋予不同的权限、设置不同的用户功能。
3.系统实现
在RUP中,实现阶段需将基于设计的结果,探讨如何使用源代码、脚本、二进制代码、可执行体等构件来实现系统。这一阶段的成果是系统实现模型,在实现模型中,通过配置图或组件图来描述系统的物理体系结构。组件图描述了组件及组件之间的关系,表示了组件之间的组织和依赖关系。配置图显示了基于计算机系统的物理体系结构。它着眼于系统的结点的类图,为系统中的物理结点、结点之间的静态关系建立了可视化的模型,并规定了构造的细节。
RUP认为系统的开发是一个迭代模型,每个阶段都经历从业务需求分析开始的各个步骤,每一个阶段又可以进一步分解成一次或多次迭代,每一次迭代只开发部分用例,逐步实现其他的用例,直到得到一个功能完善的系统。在NIT在线学习系统的开发过程中,同样遵循了这样的生命周期。采用了迭代和增量的开发方法,在项目初期较好地解决了风险问题,使整个项目进度良好,保证按时保质完成预定目标。
四、结束语
基于RUP的软件过程与传统的开发方法相比,使用迭代方法能够有效地降低风险,更好地适应需求变化;以用例驱动、架构为中心的开发使得开发人员能比较容易地控制整个系统的开发过程;从需求获取到系统实现,用例的获取,分析、设计和实现都具有可追踪性,保证了软件体系结构的稳定性,也提高了软件系统的可维护性。为规范管理软件开发过程,降低软件复杂性,减少软件开发风险,提高软件质量,提供了有效的途径。
[1](美)Ivar Jacobson,Grady Booch,James Rumbaugh著.周伯生,冯学民,樊东平译.统一软件开发过程[M].北京:机械工业出版社,2002.
[2]Per Kroll著.徐正生译.Rational统一过程实践者指南[M].北京:中国电力出版社,2004.
[3]王华胜,王停.面向对象的软件工程方法——统一软件过程[J].河北省科学院学报,2003,(2).
(责任编辑 靳荣莉)
2010-02-17
于玉华(1968-),女,河北无极人,高级工程师,主要从事信息管理及软件工程研究。
TP311.52
A
1008-469X(2010)03-0013-03