软件工程期末复习.pdf_第1页
软件工程期末复习.pdf_第2页
软件工程期末复习.pdf_第3页
软件工程期末复习.pdf_第4页
软件工程期末复习.pdf_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软将工程期末试题 0.试题类型 简答、论述、画图分析 1.软件工程的概念 用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。(课本) 将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。(IEEE) 2.软件工程三要素 方法、工具、过程 3.软件 计算机软件是与计算机操作系统有关的程序、规程、规则及任何与之有关的文档和数据 软件程序+数据+文档 程序算法+数据结构 4.软件工程目标是什么 在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可 适应性、可移植性、可追踪性和可互操作性并满足用户需求的产品。 5.软件开发模型 软件开发模型是指软件开发全部过程、活动和任务的结构框架。 6.原型模型 它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。原型模型的 第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细 化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么; 第二步则在第一步的基础上开发客户满意的软件产品。 7.瀑布模型 也称为软件生存周期模型。根据软件生存周期各个阶段的任务,瀑布模型从可行性研究开始,逐步进行阶段 性变换,直到通过确认测试并得到用户确认的软件产品为止。瀑布模型上一阶段的变换结果是下一阶段变换 的输入,相邻两个阶段具有因果关系,紧密相连。 8.简述软件的生命周期包括哪些阶段及子阶段 软件生命周期: 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程 子阶段: 软件定义、软件开发、软件使用和维护 9.软件测试的目的 软件测试是为了发现程序中的错误而执行程序的过程 测试只能找出程序中的错误,而不能证明程序无错 10.软件测试可以大致分为哪几个阶段 单元(模块)测试 综合测试 11.黑盒测试 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能 打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能 是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测 试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身 设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。 主要诊断以下几类错误: 不正确或遗漏的功能 界面错误 数据结构或外部数据库访问错误 性能错误 初始化和终止条件错误 黑盒测试法和白盒测试法不能互相替代,相反,两者互为补充,在测试的不同阶段为发现不同类型的错误而 灵活选用 黑盒测试技术: 等价分类法 主要思想是把程序的输入数据集合按输入条件划分为若干个等价类,每一等价类相对于输入条件表 示为一组有效或无效的输入,然后为每一等价类设计一个测试用例,这样即可大大减少测试的次 数,又不丢失发现错误的机会。 边界值分析法 是等价分类技术的补充,即在一个等价类中不是任选一个元素作为此等价类的代表进行测试,而是 选择此等价类边界上的值。 对比测试法 12.白盒测试 白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方 法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作 的。“白盒“法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒“法是穷举路径测试。在使用这一 方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数 是天文数字。 白盒测试应该根据程序的控制结构设计测试用例,原则是: 保证模块中每一独立的路径至少执行一次 保证所有判断的每一分支至少执行一次 保证每一循环都在边界条件和一般条件下至少执行一次 验证所有内部数据结构的有效性 白盒测试技术: 基本路径测试 控制结构测试 13.单元测试、综合测试和确认测试,它们主要用的测试方法各是什么? 单元测试 单元测试的对象是软件设计的最小单位模块。单元测试的依据是详细设计描述。单元测试应对模块 内所有重要的控制路径设计测试用例,以便发现模块内部错误。 单元测试多采用白盒测试技术,系统内部多个模块可以并行地进行测试。 综合测试 综合测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行综 合测试以便发现与接口有关的各种错误。 非增量式集成方法 非增量式集成方法是把所有模块要求一次全部组装起来,然后进行整体测试。 这种方法容易出现混乱。因为测试时可能发现一大堆错误,为每个错误定位和纠正非常困难,并且 在改正一个错误的同时有可能引入新的错误,新旧错误混杂,更难断定出错的原因和位置。 增量式集成方法 增量式集成方法是程序一段一段地扩展,测试的范围一步一步增大,错误易于定位和纠正,界面的 测试亦可做到完全彻底。 自顶向下集成(方法) 自底向上集成(方法) 确认测试 通过综合测试之后,软件已经完全组装起来,接口方面的错误也已排除,软件测试的最后一步确认 测试即可开始。确认测试应检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标 准。 测试 尽可能逼真地模拟实际运行环境和用户对软件产品的操作,并最大努力涵盖所有可能的用户操作方 式。 测试 经过测试的软件产品称为版本。测试是指软件开发公司组织各方面的典型用户在日常工作中实 际使用版本,并要求用户报告异常情况、提出批评意见。 14.软件设计的主要内容有哪些 数据设计 把信息描述转换为实现软件所需求的数据结构 总体结构设计 旨在确定程序各主要部件之间的关系 过程设计 完成每一部件的过程化描述 15.模块 把软件划分为可独立命名和编址的部件,每一个部件称为一个模块 16.模块的独立性 模块所含信息对于那些不需要这些信息的模块不可访问 每个模块只完成一个相对独立的特定功能 模块之间仅仅交换那些为完成系统功能必须交换的信息 17.模块内聚度和耦合度 内聚度 是前述隐藏信息和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。 内聚度按其高低程度可分为7级,内聚度越高越好。 低级内聚(偶然性内聚、逻辑性内聚、实践性内聚) 中级内聚(过程性内聚、通信性内聚) 高级内聚(顺序性内聚、功能性内聚) 耦合度 是对软件结构中模块间关联程度的一种度量。耦合的强弱取决于模块间接口的复杂性、进入或调用模块 的位置以及通过界面传送数据的多少等。与内聚度正好相反,在设计软件时应追求尽可能松散耦合的系 统。(模块间联系少,错误在模块间传播的可能性也随之变小) 非直接耦合、数据耦合、控制耦合、特征耦合、外部耦合、公共耦合、内容耦合(最高) 18.需求分析主要分析研究哪些方面的问题? 需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析, 准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义, 从而确定系统必须做什么的过程。 方面: 功能性需求:软件必须完成哪些事,必须实现哪些功能,以及为了向其用户提供有用的功能所需执行的 动作 。开发人员需要亲自与用户进行交流,核实用户需求,从软件帮助用户完成事务的角度上充分描述 外部行为,形成软件需求规格说明书。 非功能性需求:作为对功能性需求的补充,软件需求分析的内容中还应该包括一些非功能需求。主要包 括软件使用时对性能方面的要求、运行环境要求。软件设计必须遵循的相关标准、规范、用户界面设计 的具体细节、未来可能的扩充方案等。 设计约束:一般也称做设计限制条件,通常是对一些设计或实现方案的约束说明。例如,要求待开发软 件必须使用Oracle数据库系统完成数据管理功能,运行时必须基于Linux环境等。 19.UML UML(Unifi ed Modeling Language)又称统一建模语言或标准建模语言,是面向对象技术发展的一个重要里程 碑。UML统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的 表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。 20.UML共有哪些图,可以分为哪几类 用例图 静态图(类图、对象图、包图) 行为图 交互图(顺序图、合作图) 状态图 活动图 实现图(构件图、部署图) 21.信息流 变换流的概念 在基本系统模型(即顶级数据流图)中,信息通常以“外部世界”所具有的形式进入系统,经过处理后又 以这种形式离开系统。 事务流的概念 单个数据项称为事务,沿传入路径(也称接受通道)进入系统,由外部形式变换为内部形式后到达事务 中心,事务中心根据数据项计值结果从若干动作路径中选定一条继续。 22.论述变换分析法,结合图例说明 变换分析由一系列设计步骤组成,经过这些步骤就能把具有变换流特点的数据流图按预先确定的模式映射成 软件结构。 复审基本系统模型 复审和精化软件数据流图 确定DFD的特性,判定它为变换流还是事务流 划定输入流和输出流的边界,孤立变换中心 执行“一级分解” 执行“二级分解” 采用启发式设计策略,精化所得程序结构雏形,改良软件质量对于程序结构的雏形,以“模块孤立”为指 导思想,对模块或合或拆,旨在追求高内聚、低耦合、易实现、易测试、易维护的软件结构 23.论述事务分析法,结合图例说明 当数据流具有明显的事务特征时,即能找到一个事务和一个事务中心,采用事务分析法更为适宜。 复审基本系统模型 复审并精化软件数据流图 确定数据流图的特性 指出事务中心,确定由事务中心发出的每一动作路径的数据流特性 把数据流图映射为事务处理型的程序结构 分解并精化事务结构以及每条动作路径所对应的结构 使用启发式设计策略,精化所得程序结构雏形,改良软件质量 24.面向对象的概念 面向对象=对象+类+继承+聚类+消息 25.软件维护可以分为哪几类?各有什么特点? 纠错性维护 为了诊断和改正软件系统中潜藏的错误而进行的活动 适应性维护 为适应环境的变化而修改软件的活动(软硬件环境) 改善性维护 根据用户在使用过程中提出的一些建设性意见而进行的维护活动 预防性维护 为了进一步改善软件系统的可维护性和可靠性,并未以后的改进奠定基础 26.面向规模的度量和面向功能的度量的特点比较 面向规模的度量 用软件项目的代码行数表示软件项目的规模是十分自然和直观的。利用代码行数不仅能度量软件的规 模,而且还可以度量软件开发的生产率、开发每行代码的成本、文档与代码的比例关系、每千行代码存 在的软件错误个数等。 缺点是: 代码行数的估算依赖于程序设计语言的功能和表达能力; 采用代码行估算方法会对设计精巧的软件项目产生不利的影响; 在软件项目开发前或者开发初期估算它的代码行数非常困难; 代码行估算只适用于过程式程序设计语言,对非过程式的程序语言不太实用。 面向功能的度量 是涉及多种因素的间接度量方式 优点是: 与程序设计语言无关,它不仅适用于过程式语言,也适用于非过程式的语言; 因为软件开发初期能基本确定系统的输入、输出等参数,所以功能点度量能用于软件项目的开发初 期; 缺点是: 它涉及到的主观因素比较多,如各种权函数的取值; 信息领域中的某些数据又是不容易采集; FP(功能点)的值没有直观的物理意义。 27.什么是结构化的方法与面向对象的方法?各有什么具体的建模工具来实现 分析与设计。 结构化方法 结构化方法也称新生命周期法,是生命周期法的继承与发展,是生命周期法与结构化程序设计思想的结 合。 结构化方法的基本要点是:自顶向下、逐步求精、模块化设计、结构化编码。 结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术 为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法 的结构合理性和系统的结构合理性的软件分析方法。 结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽 化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。 结构化方法按软件生命周期划分,有结构化分析(SA),结构化设计(SD),结构化实现(SP)。 其中 要强调的是,结构化方法学是一个思想准则的体系,虽然有明确的阶段和步骤,但是也集成了很多原则 性的东西,所以学会结构化方法,不是能够单从理论知识上去了解就足够的,要的更多的还是实践中慢 慢的理解个个准则,慢慢将其变成自己的方法学。 面向对象方法 面向对象方法是使用现实世界的概念把系统分为不同的对象,通过对象的继承,调用等方式,以一种相 对和现实世界解决问题的方法接近的方式解决问题。 UML图 封装性、继承性、多态性 28.绘制数据流图 数据流图(Data Flow

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论