软件工程总结(五篇模版)

时间:2019-05-12 13:23:27下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《软件工程总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《软件工程总结》。

第一篇:软件工程总结

第一章

1.软件有哪些种类?

答:1.按功能特征进行划分:

(1)系统软件(2)支撑软件(3)应用软件

2.按规模大小进行划分

微型、小型、大型、甚大型、极大型 2.什么是软件危机?

答:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。3.什么是软件工程?

答:是指导计算机软件开发和维护的一门工程学科。

特性略。

技术措施和管理措施消除软件危机。

4.结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。

使软件开发更加模式化,工程化,从而提高软件开发的效率和封装性。

第二章

1.什么是软件生命周期?它有哪些活动?

软件生命周期是指软件产品从考虑其概念开始到交付使用,直至最终退役为止的整个过程。

软件生存周期可以划分为软件定义、软件开发和运行维护3个时期 2.软件瀑布模型为什么要划分阶段?各个阶段的任务是什么?

在软件开发早期,开发只是被简单地分成编写代码和修改代码两个阶段。往往在拿到项目后立刻编写程序,然后调试通过后直接交付给用户使用。如果应用中出现错误,或者有新的要求,都需要重新修改代码。这种小作坊式的软件开发方法有明显的弊端,如缺乏统的项目规划、不太重视需求的获取和分析、对软件的测试和维护考虑不周等,这些都会导致软件项目的失败。

概念阶段:计划、需求分析

开发阶段:设计、编码、测试

维护阶段:运行维护

3.举例说明哪些项目的开发适用于原型模型或螺旋模型,哪些不适于采用这两种模型。

螺旋模型适合于大型软件的开发,应该说它是最为实际的方法,它吸收了软件工程“演化”的概念,使得开发人员和客户对每个演化层出现的风险有所了解,继而做出应有的反应。

不适用:小型软件。

原型般是指对某种产品进行模拟的初始版本或者原始模型,在工程领域中具有广泛应用。

不适用:大型软件项目;含有对于计算量大、逻辑性较强的程序模块:

第三章

1.可行性研究的任务是什么?

可行性研究的任务是以最小的代价在尽可能短的时间内确定问题是否能够解决。简单的说,可行性研究的最终结果是决定项目y做还是小做”而不是“如何做”。

2.项目开发计划有哪些内容?

引言(目的、背景、参考文献、术语);项目概述(功能、条件、运行环境、产品、程序、文档、服务、验收标准、实施计划、工作任务分解、进度、预算、人员)

第四章

1.什么是需求工程?需求工程包括哪些活动? 需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的 门学科。它通过合适的工具和记号系统地描述待开发系统,及其行为特征和相关约束,形成需求文档;并对用户不断变化的需求演进给予支持。

一个良好的需求开发过程应该包括需求获取、需求分析与建模、编写需求规格说明书和需求评审4个主要活动。2.需求工程过程包括哪些主要活动?

需求开发过程应该包括需求获取、需求分析与建模、编写需求规格说明书和需求评审4个主要活动。

3.有哪两种主要的需求分析模型?它们的主要思想是什么?

答:面向对象分析模型,结构化分析模型。前者是采用面向对象的思想进行软件需求分析的建模过程,而后者模型的核心是DD,它是设计各种数据对象的总和。他们的模型分别起到了描述数据模型,功能模型与行为模型的作用。

4.需求规格说明书的主要作用是什么?应该包括哪些主要内容? 作用:(1)作为用户方和开发方之间的合同,为双方相互了解提供基础。

(2)反映问题的结构,作为系统设计和编码的依据。

(3)作为测试和验收目标系统的依据。内容:

用户可以通过需求规格说明书检查需求描述是否满足原来的期望。设计人员根据软件需求规格说明书的描述了解所需开发软件的功能和性能,以及开发软件时必须满足的约束,将其作为软件设计的依据。测试人员根据软件需求规格说明书中对产品的描述,设计测试计划、测试用例和测试过程。产品发布人员根据软件需求规格说明和用户界面设计编写用户手册和帮助信息

第五章

2.简述数据流图分解时的注意事项。

•上层可分解得快些(即分解成子数据处理个数多些),这是因为上层是综合性描述,对可读性的影(即分解成的子数据处理个数多些),这是因为上层是综合性描述,对可读性的影响小。而下层应分解得慢性。•在不影响可读性的前提下,应适当多分解成几部分,以减少分解层数。3.数据字典的作用是什么?它有哪些基本内容? •分解应自然,概念上要合理、清晰。

作用:数据字典作为分析阶段的工具,有助于改进分析人员和用户.间的通信,进而消除很多的误解,同时也有助于改进不同开发人员之间的通信;.内容:数据字典的内容主要是对数据流图中的数据项、数据流、加工逻辑、数据存储和外部实体

第六章

l。什么是面向对象方法?与传统软件开发方法相比,面向对象方法有什么优点?

是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法。优点:

l.符合人们对问题的认识习惯

Z.增强问题域与最终软件系统之间的衔接

3.易于维护和复用

4•易于开发大型软件产品

5.什么是模型?在软件开发过程中为什么需要建立模型? 在软件开发过程中,建立软件模型具有十分重要的作用,主要体现在以下几个方面:

有助于问题的简化,通过抽象降低复杂性;

有助于和其他开发小组成员,各种用户以及系统相关者进行交流; 有助于维护人员了解软件设计的思路和细节,为以后的维护和升级提供了文档。第七章

1.面向对象分析包括哪些活动?应该建立哪些类型的模型?

面向对象分析OOA模型的过程包括理解用例模型、识别分析类、定义交互行为、建立分析类图、评审分析模型5个活动组成。

目标是建立一个符合问题域、满足用户需求的OOA模型。

2.什么是实体类、边界类和控制类?为什么将分析类划分成这3种类型?

实体类:用于描述必须存储的信息,同时描述相关的行为。实体类代表拟建系统中的核心信息。在RUP的有关文档中对实体类的解释为:“实体类是用于对必须存储的信息和相关行为建模的类。

边界类:在系统与外界之间,为它们交换各种信息与事件。边界类处理软件系统的输入和输出。在RUP的有关文档中对边界类的解释为:边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。

控制类:与业务过程相关,它们控制整个业务的流程和执行次序。在RUP的有关文档中对控制类的解释为:控制类用于对一个或几个用例所持有的控制行为进行建模。

控制类对象可以和边界对象交互,也可以和实体对象交互,但不能和用例的参与者直接进行交互。

第八章

l.什么是软件设计?它的目标和任务是什么?

软件设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能的实现。即把软件需求转换为软件包表示的过程。

目标:软件设计的最终目标是产生一个设计规约,该规约包括体系结构、描述数据、接口和构件的设计模型。

软件设计的任务,就是把分析阶段产生的软件需求规格说明转换为用适当手段表示的软件设计文档。

Z。完成良好的软件设计应遵循哪些原则?

模块化与模块独立性;抽象与逐步求精;信息隐藏。3•如何理解模块独立性?用什么指标来衡量模块独立性?

<}>模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。

一般采用两个准则度量模块独立性,即模块的内聚性和模块间的耦合性

4•说明软件设计阶段的任务和过程

软件设计分两步完成,即总体设计与详细设计。第个阶段是总体设计,即概要设计或初步设计。这、阶段主要确定实现目标系统的总体思想和设计框架,确定程序由哪些模块组成,以及模块与模块之间的关系,最后提出概要设计说明书。第二个阶段是详细设计,即过程设计或构件级设计,其任务是通过对结构表示进行细化,确定各个软件构件的详细数据结构和算法,产生描述各个软件构件的详细设计文档。

S.试说明软件体系结构在软件设计阶段中的重要性。

良好的体系结构设计是决定软件系统成功的重要因素。软件体系结构设计的好坏往往会成为一个系统设计成败的关键。通常,软件体系结构涉及软件的总体组织、全局控制、数据存取及子系统之间的通信协议等。

6。简述面向对象设计阶段要做的工作。、OOD主要包括三个方面的工作:系统体系结构设计、用例实现方案设计和用户界面设计。

第十一章

•简述程序设计语言的基本特征及分类。

基本特征包括心理特性,工程特性和技术特性三个方面。语言的的—心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功与否有重要的影响,此外语言的技术特性也会影响软件设计的质量

•按程序设计语言的历史发展过程,计算机语言可分为机器语言、汇编语言、高级程序设计语言。

•按与机器的依赖程度,可分为低级、中级和高级语言。

•按应用范围,可分为通用语言与专用语言两大类,通用语言义可细分为系统程序设计语言、科学计算语言、事务处理语言和实时控制语言等。

•按程序的设计方法,可分为命令性语言和作用性语言。

•按语言的成分,可以分成顺序语言、并行语言和实时语言等。

•按语言的组成方法,可以分成汇集式语言和可扩充语言。

2•为了具有良好的程序设计风格,应该注意哪些方面的问题?

要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。

3•什么是软件测试?软件I则试的原则有哪些?

软件测试是按照特定的规则,发现缺陷而执行程序的过程。一个好的测试用例是指尽可能找到迄今为止尚未发现缺陷的用例。一个成功的测试是指揭示了迄今为止尚未发现缺陷的测试。软件测试的原则:

(l)所有的测试都应该能追溯到用户需求。

(Z)应该在测试之前就制定出测试计划。

(3)Pareto原理可应用于软件测试。

(4)测试应从“小规模”开始,逐步转向“大规模”

(S)穷举测试是不可能的。

(6)既要做通过性测试,又要做失效性测试。

(D为了达到最佳的测试效果,应该由独立的第三方从事测试工作。

第十四章

1.为什么说软件维护是不可避免的?

因为软件的开发过程中,一般很难检测到所有的错误,其次软件在应用过程中需要随用户新的要求或运行环境的变化而进行软件的修改或纠正软件开发过程未发现的错误,增强、改进和完善软件的功能和性能,以适应软件的发展,延长软件的寿命,软件的维护是不可避免的。

2.什么是软件再工程?软件再工程的主要活动有哪些?

指在逆向工程所获信息的基础上修改重构已有的系统,产生的―个新版本,或者说利用这些信息修改或重构软件系统的工作。

它定义了6为活动r即库存目录分析、文档重构、逆向工程、代码重构、数据重构、正向工程。软件调试与软件测试有什么区别?

1、目的不同

软件测试的目的是发现错误,至于找出错误的原因和错误发生的地方不是软件测试的任务,而是调试的任务。调试的目的是为了证明程序的正确,因此它必须不断地挤除错误.它们的出发点不一样“前者是挑错,是一种挑剔过程,属于质盘保证活动。后者是排错,是-种排除过程,是编码活动的部分•

2、任务不同

既然软件测试属于质量保证活动,因此它贯穿十整个计发过程.从需求分析开始,就要制订软件测试计划,软件设计时要设计系统软件测试、集成侧试用例,编码阶段要设计单元软件测试用例并进行单元软件测试,软件测试阶段要进行集成软件测试、系统软件测试等,直到产品交付。只要有修改就有软件测试,产品交付后同样。它是比较有规律的活动,有系统的方法、原则作指导。

而调试是编码活动的部分,因此有编码就有调试它的任务主要就是排错。调试的方法经常与使用的开发工具有关,例如解释型的开发工具可以交互式调试,编译型开发工具就很难较好地查错。当然它有些启发式的方法,它是.种比较依赖开发人员经验的活动。

3、指导原则和方法不同

软件侧试是种有规律的活动,有一系列软件软件测试的原则.其中主要是制U侧试计划,然后严格执行。其次是种挑剔性行为,因此它不但要侧试软件应该做的,还需要侧试软件个应该做的事情。调试所遵循的规律主要是些启发式规则,是”个推理过程。例如使用归纳法、演绎法、回溯法等。

软件测试的输出是预知的,其软件测试用例必须包括预期的结果,而调试的输出大多是不可预见的,需要调试者去解释、去发现产生的原因。

4、操作者

因为心理状态是软件测试程序的障碍,所以执行软件测试的人一般不是开发人员,以使软件测试更客观、更有效,而调试人员一般都是开发人员•

5、操作环境、配置、工具不同

调试在开发的编码环境下进行。如果编码使用解释型语言,则可以进行人机交互式调试,设里断点、单步调试等。如果编码使用编译型语言,也可以设置断点、显示调试变量值等。而软件测试是在软件测试环境下进行,直接运行开发完成的程序,可能不再需要一些开发时的驱动程序、动态链接库等.使用不同的工具,环境配置也不同。

简答题,1.什么是软件工程?请分析软件工程的目标是什么?

答案:软件工程是:1将系统化的、规范的、可度量的方法应用于软件的升发、运行和维护过程,也就是说将工程化应用于软件开发和管理之中;2对1中所选方法的研究”

软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下: a)实现预期的软件功能,达到较好的软件性能,满足用户的需求。

b)增强软件过程的可见性和可控性,保证软件的质量。

c)提高所开发软件的可维护性,降低维护费用。

d)提高软件开发生产率,及时交付使用。

e)合理预算开发成本,付出较低的开发费用。

2.什么是软件危机?软件危机表现在哪几个方面?

由于软件特点和长期以来一直没有发明种高效的开发方法,导致软件生产效率非常低,交付期拖再拖,最终交付的软件产品在质量上很难保障。这种现象早在20世纪60年代被定义为“软件危机”。它的具体表现如下:

a)“已完成”的软件不满足用户的需求。

b)开发进度不能保障,交付时间.再拖延。

c)软件开发成本难以准确估算,开发过程控制困难造成开发成本超出预算。

d)软件产品的质量没有保证,运算结果出错、操作死机等现象屡屡出现。

e)软件通常没有适当的文档资料,或文档与最终交付的软件产品不符,软件的可维护程度非常低。

3.根据相关的法律,对于侵犯软件著作权的行为,根据情节应当给予什么处罚?

对于侵犯软件著作权的行为,要根据情况承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任;损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,并处罚款;情节严重的,著作权行政管理部门可以没收用子制作侵权复制品的材料、工具、设备等;触犯刑律的,依法追究刑事责任。

4根据你的理解,列举出职业化软件工程师要注意的三个主要问题,请给出理由。没有唯一答案。

1)不遵守标准和规范:职业化的重要特征是遵守行业标准,不能肆意按照自己的想象来发挥。自从人们认识到软件危机以来,总结软件开发的失败教训和成功经验,并把它们总结成为最佳实践,进而形成标准,要充分利用这些最佳实践和标准来指导软件过程。任何闭门造车、想当然的行为都是不被提倡的,注定要走弯路。

2)对待计划不严肃:软件工程强调计划性,计划的内容包括;设备资源、进度安排、人力资源、任务分配等等。在项目的进行中要跟踪计划执行情况,记录计划执行过程中的偏差,对任何变更都要经过评审和批准才能付诸行动。

3)不主动与人沟通:软件不可见的特性,需要软件工程师进行大量书面的、口头的或面对面的沟通,沟通的目的是为了使相关的人员了解项目的进展、遇到的问题、应用的技术、采用的方法。

5.软件工程为什么要强调规范化和文档化?.软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。

6.请简单说明结构化分析的主要步骤。

根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(lPO图),实体关系图。以初始数据流程图为基础,从数据流程图的输出端开始回溯。在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。系统分析人员与用户起对需求分析的结果进行复查。根据细化的需求修订开发计划。编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。

7.设计类的属性时必须要定义是哪两项?

设计类的属性时必须要定义的内容:

1)属性的类型:设计属性时必须要根据开发语言确定每个属性的数据类型•如果数据类型不够,设计人员可以利用已有的数据类型定义新的数据类型。

2)属性的可见性。在设计属性时要确定公有属性、私有属性、受保护属性。活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。活动图特别适合描述工作流和并行处理过程。具体地说活动图可以描述一个操作过程中需要完成的活动;描述一个对象内部的工作;描述如何执行组相关的动作,以及这些动作如何影响它们周围的对象;说明个业务活动中角色、工作流、组织和对象是如何工作的。

顺序图用于描述一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。

9面向对象的分析通常要建立三个模型,请问三个模型的作用?

a)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对

象方法中,由用例图和场景描述组成。

b)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构件对象模型的核心上具。

c)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。面向对象方法中,常用状态图、顺序图、合作图、活动图构件系统的动态模型。

10.面向对象的设计活动中,有构架师、用例工程师和构件师参加,他们每个角色的职责是什么?

构架设计的目的是要勾画出系统的总体结构,这项工作由经验丰富的构架设计师主持完成。该活动以用例模型、分析模型为输入,生成物理构架、子系统及其接口、概要的设计类(即设计阶段定义的类)。

根据分析阶段产生的高层类图和交互图,由用例设计师研究已有的类,将它们分配到相应的用例中。检查每个用例的功能,这些功能依靠当前的类能否实现,同时检查每个用例的.特殊需求是否有合适的类来实现。细化每个用例的类图,描述实现用例的类及其类之间的相互关系,其中的通用类和关键类可用粗线框区分,这些类将作为项目经理检查项目时的重点。

经过前面两个活动,构架设计师已经将系统的构架建立起来,用例设计师按照用例的功能将每个类分配给相应的用例。现在要由构件工程师详细设计每个类的属性、方法和关系。

11提高程序可读性有哪些招数?对你来讲比较灵验的是哪些?

a)源程序文件头说明,函数应有函数头说明,内容包括:程序标题;有关该模块功能和目的说明;主要算法说明;接O说明,包括调用形式、参数描述、子程序清单、有关数据的说明。

b)主要变量(结构、联合、类或对象)的定义能够反映其内在含义。

c)变量定义最规范化,说明的先后次序固定。

d)处理过程的每个阶段和典型算法前都有相关注释说明。

第二篇:软件工程总结

软件工程课程总结

摘要:

计算机是20世纪最重大的科学技巧成就之一,使当代社会的经济、军事、科研、教育、服务等方面在概念和技巧上发生了性的变化,对人类社会的进步已经并还将产生极为深刻的影响。目前,计算机是世界各发达国度剧烈竞争的科学技巧领域之一。

电子计算机早期功效主要是计算,后来已远远超越单纯计算的功效,还可模拟、思维、进行自适应反馈处理等等,把它叫做“电脑”更为合实际。由于电子计算机功效的飞跃性发展,应用于生产和生活的各个方面,直接和显著地提高了生产、工作和生活的效率、节奏和水平,在软科学研究和应用中它也起着关键作用,因此它已被公认是现代技巧的神经中枢,是未来信息社会的心脏和录魂。计算机学科分为四个领域,分别是计算机科学,计算机工程,软件工程和信息系统。

正文:

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。包括项目管理,分析,设计,程序的编写,测试和质量控制。它涉及到程序设计语言、数据库、软件开发工具、系统开发平台、标准、设计模式等方面。

学了《软件工程》这门课程和一些有关资料后,感觉一些东西都曾经接触过,但在实际工作中有些理论要完全遵循可能还有些障碍,软件工程只是提供了理论上的一些结论,但对项目的具体可操作性的规范的制定方面却做的很少,《软件工程》发展了几十年,光是开发模型就达到了10多种,对不同的项目采用合适的开发模式,有些项目在不同的开发阶段可能还要转换开发模式,把它们灵活的应用到实际中还是很困难的。

软件技术是信息技术产业的核心之一,软件技术的发展是与信息技术产业的发展互相促进的。当今世界,信息技术正处于新一轮重大技术突破的前夜。预计今后 20~30 年是信息科学技术的变革突破期,可能导致 21 世纪下半叶一场新的信息技术革命。近年来,从 IT 界到一些国家首脑,都高度关注以物联网为标志的新一轮信息技术的发展态势,认为这是继 20 世纪 80 年代 PC 机、90 年代互联网、移动通信网之后,将引发 IT 业突破性发展的第三次 IT 产业化浪潮。每一次重大的技术变革都会引起企业间、产业间甚至国家间竞争格局的重大变化,也促进了软件技术与软件产业的重大变革与发展。

近年来,信息技术、软件技术、软件系统与软件产业的发展备受关注,已有不少论述、分析与判断。近10 年内网络技术经历宽带化、移动化和三网融合将走向基于 Ipv6 的下一代互联网,2010 年 1 月,国家 863 计划信息技术领域办公室和国家 863 计划信息技术领域专家组,在上海举办“信息-物理融合系统 CPS发展战略论坛”,提出“信息-物理融合系统 CPS 是一个综合计算、网络和物理环境的多维复杂系统,是信息和物理世界的深度的融合交互,可实现大型工程系统的实时感知、动态控制和信息服务,使系统更加可靠、高效与实时协同,使得人类物理现实和虚拟逻辑逐步融合,具有重要而广泛的应用前景。业界关于软件工程的代表性观点创立与使用健全的工程原则,以便经济地获得可靠且高效率的软件。应用系统化,遵从原则,可被计量的方法来发展、操作及维护软件;也就是把工程应用到软件上。与开发、管理及更新软件产品有关的理论、方法及工具。一种知识或学科,目标是生产品质良好、准时交货、符合预算,满足用户所需的软件。实际应用科学知识在设计、建构电脑程序,与相伴而来所产生的文件,以及后续的操作和维护上。

6使用与系统化生产和维护软件产品有关之技术与管理的知识,使软件开发与修改可在有限的时间与费用下进行。

7建造由工程师团队所开发之大型软件系统有关的知识学科。对软件分析、设计、实施及维护的一种系统化方法。系统化地应用工具和技术于开发以计算机为主的应用。

10软件工程是关于设计和开发优质软件。

《软件工程》是一门综合性和实践性很强的核心课程,它属于是一门交叉学科,包含有:软件开发技术(软件开发方法学、软件开发过程、软件工具和软件工程环境)、软件工程管理(软件管理学、软件经济学、软件心理学)。主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件测试、项目计划与管理。

本课程是面向准备从事软件开发的毕业生而开设的一门专业课程。针对计算机教学中软件工程这一薄弱环结,结合目前软件开发商对人才的要求,对计算机专业的毕业生进行软件工程强化培训,目的是使毕业生能够了解和掌握软件工程的基本理论和方法,并在实际软件开发中运用这些方法。

我理解,软件工程是按照工程学的管理方式,有组织、有计划的,在一定的质量基础、时间限度和成本范围内,实现功能明确的软件系统。而且,软件工程在企业范围内运行,一定需要企业资源的支持,要与企业的经营、决策、管理体系联系在一起,才能够被踏踏实实的落实下来。

软件工程项目是一个需要一步一步的计算,分析思考而来的,需要不断思考,研究不断进步,软件业作为一个服务业,要想得到发展,首先必须形成一个对软件服务有迫切需要的市场。其次,这个市场中的消费者必须具备足够的购买力。软件的消费群体简单一点,可以分为个体消费和企业消费。中国的企业群体,数量庞大,但是质量不高。上规模的企业极少。国内目前能够形成比较大规模的独立市场的,肯定是小规模的软件系统。

随着信息化时代的到来其地位越来越受到人们的重视,软件工程从一个学科,或是某一个研究方向来说,人员仅仅是过程,方法的执行者,所以人员素质往往被忽略,软件工程是一门实践性很强的学科,所以在实际的软件研究过程中,人员的素质占有很重要的地位。要有出色的软件问世,研发人员的素质至关重要!

作为软件工程的学习者应该不断创新,不断尝试、实践,不断研究和学习,中国的软件工程技术依旧滞后于国外一些软件工程技术,作为新一代的学习者应该担当起振兴起中国软件事业,使中国科技得到高速发展!

现在已经是信息化时代,信息化潮流不断涌现,想要掌握主动权就是掌握信息化的发展方向,这就需要我们不断学习,时间,研究,学习国外的先进技术,转变自己的技术,然后融合,创新。

软件技术不是一成不变的,是随着社会的进步的不断进步,不需要不断的创新,不断的改善的,需要我们不断的学习,不断的研究,不断进步。

第三篇:软件工程总结

1.Software is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b 2.WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.Answer: b 3.Software engineering umbrella activities are only applied during the initial phases of software development projects.Answer: b 4.Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.Answer: a 5.The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.Answer: a 6.In agile process models the only deliverable work product is the working program.Answer: b 7.A most software development projects are initiated to try to meet some business need.Answer: a 8.In general software only succeeds if its behavior is consistent with the objectives of its designers.Answer: b 9.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.Answer: a 10.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.Answer: b 11.It is generally accepted that one cannot have weak software processes and create high quality end products.Answer: a 1.Requirements engineering is a generic process that does not vary from one software project to another.Answer: a 2.A stakeholder is anyone who will purchase the completed software system under development.Answer: b 3.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.Answer: a 4.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.Answer: a 5.Use-case actors are always people, never system devices.Answer: b 6.Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.Answer: a 7.In win-win negotiation, the customer’s needs are met even though the developer’s need may not be.Answer: b 8.In requirements validation the requirements model is reviewed to ensure its technical feasibility.Answer: b

1.Object-oriented domain analysis is concerned with the identification and specification of reusable capabilities within an application domain.Answer: a 2.In structured analysis models focus on the structure of the classes defined for a system along with their interactions.Answer: b 3.Creation and refinement of use cases if an important part of scenario-based modeling.Answer: a 4.It is important to consider alternative actor interactions when creating a preliminary use case.Answer: b 5.Brainstorming is one technique that may be used to derive a complete set of use case exceptions.Answer: a 6.In many cases there is no need to create a graphical representation of a usage scenario.Answer: a 7.One or more attributes of a data object must be defined as a key to allow the location of an instance of the data object.Answer: a 8.Attributes are chosen for an object by examining the problem statement and identifying the entities that appear to be related.Answer: b 9.An analysis package involves the categorization of analysis model elements into useful groupings.Answer: a 10.The data flow diagram must be augmented by min-spec that can serve as a guide the design of the software component that will implement the process.Answer: a 11.The UML sequence diagram show the order in which system events are processed.Answer: b 12.Analysis patterns are discovered, they are not explicitly created.Answer: a 13.It is not possible to justify the time required for WebApp requirements analysis.Answer: b 14.UML activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis class.Answer: a 15.Configuration analysis focuses on the architecture of the user’s web browsing environment.Answer: b 16.Content objects are extracted from use cases by examining the scenario description for direct or indirect content references.Answer: a 1.With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.Answer: b 2.Program flow graphs are identical to program flowcharts.Answer: b 3.The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.Answer: a 4.Graph-based testing methods can only be used for object-oriented systems Answer: b 5.Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.Answer: a 6.Boundary value analysis can only be used to do white-box testing.Answer: b 7.Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.Answer: a 8.Client/server architectures cannot be properly tested because network load is highly variable.Answer: b 1.The best representation of system architecture is an operational software prototype.Answer: b 2.The architectural representations can be an enabler for communication among project stakeholders.Answer: a 3.An architectural description is often documented using an architecture template.Answer: b 4.An architectural genre will often dictate the architectural approach that may used for the structure to be built.Answer: a 5.Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.Answer: b 6.Once selected, archetypes always need to be refined further as architectural design proceeds.Answer: a 7.Quantitative methods for assessing the quality of proposed architectural designs are readily available.Answer: b

Chapter 10 Self-Check Quiz

1.In the most general sense a component is a modular building block for computer software.a.True b.False

Answer: a(Section 10.1)

2.In the context of object-oriented software engineering a component contains

a.attributes and operations b.instances of each class c.roles for each actor(device or user)d.set of collaborating classes

Answer: d(Section 10.1.1)

3.In traditional software engineering modules must serve in which of the following roles?

a.Control component b.Infrastructure component c.Problem domain component d.All of the above

Answer: d(Section 10.1.2)

4.Software engineers always need to cerate components from scratch in order to meet customer expectations fully.a.True b.False

Answer: b(Section 10.1.3)

5.Which of the following is not one of the four principles used to guide component-level design?

a.Dependency Inversion Principle b.Interface Segregation Principle c.Open-Closed Principle d.Parsimonious Complexity Principle

Answer: d(Section 10.2.1)

6.The use of stereotypes can help identify the nature of components at the detailed design level.a.True b.False

Answer: a(Section 10.2.2)

7.Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.a.True b.False

Answer: a(Section 10.2.3)

8.Software coupling is a sign of poor architectural design and can always be avoided in every system.a.True b.False

Answer: b(Section 10.2.4)

9.WebApp content design at the component level focuses on content objects and the manner in which they interact.a.True b.False

Answer: b(Section 10.4.1)

10.A WebApp functional architecture describes the key functional components and how they interact with each other.a.True b.False

Answer: a(Section 10.4.2)

11.Which of these is a graphical notation for depicting procedural detail?

a.box diagram b.decision table c.ER diagram d.flowchart

Answer: d(Section 10.5.1)

12.A decision table should be used

a.to document all conditional statements b.to guide the development of the project management plan c.only when building an expert system d.when a complex set of conditions and actions appears in a component

Answer: d(Section 10.5.2)

13.A program design language(PDL)is often a

a.combination of programming constructs and narrative text b.legitimate programming language in its own right c.machine readable software development language d.useful way to represent software architecture

Answer: a(Section 10.5.3)

14.In component-based software engineering, the development team examines the requirements to see which are amenable to composition, rather than construction, before beginning detailed design tasks.a.True b.False

Answer: a(Section 10.6)

15.Which of the following is not one of the major activities of domain engineering?

a.analysis b.construction c.dissemination d.validation

Answer: d(Section 10.6.1)

16.Which of the following factors would not be considered during component qualification?

a.application programming interface(API)b.development and integration tools required c.exception handling d.testing equipment required

Answer: d(Section 10.6.2)

17.Which is the following is a technique used for component wrapping?

a.black-box wrapping b.clear-box wrapping c.gray-box wrapping d.white-box wrapping

Answer: b(Section 10.6.2)

18.Which of the following is not one of the issues that form a basis for design for reuse?

a.object-oriented programming b.program templates c.standard data d.standard interface protocols

Answer: a(Section 10.6.3)

19.In a reuse environment, library queries are often characterized using the ________ element of the 3C Model.a.concept b.content c.context d.all of the above

Answer: c(Section 10.6.4)

1.The importance of software design can be summarized in a single word a.b.c.d.Answer: d(Section 8.1)

2.Which of the following is not a characteristic common to all design methods?

a.configuration management b.functional component representation c.quality assessment guidelines d.refinement heuristics

Answer: a(Section 8.2.2)

3.Which of the following can be used to represent the architectural design of a piece of software?

a.Dynamic models b.Functional models c.Structural models d.All of the above

Answer: d(Section 8.3.2)

4.Design patterns are not applicable to the design of object-oriented software?

a.True b.False

Answer: b(Section 8.3.3)

5.Since modularity is an important design goal it is not possible to have too many modules in a proposed design.a.True b.False

Answer: b(Section 8.3.5)

6.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.accuracy complexity efficiency quality

a.True b.False

Answer: a(Section 8.3.6)

7.Cohesion is a qualitative indication of the degree to which a module

a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: b(Section 8.3.7)

8.Coupling is a qualitative indication of the degree to which a module

a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: d(Section 8.3.7)

9.When using structured design methodologies the process of stepwise refinement is unnecessary.a.True b.False

Answer: b(Section 8.3.8)

10.Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.a.True b.False

Answer: a(Section 8.3.10)

11.Which of the following is not one of the five design class types

a.Business domain classes b.Entity classes c.Process classes d.User interface classes

Answer: b(Section 8.3.13)

12.Which design model elements are used to depict a model of information represented from the user’s view?

a.Architectural design elements b.Component-level design elements c.Data design elements d.Interface design elements

Answer: c(Section 8.4.1)

13.Which design is equivalent to the floor plan of a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: a(Section 8.4.2)

14.Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: d(Section 8.4.3)

15.Which design model is equivalent to a set of detailed drawings for each room in a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: b(Section 8.4.4)

16.The deployment design elements specify the build order for the software components.a.True b.False

Answer: b(Section 8.4.5)

第四篇:软件工程总结

第一章软件与软件工程的概念

软件的概念:软件是计算机系统中与硬件相互依存的另一部分,软件包括程序,数据,及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列。数据是使程序能够正确地处理信息的数据结构。文档是与程序开发,维护和使用有关的图文资料。

程序的最小单位是函数及子程序,程序与数据是分离的,在面向对象程序设计时代,程序的最小单位是类,在类中封装了相关的数据及指令代码。

软件的特性,判断正误:1.软件是无形的、不可见的逻辑实体,因此,软件是无法描述的。(错)

2、软件的开发特性是指软件需要大量手工劳动,难以自动化生产。(对)

3、有缺陷的软件就是废品。(错)

4、软件的生产指的是软件的复制。(错)

5、由于软件的开发充满人的个性特点,因此管理并不决定软件开发的成败(错)。

6、软件的开发环境往往就是软件的运行环境,或者与其兼容。(对)

7、合格的软件产品不需要维护,软件需要维护说明其质量不合格。(错)

8、软件可以不断改进,因此软件不需要废弃。(错)

软件的分类:1,系统软件:能与计算机硬件紧密配合在一起,使计算机系统各个部件,相关的软件和数据协调,高效的工作的软件。2,应用软件,是在系统软件的支持下,在特定区域内开发,为特定目的服务的一类软件。3,支撑软件,也叫工具软件,是协助用户开发软件的工具性软件。4,可复用软件,最初实现的典型的可复用软件是各种标准函数库,通常是由计算机厂商提供的系统软件的一部分。

IEEE给出的定义:软件工程是开发,运行,维护和修复软件的系统方法。软件的定义:计算机程序,方法,规则,相关的文档资料一集在计算机上运行时所必需的数据。

软件危机的典型表现

1、成本太高,预算不准

2、超过预计时间

3、软件质量标准不明确

4、生产率低

5、缺乏文档资料,难以维护。原因:1,缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。2.软件人员与用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法及需求描述工具。3,软件开发过程不规范,缺少方法和规范的指导。4,随着软件规模的增大,其复杂性往往会呈指数级升高。5,缺少有效的软件评测手段,提交用户的软件质量差。

软件危机发生的主要原因有:

1、遇到了无法解决的高难度技术问题(不是)

2、无法招聘到足够的编程高手(不是)

3、软件人员与用户互相不理解(是)

4、计划和管理不科学、落实不力(是)

5、软件质量标准不明确(是)

软件的质量特性包括(选择)问题1:

1、功能性

2、可靠性

3、使用性

4、经济性(不包括)

软件的质量特性包括(选择)问题2:

1、效率

2、可维护性

3、可移植性

4、经济性(不包括)

软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期,较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。软件生存期:软件的孕育,诞生,成长,成熟,衰亡的生存过程。软件生存期由软件定义,软件开发和运行维护三个时期组成,每个时期又可划分为若干个阶段。

2、软件定义时期的任务主要任务是解决“做什么”的问题,确定工程的总目标和可行性;实现工程目标的策略及系统功能;估计需要的资源和成本;制订工程进度表。通常又分为3个阶段:问题定义,可行性研究,需求分析。

3、软件开发时期的任务和包含阶段主要任务是解决“如何做”的问题,设计和实现定义的软件。由概要设计、详细设计、编码和测试4个阶段组成。

4、软件运行维护时期的主要任务是使软件持久地满足用户的需要,通常有4类维护活动:改正性维护;适应性维护;完善性维护;预防性维护。开发过程中的典型文档:软件需求规格说明书。项目计划。软件测试计划。软件设计说明书。用户手册。软件工程各个阶段的基本任务

1、问题定义与可行性研究:解决什么问题?能否解决问题?是否值得做?”

2、需求分析:做什么

3、软件设计:如何实现

4、程序编码和单元测试:实现设计

5、集成和系统测试:组装连接测试、功能验证测试

6、软件运行和维护:修改 第二章软件工程方法与工具

软件工具:是指能支持软件生存周期中某一阶段(如系统定义,需求分析,设计,编码,测试,维护等)的需要而使用的软件工具。

需求分析工具

1、结构化图形工具箱。通过数据流程图DFD进行功能分析。包括DFD图形工具,实体-关系图(E-R)图形工具,Jackson图形工具,Warnier图形工具,Visio综合工具,2、面向对象工具,Rational Rose,PowerDesigner,Visio 设计工具(1)概要设计工具:设计目标软件的体系结构、控制结构和数据结构。软件的体系结构通常用模块结构图来描述。模块的数据结构通常用实体-关系图来描述。Visio。Rational Rose 详细设计工具。设计模块的算法和内部实现细节。详细设计描述方法有输入-处理-输出(IPO)图。问题分析图(PAD)。盒图(NS图)。流程图(FC)。程序设计语言(PDL)。结构化语言。判定表。判定树

第三章软件需求获取与结构化分析方法 需求获取的主要任务是与用户沟通,了解系统或产品的目标是什么,客户或用户想要实现什么,系统和产品如何满足业务的要求,最终系统或产品如何用于日常工作。获取并理解用户的需求是软件工程师所面对的最困难的任务之一。

需求分析的困难体现:系统的目标或范围问题;需求不准确性问题;需求的易变问题

需求获取的任务:发现和分析问题,并分析问题的原因,结果关系。与用户进行各种方式的交流,并使用调查研究方法收集信息。按照三个成分即数据,过程和接口观察问题的不同侧面。将获取的需求文档化,形式有用例,决策表,决策树等。需求获取的原则:深入浅出,以流程为主线。

获取具体的需求的途径1,与用户交流。2,现有产品或竞争产品的描述文档。3,系统需求规格说明。4,当前系统的问题报告和改进要求。5,市场调查和用户问卷调查。6,观察用户如何工作。

关于需求获取问题的认识辨析:

1、没有与用户交流就不可能获取系统需求。(不能获取准确、全面的系统需求)

2、没有经过与用户交流而获取的需求都是不真实的需求。(一些需求从用户以外的途径获取)

3、系统开发必须独立完成,参考类似系统及技术文档属于抄袭行为,应予避免。(系统开发包含研究行为,应了解对手产品,取长补短)

4、系统开发包含改进当前系统的缺陷和不足。(对)

5、需求调查时,用户所说的需求未必是真实、准确的需求,因此需求分析需要依赖用户,但是不能过分迷信用户。(对,需求描述是困难的)

6、观察用户如何工作也是一种需求调查行为。(对)

软件需求分析阶段的任务:需求获取,需求分析,需求定义,需求验证。完整性,正确性,合理性,可行性,充分性。

结构化分析方法:是一种建模技术。核心是数据字典。

功能模型用数据流图(DFD)来描述使用实体—关系图(ER图)建立数据模型。使用状态转换图(简称状态图)建立系统行为模型。数据字典。加工规格说明。需求建模的依据是需求描述

数据建模,ER图,需要认真看。

第四章结构化设计方法

结构化设计方法是在模块化,自顶向下逐步细化及结构化程序设计技术基础上发展起来的,结构化设计方法可分为两类:一类是根据系统的数据流进行设计,称为面向数据流的设计,或称过程驱动设计,另一类是根据系统的数据结构进行设计,称为面向数据结构的设计,或称数据驱动的设计。

软件的体系结构设计,模块化设计都是分而治之策略的具体表现。模块化是将整体软件划分为独立命名且可独立访问的模块,不同的模块通常具有不用的功能或指责,每个模块可独立开发,测试,最后组装成完整的软件。模块是构成软件的基本构件。模块并不是越小越好,当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了,但是随着模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加。

模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而与软件系统中其他模块的接口是简单的,若一个模块只具有单一的功能且与其他模块没有太多的联系,那么称此模块有独立性。

自顶向下,逐步细化:抽象是指忽视一个主题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面,当我们进行软件设计时,设计开始时应尽量提高软件的抽象层次,按抽象级别从高到低进行软件设计,将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确定整个系统的体系结构,这就是自顶向下逐步细化过程。

复用是指同一事物不做修改或稍加修改就可以多次重复使用,将服用的思想用于软件开发,称为软件复用。1是尽量使用已有的构件。2是如果确实需要创建新的构件,则在设计时应该考虑将来的可重复使用性。软件设计的阶段与任务:从工程管理的角度,可以将软件设计分为概要设计阶段和详细设计阶段。从技术的角度,传统的结构化方法将软件设计划分为体系结构设计、数据设计、接口设计和过程设计4部分;概要设计包括体系结构设计、数据设计、接口设计。详细设计即过程设计,对结构表示进行细化,得到软件详细的数据结构和算法。

软件设计各项设计工作的依据:体系结构设计,定义软件模块及其之间的关系,依赖于数据流图。数据设计,依赖于ER图。接口设计,依赖于顶层数据流图。过程设计:依赖于加工规格说明、状态图

基于数据流方法的设计过程:1.复查并精化数据流图。2.确定数据流图中数据流的类型,典型的数据流类型有变换型数据流和事务型数据流。3.导出初始的软件结构图。4.逐级分解。5.精化软件结构。6.导出接口描述和全局数据结构。

软件模块结构的改进方法:1,模块功能的完善化。2,消除重复功能,改善软件结构。3,模块的作用范围应在控制范围之内。4,尽可能减少高扇出结构,随着深度增大扇入。5,避免或减少使用病态连接。6,模块的大小要适中。接口设计的依据是数据流图中的自动化系统边界。

自顶向下,逐步细化的设计过程主要包括两个方面:一是将复杂问题的解法分析和细化成由若干个模块组成的层次结构,二是将每个模块的功能逐步分解细化为一系列的处理。第五章编码

编码容易出现的风格不足

1、变量或函数名字缺乏具体含义

2、变量或函数名字与其用途不符

3、变量或函数未加上必要的注释

4、函数未说明其功能、参数的意义

5、引用的符号未加以解释和说明

6、对循环等重要的程序语句未注释

7、对用到的重要库函数没有解释说明

8、对结构体等复杂数据结构的组成成分没有解释说明

9、缺乏必要的提示语句 第六章软件测试方法

软件测试是在软件投入生产性运行之前,对软件需求分析,设计规格说明和编码的最终复审,是软件质量控制的关键步骤。软件测试是为了发现错误而执行程序的过程。

第五篇:软件工程总结

一、软件工程概述

1.软件特点

软件:计算机程序(人们为了实现特定的功能而编制的一组指令集),软件文档,以及计算机程序运行时所需要的数据。

软件是计算机系统中的逻辑成分,具有无形性,可复用性。

2.软件分类(1)按功能划分:系统软件、支撑软件、应用软件。(2)按工作方式划分:实时处理软件、分时处理软件、交互式软件、批处理软件。(3)按规模划分:微型软件、小型软件、中型软件、大型软件。(4)按服务对象划分:通用软件、定制软件。3.软件发展阶段(1)程序设计时代(20世纪50年代)。(2)程序系统时代(20世纪60年代)。(3)软件工程时代(20世纪70年代起)。4.软件危机

(1)危机现象:软件开发成本与进度估计不准确,软件产品与用户要求不一致,软件产品质量可靠性差,软件文档不完整不一致,软件产品可维护性差,软件生产率低。

(2)危机原因:科学的工程化思想组织和指导,完善的质量保证体系,软件文档的不重视,软件的不可见性,系统规模庞大,生产工程化程度低,对用户需求关心不 够,对维护不够重视,开发工具自动化程度低。5.软件工程

软件工程:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必须的相关文件资料。软件工程是一门关于软件开发与维护的工程学科,它涉及软件生产的各个方面,能够为经济、高效地开发高质量的软件产品提供最有效的支持。

软件工程的目标:控制成本,满足需求,提高质量,提高可靠性,是产品易于维护,移植,升级和使用,控制开发周期。

(1)工程方法:结构化方法、JSD方法、面向对象方法。(2)软件工具:具有自动化特征的软件开发集成支撑环境。(3)工程过程:在软件工具支持下的一系列工程活动,基本活动是软件定义、软件开发、软件验证、软件维护。(4)工程管理:项目规划,项目资源调配,软件产品控制。(5)工程原则:分阶段生命周期计划,阶段评审制度,严格的产品控制,采用先进的技术,成果能清楚地审查,开发队伍精练,不断改进工程实践。(6)工程目标:开发成本较低,软件功能能满足用户需求,软件性能较好,软件可靠性高,软件易于使用、维护与移植,能按时完成开发任务并及时交付使用。(7)工程文化:包括工程价值、工程思想和工程行为三个方面的内容。

二、软件工程过程模型 1.软件生命周期 如同任何事物都有一个发生、发展、成熟直至衰亡的全过程一样,软件系统或软件产品也有一个定义、开发、运行维护直至被淘汰这样的全过程,我们把软件将要经历的这个全过程称为软件的生命周期。它包含:软件定义、软件开发、软件运行维护三个时期,并可以细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统 2 集成测试、系统确认验证、系统运行与维护等几个阶段。

软件定义期 软件定义是软件项目的早期阶段,主要由软件系统分析人员和用户合作,针对有待开发的软件系统进行分析、规划和规格描述,确定软件是什么,为今后的软件开发做准备。这个时期往往需要分阶段地进行以下几项工作。1.软件任务立项 软件项目往往开始于任务立项,并需要以“软件任务立项报告”的形式针对项目的名称、性质、目标、意义和规模等作出回答,以此获得对准备着手开发的软件系统的最高层描述。2.项目可行性分析 在软件任务立项报告被批准以后,接着需要进行项目可行性分析。可行性分析是针对准备进行的软件项目进行的可行性风险评估。因此,需要对准备开发的软件系统提出高层模型,并根据高层模型的特征,从技术可行性、经济可行性和操作可行性这三个方面,以“可行性研究报告”的形式,对项目作出是否值得往下进行的回答,由此决定项 目是否继续进行下去。3.制定项目计划 在确定项目可以进行以后,接着需要针对项目的开展,从人员、组织、进度、资金、设备等多个方面进行合理的规划,并以“项目开发计划书”的形式提交书面报告。4.软件需求分析 软件需求分析是软件规格描述的具体化与细节化,是软件定义时期需要达到的目标。需求分析要求以用户需求为基本依据,从功能、性能、数据、操作等多个方面,对软件系统给出完整、准确、具体的描述,用于确定软件规格。其结果将以“软件需求规格说明书”的形式提交。在软件项目进行过程中,需求分析是从软件定义到软件开发的最关键步骤,其结论不仅是今后软件开发的基本依据,同时也是今后用户对软件产品进行验收的基本依据。软件开发期 在对软件规格完成定义以后,接着可以按照“软件需求规格说明书”的要求对软件实施开发,并由此制作出软件产品。这个时期需要分阶段地完成以下几项工作。1.软件概要设计 概要设计是针对软件系统的结构设计,用于从总体上对软件的构造、接口、全局数据结构和数据环境等给出设计说明,并以“概要设计说明书”的形式提交书面报告,其结果将成为详细设计与系统集成的基本依据。模块是概要设计时构造软件的基本元素,因此,概要设计中软件也就主要体现在模块的构成与模块接口这两个方面上。结构化设计中的函数、过程,面向对象设计中的类、对象,它们都是模块。概要设计时并不需要说明模块的内部细节,但是需要进行全部的有关它们构造的定义,包括功能特征、数据特征和接口等。在进行概要设计时,模块的独立性是一个有关质量的重要技术性指标,可以使用模块的内聚、耦合这两个定性参数对模块独立性进行度量。2.软件详细设计 设计工作的第二步是详细设计,它以概要设计为依据,用于确定软件结构中每个模块的内部细节,为编写程序提供最直接的依据。详细设计需要从实现每个模块功能的程序算法和模块内部的局部数据结构等细节内容 3 上给出设计说明,并以“详细设计说明书”的形式提交书面报告。3.编码和单元测试 编码是对软件的实现,一般由程序员完成,并以获得源程序基本模块为目标。编码必须按照“详细设计说明书”的要求逐个模块地实现。在基于软件工程的软件开发过程中,编码往往只是一项语言转译工作,即把详细设计中的算法描述语言转译成某种适当的高级程序设计语言或汇编语言。为了方便程序调试,针对基本模块的单元测试也往往和编码结合在一起进行。单元测试也以“详细设计说明书”为依据,用于检验每个基本模块在功能、算法与数据结构上是否符合设计要求。4.系统集成测试 所谓系统集成也就是根据概要设计中的软件结构,把经过测试的模块,按照某种选定的集成策略,例如渐增集成策略,将系统组装起来。在组装过程中,需要对整个系统进行集成测试,以确保系统在技术上符合设计要求,在应用上满足需求规格要求。5.系统确认验证 在完成对系统的集成之后,接着还要对系统进行确认验证。系统确认验证需要以用户为主体,以需求规格说明书中对软件的定义为依据,由此对软件的各项规格进行逐项地确认,以确保已经完成的软件系统与需求规格的一致性。为了方便用户在系统确认期间能够积极参入,也为了系统在以后的运行过程中能够被用户正确使用,这个时期往往还需要以一定的方式对用户进行必要的培训。在完成对软件的验收之后,软件系统可以交付用户使用,并需要以“项目开发总结报告”的书面形式对项目进行总结。

软件运行与维护期 软件系统的运行是一个比较长久的过程,跟软件开发机构有关的主要任务是对系统进行经常性的有效维护。软件的维护过程,也就是修正软件错误,完善软件功能,由此使软件不断进化升级的过程,以使系统更加持久地满足用户的需要。因此,对软件的维护也可以看成为对软件的再一次开发。在这个时期,对软件的维护主要涉及三个方面的任务,即改正性维护、适应性维护和完善性维护。2.瀑布模型 瀑布模型诞生于20世纪70年代,是最经典的并获得最广泛应用的软件过程模型。瀑布模型中的“瀑布”是对这个模型的形象表达,即山顶倾泻下来的水,自顶向下、逐层细化。(1)特点:线性化模型、阶段具有里程碑特征、基于文档的驱动、阶段评审机制。(2)作用:为软件项目按规程管理提供了便利,为其他过程模型的推出提供了一个良好的 拓展平台。(3)局限性:主要适合于需求明确且无大的需求变更的软件开发,但不适合分析初期需求 模糊的项目。3.原型模型(1)快速原型方法:是原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求上的模糊认识,或用来试探某种设计是否能够获得预期结果。(2)原型进化模型:针对有待开发的软件系统,先开发一个原型给用户使用,然后根据用 户的使用意见,对原型不断修改,使它逐步接近,并最终到达开发目标。

下载软件工程总结(五篇模版)word格式文档
下载软件工程总结(五篇模版).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    软件工程总结

    软件工程的定义:软件工程是将系统化的,规范化的,可度量的方法应用于软件的开发,运行和维护过程,即将工程化应用于软件中的方法的研究。软件工程的定义2:开发运行,维护和修复软件的......

    软件工程期末考试总结

    一、 1、1968年“软件工程”诞生。 2、软件定义:软件是程序、数据 相关文档的完整结合。其中,程序是能够完成预订功能和性能的可执行的指令序列;数据是使程序能够适当的处理信......

    软件工程知识点总结

    软件工程知识点总结 软件工程知识点总结 1.软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2.软件危机产生的原因:1.软件本身的复杂性、难衡量的特点;2.......

    软件工程实习总结

    一.实习题目c/s模式下的网络游戏平台(类似于联众)二.题目要求a.平台上至少能够提供两种游戏(仅供两人参加)供用户选择。b. 服务器端实现用户账号、密码的管理,监控用户上下线状态......

    软件工程考点总结[精选合集]

    第一章 1.软件是程序和所使程序正确运行所需的相关文档和配置信息.软件工程是一门工程学科,涉及软件生产的各个方面.软件过程是指制作软件产品的一组活动及其结果。 2.软件过......

    软件工程知识点总结

    软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。是一门指导软件系统开发的工程学科,它以计算机理论及其他学科为指导,采用工程化的概念、原......

    软件工程知识点总结

    第二章软件生命周期和过程模型 2.1软件生命周期是什么?分为哪几个阶段?每个阶段干什么? 2.2.1瀑布模型 1、软件生命周期是指软件产品从考虑其概念开始到交付使用,直至最终退役为......

    软件工程学习总结

    软件工程学习总结通过一个学期系统的学习软件工程这门课,结合与小组成员一起开发设备管理系统的经验,让我对软件的开发有了更深的了解,学习到每一个软件的开发都不仅仅是写代码......