软件工程基础(汇总资料-本科课程)
更新时间:2023-11-11 12:41:01 阅读量: 教育文库 文档下载
- 软件工程基础推荐度:
- 相关推荐
一、填空题
1.软件是一种产品,同时又是开发和运行产品的载体。
2.软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
3.软件危机包括下面两方面的问题:如何开发软件,满足对软件的日益增长的需求和如何维护数量不断膨胀的已有软件。
4.软件工程学的内容可包括:理论、结构、方法、工具、环境、管理、规范等。(全部加下划线表示考查其中某1-2个空,下同)
5.软件生存周期一般可分为以下阶段:问题定义、可行性研究、需求分析、设计、编码、测试、运行与维护。
6.软件生存周期也可分为三个大阶段:计划阶段、开发阶段、维护阶段。
7.可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。 8.可行性研究的目的不是解决问题,而是确定问题是否值得去解决。
9.一般说来,应从经济可行性、技术可行性、运行可行性、法律可行性、开发可行性等方面研究可行性。
10.只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明。
11.需求分析的基本任务是准确的回答系统必须做什么这个问题。 12.需求分析所要做的工作是深入描述软件的功能和性能。 13.需求分析阶段研究的对象是软件项目的用户要求。
14.需求分析结束时交出的文档中应该包括详细的数据流图DFD,数据字典DD,一组简明的算法描述。
15.对系统的综合需求主要有:系统功能需求、系统性能需求、运行需求、将来可能提出的需求。
16.任何信息处理系统的基本功能都是把输入数据变成需要的输出信息。 17.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 18.数据域具有三种属性:数据流、数据内容和数据结构。 19.数据流图是描述数据处理过程的工具。
20.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。
21.数据流图的特性有:抽象性、概括性、层次性。
22.数据字典的作用是在软件分析和设计的过程中提供关于数据的描述信息。 23.数据流图和数据字典共同构成系统的逻辑模型。
24.必须从一致性、完整性、现实性、有效性等四个不同角度验证软件需求的正确性。 25.信息隐蔽原理是指每一个模块的实现细节对其它模块来说是隐蔽的。 26.耦合是对一个软件结构内各个模块之间互连程度的度量。
27.模块间耦合程度强弱的种类有:非直接耦合、数据耦合、控制耦合、公共环境耦合、内容耦合、标记耦合、外部耦合。
28.内聚标志着一个模块内各个元素彼此结合的紧密程度。
29. Jackson图有三种逻辑数据结构:顺序结构、选择结构、重复结构。 30. Warnier程序设计方法是一种面向数据结构的设计方法。 31.详细设计又称过程设计。
32.面向对象方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。
33.面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。
34.面向对象的软件工程学方法是面向对象方法在软件工程领域的全面运用。
35.面向对象的软件工程学方法包括:面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的软件维护等主要内容。
36. OO方法中把组成客观世界的实体称为问题空间的对象。 37.所谓的方法,它们实际上是类对象上的各种操作。
38.类有方法和数据集成,它是关于对象性质的描述,包括外部特性和内部实现两个方面。
39. UML即:标准建模语言。
40. UML包括:UML语义和UML表示法两个部分。
41.标准UML的重要内容可以由五类图来定义:用例图、静态图、行为图、交互图、实现图。
42.所谓编码就是把软件设计的结果翻译成计算机可以理解的形式,即用某种程序设计语言书写的程序。
43.从应用特点看,高级语言可以分为基础语言、现代语言、专用语言三类。 44.程序的注释一般分为:序言性注释和功能性注释。 45.程序效率是指程序的执行速度及程序占用的存储空间。
46.源程序的效率与详细设计阶段确定的(算法)的效率直接有关。 47.冗余是改善系统(可靠性)的一种重要技术。 48.防错程序设计可以分为主动式和被动式两种
49.按照测试过程是否在实际应用环境中来分,有静态分析和动态测试。
50.大型软件系统的测试基本上由下述四个步骤组成:单元测试、集成测试、确认测试、系统测试。
51.在软件运行维护阶段对软件产品所进行的修改就是维护。 二、判断题
52.在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,软件维护比硬件维护要复杂得多。(对)
53.软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。(对)
54.软件的开发至今尚未完全摆脱手工的开发方式。(对) 55.软件的开发费用越来越高,成本相当昂贵。(对) 56.软件的开发费用越来越低,但成本仍然相当昂贵。(错) 57.在需求分析阶段,所有的用户要求都是合理的,必须满足。(错)
58.在需求分析阶段,不是所有的用户要求都是合理的,没有必要全部满足。(对) 59.任何一个软件系统本质上都是信息处理系统。(对) 60.数据流图中可以带有控制流。(错) 61.数据流图中不可以带有控制流。(对)
62.模块是数据说明、可执行语句等程序对象的集合。(对)
63. Jackson系统开发方法是一种典型的面向数据结构的分析设计方法。(对) 64. Jackson系统开发方法是一种典型的面向对象的分析设计方法。(错) 65. Warnier程序设计方法是一种面向数据结构的设计方法。(对) 66. Warnier程序设计方法是一种面向对象的设计方法。(错) 67.详细设计是编码的前奏。(对)
68.详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内的数据结构。(对)
69.良好的编码风格有助于编写可靠而有容易维护的程序,编码风格在很大程度上决定程序的质量和机器执行的速度。(错)
70.良好的编码风格有助于编写可靠而有容易维护的程序,编码风格在很大程度上决定程序的质量,但不影响机器执行程序的速度。(对)
71.源程序的效率与详细设计阶段确定的算法的效率直接有关。(对) 72.冗余是改善系统可靠性的一种重要技术。(对) 73.冗余是改善系统速度的一种重要技术。(错) 74.判定覆盖比语句覆盖强有效。(对) 75.语句覆盖比判定覆盖强有效。(错)
76.软件开发所需的资源可以画成一个金字塔,塔的最基本的资源是人。(对) 三、简答分析题
77.软件的发展经过哪几个阶段?
程序设计阶段、程序系统阶段、软件工程阶段、第四阶段。
78.软件的定义是什么?
在运行中能够提供所希望的功能和性能的指令集(程序);使程序能够正确运行的数据结构;描述程序研制过程、方法所用的文档。
79.基于软件的功能,软件分为哪几种? 系统软件、支撑软件、应用软件。
80.基于软件的工作方式分,软件分为哪几种?
实时处理软件、分时软件、交互式软件、批处理软件。 81.基于软件的规模分,软件分为哪几种?
微型软件、小型软件、中型软件、大型软件、甚大型软件、极大型软件。 82.基于软件的服务对象的范围分,软件分为哪几种? 定制软件、产品软件。
83.软件危机包括哪两方面的问题?
(1)如何开发软件,满足对软件的日益增长的需求。(2)如何维护数量不断膨胀的已有软件。
84.产生软件危机的原因是什么?
(1)软件是计算机系统中的逻辑部件而不是物理部件。(2)软件本身独有的特点确实给开发和维护带来一些客观困难。(3)开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的需求。(4)软件管理技术不能满足现代软件开发的需要,没有统一的软件质量规范。(5)在软件的开发与维护关系问题上存在错误的概念。
85.软件工程的原则是什么? (1)分解。(2)独立性。(3)一致性。(4)确定性。 86.软件开发模型有哪些? (1)瀑布模型。(2)螺旋模型。(3)第四代技术模型。(4)原型模型。
87.某图书馆闭架借书流程如下:读者须先被验明证件后才能进入查询室。读者在查询室内通过检书卡来查找自己所需的图书。找到所需图书并填好索书单到服务台借书。如果所借图书还有剩余,管理员将填好借书单,从库房中取出图书交于读者,否则读者借不了图书。下图是上述系统的系统流程图,请填写空缺。
1:验证 2:图书查询 3:检书卡 4:借书 5:取书 88.需求分析的原则是什么?
(1)必须能够表达和理解问题的数据域和功能域。(2)自顶向下、逐层分解问题。(3)要给出系统的逻辑视图和物理视图。
89.一家计算机公司的全部软件产品有系统软件和应用软件,其中系统软件有操作系统、编译程序和包括编辑程序、测试驱动程序、设计辅助工具等的软件工具三类。请画出系统的Warnier图和层次方框图。
操作系
系统软编译程 编译程
软件工软 件产
测试驱动
应用软
设计辅助工
90.在概要设计中两个主要任务是什么?
(1)将系统划分成物理元素,即程序、文件、数据库、文档等等。(2)设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成,模块间的相互关系。
91.概要设计的过程是怎样的? (1)设计系统方案。(2)选取一组合理的方案。(3)推荐最佳实施方案。(4)功能分解。(5)软件结构设计。(6)数据库设计、文件结构设计。(7)制定测试计划。(8)编写概要设计文档。(9)审查与复审概要设计文档。
92.为何要强调模块的独立性?
(1)由于能够分割功能而且接口可以简化,具有独立的模块软件比较容易开发出来。(2)修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够插入模块,使得独立的模块比较容易测试和维护。
93.如何改进软件设计、提高软件质量? (1)提高模块的独立性。(2)模块规模应该适中。(3)适当选择深度、宽度、扇出和扇入。(4)模块的作用域应该在控制域之内。(5)力争降低模块接口的复杂程度。(6)设计单入口单出口的模块。(7)模块功能应该可以预测。
94.用Jackson 图表示下面二维表格:
工人工资单
表头 工号 姓名 性别 工龄 月工资
. . 表体 .
95.详细设计的原则是什么?
(1)模块的逻辑描述要清晰易读、正确可靠。(2)采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可读性、可测试性、可维护性。(3)选择恰当描
述工具来描述各模块算法。
96.写出下面伪码程序的程序流程图和N-S图 BEGIN A
If x1 then
Repeat until x2 If x3 then C Else D
End if
End repeat Else E H End if I END
97.将下面的程序流程图转换为N-S图。
98.什么是面向对象技术?
一整套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。
99.面向对象方法的基本思想是什么?
从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。
100.面向对象的软件工程学方法包括哪些内容?
面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的软件维护等主要内容。
101.什么是对象?
对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。
102.什么是封装? 封装定义为:
(1)一个清楚的边界,所有的对象的内部软件的范围被限定在这个边界内。(2)一个接口,这个接口描述这个对象和其他的对象之间相互的作用。(3)受保护的内部实现。
103.栈是一种常见的数据结构,它的状态和服务如下:
请画出它的状态转换图。 状 态 空 半满 满 服务 压入 弹出 可执行 不可执行 可执行 可执行 不可执行 可执行
104.标准UML的重要内容可以哪五类图来定义? 用例图、静态图、行为图、交互图、实现图。 105.什么是编码?
所谓编码就是把软件设计的结果翻译成计算机可以理解的形式,即用某种程序设计语言书写的程序。
106.要求进行软件维护的原因有哪些?
(1)改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷。(2)因在软件使用过程中数据环境发生变化或处理环境发生变化,需要修改软件加以适应这种变化。(3)用户和数据处理人员在使用时常提出改进现有功能,增加新的功能,以及改善总体性能的要求。
107.软件维护的步骤有哪些? (1)分析和理解程序。(2)修改程序。(3)重新验证程序。(4)维护组织。 108.软件管理的主要功能有哪些? (1)制定计划。(2)建立项目组织。(3)配备人员。(4)指导。
软件工程基础 一.选择题
1。软件需求分析阶段的工作,可以分为4个方面:需求获取,需求分析,编写需求规格说明书以及(B)
A).用户B).需求审评C).总结D).都不正确
2。在原型法中称(A)为用户/设计者,开发人员根据用户需求不断修改原型,直到满足用户要求为止。
A).用户B).开发人员C).系统分析员D).程序员 3。下面不属于软件工程的3个要素是(D)
A).工具B).过程C).方法D).环境
4检查软件产品是否符合需求定义的过程称为(A) A).确认测试B).集成测试C).验证测试D).验收测试 5.数据存储和数据流都是(D),仅仅是所处的状态不同。 A).分析结果B).事件C).动作D).数据 6。数据流图和(C)共同组成系统的逻辑模型。 A).HIPO图B).PD)LC).数据字典D).层次图 7。数据元素组成数据的方式的基本类型(D) A).顺序B).选择C).循环D).以上全部
8。数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是(A)。 A).控制流B).加工C).数据存储D).源和潭
9。结构化分析方法就是面向(B)的自顶向下逐步求精进行需求分析的方法。 A).目标B).数据流C).功能D).对象 10。通过(B)可以完成数据流图的细化。
A).结构分解B).功能分解C).数据分解D).系统分解 11。下面不属于软件工程原则的是(C) A).抽象B).模块化C).自底向上D).信息隐蔽
12。(D)是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可以通过名字来访问。
A).模块化B).抽象C).精化D).模块
13。(C)是指让一些关系密切的软件元素在物理上彼此靠近。 A).信息隐蔽B).内聚C).局部化D).模块独立 14。面向数据流的设计方法把(D)映射成软件结构。 A).数据流B).系统结构C).控制结构D).信息流 15。程序流程图(PDF)中的箭头代表的是(B)。 A).数据流B).控制流C).调用关系D).组成关系
16。在进行软件结构设计时应该遵循的最主要的原理是(C) A).抽象B).模块化C).模块独立D).信息隐蔽
17。在结构化方法中,软件功能分解属于软件开发中的(C)阶段。 A).详细设计B).需求分析C).总体设计D).编程调试 18。在测试中,下列说法错误的是(B)
A).测试是为了发现程序中的错误而执行程序的过程 B).测试是为了表明程序的正确性
C).好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案 D).成功的测试是发现了至今为止尚未发现的错误的测试 19。下列工具中为需求分析常用工具是(D) A).PA)D)B).PFD)C).N-SD).D)FD) 20软件调试的目的是(B)
A).发现错误B).改正错误C).改善软件的性能D).挖掘软件的潜能 21。软件工程师一种(B)分阶段实现的软件程序开发的方法。 A).自底向上B).自顶向下C).逐步求精D).面向数据流
22。通过(B)机制,各种软件工具用统一的数据接口规范存取环境信息库的的信息。 A).软件工具箱B).环境集成C).软件管理和软件支持工具D).软件开发环境 23。在软件生命周期法中,用户的参与主要在(A)。
A)。软件定义期B).软件开发期C).软件维护期D).整个软件生命周期过程中 24。软件定义期问题定义阶段涉及的人员有(D)。
A).用户、使用部门负责人B).软件开发人员、用户、使用部门负责人 C).系统分析员、软件开发人员
D).系统分析员、软件开发人员、用户、使用部门负责人 25。软件详细设计主要采用的方法是(A)。
A).结构化程序设计B).模型设计C).结构化设计D).流程图设计 26。(C)应考虑对模块相联和资源共享问题进行描述和制约。 A).系统设计B).详细设计C).接口控制D).结构化编辑工具 27。(A)是程序中一个能逻辑分开的部分,也就是离散的程序单位。 A).模块B).复合语句C).循环结构D).数据块
28。软件开发的原型化方法是一种动态定义软件需求的方法,下述条件中,(A)是实施原型化方法所必需的。 Ⅰ成熟的原型化人员 Ⅱ快速的成型工具 Ⅲ需求了解的正确性
A).Ⅰ和ⅡB).Ⅱ和ⅢC).Ⅰ、Ⅱ和ⅢD).Ⅲ
29。判定树和判定表示用于描述结构化分析方法中的(B)环节的工具。 A).功能说明B).数据加工C).流程描述D).性能说明 30。概要设计的结果是提供一份(A)。 A).模块说明书B).框图C).程序D).数据流图
31。模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的一类是(D)。
A).顺序性内聚B).过程性内聚C).逻辑性内聚D).功能性内聚 32。计算机软件(A)。
A).计算机系统的组成部分B).不能作为商品参与交易 C).是在计算机硬件设备生产过程中生产出来的 D).只存在于计算机系统工作时
33。数据字典是对数据定义信息的集合,它所定义的对象都包含在(A)。 A).数据流图vB).程序框图C).软件结构D).方框图
34.程序流程图是一种传统的程序设计表示工具,有其优点和缺点,使用该工具是应注意(C)。 A).支持逐步求精B).考虑控制流程 C).遵守结构化设计原则D).数据结构表示
35。软件设计中设计复审是和设计本身一样重要的环节,其主要目的和作用是(B)。 A).减少测试工作量B).减免后期付出高代价C).保证软件质量 D).缩短软件开发周期
36。软件开发的结构化分析方法,常用的描述软件功能需求的工具是(C)。 A).业务流程图、处理说明B).软件流程图、模块说明 C).数据流程图、数据字典D).系统流程图、程序编码
37。软件开发的结构化设计方法,全面指导模块化分的最重要的原则应该是(C)。 A).模块高内聚B).模块低耦合 C).模块独立性D).程序模块化
38。面向数据流的软件设计方法,一般是把数据流图中得数据流化分为(B)两种流,再将数据流图映射为软件结构。 A).数据流与事务流 B).交换流和事务流 C).信息流与控制流 D).交换流和数据流
39。软件设计中,可应用于详细设计的工具有(A)。 A).程序流程图、PA)D)、方框图和伪码 B).数据流程图、PA)D)、结构图和伪码 C).业务流程图、N-S图和伪码 D).数据流程图、PA)D)、N-S图和伪码
40。软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的(D)问题。 A).产生危机B).质量保证C).开发效率D).生产工程化
41。软件开发的结构生命周期法的基本假定是认为软件需求能做到(C). A).严格定义B).初步定义C).早期冻结D).动态改变
42。软件工程的结构化分析方法强调的是分析开发对象的(C)。 A).数据流B).控制流C).时间限制D).进程通信
43。瀑布模型将软件生命周期归纳为个时期,即计划期、开发期和运行期。下列(D)不属于开发期内的工作。
A).总体设计B).详细设计C).程序设计D).维护
44。软件开发的可行性研究,一般涉及经济、技术和操作的可能性,而进行可行性研究的基本依据则是用户提出的软件(B)。
A).系统质量B).系统目标C).系统功能D).系统性能
45。软件可行性分析是着重确定系统的目标和规模。对功能、性能以及约束条件的分析应属于下列之中的(B)任务。
A).分析B).估价C).制定制度D).进度分配
46。软件可行性分析是着重确定系统的目标和规模。对功能、性能以及约束条件的分析应属于下列之中的(A)。
A).经济可行性分析B).技术可行性分析 C).操作可行性分析D).开发可行性分析
47。结构化方法将软件生命周期分为计划、开发和运行3个时期,下列任务中(B)属于计划时期的任务。
A).需求分析B).问题定义 C).总体设计D)编码
48。耦合是软件各个模块间连接的一种度量。一组模块都访问同一数据结构应属于(B)方式。 A).内容耦合B).公共耦合 C).外部耦合D).控制耦合
49。内聚是从功能角度来度量模块内的联系,按照特定次序执行元素的模块属于(C)方式。 A).逻辑内聚B).时间内聚 C).过程内聚D).顺序内聚
50。软件测试基本方法中,下列(D)不用测试实例。 A).白盒测试法B).动态测试法 C).黑盒测试法D).静态测试法
51。软件管理中,需要对软件进行配置,各阶段文档的管理属于(D)。 A).组织管理B).资源管理 C).计划管理D).版本管理
52。软件开发的结构化方法中,常用数据字典技术,其中数据加工是其组成内容之一,下述方法(D)是常采用编写加工说明的方法。 Ⅰ结构化语言
( N )
三.填空题(每空2分,共24分)
1.为了便于对照检查,测试用例应由输入数据和预期的 输出结果 两部分组成。 2.软件结构是以 模块 为基础而组成的一种控制层次结构。
3.如果知道软件的规格说明书描述的程序功能,那么就可以采用 黑盒 进行
测试。
4.当A模块调用B模块时,若两个模块之间传递的是数值型参数,则这两个模块的耦合方式是 数值耦合 。
5.软件概要设计关键的一步是 确定软件体系结构 _____,它直接影响下一阶段详细设计和编码的工作。
6.数据流图中的箭头表示 数据流 ,椭圆或圆形表示 数据处理 ,矩形表示 数据源点或终点 。
7.软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个___自底向上或相反____________集成的过程。
8.按数据流的类型,面向数据流的设计方法有两种设计策略,它们是变换分析设计和 事务分析设计 。
9.数据流图仅反映系统必须完成的逻辑功能,所以它是一种 功能 模型。 10.软件结构中的 深度 表示的软件的控制层数,它往往能够粗略地标志一个系统的大小和复杂程度。
四.简答题(每小题5分,共10分)
1.衡量模块独立性的两个定性标准是什么(2分)?这两个标准的定义分别是什么(2分)?在我们的软件设计中,关于模块独立性我们追求的目标是什么(1分)? 2.简述结构化程序设计方法的基本特点。(5分) 五.应用题(第一小题8分,第二小题12分,共20分) 1.某旅馆的电话服务如下:(8分)
可以拨分机号码和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成,局号可以是455、466、888、552中任意一个号码。分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。 2.下图是一个被测程序的流程图,请按照要求完成下列问题。(共12分) (1)根据该程序流程图画出该程序的流图;(3分) (2)计算该流图的环形复杂度;(3分) (3)确定独立路径的集合;(3分)
(4)设计测试用例以满足逻辑覆盖的判定覆盖标准。(3分) 附录:答案及评分标准
一.单项选择题(每小题1分,共22分) 1.(C)2.(D)3.(A)4.(D)5.(D) 6.(A)7、(D)8.(B)9.(A)10.(C) 11.(D)12.(C)13.(C)14.(A)15.(C) 16.(A)17.(C)18.(C)19.(A)20.(C) 21.(C)22.(D)
二.判断题(每小题2分,共24分) 1.对2.错3.错4.错5.对6.对 7.错8.对9.错10.对11.对12.错
三.填空题(每小题2分,共24分) 1.输出结果 2.模块 3.黑盒测试方法 4.数值耦合
5.确定软件的体系结构
6.数据流,数据处理,数据的源点/终点 7.自底向上或相反 8.事务分析设计 9.功能 10.深度
四.简答题(每小题5分,共10分)
1.衡量模块独立性的两个定性标准是什么(2分)?这两个标准的定义分别是什么(2分)?在我们的软件设计中,关于模块独立性我们追求的目标是什么(1分)? 答:衡量模块独立性的两个定性标准是内聚和耦合(2分)。
耦合是指对一个软件结构内不同模块彼此之间互相依赖(连接)的紧密程度;而内聚则标志一个模块内部各个元素彼此结合的紧密程度。(2分)。
在我们的软件设计中,关于模块独立性我们追求的目标是紧密内聚松散耦合(1分)。 2.简述结构化程序设计方法的基本特点。(5分) 答:
1).是尽可能少用goto语句的程序设计方法;
2).每个代码块都单入单出;
3).使用控制结构:顺序、选择和循环+Do_UNTIL和Do_CASE; 4).自顶向下逐步求精。
五.应用题(每小题10分,共20分) 1.某旅馆的电话服务如下:(8分)
可以拨分机号码和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成,局号可以是455、466、888、552中任意一个号码。分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。 答:
电话号码=[分机号|外线号码] 分机号=7201..7299
外线号码=9+[市话号码|长话号码] 长话号码=区号+市话号码 区号=100..300
市话号码=局号+分局号 局号=[455|466|888|552] 分局号=4{0..9}4 2.略
一、判断题(每题2分,共30分)
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)
2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。
(错)
3.JAVA语言编译器是一个CASE工具。(对)。
4.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开
发实际上就是编写程序代码。(错)
5.软件模块之间的耦合性越弱越发。(对) 6.数据库设计说明书是一个软件配置项(对)
7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象
是生成类的模板。(错)
8.过程描述语言可以用于描述软件的系统结构。(错)
9.如果通过软件测试没有发现错误,则说明软件是正确的。(错) 10.快速原型模型可以有效地适应用户需求的动态变化。(对)
11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度
的软件产品。(对) 审
2.在面向对象软件开发方法中,类与类之间主要有以下结构关系(1) (1)继承和聚集(2)继承和一般(3)聚集和消息传递(4)继承和方法调用 3.以下哪一项不是软件危机的表现形式(3)
(1)成本高(2)生产率低(3)技术发展快(4)质量得不到保证 4.以下哪一项不是面向对象的特征(4)
(1)多态性(2)继承性(3)封装性(4)过程调用 5.面向对象模型主要由以下哪些模型组成(1)
(1)对象模型、动态模型、功能模型(2)对象模型、数据模型、功能模型(3)数据模12.集成测试主要由用户来完成。(错)
13.确认测试计划应该在可行性研究阶段制定(错)
14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错) 15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对) 二。单选题(每题2分,共20分) 1.瀑布模型的关键不足在于(2)
(1)过于简单(2)不能适应需求的动态变更(3)过于灵活(4)各个阶段需要进行评
型、动态模型、功能模型(4)对象模型、动态模型、数据模型
6.软件可行性研究一般不考虑(4)
(1)是否有足够的人员和相关的技术来支持系统开发(2)是否有足够的工具和相关的
技术来支持系统开发(3)待开发软件是否有市场、经济上是否合算(4)待开发的软件是否会有质量问题
7.软件维护的副作用主要有以下哪几种(3)
(1)编码副作用、数据副作用、测试副作用(2)编码副作用、数据副作用、调试副作
用(3)编码副作用、数据副作用、文档副作用(4)编码副作用、文档副作用、测试副作用
8.软件项目计划一般不包括以下哪项内容(4)
(1)培训计划(2)人员安排(3)进度安排(4)软件开发标准的选择和制定 9.以下哪一项不属于面向对象的软件开发方法(3) (1)coad方法(2)booch方法(3)jackson方法(4)omt方法 10.以下哪种测试方法不属于白盒测试技术(2)
(1)基本路径测试(2)边界值分析测试(3)循环覆盖测试(4)逻辑覆盖测试 三。简答题(每题5分,共25分) 1.分析软件危机产生的主要原因有哪些? 答:导致软件危机的主要原因有:
(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)
生产方式落后(5)开发工具落后(6)软件开发费用不断增加
1 个要点1分,只要答上5个要点得5分! 2.说明结构化程序设计的主要思想是什么?
答:(1)自顶向下、逐步求精的程序设计方法(2分)(2)使用3种基本控制结构、单
入口、单出口来构造程序。(3分)
3.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?
答:(1)单元测试,测试对象对单元模块(2分)(2)集成测试,测试对象为组装后的
程序模块(2分)(3)确认测试,测试对象为可运行的目标软件系统(1分)
4.需求 分析与软件设计二个阶段任务的主要区别是什么?
答:需求分析定义软件的用户需求,即定义待开发软件能做什么(2.5分) 软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。(2.5分) 5.说明软件测试和调试的目的有何区别?
答:测试的目的是判断和发现软件是否有错误(2。5分)调试的目的是定位软件错误
并纠正错误。(2.5分)
软件工程期末复习试题
一、填空题
1. 软件工程学的内容可包括( )、结构、( )、( )、环境、管理、规范等。 2. 软件生存周期一般可分为问题定义、( )、( )、设计、( )、测试、运行与维护阶段。
3. 系统流程图是( )的传统工具。
4. 需求分析的基本任务是准确的回答( )。
5. 数据字典的内容包括六项:( )、( )、( )、数据存储、处理逻辑、外部实体。
6. 在需求分析阶段常用的图形工具有( )、( )、( )。 7. 模块独立的概念是( )、( )、( )和局部化概念的直接结果。 8. HIPO图是由一组( )图和一张( )图组成。 9. UML的定义包括( )和( )两个部分。 10. 软件测试的方法有( )和( )。 11. 软件=( )+( )。
二、单项选择题
1. 下列关于瀑布模型的描述正确的是( )。
A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。 B. 瀑布模型具有良好的灵活性。
C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。 D. 利用瀑布模型,如果发现问题修改的代价很低。 2. 下列哪个图不是N-S图的构件( )。
A. B. A A
B B
C. D. C WHILE X UNTIL Y B
3. 对于下图,有关描述中错误的是( )。
A
B
D
C
A.A表示数据输入的源点 B.B表示数据存储文件 C.C表示加工 D.D表示数据存储文件
4. 下列各方法中( )不是软件测试方法。
A. 白盒法 B. 黑盒法 C. 动态测试 D. 盒法
5. UML的基本建筑块不包括( )。
A. 框架 B. 事物 C. 关系 D. 图 三、多项选择题
1. 关于数据字典正确的描述是( )。
A. 数据字典最重要的用途是作为分析阶段的工具。
B. 实现数据字典三种常见的方法有全人工过程、全自动过程、混合过程。C. 数据字典应该容易更新和修改。 D. 可以采用卡片形式书写数据字典。 2. ( )可以作为模块。
A. 过程 B. 子程序 C. 函数 D. 宏
3. 耦合的强弱取决于( )。
A. 模块间接口的复杂程度。 B. 调用模块的方式。 C. 通过接口的信息。
D. 模块内部各个元素彼此之间的紧密结合程度。 4. 编码风格包括( )。
A. 源程序文档化 B. 数据说明方法 C. 语句结构
D. 输入/输出方法
5. 软件测试主要包括( )方面的差错和纠错。
A. 软件计划 B. 软件设计 C. 软件编码 D. 软件价格
四、判断题
1.在可行性研究中最难决断和最关键的问题是经济可行性。( ) 2.耦合是指一个模块内各个元素彼此结合的紧密程度。( )
3.一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。( )
4.概要设计阶段完成的主要文档是概要设计说明书。( ) 5.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。( ) 6.程序设计语言中应绝对禁止使用GOTO语句。( ) 7.类是关于对象性质的描述,由方法和数据组成。( )
8.随着软件技术的发展,人们逐渐认识到阅读程序的重要性,编码不仅要强调效率还要强调清晰。( )
9.为保证程序的安全,必须做到程序中没有任何错误存在,即容错。( ) 10. 如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。( ) 五、问答题
1.什么是软件危机,软件危机有哪几种表现? 2.什么是模块、模块化、模块独立性?
3.什么是编码风格?为什么要强调编码风格? 4. 什么是黑盒测试法?什么是白盒测试法? 六、 分析题
1. 已知被测试模块流程图如下,按照“判定覆盖”法,在表格中填入满足测试要求的数据。 begin
(A>2)AND(B F T =1) c
b Y=Y/3
(A=3)AND(Y> F T e 1) d
Y=Y-10 Y=Y+10
Return
填写下表 数据 覆盖路径 覆盖分支 Y值 TT FF
2. 比较下列两段语句,从编码风格的角度分析哪一段好些,并说明好在哪些方面。 程序段一: if a>b then if x>y then b=y else a=x end if else a=b end if 程序段二:
/ position_x is the position x of object; position_y is the position y of object; /
if a>b then a=b else
if position_x>position_y then b=position_y else
a=position_x end if
end if
参考答案
一、填空题
1. 理论、方法、工具
2. 可行性研究、需求分析、编码 3. 描述物理系统 4. 系统必须做什么
5. 数据流、数据项、数据结构
6. 层次方框图、Warnier图、IPO图 7. 模块化、抽象、信息隐蔽
8. IPO、HC
9. UML语义、UML表示法 10. 分析方法、非分析方法 11. 程序、文档 二、单项选择题 1. C 2. B 3. B 4. D 5. A
三、多项选择题 1. A、B、C、D 2. A、B、C、D 3. A、B、C 4. A、B、C、D 5. A、B、C
四、判断题 1. ╳ 2. ╳ 3. √ 4. √ 5. ╳ 6. ╳ 7. √ 8. √ 9. ╳ 10. √
五、问答题 1.
答:软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
概括地说,软件危机包含下述两方面的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。具体地说,软件危机主要有下列表现:
产品不符合用户的实际需要。
软件开发生产率提高的速度远远不能满足客观需要,软件的生产率远远低于硬件生产率和计算机应用的增长,使人们不能充分利用现代计算机硬件提供的巨大潜力。
软件产品的质量差。
对软件开发成本和进度的估计常常不准确。 软件的可维护性差。
软件文档资料通常既不完整也不合格。
软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。 2.
答:模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名的而且可通
过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。
模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。
模块独立性是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。 3.
答:编码风格又称程序设计风格或编程风格。编码风格实际上指编程的基本原则。 程序实际上也是一种供人阅读的文章。
编写程序时讲求程序的风格,将大量地减少人们读程序的时间。 良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。
4.
答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。
白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,白盒测试又称为结构测试。
六、 分析题
1、 答
数据 A=3 B=1 Y=6 A=1 B=2 Y=0
注意:本题答案不唯一,学生给出的数字正确就应该算对。 2、
答:第二段程序优于第一段。
注释起到提示的作用,利于程序阅读者对程序段全貌的理解 缩进格式清晰的显示程序中逻辑判断的结构。 变量命名方式表明变量的含义。
软件工程习题解答 第一章 概述
1.软件产品的特性是什么? a.软件产品是一种逻辑产品。
b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。
c.软件产品不会用坏,不存在磨损、消耗问题。
覆盖路径 ce bd 覆盖分支 TT FF Y值 12 -10 d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是\定做\的。 e.软件费用不断增加,成本相当昂贵。
2.软件产品有几个阶段?各有何特征? 阶段 生产方式 工具 开发方法 硬件特征 软件特征 A.程序设计时代(1946-1956) B.程序系统时代(1956-1968) 个体手工劳动 机器语言、汇编 追求编和技巧,追求程序运行效率 价格贵、存储容量小、运行可靠性差 只有程序、程序设计概念,不重视程序设计方法 小集团合作生产 高级语言 个人技巧,开始提出结构化方法 C.软件工程时代(1968-今) 工程化的生产 数据库、开发工具、开发环境网络、 分布式、面向对象技术 速度、容量、工作可靠性有明显提向超高速、大容量、微型化以高,价格降低,销售有爆炸性增长 及网络化方 程序员数量猛增,已意识到软件开发的重要性,开发技术没有新的突破,大量软件开发的需求已提出,开发人员的素质和工程兵的开发技术不适应规模大、结构复杂的软件开发,产生了尖锐矛盾,导致软件危机的产生 开发技术有很大进步,但未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机
3.什么是软件危机?其产生的原因是什么?
软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面:
a.经费预算经常突破,完成时间一再拖延。 b.开发的软件不通满足用户要求。 c.开发的软件可维护性差。 d. 开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:
a.软件的规模越来越大,结构越来越复杂。 b.软件开发管理困难而复杂。 c.软件开发费用不断增加。 d.软件开发技术落后。 e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
4.什么是软件工程?它的目标和内容是什么?
软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标: a.付出较低的开发成本; b.面到要求的软件功能;
c.取得较好的软件性能; d.开发的软件易于移植; e.需要较低的维护费用;
f.能按时完成开发任务,及时交付使用; g.开发的软件可靠性高; 软件工程的内容:
1) 软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。 2) 软件开发管理:软件管理学、软件经济学、软件心理学。
5.软件工程面临的问题是什么? 软件工程面临的问题:
a.软件费用。b.软件可靠性。c.软件维护。d.软件生产率。e.软件重用。
6.什么是软件生存周期?它有哪几个活动?
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.
7.什么是软件生存周期模型?有哪些主要模型?
软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。)
软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等
9.什么是软件开发的方法?有哪些主要方法?
软件开发的方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。 主要方法:结构方法、Jackson方法、维也纳开发方法(VDM)、面向对象的开发方法。
第二章 可行性研究
1.可行性研究的任务是什么? a.技术可行性:
考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。 b.经济可行性。 c.社会可行性。
2、可行性研究有哪些步骤? a.确定项目规模和目标 b.研究正在运行的系统
c.建立新系统的高层逻辑模型 d.导出和评价各种方案 e.推荐可行的方案
f.编写可行性研究报告
3、可行性研究报告有哪些就要内容? a.引言
b.可行性研究前提 c.对现有系统的分析
d.所建议系统的技术可行性分析 e.所建议系统的经济可行性分析 f.社会因素可行性分析 g.其他可供选择方案 h.结论意见
4.成本---效益分析可用哪些指标进行度量? 有形效益度量: a.货币的时间价值 b.投资回收期 c.纯收入
无形效益:主要从性质上、心理上进行衡量,很难直接进行量的比较。
通常以有形效益度量作为成本---效益分析的度量。
5.项目开发计划有哪些内容?
a.项目概述 b.实施计划c.人员组织及分工d.交付期限
第三章 需求分析
1.什么是需求分析?需求分析阶段的基本任务是什么?
需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
需求分析阶段的基本任务是:
(1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.
(2) 分析与综合,导出软件的逻辑模型. (3) 编写文档
2.什么是结构化分析方法?该方法使用什么描述工具?
结构化分析方法:是面向数据汉进行需求分析的方法。
描述工具:a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。
3.结构化分析方法通过哪些步骤来实现? 结构化分析方法步骤:
a.了解当前系统的工作流程,获得当前系统的物理模型. b.抽象出当前系统的逻辑模型. c.建立上标系统的逻辑模型.
d.作进一步补充和优化.
4.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?
数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。
作 用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.
基本符号有四种:
→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点.
5.画数据流图应该注意什么事项? 画数据流图注意事项:
a.命名.不论是数据流\数据存储还是加工,合适的命名使人们易于理解基含义. b.画数据流而不是控制流. c.一般不画物质流.
d.每个加工到少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果. e.编号.
f.父图与子图的平衡. g.局部数据存储.
h.提高数据流图的易理解性.
6.什么是字据字典?其作用是什么?它有哪些条目?
字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义 性的说明方式为系统的分析\\设计及维护提供了有关元素的一致的定义和详细的描述.
作 用:1)为系统的分析\\设计及维护提供了有关元素的一致的定义和详细的描述. 2)为分析人员查找数据流图中有关名字的详细定义而服务的.
3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分. 条 目:数据流、数据项、数据存储、基本加工。
7.描述加工逻辑有哪些工具? a,结构化语言b,判定表c.判定树
8.什么是IDEF方法?IDEF0方法有什么特点?
IDEF方法:是美国空军在1981年针对集成化计算机辅助制造(Integrated Computer Aided Manufacturing,简称ICAM)工程项目中用于进行复杂系统分析和设计的方法,是在结构化分析与设计技术的基础上提出来的。 IDEF是ICAM Definition的缩写。 IDEF0方法特点:
a.采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束及实现机制。
b.采用严格的自顶向下、逐层分解的方式建立系统功能模型。
第四章 概要设计
1.什么是软件概要设计?该阶段的基本任务是什么? 软件概要设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现,即把软件需求转换为软件包表示的过程。 基本任务:
(1)设计软件系统结构(简称软件结构)
a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分) b.确定模块的功能。 (功能)
c.确定模块之间的调用关系。 (调用)
d.确定模块之间的接口,即模块之间传递的信息。 (接口) e.评价模块结构的质量。 (质量) (2)数据结构及数据库设计 a.数据结构设计 b.数据库设计:(概念设计、逻辑设计、物理设计)
(3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划) (4)评审
2.软件设计的基本原理包括哪些内容? 软件设计的基本原理:
(1)模块化(四个属性:接口、功能、逻辑、状态) (2)抽象 (3)信息隐蔽
(4)模块独立性(两个定性的度量标准:耦合性与内聚性)
3.衡量模块独立性的两个标准是什么?它们各表示什么含义? 两个定性的度量标准:耦合与内聚性
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。
4.模块间的耦合性有哪几种?它们各表示什么含义?
耦合性有六种:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合 无直接耦合:两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。 (无直接关系)
数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。 (数据值 )
标记耦合:指两个模块之间传递的是数据结构。 (数据结构 )
控制耦合:指控制模块调用另一个模块时,传递的是控制变量,被调用块通过该控制变量的值有选择地执行块内某一功能(控制变量 )
公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。 (一个公式数据环境)
内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部 (内部数据 )
5.模块的内聚性有哪几种?各表示什么含义?
模块间的内聚性有6种:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。 偶然内聚:一个模块内的各处理元素之间没有任何联系。
逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。 时间内聚:把需要同时执行的动作组合在一起。 通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相同的输出数据。 顺序内聚:一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出是下一功能元素的输入。
功能内聚:最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
6.什么是软件结构?简述软件结构设计优化准则。
软件结构:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。
软件结构设计优化准则:
a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。
b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近
c.软件的深度、宽度、扇入、扇出应适当。 D.模块的大小要适中。
E.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。
7.什么是模块的影响范围?什么是模块的控制范围?它们之间应该建立什么关系? 模块的影响范围:受该模块内的一个判定影响的所有模块的集合。
模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。 一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。
8.什么是\变换流\?什么是\事务流\?试将相应形式的数据流图转换成软件结构图。 变换流由输入、变换(或处理)、输出三部分组成。某个加工将它的输入流分离成许多发散 的数据流,形成许多加工路径,并根据输入选择其中一个路径来执行这种特征的DFD称为事物流。
9.试述\变换分析\,\事务分析\的设计步骤。 变换分析:
a.确定DFD中的变换中心。
b.设计软件结构的顶层和第一层-------变换结构。
c.设计中下层模块。(输入模块下属模块的设计,输出模块下属模块的设计,变换模块下属模
块的设计,设计的优化) 事务分析:
a.确定DFD中的事务中心和加工路径。
b.设计软件结构的顶层和第一层------事务结构。(接收、发送给支) c.事务结构中、下层模块的设计、优化工作同变换结构。
附加:
2、已知模块C中的一个判定影响到模块B,如图所示,它违反了SD的设计原则。试问: 可以采用哪些手段对结构图作改进,请说明改进办法并画出改进的结构图。
3、已知有一抽象的DFD图如下所示,请用SD方法画出相应的结构图。
A2T1B1EBAAABBBDDA1T2B2CCFFGC答:
4、高考录取统分子系统有如下功能:
(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;
(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流程图,并将其转换为软件结构图。 答:
(1) 数据流图:
(2) 软件结构图:
① 原始分 ② 标准分 ③ 招生计划 ④ 录取线
5、图书馆的预定图书子系统有如下功能: (1) 由供书部门提供书目给订购组。 (2) 订书组从各单位取得要订的书目。
(3) 根据供书目录和订书书目产生订书文档留底。 (4) 将订书信息(包括数目,数量等)反馈给供书单位。 (5) 将未订书目通知订书者。
(6) 对于重复订购的书目由系统自动检查,并把结果反馈给订书者。 试根据要求画出该问题的数据流程图,并把其转换为软件结构图。 答:
(1) 数据流图:
(2) 软件结构图:
6、在结构化设计过程中,要将数据流图(DFD)映射成系统结构图(SC),分别画出变换型数据流和事物型数据流的映射方式。 答:
变换型 事务型
第五章 详细设计
1.详细设计的基本任务是什么?有哪几种描述方法? 详细设计的基本任务:
(1)为每个模块进行详细的算法设计。 (2)为每个模块内的数据结构进行设计。
(3)对数据库进行设计,即确定数据库的物理结构。 (4)其他设计: a.代码设计
b.输入/输出格式设计。 c.人机对话设计。
(5)编写详细设计说明书。 (6)评审。
描述方法(三种): a.程序流程图 b.PAD图
C.过程设计语言
2.结构化程序设计基本要求要点是什么? a.采用自顶向下、逐步求精的程序设计方法 b.使用三种基本程序控制结构构造程序
1).用顺序方式对过程分解,确定各部分的执行顺序。 2).用选择方式对过程分解,确定某个部分的执行条件。
3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。 c.主程序员组的组织形式。
3.简述Jackson 方法的设计步骤。
Jsp 方法一般通过以下5个步骤来完成设计:
a.分析并确定输入/出数据的逻辑结构,并用Jackson 结构图表示这些数据结构。 b.找出输入数据结构和输出数据结构中有对应关系的数据单元。 c.按一定的规则由输入、输出的数据结构导出程序结构。
d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。 e.用伪码写出程序。
4.请使用流程图、PAD图各PDL语言描述下列程序的算法。 (1)在数据A(1)-A(10)中求最大数和次大数。
(2)输入三个正整数作为边长、判断该三条边构成的三角形是等边、等腰或一般三角形。 答: (1)
1)流程图:
2)PAD图
3)PDL语言 定义 n1=n2=0
输入A(1).......A(10) n1=n2=A(1) while i>10 if A(i)>=n1 n2=n1 n1=A(i) end while
5.用PAD图描述下面问题的控制结构。
有一个表A(1)、A(2)、........A(n),按递增顺序排列。给定一个Keyw值,在表中用折半查找。若找到将表位置i送入x,否则将零送到x,同时将Key值插入表中。 算法: 1)置初值H=1(表头),T=N(表尾)。 2)置i=[(H+T)/2](取整).
3)若Key=A(i),则找到,i送到x;若Key>A(i),则Key在表的后半部分,i+1送入H; 若KeyT为止。
4)查不到时,将A(i),....,A(N)移到A(i+1),.....A(N+1),Key 值送入A(i)中。
6.一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的个数及文件中空格字符的总个数。要求输出数据格式是每复制一行这符串后,另起一行打印出这个字符中的空格数,最后打印出文件空格的总个数,用Jackson方法设计该程序结构。
附加题:
1、假设对顾客的订货单按如下原则处理: 将顾客的信用度分三个档次: 欠款时间不超过30天;
欠款时间超过30天但不超过100天;
欠款时间超过100天。
对于上述三种情况,分别根据库存情况来决定对顾客订货的态度。
情况之一(欠款时间≤30天),如果需求数≤库存量,则立即发货,如果需求数>库存量,则只发现有库存,不足部分待进货后补发。
情况之二(30天<欠款时间≤100天),如果需求数≤库存量,则要求先付款再发货,如果需求数>库存量,则不发货。
情况之三(欠款时间>100天),则通知先付欠款,再考虑是否发货。 试用判定树的形式予以描述(设欠款时间D,需求数N,库存量Q)。 答:
2、用Jackson图表示下图所示的二维表格:
学生名册 表头 表体
表名 字段名 行* 答:
姓名 3、有一过程,其流程如下图所示。
其中b1 、b2、 b3为判定的逻辑条件,s1、 s2为加工处理。试用判定表给予描述。
性别 年龄 学号
答:
4、1、有一过程如下图所示的流程,试用判定表予以描述。
条件 b1 b2 b3 结果
第六章 实现
1、程序语言有哪些共同特征?
答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。语言的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。
2、在项目开发时选择程序设计语言通常考虑哪些因素? 答:通常要考虑的因素有:
项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。
3、第4代语言(4GL)有哪些主要特征? 答:4GL的主要特征是: (1)友好的用户界面
(2)兼有过程性和非过程性双重特性 (3)高效的程序代码 (4)完备的数据库 (5)应用程序生成器
4、举例说明各种程序设计语言的特点及适用范围? 答:以常见的一些编程语言为例:
FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算 Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写
C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。
Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。 SQL:结构化查询语言,用于对数据库进行存取管理。
s1 s2 1 F ? ? √ 2 T F F √ 3 T F T √ 4 T T ? √ 汇编语言和Ada语言,主要用于实时处理和编写系统软件。
Prolog、Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。
C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。
5、什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?
答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。
第七章 软件测试
1、软件测试的目的是?测试中要注意那些原则? 软件测试 答:软件测试的目的是的发现软件中存在错误的活动。好的测试用例可以发现至今没有发现的错误、好的测试用例可以发现至今没有发现的错误测试。要提供输入数据还要提供输出数据、保留测试用例、检查它是否做了应该做的还要检查它是否做了不该做的、避免自己测试自己的程序、多错误多的地方要更严格的测试。
2、什么是白盒法?有那些覆盖标准?比较他们的检错能力。
答:将程序看成是白盒子,认真的分析程序的结构和功能制定测试用例来测试。有逻辑覆盖(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖)
3、什么是黑盒法?有那些测试方法?特点? 答:将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。等价类划分、边界值分析、因果图、错误推测。
4、软件测试要经过那些步骤?这些步骤和开发那些阶段对应?
答:单元测试对应详细设计和编码、集成测试对应概要设计、确认测试对应需求分析。
5、单元测试有那些内容?
答:测试模块的接口、数据结构、重要的执行路径、错误处理、边界条件。
6、什么是集成测试?非渐增式和渐增式有什么区别?渐增式如何组装模块? 答:将模块组合起来成为一个完整的系统对其进行测试。非渐增式是将模块先进行单元测试然后组装在一起进行测试。渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。
渐增式组装模块有自顶向下和自底向上两种组装方式。
7、什么是确认测试?该阶段有那些工作?
正在阅读:
软件工程基础(汇总资料-本科课程)11-11
2010中国手机阅读市场用户调研报告05-24
折纸飞机作文300字07-08
教书育人,诲人不倦06-30
小班语言公开课教案(精选多篇)09-26
遂宁市教师继续教育学时登记折算标准04-22
道路顶管穿越方案10-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 软件工程
- 汇总
- 本科
- 课程
- 基础
- 资料
- 用最简单的方法调整我们的身体
- 土地入股合作协议书范本
- 树人假期模拟(C++)3
- 投资学试题及答案
- 冯家镇2015年人大代表集中视察方案
- 桃花源记第一课时教学设计
- 全国首届“三新”作文教学研讨会邀请函 - 图文
- 第二版临床护理技术规范部分试题 第六章
- 最新2019届北京理科综合高考真题
- 用爱心去教育学生
- 1金相取样及试样制作要点
- 电厂机组长周期运行措施
- 《智能测温仪》毕业设计论文 - 图文
- “蓝盾”(LANTIRN)先进瞄准吊舱系统 - 图文
- 安全生产标准化测试题
- 四川电大行政案例分析全客观任务一标准答案
- 2020版高考英语一轮复习第1部分Unit3Lookinggoodfeelinggood教学案(含解析)牛津译林版必修1
- 剑三考试答案
- 桥梁工程课程试卷五
- 实验三-图像复原