system: [SYSTEM]

user: 4. “软件工程”CDIO教学模式构建 4.1. “软件工程”CDIO教学模式的体系构架 “软件工程”CDIO教学模式的体系架构如图1所示。该架构由CDIO系统框架、教学实践框架和CDIO能力评价框架三部分组成。其中，CDIO系统框架将CDIO的理念精化为大纲，再由大纲精化为可执行的步骤；教学实施框架则依据CDIO的实施步骤设计相对应的教学实施过程；能力评价框架是依据CDIO的能力评价大纲对教学实施的结果进行评价。该构架以项目为牵引，以知识传授为主体，以能力提升为核心，以素质教育为目标，以案例教学为手段，通过课堂翻转、学习小组讨论、项目组研讨和校企融合等方式，实现软件工程课程集知识、能力与素质教育融为一体，相互渗透，协调发展的教学目标。相较于传统教学模式，CDIO教学模式使软件工程教学与工程项目实践高度契合，集系统化的理论知识与科学化的项目实践于一体，更加注重学生思维能力、沟通能力等综合能力的培养，更加注重工程项目管理，更加注重工程项目与经济、社会的相互影响，更加注重学科知识体系构建。 图1. “软件工程”CDIO教学模式的体系构架 4.2. 教学知识体系确立 2004年，IEEE Computer Society 与ACM(Association for Computing Machinery)联合制定“软件工程知识体SWEBOK (Software Engineering Body of Knowledge)”，给出软件工程领域的十大核心知识域(Knowledge Areas， KA)。SWEBOK 2004的提出极大地推动了软件工程和软件工程专业教育的发展。国内大多数软件工程教学都参考了SWEBOK 2004。随着软件行业的发展、新观点的出现和知识体的增长，IEEE又推出SWEBOK V3 [ 20 ]。 SWEBOK V3对卓越软件人才的定位更加清晰，充分考虑了企业的诉求，即：具有扎实的数学基础、计算基础、工程经济基础和工程基础，受过良好软件工程专业教育和训练的人才，才能成为软件行业的中坚力量和领军人物。在SWEBOK V3的框架下，软件工程教育培养的应该是熟悉企业文化、具有团队合作与交流能力的“可用的”软件人才，而不是“还需要实习的”准软件人才。这与教育部正在实行的“卓越工程师教育培养计划”目标是完全一致的。IEEE SWEBOK V3把软件工程划分为4个教育基础知识域、11个实践知识域和7个辅助学科域，如表1所示。 按照各专业人才培养方案的设计和课程教学时数的要求，上述SWEBOK V3内容不可能全部作为软件工程课程的教学内容，有必要进行分解和裁剪。其基本思路是：将教育基础知识域的内容作为各专业基础课的教学内容，辅助学科领域的内容作为专业基础课和专业课的内容，实践知识域中的内容作为软件工程课程的主体内容。其基本关系是：教育基础知识域和辅助学科领域是实践知识域的基础和支撑。 为保证教学内容与国际发展接轨，体现教学内容的科学性和完整性，我们以SWEBOK V3为基准，结合实践构建软件工程教学知识体系。软件工程教学知识体系由知识领域(Area)、知识单元(Unit)和知识点(Topic)三个层次组成。最高层是知识领域，代表一个特定的学科子领域，用于组织、分类和描述软件工程知识体系的顶层概貌。知识领域之下又划分成更小的知识单元，代表各个知识领域中的不同方向。知识点是整个体系结构中的最底层，代表知识单元中单独的主题模块。软件工程教学知识体系的知识领域和知识单元如表2所示。 Table 1 Software engineering knowledge area 教育基础知识域 实践知识域 辅助学科域 1 数学基础 1 软件需求 7 软件工程管理 1 计算机科学 5 项目管理 2 计算基础 2 软件设计 8 软件工程过程 2 计算机工程 6 质量管理 3 工程基础 3 软件构造 9 软件工程模型和方法 3 数学 7 系统工程 4 工程经济基础 4 软件测试 10 软件质量 4 管理学 5 软件维护 11 软件工程职业实践 6 软件配置管理 表1. 软件工程知识领域 Table 2 Software engineering knowledge areas and knowledge uni 知识域 知识单元 软件需求 需求获取、需求分析、需求描述、需求确认、需求跟踪、需求验证、需求澄清、 需求变更、需求控制等； 软件设计 概要设计(体系结构、组件、接口、特征过程)、详细设计等； 软件构造 程序编码等； 软件测试 单元测试、集成测试等； 软件维护 问题响应、问题分析、问题处理等； 软件配置管理 配置过程、配置控制、版本管理等； 软件工程管理 启动、规划、实施、监控、结束等； 软件工程过程 过程定义、过程改进等； 软件工程模型和方法 常用的模型如瀑布模型、快速原型模型、增量模型、螺旋模型、迭代模型、 统一过程模型、敏捷模型等； 软件质量 目标、评审、总结报告等； 软件工程职业实践 选择性知识、经验积累。 表2. 软件工程知识域和知识单元 4.3. 教学过程的设计与实践 4.3.1. W2H递进渗透逻辑框架 为把软件工程课堂讲授的内容与CDIO大纲契合，更好地实现教学效果与能力评价的匹配，我们设计课堂讲授的W2H递进渗透框架。该框架包括一个引擎和三个逻辑层面。一个引擎是“以问题为中心”；三个逻辑层面是基于理念和概念的“是什么(What)”层、基于原因和机理的“为什么(Why)”层和基于实践方法的“怎么办(How)”层，它们之间的关系如图2所示。 4.3.2. 递进渗透过程 软件工程教学知识体系内容丰富、结构复杂，单独一门软件工程课程无法承载，需要进行一系列的递进渗透教学，即以知识点为渗透因子，将教育基础知识域和辅助学科域的内容，递进地分配到不同阶段学习过程中，如第一学年在“计算机导论”中引入了计算机信息技术素养、职业道德和软件工程思想；第二学年在“C程序设计”和“数据结构”中强化模块化思想、算法设计和编程规范；第三学年在“数据库系统”等技术课程中进行大案例教学；第四学年第一学期开设“软件工程”及进行案例化软件生产实习，第二学期进行毕业实习和毕业设计，进一步培养团队协作精神、交流沟通技能以及职业实践技能，让软件工程知识得到升华。 图2. W2H递进渗透逻辑框架 软件工程教学知识体系通过理念引入、概念建立、课程教学、案例化软件生产实习、毕业设计等进行大跨度、无缝的渗透式教学(如图3所示)，在这种“情境化”渗透平台上，将传统的一门软件工程课程进行扩充性改造，知识体系实际覆盖SWEBOK V3教育基础知识域、实践知识域和辅助学科域，课程边界得到扩大，学生的工程化能力边界得到分层次、有步骤的系统拓展，为学生构建了一个坚实的职业发展平台。 图3. 渗透教学示意图 4.4. 模式的实例化应用 4.4.1. 实例化应用平台 中国气象数据网 [ 21 ] 作为气象云的主要门户应用系统，是中国气象局面向国内外用户开放气象数据资源的支撑平台，是国家科技基础条件平台的重要组成部分，可为各类教学、科研项目提供有效在线数据服务和离线数据服务。 4.4.2. 实例化应用内容 软件工程课程教学突破传统作业模式，采用案例化作业。随着教学进程的不断推进，以一个案例作业贯穿课程教学始终，如我们依托中国气象数据网这一平台进行实例化应用教学，“基于Python的气象大数据分析及其可视化表达”就是其中一个。该案例化作业的主要内容包括：(1) 自主登录中国气象数据网，注册成为免费系统用户；(2) 自主获取气象的领域知识，主要途径有系统平台学习和与校外气象领域专家交流探讨等；(3) 从平台自主下载相关气象数据；(4) 进行数据清洗与数据集成；(5) 数据建模与分析；(6) 数据的可视化表达等。 由于案例化作业的内容对课程教学内容边界进行了大跨度的拓展，大家的学习潜能被广泛调动起来，部分同学将此案例进一步延伸扩展成为毕业设计的内容，毕业设计答辩成绩优良以上的占比在70%左右，学校教学督导专家在答辩现场也对同学们所做的工作表现出浓厚的兴趣并给予高度评价和充分肯定。