浅析影响软件工程学科建设中的几个因素.docx
- 文档编号:28192126
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:11
- 大小:26.76KB
浅析影响软件工程学科建设中的几个因素.docx
《浅析影响软件工程学科建设中的几个因素.docx》由会员分享,可在线阅读,更多相关《浅析影响软件工程学科建设中的几个因素.docx(11页珍藏版)》请在冰豆网上搜索。
浅析影响软件工程学科建设中的几个因素
浅析影响软件工程学科建设中的几个因素
浅析影响软件工程学科建设的几个因素
高峰
(复旦大学200433)
摘要:
针对目前软件工程教育中存在的学科建设与实际行业需求不匹配的现象,软件工程的教育机构应该对此有所思考和改变,以满足对软件人才日益增长的需求。
作者提供了部分经过开发初期软件工程教育的经历。
文中提及的一些软件工程教育的基本主题,仅是作者查阅国内外论文所知,如果需要更详细的内容可到其他相关宗卷查阅。
作为历史的一部分,我们的目标是提供一个简要的学科背景是如何演变的线索,以鼓励我们把这个学科建设得更好。
本文仅供对软件工程教育感兴趣的学者借鉴并与之共同研究。
关键字:
软件工程,软件工程教育,学科建设,软件工程研究所
一、前言
今年二月份,国务院学位委员会正式公布新修订的学科目录中把软件工程新增为一级学科。
这说明软件工程学科在国家层面上已经被提上一个十分重要的地位。
近几年来,随着计算机技术,互联网络的推广,普及,应用,其已经深入到社会的方方面面,可是软件开发质量差、产量低,这对软件工程师,软件生产企业,软件工程教育机构提出了挑战。
普林斯顿大学MichaelMahoney教授在研究了软件工程与其他传统工程之间的关系以后指出,"软件,可能是根本不同于人类历史上任何已有的人造制品,所以软件就不能像处理传统的工程那样处理他的开发过程。
"他又认为,"任何软件或软件科学都不是自然的。
程序的存在是因为有人编写,而人们编写的程序,只能在现有的计算机结构环境下运行,并最终输出反映实际问题的结果"。
所以"软件开发是一个动态的、复杂的过程,在整个开发生命周期中,受到许多因素的影响,比如开发成本因素、开发进度、软件复杂度和工程质量等的影响。
"软件与软件开发的确是人类进化过程中的一次创新,软件工程作为一门工程类学科则是水到渠成、毫无疑问的。
软件工程作为一门学科综合了计算机科学技术、管理学、经济学和社会学等学科形成的新型学科。
上图一所示。
真正的软件工程学科建设可以追溯到上世纪八十年代才被提到政府(特别是美国政府)和教育机构的议事日程上来。
文章中所提到的这些人和事都是为软件工程教育做出过贡献的。
他(她)们代人完成了成立软件工程教育工作小组,完成了学科课程的建设和教学大纲的编制,创建软件工程学科,举办了软件工程教育大会,软件工程职业认证,和软件工程产学研合作等方面的成就。
所有这一切开创出了一条软件工程教育发展的新路,使得计算机在强大的软件支持下,发挥更大更多的功能,并且对如今的互联网络发展也起到了积极的推动作用。
所有点点滴滴的一切,笔者希望引起正在建设中的软件工程一级学科的人们重视。
本文第二节将阐述领军人物在学科建设中的地位和重要性,特别是在建设初期。
文中会提到卡内基梅隆大学(CMU)在建立软件工程研究所(SEI)中所做出的努力,介绍他们团队的重要性和他们所做出的贡献,会提到软件工程教育工作小组(GWSEET)所做的工作,特别是形成软件工程学科具有里程碑意义的三份调研报告,以及围绕软件工程学科建设所举办的各种会议、活动和项目。
由于这些活动对学科建设所起到的作用和得到IEEE-CS和ACM重视后被接纳、提升为其旗下的组织和活动,由此说明其重要性的确可见一斑。
第三节SEI在软件工程本科生教程(Curriculum)计划出台之前,推出了MSE项目计划,此项计划为以后软件产业发展奠定了基础;最后一节介绍软件工程教育(即专业或学科)给我们那些启示。
二、软件工程教育的成长经历
2.1、影响因素之一:
软件工程领域领军人物
众所周知,在学科建设过程中,领军人物的作用不可小视,特别是在创建初期尤为如此。
上世纪八十年代中后期,卡内基梅隆大学接到了来自美国国防部(DoD)一份合同,当时他们在研制国防部预警系统,由于系统的安全问题得不到保障,于是要求CMU研究关于软件技术在未来的国防发展战略的课题。
学校决定为此专门成立软件工程研究所(SEI),后来的历史事实证明,SEI为软件工程教育的发展起到了决定性的作用。
特别是其中有一批热衷于软件工程教育事业的人,他们为建设软件工程教育做出来不懈的努力。
SEI初始,学校先从各院系、外面软件企业抽调多位资深的、热心于软件工程教育事业的教授、专家充实这个重大项目。
最早以研究数学出身但擅长教育管理的诺恩·吉布斯(Norn·Gibbs)教授为首(即作为第一任教务主任)着手此项工作,在这之前,吉布斯是鲍登学院(Bowdoincollege)的创始主席。
当时有学校的教务长Angel·Jordan教授,充当着项目中护卫者(champion)的角色;计算机学院教授Mary·Shaw成为其中的积极参与建议者(heavilyinvolvedintheproposal);当时学校计算机学院院长Nico·Habermann教授在SEI刚刚成立初期,在前面两位教授的积极建议下,受命与危难之际成为SEI第一任所长,也为此做出贡献(alsocontributedtotheearlydaysoftheSEI)。
几年后,来自IBM联邦系统部的资深专家南希·米德(Nancy·Mead)接手吉布斯这项工作。
笔者在文中看到,这些人不同的岗位,为了一个共同的目标走到了一起,为软件工程学科建设废寝忘食,呕心沥血,死而后已。
其实我们在建设学科的时候,也应该有这样一批人士,为之而奔走,为之而劳顿。
曾记得,国家示范性软件学院成立之初,有过这样的人士,可以不知何种缘故不见了。
诺恩·吉布斯们经过深入业内企业、院校调研,了解了软件开发当时的状况和分析、研究出所存在的问题:
软件开发基本上还属于实验室研究或专门用途开发阶段,推广过程中受到编程语言、经费、人员组织和软件质量等的限制。
一个小型软件项目所用的专人、专用设备、专款专用开发没有问题;可以一旦当软件项目形成规模、或形成体系,就会出现各种各样开发事的问题,最后导致项目的流局或失败。
他们注意到,IBM公司作为较早从事计算机制造、软件研制开发的企业已经在这方面已经有过尝试,还专门成立了软件工程研究所(这可能是最早的软件工程研究所),率先提出结构化编程语言的思想,针对不同层次的软件开发人员,成立了结构化编程工作室(SPW),结构化设计工作室(SDW),先进设计工作室(ADW)。
工作室的模式也是模仿传统工程化训练工程师的思想建设的,编写教程使得软件开发人员在不同的岗位上都有相应学习内容,在公司级层面上给培训讲师颁发资格证书,为工程师颁发合格证书。
这些教学内容在以后的软件工程学科中也起到了补充的作用。
由于这些热衷软件工程教育事业人们的努力下,很快形成了下节中阐述的三份研究报告,它对软件工程学科建设起到了至关重要的引领作用。
2.2、影响因素之二:
WGSEET形成的关于软件工程教育的三个重要报告
学科建设的基础在于学科的特点。
SEI成立不久,就组建了WGSEET(WorkGroupofsoftwareEngineeringEducation&Training)软件工程教育工作小组,经过深入细致的调查研究,为建设软件工程学科编写了一系列研究报告,其中主要有三份报告。
最核心的内容是要发展软件产业,是人才(特别是软件工程人才)培养,并提出一套学科建设和人才培养和校企合作的方案。
随着这套方案的实施推广,美国的软件产业得到长足的发展。
从本文所掌握的资料来看:
第一份报告内容根据专业特点,提出培训软件行业(或软件工程)学生首先要遵循这个行业的道德守则和参加专业实践两项内容(CodeofEthicsandProfessionalPractice)。
其一报告中认为,一个专业或学科的建设,首先必须要一套具有行业特点的道德规范,规定行业里哪些事可以做,哪些事不可以做,事先必须界定好,否则事后会出现混乱。
以后发生的事实说明这是至关重要的,起到了提纲揭领、纲举目张的指导的作用。
并在以后的教育和研究过程中,有许多实质性的工作开展,比如东田纳西大学DonGotterbarn教授专门成立软件工程道德守则研究所,专门制定了专业软件开发和道德责任的国家标准,分有简明版本和详细版本两种形式。
其二报告中认为,根据行业特点对软件工程专业学生的教育,要课堂教学与专业实践相结合,软件工程专业更多的是过程实践,注重学生动手实践的过程,在笔者阅读的大量文章中,都涉及到了这一点。
第二份报告是(Industry–UniversityCollaboration)学校软件工程专业(或学科)与软件产业如何合作的前景分析报告。
报告认为由于软件工程专业的特殊性,且针对性很强,这在以前课堂上讲授的内容与实际开发中差距太大,导致开发过程的延误甚至失败,所以要求学校与软件企业间的经常互动,把一些传统的、适合软件开发的方法移植到软件工程中去,因为计算机软件技术毕竟是一门新兴学科。
特别是随着软件系统开发项目的越来越大,软件开发过程的管理、协调和领导变得越来越重要,而且软件开发与传统的项目实施有很大程度的不同,软件工程被计算机界重视程度大幅度提高,在以后的各种专业会议中得到充分的体现。
第三份报告是教学大纲(Curriculum)模式的研究。
在上述二份报告的基础上,这份报告认为软件工程专业的学生将来出去以后,更多的是承担管理、领导和协调的工作,脑子里首先要有工程化的思想,所以学生除了学习与计算机专业相关的课程以外,还有一些软件工程专业特有的课程,比如软件架构设计,软件质量保证,软件的生命周期,人力资源管理学,以及信息技术管理学,软件成本核算,信息技术经济学、谈判艺术、人际沟通等方面的课程。
报告中研究了其他专业的课程的教学方法以后,专门为软件工程专业提出一些值得考虑的教学方法,比如模块化教学方法,工作室教学方法等。
这三份报告为软件工程学科奠定的基础。
为它日后学科的建设发展起着纲领性的指引作用。
这三份报告的内容和观点曾经被IEEE/ACM-CS组织的会议和文献中被多次引用。
也以此产生、举行和召开了多个组织、会议和活动。
这三份报告找出了软件工程学科关键所在。
首先,由于软件是一种特殊的商品,它的生产(或开发)过程存在着与传统的商品截然不同的方式,如何保护它的知识产权变得异常重要和特殊,要教育广大的受教育者们入行后如何遵守应有的规则(其实这种教育从小就要有,至少大一就要开始)。
在建设一级学科的时候应该注意及时引入这方面的课程。
过去国内被思政类完全取代,思政类课程是培养有社会主义特色人才的理论基础,这些课程是非常重要的,完全必要的,可是思政的老师完全不了解行业的背景和实际情况,应该给老师与这方面的培训和指导。
其二,理论联系实际在我党历来主张的,软件工程同样需要,由于软件开发的特殊性,学校的培养模式应该与软件企业接轨,学校研究成果,和企业创新成果应及时沟通,推广,而不是仅仅把软件工程的学生送到去实习作为校企合作的着眼点。
其三,软件工程与计算机学科有共同点,也有不同点,软件工程不应该是培养编程人员,所以他的教材具有多学科性,需要研究,实践和借鉴。
2.3、影响因素之三:
软件工程学科形成过程中的活动
在软件工程学科的发展期间,软件工程教育界相当具有凝聚力,活跃着一批上节提到的为软件工程专业提供基础和成熟过程期间提供指导的专家。
更有一批生动活泼的会议和团体支持机制(机构),在这些人的积极主动参与推动下逐步形成了一个很好的学术氛围:
2.3.1、CSEE&T为软件工程教育研究建立了宽泛的平台
1987年4月,SEI召开了第一届软件工程教育与培训会议(CSEE&T,TheConferenceonSoftwareEngineeringEducationandTraining)。
会议提供了一个聚集人气的地方,研讨软件工程学科建设过程中遇到的疑难杂症,会议每年进行一次。
多年来这个会议所取得的成果,引起IEEE-CS和ACM的注意和重视,1997年原来由SEI组织的提升成为它们旗下重要的专业会议。
2003年CSEE&T首次走出美国本土,在西班牙马德里召开了第十六届会议,2005年在加拿大温哥华召开了第十八届会议,2007年在爱尔兰都柏林召开了第二十届会议,2009年在印度海德拉巴召开了第二十二届会议。
这些几年中,在其他一些工程国际专业会议上也有包括有关软件工程教育的内容。
2.3.2、SWEEP为建立软件工程课程模式的体系
1998-1999年,ACM和IEEE-CS出面资助了软件工程教育项目(SWEEPtheSoftwareEngineeringEducationProject)。
这个项目组主要任务是为了创建工作小组提出的第三份报告中所提到的软件工程本科课程教程(Curriculum)和一套本科软件工程项目的评审准则草案的指导方针。
前者,SWEEP的成员们开始了结合计算机科学学科的教程演衍生出软件工程教程模式的工作。
其实,这个项目涉及到多个学科的知识(如图一所示),不同的学校对软件工程这个术语的理解和认识也有偏差,由此也催生了多个教程版本。
后者,是为了评判学科建设中的教学质量要求工程评审委员会对已设立学科的好坏进行评审。
美国权威的工程与技术鉴定委员会(AccreditationBoardforEngineeringandTechnology,ABET),是主要负责工程类和技术类项目的评审非政府权威的、专业的组织,旗下计算机科学类分支CSAB(ComputingSciencesAccreditationBoard),原来是主要负责计算机科学,计算机工程等项目评审。
而软件工程项目评审工作是由ABET的工程评审委员会(EAC,theEngineeringAccreditationCommission)负责评审。
随着软件工程项目的逐渐增多和成熟,为了规范行业战略,ABET合并了CSAB。
重新创建一个计算类评审委员会(CAC,AComputingAccreditationCommission计算类评审委员会。
把所有计算类项目均由此评审委员会给予评审。
主要包括计算机科学,信息系统(其中包括软件工程)和信息技术)。
2.3.3、SWECC提供了道德守则作为学科发展的出发点
软件工程协调委员会(SWECC)作为一个永久性的实体成立于1998年,它是由ACM和IEEE为软件工程学科建设共同努力的结果。
其目的以促进作为一个专业计算软件工程学科的发展,是以道德守则作为学科建设的出发点,通过高标准的卓越的教学研究,促进师资队伍建设、教育创新和学科评估。
对于软件工程教育的教师来说,每一堂课的教学都是一种研究的机会,要热爱不断努力提高工程教育。
可以找到资源来帮助老师精神饱满地开始或继续研究并提高软件工程的教育。
它还提供了一个道德守则作为软件工程发展的出发点,这一措施包括记录了当前的知识机构,推荐认证标准,课程模式发展,并确定绩效标准。
同时软件工程知识体系也是在这个委员会的推动下展开的。
后来ACM决定从中退出,其中一部分原因是SWECC支持关于颁发软件工程师许可证,美国除德克萨斯州有过颁证,其余州都不建议。
委员会取代以前的一个特设委员会由两个社团成立于1993。
2.3.4、SE2004建立了软件工程本科生学位教程大纲指南
SE2004替换了早期项目名为"软件工程计算类教程"(CCSE),共经历了四年时间。
得到了ACM、IEEE的大力支持和帮助。
项目专门成立了督导委员会(TheSteeringCommittee)和咨询委员会(AnAdvisoryBoard),三位主席来自美国佐治亚理工,美国迈阿密,美国德州理工等三所大学,其他成员有来自美国,加拿大,英国、以色列、澳大利亚等国大学教授。
2001年秋季成立项目组,下属知识体系小组,教学课程小组和联合编辑小组等。
开始招募项目所需的志愿者,并制定了总体规划纲领,设计了软件工程课程卷宗目录。
项目小组各自产生知识架构体系,和核心课程模型后,广泛征求各方意见,咨询委员会会对每条意见都进行整理备案并作反馈。
2002年、2003、2004年均利用一年一度的软件工程教育与培训会议(CSEE&T)和国际软件工程大会(ICSE)对初步草案进行公开发布,2003年6月27日SE2004初稿首次面世。
并召开特别会议征求ACM所属ITiCSE,SIGNOTES,SIGCSE机构的意见。
2004年夏季正式发布SE2004。
这一进程成果,使得计算机课程卷宗发生了历史性的变更。
2.3.5、其他
在创建软件工程学科的过程中,软件工程学科还创办了推进软件工程论坛(TheforAdvancingsoftwareEngineeringFASE),包括有关的各种通知,报告,以及软件工程教育感兴趣的短文,多年来一直保持着在线,按月公布存档发表过的文章。
另一个是软件工程教育网络社区(TheNetworkCommunityforSoftwareEngineeringEducation,SWENET),是由美国国家科学基金会自助的项目,上面有可公开的免费获取软件工程教育课程模块库;它亦为软件工程教育者们提供若干个典型的工作室联习。
虽然,此项目已经结束,但它仍然支持软件工程课程模块库。
以上笔者所收集到的各项活动有些共同的特点。
第一,有些热心人士持之以恒地坚持着,每次活动都能达成一些阶段性成果,若干次活动以后会取得一个明显的成果,以致惊动权威机构引起重视,真正推动学科进步,行业发展。
这几十年软件工程学科,软件工程教育建设的过程清晰地体现了这种观点的准确性。
第二,大多数的活动都有延续性,传承性,针对一些议题,不断地进行研讨,直至得出大家满意的结果,而且能够开花结果,这些都是难能可贵的。
国内的一些会议常常是只开花不结果,达不到开会的真正目的。
第三,让社会认可它,乃至使得那些权威机构也为之动容,改变初衷,顺应潮流,实属不易。
三、影响因素之四:
MSE成为软件工程专业人才成长建立了新的起点
在软件工程学科的建设过程中,所有的项目不是一蹴而就的,在本科专业学科没有建成之前,SEI根据当时的实际情况,率先开发了MSE(MasterofSoftwareEngineering)教程项目方案。
招生简章明确写着:
目的就是通过多年的努力,培养出能够改善软件开发环境和行业发展的带头人,这个行业的领导人,在技术上是精明的和拥有先进的管理,领导能力和沟通技巧的高层次人员。
MSE项目目的是安排那些已经工作数年的软件工程师们重新回到学校学习,他们除了学习与计算机科学有关的课程以外,更多的学习与软件开发过程相关的课程,让他们懂得如何控制开发成本,架构优劣,复杂度,由于这些都是原来工作岗位上的主力、骨干,经过二年时间具有特色教育,回到原来的岗位以后,发挥出巨大的能量,对美国信息技术产业起到了不可小视的作用。
不用说,这个计划的内容和授课教师随着随时间的推移已经发生变化。
最初的教师有些至今仍然战斗在教学第一线,有些已经退休了,可悲的是,一些过世了。
后者包括前面提到的NormGibbs和学校计算机学院名誉主任,MSE课堂上学生称他为"教练"的JimTomayko;Gibbs负责开发MSE视频工作室,还参与了MSE的工作并在他的工作室里渡过他的余生。
后来CMU软件研究所专门从事MSE创新教学的TonyLattanze;CMU软件工程研究所MSE副主任,擅长远程教育的MelRosso-Llopart;具有规划,开发和大规模多国项目,与政府客户打交道,营运和国防部门的项目管理经验的GilTaran;和长期服役海军航空兵长达23年之久的DaveRoot,后来回到CMU承担起软件工程硕士远程教育的工作,相继接替了他的职位。
信息技术领域有今天这样一个变化,这些人值得缅怀。
由此可以看出,学科领军人物建设软件工程学科最终目的就是培养这个行业的管理者,领导者。
原来的设想是把这一节也放在第二节中,后来考虑到它的重要性,所以另起了一节,以示其具有特殊意义。
在官僚主义严重的美国要认定一个新兴学科是一件非常困难的事,软件工程学科出台也是,需要递交许多文件,需要得到许多部门的认可。
但是SEI明白,时间不等人,在软件工程本科生计划出台之前他们打了一个擦边球,出了一个软件工程硕士计划,它是要培养行业中的"变革中的创新人才"。
对那些经验丰富软件开发经验的人进行再教育,八十年代末,九十年代初培养出来的这些人,到九十年代中期就显现出了威力,以微软视窗九五,英特尔奔腾系列信息技术可以看到这些人的影子。
我们现在各个软件学院也在培养这样的人,在美国的例子中应该找到我们培养人才的影子。
四、这几个影响因素给我们的启示
前面提了几个可能影响软件工程学科建设的因素,不一定正确,但从中找出一些值得我们借鉴素材还是有的。
前面提到的这些人以外,当年与诺恩·吉布斯一起创建软件工程研究所的,还有资深计算机科学家GaryFord,堪萨斯州威奇托州立大学JimTomayko,苏格兰大学DavidBudgen等。
由于年代稍长久些,有些人的信息都不全了,他们有的利用学校放假的时间、有的作为访问学者名义或身份等来到卡内基梅隆大学,为建设这一新兴学科贡献了大量的智慧和花费了大量的心血。
如今他们中的许多人已经离世,人们已经记不清他们的名字,想不起他们长的是什么样子的了;有些人已经离开了软件工程教育的岗位转而从事别的什么工作去了;还有一些继续在软件工程教育各自的工作岗位上辛勤地工作着。
他们开发出来的软件工程教育与培训学科体系,正为推动了软件工程教育与培训事业的迅速成长壮大展现出强大的生命力。
文中我们可以看到,一个学科的建设,最关键的一点就是要有组织者、领导人和一大批志同道合的、充满事业心的、具有专业背景的人。
这些人在最困难的时候他们挺身而出,在一无所有的条件下,创造条件,创造机会,摸索出一条具有软件工程教育发展特点的道路来,当年诺恩吉布斯们在工作室里,一面吃着"黄包餐(brownbaglunches)"里三明治面包,火腿肠,一面在白板上画着,写着,绘制着软件工程教育的蓝图。
后面的文章中我们会相继介绍他们为了探索软件工程教育应该如何发展,举行了一系列的会议,其中部分会议被权威的IEEE-CS和ACM认可,以后被升格为这两个组织旗下的正式会议。
在工作会议上,他们畅所欲言,研究软件工程的特点,制定了一整套软件工程知识体系,把原来个人英雄主义的开发模式,改变形为工程化的思想模式;把软件行业没有被人注意到的道德守则,专门有人出来成立软件工程道德守则研究所,来研究软件行业中特有的道德守则,并成为学科重中之重的首要任务。
由于笔者收集、阅读资料能力的有限,只能通过有限的信息来论述关于人才对软件工程教育产生的影响。
希望有识之士一起参与收集整理更多关于这方面的资料,积极行动起来以促进中国软件工程教育的发展,并进一步推动中国的软件产业的进步。
参考文献:
1、GregoryW.Hislop,SoftwareEngineeringEducation:
Past,Present,andFuture,SoftwareEngineeringEffectiveTeachingandLearningApproachesandpractices,InformationscienceReference.2008,P1-152、MichaelMahoney:
HistorianofSoftwareEngineering,
、DietmarPfahl,MarcoKlemm,GuntherRuhe.TheCBTmodulewithInteractedSimulationComponentforsoftwareProjectManagementEducationandtraining,Thejournalofsoftwareandsystem59(2001),283-2984、wikipedia.、HosseinSaiedian,BruceW.Weide.Thenewcontextforsoftwareengin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅析 影响 软件工程 学科建设 中的 几个 因素