关键词:计算机软件工程;管理及应用
0引言
随着高科技的飞速发展,人类生活的方方面面都可以以计算机软件的形式出现。特别是近几年,智能化的概念、无人化的生产理念日渐盛行,这些都离不开计算机软件管理的控制,因而计算机软件的存在意义非凡。可是由于计算机软件只注重开发,却忽略了软件的风险问题及其后续的管理,软件管理和应用成为了薄弱环节,所以我们更要加大这方面的管理与控制。从各个环节入手解决问题。
1计算机软件工程管理与应用的发展现状
随着社会的发展与科技的进步,计算机软件工程的重要性与日俱增,计算机软件工程的系统无论是在语言方面还是编程等其他方面都具有重要作用。事实证明,这些年以来,计算机软件系统不仅是在管理方面还是在应用方面都发挥着它自己独特的作用,同时也因为科学技术的提升与人才的培养而产生了较为巨大的进步,具体的进步如下:计算机系统工程管理系统化。现在的计算机系统管理采用更加科学合理的模式,大大完善了传统的计算机软件工程。计算机软件工程应用先进化。计算机软件工程不仅在运用范围上变得更加广泛,运用模式随着科学研究的深入变得更加合理。与此同时,计算机软件工程内部也在不断的完善过程中。然而值得注意的是,我国的计算机软件工程仍然存在着一定的问题。找到问题的所在,并解决问题,同时对计算机软件工程的管理与应用进行质量上的提升与系统上的完善是非常必要的。只有这样才能使我国的计算机工程系统发展进行得更加顺利,前路更加美好。
2计算机软件工程的应用领域以及管理内容
计算机软件工程的应用领域
在现代教育中,多媒体技术和计算机技术在教学中的广泛使用,使用各种软件进入教室,计算机软件在课堂教学中课堂之后,课堂有了大的变化,之前只有通过教师的教学,课程的教学效果是枯燥乏味,学生失去学习的兴趣和信心,计算机软件的应用可以让学生看图片、听声音、看视频,甚至世界各地的学生的学习经验交流,大大提高了教学效率,提高学生的学习兴趣,开拓眼界增长了很多课本以外的知识。计算机已成为现代教学中不可或缺的一部分,同时,信息技术教育的相关专业也应运而生。计算机软件管理运用在工作中也显示出不凡的威力,将多种软件程序结合使用,提高工作效率,解放劳动力,加快企业更加现代化的发展步伐。如工程项目设计和施工环节的人员管理等。计算机软件的通用改变了传统的通讯方式,各类手机软件的开发与应用极大地扩充了我们生活交友的圈子,同时方便和丰富了我们的生活,提高工作效率,让我们可以足不出户就可以畅通五湖四海,了解天下大事。
计算机软软件工程的管理内容
计算机软件工程的管理的主要内容涉及到以下的四个方面:对组织机构的管理、对工作人员的管理、对用户的管理以及对资料的管理。组织结构管理是指各部门的工作人员的有机结合而不是单指开发人员,强调在组织中,工作人员各司其职,各级之间信息传达准确无误,以应对不同的任务要求。工作人员的管理也是计算机软件工程管理的重要部分,工作人员的日常是各个部门的人依据不同的任务特点,分工合作,一起完成相关软件的开发、应用与管理。显而易见工作人员不仅仅包含开发人员,也包含各种业务能力的协作人员,因此对工作人员的管理至关重要,充分发挥不同性质工作人员的积极性,只有将负责不同工作板块的工作人员通过一定的团结精神鼓舞团结到一起,才能确保计算机软件开发项目能够圆满成功。服务客户的需求是计算机软件开发的核心价值是,所以计算机软件管理中应该详细的考虑用户的切身需求与兴趣,以保证开发切实适用于广大用户群体,用户群体的意见是软件开发的重中之重,只有满足用户的需求才能保证软件的质量,并延长软件的使用寿命。资料的管理作为计算机软件管理的重要部分之一,它是指对软件开发过程中,将所涉及的方方面面的文档资料进行记录并保存,方便日后的升级与维修。文档资料的保存有利于查阅寻找,分门别类的管理更是节省后期修补的时间,进一步提高工作效率。因此系统完整的资料管理为计算机软件工程管理提供了重要的保障。
3计算机软件工程管理应用存在的问题
(1)目前的中国计算机软件工程管理组织往往会在一定程度上对组织结构管理方面有一定的忽视,相对国外而言,管理模式并不清晰,同时由于管理人员的工作内容较为混乱,致使每个管理人员不能各司其职,产生了许多管理方面自缠绕的问题。
(2)就我国计算机开发现状来看,开发人员并不能够很好地对计算机软件系统进行有利开发甚至系统管理。这就意味着我国急需培养计算机软件开发相关人才来提高整体的计算机软件开发技术。更需要注重的一个问题是,由于软件开发技术师的技术水平有限,并不能针对某一单一领域需求开发出更有价值,更有效率地针对性软件系统。以致设计开发出一些实用性不强的计算机软件,直接造成了计算机开发资源的浪费。
(3)针对目前我国对计算机系统工程使用者的管理缺乏现象来看,我国的计算机系统软件工程的管理制度存在很大的缺陷。如果要提升计算机系统软件工程管理水平,对计算机软件的用户进行更加有效的管理是更重要的。
(4)虽然中国的计算机软件正在造福于大多数的领域,但是针对某些特殊领域还是存在着操作员技术不够导致计算机软件不能成功普及使用的问题。比如在提倡农业向科技转型的现代中国,很多农民对于计算机软件的使用还是存在着比较大的障碍,使计算机软件的使用率在农业领域处于较低状态。
4计算机软件工程管理与应用的发展对策
(1)建立规范体系,完善组织机构。首先,应该对组织层的管理人员进行专职划分,使每一个人负责一个相应的板块,从而使管理系统得到良好的运转。其次,管理层对于计算机软件具有一定的了解是必不可少的,这样能使管理层更加理解计算机软件开发的过程,能更好地管理并组织技术人员进行计算机软件系统开发。最后,最高层应该定期整顿管理层。使管理层分工明确各司其职,以此来有效提高计算机软件工程管理的高效性与实用性。
(2)对客户系统的管理进行一定程度的加强。
一是完善并审核客户资料。有效降低不良用户的使用率,从而对用户使用的安全进行一定程度的保障。
二是提高计算机系统的私密性。通过对用户系统的完善与安全性能的提升,确保用户在使用计算机系统软件的时候不会有信息的泄露与遗失。
三是通过法律层面的不断完善,更好地进行用户管理。
(3)在对计算机软件工程的档案资料进行不断完善的过程中,软件开发的部门需要设置专门的机构对档案资料进行管理,以不断提高档案资料的完整性,同时还要采用专门的档案资料管理人员进行管理,以减少文件丢失的现象的发生,促进文件管理的妥善保管,让计算机软件的开发与应用有合理的依据。
5结语
根据上述文章的分析可以知道,科学技术日新月异,计算机领域也取得了杰出的成果,并为人类提供了极大的科学价值与实用价值。在具体地运用过程中,计算机软件为用户提供了极大的便利,并且存在着极其广阔的发展空间,因此提高计算机软件工程管理的效率,对计算机软件工程系统管理人员的管理水平进行一定程度上的提升,能够保障计算机阮籍稳步有力的发展,并为用户创造更多、更大的价值。
参考文献:
[1]郑鑫。计算机软件工程管理与应用[J].中国新通信,2015(23).
[2]孙华,李爱平,金智。加强计算机软件工程管理应用的措施分析[J].电子制作2015(08):78.
[3]刘琳。计算机软件工程管理与应用分析[J].软件,2014(02):141-143.
[4]常龙。计算机软件工程的管理与维护[J].科技尚品,2015(7).
经过潘老师讲授软件工程实践后,感觉对软件工程这门学科有了深一层的认识。软件工程是一门重视实际操作的科学。对于软件产品,无非是产品定义、设计代码、调试维护几个步骤,看似简单,可是实际操作却复杂困难,它不比其它行业产品可预见可触及,所以学好软件工程能为以后从事软件开发行业打好基础。
在软件实践这门课中,讲到了有效利用现有资源进行软件编程的方法。提到软件开发也可以像练习书法一样,采用临贴的方式,借鉴他人的优秀代码资源。临摹优秀软件是学习软件开发的一个重要方法。正如一首诗中说的:“熟读唐诗三百首,不会写来也会吟”。软件开发也是一个道理。为了真正地掌握软件开发的技巧,“临贴”是个不错的起步方法。
以前总是觉得,既然编写一个程序,就应该完全靠自己,那样写出来才有成就感,才算是自己的程序,可是这门课程教会我原来适当地借鉴别人的东西,也不算抄,相反,还可以提高效率,节省时间。这可真是与以往的观点不一样了。具体如下:
“软件编程,拿来主义的作用很大:
1、源代码交换方便。
2、可行的例程序用处大。
3、借鉴现成少走弯路。
不过借鉴别人的东西可是有说法的,可不是盲目地抄袭,下面是一些提到的途径:
1、既有系统:借鸡下蛋,买来就用。
2、书本例子:简单修改、直接使用。
4、开放软件源代码:linuxapacheeclipse。
借鉴过来后,还要多方面综合考虑,比如说代码的具体作用,完整性,还要考虑每个借鉴过来的东西的好坏。这些都要多方面考虑,可不能因为前面说软件编程可以借鉴别人的,就盲目地抄袭。到时候代码弄一堆凑在一块儿,谁也不知道它们会不会好好工作。弄不好乱了程序计划是小,公司的损失可不是哪个人都能承受得起的。
课程还提到,应该用一个小项目先从头到尾地练完,这样,有个整体性的了解,可以增加不少开发经验。看来,不学习此门课程,还不能深入地解读软件工程的奥义。这门课程为我们深入地了解软件工程这个庞大的前沿学科起到了推动性的作用。以上是我就此门课中提到的众多方法的一小段做的一些浅谈,更多的知识还在于我们自己去学习体会。
在传统的两学期制中,每个学期长度大约为20周,多数课程开设时间在16周左右。一方面学生的学习节奏慢、效率低、缺乏自主性和灵活性;另一方面教师难以集中时间进行知识更新、参与科研和学术交流。根据调查和资料显示,已有50多所高校采取了类似的改革。这类改革多借鉴国外高校的先进教学理念,强化对学生工程实践能力和工程创新能力的培养。对于软件工程有关的课程改革也是学者们研究的热点。从教学内容上看,随着大数据时代的到来,对专业人才也提出新的要求,文献[6]从人才培养标准矩阵出发,对数据库技术系列课程的设置作了探讨。文献[7]从建构主义教学思想出发,以学生为中心,强化学生自主学习来提高教学质量。从实践教学上看,金梅提出了阶梯式的实验教学体系和基于工程实践的课程设计模式,以此加强学生理论与实践的联系,提高综合运用知识的能力。也有很多学者借鉴CDIO先进的工程教育理念,对数据库的实践教学进行改革探索。课题组也通过整合相关的实践教学,使用实际的项目,对数据库实践教学的改革进行了尝试。综上所述,学者们对软件工程有关课程的改革从教学内容和强化实践等几个方面展开,并取得了一定的成果,但改革探索大多数情况只是就某一门课程展开。
2实践教学改革举措
“三学期制”改革,是将夏季学期设定为集中实践教学阶段。以此为契机,整合相关的课程实践教学,使用实际工程项目为任务,通过模拟企业开发过程,学生团队分角色完成任务。综合培养学生的工程实践能力和团队协作精神,使学生能迅速适应社会的需要。
2.1整合相关课程的实践教学
在集中实践教学阶段,学生可以集中精力完成实践训练,而且各课程的实践教学环节均安排在这个阶段进行,为有关课程的整合提供了可能。数据库作为软件系统的核心,它往往和软件开发紧密相关,对它的设计也应从系统的高度进行考虑。传统数据库课程设计的做法是单独对数据库的设计进行训练,并给出一些需要使用SQL编程实现的要求,由学生编制相应的存储过程、函数或触发器来实现这些要求。这样下来,学生往往不能将数据库部分置于整个软件系统之中。经过实践训练后,也无法在程序中正确连接数据库,正确嵌入和使用SQL语句。此次实践改革的思路是结合程序设计、软件工程等相关课程的实践教学,将它们有机地结合在一起形成一个大的项目,这样实践项目就是一个整体,使学生的各方面都能得到训练,各门课程可从不同的角度对学生的实践能力进行培养。程序设计课程重点培养和考查学生的编程实现能力,软件工程课程关注学生运用软件工程方法及CASE工具进行软件分析设计的能力的培养,数据库课程重点培养学生的数据库(包括概念结构、逻辑结构、物理结构)的设计,以及综合运用学科知识解决实际问题的能力。同时,相关课程的教师组成项目导师组,共同指导学生团队完成项目。
2.2从实际项目中提炼实践任务
实际的工程项目通常具有相当的复杂性,把已完成的实际项目提炼成适合学生团队完成的实践任务,是能否顺利实现此次实践教学改革的关键。实践教学导师组均为参与多项横向和纵向课题的教师,在完成这些项目的过程中,已经花了大量的精力和时间,积累了宝贵的经验。根据实践教学目标,对参与完成并正在运行的“教务在线系统”“绩效评价系统”进行提炼,根据模块将其分解成为若干个小项目,提供给学生团队选择完成。在实践任务的提炼过程中,把握全局性并将各学科的知识点放置在任务中,使学生受到系统的训练。在以上各子项中均要求:录入应能够实现界面录入以及批量导入;修改应能实现单条记录的修改和多条数据的批量修改,以及相关数据的级联修改;删除应能实现单条记录的删除和条件筛选的多条记录删除,以及相关信息的级联删除;查询应能实现不同关键字的基本和组合查询,各查询均要求实现模糊查询。在实践任务分解过程中,考虑到子项不应太复杂,所以将各模块之间的关联尽可能去除,使各模块成为能够独立完成的子项,以便于学生团队分组完成实践任务。
2.3通过模拟企业开发环境,学生以团队分工协作完成项目
为使学生毕业后能迅速适用社会岗位的要求,需要在校期间给予足够的企业环境下的工程实践训练。我校正在进行校内实训基地的建设工作,在此基础上,在校内实训基地模拟IT企业环境,将有关实践教学任务置于校内实训基地内进行。要求学生在各实践教学环节,以学生团队的形式完成项目,不同的学生扮演实际项目中的不同角色,有分工、有合作,协同完成项目。并在校内实训基地内实现企业化管理,使学生熟悉和适应企业环境。
2.4评价考核方式多元化
通过与相关课程实践教学的整合,一方面将教学内容整合,另一方面可由多门相关课程的教师组成导师组,在实践任务实施过程中,从不同方面给出指导意见,在实践任务过程中和完成后,从不同角度进行评价考核。其一,关注任务完成的整个过程,加强过程监控,强调过程性评价。其二,考核内容不仅包括技能分,还包括态度分、形象分、团队分、创新分等。学生在实践任务实施的过程中,表现出来的自我学习、自我管理、沟通合作、解决问题和完成任务、设计和创新等方面的能力,都是导师组考核学生成绩的依据。
3结论与展望
现代化社会的发展,软件工程广泛应用到嵌入式系统、人机界面、翻译器、电子邮件及数据库和各项操作系统中。在此基础上,还受到了航空、工业、政府部门及银行等各个行业的大力追捧,大大减少了各行业工作人员的工作总量,有效提高了他们的工作效率,并促使人民群众的生活质量得到提高,带动了社会经济的发展。软件工程的开发离不开软件工程师,根据领域的不同又分成系统测试员、分析员、工程师及程序员等,统称为软件工程师。他们肩负着对费用合理、质量良好的软件产品的开发,通常情况下,其主要以产品的可靠性、安全性、可维护性、实用性、功能性等指标来衡量软件产品的整体质量。
2软件工程开发技术
2.1软件标准化应用技术
软件标准化应用技术又分成软件标准和软件过程标准,其是软件构件和软件重用技术开发与发展的先决条件,可有效保障软件工程产业的健康发展。软件标准化应用技术直接关系到软件工程各项指标能否达到相关标准,其也是衡量软件工程成熟度的重要条件。国际标准化工程和系统工程委员会详细指出了软件工程的标准结构,加之美国国防部关于软件标准相关内容的提出,并列成为当代软件工程的两大重要标准。
2.2软件构件和软件重用技术
软件构件和软件重用技术一直是软件工程开发中的重要环节。软件重用是开发和研究软件的必要手段,构件作为一项基础条件有着不可小觑的重要作用。其中,软件重用技术可让软件工程师从大量写代码的工作中解脱出来,促使其更好的投入到更具适用性软件系统的开发中,从而确保空间和相关问题的一致性。软件构件技术是实现重用技术的前提,两者相辅相成,互相促进。这一过程中,各类开发工具是软件开发和应用的依托,如集成开发环境、构件库管理及运行环境等。
2.3中间件技术的采用
中间件平台作为软件系统开发和运行的支撑,是实现构件技术的前提。中间件适用于合适的平台上,加速软件的隔离和抽象,最终形成构件。因此,中间件技术在软件行业中备受青睐,根据分布对象、通信、事务处理、调用远程过程、访问中间件这五大类进行划分,具有划时代的意义。
3软件工程开发过程
3.1用户需求分析
用户需求分析即为在构建或改变软件系统时,应根据新系统的定义、范围及功能等内容进行用户群体需求分析,并综合分析数据准确把握系统定位,以开发出优质的系统软件。该过程中,协调需求分析员和软件工程师之间的关系是十分关键的,两者强强合作后,应首先找准目标用户群,并针对用户的实际需求确定系统软件的各项功能,最终制定出最佳系统开发方案。
3.2软件系统分析
软件系统分析主要是指归纳和整合需求调查中的各项数据和相关资料,并针对软件内部实际管理和信息处理情况进行分析。软件系统分析的主要目的是为了落实用户的相关需求,并寻求出最具适用性的解决方法,其是软件设计过程中不可或缺的组成部分。
3.3软件测试
在整个软件系统进入使用之前,软件测试是最为重要的环节之一,在进行软件测试时,不仅能对软件的需求进行分析,还能对软件的功能及性能进行验证。软件测试是指,根据运用软件的测试方法和测试工具,按照测试流程及测试方案,对被测试软件的功能与性能进行检测。在对软件进行测试的过程中,编程人员可以按照不同的软件和不同的架构编写出各种测试系统以及测试方案和工具,以控制将有可能出现的问题。在软件开发的整个过程中,都要紧抓各个开发环节及时进行同步的测试内容,并且针对测试中发现的问题加以解决,同时完善相关的开发程序。在此之后进行重复测试,在反复测试中不断完善各种问题,直到软件最终成为完整产品。
4软件工程开发的基本特征与应用情况
4.1明确性
软件工程在进行软件设计时就已经根据人们多种多样的需求制定了明确的目标。软件工程设计的任务是在工程实施或者产品投产之前,为这项工程或产品提供各种需求的标准,这一任务正是体现了软件工程中“需求分析”的特点,并且需求分析的质量对软件开发的成败有着直接影响。在这个阶段中,开发技术人员需要不断的与用户进行沟通和交流,完全明确软件开发项目的概念,最终形成一个完整的、清晰的、明确的开发目标。
4.2完整性
在用户或者服务器系统的应用中,保证信息准确无误的重要条件是数据及数据处理的完整性。因此,在软件开发的过程中,确保数据及数据处理完整性的逻辑要求是最为严密的。例如,有时在处理一个事物的过程中,会修改多个表格数据,如果在修改中发生了任何细小错误,都必须放弃整个处理过程,而不是其中的一个过程,然后返回最开始的阶段,以确保操作的完整性,从而保证了数据及数据处理的完整性。
4.3规范性
应用软件的开发工作在不同人员进行修改时需要能较为容易的接手,因此开发应用软件必须保证规范性。由于软件在开发的过程中需要按照一定的规则进行对象组合,所以能符合标准。但是如果是群体开发软件,由于每个程序员的想法及工作习惯都不相同,因此不容易符合标准,而软件开发的标准极为重要,必须保证其规范性,所以在软件开发的过程中,程序员之间需要多沟通交流,确保软件的顺利开发。
4.4易维护性
由于在软件开发的过程中,对象组合具有继承性,在对祖先对象进行修改时,也会对其继承对象造成直接影响,提高了软件程序在一定程度上的维护性。并且,逻辑规定和语法规定相同,群体开发软件不会因为个人特有的思想与工作习惯受到影响,从而使软件开发的维护性得到了保证,也提高了相互之间互相弥补的可能性。
4.5创新性
科学技术需要发展,发展离不开创新。随着工程技术的不断创新,软件开发出的产品在满足人们高要求的同时不断进步,为了获得广大用户的信任与支持,系统分析员在进行系统分析时,应当全方位了解广大用户的需求,针对用户的各种需求提出可行性方案,并且在不断的与用户交流中完善与改进方案,在如此反复中完成整个设计开发的过程。
5结束语
1构建软件工程硕士课程体系框架
哈工大软件学院软件工程硕士的培养目标是培养学生掌握软件工程领域的基础理论、先进技术方法和手段,具备独立承担软件工程技术工作的能力、组织和管理专门技术工作的能力,同时具有较丰富的、与国际接轨的学习训练经历,工程实践经验,企业经历和良好的职业素质;使其树立科学的世界观与方法论,品行优良,身心健康,成为具有国际竞争力的软件产业高级人才,为进一步成为软件产业领军人物(高层技术人才与管理人才等)奠定坚实的基础。面向企业,综合考虑软件系统分析与设计能力、项目管理能力、企业管理能力、组织与沟通能力、团队合作能力等方面的需求,根据学科专业方向的设置,按照“模块化知识体系与能力体系相结合,体现国际化与工业化特色”的原则,我们制订了软件工程硕士课程体系框架结构,如表1所示。软件工程硕士课程体系框架针对培养目标和企业的需求,对能力培养的具体目标进行模块划分,横向构造“6个能力层面”;纵向根据专业方向划分为多个能力域,形成多个能力培养模块。软件工程硕士的专业方向应紧跟行业需求,灵活设置。近几年,哈工大软件学院先后设置了网络与信息安全、语言处理与信息检索、数字化企业与电子商务、嵌入式系统与软件、物联网工程和移动互联等专业方向。在专业要求方面,全日制学生必须修满32学分;在职学生必须修满35学分。软件工程硕士研究生学制2~4年,在校学习1年,修满规定的学分,包括参加企业实训3周;实习基地实习1年,结合企业项目,完成学位论文。企业实习期间实行双导师制,校内导师和实习单位导师分别指导项目开发和学位论文撰写工作。校内学习与企业实训交叉进行,校企合作,产学研结合,联合培养软件工程专业硕士。
2组建专兼职结合的国际化、工业化高水平师资队伍
构建3支师资队伍,每支队伍30人左右。建立以工业型师资为核心的专兼职师资队伍,形成工业型专职教师、校内及国内外兼职教师相结合的师资队伍结构,是实现国际化、工业化培养目标的重要保证。第一支是以工业型师资为主的专职教师队伍。这些专职教师多数来自工业界、国外著名大学或国内外IT企业等。其中除任课教师外,还设若干专职实验教师岗位。实验教师主要负责专业课的实践环节教学,包括实验设计与指导、上机指导、课程设计和毕业设计等实践教学环节,同时实验教师还负责TA(实验辅导教师)的培训及管理工作。第二支队伍由计算机科学与技术学院和管理学院认证并聘请的校内兼职教师组成。他们主要负责软件学院的基础课、计算机专业基础课和管理系列课程的教学任务。第三支队伍由来自国外高校或国内外知名IT企业兼职教师构成。他们来自行业前沿,掌握国内外最先进的软件开发技术和人才培养经验,了解企业最新的技术需求。他们在承担软件学院的软件工程类、软件工具平台类的课程部分教学任务的同时,作为双导师制的企业导师,在研究生的工业实践、毕业设计、学位论文的指导中发挥重要的作用。以工业型专职教师为主、校内兼职基础型教师为辅、国内外兼职教师相结合的师资队伍结构,可以满足软件工程硕士国际化、工业化的人才培养需求。
3校企合作,加强企业实践教学
建立完善的工业型软件人才培养体系,包括工业型人才培养方案、课程体系与教学大纲、质量保证体系、工业化教学方式、技能实验与大作业、综合设计与企业实训、工业实习与学位论文、校企联合实验室与实习基地建设等环节,将“工业化,个性化,精英式”的办学理念贯穿于人才培养的全过程。在校软件工程硕士第1学年寒假要到企业参加为期3周的实训。实训由学院统一带队组织,实行半封闭式管理。期间接受企业培训,在企业导师的指导下分组完成指定的项目。通过强化训练,学生可以了解企业的项目开发流程,学习运用所学理论解决实际问题的方法,发现学习中的不足和技术上的差距,对后续学习起到引导和促进作用。第2学年,学生到实习单位实习并根据实习期间的实践工作内容撰写学位论文。对硕士毕业论文的要求是:具有系统性和完整性,能表明作者具有一定的独立工作能力;理论联系实际,应用所学的理论知识解决实际工作中的关键问题;具有实用性且必须包含一定的工作量。取得的成果要有一定的先进性,要能表现出学生具有综合运用所学知识解决工程实际问题的能力。从2002年至今,哈工大软件学院建立了完善的工业实习管理制度,在国内外建立工业实习基地70余个,实际接收学生实习的企业达200余家。工业实习基地的建设有效保证了工业化人才培养的质量。为加强与企业界的沟通,了解企业需求,完善培养体系,提高学生工业实习质量和加强工业实习管理,学院定期举办“工业化人才培养与企业合作高级研讨会”,与企业界人士研究和探讨工业化人才培养中的合作问题,企业参与意识很高,取得了较好的效果。
4与国外大学合作,联合培养软件工程硕士
通过对软件工程国际化人才特点及成长规律的研究,我们对软件学院国际合作办学模式开展了学科专业、教学体系、合作形态、组织方式、国际文化交流等层面的前瞻性研究,率先提出并建立了特色鲜明的多国联合办学、多学科交叉渗透、多国文化融合的,培养高层次、复合型软件工程人才的国际化联合教育模式。哈工大软件学院与法国波尔多第一大学、法国克莱蒙-费朗第二大学、德国柏林工业大学、爱尔兰都柏林工业大学、爱尔兰国立都柏林大学、美国Embry-Riddle大学、意大利帕维亚大学、瑞典林雪平大学、日本会津大学等合作,采用哈工大软件工程硕士专业学位(MSE)+合作方硕士学位(X)的“MSE+X”模式,联合培养硕士研究生。培养过程共分4个学期。第1学期,学生在各自学校学习;第2学期,外国学生来哈尔滨工业大学,与哈工大学生合班学习;第3学期,中外学生一起去合作方学校学习;第4学期,学生自选在国内、外企业实习、撰写学位论文、答辩毕业,哈工大与国外大学分别颁发硕士学位证书。跨国联合培养班的全部课程采用英语教学,实行三导师制,由国内、国外大学和企业导师共同指导。为加强交流,每年举办一次“中欧软件工业教育国际研讨会”,来自海内外的高校教师、企业界朋友在一起交流经验,共同探讨国际环境下人才培养的相关问题。多国联合培养软件工程硕士实现了国际化与工业化办学理念的教育模式与教学体系的设计与实践,软件工程国际化人才的跨国联合培养模式及实践,面向企业人才需求的教学与工业实习,国际化师资与专家队伍建设,教育质量保障体系建设与管理及跨文化的融合等目标。
5完善质量保障体系,加强过程管理借鉴
欧美教学质量保证的成功经验,哈工大软件学院建立完善且适合自身特点的国际化、工业化人才培养质量保证体系。学院成立教学指导委员会和教学督导委员会,在各个培养环节上严把质量关,把规定、培训、预防、跟踪、反馈、控制等质量保证活动渗透到教学执行过程中的每个环节。加强实践教学环节的监督检查,有效保证教学质量和人才培养质量的稳步提高。为提高软件工程硕士的指导质量,学院成立了若干个指导教师组,每个指导教师组负责一个专业方向的硕士指导,设组长1人,负责本组指导教师的组织和督导。每名硕士研究生指导教师每年指导的硕士研究生不超过4人。学院组织专家组审核学位论文。只有通过了专家组的审核,学生方可申请学位论文答辩。另外,硕士研究生开题、中期检查和结题验收、论文查重等环节也有详细的规章制度、严格的过程管理,这是提升硕士研究生培养质量的有效手段。
6成果与特色
在软件工程硕士研究生培养的实践中,哈工大软件学院在以下几个方面取得了优异的成绩,形成了自己的特色,积累了丰富的经验。(1)面向软件产业的人才需求,校企合作,形成较为完善的应用型硕士研究生的工业化人才培养体系,开展多种形式的校企合作,建立有自身特色、符合国际化标准、满足软件企业需求的工业化人才培养计划。(2)创立软件工程国际化人才培养模式和教育体系;实现“跨学科融合,双边对等招生,联合培养,融合文化”的“MSE+X”软件工程硕士跨国联合培养模式,为学生提供国际化学习环境。(3)建立与国际接轨的办学机制和教育质量保证体系,实施课程考核累加计分制等教学管理新制度。(4)培养了一大批具有国际竞争力、满足企业需求的高级软件人才。
7结语
经过10余年的探索与实践,哈工大软件学院在广泛开展校企合作和国际交流的基础上建立起较完善的国际化、工业化软件工程硕士研究生培养体系。在培养过程中实施严格的过程管理,学院在软件工程硕士人才培养方面积累了一定经验,取得较好的成果。随着软件工程理论与技术的发展,特别是产业人才需求的变化,软件工程硕士的培养模式与培养体系仍需进一步完善,以适应新的人才培养需求。
我们在软件工程项目中,会用到许多不同的难题,这就让项目不能顺利发展,严重的会直接致使结果失败,这些问题主要是:在软件质量的过程管理方面,它缺乏专业知识,缺少相关的措施。在早期的软件开发中,为了确保这一重要工作的顺利进行,必须建立一个规范的质量管理体系,并在软件开发过程中安排经验丰富的管理者。不规范的管理体质不但阻碍了项目的进程,也给软件的质量带了影响,甚至会有“头痛医头,脚痛医脚”的管理模式现象出现。软件开发资源和进程预算的误差大的原因是:项目计划的不合理性。若是在项目管理中,工作人员没有对专业知识进行积累,开发者的工作预算日就会不够,这是导致实际开发过程中有风险。我们可以在开发前做好应对方法,这样工作者才能按计划顺利地完成工作。使用者不能全面地获取要求和分析的策略。用户要求的调研和解析的发展是不全面的,信息管理系统也是不正规的。在这样的情况下,用户需求分析也是不充足的,工作者不做前期工作,就匆匆开始设计,研究程序,这就让成品和用户的业务要求出现了偏差错误。
2如何实现电脑软件工程正规化
就中国目前进展角度而言,形成一个相对完整的正规化体系是通过引进国际标准来实现的。但是,在相关工作的正规化发展历程中,就软件工程的角度来看,我们有必要进一步提升。现今,软件工程正规化需要对下面问题进行确定:
(1)强调软件工程系统的概念的重要性。在常规使用中,使用者常常依照自己的用法作为明确的准则,这样,不但容易导致对环境标准的疏忽,而且也不容易想到软件工程在所有准则上的内在关联。为了让系统和所有准则间的联系显示合适的指示,我们必须及时使用关键工程的准则。
(2)把国际标准引进速度迅速提升。由于言语方面因素的限制,国内的国家标准至少需要三至五年才能达到国际标准。我们更应该及时采用国际标准,应用关措施来缩短与国际接轨的时间线。就国际热点问题进行探讨,尽早步入国际轨道,我们要尽快并行预研项目团队。
(3)及时学习国际标准并作出相关解释。由于语言和文化背景上的差异,已经引进来的国际标准往往是不易被人们接受和使用,这说明在国内和国外之间是存在一定差异的。针对这一情况,及时推出具有针对性的规范性解释,并与国内软件产业结合,尤其是企业的管理模式,不仅促进了对国际标准的了解并认识到自身的实际情况。
(4)加强对国内电脑软件产业标准化的研究工作。目前最先进的技术,大部分都由跨国公司所掌握。占据了行业标准的标准化信息系统就是掌握了市场的主动权。目前中国只接受国际标准,处在一个相对被动的状态。国内应大力发展国内标准,适时推出符合并促进国内发展的标准。在新一轮的软件标准化到来时,处于不败地位。
基于CDIO工程教育模式的项目驱动“面向对象软件工程”课程教学方法(下简称CDIO教学法),以培养学生的基本工程能力和工程综合素质为目标,将“面向对象软件工程”知识体系中的相关知识点渗透到实践的各个环节中,而这些环节和软件工程生命周期完全一致,在各个环节中解决问题的方法则可以采用CDIO的构思、设计、实现和运行理念。我们参照CDIO能力大纲,提出通过“面向对象软件工程”教学和课程项目实践,培养学生如下方面能力:①通过基于案例/项目驱动来学习,要求学生能够深入理解“面向对象软件工程”的知识体系和该课程的基础理论并能在实际项目中加以灵活应用。“面向对象软件工程”的知识体系为学生理解和应用其基础理论解决分析、设计、实现和运行中的实际问题打下基础并提供有效工具;而“面向对象软件工程”理论基础为学生针对实际问题进行发明创造提供动力,为学生发现问题、分析问题和解决问题提供理论支持。②通过“面向对象软件工程”课程中项目的驱动,要求学生创建项目团队,通过课程项目实践各个环节(包括需求分析、设计和实现等环节及在此环节中的各项活动、沟通与协调、文档撰写),培养学生的良好职业素养,以及团队合作、系统思维、工程实践、项目管理和文档写作的能力。③通过“面向对象软件工程”理论学习和课程实践,培养学生的创新意识和能力,以开发出具有鲜明个性的软件作品。
2CDIO教学法在“面向对象软件工程”理论及其课程项目教学设计中的应用
2.1总体设计
目前,“面向对象软件工程”课程教学安排共计54学时,我们将理论教学内容与课程项目实践教学内容结合起来进行设计。在整个教学周期内,按照软件生命周期并结合CDIO、案例与项目驱动的教学法,设计理论课程案例教学过程中的相关活动,配合对应的课程项目实施活动加以有效组织与实践,在整个教学环节结合项目开发活动的进展与深入,要求学生记录自己团队活动中的相关内容,按照我们事先制定的规范撰写并维护项目文档。具体解决方案是:第一,正式课程教学的1~6周,设计项目描述和需求获取与分析、系统设计中的具体活动,这些活动包括分别标识实体对象、边界对象和控制对象;将用例映射成对象;建立对象之间的交互;标识关联、聚集和属性;对单一对象状态依赖行为的建模;对对象之间的继承关系建模;对本阶段的分析对象模型进行评审;基于分析对象模型标识出设计目标,进行子系统分解和标识;将子系统映射到系统构件元素上;标识并存储持久性数据;设计访问控制策略;设计全局控制流;标识服务;标识边界条件;对系统设计进行评审。第二,7~14周,设计对象设计与实现中的活动,这些活动包括学习软件复用和设计模式,并在详细设计中加以应用;对对象之间的接口进行说明,涉及标识遗漏的属性和操作、说明接口类型、签名与可见性,说明接口中相关方法的前置条件、后置条件和不变式等。第三,15~16周,设计测试阶段中的活动。第四,17周,进行相关的总结活动,包括项目文档的静态检查和验收,以及课程项目的动态演示与现场回答问题。
2.2设计课程项目
在设计课程项目中,将考虑提供给学生一个贯穿整个学期的课程教学项目描述,为此我们将选择开发一个基于Web的应用系统。这类系统的实例很多,可以由教师设定或者由学生自选,如教师可根据教学中的需要设定一类基于Web的师生交流系统,以方便实现教师和学生之间关于做项目时的沟通。学生也可以根据个人兴趣选择网游软件开发,或者选择基于Web的电子商务网站系统等。总之,相关项目的设计需要教师事先准备好项目描述或问题定义。为了开发这类基于Web的应用系统,教师需要指定项目使用的环境和工具,主要包括两类:一类是开发环境与工具、数据库管理系统、界面开发工具等,另一类是项目管理工具。这一阶段设计的活动属于CDIO中的构思阶段。
2.3设计理论课程教学过程
首先,在理论课程教学内容设计中,我们主要依据的是第3版的SWEBOK标准(2013),在CDIO工程教育模式的指导下,完成相关知识体系教学设计。在SWEBOK2013版中的17个知识点中(其中2个为候补知识点),我们选择了其中10个知识点,并将这些知识点融合到“面向对象软件工程”的理论课程教学中。这些知识点可有效地体现着CDIO的工程教育理念,如软件需求体现了CDIO的构思,软件设计体现了CDIO的设计,软件构造和软件测试体现了CDIO的实现,软件维护体现了CDIO的运作等。其次,在此基础上设计理论教学过程。一方面,以案例/项目驱动教学方法为基础,“面向对象软件工程”课程中相关知识体系及理论学习,要求学生在学习和思考中掌握“面向对象软件工程”的相关知识、术语、理论和技术基础,并通过团队方式共同学习、讨论和完成作业,并以团队形式参加全体同学的各种讨论活动;另一方面,要求学生围绕着项目描述或者待解决的问题描述,完成团队组建、工具选择、项目计划制定,并开始执行需求工程中的需求获取和需求分析活动,以及在此基础上的系统设计活动,这些阶段的工作结论需要学生加以记录,特别是需求获取与分析的结论和总体设计结论更要以文档形式加以记录。第三,结合案例/项目驱动教学,进一步完成“面向对象软件工程”理论课程。具体做法是一方面引入小型案例,另一方面引入面向应用领域的实际项目,并在项目描述、需求获取和分析活动、系统设计和对象设计中,将该项目的具体情景或者可行的系统设计解决方案引入课堂,在课堂上组织学生参与讨论、分析这些基于场景的案例,将需求阶段和系统设计阶段中涉及的重点知识、术语、过程与步骤等重点和难点融入到案例中来讲解和学习,以便于学生真正理解相关的理论教学内容。这一阶段的活动设计对应着CDIO中的构思阶段。
2.4基于项目驱动的课程实验教学设计
解决软件项目中的问题或实现软件项目中的任务,要求学生以团队方式进行活动,并在整个活动中的各个阶段贯彻CDIO工程教育的理念,即让学生能够对软件项目中的任务完成进行构思,获取与软件项目相对应的软件系统的功能性需求、非功能性需求和系统约束,并以文档方式进行描述;接着,通过设计手段来完成项目任务,用系统来对应将来要完成的任务,并在该系统设计中落实项目的各项要求,这需要通过对系统的总体设计、详细设计等环节来达到,并将设计结论记录在软件设计文档中;在前面构思和设计的基础上,选择合适的程序设计语言、数据库管理系统等基础设施,用编程的方式实现该系统,并完成相应的测试任务,注意在实现过程中,同样要将相关结论以文档的形式加以记录,以备维护之需;在系统实现后,通过部署和运行等方式,让该软件系统(可以看成是本项目的解决方案)呈现出价值。在这一完整过程中,让学生通过项目驱动下的团队活动过程,体验到软件产品从构思、设计、实现到运行(包括维护)所经历的全生命周期过程。这一阶段的活动设计对应着CDIO中的设计、实现阶段。
2.5项目总结与项目验收过程教学设计
项目总结过程的教学设计是以团队为单位进行自我总结并撰写项目总结报告,以个人为单位撰写学习心得,教师主要验收和检查相应的项目总结报告和学生学习心得。项目验收过程的核心是开展两阶段验收活动,即在学期的15~18周中,选择第15周进行一次中期检查,第18周再进行一次期终项目验收。全体主讲教师和辅导教师组成一个答辩小组(一般为4人),他们事先要做好各项准备工作,包括现场点名以确认学生的有效身份并结合点名宣布学生团队的答辩顺序,保证答辩的有效性和合理性;由答辩小组组长宣布评分标准细节和学生是否能够通过本次验收活动的标准。
3实践活动
在“面向对象软件工程”课程教学活动中,共有45位学生(组成了15个团队)全程参与了我们的教学改革过程,现在仅就验收答辩环节进行说明。整个答辩所耗时间共计7个多小时;答辩老师根据实际情况(最低底线是学生必须完成项目要求的最基本功能),充分肯定了学生到目前为止所完成的开发成果,同时建议相关学生利用即将到来的假期进一步完成或完善该应用软件系统的开发,及时修改设计上的缺陷。在本次教改实验过程中,我们充分认识到这一教学过程对教师也提出了更高的要求。教师不仅仅是需要在理论基础教学上过硬,还需要具备软件项目开发的经验,这样才能够做到既能站在理论的高度指导学生分析和解决问题,同时也能给出实实在在的课程项目开发活动中的技术指导。
4结语
传统“面向对象软件工程”课程的教学方法所带来的弊端已经日益显现。我们结合案例教学法和项目驱动教学法,提出了一种基于CDIO工程教育模式理念的“面向对象软件工程”的教学方法,这既满足了CDIO能力大纲体系中的4个方面,也体现出了教师在教学中的主导地位及作用和以学生为主体的教学风格,符合“新三中心论”。实践证明,该课程教学方法有利于学生在以案例/项目方式充分理解和掌握本课程知识体系的前提下,通过项目驱动下的实践环节,培养学生的问题分析能力、用编程手段解决问题的能力和团队合作精神。
[摘要]当前计算机软件的复杂性处于日益增长的趋势,不仅意味着软件技术的飞跃,同时也意味着计算机软件的规模也将随之不断扩大。在这样的背景下,面向对象的软件工程逐渐成为了软件开发过程中的主流技术,在近年来逐渐由面向对象编程向面向对象分析及面向对象设计转移,为计算机软件的发展开辟了新的道路,成为了一种主要的研究方向。
[关键词]面向对象;软件工程;开发
前言
软件工程的设计在于对工程学的相关理论进行利用,并由此作为立足点来进行软件开发与维护。作为软件工程方法中的一大主流方向,面向对象的方法在近年来得到了较为广泛的应用。在该方法中,对象的主要特征属性在于数据与操作,其中数据对应于对象的内部属性特征,操作对应于对象的外部运动规律,通过利用面向对象的方法,软件开发与维护的便捷性可得到根本提升。本文特针对基于面向对象的软件工程开发进行了相关探究,现总结如下。
一、面向对象的分析与设计概述
面向对象的分析过程主要包含以下两个阶段:①对用户需求进行提取与抽象概括;②建立模型。面向对象的设计过程主要是将用户的实际要求进行转换与设计,使其成为一个最优的方案。面向对象的方法在由分析到设计的过程中,所有已知条件处于不断扩充的状态,在对其进行优化与完善后,最终使其成为模型。分析与设计虽属于两个不同的阶段,但两者不仅相互联系、相互影响,甚至可相互产生制约。一方面,分析的准确性可对所建立模型的实际意义产生直接影响,同时也是设计结果的折射;另一方面,设计阶段并非可脱离分析阶段独立运行,反之,在这一阶段中需对分析的结果进行反复的理解,由此对其进行完善。
二、面对对象的开发方法研究
2、1Booch方法
Booch这一方法主要分为微观与宏观两个过程,两个过程之间存在一定联合,同时相互区别,笔者在此进行区别概述。微观的过程可概括为以下几个方面:①将类和对象抽象化,在问题中进行类和对象的挖掘,同时确定实现对象功能的行为;②对抽象出来的类的状态及行为进行建立,主要对类图进行利用,由此建立起识别对象与类的关系,对类对象的边界进行确认,并对相互协同作用的类对象进行辨别;③对算法与数据结构进行优化设计,以实现对象类与对象。与微观过程不同的是,宏观过程对于风险与结构更为侧重。进行宏观软件工程开发时,一些相应的成果及活动随之得以确定,为风险评估工作与修改工作提供了便利条件。在宏观过程中,结构与完整性两个因素得到了重点强调,对概念化和需求的建立提出了新的要求。在概念化的过程中,对于创造性具有较高的要求,且无固定模式与框架,建立核心的需求是该过程中的根本任务。另外,在分析过程中,需对软件开发所需的模型进行提供,并充分对系统的行为引起重视,由此作为立足点,对系统的功能特点进行区分;设计过程中,主要侧重于系统结构的实现。
2、2OMT方法
OMT方法是一种在数据库的关系设计中具有广泛应用范围的方法,且在不断发展的过程中,在面向对象的分析与设计领域中也逐渐得到了应用。在实体与关系模型的基础上,OMT方法又做出了进一步拓展,主要包括类、行为、继承等。该方法的模型主要分为如下三种:①对象的模型。该模型主要对对象静态的结构进行表述,并对其相互之间的作用关系进行表达;②动态的模型。该模型主要对系统动态的变化特点进行描述,如随时间的变化等,状态与活动是其重要概念;③功能的模型。该模型主要将不同的数据值在系统内进行转换,如数据存储、数据流、控制流的概念等。总而言之,OMT方法对于分析数据密集型的信息系统具有重要的意义,同时具有较为广阔的发展前景。
2、3UML方法
UML这一建模语言的特点在于易于表达、思路清晰、功能强大,包含着静态、动态、系统环境模型等。在这一方法中,可通过可视化建模工具所提供的代码来对模型进行转换,使其成为一种编程语言,不仅如此,还可通过对相应的工具与方法进行利用,使其产生逆向转换,使其成为UML。在UML方法中,基于例图、对象图、类图的模型可划分为静态模型;基于状态图、活动图的模型可划分为动态类型。这一方法的优势在于对先前各种建模技术的经验与特点做出了综合与总结,并对其中的有利条件进行了吸收,形成一种标准的建模语言。例如,Web系统、数据的模型等新的思想均在UML技术中得到了充分体现,为其提供了深厚的内在支持。
三、面向对象的软件工程开发的特点及优势
经实践研究表明,面向对象进行设计的软件工程在当前的计算机软件工程中具有较强的优势。第一,该方法与人类的思维方式更为贴近;
第二,该方法具有较强的稳定性;
第三,具有更强的可复用性;
第四,在大型产品的开发与维护工作中可提供更为良好的便利条件。该方法的特点主要可概括如下:①对象属于基本元素,不同的基本元素之间可进行组合,形成复杂的软件对象,并由软件对象构成整体的系统;②在对不同的对象类进行划分时,可各自对应的数据与方法;③层次结构可通过子类与父类来进行设定;④不同对象之间可进行相互联系。
四、结语
综上所述,面向对象的软件开发工程是一种具有较强先进性的方法,在计算机软件开发工作中具有重要的意义,但仍面临着一定的局限性,需在今后的实践中做出相应的完善。