期刊专题 | 加入收藏 | 设为首页 12年实力经营,12年信誉保证!论文发表行业第一!就在400期刊网!

全国免费客服电话:
当前位置:首页 > 免费论文 > 社科历史 > 社科学术 >

软件工程教育的平衡性研究

1传统教学面临的问题

软件工程是一个复杂的工程性学科,这个复杂性来自现实世界问题的复杂性和教学中对问题复杂性的“难以再现”。事实上,教学中要尽可能地剥离这种现实世界的复杂性,使问题具有可行性,教学易于进行,学生易于接受。这种剥离了“复杂”的“实际”,就显得“不切实际”。这种剥离不仅导致教学过程不完善,也导致学生不能驾驭实际问题。而工业界对学生的需求正在于此,不仅是学生的编码能力。对此,不同的学校、教师也采取了不同的方法,文献也作出了有益的探索。软件工程专业的教学工作是一个复杂的系统性工程,仅仅针对课程改革,难以解决当前的问题。本节针对这一问题的根源进行深入分析,探讨软件工程教学中所面临的主要问题。1)理论与实践。这个问题是一个长期的困扰,也是目前工业界和教育界分歧的关键,涉及培养模式的深度改革。Kasten在文献中分析了这种分歧,并提出自己的解决策略。对于“实践”经验的缺乏,实际教学应当如何改善?理论方法强调规范和验证的重要性,以符合规则的、系统的方法进行软件开发。面向实践需求的开发方法强调对实际困难的解决。困难是多方面的,也是实际开发当中需要权衡的一个问题。Brooks等人在文献中对此进行了深入分析。2)软件开发与管理。一些人认为软件开发过程中的首要问题是开发,也有人认为首要的问题是管理。针对这种争论,实际教学中该如何取舍?3)培养模式。是在课堂中领会,还是在“项目实践”中学习更适应人才的培养需求?工业界倾向于后者,但工业界的需求也呈现多样化,如何适应?学生未来工作领域的多样化(科学研究、技术研发、管理等)如何兼顾?面对这些矛盾该如何选择?

2软件工程教学在新形势下的挑战

新形势下软件工程教育面临的挑战主要来自技术与非技术两个层面,本节将针对这些问题进行深入分析。

2.1计算平台的发展

计算平台的发展不仅颠覆了IT业发展的摩尔定律,更对人才的培养提出了全新的要求。从集中计算到分布式计算,软件的结构和模块概念都发生了巨大的变化。软件系统开发由传统的集中式软件系统转向分布式系统。集中式软件体系以代码的行数衡量软件的复杂性和程序员的设计能力。随着分布式计算的盛行,教学中需要引入区别于集中式系统的同步、通讯、安全、容错、缓冲等技术,这是当前软件工程教育中不容忽视的问题。软件工程已经包含很多课程,在分布式系统环境下该如何引入,引入多少相关的课程,是必须要权衡和解决的问题。

2.2Internet和移动互连网络

Internet和移动互连网络的快速应用极大地影响了软件开发技术和软件工程教学模式。它们不仅是一个执行平台,同时也是开发平台和传输工具。它们对软件工程的开发形式提出了新的技术要求,例如软件开发要适应各种网络协议、安全机制和不同网路架构。

2.3开发工具和环境

不同的公司对工具和环境的需求呈现多样性。一个统一的教学过程显然难以满足工业界的多样化需求,这极大地影响了学生的技术实践和经验积累。近年来软件工程学科有了巨大的发展,学校也在顺应这种发展,但是对于工业界来说,工具和开发流程的确立需要长时间的积累,他们更需要稳定、安全而不一定是全新的模式,这也导致学生所学与部分需求的不相适应。教学中无法融合所有的工具和环境,但应注重学生对不同工具、环境学习方法和能力的培养。学生须具备的另一个重要的能力是经验和判断力。经验是随着时间的推移而得来的,判断力是从大量的错误中学习而来的。教学过程中要创造能产生错误的环境以培养学生的判断能力。

2.4沟通能力

一个合格的软件工程师不仅应具备一定的技术能力,还可能要面对不同的行业客户,与不同学科的人员合作进行项目研发,除了要求自身具备一定的跨学科工作能力外,还要有能与相关领域人员进行沟通的能力。软件工程师通常要花费大量时间与客户、同事、项目负责人等各类人员进行沟通。所以沟通能力是一个合格软件工程师的必备条件。需求分析决定项目开发的成败,沟通成就需求分析。一个小的疏忽、错误很可能导致一个项目的失败。例如,需求分析没有搞清楚用户的运行平台是Linux、Windows还是其他,而习惯性的基于Windows平台开发很可能导致项目的失败,所以软件工程师必须具备严谨、缜密和全面的思维能力以及良好的沟通能力。

2.5团队合作能力

大型甚至小型项目都是通过团队进行开发的。项目的复杂程度和项目团队成员人数成正比。良好的沟通技巧可以使一个人更好地融入团队,降低开发成本,但是仅有沟通技巧还不够,在团队中还需要学会和同事相处、有自己的判断力、能接受别人的建议并在必要时做出适当的妥协。目前,教学中主要强调个人技术能力,忽视了对学生作为团队成员角色的培养。一个人与人相处的能力和方式深受他受到的教育模式的影响。学生要时刻铭记:项目是由一个团队开发的,而个体只是团队的一员。项目开发中不仅要实现自己的模块,还要确保自己的模块符合整个项目的要求。

3课程体系与架构设计

软件工程教育模式的争议不可能通过单纯的课程改革得到解决。从培养方案来看,软件工程和计算机科学与技术两个学科培养模式差异并不大,很多学校甚至沿用了计算机科学的主体培养方案,只在小范围上对课程进行了调整。在新体系的建设中,应该依据软件的工程性原则,找到一个恰当的结合形式:课程与实践训练、技术与非技术技能、软件工程与其他学科融合训练等。在新课程体系的设计中要处理好理论课程与项目实践、技术与方法、沟通与团队合作等方面的融合培养和训练。项目要精心设计,要创造一个类现实的教学环境,还原现实世界原本存在或可能出现的困难,涵盖技术与非技术的训练,遵循“梯级设计、层层推进、能扩展、可升级”的原则和“发挥本学期课程在实际应用开发中的指导作用,工具和环境由学生团队自主选择和配置,体现团队协调和沟通技巧,项目具有一定的跨学科设计能力”的特点,使学生们得到全面、系统的训练。项目实践环节建设要以整个本科阶段为体系进行系列设计,使项目实践内容在不同学期体现时效性,又能前后贯穿形成一个完整体系,最后能融合形成一个大型项目的开发。

3.1理论与实践

工业界强调学生入职应具备一定的开发经验。应届生显然在这方面的储备不足,原因是多方面的。任何学科都有其学科理论支撑,这也是学生日后从事研究与工作的基础,不管如何强调项目实践的重要性,都不能脱离理论基础对现实问题的指导、规范和分析等支撑作用。软件工程应该教授多大程度的理论知识呢?在充分的研究、调研之后,我们认为高等数学、线性代数、概率统计、离散数学、算法设计等基础性课程必不可少。

3.2技术与方法

高等数学、离散数学等基础课程具有很强的持续性和稳定性,应该脱离应用类课程单独授课,而应用技术发展迅速、更新很快,学生应熟悉一些当前的主流技术,为以后的工作、学习做好铺垫。技术学习应覆盖编程语言、操作系统(OS)、中间件和编程环境。同时,学生应树立这样的观点:软件是计算机的一个组成部分,而计算机只是一个大型系统的一部分。学生应具备系统级的认识和解决问题的思路与想法,要明确大型系统一旦建立,后期再调整是相当困难的,所以设计之初就应该具备系统级的视野。教学中,课程围绕一个中心议题展开,因此系统级的思想很难在某一门课程中展开。例如,OS主要围绕CPU、存储器、作业调度算法等展开,而一个大型系统可能包括OS、网络、数据库、Web服务器、客户机、安全机制等,因此学生很难在某一门课程中得到这样系统级的训练。目前的各类课程、毕业设计囿于这些原因很难将这些技术融会贯通。课程体系的改革就是要创造条件并指导学生以系统级的思维进行项目实践。高年级学期项目实践可以基于学生前面学期的设计,分析其性能和新的需求,而进行扩展和改进,同时系统级的设计不仅要考虑技术方面,团队成员、学科知识也会影响系统的设计。学生未来可能工作于各个行业,课程的改革试图体现这种趋势,项目的实践不能局限于纯粹的应用或管理系统的设计,而要进一步扩展到生命科学、经济学和商业等应用领域。项目不仅主要强调对学生计算机编程能力的培养,更注重不同领域项目的解决方案,通过这样的项目实践,学生们将能更好地了解问题的应用领域,并在以后的工作中能更好地与客户沟通。

3.3沟通与团队合作

沟通技巧与团队协调能力一直被认为是软件工程师应具备的最重要的能力之一。目前学校的教育在这一点却没有实质性进展。在改革后的项目实践中,这样的技能训练将通过需求分析、项目研讨会等形式得到充分锻炼。学生们在这里将能体会到沟通的重要性和非技能因素对项目的重大影响。通过项目实践,学生不仅要熟悉使用工具和环境进行符合规范的需求分析、代码设计,而且要进行测试、配置管理、缺陷跟踪、生成帮助系统等。学期项目实践可以提高学生设计复杂程序的个人能力、团队合作和沟通能力、跨学科协作的工作能力。项目开发过程中还将向学生阐释大型项目开发流程、管理课程、项目估算、进度安排和报告等知识。

4结语

移动互联网、物联网、软件外包等软件产业的快速发展为软件工程人才提供了广阔的需求和发展机遇,然而一个不可忽视的问题是应届毕业生或多或少地会遭遇就业瓶颈。笔者针对这种现象,从工业界需求、教学实际和学生角度出发进行了深入的分析和探讨,挖掘问题的根源所在,对软件工程教学体系的改革提出了建议。通过对项目实践过程的深度改革拉近课堂与现实的距离,增加学生的求知欲,拓展学生的视野,增强他们解决问题的信心和能力。尽管这项体系改革引入了许多新问题,给学生带来一些挑战,但却使学生更生动地感受到学习的针对性和目的性。长学期项目实践将培养模式由专注于软件开发技术能力培养转向软件开发全过程与团队协作和沟通等综合能力的培养。学生不仅能领悟算法之道、编程之美,更能站在系统的高度去学习项目的规划、实施,并能在团队中磨炼意志,协同工作。我们深谙这项改革还有诸多不足,并将继续研究产业发展、追踪技术前沿,从而向学生提供更好的教学资源和培养模式。

作者:赵利辉 潘广贞 刘爽英 单位:中北大学 计算机与控制工程学院


    更多社科学术论文详细信息: 软件工程教育的平衡性研究
    http://www.400qikan.com/mflunwen/skls/skxs/93678.html

    相关专题:长线投资股票 淮海工学院学报


    上一篇:供电可靠性技术管理措施分析
    下一篇:施工工艺下风景园林工程论文

    认准400期刊网 可信 保障 安全 快速 客户见证 退款保证


    品牌介绍