软件工程范文

时间:2023-03-19 15:28:59

软件工程

软件工程范文第1篇

【关键词】需求分析;面向对象;UNL建模;系统设计

【中图分类号】TP 【文献标识码】A

【文章编号】1007-4309(2013)02-0113-2

一、软件工程定义

软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:

BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究。FritzBauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。

比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。我认为,软件工程是一门综合了计算机,数学等多学科的课程,它涵盖了数据库,程序设计语言,软件开发等多方面,它的发展直接带动了经济和社会的发展。

二、软件工程的原则

软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。软件工程的原则有以下四项软件工程师基本原则:

1.选取适宜开发范型

该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。因此,必须认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件产品满足用户的要求。

2.采用合适的设计方法

在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支持

“工欲善其事,必先利其器”。在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

4.重视开发过程的管理

软件工程的管理,直接影响可用资源的有效利用,生产满足目标的软件产品,提高软件组织的生产能力等问题。因此,仅当软件过程得以有效管理时,才能实现有效的软件工程。这一软件工程框架告诉我们,软件工程的目标是可用性、正确性和合算性;实施一个软件工程要选取适宜的开发范型,要采用合适的设计方法,要提供高质量的工程支撑,要实行开发过程的有效管理;软件工程活动主要包括需求、设计、实现、确认和支持等活动,每一活动可根据特定的软件工程,采用合适的开发范型、设计方法、支持过程以及过程管理。根据软件工程这一框架,软件工程学科的研究内容主要包括:软件开发范型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)及软件经济学等。

三、软件工程的目标

软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用软件工程性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。下面分别介绍这些概念:

1.可修改性(modifiablity)

容许对系统进行修改而不增加原系统的复杂性。它支持软件的调试与维护,是一个难以达到的目标。

2.有效性(efficiency)

软件系统能最有效地利用计算机的时间资源和空间资源。各种计算机软件无不将系统的时/空开销作为衡量软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性方面会发生矛盾,这时不得不牺牲时间效率换取空间有效性或牺牲空间效率换取时间有效性。时/空折衷是经常出现的。有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现用户的需求和自己的设计。

3.可靠性(reliability)

能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。对于实时嵌入式计算机系统,可靠性是一个非常重要的目标。因为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站的运行,等等。如果可靠性得不到保证,一旦出现问题可能是灾难性的,后果将不堪设想。因此在软件开发、编码和测试过程中,必须将可靠性放在重要地位。

4.可理解性(understandability)

系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。

5.可维护性(maintainability)

软件产品交付用户使用后,能够对它进行修改,以便改正潜伏的错误,改进性能和其他属性,使软件产品适应环境的变化,等等。由于软件是逻辑产品,只要用户需要,它可以无限期的使用下去,因此软件维护是不可避免的。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。软件的可理解性和可修改性有利于软件的可维护性。

6.可重用性(reusebility)

概念或功能相对独立的一个或一组相关模块定义为一个软部件。软部件可以在多种场合应用的程度称为部件的可重用性。可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。可重用软部件应具有清晰的结构和注解,应具有正确的编码和较低的时/空开销。各种可重用软部件还可以按照某种规则存放在软部件库中,供软件工程师选用。可重用性有助于提高软件产品的质量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用,规格说明(也称为规约)的重用,设计的重用,概念和方法的重用,等等。一般来说,重用的层次越高,带来的效益也就越大。

7.可适应性(adaptability)

软件在不同的系统约束条件下,使用户需求得到满足的难易程度。适应性强的软件应采用广为流行的程序设计语言编码,在广为流行的操作系统环境中运行,采用标准的术语和格式书写文档。适应性强的软件较容易推广使用。

8.可移植性(portability)

软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。为了获得比较高的可移植性,在软件设计过程中通常采用通用的程序设计语言和运行环境支撑。对依赖于计算机系统的低级(物理)特征部分,如编译系统的目标代码生成,应相对独立、集中。这样,与处理机无关的部分就可以移植到其他系统上使用。可移植性支持软件的课重用性和课适应性。

9.可追踪性(tracebility)

根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力。软件可追踪性依赖于软件开发各个阶段文档和程序的完整性、一致性和可理解性。降低系统的复杂性会提高软件的可追踪性。软件在测试或维护过程中或程序在执行期间出现问题时,应记录程序事件或有关模块中的全部或部分指令现场,以便分析、追踪产生问题的因果关系。

四、学习软件工程的必要性

软件工程是信息社会不可或缺的学科,对于软件及系统的开发更是不可不知,它告诉我们如何进行系统开发,一个系统的开发,最关键的是这个系统是用来做什么,也就是要进行需求分析,对于不同的用户,同一个系统可能有不同的需求,所以,一定要做好需求分析,而软件工程恰好告诉了我们如何进行需求分析。而开发一个系统,最主要的是系统和程序的设计,这些设计直接关系到这个系统的可靠性和有效性,这就要依靠软件工程了,它告诉我们怎样进行系统和程序的设计。学习软件工程使我们掌握了软件开发的方法,大大提高开发出来的软件的可靠性和有效性。

【参考文献】

[1]梅宏,等.浅论软件技术发展[J].电子学报,2002(S1).

[2]杨芙清.软件复用及相关技术[J].计算机科学,1999(5).

软件工程范文第2篇

《软件工程》(CN:21-1603/TP)是一本有较高学术价值的大型月刊,自创刊以来,选题新奇而不失报道广度,服务大众而不失理论高度。颇受业界和广大读者的关注和好评。

《软件工程》提供工厂技术及管理信息,营造信息时代的软件工程师文化。为中国软件行业协会会刊,被中国期刊全文数据库、中国知网、龙源期刊网、万方数字——数据期刊群以及中国优秀期刊(遴选)数据库等全文收录。

软件工程范文第3篇

关键词:软件工程;哲学;思想方法论

中图分类号:TP311.52 文献标识码:A文章编号:1007-9599 (2011) 15-0000-01

Software Engineering and Philosophy

Song Lianpeng

(Cangzhou Medical Insurance Management Center,Cangzhou061001,China)

Abstract:Although software engineering software to solve the crisis,Moreover,nearly three decades of development,software engineering has accumulated a considerable number of methods and experience,but these methods are not static and experience a panacea,only a constant practice of software engineers to choose the right method in order to develop good software.How to choose the appropriate method to do,important way is to use philosophy to software engineers through the whole process of software engineering development.

Keywords:Software engineering;Philosophy;Thinking methodology

软件工程是软件生产和软件管理的工程科学。是应用计算机科学、数学及管理科学原理来开发软件工程。发展到今天,软件智能程度越来越高,系统越来越复杂,怎样才能开发出好的软件工程?有些人可能认为只要学好计算机科学、数学等理工学科,就能做好软件开发。其实不然。笔者认为,用好哲学思想才是开发出高水平软件工程的关键。哲学对软件工程的开发具有指导作用。

一、软件工程分析中哲学思想

如果从哲学的角度去审视一个事物,那么就应该本着“跳出画外看画”的原则去把握它,真正的分析方法应该是从整体上去把握它,绝对不能形而上学。当拿到一项软件开发的任务时,首先,应该站在整体的角度,分清楚软件工程中的“元素”都有什么:比如从人的角度划分有业务方、实施方和监理方等,从流程的角度划分有立项、需求、设计、实现、确认和支持等。然后,你一定要本着辩证唯物主义的基本原则,来对这些元素进行分析,再结合一个特定的历史背景,得出一套整体的软件工程规划蓝图来。如果你仅仅从站在自己团队的角度去思考问题,那是不行的,真正的软件工程的哲学应该是把尽量多的系统以及客户需求等“元素”结合起来,运用辩证唯物主义方法进行分析,得出一个整体的、最优的软件系统结构模型。即“整体规划、分步实施”。

二、软件工程设计中哲学思想

在设计方案时,我们绝对不能用静止的眼光来看待客户需求,因为客户需求是变化的,不是一成不变的。一旦需求变更,就会导致大量的开发返工,所以说静止的方案绝对不是一个好方案。我们应该遵循一个前瞻性原则,那就是尽量考虑将来都会发生哪些事情,即遵循“架构设计可扩展”的原则,为许许多多将来可能的发生变化的需求或是新技术预留出接口来。当然,这种方案设计的思路会大大增加设计的难度和开发的工作量,但这是必须要做的事情,因为我们应该从整个软件工程发展的角度去思考问题,与时俱进,即我们经常说的“用户的需求总是在变化,做方案应该多为用户考虑,尽量降低需求变更对方案的冲击”。绝对不能用静止的眼光去看待用户的需求。

三、在软件测试中哲学思想

软件测试工作也是软件工程开发中比较重要的工作,虽然软件测试处于起步阶段。软件测试需要什么样的专业基础还没有定论,但哲学思想应该贯穿整个测试工作中,测试的目的是为了发现软件中尽可能多的缺陷,这里缺陷是一种泛称,它可能是功能的错误、性能低下、易用性差等等。测试总是先假设程序中存在缺陷,再通过执行程序来发现并最终改正缺陷。理解测试的目的是个很重要的意识问题,而这种意识恰恰是哲学思想。

四、开发团队中哲学思想

工作在第一线的软件开发人员是程序员和项目经理,他们决定着软件的命运。良好的程序员队伍和出色的管理是软件项目成功的必要条件。管理不是管制。管理的目的是让大家一起把工作做好,并且让各人获得各自的快乐和满足。在项目完成时,他们会自豪地说:“看看我们通过努力取得的成绩吧”。所以管理者不能老惦记着自己是一个官,而应时刻意识到自己是责任的主要承担者。作为软件工程的项目经理,让大家都能够有一个更高的站位,调动团队每个人的积极性,发挥每个人的想象力,不去计较某个项目组多做一点还是少做一点,。用历史唯物主义观点来发现软件开发中的矛盾点,用辩证唯物主义观点来解觉这些矛盾点。其实就这样做过一段时间之后,你会发现,遵循了这个原则的人,恰恰就是这个原则的最大受益者。

参考文献:

[1]林锐.软件工程思想[J].奇书网,2002

[2]钱学森.工程控制论[M].上海交通大学出版社,2007

软件工程范文第4篇

软件开发项目的顺利实施需要规范的管理体系进行必要的指导与约束,而就目前的软件质量管理管理与规范情况来看,缺乏经验丰富的管理人员,缺乏合理到位的监督与规范体系,对于软件质量上的审查不到位,此外管理模式上的漏洞也成为质量监管的限制因素。整个软件质量监管不到位,软件质量得不到保证,直接影响到软件工程的标准化。

2软件工程标准化的可行性措施分析

2.1吸取国外先进经验,实现与国家研发接轨针对我国软件工程研制起步晚的现状,我们有必要引进先进的国家设计标准。目前国际上关于软件工程的标准性研究不断深入,许多西方国家制定出比较成熟的软件工程标准,我国可以在借鉴国际先进标准成果的基础上,获取突破口,加快标准的制定,实现与国家软件工程设计有效接轨。

2.2加大宣传,增强对软件工程标准化的关注与理解我国软件工程之所以很难形成有效的模式标准,其中最关键的原因是先入为主的用户使用习惯。在使用软件的过程中,用户更多地受先入为主思想的影响,根据自身对软件的使用情况来选取对应的使用标准,从而忽视了各个标准软件工程内在的联系性与互补性。针对该现状首先应该加大宣传,帮助用户充分理解软件工程标准化的概念,深刻把握软件工程之间的联系与互补性,制定比较理想化的软件工程标准。

2.3培养技术性人才,有效引荐国外先进标准化技术我国软件工程标准化研究人员与管理人员相对不足,在借鉴国外设计成果的同时更应该注重国内该方面研究人才的培育与发展,定期组织技术研讨与交流会,开展专题性的研究与探讨,充分听取众家意见,注重本国特色与实际,开发出适合国内软件工程特色的具体软件标准,更好地促进我国软件工程的自主性创新发展。

2.4及时发现问题,及时修改,完善软件工程标准化软件工程的标准化并不是一成不变的,在时展背景下,在用户多样的使用需求下,软件工程标准也是不断更新与改进的过程。我们对于软件工程标准的实施效果进行定期检测,当发现其中的问题时第一时间分析与修改,对于其中存在的缺陷性问题进行整合,针对存在的问题改进标准化,以此类推,完善软件工程的标准化。

3结束语

飞速发展的信息化社会,科学技术日新月异,计算机技术广泛地应用于人们的生产与生活,而与此同时对于计算机软件工程的要求也越来越高,影响软件工程质量的首要因素就是软件工程的标准化程度,制定合理的软件工程标准化才能更好地提升软件工程本身的质量与性能,降低软件生产成本,促进软件工程的规范化发展。

软件工程范文第5篇

如今我国已经迈入了信息化时期升了国家对完成工业化和现代化的能力。软件工程作为电脑技术里的关键构成部分,其,互联网技术与电脑技术很大程度上参加到人们的工作、学习和娱乐中。电脑数据技术极大的促进了国内的科技社会的进步,推动了国内的各种行业的进步,同时提为全部数据系统中的工作提供了保障。该文为软件工程标准化的现状给出了有关分析,同时提出了强化国内软件工程标准化系统的合理措施。

关键词:

软件工程;标准化;现状;分析

伴着国内的智能化速度的增加,计算机软件工程也更为完善,在社会中的使用相当多,给人们的生活提供了极大的便捷,并也推动了科技、文化的改革。推动软件工程的进程,不但是社会进步的需求,也是人们平日娱乐、学习的实际需要。软件工程作为电脑技术里的关键部分,是开展智能化的源头。其是一个相当繁复的工程,波及到的专业很多,而且因为它自己的繁复性,致使在创新软件的过程里碰到了许多的障碍,因此必定要严格的进行软件工程策划、建设和制造养护等每一个步骤,进而来提升软件的品质,推动企业的经济效益。

一、软件工程标准化的含义

软件工程的标准化指的是规范软件标准和软件工程进程规范。软件工程的标准化作为软件制造业进步的关键保证,其对软件工程来讲,软件工程的构建是很多工程的综合建立,同时构建的进程相当的繁复并且有相当的难实现性,在软件工程构建的各个步骤都有着很多的关系,必定需要招募各个专业的优秀技术人员共同协作,才可以达到一致的目的,因此软件过程的规范化代表着软件工程的完善。此外,在软件工程的构建里,必定要须有关的原则准则来给予科学的引导,进而改善软件成品的性能。软件项目的规范化为制造软件工程提供了巨大的益处,在相当的程度中提升了软件的可信度与软件的品质。而且,软件工程的规范化,也将给软件制造的工作者提供合理的引导,令有关工作者的设计更一步的完善,免除了许多技术中的错误操作,进而提升了产品的制造效率。软件工程的规范化同时在相当程度中降低了软件设计的资金耗费与缩短软件的生产周期,这为软件的养护提供了巨大的优势。

二、软件工程标准化的现状

(一)对软件工程标准化的理解偏颇

在国内需多软件相关领域里,潜在着忽视软件制造规范的状况。大部分的企业常常会忽略有关法律里对软件产品规范化的要求,有关技术工作者在软件的制造进程里,常常依据自身的经历,按照自身常用的措施与思维实行软件的设计。同时,行业中某些设计者对自己的监督与自检过程缺失或是不严密,难以保障有关规范的实行,不能给工作者的研制开发进程构成合理的监督管理,类似的都会对软件工程的制造品质及功能造成极大的不良作用。

(二)有关法律法规不健全

国内对软件工程规范化的关注程度每年都在提升,不过有关法律法规的条目中未能够有效的推动,导致国内软件项目规范化杂乱无序的状况。在第八个五年计划时期,极多的软件研制开发与管理工作是通过企业施行自主研发的,国内未有达成一致的筹划,降低了软件研制开发的效果。另外,国内软件的研制开发起点低,研制水准对于国际水准来说普遍较差,这是国内软件设计的弊端。所以,要时时刻刻铭记需要和国外的前沿软件研制开发组织的沟通学习。如今国内在软件工程的建设里,和国际间的沟通行动不是很多,跟不上国外的智能化进度,使得国内产生软件工程体系紊乱、软件工程资源虚耗大的状况经常出现。

(三)软件质量的管理不合理

软件的设计应当要构建起软件工程化标准的有关规范系统,并需专门的管理工作者来进行管制和督促。由于软件研发工程须要严格的进行管制与标准研发的,唯有如此才可以保证软件品质。假如缺少一系列规范准则,软件研发进程里的软件产品性能就不能得到保证,增加了软件品质的管制实现程度。

三、完善软件工程标准化的措施

(一)深入理解有关概念

设计者在研制软件的进程里,设计要依据客户要求来严格挑选准则进行研发制造,认真完成客户要求的设计,关注软件和客户间的各个微妙联系,进而保障软件设计工作的科学进行。与此同时,企业应当主动引入软件项目的各样规范,加深与把握各样的理念,推动了软件工程体系和规范间的有效性、关联性,进而获得用户的信赖与行业的赞赏。

(二)大力培养有关技术人才

近些年来,我国渐渐开始关注软件技术专门人员的培训,不过其中大部分是培训学术性质和研究性质的软件技术人员。大多高等职业学校建立的软件技术专业潜在着诸多的弊端。专业界定模糊,诸多院系将软件专业的教育关注点定在软件研制用具的应用上,培训出来的学员缺少基础软件系统的探究、策划、评测、布置实行的根本能力,缺少对软件研制进程里所须要的体系认知能力与规范化贯彻能力,对行业的认识较少。

(三)保障软件产品质量

国内的软件工程规范化如今处在一个比较差的层次中,对国内的软件工程规范化展开十分不利。因此有关设计人员须要考虑国内的环境现状来引入前沿技术,同时要依据市场的全面需要来制造软件有关成品。加强对软件研发方面的付出,奋力沟通软件和客户间的联系,并在技术支撑下来展开技术分析任务,提升本身软件的全面的水准,显出本身的特征与优势,才能够在复杂的国际竞争里夺得一隅之地,进而完成了软件工程规范化的构建任务。对企业来讲,不但提高了本身品质的作用效果,同时也获得了外界的市场经济效益,推动企业长久的运行目的。

四、结束语

软件工程规范化的展开是须要依赖各个方面的支撑才能够正常实行,其是一个繁杂,整体性强的项目,这考验了一个国家的科技能力,有关工作人员的才能。国内的软件工程规范化如今处在一个相当差层次的时期,并且在实际工作里接触到了各样困境,所以,构建一个管理能力高的系统是很有效果的。

作者:李晓岩 孙学进 单位:青岛黄海学院

参考文献:

[1]马关蕊.如何实现计算机软件工程标准化发展方向[J].软件,2014,03:184-185.

软件工程范文第6篇

软件产业从上个世纪中期从零起步,在短短50年的时间里迅速发展成为推动人类社会发展的龙头产业。在软件产业迅速发展的这50多年的历史中,人们对软件的认识经历了一个由浅到深的过程,软件工程(Software Engineering)的提出和完善就是这个认识不断提高的结果。因为软件开发是一项需要良好组织、严密管理且各方面人员配合协作的复杂工作,而软件工程正是指导这项工程的一门科学,软件工程的成果能为软件设计和开发人员提供思想方法和工具。

软件工程的起源

软件工程学科的出现直接原因是软件危机。所谓软件危机指的是在计算机软件的开发和维护

过程中所遇到的一系列严重问题。概括来说,软件危机包含两方面问题:

第一,如何开发软件以满足不断增长、日趋复杂的需求;

第二,如何维护数量不断膨胀的软件产品。

实际上,软件产生不久,落后的软件生产方式无法满足迅速增长的计算机软件需求这个矛盾就开始暴露出来,并导致软件开发与维护过程中出现一系列严重问题的现象。最为突出的例子是美国IBM公司于1963年~1966年开发的IBM360系列机的操作系统。该项目的负责人Fred Brooks(F•D•希罗克斯)在总结时无比沉痛地说: “……正像一只逃亡的野兽落到泥潭中做垂死挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的灾难……程序设计工作正像这样一个泥潭……一批批程序员被迫在泥潭中拼命挣扎……谁也没有料到问题竟会陷入这样的困境……” IBM360操作系统的历史教训已成为软件开发项目中的典型事例被记入历史史册。

由于软件危机的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法,从此软件生产进入软件工程时代。

1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了“软件危机”(Software Crisis)这个词,同时讨论了如何摆脱“软件危机”。在那次会议上第一次提出了软件工程(Software Engineering)这个概念,从此一门新兴的工程学科――软件工程学应运而生。作为一门旨在开发满足用户需求、及时交付、不超过预算和无故障的软件的学科,软件工程的主要对象是大型软件。它的最终目的是摆脱手工生产软件的状况,逐步实现软件开发和维护的自动化。

自从软件工程概念提出以来,历经了几十年的研究与实践,虽然“软件危机”没得到彻底解决,但在软件开发方法和技术方面已经有了很大的进步。尤其应该指出的是,自上个世纪80年代中期,人们已经开始认识到,在软件开发中最关键的问题是软件开发组织不能很好地定义和管理其软件过程,从而使一些好的开发方法和技术起不到所期望的作用,也就是说,在没有很好定义和管理软件过程的软件开发中,开发组织不可能在好的软件方法和工具中获益。

软件工程的内容三段论

这里的三段论是指从内容这个角度看软件工程的三段理论。软件工程是为克服软件危机而提出的一个概念,并在实践中不断地探索它的原理、技术和方法。在此过程中,人们研究和借鉴了工程学的某些原理和方法,并形成了软件工程学。软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。既然软件工程是“工程”,那么我们从工程的角度看一下软件项目的实施过程(如图1所示)。

客户的需求启动了一个软件项目,为此我们需要先规划这个项目,即完成项目计划,然后根据这个项目计划实施项目。项目实施的依据是需求,这个需求类似工程项目的图纸,开发人员按照这个图纸生产软件,即设计和编码,在开发生产线上将开发过程的半成品通过配置管理存储和管理,然后进行必要的集成和测试,直到最后提交给客户。在整个开发过程中需要进行项目跟踪管理。软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。这些活动主要包括开发类活动、管理类活动和过程类活动,这里将它定义为“软件工程的三段论”或者“软件工程的三线索”,即软件项目管理、软件项目开发、软件过程改进。它们之间的关系可以用一个三角形表示(如图2)。它们类似于相互支撑的三角形的三个边,相互依赖,必不可少。

其中: 开发过程是软件人员生产软件的过程,例如需求分析、设计、编码、测试等,相当于生产线上的生产过程;

管理过程是项目管理者规划软件开发、控制软件开发的过程,相当于生产线上的管理过程,管理过程是伴随开发过程进行的过程;

过程改进相当于对软件开发过程和软件管理过程的“工艺流程”进行管理和改进。如果没有好的工艺生产不出好的产品,它包括对开发过程和管理过程的定义和改进。

为了保证软件管理、软件开发过程的有效性,应该保证这些过程的高质量和过程的持续改进。而软件开发过程中脑力活动的“不可见性”大大增加了过程管理上的困难。因此软件工程管理中的一个指导思想就是千方百计地使这些过程变为“可见的”以及事后可以检查的记录。只有从一开始就在开发过程中严格贯彻质量管理,软件产品的质量才有保证。否则,开发工作一旦进行到后期,无论怎样通过测试和修补漏洞,都会无济于事。

韩万江

北京邮电大学软件学院副教授,主要研究方向为软件工程、软件项目管理及软件测试等。著有《软件工程案例教程》、《软件项目管理案例教程》。

软件工程的未来发展

软件工程的研究热点是随着软件技术的发展而不断变化的。即便在软件工程的领域内,研究热点也在不断转移。

以往软件工程一直不能像其他产品一样做到标准化,随着技术条件的不断成熟、相应标准的出台,软件人员已经开始重视这方面的工作: 实际上可以将许多软件工作分成许多部件去构造,很有可能今后的软件队伍会分为两个部分,一部分专门从事评估,另一部分专门从事集成,集成的对象就是软构件。

软构件的开发与运用已悄悄开始。在一些公共领域,例如软件的用户界面,通用软构件的使用已经屡见不鲜。然而,对于各种专业领域来说,领域构件的开发和使用还基本处于空白状态。这一工作的进行意味着各行各业对本专业领域内的知识形态加以归纳整理,然后以最新的软件形式表达出来。如果全面铺开,将是一件规模浩大的社会工程,需要各领域专家和软件专家通力合作才能完成。一旦软件生产的“构件-集成”格局成为现实,各种应用领域里的构件的设计与生产将开辟出一个十分广阔的新天地,产生出巨大的市场需求,而且软构件的使用可以渗透到符合软构件标准规范的所有系统中,

在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件开发环境,以期从管理和技术两方面解决软件危机问题。

此外,人工智能与软件工程的结合从上个世纪80年代末期便成为活跃的研究领域。基于程序变换、自动生成和可重用软件等软件新技术研究也已取得一定的进展,把程序设计自动化的进程向前推进了一步。在软件工程理论的指导下,发达国家已经建立起较为完备的软件工业化生产体系,形成了强大的软件生产能力。软件标准化与可重用性也得到了工业界的高度重视,在避免重复劳动、缓解软件危机方面起到了重要作用。

今天,软件已经普遍应用于各个行业,这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。随着现代信息技术的飞速发展,软件产品的规模也越来越庞大,导致开发队伍的逐渐增大,从而使得软件工程的作用也越来越明显。但是,我们不能盲目崇拜软件工程。实际上,不管有没有软件工程,不管是否存在一个万能的框架系统,我们的应用系统仍然要做,各种各样的软件还是要开发。说到底,软件系统是因为有需求才存在的。有了应用领域软件存在才有了意义。很多时候,我们可以看到国外有各种各样的软件和创新,而我们还面临很多的问题,但我们不能说,只要解决软件工程问题就能推进软件产业。

(作者原文中有大量实例,限于篇幅,本文进行了删减。读者可以登录.cn查看原文,或参考作者所撰写的《软件工程案例教程》、《软件项目管理案例教程》。)

链接一:软件开发的三个阶段

第一个阶段是20世纪50年代~60年代,为程序设计阶段,基本是个体手工劳动的生产方式。这个时期,一个程序是为一个特定的目的编制的,软件的通用性很有限,其开发往往带有强烈的个人色彩。因为软件设计是在某个人的头脑中完成的一个隐藏的过程,而且,除了源代码往往没有软件说明书等文档,因此这个时期尚无软件的概念,基本上只有程序、程序设计概念,不重视程序设计方法。软件主要是用于科学计算,规模很小、采用简单的工具(基本上采用低级语言),硬件的存储容量小、运行可靠性差。

第二阶段是60年代~70年代,为软件设计阶段,小组合作生产方式。在这一时期软件开始作为一种产品被广泛使用,出现了“软件作坊”。这个阶段大多采用高级语言开发工具,开始提出结构化方法。硬件的速度、容量、工作可靠性有明显提高,而且硬件的价格降低。人们开始使用产品软件(可购买),从而建立了软件的概念。程序员数量猛增,但是开发技术没有新的突破,软件开发的方法基本上仍然沿用早期的个体化软件开发方式,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊得高,开发人员的开发技术不适应规模大、结构复杂的软件开发,失败的项目越来越多。

第三个阶段是从70年代至今,为软件工程时代,是工程化的生产方式。这个阶段的硬件向超高速、大容量、微型化以及网络化方向发展,第三、四代程序设计语言出现。数据库、开发工具、开发环境、网络、分布式、面向对象技术等工具方法都得到应用。软件开发技术有很大进步,但仍未能获得突破性进展,软件开发技术的进步一直未能满足发展的要求。软件的数量急剧膨胀,同时,软件开发人员发现软件开发的难度越来越大,在软件开发中遇到的问题找不到解决的办法,最终导致了软件危机。

链接二:软件工程的定义

IEEE在软件工程知识体系指南中把软件工程定义为: 软件开发、实施、维护的系统化、规范化、质量化的方法的应用,也就是软件的应用工程,以及对上述方法的研究。

软件工程范文第7篇

软件工程管理的发展

要了解软件工程管理首先应该清楚什么是软件工程。软件工程这一概念最早是北大西洋公约组织(NATO)成员国的软件工作者在1968年、1969年的软件研讨会上首次提出的。在我国,根据国家标准GB/T11457-1995,其定义是:“软件开发、运行、维护和引退的系统方法。”虽然,已经有了如此权威的定义,但仍然有很多人错误的将软件工程理解为简单的软件编程。其实我们不难看出,软件工程有其严谨的专业性。而软件工程管理的概念,就是从工程学角度出发,对软件工程的项目范围、项目周期、产品质量、知识资源、人力资源、项目成本等六大要素进行管理。

软件工程管理引起业界的广泛注意源于20世纪70年代中期人们对“软件危机”的认识。当时美国国防部曾立题专门研究软件项目成败的原因,发现70%的项目是因为管理不善而引起,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。尽管如此,到了20世纪90年代中期,软件工程管理不善的问题仍然存在。根据世界著名IT系统项目论证与决策权威机构Gartner的报告显示,全球80%-90%的信息化项目没有达到预定目标,80%的项目超出预算,40%的项目失败或最终放弃。而中国的数字比这个还要大的多,只有小于25%的项目达到了需求和技术目标,10%满足了即定的工作目标。这些现象和数字表现出来的软件产品质量不高、生产率过低、资金大量浪费、进度无法保证的局面就是“软件危机”。而软件工程管理的失控就将造成软件危机。对于我国正如火如荼地进行着的信息化建设,“软件危机”就意味着大量国有资产的流失。由此可见,软件工程管理的意义至关重要。

新背景下的再探索

随着中国信息化事业的深入发展,政府主管部门和更多的国内企业已经开始关注如何保证软件建设的质量与可靠性问题,并已初步达成一个统一的认识,那就是走“软件工程化”道路,遵循系统工程的思想,对软件开发全过程通过可定义、可量化的工程实践方法进行控制管理。然而由于软件工程管理和其它工程管理相比有其特殊性,故而在软件工程管理的实施上仍然存在很多困难。例如,软件是知识产品,建设进度和质量都难以度量,生产效率也难以保证;同时,软件系统的复杂程度也是超乎想象的。例如,宇宙飞船的软件系统源程序代码多达2000万行,如果按过去的生产效率一个人一年只能写1万行代码的话,那么需要2000人年的工作量,这是非常惊人的。正因为软件如此复杂和难以度量,软件工程管理的发展还很不成熟。

针对这种状况,国内一些先锋软件企业已经开始深度探索解决软件工程管理问题的途径。其中,北京万维易化系统软件开发有限公司作为国内屈指可数的几家专门从事“软件工程管理”的企业之一,通过多年来在相关领域的深入研究,对软件工程管理的概念进行了全新的阐释并提出了完善的解决方案,为软件工程管理开辟了一条新的途经。

在万维易化认看来,传统的软件工程管理内容过于单一,主要只是聚焦于软件开发过程中的管理。但随着信息化建设事业的深入发展,软件承建方单方面的开发管理已经不能满足信息化建设的全部需要。因此万维易化提出了全新的“软件工程管理(SEM)”概念,将软件工程管理细分为软件开发管理、软件工程监理、软件集成应用等三大组成部分。对于信息化建设项目中通常包括的建设方、监理方和承建方而言,分别需要对软件集成应用、软件工程监理和软件开发过程实现有效的管理,只有这样才能切实保证信息化建设的最终成功。

万维易化认为,实现有效的软件工程管理的关键因素在于客观、有效的管理工具。软件工程属于知识高度密集,开发过程复杂多变,显现度很低。以软件工程监理为例,传统的软件工程监理很大程度上是参考了建筑行业的监理模式,在建筑项目中,监理方在施工现场随时可以对工程的进行、质量进行现场监理,而软件工程建设项目根本就没有什么施工现场可以考察,工程进度、资金使用情况、软件质量、合同执行情况也难以掌控。这就造成软件工程管理在实际操作过程中“可操作性”差、“能见度”低。因此,无论是软件工程监理、还是软件开发、集成应用管理,一个好的管理工具最迫切需要解决的问题就是为软件工程建设过程营造一个“建设现场”,将软件工程建设的过程实现“可视化”。为此,万维易化提出了平台化的解决方案,主张通过搭建一个软件工程管理平台,将软件开发的代码、费用、人员、文档、项目实施进度、资金控制等情况都纳入一个统一的平台,实现建设各方的实时沟通,对软件建设的过程进行可视化、可控制的协调管理。

成功的实践

基于以上这些认识,结合中国软件业目前的现状,万维易化推出了“精研_软件工程管理平台”,并将其细分为了三个解决方案,即针对软件开发企业的“精研_软件开发管理解决方案”、针对信息化项目监理的“精研_软件工程监理解决方案”和针对信息化建设过程中项目管理的“精研_软件集成应用解决方案”,全面推进我国信息化建设进程。2001年,“精研软件工程管理平台”,已经率先在万维易化的公司内部获得了成功的应用。在这套先进的管理平台上,万维易化所承担的软件工程建设项目的开发进度、文档管理、版本信息以及缺陷跟踪等方面都能有据可查,财务、人力、行政审批过程全部按照既定程序执行,切实保证了软件工程建设项目和企业内部工作的高效进行,为万维易化在电子商务和电子政务领域不断取得突出的成绩奠定了坚实基础。

目前,在万维易化的“精研_软件工程管理平台”上已经成功为:北京市督查办、北京市发改委、北京市政府信息中心、绵阳市计委、UT斯达康、山东移动、美国思科与晓通网络系统对接等项目搭建出符合自身信息化特点的解决方案。关于这套平台的具体情况我们将在后期进行更加详细的报道。

软件工程范文第8篇

1.1市场定位模糊受社会对软件工程硕士认识影响,不少高等院校在招生过程中出现录取冷场现象,在生源稀落的情况下,不少高校无奈之下降低招生标准,市场定位模糊,导致生源质量得不到保障,影响了软件工程后期招生与发展,陷入恶性循环之中;不少学生是在其他学校报考不了的情况下,退而求其次,才选择了报考软件工程硕士,在后期学习中学习主动性不高。1.2就业形势不佳软件工程由于是一门新兴的专业,它的市场前景还没有充分显现出来,因而它在市场中的应用并没有充分体现出来,导致学生毕业后就业形势不佳,也在一定程度上影响了软件工程硕士市场招生。1.3高昂的学费“高等院校正在由过去纯粹的公益性事业走向具有投资和消费属性的服务领域”,由于国家招生政策的调整,就读硕士实行了自费制度,不少贫困学生因为高昂的学费望而却步,高昂的就读费用也造成了软件工程硕士招生难现状;此外高等院校现行的招生考试方式简单,招生策略缺失也影响了一部分不同专业背景的学生报考软件工程硕士。

2市场营销在软件工程硕士招生中的应用

2.1加大市场宣传力度市场经济模式下,软件工程硕士招生必须要适应市场发展的要求,积极探索市场营销模式,提升高校软件工程硕士招生效率。“好酒不怕巷子深”并不适用于任何时代,当前社会信息丰富,如何在众多信息中脱颖而出,必须要加强市场宣传。软件工程硕士的市场潜在价值是毋庸置疑的,然而由于人们认识水平不足,大多数人还没有认识到软件工程硕士就业市场前景。我们要通过市场宣传,提升人们对软件工程硕士的认识,只有人们的认识转变了,软件工程硕士的价值为人们认可了,招生形势才能发生较大的改变。2.2明确招生市场定位只有准确定位才能根据市场定位,选择恰当的市场营销策略。在信息爆炸时代,软件工程硕士招生要根据专业特点与市场需求,准确定位。首先,要准确地进行自我定位。高等院校要根据自身办学特色与市场需求,客观地进行自我定位,明确自身办学的优势,如办学硬件条件、技术条件、管理水平等,突出自身优势,才能在营销中突出优势,赢得市场,实现招生大满贯。其次,要准确进行竞争对象定位。知己知彼,方能百战不殆。在进行自我定位的同时,高等院校还要熟悉竞争对象,尤其要准确把握竞争对象的优势。根据对方竞争优势,思考如何突出自身竞争优势,以赢得更多的市场招生名额。第三,做好学生就业形势分析与定位。软件工程硕士招生情况很大程度上与学生就业现状相关,学生就业形势是招生的方向标,就业形势好了,招生形势就好;反之,招生情况就差。因此,我们要做好市场调研,只有科学地进行市场调研,做好市场分析,才能进行准确定位,根据市场需求进行人才培养,切实转变软件工程硕士就业形势。2.3提升市场营销手段高等院校在软件工程硕士招生中营销手段单一,直接影响了市场宣传与招生形势,我们要将人员推销与广告促销、公共关系营销等手段结合起来,不断提升市场营销的策略。人员推销。这种推销方法是指在目标引导下,与目标对象进行交流,它具有针对性强、信息反应及时等优点,唯一缺点是成本高。推销人员可以是教师,因为教师对学生情况较为熟悉,表达能力较强,便于沟通交流;也可以是由教师、学生、社会推销、教育中介等组成的推销团体,充分发挥各推销主体的优势;推销形式可以是面对面访谈,也可以进行电话访谈,新形势下我们还要善于运用新媒介等方式进行推销。广告推销。这种推销方式是借助广告媒体进行招生宣传。它具有直观生动、面广、快速等优势,广告媒体推销声情并茂,能够有效地诉情达理,尤其是借助广告品牌效应提升高等院校软件工程硕士市场价值,并且根据宣传目标锁定时间段与传播对象,如运用教育频道、大学生读物、新媒体等,达到招生宣传的目的。

3结语

促销与公共关系推销。促销是指运用能够刺激宣传人员、宣传对象的手段达到提升推销效率目的的方式。“在生源竞争异常激烈的今天,高校完全可以从企业促销中吸取经验,提高招生宣传活动的科学合理性,提升招生竞争力。”我们可以运用经济奖励等手段刺激营销人员,也可以针对宣传对象特点采取合适的营销方式,如对成绩突出的报考学生采取奖励或减免等方式,激励学生报考软件工程硕士,达到较好的营销效果;公共关系营销是指借助公共关系资源提升营销效率的一种手段,它具有一定的稳定性,利用人们熟悉的公共关系,提升营销对象的心理认识,容易被大多数人们所接受。

软件工程范文第9篇

关键词:信息技术 发展 软件工程 开发应用 风险管理 质量

软件工程的基本思路是在面对相对复杂的问题的时候,由软件工程师有计划地按照工程的概念和原理,技术等模式来进行,并分多个阶段来实现。另外,软件生命周期在整个软件工程中是一个重要的概念。这个周期是按照事物的出现到灭亡的规律来将软件周期分为了计划、分析、设计、编码、测试及运行维护等阶段。本文主要分析了软件工程的应用问题。

1 软件工程开发应用特点

1.1 目标明确性。满足人们各种各样的具体需求,这使软件工程设计一开始具有明解的目标。软件工程的任务就是在产品或者工程在生产或者实施之前,提供出相应的产品以及工程的全面的需求的标准。在软件工程中这一特点则表现为“需求分析”的过程。在这一阶段,通过开发人员与用户之间的广泛交流,不断澄清一些模糊的概念,最终形成一个完整的、清晰的、一致的需求说明。因此,开发的软件的成败将由需求分析的好坏来决定。

1.2 完整性。在客户/服务器系统应用中,数据及数据处理完整性是保证信息准确无误的重要环节。所以在软件开发中对这一点的逻辑要求是最严密的。例如,在一个事务处理过程中,可能对多个表进行修改。如果在中间发生错误时,应该放弃整个处理而不是其中的一个过程,返回到开始的状态以保证操作的完整性,从而使得数据及数据处理的完整性得到保证。

1.3 应用软件的开发应该是规范的,使得应用软件开发工作能够很容易地被别人接手和修改。由于开发出的软件是依照一定规则的对象组合,所以相当于符合标准,而只要是群体开发软件,标准又是非常重要的,标准其实在应用软件开发的程序员之间起到了相互沟通的桥梁作用。

1.4 易维护性。因为使用了对象的继承性,对祖先对象的修改直接影响到其继承对象,使得软件程序的维护性得到一定程序的提高,但相同的语法和逻辑规定又使得多人合作开发的软件和维护性得到保证,不会因为各自特有的思想和作风而受到限制,也为相互的提高弥补提供了可能性。

1.5 创新性。创新是技术进步的灵魂。随科技和工程技术实践不断创新。开发出的产品在不断满足人类日益进步的需求中,在系统分析阶段,系统分析员就应该对用户的需求进行全面的了解,提出一个可行的方案和客户交流,在得到用户的反馈后,再改进方案,如此反复直到比较全面地了解了客户的需求为止,这样才能得到用户的信赖和支持。

2 软件工程发展趋势

软件工程作为计算机科学中的一个新兴的研究领域,在整个计算机行业发展的过程中,软件工程的发展并不是孤立的存在的,首先需要分析计算模型和软件开发本身的变化和趋势,由此才能推断出软件工程的发展趋势。 计算能力变化趋势:CPU的运算能力按摩尔定律两年出三代的速度快速提升;但提升单颗CPU晶片的计算能力已经越来越困难(受到物理性质的限制);网络数据传输能力的提升,传输技术,编码技术,差分传输。以及分布式并行计算技术的成熟使得云计算成为可能,通过互联网相连的服务器集群在服务器端,提供了更强大的计算能力;基于上述计算能力的变化,从软件开发模式而言,我们注意到以下六个相关的趋势:大量中间件技术被采用;开源软件成为发展趋势;为了使分布在互联网上系统能够互相协作,异构的分布的软件系统将需要用统一的、标准的协议互相通信,形成逻辑上更大的系统。那么基于XML数据交换语言的SOA成为一个热点;B/S结构的软件系统主要在服务器端,系统非常容易升级,这使得软件交付和升级的速度大大加快了(从以年月为单位,到以周天为单位);B/S结构的软件系统主要在服务器端,系统非常容易升级,这使得软件交付和升级的速度大大加快了(从以年月为单位,到以周天为单位);需求工程,渐成热点;迭代/敏捷,渐成标准;持续集成,蓄势待发。

3 结束语

综上所述,软件工程的开发应用是一项系统工程,需要各类人员的积极参与合作。用户、系统分析员、程序员、开发管理人员在整个软件开发过程中都起到举足轻重的作用。让更多人切身体会到计算机软件应用技术给社会各个领域所带来的变革、腾飞。

参考文献:

[1]张海藩.软件工程[M].北京:人民邮电出版社,2005,7.

[2]郑人杰.using software engineering[M].No.2.Beijing:QING-

HUA UNIVERSITY,1996.

[3][美]Roger S.Pressman.软件工程实践者的研究方法[M].北京:机械工业出版社,2007,1.

[4]温雅丽.面向对象技术在多媒体数据库的应用[J].科技情报开发与经济,2002(4).

[5]潘春光,陈英武,汪浩.软件项目风险管理理论与方法研究综述[J].控制与决策,2007(05).

[6]尹锋.软件工程系统论研究初探[J].航空计算技术,2006(03).

[7]Joseph S Valacich,Joey F George,Jeffrey AHoffer.系统分析与设计基础[M].施平安,译.北京:清华大学出版社,2005.

[8]张冰.软件开发型信息化项目监理初探[J].CAD/CAM与制造业信息化,2007(3).

软件工程范文第10篇

关键词:软件工程 形式 解决 系统 规范 开发 运行

当今的社会,信息技术飞速发展。软件在这样的背景下受到越来越多的重视。信息社会的发展必须有软件产业来推动。由于软件在日新月异,而且被大范围的应用在人们的日常生活中,所以人们开始积极的探究出新的工程的方法来满足开发、使用和维护软件的需要,由此来合理有效的处理好软件的故障。基于计算机网络技术、信息科学技术和工程等相关的学科,目前的软件工程已经不再是比较单一的学科而是作为是适应当前信息技术发展的新兴交叉学科。本文从软件工程的定义,特性和需求3个角度进行了阐述。

1 软件工程概念提起和定义

1960年代末期,计算机程序在复杂度、规模和应用领域等方面的增长引人注目,这导致上千亿资金花费在软件开发上,许多人的工作和生活依赖于软件开发的成果。软件产品帮助人们获得更高的工作和生产效率,同时也给人们提供一个更加安全、灵活和宽松的工作与生活环境。尽管有很多成功之处,许多软件产品在成本、工期、质量等方面存在严重问题。主要原因是:

软件产品是复杂的人造系统,具有复杂性、不可见性和易变性,难以处理。个人或小组开发小型软件非常有效的编程技术和过程,在开发大型、复杂系统时难以发挥同样的作用。计算机和软件技术的快速发展,提高了客户对软件的期望,促进了软件产品的演化,为软件产品提出了新的、更多的需求,因此增加了软件行业内的竞争,难以在可接受的开发进度内保证软件的质量。1968年在德国举行的NATO软件工程会议上,为应对“软件危机”的挑战,提出了“软件工程”的术语。这个时期有代表性的软件工程定义是“为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法”。

1972年IEEE学会的计算机协会第一次出版了“软件工程学报”。此后,“软件工程”这个术语被广泛用于工业、政府和学术界,众多的出版物、团体和组织、专业会议在它们的名称里使用“软件工程”这个术语,很多大学的计算机科学系先后设立软件工程课程。

软件工程发展至今还没有一个比较确切的定义,大多数的软件过程方面的学者和组织机构也只是根据自己对软件过程的理解做出解释:

BarryBoehm:采用当下比较先进的科学技术知识来对计算机程序做设计和构造工作,与此同时也可以实时的开发、运行和修缮这些程序所对应的文件资料;IEEE:在软件工程术语汇编中的定义:软件工程是:①软件的开发、使用和维护的这个过程中需采用一定的方式,对其进行归类、整理或加工。这样的方法是受严格约束的、可量化的。也就是说,把工程化应用于软件。②在1中所述方法的研究;FritzBauer:在北大西洋公约组织会议上做出了这样的定义:建立健全一个比较实用且完备的工程化原则,采取很合算的措施来获得可以在实际机器上运行得比较高效且稳定性很好的一系列方案。

2 软件工程特性

人们普遍认为软件工程是有自己的特性的。软件工程的不同的定义即便有各种各样的描述方式,其侧重点也存在着不同的地方,但是,软件的特性本质是非常明显的,并且有共同的本质,下面就此进行一个探讨:

2.1 软件工程关注于大型程度的构造 通常情况下的小型程序是在说个人在规定的时间内编出来的程序,反之,大型程序一般是指多数人耗费了半年以上才完成的程序。其实大和小没有那么明显的界限,传统的程序设计技术和工具是支持小型程序设计的,不能简单地把这些技术和工具用于开发大型程序。

实际上,在这里使用 “程序”这个术语并不十分恰当,现在的软件开发项目通常构造出包含若干个相关程序的“系统”。

2.2 软件工程的中心课题是控制复杂性 软件复杂性的存在不是仅仅由于其处理的问题纷繁复杂,其影响因素是多种多样的,要具体问题具体分析。通常情况下,软件待处理的问题都是极具复杂性的,如果没有考虑到这一点而是把它当作是单个的整体来分析的话就会加大处理的难度。所以说,人们习惯于将问题分为各个单一的部分,各个部分之间维持着比较普通的通信关系。该措施虽然不能系统的解决问题的复杂性,然而却能使得这种复杂性得到合理有效的控制。

2.3 软件经常变化 很大一部分的软件的设计都是以现实世界的相关条件作为参考的。现实中的各种事物都是在发展变化的,软件也必须适应现实的变化作出相应的调整,由此一来才能够在竞争中处于有利的地位。也就是说,在软件系统投入使用之后还要对其进行完善,完善过程中作出的投资是需要考虑好的。另外,开发的时候就应该对未来的变化作出预测。

2.4 开发软件的效率非常重要 现今的社会人力资源已无法满足新应用系统的需求。软件在市场上的需求很大,但是软件的供应比较滞后。也就是说,对于这个问题的的处理方法最好就是积极的寻求开发与维护软件的既高效又实用的方法和工具。

2.5 和谐地合作是开发软件的关键 软件处理的问题都是比较冗杂的,单个人根本不能够解决,需要很多人共同协作才能完成。想要使得协作能够高效一点,务必要将任务准确的分配到个人,努力的探索比较恰当的通信的措施。在实践操作的过程中只是具备上面的要求还不能够达到目的的,合作之中的每个人务必要按照相关的原则来完成任务。在现实中要适当的采取切实可行的标准和规程来保证大家能够按照规定办事。一般情况下,需要采用相关的工具来维护这些标准和规程。总的说来就是有纪律的管理是软件开发项目获得成效的关键步骤。

2.6 软件必须有效地支持它的用户 开发软件就是要达到支持用户的工作的目的。软件提供的功能对于用户有成效的做完工作是比较有帮助的。要是说用户对软件系统存在很多的疑问,就能够启动当前的系统,或者马上将相关的的要求提出来。所以说软件的成功开发是需要合理的方法构造系统和出正确系统构造两者的共同作用。

想要使得软件能够更加高校的帮助用户处理问题,首先就要从用户的需求研究出发,要明白客户需要什么样的功能的软件,有什么样的使用性要求和质量标准。在明确客户需求的基础上进行软件开发,为客户提供软件产品和相匹配的用户手册和培训材料,除此之外,务必要注重新系统的运行环境的建立和维护工作。举例来说,图书馆在采用一个自动化系统之前就应该把该系统对图书馆的工作流程造成的影响考虑在内。也就是说客户对于新的工作流程熟悉还需要一定程度上的培训。

2.7 在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品这个特性与前两个特性紧密相关。软件工程师通常并不是某些领域的专家,但是他们却为这些领域开发应用系统。缺乏应用领域的相关知识,是软件开发项目出现问题的常见原因。

3 软件工程的需求分析

这个阶段的任务仍然不是具体地解决问题,而主要是确定目标系统必须具备哪些功能。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。软件工程使用的结构分析设计的方法为每个阶段都规定了特定的结束标准,需求分析阶段必须提供完整准确的系统逻辑模型,经过用户确认之后才能进入下一个阶段。

参考文献:

[1]Stephen R.Schach Object-Oriented and ClassicalSoftware Engineering[M].Beijing:ChinaMachine Press,1998.

[2]郑人杰.using software engineering[M].No.2.Beijing:QING-

HUA UNIVERSITY,1996.

[3][美]Roger S.Pressman.软件工程实践者的研究方法[M].北京:机械工业出版社,2007,1.

上一篇:工程造价范文 下一篇:电气工程范文