快速原型模型在学生选课系统中的应用
2020-10-13肖建芳
肖建芳
(汕头职业技术学院计算机系,汕头515041)
0 引言
快速原型模型(Rapid Prototype Model)又称为原型模型,是软件开发模型中的重要开发模型之一,使用快速原型模型进行的软件开发方法称为快速原型法。快速原型法是一种以计算机为基础的系统开发方法,它首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。原型就是模型,而原型系统就是应用系统的模型,它是待构筑的实际系统的缩小比例模型,但是保留了实际系统的大部分性能。这个模型可在运行中被检查、测试、修改,直到它的性能达到用户需求。
1 快速原型模型的适用范围[1]
快速原型模型能更好地满足用户实际需求,缩短开发周期。要获得更好的软件质量,必须从多方面考虑是否选用快速原型模型。
首先,从用户需求方面考虑,如果用户需求模糊,只有一个需求的大方向,尤其是对系统的详细需求不明确或经常更改需求,快速原型模型是能让用户尽快明确需求并满意的首选。其次,从软件逻辑结构方面考虑,快速原型模型适用于拥有大量数据信息的管理信息系统,不太适用于基于大量算法的系统。再次,从开发时间考虑,如果系统开发时间紧迫,或用户急于看到可运行系统,快速原型模型也是首选,因为能让用户尽早体验系统原型。最后,从项目风险上考虑,如果是风险较大的项目,例如项目涉及较多新技术或市场前景具有较大风险,宜选用快速原型模型尽早规避风险。
2 快速原型模型的开发过程
快速原型模型是对以文档为驱动的瀑布模型的强有力的补充,它的技术特点是不需要事先准备各种开发文档,并将用户纳入开发团队,随时与用户保持沟通,能够适应用户需求的变化,支持需求的渐进式完善和确认,在需求复杂,动态变化的软件系统开发中尤其适用。
快速原型模型的核心思想是:在软件开发的早期快速掌握核心需求,按需求快速开发一个可运行的目标系统软件模型,让用户使用并提出修改意见,开发者根据用户反馈进行修改和完善后,再次交由用户使用,直到用户满意则最终产品实现。原型的功能往往是最终软件功能的一个子集。原型的主要作用是验证用户的功能需求,在用户使用后获得用户的真正需求。在系统概要设计和详细设计的过程中,也可以用原型验证某些关键算法。快速原型模型的开发过程如图1所示。
图1 快速原型开发过程
3 快速原型模型在学生选课系统中的应用
学生选课系统从开始进行需求分析到系统正式投入使用,时间跨度不到3 个月,教务部门对于系统的部分功能需求及细节不明确,快速原型模型成为该系统首选。在组建合理的开发团队后,使用快速原型模型开发学生选课系统分成以下步骤:快速需求分析并构造原型、用户测试原型并反馈、修改和完善原型系统。
3.1 组建开发团队
该系统的开发团队由计算机系教师和相关教务人员组成,对学院的教学管理流程及学生选课系统的各种需求非常熟悉,开发人员能够迅速获得系统的核心需求并快速构造出可用的系统初级原型,满足了快速原型开发的前提。团队成员及任务分工如表1 所示。
表1 开发团队主要成员组成
该系统的开发团队是一个交流方便的团队,所有成员都有开发者和用户双重身份,系统开发过程中,共同参与、相互交流共同完成系统的设计与开发。
3.2 快速需求分析并构造原型
学生选课系统集成了课程申请、审批、学生选课、选课结果统计、学生课程管理、成绩上传等多个功能模块。根据权限设置,将系统划分成三个子系统:学生子系统、教师子系统和管理员子系统。
学生子系统主要功能模块包括:个人信息管理、密码修改、个人选课管理等。教师子系统主要功能模块包括:个人信息管理、选课在线申请、选课成绩管理、本人课程管理等,如图2 所示[2]。
图2 系统功能模块设计图
管理员子系统是系统最重要的部分,功能也比较多,功能模块包括:校区管理、系别管理、专业管理、班级管理、教师管理、学生管理、选课申请管理、在选课程管理、班级选课管理等,现将管理员子系统的功能模块单独列出来,如图3 所示[2]。
由于开发团队具有开发者和用户的双重身份,熟悉教学领域,主要开发者可以确定教师子系统的所有需求,经过与相关教务人员及学生代表沟通后,可以明确学生子系统和管理员子系统的主要功能和绝大部分细节需求,从而可以快速开发出具有基本功能的初级系统原型模型。
该3×750 t/d垃圾焚烧发电厂设计厌氧进水量800 m3/d。参照2018年1—6月该垃圾焚烧发电厂实际运行数据,渗沥液原液、处理后浓缩液、沼气产量、污泥产生量见表3。
3.3 用户测试原型并反馈修改
系统在设计过程中采用快速原型模型,先了解系统核心功能及需求,开发出管理子系统的初步原型,移交教务人员测试并提出修改建议和新的需求,在此基础上又开发出第二版已经实现管理子系统基本功能的系统原型,再次移交教务人员测试使用,获得测试反馈后继续新版本原型的开发,直到用户对系统所有功能和操作都满意就可以确定完成主体开发工作,进入系统公开测试阶段。下面以快速原型模型在学生选课功能模块及班级管理模块中的使用为例说明该方法的具体运用。
(1)快速原型模型在学生选课功能模块中的原型完善
系统模块功能的细节在概要设计中往往被忽略,在详细设计时原型就发挥出其优势。需求分析阶段考虑不到的许多需求细节,使用原型开发法进行阶段用户测试时都被检测出来。在学生子系统设计过程中,开发人员在掌握核心需求后,快速开发出子系统的初步原型并移交用户测试。在学生子系统的“个人选课管理”功能模块中,学生一开始被设定可以选择任何已经通过审批的课程。用户(即教务管理人员)测试后提出需求:根据目前学院有异地多校区的实际情况,学生只能选择所在校区的开课课程;开发人员根据反馈改进原型后,用户又提出新需求:选课时不同课程班级要有不同的人数限制(教师开班时需要设置学生人数的上限和下限);开发者根据反馈信息进行修改,原型得到进一步完善,用户再次试用后又提出需求:学生选课数目要有限制,且需要为每门选课增加备注功能,学生参考备注进行选课。于是在一轮一轮的原型修改中系统功能逐步完善。
(2)班级管理模块中的原型完善
在管理员子系统的“班级管理”模块中,使用增(in⁃sert)、删(delete)、查(select)、改(update)等操作完成了基本功能完备的系统原型,用户使用后给出要增加以班级为单位限制班级选课门数、管理人员按需设置班级选课权限等反馈,开发者修改原型并移交用户使用后,用户又提出增加在“班级管理”模块中查看每个班级已经选课学生人数及名单和未选课学生人数及名单功能的需求,开发者再次根据反馈完善系统。
原型就是在用户一次次的反馈并根据反馈进行完善后慢慢成熟,成为最终的功能完善、用户满意的系统。
3.4 修改和完善原型系统
针对用户(教务管理人员、教师、学生)在试用过程中提出的反馈意见,开发人员迅速调整开发方案,对学生选课系统进行修改和完善,生成最终的软件产品交付用户使用。
4 快速原型模型的优点、不足及规避策略
4.1 快速原型模优点
4.2 快速原型模型不足及规避策略
首先,快速建立的系统结构加上连续的修改可能会导致产品质量降低。因为用户参与开发过程并不时改变需求,过多的修改使程序容易出现Bug 从而导致产品质量降低。当然,开发人员通过完善跟踪文档可以尽量减少这种情况,例如学生选课系统在每个原型建立时都有相应的文档说明,有效降低了出现Bug 概率。其次,因为用户可能随时更改需求,导致开发人员的工作量大大增加。用户每次需求的更改都需要对原型进行修改,界面和功能都可能发生变化,代码和数据库都相应要做出大量的修改。学生选课系统开发团队选择了使用母版页、助手类、存储过程、采用面向对象技术等前沿技术从而大大减少了工作量。最后,需求变化导致的数据库设计的变更给开发工作带来很大的麻烦。鉴于此,开发人员选择该开发方法时一定要注意扬长避短,最大程度地发挥快速原型模型的优势。
5 结语
使用快速原型模型开发产品的一个重要前提,就是要在尽量短时间内构造出原型。学生选课系统的开发团队比较熟悉教学领域,学生和教务管理人员意见反馈很及时准确,对问题的定义一直比较准确,所以原型完善得很快,也缩短了软件开发周期。
快速原型模型适用在B/S 构架上。B/S 构架网站的一个网页相当于一个功能模块,原型的建立相当于发布相应功能的网页。.NET 和SQL Server 技术的无缝结合在快速构造原型中也发挥了很大作用。为了提高页面的执行效率,选课系统使用了大量的存储过程,存储过程适用于模块化的程序设计,编译一次可调用任意次,减少了网络流量、提高了代码执行效率的同时也提升了系统的安全指数。