李博文 贾俊威 许杰
武汉东湖学院 湖北省武汉市 430000
摘要:软件工程课程设计要求学生采用“项目小组”的形式,每个班级安排一名指导老师,指导老师指导学生的选题,解答学生在实践过程中遇到的相关问题,督促学生按计划完成各项工作。每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目,项目的选定必须考虑“范围、期限、成本、人员、设备”等条件;项目经理负责完成“可行性研究报告”、制定“项目开发计划”、管理项目,并根据项目进展情况对项目开发计划进行调整。每个项目小组还必须按照给定的文档规范标准撰写课程设计报告。最后的考核成绩由指导老师根据项目小组基本任务完成情况、答辩情况、报告撰写等情况综合评定。
关键词:计算机专业;软件工程课程设计;教学模式;
一、软件工程课程设计的教学目的
软件工程课程设计是为计算机专业软件工程课程配套设置的,是软件工程课程的后继教学环节,是一个重要的、不可或缺的实践环节。教学目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件初步设计、软件详细设计、软件测试等阶段的方法和技术。该课程的设计,我们力求使学生较好的理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队协作精神,培养学生对技术文档的编写能力,从而提高软件工程的综合能力,和对软件项目的管理能力。
二、教学模式的改革
当今软件开发技术发展迅猛,新技术不断涌现,一些开发技术被逐步淘汰。因此,在进行课程设计时,我们也应该与时俱进,让学生通过该门实践课程,了解到当今主流的开发技术,熟悉相关的开发平台。在以往的教学过程中,我们都是基于c,s(客户一服务器)模式开发信息管理系统,随着因特网技术的发展,出现了B/S(浏览器朋艮务器)模式,在B/S结构下,客户端不需要安装其他软件,通过浏览器就能访问系统提供的全部功能,并且维护和升级的方式简单、成本低,已经成为当今应用软件所广泛使用的体系结构,因此,我们在后续的教学过程中选择了基于B/S结构开发WEB应用程序。开发WEB应用的两个主流平台是J2EE平台和.NET平台。J2EE平台使用Java语言,NET平台使用C#语言,这两门语言都是面向对象的,我们安排在第六学期以选修课的形式集中学习这两门语言。
虽然系统规模较小,但麻雀虽小,五脏俱全。在开发过程中,我们要求学生采用以上多平台进行开发,采用MVC设计模式和多层架构来实现,锻炼学生的设计能力。另外,采用团队开发的形式锻炼学生团队协作的能力。
三、教学改革的措施
(一)专业知识的综合应用
学生已经学习了c语言程序设计、面向对象程序设计、数据库原理与技术、数据结构、Java语言程序设计、C#程序设计、WEB数据库开发、软件工程等先修课程,我们提出的多平台WEB应用开发新模式就是将这些专业知识进行综合应用,使学生在系统设计开发过程中将这些课程融会贯通。
(二)MVC模式的应用
MVC(Model-View-Controller,模型―视图―控制器)是国外用得比较多的一种设计模式,MVC包括三类对象。
模型(Model)是应用程序的主体部分,模型表示业务数据,或者业务逻辑。视图(View)是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。控制器(controller)的工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。MVC式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
(三)多层架构的设计
传统的两层架构即用户界面和后台程序,这种模式的缺点是程序代码的维护很困难,程序执行效率较低,为了解决这些问题,可以在两层中间加入一个附加的逻辑层,甚至根据需要添加多层,形成N层架构。三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。表现层是展现给用户的界面;业务逻辑层是针对具体问题的操作;数据访问层所做事务直接操作数据库,针对数据的增加、删除、修改、更新、查找等。目前在企业级软件开发中,采用的都是多层架构的设计。这样,学生就可以为以后的实际工作打下良好的基础。
四、研究的基本思路
综合设计I是整个综合设计课程体系中的基础阶段。此时学生已经完成了C语言课程的学习,并同步进行软件工程课程的学习。因此综合设计I需要在学生初次进行一个软件工程项目设计的时候,能够正确的引导学生应用软件工程的方法和工具进行软件项目的设计,强化学生的软件工程思维,为后面的综合设计II、综合设计III两个阶段的设计以及以后工作中参与大型项目设计打下坚实的基础。我们拟采用以下思路来进行综合设计I实验建设。
(一)强调系统能力的培养
系统能力的培养具有突出的工程教育特征,是解决复杂工程问题的直接体现。与其他专业学生的计算机基础和应用能力相比,计算机软件类专业学生更应突出强调计算机软件系统能力的培养。而软件工程相关的知识、方法和工具,是软件类工程项目实施的基础,是学生必须掌握的基础系统能力。在综合设计整个过程中,都需要重视对软件工程思维及相关技能的培养。
(二)加强过程管理
加强设计过程的管理,使得指导老师对综合设计的指导和管理从偏向结果的管理方式,转变为过程管理和结果并重的管理方式。加大对教学过程的关注,使教育真正转向素质教育,形成持续提升的教育发展趋势是教育的必然选择,因此需要通过对实验管理过程进行顶层设计、优化过程实施及过程管理,提高综合设计的效果。
(三)强化综合设计任务执行过程的规范性
强化综合设计任务执行过程的规范性,引导学生严格按照软件工程的规范来进行设计,从学生第一次进行软件工程项目开发起,就培养其软件工程思维习惯,为以后学生走向工作岗位,成为高端软件设计人才打下坚实的基础。
参考文献:
[1]文淑华,肖堃,张翔,等.高校综合设计课程管理办法的改革与探索[J].实验科学与技术,2018,16(16):151-156.
[2]张海藩,牟水敏.软件工程导论(第6版)[M].北京:清华大学出版社,2017.
[3]刘敏,刘锡国,衣晓,等.综合设计类课程创新平台构建及教学方法研究[J].实验技术与管理,2017,34(S1):115-118.