1、第 1 页 共 10 页 1.面向对象的方法优势体现在( ABD ) A 简化软件开发过程 B 支持软件复用 C 提高软件运行效率 D 改善软件结构 2. 用户界面设计中的三条“黄金规则”是( ABC ) A 使系统处于用户控制之中 B 减少用户的记忆负担 C 保持界面的一致性 D 保证用户的易学性 3. 用户界面的分析和设计过程是迭代的,其中包括的活动是( ABCD ) A 用户、任务以及环境的分析和建模 B 界面设计 C 界面实现 D 界面确认 4. 界面确认需要注意三个方面( ABC ) A 界面正确完成了用户的任务,适应用户的任务变化 B 易学性和易用程度 C 用户的接受程度 D 用户
2、的习惯 5. 用户 界面分析时通常采用的信息获取方式包括( ABCD ) A 用户会谈 B 销售人员信息采集 C 市场分析 D 用户支持人员信息收集 6. ( C )把完成一个特定功能的动作序列抽象为一个过程名和参数表 A 数据抽象 B 动作抽象 C 过程抽象 D 类型抽象 7. ( A)把一个数据对象的定义抽象为一个数据类型名 A 数据抽象 B 动作抽象 C 过程抽象 D 类型抽象 8. 软件体系结构设计需要考虑以下( ABCD ) 第 2 页 共 10 页 A 适用性 B 结构稳定性 C 可扩展性 D 可复用性 9. 模块设计时应该考虑( AB ) A 模块功能独立 B 模块信息的隐藏 C
3、 模块接口的简单 D 模块实现简单 10. 一个完整的软件设计的主要 活动包括有( ABCD ) A 体系结构设计 B 界面设计 C 模块 /子系统设计、 D 数据模型、过程 /算法设计等 11. 模块化是指把一个复杂的问题分割成若干个可管理的小问题后,更易于理解,模块化正是以此为依据的,在划分模块的过程中应该考虑到( ABC ) A 模块的可分解性、可组装型 B 模块的可理解性、连续性、 C 模块保护 D 尽可能低分割模块,使得问题的难度降到最 1. 什么是软件工程?构成软件工程的要素是什么? 软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开
4、发和管理之中,对所选方法的研究。 软件工程的要素由方法、工具和过程组成。方法支撑过程和工具,而过程和工具促进方法学的研究。 2. 什么是软件生存周期? 软件开发过程模型与软件生存周期之间是何关系? 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程叫软件生存周期。 软件开发过程模型表示软件开发中各个活动的安排方式,出来软件开发各个活动之间 关系,是软件开发过程的概括,是软件工程的重要内容,其为软件管理提供里程碑和进度表,为第 3 页 共 10 页 软件开发过程提供原则和方法,其包括有以软件需求完全确定为前提的瀑布模型,以渐进式开发模型的原型和螺旋模型,以形式化 开发方法为基础的
5、变换模型。 3. 叙述软件设计在软件工程中所处的位置和重要性 位置:软件需求分析 -需求规格说明 -软件设计 -设计文档 - -软件编码 总要性:( 1)、是对软件需求的直接体现。 ( 2)、为软件实现提供直接依据 ( 3)、将综合考虑软件系统的各种约束条件并给出相应方案 ( 4)、软件设计的质量将决定最终软件系统的质量。 ( 5)、及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成 本。 4. 软件设计应该包含哪些要素? 软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。 5. 简述 UML的特点和用途。、 答:为使用者提供了统一的、表达能力强大的可视化
6、建模语言,以描述应用问题的需求模型、设计模型和设计模型。 提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。 提供于实现语言和支持所有的方法学,覆盖了面向对象分析和设计的相关概念和方法学。 独立于任何开发过程,但支持软件开发全过程。 提供对建模语言进行理解的形式 化基础,用元模型描述基本语义,OCL描述良定义规则,自然语言描述动态语义。 第 4 页 共 10 页 增强面向对象工具之间的互操作性,便于不同系统之间的集成。 支持较高抽象层次开发所需的各种概念,如协同、框架、模式和构件等,便于系统的重用。 6. 在面向对象开发方法中,对象
7、、类、继承、聚集、多态、消息等概念分别指什么? 答:对象:是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。 类:是某些对象的共同特征的表示。 继承:类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及属性和操作的共享,即子类可以沿用某 些父类的特征。 聚集:除遗传关系外,现实世界中还普遍存在着部分 -整体关系。 多态:指在父类及其子类中,对接口的定义形式相同,却可以对相应多种接口的实现形态。 消息:消息传递时对象与其外表世界相互关联的唯一途径。 7. UML的结构建模和行为建模有何区别? 答:结构建模被称为静态建模,主要用来描述系统中包含的元素以及元素之间的关
8、系。结构建模中的视图可以对各个层次和阶段的软件进行刻画。这些模型对系统的逻辑结构或物理结构进行描述,并不涉及系统的动态行为和过程。 行为建模被称为动态建模,它主要用来刻画系统中的动态行为,过 程和步骤。 UML行为建模中提供的视图可以从不同侧面来描述软件系统的动态过程。结构建模对系统中的元素及其关系进行描述,而行为建模对这些元素完成特定任务的过程进行描述,两者相互结合就能够完成描述整个系统的特性。 第 5 页 共 10 页 8. 与传统开发方法相比,面向对象开发方法有何优势? ( 1)、简化软件开发过程 ( 2)支持软件复用( 3)改善软件结构 9. 简述抽象与逐步求精在软件设计中的意义。 答
9、:软件设计的困难随着问题的规模和复杂性不断增大,抽象是管理,控制复杂性的基本策略。使用抽象技术便于人们用“问题域”本来的概念和术语描述问题,而 无须过早地转化为不熟悉的结构。而后不断的具体化,不断地用更接近计算机域的语言描述问题;最后在最低的抽象级别上给出可直接实现的“问题解”,即程序。 10. 简述模块化与信息隐藏在软件设计中的意义。 答 : 模块化即把软件划分为可独立命名和访问的部件,每个部件成为一个模块。模块化以“分治法”为依据,即将一个复杂的问题分割成若干个可管理的小问题后,更易于求解。模块因其可分解性、可组装性、可理解性、连续性及模块保护使软件管理更简单有效。而且一个模块技术研发失败
10、不会影响到另一个模块的技术研发,这样就大大降低了产品整体研发的风险 。信息隐藏是指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据)对于不需要这些信息的其他模块来说,是透明的。不仅支持模块的并行开发,而且还可以减少测试和后期维护的工作量。此外,整个系统欲扩充功能也只需“插入”新模块,原有的多数模块无需改动,提高了系统的灵活性和可扩展性。 11. 内聚度、耦合度分别指的是什么?为什么软件设计要追求高内聚、低耦合? 答:内聚度是一个模块内部各成分之间关联程度的度量。 第 6 页 共 10 页 耦合度是模块之间依赖程度的度量。 高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更
11、高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。 12. 软件设计过程中包含哪些主要活动? 分别介绍这些活动的主要目标。 答: a、软件设计计划:明确设计过程的输入制品并使其处于就绪状态,定义设计过程的目标、输出制品及其验收准则,确定覆盖设计过程中各个阶段的全局性设计策略,分配设计过程相关人员职责,针对设计过程中的活动制定工作计划。 b、体系结构设计:建立软件系统的体系结构,有时也称“顶层架构”。 c、界面设计:为用户使用目标软 件系统以实现其所有业务需求而提供友好的人机交互界面。 d、模块 /子系统设计:确定模块的接口定义,设计内部结构。明确协作关系。 e、过程 /
12、算法设计:对模块内部的工作和执行过程进行描述,给出有关处理的精确说明。 f、数据模型设计:确定设计模型中需要持久保存的数据条目,基于关系数据模型设计这些数据条目的组织方式,必要时还需要设计特定于本软件项第 7 页 共 10 页 目将采用的关系数据库管理系统的优化机制,以提高持久数据操作的性能。 13. 为什么软件设计是一个不断迭代的过程? 答:设计者不可能一次就能完成一个完整的设计,软件设计肯呢刚是一个多次 反复的过程,在设计过程中,需要不断的添加设计要素和设计细节,并对先前的设计方案进行修正。 14. 哪些要素可以用来评价软件设计的质量 答: 1、结构良好; 2、充分性; 3、可行性; 4、
13、简单性; 5、实用性; 6、灵活性; 7、健壮性; 8、可移植性; 9、可复用性; 10、标准化 15. 软件设计的质量对最终软件产品和软件开发过程会产生哪些影响 答: 1、开发效率; 2、交付时间; 3、风险管理; 4、资源使用; 5、成本; 6、 人员培训; 7、合法性。 16. 可信软件有什么特点?列举几种在生活中常用的可信软件。 答:特点:可靠性、可 靠完全性、保密安全性、可生存性、实时性。 例如:嵌入式软件系统:飞船导航软件、武器控制系统。大型分布式系统:银行网上交易系统、空管系统。 第 8 页 共 10 页 17. 容错设计的主要思想和方法 答:主要思想:软件容错设计是使得软件能发
14、现失效危险并从临失效状态恢复的软件设计技术。 方法:恢复块技术、 N-版本编程。 18. 什么是软件设计规格说明?它在软件开发中起何重要用途? 答:软件设计规格说明:软件设计过程中体现各个活动结果的文档,是软件设计的输出。软件设计相关的内容包括软件体系结构描述、软件设计描述和软件接口设计描述部分。其中对所开发软 件的目标、范围、约束的定义,对软件的结构、接口、数据等方面的设计作出了详细的说明。评审后的软件设计规格说明将作为后续软件实现活动的依据。 19. 软件设计评审的目标是什么?设计评审中需要关注哪些方面? 答:目标:确保设计规格说明书能够实现所有的软件需求,及早发现设计中缺陷和错误,并确保
15、设计 模型已经精化到合格的软件实现工程师能够造出符合软件设计者期望的目标软件系统。 1.设计模型是否能够充分地,无遗漏地支持所有软件需求的实现。 2 设计模型是否已经精华至合理的程度,可以确保合格的软件实现工程师能偶构造出符合软件设计 者期望的目标软件系统。 3 设计模型的质量属性,即使设计模型是否已经经过充分的优化,以确保依照设计模型构造出来的目标软件产品能够表现出良好的软件质量属性。 20. 基于 UML的分析与设计过程包含哪些主要活动 第 9 页 共 10 页 答: 1 用例分析与设计 2 慨念模型与顶层架构设计 3 用户界面设计 4 数据模型设计 5 设计精化 6 类设计 7 部署模型
16、设计 21. 用例分析与设计在设计过程中起到什么作用 答:用例分析与设计可以分为发现和确定用例、生成用例图、对每个用例进行具体设计和描述等几个主要步骤。它是基于 UML 的软件设计过程的基础,只有建立了清晰、准确的用例模型 并对用例执行过程进行了较为全面的描述,才能使后续设计活动不会出现偏差。在为各个用例建立交互图设计模型的过程中,可以逐步发现各种系统概念层对象,它们是问题领域中存在的概念或对象,非常直观和容易理解。这些对象为下一步建立面向对象的概念模型提供了依据,并且可以作为顶层架构设计的基础。 22. 什么概念模型设计?为什么要建立软件概念模型?(待定) 答:定义: 为了把现实世界中的具体
17、事物抽象、组织为某一数据库管理系统支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。也就是说,首先把现实世界中 的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个数据库管理系统( DBMS)支持的数据模型,而是概念级的模型,称为概念模型。 原因: 由于概念模型用于信息世界的建模型,是现实世界到信息世界的第一层抽象,是用户与数据库设计人员之间进行交流的语言,因此概念模型一方面具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还简单、清晰、易于用户理解。 23. 阐述设计精华的作用和主要内容。 第 10 页
18、 共 10 页 答:设计精化主要包括:精化软件结构、调整软件构成类、精华交互模型、精华类之间的关 系 作用:经过分析和设计,已建立起一定程度的设计模型,其包含了较完整的静态结构模型(顶层架构图、分析类图)和动态行为模型(交互图),以及用户界面设计和数据模型设计,但其设计模型的抽象层次与软件实现之间还有一定差距,有必要对这些模型再进行分析,细化和优化,已生成高质量的设计模型,为后续的实现阶段奠定坚实基础 24. 为什么要对类的行为进行设计?如何设计类的行为? 25. 列举能够使得用户记忆负担减少的原则 答: 1. 减少短期记忆要求 2. 建立有意义的默认设置 3. 定义符合只觉得快捷方式 4. 界面的视觉布局应该 模拟真实世界 5. 以渐进的方式来揭示信息