首页 > 范文大全 > 正文

基于PSP互动案例教学的研究与设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于PSP互动案例教学的研究与设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:为了培养高素质软件开发人才,针对如何改进教学方法和手段,阐述基于个体软件过程的互动案例教学模式,使学生通过案例学习软件生产过程,提高程序开发质量,控制、管理和改进他们的工作方式,逐步自我完善,同时提出正副互动教学案例的设计方法,培养学生追踪和评估自己的工作习惯,循序渐进地提高编程水平,从而真正成为一个成熟的软件开发者。

关键词:个体软件过程;互动案例教学;正副本案例;psp进化框架

0、引言

随着计算机的诞生,社会对软件开发也渐渐有了需求。我国一般将软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类,他们从事各个行业、各种软件的设计与开发工作。同印度等国家相比,我国高素质软件开发人员相对紧缺,因此高等院校有责任和义务填补这种人才需求缺口。

软件开发技术随着电子、通信和计算机技术的发展而不断变化。最初软件开发主要是程序设计与编码,软件规模小、参加的人员少,基本上属于作坊式的手工模式。随着计算机性能提高,软件规模增大,没有软件开发思想和理论指导的软件开发成本和进度难以估计,软件质量低,文档缺少,产品不可维护,于是北大西洋公约组织在1968年提出了“软件工程”,把“工程方法学”引入软件开发过程,指导软件的开发。后来人们在软件开发过程中定义了一系列任务框架,规定了完整软件开发各项任务的步骤,这就是“软件过程”,如Rational公司的RUP、敏捷过程、极限编程与微软过程等。再后来,为了提高效率,避免重复劳动,避免一切“从零开始”的软件开发模式,人们又引入了“软件重用”、“软件构件”等技术,进而形成软件体系结构开发的思想。

软件开发技术的进步和发展,对如何培养高质量软件开发人才提出了更高的要求。高校教师应该结合当今成熟的、先进的软件开发思想和经验设计合理的、积极的教学过程,把一些纯净的开发理念和技术最有效地传授给学生,让他们少走弯路,从而推动我国软件产业的快速良性发展。

案例教学的核心思想是学以致用。理论和实践完美结合的案例可以使学生更加轻松地跨越理论与实践的沟壑。笔者主要研究如何结合个体软件过程的思想来设计解决实际应用的案例并采用这些案例教学。

1、个体软件过程

为提高软件质量,便于软件生产的管理,美国的卡内基.梅隆大学软件工程研究所(CMU/SEI)提出了SW-CMM(CapabilityMaturityModel for Software)模型,为提供对其过程支持的具体知识和技能,CMU/SEI又先后开发了PSP(PerSonalSoftwareProcess)和TSP(TeamSottwareProcess)过程。

PSP是一个基于计划和质量的软件过程,从个体一级培养实施CMM所需的软件工程知识和技能,提供一种支持能力成熟度模型(CMM)的过程,以改进组织工作的个人规范,帮助软件工程师改进和评价自己的工作方式,培养他们把工程化方法应用到个体软件开发中,并提供详细的估计和计划方法,指导软件工程师按计划跟踪任务执行情况,利用已定义的过程来指导开发工作。

根据需求,PSP过程会制定一个计划脚本来指导软件开发工作,制定一个计划总结表来记录计划数据。软件工程师在工作过程中把开发软件的时间和发现的软件缺陷登记在“时间和缺陷记录表”中;工作结束时把上述记录的时间和缺陷数据填人计划总结表,最后把产品和完整的汇总表一起交付。PSP过程的流程如图1所示。

为提高个体能力,PSP提供了4个级别7个台阶的阶梯式进化框架,循环渐进地改进个体软件过程;并提供分析和度量的工具,使软件工程师了解自己的表现和潜力,从而提高技能,帮助个体能力成长与发展。个体软件过程的框架如图2所示。

该框架采用自底向上的方法使软件工程师明确过程改进原则,掌握有效生产出高质量软件的过程。PSP0个体度量过程用于建立个体过程基线,使工程师学会采集过程数据与使用各种表格,养成良好的编码标准,掌握软件规模大小的度量方法,提高过程意识和质量意识。PSP1个体规划过程通过对需求任务的分析与分解进行软件规模估计。PSP1.1规划任务和进程,同时对自己时间和进度进行评估,提高个人的评估能力。PSP2通过建立程序缺陷检查表、设计复查和代码复查来提高个体质量管理。PSP2.1提供了设计模板,指导设计过程和设计方法。PSP3把软件工程师在软件过程中获得的生产效率和生产质量延伸到大型的程序。

基于PSP互动案例学的研究设计主要采用PSP1框架,向下结合PSP0,向上结合PSP2设计案例,培养学生的软件开发能力,从而培养高质量软件开发人才。

2、互动案例教学研究

案例教学由哈佛大学创造并使用,要求授课教师将真实一典型的事实或者问题作为教学环境提供给学生,带领学生进行问题探讨和学习,提高学生分析问题与解决问题的能力。案例教学改变了传统以教师和教材为中心、以灌输方式为主导的从书本到书本、从概念到概念的教学模式。案例教学以实际应用为中心,以启发方式为主导,以开发学生的学习潜能为目的来充分调动学生的学习兴趣、学习的主动性和积极性。

软件开发类人才的培养更应该注重学生的实际动手能力、分析与解决问题能力的提高。传统的教学方式造成理论和实践脱节,学生对学习目的产生迷茫,总产生“我学习这门课能干什么?”的疑惑。很多学生学过多种语言后,却写不出有用的程序,更谈不上解决实践问题,毕业后找工作看到岗位要求“编程经验”就底气不足,望而却步。为解决这些问题,自2006年起我们就引入案例教学以提高学生的程序开发能力,并提出了三段式教学等研究成果。六年来涉及多门课程的案例教学取得了很好的效果,连续几年毕业生的毕业设计质量稳步提高,每年参加各类编程竞赛的人数和获奖人数都在上升。

案例一般由教师精选、设计并讲解其实现过程,学生主要是被动的学,难以发挥其主动性。为使学生真正体验软件开发过程,需要他们主动参与到案例从设计到实现的全过程,积累软件开发的“工作”经验,完成从学生到员工的平滑过渡。我们在案例教学的基础上又研究了“互动案例”教学法,得到学校“521质量工程”的资助。“互动案例教学”有一条主线和两条从线:“以应用为中心”的主线是选定社会需求量高及企业最为关注的项目案例;两条从线是:①选取教学“案例”正本,用于教师讲授软件开发的知识点,使学生“被动学”;②确定“案例”副本,让学生根据案例正本“主动”地设计,实现该案例。副本案例与正本案例“互动”,从内容到形式辩证统一,使学生们做到学以致用。

软件工程师还应具有良好的编程风格,能根据开发任务规划开发进度,估计程序规模,并采用TDD(测试驱动)开发技术,进行测试设计与测试执行。所以互动案例教学基于PSP过程,引入个体度量、个体规划和个体质量过程的概念,把计划制定、时间管理、缺陷管理、软件规模度量以及设计评审等内容纳入案例,全面培养学生的软件开发能力。

3、互动案例教学设计

基于PSP的互动案例教学重点是案例正副本的设计。正本案例从软件(程序)需求、概要设计、详细设计、编码、测试到集成等各个方面进行详细的设计和实现。我们走访了许多软件公司并和全国著名的培训公司如达内、师创等进行合作,结合实际项目选取学生熟悉的、易于接受的案例。案例设计采用PSP1的基本流程,并融入PSP0与PSP2的培养目标,做到新颖、实用以及目的明确。

互动案例设计步骤如图3所示。首先确定任务,这是案例设计的基础,不同课程确定不同的任务。下面以.NET框架下B/S架构程序设计为例讲解案例设计过程。WEB应用程序包括前台页面和后面的逻辑代码,比较流行的有电子商务、电子政务、OA办公等信息管理系统等。我们选取网上商城和教务管理系统作为开发案例,它们均来自实际的软件系统且贴近学生生活。针对教学要求我们做一些取舍,把大的任务分解成小的任务,每个小任务包含若干知识点,并由此设计时间管理、计划制定、缺陷管理、软件规模度量以及设计评审。系统可以分解为登录、查询等子系统,然后再逐步细化。

例如把登录子系统进行元素分解,具体到知识点可以分解为WEB控件的使用,如文本框、标签、按钮、图片控件;AJAX或微软VS的集成开发环境提供的一般处理程序(*.ashx)以及数据库编程等。具体子任务分解为:①登录页面,主要包括文本框、按钮等WEB元素;②用于验证码改变的一般处理程序;③基本类,如判断是否登录的类、数据库实体类等;④后台逻辑代码,即页面对应的隐藏代码;⑤CSS样式文件与js代码。然后对每个小任务的工作量(时间)进行估算,具体单位为分钟。表1是登录案例的任务分解情况。

根据估计结果进行任务设计,设计时间日志记录表用于记录时间的进度。整个过程按照图1的顺序设计,根据项目的进度表使用Gantt图公布项目的进展情况,为每个任务分配ID并对设计、编码、编译、测试和后期的处理跟踪,填写各项数据表。最后根据跟踪数据对整个案例过程进行度量分析,使用个人过程提供的各种表格,完成对编码阶段每小时引入缺陷数统计,测试阶段每小时排除缺陷数统计等,从而计算出过程效益。例如通过计算程序的缺陷密度,来衡量软件开发人员的个体成长过程。

上述正本案例讲授过程中尽量还原真实开发过程,以指导学生进行副本案例设计与开发。与登录案例相关的副本案例是论坛的注册界面设计,具体需求如下:论坛发帖或回帖用户需要注册成会员后才能进行,注册界面简洁美观,注册用户需填写用户名、注册密码、确认密码、电子信箱和验证码等,注册成功后进入论坛主页,并对电子信箱合法性进行验证,密码不能为空且不能少于6个字符。要求学生根据正本案例进行任务分解、计划设置,并管理自己的编码、测试等过程,对自己的工作进行度量评估。

4、结语

通过对信息系2008、2009级计算机科学技术专业的学生实施互动案例教学的效果分析可以得知:按照本案例教学的学生在编码规范、程序设计速度、代码缺陷率、时间管理、软件开发等方面明显优于没有采用本案例教学的学生。

基于PSP的互动案例教学过程设计主要涉及PSP0到PSP2并没有涉及PSP3阶段的个人循环过程,下一步研究将针对高年级的毕业实习和毕业设计开发出基于PSP3的互动案例教学,从而完善个体过程教学,使学生真正全面接受个体软件过程培训过程,达到软件开发人员的基本素质要求。