1、第 1 页 共 27 页 01a 填空题(每空 1 分,共 20 分) 1.面向过程方法学强调 _自顶向下 _顺序地完成软件开发的各阶段任务;面向对象方法学的出发点和基本原则是 _模拟人类习惯的思维方式 _,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。 2.总体设计阶段必须回答的关键问题是 _概括地说,系统应该如何实现 _。 3._数据流图 _和 _数据字典 _共同构成系统的逻辑模型, 4.需求分析过程应该建立 _数据模型 _、 _功能模型 _、 _行为模型 _3 种模型。 5.模块的 独立程度可以由 _内聚 _、 _藕合 _两个定性标准度量。 6.进行边界条件测试时,使
2、用 _刚好等于 _、 _刚好小于 _和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。 7.对象的两个基本要素是: _属性 _和 _服务 _。 8. 发现和定义系统中的对象类是在用例模型的基础上,识别 _实体类 _、 _边界类 _和_控制类 _。 9.面向对象程序设计风格强调提高 _可重用性 _、 _可扩充性 _、 _健壮性 _。 一、 选择题(每小题 2 分,共 20 分) 1.在软件开发的各种资源中,( D )是最重要的资源。 A. 开发工具 B. 方法 C. 硬件环境 D. 人员 2.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A
3、 )系统。 A. 需求不确定的 B. 需求确定的 C. 管理信息 D. 决策支持 3.单元测试的测试用例主要根据( D )的结果来设计。 A. 需求分析 B. 源程序 C. 概要设计 D. 详细设计 4.测试工 作量通常占软件开发全部工作量的( C )。 A.20% 30% B.30% 40% C.40% 50% D. 50% 60% 5.Pareto 原理指出测试发现的错误中的 80%很可能是由程序中( B )的模块造成的。 第 2 页 共 27 页 A.10% B.20% C.30% D. 40% 6.下列偶合中偶合程度最高的是( D )。 A.数据偶合 B.控制偶合 C.特征偶合 D.内
4、容偶合 7.下列 程序流程图的标准符号中,表示数据输入输出的是( A )。 A. B. C. D. 8.右边所示的 流图的环形复杂度为( A )。 A. 4 B. 5 C. 6 D. 7 环形复杂度 =边数 -节点数 +2 9.在软件维护中,维护工作量比例最大的是( C )。 A. 改正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护 10.使用 条件路径 选择进行 白盒 测试时,对于 连锁型分支结构 结构,若有 n 个判定语句,则需要( C )个测试用例。 A. n B. 2n-1 C. 2n D. 2n+1 二、 判断题(对的画“”,错的画“”,每小题 1 分,共 10 分)
5、1. 文档是软件产品的一部分,没有文档的软件就不称其为软件。 ( ) 2. 在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。 ( ) 3. 建立用例模型的步骤包括确定角色、确定用例和绘制用例图。 ( ) 4. 软件错误可能出现在开发过程 的早期,越早修改越好。 ( ) 5. 只有质量差的软件产品才需要维护。 ( ) 6. 一个好的测试用例在于能发现至今未发现的错误。 ( ) 7. 不完善的系统定义往往是导致软件项目失败的主要原因 。 ( ) 8. 瀑布模型是一种文档驱动的模型 。 ( ) 9. UML 是一种方法。 ( ) 10. 在时间允许的情况下,适当减少人员
6、会提高工作效率,降低软件开发成本 。( ) 三、 名词解释(每小题 4 分,共 20 分) 第 3 页 共 27 页 1. 软件生命周期 答:软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。 2. 结构程序设计 答:如果一个程序的代码块仅仅通过顺序、选择和循环这 3 种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化 的。 3. 测试 答 :指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为 版本)进行测试,试图发现错误并修正。 4. UML 答:一种直观化、明
7、确化、构建和文档化软件系统产物的通 用可视化建模语言 ,从企业信息系统到基于 Web 的分布式应用,甚至严格的实时嵌入式系统都适合于用 UML 来建模。 5. 软件再工程 答:对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。 四、 问答题(每小题 6 分,共 30 分) 1. 产生软件危机的原因是什么? 答: “ 软件作坊 ” 基本上仍然沿用早期形成的个体化软 件开发方法,导致在计算机软件的开发和维护过程中遇到一系列严重问题。如:软件开发的进度难以控制,经常出现经费超预算等。 2. 按照模块化的理论,模块的数目是否越多越好?为什么? 答:否,根据
8、模块化和软件成本的关系,随着模块数目的增加,模块成本减小,但接口成本增加,开始时总的成本逐渐减小,模块数超过一定数目之后,总的成本增加。所以模块数应取最小成本区数目。 3. 一个程序计算任何一个在 1 1000 内整数的平方数,那么其输入项的 等价类 应如何划分? 答: 4. 为什么说面向对象方法对需求变化有较好的适应性? 第 4 页 共 27 页 答:面向对象的封装机 制使开发人员可以把最稳定的部分(即对象)作为构筑系统的基本单位,而把容易发生变化的部分(即属性与操作)封装在对象之内;对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象内部。 5. 在下列用例图中,哪些是 系统角色 ?
9、 哪些是 系统用例 ? 答: 角色: Bank network, Manager, Clerk, Customer 用例: Authorize purchase, Open store, Log onto redister, Sell goods, Restock inventory 完 01b 五、 填空题(每空 1 分,共 20 分) 1.面向过程方法学强调 _自顶向下 _顺序地完成软件开发的各阶段任务;面向对象方法学的出发点和基本原则是 _尽量模拟人类习惯的思维方式 _,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。 2.需求分析阶段必须回答的关键问题是 _系统必须做
10、什么 _。 3.系统流程图是概括地描绘 _物理系统 _的传统工具。 4.数据对象彼此 之间的联系可分为 _一对一联系 _、 _一对多联系 _、 _多对多联系 _3种类型。 第 5 页 共 27 页 5.信息流有 _变换流 _、 _事务流 _两种类型。 6.软件可靠性指程序在给定的 _时间间隔内 _,按照规格说明书的规定成功地运行的概率;而软件的可用性指程序在给定的 _时间点 _,按照规格说明书的规定,成功地运行的概率。 7. 封装使对象形成两个部分: _接口 _和 _实现 _。 8.对象之间的外部联系有 _泛化 _、 _聚合 _、 _关联 _、 _依赖 _。 9.甘特图用水平线段表示 _任务的
11、工作阶段 _,线段的起点和终点分别对应着任务的 _开工时间 _和 _完成时间 _,线段的长度表示完成任务所需的时间。 六、 选择题(每小题 2 分,共 20 分) 1.在软件开发的各种资源中,( D )是最重要的资源。 A. 开发工具 B. 方法 C. 硬件环境 D. 人员 2.软件的复杂性是( A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A. 固有的 B. 人为的 C. 可消除的 D. 不可降低的 3.软件测试是为了( B )而执行程序的过程。 A. 纠正错误 B. 发现错误 C. 避免错误 D. 证明正确 4.用于软件维护的费用占软件总费用的( C )。 A.35% 5
12、0% B.45% 60% C.55% 70% D. 65% 80% 5.下列内聚中内聚程度最高的是( D )。 A.逻辑内聚 B.过程内聚 C.顺序内聚 D.功能内聚 6.按照 Miller 法则,一个人在任何时候都只能把注意力集中在( C ) 个知识块上。 A. 3 2 B. 5 2 C. 7 2 D. 9 2 7.下列 程序流程图的标准符号中,表示数据输入输出的是( A )。 A. B. C. D. 8.右边所示的 流图的环形复杂度为( A )。 A. 4 B. 5 C. 6 D. 7 第 6 页 共 27 页 9.在软件维护中,维护工作量比例最大的是( C )。 A. 改正性维护 B.
13、适应性维护 C. 完善性维护 D. 预防性维护 10.使用条件路径选择进行 白盒 测试 时,对于 嵌套型分支结构,若有 n 个判定语句,则需要( C )个测试用例。 A. n-1 B. n C. n+1 D. 2n 七、 判断题(对的画“”,错的画“”,每小题 1 分,共 10 分) 11. 文档是软件产品的一部分,没有文档的软件就不称其为软件。 ( ) 12. 建立用例模型的步骤包括确定角色、确定用例和绘制用例图。 ( ) 13. 好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。 ( ) 14. 面向对象的分析是面向计算机系统建立软件系统的对象模型。 ( ) 15. 软件错误
14、可能出现在开发过程的早期,越早修改越好。 ( ) 16. 一个成功的项目唯一提交的就是运行程序。 ( ) 17. 只有质量差的软件产品才需要维护。 ( ) 18. 瀑布模型是一种文档驱动的模型。 ( ) 19. UML 是一种方法。 ( ) 20. 在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。( ) 八、 名词解释(每小题 4 分,共 20 分) 6. 软件危机 答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 7. 软件 工程 答: 把系统的、规
15、范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。 8. 测试 答: 指软件开发公司组织各方面的典型用户在日常工 作中实际使用版本(经过测试调整的软第 7 页 共 27 页 件产品),并要求用户报告异常情况、提出批评意见,然后软件开发公司再对版本进行改错和完善。 9. UML 答: UML 即统一建模语言,是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。 10. 软件项目管理 答:为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动 九、 问答题(每小题 6 分,共 30 分
16、) 6. Jackson 图和层次图有何区别? 答: ( 1) 层次图中 的一个方框通常代表一个模块;而 Jackson 图中 的一个方框通常只 代表几个语句。( 2) 层次图表现的 是调用关系;而 Jackson 图 表现的是组成关系,即一个方框中包括的操作仅仅由它下层框中的那些操作组成。 7. 一个程序计算任何一个在 1 1000 内整数的平方数,那么其输入项的等价类应如何划分? 答: 8. 面 向对象方法是如何支持软件复用的? 答:( 1)对象具有封装性和信息隐蔽等特性,使其容易实现软件复用。( 2)对象类可以派生出新类,类可以产生实例对象,从而实现了对象类数据结构和操作代码的软构件复用
17、。( 3)面向对象程序设计语言的开发环境一般预定义了系统动态连接库,提供了大量公用程序代码 ,避免重复编写,提高了开发效率和质量。 9. 系统的静态结构和动态行为 分别由 UML 中哪些图进行描述? 答: 静态结构 由类图和对象图描述, 动态行为 由状态图、时序图、协作图和活动图描述。 10. 指出下列时序图中各符号的含义。 ( 6) 第 8 页 共 27 页 ( 1) ( 2) ( 5) ( 3) ( 4) 答:( 1)发起交互的对象( 2)回调消息( 3)生命线( 4)控制焦 点( 5)消息 ( 6)接收消息的对象 完 02a 十、 填空题(每空 1 分,共 20 分) 1、可行性研究需要
18、从 _技术 _可行性、 _经济 _可行性、 _社会 _可行性、 _操作 _可行性四个方面分析研究每种解决方法的可行性。 2、数据流图有四个基本成分: _数据流 _、 _数据处理 (加工 )_、 _数据存储 _、 _外部实体 (数据源点和终点 )_。 3、软件结构的设计是以 _模块 _为基础的,以需求分析的结果为依据,从实现的角度进一步划分为 _模块 _,并组成模块的 _层次结构 _。 4、程序流程图又称为 _程序框图 _,应由 _三种基本控制结构 _顺序 组合和完整嵌套而成,不能有_相互交叉 _的情况,这样的流程图是 _结构化 _的流程图。 5、“面向对象”是把一组对象中的数据结构和行为 _紧
19、密地 _结合在一起组织系统的一种策略,传统的思想是将数据结构和行为 _松散地 _连接在一起。 6、软件维护的内容有 _改正性 _维护、 _适应性 _维护、 完善性 _维护、预防性维护四种。 十一、 选择题(每小题 2 分,共 20 分) 1、软件是一种( B )产品。 A、有形 B、逻辑 C、物质 D、消耗 2、在软件生命周期中,用户主要是在( A )参与软件开发。 A、软件定义 期 B、软件开发期 C、软件维护期 D、整个软件生命周期过程中 第 9 页 共 27 页 3、在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( D )。 A、工作阶段间的等待时间 B、生产原型的
20、复杂性 C、参与人员所需的工作站数 D、参与人员之间的通信困难 4、进行需求分析可使用多种工具,但( C )是不适用的。 A、数据流图 B、判定表 C、 PAD 图 D、数据字典 5、软件设计一般分为总体设计和详细设计,它们之间的关系是( A )。 A、全局与局部 B、抽象与具体 C、总体与层次 D、功能与结构 6、一个( C )能用不同的方法表示它的特征。 A、事件 B、抽象 C、状态 D、脚本 7、不适合作为数据处理的语言是( A )。 A、 Prolog B、 C 语言 C、 4GL D、 SQL 语言 8、黑盒测试是从( D )观点的测试。 A、管理人员 B、管理人员 C、用户、开发人
21、员 D、开发人员、用户 9、软件工程对维护工作的主要目标是提高软件的可维护性,降低( D )。 A、维护的效率 B、维护的工作量 C、文档 D、维护的代价 10、软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( A )。 A、工程管理 B、成本核算 C、人员培训 D、工具开发 十二、 判断题(对的画“”,错的画“”,每小题 1 分,共 10 分) 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。 () 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。 () 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依
22、据。 () 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。 () 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。 () 6、软件配置管理是一组标识、组织和控制修改源程序的活动 。 () 第 10 页 共 27 页 7、 UML 是一种直观化、明确化、构建和文档化软件产物的 通用语言 。 () 11. UML 答: UML 即统一建模语言,是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。 () 9、边界值分析方法是取输入 /输出等价类的边界值作为测试用例。 () 10、面向对象
23、的分析是面向计算机系统建立软件系统的对象模型。 () 十三、 名词解释(每小题 3 分,共 15 分) 1、软 件危机 答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 2、 软件 工程 答: 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。 3、测试 答: 指软件开发公司组织各方面的典型用户在日常工作中实际使用版本(经过测试调整的软件产品),并要求用户报告异常情况、提出批评意见,然后软件开发公司再对版本进行改错和完善。 4、结构化 维护 答:采用软件工程的方法进行软件开发,保证每个阶段都有完整且详细的文档。对这样的软件进行的维护活动叫结构化维护。 5、软件项目管理 答:为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。 十四、 问答题(每小题 5 分,共 25 分)