第一章练习题一、判断题1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(√)2..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。
(X)3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。
(X)4.快速原型模型可以有效地适应用户需求的动态变化。
(√)5.类是关于对象性质的描述,由方法和数据组成。
(√)6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。
(√)二、名字解释:1.软件:完成特定功能的程序+数据结构+文档。
2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
3.软件工程:将系统化的、规范的、可度量的方法应用与软件的开发、运行和维护的过程。
(将工程化运用于软件中)。
4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时期。
5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。
它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。
它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。
7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。
增量方式包括增量开发和增量提交。
增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件;增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。
增量开发和增量提交可以同时使用,也可以单独使用。
9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
螺旋模型更适合大型的昂贵的系统级的软件应用。
对象。
三、选择题1. 软件工程的概念是哪年提出的( B)。
A. 1988B. 1968C. 1948D. 19282. 瀑布模型的关键不足在于(D )。
A. 过于简单B. 各个阶段需要进行评审C. 过于灵活D. 不能适应需求的动态变更3. 以下哪一项不是软件危机的表现形式(C )。
A. 开发的软件不满足用户需要B. 开发的软件可维护性差C. 开发的软件价格便宜D. 开发的软件可靠性差7. 软件开发的需求活动,其主要任务是(A D)。
A. 给出软件解决方案B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型8. 以下说法错误的是( A)。
A. 文档仅仅描述和规定了软件的使用范围及相关的操作命令B. 文档也是软件产品的一部分,没有文档的软件就不成软件C. 软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量D. 高质量文档对于发挥软件产品的效益有着重要的意义9. 一个项目是否开发,从经济上来说是否可行,归根结底是取决于(A )。
A. 成本估算B. 项目计划C. 工程管理D. 工程网络图21、软件是一种(C )A、程序B、数据C、逻辑产品D、物理产品22、需求分析最终结果是产生(B )A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告30、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( B )A.可用性B.可靠性C.正确性D.完整性36、对象实现了数据和操作的结合,使数据和操作(C )于对象的统一体中。
A、结合B、隐藏C、封装D、抽象37、(D )是比较理想的可重用软构件。
A.子程序库B.源代码包含文件C.对象D.类39、软件生存周期中时间最长的是( D )阶段。
A、总体设计B、需求分析C、软件测试D、软件维护42、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以( C )的编制是很重要的。
A、需求说明B、概要说明C、软件文档D、测试计划52.以下哪一项不是软件危机的表现形式(3)(1)成本高(2)生产率低(3)技术发展快(4)质量得不到保证53.以下哪一项不是面向对象的特征(4)(1)多态性(2)继承性(3)封装性(4)过程调用59. “软件危机”是指( C)A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统71. 快速原型是利用原型辅助软件开发的一种新思想,它是在研究(A )的方法和技术中产生的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段78. 软件开发过程来自用户方面的主要干扰是(A)A. 功能变化B. 经费减少C. 设备损坏D. 人员变化92. 需求分析是回答系统必须(A)的问题。
A. 做什么B. 怎么做C. 何时做D. 为谁做107.螺旋模型是一种将瀑布模型和_________ 结合起来的软件开发模型。
(A)A .增量模型B .专家系统C .喷泉模型D .变换模型108.需求规格说明书的作用不包括(C)A .软件验收的依据B .用户与开发人员对软件要做什么的共同理解C .软件可行性研究的依据D .软件设计的依据111 .在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A)A .软件危机B .软件工程C .程序设计革命D .结构化程序设计125 .需求分析中开发人员要从用户那里了解(A)A .软件做什么B .用户使用界面C .输入的信息D .软件的规模129 .可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B )的回答。
A .确定B.行或不行C.正确D.无二义130 .需求分析阶段的任务是确定(D )A.软件开发方法B.软件开发工具C.软件开发费D.软件系统的功能140. 需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出( B)的过程。
A. 模块说明书B. 软件规格说明C. 项目开发计划D. 合同文档第二章练习题一、判断题7.软件的模块数越少,其软件成本越低。
X8.软件模块之间的耦合性越弱越好。
√9.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
√10.耦合是指一个模块内各个元素彼此结合的紧密程度。
X11.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。
X12.在设计模块时,其宽度和深度要适当。
√13.模块耦合的强弱取决于模块间接口的复杂程度。
√二、名字解释:10.抽象:现实世界中一定事物,状态或过程之间总存在着某些相似的方面。
把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象(抽出事物本质的共同的特征而暂不考虑它的细节,不考虑其它因素。
)。
11.模块化:就是把程序划分独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
12.逐步求精: 为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础。
13.耦合:是对一个软件结构内不同模块之间互联程度的度量。
14.内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
15.模块独立:是模块化、抽象、信息隐藏和局部化概念的直接结果。
16.信息隐蔽:指在设计和确定模块时,使得一个模块内包含的信息,对于不需要这些信息的其它模块来说,是不能访问的。
三、选择题10. 在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有( B )。
A. 隐藏复杂性B. 信息隐蔽C. 经常类的复用D. 类的开发20、为了提高模块的独立性,模块内部最好是(C )A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚33、从心理学角度看,一次大模块分解为多少个子模块为宜。
(B )A、3±1B、7±2C、15±1D、18±238、软件设计启发规则不包括(C)A、在耦合方式上降低模块间接口的复杂性B、模块功能应该可以预测C、将模块的控制域保持在其作用域内D、设计单入口单出口的模块40、为了提高模块的独立性,模块之间的联系最好的是( D )。
A、公共耦合B、控制耦合C、内容耦合D、数据耦合48、下列几种类型中,耦合性最弱的是(D )。
A、内容型B、控制型C、公共型D、数据型51. 内聚程度最高的是( A )A、功能内聚B巧合内聚C、过程内聚D、信息内聚89. 通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是(C)A、通信、逻辑、顺序、时间B、通信、时间、顺序、逻辑C、顺序、通信、时间、逻辑D、顺序、通信、逻辑、时间90. 在下列四种模块的耦合性中,信息隐蔽性能最好的是(D)A、控制耦合B、内容耦合C、标记耦合D、数据耦合103 .当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为(D)A、数据耦合B、公共耦合C、标记耦合D、内容耦合134. 信息隐蔽概念与(A )这一概念直接的相关。
A、模块的独立性B、模块类型的划分C、软件结构定义D、软件生命周期141. 数据耦合和控制耦合相比,则(B )成立。
A、数据耦合的耦合性强B、控制耦合的耦合性强C、两者的耦合性相当D、两者的耦合性需要根据具体情况分析第三章练习题一、判断题14.PDL的语法是开放式的,其内层语法是确定的,而外层语法则不确定。
(X)15.过程描述语言可以用于描述软件的系统结构。
(X)二、名字解释:17.结构程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
18.详细设计:详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。
19.对象:由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。
20.继承:广义的说是指能够直接获得已有的性质和特征,而不必重复定义它们,狭义的说是子类自动地共享基类中定义的数据和方法的机制。
21.人机界面设计的三条“黄金规则”:1.置用户与控制之下。
2.减少用户记忆负担。
3.保持界面一致。
22.Jackson图:描述数据结构,数据元素彼此间的逻辑关系。