时间:2023-03-15 14:55:12
导语:在软件工程论文的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。
我们在软件工程项目中,会用到许多不同的难题,这就让项目不能顺利发展,严重的会直接致使结果失败,这些问题主要是:在软件质量的过程管理方面,它缺乏专业知识,缺少相关的措施。在早期的软件开发中,为了确保这一重要工作的顺利进行,必须建立一个规范的质量管理体系,并在软件开发过程中安排经验丰富的管理者。不规范的管理体质不但阻碍了项目的进程,也给软件的质量带了影响,甚至会有“头痛医头,脚痛医脚”的管理模式现象出现。软件开发资源和进程预算的误差大的原因是:项目计划的不合理性。若是在项目管理中,工作人员没有对专业知识进行积累,开发者的工作预算日就会不够,这是导致实际开发过程中有风险。我们可以在开发前做好应对方法,这样工作者才能按计划顺利地完成工作。使用者不能全面地获取要求和分析的策略。用户要求的调研和解析的发展是不全面的,信息管理系统也是不正规的。在这样的情况下,用户需求分析也是不充足的,工作者不做前期工作,就匆匆开始设计,研究程序,这就让成品和用户的业务要求出现了偏差错误。
2如何实现电脑软件工程正规化
就中国目前进展角度而言,形成一个相对完整的正规化体系是通过引进国际标准来实现的。但是,在相关工作的正规化发展历程中,就软件工程的角度来看,我们有必要进一步提升。现今,软件工程正规化需要对下面问题进行确定:
(1)强调软件工程系统的概念的重要性。在常规使用中,使用者常常依照自己的用法作为明确的准则,这样,不但容易导致对环境标准的疏忽,而且也不容易想到软件工程在所有准则上的内在关联。为了让系统和所有准则间的联系显示合适的指示,我们必须及时使用关键工程的准则。
(2)把国际标准引进速度迅速提升。由于言语方面因素的限制,国内的国家标准至少需要三至五年才能达到国际标准。我们更应该及时采用国际标准,应用关措施来缩短与国际接轨的时间线。就国际热点问题进行探讨,尽早步入国际轨道,我们要尽快并行预研项目团队。
(3)及时学习国际标准并作出相关解释。由于语言和文化背景上的差异,已经引进来的国际标准往往是不易被人们接受和使用,这说明在国内和国外之间是存在一定差异的。针对这一情况,及时推出具有针对性的规范性解释,并与国内软件产业结合,尤其是企业的管理模式,不仅促进了对国际标准的了解并认识到自身的实际情况。
1.1计算机软件安全检测的流程
通常计算机软件安全检测的过程中只要有以下几个流程,首先是为了彻底全面的对计算机软件系统当中可能存在的缺陷予以充分的检测和了解,要对软件设计过程中最小的模块进行进行全面的测试,之后是要严格按照设计的标准和要求对组装的系统进行检测,此外还要对与之相关的体系机构进行全面的检查。其次就是要在做好了上述各项功能工作之后,还要对软件自身的有效性和功能性进行详细科学的检测,最后一点就是要对整个系统进行全面的检测,测试整个软件在各种环境下运行的安全性和可靠性。
1.2当前计算机软件安全检测的只要方法
首先是形式化的检测。形式化的安全监测实际上就是根据具体的要求来建立软件应有的数学模型,之后通过对应的标准化语言对其进行格式化的说明。形式化的安全监测通常有两种检测方法,一种是模型检测,一种是定量检测。其次就是在模型基础上的静态安全检测。模型安全监测一方面是通过软件行为和结构构建的一种方式,这样也就形成了一个可供测试的模型,这种模型在运行的过程中一方面可以在计算机上实现读取,在工作的过程中,比较常用的模型安全检测方法有两种,一种是有限状态机检测,一种是马尔科夫链检测、再次就是语法检测。语法检测实际上就是技术人员通过技术措施对软件在不同的输入条件下所产生的反应是否相同。四是基于故障注入的软件安全检测。故障注入的安全检测是应用故障分析树与故障数的最小割集来检测的。五是模糊测试和基于属性的测试。基于白盒的模糊测试较传统的模糊测试技术有很大进步,白盒模糊检测方法有效地结合了传统的模糊测试技术和动态测试用例检测技术的优点。六是混合检测技术。能有效地改善静态技术和动态技术检测存在的一些缺陷,从而更好地对计算机软件的安全进行检测。七是基于Web服务的检测技术。它是一种基于识别内容的分布式Web服务器技术。具有语言中立、互动操作性强等优点,能够将复杂的安全检测分解为子安全类型进行处理,以使其可以更有效地应对复杂的安全检测的需要。
2软件维护的主要类型
2.1改正性维护
改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。这方面的维护工作量要占整个维护工作量的17%~21%。所发现的错误有的不太重要,不影响系统的正常运行,其维护工作可随时进行:而有的错误非常重要,甚至影响整个系统的正常运行,其维护工作必须制定计划,进行修改,并且要进行复查和控制。
2.2适应性维护
适应性维护是指使用软件适应信息技术变化和管理需求变化而进行的修改。这方面的维护工作量占整个维护工作量的18%~25%。由于计算机硬件价格的不断下降,各类系统软件屡出不穷,人们常常为改善系统硬件环境和运行环境而产生系统更新换代的需求;企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。这些因素都将导致适应性维护工作的产生。进行这方面的维护工作也要像系统开发一样,有计划、有步骤地进行。
3提高软件的可维护性方法
3.1建立明确的软件质量目标
如果要一个可维护性的程序满足可理解的、可靠的、可测试的、可修改的、可移植的、效率高的和可使用的7个全部的要求,要付出很大的代价,甚至是不显示的。但是可理解性和可测试性以及可理解性和可修改性是相互促进的,而效率和可移植性以及效率和可修改性是相互抵触的。因此,要明确软件所追求的质量目标。
3.2使用先进的软件开发技术和工具
利用先进的软件开发技术能够大大提高软件质量和减少软件费用,并且稳定性好,容易修改、容易理解,易于测试和调试,因此可维护性好。
3.3建立明确的质量保证
最有效的方法就是质量保证检查,在软件开发的各个阶段以及软件维护中得到了广泛的应用。
4结束语
A类学生集中表现是计算机专业素养强,其实践开发能力往往高于在校学生,甚至相当出色;B类学生具备计算机专业课程的理论基础,但由于从事非计算机技术类工作,实践能力相比A类学生较弱,同时因为各种原因(如:希望将来能有机会在信息技术领域或信息技术相关的市场销售服务发展职业生涯、实现专科到本科层次学历的提升等)选择继续学习计算机专业;C类学生从事计算机技术工作,但由于受以往专科学习知识结构限制,希望在继续教育学习过程中提高自己的理论知识水平,进而拓宽自己在信息技术领域的职业发展空间;D类学生对计算机专业的理论与实践水平相比前三类学生均处于弱势地位,但该类学生抱有希望将来能够从事计算机技术或服务类的职业发展设想,同时也希望通过继续教育学习过程来深入理解计算机专业理论和方法。E类学生学习目的最为盲目,往往是因为种种原因(提升学历、对目前职业不满意、对未来职业发展不明确)抱着尝试的态度而在继续教育中选修了计算机专业。通过上述分析,我们发现一个显然的事实:成人计算机专业教学,相比从普通高考直接进入高校学习计算机专业学生而言,成人学生对象对我们的教学的接受要求、接受能力、接受方法等都不一样。因此,我们有必要在充分考虑上述因素的基础上,结合我们在对高校在校生理论与实践的教学方法,针对成人继续教育特色对软件工程开展教学创新。
二、差异化的实践教学
(一)实践教学主要内容
针对学生的学习基础、职业背景与发展等特点,本文主要通过情景教学模式、以项目实践为载体引导学生自主探究性学习,提高学生分析和解决实际问题的能力。运用当前软件企业开发实践中流行的建模工具搭建软件工程环境,调动学生积极性,寓教于乐,加快对软件工程理论和方法的理解。具体实践教学内容包括:1.掌握软件工程中的统一开发过程、面向对象等思想、方法;2.以UML语言为核心,要求学生掌握用例图、时序图、协作图、活动图、状态图、类图等模型,尤其是掌握由用例图开始逐步建立类图模型的过程;3.软件的编程实现与测试。以教师引导、学生自学为主让学生复习程序设计课程,掌握NET、PHP、数据库编程、软件测试工具Nunit等,在UML模型基础对软件原型进行代码实现。
(二)分组实践
软件工程课程实践一般采用如下形式:学生以开发团队的方式协作开发一个具有一定规模的软件系统,运用软件工程理论和软件建模技术解决软件开发问题。和以往计算机专业课程实践有所不同,软件工程实践中不仅仅要训练、考查学生对软件开发中分析、设计、编码、测试等的实践能力,而且要注重学生团队合作共同完成软件项目的思想、能力的提高。所以,课程实践分组进行尤为必要。本文通过让学生填写课程实践情况调查表的方式,让学生对自己、学生与学生之间的专长、特点进行清楚认识,然后在教师的协调下进行实践小组的组队。在成立小组之初则明确成员在实践中所扮演的角色:分析、设计、编码、测试等,或者将项目进行功能模块划分,学生在不同模块的开发工作扮演不同的角色。
(三)实施步骤
本文按照软件生命周期、瀑布模型进行,以学生自主实践,教师全程参与指导的方式开展小组分组实践。具体实施步骤如图2。其中:分析、设计、编码、测试等角色由每个小组成员进行分担;组内评审由小组成员共同完成;组际评审由各个小组派出代表联合完成;教师的在每个步骤中给予小组成员理论、方法的指导,及在每个阶段工作的提交结点上和小组成员共同对阶段工作进行考核、小结。
(四)实施结果
我们选取40个学生作为教学实验样本,分为10个项目实践小组,每组4人。首先,通过学生填写分组情况调查表来了解学生的以往专业背景、当前从事工作类别、未来职业发展意向等信息。在这一过程中,让学生联系自己的课程学习情况对未来的职业发展进行了思考,促进了参与课程实践的热情。
1.大专阶段学习专业对实践内容选择意向分析
对大专阶段学习专业对实践角色选择意向的影响统计分析如图3。统计分析表明:大专所学专业为计算机专业的学生侧重于选择承担编码、设计工作,但选择意愿仍是比较均衡;大专所学专业为信息技术类的学生则偏重于选择测试、设计工作;大专所学专业为非信息类专业学生则偏重于选择分析、测试工作。进一步分析可知:以往的知识背景、专业对学生选择实践角色有着重要影响,计算机专业毕业的学生对实践角色所承担的工作认识较为全面,侧重于选择技术程度高的编码工作。
2.目前从事工作类别对实践内容选择分析
我们将学生目前从事的工作分类为:计算机类(软件开发、项目管理、测试)、信息类、非信息类。学生工作背景对选择角色的意向统计分析如图4。统计分析表明:从事软件开发工作的学生侧重于选择承担设计、编码角色;从事项目管理工作的学生偏向于选择承担需求分析角色;从事软件测试工作的学生偏向于选择承担软件测试工作;从事其他类别工作的学生(信息、非信息类)学生选择偏向于分析、设计、测试工作。
3.职业发展意向对实践内容选择分析
我们将学生职业发展意向分类为:计算机类(编码、分析、设计、测试、项目管理)、信息类、非信息类。学生职业发展意向对选择承担角色的统计分析如图5。统计分析表明:职业发展意向为编码(软件工程师、高级程序员)的学生侧重于选择承担编码、测试角色;职业发展意向为软件需求分析、设计、测试、项目管理的学生偏向于选择承担分析、设计、测试角色;职业发展意向为信息类、非信息类的学生偏向于选择承担分析、设计角色。
4.分组实践比较分析
软件工程内容广泛[6-7],原则、原理、方法和技术很多,既有理论又有实践,抽象、枯燥是该课程的特点之一,若用双语教学无异于“雪上加霜”,进一步增加了枯燥和乏味。为了提高教学效果,增强趣味性,进行讲课的再设计非常重要。教学大纲的基本内容首先要完成.
2软件工程课程的教材选取
软件工程学科最早从国外引入,以美国为首的发达国家将软件工程教育与软件产业紧密结合,出版了一批优秀的有影响力的经典教材,国际著名软件工程权威Roger.S.Pressman所著SoftwareEngineering:APractitioner’sApproach被世界上很多著名高校选为软件工程课程的教学用书[8],该书内容丰富,全面、系统地展示了软件工程的最新技术和发展,“在国际软件工程界占有无可置疑的权威地位”[6],国内很多985高校都将该书作为教材,我国机械工业出版社、清华大学出版社等纷纷购买该书的版权,目前,该书已经出版第7版,在国内可见到不同出版社的十几个版本,说明该书被业界的认可度高。我们在双语教学软件工程课程时也一直使用Roger.S.Pressman的教材。该书内容丰富,价位相对较高,教学中只能用其中的一部分。双语教学对学生来说本来难度就大,所以导致绝大多数学生不买书也不看书,影响了教学效果。为此,在学校的支持下,笔者编写了规划教材《软件工程》,并在清华大学出版社出版,作为学生的中文教学参考用书,教学中的课堂教学内容则仍然全部为英文。这样,学生们既领略了国际大师的精髓思想和内容,同时也降低了接受难度,课下可以通过阅读中文教材,进一步体会英文内容或不理解的内容。
3软件工程课程的教学实践
3.1课前认真准备
为了提高学习效果,我们在第一次课将全部英文PPT拷贝给学生,使他们对内容、进度、难点有所了解,便于预习和复习,教学进行中再不断细化和充实。即使对非常熟悉的内容,在每次上课之前笔者都要认真准备,反复思考,对这一次课的主要内容进行归纳,找出重点和难点,确定时间分配,确定上课时的几个关键时间,笔者一般把上课内容分为2部分,每部分都在一节课(50分钟)内完成。另外,确定几个时间点,对于重点内容和难点多花时间,对于便于接受的内容或者看书能容易看懂的内容,则尽量少花时间。对于一些非常重要的理念性知识,教师直接给出大师的原话,让学生们去感受原汁原味的大师思想,如在讲授第6章“软件测试”内容时,直接给出国际软件大师Myers提出的3条“Softwaretestingobjectives”,以及10条“Softwaretestingprinciples”[9],让学生们感受理念性的基本思想,以及科技英语的基本表述。为了丰富教学内容,每一部分教师都介绍一些著名的参考文献,引导学生去进一步探索和学习。
3.2努力增强教学内容的趣味性
学生普遍对软件工程课程兴趣不大[10],为了调动他们的学习积极性,讲课不能太深奥。一旦学生听不懂了,就更没有兴趣了。为提高他们的学习兴趣,我们根据内容的难易程度安排讲课节奏,并增加互动环节,吸引学生的注意力,使他们在注意力转移的时候将兴趣重新回到课程上来。为了提高学生的学习兴趣,增强教学效果,要考虑如何让他们接受课程内容。有些知识本身就很枯燥,如何让这些枯燥的东西变得有趣,需要对这些知识进行“加工”和“包装”。为此,教师在幻灯片制作上下功夫,尽量使PPT漂亮、精美、有动画,接近学生,文字中必须有插图,同时增加一些有趣的内容,活跃课堂气氛。针对双语教学趣味性差,课程本身内容枯燥的特点,尽量增加趣味性,如在讲软件体系结构的时候,要求好的软件结构尽量成为mosque形式,避免pancaked结构。为了使大家印象深刻,笔者举了一个脑筋急转弯的例子,“一个体重40磅的女生能否用重1磅的锤子砸烂一块重1吨的石头”,几乎所有同学都认为不可能,因为女生的体重太轻,力气不够,锤子的质量也太小。可是当笔者给出答案,这块石头形状为扁平的时候,同学们一致认为这个女生不费吹灰之力就会把石头砸碎,同时一下子就联想到了软件结构,pancaked结构没有力量,就像一块扁平石头一样没有力度,很容易被打碎,这样的软件结构应尽量避免。
3.3努力使教学内容既有质又有量
除了提高自身的教学水平和知识能力以外,每堂课都要内容充实、丰富,不走过场,不让学生感觉这次课来不来都可。每次课要力争达到的效果是,如果学生不来,通过课下自学要比来上课花更多的时间和精力,并且很难达到上课的效果,这样才能使学生感到听课有价值。为此,教师一方面增加信息量,让大家感觉每次课都有收获,不上课就会有损失,课上增加很多课本之外的内容。对于每项技术、方法都讲它的起源、来龙去脉,为了让同学们听着有趣,笔者每次都要收集很多相关资料,介绍一些人物、故事、技术的起源。另一方面,为了增加信息量,每次都有效、合理地使用多媒体,让多媒体成为必不可少的重要工具。实践表明,使用多媒体可以使教学内容的信息量增加近一倍,但不能成为黑板的替代品,每一页PPT的信息量也不宜太多,否则会影响效果,特别是文字性的PPT不能一闪而过。在多媒体的使用上要重视动画、图片和趣味性。在讲授的过程中,要让每一页PPT停留的时间能让多数学生完整地阅读完,否则起不到好的效果。为了使PPT美观有吸引力,笔者增加了很多相关动画、剪贴画,自己还拍摄了以校园风光为主的很多标志性的背景照片,让PPT接地气,不但使PPT增加了可理解性,也更贴近了同学们的学习和生活。
3.4正确处理学风建设中出现的问题
针对目前高校高年级中普遍存在的必修课选逃,选修课必逃的现象,笔者也采取了一些应对措施,全方位提高出勤率。单纯点名不能起到应有的效果,人来了心不来等于没来。笔者采取的措施一是提高学生的学习兴趣,增强内容的故事性、趣味性,讲授时增加书本上没有的内容,让学生感觉上课值得,不来有损失,自己课下难以补上。二是表扬先进、促进学习,对于作业完成情况好的学生给予表扬,增强好学生的学习积极性,带动其他人赶超先进。对于抄作业的现象,这本来也是教学中屡禁不止的现象,不可能杜绝,关键是如何处理、如何面对。第一次发现有完全雷同作业时,在课堂上只说现象、不说具体是哪个学生,他感到不妥时就会收敛。此外,在批阅作业时,对抄作业和被抄作业的学生,除认真给他们批阅作业以外,最后在双方的作业本上均写一句醒目的大字“你的作业与某某某的完全一样”。有时三本、四本甚至五本作业都雷同,笔者并不追查谁是原始作者,谁是抄袭者,而是在几个同学的雷同作业上都醒目地用红笔写上“你的作业与某某某、某某某、某某某的完全一样”,两次以后就再也没有抄作业的现象了。虽然作业数量明显减少了,但交上来的作业确实都是原创,原创的人为了自己的作业“清白”,不让别人抄袭,抄袭的人也不好意思再去抄了,有效地杜绝了抄袭现象。三是重视过程考核,增加期中考试,对期中考试成绩落后的学生提前敲警钟,不是等到期末“秋后算账”,可最大限度降低不及格率。对于学习自觉性高,期中考试不理想的学生,则能起到鞭策的作用,使其奋起直追。期中考试成绩好的同学,在享受喜悦的同时会更加积极,以保持领先,并在期末取得更好的成绩。实践表明,每次期中考试后,出勤率都会显著提高,学生的学习积极性也会提高,学习风气也会改进。
4结语
1.CDIO模式下软件工程硕士培养过程的探索与实践
2.软件工程硕士胜任特征模型研究
3.软件工程硕士专业课教学中科学思维与创新思维能力的培养
4.国际化、工业化软件工程硕士培养体系实践
5.专业学位硕士研究生评教指标的构建及应用——以中国科学院研究生院软件工程硕士为例
6.目标驱动的软件工程硕士培养模式探索
7.软件工程硕士招生问题探讨
8.软件工程硕士实践能力培养探索与实践
9.创新的全日制软件工程硕士培养探索之路
10.软件工程硕士国际化培养模式的探索与实践
11.以知识体系为核心构建软件工程硕士教学与实践体系
12.软件学院软件工程硕士开放式教学体系研究
13.软件工程硕士“现代物流”课程的创新设计与教学实践
14.党建工作在软件工程硕士研究生培养中的作用——以浙江大学软件学院为例
15.软件工程硕士“算法与算法复杂性分析”的教学思考与实践
16.软件工程硕士“数字媒体信息安全”课程的教学探索
17.软件工程硕士论文质量评价模型及相关问题研究
18.教育技术学之教育软件工程硕士点建设研究
19.省属高校软件工程全日制工程硕士培养模式探索与研究
20.软件工程领域工程硕士培养模式与管理体系研究
21.软件工程硕士研究生专业学位教育——东北大学专业学位研究生教育的回顾与思考
22.软件工程专业工程硕士数字图像处理课程建设
23.探索软件工程领域专业硕士培养模式
24.校企合作软件工程硕士专业学位人才培养
25.服务地方产业发展需求的软件工程硕士培养模式研究
26.探索软件工程硕士的课程教学
27.软件工程硕士产学研合作培养模式的探索
28.软件工程硕士生实践能力培养探析
29.软件工程硕士教学质量评价指标体系建立的必要性
30.从企业用人需求看软件工程硕士培养
31.宁波大学科技学院将与同济大学联合培养软件工程硕士
32.软件工程硕士研究生培养方案改革
33.Sun中国携手南京大学全力培养企业架构设计方向软件工程硕士(MSE)
34.如何撰写工程报告类论文
35.2012级北京邮电大学软件工程硕士班在哈开课
36.基于软件工程专业硕士的三级思想教育模式探索与实践
37.哈工大软件学院“MSE+X”软件工程硕士跨国联合培养项目(英文)
38.软件质量管理与测试专业课程体系构建——基于北航软件学院工程硕士课程培养体系分析
39.国际软件工程专业硕士研究生教程初探
40.关于软件工程专业硕士研究生培养的新思考
41.软件工程专业学位硕士培养质量体系改革
42.软件工程硕士研究生知识结构模型研究
43.软件工程领域专业硕士培养模式初探
44.国家示范性软件学院工程硕士培养导师组模式探析
45.软件工程全日制专业硕士课程体系改革探讨
46.硕士阶段软件工程课程教学探索
47.面向卓越软件工程人才培养的实践教学体系研究
48.软件工程的研究与应用
49.计算机软件工程管理方案初探
50.谈软件工程中软件测试的重要性及方法
51.关注点分离在计算思维和软件工程中的方法论意义
52.软件工程在软件开发过程中的应用研究
53.软件工程专业“2+1+1”校企联合人才培养模式的探索与实践
54.软件工程学科的特征及其课程体系设计原则
55.影响软件工程学科建设的几个因素
56.软件工程思想在计算机语言类课程教学中的贯彻实施
57.面向Agent软件工程综述
58.多样化软件工程人才培养模式研究
59.渐进性阶梯式工程实践教学体系的构造
60.软件工程专业应用型人才培养模式的探索与实践
61.浅析软件工程中的数据流图的画法
62.软件工程学生团队构建的案例分析
63.软件工程专业课程体系研究
64.软件工程增设为一级学科后的机遇与挑战
65.软件工程国家精品课程建设的思考与实践
66.软件工程专业课程体系研究与实践
67.探析软件工程的开发和应用
68.基于能力培养的软件工程专业实践教学研究与探讨
69.关于“软件工程”课程体系的基本架构及课程系列设置的探讨
70.软件工程专业课程体系研究与实践
71.软件工程专业在线课程建设思考
72.基于项目驱动模式下的“软件工程”教学改革
73.UML结合软件工程教学改革探讨
74.基于校企合作的应用型软件工程人才培养模式研究
75.软件工程发展历程及其发展趋势探讨
76.CMM在软件工程中的应用研究及实现
77.基于案例的软件工程课程教学研究
78.软件工程学科何以独特——形式化方法的双重路径
79.软件工程课程教学改革的研究
80.软件工程课程案例教学方法的研究
81.CDIO与软件工程人才培养模式改革
82.应用型软件工程人才培养产学研一体化实训体系建设探索——以梧州学院软件工程人才培养为例
83.国外软件工程教学法初探
84.以社会需求为导向的软件工程专业课程体系改革的研究
85.“软件工程”课程启发式教学的研究与实践
86.面向对象软件开发及软件工程方法学实践与探讨
87.软件工程实践教学平台的设计与实现
88.软件工程专业本科毕业设计过程管理
89.基于项目实践的软件工程本科课程教学模式探讨
90.基于软件工程的系统设计与开发
91.案例驱动与项目导向结合的软件工程课程教学模式
92.软件工程人才团队协作能力培养的研究与实践
93.软件工程与UML关系概述
94.应用型本科高校教师MOOC教学现状分析——以《软件工程》课程为例
95.软件工程案例教学法探讨
96.软件工程专业实践能力培养体系设计探讨
97.软件工程专业应用型人才培养模式的探索与实践
98.传统软件工程与面向对象、构件软件工程的比较分析
99.软件工程专业“项目驱动”实验教学模式研究
100.面向对象技术与软件工程
101.软件工程课程模块化教学改革的实践与思考
102.软件工程经济的研究及发展趋势
103.面向应用型人才培养的软件工程课程教学改革
104.软件工程敏捷方法的实验框架及实施
105.案例教学法在软件工程教学中的应用
106.基于WORKSHOP的“软件工程”教学模式研究
107.“软件工程”课程教学改革的探讨
108.面向卓越工程师的软件工程专业课程体系建设——以安徽大学为例
109.创新实践教学体系,培养软件工程应用型人才
110.“项目驱动+案例教学”模式在软件工程教学中的应用
111.浅析需求分析在软件工程中的作用
112.软件工程实践教学方法探索
113.教育软件工程框架的构建
114.浅谈软件工程的发展
115.软件工程专业课程体系优化方法研究与实践
116.软件工程专业课程体系与课程群研究
117.软件工程的团队项目驱动教学模式探讨
118.软件工程与教育软件开发的思考
119.基于软件开发团队的软件工程教学实践研究
120.校企合作共建软件工程专业实践教学体系
121.软件工程中主要开发模型的比较分析
122.软件工程专业和计算机软件与理论专业的内涵与反思
123.软件工程专业人才培养模式探析
虽然智能体系统和其他系统比较有点较多,但其仍有一定不足需要完善,如下所示。
1.1设计元概念模型若是想要设计完善的设计元概念模型,那么需要考虑的问题较多,例如开发对象概念与智能体系统软件开发方法的管理、开发对象和智能体之间的关系等等,必须充分的考虑到。在此基础上建立完新原概念模型后,还需建模、实现过程。知道规则等等。
1.2拓展智能体系统软件工程的应用领域智能体系统软件在开发的过程中需要决的问题较多,其中最重要的便是要解决开发过程中各种问题,例如生长性、开放性及动态性等问题。
1.3探究系统结构与工具因智能体系统软件工程结构及开发方法指导设计等因素,其对智能体系统是否能够成为主流的开发有一定的影响。
1.4开发过程的标准化智能体软件的开发方法、途径逐渐得到完善,问题逐步得到解决,所以目前人们将目标放在了智能体系统软件工程标准化问题,此种现象的出现说明了智能体技术已经向工业化迈进。
2基于智能体系统的软件开发途径
智能体系统软件开发途径包括以下几点:(1)建立之恩给你体理论模型,将其视为框架建立智能体系统结构模型。(2)在结构模型前提下使用建模语言UML实现应用程序。本文便对智能体系统结构模型的建立方法、如何应用建模语言UML进行简要分析,详细包括以下几点。
2.1智能体系统的结构模型智能体是可执行计算的应用软件实体,因此可以将智能体系统理论模型框架下简历的模型从现实世界转换到数字领域。首先,智能体系统结构模型中的逻辑功能组件应该与理论模型中的问题求解策略、过程有较强的对应关系。其次,它是一种相互联系的系统结构,各个部件之间有着紧密关联的交互作用。基于智能体理论模型创建的结构模型主要包括了感知器、消息处理器、基于感知融合的世界模型、目标判断函数、策略部件和效应器。
2.1.1感知器感知器属于计算机系统中的一部分,其在运行的过程中可有效的检测外部环境及自身的状态,来充分的保证系统正常运行。感知器在其运行过程中所得到的数据包括内存使用的大小、内存剩余大小、占用CPPU时间比率、硬盘使用率等等,以上数据包含了计算机硬软件在运行过程中的使用情况。
2.1.2消息处理器消息处理其的主要工作内容便是与其他智能体进行沟通,此种数据传递沟通是通过二进制的形式来表达传递,还有一种建立文本的基础上进行传递。
2.1.3基于感知融合的世界模型基于感知融合的世界模型跟理论模型中的世界模型相对应,感知处理器能够感知器与消息处理器中获得信息,在一段连续的时间周期内将感知器与消息处理器中产生的数据信息融合一致。
2.1.4目标判断函数将两个数值相比较便可得到一个最简单的判断函数,较为复杂的判断方式还有区间判断、模糊判断、约束判断等。
2.1.5策略部件在智能体通用软件的模型中,没有必要也不可能将策略函数具体化,在实际工作中策略部件的具体形式可以根据具体应用而定。
2.1.6效应器效应器作为系统的输出,对外界对象与自身世界模型产生作用。一个智能体可能存在多个执行器,智能部件安排任务的执行顺序,将任务分解成多个子任务,子任务按照顺序排列,而效应器负责监督子任务的执行情况,必要时可以变换执行的顺序。
2.2基于建模语言UML的应用程序在结构模型的基础上,可以运用建模语言UML来实现应用程序,而这个过程则需要通过编程来实现。先是基于建模语言UML的代码生成智能体系统,然后运行该系统。建模语言UML是一种可视化的建模语言,它与其他大多数面向对象的语言存在着密切的映射关联。代码生成则是直接根据UML图生成计算机的框架程序,与智能体的六个组成部分相对应,UML模型的实现形式为CInputContainer、CSensor、CComunication、CEffector、Agent、COutputContainer。智能体系统在上述的模型与语言实现形式下,可以择优选择软件的开发程序。
3结束语
1面向Agent与面向对象
面向对象的技术已经成熟,开发人员已经很了解,但对Agent技术还比较陌生,我们将面向对象和面向Agent的特点加以比较,阐述了Agent所具有的优点。
1.1Agent的定义
在软件工程领域较为人们所接受的Agent的定义是[1]:Agent是一个处于特定环境中,能感知并灵活、自主适应环境,可以设计者或使用者实现一定任务的具有较高自治能力的计算机实体;其根本目标是接受另外一个实体(可以是人、Agent、系统等)的委托或请求并为之提供帮助和服务,能够在该目标的驱动下主动采取包括社交、学习等手段在内的各种必要的行为,以感知、适应并对动态环境的变化进行适当反应。
1.2面向Agent与面向对象的比较
从某一角度来看,客观世界是由客观世界中的实体及其相互关系构成的,我们把客观世界中的实体抽象成问题空间的对象,于是我们得到了面向对象程序设计方法(OOP)。社会是人和人与人之间关系的复杂组合体,我们用Agent来模拟人的思想和行为,进而用多Agent系统来模拟社会,于是我们得到了面向Agent的程序设计方法(AOP)。对于面向Agent方法,我们可以用如下语言简单描述:面向Agent方法是希望通过对人解决应用问题的智能行为进行模拟,在软件解空间中建立一种嵌入在不断变化及不确定世界中,能进行感知并能自主采取行动的计算实体。Agent是含有心智成分,如信念、愿望、能力、职责、承诺等的实体。尽管面向对象和面向Agent的方法存在一定的相似性,但是Agent毕竟不是简单的对象,它们仍然有着相当大的差异。Agent所具有的很多特性,决定了面向Agent的方法和面向对象的方法有很大区别。具体地说,两者之间的差异表现在以下几个方面[2]:(1)自主性,Agent是位于某一环境中的一个计算实体,它具有对象所不具备的一些“智能”,如“意图、情感、愿望、信念”等。它有能力在复杂的环境中自主地采取行动,即在没有人直接干预下能够采取行动,并能控制自己的行为和内部状态。(2)反应性,Agent能够感知它们周围环境的变化,如客观世界、用户、其他Agent等,接受外部刺激,并以实时方式响应环境中发生的变化或刺激。(3)学习能力,Agent在运行过程中,通过学习以往的经验不断改善自己对同一问题的求解能力,而对象的方法却是一成不变的。(4)社会性,Agent之间互相通讯,分工合作,协同解题,并行计算。各Agent能够在履行其自身职能的同时,还能够根据其求解状态和技能,在合适的时候与其他Agent交互,以提高自己的问题求解能力或帮助其他Agent的问题求解活动。这就是Agent的社会性。除了上述主要特性外,Agent还有移动性、理智性、顺从性和诚实性等特点[1]。
2基于Agent的软件体系结构
2.1Agent的内部实现结构
一般Agent的实现结构可以分为:信息黑板、行为控制、知识库和接口4个部分[3]。其中,信息黑板代表Agent的心理状态;知识库为其信念与知识的积累:行为控制则是控制Agent表现动作的模块;接口是Agent与外界交互的界面。
2.2Agent组件与Agent连接件
Agent组件是基于Agent的软件体系结构(AgentBasedSoftwareArchitecture,ABSA)的基本组成单元,是对系统处理的高度抽象,具有高度灵活和智能特色的软件实体,对系统需求是不敏感的,其能力可以通过修改其义务与选择知识集合动态地变更,而自身形态保持不变。Agent连接件是一种复合型组件连接,该连接能够提供通信、协调、转换、接通等服务,可以通过参数在组件间传递数据,通过服务请求、过程调用传递控制流,可以对传递的数据类型、格式进行转换或包装,以增强数据的互操作性,消除体系结构的不匹配,通过提供统一的接口增强组件生存环境的稳定性,可以通过交互控制连接关系的调整。
3面向Agent的软件开发方法
面向Agent的软件开发方法的基础是Agent元概念模型,其核心思想是:系统由一组Agent组成,Agent之间通过社会性的行为来实现系统的整体功能和目标。Agent间的社会不同于对象技术中的消息传递,而是基于某种Agent通讯语言的Agent交互以及在此基础上的复杂协同与合作。因此,开发Agent系统不仅需要涉及Agent体系结构、通信语言、合作模型、本体论、程序设计语言等具体的技术、模型和实现工具,更需要系统方法学以对Agent系统进行工程化的软件开发。研究人员已经提出了一些专用和通用的面向Agent的软件开发方法。目前,面向Agent的软件方法可以分为工程化方法和形式化方法两大类,而工程化方法对Agent和基于Agent系统构成的理解各有不同。由此出发,这些方法所依赖的理论基础与技术背景也有差异。基于此,我们将现有面向Agent的软件工程化开发方法正交地分为以下几个类别:(1)基于知识工程:该类方法应用知识工程的理论与技术对Agent系统进行建模,代表性工作包括MAS-CommonKADS、Commas等。其基本思想是,Agent是一个具有知识处理能力的实体。(2)基于对象技术:该类方法以面向对象软件开发方法学的理论和技术为基础,将Agent视为具有并发和自主特征的特殊对象,通过对已有面向对象软件开发方法的扩充来支持对基于Agent系统的建模。代表性工作包括AUML(AgentUML,简称Auml)和MaSE(MultiAgentSystemEngineeringMethodology,简称MaSE)方法。(3)基于角色模型等:该类方法借助于社会学和组织学等学科的理论,通过角色或组织概念来理解系统中的行为,将Agent视为系统中承担某个或某些角色的自主行为实体。角色限定了实体的行为规则、交互方式。实体的行为能力通过其承担的角色访问。这方面的代表性工作是Gaia方法。
4应用前景
基于Agent技术的技术优势,面向Agent的软件工程具有以下应用前景:(1)电子商务[4]:移动Agent可以以用户的身份在诸如采购、销售、股票报价等电子商务中进行操作和协商。(2)分布信息检索[5]:移动Agent可以调动多个搜索引攀在网上搜索信息。(3)监视[6]:Agent可以被发送去监视给定的信息源,等待指定事件的发生一旦事件发生,Agent开始执行程序的安排。(4)工作流管理系统[7]:在工作流应用软件中,同事之间的数据流使信息处理特征化,Agent可以提供给每个工作流项移动性、自治性、行为和信息流信息。(5)信息传播:移动Agent可以将信息(例如新闻)传播给一定数量的顾客Agent可以保证存取策略。(6)并行处理[8]:从原理上讲,移动Agent可以方便地实现分派并行进程。当环境发生变化时,移动Agent可以重新分派并行进程。(7)配置软件:软件移动Agent可以用来自动地安装软件包和更新软件。在将软件安装程序传到目标机器之前,移动Agent可以收集预装软件的环境信息、包括版本信息和可选附件信息Agent询问用户安装的相关信息解压缩软件包,编译软件,并更新软件的版本。
5结束语
1高效软件测试团队建设的可行性策略
1.1软件测试团队的特质建设
软件测试团队的素质建设对于整个软件工程质量而言具有非常重要的作用,人是测试工作中最具价值也是最重要的资源。因此,应该积极构建合格的、高质量的合作团队。(1)软件测试以及软件工程开发都需要程序员具备足够的自信心,对软件检测结构以及程序的缺陷要如实汇报。对于软件项目工程中出现的各种问题要认真处理,以此减少客户可能遇到的种种问题。(2)软件测试人员还要具备足够的怀疑精神,对可能存在的漏洞性错误要及时予以检测和纠正,进而提高其自我创造力。(3)软件测试团队要积极构建沟通协调能力。可以通过与客户进行必要的沟通来及时发现软件运行中存在的不足之处,其中测试者可以针对模拟环境下用户对于软件环境的应用情况进行科学分析,以此对软件编写过程和总结文档进行反复检查检测,提高软件的运行效率和正确性。(4)必备的检测技术能力。软件测试团队必须具备重要的专业技能,需要精通数据库、通信、网络、GUI测试、测试工具、自动化测试脚本和相关业务领域等,以此全面提升他们的测试能力和测试积极性。
1.2软件测试团队的制度性建设举措
一个优秀的软件测试团队必定拥有一套完善的团队管理制度,拥有明确的职责分工和高端测试人员,通过不断规范团队管理制度,做到扬长避短,及时提升整体测试质量。其中,软件测试团队需要不断加强汇报制度建设、工作总结制度建设、奖惩制度建设、测试审核制度建设、会议制度建设等,通过科学合理地分配职责关系来进一步强化团队成员的素质建设。在此过程中,还要注重对于资深测试人员的正确引导和建设,加强彼此间的沟通交流,不断丰富团队的测试知识库,通过科学吸收先进的测试管理知识来提升整体测试技能和技巧,以此减少开发团队协同工作中的一些领域瓶颈。
2结语
从计算机软件工程投标风险的形成条件方面来看,导致计算机软件工程投标单位需要面临投标风险的因素主要体现为项目本身因素与外界因素两类。在投标工作中,投标方所看到的机遇与所面临的风险是共同存在的,并且如果因为对项目本身欠缺准确认知或者外部环境产生变化,投标方所面临的机遇也可能转化为风险。在项目本身因素方面,能够引发风险的因素包括计算机软件工程项目所具有的目标、规模、类型以及所需资金和所需材料,同时也包括招标方对投标方所突出的工期要求、质量要求、技术要求等。显然,这些因素都具有着客观存在的特点,也正是因为其客观性,所以这些因素直接决定着计算机软件工程项目所具有的难易程度,并且应当做出投标方开展投标定价的重要依据。如果项目本身具有较大难度或者招标方对投标方提出了较为严格的要求,则投标方会面临更大的风险;从外界因素来看,能够引发风险的因素包括计算机软件工程投标过程与实施过程中所产生的法律规定变化、运行条件变化、竞争对手变化等。这些因素与计算机软件工程项目自身因素相比具有着外生性的特点,因此这些因素并不会因为投标方的努力而产生改变,所以,这些因素容易成为诱发计算机软件工程投标风险的主要因素。如果投标方能够对计算机软件工程项目内容熟悉与了解,则能够比较客观地认识到投标过程以及项目实施过程中所面临的风险,并可以采取有效的防控措施来对这些风险做出防范。
二、计算机软件工程投标风险的防范策略
计算机软件工程项目与传统工程项目具有着明显的差异,特别是高新技术的应用决定了计算机软件工程项目投标工作的高风险性,因此在计算机软件工程项目投标过程中,投标方有必要采取有效策略来对计算机软件工程投标风险做出有效控制。在此过程中,作为计算机软件工程投标方,可以从以下几个方面做出努力。
(一)强化自身的软件项目开发能力
对于计算机软件工程项目投标方而言,强化自身的软件项目开发能力不仅是提升自身核心竞争力的有效途径,同时也是提升自身在计算机软件工程项目投标中风险应对能力的必要策略。首先计算机软件工程项目投标方需要重视计算机软件工程项目开发方案科技含量的提升。在计算机软件工程项目投标工作中,是否能够获得项目的施工权不仅由投标方的经济实力所决定,同时也由项目开发方案所具有的适用性与可行性所决定。在开发方案的制定中,投标方不能为了降低成本就使用不具备时代性的项目开发技术,而有必要从提高投标竞争力以及降低投标风险角度出发来对项目开发过程中的工作流程和技术做出完善与优化,尤其是要重视选取具有较大弹性和较强风险避免能力的项目开发技术,从而降低项目维护成本并实现对总成本的合理控制。其次计算机软件工程项目投标方有必要推动员工抗风险能力的提升。在计算机软件工程投标与施工工作中,承担风险的主体以及对风险做出管理的主体都是企业员工,因此,企业不仅需要摒弃依赖管理层做出风险管理决策的思想,同时要在以人为本理念指导下提升全体员工的抗风险能力,从而通过发挥集体力量来做好风险识别以及风险预控等工作。以此为目标,计算机软件工程项目投标单位有必要对员工开展教育与培训工作,尤其是要针对计算机软件工程投标与施工过程中可能出现的风险内容来开展交流与讲座,从而在提升单位员工风险控制意识的基础上提高员工的风险识别能力与管控能力。再次计算机软件工程项目投标方有必要对合同管理机制做出优化。在计算机软件工程项目投标工作中,投标方与招标方的合作关系由合同来规定,如果投标方能够在合同的拟定中对可能出现的风险做出充分考虑,则可以降低自身在计算机软件工程项目投标与实施过程中所需要承担的风险,因此,投标方有必要对合同管理机制做出不断的优化,在此方面,投标方不仅要通过合同来明确自身的权利与义务,同时需要在计算机软件工程投标与实施过程中对合同条款的落实情况作出监督,从而更好地做好风险识别与防范工作。如果合同所规定的内容或者项目实施环境产生改变,投标方可以向招标方进行索赔申请,从而实现自身与招标方的风险共担,并降低各类风险给投标方造成过大损失。
(二)对外部资源条件做出充分利用
在计算机软件工程项目投标风险的防范中,对外部资源做出充分的利用有利于提升投标方的风险识别能力与承担能力,从而降低风险所产生的损害。首先计算机软件工程项目投标方有必要寻求中介咨询机构的帮助。在计算机软件工程项目的投标过程中,由于投标方希望得到最大化的利润,所以投标方与招标方都有可能无法站在客观立场来对计算机软件工程项目投标工作所具有的风险做出评估,因此虽然自身所承担的风险能够在一定程度上降低,但是却无法实现投标方与招标方的双赢。所以,在投标工作中,投标方与招标方都有必要寻求中介咨询结构的帮助,在与中介咨询结构来评定风险之后,投标方与招标方分别与中介咨询机构签订合同,如果投标和施工过程中所出现的风险已经超越投标方与招标方的承受方位,则有中介咨询机构负责赔偿违约损失。由于中介咨询机构具有着客观性以及专业性的特点,所以一般能够更加准确的开展风险识别工作,这将对计算机软件工程项目投标工作中的风险管理效率得到很大程度的提升。其次计算机软件工程项目投标方可以协同招标方来构建专门基金来应对可能出现的风险。在此方面投标方与招标方都有必要向保险工司缴纳保险,当风险产生并对一方利益造成损害时,则由保险工作负责开展赔偿工作。这一策略能够有效的降低投标方所需要承担的风险负担,并能够降低风险所可能引发的损失,从而使投标方能够将更多的精力集中于计算机软件工程项目的开发与优化。再次计算机软件工程项目投标方有必要强化自身的法律观念。与投招标工作相关的许多法律法规不仅对投招标工作中的违规行为处理办法做出了规定,同时也对风险出现之后的处理策略做出了指导,因此计算机软件工程项目投标方可以利用法律手段来对非系统性的项目投标风险做出有效控制,从而实现得到最大化的利益。
(三)强化自身情报能力