软件工程综述

软件工程综述
软件工程综述

软件工程综述

摘要:本文简单介绍了软件工程。分别从软件工程的定义、发展历程、危机及解决途径、软件过程的基本原理、软件工程包含的领域和生命周期模型等方面介绍。从而对软件工程的基本内容有了初步了解。

关键词:定义过程原理领域模型

1.引言:软件工程(Software Engineering,简称为SE)是一门研究用工程化

方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

2.系统介绍

2.1软件工程的定义

概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的科技方法结合起来,经济地开发出高质量的软件并有效地维护它,这就是软件工程。

下面给出软件工程的几个定义:

1983年IEEE(美国电气和电子工程师协会)给软件工程下的定义是:“软件工程是开发、运行、维护和修复软件的系统方法。”这个定义相当概括,它主要强调软件工程是系统方法而不是某种神秘的个人技巧。

Fairly认为:“软件工程学是为了在成本限额以内按时完成开发和修改软件产品所需要的系统生产和维护技术及管理学科。”这个定义明确指出了软件工程的目标是在成本限额内按时完成开发和修改软件的工作,同时也指出了软件工程包含技术和管理两方面的内容。

Fritz Bauer给出了下述定义:“软件工程是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用的完善的工程化原则。”这个定义不仅指出软件工程的目标是经济地开发出高质量的软件,而且强调了软件工程是一门学科,它应该建立并使用完善的工程化原则。

1993年IEEE进一步给出了一个更全面的定义。

软件工程是:①把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;②研究①中提到的途径。 [1] 2.2软件发展及危机

2.2.1软件发展的历程

程序设计阶段计算机发展的早期阶段(20世纪50年代初期~20世纪60年代中期)。在这个阶段硬件已经同用花,而软件的生产却是个体化。

程序系统阶段计算机系统发展的第二阶段(20世纪60年代中期~20世纪70年代末期)。引入了人机交互的新概念。出现了实时系统和第一代数据库管理系统。

软件工程阶段计算机系统发展的第三阶段(始于20世纪70年代中期)。以软件的产品化、系列化、工程化、标准化为特征的软件产业发展起来,打破了软件生产的个体化特征,有了可以遵循的软件工程化得设计原则、方法和标准。

第四阶段有复杂操作系统控制的强大的桌面机、广域网络和局域网络,配以先进的软件应用已成为标准。从技术的软件刚才阶段过渡到社会信息化得计算机系统阶段。

随着第四阶段的进展,一些新技术开始涌现。

[2]

2.2.2软件危机

⑴由于缺乏软件开发经验和科学的理论指导,开发者不能准确地估计软件开发的成本和进度。所制定的成本规划可能大大低于实际的成本,实际的开发进度也可能要比计划的慢,为了赶进度往往就会牺牲软件的质量。

⑵由于缺乏使开发人员与用户进行交流的有效机制,开发人员常会犯闭门造车的错误。从而会造成用户对已完成的软件系统不满意。

⑶由于测试工作不够充分,又没有好的软件质量保证技术,导致提交给用户的软件质量不高。

⑷软件的可维护性差,程序的错误难以改正。程序的可移植性差,很难适应不同的运行环境。软件的可重用性差,大量的软件人员在重复开发。

⑸开发过程缺乏标准和规范的指导,各个开发组织都有自己的开发方法,开发组织之间进行工作交接的流程也不规范。

⑹软件开发生产率的提高速度难以满足对软件需求的增长速度,软件产品供不应求。

⑺由于软件开发和维护方法不当,使得软件成本居高不下,过高的成本已严重制约了软件的开发。

造成软件危机的原因很多,归纳起来主要有两个方面:一是与软件本身的特点有关,二是与软件开发与维护方法不当有关。

2.2.3解决软件危机的途径

⑴采用工程化方法来开发和维护软件。软件开发不应只是个体化的劳动,而应该是由组织良好、管理严密、各类人员共同配合完成的一个工程项目,因此应该注意吸收和借鉴从事其他工程项目的行之有效的科学原理和方法。

⑵采用先进的技术、方法、工具开发和软件设计。即采用先进的管理技术、规范的开发方法和模型、各种提高开发效率的软件工具等。

⑶采用必要的组织管理措施。软件工是正式在解决软件危机问题的过程中形成的一门综合技术与管理两个方面的新兴学科,并逐渐成为指导计算机开发、维护、管理的理论依据。

[3]

2.3软件过程的基本原理

2.3.1软件的生命周期

一个软件产品从构想到不再使用,期间会经历若干阶段,我们称其为软件的生命周期(life cycle)。生命周期中的3个主要阶段是:开发阶段(development),使用阶段(use)和维护阶段(maintenance)。通常情况是:客户提出需要解决的问题,软件开发者就构思并开发相应的软件,并藉此获得酬劳。新的软件是在开发阶段建立的。

软件开发完毕之后就交付用户使用。用户在使用过程中,通常都会发现各种问题(错误)及提出各种修改建议。这些信息都会反馈给开发者,这就进入了维护阶段.

在软件维护阶段中,软件中的错误被修改(标识),功能被增强。如果需要进行较大的修改,通常会开发一个新版本的软件并发布和使用。

当一个软件的维护费用过于昂贵时,开发者就考虑不再使用该软件,也不再发布新的版本。软件开发阶段是生命周期中的第一个阶段,也是最重要的阶段。如果一个软件开发得好,后续的维护将十分容易,相应的也就节约维护成本。

2.3.2软件开发阶段

软件工程师通常将软件的开发阶段分为下面4个子阶段:

●分析阶段

●设计阶段

●实现阶段

●测试和调试阶段

1.分析阶段

分析问题是第一步也是最为重要的一部。在这一步中。您需要做以下事情:

●全面理解所要解决的问题

●进行需求分析(requirement analysis):理解问题需求,包括程序是否需要和用户进行交互,是否操纵数据,是否有输出结果以及输出结果的格式等等。举一个例子,如果您需要编写一个自动取款机(ATM)的程序。在分析阶段,您要给出该ATM机可以进行的操作,如:取款,存款,转账及余额查询等等。您会和使用该ATM机的客户进行讨论,理解他们的需求,增加必要的操作,以便是您的程序是用户友好的。

●如果程序需要对数据进行操作,开发人员必须了解数据类型及它们的表示方法。这时候可能会接触一些样本数据。如果程序有输出信息,必须确定它们所生成的结果及输出格式等。

●如果需要解决的问题过于复杂,可以把它分解为多个子问题,在对每个子问题做相应的需求分析。

2.设计阶段

当您仔细分析完问题后,就需要设计相应的算法去解决问题。如果已经将问题分解为若干子问题,那么对每个子问题都需要设计相应的算法。

算法(algorithm):在有限时间内获得问题解决方案的逐步求解过程。

○1结构化设计方法

将一个问题分解为若干个子问题的方法叫做结构化设计方法(structured design)。结构化设计方法又叫做自顶向下的设计方法(top-down design)、逐步求精方法(stepwise refinement)和模块化程序设计方法(modular programming)。在结构化设计方法中,问题被分解为若干子问题,然后分别对每个子问题进行分析和求解。所有子问题的解合并起来就是原始问题的解。使用结构化设计方法进行编程就叫做结构化程序设计(structure programming)。

○2面向对象设计方法

在面向对象设计方法(object-oriented,OOD)中,求解问题的首要步骤是识别称为“对象”(object)的组件(它是运用该方法求解问题的基础)和确定对象之间如何进行交互。比如,我们要为一家录像出租店编写一个可以使其业务自动化的程序。在这个问题中,我们可以确定两个主要对象,即:录像带对象和客户对象。

明确系统中的对象之后,下一步就是为每个对象确定有关数据和数据上进行的相关操作。对于录像带对象而言,数据可能包括影片名称,演员名单,制片人,出版公司,库存副本数等等。在录像带对象可以进行的相关操作包括查询影片名,每租出一盘录像带就将库存副本数减一,客户每归还一盘录像带就将库存数加一。

由上文可知:对象包括数据和在数据上执行的操作。对象可以看作数据和其上操作的统一体。使用面向对象方法编程,最终的程序是交互对象的集合。实现面向对象设计方法的编程语言叫做面向对象程序设计(object-oriented programming,OOP)语言。

面向对象设计方法的3个基本原则:

●封装性(encapsulation):将数据和操作集成在一个单元(对象)中的能力。

●继承性(inheritance):从已有数据类型中派生新数据类型的能力。

●多态性(polymorphism):使用相同表达形式来实现不同操作的能力。

在C++中,封装性是通过叫做类(class)的数据类型实现的。

在面向对象的设计方法中,我们要确定需要哪些类,它们的数据成员和成员方法。我们还需要描述个各类之间如何进行交互。

4.实现阶段

在实现阶段,您将编写和编译程序代码,以实现在设计阶段分析得到的类和函数。

最终的程序通常由几个函数组成,它们分别完成不同的任务。有些函数是主程序的一部分,其他的则是在对象上完成的操作。显然函数之间存在交互关系,从而能够利用彼此的函数功能。要使用一个函数,用户只需要知道该函数的功能和用法即可,而不必关心该函数的实现的具体细节。

5.测试和调试

测试(testing)这个术语表示检测程序的正确性,即检查程序是不是完成了需要完成的工作。而调试(debugging)一词指,如果程序存在错误,如何找到并修改错误。

在每写完一个函数或算法后,接下来应该验证它是否正确工作。在复杂的大型程序中,错误是一定存在的。为了提高程序的可靠性,必须在交付用户前发现并修改其中的错误。

您可以使用某些方法,通常是数学方法来证明程序的正确性。然而,对于大型的程序来说,单单使用证明方法是不行的,因为在证明过程中就有可能引入错误。所以,我们必须使用测试的方法考察程序的质量。通过让程序运行一些特定的例子,即测试用例(test case)来找出程序中的问题。

测试用例的组成部分包括:一组输入数据、用户操作、初始条件和期望的结果等。由于测试用例将被多次使用,所以需要正确地记录它们。通常,一个程序需要对大量的数据进行操作,虽然理论上可以将所有的输入情况在测试用例中体现,但在实际工作中显然是不现实的。例如,一个程序需要对整数进行处理,显然,为每个整数做一个测试用例是不可能的。我们可以将测试用例分类,即分为等价类(equivalence category)。所谓等价类是指:在这个分类中的所有输入值将对应相同的输出值。有比如说,有一个函数的输入为整数,并且如果该整数为非负则返回真(true),否则返回假(false)。那么我们可以做两个等价类,一个为负数集合,另一个为非负数集合。

测试有两类方法,即:黑盒测试(black-box testing)和白盒测试(White-box testing)。使用黑盒测试方法时,您不需要知道算法或函数的内部实现,只需要知道程序的功能即可黑盒测试是基于输入输出的方法。它的测试用例通过创建等价类来选取。如果程序对于等价类中的某个输入的输出结果是正确的话,那么就认为对应该等价类中其他输入也会输出同样的正确结果。

软件工程的目标:提高软件的质量与生产率,最终实现软件的工业化生产。 [4] 2.3.3原理:

1.用分阶段的生命周期计划严格管理

2.坚持进行阶段评审

3.实行严格的产品控制

4.采用现代化程序设计技术

5.结果应能清楚地审查

6.开发小组的人员应该少而精

7.承认不断改进软件工程实践的必要性

2.4软件工程包含的领域

2.4.1软件需求:用户解决问题或达到目标所需条件或权能;系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能;一种反映上面所述条件或权能的文档说明。

2.4.2软件设计:把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。是一个过程和这个过程的结果,此过程对一个系统或组件定义架构(体系结构)、组件、接口以及其他特征。其在软件开发中起着重要的作用。

2.4.3软件构建:指的是如何创建产生软件的详细步骤,包括编码、验证、单元测试、集成测试和调试。

2.4.4软件测试:利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

2.4.5软件维护:软件开发的工作的结果就是交付一个满足用户需求的软件产品。软件产品一旦投入应用,产品的缺陷就会逐渐的暴露出来,运行的环境会逐渐发生变化,新的用户也会不断地浮出水面。软件维护就是要针对这些问题而对软件产品进行相应的修改或演化,从而真正的修改错误,改善性能或其他特征。

2.4.6软件配置管理:一项跟踪和控制软件变更的活动

2.4.7软件工程管理:是软件的开发和维护的管理活动,为了达到系统的、遵守规程的和可量化的目的,它包括计划、协调、度量、监控、控制和报表。

2.4.8软件工程过程:将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机

软件开发的目的。软件工程过程应确定方法使用的顺序、要求交付的文档资料、为保证质量

和适应变化所需要的管理、软件开发各个阶段完成的任务。 [1] 2.4.9软件工程工具和方法[4]

(1)软件需求工具包括:

a) Rational RequisitePro够帮助项目团队改进项目目标的沟通,增强协作开发,降低项

目风险,以及在部署前提高应用程序的质量。

b) Telelogic DOORS 基于整个公司的需求管理系统,用来捕捉、链接、跟踪、分析及

管理信息,以确保项目与特定的需求及标准保持一致。

c) Borland CaliberRM 基于Web 和用于协作的需求定义和管理工具,可以帮助分布式

的开发团队平滑协作,从而加速交付应用系统。CaliberRM 辅助团队成员沟通,减少错误和

提升项目质量。

(2)软件测试工具:

a) Testdirector 业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进

行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括

需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过

程。

b) ClearQuest 具有完善的用户权限控制系统,可以对整个开发团队中的全部成员实现

权限管理,对于不同用户,可以根据其在开发团队中担任的角色来分配其相应的权限。

c) IBM 的Rational Teststudio测试套件

d) MI 的Winrunner Loadrunner

e) qtp测试工具

在测试工具中,除去上面所讲,目前还有自动化测试工具,其中有Web的,应用软件的,还

有单元测试的. 以上具有代表性常用的软件是:Selenium, Watir, Winrunner, Loadrunner,

Junit等等。而在开发软件过程中,除去选择正确的工具之外,我们还必须要有简便的合适

的方法,这就是软件工程方法。软件工程方法为软件开发提供了“如何做”的技术。它包括

了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、

算法过程的设计、编码、测试以及维护等。软件工程方法有三种:启发式方法,形式化方法,

原型方法。

a) 启发式方法: 寻找现实世界的对象(object,物体),形成一致的抽象,封装实现细节,

在可能的情况下继承,藏住秘密(信息隐藏),找出容易改变的区域,保持松散耦合,探寻

通用的设计模式。启发式方法拥有很多,其中画图时一种强大的启发式方法。

b) 形式化方法: 在逻辑科学中是指分析、研究思维形式结构的方法。它把各种具有不同

内容的思维形式(主要是命题和推理)加以比较,找出其中各个部分相互联结的方式,如命题

中包含概念彼此间的联结,推理中则是各个命题之间的联结,抽取出它们共同的形式结构;再

引入表达形式结构的符号语言,用符号与符号之间的联系表达命题或推理的形式结构。

c)原型化方法:在正式编码之前,做一个原型出来给用户看看,看界面是否符合用户的

要求。它的可视化强,强化沟通,降低风险,节省后期变更成本,提高项目成功率。一般来

说,采用原型法后可以改进需求质量;虽然投入了较多先期的时间,但可以显著减少后期变

更的时间;原型投入的人力成本代价并不大,但可以节省后期成本;对于较大型的软件来说,

原型系统可以成为开发团队的蓝图;另外,原型通过充分和客户交流,还可以提高客户满意

度。

2.4.10软件质量:软件与明确的和隐含的定义的需求相一致的程度。具体说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。

2.5软件生命周期模型

2.5.1瀑布模型

定义:是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。包括软件工程开发、企业项目开发、产品生产以及市场销售等构造瀑布模型。

特点:(1)阶段间具有顺序性和依赖性,即必须等前一阶段的工作完成之后才能开始后一阶段工作,前一阶段的输出文档就是后一阶段的输入文档(2)推迟实现的观点(3)质量保证的观点:

*每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各类人员之间互相通信的媒介,也是运行时期对软件进行维护的重要依据。

*每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。事实上,越是早期阶段犯下的错误,暴露出来的时间越晚,排除故障改正错误所需付出的代价也越高。因此,及时审查,是保证软件质量,降低软件成本的重要措施。

2.5.2快速模型

快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集,其本质是“快速”。

快速原型是不带反馈环的,其优点是软件产品的开发基本上是按线性顺序进行的

2.5.3增量模型(渐增模型)

定义:融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。

特点:其能分批地逐步向用户提交产品,能在较短的时间内向用户提交一些可完成有用的工作的产品;逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户带来的冲击。

2.5.4螺旋模型:其基本思想是使用原型及其他方法来尽量降低风险。

优点:对可选的方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量做为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发并没有本质的区别。

螺旋模型主要适用于内部开发的大规模软件项目。

其主要优势:它是风险驱动的,但是这也可能是它的一个弱点。

2.5.5喷泉模型

喷泉模型是典型的面向对象生命周期的模型,“喷泉”一词体现了面向对象软件开发过程的

迭代和无缝特性。

结论

这次课题,我组选定了“软件工程”这一与时俱进的课题,在以认真严肃的态度,良好团结的合作氛围来进行过程中,我们明白了软件在各个领域都有着它不可取代的位置,更加的激励着我们将其作用更好地运用,因“利”制宜,发挥其的长处。同样的,在课题进行时也发现了不少问题,但我们都成功解决,而且,我相信,下一次,我们会做得更好。——————

此次课题,我们小组选择了"软件工程综述"这一课题。在研究该课题的过程中,我与组员一同去了图书室借阅了相关的一些书籍,一同在机房里查找相关资料,并将那些资料整合。在此次与组员合作中,我懂得了合作的重要性——合作可以使我们取得事半功倍的效果。从本次的课题研究中我学习到了软件的无所不在以及深奥,我也懂得光凭这样一次小小得到研究根本无法全面地了解软件,但是由于时间有限,我们小组没有办法再进行进一步的研究。但是还是初步的了解了软件的概念以及软件危机方面的知识。最后我们小组还需要努力在以后的学习中逐渐认识软件了解软件明白软件的价值。我们还需要努力!!!——————

参考文献

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

[2] 陈明软件工程导论[M].第三版.北京:机械工业出版社,2010

[3] 钱晓明朱健江王晓勇软件工程[M].北京:中国铁道出版社,2007

[4] https://www.360docs.net/doc/f917279947.html,/view/e109e9eeaeaad1f346933fdf.html

[5]https://www.360docs.net/doc/f917279947.html,/view/cf2e5dd233d4b14e852468a3.html

软件工程国内外技术发展现状_存在问题及发展趋势

软件工程国内外技术发展现状,存在问题及发展趋势 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 首先浅谈下软件工程在国内外的发展状况,自1968年北约组织的技术委员会正式提“软件工程”以来,经过几十年的发展,软件工程已经成为一门迅速发展,内容极其广泛的综合性学科。软件工程是一门研究软件开发和维护过程中所使用的原则、技术和方法的学科。从学术观点看,软件工程要以软件开发和维护为出发点,总结规律,建立科学概念,指定软件生产的规范,逐步形成理论体系。总之,软件工程的最终目标是提高软件的生存率,降低软件的生产成本,改进软件的质量,增加可靠性。 1、软件技术发展早期 在计算机发展早期,应用领域较窄,主要是科学与工程计算,处理对象是数值数据。1956年在J.Backus领导下为IBM机器研制出第一个实用高级语言Fortran及其翻译程序。此后,相继又有多种高级语言问世,从而使设计和编制程序的功效大为提高。这个时期计算机软件的巨大成就之一,就是在当时的水平上成功地解决了两个问题:一方面从Fortran及Algol60开始设计出了具有高级数据结构和控制结构的高级程序语言,另一方面又发明了将高级语言程序翻译成机器语言程序的自动转换技术,即编译技术。然而,随着计算机应用领域的逐步扩大,除了科学计算继续发展以外,出现了大量的数据处理和非数值计算问题。为了充分利用系统资源,出现了操作系统;为了适应大量数据处理问题的需要,开始出现数据库及其管理系统。软件规模与复杂性迅速增大。当程序复杂性增加到一定程度以后,软件研制周期难以控制,正确性难以保证,可靠性问题相当突出。为此,人们提出用结构化程序设计和软件工程方法来克服这一危机。软件技术发展进入一个新的阶段。 软件工程形成的初始阶段1968—1975 此阶段主要提出和探讨软件工程及当时软件开发中存在的问题并通过使用单个方法和工具以及改善组织管理手段加以解决。该阶段的主要工作如下: 1.调査、分析软件开发中存在的问题。 2.统计、分析程序设计及程序出错的类型。 3.研制软件测试方法与工具。 4.提出改进软件质量的方法。 5.提出软件生产化的必要性与设想。 6.数据的抽象化和方式。 7.研究程序实现的技巧与措施。 从70年代初开始,大型软件系统的出现给软件开发带来了新问题。大型软件系统的研制需要花费大量的资金和人力,可是研制出来的产品却是可靠性差、错误多、维护和修改也很困难。一个大型操作系统有时需要几千人年的工作量,而所获得的系统又常常会隐藏着几百甚至几千个错误。程序可靠性很难保证,程序设计工具的严重缺乏也使软件开发陷入困境。结构程序设计的讨论导致产生了由Pascal到Ada这一系列的结构化语言。这些语言具有较为清晰的控制结构,与原来常见的高级程序语言相比有一定的改进,但在数据类型抽象方面仍显不足。面向对象技术的兴起是这一时期软件技术发展的主要标志。“面向对象”这一名词在80年代初由Smalltalk语言的设计者开始提出,而后逐渐流行起来。 面向对象的程序结构将数据及其上作用的操作一起封装,组成抽象数据或者叫做对象。具有相同结构属性和操作的一组对象构成对象类。对象系统就是由一组相关的对象类组成,能够

《软件工程发展概述》

软件工程发展概述 计算机工业发达国家在发展软件的过程中曾经走过不少弯路,受过许多的挫折,至今仍然经受着“软件危机”的困扰。人们开发幼稚软件的能力大大落后于计算机硬件日新月异的进展和社会对计算机软件不断增长的需求,这种状况已经严重妨碍了计算机技术的进步。 为了摆脱软件危机,一门新的学科产生并发展起来—软件工程,几十年来软件工程的发展大致如下几个阶段。 第一阶段—软件危机。 20世纪中期,计算机刚被从军用领域转向民用领域使用,那时编写程序的工作被视同为艺术家的创作。当时的计算机硬件非常昂贵,编程人员追求的是如何在有限的处理器能力和存储器空间约束下,编写出执行速度快、体积小的程序。程序中充满了各种各样让人迷惑的技巧。这时的软件生产非常依赖于开发人员的聪明才智。 到了20世纪60年代,计算机的应用范围得到较大扩展,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。这就是所谓的“软件危机”。 早期出现的软件危机主要表现在: ①软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。 ②软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。 ③生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。进入80年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。 软件危机不仅没有消失,还有加剧之势。主要表现在: ①软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。

软件工程发展概述

软件工程发展概述 摘要:本文简单介绍了软件工程。分别从软件工程的定义、发展历程、现在发展动态以及未来发展趋势做出简单分析,使我对软件工程的过去、现在和未来有了进一步的了解和认识。 关键词:定义;过程;动态;趋势 1.引言 随着计算机的广泛应用,信息产业悄然兴起,越来越成为经济发展中的先导产业。目前,信息化已从整体上引导着世界经济和社会发展,信息处理技术已成为现代社会生产力、竞争力的关键,具有十分重要的战略位置。这一期间,计算机软件以其独特的知识形态,广泛渗透于国名经济建设的各行各业中,对信息采集、信息处理、信息交换以及生产过程、社会生活的变革产生了深远的影响。计算机软件,尤其是软件工程作为软件产业的依托学科已经成为信息技术的核心之一。 2.软件工程概述 软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。工程是将理论和知识应用于实践的科学。就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。 2.1软件工程定义 软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。概括地说,软件工程是指导计算机软件开发和维护的工程学科。 根据各位学者、组织机构给出的软件工程定义,我简单的将软件工程理解为:软件工程是按照工程学的管理方式,有组织、有计划的在成本限额以内按时完成开发且能在实际机器上可靠有效地运行的软件,并不断对软件进行优化、维护及管理的工作过程。 2.2软件工程方法和技术

第1章_软件工程学概述练习题

第一章练习题 一、判断题 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(√) 2..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开 发实际上就是编写程序代码。(X) 3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是 生成类的模板。(X) 4.快速原型模型可以有效地适应用户需求的动态变化。(√) 5.类是关于对象性质的描述,由方法和数据组成。(√) 6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。(√) 二、名字解释: 1.软件:完成特定功能的程序+数据结构+文档。 2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。 3.软件工程:指导计算机软件开发和维护的一门工程学。 4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时 期。 5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任 务的工作步骤。 6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。它包括可 行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。 7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往 是最终产品能完成的功能的一个子集。 8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。增量方式包括增量开 发和增量提交。增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件; 增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。 9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模 型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。 对象。

桩基础施工技术现状及发展趋向浅谈

桩基础施工技术现状及发展趋向浅谈 1 桩基础施工技术现状 按施工方法,桩可分为非挤土桩、部分挤土桩和挤土桩三大类。再细分,桩的施工方法超过300种。施工方法的变化、完善、更新可以说是日新月异。图1中列出桩的部分施工类型。 以埋入式桩为例,图中仅列出三大类,实际上细分可有80种以上类型。所谓中掘施工法桩是把小于桩径30~40mm的长螺旋钻、或钻杆端部装有搅拌翼片的螺旋钻及钻斗钻等插入桩的中空部,在钻头附近的地层连续钻进,使土沿中空部上升,从桩顶排土的同时将桩沉设。在施工中通常将桩端注入压缩空气和水,促进钻进的同时也使桩沉顺利。为使桩获得更大的承载力,桩埋入孔中后可分别采用量终打击方式、桩端加固方式或扩大头加固方式。按中掘埋入工艺、钻机、承载力发挥方法及采用的预制桩种类等,中掘施工法桩又可细分为40余种桩型。而预钻孔埋入式桩亦可细分为40余种。 以泥浆护壁法钻孔扩底灌注桩的成孔方法为例,亦有40种以上,扩底方式可分为反循环扩底、钻斗钻扩底、正循环扩底及潜水钻扩底等。其中反循环扩底方式又分为扩刀上开、扩刀下开、扩刀滑降及扩刀推出等方式;钻斗钻扩底方式又分为水平推出、滑降及下开和水平推出的并用等方式。 以桩端压力注浆为例,注浆工艺可分为闭式注浆和开式注浆两大类,桩端压力注浆施工工艺的核心部件——桩端压力注浆装置又可分为预留压力注浆室、预留承压包、预留注浆空腔、预留注浆通道及预留特殊注浆装置五大类,两者组合,目前已有20余种桩端压力注浆桩工法,其中国内有18种。 2 常用桩设桩工艺选择 桩型的选择应考虑以下原则: (1)“因荷载制宜”即上部结构传递给基础的荷载大小是控制单桩承载力要求的主要因素。 (2)“因土层制宜”,即根据建筑物场地的工程地质条件、地下水位状况和桩端持力层深度等,通过比较各种不同方案桩结构的承载力和技术经济指标,选择桩的类型。

浅谈软件工程技术现状和发展趋势

浅谈软件工程技术现状和发展趋势 发表时间:2019-08-15T15:07:31.650Z 来源:《信息技术时代》2018年11期作者:董庆森[导读] 随着科学技术的不断发展,信息产业已经逐渐成为了现代化产业中不可或缺的重要一环,信息产业在发展的过程中不断与传统行业进行交互与发展,促进了传统行业的变革与发展也为当前的经济发展注入了新的活力。(郑州工商学院工学院,河南省郑州市 450000) 摘要:随着科学技术的不断发展,信息产业已经逐渐成为了现代化产业中不可或缺的重要一环,信息产业在发展的过程中不断与传统行业进行交互与发展,促进了传统行业的变革与发展也为当前的经济发展注入了新的活力。软件工程作为信息产业的重要支柱学科,其随着信息产业的发展也迎来了发展的黄金时期,软件工程凭借其在数字信息时代的重要意义,也成为了当前信息产业中不可缺少的重要学科。本文将对软件工程技术的发展现状进行分析就技术未来的发展趋势进行简要的判断。关键词:软件工程技术现状;发展趋势 一、引言 信息产业的发展极大的改变了传统行业的发展面貌也使得现代化产业呈现出新的发展局面,软件工程作为信息产业中的重要基础学科,其在计算机学科领域有着十分重要的作用。随着经济社会的不断发展,信息产业还有着广泛的发展前景,软件工程顺应着信息产业的发展趋势也将迎来进一步的创新和提升,因此对于软件工程技术的发展现状和发展趋势进行分析判断有着十分重要的价值和意义。 二、软件工程概述 软件工程作为一门利用工程建设的手段来对软件进行分析维护的学科,其在学科内容上包括有软件的开发工具、程序设计语言以及数据库的内容,随着信息技术在人们生活中应用的越来越广泛,软件工程也在诸多领域得到了施展和应用,随着计算机学科领域的不断丰富与拓展软件工程也逐渐转变为计算机领域的一门重要独立学科。软件在种类和内容上十分丰富其一般包括有操作系统、数据库、社交软件以及游戏软件等,这些软件被广泛应用于传统工业、金融行业以及人们的日常生活当中,软件的不断丰富与拓展极大的改变了人们的日常生活,为人们的工作学习提供了诸多便利,对促进社会经济的发展与进步,改善人们的生活质量有着十分积极的影响。通常对软件质量的评价标准上往往会根据软件自身的实用性、安全性以及功能性等作为质量评判的重要依据。 三、软件工程技术发展现状 从20世纪末开始我国软件行业就呈现出良好的发展态势,自21世纪以来我国软件业务盈利更是以超过10%的增长速度逐年递增,而软件外包营收更是一度超过了80%的增长速度。软件产业有着良好的市场发展前景和广阔的市场空间,国家方面更是出台了一系列的政策来鼓励软件工程技术的发展。就目前而言,软件工程技术良好的发展前景具体表现为:软件工程技术人员有着良好的就业环境和就业形势。随着信息行业发展的不断增速,越来越多的互联网信息产业开始呈现出跨越式的扩增态势,随着信息产业发展规模都不断扩大,对于软件工程专业人才的需求也在逐年提升。同时相比传统行业,软件工程技术人员有着较为良好的工作环境和薪资待遇。 软件工程技术人员有着较为广泛的就业方向。软件工程学科对于从业人员有着较为严格的专业技能水平要求,这是由于软件工程在技术上包括了软件研发、测试以及应用等一系列内容,正是由于软件工程的复杂性和高要求性也使得软件工程的专业性人才有着较为广泛的就业渠道,随着信息化时代的到来,无论是互联网企业还是金融企业和政府部门都急需软件工程领域的专业性人才,软件开发和性能维护已经成为了当前现代化企业经营发展的必然趋势,因此一旦掌握了软件工程专业知识技能就能够拥有十分广阔的就业方向。 软件工程技术人员待遇丰厚。近年来随着软件技术人才的短缺,使得软件工程技术人员更容易受到企业的青睐和追求,在这样的发展背景下软件工程从业者往往能够获取更高的薪资待遇水平。 四、软件工程技术发展趋势 软件工程技术全球化。随着经济全球化进程的不断加快,软件工程技术全球化已成为了未来发展的重要趋势,软件工程凭借其专业技能上的广泛性和共通性,期待工程技术上的发展不仅仅局限于某一个地区或者国家,而是需要结合全球软件发展交互的共同性逐渐促使软件工程发展更为成熟。全球化的软件工程发展趋势符合当前经济发展的重要趋势,各国之间通过实践软件系统框架网络的建设,实现全球软件交互和通力协作,在全球化的软件工程概念下,软件工程的发展能够吸取不同地区和国家的先进经验,从而构建出更加符合人们需求的软件产品。 软件工程技术开放性。开放计算式当前软件工程技术发展的必然趋势和未来方向,通过开放计算能够提升企业之间软件开发研究的效率,通过实现企业软件的交互应用,能够简化未来软件工程在软件开发上的投资消耗,提升软件工程开发的灵活性和简易程度。在软件工程技术开放性的发展过程中需要个国家最先进的软件开发技术经验实现共享,以此来作为后续软件开发和投资的重要关键技术保障。 软件工程技术模板化。随着信息化时代的到来软件市场的竞争也不断加剧,面对日益复杂的软件开发和维护环境,为了能够在激烈的市场竞争中占得先机提升软件开发和维护的效率,企业需要加强其在业务能力上的灵活性通过以模板化的思维来提升企业在软件开发运用上的效率。模板化思维在企业经营发展中的应用能够有效的帮助企业对现有的软件实行分解组装,结合当前的软件系统根据不同的软件资源需求针对企业的业务来进行更加灵活的变动,使得软件工程技术的发展更加符合企业的利益。 五、结语 计算机技术的迅速发展也使得软件工程技术得到了进一步的提升,软件工程技术在发展的过程中不断向全球化、开放性以及模板化迈进,在这一过程中必须严格恪守软件开发所需要遵循的相关规律,结合软件工程技术的发展特征不断深入研究,共同促进我国软件工程技术的发展与提升。 参考文献 [1]刘宇洋.浅析软件工程的发展趋势[J].科学技术创新,2017(1):180-180. [2]施少杰.浅析软件工程技术的发展[J].明日风尚,2017(14):299-299. [3]冯勃达.浅谈软件工程标准化的现状[J].中国新通信,2017(20):52.

软件工程试题与答案 (6)

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则: , ,和 , 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

计算机软件工程现代化技术发展现状

计算机软件工程现代化技术发展现状 进入21世纪以后,信息技术、互联网以及大数据的发展空间也随之提升,计算机软件工程技术也被良好的推动,且在当前时期背景下,被广泛应用与行业发展和生产中,随着时间的推移,成为社会经济发展重要的组成部分。随着计算机软件工程技术的不断深入,其现代化技术的应用也显现出了一定的效果,但是这其中也存在较为明显的问题,经过不断的实践证明,得出有效的运用科学技术和计算机技术才能够实现现代化的计算机软件工程,为我国信息化发展提供推动作用,因此,本文对计算机软件工程技术现代化进行研究具有实际意义。 1计算机软件工程现代化技术的重要性分析 1.1概念阐述 计算机软件工程所指的是,对产品理念设计、产品开发等程序中,负责设计和开发的人员循规蹈矩的按照相关规定进行的操作,坚持有关的标准和原则进行对计算机开发的操作,依靠计算机和其相关的软件,对计算机工程技术进行维护。随着时代的发展,计算机软件工程在各个行业都提供了便利,计算机软件也被运用到了多个领域当中,完美的与现代科技发展进行了结合,涉及到的内容多姿多彩,范围广阔。通过发掘计算机软件工程技术性的产品与服务,可以更好的将计算机的便捷之处运用到各行各业当中,也能全面的完善相关的法律政策、行为、制度以及成果,为计算机未来的发展奠定了良好的基础,使得计算机软件工程能够顺利的继续发展。

1.2重要性阐述 历经数年的发展,计算机软件工程技术已经成为了时代发展不可或缺的一个支撑点,对我国计算机软件技术发展现状的研究表明,我国在该领域获得了大量成果,具备的特点也是多种多样,例如运用范围广、内容充实、形式繁多等。然而,针对与核心信息工程技术来讲,还有一些实质性的问题所在,例如一味的加入其他发达国家的研究成果、先进的结果等[2]。由于大量的采用其他国家的经验,导致缺失了自己的想法和创意,依赖别的国家,所以无法从根本解决实际存在的问题,同时也无法具备面对问题的对策和经验,导致计算机软件工程无法为我国的经济发展提供有效的帮助,导致无法推动我国的经济发展。与此同时,我国的计算机软件技术没有达到一定的水平,暂时还没有达到数字化、网络化、智能化,没有具备这种素质的管理平台,就无法推动可持续的发展,也不能有效的助力于战略性的发展手段。计算机软件工程技术与产业之间也因此产生了巨大的影响和阻力。因此,计算机软件工程化一定会发展成为具备智能化技术、信息化技术、智能化技术以及数字化技术的工程,且还能够推动我国科学技术的发展,加快我国可持续发展的进程,必将会成为我国经济建设、国防安全、国家发展的不可或缺的力量。 2发展现状分析 经过长时间的研究发现,计算机软件工程技术对整体的计算机系统具有维护作用与支持作用,即计算机系统开发与运用中的防护。实际的计算机软件工程应用中,成熟、效率高是其比较稳定的特点,根

软件工程发展史及发展趋势

软件工程发展史及发展趋势 一:软件工程定义 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作和生活效率 二:软件工程的发展历史 随着人类的发展,计算机作为第三次科技革命的主要代表产品,极大的推动了人类社会发展。与此同时,软件作为现代计算机的重要支撑部分,伴随着计算机的发展不断发展。 早在20世纪50年代,有关软件的编程语言就已经出现,但是关于软件工程这个概念却要远远晚于软件发展。据资料显示,软件工程这个概念最早出现在20世纪60年代末期。在软件工程发展的半个多世纪内,软件工程所使用的程序语言不断发展,而且有关于软件四六七零零四零二二号码论文写作工程的模型不断发展,从最早的瀑布模型到现在光为人所知的云计算,软件工程几乎每隔5-10年就会获得一次突破性发展,而且有关软件语言从最早的面向程序结构转向为面向对象,极大的提升了软件编程的效率。目前,软件工程经过50多年的发展,已经深入到社会生活的各个层面,可以说,现代社会生活,几乎在每一个方面都涉及到软件工程。1.软件工程开发过程 软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。程序设计阶段 程序设计阶段出现在1946年~1955年。此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。软件设计阶段 软件设计阶段出现在1956年~1970年。此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。开始广泛使用产品软件(可购买),从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。软件工程阶段 自1970年起,软件开发进入了软件工程阶段。由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件产生进入了软件工程时代。此阶段的特定是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;第二代软件技术:软件测试技术、方法、原理用于软件生产过程;第三代软件技术:处理需求定义技术用于软件需求分析和描述。2.软件工程的各个阶段

软件工程开发的现状及发展

软件工程开发的现状及进展 随着科学技术的持续进展,计算机应用得到了前所未有的普及与深化。在过去的几十年里,软件工程在应用领域得到广泛推广,促使计算机 领域的理论研究、软件开发、技术进展等加快了进展的脚步,同时也 提出了新的挑战。 1我国软件工程的发体现状 1.1我国软件开发的进展我国的软件技术进展的相对比较落后,相比 先进的国家还存有着非常大的差别。但是,我国软件工程的进展却是 非常迅速的,短短几年的时间就形成了属于我们自己知识产权的软件 技术。软件工程进展到现在,我国不但研发了属于我们自己的开发工具,还制定了符合我国实际情况的研发技术方案。 1.2我国软件开发工程中存有的不足随着科技和计算机技术的快速进展,软件工程在计算机技术中来说是一项核心技术,市场需求量也在 随着计算机的普及而持续递增,软件工程从上世纪60年代开始兴起, 最早出现在西方国家,在软件工程的初期进展中欧美国家投入了大量 的资金和详细的规划,最终取得了快速完善的进展,随着科学技术的 持续推动和进展,软件工程向着高集成、智能化的方向持续进展。当 前来说,国外的软件工程技术已经得到了充分的进展,但是我国常用 的主流软件的开发内容以及开发工具都是国外设计和研究的,我国当 前来说还是较为落后,因为进展时间晚,进展时间短,这就给我国软 件工程提出了更高的要求,要保质快速的进展,除了在快速进展的要 求下,我国软件工程还需要注重一些问题的解决,首先是软件工程治 理体制方面的,因为进展起步较晚,在软件方面的体制没有明确的规定,这就造成软件开发团队的工作没有一个可靠的依据,团队之间不 能高效的协调合作,这就造成开发周期较长,开发质量有待提升,整 体团队效率较低,这种情况下就需要对于开发体制持续的完善,真正 做到在开发过程中有据可依有法可循,另外软件开发人员对于开发进 度不够重视,这就造成在开发过程中不能保证研发人员的稳定性,造

软件工程专业综述

软件工程专业 论 证 报 告

关于设置软件工程本科专业的论证报告 当今社会信息科技技术迅猛发展,人类社会已进入信息技术时代。软件技术的普及应用,计算机软件的应用正成为科技信息力量最重要的领域组成。计算机软件的发展和应用的程度,直接关系着信息化建设进程的速度。所以软件工程专业技术人才的培养,对于我国的信息化建设进程具有十分重要的基础意义。目前根据专业学科考察及对社会人才市场的需求分析,结合泰豪动漫职业学院游戏软件学院的实际情况,现申请增设软件工程本科专业。 一、增设软件工程专业的必要性 (一)增设软件工程本科专业有利于给国家输送专业技术人才,推进国家信息化建设进程,满足国家科技生产需要,促进国家经济腾飞发展。 近几年,随着国家信息化建设的高速发展,IT业发展迅猛,但高速发展的IT产业,因为人才短缺问题突出,严重制约了行业的发展。如今,IT人才短缺已成为竭制我国IT产业,尤其是软件产业发展的最大瓶颈。根据《中共中央关于制定国民经济和社会发展第十三个五年规划的建议》中创新科技领域需要重点编制三个规划:一是创新科技主体的规划,即明确包括企业、个人、科研院所、高等院校、行业组织、政府等在内的各个主体在创新中的职责;二是创新科技方式的规划,包括技术创新、产品创新、产业创新、模式创新、组织创新、管理创新等;三是创新科技环境的规划,即如何建立和完善鼓励创新的制度和政策环境。 在国家政策支持和行业的共同努力下,我国软件产业实现了快速发展,产业规模、技术水平、骨干企业和产业环境都有了长足的进步,对信息产业和国民经济发展的支撑作用日益明显。主要表现为:激励科技创新创业,促进经济结构调整和转型升级。通过引导企业投资,可以加速科技成果更好更快地转化为现实生产力,支持科技企业和战略性新兴产业发展,更好地发挥科技对经济社会发展的支撑和引领作用,加快培育形成我国经济发展的新增长点。同时,将政府引导与学校教育有机结合,自主创新能力有所提升,部分关键技术取得突破,涌现出一批优秀的具有自主知识产权的Linux操作系统、数据库、中间件、嵌入式软件、信息安全软件及办公套件等,并在电子政务建设和行业信息化推进中得到了广泛的应用。

软件工程复习

单选填空简答思考题 1、传统的软件瀑布生命模型包括哪六个方面? 需求、分析、设计、实现、交付后维护、退役 2、传统瀑布生命模型的中交付后维护包括哪三种? 改正性维护、适应性维护、完善性维护 3、现代维护和传统维护的观点有何不同? 1)传统维护的观点是先开发后维护。 2 )现代维护的观点是无论是在软件安装前还是安装后,只要发生改正错误或需求变化时都是对软件的维护。 4、传统范型开发一个软件时常要进行哪三类计划活动? 1 )、在项目的开始,对管理需求和分析阶段进行初步计划; 2)、一旦明确知道了将要开发什么,就制定出软件项目管理计划(SPMP); 3)、在整个项目过程中,管理者需要监督SPMP的执行情况,并且注意是否有偏离计划的情况发生。 5、维护占总成本的比例关系90年代后是多少?答:75% 6、简单描述一下以下生命模型的各自特点:编码及修补模型,快速原型开发,敏捷过程,同步稳定。 7、交付产品7个月后在使用时发现了一个错误,纠正这个错误需要花费16700USD。规格说明文档中的模糊语 句导致了这个错误。估计一下,如果在分析阶段纠正了该错误需要花费多少? 3: 200或3:68 8、统一过程有哪五个基本工作流?各自的定义及基本步骤?需求流:目标是让开发组织确定客户的需求 1)、对应用领域获得一个基本的了解 2)、商业建模 3)、确定客户的需求并从客户的角度找出存在的限制条件 4)、决定概念探究的目标 分析流:目标是分析和提取需求,以获得正确开发一个软件产品和易于维护他它所必需的需求。 1)、需要来年各个独立的工作流:需求流和分析流 2)、建立软件产品的规格说明文档 3)、当客户批准了规格说明之后要进行详细计划和评估即开始软件项目管理计划设计流:目标是细化分析流的制品,直到材料处于程序员可实现的形式 1)、模块化分解 2)、为每个模块选择响应的算法和数据结构 3)、在面向对象设计中,设计小组必需详细记录他们所做的每个设计决定实现流:目标是用选择的实现语言实现目标软件产品(就是编写程序) 1)、把要实现的的模块的详细设计交给多个程序员完成 2)、各个模块的集成 测试流:目标是真正目标是寻找bug 1)、每个软件人员对开或维护的每个软件制品进行测试或再测试 2)、一旦软件人员确信一个制品是正确的,就将他交给软件质量保证小组进行独立测试 9、项目管理计划包括哪些内容? 1)、要做的工作2)、做这个工作所用的资源3)、为此付出的金钱

软件工程专业办学现状及发展特色分析

软件工程专业办学现状及发展特色分析 摘要:针对目前软件工程专业办学从课程体系设置到教育教学模式构建上均存在不同程度的单一性和趋同性问题,提出将移动互联网作为专业建设重点,加强校企合作办学,推行CDIO工程实践教学理念,借助Moodle平台引入群体―探究类教学模式以培养企业急需的工程实践性高级人才。 关键词:软件工程;办学现状;特色;本科教育 0 引言 软件产业是信息产业发展的核心,是国民经济信息化的基础。根据工信部2013年1月25日发布的数据显示,2012年我国软件产业实现软件业务收入万亿元,同比增长%。2015年,国家对软件人才的需求超过600万人。然而,目前我国每年最多能培养20万软件人才,难以满足社会对软件人才的需求,因此,加大力度培养软件人才储备仍然是我国信息产业快速发展国家战略的迫切需要Ⅲ。 1 目前软件工程办学现状 截至2009年底,全国有普通本科院校792所,普通高职院校1 239所,经国家批准设立的独立学院316

所,经国家审定的分校办学点共68个;目前,接近80%的院校都开设有软件及软件相关专业,主要包括计算机科学与技术、软件工程、自动化、通信工程、电子信息科学与技术、微电子学、光信息科学与技术、集成电路设计与集成系统等多个专业,学历、学位层次覆盖博士、硕士、本科和专科。同时,为贯彻落实国务院《鼓励软件产业和集成电路产业发展若干政策》和《振兴软件产业行动纲要》的精神,实现我国软件产业人才培养跨越式发展,教育部以国家重点鼓励发展的软件、集成电路、信息安全等信息技术关键行业的战略性和紧缺性人才培养为突破口,实施了一系列具有战略意义的重大改革举措。从2001年起至今,国家先后批准成立37所示范性软件学院、35所示范性软件职业技术学院,建立了25个集成电路人才培养基地,成立了40个LINUX技术培训与推广中心,各地方教育主管部门紧跟发展形式,也先后批准成立超过50多所地方性示范软件学院。2008年,教育部还在高校中批准设立20个软件人才培养模式创新实验区。 以重庆市为例,全市共有57所高等院校,目前开办软件工程本科专业的院校已有15所。纵观这些高校的软件工程专业,从课程体系设置到教育教学模式构建上,均存在不同程度的单一性和趋同性。事实上,

软件工程技术发展思路论文

软件工程技术发展思路论文 摘要:随着科学技术的快速发展,软件工程成为一门近代新兴的现代科学技术学科。 目前,软件工程技术在计算机技术中有着应用性强,涉及面广,实用性强等特点,对其发 展有着不可或缺的推动作用。软件工程具有极为重要的地位,若没有软件工程技术的发展 壮大,就没有计算机技术的蓬勃发展。计算机技术经历了许多次的重大变革,每一次都具 有其独特的一面。软件开发从最初简单的程序编写,再到为适应人们的多样化的需求。技 术人员对软件技术的深层次的研究,使软件开发技术具有功能更全面,系统更深刻的特性。如今,计算机技术朝着信息多元化,技术科技化的方面不断发展。发展的同时,面对的是 软件开发费用的不断增长,软件的生产效率却大大降低,造成了“软件危机”现象。我们 知道,现代软件工程的理论思想是以制定一套规范而统一的开发软件为基础的。通过对软 件工程技术发展历程展开一定的探索,研究软件工程技术的应用于发展。 关键词:软件工程计算机技术程序开发 1软件工程技术的概述 1.1软件开发的本质 在一定程度上,软件开发的实质主要是从“高级层面”到“低级层面”的一次转变历程。但是这一过程十分复杂,涉及到许多方面。比如有人员、技术开发、成本问题等因素 的制约,因此软件系统的开发不易且较为艰难。所以,软件工程技术的本质我们可以将其 定义为:软件工程技术涉及到程序语言、软件开发工具、设计模式、数据库等多方面,它 是按照成本的预算和进度,并在计算机理论技术以及工程管理的相关规定下,来实现用户 对软件开发及维护的需求或者是以之为研究对象的一种科学技术。 1.2对软件开发的认识和方法 时代的不同,造就了人们对于软件产业的开发过程及软件类型、项目的不同理解和认识,从最初的瀑布式到后来的螺旋式开发模型,再到如今的敏捷开发的新兴方法。可以从 中看出,软件开发过程是以软件工程为主要思想来进行探索开发的。这一过程遵循以下三 个原则:良好的组织纪律、严密的管理,各类人员的相互配合完成工作,提高软件的生产 效率,都离不开好的软件开发技术。瀑布型、原型模型,总体数据库规划模型是经许多学 者总结得出的方法步骤,这些方法步骤在随着社会自身的迅速发展,对软件技术的需求日 益增大,要求随之提高,也会因为自身的落后性及局限性,造成“软件危机”的产生。我 们不能说一款软件已经“完美无瑕”,要以发展的眼光来看待问题。不过,令人可喜的是,新的软件开发模型,计算机辅助软件工程以及软件自动生成器等思想和方法的出现,进一 步地推动了软件工程技术的发展,使软件生产更为社会化、自动化、标准化,从根本上使 得软件生产在质量上有了巨大的飞跃。

软件工程概论课后习题答案

软件工程概论郑人杰等版 第1章软件与软件工程的概念 1.1 举出你所知道的应用软件的例子。 办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。 1.2 认为“软件就是程序,软件开发就是编程序。”这种观点是否正确?为什么? 认为“软件就是程序,软件开发就是编程序。”这种观点是错误的。 首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。 1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么? 可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。 1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现: (1)对软件开发成本和进度的估计常常很不准确。 (2)用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。

(4)软件常常是不可维护的。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例逐年上升。 (7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用 迅速普及深入的趋势。 产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面: (1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。 (2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。 (3) 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 (4) 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。 (5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。 1.5 什么是软件工程? 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 1.6 简述软件生存期由哪些主要的阶段组成,每一阶段的主要任务是什么? (1)问题定义与可行性研究:问题定义必须回答的关键问题是:“要解决的问题是什么”。 可行性研究要回答的关键问题是:“在成本和时间的限制条件下能否解决问题?是否值

国内外软件工程发展现状

国内外软件工程发展现状 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

国内外软件工程发展现状 答:国内:“软件工程”术语的提出至今已有30多年的历史。其间,计算机软件产业经历了迅猛的发展,软件系统的应用领域从实验室渗透到了人类社会的各个角落,软件系统的规模迅速发展,与此同时,软件成本也在不断增长,在计算机系统中所占的比例越来越大,计算机硬件价格却随着技术进步和生产规模扩大而不断下降。从上世纪40年代开始到“软件工程”术语提出的20多年时间里,对软件开发的理解就是编程序,编程是在一种无序的、崇尚个人技巧的状态中完成的,因此软件可靠性没有保障,软件维护费用不断上升,进度无法预测,成本增长无法控制,程序人员数量无限度地增加。这一系列情况被称为“软件危机”。而软件工程以降低成本、提高质量、符合进度要求为目标,指导人们科学地开发软件,制作软件产品,集成计算机系统,成为计算机和信息产业的支柱。国内外软件开发的现状及比较尽管1968年软件业界即已倡导软件工程,但是我国中小企业严格按软件工程方法开发软件的并不多见。.“牛仔式”的开发仍然屡见不鲜。社会进步的一个很明显的现象就是社会分工越来越细,软件的开发也不例外。虽然开发者的勇气和决心是值得称赞的,但是这种开发方 2000年以来,国务院18号文件和47号文件相继出台,为软件产业的发展创造了良好的外部环境,我国软件产业发展步入快车道。2001年~2005年,我国软件产业规模从亿美元增加到484亿美元,5年间翻了两番多,已成为电子信息产业中增长最快的领域之一。 但整体来看,目前我国软件产业总体规模仍然太小。2005年,我国软件产业占全球市场的份额仅为%。而同年,美国、西欧、日本占全球市场的份额分别为39%、%和%。我国软件企业以中小企业为主,软件收入前100家企业销售收入平均仅为1亿多美元。 软件企业多以从事定制项目和一般应用软件为主。对于大多数软件企业来说,没有一个良好的切入点,走独立发展的道路难度比较大。企业竞争力不强,无法形成产业的竞争性优势,导致我国软件产业在全球软件产业分工中定位不清。 国外:20世纪90年代以来,世界软件产业获得了飞速发展。据IDC统计,全球软件业的年均增长率一直保持在15%~20%之间。目前,全球软件业已经开始进入成熟期。产业分工较为明确,产业成熟度较高,成本已成为企业竞争的首要因素。发达国家的软件企业从降低成本考虑,逐步集中力量发展核心业务;利用全球的人力资源,将大量非核心业务向发展中国家转移。 市场分析表明,近几年全球应用软件外包服务市场每年平均以%的速度增长。据美国E5公司预测,2006年全球软件外包市场将达到1000亿美元。整体来看,以美国、欧洲、日本为代表的国际软件大国产业梯次转移的需求已十分强烈,软件外包已成为世界软件产业发展的重要趋势,全球软件外包市场需求和外包服务业的发展空间逐渐形成。二、国内外软件工程存在的问题 答:国内:我国软件产业的国际化程度较低,国内市场由于以下的局限性无法独立支撑起一个庞大的产业: (一)狭小的现实市场规模。近年来,国内软件市场总体规模出现增长,但由于盗版,社会心理认同低,政府采购不规范等多种原因,增速仍较有限。软件潜在市场巨大和现实市场相对狭小矛盾仍较突出。用户忽视软件价值和“重硬轻软”仍较普遍。据统计,我国在硬件和网络上的投资与在软件和咨询服务上的投资比例为6∶4,发达国家为3∶7。软件开发网 另一方面,国内软件市场已经变成了国际竞争的市场。在软件市场的各个领域,特别是在高利润率的优质市场领域,市场份额基本上都由国外公司垄断。在系统软件和支撑软件市场,国外继续保持垄断地

相关文档
最新文档