面向教学软件的RUP改进模型的设计研究

时间:2023-06-12 19:48:02 公文范文 来源:网友投稿

[摘要] 在深入分析统一软件开发过程(Rational Unified Process,简称RUP)模型中的核心工作流及其迭代开发模式的基础上,针对当前教学软件开发模型中所存在的一系列不足之处,提出一个面向教学软件的RUP改进模型来指导教学软件的开发过程,并予以实际应用。改进后的模型把教学软件的特点与RUP模型中“用例驱动、迭代开发、架构设计为中心”的软件工程过程思想紧密地结合起来,设计出领域分析、需求建模、教学设计、系统设计、测试、软件评价等教学软件开发中特有的关键活动,并为其提供必要的准则及指导,同时建立起清晰的过程结构体系。最后把RUP改进模型运用到一个实际的教学软件项目开发实例中予以实现,取得良好的效果。

[关键词] RUP; 教学软件; 改进; 模型

[中图分类号] G434[文献标志码] A

[作者简介] 余久久(1979—),男,安徽合肥人。讲师,硕士,主要从事软件工程、计算机教学研究。E-mail:yjjyjl@163.com。

一、引言

统一软件开发过程(Rational Unified Process,简称RUP)模型是一个重量级的二维软件开发模型,如图1所示。[1]横轴反映软件开发过程的时间维,是过程展开的生命周期特征。[2]

初始阶段、细化阶段、构造阶段与交付阶段这四个阶段依次顺序体现出开发过程的动态结构,每个阶段结束时通过技术评审来确定是否进入下一阶段。模型的纵轴以内容来组织相应的逻辑活动,包括软件开发及项目组织管理所涉及的九个核心工作流(六个过程工作流和三个支持工作流),体现开发过程的静态结构。重复和迭代贯穿RUP模型的整个过程,支持用例驱动、迭代和增量式开发过程及以基本架构为中心是其三个显著特点。

这一复杂和详尽的流程框架,没有一个实际项目能使用RUP的全部内容,制定针对具体项目的专用开发流程是项目开发者必须考虑的问题,这套“大而全”的开发过程也缺乏对中小规模软件目标的支持。[3]对于运用在特定行业领域、需深刻体现出行业背景特点的软件系统的开发过程,完全照搬RUP是不适用的。所以,近些年针对实际开发项目特点对RUP模型进行有效裁剪或改进的活动已成为国内外学者的研究热点。

二、教学软件的特点

(一)教学软件的定义

教学软件指计算机辅助教学使用的程序或软件,通过计算机呈现教学内容、结构和教师教学意图,指导和控制教学活动,接受学生的要求与回答,存储有关教学资料进行教和学的活动等。[4]在相应软件环境下运行,由某种格式的计算机可执行文件(如PowerPoint环境下运行的.ppt文件等)制作出来的多媒体课件、教师课堂上使用的教学辅助类软件、课外供学生使用的自学辅助类软件、网络课程学习系统等也属于教学软件的范畴。[5]学生是软件使用者的主体。

(二)特点分析

不同于普通商业性软件,教学软件从反映内容层面看,把教师教学理论与学生学习认知心理结合起来,针对教学目标及学生特点,合理选取与设计教学信息并进行有机组合,从而形成并优化教学结构及教学资源。开发过程中除了实现软件自身功能属性(包括软件的可靠性、可维护性、可移植性等各种质量属性)之外,尤其具备三方面特点:

1. 教学设计策略

作为学生的“学习环境”或“认知工具”,教学软件表面上体现出系统功能模块的设计与开发,实质上蕴涵着以符合学生相应认知心理、思维习惯和学习需要的教学目标分析与设计、学习过程的设计、教学软件内容的组织等。[6]所涉及的学习信息的选择与组织、教学案例程序、学习导航、问题设置等方式需要反映出教师相应的教学策略和教学过程。从教师角度看,软件中所蕴含的教学设计策略将以细微的细节体现,比如软件界面的布局、教学内容主题目录的排列方式、各浏览页面间的位置关系等都可能对学生学习效果产生影响。

2. 教学软件评价过程

教学软件评价即依据软件的教学目标对教学过程及结果进行价值判断并为教学决策服务的活动,是研究教师的教和学生的学的价值的过程。[7]不同于对软件自身功能实现方面的评测,而是对软件中所特有的教学因素的评价过程。

教学软件评价主要体现在教学设计(教学过程与活动设计是否合理、媒体呈现方式是否科学、软件承载的知识内容是否符合教学要求等)和教学使用(软件使用环境是否稳定、作用效果是否明显等)两个方面。[8]总之,从软件设计者角度来看,软件教学评价过程有助于发现问题,调整设计开发方向,提高开发质量;从使用者角度来看,该过程可以为其选择合适的教学资源,激发学习兴趣,提高学习效率。

3. 人机交互

人机交互也是教学软件所具有的重要特点及优势所在。用户与软件之间传递信息是双向的,用户通过交互界面进行人机交互作用,软件的交互界面成为用户和计算机进行信息交换的“走廊”。人机交互需要反映出教学软件的易用性、及时响应性等特点:如操作软件简单便捷、符合人们使用习惯;使用过程中尽可能地减少系统接收操作的响应时间;通过设计时间运行进度条、时间倒计时等方式提示用户等待时间等。

三、当前教学软件开发模型的不足之处

教学软件亦需要借助软件开发模型来指导其开发过程。近些年,国内已有学者对其特点进行研究,指出教学软件的开发历经反复迭代过程,适合采用原型或螺旋模型开发方法。其中较为典型的有:图2所示的三重螺旋开发模型;[9]图3所示的原型开发模型;[10]图4所示的原型与螺旋相结合开发模型。[11]

现有的教学软件开发模型中尽管体现出原型或阶段迭代的开发思想,大体包含教学设计、系统设计、多媒体元素的制作、编辑与合成、测试等几个关键步骤。但是以上模型均存在一些不足之处:(1)过多强调的是软件中的教学素材、媒体元素的制作或编辑流程,缺乏整体上对软件的体系结构建模。(2)模型过于笼统,未能形成一套完整的软件开发过程全框架。(3)体现不出教学设计环节中一些核心活动(如人机交互设计、界面设计等)。(4)教学设计和软件工程活动相互间联系不明确。(5)尽管强调了开发后期产品的测试过程,但是重要的教学软件评价活动被完全忽视。(6)开发组织的职责或任务没有被明确分派,缺乏软件过程活动中所生成的主要工作制品等。

四、教学软件RUP模型的改进方法

(一)改进过程所遵循的原则

应用RUP关键之处在于根据项目自身特点,结合实际对其“量体裁衣”。但是,改进不等同于随意地裁剪与去除RUP的迭代阶段或工作流。我们遵循“用例、迭代式开发和分层架构是RUP改进过程所不可缺少因素”的思想,[12][13]主要采取下列四个原则指导对RUP模型的改进方法:(1)迭代开发思想始终贯穿于软件开发全过程。(2)系统从需求至测试阶段都坚持对用例的使用。(3)依据项目规模特点制定开发过程所需的工作流,确定工作流所产生的工件。(4)在充分考虑到架构与风险关系的同时,注重精简架构设计。

当然,改进过程中有关候选架构与严重风险的缓解、架构基线等可以在哪一个阶段哪一个工作流中完全建立起来等一系列问题也是需要考虑的。[14]

(二)RUP改进模型的设计

教学软件开发要考虑软件的教学因素,以教学设计为基础,结合RUP思想,我们对RUP模型进行相应改进。改进后的模型保留用例驱动、迭代开发和架构设计为中心的特点,但是把初始、细化、构造与交付四个阶段的迭代周期数目划分为1,2,1,1。合并与修改了部分工作流:由于实际开发项目规模较小、业务流程简单以及开发迭代规模不宜过大的特点,把原RUP中的商业建模工作流,变换成对特定的软件教学领域分析工作流。基于教学软件所具备的教学属性与系统自身功能实现属性两方面因素,把原RUP中的分析和设计工作流分解成需求与设计两个工作流,需求工作流完成对软件建模活动,设计工作流同时进行教学设计与系统设计的并行活动,通过细化阶段的两个迭代周期完成。改进后模型根据系统开发风险较小、项目团队规模不是太大的情况,适当简化了配置管理、项目管理、环境管理三个支持工作流及所产生的文档。每个迭代周期并行展开领域分析、需求、设计、实现、测试、实施、配置管理、项目管理、环境管理共九个工作流,见表1。

(三)RUP改进模型的过程工作流

1. 领域分析

领域分析在初始阶段通过一次迭代完成对教学软件类型及所适用领域特征的分析过程,包括教学软件类型分析、教学目标分析、软件使用者特征分析三方面活动。

教学软件类型分析是确定软件教学需求的重要依据,包括对软件内容和软件形式两个层面的分析。内容上指教学软件设计中所涉及的若干要素方面的分析,例如人机交互、学习活动、仿真与控制设计、评测与反馈设计等功能设计方面要素的分析;形式上指软件对使用者的感观效果和影响,主要是软件的界面布局、色彩格调、页面导航、媒体要素组合等方面,激发使用者使用软件的兴趣。不同的内容与形式的二维组合和不同要素的组织方式是决定不同类型教学软件的依据,如:演示型教学软件、学习辅助型教学软件、练习评测型教学软件、实验模拟型教学软件等。不同类型的教学软件以不同的方式、各自不同的优势对教与学的过程提供有效的支持。[15]

教学目标分析建立在确定教学软件类型的基础上,有的放矢分析该类型教学软件中所涵盖教学总体方向,学习内容的选择、教与学的活动设计、教学策略和教学模式的选择与设计、学习环境的设计、学习评价的设计等,这些都围绕教学目标为依据展开。

使用者特征分析指软件开发前充分分析软件使用者自身状况,包括对使用者智力方面因素(学习起点水平、认知能力、认知发展特征等)与非智力方面因素(兴趣、秉性、情感、性格等)的分析。[16]信息化环境下对使用者的计算机操作技能或使用能力进行充分的分析与评估也是对使用者特征分析的重要组成部分,为软件人机交互因素提供设计依据。使用者特征分析活动有助于为后面软件设计活动中有关教学活动的设计、教学媒体的选择与编辑等教学因素提供指导。

2. 需求

软件建模是软件需求活动中的重要环节,建模即“把问题从问题领域转移至解决领域”的过程,是用户与开发人员之间最主要的沟通渠道。RUP改进模型中同样强调软件建模的重要性,在细化阶段通过两次迭代实现软件教学需求建模和系统需求建模两个过程。

有效识别和分析教学需求,建立教学软件的业务模型是解决教学目标、学习者模型、教学策略、教学过程等问题的途径。目前有关教学软件业务模型的建模主要有IEEE LTSC提出的学习技术系统体系结构模型(LTSA),IEEE提供的LOM模型、美国ADL研究机构提出的SCORM模型等一系列学习资源与过程的信息模型、荷兰Twente大学提出的学习系统建模方法等。[17][18]由于本文中的建模活动只是作为RUP改进模型的一条工作流,所以在此不讨论现有建模模型的优缺点。这里作者采用了把教学设计与面向对象建模合为一体的“面向对象—教学设计”的建模方法作为教学软件的建模方法。[19]宏观上以教学应用为驱动的建模方法,从不同层次、多个视角描述系统总体架构,如图5所示。

教学应用视图包括教学用例模型,以实现教学需求的获取。教学设计视图包括运用教学软件设计方法分析系统获得的知识、资源、过程等教学逻辑模型,反映系统的业务逻辑与规则。[20]系统设计视图包括系统数据模型、交互界面等系统设计模型。教学组件视图包括了系统开发组件、接口模型。分布配置视图从软件的安装实施角度建立起软件的部署模型、配置模型。

“目标层次化、教学设计、系统设计、组件分布设计”是教学软件建模过程的关键环节,建模过程如图6所示。[21]其中教学设计侧重对软件的教学因素分析,系统设计侧重于软件功能体系实现的设计。教学软件通过这两个阶段的不断迭代与精化,共同完成建模过程。

3. 设计

教学设计与系统设计是教学软件设计活动中的两大重要组成部分,在RUP改进模型的细化阶段通过两个迭代周期并行完成。

教学设计即运用系统方法分析教学问题和确定教学目标、建立解决教学问题的策略方案、试行解决方案、评价试行结果和对方案进行修改的过程。教学设计内容由教学内容设计、教学策略设计、媒体展现设计与教学评价设计组成。教学内容设计即在教学内容分析的基础上解决教师 “教什么”、学习者“学什么”的问题。教学策略设计主要解决教师“如何教”和学习者“如何学”的问题,为实现某一教学目标而制定的、付诸教学过程实施的整体方案。媒体展现设计即根据教学策略设计的结果和教学过程中需要呈现出的各种媒体(图形、图像、声音、动画等)信息所具有的教学功能和特性加以选择,媒体展现设计的好与坏将直接影响教学效果。教学评价设计即根据教学软件的用途或功能,设计相应的软件评价指标体系。[22]

系统设计包括了软件的人机交互设计、数据库设计与网络结构设计。人机交互设计即制定用户与软件进行信息双向交流的方式、过程,科学的人机交互设计原则更受到用户的青睐,有助于提高学习兴趣。数据库设计即设计并优化软件数据库逻辑结构与物理结构,满足用户信息管理需要的数据操作要求,支持系统开发与运行。网络结构设计确定软件基于网络的方案(通信介质、网络操作系统、网络协议),架构网络计算模式,如客户端/服务器(C/S)模式、浏览器/Web服务器/数据库服务器(B/W/D)模式等。

4. 实现

实现工作流贯穿RUP改进模型的细化、构造与交付三个阶段。在细化阶段,通过两个迭代周期分别完成教学软件所呈现出媒体元素的编辑与合成、软件开发集成工作。通过适合的媒体开发工具合理地组织与链接设计好的媒体素材,在相应的软件开发集成平台上生成最终的应用程序,通过调试并运行成功。构造阶段围绕软件单元测试过程进行软件的各组成模块及接口的白盒测试工作,及时修复软件功能上的缺陷,确保功能实现无误。在交付阶段完成实现了一个可运行的软件产品的测试版本。软件代码实现及调试活动是模型细化阶段实现工作流的重点。在构造阶段与交付阶段,软件产品测试的主要工作分别是单元测试与集成测试活动。

5. 测试

与软件设计、开发一样,教学软件测试工作流同样遵循软件工程的方法。测试工作流同时贯穿于RUP改进模型的四个阶段,在初始阶段拟定软件测试标准,确定判定软件缺陷的准则。细化阶段根据所拟定的测试标准,制定详细的软件测试计划,选择相应的测试工具,并对易出错的功能模块设计相应的软件测试用例。构造阶段主要进行软件黑盒测试活动,测试重点着重于软件的外部功能及操作方面,如:界面导航测试、交互性测试、系统功能测试等。交付阶段的重点是进行教学软件评价工作,即依据事先设计好的评价指标在软件正式投入使用前在一定时间段及范围内进行产品试用,从而有助于及时发现问题,诊断错误,调整开发方向,提高软件质量。需要说明的是,教学软件不同的评价指标,对参与评价的人员将有所侧重。例如:优秀的学科教师评价教学软件内容设计指标;美学专家评价教学软件多媒体呈现指标;软件开发专家评价教学软件运行质量指标;使用软件的用户评价教学软件的使用效果指标等。

6. 实施

实施工作流也同时自始至终贯穿于RUP改进模型的四个阶段,描述为确保用户正确使用产品的一系列活动。主要工作是一系列软件技术文档和用户手册的编制。

(四)RUP改进模型的支持工作流

与RUP模型一样,改进后模型的支持工作流仍然包含项目管理、配置与变更管理、环境管理三个流程,用于软件开发项目管理工作,见表1。

支持工作流主要与软件开发规模有关,开发规模越大,项目管理、配置与变更管理和环境管理的工作量越大,需要生成并规范的文档就越多、越复杂。实际项目开发中,开发人员可以根据项目规模合并或缩减相关的文档,例如:对于规模较小、开发风险较低项目可以把项目风险管理计划书合并到项目计划书中等。

五、实例应用

“计算机基础应用”网络课程学习系统是作者参与开发的教学软件研究项目之一。该系统基于校园网络环境,文科院系非计算机类专业学生是主要用户。系统以注重学生认知规律的人机交互方式,通过各种诸如视频、文本、动画、音乐等多种媒体形态所呈现出的计算机基础知识的教学内容设计和为学生学习提供支持服务。

项目开发团队由不超过10人组成,成员分工明确,有项目经理、学科教师、软件设计师、程序员、美工编辑及软件测试人员等。依据用户需求,Project2003作为项目管理工具,Visio2007作为系统建模工具,系统开发工具采用ASP.Net 2.0标准,SQL-Server2007作为后台数据库管理工具。项目采用RUP改进模型开发,整个开发周期三个月。

(一)初始阶段

初始阶段主要在深入分析项目应用领域的基础上明确系统开发规模与用户需求,制定项目管理计划及软件配置与管理计划书、变更报告说明书等,建立起系统的评测标准和使用方案,评估潜在的风险。初始阶段的重点工作是对项目领域分析。

(二)细化阶段

项目在细化阶段根据实际需求选择了简单的C/S体系结构,采用图6所示的把教学设计与面向对象建模方法合为一体的“面向对象—教学设计”的建模方法作为系统建模方法。在此基础上,分别从教学设计与系统设计两个方面进行详细的迭代设计过程。与设计工作同步展开,测试人员依据软件需求设计制定出初步的软件测试计划和重要模块的测试用例,为软件产品的实际测试工作提供指导依据。该阶段结束前还需要完成制定软件编码规范与数据词典,为开发出可运行软件产品的测试版本提供规范。

作为计算机基础课程的学科教师,作者在项目中主要承担了细化阶段有关系统的教学设计工作。由于篇幅所限,这里主要介绍教学设计中的教学内容设计的过程。

教学内容设计即对教学课程中所包含的知识点进行策略性的组织,章(模块)是课程教学内容的组织单元,节(知识点)则是章(模块)的下一级组织对象。[23]每一章由本章概述、本章学习先决条件、本章所包含节(知识点)、练习、评价与总结六个部分组成。其中,每一章中又包含若干节(知识点),每一节中也要设计该节的内容、学习目标、难点重点、节学习先决条件及练习等。“本章学习先决条件”即确定使用者学习该章之前所具备的知识水平,“练习” 即从本章所在层级的目标为使用者提供必要的、能够反映出相关知识的运用方面的习题,“评价”可以设计为该章的学习反思、问卷调查以及电子档案等内容,“总结”的设计即为理清该章的组织结构,提炼内容。最后可以根据实际需要进行该章扩展资源方面的设计。

(三)构造阶段

构造阶段的主要任务是系统的开发与测试工作。在完成多媒体素材的编辑与合成操作以及系统经开发集成所生成的应用程序之后,按照事先制定好的测试计划和测试用例进行相应的测试活动,主要包括对系统的功能实现、使用操作、应用效果等方面的黑盒测试活动。测试活动中尤其注重系统所呈现出教学内容及是否具备创意方面的测试,检查所展示的内容能否激发使用者的学习兴趣,并作出相应的改进。

(四)交付阶段

软件评价活动在交付阶段进行,即系统正式投入使用前在实际的运行环境中开展。除了系统开发人员外,教育教学专家、学科教师、美工人员、学生等需要共同参与到软件评价活动。软件评价体系指标可以由教学内容、教学设计、技术实现、呈现艺术四部分组成,每一部分又可以分解成一系列二级评价指标,例如:教学设计可以分解为教学目标组织、教学交互设计、学习评价等;技术实现分解为系统架构设计、运行环境、操作性能等;呈现艺术分解为界面设计、媒体选择、美工效果等。系统交付前只有在实际环境中通过对其广泛的使用,才能有效发现所存在的内在不足之处与特点,从而进行更好的设计与完善。

以上各阶段结束时,用户代表、第三方技术专家与项目组人员都参与了项目评审过程。该系统遵循RUP改进开发模型,规范了项目开发与管理流程,在交付期内顺利完成。系统运行期间基于实际环境与用户要求,项目组又对其进行两次进化过程。目前该系统在试点院系进行了实际应用,反映良好,目前考虑进一步推广使用。

六、结束语

本文从对RUP模型的特点分析着手,结合教学软件项目自身特征,对模型进行相应改进,从而更好地服务于教学软件开发全过程。RUP改进模型针对教学软件的一些关键的、特有的开发活动提供了必要的准则与指导,并建立清晰的过程结构体系,从而为教学软件开发过程提供了较大的通用性。

[参考文献]

[1] Jacobson I,Booch G,Rumbaugh J. 统一软件开发过程[M].北京:机械工业出版社,2002.

[2] 何晓蓉.软件工程与UML案例解析[M].北京:中国铁道出版社,2010.

[3] 毛力,须文波.基于RUP的J2EE应用建模研究[J].计算机工程与设计,2007,28(4):852~854.

[4] [8] [15] [22] [23] 余胜泉.教学软件设计指导手册[M].北京:清华大学出版社,2011:436,129,436,271~273.

[5] 方海光,任剑锋,陈蜜.教育软件工程框架的构建[J].计算机科学,2009,36(1):29~33.

[6] 黄少颖,刘美凤,张霞.教学软件需求分析有效实施的指导原则研究[J].现代教育技术,2007,17(3):10~12.

[7] 教学评价[EB/OL]./教学软件评价/教学评价_百度百科.htm,2010.

[9] 刘新阳,张从善,常淑娟等.关于新型教学软件开发模式的构想[J].中国电化教育, 2003(5):65~67.

[10] 谷震离.多媒体教学软件原型法开发模型研究[J].计算机工程与设计,2006,27(10):1828~1830.

[11] 李为民,张军征.教学设计与软件工程结合的教学软件开发模式[J].现代教育技术,2009,19(7):49~52.

[12] 赵艳.RUP过程裁剪在组卷系统中的应用[J].洛阳师范学院学报,2008(5):51~53.

[13] 王建,冯伟森,李旭伟等.基于UML和RUP的中小项目的设计和实现[J].四川大学学报(自然科学版),2009,46(4):935~938.

[14] 翁楠.RUP在信息系统中的开发研究[D].大连:大连海事大学,2006.

[16] 学习者特征分析[M/CD].教育技术培训,2008.

[17] IEEE[DB/OL].https://ltsc.ieee.org,2000.

[18] ADL[DB/OL]..cn/quanguogaoxiao/show2.jsp?informationid=20101201113

1269064.

基金项目:2012年安徽三联学院科研基金项目“教育软件测试过程模型的设计研究与实现”(项目编号:2012011 )

推荐访问:教学软件 模型 改进 面向 研究