软件工程导论 复习资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
名词解释:
1.软件生命周期模型
软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等
2. 模块独立性
模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且
接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
3. 软件的可维护性
软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。
4. 软件工程
软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。
5.数据字典
字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细
的描述。
6、静态测试
静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。
7、面向对象:面向对象OO=类+对象+继承+通信
8、需求分析
需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格
说明)的过程。
9、软件危机
软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重
问题。概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
10、软件生存周期
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。
简答:
1.软件生存周期有哪几个阶段?
①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护
2.白盒测试法有哪些逻辑覆盖标准?
①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖
3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④预防性维护。4.软件成分的重用有哪3个级别?:①代码重用②设计结果重用③分析结果重用
5.设计任务管理子系统有哪7个任务?
①确定事件驱动型任务②确定时钟驱动任务③确定优先任务④确定关键任务⑤确定协调任务⑥尽量减少任务数⑦确定资源需求
6.类构件的重用包括哪3种方式?:①实例重用②继承重用③多态重用
7.提高可重用性的7条准则是哪些?
①提高方法的内聚②减小方法的规模③保持方法的一致性④把策略与实现分开⑤全面覆盖⑥尽量不使用合局信息⑦利用继承机制
8.提高可扩充性的4条准则是哪些?
①封装实现策略②不要用一个方法遍历多条关联链③避免使用多分支语句④精心确定公有方法
9.提高健壮性的4条准则是哪些?
①预防用户的操作错误②检查参数的合法性③不要预先确定限制条件④先测试后优化10.列举PDL语言的优点与缺点有哪些?
PDL语言的优点:①可以作为注释插在源程序中间;②可以使用普通的正文编辑程序或文字处理系统,很方便完成PDL的书写和编辑工作;③可以利用已有的自动处理程序自动由PDL生成程序源代码。
PDL语言的缺点:①不如图形工具直观。②描述复杂的条件组合与动作之间的对应关系时,不如判定表和判定树时简单。
11. 如何改进软件设计、提高软件质量?
(1)提高模块的独立性。(2)模块规模应该适中。(3)适当选择深度、宽度、扇出和扇入。(4)模块的作用域应该在控制域之内。(5)力争降低模块接口的复杂程度。(6)设计单入口单出口的模块。(7)模块功能应该可以预测。
12. 以G.J.Myers的观点,简述对软件测试的目的。
软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。
13. 软件质量保证应做好哪几方面的工作?
(1)采用技术手段和工具。(2)组织正式技术评审(3)加强软件测试(4)推行软件工程规范(标准)。(5)对软件的变更进行控制(6)对软件质量进行度量。
14. 下列模块的内聚类型是什么?再把它们按内聚的大小由小到大排列。
(1)使用同一数据来源产生两种报告(2)求一元二次方程的根(3)计算最高成绩和平均成绩(4)系统初始化处理
【1】通信内聚,功能内聚,逻辑内聚,时间内聚【2】(3)->(4)->(1)->(2)
15. 什么是黑盒测试法?常用的黑盒测试方法有哪些?
将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。常见方法:等价类划分、边界值分析、因果图、错误推测。
16. 选择程序设计语言应考虑哪些因素?
①项目的应用领域,是选择语言的关键因素。②软件开发方法:选择语言有时依赖该因素。③软件执行环境:对软件生产率、错误率和软件质量有影响。④算法和数据结构的复杂性。⑤软件开发人员的知识。与开发人员的知识水平和心理因素有关,有时对语言选择有影响。
17. 什么是模块耦合性,有哪些类型?
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
耦合性种类:数据耦合、标记耦合、控制耦合、公共耦合、内容耦合
18.软件维护有哪些内容?:a、校正性维护b、适应性维护c、完善性维护d、预防性维护