软件开发基础知识实用13篇

软件开发基础知识

篇1

1计算机软件开发概述

随着社会经济的不断发展与更新,计算机的技术也在不断发展,虽然发展的历史不长,但是已经取得了明显的进步,都在利用着计算机的有利的效果和一些方面,计算机的开发和更大的进步是现在现在需要解决的问题,软件的开发与进步也是对社会有着不可或缺的力量,目前计算机也大概能按照使用者的需要执行各种需要的任务,是计算机的核心系统CPU将电路分成两种状态通路和不通路,并且和数学中的二进制有效地联合起来并执行使用者给的任务和命令,要想有效地实行使用者也必须采用二进制的方法,这是人机交流方面的一个重大进步,但是计算机也有一些缺陷是我们必须解决的,所以也是亟待解决的问题,然而的计算机研究人员在原来二进制的基础上再进一步地发展了和研发了高级计算机语言,这个方法是通过英语简化语言的方式,准确而又方便地实现了计算机器与人类的各种信息的交流,也进一步的方便了人们的生活和日常的工作。而目前是主流的VF和VB这两种可视化的编程语言的出现,让计算机的软件技术又在人类的发展历史上有一个里程碑,也使得平时生活中对计算机软件的开发技术感兴趣和有着深刻了解的人也可以简单地能控和致力于这些技术的发展,时代是进步的,技术也是不断发展的,也由此快速而又逐步趋向简洁的发展可以看出当前的计算机软件正在朝着更加有利于人们的方向发展,技术开发也在朝着简单有利的方向进行着,这是目前有利的一方面,还是需要更多的计算机研究人员们的不断努力。

2存在的问题

2.1计算机软件开发的特点

计算机的技术也在不断地成熟,随之而来的是软件的开发也是相当热门的门业与行类,伴随着计算机技术的发展计算机的软件技术也在不断地更新中,计算机的软件开发技术也在不断地发展中,就在短短几十年的时间取得了很大的进步并且目前仍有特别大的发展空间,在迎合人们生活与工作等各个方面的需要。新的计算机软件技术也在更新交替出现,目前已经存在的计算机的软件技术也在进行着不断地更新,因此,也毫无疑问地可以看出来计算机软件最明显的一个特点就是不断地交替,不间断,有着持续性。虽然目前有很多的计算机软件,但是随着经济的发展和社会的需要,新的计算机的开发软件也总是在顺应着人们的要求不断出现,也总是有不同程度的创新和发展,而软件的创新也是一个不间断的持续的过程,需要加以想象力并且很好的研究,但是对于已经存在的计算机软件不应该摒弃它们的作用,应该对其加以改革和创新,保持持续不间断的更新,才可以保证自身的安全性和其中的稳定性,就比如常见的也经常利用的Windows操作系统,作为一种现在的软件系统它就会定期地隔一段时间进行更新也会对自己的不足进行系统的完善,并且也会一些更新的消息可以自动进行更新,这也是其中的优势所在,软件的开发业在各个领域的运用中扮演着越来越重要的作用。另外,计算机软件技术开发的特点也是不断地随着经济的发展和运用以及社会生活在不断更新,计算机软件系统具有很强的针对性,对日常生活的需要和工作的各个方面都具有很大的帮助,也是它能够独立地发展成一门学科的关键所在。计算机软件的基础框架构架对于目前来说计算机软件的开发与设计已经成为了一个系统性的工程,对于软件设计的各个环节已经形成了一些固定的模式,所以在计算机软件开发的过程中最为重要的就是它的基础框架的构造与设计,只有选择一个优秀的基础框架这样才能够保证计算机软件开发的后面一些程序的编写,系统的维护和技术的拓展有着更高的利益和方便之处。因此在计算机的基础软件开发中和平时的活动中,必须首先确定计算机软件的基本框架,确定需要的基本目标,更有利于研究人员的开发,也能够为后继工作的编写提供给我们更多的便利。一个重要的问题是需要必须提高软件工程中的速度。

2.2计算机软件开发的过程

计算机软件的基础构架完成就需要进行一些编写工作,对需求分析工作已经认真的完成,就要进入最重要的环节,对于计算机的软件系统的实际设计环节,目前在这个过程计算机软件的研发人员最经常使用的C语言的编程,主要是因为它是高级语言,这种高级语言的结构性和它的基本框架都比较突出,所以被很多编程的人员经常使用,目前在软件编辑领域也出现了很多VF等可视化的编辑语言,但是人们大多还是使用C语言,也是因为软件设计的特殊性。一个重要的问题是需要必须提高软件工程中的速度,速度对大部分人来说都是一个重要的问题。对于基础框架的设计与利用是必须严格遵循一定的逻辑关系,计算机软件的设计是利用特定的逻辑关系必须对软件的内容进行严格的定义,而研发人员所必需遵循的特定的逻辑关系就是计算机软件技术开发中的基础的框架构造,因为计算机的基本框架的构造不仅能够决定平时运用这些软件时运行的流程和运行计算机的方式流程和速度等,还会对未来软件的维护和在发展产生更重要的影响,但是对于计算机的软件开发的基础构架不能是封闭式的,如果是封闭式的就不会具备这些基本的扩展能力,还有一个问题就是由于在编写程序的时候一些软件的系统的本身就比较复杂,这就需要研究人员的共同完成,这也造成了这个软件本身系统的庞大性,所以有时候在实际的编写过程中,那些本身庞大的软件在进行编写操作的时候会被分割成好几个编辑模块,在这些被分成细小模块的基础上就必须确立一个主函数,利用这些主函数对这些细小的模块进行管理,就比如在计算机系统软件在进行操作某个程序的时候,主函数就会对这些分散的编辑模块进行统一的调用,这样才能实现各个模块统一协调的工作,使得整个系统能够完整有序地进行,同时也提高了计算机软件设计的工作效率,加快了工作时的速度,正是因为多人的分工合作,才能更大地加快计算机软件系统的开发与工作状况。

2.3计算机软件开发的测试与维护

对于计算机中软件系统可以说是整个计算机系统中最重要的管理系统,计算机的系统会根据软件的系统进行各种工作。而目前对于计算机软件的基本框架基础应用最广泛的有3层:表示层、逻辑层、和数据层三层结构组成的基础的构架,在现在的基础框架中软件表示层、逻辑层和数据层分别对应着计算机软件系统的人机交互界面,逻辑关系和计算机语言区。这样对一个软件有了基本的基础构架,在后期进行维护的时候才能不伤害其他系统,仍可以使其他系统有条不紊地进行。一个优秀的软件技术的基础构架能够极大地提升在计算机软件的应用的效率和运行的速度。而当前的计算机软件系统的针对性也越来越强,所以在后续运用方面进行运行管理时应该根据自身的结构基础进行调用,面对目前计算机软件的开发形势与方向,研究人员必须进行一定的讨论最后再根据需求者的应用设计不同的适合客户发展的方面。这样既可以保证工作的方向性,也可对后部计算机软件的维护发挥一些重要作用,也可方便研究人员的设计工作。这些软件在进行编写成功后是不能马上投入到工作的,需要进行调试,一些研究人员的跟随,因为在其中可能会出现一些漏洞。根据各个软件的不同调试方法要利用科学的方法调试,也有益于后期的维护工作。

3计算机软件开发过程中的问题

3.1确立好计算机软件的基本框架

对于一开始的确立的框架结构必须选择科学无误的框架,才能有利于后期的一些编写的进行,计算机软件的研究开发人员必须进行准确无误的研究讨论,最后才可以确定客户需要,所以对于第一步的框架构造应该认真选取方案。

3.2完善程序编写数据

计算机软件技术开发过程中对于程序的编写的工作,根据第一步框架结构能够无误地进行,编写工作的进行跟从主函数的分配才使得各个工作有条不紊地进行,所以确实主函数,研究人员应该正确地讨论主函数的选用,才能使得主函数有利的支配于编辑模块,各个工作人员的分工才能更好地进行,对编写工作也有很大的方便性。因此在计算机的基础软件开发中和平时的活动中,必须首先确定计算机软件的基本框架,确定需要的基本目标,更有利于研究人员的开发,所以说建立基本的框架基础是首要目标。应该满足客户的要求进行软件的编写工作,而目前在日常生活中最常用于生活的是C语言,C语言主要特点是它的结构明显的突出,它的基础框架也是特别优秀的,也能够为后继工作的编写提供给更多的便利。一个重要的问题是需要必须提高软件工程中的速度,速度对大部分人来说都是一个重要的问题

3.3做好软件最后调试

最后就是完成后对于计算机软件的调试工作了,软件不能立即投入到使用中,需要进行严格的调试并认真地改正,满足客服的需求,在后期进行维护的时候才能不伤害其他系统,仍可以使其他系统有条不紊地进行。一个优秀的软件技术的基础构架能够极大地提升在计算机软件的应用的效率和运行的速度。这也方便后期对这些软件漏洞的维护,需要对大部分的数据进行研究工作,以保证计算机软件的有效进行,也可以防止后期漏洞的产生,也可以加快软件自动更新的作用。

4结语

随着当代社会经济的发展,计算机软件的开发技术已经深入日常生活中,也大大方便了平时的生活,成为了不可或缺的力量,编写的过程可能有些许的复杂,但是只要研究人员深刻的投入,所有问题都是可以解决的。

参考文献

[1]金红军.规范化在计算机软件开发中的应用[J].物联网技术,2016,(01).

[2]董海,叶永利.计算机软件开发的JAVA编程语言分析[J].数字技术与应用,2016,(01).

[3]许葵元.浅谈计算机软件开发中的分层技术运用[J].数字技术与应用,2016,(01).

篇2

1引言

软件学院软件工程硕士的培养目标是培养高层次、应用型人才,针对这个目标,其教学实施应着重体现出以下两个差异性:

(1) 软件工程学科领域和计算机学科领域间专业设置的差异性,这个差异应能够很好地体现培养应用型人才的目的;

(2) 工程硕士课程和软件学院本科课程的差异性,这个差异应能够很好地体现培养高层次人才的目的。

目前国内软件学院软件工程学科和传统的计算机科学学科在课程设置上差异还不显著,工程硕士的培养方案中甚至部分课程只是本科阶段的重复。虽然大都开始强调学生的软件项目实践,但普遍缺乏过程管理。本文在对IEEE的软件工程知识体系进行深入学习的基础上,针对软件学院软件工程硕士提出了实现开放式教学体系的教学改革方案。

2软件工程知识体系

2004版SWEBOK将整个软件工程知识体系分为11个知识领域(Knowledge Area,KA),其中前5个知识领域是按软件开发的生命期诸阶段排列的,即软件需求、软件设计、软件构造、软件测试和软件维护;后6个知识领域是软件开发中的支撑性或者辅的方面,可能覆盖软件开发的多个阶段,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量、相关学科知识领域。这些知识领域SWEBOK并没有重新系统规定,而是直接套用已经成型的各领域知识体系,因此不可避免地存在重叠和不匹配。

在SWEBOK的基础上,IEEE与ACM又共同拟定了CCSE。其中的核心部分是软件工程教育知识(SEEK)。SEEK由十个知识领域组成,包括:计算机基础(CMP)、数学和工程学基础(FND)、职业实践(PRF)、软件建模与分析(MAA)、软件设计(DES)、软件验证(VAV)、软件演化(EVL)、软件过程(PRO)、软件质量(QUA)、软件管理(MGT)。

可以看出,SEEK和SWEBOK基本内容是相近的。总的来说,二者都是包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识。

3高等教育教学改革研究状况

目前国内关于高等教育教学改革的论文很多,如翁敬农、刘云等在软件学院实践教学体系的内容与规划中提出了“一个目标”、“两种途径”、“三大环节”、以及“四级台阶”的具体步骤。王移芝、林艳琴提出基于“两段教学”的计算机基础课程的教学体系框架。谢芳清、闫大顺提出了以素质教育为目标的实践教学体系。王浩、胡学钢等提出计算机科学与技术专业实践教学体系的总体研究与建设。王志英以国家实验教学示范中心为例,提出实践是综合能力培养的基础,并以此构建计算机科学与技术专业实践教学体系。董玮、邱建华等以专业课“程序设计基础(C语言)”为例给出了建设实践教学体系的实践探索。然而目前还没有检索到专门研究软件学院工程硕士教学改革的论文。无论是从传统计算机科学与技术专业与软件学院软件工程专业的区别,还是本科生与研究生的区别来看,针对软件学院工程硕士的教学改革研究都是十分有必要的,同时也是迫切的。

4工程硕士的课程体系设计策略

我们以IEEE SWEBOK和CC2004SE的知识体系为主体,结合中国软件产业以及本院的具体实际情况,设计了中国科学技术大学软件学院软件工程专业的知识体系,作为我院工程硕士课程设置和教学计划实施的依据。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置可以分为三个层次,即导论性课程、软件工程核心课程和其他课程。如图1所示,该知识体系定义了7个知识体系子类。计算机基础和数学和工程学基础属于导论性课程、其他课程包含了职业实践、领域课程、软件工具、工程实践等四个子类。

其中计算机基础定义了软件工程作为计算学科所必需包含的计算科学基础以支持软件产品的设计与建设;数学与工程学基础提供了软件产品获得所需属性的理论和科学基础;职业实践则聚焦于软件工程师以职业行为从事软件工程实践所必需具备的知识、技能和态度;软件工程核心课程应该包含软件开发生命周期所涉及到的主要知识领域;领域课程包含了对于某个特定领域软件工程师应该接受的特定教育或经验;软件工具定义了从事软件工作所必需掌握的当前主流工具与软件产品等;工程实践则是学生使用所学到的知识从事实际开发活动,提供动手能力的重要环节。

对于工程硕士来说,大部分同学经过计算机本科专业的学习,已经具备了初步的计算机基础以及数学与工程学基础,因此目前其课程体系建设如图2所示,重点是完成软件工程核心课程教学,并结合IT界的最新技术趋势设计相关领域课程。教学改革的核心是如何设计软件工程的核心课程,并指导学生熟练掌握相应的软件工具,强化他们的实践动手能力。

5工程硕士开放式教学体系建设

对于如何设计软件工程的核心课程,我们的主要思路是打破原先各子知识体系间的界线,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,实现一个完整的开放式教学体系。如图3所示,整个开放式学习体系包含三个部分:

(1) 设计课程组:在理论环节采用课程组的概念,集中讲授较高层次的、符合硕士生水平的软件工程的某些重要环节;

(2) 开设实践教学环节:在实践教学中采用做中学(Learning by Doing或LBD)理念,由指导教师讲述软件工具的具体操作过程,同学实际动手学习;

(3) 强化工程实践:在工程实践中由学生自主选题,并将LBD中讲述的工具在项目整个生命周期中贯穿使用。

5.1设计 课程组

目前我院开设的高级软件工程和本科的软件工程课程内容并没有太大差别,对于软件工程的各个环节面面俱到,但又都比较浅显,对于工程硕士的培养显然是不合适的。因此我们设计了软件工程课程组的理念,初步设计了以下课程:

(1)“软件开发管理”(Managing Software Development)

(2)“软件系统架构”(Architectures for Software Systems)

第一门课程主要针对以后立志从事软件工程管理方向的同学,课程针对IT项目集中阐述如何实现风险、资金、工期等各方面的管理;第二门课程主要针对以后立志从事软件高级开发方向的同学,课程主要讲述复杂软件系统架构层上的设计,介绍目前通用的软件系统结构、设计技术以及实现这些结构的模型、表述方法等。这两门课程对于软件工程硕士应该至少必修一门。除了这两门课程,其他软件工程类的课程包括了设计模式、软件测试、语言类课程如J2EE、.NET等等,学生可根据自己的实际情况进行选修。

5.2开设实践教学

针对该课程组,我们开设了实践教学环节,采用做中学理念,由指导教师(可以由助教担任)根据事先确定的主题,选用具体工具讲述如何使用该工具完成项目开发的某具体环节,工具涵盖了项目管理、架构设计文档化以及测试等软件项目开发的主要方面。

对于软件工具的选择,有两种思路。一种方法是对软件工程的不同环节分别选择不同工具,例如项目管理选Project、开发文档化选Rational、测试再选别的工具这样来做,但结构分散,不利于整体化考虑。另一种是采用套件,完成项目开发全程的所有操作,目前我们选择了两种套件,一是微软的VSTS,该套件和微软的Visual Studio开发平台绑定,适合学习.net开发框架的同学;另一种是IBM的RSA,该套件和Eclipse开发平台绑定,适合选择开源J2EE开发框架的同学。

5.3强化工程实践

大多数的软件学院目前都开设了专门的工程实践环节,但实际的效果并不尽如人意。因此我们将工程实践环节也纳入到开放式学习体系中,以前面所说的理论以及实践教学环节来指导学生更好地高质量完成整个工程实践。

从教学方法上,工程实践应尽可能地贴近现实项目,除了常见的软件工程文档,我们还要求学生提交过程管理类文档(软件开发合同、会议记录、工作日程记录、合同执行报告:财务报告和开发过程报告、个人总结、小组总结等)。

从技术上,学生可以自由选题,也可参考工程实践题库中的选题。选题涉及所有领域课程包含的内容。要求学生必须采用实践教学环节中介绍的工具全程介入项目开发的各个阶段。学院设立专门的工程实践网站提供学生选题及交流,以及指导教师的监督。

从教学形式上,则注重如何实现应用型软件人才的核心能力分析与培养,要求学生运用职业实践子知识体系中的相应内容,锻炼学生的口头表达能力、书面表达能力等。通过学生的开题演讲、采用各种工具完成相应的项目文档、结题答辩等环节来实现学生职业素质的培养。

从实践效果评价上,我们制定了一系列的成绩考核方法、管理考核信息、分析考核结果、评价教学质量等措施,实现完整的考核体系。

6结论

软件工程专业学生的培养,在学科教育与培养面向市场需求的人才方面有着事实上的矛盾。软件学院现有的实践教学体系存在着专业课程设置定位不准确、课程实验师资不足、实验教学内容质量不高、实验指导和管理落后等问题。根据软件工程专业教学所面临的挑战,在充分调研IEEE SWEBOK和CC2004SE知识体系的基础上,针对软件学院的工程硕士,我们提出了软件工程硕士开放式教学体系的建设,围绕专业培养目标,结合学生的工程实践,引入课程组的概念,制定了一套较为完整的开放式实践教学实施计划。

参考文献 :

[1] Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering [EB/OL]. [2004-08-25]. /ccse/SE2004Volume.pdf.

[2] 翁敬农,刘云. 北航软件学院本科生实践教学体系的研究与实践[J]. 计算机教育,2007(11).

[3] 王移芝,林艳琴.“计算机基础课程”实践教学体系的研究与实践[J]. 实践教学,2008(8).

[4] 谢芳清,闫大顺. 计算机工程专业实践教学体系的研究[J]. 中国科技信息,2008(9).

篇3

智能交通软件开发能力是交通控制类专业学生的重要能力,与通用软件开发既有区别又有联系。它们的共同点是软件开发,它们的区别在于交通软件需要开发者掌握交通领域的专业知识。这决定交通控制专业的本科生所要掌握的知识比计算机专业多很多,受学分和学时限制,这对该专业的教学管理提出了新的挑战。

就智能交通的多交叉学科的特殊性来说,必须以系统的观点充分考虑智能交通软件方向的各课程所包含的实践教学环节的共性和特性,但目前我国的该方向课程体系缺少融合,一门课程独立进行方案设计和建设容易造成教学内容重复、授课学时紧张和浪费以及相关知识点的前后衔接混乱等,该现象使学生对课程中学习到的知识和技能如何应用于实际企业项目的执行过程不熟悉,从而造成用人单位在招聘学生时最先看重的学生实践能力缺少锻炼的缺憾。因此,亟待对相互衔接的智能交通软件方向教学实验内容进行融合,构建一个面向应用型人才的课程群建设。

一、培养学生智能交通软件开发能力的课程设置

根据智能交通软件企业对相关岗位的技能要求,构建以熟悉企业生产加工流程为核心的旨在建设专业内多课程大流程管理的项目并付诸实施,即:利用实际项目所需知识点将课程链中的相关或相近的课程串接起来,以通用软件开发能力和交通系统分析两条主线为教学重点,围绕智能交通系统的需求分析、软件总体设计、程序编写和测试维护,按基础理论类(高级语言程序设计、数据结构和算法设计、数据库)、技术类(交通地理信息系统、车辆定位与导航、交通信息网络与通信)、实现类(交通信息系统)、应用类(公共交通方向等)为序,分别构建一个结构合理、层次清晰、相互配合、相互渗透、课程间相互连接的递进式的课程群体系。实践环节是该课程群的重要组成部分,包括计算机语言算法课程实践、数据库课程设计、交通信息系统课程设计、智能交通软件方向实习、毕业设计等。

二、基础理论、技术类、实现和应用四类理论课程的具体内容

基础理论类课程包括高级语言程序设计、数据结构和算法和数据库三门课程,是通用软件开发的最核心知识。高级语言程序设计是软件开发的最基本工具,培养学生以计算机思维解决工程问题。数据结构和算法分为两部分,一是分析程序逻辑复杂性,二是优化程序结构,为开发好软件的灵魂。数据库是解决如何安全高效数据存取的问题。

技术类课程侧重于培养学生掌握智能交通的数据采集、传输和信息关键技术,开设交通地理信息系统、车辆定位与导航、交通信息网络与通信等相关课程。交通地理信息研究如何利用点、线和面描述交通系统拓扑结构,结合车辆定位与导航技术,据此统计分析交通事件在时间和空间上的分布特征。车辆定位与导航主要研究如何定点采集各个道路的交通事件。交通信息网络与通信实现了交通检测点和数据中心之间的数据传输和通信。

实现类和应用类课程是一个有机整体,仅设一门交通信息系统,它是基础理论和技术类多门课程知识的综合运用,以一个某交通领域的实际应用为研究对象,如:交通控制、公共交通系统和物流等,围绕交通软件的需求分析、软件设计、实现和测试、文档编写,培养学生理解和掌握如何开发一个软件的全过程及其可能遭遇的问题。

三、基础理论、技术类、实现和应用四类课程之间关系

基础理论类的三门课程(高级编程语言、数据结构和算法和数据库等课程)让学生掌握通用软件开发的最基本知识,通过实现类课程(交通信息系统)告诉学生如何利用基础理论类课程所学知识开发一个简单通用软件,而技术类的三门课程是交通软件中常用的技术和方法。应用类课程相当于案例教学,是软件开发技术在某交通领域中的具体应用,穿插在交通信息系统或其他交通类课程教学中。因此,四个课程模块是一个层次清晰、递进式的课程群体系。

在基础理论类课程中,各门课之间相互连接、相互渗透,高级编程语言是学好数据结构和数据库这门课的基础。数据结构与数据库相对独立,前者决定学生能不能可以编写高质量的程序,为学生入门软件开发行业面试的必备知识;而后者是系统软件开发的数据存储基本工具,常见的SQL Server、Oracle等。

技术类课程模块的三门课是智能交通软件开发的常见关键技术,相对独立、相互配合,在基础理论类课程基础上,交通地理信息系统解决车辆定位与导航的数据可视化显示问题,而交通信息网络与通信是GPS用户终端和数据中心通信交互的技术保障。

实现和应用类课程是一门综合课程,融合了交通专业课程知识,如:交通控制、公共交通系统和物流等,以基础理论和技术类为基础,围绕交通软件的全过程,补充部分软件工程、项目管理等课程知识,是锻炼学生实际动手能力的一门课程。

四、落实“课程群”的教学实践

1.修订培养计划。以应用型人才培养为目标,调研相关智能交通企业,采取专家学者、企业工程师和专任教师、研讨会、座谈会的方式,根据智能交通软件企业对相关岗位的技能要求,围绕完成一个完整的项目所需的知识,构建教学体系及其教学内容,确立基础课程、支撑课程和选修课程。

2.课程整合与优化,整理教学资料。对智能交通软件方向课程群进行整体规划,分析课程之间的衔接关系以及它们的教学内容的相互关系,突出每门课程的重点和难点,强调课程的关联性,避免课程之间内容的重复,并补充不足的知识点。例如:交通GIS的数据存储与数据库部分知识重复,补充软件工程、软件测试等部分知识。结合教育部对我校的本科教学工作水平评估,全面修订了这些课程的教学大纲和实验大纲,撰写实验指导书。

3.改进理论知识教学。结合真实企业软件开发项目教学,注重知识点的运用,后续知识点则反复利用和提升前面的知识。先行课程为后续课程做铺垫,将专业中多门相关课程以一个涵盖大流程地串接起来。例如:交通GIS的数据存储要用到数据库的知识;交通信息系统教学需将系统设计、数据库访问、界面设计、编码和测试等各个方面联系起来讲解。

篇4

我国2002年启动了软件工程硕士培养程序。借助于计算机科学技术、数学、管理科学与工程诸多学科,软件工程已由计算机科学与技术专业下的一个学科方向,发展为一个独立的新兴交叉一级学科。但由于我国传统的高等教育注重科学研究能力培养,工程化人才教育开展时间较短,培养体系尚在不断改革完善,因此在很多院校中软件工程学科还没有脱离计算机科学与技术的范围,所培养的软件工程人才与工业界的要求尚有一定距离,整个硕士培养过程中,课程体系的设置是影响研究生业务能力和素质的重要因素,因此以企业需求为导向,以软件工程知识体系为核心,以训练实践能力的为目标的层次化软件工程课程体系改革对促进高等教育面向社会需求培养人才,全面提高工程教育人才培养质量具有十分重要的示范和引导作用。特别是在硕士生的培养上,对课程学习与学位论文的要本文由收集整理求一般是同等并重,合理的课程体系是高等院校保证培养目标和形成办学特色的重要手段。软件工程硕士的定位和其他学生不同,这为我们的课程设置、建设与管理提出了新的挑战。

通过对国内众多高校的软件工程专业培养方案和课程设置进行分析,将其分为以下四种主要类型[3]:

(1)完全独立型:将软件工程彻底从计算机科学与技术专业分离出来,作为独立的一级学科,课程设置上综合计算机、数学、管理科学与工程等学科,偏重于数学基础,但实践能力较缺乏。

(2)以计算机科学与技术主体课程为基础,以软件工程理论课程为核心,加强实践教学型。以计算机科学与技术的课程体系为主体,教学中突出软件工程的知识体系,加强实践教学,根据企业需求或者人才市场需要,按照工程思想进行实践教学,同时校企结合,试图在实践中摸索和学习软件工程的工程理念,但在进行实践之前的软件工程理论基础不牢固。

(3)实践加强型的计算机科学与技术课程体系,在这个模式下,课程体系基本和计算机科学与技术相同,只是加强了实践环节,学生在学习和就业方面没有脱离计算机科学与技术专业,工作中所学的工程理念需要自己去学习。

(4)其他类型,鼓励学生参加各种软件大赛,推荐学生参加各种证书的考试,获取各种软件企业证书。这种类型中,学生所学内容较多,但是正是为了考试而学习,基础不扎实,同时真正的工程实践能力不够。

因此我们认为,目前的软件工程还没有脱离计算机科学与技术的范围,无论是从传统计算机科学与技术专业与软件工程专业的区别,还是本科生与研究生的区别来看,针对软件工程硕士的课程体系建设和教学改革研究都是十分有必要的,同时也是迫切的。

二、生源基础分析

gswe2009对给出了软件工程硕士的三种主要生源:

(1)在职程序员,由于没有受到过正规研究生教育,有些企业的在职人员对理论知识匮乏,因此具有系统学习的愿望;

(2)其他领域的专业人员,由于软件工程职业的兴起,以及目前人才市场对该专业的需求,使得其他领域的专业人员想要加入软件工程的队伍;

(3)没有工作经验的本科毕业生,在当前就业压力下,许多本科毕业生毕业后选择继续深造。

在我国,软件工程硕士研究生多是没有工作经验的本科毕业生,正式由于这些大学本科毕业生的基础专业各不相同,使得软件工程硕士研究生的课程设置更加复杂和重要。

三、知识体系分析

2004年8月,有全世界五百多位专家教授推出的软件工程知识体(swebok)和软件工程教育知识体(seek)两个文件的最终版本,包含了软件工程核心类的知识领域、基础类或前导类的知识领域以及其他相关领域的知识。2009年, gswe2009中的教育知识体系cbok主要来源于swebok,同时也参考了seek2004、incose2003和haskins2007。与swebok2010同步,gswe2009包含了一个新的知识领域ka(职业实践)和四个关于教育的ka(工程经济学基础、计算基础、数学基础和工程基础),同时两个在swebok中没有出现的ka(系统工程基础和职业操守指导)被加入了cbok。此外,cbok还调整了一些知识单元和知识点[4]。gswe2009由准备知识、核心知识、大学特有知识、选择性知识和顶点经验所构成。其中的大学特有知识有学生的入学基础决定,在整个硕士研究生的培养过程中,主要为学生设置学习专业核心知识之前的准备知识以及在学生职业实践课程中所需要的选择性知识,而顶点经验需要学生在学习专业核心知识和进行职业实践的过程中积累,因此,课程设置中准备知识和专业核心知识的设置以及学习方式尤为重要。

四、课程设置分析

通过对软件工程知识体系进行分析,软件工程硕士研究生应具备的主要能力有:基础开发技能、团队合作技能、发现并解决问题技能、系统建模技能、文档撰写技能。我们将硕士研究生的培养阶段分为:理论知识学习、职业实践、论文撰写三个阶段。在前两个阶段中,我们给出了三单元课程、两步实践的方式,三单元课程分别是:必选课单元、必修课单元、自选课单元,两步实践有:模拟职业实践、实际职业实践。传统的理论学习和职业实践通常是完全分开的两个阶段,但在软件工程这个特殊的学科,我们将理论学习和职业实践结合起来,在进入理论学习第二单元的同时进入模拟职业实践阶段。理论学习三个单元具体设置如下:

(1)必选课:选择工程经济学基础(例如知识产权与法律、企业管理与文化、领导学、信息经济学 、市场营销学等)、计算基础(例如算法设计与分析、高级软件工程、高级数据库、高级操作系统、高级网络技术)、数学基础(离散数学 、组合数学、 工程数学、数值分析)等准备知识中的专业主干课程按学科分类作为新生入学的必选课,取代以往将某些固定课程作为所有学生的基础课的方式,方便根据学生大学所学专业来选择自己所欠缺的准备知识进行学习,是知识的储备阶段,在本单元根据学生所选课程的成绩作为给定学分的依据。

(2)必修课:将软件工程基础中的核心知识(例如软件体系结构、软件项目管理、软件质量保证与软件测试技术、软件系统建模原理和方法、基于cmm 的软件过程改进、软件开发方法、软件需求工程)作为所有学生的必修课,培养学生能够系统全面地了解软件工程的概念,旨在学生具有扎实的软件工程及相关专业基础理论,熟练掌握软件工程知识和技能,并且具备作为软件工程师从事工程实践所需的专业能力。在学习核心知识的同时,适当加入模拟职业实践的训练,根据学生的学习方向,将学生进行分组,进行模拟题目的训练,题目可以是各类大赛的题目、教师的科研课题以及学生自己选题,这是学生职业实践的第一步,培养学生基础开发技能、团队合作技能、系统建模以及独立创新技能,之所以称之为模拟职业实践,是因为这一步的实践题目并不是真正的软件工程课题,而是采用软件工程思想的实际课题,为下一步学生进入企业进行第二步的实际职业实践奠定基础,在本单元根据学生的课堂表现以及最后考核给出一部分成绩,另一部分成绩给出的依据是学生实践课题的完成情况以及在小组中的贡献程度,培养学生动手实践的同时,也提高了学生认识自我、团结合作的能力。

(3)自选课:学生根据自己对软件工程的理解以及通过对上一个单元所做题目的分析,选择自己所需要补充的基础专业知识,自行选择和学习,培养学生发现并解决问题以及自觉学习的能力。在这一单元中,导师根据学生所选专业知识的准确性以及学习之后对该软件工程专业的认识给出学生的成绩。

传统的课程设置一般都是先学习再实践,或者是边学习边实践的过程,前者学生在学习理论的同时没有实践练习,导致学生理论与实践结合得不好,后者在学习的过程中进行实践,锻炼了动手能力,但是学生往往不知所以然,只是按照老师的讲解去实践,对理论的指导作用理解不够,而我们通过上面学习-实践-学习的过程,学生不但对软件工程相关知识有所掌握,也具备了一定的实践能力,同时也培养了学生具有不断补充知识、总结自己、提高自己的意识和能力,在实践中体会到理论知识的作用,从而能够主动学习。在这个过程中,学生在学习软件工程核心知识的同时进入了职业实践的第一步模拟职业实践,将理论和实践很好地融合在一起,使理论的学习过程不再枯燥。

篇5

技术素质问题,对构建科学的矿山工程类专业技术人员培养体系,以及进行在岗培训与提高具有重要意义。 

一、对矿山工程类技术人员计算机技术素质的基本要求首先应明确,作为汁算机技术的应用者.矿山工程类专业技术人员对计算机硬件知识的掌握,只需具备能正确使用和维护汁算机硬件的水平,其计算技术素质的要求主要是指对计算机软件的理解、掌握程度与使用能力。从软件的开发与应用过程可知,针对计算机软件的开发与使用,有四个不同技术层次的人群:1.进行软件工程理论研究与软件开发战略研究的软件科学家。2.针对应用实际,进行软件设计、测试的软件工程师。3.根据设计编写原代码制造软件及进行软件售后服务的软件工人。4.购买商业软件使用的用户。矿山生产要求矿山工程类专业技术人员,一方面能开发解决本企业生产中出现的特殊技术问题的软件;另一方面能使用通用软件解决矿山企业具有普遍性的技术问题。前者的特点是紧密结合矿山工程实际,具有特殊性,但不一定复杂,由于软件一般为解决特殊矿山工程问题的专门性中小型软件,因而需要自主开发,或是在通用基础软件平台上二次开发;后者解决的则是较复杂的矿山技术或管理问题,软件由有关的专业单位研发,矿山技术人员重在能熟练使用。由上述分析可知,矿山生产经营过程对矿山工程类专业技术人员的计算机素质提出的基本要求是:能进行中小型软件自主开发或二次开发,能熟练使用矿山用大型软件,同时也应能使用公共性通用工具软件,要求其计算机技术知识水平与能力水平,是介于软件工程师与高级软件工人间的水平,这与计算机专业人才的水平要求是有区别的。

二、矿山工程类技术人员应掌握的计算机技术知识矿山工程类专业技术人员应用计算机技术解决问题,主要集中在矿山工程的技术设计、生产与技术管理系统开发、数据处理如矿山测量计算、矿压数据分析、矿山变形观测与分析等、矿图绘制以及综合性的矿山地理信息系统开发等方面。因此矿山工程类专业技术人员掌握的计算机知识,应涵盖计算机通用知识、网络知识,具有强大计算、绘图功能和地理信息系统开发功能的基础平台软件使用知识,软件设计与原代码编写的基本知识等方面。其具体应掌握的内容包括:1.基础知识:熟练掌握主流操作系统及计算机网络方面的基本知识,计算机病毒清除与预防知识,对通用型常用工具软件能熟练使用。2.掌握auto cad及gis类软件的使用知识,这些大型基础平台软件是工程设计、矿图绘制、矿山地理信息系统开发方面的基础软件,掌握程度应达到能在其基础上开发适用于本企业特点的中小型应用软件的水平。3.掌握软件工程的基本理论,具有软件开发的基本知识与技能,掌握c及c十+编程语言,能自主开发矿山矿压数据分析计算、矿山测量计算、矿山开采沉陷、矿山变形观测与分析、矿产储量计算与管理、仪器设备管理等方面的中小型软件。4.掌握一些专用软件的使用方法,如矿图数字化软件、矿山工程中力学方面的计算软件等。 

三、矿山工程类技术人员计算机技术素质的培养与提高根据霍州王庄煤矿在矿山工程类技术人员计算机技术素质方面培养与提高的体会,做好这方面的工作需采取多种方式。一是做好基础培训。对近年来的院校毕业生,其基础培训在校学习期间已完成,实践证明其计算机技术基础是比较好的。对计算机技术基础差的老技术人员应采用脱产培训的办法,并可适当降低要求,以达到能使用专业软件的水平;二是结合工作实践的培训与提高。在具备基本的计算机技术素质基础上,紧密结合具体工作中对计算机应用提出的要求,大胆鼓励专业技术人员屏弃传统手工作业方式,应用计算机技术解决工程技术问题。这实际上是一种自学+实践+探索的方法,它既可解决企业生产过程中出现的实际问题,也是加强和提高技术人员计算机知识水平的最有效途径;三是与院校及科研单位合作,提高在岗技术人员的计算机水平。可有专门培训,也可在与专家合作解决难度较大的矿山工程技术问题的过程中,提高矿山工程技术人员的计算机技术水平;另外,购进专业软件时,厂商提供的培训也是提高技术人员计算机应用水平的机会。 

本文对矿山工程类专业技术人员在计算机技术素质要求、内涵及培养提高方面所作的讨论仅是基于基层工作实践的一点粗浅探索。矿山工程类技术人员的计算机技术素质对矿山现代化建设、提高矿山企业的经济效益具有重要意义,必须作为矿山企业管理的一件大事来抓。 

篇6

计算机“软件技术基础”课程(简称“软基”)是工科非计算机专业计算机基础教学“三个层次”课程体系中第二层次的一门技术基础课,也是我校生物医学工程(简称“生工”)专业学生的一门必修课程,是全面锻炼学生逻辑思维到动手能力的核心课程,是将来生工学生进行硬件类接口程序开发的基础。该课程包含了操作系统原理、数据结构及算法、数据库及应用、软件工程等内容,目标是在生工专业中打造其软件能力的核心地位,使学生掌握计算机软件技术的基础知识和基本方法,培养学生利用计算机技术分析问题、解决问题的基本思路与能力。传统的“软基”教学,由于其涵盖内容广,课程抽象,学生感觉非常难学,教师同样也感觉难教。很多学生在学完“软基”课程后,并不知道应该将所学知识应用于何处的情况非常常见。为解决这些问题,需要对“软基”课程的教学模式加以改革。目前,各大院校都在探索有关计算机教学的改革。我校在长期调研的基础上,仔细研究生工专业的特点和对计算机的特殊需求及依赖性,前瞻生工专业毕业生将来从事的医药卫生工作实践,考虑解决各种医药实践问题所需的计算机知识和应用能力模块,提出针对我校生工专业学生“软基”课程教学体系的改革并付诸实践,构建具有医药院校特点的“软基”课程体系。力求摸索出一条适合医药类院校生工专业特点的、真正做到学有所用的教学模式,使生工专业毕业的大学生能够更好的将所学知识应用到医学领域软件开发和硬件控制中去。

实际上,医药类院校的学生学习计算机,有其自身的特点。首先,医药类专业的学生在高中多数是理科学生,已经养成了一定的分析和解决问题的习惯,具备掌握计算机基本程序设计的数学、算法基础。同时,医药类学生将来要面临大量医学数据的处理和分析,但医药类学生的数学、物理等基础学科相对比较薄弱,这给“软基”课程的学习带来了困难,计算机技术侧重于综合分析问题的能力,包括将问题算法化、逻辑化、数字化,这些都需要比较厚重的数学等自然科学的基础,医药类高等院校学生计算机应用能力比理工类院校学生低,如何在课程建设中体现能力培养,提高应用型技能,是符合我院办学理念和专业培养模式的有益尝试。因此,学好“软基”课程,可以对前面学过的计算机课程起到很好的总结作用,也可以为后续的计算机学习打下坚实的基础。

鉴于以上分析,围绕培养生工学生的软件设计及应用能力,开展教学模式、理论教学、实践教学和自主延伸教学方式方法的研究,提高生工专业毕业生要求的核心竞争力,兼顾教育部对于非计算机专业大学生计算机教育的要求,我们对“软基”课程教学及实践方式进行了调整和改革。

1、理论教学,夯实基础

我校“软基”课程共50学时,但内容覆盖到数据结构、操作系统原理、软件技术、数据库技术等知识。如何在学时少,涵盖门类多的情况下,兼顾统筹,注重“软基”各章内在联系和各章对于学生形成综合研发能力的作用,以此为侧重点进行教学。万丈高楼平地起,基础才是学好知识的关键,只有掌握牢固的基础知识,才能更好的学习后续知识。课堂教学,从简单到复杂,在各个学习情境中选择递进层次性的学习内容,融合“知识+技能+素质”三维度能力要求。采用任务驱动的教学方法,在平时学习和实践考核过程中,学生自主延伸学习,主动查找资料,互相学习,协作完成课程设计。

2、实践教学,提升能力

鉴于国内外大学教育模式的差异,国外的计算机基础教育没有更多的可比性,我们始终关注国内大学的非计算机专业的“软基”课程教学方式的开展和改革。当前,“软基”课程涉及软件工程、数据结构、操作系统、数据库、计算机网络编程等方面知识,内容覆盖面广,各知识模块因为其相对独立性,导致实践教学没有形成以打造学生能力为主线的一体化教学。“软基”课程的每一部分都会对学生软件研发能力的形成有很大影响。有重点的讲授课程,以“精讲多练”为原则,以提高学生综合素质为最终目标,加大实验力度,增加大作业内容和广度,注重学生实践能力的培养,鼓励学生动手解决问题,互相帮助,在培养学生团结协作的同时,使学生在练习中学习,在练习中提高。实践教学是将理论知识充分糅合然后提升的过程,是课堂教学的有力补充,学生的实践开发能力是检验这门课程是否讲好的试金石。如何打破各章知识体系的边界,培养学生综合的系统开发能力,是“软基”实践教学改革的重点。利用实验教学,在验证课堂知识的前提下,引导学生分析问题,自己动手解决问题,鼓励学生优化程序,配合理论教学夯实基础。

3、课程设计,整合知识

采用课程设计的方式检验学生的学习成果。在学完数据结构和数据库技术部分的课程后,学生完成不同的课程设计。数据结构部分,学生随机抽取不同的作业,在一定的时间内独立完成;数据库部分,由学生自由分组(每组人数少于5人),再随机抽取数据库设计题目的基础上协作完成。

通过面向某一具体应用的数据结构和数据库应用的设计,加深学生对数据结构和数据库知识的理解和掌握。数据结构题目的编制将配合ACM竞赛(ACM国际大学生程序设计竞赛,ACM International Collegiate Programming Contest)和“蓝桥杯”软件设计大赛,着重提升学生数据结构模块的算法设计能力;数据库应用设计部分,配合具体应用,促使学生学以致用,更好地掌握知识。通过程序的编写,充分锻炼学生分析问题、解决问题、程序设计的能力,培养学生的团队精神,提高学生学习的主观能动性。

4、网络平台,加深交流

加强网络教学平台的建设,构建数字化学习环境。实现课程教案、电子教案全部上网,教学录像上网,使得学生能够随时“温故而知新”。通过网络,为学生提供丰富的教学资源,对于知识重点、难点给出多媒体演示;通过网络布置课后作业、习题、提交作业;通过网络,实现教师与学生、学生与学生之间的互动交流,共同学习。

5、通过考核,检验教学

我校“软基”课程,学生最后考核的成绩由三部分组成:学生平时的作业成绩、学生课程设计的成绩和期末考试的成绩,各部分的比重为10%、30%、60%。为客观的检测学生学习的成果,改革传统的考试方式,建立“软基”题库。传统的笔试考试由教师命题组卷,试题缺少客观性。建立并完善题库,通过题库系统随机组卷,考查学生的学习情况。期末大作业由以往的教师命题,学生在考试中随堂作答的方式,改成对数据结构和数据库两部分作业程序的编写。课程的考核能充分反映出学生的学习情况和教学情况,使学生能学用结合。

6、知识延伸,开拓学识

由于“软基”课程学时少,内容覆盖广,作为课堂知识的有效延伸,开设C++程序设计、程序算法设计、Java程序设计、数据库应用等选修课辅助课堂教学;和校内有关部门及教研室合作开发项目,在实训中提高实际应用能力;以第二课堂教学和开放实验室的方法,为学生提供良好的学习环境。鼓励学生参加省级计算机大学生比赛,如ACM竞赛和“蓝桥杯”软件设计大赛等,通过与其他学校学生的交流,使学生发现自己的不足之处,督促学生学习。

7、开设“计算机软件综合实践”课程

计算机“软件技术基础”课程教学涵盖计算机多门课程,为使学生更好的了解程序开发过程,掌握程序设计技巧,应用所学知识开发应用程序,近年我校新增“计算机软件综合实践”课程。通过该课程,学生在教师的指导下,针对专业领域内的软件应用问题,有针对性地进行软件设计或专题研究,独立完成一定的设计任务,学会软件设计的基本方法与基本步骤,提高专业知识的综合应用能力,使学生初步具备一定的综合分析问题与解决问题、独立进行软件系统设计的能力,为毕业设计和今后从事专业工作打下初步基础。

通过对学生的教学实践,改变了“软基”课程传统的教学模式,努力做到《基本要求》中对教学方法、教学手段提出的“加强实践环节的要求与考核,加强研究型学习、自主式学习、资源型学习、协作型学习能力的培养”要求,使我校生工专业的“软件技术基础”教学更加适应21世纪人才培养的需要。通过对学生应用能力的培养,我校多名学生在ACM程序设计大赛和蓝桥杯程序设计大赛中获得良好名次。实践证明,根据学生的特点和知识掌握情况,针对不同的教学内容,采用不同的任务驱动的教学模式,在教学中取得了较好的效果,可以极大提高学生学习的主动性和分析、解决问题的能力,培养学生的团队精神,对学生未来的工作和学习都将产生积极的影响。

参 考 文 献

[1] 教育部高等学校计算机基础课程教学指导委员会.《高等学校计算机基础教学发展战略研究报告 暨计算机基础课程教学基本要求》.高等教育出版社.2009.10

篇7

20世纪80年代,计算机业的蓬勃兴起带动系统软件产业迅猛发展。微软英特尔联盟很好地适应了“一台机器,一颗CPU,一套软件”的垂直型产业发展模式,迅速发展壮大。微软通过“与硬件捆绑”,实现了每台PC都装有Windows系统的梦想。

近年来,苹果公司借助软件服务网络化的趋势成功地推出了APP Store的运营模式,其核心是将苹果的iOS系统化整为零,嵌入到iMac、iPod touch、iPhone和iPad中,配以新颖的运营方式,使互联网成为软件开发、部署与运行的平台。此举打破了原有产业发展格局,也使苹果的业务实现了爆炸性增长。

我国基础软件产业化离不开两条路径:一是军用,即应国防所需提供可靠、安全、高效的产品和服务,这需要不断提升产品和服务的技术水平,强调专业化以适应现代战争中愈加复杂的情况和问题;二是民用,体现出大规模工业化发展背景,这条路一直是国产基础软件厂商的软肋,在这一市场,我国基础软件企业长期面临着Wintel格局和开源软件两头挤压。

国产基础软件要实现产业化突破,首先在观念上要改变。英国科学家李约瑟提出:中国曾有非常先进的四大发明,但是为什么牛顿式的工业革命没有在中国诞生?这是中国学术界讨论了半个世纪没有结果的“李约瑟问题”。

其实,“李约瑟问题”的本质是“科学技术”与“生产力”的关系问题。从概念上来讲,这本是两个不同层面的东西,但人们往往误认为拥有“科学技术”就拥有“生产力”。我们经常以我们有四大发明而“骄傲”,却很少有人为它为什么没有化为生产力而“反思”。

面对火药发明的科技成果,我们用它来做节日庆典的“礼炮”,外国人则用它来做侵略的“枪炮”,获取财富;面对指南针发明的科技成果,我们用它来“看风水”,外国人却用它来做航海工具,开拓新航线,发展海外贸易。显然,我们检验科技成果是否有用的标准与国外不同,并没有将生产力作为其衡量标准。

为什么中国缺乏把“科技成果”转化为“生产力”的动力?因为缺少一套规范框架下可度量的科学技术体系,这也是过去人们常讲的“发展软件,三分靠技术”的原因所在。解决不好这个问题,即便有互联网、云计算这样的产业浪潮,人们同样可能与机遇失之交臂。

只有从产品、知识、营销体系全面推进,建设以科技成果转化为衡量标准的创新体系,才能发挥制度创新的力量,推动公司各业务单元成为产业化的主力军。

产业化创新体系的构成

“创新型国家”建设的出发点是推动经济增长方式由“粗放型”向“集约型”转变,简单地说就是建设效益高、成本低,这也是我们做基础软件研发和产业化的初衷。那么从“粗放型”到“集约型”转变的分水岭是什么?是对知识成果转化成生产力的策划和精确度量。

软件和信息服务是智力密集型产业,随着技术的升级、管理的进步和市场的成熟,产业化的成功不再是单靠哪一种因素就能达成,是需要融合科技成果、生产力和市场需求等多方面因素的集成创新。美国系统工程专家霍尔(A. D. Hall)于1969年提出了研究系统工程的“霍尔结构”,借助该理论中的“三轴法”,中标软件提出了以“知识(业务需求)、产品(科技成果)和营销(生产力)”为核心要素的基础软件产业化创新体系。知识、产品和营销分别代表基础软件产业化的三个维度。

三个维度互动,形成推动产业化的良性循环。产品(科技成果)和营销(生产力)结合,形成以生产力度量为指标提升产品研发和服务解决方案,解决从产品到市场收益的问题;产品(科技成果)和知识(业务需求)结合,形成业务需求指导下的技术和产品推广思路,使战略目标更为清晰;知识(业务需求)与营销(生产力)结合,改进总体架构设计,推动业务发展模式变革。

产业化创新体系建设要从“哲学层面”走向“操作层面”,从“总体规划”走向“WBS(项目管理中的工作分解结构)实施”。要将技术和产品变成产业化成果,必须审时度势,依靠自己的力量找到解决产业化问题的切入点。具体到工作层面,不论规划、执行还是项目管理,各部门的工作都必须具有可操作性,即要抓住可执行、可考核的东西。建立一套满足“工作推进、合作共赢、市场开拓、资本运作”需要的工作推进机制,这样才符合组织行为的基本准则。

产品维(科技成果)以客户需求为导向,包括立项论证方案设计、产品研发、产品适配、定型维护和更新换代等关键环节。

知识维(业务需求)推动基础软件产业化始终与应用服务相结合,从“数据信息知识智慧”逐层递进。数据指客观事物的属性、数量、位置及其相互关系等的抽象表示;信息指数据所表示的内涵;知识是以各种方式把一个或多个信息关联在一起的信息结构;智慧指知识的集合与智力的综合。

营销维(生产力)以营和销为立足点,“营”强调自顶向下的顶层设计,“销”强调真抓实干。具体体现在通过评估客户需求,找准细分市场和定位,制订营销计划,改善传播渠道和媒介,建立客户信任,最终提高客户满意度。

产业化创新体系建设

国产基础软件产业化是一项系统工程,需要以创新体系建设为统领,以科技成果产业化方法来指导产品的研发和服务的提供。产业化创新体系中的“体”,是与产业化过程相适应的体制、机制、规范等内容的建设;产业化创新体系中的“系”,是辅助产业化的工程架构思想、创新方法和行业知识库。

在创新体系建设中,要充分发挥自身能动性,融合已有科技成果和广大市场人员的聪明才智,整合营销资源,做好以下几方面工作,并以此作为创新体系建设的切入点。

知识维:推动行业知识管理与国产基础软件结合,通过在医疗、政务、能源(电力)、教育等行业积累知识,以咨询规划和运维为切入点推动国产基础软件在重大行业中的示范应用,组织公司培训宣贯ITSS服务标准,提升运用企业架构(TOGAF/FEA)和创新方法(TRIZ)的水平。

篇8

二、对软件工程体系的创新对策

1对软件专业进行内容整合

毫无疑问,改革是软件工程专业课程体系优化的关键所在。传统的设置不仅无法保证课程轻松地进行,而且严重影响了最终质量,因此,应当将一些内容进行合理地合并。例如,离散数学、人式智能和编译原理等课程均涉及到了图论知识,那么此时便可建立一个课程组,将有关内容集中在一门课程中进行详细地讲解,与此同时,对于那些出现在其他课程中的内容要进行选择性地删减,以便节省课堂教学时间。不仅如此,培养学生的思考能力,帮助他们掌握思考问题的方法也非常重要,如此一来,学生可自主独立学习,大大提高了效率。因此,基于对课程体系和课程作用的综合性评价,教师应当重新调整并设置单科的知识点,用新的教学内容替代那些重复的陈旧的知识点,从而使学生的知识领域得以拓展。

2加强对新技术、新思想的了解

软件工程专业中的大量新概念、新技术和新思想也相继出现,导致学科内容繁多。在这种情形之下,我们可以将基础知识和专业基础知识作为必修课,而新出现的技术和知识则作为选修方向。如此一来,一方面扩展了体系的领域,另一方面,有利于促进学生对软件技术和知识的了解与学习。由于软件工程专业具有知识更新快的特点,因此,加强学生的英文阅读能力是非常有必要的,可以通过开设双语课程的形式和加强对学生的英语培训力度,提高学生的英语水平。

3加强对素质和能力的培养

篇9

教育程序的知识体系,包括本科生软件工程教育计划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

篇10

1软件工程人才培养课程体系

我校是以教学为主,培养应用型人才的地方本科院校。我校的计算机软件工程人才培养定位是:“掌

握计算机科学与技术学科的基础知识与技能,具有一定的工程技术基础和较强的实践动手能力,具有创新精神、竞争意识和良好的团队合作能力,能够适应技术进步和社会需求变化,能够从事计算机应用软件开发与管理的高素质软件工程人才”。根据国家对本科人才培养“宽口径、厚基础、强能力、高素质”的总体要求,和教育部高等学校计算机科学与技术教学指导委员会的软件工程专业规范[1],我们构建了简称为“211”结构的课程体系,它主要包括大学基础教育、专业教育、职业技能与技术应用教育、综合素质培养四大板块。即在大学一、二年级,用两年的时间进行大学基础教育,包括人文社科、身心健康、工具(外语、计算机、文献检束等)、专业基础等,以学生长远发展需要,提升基础知识层面和综合素质,为后继的专业课程学习做铺垫为目标;三年级进行系统的专业教育,以专业核心知识和基本能力培养为主,以提升学生专业知识层面和专业基本能力为目标,同时开启必要的专业方向课程,为后继的职业技能培养做铺垫;四年级进行面向岗位的专业职业技能培养和技术应用创新教育,以学生就业为目标,其主要的教学形式是实践教学。课程体系结构如图1所示。

图1人才培养课程体系结构示意图

2目前国内软件开发实训存在的主要问题

目前国内开展软件实训的机构主要有三类:企业或软件行业协会投资的社会培训机构;由政府、企业等多方投资建设,独立运营的实训机构;校企合作共建的实训基地,这中间又有两种,一种是以学校投资为主,实训基地建在校内;另一种是学校进行必要的投资,实训基地建在企业。实训开展形式主要有三类:1)学校将实训委托给社会培训机构或企业,由他们负责学生实训教学;2)学校与社会培训机构或企业合作,派出实训指导教师与承担实训教学任务的机构共同实施实训教学;3)由学校自己组织在校内进行实训教学。由于承担实训任务的主体各自的利益目标不同,各自的擅长不同,实训对象所拥有的基础不同和各自对实训的理解不同等多种原因,造成目前软件实训存在以下主要问题:

1) 实训的内容体系设计单一,通常只要求通过训练掌握某项具体的开发平台技术,追求的是程序代码的实现。

2) 用于实训的软件开发项目小,软件开发过程的控制与管理、软件质量控制与保证、团队的合作与协调等软件工程的重要内容和思想体现不出来,使得学生在实训之后,没能体会到软件工程的特点和重要性。

3) 实训指导教师的软件项目开发经验少,工程素质不高,同时缺乏相关的教学经验,不能保证软件工程的思想、技术、方法和要求在实训中得到贯彻落实。高校教师在软件开发的工程能力和经验上缺乏,而来自企业的指导教师在软件工程理论和实训教学方法上存在明显不足。

4) 实训所需的工具、平台等条件不足,不能保证实训目标全部实现。

5) 实训的团队合作、团队目标管理往往被忽略,这使得经过实训之后,学生的团队意识,与人沟通、协调、合作的能力没有明显的提高。

6) 实训中学生对新知识、新技术学习的能力培养没有得到应有的重视和训练,鼓励创新的机制和措施不够,这使得经过实训之后,学生除在具体某项技能方面有所收获之外,在学习能力、技术应用能力、接受新事物和创新意识等方面收效甚微。

3软件工程实训课程体系建设

实训是一个综合、系统的工程,其目的是提高学生的知识、技术应用能力,积累工程实践经验,从而提高职业技能,实现从学生向职业工作者的转化。对于以上存在的问题,我们认为师资、课程体系是核心和基础,实训项目是关键,在干中学,在学中干是行之有效的方法。以下仅就软件工程实训课程体系的建设进行探讨。

3.1目标定位

课程体系反映了对人才培养的知识和能力要求[2]。本科软件工程型人才的实训定位应该从软件开发企业的岗位要求、学生职业发展空间、初步能够适应多种岗位需要等多方面考虑。从学生初次就业的岗位看,软件开发人员的主要岗位有程序员、测试员等。这类人员需要有良好的理解设计和程序的能力,能够在一种开发平台上熟练地进行规范的程序设计和相应的程序测试,能够清楚自己所做工作与他人工作之间的关系,理解自己所做工作在整个(或局部)设计中的作用。从职业发展空间看,软件开发人员经过2~3年的实际工作锻炼,应能够承担软件工程师的角色,承担必要的分析、设计、任务分解、技术指导、协调和管理任务。所以,本科的实训目标定位既要面向现实,又要给学生发展的潜力和意识。我校的软件工程实训的目标定位是提高软件开发程序实现技能,提高软件工程知识、技术应用能力,积累软件工程实践经验,实现从学生向软件职业工作者的转化。具体要求是:

1) 熟练掌握一种软件开发平台及相关技术,能够用它们进行规范的程序设计。

2) 掌握软件测试的方法,初步能够设计测试方案,用测试数据集完成相应的软件测试工作。

3) 理解软件生命周期中各环节的主要概念,初步掌握各环节的主要工作、所采用的技术和实施方法,初步掌握有关工具的使用,能够用它们完成相关的分析、设计工作。

4) 了解软件开发的过程控制、质量保证和管理的方法和特征,理解它们的重要性。

5) 理解团队及各种角色的作用,掌握交流勾通、协调合作的必要方法,形成团队意识。

6) 形成快速学习专业知识和技术的能力,查阅相关技术资料(含英文资料)的能力。

7) 了解、体验软件企业的工作环境、形式和要求。

3.2构成原则

实训以项目为载体,以软件开发的工作流程为驱动实现知识、技术、能力和素质的全面提高。实训课程体系作为实现实训目标,制定实训计划的基础和核心,应坚持以下原则:

1) 以企业实际需求为导向,以能力培养为核心,以学生适应软件技术岗位为目标,以职业岗位技能为重点,兼顾长远发展。

2) 注重知识、技术、能力、素质的协调发展,使学生通过实训既学习了知识和技术,又提高了应用知识、技术的能力,升华了自身的素质。

3) 以职业技能训练为重点,突出技术应用能力培养,强调在应用中创新,通过解决问题来体现技术和人的价值。

4) 课程体系应具有开放性、灵活性,能够即时反映软件技术的发展。

5) 课程体系要与人才培养方案的课程体系衔接,有明确的应用软件开发领域,体现自身特色。

3.3课程体系内容

我校的计算机专业软件工程方向人才培养计划课程设置以计算机科学优先,接着是软件工程基础和软件开发平台技术基础课程,将软件工程的技术与方法、软件开发的管理、软件开发平台技术的深化、职业综合素质等方面的课程统一综合到实训课程体系中;以互联网应用软件开发为平台,以管理信息系统和电子政务/电子商务为应用领域。实训过程以软件项目开发工作流程为主线,内容涵盖项目开发的全过程,保证学生能够体验到软件开发的全过程。实训以职业技能和技术应用为重点,教师讲解不超过总时间的20%。软件工程实训课程体系如图2所示。

1) 在实训之前开设软件工程与技术基础课程群。它主要是为学生进入实训之前奠定必要的技术、

图2软件工程实训课程体系示意图

工程和应用领域知识基础。主要课程有软件工程导论、面向对象设计方法、信息管理系统设计与开发、C#语言程序设计、.Net架构程序设计(或Java语言程序设计、J2EE架构程序设计)、XML语言、Linux操作系统(或Unix操作系统)、电子商务、电子政务等。

2) 开发技术平台课程群。它是在.Net开发平台(或J2EE开发平台)基础之上进一步深化、细化有关技术,提高在开发平台上的软件实现能力的一组课程。主要课程有人机交互与界面设计、数据库程序设计、数据接口程序设计、Web Services设计、应用安全程序设计、动态服务组合、新技术介绍等。

3) 软件工程技术与方法课程群。它是一组提高学生软件工程意识、技术和方法的课程,是学生今后向高层次软件职业人员发展必备知识和能力。它培养学生具有软件工程的理论知识,能够应用它们指导软件开发的实践。要求学生掌握常用的需求分析与设计工具,具备一定的软件分析与设计能力,了解软件开发的管理过程和技术。主要课程有:软件需求分析、软件设计与体系结构、软件详细设计、软件测试与质量保证、软件过程与管理、软件分析与设计工具等。

4) 职业综合素质课程群。它是一组提高学生非技术方面的综合素质的课程。它培养学生团队意识、沟通合作能力、专业资料获取与专业外语应用能力,使其具有良好的职业道德和一定的工程经济概念,了解现代软件企业的运行与管理。主要课程有团队激励与沟通、工程经济学概念、信息社会与职业道德、软件成熟度模型与软件企业管理等。

在课程体系中,开发技术平台课程群是学生实习、初次就业体现自己的技术和能力的主要内容,同时它是更好地理解、掌握软件工程技术与方法中诸课程的基础。所以,它是实训的重点。软件工程技术与方法是中、高级软件职业人员必备的知识和能力,需要在大量的工程实践中去提高认识和积累经验。它在实训中以体验、领悟为主,重点是训练分析、设计的方法和相关文档的规范表达。职业综合素质课程群的知识对于学生步入社会,在职场上取得成功很重要,并且它是实训取得成功的基础性知识,要贯穿整个实训过程。

3.4评价指标

实训所包涵的内容和重点是实训成功的核心和

基础。为了科学评价与不断优化实训内容与重点,通过向行业专家咨询和实践,我们初步建立了一个实训课程体系评价指标体系[3]。它主要由职业技能、工程实践、专业知识和职业综合素质几个方面构成。评价指标体系如图3所示。

图3课程体系评价指标体系

4结语

我校从2005年开始,通过与微软合作,引进微软职业技术教育课程,开始在计算机本科教育中用一定的时间进行职业技术教育。通过对两届学生的教学实践,我们感到微软职业技术教育课程相对本科人才培养存在着软件工程方法、技术方面内容薄弱,而微软

开发技术内容过细的问题。2007年,我们通过对有关教学内容的调整补充,整合成软件工程实训。实训大大提高了学生软件开发技术的掌握和应用能力,增强了学生的就业能力和质量。2007、2008届参加软件工程实训的学生,90%以上到软件开发企业就业。学生的知识结构、技术水平和能力、综合素质等得到企业好评。

参考文献:

[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M]. 北京:高等教育出版社,2006:12.

[2] 舒蔚,万常选. 计算机专业程序设计课程体系架构的研究与实践[J]. 吉林大学学报:信息科学版,2005(8):1-4.

[3] 韩春燕,高晓兴,姜慧妍,等. 软件工程专业课程体系优化方法研究与实践[J]. 计算机教育,2009(4):70-73.

Research on Curriculums in Software Engineering Training

YUAN Lei, HUANG Jian, NING Bin

篇11

中图分类号:G642

文献标识码:B

1引言

国家近几年出台的有关大力发展软件产业的政策,决定了我国对软件人才的需求旺盛。国家教育部门根据市场需求提出了进一步扩大软件人才培养规模,依托高等院校特别是高职院校,加快软件“蓝领”人才的培养。当前,高职软件技术专业正处在一个起步发展阶段,有很多急需我们解决的问题,其中最为重要的问题是软件技术专业的教育模式问题,这是我们办学成败最为关键的环节。软件技术专业中专业基础课的教学设计是许多院校软件技术专业教学改革的重点。我们结合自己的教学实际,对软件技术专业中专业基础课的教学内容和方法进行了设计,并取得了一定的效果。

2专业基础课内容的选择

传统的高校计算机专业基础课包括计算机基础、计算机电路、程序设计语言、操作系统、数据结构、计算机组成原理和计算机网络等。这些课程都是重视理论,而且内容繁琐、重复,课时多。(见表1)

但在高职专业中,要求是“理论够用,技能要强”的原则。根据软件技术专业的特点和我们的实际,学校制定了五门课程作为软件技术专业基础课。即计算机基础、软件技术基础、程序设计语言基础、网页编程基础和数据库基础等。五门课程主要体现“理论实用、够用”的原则,把与软件技术有关的内容挑选出来,把与之无关的内容删除,这样既保证了知识的够用,也保证了学生以后的发展,见表2。

通过这两个表格对比我们可以看出,我们在专业基础课的内容和学时方面均进行了改进。

(1) 精选教学内容

传统专业基础课中存在着知识重复现象。像“进制”问题,在几门课程中都出现。我们在设计教学内容时,对其进行了整合,相同的知识只在一门课程中出现,这样既避免了知识的重复又减少了课时。另外,传统专业基础课中的一些理论知识,对于软件技术专业学生来说,内容复杂、繁琐,因此,我们对其进行了增删。除去一些与软件技术无关的知识,像组成原理中的指令系统,数据结构中的广义表,操作系统中的各种类型的操作系统介绍等。

(2) 减少教学学时

内容改变,相应的学时也减少。原来的每门课基本上是72学时,现在我们缩减差不多一半。学时的减少并不意味着教学内容大幅度减少,除了部分与软件技术无关的知识我们进行了删除外,其他与专业相关的内容,我们进行了融合。同时,学时减少,使教师有更充分的时间进行备课、充电,从而有利于进一步提高教学质量。

3专业基础课的课程开设模式

针对软件技术专业的专业基础课,我们在教学、实践、课程设计和测验方面采取了集中教学、开放式实验教学模式和多种测试成绩相结合的考核模式。

(1) 集中教学与开放式实验教学模式相结合

针对软件技术专业课的特点,我们对课程进行集中开设。例如计算机基础,这个课程是基础之基础,共30个学时,在三周内开设完毕,然后再开设其他课程。因程序设计语言基础、网页制作基础,两门课程没有很大联系,我们一块开设,课时不变,授课时间相应变长。

实验增加综合性、设计性强的内容,加强实验过程的管理和考核。实验采取开放式教学的模式,即学生除了正常的上机课外,其他课外活动或自习时间,我们给他们提供机房,学生根据自己的情况,有选择地去上机。有教师参与的实践课和开放式的实践课比例为1:1。在开放实践课时间,学生可自主进行学习。发现问题,可在有教师辅导的上机课上进行解答。这样,既可以减少教师的工作量,也可帮助学生提高独立思考和解决问题的能力,为培养学生的实践能力和创新能力奠定了良好的基础。

(2) 抓好课程设计,注重过程与方法的学习

课程设计是学完一门课后应用本门课程知识及以前的知识积累而进行的综合性、开放性的训练,是培养学生工程意识和创新能力的重要环节。例如C语言程序设计,在开设完这一门课程后,我们要给学生一个综合性的题目要求,要求学生分小组完成一个较大的项目,这个项目能综合运用所学C语言基础知识,还可以在此基础上进行扩充,充分发挥学生的自学能力和独立创新能力。在课程设计教学中,我们结合实际及时更新课程设计题目,调整设计内容。另外,我们还强调设计的方法与过程,强调设计的完整性和实用性,强调动手、加强实践,强调设计说明书书写规范等。

(3) 多样化的考核方式,检验教学效果

针对软件技术专业课的特点,我们实行了多样化的考核方式。根据课程的不同特点,课程的考试成绩将试卷考试、实验考核、平时考核、课程设计的考核相结合。在课程考核过程中采用分散与集中相结合,平时与期末相结合,一改传统的终结性考试模式。试卷考试采用闭卷、开卷、一页开卷等方式。平时考核请学生上讲台,进行课堂提问、课堂讨论,课堂的表现和课堂课下作业、小测验、实验等都记入平时成绩。课程设计的成绩评定将平时的学习态度、独立工作能力、协作能力、设计的正确性、合理性、完整性、说明书的规范性,是否有自己的发挥和创意等因素综合考虑。经过这样的考试改革,学生学习的积极性提高了,避免了学生为盲目追求高分而采取死记硬背的方法应付考试等情况,激励学生追求知识的真正掌握及运用能力。

4结束语

软件技术专业基础课是软件技术专业学好后续课程的基础,只有这些课程掌握牢固,才能进一步学好其他后续专业课。经过这些教学设计,软件技术专业的专业基础课做到了课堂教学、实验教学相互结合,相互促进,全面培养学生的上机动手能力、独立分析解决问题能力、知识综合运用能力。学生在学习过程中,不再出现厌学、逃课等现象。学生学习的积极性明显提高,不再是为考试而学习。经过我院2005、2006级学生的实践证明,这样的教学方式为以后的专业课学习作了很好的铺垫。2005级、2006新生参加山东省齐鲁大学生软件设计大赛,所完成的项目均取得了团体三等奖的好成绩。

参考文献

[1] 张杨. 从对高职计算机专业学生创新能力调查分析入手探求创新型人才的培养思路[J]. 计算机教育,2006,(07).

篇12

2.培养流程与实施教育部明文规定,专业学位研究生学制原则上为两年,同时要求应届本科生进行专业实践不少于一年。一般来说,研究生在校课程学习时间应有一年左右,加上专业实践的一年,如何合理安排学习计划,在两年内完成培养环节成了一个现实的重要问题。我校以周为单位制定了四川师范大学软件工程专业学位研究生培养流程,如表1所示:上表规划了研究生培养中的几个关键环节,依次为报到入学、课程学习、校内实践、校外实践、开题、毕业设计、论文写作和送审答辩。第一学期研究生主要是课程学习,同时在校内导师指导下开展文献阅读和编程能力锻炼。第二学期前半学期结束理论课程的学习。后半学期和暑期开展校内实践和毕业设计开题工作。第三学期研究生到实习基地进行校外实践。从第二学期后半段和整个第三学期,学生在专业实践的同时,需完成毕业设计。从第二个寒假开始直到第四学期前六周,研究生完成毕业论文的初稿。从第七周开始,进行论文修改、、盲评和答辩工作。从培养流程表可以看出,这种安排具有两个显著特点。一是理论课程学习安排在一个半学期完成,二是实践课程分为校内实践和校外实践。研究生理论课程学习任务并不重,完全可压缩到一学期半,同时可为实践提供更多时间。校内实践非常有必要。由于是省属高校学生大多能力一般,为保障学生进入企业能融入研发团队从事技术工作,必须先期培训其实践能力。这种安排时间较为紧凑,也比较合理,符合专业学位研究生侧重于实践能力培养的要求,也在两年的学制内确保了研究生的实践时间不少于36周。

二、专业实践能力的培养与训练

软件开发能力是软件工程专业硕士必备的核心能力,其能力培养既是对前端课程学习效果的检验,也是后端毕业设计和就业的必然需要。我校将软件工程专业硕士实践能力培养融入了众多环节。从前期的实验型课程教学,到中期的校内实践、再到后期的校外实践和毕业设计。实验型课程教学解决软件设计开发的基础技能,校内实践解决中小规模软件设计开发能力,校外实践和毕业设计解决中大规模软件设计能力。

1.实验型课程教学包含软件工具的使用训练、软件开发环境的搭建、软件开发案例分析和新技术研讨。软件工具的使用训练学生单个软件开发工具的使用,如项目管理软件Project、开发文档化软件Rational、软件测试工具LOADRUNNER、QTP、TD等。由于这些工具结构分散,还需进行开发环境的搭建训练。开发环境搭建训练内容一为搭建基于微软的VSTS和VisualStudio的开发平台,适合.net方向;内容二位、为搭建基于IBMRSA和Eclipse的开发平台,适合J2EE方向。软件开发案例分析中研究生将自己放在决策者的角度来思考项目所涉及到的具体问题,增强了学生的实际应对能力。新技术研讨促进学生或主动或被动地掌握了一些新兴技术,拓宽了技术领域。

2.校内软件开发实践采用项目驱动形式开展。要求研究生必须申报各类实际的软件开发项目,如四川省苗子工程、学校研究生科研创新项目、学院研究生科研创先项目。研究生可组织本科生参与项目实施,但必须任项目组长,在项目中担任核心角色,完成软件需求文档审定、软件架构设计、软件详细设计、大部分编码工作、测试方案制定等重要工作。

3.校外软件开发实践在上述环节经历后,研究生已经掌握中小规模软件开发的基本技能,此时将研究生派到实习基地,实战参与企业软件开发项目。其实践由校内导师和企业导师共同负责。前期技能的培养已保证研究生胜任企业中一般性的软件开发角色。

4.毕业设计研究生在校内和校外实践的36周中,还需要同时进行毕业设计的开题、实施。研究生可结合企业实习工作完成毕业设计。专业实践的考核分为定期汇报和实践环节结束汇报两种形式。研究生应每隔两个月集中汇报一次实习期工作心得,取得的成绩等。实践结束时在全院公开汇报,其成绩作为实践课程成绩。

篇13

Research on Training Model for Application-Oriented Person of Software Engineering

SONG Yan-ru

(Jiangxi University of Science and Technology Nanchang Campus, Nanchang 330013, China)

Abstract: With the extensive application of computers in all Industry and life, application software, therefore the demand for software talent shows rising trend. As an important place for software talents training, how to train a qualified social needs of applied software talents has become a problem needed to solve for all universities. Based on the analysis of domestic software talents training model and the objectives of software talents, the paper discusses the guiding ideology of software talents training.

Key words: software engineering major; application-oriented person; training model

随着计算机在各行各业的广泛应用,各行业对适用于本行业的应用软件的需求量也骤步的增多,这也就相应的提高了对软件人才的需求。我国也已把软件产业作为国家重点发展的支柱产业。为了使我国的软件产业走上了可持续快速发展的道路,近几年来国务院颁发了一系列相关政策重点扶持发展软件产业。但当前我国的软件产业与美国和印度等软件发达国家相比仍存在较大的差距。造成这种差距的原因除行业管理方面的因素外,软件专业应用型人才以及具备软件工程管理能力的人才的缺乏也是重要因素。高校作为软件人才培养的重要场所之一,其培养的结果将对整个国家的软件产业产生较大的影响。本文将对高校如何培养应用型软件人才进行分析并得出人才培养模式与方式。

1 软件人才的培养目标

为了更好的分析应用型软件人才的培养模式与方式,有必要先对软件人才的培养目标作出一个全面的分析。

1) 主流程序设计语言及主流工具的应用能力。程序设计语言发展到如今已经形成了众多语言及众多设计工具并存的格局;在培养软件应用型人才时,不可能对所有的程序语言及工具进行学习和掌握。因此,掌握主流程序设计语言及主流工具也就成为进行软件行业的必备技能;并且程序设计的理念及思想对于各种程序设计语言都是一致的,设计工具软件的使用也是互通的,所以只要且只有掌握了主流的程序设计语言及工具就可以为以后的学习与发展打好坚实的基础。

2) 外语的应用能力。我国的软件产业要想崛起,人才培养的国际化是必不可少。英语作为现今世界应用范围最大语言,也是软件业使用的第一语言;计算机及软件的最新技术及各种资讯更多是以英文作为描述语言,软件人才掌握最新技术及深入的掌握底层理论知识就需要其有一定外语应用能力。

3) 管理能力及团队合作意识的能力。软件系统作为一个系统工程,特别是在一些大型软件设计开发过程中将涉及众多的资源及人员,为了更好地实施软件项目就需要软件人才必须具有一定的管理及良好团队精神和合作意识。只有团队相互理解和配合才能有创新能力,才能集集体的力量与智慧,才能更好地利用各种资源(包括人力资源)为软件项目服务。

4) 实践创新能力。软件产业是智力密集型产业,其关键是人才以及人才的创新能力。创新基于扎实的专业基本功,创新源于丰富的实践经验,但软件人员要在学习和借鉴的基础上勇于创新。

2 高校现行培养模式中存在的问题

1) 培养目标不明确,培养层次不清。软件工程作为一个系统工程,设计与实现一个软件系统项目需要软件工程中所包含的各方面人才;而现行高校在培养软件专业学生时基本不分门别类,仅仅从程序设计单方面进行教学和培养。致使教材的选择、教学大纲的拟定、教学模式及手段的运用和教学计划的执行缺乏灵活性、层次性和实用性。最终导致学生个性在专业方向上得不到发展,可塑性较差。

2) 实践教学环节缺乏或教学效果不佳。软件工程是门对实践性要求较强的学科,而目前大多数高等院校依然沿用一般学科的培养模式,使得许多学生将精力集中在过多过泛的基础理论知识学习中。以理论讲授为主的教学方式致使学生的实践能力与理论能力严重失衡,实践教学与理论教学的不同步将导致学生只能“纸上谈兵”,最终表现出来就是:软件工程专业人才远远无法满足企业现实的需求。

3) 课程体系的设置缺乏“理论与实践的相互关联及促进”。在培养模式中,课程设置往往走两个极端:一是情况是过分强调理论,二是强调简单的开发应用,而无法将两者有机的结合起来:让理论指导学生的实践,用实践来强化理论知识;从而制约实践应用或用理论知识促进学生的进一步发展。

4) 缺乏各科知识的综合应用能力。现行高校开设的各种实验或实训一般都是针对于某一门课程,而忽略了多课程的综合实践;从而导致学生不能较好的融合各课程知识,综合运用知识的能力得不到提高,还有可能束缚学生的思维。这样学生步入工作岗位后还需要较长时间的学习过程。

3 新的培养模式的探索

通过对软件人才的培养目标及现有的培养模式不足的分析,以下将软件工程专业应用型人才培养提出一些新的见解和思考。

3.1 加强学生逻辑分析能力与思维方法的培养

软件工程人才必须具备良好的逻辑分析能力与精确的、理性思维方法。无论是在课程设置还是在教学的过程中都应该特别注重学生逻辑分析能力与正确思维方式的培养,逻辑分析能力与正确的思维方式是学生掌握所学知识的基础,是学生实现自我学习与实践创新的基础。学生没有良好的逻辑分析能力及正确的思维方式,最终他们将只能根据课本来学习课本;脱离课本后,将不能很好的与社会现实逻辑进行结合。

3.2 专业基础课程的引导式教学方式

专业基础课程作为学生接触学习专业的大门,那么合理的设置专业基础课程的教学就显得尤为重要。专业基础课应能激发学生对本专业课程的学习兴趣,拓宽学生对本专业知识结构的全面了解与认识;为以后专业课的学习打好坚实的基础,为学生选择专业小方向提供必备前提。为了实现以上的目标,在专业基础课程的设置上应该遵循面广、启发性强及关联性强的原则。面广就是要求在课程设置时应较全面的涉及专业知识结构,使学生对整个专业有个基本的全面的了解与认识。启发性强就是要求课程在设置和讲授中应在整个知识体系中对学生有一定的启发性,尽量避免因知识点而学知识点的情况。关联性强就是要求各门课程之间要有较强的关联,它们的有机组合能够基本反映整个专业体系。

3.3 专业课课程的小课程+小组实践的课程设置方式

专业课是培养学生对某一特定专业知识方向能力的培养。软件工程作为一个实践性较强的学科,需要学生在学习过程中通过大量的实践来增强对知识的应用能力。并且现今的软件开发领域软发开发语言以及工具也多样性及定向性的特点,要让学生掌握所有的开发语言和工具基本上是不可能的事情,那培养的目标就应该定位于根据学生自身的爱好与特点选择各自的方向。基于以上的目标在课程设置方面就不应该以大班笼统的方式进行,而采用小课程+小组实践的方式进行开展。小课程就是对某一特定方向的专业课程进行以小班、集中式的方式进行开展,让选择此方向的学生能够在较短时间内较深入的掌握该课程的核心知识。小组实践就是以小课程为基础的一种团队实践教学方式。通过小课程的学习学生已基本掌握相应的理论知识,进行小组实践可以让小组成员充分的发挥集体的智慧和个人创新能力对所学的理论知识进行应用实践。

3.4 模拟项目的开展

综合运用知识的能力应是软件工程人才必备的技能。在教学过程中单课程的实践很难培养学生的综合运用所学知识的能力,在每一阶段结(如每一学期)束后开展软件模拟项目,从而帮助学生综合运用知识的能力。模拟项目的选定是模拟项目开展的一个重点也是一个难点,在模拟项目的选定上不能一味的追求项目的系统性及复杂性,而更应该考虑项目的实用性、启发性及对所学知识运用的实践。通过模拟项目的开发增加学生软件开发的自信心,学习软件系统开发的团队协助意识,提高知识的综合应用能力。

4 结论

随着信息社会的快速发展,软件工程专业应用型人才的培养模式也应与时俱进。高校在培养软件人才时适当的采用校企合作方式,有利于人才的社会适应性,但扎实的理论知识也是软件人才自我成长不可获缺的一部分。

参考文献:

[1] 费宁,陈春玲,宗平.软件工程人才的培养思路[J]。计算机教育,2008,(14):9-11.

[2] 罗代忠.应用型本科院校软件工程专业人才培养模式探究[J].。计算机教育,2008,(8):121-122.

友情链接
在线咨询