- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件体系结构课程教学抽象与实践协调与统一
软件体系结构课程教学抽象与实践协调与统一
摘要:本文结合作者多年在软件体系结构的科研和教学经验,从抽象理论教学,专题研究和案例教学三方面探讨了教学方法和教学内容的改革。目的是软件体系结构抽象的理论知识和现实软件开发项目中的应用技能结合起来,努力培养具有大局观念的软件架构人才和管理人才。
关键词:软件体系结构;抽象与实践相结合;案例教学
软件体系结构是一门源自于软件工程实践的学科。经过20多年的发展,它已经成为大量复杂软件系统研发的核心。软件体系结构的主题是针对复杂软件系统的高层结构,组织单元之间的相互关系的描述,以及围绕这种描述开展的各项活动(如设计、评估、实现、管理、测试等)。其涵盖面极为广泛,抽象程度高,因此对于刚刚接触软件工程的学生来说难以理解和认同。鉴于其教学上的难度,在国外,此课程主要由卡耐基梅隆大学软件工程学院等在软件工程方面卓有造诣的少数几所高校主导;在国内,也只有包括清华大学在内的寥寥几所高校开设了此课程。
本文以在清华大学开设的“软件体系结构”课程为例,对如何针对软件体系结构的基本概念、原则和方法进行有效地教学作些探讨。课程着重培养学生对软件宏观层面的认识,理解现代软件的研发过程并不是简单的编码的堆砌,而是针对软件系统各个核心质量属性的考察和对软件组成单元相互协作方式的基于形式化的描述和推断。在对本课程多年的教学实践中,我们一直与世界上最新的软件工业的发展和软件体系结构研究成果保持同步,并不断尝试改进和完善教学方法,努力培养具有大局观的软件架构人才和管理人才。
一、以动机剖析为讲授核心
在软件体系结构课程的教授过程中遇到的首要问题是让学生理解软件体系结构是有什么用的。这个问题是由两方面原因造成的。
首先是生源的专业情况。2008年本课程学生的专业统计显示,计算机科学与技术专业占28%,软件工程专业占16%,其他学生来自自动化、信息管理、化学、建筑、汽车、通信、物理等专业。总体而言,大部分学生缺乏本课程需要的专业基础。并且没有参加过任何具有实用性的软件系统的研发工作。有的只是编写过一些课程作业的小程序或者样例网站的经验。多数学生很少有机会能接触到一个由数十人组成的团队在大型复杂软件系统研发过程中遇到种种挑战和困难,如操作系统、分布式文件系统、搜索引擎等。同时,本课程选课人数很多(2006年到2008年分别为134人、130人、158人),由有限的几名教学组成员根据每个学生的实际情况进行专门指导完全不可行。
另一方面的原因在于软件体系结构十分抽象,难以理解。软件体系结构的基本概念、原则和方法是对诸多不同领域软件系统共性特征的提取和升华,并不针对某一特定领域或特定系统。这些背景知识对于大部分从未参加过实际工作的学生来讲并不现实。
这两点原因结合在一起致使很多学生认为课程讲授的内容朦胧、高深而不切实际。例如在讲授软件体系结构风格与模式的时候,大部分学生根本没有见过这些风格和模式在诸多软件系统中的应用实例,从而很难接受风格和模式存在的必要意义。对部分学生来讲,代码更加接近现实;而对软件内部结构的分解、复用、组织单元的协作是否会留下隐患没有最起码的意识。
因此,本课程从绪论开始就努力让学生明白为什么软件体系结构是必要的,即“软件体系结构的动机”。我们从软件系统的质量要求讲起,明确软件系统的质量属性是可以描述的;软件体系结构描述的意义在于使得复杂软件系统在宏观层面上可以得到严谨,无歧义的描述。而围绕软件体系结构描述的各项活动(如评估,校验等)正是为了保证软件系统最终可以满足质量属性的要求,如图1所示。
在讲授中,我们将各种软件体系结构的概念,原则和方法均归结为对某种特定质量属性的满足的需要。尽管软件体系结构还有许多其他的作用,但是以此质量要求作为初步的动机进行讲授,可以让学生和教师找到一个良好的、可进行有效教学和讨论的基础。当学生可以理解一个抽象的概念或方法的本源之后,便不需要对概念本身进行死记硬背,而是在想到问题的时候便能认为某种应对方案是理所应当,自然而然的事情。这就达到了本课程的讲授目的。当然,这种教学方式也对学生提出了挑战,需要学生用研究性的方式进行主动学习。
二、以专题研究为讲授线索
不论抽象理论应用于实际,不做到实际化,具体化,还是不能避免学生们对软件体系结构虚无缥缈的感觉。对比编程开发课程可以让学生们直接编写程序;软件度量课程可以给出一组数据让学生们按照学到的度量方法计算,软件体系结构的实践要困难得多和复杂得多。因为软件体系结构涉及的范围很广,将每一方面都在课堂上讲授也不可能。即便如此,也会如流水账一般达不到课程讲授的目的。
考虑到我们的学生的自学能力和分析能力都很强,只要给出
原创力文档


文档评论(0)