《软件工程》总复习题 一、1. 从供选择的答案中选出应填入下列叙述中( )内的正确答案。 软件设计中划分程序模块通常遵循的原则是使各模块间的耦合尽可能( A )。三种可能的模块耦合是: ( B ),例如,一个模块直接引用另一个模块中的数据。 ( C ),例如,一个模块把开关量作为参数传送给另一个模块。 ( D ),例如,一个模块通过公共数据结构把数据传送给另一个模块。 其中, ( E )的耦合性最强。 【供选择的答案】 A: ① 强 ② 适中 ③ 弱 B~E: ① 公共耦合 ② 数据耦合 ③ 逻辑耦合 ④ 外部耦合 ⑤ 内容耦合 ⑥ 控制耦合 2. 从供选择的答案中选出适当的字句填入下面关于程序生产率的描述中的 ( ) 内。 (1) 1960年底Dijkstra提倡的 ( A ) 是一种有效的提高程序设计效率的方法。 (2) Dijkstra为了使程序结构易于理解,把基本控制结构限于顺序、( B )、( C ) 3种,应避免使用 ( D )。 (3) ( A ) 不仅提高程序设计的生产率,同时也容易进行程序的 ( E )。 供选择的答案: A. ① 标准化程序设计 ② 模块化程序设计 ③ 多道程序设计 ④ 宏语言 ⑤ 结构化程序设计 ⑥ 汇编语言 ⑦ 表格处理语言 B, C. ① 分支 ② 选择 ③ 重复 ④ 计算 ⑤ 输入输出 D. ① GOTO语句 ② DO语句 ③ IF语句 ④ REPEAT语句 E. ① 设计 ② 调试 ③ 维护 ④ 编码 3、为高质量地开发软件项目,在软件结构设计时必须遵循( A )的原则,( B )建立软件系统的模块结构。并且应根据( C )评价系统模块划分的质量。此外在模块设计时,应从5种基本的( D )出发,利用它们组合成一个模块的程序块结构。 要求每个( E )的结构应是单入口和单出口。 【供选择的答案】 A:① 质量控制 ② 程序优化 ③ 信息隐蔽 ④ 数据共享 ⑤ 模块通信 B:① 自底向上 ② 自顶向下 ③ 衍变的自顶向下 ④ 随机 ⑤ 回归 C:① 数据独立性 ② 程序独立性 ③ 模块独立性 ④ 可修改性 ⑤ 可理解性 D:① 数据结构 ② 处理结构 ③ 功能结构 ④ 成份 ⑤ 控制结构 E:① 程序块 ② 公共块 ③ 数据块 ④ 记录块 ⑤ 通信块 二、从下列叙述中选出5条关于好的程序设计风格的正确叙述。(在对的前面打√) (1) 使用括号以改善表达式的清晰性。 (2) 对递归定义的数据结构不要使用递归过程。 (3) 尽可能对程序代码进行优化。 (4) 不要修补不好的程序, 要重新写。 (5) 不要进行浮点数的相等比较。 (6) 应尽可能多地输出中间结果。 (7) 利用数据类型对数据值进行防范。 (8) 用计数方法而不是用文件结束符或输入序列结束符来判别输入的结束。 (9) 程序中的注释是可有可无的。 (10) 使用有意义的标识符。 三、阅读下列关于开发人事管理系统的交互式工作方式的叙述,再回答问题。 某大企业最近决定采用高性能微机开发人事管理系统,将四台联机终端分置于人事处的三个科室。该系统可供操作员和程序员使用,也可供人事处负责人和主管人事的副厂长等查询人事信息用。人事管理系统通过录入人事数据和修改、删除等操作,产生和更新各类人事文件,通过搜索这些文件进行各类人事信息的查询。 该企业有3000多个工人、干部和技术人员,大体可分成机关科室、生产车间、后勤服务和开发研制部门等几类部门。厂领导决定由计算机应用科来负责协调和开发应用系统。计算机应用科科长指示系统工程师张某负责进行系统分析。 考虑到人事处有大量的查询信息要求、频繁的人事信息修改和文件存档、查阅等特点,计算机应用科决定认真设计人机交互界面,首先设计好在终端上的交互式会话的方式。 系统工程师张某通过调查收集到如下10条意见: (1) 某程序员认为:系统在屏幕格式、编码等方面应具有一致性和清晰性,否则会影响操作人员的工作效率。 (2) 某操作人员认为:在交互式会话过程中,操作人员可能会忘记或记错某些事情,系统应当提供HELP功能。 (3) 某操作人员认为:既然是交互式会话,那么对所有的输入都应当作出响应,不应出现击键后,计算机没有任何反应的情况。 (4) 某操作人员认为:在出错的时候,交互式会话系统应当给出出错信息,并且尽可能告诉我们出错的性质和错在什么地方。 (5) 某程序员认为:终端会话也应当符合程序员编制程序时的习惯,这样可以更高效地维护人事管理系统。 (6) 教育科干部甲认为:应当对操作员进行一些必要的培训,让他们掌握交互式会话系统的设计技巧,有助于提高系统的使用效率。 (7) 教育科干部乙认为:尽管操作人员的指法已经强化训练但在交互式会话时应尽可能缩短和减少操作员输入的信息,以降低出错概率。 (8) 某程序员认为:由于本企业中有很多较大的文件,文件的查找很费时间,交互式会话系统在响应时间较长时应给予使用者以提示信息。 (9) 人事处干部丙认为:我们企业的人事资料相当复杂,格式非常之多,希望交互式系统使用十分清晰的格式,并容易对输入数据中的错误进行修改。 (10) 人事处干部丁认为:人事管理系统应当具有相当的保密性和数据安全性,因此在屏幕上显示出的信息应该含混一些,以免泄密。 系统工程师张某对上述调查情况和其他要求作了分析后,发现收集到的10条意见中有3条意见是不能接受的,写出编号并各用40字以内叙述理由。 四、Petri网可以描述计算机软件系统的执行。现有一个程序如下(类似于Pascal语言) L : S1; WHILE P1 DO BEGIN IF P2 THEN S2 ELSE S3; COBEGIN S4; S5; S6; COEND END; GOTO L; 其中,P1和P2为逻辑表达式,S1S6是单个执行语句,COBEGIN和COEND是并行执行开始和并行执行结束(即S4,S5和S6语句并行执行)。试用Petri网描述这段程序的执行过程。 五、下面是一段用赛德尔迭代法求解线性方程组的程序。其中A[n,n] 是方程组的系数矩阵, B[n]是方程组的右端项,X[n] 是方程组的解向量。eps是控制迭代精度的较小实数。imax是控制迭代的最大次数。flag是标志,=0,表示迭代不收敛;=1,表示迭代收敛。 for k := 1 to n do X[k] := 0.0; X[n] := 1.0; for i := 1 to imax do begin flag := 1; for j := 1 to n to begin s := B[j]; for k := 1 to n do begin if j =k then s := s + X[k]; s := s-A[j, k] * X[k] end; if abs(X[j]-s) > (abs(s) + 1.0) * eps then flag := 0; X[j] := s; end; if flag =1 then goto L1; end; L1: (1) 试画出它的结构化的程序流程图。 (2) 将它改为N-S图。 (3) 计算它的McCabe环路复杂性。 六,问答题 1.如何理解模块独立性?用什么指标来衡量模块独立性? 2.什么是软件测试?软件测试的目的和原则是什么? 本文来源:https://www.wddqw.com/doc/fe62660d581b6bd97f19ea88.html