首页 > 范文大全 > 正文

软件工程专业教育知识体系的分析\重构与求精

开篇:润墨网以专业的文秘视角,为您筛选了一篇软件工程专业教育知识体系的分析\重构与求精范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:针对国内软件工程专业教育问题,全面分析国际软件工程专业教育知识体系SEEK和CBOK,并结合对国内高校教学实际的调查,提出软件工程本科教育知识体系的重构与求精方案。重构后的本科教育知识体系可以灵活适应国内各层次高校软件工程专业的教学诉求,并与国际研究生教育知识体系CBOK有效衔接,共同组成完整的软件工程教育知识体系,为我国软件工程教育设计者提供参考。

关键词:软件工程;知识体系;本科教育;研究生教育;教学改革

每种工程职业都有一个职业基础知识体系及其推荐的实践。这一知识体系多数情况下可以组织成正式文档,并为理论指导文件、教育程序、培训程序、专家认证或职业执照等。在国际上,IEEE-CS和ACM联合组建的软件工程协调委员会(SWECC)了软件工程知识体系和推荐实践SWEBOK2004[1],为软件工程职业实践建立了合适的准则和规范集。基于SWEBOK,SWECC进一步定义了其中可以纳入

教育程序的知识体系,包括本科生软件工程教育计划SE2004[2]中的SEEK、研究生软件工程教育计划GSwE2009[3]中的CBOK、软件工程职业道德规范和职业实践[4]。国内有过较好实践的有南京大学的软件工程教育知识体系[5-7]。

本文在分析SEEK和CBOK的基础上,求精与重构软件工程专业学科教育知识体系,包括:1)按照“新视角、新认知、新方法”确定计算基础部分在教学中的重点,解决SEEK对CS知识单元的“鸵鸟”化处理问题;2)基于教学实践总结求精本科阶段软件工程最小核心教育知识点。该项工作试图能够更好指导各个层次教育机构的教学活动,适应从具有国际竞争能力的高端工程型软件人才到面向具体应用领域的基础软件开发实用人才的多层次培养需要。

1SEEK分析

SE2004[2]定义了本科生软件工程教育知识体系SEEK,包括知识领域(KA)、知识单元和知识点3个层次,采用Bloom分类法,并在知识单元级别给出了最小核心课时数。SEEK共有10个知识领域,42个知识单元,最小核心学时数为494,详见表1。

SEEK历经5年实践,其系统性、全面性、先进性和实用性均得到了较好验证。但作为确立软件工程专业的第1版教育知识体系,SEEK过于强调新学科确立的知识领域,忽视了对继承学科的相关知识领域的描述,从而影响到相当一部分教育机构对于知识体系的理解和执行。如:1)计算机科学基础拥有140个核心学时,占SEEK总核心学时数的三分之一,但仅仅作为一个知识单元存在,如何执行?SE2004建议去参考CS2001,但是CS2001中的知识领域仅对应于SE2004中的知识点,大多数教育机构很难理解SE如何调整求精CS,因此很难对CS的核心课程进行调整与改革。2)很多教育机构反映软件工程相关知识领域的核心学时数比较多,在高等教育大众化阶段下,应该允许教育机构根据自己的人才培养定位,适当削减本科阶段的软件工程核心学时数,也有益于培养面向某一应用领域的实用型软件人才。

2CBOK分析

GSwE2009[3]给出了研究生软件工程教育知识体系CBOK。CBOK以SWEBOK的组织和内容为蓝本,但进行了一些修改。包括:1)加入了系统工程基础和职业操守指导两个新的KA。2)重新安排或修改了一些知识单元和知识点,如人机交互设计被加入到软件设计KA;工程经济学单元被加入到软件工程管理KA;风险管理单元被加入到软件工程管理KA;

软件检验和有效性验证单元被加入到软件质量KA;以及部分名称的改变和知识单元/点组织的改变。值得注意的是,即将的SWEBOK2010也在进行同步修改。

GSwE2009 指出了软件工程专业研究生面临宽泛的入学准备条件,包括:1)获得过相关学士学位;2)学习过SwE相关课程;3)具有2年的SwE相关经验。CBOK则具体组织为预备材料、核心材料、大学特有材料、选择性材料、顶点经验等部分。学生对每个KA所应该掌握的程度,CBOK使用了K(知识)、C(理解)、AP(应用)和AN(分析)等4个级别。

CBOK预备材料指出了学生在进入硕士阶段学习的时候所必须具有的知识,这些知识可以从大学本科的教育、软件开发经验、机构的认证课程中获得。表2给出了对预备材料的分析,SE2004是这一部分知识元素的主要来源,但在组织上与SEEK有所不同,反映了对SEEK 5年实践的总结和提高,对我们更好地理解SEEK有较大意义。

CBOK核心材料给出了研究生课程所应该覆盖的核心知识体系,按照相当于15学分的教学时间来定义。即核心知识体系的学习由比总学时数50%略少的时间来达到,其他时间和课程将会被分派去提供加深核心领域(Bloom级别的提高)和专注于某个选定的应用领域。表3给出了对核心材料的分析,其中百分数表示在总课时数内所占的比例,相加不超过50%。

3研究目标

本文结合最新的GSwE2009中CBOK教育知识体系和即将的SWEBOK2010,总结SE2004中SEEK教育知识体系在我国高校5年的教学实践,从加强实用性的角度重构与求精SEEK以与CBOK接轨,适应我国高校软件工程专业多层次教育的需求。

在人才培养上,我们的定位如下:

1) 研究生教育知识体系保持CBOK的灵活性与可伸缩性,允许高校针对多入口情况灵活设置教学体系。

2) 本科教育知识体系既适应高水平大学软件工程专业培养具有国际竞争能力的中高层次工程型软件人才的需求。

3) 本科教育知识体系又适应应用型大学软件工程专业培养面向各个应用领域的基础软件开发实用人才的需求。

在人才培养目标上,力图使得学生具有如下能力:

1) 掌握核心知识。

2) 熟悉某个应用领域。

3) 知晓职业道德。

4) 能够利用系统工程原则指导软件工程。

5) 具有团队合作精神、交流表达能力。

6) 具有协调折中能力。

7) 具有综合能力。

8) 具有终身学习能力。

9) 具有对新技术的分析应用能力。

10) 能够在某个KA上追求深度。

在教学知识内容设计上,我们的要求如下:

1) 软件工程专业强调扎实宽泛的知识基础。软件工程师在工作环境中需要广泛地了解涉及产品开发的诸多知识领域,并在具体产品构造中灵活运用该领域的前沿技术。

2) 软件工程专业强调从事该领域工作的实际体验。在教学实施中应该重视体验实际软件开发工作的过程,熟悉实际应用的方法与工具,以使毕业生能够更快地融入今后的工作。

3) 软件工程专业强调分析与解决实际工程问题的方法与能力。解决实际工程问题的能力是软件工程教育的核心问题,要重视培养学生分析、设计、构造、实施、维护实际工程问题的知识与能力以及围绕实际工程问题的组织、协调与管理的知识与能力。

4) 软件工程专业强调与实际应用领域的结合能力。软件的应用无所不在,熟悉一个或数个应用领域的相关知识,并将其与软件工程核心技术相结合,是对该专业毕业生的基本要求。

5) 软件工程专业强调综合运用各种方法与技术的能力。选择合适的方法与工具并有效集成,是构造软件产品的重要能力,再学习能力是对软件工程师的基本要求,选择与决策是一个软件工程师的核心素质。

6) 软件工程专业强调工程观、职业道德和团队合作能力。树立工程理念,在工程原则和方法指导下遵从职业要求,以团队方式完成软件项目,是一个软件工程师所应具备的素质。

4工作路线

在技术路线上,软件工程专业教育知识体系的重构与求精遵循以下途径:

1) 用软件工程的世界观统一审视和重新组织软件工程教育知识体系。SEEK回避了计算机科学基础相关知识,通过直接借用CS2001,导致SEEK在教学实施时成为CS和SE两种观点的混合体,各高校在对计算机科学传统课程改造时遇到较大困难。求精后的教育知识体系试图站在软件工程的新视角来重新编写和组织计算基础相关知识领域,站在软件系统构建的高度全新认知计算系统知识的教学,运用解决具体软件设计问题的新方法来处理计算机科学传统课程的教学改革,从而达到在软件工程专业有效改造CS传统课程的目标。

2) 求精本科教育阶段的软件工程知识,适应更多教育机构多层次教育的需求。根据我国高校5年教学实践,多数学校普遍认为软件工程相关知识的教学内容偏多。特别是对于应用型高校软件工程专业来说,重点是培养学生在软件工程思想指导下的针对应用领域的软件开发技能。CBOK定义的研究生准入条件和准出条件也在另一方面印证了SEEK的部分软件工程知识可以移入研究生阶段。因此笔者在认真调研的基础上对软件工程相关知识领域进行求精,设置核心教学课时最小值,作为大学软件工程专业的最低要求;同时把SEEK规定的核心教学课时取为最大值,作为高水平大学软件工程专业的办学参考;有关高校可以根据自己的人才培养定位在两者之间浮动,实现自己的办学特色。

3) 适应我国高校教学的具体诉求。计算机科学与技术一级学科研究生联考对软件工程专业教学产生影响。因此在重构计算基础相关知识领域时,把SEEK中与数据结构、计算机组成、操作系统和网络相关的核心课时数设置为最小值,作为软件工程专业办学的基本要求;同时把联考要求规定的核心教学课时取为最大值,作为部分高校软件工程专业的办学参考。

4) 研究生教育知识体系采用CBOK。软件工程专业研究生教育程序面临相对宽泛的入口。软件工程专业本科毕业生需要在某个KA、某个应用领域和实践上得到深造;信息类专业本科生或接受过IT培训的学生需要在软件工程知识和实践上受到良好训练,并把这些知识与他们原先的工作领域或以后想从事的应用领域相结合;在SwE方面有过两年工作经验的人,严格的软件工程训练则更加重要。不同的人有着不同的学习诉求,因此在建设教育知识体系与相关课程方面,良好的灵活性与可伸缩性尤其显得重要,CBOK较好地解决了这一诉求。

5) 遵从SEEK与CBOK。本文给出的学科教育知识体系以SWEBOK为基础,是用软件工程视角统一规整、重构和求精SEEK与CBOK后得到的,其基础和知识产权均属于SWECC。

5重构和求精后的软件工程教育知识体系

软件工程教育知识体系包括本科生和研究生两个部分,其中研究生教育知识体系完全采用CBOK,本科生教育知识体系在SEEK基础上重构与求精。

重构的方法是采用软件工程视角全新组织SEEK中的计算基础、数学与工程基础等两个知识领域,重新划分为数学基础、程序设计基础、计算系统基础和工程基础4个知识领域。此外,原计算基础中的软件构造升格为知识领域,原计算基础中构造工具与分布在软件工程各相关知识领域中的工具知识点合并为一个独立的知识领域,后者与系统与应用知识领域一样,不设核心教学课时数要求。

求精则依据CBOK的研究生准入条件和我国高校对SEEK的五年教学实践。首先,求精软件工程各知识领域和工程基础知识领域中各知识点的本科教学要求;设置核心教学课时数最小值,作为本科毕业生最低教学要求;把SEEK原先核心教学课时数设置为最大值,供部分高校在教学设计时参考。其次,针

对我国高校计算机一级学科研究生联考的现实,对数据结构、算法、计算机组织结构、操作系统、网络与通信等知识单元进行扩展,SEEK原先核心教学课时数设置为最小值,作为本科毕业生最低教学要求;联考特别要求作为核心教学课时数最大值,给有研究生考试需求的高校参考。

表4给出了重构和求精后的软件工程专业本科教育知识体系,采用Bloom分类法,知识点的掌握程度用k(知识)、c(理解)和a(应用)标记;重要程度用E(核心)、D(推荐)和O(选修)标记;共有13个基本知识领域,52个知识单元,建议核心学时数最小值为381(E),最大值为520(E+D);另有软件工具和系统与应用两个扩展知识领域。

研究生教育知识体系参考第二节关于CBOK2009的描述。

6结语

本文从实用性角度出发,对SEEK进行了重构和

求精。用软件工程的统一视角组织、细化和求精本科生教育知识体系,从而使本科生教育知识体系具有较好的灵活性、适用性和可伸缩性,并较好地与CBOK衔接,共同组成完整的软件工程专业教学知识体系,从而能够有效指导我国高校软件工程专业的本科生与研究生教学体系设计。

参考文献:

[1] Guide to the Software Engineering Body of Knowledge[EB/OL]. [2010-10-11]. /.

[2] Software Engineering 2004. Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering[EB/OL]. [2010-10-25]. /ccse/.

[3] Graduate Software Engineering 2009 (GSwE2009): Curriculum Guidelines for Graduate Degree Programs in Software Engineering[EB/OL]. [2010-10-25]. /.

[4] Software Engineering Professionalism[EB/OL]. [2010-10-25]. /about/se-code.

[5] 骆斌,丁二玉. 南京大学软件工程专业本科教程[M]. 北京:高等教育出版社,2009.

[6] 张大良,骆斌. 软件专业应用型人才培养的研究与实践[J]. 南京大学学报:自然科学版,2009(增刊1):1-5.

[7] 骆斌,张大良,邵栋. 软件工程专业的课程体系设计[J]. 中国大学教学,2005(1):32-33.

Analysis, Reconstruction and Refinement of Software Engineering Educational Knowledge Body

LUO Bin1, ZANG Bin-yu2, DING Er-yu1

(1.School of Software, Nanjing University, Nanjing 210093, China ; 2.School of Software, Fudan University, Shanghai 200433, China)

Abstract: For Software Engineering education in China, this paper starts from SEEK and CBOK, the international Software Engineering educational knowledge body, analyzes them completely, combines with domestic universities educational practices, proposes the refactoring and refinement programs of software engineering knowledge body for undergraduate course. The reconstructed knowledge body for undergraduate course can be flexible to adapt to the software engineering teaching demands of all levels domestic universities, and can effective interact with the international knowledge body of graduate education CBOK, together constitute the complete software engineering education knowledge body, as a resource for domestic software engineering education designers.

Key words: Software Engineering; knowledge body; undergraduate education; graduate education; educational reform