文档库 最新最全的文档下载
当前位置:文档库 › 软件工程导论知识点总结

软件工程导论知识点总结

软件工程导论知识点总结
软件工程导论知识点总结

《软件工程导论》课后习题答案

第一章软件工程概论

1.什么是软件危机?

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这

些问题表现在以下几个方面:

(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.为什么会产生软件危机?

(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?

(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

4.构成软件项目的最终产品:

应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?

软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。

6.软件生存周期为什么划分成阶段?

(1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

(2) 可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。

(3) 使软件开发的全过程以一种有条不紊的方式进行,保证软件的质量,特别是提高了软件的可维护性。

7.应该怎样来划分阶段?

(1)每一个阶段的任务尽可能独立;

(2)同一阶段内的任务性质尽可能相同;

(3)每一个阶段任务的开始和结束有严格的标准。

8.软件开发模型有几种?它们的开发方法有可特点?

软件开发模型有瀑布型、渐增型和变换型。

瀑布型开发方法是按照软件生存周期的划分依次实施,每一个阶段有明确规定的任务。它的特点:

(1)各个阶段的顺序性和依赖性;

(2)划分逻辑设计与物理设计,尽可能推迟程序的物理实现;

(3)每个阶段必须完成规定的文档,对其中问题通过复审及早发现,及早解决。

渐增型开发方法及特点:

(1) 从部分需求出发,先建立一个不完全的系统,通过测试运行该系统取得经验和信息反馈,加深对软件需求的理解,进一步使系统扩充和完善。如此反复,直至软件人员和用户对所设计完成的软件系统满意为止。

(2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。

(3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善系统。多数研究性质的试验软件,一般采用此方法。

变换型开发方法及特点:

(1)从软件需求的形式化说明出发,经过一系列的程序变换,得到最终的程序系统。

(2)该方法必须有严格的数学理论和形式化技术的支持。

9.什么是软件工程?

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

(1) 它采用工程的概念、原理、技术和方法来开发和维护软件;

(2) 它将管理技术与当前经过时间考验的而证明是正确的技术方法结合起来;

(3) 它强调使用生存周期方法学和结构分析和结构技术;

(4) 经过人们长期的努力和探索,围绕着实现软件优质高产这个目标,从技术到管理两个方面做了大量的努力,逐渐形成了"软件工程学"这一新的学科。

10.什么是软件工程环境:

方法与工具的结合,加上配套的软、硬件支持称为软件工程环境。它能支持开发者按照软件工程的方法,全面完成生存周期中的各项任务。

第二章可行性研究

1. 问题定义的任务和主要工作?

问题定义的任务:将用户提出的要求具体化、定量化;确定研制系统的范围,明确研制的边界。

问题定义阶段的工作:

(1) 通过调查研究,了解系统需求;

(2) 确定系统的功能需求、性能需求、可靠性需求、安全及保密性、资源、开发费用及开发进度等的需求;

(3) 问题定义阶段的产品--系统目标与范围说明书。

2. 可行性研究目的?

确定在问题定义中所提出的问题是否值得去解,在限制条件下,问题能否解决。

3.可行性研究的任务?

(1) 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;

(2) 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建议;

(3) 如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,并为工程制定一个初步的计划。

4.可行性研究包括哪几方面的内容?

(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;

(2)经济可行性:经济效益是否超出开发成本;

(3)操作可行性:系统操作在用户内部行得通吗?

(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。

5.可行性研究的步骤?

(1)复查系统的规模和目标;

(2)研究目前正在使用的系统,总结现有系统的优劣,提出新系统的雏形;

(3)导出新系统的高层逻辑模型;

(4)推荐建议方案;

(5)推荐行动方针;

(6)书写计划任务书(可行性报告);

(7)提交审查。

6. 可行性研究报告的主要内容?

可行性分析的结果是可行性研究报告,内容包括:

(1) 系统概述:说明开发的系统名称,提出单位和开发单位。

(2) 可行性研究的前提:系统目标;要求;约束和限制;可行性研究的基本准则等。

(3) 对现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题。

(4) 系统需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。

(5) 建议系统:系统目标;处理流程;系统结构,功能,性能;系统技术可行性;投资和

效益分析;操作可行性;法律可行性。

(6) 其它可选方案:与国内外同类型方案的比较;提出一两个可行性方案供论证和探讨。

(7) 制定下一阶段的预算。

(8) 结论性意见:由用户方、设计方和投资方共同签署意见。

第三章需求分析

1. 需求分析的描述工具有哪些?

有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等。

2. 需求分析的基本任务是什么?

准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么。

3. 怎样建立目标系统的逻辑模型?要经过哪些步骤?

建立目标系统的逻辑模型的过程也就是数据流图的分解过程。

4. 什么是结构化分析?它的结构化体现在哪里?

结构化分析:使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。

结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。

5. 软件需求规格说明书由哪些部分组成?

组成包括:

(1) 引言:编写目的、背景说明、术语定义及参考资料等。

(2) 概述主要功能、约束条件或特殊需求。

(3) 数据流图与数据字典。

(4) 用户接口、硬件接口及软件接口。

(5) 性能需求、属性等。

(6) 其它需求,如数据库、操作及故障处理等。

6. 为什么数据流图要分层?画分层的DFD要遵循哪些原则?

分层的目的:便于逐步细化、结构清晰。

画分层的DFD要遵循哪些原则:

(1)父图与子图之间数据要平衡。

(2)分解的深度和层次达到使加工足够简单、易于理解的基本加工为止。

(3)区分局部文件和局部外部项(局限于数据流中某一层或某几层的文件和外部项)。

(4)不要把控制流作为数据流。

(5)忽略琐碎的枝节。

(6)每个数据流要有一个合适的名字,尽量使用现实系统中有具体意义的名字。

7. 系统流程图与数据流程图有什么区别?

系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具。

系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况。

数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况。

8.数据字典包括哪些内容?它的作用是什么?

数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。

9.描述加工逻辑的工具有哪些?

判定树、判断表和结构化语言等。

第四章总体设计

1. 系统设计包括哪两个阶段?

系统设计包括总体设计与详细设计两个阶段。

2. 总体设计的主要任务是什么?

总体设计的主要任务是完成软件结构的设计,确定系统的模块及其模块之间的关系。

3. 什么是模块?模块具有哪几个特征?总体设计主要考虑什么特征?

模块是数据说明、可执行语句等程序对象的集合,可以单独命名且可通过名字来访问。

模块具有输入和输出(参数传递)、功能、内部数据结构(局部变量)和程序代码四个特性。

概要设计主要考虑输入、输出(参数传递)和功能两个特性。

4. 什么是模块化?模块设计的准则?

模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。

模块设计的准则:

(1) 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。

(2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。

(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。

(4) 尽量降低模块接口的复杂程度;

(5) 设计单入口、单出口的模块。

(6) 模块的作用域应在控制域之内。

5. 变换型数据流由哪几部分组成?

变换型结构由三部分组成:传入路径、变换(加工)中心和传出路径。

6. 变换分析设计的步骤?

(1) 区分传入、传出和变换中心三部分,划分DFD图的分界线;

(2) 完成第一级分解:建立初始SC图的框架;

(3) 完成第二级分解:分解SC图的各个分支;

(4) 对初始结构图按照设计准则进行精化与改进。

7. 事务型数据流由哪几部分组成?

事务型结构由至少一条接受路径、一个事务中心与若干条动作路径组成。

8. 事务分析设计的步骤?

(1) 在DFD图中确定事务中心、接收部分(包含全部接收路径)和发送部分(包含全部动作路径);

(2) 画出SC图框架,把DFD图的三部分分?quot;映射"为事务控制模块,接收模块和动作发送模块.一般得到SC图的顶层和第一层(如果第一层简单可以并入顶层);

(3) 分解和细化接收分支和动作分支,完成初始的SC图;

(4) 对初始结构图按照设计准则进行精化与改进。

9. 比较层次方框图与结构图是的异同?

(1) 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构。

(2) 二者都采用多层次矩形框树形结构。层次方框图的顶层矩形框代表完整的数据结构, 下面各层矩形框依次代表上个框数据的子集;结构图是在层次图的每一个方框内注明模块的名字或主要功能,方框之间的直线表示模块的调用关系,用带注解的箭头表示模块调用过程中传递的信息。

第五章详细设计

1. 详细设计的目的?

为软件结构图(SC图或HC图)中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述.

2. 详细设计的主要任务?

编写软件的“详细设计说明书”.软件人员要完成的工作:

(1) 为每一个模块确定采用的算法, 选择某种适当的工具表达算法的过程,写出模块的详细过程描述.

(2) 确定每一模块使用的数据结构.

(3) 确定模块结构的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节.

(4) 为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试.

3. 结构化程序设计的基本原则?

在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构.

4. 比较面向数据流和面向数据结构两类设计方法的异同?

相同点:

(1) 遵守结构程序设计“由顶向下”逐步细化的原则,并以其为共同的基础;

(2) 均服从“程序结构必须适应问题结构”的基本原则,各自拥有从问题结构(包括数据结构)导出程序结构的一组映射规则。

不同点:

(1) 面向数据流的设计以数据流图为基础,在分析阶段用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构。面向数据结构的设计以数据结构为基础,从问题的数据结构出发导出它的程序结构。

(2) 面向数据流的设计的最终目标是软件的最终SC图,面向数据结构的设计的最终目标是程序的过程性描述。

5. 比较Jackson方法和LCP方法的异同?

Jackson与LCP设计方法都是以数据结构为出发点,以程序的过程描述为最终目标,设计步骤基本相似。它们的主要差别是:

(1)使用不同的表达工具,其中LCP方法中的表达工具Warnier图

比Jackson设计方法中的表达工具Jackson图有更大的通用性;

(2)Jackson方法的步骤和指导原则有一定的灵活性,而LCP设计

方法则更加严密。

6. 详细设计的描述工具应具备什么功能?

无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理功能、数据组织及其它方面的细节的能力,而且在编码阶段能够直接将它翻译为用程序设计语言书写的源程序。

第六章编码

1. 编码的任务?

使用选定的程序设计语言,把模块的过程性描述翻译为用语言书写的源程序(源代码)。

2. 对源程序基本要求?

源程序要求:正确可靠、简明清晰、效率高。

(1)源程序的正确性是对程序质量的最基本要求;

(2)源程序的简明清晰,便于验证源代码和模块规格说明的一致性,容易进行测试和维护;

(3)对于大多数模块,编码时应该把简明清晰放在第一位;

(4)除了编码阶段产生源代码外,在测试阶段也需要编写一些测试程序,用于对软件的测试。

3. 程序设计语言的特点?

(1) 名字说明:程序中使用对象的名字,能为编译程序所检查和识别;

(2) 类型说明:定义对象的类型,确定该对象的使用方式;

(3) 初始化:为变量提供适当的初始值或由系统给变量赋一特殊的表明未初始化的值;

(4) 对象的局部性:程序中真正需要的那部分才能访问的对象;

(5) 程序模块:控制程序对象的名字;

(6) 循环控制结构:如FOR语句、WHILE-DO语句、REPEAT-UNTIL语句等;

(7) 分支控制结构:如IF语句、CASE语句等;

(8) 异常处理:为程序运行过程中发生的错误和意外事件提供检测和处理上的帮助;

(9) 独立编译:能分别编译各个程序单元。

4. 选择程序设计语言需要考虑的因素?

(1) 选择用户熟悉、便于用户维护的语言。

(2) 选择目标系统的环境中可以提供的编译程序所能选用的语言。

(3) 选择可以得到的软件工具,能支持程序开发中可以利用的语言。

(4) 根据工程规模的大小、目标系统应用范围,如实时应用选择Ada语言或汇编语言,系统软件开发选择C语言或汇编语言,软件开发中若含有大量数据操作则选择SQL、dBASE 等数据库语言等。

(5) 选择程序员熟悉的语言。

(6) 选择标准化程度高、程序可移植性好的语言。

(7) 根据算法与计算的复杂性、数据结构的复杂性选择。如对于系统程序和结构复杂的应用程序,选择支持数组、记录(或结构)与指针动态数据结构的Pascal语言或C语言。

(8) 根据实时要求系统需要的响应速度和效率选择相应的语言。

5. 编码风格的指导原则。

(1) 源程序:包括适当的标识符、适当的注解、程序清单的合理布局与清晰;

(2) 数据说明:数据结构或数据类型的说明次序标准化;变量名称尽量有意义;对复杂的数据结构在注解中要说明在程序设计中实现这个数据结构的方法。

(3) 语句的构造简单明了:不要为节省空间将多个语句写在同一行;尽量避免复杂的条件及“非”条件的测试;避免大量使用循环嵌套和条件嵌套;括号的使用是为了使逻辑表达式和算术表达式的运算顺序清晰直观。

(4) 效率:考虑程序运行的时间存储器效率、输入/输出的效率;在处理程序正确性、清晰与效率之间的关系时先求程序正确后求快;先求清楚后求快;保持程序简单以求快;书写清楚,不为“效率”牺牲清晰。

6. 第四代语言(4GL)应具备哪些的特征?

(1) 具有很强的数据管理能力,能对数据库进行有效的存取、查询和其它有关操作;

(2) 能提供一组高效的、非过程化的命令,组成语言的基本语句,编程时用户只需用这些命令说明“做什么”,不必描述实现的细节;

(3) 能满足多功能、一体化的要求。为此,语言中除必须含有控制程序逻辑与实现数据库操作的语句外,还应包括生成与处理报表、表格、图形,以及实现数据运算和分析统计功能的各种语句,共同构成一个一体化的语言,以适应多种应用开发的需要。

第七章软件测试

1. 软件测试的基本任务?

软件测试是按照特定的规则,发现软件错误的过程;好的测试方案是尽可能发现迄今尚

未发现错误的测试;成功的测试方案是发现迄今尚未发现错误的测试;

2. 测试与调试的主要区别?

(1) 测试从一个侧面证明程序员的失败;调试证明程序员的正确;

(2) 测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试从不可知内部条件开始,除统计性调试外,结果是不可预见的;

(3) 测试有计划并且要进行测试设计;调试不受时间约束;

(4) 测试是发现错误、改正错误、重新测试的过程;调试是一个推理的过程;

(5) 测试执行是有规程的;调试执行要求程序员进行必要的推理;

(6) 测试由独立的测试组在不了解软件设计的件下完成;调试由了解详细设计的程序员完成;

(7) 大多数测试的执行和设计可由工具支持;调试用的工具主要是调试器。

3.人工复审的方式和作用?

人工复审的方式:代码会审、走查和排练和办公桌检查;

人工复审的作用:检查程序的静态错误。

4.什么是黑盒测试?黑盒测试主要采用的技术有哪些?

黑盒测试:也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

黑盒测试主要采用的技术有:等价分类法、边沿值分析法、错误推测法和因果图等技术。

5.什么是白盒测试?白盒测试主要采用的技术有哪些?

测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。

白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。

6. 路径测试技术中几种主要覆盖的含义?举例说明?

语句覆盖:至少执行程序中所有语句一次。

判定覆盖:使被测程序中的每一个分支至少执行一次。故也称为分支覆盖。

条件覆盖:执行所有可能的穿过程序的控制路流程。

条件组合测试:设计足够的测试用例,使每个判定中的所有可能条件取值组合至少执行一次。

7. 等价分类法的测试技术采用的一般方法?举例说明?

(1) 为每个等价类编号;

(2) 设计一个新的测试方案,以尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步骤,直到所有有效等价类被覆盖为止。

(3) 设计一个新的测试方案,使它覆盖一个尚未被覆盖的无效等价类, 重复这一步骤,直到所有无效等价类被覆盖为止。

8. 软件测试的一般步骤?

单元测试、子系统测试、系统测试、验收测试、平行测试。

9. 比较集成试的两种方式的优劣?

非渐增式测试方式:分别测试模块,再把所有模块按设计要求放在一起组成所要的程序。该方法编写测试软件工作量大,模块间的接口错误发现得晚,错误定位较难诊断,总体测试有的错误容易漏掉,测试时间相对较少,可以并行测试所有模块,能充分利用人力,加快工程进度。。

渐增式测试方式:把下一个要测试的模块,同已经测试好的那些模块结合起来进行测试。该方法利用已测试过的模块作测试软件,开销小,较早发现模块间的接口错误,错误定位往往和最近入的模块相关,对已测试好的模块可在新加入模块的条件下受到新的检验,测试更彻底,需要较多的测试时间,不能并行测试。

总的来说,渐增式测试方法比较好。

10.软件测试的策略?

(1) 在任何情况下都应使用边界值分析的方法。

(2) 必要时用等价类划分法补充测试方案。

(3) 必要时再用错误推测法补充测试方案。

(4) 对照程序逻辑,检查已设计出的测试方案。

(5) 根据对程序可靠性的要求采用不同的逻辑覆盖标准,再补充一些测试方案。

第八章软件维护

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

因为软件的开发过程中,一般很难检测到所有的错误,其次软件在应用过程中需要随用户新的要求或运行环境的变化而进行软件的修改或完成功能的增删等,为了提高软件的应用水平和使用寿命,软件的维护是不可避免的。

2. 软件的维护一般分为哪几类?

改正性维护:满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的。

适应性维护:对程序使用期间发现的程序错误进行诊断和改正的过程,配合变化了的环境进行修改软件的活动;

完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作;

预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。

3. 影响软件维护的因素有哪些?

开发方法:采用模块化详细设计文档有助于理解软件的结构、界面功能和内部流程;开发过程中严格而科学的管理规划及清晰可靠的文档资料对发生错误后的理解与纠错是至关重要的;开发过程中模块的独立程度越高,对软件修改越容易,对软件的改进和移植越方便。

开发条件:软件开发及维护人员的水平决定了软件开发的质量和维护的效率;开发过程中使用标准的程序设计语言和标准的操作系统接口,可以大大提高软件的可维护性;在测试过程中用例的有效性,可极大地减少软件存在的错误;其次使用规范化的文档资料可为维护提供更好的依据。

4. 软件维护困难主要表现在什么方面?

(1) 一般来讲,维护人员对开发人员写的程序及文档,理解都比较困难,对维护工作不会喜欢;

(2) 维护持续时间都很长,在开发人员不在现场的轻快下,维护软件通常是很困难的;

(3) 绝大多数软件在设计时对将来的软件修改都没有考虑或考虑不多,尤其未能在设计中强调并认真解决好模块的独立性,使软件的修改既困难又易发生差错。

5. 决定软件可维护性的因素?

(1) 软件的可理解性、可测试性、可修改性;

(2) 文档描述符合要求、用户文档简洁明确、系统文档完整并且标准。

6. 软件价格应该计入维护成本吗?为什么?

在软件的生命周期中,软件维护的工作量非常大,不同应用领域的维护成本差别也很大。一般大型软件的维护成本远远高于开发成本若干倍。因此软件价格中应该计入维护成本。

第九章软件工程管理

1. 软件工程管理的内容?

(1) 费用管理: 对软件开发进行成本核算,使软件生产按照商品生产的规律办事。包括:以简单、科学方法估算软件开发费用,作为签定开发合同的根据;管理开发费用的有效使用,即用经济手段来保证产品如期按质完成。

(2) 质量管理: 按项目的质量保证计划,确保各个开发阶段的开发和维护工作全部按软件工程的规范进行,保证软件产品的质量。

(3) 配置管理:通过对于程序、文档和数据的各种版本所进行的管理,保证资料的完整性与一致性。

(4) 项目管理:制定《项目实施计划》,按照计划的内容组织和实施软件的工程化生产。最终目标是以合理的费用和进度,圆满完成计划所规定的软件项目。

2. 软件项目有哪些特点?

(1) 软件项目与其他任何产业项目不同,它是算法、思想、概念、组织、流程、效率、优化等的融合体;

(2) 开发软件项目产品,在多数情况下,用户给不出明确的想法和要求。

(3) 在开发过程中,程序及其相关的文档资料常常需要修改,在修改过程中又可能带来新的问题,且这些问题要在很久以后才会发现。

(4) 在研制开发过程中,文档资料是不可缺少的,但工作量又是巨大的,往往也是人们不愿去作的。

(5) 参加软件项目的工作人员,要求具有一定的业务水平和实际工作经验,而很难完全避免的人员流动,对工作的影响是很大的。离开的人员不仅带走了重要的信息,而且带走了工作经验。

3. 软件成本估算的一般方法?

自顶向下估计:首先估算出项目总的开发成本,然后在项目内部进行成本分配。由少数

专家参与,依靠他们过去的经验,将要开发的软件与过去开发过的软件进行"类比",以估计新的软件开发所需要的工作量和成本。

自底向上估计:将开发任务分成若干子任务,子任务又分成子子任务,直到每一个单元内容足够明确为止;把各个任务单元的成本估计出来,汇合成项目的总成本。该方法得到的结果比较接近实际。

4. 为什么在软件开发中,不能用简单增加人员的方法来缩短开发时间?

大量软件开发实践说明:向一个已经延迟的项目追加开发人员,可能使它完成得更晚。因为当开发人员以算术级数增长时,而人员之间的通信将以几何级数增长,往往"得不偿失"。

5. 影响软件质量的主要因素有哪些?

(1) 产品运行:正确性、风险性、效率、完整性、健壮性和可用性;

(2) 产品修改:可理解性、可维护性、灵活性、可测试性;

(3) 产品转移:可移植性、可重用性和互运行性。

软件工程导论总结报告

软件工程总结报告 序言 本期软件工程专业导论课程结束后,为圆满完结本期此课程的学习,特此总结个人学习所得以求些许回报先生无私教导。 主体 第一节课主要讲述了软件工程各领域之间的联系以及贯穿始终 的基础为何。其中较为基础并相当重要使的应该是算法。对于算法重要性与基础性的理解,我个人有比较切身的体验。比如前不久的 ACM 竞赛,在比赛中我所在的小组以及当场几乎所有小组都遇到这样一个 问题:超时—这无非就是个人设计的算法的效率不够高,这也证明我 们对算法理论知识的匮乏(不清楚优化个人算法的方法)。我对软件 工程这一专业有了一个较为全面的把握,对我个人未来进取方向而言 也起到了一定的指导作用。 第二节课老师带来了三位本专业的前辈向我们传授大学生活应 如何度过以及对我等一些问题作出解答。其中我个人印象深刻的是其 中一位学姐 PPt 中引用李开复的那部分内容。即试着记录下自己一整天做的所有事以及其所花费的时间,再仔细研究自己在哪些事上浪费 了时间,应该如何整改。我个人认为这方法可能有一定直观性,因为 直观的数据更能深刻的反映真实和刺激一个人整改,但此法实施起来又太古板,中觉得生活有些教条化、章程化,缺乏新意与自由。求上进,珍惜时间也无需以丧失人生情趣为代价。还有就是学长再提潘老师曾讲过的那些重要、紧急优先次序。他提到的个人的学习生活情况

倒没什么深刻感,但我认为他引用的一番话较有道理,大概意思是比 起个人兴趣更为优先的应该是谋生的本领,尤其是当自己感兴趣的正 好是冷门时。当掌握了一些实实在在有能保证自身良好发展前景后,再 去做一些自己感兴趣的事也来得及。于我而言,一个人尚不能独善其身,何求其兼济天下。成己方成人就是如此道理。 第三节课主要讲解了大学学习生活中应着重的基础课以传递重 基础的要旨。据个人体会,其中英语科目实是基础中的基础,主要是 为辨认单词(即代码变量以及注释)意义以达到理解他人算法并顺利 接手他人接下来的工作。企业和公司出于其本身利益主张雇方市场 -- 讲究项目的可接手性,而不希望对现有人员的过分依赖。离散数学则应该是为之后学习其他编程专业知识做理论知识的铺垫。概率统计更多应是对统计有关算法及理论的学习(个人认为现实生活中许多问题都可以运用概率统计的方法加以解决,因此应是很重要的基础知识)。C/C++(Java)语言是作为编程的工具使用,无疑是基础(现今水平下的 我们主要用 C 编代码)。数据结构则应是提供特定的解决问题的结构 思想以便进行数据处理方面工作。算法的重要性以及基础性的个人体 会已包含在第一节课中。计算机体系结构与汇编课程与操作系统原理 课程主要在于理解计算机系统运行原理能加深对代码运行原理的理 解,对于现今水平的我也能更深层次的理解 c 语言的指针操作等方面知识。汇编语言能够直接对硬件进行操作,生成的程序与其他的语言相 比具有更高的运行速度,占用更小的内存,因此在一些对于时效性要求很高的程序、许多大型程序的核心模块以及工业控制方面大量应

电路知识点总结

电路知识点总结 初二物理电路的组成知识点总结 1.定义:把电源、用电器、开关、导线连接起来组成的电流的路径。 2.各部分元件的作用:(1)电源:提供电能的装置;(2)用电器:工作的设备;(3)开关:控制用电器或用来接通或断开电路;(4)导线:连接作用,形成让电荷移动的通路 二、电路的状态:通路、开路、短路 以阿拉伯人为主的国家(阿拉伯人占人口多数的国家)被称为阿拉伯国家。西亚是世界 上阿拉伯人的主要聚居地区之一。除了阿富汗、伊朗、土耳其、塞浦路斯、以色列、格鲁 吉亚、亚美尼亚、阿塞拜疆8个国以外,其他国家和地区的居民主要是阿拉伯人,均属于 阿拉伯国家。此外,非洲北部地中海沿岸的埃及、利比亚、突尼斯、阿尔及利亚、摩洛哥 等五个国家也属于阿拉伯国家。 1.定义:(1)通路:处处接通的电路;(2)开路:断开的电路;(3)短路:将导线直接连 接在用电器或电源两端的电路。 2.正确理解通路、开路和短路 三、电路的基本连接方式:串联电路、并联电路 四、电路图(统一符号、横平竖直、简洁美观) 五、电工材料:导体、绝缘体 1. 导体 (1) 定义:容易导电的物体;(2)导体导电的原因:导体中有自由移动的电荷; 2. 绝缘体 (1)定义:不容易导电的物体;(2)原因:缺少自由移动的电荷 六、电流的形成 这句话的问题在于代词使用不一致。请看one must be so dedicated that you will practice six hours a day,前面用的代词是one,但是后文使用的是you,再理解句意,不难发现两个代词其实是在指代同一个人。所以应该把you改成one. 1.电流是电荷定向移动形成的; 由于石油生产、出口是的这些国家成为世界上“最富有的国家”。但经济结构单一, 近几年各国努力促进经济多样化的发展,加强基础设施和城市建设,发展制造业和农业。

软件工程导论复习知识点

一、软件: 软件定义: 软件=程序+文档+数据 软件特点: 1、具有抽象性 2、没有明显的制造过程 3、软件的维护比硬件的维护要复杂得多 4、对计算机系统有着不同程度的依赖性 5、尚未完全摆脱手工艺的开发方式 6、软件本身是复杂的 7、软件成本相当昂贵 8、相当多的软件工作涉及到社会因素软件的发展: 程序设计、程序系统、软件工程 软件危机: 软件危机指的是软件开发和维护过程中遇到的一系列严重问题。 软件危机的问题: 如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机表现: 1.开发成本难以控制,进度不可预计; 2.软件系统的质量和可靠性很差,难以满意; 3.软件文档相当缺乏,软件系统不可维护; 4.软件开发生产率很低,软件产品供不应求。 5.软件产品成本十分昂贵。

软件危机产生原因: 1、软件本身的特点 2、对软件开发与维护存在许多错误认识和做法 3、软件开发与维护的方法不正确 解决软件危机途径: 1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。 2、研究和推广成功的软件开发技术和方法。 3、开发和使用好的软件工具。 软件生命周期: 软件所经历的定义、开发、使用和维护直到废弃所经历的时期。 程序设计环境: 源程序编辑,编译或解释,链接,调试和运行工具的集合 软件工程环境: 软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合 二、软件工程: 软件工程定义: 研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。 软件工程性质: 涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。用管

大学电路知识点梳理

电路理论总结 第一章 一、重点: 1、电流和电压的参考方向 2、电功率的定义:吸收、释放功率的计算 3、电路元件:电阻、电感、电容 4、基尔霍夫定律 5、电源元件 二、电流和电压的参考方向: 1、电流(Current ) 直流: I ①符号 交流:i ②计算公式 ③定义:单位时间通过导线横截面的电荷(电流是矢量) ④单位:安培A 1A=1C/1s 1kA=1×103A 1A=1×10-3mA=1×10-6μA=1×10-9nA ⑤参考方向 a 、说明:电流的参考方向是人为假定的电流方向,与实际 ()()/i t dq t dt =

电流方向无关,当实际电流方向与参考方向一致时电流取正,相反地,当实际电流方向与参考方向不一致时电流取负。 b 、表示方法:在导线上标示箭头或用下标表示 c 、例如: 2、电压(V oltage ) ①符号:U ②计算公式: ③定义:两点间的电位(需确定零电位点⊥)差,即将单位正电 荷从一点移动到另一点所做的功的大小。 ④单位:伏特V 1V=1J/1C 1kV=1×103V 1V=1×10-3mV=1×10-6μV=1×10-9Nv ⑤参考方向(极性) i > 0 i < 0 实际方向 实际方向 ————> <———— 参考方向(i AB ) U =dW /dq

a 、说明:电压的实际方向是指向电位降低的方向,电压的 参考方向是人为假定的,与实际方向无关。若参考方向与实际方向一致则电压取正,反之取负。 b 、表示方法:用正极性(+)表示高电位,用负极性(﹣) 表示低电位,则人为标定后,从正极指向负极的方向即为电压的参考方向或用下标表示(U AB )。 c 、例如: 3、关联与非关联参考方向 ①说明:一个元件的电流或电压的参考方向可以独立的任意的 人为指定。无论是关联还是非关联参考方向,对实际方向都无影响。 ② 关联参考方向:电流和电压的参考方向一致,即电流从 所标的正极流出。 非关联参考方向:电流和电压的参考方向不一致。i i U < 0 > 0 参考方向 U + – + 实际方向 + 实际方向 参考方向 U + – U

大学电路知识点总结

大学电路知识点总结 【篇一:大学电路知识点总结】 电路理论总结 第一章 一、重点: 1、电流和电压的参考方向 2、电功率的定义:吸收、释放功率的计算 3、电路元件:电阻、电感、电容 4、基尔霍夫定律 5、电源元件 二、电流和电压的参考方向: 1、电流(current) : i ①符号 :i ②计算公式 i(t)?dq(t)/dt a、说明:电流的参考方向是人为假定的电流方向,与实际 电流方向无关,当实际电流方向与参考方向一致时电流取正,相反地,当实际电流方向与参考方向不一致时电流取负。 b、表示方法:在导线上标示箭头或用下标表示 c、例如: 参考方向(iab) ———— ———— 实际方向 实际方向 i 0 2、电压(voltage) ①符号:u ②计算公式: i 0 u=dw/dq 荷从一点移动到另一点所做的功的大小。 ③定义:两点间的电位(需确定零电位点?)差,即将单位正电 ④单位:伏特v 1v=1j/1c a、说明:电压的实际方向是指向电位降低的方向,电压的 参考方向是人为假定的,与实际方向无关。若参考方向与实际方向一致则电压取正,反之取负。 b、表示方法:用正极性(+)表示高电位,用负极性(-)

表示低电位,则人为标定后,从正极指向负极的方向即为电压的参 考方向或用下标表示(uab)。 c、例如: 参考方向参考方向 i u 实际方向 – + i 实际方向 – + + u 0 3、关联与非关联参考方向 u 0 ①说明:一个元件的电流或电压的参考方向可以独立的任意的 人为指定。无论是关联还是非关联参考方向,对实际方向都无影响。 ②关联参考方向:电流和电压的参考方向一致,即电流从 所标的正极流出。 非关联参考方向:电流和电压的参考方向不一致。 ③例如: r i r i + u 关联参考方向 u 非关联参考方向 u=ir 三、电功率 1、符号:p 2、计算公式: u=-ir 4、相关习题:课件上的例题,1-1,1-2,1-7 dwp??ui dt

《软件工程导论》第六版期末复习总结要点

软件工程 一、名词解释与问答 1、S A——结构化分析方法 2、画数据流图应注意什么事项? (1)数据流名称只能是名词或是名词短语; (2)每个加工至少有一个输入数据和一个输出数据流,反映出此加工数据的来 源与加工的结果; (3)编号:某个加工分解成一张数据流图时,上层图为父类,下层图为子类; 父图与子图的平衡:子图的输入输出数据流同父类相应的输入输出数据流必须一致; (4)注意数据流图的易理解性; 3、什么是软件生存周期?它有那几个活动? 一个软件从提出开发要求开始直到该软件报废为止的整个时期。 包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。 4、什么是数据流图?作用是什么?其中的基本符号表示什么含义?以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。 箭头,表示数据流数据流是数据在系统内传播的路径,由一组成分固定的数据项组成; 圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工; 双杆,表示数据存储指暂时保存的数据;方框,数据源点或终点软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中; 什么是数据字典简述数据字典与数据流图的关系答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与 说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用?数据流图和对数据

流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分)简述编码风格的重要性? 答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供 人阅读的文章?应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间? 良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定 着程序的质量. 简述软件测试的任务、目的与类型。 答:软件测试是一个为了寻找软件错误而运行程序的过程。 目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发 现 的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测 试 主要分为白盒测试和黑盒测试两大类。 可行性分析的目的和主要任务是什么? 答:可行性分析的目的不是解决问题,而是确定问题是否值得去解决。 主要任务是从下面几方面研究每种解法的可行性:技术可行性,经济可行性,操作可行 性,社会可行性,抉择可行性。 需求分析的目的和主要任务是什么? 答:进行需求分析是为了准确地回答“系统必须做什么”这个问题,决定可以做什么不做什么。需求分析的主要任务是描述系统的功能需求、性能需求、数据需求、可靠性/可用性需求、出错处理需求、接口需求、约束条件、其他需求。 软件维护的目的和主要任务是什么?维护的类型有哪些? 答:软件维护是软件生命周期中最后一个、持续时间最长的阶段。 主要任务是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件,目的是提高软件的可靠性、可用性,延长软件的寿命。维护的类型有:改正性(错误)、适应性(环境)、完善性(功能)、预防性(新产品)什么是耦合?模块的耦合包括哪些类型?答:耦合是对一个软件结构内不同模块之间互连程度的度量。 模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦合,标记耦合,无耦合/非直接耦合 什么是内聚?模块的内聚包括哪些类型?

初三物理电流和电路知识点总结.

第十五章电流和电路 摩擦起电:摩擦过的物体具有吸引轻小物体的现象——带电体==本质:电荷 的转移 正电荷:被丝绸摩擦过的玻璃棒带的电荷 种类 电荷 负电荷:被毛皮摩擦过的橡胶棒带的电荷 性质:同种电荷互相排斥,异种电荷互相排斥 检验:验电器——原理:同种电荷互相排斥 电量:q 单位:库伦 简称:库 符号:C 元电荷:最小电荷:e=1.6×1019 - C 组成:电源、开关、导线、用电器 电源:提供电能 开关:控制电路通断 作用 用电器:消耗电能 导线:传输电能的路径 导体:金属、人体、食盐水 两种材料 绝缘体:橡胶、玻璃、塑料 电流产生条件 ①电路闭合 ②保持通路 定义:正电荷移动的方向 电路 电流的方向 在电源中电源的正极→用电器→电源的负极 单位:A ?→?310mA ?→?310A μ 工具:电流表 ○A 测量 使用方法 ①电流表必须和被测的用电器串联 电流的大小(I ) ②看清量程、分度值,不准超过电流 表的量程 ③必须正入负出 ④任何情况下都不能直接连到电源 的两极 电路的连接:先串后并,就近连线,弄清首尾 通路:接通的电路 三种状态 断路:断开的电路 短路:电流不经过用电器直接回到电源的负极

1、物体有了吸引轻小物体的性质,我们就说物体带了电荷;换句话说,带电体具有吸引 轻小物体的性质。 2、用摩擦的方法使物体带电叫摩擦起电; 3、摩擦起电的实质:摩擦起电并不是创生了电,而是电子从一个物体转移到了另一个物 体,失去电子的带正电;得到电子的带负电。 二、两种电荷: 1、把用丝绸摩擦过的玻璃棒带的电荷叫正电荷;电子从玻璃棒转移到丝绸。 2、把用毛皮摩擦过的橡胶棒带的电荷叫负电荷;电子从毛皮转移到橡胶棒。 3、基本性质:同种电荷相互排斥,异种电荷相互吸引; 4、带电体排斥带同种电荷的物体;带电体吸引带异种电荷的物体和轻小物体。 例:1、A带正电,A排斥B,B肯定带正电; 2、A带正电,A吸引B,B可能带负电也可能不带电。(A、B都是轻小物体) 三、验电器 1、用途:用来检验物体是否带电;从验电器张角的大小,可以粗略的判断带电体所带电荷的多少。 2、原理:利用同种电荷相互排斥; 四、电荷量(电荷)电荷的多少叫电荷量,简称电荷;单位:库仑(C)简称库; 五、原子的结构质子(带正电) 原子核 原子中子(不带电) 电子(带负电) 原子核所带的正电荷与核外所有电子总共带的负电荷数在数量上相等,整个院子呈中性,原子对外不显带电的性质。 六、元电荷 1、最小的电荷叫做元电荷,用符号e表示,e=1.6*10-19C。 2、电子电荷量的大小是最小的。 七、导体、绝缘体 1、善于导电的物体叫导体;如:金属、人体、大地、石墨、酸碱盐溶液; 2、不善于导电的物体叫绝缘体,如:橡胶、玻璃、塑料、陶瓷、油、空气等; 3、导体和绝缘体在一定条件下可以相互转换; 例如:1、干木头(绝缘体)、湿木头(导体)2、玻璃通常是绝缘体、加热到红炽状态(导体) 一、电流 1、电荷的定向移动形成电流;(电荷包括正电荷和负电荷定向移动都可以形成电流)3、规定:正电荷定向移动的方向为电流的方向(负电荷定向移动的方向与电流方向相反,尤其注意电子是负电荷,电子的移动方向与电流的方向相反)

软件工程导论(第6版)知识点总结、复习课_图文.

复习课 --------酷爱YC 第一章 1、什么是软件危机,什么是软件工程 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:(1如何开发软件,以满足对软件日益增长的需求;(2如何维护数量不断膨胀的已有软件。 软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件,并有效地维护它。 2、完整的软件配置由哪些内容组成 软件配置主要包括程序,文档和数据等成分。 3、软件生命周期分为哪3个时期和8个阶段,每个阶段的任务(工作分别是什么,重要性如何

概括地说,软件生命周期由软件定义、软件开发和运行维护3个时期组成 1、软件定义(系统分析。 软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。 (1 问题定义,确定系统要解决的问题是什么。成果:关于问题性质、工程目标和工程规模的报告。 (2 可行性研究,确定问题是否有可用的、能行得通的解(包括:技术、经济、操作、社会等方面的可行性。这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。成果:可行性研究报告。 (3 需求分析,确定软件系统的必须实现的功能、必须达到的性能、必须满足的运行环境要求。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。成果:软件需求规格说明书(SRS,内容包括:系统的逻辑模型;系统(子系统的名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等。 2、软件开发。 开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。 (1 总体设计(概要设计,回答“怎样实现目标系统”。

大连理工大学城市学院软件工程导论期末考试复习重点

软件工程导论重点 第一章重点: 软件的概念:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。 软件危机概念:软件危机暴发于上个世纪六十年代末。 主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。 软件工程概念: 概括地说,软件工程是指导计算机软件开发和维护的工程学科。 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程的目标: 软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。 基本目标: 付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发工作,及时交付使用 软件生存期概念和包含内容: 软件也有一个孕育、诞生、成长、成熟和衰亡的生存过程,我们称这个过程为软件生命周期或软件生存期。 软件生存期分为三个时期 软件定义 软件开发 运行维护

软件工程的方法: 软件工程包含技术和管理两方面的内容,是技术和管理紧密结合所形成的工程学科。 通常将软件开发全过程中使用的一整套技术方法的集合称为方法学(methedology),也称为范型(paradigm)。 目前使用最广泛的软件工程方法学:传统方法学(结构化方法学),面向对象方法学。 软件工程三要素: 三要素:方法、工具和过程。 第二章重点: 生存期模型有哪些: ?瀑布模型 ?快速原型模型 ?增量模型 ?螺旋模型 ?喷泉模型 ?统一过程 ?基于构件的开发模型 ?敏捷过程 前四种面向过程后四种面向对象 给一个模型,判断出是哪一模型的 第三章重点: 结构化分析方法的概念: 传统的分析建模方法称为结构化分析(structured analysis,SA)方法。 三大建模:(未完待续!!!) 功能建模: 功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。功能模型

软件工程导论最全复习总结

1、软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的 严重问题。 2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的 程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。 3、软件工程学包含3个要素:方法、工具、过程。 4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。 5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。 6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。 7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。 8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。 9、数据流图(DFD是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中 所经受的变化。 10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义 的集合。 11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格, 没有流程图,数据字典也难以发挥作用。

12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准 确的描述软件需求。 13、9、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩 形表示属性,用直线把实体和其属性连接。 15、验证软件需求的正确性:一致性、完整性、现实性、有效性。 总体设计又称 16、总体设计的基本目的是回答“概括地说,系统应该如何实现?”, 为 概要设或初步设计。 17、模块的独立程度可以有两个定性标量度量:内聚和耦合。 18、软件测试的目标:(1测试是为了发现程序中的错误而执行程序的过程;(2好的 测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3成功的测试是发现可至今为止尚未发现的错误的测试。 19、软件测试步骤:模块测试、子系统测试、系统测试、验收测试、平行运 行。 20、软件可靠性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。

软件工程导论复习重点总结很全(第六版)(精)

第1章软件工程学概述 1.1 软件危机 1.1.1 软件危机的介绍 软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机的典型表现: (1对软件开发成本和进度的估计常常很不准确; (2用户对“已完成的”软件系统不满意的现象经常发生; (3软件产品的质量往往靠不住; (4软件常常是不可维护的; (5软件通常没有适当的文档资料; (6软件成本在计算机系统总成本中所占的比例逐年上升; (7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2 产生软件危机的原因 (1与软件本身的特点有关 (2与软件开发与维护的方法不正确有关

1.1.3 消除软件危机的途径 对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。 1.2 1.2.1 软件工程的介绍 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户

电路知识点总结..

电路知识点总结 院系:电信学院通信工程专业班号:1105102 学号:1110510213 姓名:张晗 通过这一学期的电路课程学习,通过齐老师的讲授,我掌握了电路这门课独有的逻辑思维以及分析方法。另外,这门课也是为通信工程进一步进行专业课学习而准备的一门专业基础课,所以通过不断的总结、复习我基本掌握了这门课的内容,下面是我自己通过查阅书籍、资料所整理的本学期学习电路部分重点内容。 一.电路模型和电路定律 一、电压是由分离引起的每单位电荷的能量。电荷流动的速率通称为电流。 1、电流和电压的参考方向 电路模型中的电流、电压的实际方向有的未知,有的随时间变化,具有不确定性。而在应用电路定理、电路分析方法分析电路模型时要求电路模型中的电流、电压的方向必须是明确的。这就产生了一对矛盾,为了解决这一矛盾,引入了电流和电压的参考方向这一概念。在应用电路定理、电路分析方法分析电路时,对应的电流、电压的方向指的是电流和电压的参考方向。 只要元件中电流的参考方向与元件电压的参考方向一致(关联参考方向),则在电压与电流相关的表达式中使用正号,否则使用负号。 2、电功率和能量 当元件中电流、电压为关联参考方向,功率为正,元件吸收功率 当元件中电流、电压为非关联参考方向,功率表为负,元件发出功率。 二、电路元件 1、电阻元件:电阻是阻碍电流(或电荷)流动的物质能力,模拟这种行为的电路元件称为电阻。单位:欧姆。 2、电容元件(动态元件):电容元件的电压和电流关系式表明电容的电流与电容的电压的变化率成正比。电容元件有隔断直流(简称隔直)的作用,其原因是传导电流不能在电容的绝缘材料中建立。只有随时间变化的电压才能产生位移电流。 电容电压不能跃变,电容元件是一种有“记忆”的元件。 3、电感元件(动态元件):电感元件的电压和电流关系式表明与电感的电流的变化率成正比。电感的电流的变化率为0时电感的电压也为0,相当于短路。 电感中电流不能跃变,电感元件也是一种有“记忆”的元件。 4、独立电压源:独立电压源是一种电路元件,无论流过其两端的电流大小如何,都将保持端电压为规定值。 独立电压源的电流不是由独立电压源自身决定的,而是由外电路决定的。 5、独立电流源:独立电流源也是一种电路元件,无论端电压的大小如何,都将保持端电流为规定值。 独立电流源的电压不是由独立电流源自身决定的,而是由外电路决定的。 6、受控电源:受控电源也是一种电源,但其源电压或源电流并不独立存在,而是受电路中另一处的电压或电流控制,这类电源称为受控电源。 在求解含有受控电源的电路时,可以把受控电源当作独立电源处理。 独立电源是电路的“输入”(信号或能量)。

数字电路知识点汇总(精华版)

数字电路知识点汇总(东南大学) 第1章数字逻辑概论 一、进位计数制 1. 十进制与二进制数的转换 2?二进制数与十进制数的转换 3.二进制数与16进制数的转换 二、基本逻辑门电路 第2章逻辑代数 表示逻辑函数的方法,归纳起来有:真值表,函数表达式,卡诺图,逻辑图及波形图等几种。 一、逻辑代数的基本公式和常用公式 1) 常量与变量的关系A +0 =人与人1 = A A +1 = 1 与 A 0 = 0 A A = 1 与 A A = 0 2 )与普通代数相运算规律 a. 交换律:A + B = B + A A B 二 B A b. 结合律:(A + B) + C = A + (B + C) (A B) C 二A (B C) C.分配律:A (B C) = A B A C

A B C =(A B)()A C)) 3)逻辑函数的特殊规律 a. 同一律:A + A + A b. 摩根定律:A A B , ~AB=~A B b.关于否定的性质人=A 二、逻辑函数的基本规则 代入规则 在任何一个逻辑等式中,如果将等式两边同时出现某一变量A的地方,都用一个函数L表示,则等式仍然成立,这个规则称为代入规则例如:A B 二 C ? A B 二C 可令L= B二C 则上式变成A L A L = A二L=A二B二C 三、逻辑函数的:一一公式化简法 公式化简法就是利用逻辑函数的基本公式和常用公式化简逻辑 函数,通常,我们将逻辑函数化简为最简的与一或表达式 1) 合并项法: 利用A + A A -1或A ^A B -A,将二项合并为一项,合并时可消去一个变量 例如:L= ABC ABC -AB(C C) = AB 2) 吸收法 利用公式A A ,消去多余的积项,根据代入规则AB可以是任何一个

软件工程导论知识点概要

1.1软件危机 软件危机的表现 软件危机是指在计算机软件的开发、使用和维护过程中遇到的一系列严重问题。 1)成本难以估计、成本高。 2)软件开发进度估计不准确,项目延期比比皆是。 3)软件质量得不到保证(功能和性能)。 4)用户对“已完成的”软件系统不满意的现象经常发生。 5)维护非常困难(多样性、复杂性、副作用)。 6)软件通常没有适当的文档。 7)软件产品供不应求,跟不上计算机普及速度。 产生软件危机的原因 (1)及软件本身的特点有关(逻辑复杂,成本高,风险大,难于维护)。 (2)及软件开发及维护的方法不正确有关: 软件≠程序(软件是程序、数据及相关文档的完整集合)急于求成=拔苗助长(软件从定义、开发、使用和维护、废弃要经历一个漫长的生命周期) 各自为阵无方法学(应要组织良好、管理严密、各类人员协作共同完成的工程项目) 1.2软件工程定义 软件工程是应用计算机科学、数学、心理学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量、降低成本和提高效率为目的。 软件工程包括技术和管理两方面的内容,是技术及管理紧密结合所形成的工程学科。 软件工程的特性: 1. 软件工程关注于大型程序的构造 (传统的程序设计技术和工具是支持小型程序设计的)

2. 软件工程的中心课题是控制复杂性(问题分解) 3. 软件经常变化(考虑将来要发生的变化) 4. 开发软件的效率非常重要(寻求更好、更有效的工具) 5. 和谐地合作是开发软件的关键(运用标准和规程) 6. 软件必须有效地支持它的用户(软件要服务于用户) 7. 在软件工程领域中通常是由具有一种文化背景的人替具有另一种文化背景的人创造产品 软件工程的7条基本原理 1.用分阶段的生命周期计划严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查 6.开发小组的人员应该少而精 7.承认不断改进软件工程实践的必要性 软件工程方法学 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。 目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。 软件工程方法学包含3个要素:方法、工具和过程。 1.3软件生命周期 每阶段的基本任务: 1. 问题定义 2. 可行性研究 3. 需求分析 4. 总体设计 5. 详细设计 6. 编码和单元测试 7. 综合测试 8. 软件维护

数字电路知识点汇总(精华版)

数字电路知识点汇总(东南大学) 第1章数字逻辑概论 一、进位计数制 1.十进制与二进制数的转换 2.二进制数与十进制数的转换 3.二进制数与16进制数的转换 二、基本逻辑门电路 第2章逻辑代数 表示逻辑函数的方法,归纳起来有:真值表,函数表达式,卡诺图,逻辑图及波形图等几种。 一、逻辑代数的基本公式和常用公式 1)常量与变量的关系A+0=A与A= ?1A A+1=1与0 ?A 0= A?=0 A A+=1与A 2)与普通代数相运算规律 a.交换律:A+B=B+A A? ? = A B B b.结合律:(A+B)+C=A+(B+C) ? A? B ? ? = (C ) C ( ) A B c.分配律:) ?=+ A? B (C A? ?B A C + A+ = +) B ? ) (C )() C A B A 3)逻辑函数的特殊规律 a.同一律:A+A+A

b.摩根定律:B B A+ = A ? A +,B B A? = b.关于否定的性质A=A 二、逻辑函数的基本规则 代入规则 在任何一个逻辑等式中,如果将等式两边同时出现某一变量A的地方,都用一个函数L表示,则等式仍然成立,这个规则称为代入规则例如:C ? + A⊕ ⊕ ? B A C B 可令L=C B⊕ 则上式变成L ?=C + A A? L ⊕ ⊕ = L A⊕ B A 三、逻辑函数的:——公式化简法 公式化简法就是利用逻辑函数的基本公式和常用公式化简逻辑函数,通常,我们将逻辑函数化简为最简的与—或表达式1)合并项法: 利用A+1 A= ? B ?,将二项合并为一项,合并时可消去 = +A = A或A B A 一个变量 例如:L=B + B A= ( C +) = A C A C B B C A 2)吸收法 利用公式A A?可以是? +,消去多余的积项,根据代入规则B A B A= 任何一个复杂的逻辑式 例如化简函数L=E AB+ + D A B 解:先用摩根定理展开:AB=B A+再用吸收法 L=E + AB+ A D B

电流和电路知识点归纳总结

电流电路 一、电荷 1、摩擦过的物体物体具有吸引轻小物体的性质,我们就说物体带了电,或者说带了电荷; 二、两种电荷: 1、用绸子摩擦的玻璃棒带的电荷叫正电荷; 2、用毛皮摩擦过的橡胶棒带的电荷叫负电荷; 3、基本性质:同中电荷相互排斥,异种电荷相互吸引; 三、验电器 1、用途:用来检验物体是否带电; 2、原理:同种电荷相互排斥; 四、电荷量(电荷) 1、电荷的多少叫电荷量、简称电荷; 2、电荷的单位:库仑(C)简称库; 五、元电荷: 1、原子是由位于中心的带正电的原子核和核外带负电的电子组成; 2、把最小的电荷叫元电荷(一个电子所带电荷)用e表示;e=1.60×10-19C; 4、在通常情况下,原子核所带正电荷与核外电子总共所带负电荷在数量上相等,整个原子呈中性; 六、摩擦起电 1、原因:不同物体的原子核束缚电子的本领不同; 2、摩擦起电的实质:摩擦起电并不是创造了电荷,而是电子从一个物体转移到了另一个物体,失去电子的带正电。得到电子的带负电; 七、导体和绝缘体 1、善于导电的物体叫导体;如:金属、人体、大地、酸碱盐溶液; 2、不善于导电的物体叫绝缘体,如:橡胶、玻璃、塑料等; 3、金属导体靠自由电子导电,酸碱盐溶液靠正负离子导电; 4、导体和绝缘体在一定条件下可以相互转换; 八、电流 1、电荷的定向移动形成电流; 2、能够供电的装置叫电源。 3、规定:真电荷定向移动的方向为电流的方向(负电荷定向移动方向和电流方向相反) 4、在电源外部,电流的方向从电源的正极流向负极; 九、电路:用导线将用电器、开关、用电器连接起来就组成了电路; 1、电源:提供持续电流,把其它形式的能转化成电能; 2、用电器:消耗电能,把电能转化成其它形式的能(电灯、电风扇等) 3、导线:输送电能的; 4、开关:控制电路的通断; 十、电路的工作状态 1、通路:处处连同的电路; 2、开路:某处断开的电路; 3、短路:用导线直接将电源的正负极连同;(不允许发生) 十一、电路图及元件符号: 1、用符号表示电路连接的图叫电路图,常用的符号如下: 画电路图时要注意:整个电路图是长方形;导线要横平竖直;元件不能画在拐角处。 十二、串联和并联 十三、电路的连接方法 1、线路简其捷、不能出现交叉; 2、连出的实物图中各元件的顺序一定要与电路图保持一致; 3、一般从电源的正极起,顺着电流方向,依次连接,直至回到电源的负极; 4、并联电路连接中,先串后并,先支路后干路,连接时找准分支点和汇合点。 5、在连接电路前应将开关断开; 十四、电流的强弱 1、电流:表示电流强弱的物理量,符号I 2、单位:安培,符号A,还有毫安(mA)、微安(μA)1A=1000mA 1mA=1000μA 十五、电流的测量:用电流表;符号A 1、电流表的结构:接线柱、量程、示数、分度值 2、电流表的使用 (1)先要三“看清”:看清量程、指针是否指在临刻度线上,正负接线柱

大学电路知识点梳理

大学电路知识点梳理 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

电 路理 论总结 第一章 一、重点: 1、电流和电压的参考方向 2、电功率的定义:吸收、释放功率的计算 3、电路元件:电阻、电感、电容 4、基尔霍夫定律 5、电源元件 二、电流和电压的参考方向: 1、电流(Current ) 直流: I ①符号 交流:i ②计算公式 ③定义:单位时间内通过导线横截面的电荷(电流是矢量) ④单位:安培A 1A=1C/1s 1kA=1×103A 1A=1×10-3mA=1×10-6A=1×10-9nA ⑤参考方向 ()()/i t dq t dt

a 、说明:电流的参考方向是人为假定的电流方向,与实际电流 方向无关,当实际电流方向与参考方向一致时电流取正,相反地,当实际电流方向与参考方向不一致时电流取负。 b 、表示方法:在导线上标示箭头或用下标表示 c 、例如: 2、电压(Voltage ) ①符号:U ②计算公式: ③定义:两点间的电位(需确定零电位点)差,即将单位正电荷从 一点移动到另一点所做的功的大小。 ④单位:伏特V 1V=1J/1C 1kV=1×103V 1V=1×10-3mV=1×10-6V=1×10-9Nv ⑤参考方向(极性) i > 0 i < 0 实际方向 实际方向 ————> <———— U =dW /dq

a 、说明:电压的实际方向是指向电位降低的方向,电压的参考 方向是人为假定的,与实际方向无关。若参考方向与实际方向一致则电压取正,反之取负。 b 、表示方法:用正极性(+)表示高电位,用负极性(﹣)表示 低电位,则人为标定后,从正极指向负极的方向即为电压的参考方向或用下标表示(U AB )。 c 、例如: 3、关联与非关联参考方向 ①说明:一个元件的电流或电压的参考方向可以独立的任意的人为 指定。无论是关联还是非关联参考方向,对实际方向都无影响。 ② 关联参考方向:电流和电压的参考方向一致,即电流从所 标的正极流出。 非关联参考方向:电流和电压的参考方向不一致。 ③例如: i i U < 0 > 0 参考方向 + – + 实际方向 + 实际方向 参考方向 + – U

软件工程导论知识点

软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。 开发软件时,对于提高软件开发人员工作效率至关重要的是开发程序人员数量。 软件工程中描述软件生存周期的瀑布类型一般包括计划、需求分析、设计、编码、测试、维护等几个阶段。其中,设计阶段在管理上可以依次分成概要设计和详细设计两个步骤。 在结构化的分析方法中,用以表达系统内数据的运行情况的工具有数据流图。 在结构化的分析方法中,用实体关系图表达系统中的对象及其发展,在实体关系图中,表达对象和实体关系之间的关联有三种类型:一对一联系,一对多联系,多对多联系。 软件需求分析的任务,不应包括结构化程序设计,进行需求分析可使用多种工具,但判定表是不适用的,在需求分析中,分析员要从用户那里解决的最重要的问题是要让软件做什么。规格说明书的内容不应当包括对算法详细功能性描述,该文档在开发中具有重要的作用,但其作用不应包括软件可行性分析的依据。 原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统,它从用户界面的开发入手,首先形成系统界面原型,用户运行用户界面原型,并就同意什么和不同意什么提出意见。 一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。 一组语句在程序中多处出现,为了节省内存空间,把这些语句放在一个模块中,该模块的内聚性是偶然内聚的。 将几个逻辑上相似的成份,放在同一个模块中,通过模块入口的一个判断决定执行哪一个功能,该模块的内聚性是逻辑内聚的。 模块中所有成份引用共同的数据,该模块的内聚性是通信内聚的。 模块内的某成份的输出是另一些成份的输入,该模块的内聚性是顺序内聚的。 模块中所有成份结合起来完成一项任务,该模块的内聚是功能内聚。 模块化程序设计:1.便于由多人分工编制大型程序。2.软件功能易于扩充。3.易于理解,也便与排错。4.只要模块之间的接口关系不变,模块内部实现细节的修改将不会影响别的模块。 5.模块间的单向调用关系叫做模块的层次结构。 程序设计风格指导原则:1.嵌套的重数应加以限制。2.尽量少使用全局变量。3.使用有意义的变量名。4.把常见的局部优化工作留给编译程序去做。5.程序的格式应有助于读者理解程序。6.尽量少使用goto语句。 测试过程需要三类输入:软件配置,测试配置,测试工具。 测试的费用已超过软件开发费用的30%以上,高产的测试是指用少量的测试用例运行程序发现被测试程序尽可能多的错误,单元测试是在实现阶段完成的,集成测试的计划是在概要设计阶段制定的,确认测试的计划是在需求分析阶段制定的。 软件测试的目的是发现软件的错误,为了提高测试效率,应该选择发现错误的可能性大的数据作为测试数据。使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和制定的附带标准。与设计测试无关的文档是项目开发计划。软件的集成测试工作最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的结果。 软件调试的目的是找出错误所在,并改正之。 结构化设计是一种应用最广泛的系统设计方法,是以数据流图为基础,自顶向下,求精和模块化的过程。 概要设计的结构是提供一份模块说明书。 需求分析是由分析员了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出软件规格说明书。

相关文档
相关文档 最新文档