软件工程复习、考试题

  • 格式:docx
  • 大小:651.65 KB
  • 文档页数:9

软件危机的典型表现:
1.对软件开发成本和进度估计的常常很不准确
2.用户对“已完成的”软件系统不满意的现象经常发生
3.软件产品的质量往往靠不住
4.软件常常是不可维护的
5.软件通常没有适当的文档资料
6.软件成本在计算机系统总成本中所占的比例逐年上升
7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势软件工程的定义:
采用工程的概念、原理、方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程的基本原理:
1.用分阶段的生命周期计划严格管理
2.坚持进行阶段评审
3.实行严格的产品控制
4.采用现代程序设计技术
5.结果应能清楚的审查
6.开发小组人员应该少而精
软件工程方法学:
包含三个要素:方法,工具和过程
使用的最广泛的软件工程方法学,分别是传统方法学和面向对象方法学
软件生命周期:
软件定义时期的任务:
1.确定软件开发工程必须完成的总目标
2.确定工程的可行性
3.导出实现工程目标应该采用的策略及系统必须完成的功能
4.估计完成该项工程需要的资源和成本,并制定工程进度表
软件开发时期:
1.总体设计
2.详细设计
3.编码和单元测试
4.综合测试
软件维护时期:
1.当软件在使用过程中发现错误时应该加以改正
2.当环境改变时应该修改软件以适应新的环境
3.当用户有新要求时应该及时改进软件以满足用户的新需要
软件过程
瀑布模型
1.阶段见具有顺序性和依赖性
2.推迟实现的观点
3.质量保证的观点
快速原型模型增量模型螺旋模型喷泉模型
可行性研究
1.技术可行性
2.经济可行性
3.操作可行性
p38系统流程图看看看p40数据流图看看看
p47数据字典1.数据流 2.数据流分量3.数据存储 4.处理
需求分析
需求分析的任务:
1.功能需求通过需求分析应该划分出系统必须完成的所有功能
2.性能需求系统必须满足的定时约束或容量约束,通常包括时间、信息量速率、主存储量、磁盘容量、安全性等方面的需求
3.可靠性和可用性需求可靠性需求定量的指定系统的可靠性
4.出错处理需求
5.接口需求
6.约束
7.逆向需求
8.将来可能提出的要求
访谈正式的和非正式的分发调查表情景分析技术E-R图
总体设计系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。

总体设计过程:
1.设想供选择的方案
2.选取合理的方案
3.推荐最佳方案
4.功能分解
5.设计软件结构
6.设计数据库
7.制定测试计划
8.书写文档
9.审查和复审
设计原理模块化抽象逐步求精信息隐藏和局部化模块独立
1.耦合尽量使用数据耦合,少用控制耦合和特征耦合限制公共环境耦合的范围完全不用内容耦合
2.内聚优劣评分:功能内聚顺序内聚通信内聚过程内聚时间内聚逻辑内聚偶然内聚
启发规则
1.改进软件结构提高模块独立性
2.模块规模应该适中
3.深度、宽度、扇出和扇入都应适当
4.模块的作用域应该再控制域应该再控制域之内
P102 层次图和HIPO图结构图
面向数据流的设计方法概念:1.变换流 2.事物流 3.设计过程
设计步骤:
1.复查基本系统模型
2.复查并精化数据流图
3.确定数据流图具有变换特性还是事物特性
4.确定输入流和输出流的边界,从而孤立出变换中心
5.完成第一级分解(①输入信息处理控制模块Ca,协调对所有输入数据的接收②变换中心控制模块Ct,管理对内部形式的数据的所有操作③输出信息处理模块Ce,协调输出信息的生产过程)
6.完成第二级分解(①从变换中心的边界开始逆着输入通路向外移动,把输入通路中每个处理映射成软件结构中Ca控制下的一个底层模块②沿着输出通路向外移动,把输出通路中每个处理映射成直接或间接受模块Ce控制的一个低层模块③把变换中心内的每个处理映射成受Ct控制的一个模块)
7.使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化
第六章全是图。

1、选择程序设计语言的实用标准:(1)系统用户的要求.(2)可以使用的编译程序(3)可以得到的软件工具.(4)工具规模.(5)程序员的知识.(6)软件可移植性要求.(7)软件的应用领域.
2、编码的规则:(1)程序内部的文档:恰当的标识符、适当的注解、程序的视觉组织.(2)数据说明.(3)语句构造.(4)输入输出.(5)效率.
3、软件测试:(1)为了发现程序中的错误而执行程序的过程.(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案.(3)成功的测试是发现了至今为止尚未发现的错误的测试.
4、测试方法:黑盒测试、白盒测试.
5、测试步骤:(1)模块测试.(2)子系统测试(3)系统测试(4)验收测试.(5)平行运行
6、测试阶段的信息流有两类:(1)软件配置,包括需求说明书,设计说明书和源程序清单.(2)测试配置,包括测试计划和测试方案
7、从以下5个模块进行单元测试:(1)模块接口.(2)局部数据结构(3)重要的执行通路.(4)出错处理通路.(5)边界条件.
8、集成测试的策略:(1)自顶向下优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误.缺点:需要存根程序,可能遇到与此相联系的测试困难,底层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力.(2)自底向上.
9、回归测试:是指重新执行已经做过的测试的某个子集,用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动. 10、白盒测试的逻辑覆盖:(1)语句覆盖.(2)判定覆盖.(3)条件覆盖.(4)判定/条件覆盖.(5)条件组合覆盖
11、黑盒测试:着重测试软件功能。

黑盒测试力图发现下述类型的错误:(1)功能不正确或遗漏了功能(2)界面错误.(3)数据结构错误或外部数据库访问错误(4)性能错误.(5)初始化和终止错误.
12、软件可靠性:是程序在给定时间间隔内,按照规格说明书的规定成功地运行的概率.
13、软件可用性:是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率.
14、软件维护:软件已经交付使用后,为了改正错误或满足新的需要而修改软件的过程.
15、Cocomo2模型(构造性成本模型)3个层次的估算模型:应用系统组成、早期设计、后体系结构.
16、CMM:评价软件机构的软件过程能力成熟度模型.它的五个等级从低到高是:初始级(1级)、可重复级、已定义级、已管理级、优化级.
P73 .3 大题的类型:。