编辑
2025-01-04
前端
00
请注意,本文编写于 125 天前,最后修改于 125 天前,其中某些信息可能已经过时。

目录

填空
第二章
第一章
第三章
第四章
第五章
第六第七
第六章、第七章 编码与测试
第八章 维护
第九章 面向对象的基本概念及 UML
第十章 面向对象分析
第十一章 面向对象设计
非章节填空题
填空题答案与解析
填空题
第 1 章 软件工程学概述(15题)
第 2 章 可行性研究(15题)
第 3 章 需求分析(15题)
第 4 章 概要设计(22题)
第 5 章 详细设计(15题)
第 6、7 章 编码与实现(31题)
第 8 章 维护(20题)
第 9 章 面向对象的基本概念及 UML(20题)
第 10 章 面向对象分析(10题)
第 11 章 面向对象设计(5题)
非章节选择题
判断
简答题
第一章 软件工程概述
第二章 可行性研究
第三章 需求分析
第四章 概要设计
第五章 详细设计
第六、七章 编码与测试
第八章 维护
第九章 面向对象的基本概念及 UML
第十、十一章 面向对象分析与设计

填空

第二章

  1. 软件工程解决的问题
    软件工程需要解决的问题包括软件费用软件可靠性软件可维护性软件生产率软件重用。这些问题贯穿软件开发的整个生命周期,是软件工程研究的核心内容。

  2. 软件工程的定义
    软件工程是运用科学知识和技术原理来定义开发维护软件的一门学科。它通过系统化的方法和工具,确保软件的高质量和高效率开发。

  3. 软件工程的综合性
    软件工程作为一门交叉学科,涉及计算机科学工程科学管理科学数学等多个领域。这种综合性使得软件工程能够从多角度解决复杂问题。

  4. 软件相关术语
    计算机程序及其说明程序的各种文档称为文件;计算任务的处理对象和处理规则的描述称为程序;有关计算机程序功能、设计、编制、使用的文字或图形资料称为文档。这些术语是理解软件开发的基础。

  5. 喷泉模型的特点
    喷泉模型以用户需求为动力,以对象为驱动,适合面向对象的开发方法。它具有迭代性无间隙性,克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。

  6. 螺旋模型的特点
    螺旋模型结合了瀑布模型增量模型,并加入了风险分析,弥补了这两种模型的不足。它通过迭代和风险控制,提高了软件开发的灵活性和可靠性。

  7. 软件生存周期模型
    常见的软件生存周期模型包括瀑布模型增量模型螺旋模型喷泉模型变换模型基于知识的模型。每种模型都有其适用的开发场景和特点。

  8. 增量构造模型的特点
    增量构造模型在前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开发。这种模型结合了瀑布模型和增量模型的优点,适用于大型复杂系统的开发。

  9. 构造原型的技术
    构造原型的技术包括可执行的规格说明基于脚本的设计采用非常高级语言或专门语言以及能重用软件。这些技术帮助开发者在早期阶段验证需求和设计。

  10. 演化型原型的特点
    演化型原型用原型过程代替全部开发阶段,通过软件工具和环境的支持,经过反复循环,直接得到软件系统。这种模型适用于需求不明确或变化频繁的项目。

  11. 快速原型的作用
    快速原型通过快速分析快速实现一个原型,用户与开发者在试用原型过程中加强沟通与反馈,通过反复评价和改进原型来提高软件质量。

  12. 探索型原型的特点
    探索型原型主要针对目标模糊用户与开发者对项目都缺乏经验的情况,通过开发原型来明确用户需求。这种模型适用于需求不明确的项目初期。

  13. 快速原型模型的分类
    快速原型模型根据原型的不同作用,分为探索型实验型演化型三类。每种类型适用于不同的开发场景和目标。

  14. 增量模型的分类
    增量模型根据增量的方式和形式的不同,分为渐增模型原型模型。渐增模型强调逐步增加功能,而原型模型强调通过原型迭代开发。

  15. 开发模型的分类
    瀑布模型属于整体开发模型,强调阶段性的顺序开发;增量模型属于非整体开发模型,强调逐步增加功能和迭代开发。

第一章

  1. 可行性研究的目的
    可行性研究的目的是研究软件项目是否值得去开发,以及其中的问题能否解决,而不是直接开发软件项目。

  2. 可行性研究的三个方面
    可行性研究需要从技术可行性经济可行性社会可行性三个方面分析研究每种解决方法的可行性。

  3. 技术可行性的考虑因素
    技术可行性一般要考虑的情况包括开发的风险资源的有效性技术的成熟度。

  4. 社会可行性的范围
    社会可行性所涉及的范围包括合同责任侵权、用户组织的管理模式、规范及其他一些技术人员常常不了解的陷阱等。

  5. 可行性研究报告的主要内容
    一个可行性研究报告的主要内容包括:引言、可行性研究的前提、对现有系统的分析、所建议系统的技术可行性分析所建议系统的经济可行性分析社会因素可行性分析、其他可供选择方案、结论意见。

  6. 成本一效益分析的目的
    成本一效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡

  7. 系统流程图的作用
    系统流程图用图形符号表示系统中各个元素,表达了系统中各种元素之间的信息流动

  8. 可行性研究的最后一步
    可行性研究具体步骤的最后一步是编写可行性报告

  9. 成本一效益分析的角度
    成本一效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。

  10. 可行性研究的第一个步骤
    可行性研究的第一个具体步骤是确定项目的规模和目标

  11. 系统流程图的表示方式
    系统流程图是描绘物理系统的传统工具,它用图形符号来表示系统中的各个元素。

  12. 数据流图的基本成分
    数据流图有四个基本成分:数据流加工(又称为数据处理)数据存储数据的源点或终点

  13. 数据字典中的加工逻辑描述
    数据字典中的加工逻辑主要描述该加工“做什么”,即实现加工的策略,而不是实现加工的细节。它描述如何把输入数据流变量变换为输出数据流的加工规则

  14. 数据流图的定义
    在数据流图中,数据流是数据在系统内传播的路径,因此由一组成分固定的数据项组成。加工(又称为数据处理)是对数据流进行某些操作或变换

  15. 数据字典的条目分类
    数据字典有以下四类条目:数据流数据项数据存储基本加工。其中,数据项是组成数据流和数据存储的最小元素。

第三章

  1. 需求分析的基本任务
    需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。

  2. 需求分析阶段的进入条件
    在进行可行性研究和软件计划以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就进入需求分析阶段。

  3. 需求分析阶段的文档
    需求分析阶段所要编写的文档包括需求规格说明书初步用户使用手册确认测试计划

  4. 需求分析的困难
    需求分析的困难主要体现在四个方面:问题的复杂性、交流障碍不完备性和不一致性、需求易变性。

  5. 需求分析的工作内容
    在需求分析阶段要进行以下几方面的工作:问题识别分析与综合导出软件的逻辑模型编写文档

  6. 形式化方法的应用
    形式化是软件自动化发展的基础。形式化方法是将需求规格说明用形式规约语言来描述。典型的有基于模型的 Z 语言VDM 开发方法(维也纳开发方法)

  7. 需求说明书的形成
    经过需求分析,开发人员已经基本上理解了用户的要求,确定了目标系统的功能,定义了系统的数据,描述了处理这些数据的基本策略。将这些共同的理解进行整理,最后形成文档需求说明书

  8. 问题识别的需求类型
    在需求分析阶段,首先进行问题识别,即双方确定对问题的综合需求。这些需求包括功能需求性能需求环境需求用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。

  9. 需求分析的定义
    需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。

  10. 结构化分析方法的特点
    结构化分析方法是面向数据流进行需求分析的方法。它通过数据流图、数据字典等工具,系统地描述系统的功能和数据流动。

第四章

  1. 模块的特性
    在软件的体系结构中,模块是可组合、分解和更换的单元。模块具有接口功能逻辑状态

  2. 软件结构设计的基础
    软件结构的设计是以模块为基础的,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构

  3. 数据库设计与系统开发的对应关系
    在大型数据处理系统的功能分析与设计中,数据库的“概念设计”与“逻辑设计”分别对应于系统开发中的需求分析概要设计,而数据库的“物理设计”与模块的详细设计相对应。

  4. 模块的外部特性与内部特性
    在一个模块中,功能状态接口反映模块的外部特性,逻辑反映它的内部特性。

  5. 设计软件结构的具体步骤
    设计软件结构的具体步骤包括:
    (1) 采用某设计方法将一个复杂的系统按功能划分成模块
    (2) 确定每个模块的功能
    (3) 确定模块之间的调用关系
    (4) 确定模块之间的接口,即模块之间传递的信息。
    (5) 评价模块结构的质量。

  6. 模块化的定义
    模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某方法组装起来,成为一个整体,完成整个系统所要求的功能。

  7. 内聚性的类型
    内聚性有六种类型:偶然内聚逻辑内聚时间内聚通信内聚顺序内聚功能内聚

  8. 模块的耦合性类型
    模块的耦合性分为六种类型:无直接接口数据耦合标记耦合控制耦合规格耦合内容耦合

  9. 标记耦合的定义
    标记耦合指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等。这些名字即为标记,其实传递的是这个数据结构的地址

  10. 结构图的主要内容
    结构图的主要内容有模块模块的控制关系模块的信息传递

  11. 偶然内聚的定义
    偶然内聚指一个模块内的各处理元素之间没有任何联系。这是内聚程度最差的内聚。

  12. 通信内聚的定义
    通信内聚是指模块内所有处理元素都在同一个数据结构上操作,有时称之为信息内聚,或者指各处理使用相同的输入数据或者产生相同的输出数据

  13. 控制耦合的定义
    控制耦合中,一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行模块内某一功能。因此被调模块内应具有多功能,哪个起作用受其调用模块的控制。

  14. 事务型数据流图的定义
    若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的 DFD 称为事务型的数据流图,这个加工称为事务处理中心

  15. 模块的扇出与扇入
    模块的扇出指一个模块直接下属模块的个数,扇入指一个模块直接上属模块的个数。

  16. 模块的作用范围与控制范围
    一个模块的作用范围指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。

  17. 结构图的深度与宽度
    结构图的深度指结构图控制的层次,也是模块的层数。结构宽度指一层中最大的模块个数

  18. 模块间传递信息的表示
    模块间还经常用带注释的短箭头表示模块调用过程中来回传递的信息。有时箭头尾部带空心圆的表示传递的是数据,带实心圆的表示传递的是控制信息

第五章

  1. 详细设计的目标
    详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于理解验证的程序。

  2. PAD 图的特点
    PAD 图清晰地反映了程序的层次结构,图中的竖线为程序的层次线

  3. 程序流程图的特点
    程序流程图又称为程序框图,应由三种基本控制结构(顺序、选择、循环)顺序组合和完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。

  4. Jackson 方法的基本结构
    Jackson 方法可用顺序选择重复三种基本结构来表示。Jackson 方法中的伪码也称图解逻辑,与 Jackson 所示的程序结构图完全对应。

  5. 面向数据结构的设计方法
    20 世纪 70 年代中期出现了“面向数据结构”的设计方法,其中有代表性的是Jackson 方法Warnier 方法

  6. JSP 设计中的对应关系
    在 JSP 设计中,要找出输入数据结构和输出数据结构中有对应关系的数据单元。“对应关系”指这些数据单元在数据内容上、数量上和顺序上有直接的因果关系。对于重复数据单元,重复的次序次数都相同才有对应关系。

  7. 数据项的代码设计
    在详细设计阶段,为了提高数据的输入、存储、检索等操作的效率并节约存储空间,对某些数据项的值要进行代码设计。

  8. 详细描述处理过程的工具
    详细描述处理过程常用的三种工具是图形表格语言

  9. 结构化流程图的要求
    为了克服流程图的最大缺陷,要求流程图都应由三种基本控制结构顺序组合完整嵌套而成,不能有相互交叉的情况,这样的流程图是结构化的流程图。

  10. 详细设计的定义
    详细设计是软件设计的第二阶段,主要确定每个模块的具体设计过程,故也称过程设计

  11. 模块内的数据结构设计
    在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的数据结构进行设计。

  12. JSP 方法中的操作与条件分配
    用 JSP 方法导出程序结构后,还要列出操作与条件,并把它们分配到程序结构图的适当位置上去。

  13. 详细设计阶段的常用工具
    在详细设计阶段,经常采用的工具有程序流程图PDL(过程设计语言)PAD 图等。

  14. PDL 的特点
    PDL 具有严格的关键字外语法,用于定义控制结构数据结构模块接口

  15. 详细设计的基本任务
    详细设计的基本任务是为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计;其他设计;编写详细设计说明书和评审

第六第七

第六章、第七章 编码与测试

  1. 软件测试的四个步骤
    软件产品在交付使用之前一般要经过以下四步测试:单元测试集成测试确认测试系统测试

  2. 边界值分析方法
    使用边界值分析方法设计测试用例时,一般与等价类划分结合起来。但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标,选取正好等于刚刚大于刚刚小于边界值的测试数据。

  3. 确认测试的定义
    确认测试又称有效性测试,它的任务是检查软件的功能性能是否与需求规格说明书中确定的指标相符合。

  4. 逻辑覆盖技术
    在设计测试用例时,追求程序逻辑覆盖程度的几种常用覆盖技术为语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖

  5. McCall 质量度量模型
    在 McCall 质量度量模型中,面向软件产品操作的五个特性是正确性可靠性效率完整性可用性。面向软件产品修改的三个特性是可维护性可测试性适应性。面向软件产品适应的三个特性是可移植性可重用性可操作性

  6. 软件可靠性与可用性的度量
    常借用硬件可靠性的定量度量方法来度量软件的可靠性与可用性。常用指标有平均失效等待时间 MTF平均失效间隔时间 MIBF

  7. 等价类划分的步骤
    用等价类划分的方法设计测试用例的步骤为划分等价类确定测试用例

  8. 集成测试的定义
    集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试,故也称组装测试联合测试

  9. 渐增式测试的两种方法
    渐增式测试有以下两种不同的组装模块的方法:自顶向下结合自底向上结合

  10. 自顶向下结合的两种策略
    自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略宽度优先策略

  11. 单元测试的定义
    单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计的文档。

  12. 软件测试的三类信息
    软件测试时需要的三类信息分别是软件配置测试配置测试工具

  13. 容错技术的实现手段
    实现容错技术的主要手段是冗余。通常冗余技术分为结构冗余信息冗余时间冗余附加技术冗余四类。

  14. 软件复杂性的表现
    软件复杂性主要表现在程序的复杂性程序的复杂性主要指模块内程序的复杂性。它直接关系到软件开发费用的多少开发周期长短软件内部潜伏错误的多少

  15. 动态测试的定义
    动态测试指通过运行程序发现错误。对软件产品进行动态测试时,使用黑盒测试法和白盒测试法。

  16. 软件测试与调试的目的
    软件测试的目的是尽可能多地发现程序中的错误,调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错

  17. 黑盒测试用例设计方法
    采用黑盒技术设计测试用例的方法一般有等价类划分边界值分析错误推测因果图等四种。

  18. 静态测试的定义
    静态测试是指被测试程序不在机器上运行,而是采用人工检测计算机辅助静态分析的手段对程序进行检测。

  19. 基本路径测试的定义
    基本路径测试是在程序控制流程图的基础上,通过分析控制构造的环路复杂性,导出基本路径集合,从而设计测试用例保证这些路径至少通过一次。

  20. McCall 质量度量模型的应用
    McCabe 质量度量模型,针对面向软件产品的运行修正转移


第八章 维护

  1. 软件可维护性的七个质量特性
    软件可维护性可用下面七个质量特性来衡量,即可理解性可测试性可修改性可靠性可移植性可使用性效率。对于不同类型的维护,这七种特性的侧重点也不同。

  2. 支持应用软件系统的文档
    为了支持应用软件系统,通常需要的文档有用户文档操作文档数据文档程序文档历史文档

  3. 软件维护的四种类型
    软件维护的内容有校正性维护适应性维护完善性维护预防性维护四种。

  4. 维护的副作用
    维护的副作用有编码副作用数据副作用文档副作用三种。

  5. 保证可维护性的四类检查
    为了保证可维护性,以下四类检查是非常有用的:在检查点进行检查验收检查周期性的维护检查对软件包的检查

  6. 减少文档副作用的措施
    必须在软件交付之前对整个软件配置进行评审,以减少文档副作用。

  7. 软件可维护性的定义
    软件可维护性是指软件功能被理解校正适应及增强功能的容易程度。

  8. 适应性维护的定义
    为了使应用软件适应计算机硬件、软件及数据环境所发生的变化而修改软件的过程称为适应性维护

  9. 衡量软件质量的三个主要特性
    软件的可维护性可使用性可靠性是衡量软件质量的几个主要特性。

  10. 维护的副作用的定义
    在软件维护中,因修改软件而导致出现的错误或其他情况称为维护的副作用

  11. 软件维护的流程
    软件维护的流程为制定维护申请报告审查申请报告并批准进行维护并做详细记录复审

  12. 软件维护活动的分类
    用于软件维护工作的活动可分为生产性非生产性两种。生产性活动包括分析评价、修改设计和编写程序代码等。非生产性活动包括理解程序代码功能、解释数据结构、接口特点和设计约束。

第九章 面向对象的基本概念及 UML

  1. 类与对象的关系
    对象的抽象是,类的实例化是对象

  2. 对象的封装性
    对象具有封装性,实现了数据操作的组合。

  3. 抽象的定义
    抽象是指强调实体的本质内在的属性,忽略一些无关紧要的属性。类实现了对象的数据(即状态)行为的抽象,它是对象的共性的抽象。

  4. 类的操作
    类具有操作,它是对象的行为的抽象。

  5. 面向对象的三个基本要素
    面向对象有三个基本要素,它们是抽象封装性(信息隐蔽)共享性

  6. 封装性的定义
    封装性是指所有软件部件内部都有明确的范围,以及清楚的外部边界,每个软件部件都有友好的界面接口,软件部件的内部实现外部可访问性分离。

  7. 对象的行为
    对象还有行为,用于改变对象的状态。对象实现了数据操作的结合。

  8. 类的属性描述
    类具有属性,描述类的属性用数据结构

  9. 类库的作用
    通过类库这种机制和构造来实现不同应用中的信息共享。

  10. 面向对象的特征
    面向对象的特征是对象唯一性分类性继承性多态性

  11. 用例图的作用
    用例图面向客户建模人员开发人员测试人员,是系统模型图的核心。

  12. 聚集关系的性质
    聚集是一种“整体-部分”关系。聚集最重要的性质是传递性,也具有逆对称性

  13. 继承的类型
    在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承;子类继承了多个父类的数据结构和方法,则称为多重继承

  14. 主要的对象类型
    主要的对象类型有有形实体作用事件性能说明

  15. 类描述模板中的属性说明
    在类描述模板中,应该给出每个属性的详细说明,主要包括下述信息:属性的说明属性的数据类型属性所体现的关系实现要求及其他


第十章 面向对象分析

  1. 脚本的定义
    脚本是系统一个特定执行期间所发生的事件序列。

  2. 功能模型的作用
    功能模型描述系统内的计算,它和对象模型动态模型共同构成系统模型结构的三大支柱。

  3. 状态的定义
    状态是对象的属性值链接的一种抽象。

  4. 访问操作的来源
    在对象模型中,访问操作是直接从类的属性关联中导出的。

  5. 对象模型的作用
    对象模型为建立动态模型功能模型提供了实质性框架。

  6. 功能模型的组成
    功能模型由多个数据流图组成,每个数据流图说明了操作和结束的含义。

  7. 数据流图的组成
    功能模型由多张数据流图组成。数据流图中包含处理数据流动作对象数据存储对象

  8. 事件跟踪图的表示
    事件跟踪图用来表示事件事件的接收对象发送对象接收对象发送对象可用一条垂直线表示,各事件用水平箭头表示,箭头方向是从发送对象指向接收对象

  9. 状态转换图的作用
    状态转换图是启发分析员认识对象服务的重要工具。

  10. 状态的描述内容
    说明一个状态可采用状态名状态目的描述产生该状态的事件序列表示状态特征的事件在状态中接收的条件等内容描述。

第十一章 面向对象设计

  1. 对象的服务分类
    对象的服务可分为外部服务内部服务

  2. 对象状态的构成
    对象的每个属性不同取值所构成的组合都可看作对象的一种新的状态。

  3. 低内聚服务的处理
    如果在一个服务中包括了多项可独立定义的功能,则它是低内聚的,应尝试把它分解为多个服务。

  4. 服务名的要求
    服务名应尽可能准确地反映该服务的职能。

  5. 属性与服务的定义
    属性的定义是描述对象静态特征的一个数据项。服务的定义是描述对象动态特征(行为)的一个操作序列

  6. 主动类的定义
    主动对象的类称作主动类(Active Class),它和主动对象的关系就像类和它们的对象一样。

  7. 类的两种主要结构关系
    类通常有两种主要的结构关系,即一般-具体结构关系和整体-部分结构关系。

  8. 问题域中事物的特征
    问题域中事物的特征可分为静态动态

  9. 对象服务的体现
    对象的服务最直接地体现系统责任并实现用户需求成分。

  10. 对象状态的定义
    对象的状态是对象现有属性的某些特殊值

非章节填空题

  1. 软件项目管理中的风险分类
    在软件项目管理中,按照风险的影响范围可将风险分为:项目风险基本风险特殊风险

  2. RUP 的开发方式
    RUP 强调采用迭代递增的方式来开发软件。

  3. 能力成熟度模型(CMM)的等级
    能力成熟度模型(CMM)定义的能力成熟度等级包括:初始级可重复级已定义级已管理级优化级

  4. 软件生命周期的典型阶段划分
    软件生命周期的一种典型的阶段划分为问题定义可行性研究需求分析概要设计详细设计编码测试维护

  5. 调试的定义
    调试可理解为把症状原因联系起来的智力过程。

  6. 数据流的类型
    数据流的类型主要包括变换型事务型

image.png

填空题答案与解析

  1. 软件开发与测试的过程
    软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个自底向上相关集成的过程。

  2. 需求分析的任务
    需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的做什么的问题。

  3. 书写逻辑加工说明的工具
    常用的书写逻辑加工说明的工具有三种:程序设计语言、判定表和判定树。

  4. 软件结构的基础
    软件结构是以模块为基础而组成的一种控制层次结构。

  5. 软件测试的分类
    软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种。

  6. 可行性研究的三个方面
    可行性研究从技术可行性、经济可行性、法律可行性三方面进行分析。

  7. 软件工具的作用
    软件工具一般是指为了支持软件人员开发和维护活动而使用的软件。

  8. 调试技术的分类
    调试技术有简单的调试方法、归纳法调试、演绎法和回溯法调试。

  9. 软件可维护性的质量特性
    软件可维护性可用七种质量特性来衡量,分别是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。

  10. 动态模型的描述工具
    面向对象分析中,动态模型使用状态图作为描述工具,该图反映了状态与事件的关系。

  11. 成本效益分析的目的
    成本效益分析的目的是从经济角度评价开发一个项目是否可行。

  12. 需求分析的任务
    需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的做什么的问题。

  13. 书写逻辑加工说明的工具
    常用的书写逻辑加工说明的工具有三种:程序设计语言、判定表和判定树

  14. 软件结构的基础
    软件结构是以模块为基础而组成的一种控制层次结构。

  15. 可行性研究的三个方面
    可行性研究从技术可行性、经济可行性、法律可行性三方面进行分析。

  16. 软件工具的作用
    软件工具一般是指为了支持软件人员开发和维护活动而使用的软件。

  17. 数据字典的条目分类
    数据字典有四类条目,分别是数据流、数据项、数据存储和基本加工。

  18. 数据流图的分类
    各种软件系统的数据流图一般可分为变换型和事务型两类。

  19. 过程设计语言的作用
    过程设计语言是用于描述模块算法设计和处理细节的语言。

  20. 效率的定义
    效率是与编程风格有关的一个因素,效率是指处理机时间和存储空间的使用。

填空题

第 1 章 软件工程学概述(15题)

  1. 与计算机科学的理论研究不同,软件工程是一门(B)学科
    A. 理论性
    B. 工程性
    C. 原理性
    D. 心理性

  2. 软件危机的主要原因有(C
    ① 软件本身的特点
    ② 用户使用不当
    ③ 硬件可靠性差
    ④ 对软件的错误认识
    ⑤ 缺乏好的开发方法和手段
    A. ③④
    B. ①②④
    C. ①⑤
    D. ①③

  3. 软件工程与计算机科学性质不同,软件工程着重于(C
    A. 原理探讨
    B. 理论研究
    C. 建造软件系统
    D. 原理的理论

  4. 软件工程方法学的研究内容包含软件开发技术和软件工程管理两个方面,其期望达到的最终目标是(A
    A. 软件开发工程化
    B. 消除软件危机
    C. 实现软件可重用
    D. 程序设计自动化

  5. 软件生存周期模型有多种,下列选项中不是软件生存周期模型的是(C
    A. 螺旋模型
    B. 增量模型
    C. 功能模型
    D. 瀑布模型

  6. 软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、(B)、维护等活动
    A. 应用
    B. 测试
    C. 检测
    D. 以上答案都不正确

  7. 瀑布模型中软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段,开发阶段和(A
    A. 运行阶段
    B. 可行性分析
    C. 详细设计
    D. 测试与排错

  8. 在软件生存周期的模型中,(D)吸收了软件工程“演化”的概念,适合于大型软件的开发
    A. 喷泉模型
    B. 基于知识的模型
    C. 变换模型
    D. 螺旋模型

  9. 软件开发的结构化生命周期方法将软件生命周期划分成(A
    A. 计划阶段、开发阶段、运行阶段
    B. 计划阶段、编程阶段、测试阶段
    C. 总体设计、详细设计、编程调试
    D. 需求分析、功能定义、系统设计

  10. 渐增模型是(C
    A. 与瀑布模型无关
    B. 与变化模型有关
    C. 瀑布模型的改进
    D. 变化模型的变种

  11. 构造原型时,主要考虑(B
    A. 全部功能
    B. 原型要体现的特征
    C. 全部细节
    D. 全部需求

  12. 原型的使用和开发过程,叫作(B)。
    A. 原型期
    B. 原型生存期
    C. 原型周期
    D. 以上说法都不对

  13. 对于原型的使用建议,以下说法不正确的是(C
    A. 开发周期很长的项目,能够使用原型
    B. 在系统的使用可能变化较大,不能相对稳定时能够使用原型
    C. 缺乏开发工具,或对原型的可用工具不了解的时候,能够使用原型
    D. 开发者对系统的某种设计方案的实现无信心或无十分的把握,能够使用原型

  14. 对于不宜使用原型的情况,以下说法错误的是(A
    A. 用户对系统的需求较为模糊,对某种要求缺乏信心时,不宜使用原型
    B. 用户不愿意参与开发的时候,不宜使用原型
    C. 用户的数据资源没有很好地组织和管理的时候,不宜使用原型
    D. 用户的软件资源没有被组织和管理起来的时候,不宜使用原型

  15. 瀑布模型的问题是(B
    A. 用户容易参与开发
    B. 缺乏灵活性
    C. 用户与开发者易沟通
    D. 适用可变需求


第 2 章 可行性研究(15题)

  1. 研究开发资源的有效性是进行(A)可行性研究的一方面
    A. 技术
    B. 经济
    C. 社会
    D. 操作

  2. 可行性分析中,系统流程图用于描述(A
    A. 当前运行系统
    B. 当前逻辑模型
    C. 目标系统
    D. 新系统

  3. 可行性研究要进行的需求分析和设计应是(C
    A. 详细的
    B. 全面的
    C. 简化、压缩的
    D. 彻底的

  4. 数据流图是常用的进行软件需求分析的图形工具,其基本符号是(C
    A. 输入、输出、外部实体和加工
    B. 变换、加工、数据流和存储
    C. 加工、数据流、数据存储和外部实体
    D. 变换、数据存储、加工和数据流

  5. 在程序的描述和分析中,用以指明数据来源、数据流向和数据处理的辅助图形是(B
    A. 瀑布模型图
    B. 数据流图
    C. 数据结构图
    D. 业务图

  6. 结构化分析(SA)方法将欲开发的软件系统分解为若干基本加工,并对加工进行说明,下述是常用的说明工具,其中便于对加工出现的组合条件的说明工具是(A
    ① 结构化语言
    ② 判定树
    ③ 判定表
    A. ②③
    B. ①②③
    C. ①③
    D. ①②

  7. 系统定义明确之后,应对系统的可行性进行研究,包括(B
    A. 软件环境可行性、技术可行性、经济可行性、社会可行性
    B. 经济可行性、技术可行性、社会可行性
    C. 经济可行性、社会可行性、系统可行性
    D. 经济可行性、实用性、社会可行性

  8. 在数据流图中,有名字及方向的成分是(C
    A. 控制流
    B. 信息流
    C. 数据流
    D. 信号流

  9. 在数据流图中,不能被计算机处理的成分是(D
    A. 控制流
    B. 结点
    C. 数据流
    D. 数据源/终点

  10. 分层 DFD 是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的(B
    A. 细节
    B. 输入与输出
    C. 软件的作者
    D. 绘制的时间

  11. 在数据流图的基本图形符号中,加工是以数据结构或(A)作为加工对象的
    A. 数据内容
    B. 信息内容
    C. 信息结构
    D. 信息流

  12. 数据字典中,一般不包括下列选项中的(D)条目
    A. 数据流
    B. 数据存储
    C. 加工
    D. 源点与终点

  13. 数据流图是用于软件需求分析的工具,下列元素(C)是其基本元素
    ① 数据流
    ② 加工
    ③ 数据存储
    ④ 外部实体
    A. ①②和③
    B. ①和③
    C. 全部
    D. ①③和④

  14. 在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是(D
    A. 工作阶段间的等待时间
    B. 生产原型的复杂性
    C. 参与人员所需的工作站数
    D. 参与人员之间的通信困难

  15. 数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘图方法中,(B)是常采用的
    ① 自顶向下
    ② 自底向上
    ③ 分层绘制
    ④ 逐步求精
    A. 全是
    B. ①③④
    C. ②③④
    D. ①④


第 3 章 需求分析(15题)

  1. 进行需求分析可使用多种工具,但(C)是不适用的
    A. 数据流图
    B. 判定表
    C. PAD图
    D. 数据字典

  2. 需求分析阶段研究的对象是软件项目的(A
    A. 用户要求
    B. 合理要求
    C. 模糊要求
    D. 法律要求

  3. 软件需求规格说明书的内容不应包括对(B)的描述
    A. 主要功能
    B. 算法的详细过程
    C. 用户界面及运行环境
    D. 软件的性能

  4. 需求分析过程中,对算法的简单描述记录在(D)中
    A. 层次图
    B. 数据字典
    C. 数据流图
    D. IPO图

  5. 需求分析最终结果是产生(C
    A. 项目开发计划
    B. 可行性分析报告
    C. 需求规格说明书
    D. 设计说明书

  6. 需求分析阶段不适于描述加工逻辑的工具是(D
    A. 结构化语言
    B. 判定表
    C. 判定树
    D. 数据流图

  7. 软件需求说明书是软件需求分析阶段的重要文件,下述(D)是其应包含的内容
    ① 数据描述
    ② 功能描述
    ③ 模块描述
    ④ 性能描述
    A. ①
    B. ③④
    C. ①②③
    D. ①②④

  8. 在需求分析中,开发人员要从用户那里解决的最重要问题是(A
    A. 要让软件做什么
    B. 要提供哪些信息
    C. 要求软件工作效率怎样
    D. 要让软件具有何种结构

  9. 结构化分析方法(SA)是一种面向(C)需求分析方法
    A. 对象
    B. 数据结构
    C. 数据流
    D. 结构图

  10. 在软件需求规范中,(A)可以归类为过程要求
    A. 执行要求
    B. 效率要求
    C. 可靠性要求
    D. 可移植性要求

  11. 在下面的叙述中,(C)不是软件需求分析的任务
    A. 问题分解
    B. 可靠性与安全性要求
    C. 结构化程序设计
    D. 确定逻辑模型

  12. 软件需求分析一般应确定的是用户对软件的(D
    A. 功能需求
    B. 非功能需求
    C. 性能需求
    D. 功能需求和非功能需求

  13. 在 E-R 模型中,包含以下基本成分(C
    A. 数据、对象、实体
    B. 控制、联系、对象
    C. 实体、联系、属性
    D. 实体、属性、联系

  14. 描述类中某个对象的行为,反映了状态与事件关系的是(B
    A. 对象图
    B. 状态图
    C. 流程图
    D. 结构图

  15. B)的描述范围是一个对象,所以它位于类描述模板的对象级
    A. 类图
    B. 状态转换图
    C. 实例图
    D. 服务流程图


第 4 章 概要设计(22题)

  1. 模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的(C
    A. 抽象和信息隐蔽
    B. 局部化和封装化
    C. 内聚性和耦合性
    D. 激活机制和控制方法

  2. 在面向数据流的软件设计方法中,一般将信息流分为(A
    A. 变换流和事务流
    B. 变换流和控制流
    C. 事务流和控制流
    D. 数据流和控制流

  3. 软件设计一般分为总体设计和详细设计,它们之间的关系是(A
    A. 全局和局部
    B. 抽象和具体
    C. 总体和层次
    D. 功能和结构

  4. 将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是(A)的
    A. 逻辑性
    B. 瞬时性
    C. 功能性
    D. 通信性

  5. 模块中所有成分引用共同的数据,该模块的内聚度是(D)的
    A. 逻辑性
    B. 瞬时性
    C. 功能性
    D. 通信性

  6. 好的软件结构应该是(B
    A. 高耦合、高内聚
    B. 低耦合、高内聚
    C. 高耦合、低内聚
    D. 低耦合、低内聚

  7. 一组语句在程序中多处出现,为了节省内存空间,把这些语句放在一个模块中,该模块的内聚度是(C)的
    A. 逻辑性
    B. 瞬时性
    C. 偶然性
    D. 通信性

  8. 软件设计中划分通常遵循的原则是要使模块间的耦合性尽可能(B
    A. 强
    B. 弱
    C. 较强
    D. 适中

  9. 下列几种耦合中,(D)的耦合性最强
    A. 公共耦合
    B. 数据耦合
    C. 控制耦合
    D. 内容耦合

  10. 一个模块把开关量作为参数传送给另一模块,这两个模块之间的耦合是(C
    A. 外部耦合
    B. 数据耦合
    C. 控制耦合
    D. 内容耦合

  11. D)着重反映的是模块间的隶属关系、模块间的调用关系和层次关系
    A. 程序流程图
    B. 数据流图
    C. E-R图
    D. 结构图

  12. A)数据处理问题的工作过程大致分为三步,即取得数据、变换数据和给出数据
    A. 变换型
    B. 事务型
    C. 结构化
    D. 非结构化

  13. 块间的信息可以作“控制信息”用,也可以作(D)使用
    A. 控制流
    B. 数据结构
    C. 控制结构
    D. 数据

  14. 模块的独立性是由内聚性和耦合性来度量的,其中内聚性是(B
    A. 模块间的联系程度
    B. 模块的功能强度
    C. 信息隐蔽程度
    D. 接口的复杂程度

  15. 为了提高模块的独立性,模块内部最好是(C
    A. 逻辑内聚
    B. 时间内聚
    C. 功能内聚
    D. 通信内聚

  16. 通常程序中的一个模块完成一个适当的子功能,应该把模块组织成良好的(C
    A. 紧耦合系统
    B. 松散系统
    C. 层次系统
    D. 系统结构

  17. 在软件结构设计完成后,对于下列说法,正确的是(C
    A. 非单一功能模块的扇入数大比较好,说明本模块重用率高
    B. 单一功能的模块扇入高时应重新分解,以消除控制耦合的情况
    C. 一个模块的扇出太多,说明该模块过分复杂,缺少中间层
    D. 一个模块的扇入太多,说明该模块过分复杂,缺少中间层

  18. 在进行软件结构设计时应该遵循的最主要的原理是(C
    A. 抽象
    B. 模块化
    C. 模块独立
    D. 信息隐藏

  19. 标记耦合是指(C
    A. 两个模块之间没有直接的关系,它们之间不传递任何信息
    B. 两个模块之间有调用关系,传递的是简单的数据值
    C. 两个模块之间传递的是数据结构
    D. 一个模块调用另一个模块时,传递的是控制变量

  20. 通信内聚是指(B
    A. 把需要同时执行的动作组合在一起形成的模块
    B. 各处理使用相同的输入数据或者产生相同的输出数据
    C. 一个模块中各个处理元素都密切相关于同一功能且必须顺序执行
    D. 模块内所有元素共同完成一个功能,缺一不可

  21. 内容耦合指(D
    A. 两个模块之间传递的是数据结构
    B. 一个模块调用另一个模块时,传递的是控制变量
    C. 通过一个公共数据环境相互作用的那些模块间的耦合
    D. 一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部

  22. 下列说法错误的是(B
    A. 变换型的 DFD 是由输入、变换(或称处理)和输出三部分组成
    B. 变换型数据处理的工作过程一般分为三步:处理数据、变换数据和处理数据
    C. 变换输入端的数据流为系统的逻辑输入,它将外部形式的数据变换成内部形式,送给主加工
    D. 变换输出端为逻辑输出,它把主加工产生数据的内部形式转换成外部形式后物理输出


第 5 章 详细设计(15题)

  1. 在软件开发过程中,以下说法正确的是(B
    A. 程序流程图是逐步求精的好工具
    B. N-S 图不可能任意转移控制,符合结构化原则
    C. 判定表是一种通用的设计工具
    D. 程序流程图和 N-S 图都不易表达模块的层次结构

  2. 指出 PDL 是下列(B)语言
    A. 高级程序设计语言
    B. 伪码
    C. 中级程序设计语言
    D. 低级程序设计语言

  3. Jackson 方法主要适用于规模适中的(A)系统的开发
    A. 数据处理
    B. 文字处理
    C. 实时控制
    D. 科学计算

  4. 软件详细设计主要采用的方法是(C
    A. 结构程序设计
    B. 模型设计
    C. 结构化设计
    D. 流程图设计

  5. 模块之间的层次关系一般可用不同的层次名来描述。写法一般有两种:(B)和并列
    A. N-S图
    B. 嵌套
    C. PAD图
    D. 循环

  6. 工程上常用的表达工具有(D
    A. 图形工具
    B. 表格工具
    C. 语言工具
    D. 以上全是

  7. 以下说法正确的是(C
    A. 程序流程图是一种算法描述工具
    B. PAD 图是一种描述程序逻辑结构的工具
    C. 过程设计语言是一种用于描述模块算法设计和处理细节的语言
    D. PAD 图是一种由左往右展开的二维型结构

  8. D)工具在软件详细设计过程中不采用
    A. 判定表
    B. IPO图
    C. PDL
    D. DFD图

  9. JSP 方法根据输入输出的数据结构按一定的规则映射成软件的(C
    A. 体系结构
    B. 数据结构
    C. 程序结构
    D. 顺序结构

  10. 对于详细设计,下面说法错误的是(A
    A. 详细设计是具体地编写程序
    B. 详细设计是细化成很容易地从中产生程序图纸
    C. 详细设计的结果基本决定了最终程序的质量
    D. 详细设计中采用的典型方法是结构化程序设计

  11. 程序控制一般分为(B)、分支、循环三种基本结构
    A. 分块
    B. 顺序
    C. 循环
    D. 分支

  12. Jackson 方法根据(A)来导出程序结构
    A. 数据结构
    B. 数据间的控制结构
    C. 数据流图
    D. IPO图

  13. D)是一种结构设计语言,它陈述系统模块是什么和它们如何结合在一起实现系统的功能,它表达的是软件系统结构设计的信息
    A. PDL
    B. C语言
    C. C++
    D. 模块化互连语言

  14. 对于 PDL 与需求分析中描述加工逻辑的“结构化语言”的区别,以下说法错误的是(A
    A. PDL 不是结构化语言
    B. 需求分析中描述加工逻辑的“结构化语言”无严格的外语法
    C. PDL 外层语言更严格一些,更趋于形式化
    D. 需求分析中描述加工逻辑的“结构化语言”内层自然语言描述较抽象、较概括

  15. 结构化程序设计的一种基本方法是(D
    A. 筛选法
    B. 递归法
    C. 迭代法
    D. 逐步求精法


第 6、7 章 编码与实现(31题)

  1. B)是指能够以数字概念来描述可靠性的数学表达式中所使用的量
    A. 硬件可靠性的定量度量
    B. 软件可靠性的定量指标
    C. 系统的定量度量
    D. 可靠性的度量

  2. 软件质量必须在(A)加以保证
    A. 设计与实现过程
    B. 开发之前
    C. 开发之后
    D. 开发期间

  3. 黑盒测试是从(C)观点出发的测试,白盒测试是从(C)观点出发的测试
    A. 开发人员、管理人员
    B. 用户、管理人员
    C. 用户、开发人员
    D. 开发人员、用户

  4. 为了提高测试的效率,应该(D
    A. 随机地选取测试数据
    B. 取一切可能的输入数据作为测试数据
    C. 在完成编码以后制定软件的测试计划
    D. 选择发现错误可能性大的数据作为测试数据

  5. 使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准
    A. 程序的内部逻辑
    B. 程序的复杂结构
    C. 使用说明书
    D. 程序的功能

  6. 软件测试可能发现软件中的(B),但不能证明软件(B
    A. 所有错误、没有错误
    B. 错误、没有错误
    C. 逻辑错误、没有错误
    D. 设计错误、没有错误

  7. Mccabe 复杂性度量又称为(B
    A. 代码行度量
    B. 环路度量
    C. 程序量度量
    D. 功能性度量

  8. 软件可移植性是用来衡量软件的(C)重要
    A. 通用性
    B. 效率
    C. 质量
    D. 人机界面

  9. 从已经发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为(C
    A. 错误检测
    B. 故障排除
    C. 调试
    D. 测试

  10. 软件测试是软件开发过程中重要和不可缺少的阶段,其包含的内容和步骤甚多,而测试过程的多种环节中基础的是(B
    A. 集成测试
    B. 单元测试
    C. 系统测试
    D. 验收测试

  11. 回归测试是(A)中最常用的方法
    A. 校正性维护
    B. 适应性维护
    C. 完善性维护
    D. 预防性维护

  12. 在模块测试的过程中,采用自底向上的测试比自顶向下的测试(A
    A. 好
    B. 差
    C. 一样
    D. 未知

  13. “高产”的测试是指(C
    A. 用适量的测试用例,说明测试程序正确无误
    B. 用适量的测试用例,说明测试程序符号相应的要求
    C. 用适量的测试用例,发现被测试程序尽可能多错误
    D. 用适量的测试用例,纠正被测试程序尽可能多的错误

  14. 在进行软件测试时,首先应当进行单元测试然后再进行(B),最后再进行有效性测试
    A. 组合测试
    B. 集成测试
    C. 有效性测试
    D. 确认测试

  15. 软件测试是保证软件质量的重要措施,它的实施应该在(B
    A. 程序编程阶段
    B. 软件开发全过程
    C. 软件允许阶段
    D. 软件设计阶段

  16. 从下列叙述中选出能够与软件开发需求分析、设计、编码相对应的软件测试(D
    A. 组装测试、确认测试、单元测试
    B. 单元测试、组装测试、确认测试
    C. 单元测试、确认测试、组装测试
    D. 确认测试、组装测试、单元测试

  17. 为了提高软件的可移植性,应注意提高软件的(D
    A. 使用的方便性
    B. 简洁性
    C. 可靠性
    D. 设备独立性

  18. 软件系统的可靠性,主要表现在(C
    A. 能够安装多次
    B. 能在不同类型的计算机系统上安装、使用
    C. 软件的正确性和健壮性
    D. 能有效地抑制盗版

  19. 软件可靠性是最重要的软件特性,通常用它来衡量在规定的条件和时间内,软件完成(B)的能力
    A. 需求分析
    B. 规定功能
    C. 概要设计
    D. 软件测试

  20. 以下说法不正确的是(D
    A. MTTF 是一个描述失效模型或一组失效特性的指标量
    B. MTBF 是指两次相继失效之间的平均时间
    C. MTBF 在实际使用时通常指当 n 很大时,系统第 n 次失效与第 n+1 次失效之间的平均时间
    D. 对于失效率为常数和修复时间很短的情况,MTTF 与 MTBF 差别很大

  21. 对白盒测试和黑盒测试补充的一种有效方法是加强阶段(B
    A. 调试
    B. 评审
    C. 维护
    D. 自测试

  22. 在 McCall 质量度量模型中,对于以下软件质量概念的正确解释是(D
    A. 可维护性。修改或改进一个已投入运行的软件所需工作量的程度
    B. 可测试性。找到并改正程序中的一个错误所需代价的程度
    C. 适应性。将一个系统耦合到另一个系统所需的工作量
    D. 可重用性。一个软件(或软件的部件)能再次用于其他相关应用的程度

  23. 确认测试计划是在(B)阶段制定的
    A. 可行性研究和计划
    B. 需求分析
    C. 概要设计
    D. 详细设计

  24. 调试的目的是为了(B
    A. 证明软件符合设计要求
    B. 发现软件中的错误和缺陷
    C. 改善软件的功能和性能
    D. 发掘软件的潜在能力

  25. 在黑盒测试中,着重检查输入条件的组合是(D
    A. 等价类划分法
    B. 边界值分析法
    C. 错误推测法
    D. 因果图法

  26. 验收测试的任务是验证软件的(C
    A. 完整性
    B. 正确性
    C. 有效性
    D. 移植性

  27. 软件测试的目的是尽可能发现软件中的错误,通常(D)是代码编写阶段可进行的测试,它是整个测试工作的基础
    A. 系统分析
    B. 安装测试
    C. 验收测试
    D. 单元测试

  28. 单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是(A
    A. 系统功能
    B. 局部数据结构
    C. 重要的执行路径
    D. 错误处理

  29. 集成测试时,能较早发现高层模块接口错误的测试方法为(A
    A. 自顶向下渐增式测试
    B. 自底向上渐增式测试
    C. 非渐增式测试
    D. 系统测试

  30. 以下说法错误的是(D
    A. 自底向上测试的优点是随着上移,驱动模块逐步减少,测试开销小一些
    B. 自底向上测试的优点是比较容易设计测试用例
    C. 自顶向下测试的优点是较早地发现高层模块接口、控制等方面的问题
    D. 自顶向下测试的优点是使低层模块的错误能较早发现

  31. 以下说法错误的是(B
    A. 单元测试是指对源程序中每一个程序单元进行测试
    B. 集成测试各模块组装起来,检查各个模块是否正确实现规定的功能
    C. 确认测试主要检查已实现的软件是否满足需求规格说明书中确定了的各种需求
    D. 系统测试是指把已确认的软件与其他系统元素结合在一起进行测试


第 8 章 维护(20题)

  1. 一个软件产品开发完成投入使用后,常常由于各种原因需要对它做适当的变更,通常把软件交付使用后所做的变更称为(A
    A. 维护
    B. 设计
    C. 软件再工程
    D. 逆向工程

  2. 软件维护是保证软件正常、有效的重要手段,而软件的下述特性中有利于软件的维护的是(D
    ① 可测试性
    ② 可理解性
    ③ 可修改性
    ④ 可移植性
    A. 只有①
    B. ②和③
    C. ①、②和③
    D. 都有利

  3. 下面的叙述中,与可维护性关系最密切的是(C
    A. 软件从一个计算机系统和环境转移到另一个计算机系统和环境的容易程度
    B. 尽管有不合法的输入,软件仍能继续正常工作的能力
    C. 软件能够被理解、校正、适应及增强功能的容易程度
    D. 在规定的条件下和规定的一段时间内,实现所指定功能的能力

  4. 软件工程针对维护工作的主要目标是提高软件的可维护性,降低(D
    A. 维护的效率
    B. 维护的工作量
    C. 文档
    D. 维护的代价

  5. 人们称在软件运行/维护阶段对软件产品所进行的修改就是维护。(C)是由于开发时测试的不彻底、不完全造成的
    A. 校正性维护
    B. 适应性维护
    C. 完善性维护
    D. 预防性维护

  6. 重视软件过程质量的控制,其部分原因是,相对于产品质量的控制来说,过程质量的控制是先期主动的、(B),而产品质量的控制是事后的、被动的、个别的
    A. 整体的
    B. 系统的
    C. 部分
    D. 可预测的

  7. 在四种类型的维护中,(C)是针对用户对软件提出的功能和性能要求的
    A. 校正性维护
    B. 适应性维护
    C. 完善性维护
    D. 预防性维护

  8. 软件生存周期的(D)工作和软件可维护性有密切的关系
    A. 编码阶段
    B. 设计阶段
    C. 测试阶段
    D. 每个阶段

  9. 软件维护工作过程中,第一步是先确认(B
    A. 维护环境
    B. 维护类型
    C. 维护要求
    D. 维护者

  10. 软件生命周期的最后一个阶段是(B
    A. 书写软件文档
    B. 软件维护
    C. 稳定性测试
    D. 书写详细用户说明

  11. 维护中用来指出修改的工作量、工作性质、优先权、修改的事后性质的文档是(B
    A. 软件需求说明
    B. 软件修改报告
    C. 软件问题报告
    D. 测试分析报告

  12. 软件维护工作中大部分的工作是由于(D)而引起的
    A. 程序的可靠性
    B. 适应新的硬件环境
    C. 适应新的软件环境
    D. 用户的需求改变

  13. 软件维护的困难主要原因是(C
    A. 费用低
    B. 人员少
    C. 开发方法的缺陷
    D. 维护难

  14. 软件工程学是指导计算机软件开发和(A)的工程学科
    A. 软件维护
    B. 软件设计
    C. 软件应用
    D. 软件理论

  15. 可维护性的特性中相互促进的是(A
    A. 可理解性和可测试性
    B. 效率和可移植性
    C. 效率和可修改性
    D. 效率和结构好

  16. 下面有关软件维护的叙述中,(A)是正确的
    A. 设计软件时就应考虑到将来的可修改性
    B. 维护软件是一件很吸引人的创造性工作
    C. 维护软件就是改正软件中的错误
    D. 谁编写软件就应由谁来维护这个软件

  17. 改错性维护与排错的相对关系是(B
    A. 改错性维护与排错是同一概念的不同命名
    B. 改错性维护是在更大范围中做工作
    C. 排错是在更大范围中做工作
    D. 它们是在同一阶段的不同工作

  18. 软件文档是软件工程实施中的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的(B
    A. 可理解性
    B. 可维护性
    C. 可扩展性
    D. 可移植性

  19. 在软件维护的实施过程中,为了正确、有效地修改,需要经历几个步骤,其中重新验证程序分为(A),保证修改后的程序的正确性
    A. 静态确认、计算机确认和维护后的验收
    B. 动态确认、计算机确认和维护后的验收
    C. 动态确认、计算机确认和维护后的存
    D. 静态确认、人工确认和维护后的检验

  20. 软件的可维护性是指纠正软件系统出现的错误和缺陷以及为满足新的要求进行修改、(B)的容易程度
    A. 维护
    B. 扩充与压缩
    C. 调整
    D. 再工程


第 9 章 面向对象的基本概念及 UML(20题)

  1. 对象模型的描述工具是(C
    A. 状态图
    B. 数据流图
    C. 对象图
    D. 结构图

  2. 每个对象可用它自己的一组属性和它可以执行的一组(C)来表现
    A. 行为
    B. 功能
    C. 操作
    D. 数据

  3. 面向对象开发方法在概念和表示上的一致性保证了分析和设计的(C)过渡
    A. 困难
    B. 不容易
    C. 平滑
    D. 顺序

  4. 表示对象的相互行为的模型是(B)模型
    A. 对象
    B. 动态
    C. 功能
    D. 静态

  5. 所有的对象可以成为各种对象类,每个对象类都定义了一组(B
    A. 说明
    B. 方法
    C. 过程
    D. 类型

  6. 在软件工程学中,我们把一组具有相同数据结构和相同操作对象的集合定义为(A),此定义包括一组数据属性和在数据上的一组合法操作
    A. 类
    B. 属性
    C. 对象
    D. 消息

  7. 通过执行对象的操作改变该对象的属性,但它必须通过(B)的传递
    A. 接口
    B. 消息
    C. 信息
    D. 操作

  8. 应用执行对象的操作可以改变该对象的(A
    A. 属性
    B. 功能
    C. 行为
    D. 数据

  9. 有时间间隔的操作是(B
    A. 动作
    B. 活动
    C. 加工
    D. 处理

  10. 在只有单重继承的类层次结构中,类层次结构是(A)层次结构
    A. 树型
    B. 网状型
    C. 星型
    D. 环型

  11. C)面向客户、建模人员、开发人员和测试人员,是系统模型图的核心
    A. 状态图
    B. 类图
    C. 用例图
    D. 顺序图

  12. 面向对象分析阶段建立的三个模型中,核心的模型是(C)模型
    A. 功能
    B. 动态
    C. 对象
    D. 分析

  13. 功能模型中所有的(A)往往形成一个层次结构。在这个层次结构中一个数据流图的过程可以由下层数据流图做进一步的说明
    A. 数据流图
    B. 概念模型图
    C. 状态迁移图
    D. 事件追踪图

  14. 在有多重继承的类层次结构中,类层次结构是(B)层次结构
    A. 树型
    B. 网状型
    C. 环型
    D. 星型

  15. 对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中
    A. 结合
    B. 隐藏
    C. 封装
    D. 抽象

  16. 下面概念中,不属于面向对象方法的是(D
    A. 对象
    B. 继承
    C. 类
    D. 过程调用

  17. 对象之间的动态联系用(D)表示
    A. 一般-特殊结构
    B. 整体-部分结构
    C. 实例连接
    D. 消息连接

  18. 重载(D
    A. 实现多态性的方法之一
    B. 重命名
    C. 更改其名字
    D. 解决多继承带来的命名冲突问题的方法之一

  19. 在顺序系统中,对象之间的消息不具有下述特点(D
    A. 每个消息都是向对象发出的一个服务请求,它必定引起接收者一个服务的执行
    B. 每个消息的发送与接收都是同时进行的,即消息都是同步的
    C. 除了主动对象其他的主动服务之外,其他对象服务只有在接收到消息时才开始执行
    D. 消息是从正在执行的服务中发出

  20. 消息连接的定义是(A
    A. 消息连接是 OOA 模型中对对象之间行为依赖关系的表示
    B. 两种消息连接符号来表示对象之间的消息传送关系
    C. 表示同一个控制线程内部的消息连接
    D. 表示不同控制线程之间的消息连接


第 10 章 面向对象分析(10题)

  1. 一个(C)能用不同的方法表示它的特征
    A. 事件
    B. 抽象
    C. 状态
    D. 脚本

  2. 在对象模型中,访问操作是直接从类的属性和关联中导出的。下列不是对象模型的访问操作的是(C
    A. 查询
    B. 动作
    C. 抽象
    D. 活动

  3. A)对整个对象的状态/行为关系的图示,它附属于该对象的类描述模板
    A. 状态转换图
    B. 顺序图
    C. 活动图
    D. 对象图

  4. 除(C)外都是 OOA 文档中的图形
    A. 类图
    B. 状态转换图
    C. 实例图
    D. 服务流程图

  5. 下面(B)不属于状态框中的保留字
    A. entry
    B. back
    C. exit
    D. do

  6. 软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫(D
    A. 生存期
    B. 面向对象设计
    C. 面向对象程序设计
    D. 面向对象分析

  7. 以下说法错误的是(A
    A. 面向对象分析与面向对象设计的定义没有明显区别
    B. 在实际的软件开发过程中面向对象分析与面向对象设计的界限是模糊的
    C. 面向对象分析和面向对象设计活动是一个多次反复迭代的过程
    D. 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程

  8. 面向对象技术中,对象是类的实例。对象有三种成分:(A)、属性和方法
    A. 标识
    B. 规则
    C. 封装
    D. 消息

  9. 一个类的所有对象具有相同的属性,不包括(D
    A. 个数
    B. 名称
    C. 数据类型
    D. 定义

  10. 分析对象的状态并画出状态转换图,目的是(A
    A. 准确地认识对象的行为
    B. 准确地认识对象的状态
    C. 准确地认识对象的方法
    D. 准确地认识对象的定义


第 11 章 面向对象设计(5题)

  1. B)是不需要接收消息就能主动执行的服务
    A. 内部服务
    B. 外部服务
    C. 内嵌服务
    D. 上层服务

  2. 火车是一种陆上交通工具,火车和陆上交通工具之间的关系是(D)关系
    A. 组装
    B. 整体与部分
    C. has a
    D. 一般与具体

  3. B)只供对象内部的其他服务使用,不对外提供
    A. 外部服务
    B. 内部服务
    C. 内嵌服务
    D. 上层服务

  4. 对象标识是分配给每个对象的永久性标识(又称作“柄”),它不符合下述条件(D
    A. 在一定的范围或领域(例如一个应用系统)中是唯一的
    B. 与对象实例的特征、状态及分类(可能是动态的)无关
    C. 在对象存在期间保持一致
    D. 在对象存在之后保持一致

  5. 对象或者类的整体行为(例如响应消息)的某些规则所不能适应的(对象或类的)(D
    A. 状况
    B. 情态
    C. 条件
    D. 问题


非章节选择题

  1. 软件工程是采用(A)的概念、原理、技术方法指导计算机程序设计的工程学科
    A. 工程
    B. 系统工程
    C. 体系结构
    D. 结构化设计

  2. 随着开发小组人数的(A),因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加
    A. 增加
    B. 降低
    C. 稳定
    D. 不稳定

  3. 软件质量必须在(D)加以保证
    A. 开发之前
    B. 开发之后
    C. 可行性研究过程中
    D. 分析、设计与实现过程中

  4. 包含风险分析的软件工程模型是(A
    A. 螺旋模型
    B. 瀑布模型
    C. 增量模型
    D. 喷泉模型

  5. 模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的(C
    A. 抽象和信息隐藏
    B. 局部化和封装化
    C. 内聚性和耦合性
    D. 激活机制和控制方法

  6. 详细设计的任务是确定每个模块的(A
    A. 算法
    B. 功能
    C. 调用关系
    D. 输入输出数据

  7. 软件复杂性度量的参数包括(B
    A. 效率
    B. 规模
    C. 完整性
    D. 容错性

  8. A)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
    A. 用例图
    B. 类图
    C. 合作图
    D. 状态图

  9. 面向对象分析是对系统进行(A)的一种方法
    A. 需求建模
    B. 程序设计
    C. 设计评审
    D. 测试验收

  10. 测试的关键问题是(B
    A. 如何组织软件评审
    B. 如何选择测试用例
    C. 如何验证程序的正确性
    D. 如何采用综合策略

  11. 提高测试的有效性非常重要,成功的测试是指(D
    A. 证明了被测试程序正确无误
    B. 说明了被测试程序符合相应的要求
    C. 未发现被测程序的错误
    D. 发现了至今为止尚未发现的错误

  12. 为了解决软件危机,人们提出了用(B)的原理来设计软件
    A. 运筹学
    B. 工程学
    C. 软件学
    D. 数学

  13. 若有一个计算类型的程序,它的输入量只有一个 X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,1.0,1.0,1.001。设计这组测试用例的方法是(C
    A. 条件覆盖法
    B. 等价分类法
    C. 边界值分析法
    D. 错误推测法

  14. 原型化方法需要用户和软件开发人员之间经常交互,适用于(A)系统
    A. 需求不确定的
    B. 需求确定的
    C. 管理信息
    D. 决策支持

  15. 程序的三种基本控制结构是(B
    A. 过程、子程序和分程序
    B. 顺序、选择和重复
    C. 递归、迭代和回溯
    D. 调用、返回和转移

  16. 结构化维护与非结构化维护的主要区别在于(B
    A. 软件是否结构化
    B. 软件配置是否完整
    C. 程序的完整性
    D. 文档的完整性

  17. 下面是被测模块的流程图。测试数据为:A=1, B=0, X=3; A=2, B=1, X=1。判断符合如下哪个等级的逻辑覆盖:(D
    A. 判定覆盖
    B. 语句覆盖
    C. 判定/条件覆盖
    D. 条件覆盖

  18. 模块(B)定义为受该模块内一个判断影响的所有模块集合
    A. 控制域
    B. 作用域
    C. 宽度
    D. 接口

  19. 面向数据结构的设计方法(Jackson 方法)是进行(B)的形式化的方法
    A. 系统设计
    B. 详细设计
    C. 软件设计
    D. 编码

  20. 结构化设计方法一般也称为面向(A)的设计
    A. 数据流
    B. 数据编码
    C. 数据库
    D. 数据结构

  21. 软件详细设计阶段的任务是(A
    A. 算法设计
    B. 功能设计
    C. 调用关系设计
    D. 输入/输出设计

  22. DFD 中每个加工至少有(D
    A. 一个输入流
    B. 一个输出流
    C. 多个输入输出流
    D. 一个输入输出流

  23. 系统流程图一般用于可行性分析中对(A)进行描述
    A. 当前运行系统
    B. 当前逻辑模型
    C. 目标系统
    D. 新系统

  24. 工具在软件详细设计过程中不采用(D
    A. 判定表
    B. IPO 图
    C. PDL
    D. DFD图

  25. C)详细描述软件的功能、性能和用户界面,以使用户了解如何使用软件
    A. 概要设计说明书
    B. 详细设计说明书
    C. 用户手册
    D. 用户需求说明书

  26. 汽车有一个发动机。汽车和发动机之间的关系是(B)关系
    A. 一般一具体
    B. 整体一部分
    C. 分类关系
    D. 主从关系

  27. 面向对象设计是(D)的过程
    A. 软件实现
    B. 需求确立
    C. 建立问题域模型
    D. 建立求解域模型

  28. 在变更控制中,(B)可以用来确保由不同用户所执行的并发变更
    A. 异步控制
    B. 同步控制
    C. 存取控制
    D. 基线控制

  29. 提高软件质量和可靠的技术大致可分为两大类。其中一类就是避开错误技术,但避开错误技术无法做到完美无缺和绝无错误,这就需要(D
    A. 消除错误
    B. 检测错误
    C. 避开错误
    D. 容错

  30. 面向对象方法有许多特征,如软件系统是由对象组成的;(C);对象彼此之间仅能通过传递消息互相联系等
    A. 开发过程基于功能分析和功能分解
    B. 强调需求分析重要性
    C. 把对象划分成类,每个对象类都定义一组数据和方法
    D. 对已有类进行调整

  31. 软件维护产生的副作用,是指(C
    A. 开发时的错误
    B. 隐含的错误
    C. 因修改软件而造成的错误
    D. 运行时误操作

  32. 软件详细设计的主要任务是确定每个模块的(A
    A. 算法和使用的数据结构
    B. 外部接口
    C. 功能
    D. 编程

  33. 为了提高模块的独立性,模块内部最好是(C
    A. 逻辑内聚
    B. 时间内聚
    C. 功能内聚
    D. 通信内聚

  34. 软件结构图中,模块框之间若有直线连接,表示它们之间存在(A
    A. 调用关系
    B. 组成关系
    C. 链接关系
    D. 顺序执行关系

  35. 需求分析最终结果是产生(B
    A. 项目开发计划
    B. 需求规格说明书
    C. 设计说明书
    D. 可行性分析报告

  36. 可行性研究要进行一次(D)需求分析
    A. 深入的
    B. 详尽的
    C. 彻底的
    D. 简化的、压缩的

  37. 软件测试方法中的(D)属于静态测试方法
    A. 黑盒法
    B. 路径覆盖
    C. 错误推测
    D. 人工检测

  38. 结构化设计方法在软件开发中,用于(B
    A. 测试用例设计
    B. 概要设计
    C. 程序设计
    D. 详细设计

  39. 软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(B
    A. 可用性
    B. 可靠性
    C. 正确性
    D. 完整性

  40. 下列文档与维护人员有关的有(C
    A. 软件需求说明书
    B. 项目开发计划
    C. 概要设计说明书
    D. 操作手册


判断

  1. 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。 ×

  2. SA法是面向数据流,建立在数据封闭原则上的需求分析方法。

  3. 需求管理主要是对需求变化的管理,即如何有效控制和适应需求的变化。

  4. 在面向对象的需求分析方法中,建立动态模型是最主要的任务。 ×

  5. 加工小说明是对系统流程图中的加工进行说明。 ×

  6. 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。 ×

  7. 需求分析的主要方法有SD法、OOA法及HIPO法等。 ×

  8. 分层的DFD图可以用于可行性分析阶段,描述系统的物理结构。 ×

  9. 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R图。

  10. 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。

  11. 软件就是程序,编写软件就是编写程序。 ×

  12. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。 ×

  13. 结构化方法的工作模型是使用螺旋模型进行开发。 ×

  14. 结构化方法和OO方法都是一种面向过程的软件开发方法。 ×

  15. 原型化开发方法包括生成原型和实现原型两个步骤。 ×

  16. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。

  17. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。 ×

  18. 软件工具的作用是为了延长软件产品的寿命。 ×

  19. 软件工程过程应该以软件设计为中心,关键是编写程序。 ×

  20. 软件简单的说就是程序和相关的数据及文档。

  21. 测试用例由一系列输入和实际的输出组成。 ×

  22. 软件工程的集成测试都是自顶向下的。 ×

  23. 编码是尽可能采用局部变量。

  24. 在进行需求分析时需同时考虑维护性问题。

  25. 顺序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。

  26. 在进行概要设计时应加强模块间的联系。 ×

  27. 模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。 ×

  28. 模块间的联系越紧密越好。 ×

  29. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 ×

  30. 维护就是在软件交付使用后进行的修改。

  31. 一组测试用例是判定覆盖,则一定是语句覆盖。

  32. 面向对象软件工程方法就是至上而下、逐步求精的方法。 ×

  33. 向一个已经延期的项目增加人手,往往不会加快其开发进程。

  34. 应尽可能多用GOTO语句。 ×

  35. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 ×

  36. 发现错误多的程序模块,残留在模块中的错误也多。

  37. 为了加快软件维护作业的进度,应尽可能增加维护人员的数目。 ×

  38. 软件维护就是改正软件中的错误。 ×

  39. 质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动。

  40. 软件开发的主要任务是写程序。 ×

  41. 测试只能证明程序有错误,不能证明程序没有错误。

  42. 模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。 ×

  43. 在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。 ×

  44. 程序设计风格指导原则提出,尽量多使用临时变量。 ×

  45. 开发软件就是编写程序。 ×

  46. 系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 ×

  47. 编程序时应尽可能利用硬件特点以提高程序效率。 ×

  48. 软件需求分析的任务是建立软件模块结构图。 ×

  49. 尽可能使用高级语言编写程序。

  50. 以结构化分析方法建立的系统模型就是数据流图。 ×

  51. 进行总体设计时加强模块间的联系。 ×

  52. 编码时尽量多用全局变量。 ×

  53. 用CASE环境或程序自动生成工具来自动生成一部分程序。

  54. 软件测试是要发现软件中的所有错误。 ×

简答题

  1. 概要设计
    答:概要就是回答“概括地说,系统应该如何实现”这个问题。概要设计站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构。

  2. 问题分析图 PAD
    答:问题分析图(PAD)是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流,将其翻译成程序代码比较容易。它既可以用来表示程序逻辑,也可以用来描述数据结构,支持结构化程序设计(P)方法,仅具有顺序、选择、循环三类基本成分。

  3. UML
    答:UML 又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

  4. 多态性
    答:多态性是指同一消息为不同的对象接受时,可产生完全不同的动作,利用多态性,用户可发送一个通用的消息,而将所有的实现细节都留给接受消息的对象自行決定。另外,多态性也可以指在父类中定义的属性或者服务被子类集成后,可以具有不用的数据类型或者表现出不同的行为。

  5. 边界值分析法
    答:边界值分析是选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据,而不是选取每个等价类內的典型值或任意值作为测试数据,它是对等价类划分方法的补充。边界值分析法是一种重要的黑盒测试方法。

  6. 软件再工程
    答:软件再工程是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用于提高软件的可理解性、可维护性、可复用性。它指的是对既存对象系统进行调查,并将其重构为新形式代码的开发过程,它的重要特点是能最大限度的重用既存系统的各种资源。

  7. 信息隐藏
    答:信息隐藏在信息安全保障体系的诸多方面发挥着重要作用,它指的是在设计和确定模块时,使得一个模块內包含的信息(过程或数据),对不需要这些信息的其他模块来说,是不能访问的,也是不可见的。

  8. 黑盒测试
    答:黑盒测试一种单元测试方法,它把被测试的对象看成一个黑盒子,试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依照需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。

  9. 模块化
    答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。模块化是为了使一个复杂的大型程序能被人的智力所管理。

  10. 内聚
    答:内聚是衡量模块独立性的一个标准,指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚越高;内聚越高,模块独立性越强。

  11. 抽象
    答:把在现实世界中一定事物、状态或过程之间的共性集中和概括起来,暂时忽略它们之间的差异,这就是抽象。即抽象就是抽出事物的本质特性而暂时不考虑它们的细节。

  12. 数据字典
    答:数据字典(DD)是用来定义数据流图中的各个成分具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

  13. 软件项目管理
    答:软件项目管理是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,保证软件生命周期中的各项活动的正常的进行。软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。

  14. 文档
    答:文档是软件开发使用和维护中的必备资料。它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导、帮助、解惑的作用,尤其是在维护工作中,文档是不可或缺的资料。

  15. 增量模型
    答:增量模型也称为渐增模型,是一种非整体开发的模型。软件在该模型中是“逐渐开发出来的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。

  16. 程序的可移植性
    答:程序的可移植性指程序从某一环境转移到另个环境下的难易程度。为获取较高的可移植性,在设计过程中采用的程序设计语言和运行支撑环境,尽量不使用与系统底层相关性强的语言。

  17. 耦合性
    答:耦合性也称块间联系,是软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

  18. 重用性
    答:利用标准化的软件模块快速构建特定的应用系统,不做修改或稍加改动就可以在不同环境中多次重复使用。

  19. 数据流图
    答:数据流图(DFD)是结构化分析方法中用于表示系统逻辑模型的一种工具,是一种功能模型。它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。


第一章 软件工程概述

  1. 试述软件危机产生的原因
    答:软件危机产生的原因有:
    (1) 软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。
    (2) 软件开发管理困难。由于软件规模大,结构复杂,又具有无形性的特点,因此导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。
    (3) 软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多、周期长,费用上升很快。
    (4) 生产方式落后。仍然采用个体手工方式开发根据个人习惯爱好工作,无章可循,无规范可依据,仅靠言传身教方式工作。
    (5) 软件开发技术落后。
    (6) 软件开发工具落后,生产率的提高速度缓慢。

  2. 什么是软件生存周期模型?有哪些主要模型?
    答:(1) 软件生存周期模型的定义:
    软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调便于各种人员的有效通信,有利于活动重用,有利于活动管理。
    (2) 软件生存周期模型的分类:
    主要的软件生存周期模型有瀑布模型、增量模型螺旋模型、喷泉模型、变换模型和基于知识的模型。

  3. 瀑布模型有哪些局限性?
    答:(1) 各阶段之间存在着严格的顺序性,特别强调预先定义求的重要性,在着手进行具体的开发工作之前,必须通过需求分析预先定义并“冻结”软件需求,然后再一步一步地实现这些需求。但是实际项目很少是遵循着这种线性顺序进行的。
    (2) 虽然瀑布模型也允许迭代,但这种改变往往给项目开发带来混乱。在系统建立之前很难只依靠分析就确定出一套完整、准确、一致、有效的用户需求,这种预先定义需求的方法更不能适应用户需求不断变化的情况。
    (3) 传统的瀑布模型很难适应需求可变、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结東才能看到整个软件系统。这种思想的、线性的开发过程,缺乏灵活性,不适应实际的开发过程。

  4. 増量模型的基本思想是什么?
    答:(1) 为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,于是产生了增量模型。它是在瀑布模型的基础上加以修改而形成的。
    (2) 増量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而増量模型属于非整体开发模型,它推迟某些阶段中的组节,从而较早地产生工作软件。
    (3) 增量模型是在项目的开发过程中以一系列的增量方式开发系统。増量方式包括增量开发和增量提交增量开发是指在项目开发周期内,在一定的时间间隔内以増量方式向用户提交工作软件及相应文档。量开发和增量提交可以同时使用,也可以单独使用。
    (4) 有多种増量模型,根据増量的方式和形式的不同,分为渐增模型和原型模型。


第二章 可行性研究

  1. 可行性研究的任务有哪些
    答:可行性研究首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制。然后,分析员进行简要的需求分析,经过压缩的设计,探索出若干种可供选择的主要解决办法。对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。
    (1) 技术可行性:要确定使用现有的技术能否实现系统,就要对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目能否实现。这里的资源包括已有的或可搞到的硬件、软件资源,现有技术人员的技术水平和已有的工作基础。
    (2) 经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。对于大多数系统一般衡量经济上是否合算,应考虑一个最小利润值,经济可行性研究范围较广,包括成本一效益分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景。
    (3) 社会可行性:确定要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。

  2. 什么是数据流图?其作用是什么
    答:(1) 数据流图的定义:
    数据流图,简称 DFD,是结构化分析方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
    (2) 数据流图的作用:
    ①数据流:数据流是数据在系统内部传播的路径,因此由一组成分固定的数据项组成。
    ②加工(又称为数据处理):对数据流进行某些操作或变换。
    ③数据存储(又称为文件):指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。
    ④数据源点或终点:是本软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称外部实体。


第三章 需求分析

  1. 为什么要进行需求分析?通常对软件系统有哪些需求?
    答:(1) 需求分析的原因:
    为了开发真正满足用户需求的软件产品,需求分析是软件开发工作获得成功的前提条件,不能满足用户需求的程序只会令用户失望,给开发者带来烦恼。
    (2) 对软件系统的需求:
    功能需求、性能需求、可靠性和可用性需求、出错处理、借口需求、约東、逆向需求、将来可能提出的要求。

  2. 怎样与用户有效地沟通以获取用户的真实需求?
    答:访谈是最早开始使用的获取用户需求的技术也是目前广泛使用的需求分析技术,访谈有两种形式分别是正式的和非正式的访谈。正式访谈时,系统分析员将提出一些事先准备好的具体问题在非正式访谈中分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。其中情景分析技术往往非常有效。


第四章 概要设计

  1. 衡量模块独立的两个标准是什么?它们各表示什么含义?
    答:(1) 衡量模块独立的两个标准:
    衡量模块的独立性的标准是两个定性的度量标准耦合性和内聚性。耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
    (2) 衡量模块独立的两个标准的含义:
    ①耦合性:也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
    ②内聚性:又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语句之间程序段之间)联系得越紧密则它的内聚性就越高。

  2. 什么是面向数据流的设计方法?它有哪些策略?
    答:(1) 面向数据流的设计方法的定义:
    面向数据流的设计方法也称结构化设计方法(SD),它与结构化分析(SA)相衔接,它按一定的设计策略将数据流图转换成软件的模块层次结构。
    (2) 面向数据流的设计策略:
    ①事务型分析设计:一个大的复杂的系统分解成较小的,相对简单的子系统,这些子系统彼此之间相对独立一些,而高层数据流图的数据处理往往反映这些子系统的功能,有平行分别处理的特点,因此,高层数据流图的转换通常可作为事务型处理,把一个加工逻辑看成是一类特定的事务把它们分别映射成一个模块,最高层模块为系统模块通过对输入初始命令的判断决定调用哪个模块。这种事务型分析设计的策略也用于较低层数据流图向软件结构图的转换。
    ②变换型分析设计:变换型数据流图具有主要的处理功能及实现这项处理功能所需要的输入数据流和经过处理后产生的输出数据流。确定了第三部分,高层模块就可分解出三个从属于它的新模块,分别执行输入、变换、输出功能。变换分析设计一般用于对较低层数据流图向软件结构图的转换。

  3. 通常采取哪些措施来降低模块问的耦合度?
    答:(1) 在耦合方式上降低模块间接口的复杂性。模块间接口的复杂性包括模块的接口方式、接口信息的结构和数量。接口方式不采用直接引用(内容耦合),而采用调用方式。接口信息通过参数传递且传递信息的结构尽量简单,不用复杂参数结构,参数的个数也不宜太多,如果很多,可考虑模块的功能是否庞大复杂。
    (2) 在传递信息类型上尽量使用数据耦合,避免控制耦合,慎用或有控制地使用公共耦合。这只是原则耦合类型的选择要根据实际情况综合地考虑。

  4. 为每种类型的模块耦合举一个具体例子?
    答:(1) 数据耦合:计算机网络属于松耦合系统。
    (2) 控制耦合:遥控器与电器。
    (3) 公共环境耦合:多机系统。
    (4) 内容耦合:汇编程序模块。


第五章 详细设计

  1. 程序流程图的特点有哪些?
    答:(1) 程序流程图的优点:
    流程图的优点是直观清晰、易于使用,是开发者普遍采用的工具。
    (2) 程序流程图的缺点:
    ①可以随心所欲地控制流程线的流向,容易造成非结构化的程序结构。编码时势必不加限制地使用 GOTO 语言,导致基本控制块多入口多出口,这样会使软件质量受到影响,与程序设计的原则相违背。
    ②流程图不易反映逐步求精的过程,往往反映的是最后的结果。
    ③不易表示数据结构。

  2. PDL 的特点是什么?有哪些优点?
    答:(1) PDL 的特点:
    ①所有关键字都有固定语法,以便提供结构化控制结构、数据说明和模块的特征。
    ②描述处理过程的说明性语言没有严格的语法。
    ③具有模块说明机制,包括简单的与复杂的数据说明。
    ④具有模块定义和调用机制,因此开发人员应根据系统编程所用的语种,说明 PDL 表示的有关程序结构。
    (2) PDL 的优点:
    ①提供的机制比图形全面,为保证详细设计与编码的质量创造了有利条件。
    ②可作为注释嵌入在源程序中一起作为程序的文档,并可同高级程序设计语言一样进行编辑、修改,有利于软件的维护。
    ③会自动生成程序代码,提高软件生产率。目前已有 PDL 多种版本(如 PDL/ Pascal、PDL/C Ada 等),为自动生成相应代码提供了便利条件。


第六、七章 编码与测试

  1. 什么是测试用例?动态测试有哪些方法?
    答:(1) 测试用例的定义:
    测试用例”是指为寻找程序中的错误而精心设计的组测试数据,每个测试用例一般是一个二元组(输入数据、预期结果)。
    (2) 动态测试的分类:
    动态测试主要有两种方法:白盒法和黑盒法。但无论白盒法还是黑盒法都只能选择一些有代表性的测试用例进行有限的测试。
    ①白盒法测试:白盒法是从被测试程序的内部逻辑入手来设计测试用例;有六种用于有判定存在的逻辑覆盖标准,即程序内部路径的覆盖程度。对于有循环存在的覆盖用限制循环次数的办法来测试。但是对于一个实际问题的程序测试中,其路径是一个庞大的数字,基本路径测试告诉了最少路径计算办法,在分析程序控制流程图环路复杂性的基础上,导出基本路径集合,从而设计测试用例,保证这些基本路径至少执行一次,以最少的用例发现尽量多的错误。
    ②黑盒法测试:黑盒法着重测试被测试程序的功能,而不关心内部如何实现其功能的结构,是从用户观点出发的测试体方法有四种,采用黑盒法的综合策略是先用等价类划分法(包括边界值分析法,即取边值上的数)设计出测试用例,然后用错误推测法补充。如果被测试程序含有多个条件的逻辑组合,则开始就用因果图法。

  2. 提高软件质量和可靠性的技术有哪些?
    答:(1) 避开错误技术:即在开发的过程中不让差错潜入软件的技术;避开错误技术是进行质量管理,实现产品应有质量所必不可少的技术。但是,无论使用多么高明的避开错误技术也无法做到完美无缺和绝无错误。
    (2) 容错技术:即对某些无法避开的差错,使其影响减至最小的技术。,容错技术即使错误发生也不影响系统特性,使错误发生时对用户影响限制在某些允许的范围内。

  3. 简要说明如何划分等价类
    答:(1) 如果某个输入条件规定了取值范围的个数,则可确定一个合理的等价类(输入值或数在此范围内)和两个不合理等价类(输入值和个数小于这个范围的最小值或大于这个范围的最大值。
    (2) 如果规定了输入数据的一组值,而且程序对不同的输入值做不同的处理,则每个允许输入值是一个合理的等价类,此外还有一个不合理等价类(任何一个不允许的输入值)。
    (3) 如果规定了输入数据必须遵循的原则,可确定个合理等价类(符合规则)和若干个不合理等价类(从各种不同角度违反规则)。
    (4) 如果已划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分为更小的等价类。

  4. 使用边界值分析方法设计测试用例的设计原则有哪些?
    答:(1) 如果输入条件规定了值的范围,可以选择正好等于边界值的数据作为合理的测试用例,还要选择刚好越过边界值的数据作为不合理的测试用例。
    (2) 如果输入条件指出了输入数据的个数,则按最大个数、最小个数、比最小个数少 1、比最大个数多到等情况分别设计测试用例。
    (3) 对每个输出条件分别按照以上一组(1) 和(2) 确定输出值的边界情况。由于输出值的边界不与输入值的边界值相对应,所以要检查输出值的边界不可能,要产生超出输出值之外的结果也不一定能做到,但必要时还需试一试。
    (4) 如果程序的规格说明书给出的输入或输出域是有序集合(如顺序文件、线性表、链表等),则应该选取集合的第一个元素和最后一个元素作为测试用例。


第八章 维护

  1. 什么是软件可维护性?可维护性度量的特性是什么?
    答:(1) 软件可维护性的定义:
    软件可维护性是指软件能够被理解、校正、适应及增强功能的容易程度;是软件开发阶段的关键目标。
    (2) 可维护性度量的特性:
    影响软件可维护性的因素较多,设计、编码及测试中的疏忽和低劣的软件配置、缺少文档等都对软件的可维护性产生不良的影响。软件可维护性可用可理解性可测试性、可修改性、可靠性、可移植性、可使用性和效率这七个质量特性来衡量。对于不同类型的维护,这七种特性的侧重点也不相同。这些质量特性通常体现在软件产品的许多方面。为使每一个相应的措施加以保证即这些质量要求要渗透到各开发阶段的各个步骤中。因此,软件的可维护性是产品投入运行以前各阶段针对上述各质量特性要求进行开发的最终结果。

  2. 软件维护有哪些内容?
    答:(1) 校正性维护:在软件交付使用后,由于在软件开发过程中产生的错误被带到维护阶段上来。这些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
    (2) 适应性维护:随着计算机的飞速发展,计算机硬件和软件环境也不断发生变化,数据环境也在不断发生变化。为了使应用软件适应这种变化而修改软件的过程称为适应性维护。
    (3) 完善性维护:在软件漫长的运行时期中,用户往往会对软件提出新的功能要求和性能要求。这是因为用户的业务会发生变化,组织机构也会发生变化。为了适应这些变化,应用软件原来的功能和性能要扩充和増强。这种增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。
    (4) 预防性维护:为了提高软件的可维护性和可靠性对软件进行的修改称为预防性维护。这是为以后进一步地运行和维护打好基础。这需要采用先进的软件过程方法对需要维护的软件或软件中的某一部分进行设计、编码和测试。

  3. 维护技术有哪些?
    答:(1) 面向维护的技术:面向维护的技术是在软件开发阶段用来减少错误提高软件可维护性的技术,面向维护的技术涉及软件开发的所有阶段。
    ①在需求分析阶段,对用户的需求进行严格的分析定义,使之没有矛盾和易于理解,可以减少软件中的错误。
    ②在设计阶段,划分模块时充分考虑将来改动或扩充的可能性。使用结构化分析和结构化设计方法,采用容易变更的、不依赖于特定硬件和特定操作系统的设计。
    ③在编码阶段,采用灵活的数据结构,是程序相对独立于数据的物理结构,养成良好的程序设计风格。
    ④在测试阶段,尽可能多地发现错误,保存测试用例和测试数据等。
    (2) 维护支援技术:维护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术,维护支援技术包括下列各方面的技术:信息收集、错误原因分析、软件分析与理解、维护方案评价、代码与文档修改、修改后的确认、远距离的维护。

  4. 好文档的作用和意义是什么?
    答:(1) 好文档的作用:
    ①好的文档能提高程序的可阅读性,但坏的文档比没有文档更坏。
    ②好的文档意味着简明性,风格的一致性,容易修。
    ③程序编码中应该有必要的注释以提高程序的可理解性。
    ④程序越长、越复杂,则它对文档的需求也越迫切。
    (2) 好文档的意义:
    程序文档是对程序功能、程序各组成部分之间的关系、程序设计策略、程序实现过程的历史数据等的说明和补充。


第九章 面向对象的基本概念及 UML

  1. 试述面向对象方法有哪些特征?
    答:(1) 对象唯一性:每个对象都有自身的唯一标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。在对象建立时有系统投予新对象以唯一的对象标识符,它在历史版本管理中又起巨大作用。
    (2) 分类性:分类性是指具有一致的数据结构(属性)和行为操作)的对象抽象成类。每个类是具有相同性质的个体对象的集合,而每个对象是相关类的实例。
    (3) 继承性:
    ①定义:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
    ②分类:
    a。单继承:子类只继承一个父类的数据结构和方法,则称为单重继承。
    b。多继承:在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
    (4) 多态性(多形性):
    ①定义:多态性是指允许不同类的对象对同一消息做出响应。不同的对象,收到同一消息可以产生不同的结果这种现象称为动态性。
    ②特点:多态性允许每个对象以适合自身的方式去响应共同的消息。这样就增强了操作的透明性、可理解性和可维护性。用户不必为相同的功能操作但作用于不同类型的对象而费心去识别。

  2. 什么是对象”?什么是”类”?其中对象与传统的数据有何异同?
    答:(1) 对象是对问题域中某个实体的抽象。
    (2) 相对于传统数据结构的静态被处理,对象既有静态的属性,也有动态的行为,是进行处理的主体。
    (3) 类是对具有相同数据结构和相同操作的一组组相似对象的定义,即类是对具有相同属性和行为的一个或多个对象的描述,包括对怎样创建该类的新对象的说明。


第十、十一章 面向对象分析与设计

  1. 说明对象模型的特征?
    答:(1) 对象模型表示了静态的、结构化的、系统数据性质,描述了系统的静态结构,表现了对象间的相互关系。
    (2) 模型主要关心系统中对象的结构、属性和操作使用对象图来描述。

  2. 三种模型的建立过程
    答:(1) 对象模型:确定类、准备数据字典、确定联系、确定属性、完善对象模型。
    (2) 动态模型:准备脚本、准备事件跟踪、构造状态图。
    (3) 功能模型:确定输入输出值、建立 DFD。

  3. 什么是模型?开发软件为何要建模?
    答:(1) 模型是为了理解事物而对事物作出的种抽象,是对事物的一种无歧义的书面描述。模型由组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念模型是一种思考工具利用这种工具可以把知识规范地表示出来。
    (2) 由于建模忽略了事物的非本质属性,因此模型比原始事物更容易操作。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,模型通过吧系统的重要部分分解成人的头脑一次能处理的若干个子部分从而减少了系统的复杂程度。

  4. 什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么?
    答:(1) 对象模型表示静态的、结构化的系统的数据性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。
    (2) 通常使用 UML 提供的类图来建立对象模型。
    (3) 在 UML 中“类”的实际含义是。一个类以及属于该类的对象。

  5. 什么是动态模型建立动态模型时主要使用哪些图形符号?这些符号的含义是什么?
    答:(1) 动态模型表示瞬时的、行为化的系统的控制性质,它规定了对象模型中对象的合法变化序列。
    (2) 在 UML 中状态图和事件追踪图来建立动态模型。
    (3) 其符号的含义为:
    ①状态图表示需要考察的对象的动态行为。
    ②事件追踪图表示其运行规律和行为规则。

  6. 什么是功能模型?建立功能模型时主要使用哪些图形符号?
    答:(1) 功能模型表示软件系统的功能性质,它指明了系统应该做什么”,因此更直接地反映了用户对目标系统的需求。
    (2) 在 UML 中主要使用用例图来建立功能模型幅用例图包括的模型元素有系统、行为者、用例以及用例之间的关系。

  7. 为什么说类构件是目前比较理想的可重用软构件?它有哪些重用方式?
    答:(1) 可重用的软构件应具备的特点:
    ①模块独立性强。
    ②具有高度可塑性。
    ③接口清晰、简明、可靠。
    (2) 类构件的重用方式:
    ①实例重用。
    ②继承重用。
    ③多态重用。

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!