软件工程精品课程班级讨论总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《软件工程》精品课程班级讨论总结

——北京分中心

2009年12月11日至13日,我们参加了由教育部全国高校教师网络培训中心组织的《软件工程》精品课程培训。精品课程培训由国防科技大学计算机学院的齐治昌教授、董威老师、毛新军老师、李暾老师主讲,四位老师渊博的学识、严谨的治学态度和深入浅出的讲解,使我们受益匪浅。通过这次培训,让我们了解了如此系统与完善的软件工程教学及实践体系,他们浓缩了国防科技大学众多教师在计算机教学方面的数十年的经验积淀,让我们有了充足的可借鉴的资源,充分开阔了视野。

同时,在北京林业大学赵方教授的主持下,来自北京、河北、山东等各省市的教师进行了愉快地、深入地、广泛地讨论、交流和沟通。通过这次培训,让我们领略了国家级名师的风采,领会了不同高校异同互存的教学模式,加深了对软件工程学科发展的趋势、本科课程教学、学科专业设置与教学计划、如何提高学生上课积极性、增强教学效果、提高项目实践教学的能力、提高就业率等问题的认识。下面就我们班讨论和交流的主题总结如下。

一、软件工程学科的发展趋势

软件工程学科的发展趋势题目比较大,范围宽泛,整体来说,我们非常认同齐治昌教授“软件即服务”的观点,也有的老师提出“基础设施即服务”的观点。以下是我们关于这一主体的讨论总结。

观点一:从其开发方法来说,软件开发应该是一种基于构件的软件开发方法,也可以说是软件工程的方法学。UML过程里用于软件开发过程的研究也是一个发展方向,其重点在于源语的定义。目前,现有的一些工具如Rose等虽然可以辅助我们进行软件开发过程中的某些活动,但实际上与我们的具体要求差距很大,不足以辅助软件工程过程的每一个活动,或者说达不到我们的要求!因此,如何设计一个好的工具,提供一种好的开发环境,更好的提高软件开发的效率,也是软件工程的发展趋势之一。另外,“软件危机”的一个重要问题就是软件的生产

能力跟不上硬件和需求的要求。所以如何提高软件的生产能力也是软件工程的一个研究方向和亟待解决的问题。

观点二:制订一个软件设计的标准和通用软件开发工具,使文档等环节可以通过工具自动完成。使用者只需要写入需求,“通用软件开发工具”可以自动生成标准文档,然后根据需求将各个模块进行组合,生成一个新软件,实现软件的DIY。当然,这种方式只适合于民用、小型软件,但是应该可以在一定程度上扩大学生的就业范围。有的老师以四维科技有限公司为例,该公司侧重于这种软构件,在杭州和其他地方做高速路的项目运算试点。但是,让不懂业务的人用构件去做系统,培训的工作量特别的大,实现的情况和应用的效果不是特别理想。另一方面,做构件的人做开发环境本身也不是很好!很难把一个需求通过环境变成软件。但是如果真的做到的,软件开发就能实现自动化。当然,有的老师还提出,即使有了这样一个平台,也很少有人愿意去共享。

观点三:软件工程要面向领域。将来的软件学习会和语言学习一样,各行业都会学习这样一门课程,然后自己开发自己本行业的软件。本观点主要从语言的发展规律方面来谈。比如,在过去只有专业人员使用的低级语言或者汇编语言来进行编程,后来因为需要的人多,就出现了高级语言。软件工程学科也是一样,因为各行业都需要,所以会出现这样一门课程,不同领域的人学完后,可以去开发自身领域需要的软件。到时候高水平的软件公司,主要是做底层或者做平台。但是以前软件相对比较简单,现在的比较复杂,推进的过程可能会很长,而且提供一个面向行业的平台,编通用软件很困难,根据不同行业用户的需求构建组件更加艰难。

观点四:软件国际化。软件国际化已经不是一个大的问题,写文本,软件国际化解决了本地化的问题。现在所有的信息尽量写在一个文本里面,各个语言提供一个工具,读取本地编码,直接转换。不管有多少国家,只做一份,程序只有一个,考虑N个国家的环境,做N个文档,然后通过软件直接翻译成当地国家使用语言。

观点五:软件工程的发展方向应该是从基础软件,嵌入式软件,面向领域的应用软件这三个角度来考虑,这是我们现在急需解决的问题。

二、当前计算机专业本科生应该掌握软件工程的主要内容

按照计算机教育知识体SEEK的规范,软件工程课程授课涵盖以下内容:

团队激励和沟通、软件工程专业实践、软件工程导论、软件构造、人机交互的软件工程方法、软件设计与体系结构、软件质量保证与测试、软件需求分析、软件项目管理和软件工程高级项目共计10个知识点。

对于这10个知识点,其中团队激励和沟通最好是在软件工程专业实践过程中穿插讲述,老师在对应的软件生命周期中加以重点提示,让大家通过项目实践认识到团队协作时,沟通的必要性,否则可能会导致工作的无序,重复的工作甚至项目的失败。

但是2008年许多学校教学改革以后,许多课程的授课课时都在减少,软件工程课程也是如此。这门课的理论课时在32-44之间,其中含有1-5个周的实践课时。如下表所示:

因此,如果面面俱到,学生感觉不到这门课的实用性,需要在软件工程课程中用尽量少的课时,来讲解软件项目管理。但是考虑到后续实习项目的普遍性,我们可以考虑把重点放置在面向对象的分析和设计方法,而对于结构化的分析方法我们只需要简单讲述,让学生有个大致的印象。同时,我们已经开设了一门编程语言,特别是大多数学校已经开设了Java等面向对象的语言,同时开设了数据库课程。这样我们的课程重点就可以放置在:

①通过UML用例图、活动图(其中,对象流用于领域分析和数据库设计)以及US时序图(讲解系统与用户的交互)来完成系统的需求分析。通过用例图整理系统的详细功能描述(也可以使用IPO图),最终结合文字内容形成软件需求规格说明书,同时使用Word设计系统的验收测试标准和初步用户手册。

②接下来,复习面向对象的概念,包括:对象、类、继承、接口,以及依赖和关联关系,为面向对象的分析设计打下基础。

③讲解模块设计的原则,选择系统架构,需要我们讲解MVC、分层、CS等架构基础。

④通过初步设计,应用领域知识,形成领域类图。然后根据US时序图完成MVC设计时序图,完成初步设计。

⑤接下来,讲解如何根据MVC设计时序图,细化类的属性和方法,完成类图的设计,确定各个类的关系。

⑥接着,讲解组件图和配置图,设计部署代码的结构。

⑦最后,讲解测试的方法,以及如何通过工具完成测试的自动化。对于我而言,对于极限编程比较熟悉,而且熟悉Java的JUnit体系框架,这样可以通过实例讲解单元测试的自动化。同时,讲解系统测试的自动化,以及压力测试。

当然,所有的讲解最好是以实例为主线,我们将借鉴国防科大的思路,以一个实例贯穿始终,在各个生命周期进行相应的设计,让学生对系统的需求、设计、实现和测试有一个更直观的印象,为后续的课程设计以及毕业设计夯实基础。

三、软件工程专业方向的定位和特色

我们参加讨论的老师就各自学校软件工程专业方向的定位和特色纷纷发表了自己的意见,总结起来有以下几项。

(1)国防科大对技术类的人才培养仍然使用传统教法,对指挥类的人才培养从管理方向、从用户的角度培养。李暾老师指出没有领域背景知识,软件工程比较难学。单纯学习软件开发很难进行软件工程。计算机专业软件工程该怎么开展,值得讨论。

(2)服务于行业,为行业计算机应用的发展供支持。同时,应尽可能培养学生对于学校特色专业领域的熟悉程度,以解决因为行业整体计算机水平的提高导致计算机专业人才的应用领域不断受到挤压的问题。

(3)各个高校对于软件工程专业方向的定位存在很大的差别,以软件工程为专业方向的专业定位于系统地培养学生的系统设计与开发能力;而在计算机科学类专业中软件工程课程一般只是作为一门课程来开设,这也是目前绝大多数的高校中的现状。

相关文档
最新文档