《软件工程考点总结(南京邮电大学)(共6页).doc》由会员分享,可在线阅读,更多相关《软件工程考点总结(南京邮电大学)(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上1. 结构化程序设计是一种典型的面向数据流的软件总体设计方法。它采用自顶向下,逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序选择和重复三种结构。2. 模块在程序设计中是数据说明,可执行语句等程序对象的集合,或者是单独的命名和编址的元素,在软件的体系结构中,模块是可组合,分解和更换的单元。构件就是可重复使用的软件组件。3. 软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现4. 单元测试是只对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。5. 多态性是指相同的操作或函数、过程可作用到多种类型
2、的对象上并获得不同的结果,不同的对象,收到同一消息可产生不同的结果,这种现象称为多态性。6. 1.软件生存周期是指一个软件从立项开始,经过制造,测试,使用和维护直到软件废止的整个时期。其方法是从时间角度对软件开发和维护的整个复杂的过程进行分解,一次划分为若干个阶段,每个阶段都有明确并且相对独立的任务和完成标志,一个阶段的任务完成后,再进入下个阶段。7. 这种按照软件生存周期划分阶段的方法,便于开发中大规模软件时不同人员的分工合作,降低了整个软件的开发难度并使软件开发过程有条不紊的进行。提高了软件的可靠性和可维护性,从而提高软件的生产效率。8. 分为可行性研究与计划,需求分析,概要设计,详细设计
3、,实现,综合测试,确认测试,使用与维护。9. 2. 软件设计的基本原理包括:10. (1)模块化:指解决问题时自顶向下的方法逐层把软件系统划分成若干个模块的过程。11. (2)抽象:是认识复杂现象过程中使用的思维工具,及抽出事物本质的共同的特性而暂不虑它的细节和其他因素。12. (3)信息隐蔽:指在设计和确定模块的时候,使得一个模块内包含的信息,对于不需要这些信息的其他模块来说不可访问。13. (4)模块独立性:指每个模块只完成系统要求的独立的功能,并且与其他模块联系最少且接口简单。14. 3. 软件测试与软件调试在目的、技术和方法等方面存在很大的区别,主要表现在:15. (1)测试从一个侧面
4、证明程序员的失败,而调试是为了证明程序员的正确。16. (2)测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的只是程序是否通过测试。调试一般以不可知的内部条件开始,除统计性调试外,结果是不可预见的。17. (3)测试是有计划的,并要进行测试设计,而调试是不受时间约束的。18. (4)测试是一个发现错误、改正错误、重新测试的过程,而调试是一个推理过程。19. (5)测试的执行是有规程的,而调试的执行往往要求程序员进行必要的推理以至知觉的飞跃。20. (6)测试经常由独立的测试组在不了解软件设计的前提下完成,而调试必须由了解详细设计的程序员完成。21. (7)大多数测试的执行和设
5、计可由工具支持,而调试时,程序员能利用的工具主要是调试器。22. 4(1)模块化(2)抽象(3)信息隐藏(4)弱耦合(5)强内聚(6)可重用23. 5软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。24. 软件危机表现在以下四个方面:25. (1)经费预算经常突破,完成时间一再拖延。26. (2)开发的软件不能满足用户要求。
6、27. (3)开发的软件可维护性差。28. (4)开发的软件可靠性差。29. 造成软件危机的原因是:30. (1)软件的规模越来越大,结构越来越复杂。31. (2)软件开发管理困难而复杂。32. (3)软件开发费用不断增加。33. (4)软件开发技术落后。34. (5)生产方式落后。35. (6)开发工具落后,生产率提高缓慢。36. 状态图是有限自动机的图形表示,它反映了状态与时间的关系37. 增量模型是在项目开发周期内,以一定的时间间隔开发部分工作软件38. 调试指确定错误的原因和位置,并改正错误的过程,也称纠错39. 流程图有称程序框图,是一种描述程序逻辑结构的工具1. 增量模型和原型模型
7、都是从概要的需求出发进行开发的,但两者有明显的不同,增量模型是从一些不完整的系统需求出发开始开发,在开发过程中逐渐发现新的需求规格说明,并进一步充实完善该系统,使之成为实际可用的系统,相反原型开发的目的是为了发现并建立一个完整的经过正式的需求规格说明,是为了降低整个软件生成期的费用而拉大需求分析阶段的一 种方法,因此,大部分原型是“用完就扔”的类型2. 首先需要进行概要的分析研究,初步确定项目的规模,目标,约束和限制。分析员再进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩设计,探索出若干种可供选择的解决方法,对每种解决方法都要研究它们的可行性,主要从3个方面考
8、虑:1) 技术可行性:一般要考虑的情况包括开发的风险,即设计出的系统能否达到要求的功能和性能,资源的有效性,相关技术的发展是否支持2) 经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要 开发的项目是否值得投资3) 社会可行性:要开发的项目是否存在任何侵权问题,运行方式在用户组织内是否可行,现有管理制度,人员素质,操作方式是否可行数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。19、内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度
9、的度量。20、(1)黑盒测试指把测试对象看成是一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称功能测试或数据驱动测试。 (2)白盒测试指把测试对象看成一个打开的盒子,测试人员需了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。 (3)白盒测试适应的测试有单元测试、逻辑覆盖、(按逻辑覆盖程度不同,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖)、循环覆盖(限制循环次数,有单循环
10、和嵌套循环)和基本路径测试。 (4)黑盒测试适应的测试有确认测试、等价类划分、边界值分析、错误推测和因果图。21、(1)为软件系统提供明确的用户需求说明。 (2)通过原型这种实现工具证实设计的可行性。 (3)应付开发过程中的问题和错误。 (4)协调用户与开发者。 开发期间,原型可作为终端用户的教学环境。判断设计方案的优劣可利用衡量模块的独立性的两个标准:耦合和内聚性(模块划分时应尽量做到高内聚、低耦合,提高模块独立性)。软件能力成熟度模型(Capability Maturity Model For Software,简称CMM),是用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软
11、件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。2.耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量。四简答题1.软件概要设计又称结构设计,这是一个把软件需求转换为软件表示(只是描述软件的总的体系结构)的过程。该阶段的基本任务是:(1)设计软件系统结构:采用某种设计方法,将一个复杂的系统按功能划分成模块。确定每个模块的功能。确定模块之间的调用关系。确定模块之间的接口,即模块之间传递的信息。评价模块结构的质量。(2)数据结构和数据库设计:在概要设计阶段,数据结构设计用于抽象的数据类型,数据库设计应用数据库的逻辑设计。(3)
12、编写概要设计文档:包括概要设计说明书、数据库设计说明书、用户手册、修订测试计划。(4)评审:对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内部接口定义正确性、有效性、各部分之间的一致性等一一进行评审。2. (1)使用标准的控制结构;(2)有限制地使用GOTO语句;(3)实现源程序的文档化;(4)满足运行工程学的输入输出风格。3. 需求分析阶段要解决的问题,是让用户和开发者共同明确将要开发的是一个什么样的系统,具体而言,需求分析主要有两个任务:第一是通过对问题及其环境的理解、分析和综合,建立分析模型; 第二是准确地定义未来系统的目标,确定为了满足用户的需求
13、系统必须做什么。用 “需求规格说明书”规范的形式准确地表达用户的需求。4. (1)可理解性;(2)可测试性;(3)可修改性;(4)可移植性;(4)可重用性5. 复杂问题(大型系统)的对象模型通常由以下5个层次组成:主题层、类与对象层、结构层、属性层、服务层。面向对象分析大体上按照下列顺序进行:寻找类与对象,识别结构,识别主题,定义属性,建立动态模型,建立功能模型,定义服务。6继承的成员函数需要测试; 子类的测试用例可以参照父类; 类测试用例设计:要进行基于故障的测试用例设计和基于用例的测试用例设计。类间测试用例设计:要借助类关系模型和类行为模型进行测试。信息隐蔽:信息隐蔽是指所有的软件部件内部
14、都有明确的范围以及清楚的外部边界。每个软件部件内部都有友好的界面接口,软件部件的内部实现与外部可访问性的分离。2 软件原型:软件原型是软件的一个早期可运行的版本,反映了最终系统的重要特征。1 在项目开发周期内,以一定的时间间隔开发部分工作软件。2数据流是数据流图边界上的图的输入/输出流用来对对象的输出与处理,处理与对象的输入处理联系起来,在一个计算中用数据流来表示中间数据值,这些数据流可以与对象相关,也可以不相关。3软件质量保证就是向用户及社会提供满意的高质量产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动。4文档是指某种数据媒体和其中所记录的数据,在软件工程中文档用来表示对需求,工程
15、或结果进行描述定义规定报告或认可的任何书面或图示信息。它们描述和规定了软件设计和实现的细节说明使用软件操作命令。四、简答题:1、黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程只在软件的接口处进行测试,依据需求规格说明书,被查程序是否满足功能要求又称功能测试,或数据驱动测试白盒测试只把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础对程序中尽可能多的逻辑路径进行测试,检验内部控制结构,和数据结构是否有错实际的运行状态与预期的状态是否一致白盒测试适应的测试有单元测试逻辑覆盖,(按逻辑覆盖程度不同,有语句覆盖,判定覆盖,条
16、件覆盖,判定/条件覆盖 条件组合覆盖和路径覆盖)循环覆盖和基本路径测试。黑盒测试适应的测试有确认测试,等价类划分,边界值分析,错误推测和因果图。2、为了提高源程序的可维护性,源程序也需要实现文档化(code documentation)。源程序的文档化包括以下3个方面的内容:(1)有意义的变量名称;(2)适当的注释;(3)标准的书写格式:l 用分层缩进的写法显示嵌套结构的层次;l 在注释段的周围加上边框;l 在注释段与程序段、以及不同程序段之间插入空行;l 每行只写一条语句;l 书写表达式时,适当使用空格或圆括号等作隔离符。 3、(1)使用标准的控制结构;(2)有限制地使用GOTO语句;(3)实现源程序的文档化;(4)满足运行工程学的输入输出风格。4、(1)建立明确的软件质量目标;(2)利用先进的软件开发技术和工具;(3)建立明确的质量保证工作(4)选择可维护的程序设计语言;(5)改进程序文档。专心-专注-专业