APP下载

基于真实项目案例的“软件体系结构”课程建设

2018-02-19陈圣国王智钢张海涛

关键词:设计模式课程目标毕业

孙 耀,陈圣国,王智钢,张海涛,张 燕

(1.金陵科技学院软件工程学院, 江苏 南京 211169;2.金陵科技学院, 江苏 南京 211169)

随着信息技术应用领域的不断拓展,软件产品规模逐渐扩大,复杂程度也逐步提高,这使具有搭建系统核心构架、澄清技术细节、扫清主要难点能力的系统架构师成为紧缺高端人才。因此,培养学生在复杂软件系统开发过程中具备选择合理的设计模式和软件体系结构以简化系统复杂度、提高软件产品质量的能力,成为各高校开设“软件体系结构”课程的重要教学目标。传统的“软件体系结构”课程内容侧重对软件体系结构基本概念、理论以及软件体系结构适用性的讲解,而学生需要记忆大量枯燥、易遗忘、易混淆的理论概念。同时,这种灌输式教学方式不但影响教学目标的实现,而且无法激发学生的好奇心和求知欲,不利于自主学习和终身学习意识的培养。因此,为更好地实现“软件体系结构”课程的教学目标,培养具备利用所学基本理论识别、表达、分析复杂软件工程问题能力的专业人才,本文以南京市多个重点项目为依托,提出基于真实项目案例的“软件体系结构”课程建设方案,以期为应用型高端软件人才的培养提供借鉴。

一、基于OBE理念的课程目标制定

(一)课程目标对毕业要求指标点的支撑

根据工程教育的OBE(Outcomes-based Education,基于学习产出的教育模式)理念,“软件体系结构”课程目标需对软件工程专业的毕业要求提供直接支撑。

1.支持毕业要求1(工程知识):能够将数学、自然科学、工程基础和专业知识用于解决复杂软件工程问题。具体指标点为:具备扎实的软件工程专业知识,具备理解复杂软件工程问题的能力,能够判别软件系统的复杂性,能够运用所学知识和方法进行复杂工程问题求解(1-3)。

2.支持毕业要求2(问题分析):能够应用数学、自然科学和工程科学的基本原理识别、表达,并通过文献研究分析复杂软件工程问题,以获得有效结论。具体指标点为:能够应用数学、自然科学和工程科学的基本原理,对软件系统进行抽象分析与识别,并进行推理、求解和验证(2-1);能够有效分析和描述软件系统需求,对于具体的复杂软件工程问题,能够评估各种解决方案的优劣势(2-2)。

3.支持毕业要求3(设计/开发解决方案):能够设计针对复杂工程问题的解决方案,设计满足特定需求的软件系统、模块(组件)或算法流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。具体指标点为:能够设计针对复杂软件工程问题的解决方案,设计满足特定需求的软件系统、模块(组件)或算法流程、测试方案及用例(3-3)。

4.支持毕业要求5(使用现代工具):能够针对复杂软件工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂软件工程问题的预测与模拟,并能够理解其局限性。具体指标点为:能够掌握软件工程领域中所使用的主要方法、平台、工具和技术资源,了解其差异和适用领域(5-1)。

5.支持毕业要求10(沟通):能够就复杂软件工程问题与业界同行及社会公众进行有效沟通和交流,包括撰写报告和设计文稿、陈述发言、清晰表达或回应指令,并具备一定的国际视野,能够在跨文化背景下进行沟通和交流。具体指标点为:具有与业界同行及社会公众进行有效沟通和交流的能力,并能在复杂软件工程项目实施过程中运用以上能力(10-1)。

(二)课程目标对毕业要求指标点支撑情况

“软件体系结构”课程目标与毕业要求指标点之间的支撑关系如表1所示。课程目标1旨在以实际案例促进学生对软件体系结构中基本概念及经典软件体系结构各软件成分之间关系的理解,使学生具备扎实的软件工程专业知识(1-3),具备理解复杂软件工程问题的能力(2-1),进而能够根据问题的特征选择设计模式和软件体系结构并对所选软件体系结构进行评估(2-2);课程目标2通过仿真模拟,引导学生参照已有具体案例,逐步设计满足特定复杂软件工程问题的软件系统、模块(组件)或算法流程、测试方案及用例(3-3),体验软件开发体系结构设计过程的各个环节所使用的主要方法、平台、工具和技术资源(5-1)。课程目标3通过经典案例,分析不同设计模式的设计思想,总结所解决问题的具体特征,了解经典软件体系结构的优缺点与使用场景,使学生能够针对软件开发中遇到的问题和根据软件系统的特点进行软件体系结构设计。引导学生在分析、设计、开发、测试、验证和文档编撰过程中,选择、使用恰当的技术、资源、现代工程工具和信息技术工具(5-1),分析不同开发周期中各种软件文档的内容、格式、规范,使学生具备撰写软件开发文档的能力(10-1)。

表1 课程目标对毕业要求指标点支撑情况

二、课程教学内容设置

为更好地实现课程目标,本文参考经典软件体系结构[1-4]和设计模式教程[5-7],针对毕业要求指标点选择教学内容,实现教学内容对毕业要求指标点的支撑作用(表2、表3)。区别于教学内容仅按照章节和知识点安排的传统模式,基于真实项目案例的软件体系结构课程将理论教学与实践教学相结合,并将真实项目场景融入理论教学环节,同时加大实践教学比例。通过“支持毕业要求指标点的能力要求”和“学生任务”栏目,明确教学内容对应的毕业要求指标点、学生学习任务及学生学习后应获得的能力,将OBE理念落实到课堂和实验教学单元。在项目案例选择上力求做到以下几点:一是优先选择最新的项目案例,因为软件技术更新迭代迅速,新的项目有利于学生理解最新的软件技术;二是选择质量高的项目案例,所选项目案例应该遵循软件工程规范,具备完备的软件开发文档与良好的代码管理机制;三是类型与难度多样性,针对不同的体系结构,选择具有代表性的项目案例,让学生更好地体会不同体系结构的应用场景。

表2 理论教学内容对毕业要求及指标点的支撑

表3 实践教学内容对毕业要求及指标点的支撑

三、基于案例研究的课程教学方法

相较传统的灌输式教学方式,基于案例研究的教学方法可以提高学生的学习主动性,帮助学生获得更多的专业实践能力。

一是案例真实,理论与实践结合。根据工程项目经验,合理选择最新的、能够与教学内容相结合的工程项目作为教学案例,将枯燥的理论概念与生动的实例项目结合,让学生切身体会每个理论是如何应用到具体的工程项目中去的,从而提高学生工程实践能力。

二是讨论为主,引导为辅。在案例分析中,采用以学生讨论为主、教师引导为辅的方式,让学生最大程度地参与到讨论过程中,激发他们运用所学知识的积极性,鼓励学生大胆尝试。教师通过逐步引导的方式,让学生体会所选案例是如何选择设计模式与软件体系结构的,并了解其优缺点。

三是仿真模拟,深刻体验。学生分组讨论、仿真模拟设计已有的复杂软件系统,并担任不同的角色,体会不同角色在项目管理开发过程中的作用,熟悉工作内容。这能够培养其团队意识和独立完成工作的能力(策划、组织、管理能力),促使学生学会与团队成员交流,提高表达能力,从而更好地协调不同角色之间的工作。

四、支持毕业要求达成度分析的多元化课程考核

(一)关注课程目标是否达成的考核方式

本课程考核方式采用试卷考核和实践考核相结合、期末考试和平时考核相结合的多元化考核方式。对课程目标的评价由3部分构成:期末考试(占比40%)侧重考核课程目标1的教学效果,直接反映学生对软件体系结构中基本概念及经典软件体系结构各软件成分之间关系的理解程度;实践考核(占比40%)侧重考核课程目标2的教学效果,能够反映学生是否具备采用程序设计语言、开发平台常见设计模式和体系结构解决一定复杂度软件问题的能力;报告等其他形式(占比20%)侧重考核课程目标3的教学效果,可以反映学生是否具备撰写软件开发文档的能力。相较于一张试卷定成绩的传统考核方式,多元化的考核方式将学生学习过程评价作为重要依据纳入课程目标评价更具合理性。

1.期末考试(占总成绩40%)。考试题型为填空题(10分)、选择题(20分)、判断题(10分)、简答题(10分)、体系结构应用(25分)和设计模式应用(25分)。

2.实践考核(占总成绩40%)。本课程设置4个实验:经典软件体系结构风格(分值占12.5%)、C/S结构应用开发(分值占37.5%)、B/S结构应用开发(分值占25%)、设计模式应用(分值占25%)。每个实验提前1周布置给学生,要求其在课外进行实验预习,对实验内容进行分析和设计。教师在实验课上对学生分析设计的成果进行检查,评分由程序功能完成度(占比40%)、代码对各特定设计模式/体系结构各组成部分分解是否合理(占比30%)、实验报告是否完整详细和描述设计方案文档是否完整(占比30%)3个方面构成。

3.其他考核(占总成绩20%)。本课程把作业纳入课程考核范围,作业形式由课后习题及报告两种形式构成,其中报告和课后习题(多次)分别为50分。

(二)毕业要求达成度分析

课程考核及成绩评定结果出来后,教师可通过课程对毕业要求达成度进行分析(图1)。区别于传统的考试成绩的正态分布图,基于OBE的软件体系结构课程考核结果可视化分析可以帮助教师掌握全班在哪些毕业要求指标点上存在短板及每个学生的学习状态,以便持续改进课程教学并对学生实施个性化教学。

图1 基于OBE的“软件体系结构”课程考核结果可视化分析

猜你喜欢

设计模式课程目标毕业
《计算方法》课程的“面向产出”评价改革实践
“1+1”作业设计模式的实践探索
基于不同主体的课程质量综合评价
——以“交通运输规划”课程为例
基于工程教育专业认证的课程目标达成度定量评价研究
——以信号与系统课程为例
我们今天毕业了
三维协同设计模式下的航天项目管理实践与展望
交通机电工程设计模式创新探讨
毕业季
毕业了,能否学以致用
历史课程目标及其分类的探索