13.结构化设计简称 ,分为 和
14.软件工程方法学的三要素是 方法 工具 过程
15.软件设计的准则是 、 、 和
16.JACKSON方法是面向 面向数据结构 的设计方法,它有 种逻辑结构 17.软件过程模型中 模型是描述用户的动态需求的, 模型是带有风险驱动的
18.结构化设计方法是面向 过程 的设计方法
19.传统的软件工程方法学采用 结构化分析技术 完成系统分析工作的 20.模块的独立性要求 高 内聚 低 耦合
21.在软件测试的步骤中, 单元 测试是检验每个模块能否单独工作 22.调试是是在测试发现错误之后 (排除错误)纠错 的过程 23.成本/效益分析是从 方面进行可行性研究 24.Jackson方法是面向 数据结构 的软件设计方法
25.内聚越高模块的独立性 越好 ;耦合越高模块的独立性 越差 26.软件维护又称为软件的 二次开发 三.判断:
1、开发软件就是编写程序。 (×)
2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及
可靠性等测试。(×)
3、生产高质量的软件产品是软件工程的首要目标。(√ ) 4、只有了解用户、了解任务,才能设计出好的用户界面。(√) 5、对象是具有相同状态的一组操作的集合。(√)
6、用户本身的技能,个性上的差异,行为方式的不同,不会对人机界面使用造成影响。(×)
7、编程序时应尽可能利用硬件特点以提高程序效率. (×)
8、软件开发人员对用户需求的理解有偏差,这将导致软件产品与用户的需求不一致,是产生软件危机的唯一原因。( ×)
9、开发一个软件项目总存在某些不确定性,即存在风险。有些风险如果控制得不好,可能导致灾难性的后果。(√ )
10. 程序的可靠性、可维护性和效率通常由程序设计语言、源代码的质量、和语言
的实现机制决定的。(√)
11、一般单元测试不可以并行进行。( × )
12.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(√ ) 13.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(×)
14.如果通过软件测试没有发现错误,则说明软件是正确的。(× ) 15.快速原型模型可以有效地适应用户需求的动态变化。( √ )
16.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。( ×)
17.用PDL语言写出的程序不可以在计算机上运行 (√) 18.黑盒测试主要用于测试步骤的后期阶段 (√) 19.白盒测试主要用于测试步骤的后期阶段 (×) 20.测试就是调试,都是在计算机上运行程序的 (×) 四、简答题 1.什么是软件危机
计算机软件的开发和维护过程所遇到的一系列问题。 2.什么是黑盒测试和白盒测试
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 3.软件开发和写程序有什么不同 软件包含程序,程序是软件的一部分。 软件是程序、数据及其相关文档的完整集合。
程序只是为了实现软件的功能和性能要求而编写的指令序列 4.软件设计的准则
5.什么是软件的生命周期,包含哪些阶段
是软件产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段 6.软件测试的步骤有哪些,含义是什么 7.软件过程模型有那些,各自特点是什么 8. 比较黑盒测试和白盒测试的优缺点
黑盒测试的优点:适应于阶段测试,从产品功能角度测试,容易入手生成测试数据。 缺点:某些代码得不到测试,如果规格说明有误,可能无法发现,不易进行充分性测试。
白盒测试的优点:可构成测试数据使特定程序部分得到测试,有一定的充分性度量手段,
可生成较多工具支持。
缺点:不易生成测试数据,无法对未实现规格说明的部分进行测试,作量大通常只用于单元测试有应用局限。
9. 衡量模块独立性的标准是什么,并解释与模块独立的具体关系
内聚性和耦合性。 模块的内聚性越高耦合性越低则模块越独立,反之越不独立。 10.详细设计用到的有哪些工具 五.综合题
1.画出银行储蓄系统、航空售票系统、患者监护系统、运动会管理系统的DFD,信用卡管理系统
2.给出DFD会转换为SC(结构图) 3.给出一段代码会画出PAD(问题分析图)
作业总汇:
一.以下说明和数据流图,回答问题1-4,讲解答填入答题纸的对应栏内。
说明:现准备为某银行开发一个信用卡管理系统CCMS,改系统的基本功能为: 1.信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申请者的基本信息,提交CCMS。如果信用卡被银行接受,CCMS将记录该客户的基本信息,并发送确认函给客户,告知客户信用卡的有效期限及信贷限额;否则该客户将会收到一封拒绝函。非信用卡客户收到确认函后成为信用卡客户。
2.信用卡激活。信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡。激活操作结束后,CCMS将激活通知发给客户,告知客户其信用卡是否成功激活。
3.信用卡客户信息管理。信用卡客户的个人信息可以在CCMS中进行在线管理。每位信用卡客户可以在线查询和修改个人信息
4.交易信息查询。信用卡客户使用信用卡进行的每一笔交易都会记录在CCMS中。信用卡客户可以通过CCMS查询并核实其交易信息(包括信用卡交易记录及交易金额) 下面是它的顶层图和0层图: 问题:
1. 将顶层图中得E1-E3填充完整
2. 顶层图中缺少三条数据流,根据上面的说明,分别指出这三条数据流的起点和终点 3. 0层图中有两条数据流是错的,请指出这两条数据流的名称,并改正 4. 根据说明,将0层图中得P1—P4的处理名称填充完整
E1 拒绝函 信用卡申请信P0 信用卡管理系统 E3 确认函 查询| 修改个人信息 信用卡申请验证激活通知 E2 交易记录查询请个人信息 交易信交易记录查询请P1 查询| 修改个人个人信息 P2 E2 激活通P3 拒绝函 激活请求 E1 信用卡申请表 P4 信用卡申请信E3 确认函 信用卡申请验证
二.是某系学籍管理的一部分(A)(B)分别是同一模块A的两个不同的设计方案,你
认
为
哪
一
个
设
计
方
案
较
好
?
请
陈
述
理
由
班级 成绩总班级 成绩总A取班级成A取班级成平均/ 最高成绩
平均成绩 成绩 B 取平均成B 取最高成成绩 学号 学号 C取个人成成绩 学号 C取个人成成绩 最高成B取平均成(A)图
(B)图
我认为(b)方案较好。要评价一个软件结构设计,主要看模块的独立性,要从软件结构的耦合性和内聚性两个方面来衡量。对于(a)方案,模块A 与模块B 之间形成了控制耦合,因此独立性不高,而在B 模块内部,有两个不同的功能被放在一起,形成的是逻辑内聚,内聚性不高。对于(b)方案,模块A 与B1 和B2 之间是数据耦合,独立性较强,在B1 和B2 内部,只完成单一的功能,是功能内聚,因此内聚性高,可维护性好,因此相比而言(b)方案比(a)方案更好些。
3(07年下)对于如下的程序流程,当采用语句覆盖法设计测试案例时,至少需要设计( 2 )个测试用例。